机器学习中的 BLEU 分数

2025年2月3日 | 阅读 7 分钟

神经机器翻译 (NMT) 是自然语言处理 (NLP) 中的另一项标准任务,涉及将文本从一种语言翻译成另一种语言。BLEU (Bilingual Evaluation Understudy) 是用于评估机器翻译文本质量的自动评估指标的名称。在本文中,我们将结合 Python 代码的特定参考,讨论 BLEU 分数是如何在数学细节上工作的。

BLEU 分数是用于评估翻译在片段级别的质量的一种方法。请注意,BLEU 分数也被提及为在机器翻译任务评估中使用的度量。它通过将机器翻译句子的 n-gram 与人工翻译句子的 n-gram 进行匹配来计算。一般来说,BLEU 与衣物的长度与承载能力成反比,但这可能因翻译模型的形态而有显著差异。下图展示了 BLEU 分数与句子数量的不同图表。

为此,我们需要为 BLEU 分数形成一个方程,该方程衡量候选翻译与参考翻译的相似程度。

在数学上,BLEU 分数由以下公式给出:

Bleu Score in Machine Learning

其中

  • BP 代表长度惩罚 (Brevity Penalty)。
  • Wi 是 i 阶 n-gram 精度的权重;通常,所有 i 的权重都相同。
  • pi 是 i 阶的 n-gram 修改精度分数。
  • N 是应使用的 n-gram 的最大阶数(通常,其值设置为 4)。

修改的 n-gram 精度 (pi)

修改精度 (pi) 的定义是包含候选翻译中的所有 n-gram,但仅包含可以至少在一个参考翻译中找到的 n-gram;然后将此值裁剪到与候选翻译中的 n-gram 数量完全相同的值。

Bleu Score in Machine Learning

其中

Count Clip(计数裁剪):这是一个函数,通过在所有参考翻译中该 n-gram 的最大计数(Max Ref Count)来减少匹配的 n-gram 相等的数量。

matchesi:这是 i 阶 n-gram 与候选翻译中的任何参考翻译完全匹配的数量。

max-ref-count:这是特定 i-ngram(i 阶 ngram)在所有参考翻译中使用的最大次数。

candidate-n-grams:这是候选翻译中 i 阶 n-gram 的总数。

长度惩罚 (BP)

BLEU 惩罚按公式 4 计算,以惩罚比参考翻译短的翻译。其数学定义为:

Bleu Score in Machine Learning

其中,

r 与候选翻译中的字符数有关。

c 是所有参考翻译长度的平均值。

计算 BLEU 分数

现在让我们通过一个法语到英语的翻译示例来理解 BLEU 分数的计算过程。

示例

引用

参考 1: ["the", "cat", "sat", "on", "the", "mat"]

参考 2: ["the", "cat", "is", "on", "the", "mat"]

预测: ["the", "cat", "sat", "on", "the", "mat"]

计算 BLEU 分数的步骤

1. 单词精度 (P1)

  • 机器翻译单词:the, cat, sat, on, the, mat
  • 参考单词:the, cat, sat, on, the, mat
  • 裁剪计数
    • the (min(2, 2) = 2)
    • cat (min(1, 1) = 1)
    • sat (min(1, 1) = 1)
    • on (min(1, 1) = 1)
    • mat (min(1, 1) = 1)
  • 总裁剪计数:2 + 1 + 1 + 1 + 1 = 6
  • 机器翻译总计数:6
  • 精度:P1 = 6/6 = 1.0

2. 二元语法精度 (P2)

  • 机器翻译二元语法:the cat, cat sat, sat on, on the, the mat
  • 参考二元语法:the cat, cat sat, sat on, on the, the mat
  • 裁剪计数
    • the cat (min(1, 1) = 1)
    • cat sat (min(1, 1) = 1)
    • sat on (min(1, 1) = 1)
    • on the (min(1, 1) = 1)
    • the mat (min(1, 1) = 1)
  • 总裁剪计数:1 + 1 + 1 + 1 + 1 = 5
  • 机器翻译总计数:5
  • 精度:P2 = 5/5 = 1.0

3. 三元语法精度 (P3)

  • 机器翻译三元语法:the cat sat, cat sat on, sat on the, on the mat
  • 参考三元语法:the cat sat, cat sat on, sat on the, on the mat
  • 裁剪计数
    • the cat sat (min(1, 1) = 1)
    • cat sat on (min(1, 1) = 1)
    • sat on the (min(1, 1) = 1)
    • on the mat (min(1, 1) = 1)
  • 总裁剪计数:1 + 1 + 1 + 1 = 4
  • 机器翻译总计数:4
  • 精度:P3 = 4/4 = 1.0

4. 4-gram 精度 (P4)

  • 机器翻译 4-gram:the cat sat on, cat sat on the, sat on the mat
  • 参考 4-gram:the cat sat on, cat sat on the, sat on the mat
  • 裁剪计数
    • the cat sat on (min(1, 1) = 1)
    • cat sat on the (min(1, 1) = 1)
    • sat on the mat (min(1, 1) = 1)
  • 总裁剪计数:1 + 1 + 1 = 3
  • 机器翻译总计数:3
  • 精度:P4 = 3/3 = 1.0

5. 长度惩罚 (BP)

  • 机器翻译长度:6
  • 最大参考长度:6
  • 长度惩罚:BP = min(1, 6/6) = 1.0

6. BLEU 分数计算

  • 权重:w1 = 0.25, w2 = 0.25, w3 = 0.25, w4 = 0.25
  • BLEU 分数
    • BLEU = BP * exp(∑4n=1 wn *log(Pn))
    • 代入数值
      BLEU = 1.0 * exp(0.25 * log(1.0) + 0.25 * log(1.0) + 0.25 * log(1.0) + 0.25 * log(1.0))
    • Bleu = 1.0 * exp(0) = 1.0

代码步骤

  1. 从 nltk 导入必要的模块以计算 bleu 分数。
  2. 确定将分配给将包含在 BLEU 分数中的 n-gram 的权重。
  3. 规定参考文本和预测文本的值。
  4. 对于我们给定的权重和计算出的分数,完成此过程以计算 BLEU 分数。
  5. 打印 BLEU 分数。

代码

输出

 
BLEU score: 1.0   

说明

代码应用 NLTK 的 sentence_bleu 算法来获取翻译的 BLEU 分数。首先,它调用必要的模块,然后确定 uni-gram、bi-gram、tri-gram 和 4-gram 精度的权重。参考翻译和机器翻译文本被定义为单词列表。然后根据这些输入确定 BLEU 分数,并将值打印出来。本示例使用了与第一个示例不同的输入文本样本,以展示该函数的多功能性。

BLEU 分数的性能

尽管研究表明 BLEU 对人类判断敏感,但它仍然是评估新指标的标准。然而,它有一些批评。

  1. 语言限制:BLEU 目前无法处理没有词边界的语言。
  2. 单参考用法:尽管它设计用于多参考翻译,但它经常仅应用于其中一个。
  3. 分词依赖:BLEU 的另一个核心问题是它对分词方式敏感;因此,使用不同分词器获得的 BLEU 分数不容易进行比较。为了解决这个问题,SacreBLEU 变体被创建,以获得更好的可重复性,从而与其他模型更具可比性。
  4. 翻译质量:较高的 BLEU 分数也可能意味着非常低的翻译性能。

BLEU 分数的应用

传统上,BLEU 分数用于评估机器翻译,因此称为“双语”。然而,现在它已应用于各种涉及文本生成的 NLP 任务,包括:

  1. 文本摘要:确定生成的摘要内容与人类专家参考摘要内容的相似程度。
  2. 图像字幕:计算生成的字幕与人类生成的参考字幕的对应程度。
  3. 机器翻译:与人工翻译和一致认为是完美的翻译相比,确定模型翻译的质量。
  4. 语音识别:将生成的文本与参考文本进行比较,以确定每个生成文本在多大程度上准确反映了原始语音文本。

结论

BLEU (Bilingual Evaluation Understudy) 分数通过比较翻译文本中的 n-gram(unigrams、bigrams、trigrams 等)与参考翻译来衡量机器生成的翻译质量。它为每个 n-gram 阶数计算精度,并应用长度惩罚来惩罚较短的翻译。该指标使用不同 n-gram 级别的权重来实现,以评估翻译的准确性。尽管 BLEU 被广泛使用,但它存在局限性,例如对分词的敏感性和单参考使用,这使其对于某些语言和任务的效果较差。它仍然是评估机器翻译和其他 NLP 文本生成任务的关键工具。