机器翻译任务常用指标BLEU及计算方法

释放双眼,带上耳机,听听看~!
本文介绍了机器翻译和生成任务中常用的评价指标之一:BLEU,以及BLEU的计算方法和脚本工具。了解BLEU评价指标的优点和问题,以及如何使用sacrebleu工具计算BLEU相似度。

本文介绍几种生成任务常用的指标之一:BLEU

机器翻译和生成任务中,常用 BLEU (bilingual evaluation understudy) 评价机器翻译模型生成的句子的质量。

BLEU 计算方法

BLEU 是一种基于统计的评价指标,主要是衡量参考译 文和生成的句子中,不同的 n 元组共同出现的比例。其核心思想是评测模型预 测出来 N 元文法 (ngram) 的有多少命中参考译文中的 ngram。BLEU 是一种基于精准度的度量指标。对于给定的一个句子,参考的翻译句可以表示为 R,模型预测的翻译句可以表示为 G,那么 BLEU 的计算方式如下:

机器翻译任务常用指标BLEU及计算方法

其中,k 表示可能存在的 ngram 序号,如果用 wk 表示第 k 组在句子中可能 的 ngram,Ck(G) 表示 wk 在生成的句子中出现的次数,Ck(R) 表示 wk 在参考句中出现的次数。

例如参考译文为“I have a pig as my pat”,模型给出的结果为“my pat is a pig”,那么对于一元文法 (1-gram) 来说,模型预测的一元单词个数为 5,其中 “my”,“pat”,“a”,“pig”都在参考译文中出现过,那么参考译文和模 型输出的匹配度就是五分之四,而对于二元文法 (2-gram) 来说,模型预测出句子总共有 4 个 2-gram,其中只有“my pat”,“a pig”命中参考译文,因此匹配度就是四分之二。

这样的计算方法,有一个很明显的漏洞,即由于是计算模型生成的句子命中参考句子的精确度,那么当模型生成的句子是参考句子的子集的时候,BLEU 值会很高,但生成的句子质量并不好,比如参考句子是“my
pat is cute”,生成的句子是“my pat”,BLEU 算出来是 1,但生成的句子并不是完整的,因此需要加入一个长度惩罚因子 (Brevity Penalty,BP),其中 lg 和 lr 分别表示生成句子和参考句子的长度,加入惩罚因子能更好的评估 生成句子的完整性、充分性。BLEU最终的计算如下:

机器翻译任务常用指标BLEU及计算方法
N 可取的值为在 1 到 4 之间的整数范围内,而 Wn 表示权重,实际计算中,对所有的 n,Wn 取值都是 N1 。使用指数函数的作用是让各阶 n-gram 的权重取值是 服从均分分布的,无论是 1-gram、2-gram、3-gram 还是 N-gram,它们的作用都是同等重要的,如果 N 的取值过大,一般匹配到的精度就会下降,因此 N 一般最多取到4。

利用 BLEU 作为评价指标的优点是快速方便,比较接近人类的评分,但这个指标也存在很多问题,比如无法考虑同义词和近似表达等。

BLEU 计算脚本

计算 BLEU 这一块使用的是GitHub上的一个计算BLEU的工具:sacrebleu。

具体计算两个文件BLEU相似度的命令如下:

sacrebleu --tok none reference < generation_file

使用说明: 需要加上–tok 命令,表示是否使用分词对句子重新分词,设置为none,表示是已经分好词的文件计算BLEU。

本文正在参加 人工智能创作者扶持计划

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

长短期记忆网络 (LSTM):理解与实现

2023-12-15 18:29:14

AI教程

AI推理框架及其重要性

2023-12-15 18:37:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索