BLEU分数:我可以用nltk.translate.bleu_score.sentence_bleu来计算中文的bleu分数吗
BLEU scores:could I use nltk.translate.bleu_score.sentence_bleu for calculating scores of bleu in chinese
如果我有中文单词表: like reference = ['我', '是', '好' ,'人'], hypothesis = ['我', '是', '善的','人]。我可以用: nltk.translate.bleu_score.sentence_bleu(references, hypothesis) 进行中文翻译吗?和英文一样吗?日语呢?
我的意思是如果我有像英语这样的单词列表(中文和日语)。谢谢!
TL;DR
是的。
中龙
BLEU 分数衡量 n-gram 及其对语言的不可知性,但它取决于语言句子可以拆分为标记的事实。所以是的,它可以比较 Chinese/Japanese...
注意在句子级别使用 BLEU 分数的注意事项。 BLEU 从未在考虑句子级别比较的情况下创建,这里有一个很好的讨论:https://github.com/nltk/nltk/issues/1838
很有可能,当您的句子非常短时,您会看到警告,例如
>>> from nltk.translate import bleu
>>> ref = '我 是 好 人'.split()
>>> hyp = '我 是 善良的 人'.split()
>>> bleu([ref], hyp)
/usr/local/lib/python2.7/site-packages/nltk/translate/bleu_score.py:490: UserWarning:
Corpus/Sentence contains 0 counts of 3-gram overlaps.
BLEU scores might be undesirable; use SmoothingFunction().
warnings.warn(_msg)
0.7071067811865475
您可以使用https://github.com/alvations/nltk/blob/develop/nltk/translate/bleu_score.py#L425中的平滑功能来克服短句。
>>> from nltk.translate.bleu_score import SmoothingFunction
>>> smoothie = SmoothingFunction().method4
>>> bleu([ref], hyp, smoothing_function=smoothie)
0.2866227639866161
如果我有中文单词表: like reference = ['我', '是', '好' ,'人'], hypothesis = ['我', '是', '善的','人]。我可以用: nltk.translate.bleu_score.sentence_bleu(references, hypothesis) 进行中文翻译吗?和英文一样吗?日语呢? 我的意思是如果我有像英语这样的单词列表(中文和日语)。谢谢!
TL;DR
是的。
中龙
BLEU 分数衡量 n-gram 及其对语言的不可知性,但它取决于语言句子可以拆分为标记的事实。所以是的,它可以比较 Chinese/Japanese...
注意在句子级别使用 BLEU 分数的注意事项。 BLEU 从未在考虑句子级别比较的情况下创建,这里有一个很好的讨论:https://github.com/nltk/nltk/issues/1838
很有可能,当您的句子非常短时,您会看到警告,例如
>>> from nltk.translate import bleu
>>> ref = '我 是 好 人'.split()
>>> hyp = '我 是 善良的 人'.split()
>>> bleu([ref], hyp)
/usr/local/lib/python2.7/site-packages/nltk/translate/bleu_score.py:490: UserWarning:
Corpus/Sentence contains 0 counts of 3-gram overlaps.
BLEU scores might be undesirable; use SmoothingFunction().
warnings.warn(_msg)
0.7071067811865475
您可以使用https://github.com/alvations/nltk/blob/develop/nltk/translate/bleu_score.py#L425中的平滑功能来克服短句。
>>> from nltk.translate.bleu_score import SmoothingFunction
>>> smoothie = SmoothingFunction().method4
>>> bleu([ref], hyp, smoothing_function=smoothie)
0.2866227639866161