发新帖

有人用过BLEU评估过文本得分吗?

[复制链接]
84 3

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x

python代码如下

from nltk.translate.bleu_score import sentence_bleu
reference = [['a', 'close', 'up', 'picture', 'of', 'a', 'brown', "bear's", 'face'], ['A', 'large', 'bear', 'that', 'is', 'sitting', 'on', 'grass', ''], ['Closeup', 'of', 'a', 'brown', 'bear', 'sitting', 'in', 'a', 'grassy', 'area'], ['The', 'large', 'brown', 'bear', 'has', 'a', 'black', 'nose'], ['A', 'big', 'burly', 'grizzly', 'bear', 'is', 'show', 'with', 'grass', 'in', 'the', 'background']]
candidate = ['a', 'large', 'brown', 'bear', 'standing', 'on', 'top', 'of', 'a', 'grass', 'covered', 'field']
print('Individual 1-gram: %f' % sentence_bleu(reference, candidate, weights=(1, 0, 0, 0)))
print('Individual 2-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 1, 0, 0)))
print('Individual 3-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 0, 1, 0)))
print('Individual 4-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 0, 0, 1)))

得到输出为
···
UserWarning:
Corpus/Sentence contains 0 counts of 4-gram overlaps.
BLEU scores might be undesirable; use SmoothingFunction().
Individual 1-gram: 0.666667
Individual 2-gram: 0.272727
Individual 3-gram: 0.100000
Individual 4-gram: 1.000000
···
我不懂这里4-gram为什么会报错,并且是否1-gram得分就是BLEU-1得分,4-gram就是BLEU-4得分呢?
希望懂的人能帮帮我,谢谢大家啦!

我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有3人回答
本楼点评(0) 收起

精彩评论3

yunhai_luo  TF豆豆  发表于 2018-4-23 05:30:26 来自手机  | 显示全部楼层
对BLEU不是特别熟,所以我不确定4-gram是不是你所说的BLEU-4得分,但你的代码权重是正确的单一4元得分。

不过4-gram报错的原因貌似挺明显的:你的reference中的任何一句都不包含candidate中的任何一个4元词组,所以错误信息里面也说了“Sentence contains 0 counts of 4-gram overlaps.”

手机上发代码不太方便,简单解释一下为什么得到1.0这个不合理的结果(BLEU scores might be undesirable):首先是没有4元词组这个问题导致你计算4-gram时默认的smoothing_function返回0(其实是没有得分),得分变换后得到1.0;第二就是你第四个reference和candidate长度相等,导致brevity_penalty=1。以上两者相乘得到了1.0。
本楼点评(0) 收起
StormshadowRay  TF荚荚  发表于 2018-4-23 09:16:59 | 显示全部楼层
yunhai_luo 发表于 2018-4-23 05:30
对BLEU不是特别熟,所以我不确定4-gram是不是你所说的BLEU-4得分,但你的代码权重是正确的单一4元得分。

...

明白了,谢谢大佬啦。
本楼点评(0) 收起
舟3332  TF豆豆  发表于 2018-4-23 20:36:53 | 显示全部楼层
yunhai_luo 发表于 2018-4-23 05:30
对BLEU不是特别熟,所以我不确定4-gram是不是你所说的BLEU-4得分,但你的代码权重是正确的单一4元得分。

...

不明觉厉!
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表