为什么机器翻译中使用的两个相同句子的 METEOR 分数不等于 1?

问题描述

我有两个相同的句子。但是 METEOR score 不是 1,而是 0.99。

代码如下:score1 = nltk.translate.meteor_score.meteor_score(sentence1,sentence2)@H_404_4@

解决方法

在计算分块惩罚时,这似乎是一种舍入错误。它表示句子必须被分成多少个不连贯的块才能获得参考和假设之间的对齐。其目的是惩罚包含正确单词和短语的假设句子,但其顺序与参考文献中的顺序非常不同。

请参阅 paper introducing METEOR,第 2 节:

enter image description here

如果您通过将 gamma 设置为零来摆脱惩罚,对于相同的句子,您总是会得到 1.0:

import nltk
sentence = "This is a very long sentence."

nltk.translate.meteor_score.meteor_score([sentence],sentence,gamma=1)
# returns 0.9953703703703703

nltk.translate.meteor_score.meteor_score([sentence],gamma=0)
# returns 1.0