赞
踩
BLEU(bilingual evaluation understudy)算法是由IBM提出的用来自动评测机器翻译质量的算法。
N-gram的N指连续的N个word用来匹配,即比较译文和参考译文之间N组词的相似占比。
例如:
原文:今天天气不错
机器译文:It is a nice day today
人工译文:Today is a nice day
如果用1-gram匹配的话:
每1个word用来匹配,最终5个word匹配到了,所以最终1-gram的匹配度为 5/6
我们再以3-gram举例:
可以看到,原文可分为4个3-gram词组,其中2个命中参考译文,因此它3-gram的匹配度为 2/4
依次类推,我们可以很容易实现一个程序来遍历计算N-gram的一个匹配度。一般来说1-gram的结果代表了文中有多少个词被单独翻译出来了,因此它反映的是这篇译文的忠实度;而当我们计算2-gram以上时,更多时候结果反映的是译文的流畅度,值越高文章的可读性就越好。
上面所说的方法比较好理解,也比较好实现,但是没有考虑到召回率,举一个非常简单的例子说明:
原文:猫站在地上
机器译文:the the the the
人工译文:The cat is standing on the ground
在计算1-gram的时候,the 都出现在译文中,因此匹配度为4/4 ,但是很明显 the 在人工译文中最多出现的次数只有2次,因此BLEU算法修正了这个值的算法,首先会计算该n-gram在译文中可能出现的最大次数:
Count是N-gram在机器翻译译文中的出现次数,Max_Ref_Count是该N-gram在一个参考译文中最大的出现次数,最终统计结果取两者中的较小值。然后在把这个匹配结果除以机器翻译译文的N-gram个数。因此对于上面的例子来说,修正后的1-gram的统计结果就是2/4。
我们将整个要处理的将机器翻译的句子表示为Ci,标准答案表示为 Si=si1,…sim(m表示有m个参考答案)
n-grams表示n个单词长度的词组集合,令 W k W_k Wk表示第k个n-gram
比如这样的一句话,”I come from china”,第1个2-gram为:I come; 第2个2-gram为:come from; 第3个2-gram为:from china;
h k ( c i ) h_k(c_i) hk(ci)表示 W k W_k Wk在机器翻译句子Ci中出现的次数
h k ( s i j ) h_k(s_{ij}) hk(sij)表示 W k W_k Wk在标准答案 S i j S_{ij} S
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。