NLP任务评价指标(BLEU,METOR,ROUGH,CIDEr)

2023-09-19 12:29:06

BLEU, METEOR, ROUGE 一般在机器翻译里用,CIDEr 一般在图像字幕生成里用

BLEU

所谓BLEU,最开始是用于机器翻译中。他的思想其实很native,对于一个给定的句子,有标准译文S1,还有一个神经网络翻译的句子S2。BLEU的思想就是对于出现机器翻译S2的所有短语,看有多少个短语出现在S1中,然后算一下这个比率就是BLEU的分数了(类似precision)。首先根据n-gram划分一个短语包含单词的数量,有BLEU-1,BLEU-2,BLEU-3,BLEU-4。分别就是把文章划分成长度为1个单词的短语,长度为2个单词的短语…然后统计这些短语出现在标准译文中个数,在分别除以划分总数,就是对应的BLEU-1分数,BLEU-2分数…,其实就是准确率。看这些划分的短语中有多少是出现在标准译文当中的。一般而言:unigram 的准确率可以用于衡量单词翻译的准确性,更高阶的 n-gram 的准确率可以用来衡量句子的流畅性 n{1,2,3,4}

但是BLEU会有个缺陷,假如我就翻译一个单词,而这个单词正好在标准译文中(译文特别短),那岂不是准确率100%,对于这个缺陷,BLEU算法会有个长度惩罚因子,就是翻译太短了就会有惩罚。还有一个缺陷就是BLUE score没有考虑译文中单词的顺序。

代码层面具体怎么使用建议看:https://zhuanlan.zhihu.com/p/404381278

METOR

其大意是说有时候翻译模型翻译的结果是对的,只是碰巧跟参考译文没对上(比如用了一个同义词),于是用 WordNet 等知识源扩充了一下同义词集,同时考虑了单词的词形(词干相同的词也认为是部分匹配的,也应该给予一定的奖励,比如说把 likes 翻译成了 like 总比翻译成别的乱七八糟的词要好吧?)在评价句子流畅性的时候,用了 chunk 的概念(候选译文和参考译文能够对齐的、空间排列上连续的单词形成一个 chunk,这个对齐算法是一个有点复杂的启发式 beam serach),chunk 的数目越少意味着每个 chunk 的平均长度越长,也就是说候选译文和参考译文的语序越一致。最后还有召回率和准确率两者都要考虑,用 F 值作为最后的评价指标。

METEOR 的缺点也很明显,其一是只有 Java 实现,而且还是 jar 包不是 API,只能算整个测试集上的 METEOR 而不是每条语句单独测(除非你把每条语句单独写到文件里然后调 jar 包),实在是太蠢了。在 Python 统治深度学习的当下,可想而知很少有人用这个指标……

ROUGH

ROUGE算法基本思路和BLEU差不多,不过它统计的是召回率,也就是对于标准译文中的短语,统计一下它们有多少个出现在机器翻译的译文当中(刚好和BLUE反过来),其实就是看机器翻译有多少个翻译对了,这个评价指标主要在于标准译文中的短语都出现过,那么自然机器翻译的译文越长结果越好。

CIDEr

常用语图像字幕生成,CIDEr 是 BLEU 和向量空间模型的结合。它把每个句子看成文档,然后计算 TF-IDF 向量(只不过 term 是 n-gram 而不是单词)的余弦夹角,据此得到候选句子和参考句子的相似度,同样是不同长度的 n-gram 相似度取平均得到最终结果。优点是不同的 n-gram 随着 TF-IDF 的不同而有不同的权重,因为整个语料里更常见的 n-gram 包含了更小的信息量。图像字幕生成评价的要点是看模型有没有抓取到关键信息,比如说一幅图的内容是『白天一个人在游泳池游泳』,其中最关键的信息应该是『游泳』,生成字幕时如果包含或者漏掉了一些别的信息(比如说『白天』)其实是无关紧要的,所以需要这么一种对非关键词降权的操作。

更多推荐

Comparator 接口使用方法,结合java8新特性及源码分析

目录1Comparator介绍1.1函数式声明1.2简单的小案例2.Comparator中的方法2.1compare抽象方法例子2.2comparing方法源码参考解释详细解释<?superT,?extendsU>讲解comparing代码样例例子comparing中的方法源码分析<T,UextendsComparab

安防视频/视频汇聚平台EasyCVR使用onvif探测添加设备通道详细步骤来啦!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.2

Nginx

概念nginx什么是nginxnginx是一个高性能的HTTP和正、反向代理的服务器nginx可以干什么可以作为web服务器,可以实现反向代理,可以实现基于反向代理的负载均衡,可以作为静态资源服务器(类似于七牛云)什么时候使用nginx后台搭建集群的时候,访问量较大,使用使用nginx作为静态资源的web服务器-部署前

vue3 自定义Hooks

文章目录前言一、Hooks是什么?二、图片转换Base641.Hooks2.使用三、监听元素宽高(自定义指令+Hooks)1.Hooks2.使用总结前言本文主要记录了vue3学习中自定义Hooks和vue2中Mixins的使用与案例。一、Hooks是什么?Hooks用来处理复用代码逻辑的一些封装,Hooks与Mixin

Python+selenium自动化生成测试报告

批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner一、导入HTMLTestRunner1.这个模块下载不能通过pip安装了,只能下载后手动导入,下载地址:htt

使用Java中SSM技术写项目具体操作流程

确定需求和技术选型首先需要明确项目的功能需求,以及选择合适的技术框架和库。在SSM框架中,Spring框架负责管理Java对象,提供依赖注入和面向切面编程的功能;SpringMVC框架负责处理请求和响应,实现MVC架构;MyBatis框架负责ORM(对象关系映射),简化数据库操作。创建SpringMVC工程使用Mave

算法与设计分析--分治算法的设计与分析

某不知名学校的第二次算法实验报告,一共四道题全部来自力扣第一题​​​​​​169.多数元素题目描述:给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊n/2⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1

基于springboot会员制医疗预约服务管理信息系统springboot017

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路,向着优秀程序员前行!🍅更多优质项目👇🏻👇🏻可点击下方获取🍅文章底部或评论区获取🍅Java项目精品实

CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)

A.MEXanizedArrayAC代码:#include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=210;inta[N];intn,k,x;voidsolve(){cin>>n>>k>>x;if(x<k-1){c

vue-cli-service build 不同环境的配置

目录🤜背景🤜vue-cli-service介绍🤜环境变量和模式🤜配置不同模式🤜index.html使用环境变量🤜验证🤜参考资料🤜背景在项目部署时,我们需要在测试环境和生产环境使用不同的变量。vue-cli提供了vue-cli-servicebuild打包命令,然而vue-cli-servicebuild

如何安装 Wnmp 并结合内网穿透实现外网访问内网Wnmp 服务

文章目录前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1注册账号3.2下载cpolar客户端3.3登录cpolarwebui管理界面3.4创建公网地址4.固定公网地址访问前言WNMP是Windows系统下的绿色Nginx+Mysql+PHP环境集成套件包,安装完成后即可得到一个Nginx+My

热文推荐