mteval-v13a.pl 和 NLTK BLEU 有什么区别?

What is the difference between mteval-v13a.pl and NLTK BLEU?

Python NLTK 中有一个 BLEU 分数的实现, nltk.translate.bleu_score.corpus_bleu

但我不确定它是否与mtevalv13a.pl script相同。

它们有什么区别?

TL;DR

评估机器翻译系统时使用 https://github.com/mjpost/sacrebleu

简而言之

不,NLTK 中的 BLEU 与 mteval-13a.perl 并不完全相同。

但它可以非常接近,参见 https://github.com/nltk/nltk/issues/1330#issuecomment-256237324

nltk.translate.corpus_bleu corresponds to mteval-13a.pl up to the 4th order of ngram with some floating point discrepancies

比较的细节和使用的数据集可以从https://github.com/nltk/nltk_data/blob/gh-pages/packages/models/wmt15_eval.zip或:

下载
import nltk
nltk.download('wmt15_eval')

主要区别:


中龙

mteval-13a.plnltk.translate.corpus_bleu有几个区别:

除了差异之外,NLTK BLEU 分数包含更多特征:

最后,为了验证 NLTK 版本的 BLEU 中添加的功能,为它们添加了回归测试,请参阅 https://github.com/nltk/nltk/blob/develop/nltk/test/unit/translate/test_bleu.py