BLEU算法介绍和如何计算:

我们先举一个例子来说明:

原文:猫站在地上

机器译文 (candidate):the the the the

人工译文 (reference):The cat is standing on the ground

在计算1-gram(一元文法)的时候,the 都出现在译文中,因此匹配度为4/4 ,但是很明显 the 在人工译文中最多出现的次数只有2次,因此BLEU算法修正了这个值的算法,首先会计算该n-gram在译文中可能出现的最大次数:

 Count是N-gram在机器翻译译文中的出现次数,Max_Ref_Count是该N-gram在一个参考译文中最大的出现次数,最终统计结果取两者中的较小值。然后在把这个匹配结果除以机器翻译译文的N-gram个数。

因此对于上面的例子来说,Count 就是 the 出现在机器译文中的次数,恰好为 4,Max_Ref_Count 就是 the 出现人工译文中的次数,恰好为2,所以这一次 修正后的1-gram的统计结果就是2/4。综上所述各阶N-gram的精度都可以按照下面这个公式计算:

所以 公式为:

这样就得出来 .

惩罚因子

  上面的算法已经足够可以有效的翻译评估了,然而N-gram的匹配度可能会随着句子长度的变短而变好,因此会存在这样一个问题:一个翻译引擎只翻译出了句子中部分句子且翻译的比较准确,那么它的匹配度依然会很高。为了避免这种评分的偏向性,BLEU在最后的评分结果中引入了长度惩罚因子(Brevity Penalty)。

所以,我们可以得出:BLEU的公式了:

BLEU

其中 :

又是什么鬼?先不用想这么多,其实就是一些数学运算,它的作用就是让各阶n-gram取权重服从均匀分布,就是说不管是1-gram、2-gram、3-gram还是4-gram它们的作用都是同等重要的。由于随着n-gram的增大,总体的精度得分是呈指数下降的,所以一般N-gram最多取到4-gram。

当 N=4 的时候,那就是我们最常见的 BLEU-4 了。

怎么使用BLEU?

说实话,数学用人话来解释是非常困难的,我们还是来通过例子来学习,还是之前的:

机器翻译:The cat sat on the mat.
    人工翻译:The cat is on the mat.

第一步:计算各阶n-gram的精度

P1 = 5 / 6 = 0.833333333333333
P2 = 3 / 5 = 0.6
P3 = 1 / 4 = 0.25
P4 = 0 / 3 = 0

第二步:加权求和

取权重: 

加权求和:

−0.5198603854199589

第三步:求BP

机器翻译长度 = 参考译文长度,所以:

BP = 1

最后求BLEU-4

BLEU-4=1∗exp(−0.5198603854199589)=0.5946035575013605

BLEU 是特别好的机器翻译的评价指标,影响BLEU主要因素,还是匹配上的N-gram的长度,也就是 Pn的 分子,Candidate中的长度如果比reference中长,则Candidate的长度对BLEU的值影响不大。

机器翻译评测——BLEU算法详解相关推荐

  1. 机器翻译评测——BLEU算法详解 (新增 在线计算BLEU分值)评估

  2. 机器翻译自动评估-BLEU算法详解

    BLEU综述: BLEU实质是对两个句子的共现词频率计算,但计算过程中使用好些技巧,追求计算的数值可以衡量这两句话的一致程度. BLEU容易陷入常用词和短译句的陷阱中,而给出较高的评分值.本文主要是对 ...

  3. 目标检测 RCNN算法详解

    原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...

  4. 7大排序算法详解+java实现

    目录 0 概述 1 冒泡排序 2 选择排序 3 插入排序 4 希尔排序 5 快速排序 6 归并排序 7 基数排序 下载地址 7大排序算法详解文档及java代码实现(可直接运行)下载地址:https:/ ...

  5. 推荐系统简介+算法详解+项目介绍

    目录标题 推荐系统简介 1.推荐系统目的 2.推荐系统的应用 3.推荐系统的基本思想 4.推荐系统的数据分析 5.推荐系统的分类 6.推荐算法简介 6.1 基于人口统计学的推荐算法(基于用户数据) 6 ...

  6. Matlab人脸检测算法详解

    这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...

  7. 图论-最短路Dijkstra算法详解超详 有图解

    整体来看dij就是从起点开始扩散致整个图的过程,为什么说他稳定呢,是因为他每次迭代,都能得到至少一个结点的最短路.(不像SPFA,玄学复杂度) 但是他的缺点就是不能处理带负权值的边,和代码量稍稍复杂. ...

  8. C++中的STL算法详解

    1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...

  9. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

最新文章

  1. bootstrap datepicker Uncaught TypeError: Cannot call method 'split' of undefined问题
  2. php正则判断不规范字符串,php学习_第9章_字符串处理与正则表达式
  3. 漫谈ERP实施服务的三种境界
  4. ATPCS和AAPCS
  5. Google推出了一个名为“Google Public DNS”的域名解析系统
  6. 对I2C总线的时钟同步和总线仲裁的深入理解
  7. PHP —— 识别运算符实现逻辑比较
  8. 大道至简——软件工程实践者的思想 读后感3
  9. wamp 403 禁止访问
  10. 二维码QR码的“疯狂”广告
  11. 概率论:假设检验、极大似然估计、无偏估计
  12. 干货!大话EXT4文件系统完整版
  13. python生存分析入门
  14. python编程实践(一):统计智联招聘数据
  15. 「小程序JAVA实战」微信小程序简介(一)
  16. 二维码生成 API数据接口
  17. [Re]2022DASCTF Apr X FATE 防疫挑战赛
  18. 关于小程序如何长按复制长文本的方法(比较简单的一种)
  19. 精确计算时,不要使用float或double
  20. 广西省百色市谷歌卫星地图下载

热门文章

  1. 微信小程序(1)——注册开发者账号、安装开发工具
  2. 2021年烟花爆竹产品涉药考试资料及烟花爆竹产品涉药考试平台
  3. Java实现发邮件功能---网易邮箱
  4. 【Redis】03-Redis 数据持久化实践
  5. 真趣科技:多业务形态的企业需要灵活可配置的CRM系统
  6. 【PR 基础】 调色
  7. 计算机学院吴琴,CCF@U413:陶建华走进成都信息工程大学
  8. 【机器学习与深度学习理论要点】15. 什么是决策树?决策树的特点及使用情况
  9. 第三方接口的自动化管理---智能路由
  10. 实验五:Romberg算法