[LLM评测/评价指标]用 Python 计算文本 BLEU 分数和 ROUGE 值

用 Python 计算文本 BLEU 分数和 ROUGE 值

  •  2020年 08月13日

文本生成是自然语言处理 (NLP) 中常见的一类任务,例如机器翻译、自动摘要、图片标题生成等等。如何评估生成文本的质量,或者说衡量生成文本与参考文本之间的差异,是一个必须考虑的问题。目前比较常见的评估方法就是计算 BLEUBLEU 分数和 ROUGEROUGE 值。

BLEU

BLEUBLEU (Bilingual Evaluation Understudy, 双语评估替换) 一开始是为翻译工作而开发的,是一个比较候选文本翻译与其他一个或多个参考翻译的评价分数。完美匹配的得分为 1.01.0,完全不匹配则得分为 0.00.0。尽管它还没做到尽善尽美,但它具有计算速度快、容易理解、与具体语言无关等优点。

翻译系统的 BLEUBLEU 得分不可能为 1,除非它们与参考翻译完全相同。通常一个人类翻译在四个参考翻译下的得分为 0.34680.3468,在两个参考翻译下的得分为 0.25710.2571。

BLEUBLEU 评分由 Kishore Papineni 等人在 2002 年的论文《BLEU: a Method for Automatic Evaluation of Machine Translation》中提出。这种评测方法通过对候选翻译与参考文本中的相匹配的 n𝑛 元组进行计数,其中一元组 (1-gram1-gram / unigramunigram) 比较的是每一个单词,而二元组 (bigrambigram) 比较的则是每个单词对,以此类推,并且这种比较是不管单词顺序的匹配个数越多,表明候选翻译的质量就越好

同时为了避免机器翻译系统为了追求高精度而生成过多的“合理”单词,从而导致翻译结果不恰当。在识别出匹配的候选单词之后,相应的参考单词就被视为用过了,以确保不会对产生大量合理词汇的候选翻译进行加分。在论文中这被称之为修正的 n𝑛 元组精度

BLEU 评分是用来比较语句的,但是又提出了一个能更好地对语句块进行评分的修订版本,这个修订版根据 n 元组出现的次数来使 n 元组评分正常化。首先逐句计算 n 元组匹配数目,然后为所有候选句子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

医疗AI强化曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值