为了解决这个问题,首先需要知道BLEU值是如何计算出来的。
BLEU全称是Bilingual Evaulation Understudy。其意思是双语评估替补。所谓Understudy(替补),意思是代替人进行翻译结果的评估。

BLEU的思想基于Count based Model,尽管它并不完美,但它提供了一种非常有效的以单一数字指标评估机器翻译结果的方法。

下面以一个例子说明BLEU的计算。

假如正确的翻译参考(2)个是:

The cat is on the desk.

There is a cat on the desk.

那么很自然想到,用实际翻译结果中出现在参考翻译中的单词数除以实际翻译结果单词总数,是一种评估方法。例如,若翻译结果为The cat are on the desk。则评分为:\(5/6\),只有are没有出现,这看起来是合理的。但是若翻译结果为is is is is is is is,那么很显然,评分为\(6/6\),is在参考翻译句子中出现了。很明显,这就不对了。

一个解决方法是,规定实际翻译结果中每个单词的计数不得超过在单个参考翻译中出现的最大次数。即上述is is is is is is结果,单词is在参考翻译中出现的最大次数是1,因此,评分为\(1/6\)。

这是比较合理的。

还有个因素需要考虑,假如实际翻译句子为desk the on cat a is there,那么得分为\(7/7\),虽然单词都出现了,上面的方法仅仅考虑了uni-gram,句子的流畅度却没有考虑。因此,根据“平滑”的思想,进一步考虑bi-gram,tri-gram。实际应用中,一般是考虑1-gram到4-gram。具体来说:

计算所有单个单词,\(x_i\)在参考翻译中的得分,计算方式为:

\(在参考翻译中的最大出现次数在实际翻译中的出现次数score1 = \frac{\sum_{i=1}^nx_i在参考翻译中的最大出现次数}{\sum_{i=1}^nx_i在实际翻译中的出现次数}\)

式中,\(n\)是一元组,即单个单词数(不包括重复)。

计算所有二元组,记为\(x_i\)在参考翻译中的得分,计算方式为:

\(在参考翻译中的最大出现次数在实际翻译中的出现次数score2 = \frac{\sum_{i=1}^nx_i在参考翻译中的最大出现次数}{\sum_{i=1}^nx_i在实际翻译中的出现次数}\)

式中,\(n\)是二元组数(不包括重复)。

类似的计算三元组,四元组得分。

可见,若翻译结果好,每个得分的值就是1。

最后,将四个得分平均(或加权),得到最后的分数:

\(score = \frac{1}{4}*(score1+score2+score3+score4)\)

实际应用中,常常取自然指数作为最后的评分值,即:

$score =e^{ \frac{1}{4}*(score1+score2+score3+score4)} $

现在的应用(paper)中评估BLEU值,一般取n-gram从1到4,并不做平均,而是做加和再取对数值。即实际中的BLEU值计算方式为:

\(BLEU = e^{ (score1+score2+score3+score4)}\)

可见,如果翻译结果恰为某个参考翻译结果,四个得分都取1,最终的\(BLEU\)值为\(e^4=54.598\),即BLEU值最大为54.598分。

【NLP】BLEU值满分是100分吗?的更多相关文章

  1. Perfmon——为什么“% Disk Time”计数器的值会大于100%?

    最近在使用perfmon做性能测试时发现,“% Disk Time”计数器的值总是会大于100%.如下图所示. perfmon上对“% Disk Time”的中文描述为: % Disk Time 指所 ...

  2. 如何在C艹大作业上用复数计算器拿下一个100分

    0. qt qt简介: 百度百科 下载:官网下载 申请个账号就可以免费用了 安装方式可以在百度上找到,建议安装MinGW,其余自选. 1. 建立第一个qt文件 打开Qt Creator,点击文件,点击 ...

  3. (很难啊)如何实时获取DBGrid 中当前单元格输入的内容? [问题点数:100分,结帖人yifawu100]

    如何获取DBGrid 中当前单元格输入的内容? 还没输入完成,我想实时获取 Cell中的内容,以便作其他处理,用什么事件呢? 所以Field的Onchange事件是没用的. DBGrid1.Selec ...

  4. Coursera Algorithms Programming Assignment 3: Pattern Recognition (100分)

    题目原文详见http://coursera.cs.princeton.edu/algs4/assignments/collinear.html 程序的主要目的是寻找n个points中的line seg ...

  5. CCF201409-2 画图 java(100分)

    试题编号: 201409-2 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐 ...

  6. CCF201503-2 数字排序 java(100分)

    试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输 ...

  7. CCF201509-2 日期计算 java(100分)

    试题编号: 201509-2 试题名称: 日期计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有2 ...

  8. CCF201512-2 消除类游戏 java(100分)

    试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进 ...

  9. CCF201609-2 火车购票 java(100分)

    试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...

随机推荐

  1. MySQL性能基准测试对比:5.7 VS 8.0

    本文由云+社区发表 作者:数据库 版权声明:本文由腾讯云数据库产品团队整理,页面原始内容来自于severalnines英文官网,若转载请注明出处.翻译目的在于传递更多全球最新数据库领域相关信息,并不意 ...

  2. Springboot 系列(八)动态Banner与图片转字符图案的手动实现

    使用过 Springboot 的对上面这个图案肯定不会陌生,Springboot 启动的同时会打印上面的图案,并带有版本号.查看官方文档可以找到关于 banner 的描述 The banner tha ...

  3. 卷积神经网络CNN

    卷积神经网络,在图像识别和自然语言处理中有很大的作用,讲cnn的中文博客也不少,但是个人感觉说的脉络清晰清晰易懂的不多. 无意中看到这篇博客,写的很好,图文并茂.建议英文好的直接去看原文.英文不好的就 ...

  4. Eureka的工作原理以及它与ZooKeeper的区别

    1.Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分 ...

  5. MyBatis入门简述

    MyBatis前身是iBatis,为Apache的一个开源项目.2010年迁移到了Google Code,改名为MyBatis.2013年迁移到Github. MyBatis是一个优秀的持久层框架,它 ...

  6. LeetCode_406. Queue Reconstruction by Height解题思路

    题目如下: Suppose you have a random list of people standing in a queue. Each person is described by a pa ...

  7. HeadFirst设计模式读书笔记之工厂模式

    1. 简单工厂 1. 你开了一家披萨店,点披萨的方法可能是这样: public Pizza orderPizza(String type) { Pizza pizza; if (type.equals ...

  8. 前端面试知识点集锦(JavaScript篇)

    目录 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5.JavaScript是一门什么 ...

  9. EF时,数据库字段和实体类不一致问题

    场景:由于一些原因,实体中属性比数据库中字段多了一个startPage属性.PS:controllers中用实体类去接收参数,但是传入的参数比数据库中实体表多了一个字段, 这种情况下,应该建一个vie ...

  10. Django 提交 form 表单

    创建 Django 的过程可以参考上一篇文章 https://www.cnblogs.com/klvchen/p/10601536.html 在 templates 文件夹下创建一个 index.ht ...