为什么这对的 bleu 分数为零,即使它们很相似

why the bleu score is zero for this pair even though they are similar

为什么我得到 0 分,即使句子相似。请参考以下代码

from nltk.translate.bleu_score import sentence_bleu

score = sentence_bleu(['where', 'are', 'economic', 'networks'], ['where', 'are', 'the', 'economic', 'network'])

print(score)

如果你运行上面的代码

,得分值为'0'

这与您如何将引用传递给方法有关。

查看 documentation or more specifically this sample of how to use it

参考文献必须是一个列表(要与假设进行比较的所有参考翻译的列表)。因此,在您的情况下,一个列表包含一个标记化的参考翻译。

像这样使用它,它将起作用:

score = sentence_bleu([['where', 'are', 'economic', 'networks']], ['where', 'are', 'the', 'economic', 'network'])
> 9.283142785759642e-155

尽管我不得不承认我之前也曾遇到过完全相同的问题,而且这在 NLTK 部分不是很直观。该文档甚至指出引用必须是 list(list(str)) 类型,但随后不检查是否属于这种情况,而是 returns 如果使用不当会产生误导性结果。