机器翻译评测——BLEU算法详解

BLEU算法介绍和如何计算:

 

我们先举一个例子来说明:

原文:猫站在地上

机器译文 (candidate):the the the the 

人工译文 (reference):The cat is standing on the ground

   在计算1-gram(一元文法)的时候,the 都出现在译文中,因此匹配度为4/4 ,但是很明显 the 在人工译文中最多出现的次数只有2次,因此BLEU算法修正了这个值的算法,首先会计算该n-gram在译文中可能出现的最大次数:

 

\large Count_{clip}=min(Count,Max\_Ref\_Count)

 Count是N-gram在机器翻译译文中的出现次数,Max_Ref_Count是该N-gram在一个参考译文中最大的出现次数,最终统计结果取两者中的较小值。然后在把这个匹配结果除以机器翻译译文的N-gram个数。

因此对于上面的例子来说,Count 就是 the 出现在机器译文中的次数,恰好为 4,Max_Ref_Count 就是 the 出现人工译文中的次数,恰好为2,所以这一次 修正后的1-gram的统计结果就是2/4。综上所述各阶N-gram的精度都可以按照下面这个公式计算:

所以 公式为:

 

机器翻译评测——BLEU算法详解_第1张图片

这样就得出来 \large p_n .

 

惩罚因子

  上面的算法已经足够可以有效的翻译评估了,然而N-gram的匹配度可能会随着句子长度的变短而变好,因此会存在这样一个问题:一个翻译引擎只翻译出了句子中部分句子且翻译的比较准确,那么它的匹配度依然会很高。为了避免这种评分的偏向性,BLEU在最后的评分结果中引入了长度惩罚因子(Brevity Penalty)。

\large \dpi{150} \large BP=\left\{\begin{matrix} 1&\quad if \quad c>r \\ exp(1-r/c)& \ if \quad c\leq r \end{matrix}\right.

 

所以,我们可以得出:BLEU的公式了:

BLEU

 

\large BLEU=BP\cdot exp(\sum_{N=1}^4w_nlog(p_n))

其中 :\large w_n=1/N

又是什么鬼?先不用想这么多,其实就是一些数学运算,它的作用就是让各阶n-gram取权重服从均匀分布,就是说不管是1-gram、2-gram、3-gram还是4-gram它们的作用都是同等重要的。由于随着n-gram的增大,总体的精度得分是呈指数下降的,所以一般N-gram最多取到4-gram。
 

当 N=4 的时候,那就是我们最常见的 BLEU-4 了。

 

怎么使用BLEU?

说实话,数学用人话来解释是非常困难的,我们还是来通过例子来学习,还是之前的:

    机器翻译:The cat sat on the mat.
    人工翻译:The cat is on the mat.

第一步:计算各阶n-gram的精度

P1 = 5 / 6 = 0.833333333333333
P2 = 3 / 5 = 0.6
P3 = 1 / 4 = 0.25
P4 = 0 / 3 = 0

第二步:加权求和

取权重:  \large w_n=1/4 =0.25

加权求和:

\large \sum _{N=1}^4 w_n \log(P_n)=0.25logP_1+0.25logP_2+0.25logP_3+0.25logP_4=

−0.5198603854199589

 

第三步:求BP

机器翻译长度 = 参考译文长度,所以:

BP = 1

最后求BLEU-4

BLEU-4=1∗exp(−0.5198603854199589)=0.5946035575013605
 

BLEU 是特别好的机器翻译的评价指标,影响BLEU主要因素,还是匹配上的N-gram的长度,也就是 Pn的 分子,Candidate中的长度如果比reference中长,则Candidate的长度对BLEU的值影响不大。

 

 

 

 

你可能感兴趣的:(人工智能)