NLP基础知识点:METEOR

Posted 梆子井欢喜坨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLP基础知识点:METEOR相关的知识,希望对你有一定的参考价值。

提出论文:[1] An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
改进论文:[2] Meteor: An Automatic Metric for MT Evaluation with High Levels of Correlation with Human Judgments
参考资料:维基百科
本文以论文2中公式为主

METEOR (Metric for Evaluation of Translation with Explicit ORdering)

  • METEOR基于BLEU进行了一些改进,其目的是解决一些 BLEU 标准中固有的缺陷 。
  • METEOR使用 WordNet 计算特定的序列匹配,同义词,词根和词缀,释义之间的匹配关系,改善了BLEU的效果,使其跟人工判别具有更强的相关性。
  • METEOR基于F1值,其中召回率的权值高于准确率。

用通俗的话解释,METEOR在评估两个句子的相似程度时,考虑了单词的词形,同时用 WordNet 等知识源扩充了同义词集,将评估标准放宽了,比如“friend”翻译为“friends”,“buddy”不算翻译错误。

1. 对齐

算法首先在候选翻译字符串和参考翻译字符串这两个句子之间创建对齐(alignment)。
对齐是unigram之间的一组映射。
映射可以被认为是一个字符串中的一个unigram和另一个字符串中的一个unigram之间的一条线,如下图所示。
图1
图2
候选译文中的每个unigram至多映射到引用中的一个unigram,也可以不映射。
选择映射以生成上面定义的对齐。

  1. 选择连线数最多的映射(the largest subset of these word mappings)
  2. 如果两组映射的连线数相同,则选择交叉最少的那组。

按照如上规则,我们会选择下方图片对应的映射。

对齐过程是由三个单词映射模块逐步产生的。

  • “exact” module: maps two words if they are exactly the same.
  • “porter stem” module: maps two words if they are the same after they are stemmed using the Porter stemmer.
  • “WN synonymy” module: maps two words if they are considered synonyms,based on the fact that they both belong to the same“synset” in WordNet.

下图为一个例子,示意三个模块是如何工作的。
分别是精确匹配,词干化匹配与同义词匹配。
在这里插入图片描述
各阶段是连续运行的,默认顺序是首先应用“exact”映射模块,然后是“porter stem”,然后是“WN synonymy”。每个阶段只会将前一阶段中未匹配的那些unigram添加到对齐中。

2. 计算

当最终的对齐完成之后,就可以开始指标的计算了。
METEOR使用单字精度、单字召回和碎片度量的组合来计算该匹配的分数,碎片度量旨在直接捕获机器翻译中匹配单词相对于reference的有序程度。

m : m: m:候选翻译中能够被匹配的一元组的数量(the number of mapped unigrams found between the two strings )
t : t: t: 候选翻译的长度
r : r: r: 参考翻译的长度
P = m / t : P = m/t: P=m/t: unigram准确率
R = m / r : R = m/r: R=m/r: unigram召回率
在这里插入图片描述
精确度、召回率和Fmean都是基于单个单词的匹配。
为了考虑较长的匹配,定义惩罚因子 P e n Pen Pen,惩罚候选翻译与参考翻译中的词序不同。
两个字符串之间的匹配单字序列被分成尽可能少的chunks,使得每个chunk中的匹配单字在两个字符串中都是相邻的,并且具有相同的词序。
即候选翻译和参考翻译中能够对齐的、且在各自句中连续排列的单词形成一个 chunk。

下面这个例子来自论文[1]

Candidate: the president spoke to the audience.
Reference: the president then spoke to the audience.

能分成两个chunk:“the president"和"spoke to the audience”
比如"the president spoke to the audience"为什么不能成为一个chunk呢?因为reference中多了一个then,使得"president"和"spoke"不再相邻。
显然,匹配的n-grams越长,chunk数量越少,惩罚越小,句子的流畅性越好。

f r a g = c h / m frag = ch/m frag=ch/m c h ch ch为chunks的数量, γ ( 取 值 为 0 到 1 ) 和 β 为 系 数 \\gamma(取值为0到1) 和 \\beta为系数 γ(01)β
在这里插入图片描述
最终计算出的METEOR分数为
在这里插入图片描述

摘自维基百科的一个计算实例(室友的PPT作图好看,直接拿过来)
在这里插入图片描述
第一个候选句完全是乱序,虽然每个词都能匹配上,但能分出6个chunk。
第二个候选句与参考句完全一致,得到1个chunk,得分最高。
第三个候选字,与原句相比多了一个“was”,因此分出了2个chunk,得分也较高。

3. 补充

METEOR的主要缺点时需要外部知识源,比如:WordNet。
如果是WordNet中没有的语言,则无法用METEOR评测。

整个计算过程的可视化如图所示:
在这里插入图片描述
最新版本的METEOR网址
http://www.cs.cmu.edu/~alavie/METEOR/

nltk包的python实现版本

以上是关于NLP基础知识点:METEOR的主要内容,如果未能解决你的问题,请参考以下文章

NLP基础知识和综述

NLP基础知识点:ROUGE

NLP基础知识点:CIDEr算法

NLP基础知识45条

第1章 NLP基础

NLP汉语自然语言处理入门基础知识介绍