You need to enable JavaScript to run this app. 为何SacreBLEU计算短句子BLEU分数时返回零分?
优惠活动
大模型
产品
解决方案
定价
更多

为何SacreBLEU计算短句子BLEU分数时返回零分?

SacreBLEU 对无句尾句号的短句子返回零分的原因

SacreBLEU 本身不存在“强制要求句子以句号结尾”的规则,零分结果是其默认计算逻辑和测试样本特性叠加导致的,和句号本身没有直接绑定关系。

核心作用机制

  • 默认分词规则:SacreBLEU 对英文文本默认使用13a标准化分词,会在句尾的句号、问号等终止标点与相邻单词之间插入空格,将标点作为独立的token计数。也就是说,同样的内容带句号和不带句号,分词后的token长度会相差1个。
  • BLEU 分数计算逻辑:SacreBLEU 默认累计计算1-gram到4-gram的匹配情况,最终分数是四阶n-gram匹配精确度的几何平均值。按照几何平均的数学特性,只要任意一阶的n-gram匹配精确度为0,整个乘积就会直接归零,最终得分也为0。需要明确的是,并不是所有短句子都会触发零分,零分的核心触发条件是某一阶n-gram的匹配数为0,和句子长度没有绝对的绑定关系——如果短句子的所有n-gram都能和参考匹配,依然可以拿到正常分数。

对应测试用例的具体拆解

  • 带句尾句号的版本:系统句"This is cat." 经过默认分词后总长度为4个token,逐阶计算n-gram匹配时,没有出现某一阶精确度绝对为0的情况(部分n-gram匹配度较低,但未触发几何平均归零的条件),因此能算出35.19的有效得分。
  • 去掉句尾句号的版本:系统句"This is cat" 经过分词后总长度缩短为3个token,生成的3-gram为This is cat。两个参考句子对应的3-gram均为This is a,完全不存在该三元组的匹配记录,导致3阶n-gram的精确度为0,最终几何平均直接归零,得到0分结果。

本质上,句尾的句号只是作为一个独立token增加了系统句子的长度,避免了因句子过短导致某阶n-gram完全失配的情况,并非SacreBLEU 对句子格式有强制要求。如果想要避免这类极端零分情况,可以通过调整max_order参数降低最高计算阶数,或者启用内置的n-gram平滑方法来改善计算效果。

内容的提问来源于stack exchange,提问作者Ahmad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 23:15:07