美食街上新开张一家“AI 翻译小馆”,掌勺的是一位叫“小译师傅”的翻译模型。客人用英文点了一道菜,小译师傅就“翻译”出对应的中文菜式。可这道菜做得正不正宗,总得有个评判办法。于是,美食街的评委老王师傅想出一套打分法:不用凭感觉,直接拿小译师傅的菜跟金牌大厨的招牌菜(参考译文)放在一起比对——数一数食材块(n-gram)重合了多少。这套“食材块比对”就是 BLEU 的核心理念;后来又有人发明了更精细的“切丁颗粒比对”(字符级 n-gram),也就是 chrF。本文就带你读懂这两张打分卡背后的原理、数学公式、优缺点,以及在实际项目中怎么选、怎么用。

岗位关联

掌握 BLEU 与 chrF 是 NLP 工程师的基本功:你不仅要知道模型“翻得好不好”,还要知道用什么尺子量、量出来的数字意味着什么,才能在真实项目中科学地评估与迭代模型。

目录
  1. 可视化演示
  2. BLEU 核心思想
  3. 简洁惩罚 BP
  4. BLEU 计算流程
  5. chrF 字符级 F 值
  6. 指标优缺点
  7. 评估相关性
  8. 指标选择策略
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示BLEU/chrF的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

BLEU/chrF:一BLE 一、BLEU指标的核心设计与n 二、短句惩罚BP与BLEU综合 核心机制可视化 BLEU/chrF整体架构与关键组件

BLEU 核心思想

美食街的“AI 翻译小馆”开业后,小译师傅的菜到底正不正宗?评委老王师傅想了个笨办法:他先把金牌大厨的招牌菜(参考译文)放在左边,把小译师傅的菜(候选译文)放在右边,然后把两盘菜都切成小块——比如“番茄、鸡蛋、葱花”这样一组一组的小料。接下来,老王师傅数一数:小译师傅菜里的小料组合,能在招牌菜里对上多少?对得上的比例,就叫“食材块匹配度”。这就是 BLEU 最核心的思想:n-gram 精度。

在自然语言处理里,“小料组合”叫做 n-gram——连续 n 个词组成的最小单元。1-gram 是“番茄”这样的单个词,2-gram 是“番茄炒”这样的连续两个词,3-gram 是“番茄炒蛋”这样的连续三个词。BLEU 会统计候选译文里每个 n-gram 在参考译文里出现的情况,算出一个比例,这就是精度(precision)。

这里有一个关键细节:直接数重合次数会闹出“刷词”笑话。比如参考译文里“the“只出现了一次,候选译文却狂热地写了十个”the”,如果简单计数,精度会虚高得离谱。所以 BLEU 采用截断计数(clipped count):对每个 n-gram,候选里出现的次数最多按参考里出现的最大次数来算,超出的部分不算数。用公式表示,第 n 阶精度 p_n 是:

pn=∑c∈Gn(cand)min⁡(countcand(c), countref(c))∑c∈Gn(cand)countcand(c)\displaystyle p_n = \frac{\sum_{c \in \mathcal{G}_n(\text{cand})} \min\bigl(\text{count}_{\text{cand}}(c),\ \text{count}_{\text{ref}}(c)\bigr)}{\sum_{c \in \mathcal{G}_n(\text{cand})} \text{count}_{\text{cand}}(c)}

1. 切出所有 n-gram:把候选译文里所有连续 n 个词的组合全部枚举出来,集合记作 G_n(cand)。

Gn(cand)={wi,wi+1,…,wi+n−1∣i=1,…,N−n+1}\mathcal{G}_n(\text{cand}) = \{ w_i, w_{i+1}, \dots, w_{i+n-1} \mid i = 1, \dots, N-n+1 \}

2. 分子:截断计数求和:对每个候选 n-gram,统计它在参考译文里的最大出现次数;候选自身出现次数超过这个上限的部分全部作废,然后累加。

∑c∈Gn(cand)min⁡(countcand(c), countref(c))\sum_{c \in \mathcal{G}_n(\text{cand})} \min(\text{count}_{\text{cand}}(c),\ \text{count}_{\text{ref}}(c))

3. 分母:候选 n-gram 总数:候选译文本身切出来的 n-gram 总个数,无论是否匹配都算进去。

∑c∈Gn(cand)countcand(c)\sum_{c \in \mathcal{G}_n(\text{cand})} \text{count}_{\text{cand}}(c)

你看,这套逻辑就像美食街的评菜员在说:小师傅,你的菜里这些“食材块”跟招牌菜对得上的我才认,对不上的我不认;而且同一块食材你重复放十遍,我也只按招牌菜里的用量给你记账。这样一来,“想靠堆词蒙混过关”的路就被堵死了。

简洁惩罚 BP

没多久,老王师傅又发现一个新问题。有的学徒很机灵,看到招牌菜有十道,他干脆只做最拿手的那两道端上来。这两道菜做得确实完美,食材块全对得上。可老王师傅盯着桌上空荡荡的盘子,忍不住问:剩下的菜呢?学徒支支吾吾——因为不会做,干脆不做了。老王师傅一拍桌子:不行!得分必须打折!这个“上菜量不足要扣分”的规则,在 BLEU 里就是 brevity penalty(简洁惩罚,简称 BP)。

翻译场景里,这种“会做的才翻译”被称为漏译。候选译文如果比参考译文短太多,它的 n-gram 精度往往会虚高,因为从长句里挑出几句“最安全”的话来译,自然更容易对上。所以 BLEU 引入 BP:当候选译文长度 c 小于参考译文长度 r 时,BLEU 分数要按比例打折。BP 的形式非常直观:

BP={1,c>re1−r/c,c≤r\displaystyle \text{BP} = \begin{cases} 1, & c > r \\ e^{1-r/c}, & c \le r \end{cases}

1. 候选更长不罚:当候选译文长度 c 大于参考译文长度 r 时,说明模型“把话说全了”,BP 取 1,分数不打折。

BP=1\text{BP} = 1

2. 候选更短打折:当 c ≤ r 时,用指数函数 $e^{1-r/c}$ 在 0 到 1 之间取值;越短,折扣越狠。

BP=e1−r/c\text{BP} = e^{1-r/c}

所以 BP 不是一种“鼓励翻译得更长”的规则,而是一种“防止偷工减料”的护栏。它不管译文的文采,只管一件事——你要么把整桌菜做齐,要么就接受扣分。

BLEU 计算流程

有了食材块匹配度,又有了上菜量扣分,老王师傅终于可以把两者合在一起,给每位学徒打一个总评分。这个总评分的数学名称就叫 BLEU(Bilingual Evaluation Understudy,双语评估替补)。它像一个“替补裁判”,虽然自己不上场,但拿着参考译文这盘标准菜,替人类评审数数打分。

BLEU 并不是只看 1-gram,它同时看 1-gram、2-gram、3-gram、4-gram 四档精度的“平均表现”。为什么要看 2-gram、3-gram?因为单个词对得上,不代表顺序对得上。比如“我吃饭”和“饭吃我”的 1-gram 完全一样,可意思差远了;2-gram 和 3-gram 能把顺序信息带进来。BLEU 用的是“几何平均”而非简单的算术平均——只要有一个 n 阶的精度趋近于 0,整体 BLEU 就会趋近于 0。这很像美食评分中“一道菜哪怕其他方面完美,只要有一处致命的糊味,整桌打分也会被拉下来”。标准公式为:

BLEU=BP×exp⁡(14∑n=14log⁡pn)\displaystyle \text{BLEU} = \text{BP} \times \exp\Bigl(\frac{1}{4}\sum_{n=1}^{4} \log p_n\Bigr)

1. 对每阶精度取对数:把 p_n 从乘法空间转换到加法空间,后续平均才更公平,避免某一档过小被其他档“平摊”掉。

log⁡pn\log p_n

2. 四阶平均:将 log p1 到 log p4 求和后除以 4,即几何平均的对数形式。

14∑n=14log⁡pn\frac{1}{4}\sum_{n=1}^{4} \log p_n

3. 指数还原并乘 BP:exp 把对数平均还原成普通数值,最后乘上简短惩罚,就是 BLEU 总分。

BLEU=BP×exp⁡(14∑n=14log⁡pn)\text{BLEU} = \text{BP} \times \exp\Bigl(\frac{1}{4}\sum_{n=1}^{4}\log p_n\Bigr)

整个公式读起来就是:先看 1 到 4 阶的食材块匹配度,再看上菜量是否足够,两者相乘,得到最终评分。这就是日常论文里那个常见的 BLEU 分数。

chrF 字符级 F 值

美食街的客户越来越多。有一天,一位韩国客人点了一份韩式料理,小译师傅端出来的菜明明看起来像模像样,可老王师傅拿着 BLEU 一打分,分数却低得离谱。老王师傅琢磨了半天,发现问题出在“食材块”上:韩语的词形变化太丰富了,“吃”在不同句式里有好几种写法,按词切出来的块跟招牌菜对不上。

于是评委们换了一种思路:干脆不按“块”来切,按“切丁颗粒”来比——每个字符就是一个颗粒。只要读音、拼写相近,颗粒就能对上一部分。这就是 chrF(character n-gram F-score)的核心:在字符级别计算 n-gram 的精确率和召回率,再用 F 值把它们综合。字符级 n-gram 默认取连续 6 个字符(n=6),但可以调节。因为是在字符层面工作,chrF 天然不需要分词器,对没有空格的语言(中文、日文)特别友好。而且它同时使用精确率和召回率——不仅看候选译文里有几分参考的味道,还看参考里的内容有没有被漏掉。精确率与召回率分别为:

P=∣C∩R∣∣C∣,R=∣C∩R∣∣R∣\displaystyle P = \frac{|C \cap R|}{|C|}, \quad R = \frac{|C \cap R|}{|R|}

再把两者用 Fβ 调和平均合成:

chrFβ=(1+β2)P⋅Rβ2P+R\displaystyle \text{chrF}_\beta = (1+\beta^2)\frac{P \cdot R}{\beta^2 P + R}

1. 切字符 n-gram:C 与 R 分别表示候选文本和参考文本里所有连续 n 个字符的集合(n 默认 6)。

C=char_ngrams(cand),R=char_ngrams(ref)C = \text{char\_ngrams}(\text{cand}), \quad R = \text{char\_ngrams}(\text{ref})

2. 精确率 P:候选的字符块里,参考也出现过的占多少。

P=∣C∩R∣∣C∣P = \frac{|C \cap R|}{|C|}

3. 召回率 R:参考的字符块里,候选覆盖到的占多少。

R=∣C∩R∣∣R∣R = \frac{|C \cap R|}{|R|}

4. Fβ 调和:用 β 调控“更重视召回”的力度,β 越大召回权重越高,β=3 即 chrF3。

chrFβ=(1+β2)P⋅Rβ2P+R\text{chrF}_\beta = (1+\beta^2)\frac{P \cdot R}{\beta^2 P + R}

chrF 最常用的变体是 chrF3。为什么更重视召回?因为翻译任务里“漏译”比“多译”危害更大——你宁可多翻几句让评委挑,也不能把关键信息吞了。这就像做韩国料理,宁可选料时多抓几把,也别让招牌菜里的核心食材缺席。

指标优缺点

评菜这事永远没有完美的打分卡。老王师傅用了几年 BLEU,琢磨出了它的问题:有时候小译师傅明明用更自然的说法表达了完全相同的意思,比如把“汽车”换成“车”,食材块对不上,分数就掉得厉害。这说明 BLEU 只认“表面食材”不认“内在味道”。

BLEU 的优点:计算简单、速度快、实现几十年,社区里人人会用;在语料规模较大时与人类判断有中等程度的相关性。BLEU 的缺点:只比表面词形,不关心语义;对同义改写毫不留情;单句分数波动大;对词序完全不允许变化(1-gram 除外)。chrF 的优点:免分词、抓字符级相似,对形态丰富的语言更稳;同时用 P 和 R,对漏译敏感。chrF 的缺点:字符级比对可能把拼写错误和语义改写混为一谈;在某些语言对上不一定优于 BLEU。用调和平均可以直观看出“偏科”有多吃亏:

F1=2PRP+R≤P+R2\displaystyle F_1 = \frac{2PR}{P+R} \le \frac{P+R}{2}

1. P 和 R 先取倒数:任意一方偏小,其倒数就突出,调和平均会被明显拉低。

1P+1R\frac1P + \frac1R

2. 倒数之和取平均:2 除以两者倒数之和,得到调和平均;它不会像算术平均那样被高分“带飞”。

F1=2PRP+RF_1 = \frac{2PR}{P+R}

如果用一句话总结:BLEU 像“大块食材比对”,评分快但有盲区;chrF 像“细颗粒比对”,更细腻但也要付出代价。真正专业的做法是把它们当成镜子,而不是上帝。

评估相关性

老王师傅逐渐意识到,评分卡再严谨,最终也得让食客满意。于是美食街做了一次“民意测验”:请一批真正的食客(人类评审)给各家小馆打分,再和 BLEU、chrF 自动分数对比——看两套分数“谁高谁低”的排序是否一致。

这种“两套排序的一致性”叫相关性。在机器翻译评测领域,常用 Spearman 相关系数来衡量:把每个样本按自动指标分数排名,再按人类分数排名,算两组排名的相关性。研究表明,BLEU 和 chrF 在语料库层面与人类判断都有中等到较高的相关性,但单句层面噪声很大——一句话的 BLEU 可能因为一个同义词替换就暴跌二十分。所以行业惯例是:自动指标用于“快速筛选”和“大批量对比”,最终“拍板”仍离不开人工评估。Spearman 公式如下:

ρ=1−6∑i=1ndi2n(n2−1)\displaystyle \rho = 1 - \frac{6\sum_{i=1}^{n} d_i^2}{n(n^2-1)}

1. 算排名差:对每个翻译样本,分别用自动指标打分和人工打分排名,d_i 是两个排名之差。

di=rankmetric(i)−rankhuman(i)d_i = \text{rank}_{\text{metric}}^{(i)} - \text{rank}_{\text{human}}^{(i)}

2. 排名差平方和:偏差平方和越小,两套排名越接近。

∑i=1ndi2\sum_{i=1}^{n} d_i^2

3. 归一化到 [-1,1]:除以总样本组合数再取补,1 表示两套排序完全一致,0 表示毫无关系。

ρ=1−6∑i=1ndi2n(n2−1)\rho = 1 - \frac{6\sum_{i=1}^{n} d_i^2}{n(n^2-1)}

回到比喻:食客一口下去觉得好吃,胜过评分卡上再多数字。指标的意义不在于“替代人”,而在于“在没有人手时,先用一把还算靠谱的尺子过滤一遍”。

指标选择策略

到了这篇内容的最后一站,老王师傅把多年的评菜经验整理成了一本《选卡指南》:不同菜系、不同场合,要用不同的评分卡。给小译师傅试用什么卡,取决于语言特点、任务目标和手里的资源。

具体策略是这样的:如果语种是英语、法语这类用空格分词的语言,BLEU 是行业默认标配;如果是中文、日文、韩文,或者形态变化丰富的语言(德语、捷克语),chrF 往往更稳定;如果你的任务特别在乎“漏译”(比如医疗翻译、摘要生成),可以上调 chrF 里的 β,甚至直接用 chrF3;如果既想跑得快又想稳,就用 BLEU + chrF 组合打分,再辅以少量人工抽检。在工程项目里,很多人会把两个指标加权合成一个综合分:

Overall=α⋅BLEU+(1−α)⋅chrF,0≤α≤1\displaystyle \text{Overall} = \alpha \cdot \text{BLEU} + (1-\alpha) \cdot \text{chrF}, \quad 0 \le \alpha \le 1

1. α 是权重旋钮:α 越接近 1 越相信 BLEU,越接近 0 越相信 chrF。

α⋅BLEU,(1−α)⋅chrF\alpha \cdot \text{BLEU}, \quad (1-\alpha) \cdot \text{chrF}

2. 极端情形:α=1 退化为纯 BLEU,α=0 退化为纯 chrF,其余情况是两者的线性组合。

Overall=α⋅BLEU+(1−α)⋅chrF\text{Overall} = \alpha \cdot \text{BLEU} + (1-\alpha) \cdot \text{chrF}

最终,没有哪个指标是“万能的金牌评分卡”。选择的标准不是“哪个更高级”,而是“哪个能在这个场景下最可靠地帮你排雷”。就像美食街的评分卡,给川菜馆用麻辣度,给日料店用鲜度——适合的才是最好的。

AI 应用场景

NMT 模型训练中的 Checkpoint 筛选

阶段:模型训练与验证

解决的问题:训练过程中每个 epoch 都会产出一个 checkpoint,人工逐个看译文不现实。用 BLEU 在验证集上自动打分,能快速筛选出最优 checkpoint 继续训练,避免训练回退。

具体案例:某电商翻译团队训练中英商品标题翻译模型,每个 epoch 在 2000 句验证集上算 BLEU,把分数最高的 checkpoint 保存为最佳模型;同时用 chrF 辅助检查日语标题的翻译质量。

WMT 机器翻译评测比赛

阶段:评测与排榜

解决的问题:参赛系统众多,需要统一、可复现的自动评估协议,否则各家自报分数没有可比性。

具体案例:WMT 组织方在英德、英中、英日等语言对上公布 BLEU、chrF 等自动指标分数,并结合人工评估生成最终排名;chrF 在形态丰富的语言对上与人类排序相关性表现突出,因而被作为主要自动指标之一。

低资源语言翻译质量监控

阶段:线上质量监控

解决的问题:小语种翻译(如蒙古语、乌尔都语)没有成熟分词器,直接算 BLEU 会因为分词不当而失真。

具体案例:某出海公司的客服机器人同时支持十几种小语种,后端用 chrF 对线上翻译进行实时抽样打分,低于阈值时触发告警,避免劣质译文影响用户体验。

Python 演示

python71 行
import mathimport refrom collections import Counter  def tokenize(text):    return re.findall(r"\w+", text.lower())  def ngrams(tokens, n):    return [tuple(tokens[i:i + n]) for i in range(len(tokens) - n + 1)]  def ngram_precision(cand_tokens, ref_tokens, n):    cand_ngs = ngrams(cand_tokens, n)    if not cand_ngs:        return 0.0    ref_counter = Counter(ngrams(ref_tokens, n))    clip_sum = 0    for ng, cnt in Counter(cand_ngs).items():        clip_sum += min(cnt, ref_counter.get(ng, 0))    return clip_sum / len(cand_ngs)  def brevity_penalty(cand_len, ref_len):    if cand_len > ref_len:        return 1.0    if cand_len == 0:        return 0.0    return math.exp(1 - ref_len / cand_len)  def bleu_score(cand, ref, max_n=4):    cand_tokens = tokenize(cand)    ref_tokens = tokenize(ref)    log_sum = 0.0    for n in range(1, max_n + 1):        pn = ngram_precision(cand_tokens, ref_tokens, n)        log_sum += math.log(pn + 1e-10)    bp = brevity_penalty(len(cand_tokens), len(ref_tokens))    return bp * math.exp(log_sum / max_n)  def char_ngrams(text, n):    text = re.sub(r"\s+", "", text.lower())    return [text[i:i + n] for i in range(len(text) - n + 1)]  def chr_f_score(cand, ref, beta=3, max_n=6):    sum_p, sum_r = 0.0, 0.0    for n in range(1, max_n + 1):        cand_ngs = char_ngrams(cand, n)        ref_ngs = char_ngrams(ref, n)        if not cand_ngs or not ref_ngs:            continue        ref_counter = Counter(ref_ngs)        common = sum(min(cnt, ref_counter.get(ng, 0))                     for ng, cnt in Counter(cand_ngs).items())        sum_p += common / len(cand_ngs)        sum_r += common / len(ref_ngs)    p_avg = sum_p / max_n    r_avg = sum_r / max_n    b2 = beta * beta    return (1 + b2) * p_avg * r_avg / (b2 * p_avg + r_avg)  if __name__ == "__main__":    ref = "the cat is on the mat"    cand = "the cat sits on the mat"    print("BLEU:", round(bleu_score(cand, ref), 4))    print("chrF3:", round(chr_f_score(cand, ref), 4))
目的:用纯 Python 实现 BLEU 与 chrF3 两个翻译评估指标,可直接对任意一对“候选译文/参考译文”字符串打分。
  1. return re.findall(r"\w+", text.lower())用正则把句子切成小写词块,这是最简版的词级分词。
  2. clip_sum += min(cnt, ref_counter.get(ng, 0))这句就是“截断计数”:候选里出现次数再多,也按参考里的最大次数封顶。
  3. return clip_sum / len(cand_ngs)算出带截断的 n-gram 精度,也就是 BLEU 的核心分子。
  4. return math.exp(1 - ref_len / cand_len)候选比参考短时,按指数函数打折扣,对应 BP 公式。
  5. return bp * math.exp(log_sum / max_n)精度对数平均后还原,再乘 BP,得到最终 BLEU 分。
  6. text = re.sub(r"\s+", "", text.lower())chrF 先把所有空格抹掉,让“字符颗粒”能跨词比较。
  7. return (1 + b2) * p_avg * r_avg / (b2 * p_avg + r_avg)用 β² 给召回率加权,算出 chrFβ 的调和平均。

常见误区

误区BLEU 分数越高,译文肯定越准确越好,分数低就说明翻译垃圾。

正解BLEU 只衡量表面 n-gram 重合,语义完全正确但用词不同的译文可能得低分;同一句参考译文不同,分数差异也很大。就像一盘炒青菜,你把“青菜”换成“时蔬”,食材块对不上,评分卡就不认账。它只是“表面相似度”的代理,不是语义裁判。

为何常见:BLEU 是自动分数,给人“客观精确”的错觉,而且论文里到处都在用,容易把它当成“标准答案”。

误区chrF 更精细、更新,所以全面优于 BLEU,以后只用 chrF 就行。

正解没有哪个指标全面占优。chrF 对形态丰富语言(如韩语、日语)表现好,但对某些语言对,BLEU 因词级 n-gram 与语义更接近而更受认可。选指标要看语境,就像米其林星级不能用来评路边摊的麻辣烫。

为何常见:新指标容易让人误以为“更精细等于更好”,忽略了指标和语言特性的匹配。

误区BLEU 是自动评估,直接把原始字符串交给工具函数就能算出分数。

正解BLEU 标准实现基于词级 token(空格分词或子词),中文、日文等没有空格的字符串直接跑英文工具,根本切不出有意义的词块,分数自然失真。chrF 才是字符级、免分词的指标。所以中文评估要么先分词,要么改用 chrF。

为何常见:很多人拿中文句子直接套英文开源工具,忘了 tokenization 这个前置步骤。

误区同一句话,模型 A 的 BLEU 比模型 B 高,A 就一定更好。

正解单句 BLEU 方差极大,一个词替换就可能让分数从 50 掉到 20。必须在测试集(几百到几千句)层面聚合后才可信,就像美食评分不能只凭一盘菜下结论,得多桌客人、多道菜综合判断。

为何常见:调参时迫不及待看单句分数,忽略了统计显著性,把“个例”当“规律”。

误区BP 的存在就是为了惩罚短句,所以惩罚越狠,指标越严格、越有价值。

正解BP 只在候选短于参考时惩罚;如果候选本身就比参考长,BP=1 不惩罚。它只是一个长度校正因子,目标是平衡“漏译”与“多余翻译”,不是越大越好。就像“上菜量不足扣分”只是防止偷工减料,不是鼓励厨师把每道菜都堆成山。

为何常见:把 BP 当超参或“惩罚项”理解,忽略了它的原始动机是修正短句带来的精度虚高。

面试题

Q1. BLEU 是以下哪个英文的缩写?

单选题 · easy

  • A.Bilingual Evaluation Understudy← 正确答案
  • B.Binary English Utility Score
  • C.Byte-Level Evaluation Utility
  • D.Better Language Understanding Engine

答案:A。BLEU 全称 Bilingual Evaluation Understudy,意为“双语评估替补”:它本人不参与翻译,只拿着参考译文当标准答案,替人类评审自动打分。B、C、D 都是干扰项,分别拼成了“二进制”“字节级”“更好的语言理解”等不存在的缩写。

Q2. BLEU 为了防止重复词刷高精度,采用的关键机制是?

单选题 · easy

  • A.截断计数 Clipped Count← 正确答案
  • B.归一化 Normalization
  • C.随机降采样 Sampling
  • D.梯度裁剪 Gradient Clip

答案:A。截断计数用 min(候选次数,参考次数) 封顶,候选里把"the"写十遍也只按参考里的真实出现次数计入。归一化是数据处理手段,随机采样是训练技巧,梯度裁剪是优化技巧,都与 BLEU 的防刷词无关。

Q3. 候选译文长度 c 不大于参考译文长度 r 时,BP 的计算方式是?

单选题 · mid

  • A.当 c 大于 r 时取 1
  • B.等于 e 的 1-r/c 次方← 正确答案
  • C.等于候选长度 c/r
  • D.等于参考长度 r/c

答案:B。BP 的规则是 c > r 时取 1,c ≤ r 时取 $e^{1-r/c}$。选项 A 描述的是 c>r 的情形,C 和 D 都是简单比值,缺少指数衰减。比如 r=10、c=5 时,$e^{1-2}\approx 0.37$,相当于打三折多。

Q4. BLEU 标准实现中,几何平均通常取 1-gram 到几-gram 的精度?

单选题 · easy

  • A.2-gram
  • B.3-gram
  • C.4-gram← 正确答案
  • D.5-gram

答案:C。标准 BLEU 取 1-gram 到 4-gram 共四档精度做几何平均。只取 1-gram 无法捕捉词序,取到 5-gram 以上数据会过于稀疏,所以 4-gram 是经典折中。

Q5. chrF 是在什么层级上计算 n-gram 的?

单选题 · mid

  • A.字符级← 正确答案
  • B.词语级
  • C.句子级
  • D.篇章级

答案:A。chrF 的 c 代表 character,它在字符级计算 n-gram(默认 n=6),因此不需要分词器。词语级是 BLEU 的做法,句子级、篇章级则是更高层的文本粒度。

Q6. 常用的 chrF3 中 β=3,意味着该指标更重视什么?

单选题 · mid

  • A.精确率
  • B.召回率← 正确答案
  • C.压缩率
  • D.随机性

答案:B。Fβ 公式中 β 越大,召回率权重越高。chrF3 把 β 设为 3,是为了更重视“参考里的内容是否被漏译”,因为漏译在翻译任务中危害比多译更大。

Q7. 与 chrF3 相比,chrF1(β=1)对精确率和召回率的态度是?

单选题 · mid

  • A.更不偏重任何一方← 正确答案
  • B.只计算精确率
  • C.只计算召回率
  • D.二者权重反向

答案:A。β=1 时 F1 是精确率和召回率的对称调和平均,不偏不倚;β=3 才明显偏向召回率。B、C 说“只算”是不对的,F 值始终同时使用两者,只是权重不同。

Q8. 下列哪些属于 BLEU 指标常见的局限性?

多选题 · mid

  • A.只衡量表面 n-gram 重合← 正确答案
  • B.完全不需要参考译文
  • C.单句分数方差大且噪声高← 正确答案
  • D.对词序完全不敏感

答案:AC。A 和 C 是 BLEU 公认的短板:不看语义、单句波动大。B 错误,BLEU 依赖参考译文才能计算;D 错误,1-gram 虽对词序不敏感,但 2-gram 及以上已经隐含词序信息,所以不能说“完全不敏感”。

Q9. 以下哪些场景更适合选择 chrF?

多选题 · hard

  • A.韩语到英语的翻译评价← 正确答案
  • B.中文短语翻译且无分词器← 正确答案
  • C.需要严格语义等价的审查
  • D.形态变化丰富的语言对← 正确答案

答案:ABD。chrF 免分词、擅长形态丰富语言,所以韩语、中文无分词器、形态变化多的语言对都适用。C 需要严格语义等价,chrF 只是表面相似度指标,无法判断语义,因此不适用。

Q10. 关于 BLEU 与 chrF 的对比,以下说法正确的有?

多选题 · extreme

  • A.chrF 用 F 值综合精确率和召回率← 正确答案
  • B.BLEU 完全不需要截断计数
  • C.BLEU 用 BP 压低漏译分← 正确答案
  • D.chrF 对拼写差异完全免疫

答案:AC。A 正确,chrF 的本质就是 P/R 的 Fβ 调和平均;C 正确,BP 在候选短于参考时压分,间接惩罚漏译。B 错误,BLEU 恰恰依赖截断计数防刷词;D 错误,chrF 是字符级比对,对拼写差异非常敏感,而非免疫。