[NLP]n-gram-Bleu理解学习

[NLP]N-gram-Bleu

机器翻译中常用的自动评价指标是 BLEU 算法,除了在机器翻译中的应用,在其他的 seq2seq 任务中也会使用,例如对话系统。
bilingual evaluation understudy ,意为双语评估替换,是衡量一个有多个正确输出结果的模型的精确度的评估指标。

人工给出的译文为reference,机器翻译的译文为candidate。
对于N-gram bleu,N-gram指的是每次取句子里的几个连续的words

实际上分母就是candinate中n−gram的个数,分子是出现在reference中的candinate中n−gram的个数。

下面拿中英机器翻译做例子:

中文:垫上有一只老鼠。

参考翻译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:
[NLP]n-gram-Bleu理解学习_第1张图片
上面的Count(clip) 叫截取计数,是取每个单词在所有参考翻译句子中,出现最多的次数,the在参考翻译1中出现2次,在参考翻译2中出现1次,所以the的Count(clip)取最大值就是2,剩下的单词依次类推。

所以bleu的一元组上的得分为:p1 = Count(clip)/Count=(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.

[NLP]n-gram-Bleu理解学习_第2张图片
所以bleu的二元组的得分为:p2 = Count(clip)/Count=(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.

[NLP]n-gram-Bleu理解学习_第3张图片
所以bleu的三元组的得分为:p3 = Count(clip)/Count= 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)

你可能感兴趣的:(NLP)