Bleu:此'蓝'非彼蓝

来源

像seq2seq这样的模型,输入一个序列,输出一个序列,它的评分不像文本分类那样仅仅通过label是否一样来判断算出得分。比如机器翻译,它既要考虑语义,还要考虑语序。所以,在2002年一位国外的大牛(是的,没错基本木有中国人。。)Papineni et.al. 提出了Bleu方法,在Bleu:A method for automatic evaluation of machine translation中。

Bleu维基百科:BLEU (Bilingual Evaluation Understudy) is an algorithm for evaluating the quality of text which has been machine-translated from one natural language to another.

简单理解就是评价机器翻译的一个标准算法,但是Bleu也不仅仅局限于机器翻译,在文本摘要等应用也可以有同样的作用。

原理

举个例子:

第一句是法语,需要把它翻译成英语;下面两个Reference句子是标准答案的参考(下面告诉你这个怎么用),最后一句就是机器翻译的句子。(举这个特例例子是也是因为会感受到机器学习评价算法的不断优化过程)

首先从一开始的Precision精确度说起:

Precision:就是看机器翻译的句子里的一个一个单词是不是在Reference中出现过,出现的话分子加1,其中该句子的长度值为分母,其实也就是计算该句子的出现的词在已给答案中出现的概率,这个很明显是7/7=1

但是,很明显这个方法是不合理的,比如在Reference中出现过一次的词就不能再参与计数了。随后,为了提出更加完善的方法,有人提出了modified recision 翻译为“修正的精确度”。

modified recision 还以这个为例:

其中设count为机器翻译的句子的词在本句子中出现的词数,count_clip为该句子中的词在Reference中对应的词出现的词数(如果两个都有,则选取最大的)评分为count_clip / count

现在我匹配 the,其中Reference1的the个数为2大于Reference2的the个数1,则the这个词的就选取值最大的Reference,即count_clip=2。因为这个句子就这一个词,count=7所以,评分为2/7。

上述可以说在unigram上,也就是一个词一个词,现在来说说Bleu在bigram上的计算:

bigram就是两个词作为一个大词(也就是一个串),这里为:

这个也很明显,结果为:

所以评分为:4/6

像这样,我们能推出n-gram的评分值为:

其中Candidate就是机器翻译出来的句子,即候选句子的意思。

很明显,如果一个机器翻译出来的句子和答案一样,那么它的P1,P2,。。。Pn都会为1.0。但是我们一般不会把n设为该句子的长度,根据前辈和论文中经常用到的值,我们得出P4是最合适的。也就是到4-gram就可以了。

但是想想为什么要用到n-gram呢?我觉得是这样的:

P1,也就是用unigram计算句子的词的精确度,用Pn,n>1的ngram来计算句子的流畅度!

现在我们来说另一个问题:

因为我们要把P1-4都要用起来,一起来评价,最好merge到一起,用一个值来表示。但是怎么merge到一起呢?大牛们说了:

merge到一起就该想到万能的一个数:e

对,就是这样(大牛们具体是这么做的):

首先将他们取和在平均(以n=4为例):

然后在乘一个值BP brevity penalty 目的是为了对短句子的惩罚:

大结局:

其中

=1/n, n一般为4

ok,就这样吧。如果有疑问,欢迎提出来,我们一起探讨!!

参考资料:

一种机器翻译的评价准则—Bleu

http://blog.csdn.net/qq_21190081/article/details/53115580

本文分享自微信公众号 - 深度学习自然语言处理(zenRRan),作者:zenRRan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2018 NLPCC Chinese Grammatical Error Correction 论文小结

    这一段时间,笔者一直在研究语音识别后的文本纠错,而就在八月26-30日,CCF的自然语言处理和中文计算会议召开了,笔者也从师兄那里拿到了新鲜出炉的会议论文集,其...

    zenRRan
  • 【论文整理】NAACL2019+AAAI2019文本分类论文摘要

    链接:https://blog.csdn.net/choose_c/article/details/96690798

    zenRRan
  • 【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

    本文将通过介绍入选NLP领域顶级学术会议 ACL 的论文,解读腾讯 AI Lab 的重点研究方向:自然语言理解、对话系统和文本生成,以及机器翻译等。

    zenRRan
  • 个人笔记本安装多个jdk(jdk1.7,jdk1.8,jdk1.9,jdk10.0)出现的问题

    1、个人笔记本已经安装jdk1.7,jdk1.8,(之前没有在意这个问题)。最近想学习jdk10.0,安装以后,环境变量变成了jdk10.0,就是cmd输入命令...

    别先生
  • ElasticSearch之Java Api聚合分组实战

    我是攻城师
  • 测试人员如何应对人事面试?

    所谓人事面试,就是由人事专员(俗称HR)对候选人做面试。这个环节因为没有具体技术问题,相对来说“虚”一点。有的公司里,人事面试只作为技术面试的补充,录用...

    张树臣
  • Linux-chown命令(1)

    chown  [chang owner]:更改文件的属主,也就是指定文件的拥有者改为另一个指定的用户或组。 命令格式:chown [选项]... [用户][:[...

    张诺谦
  • Weex原理之带你去蹲坑

     本篇将节操满满的安利Weex(˶‾᷄ ⁻̫ ‾᷅˵),不一样的角度推荐你入坑,官网有的我们不拖泥,这里将给你补充官方没有的,深入到蹲坑给你排忧解难,总会给你点...

    恋猫
  • Weex原理之带你去蹲坑

     本篇将节操满满的安利Weex(˶‾᷄ ⁻̫ ‾᷅˵),不一样的角度推荐你入坑,官网有的我们不拖泥,这里将给你补充官方没有的,深入到蹲坑给你排忧解难,总会给你点...

    恋猫
  • go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址

    /usr/local/Cellar/go/1.5.1/libexec/src/ ---- 他的RemoteAddr 是从哪里获取? func (c *conn)...

    李海彬

扫码关注云+社区

领取腾讯云代金券