文章目录
- 1.前言
- 2.N-gram
- 2.1 1-gram
- 2.2 3-gram
- 2.3 N-gram总结
- 3. BLEU算法
- 3.1 召回率
- 3.2 BLEU公式
- 3.3 惩罚因子
- 3.4 BLEU最终公式
- 4.实例
- 4.1 句子间的BLEU
- 4.2 多个句子间的BLEU
1.前言
最近在利用transformer自动化生成弹幕。在transformer的实现中,用到了一个标准BLEU标准。这个标准全称为bilingual evaluation understudy。同时参考了一些文章的介绍:
- 机器翻译评测——BLEU算法详解
最后根据自己的理解解释一下这个算法的含义。
2.N-gram
BLEU测评标准,主要是利用了N-gram来对翻译译文和标准译文进行一个一个匹对。比如:
机器译文:It is a nice day today
人工译文:Today is a nice day
2.1 1-gram
如果用1-gram进行匹配的话,则可以得到:
这时候,机器译文可以匹配到5个词语,而它总词语数为6,所以匹配度为:
2.2 3-gram
如果使用3-gram进行匹配:
可以看到,机器译文可以组成4个词组,而匹配上了2个词组,所以匹配度为:
2.3 N-gram总结
n-gram匹配以此类推,一般使用1-gram,2-gram,3-gram和4-gram来衡量句子与句子之间的匹配度。1-gram的结果代表了文中有多少个词被单独翻译出来了,因此它反映的是这篇译文的忠实度;而当我们计算2-gram以上时,更多时候结果反映的是译文的流畅度,值越高文章的可读性就越好。
3. BLEU算法
3.1 召回率
上面的n-gram方法,只考虑了机器译文中的词语数,而没有同时考虑人工译文中出现的次数。举个例子:
机器译文:the the the the
人工译文:The cat is standing on the ground
如果使用1-gram方法进行匹配,则得到100%的匹配度。这是因为“the”这个词语在人工译文中都出现了,但这个100%的匹配度显然是不准确的。因此BLEU算法修正了这个错误,改为考虑词语出现在译文中的最小次数:
其中表示在机器译文中的第个词语,则代表在机器译文中这个词语出现的次数,而则代表在人工译文中这个词语出现的次数。最后可以得到修正后的匹配度:
3.2 BLEU公式
首先定义几个数学符号:
- 人工译文表示为,其中,表示共有个参考答案。
- 翻译译文表示,其中,表示共有个翻译。
- N-gram表示个单词长度的词组集合,令表示第个词组
- 表示第个词组在翻译译文中出现的次数
- 表示第个词组在标准答案中出现的次数
最后可以得到计算每个n-gram的公式:
- 在分子中,指的是第k个词组在中的最小次数,也就是相当于找了最相似的候选句子。
3.3 惩罚因子
上面的算法已经足够可以有效的翻译评估了,然而N-gram的匹配度可能会随着句子长度的变短而变好,因此会存在这样一个问题:一个翻译引擎只翻译出了句子中部分句子且翻译的比较准确,那么它的匹配度依然会很高。为了避免这种评分的偏向性,BLEU在最后的评分结果中引入了长度惩罚因子(Brevity Penalty)。
BP的计算公式如上。代表表示机器翻译译文的长度,表示参考答案的有效长度。当存在多个参考译文时,选取和翻译译文最接近的长度。当翻译译文长度大于参考译文的长度时,惩罚系数为,意味着不惩罚,只有机器翻译译文长度小于参考答案才会计算惩罚因子。
3.4 BLEU最终公式
由于各N-gram统计量的精度随着阶数的升高而呈指数形式递减,所以为了平衡各阶统计量的作用,对其采用几何平均形式求平均值然后加权,再乘以长度惩罚因子,得到最后的评价公式:
BLEU的原型系统采用的是均匀加权,即
4.实例
4.1 句子间的BLEU
翻译译文:Going to play basketball this afternoon ?
人工译文:Going to play basketball in the afternoon ?
其中翻译译文gram长度为:7,人工译文长度为:8
- 1-gram计算:
- 2-gram计算:
- 3-gram计算:
- 4-gram计算:
- BP计算:
最后根据公式计算BLEU的值:
4.2 多个句子间的BLEU
翻译译文:
(1)Going to play basketball this afternoon ?
(2)Going to play basketball afternoon ?
人工译文:
(1)Going to play basketball in the afternoon ?
(2)Going to play basketball in the afternoon ?
上面的翻译译文有两个,其对应的人工译文也是有两个。
第一个翻译译文长度:7;第二个翻译译文长度:6
第一个人工译文长度:8;第二个人工译文长度:8
- 1-gram计算:
- 2-gram计算:
- 3-gram计算:
- 4-gram计算:
- BP计算:
最后根据公式计算BLEU的值:
总的来说,如果是评价一个语料集的BLEU,需要把所有的句子进行整体考虑,来计算BLEU,而不是把每个句子的BLEU求和平均。