Bleu浅析

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这么一个调整因子:

BP=\begin{cases} 1& \ { if } c>r \\ e^{1-r/c} & \ {if } c\leq r \end{cases}

r为参考翻译的句子长度,c为MT的输出句子长度,若c<=r ,则 0

Bleu(total)=BP*bleu(avg)

你可能感兴趣的:(自然语言处理(nlp))