gpt4 book ai didi

python - 在 Python 中计算 BLEU 分数

转载 作者:太空狗 更新时间:2023-10-29 17:54:14 26 4
gpt4 key购买 nike

有一个测试句和一个引用句。我如何编写一个 Python 脚本,以自动机器翻译评估中使用的 BLEU 度量的形式测量这两个句子之间的相似性?

最佳答案

BLEU 分数由两部分组成,修改后的精度和简洁性惩罚。详情可见paper .您可以使用 nltk.align.bleu_score NLTK 中的模块。一个代码示例如下所示:

import nltk

hypothesis = ['It', 'is', 'a', 'cat', 'at', 'room']
reference = ['It', 'is', 'a', 'cat', 'inside', 'the', 'room']
#there may be several references
BLEUscore = nltk.translate.bleu_score.sentence_bleu([reference], hypothesis)
print(BLEUscore)

请注意,默认的 BLEU 分数使用 n=4,其中包括 unigrams 到 4 克。如果你的句子小于4,你需要重新设置N值,否则会返回ZeroDivisionError: Fraction(0, 0)错误。所以,你应该像这样重置权重:

import nltk

hypothesis = ["open", "the", "file"]
reference = ["open", "file"]
#the maximum is bigram, so assign the weight into 2 half.
BLEUscore = nltk.translate.bleu_score.sentence_bleu([reference], hypothesis, weights = (0.5, 0.5))
print(BLEUscore)

关于python - 在 Python 中计算 BLEU 分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com