You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于ROUGE指标中low、mid、high取值含义及AggregateScore聚合值计算方式的技术问询

ROUGE指标中AggregateScore的low/mid/high参数详解

我来帮你把这两个问题讲清楚,结合Hugging Face的实现例子来拆解:

1. low、mid、high取值的含义

这三个参数其实对应ROUGE得分的置信区间边界:

  • low:代表置信区间的下限,反映得分可能的最低值范围
  • mid:代表置信区间的中间值(通常是所有采样结果的中位数),也是我们最常参考的核心得分
  • high:代表置信区间的上限,反映得分可能的最高值范围

它们的存在是为了体现ROUGE得分的统计稳定性——毕竟摘要质量评估本身带有一定随机性,通过置信区间能更严谨地衡量模型表现的可靠程度。

2. AggregateScore聚合值的计算方式

Hugging Face的ROUGE实现里,这些聚合值是通过Bootstrap重采样法计算的,步骤大概是这样:

  1. 从测试数据集里多次进行带放回的随机抽样,每次抽取一组样本(预测文本+参考文本)
  2. 对每一组抽样样本,分别计算ROUGE的precision、recall、fmeasure三个指标
  3. 把多次计算得到的所有指标值按从小到大排序,然后取对应百分位数:
    • low对应第2.5百分位
    • mid对应第50百分位(中位数)
    • high对应第97.5百分位
      这样就得到了95%置信水平下的得分区间。

给你看个实际的代码例子(旧版Hugging Face ROUGE实现):

>>> rouge = evaluate.load('rouge')
>>> predictions = ["hello there", "general kenobi"]
>>> references = ["hello there", "general kenobi"]
>>> results = rouge.compute(predictions=predictions, references=references)
>>> print(list(results.keys()))
['rouge1', 'rouge2', 'rougeL', 'rougeLsum']
>>> print(results["rouge1"])
AggregateScore(low=Score(precision=1.0, recall=1.0, fmeasure=1.0), mid=Score(precision=1.0, recall=1.0, fmeasure=1.0), high=Score(precision=1.0, recall=1.0, fmeasure=1.0))
>>> print(results["rouge1"].mid.fmeasure)
1.0

这个例子里,预测和参考文本完全匹配,不管怎么抽样计算,得分都是1.0,所以low、mid、high的三个Score值全是1.0。

另外补充一下:现在Hugging Face的ROUGE实现已经做了简化,返回格式改成了更直观的字典,不用再处理AggregateScore对象啦。


内容的提问来源于stack exchange,提问作者Eran H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:47:38