一、 BLEU
全称 Bilingual Evaluation Understudy,用于评估机器翻译和参考翻译的相似度。
- n-gram匹配和精度
评估机翻和参考翻译之间的重叠度。比如有如下两个句子:
C: I love pig and dog dog.
R: I love dog.
对于1-gram,如下所示,计算得precision为 3/6,3表示C中有3个word与R重叠 (去除了重复部分),6表示C长度为6;
C: I; love; pig; and; dog; dog;
R: I; love; dog;
对于2-gram,如下所示,计算得precison为 1/5;
C: I love; love pig; pig and; and dog; dog dog;
R: I love; love dog;
但是n-gram毕竟只是表示局部词之间的重叠度,也不能表示语义信息,而 句子是可以从不同角度理解的,故它并不是一个很好的评估指标;
- BLEU - 公式表示为: $$ BLEU=BP\times \text{exp}(\sum_{n=1}^Nw_n\text{log }p_n) $$- 其中BP是惩罚因子,$w_n$是每个n-gram的权重,通过为$\frac{1}{N}$,$p_n$则是不同n-gram的precision。而BP的公式如下: $$ BP = \begin{cases} 1, & \text{如果 } c > r \\ \exp\left(1 - \frac{r}{c}\right), & \text{如果 } c \leq r \end{cases} $$- BLEU-1就是只计算BP和1-gram; BLEU-2就是计算BP和1-gram以及2-gram;如此……同样,BLEU也是通过n-gram来计算的, 它也不具备理解语义信息,或者对句子词的顺序也不敏感,且缺乏对长句子的惩罚,重复单词也不能反映到得分上。 
二、ROUGE
全称Recall-Oriented Understudy for Gisting Evaluation, 专注于召回率的评估。
- 变体1 ROUGE-N
评估n-gram的重叠程度,不同的是分母从机器翻译的n-gram总数变成了参考文本的n-gram总数。公式如下:
$$ ROUGE-N = \frac{\text{机翻和参考文本匹配的n-gram}}{\text{参考文本的n-gram}} $$- 变体2 ROUGE-L (常用)
基于 最长公共子序列(Longest Common Subsequence, LCS) , LCS允许不连续匹配,但要保持顺序,更适合句子级别的匹配,公式如下:
$$ ROUGE-L = \frac{LCS(机翻,参考)}{参考文本长度} $$举个例子:
R: The cat is on the mat.
C: The cat mat mat mat on
那么LCS: [‘The’ , ‘cat’, ‘mat’] = 3
R: The cat is on the mat.
C: The cat on mat mat mat.
则 LCS: [‘The’ , ‘cat’, ‘on’ , mat’] = 4
所以ROUGE本身的优势是一个是它更关注召回率(以参考文本为分母),第二个就是ROUGE-L注重句子中词语出现的顺序。但是也有缺陷,一是同样不能理解语义信息,第二个就是没有办法处理重复词。
三、METEOR
全称Metric for Evaluation of Translation with Explicit ORdering,计算过程如下:
- 词匹配 - 包括完全匹配,单复数匹配,同义词匹配(通过wordnet这样的词典寻找)、词形变化匹配。匹配的意思是dog和dogs、run和running、fast和quick这样的词都算是一样的 
- Precision和recall - P = 匹配词汇 / 机翻总词汇 - R = 匹配词汇 / 参考总词汇 
- BP计算 
其中Chunks的概念如下:

- METEOR计算 $$ \text{METEOR}=\text{F1}\times\text{BP} $$
其中$F1 = \frac{(\alpha^2+1)P}{R+\alpha P}$ 。METEOR的好处有几个,一是有词性和同义词匹配,而这是其他两个没有的。通过chunks惩罚,METEOR也考虑了次序和连续性,这是BLEU没有的;且其平衡了Precision和recall,更全面。但是也有几个缺陷,一个是基于n-gram,那必定会错过更高级的语义和句法差异;第二个计算复杂性高;第三个就是对外部库有依赖;第四个是有权重和超参的选择。