Bleu 全称为 bilingual evaluation understudy ,意为双语评估替换,是衡量一个有多个正确输出结果的模型的精确度的评估指标。
下面拿中英机器翻译做例子:
中文:垫上有一只老鼠。
参考翻译1:The cat is on the mat.
参考翻译1:There is a cat on the mat.
MT:the cat the cat on the mat.
bleu的得分有一元组,二元组,三元组等等,这里只做到三元组。
下面先计算一元组得分,即先把MT输出的句子拆分成the,cat,on,mat,频数分别为3,2,1,1:
MT中的unigrams | Count | Count(参考翻译1) | Count(参考翻译2) | Count(clip)截取计数 |
the | 3 | 2 | 1 | 2 |
cat | 2 | 1 | 1 | 1 |
on | 1 | 1 | 1 | 1 |
mat | 1 | 1 | 1 | 1 |
上面的Count(clip) 叫截取计数,是取每个单词在所有参考翻译句子中,出现最多的次数,the在参考翻译1中出现2次,在参考翻译2中出现1次,所以the的Count(clip)取最大值就是2,剩下的单词依次类推。
所以bleu的一元组上的得分为:p1 = Count/Count(clip)=(2+1+1+1)/(3+2+1+1) =5/7
下面再计算bleu的二元组得分:
参考翻译1:The cat is on the mat.
参考翻译1:There is a cat on the mat.
MT:the cat the cat on the mat.
MT中的bigrams | Count | Count(参考翻译1) | Count(参考翻译2) | Count(clip)截取计数 |
the cat | 2 | 1 | 0 | 1 |
cat the | 1 | 0 | 0 | 0 |
cat on | 1 | 0 | 1 | 1 |
on the | 1 | 1 | 1 | 1 |
the mat | 1 | 1 | 1 | 1 |
所以bleu的二元组的得分为:p2 = Count/Count(clip)=(1+0+1+1+1)/(2+1+1+1+1) =4/6=2/3
同理bleu的三元组得分:
参考翻译1:The cat is on the mat.
参考翻译1:There is a cat on the mat.
MT:the cat the cat on the mat.
MT中的3-grams | Count | Count(参考翻译1) | Count(参考翻译2) | Count(clip)截取计数 |
the cat the | 1 | 0 | 0 | 0 |
cat the cat | 1 | 0 | 0 | 0 |
the cat one | 1 | 0 | 0 | 0 |
cat one the | 1 | 0 | 1 | 1 |
one the mat | 1 | 1 | 1 | 1 |
所以bleu的三元组的得分为:p3 = Count/Count(clip)= 2/5
最后加所有元组的bleu得分都加起来然后取平均数得
bleu(avg) = (p1+p2+p3)/3 = (5/7+2/3+2/5)/3 = 0.594
最后再乘上一个“简短惩罚” BP(brevity penalty),即最后的bleu得分为:Bleu(total)=BP*bleu(avg)。
这里说明一下为什么要乘以BP:
如果MT输出了一个非常短的翻译,那么会更容易得到一个高精度的bleu,因为输出的大部分词都会出现在参考翻译中,所有我们并不想要特别短的翻译结果,所有加入BP这么一个调整因子:
r为参考翻译的句子长度,c为MT的输出句子长度,若c<=r ,则 0 Bleu(total)=BP*bleu(avg)