【NLP】训练chatglm2的评价指标BLEU,ROUGE

当进行一定程度的微调后,要评价模型输出的语句的准确性。由于衡量的对象是一个个的自然语言文本,所以通常会选择自然语言处理领域的相关评价指标。这些指标原先都是用来度量机器翻译结果质量的,并且被证明可以很好的反映待评测语句的准确性,主要包含4种:BLEU,METEOR,ROUGE,CIDEr
本文只介绍BLEU,ROUGE两个指标,其他待补充。

1、BLEU

  • BLEU(Bilingual Evaluation understudy,双语互译质量评估)是一种流行的机器翻译评价指标,一种基于精确度的相似度量方法,用于分析候选译文中有多少 n 元词组出现在参考译文中(就是在判断两个句子的相似程度)
  • BLEU有许多变种,根据n-gram可以划分成多种评价指标,常见的评价指标有BLEU-1、BLEU-2、BLEU-3、BLEU-4四种,其中n-gram指的是连续的单词个数为 nBLEU-1衡量的是单词级别的准确性,更高阶的BLEU可以衡量句子的流畅性

假设, c i c_i ci表示候选译文【也就是机器译文(candidate)】,该候选译文对应的一组参考译文【也就是人工译文(reference)】可以表示为 S i = { s i 1 , s i 2 , … , s i m } \mathrm{S_{i}=\{s_{i1},s_{i2},\ldots,s_{im}\}} Si={si1,si2,,sim};将候选译文 c i c_i ci中所有相邻的 n 个单词提取出来组成一个集合 n − g r a m n-gram ngram,一般取 n = 1 , 2 , 3 , 4 n=1,2,3,4 n=1,2,3,4;用 ω k \omega_k ωk表示 n − g r a m n-gram ngram中的第 k k k 个词组, h k ( c i ) h_k(c_i) hk(ci)表示第k个词组 ω k \omega_k ωk在候选译文 c i c_i ci中出现的次数, h k ( s i j ) h_k(s_{ij}) hk(sij)表示第 k k k 个词组 ω k \omega_k ωk​,在参考译文 s i j s_{ij} sij中出现的次数。此时,在n-gram下,参考译文和候选译文 c i c_i ci的匹配度计算公式可以表示为:
p n ( c i , S ) = ∑ k min ⁡ ( h k ( c i ) , max ⁡ j ∈ m h k ( s i j ) ) ∑ k h k ( c i ) \mathrm{p_n}\left(\mathrm{c_i},\mathrm{S}\right)=\frac{\sum_{\mathrm{k}}\min\left(\mathrm{h_k}\left(\mathrm{c_i}\right),\max_{\mathrm{j}\in\mathrm{m}}\mathrm{h_k}\left(\mathrm{s_{ij}}\right)\right)}{\sum_{\mathrm{k}}\mathrm{h_k}\left(\mathrm{c_i}\right)} pn(ci,S)=khk(ci)kmin(hk(ci),maxjmhk(sij))

举例说明:
candidate:The cat sat on the mat.
reference:The cat is on the mat

在这里插入图片描述
( c a n d i d a t e 和 r e f e r e n c e 中匹配的 n − g r a m 的个数 ) / c a n d i d a t e 中 n − g r a m 的个数 (candidate\text{和}reference\text{中匹配的}n-gram\text{的个数})/candidate\text{中}n-gram\text{的个数} (candidatereference中匹配的ngram的个数)/candidatengram的个数

一般来说, n 取值越大,参考译文就越难匹配上,匹配度就会越低. 1 − g r a m 1-gram 1gram能够反映候选译文中有多少单词被单独翻译出来,也就代表了参考译文的充分性 2 − g r a m 2-gram 2gram 3 − g r a m 3-gram 3gram 4 − g r a m 4-gram 4gram 值越高说明参考译文的可读性越好,也就代表了参考译文的流畅性
当参考译文比候选译文长(单词更多)时,这种匹配机制可能并不准确,例如上面的参考译文如果是The cat,匹配度就会变成1,这显然是不准确的;为此我们引入一个惩罚因子。
B P ( c i , s i j ) = { 1 , l c i > l s i j e l − l s i j l c i , l c i ≤ l s i j BP(c_i,s_{ij}) = \left\{\begin{matrix} 1\quad ,\quad l_{ci}>l_{s_{ij}} \\ {e^{l-\frac{l_{s_{ij}}}{l_{c_i}}},\quad l_{ci}~\leq l_{sij}} \end{matrix}\right. BP(ci,sij)={1,lci>lsijellcilsij,lci lsij
l l l 表示各自的长度。最终,BLEU的计算公式就是
B L E U = B P ⋅ exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) BLEU=BP \cdot \exp \left(\sum_{n=1}^Nw_n \log p_n \right) BLEU=BPexp(n=1Nwnlogpn)
w n w_n wn代表每一个 n-gram 的权重,一般 n n n 最大取4,所以 w n = 0.25 w_n = 0.25 wn=0.25

BLEU 更偏向于较短的翻译结果,它看重准确率而不注重召回率(n-gram 词组是从候选译文中产生的,参考译文中出现、候选译文中没有的词组并不关心);原论文提议数据集多设置几条候选译文,4条比较好,但是一般的数据集只有一条。

2、ROUGE

BLEU 是统计机器翻译时代的产物,因为机器翻译出来的结果往往不通顺,所以BLEU更关注翻译结果的准确性和流畅度;到了神经网络翻译时代,神经网络很擅长脑补,自己就把语句梳理得很流畅了,这个时候人们更关心的是召回率,也就是参考译文中有多少词组在候选译文中出现了。

关于ROUGE(recall-oriented understanding for gisting evaluation),就是一种基于召回率的相似性度量方法,主要考察参考译文的充分性和忠实性,无法评价参考译文的流畅度,它跟BLEU的计算方式几乎一模一样,但是 n-gram 词组是从参考译文中产生的。分为4种类型:

ROUGE解释
ROUGE-N基于 N-gram 的共现(共同出现)统计
ROUGE-L基于最长共有子句共现性精度和召回率 Fmeasure 统计
ROUGE-W带权重的最长共有子句共现性精度和召回率 Fmeasure 统计
ROUGE-S不连续二元组共现性精度和召回率 Fmeasure 统计

Rouge-1、Rouge-2、Rouge-N

论文[3]中对Rouge-N的定义是这样的:
在这里插入图片描述
分母是n-gram的个数,分子是参考摘要和自动摘要共有的n-gram的个数。直接借用文章[2]中的例子说明一下:
自动摘要 Y Y Y(一般是自动生成的):

the cat was found under the bed

参考摘要, X 1 X1 X1(gold standard ,人工生成的):

the cat was under the bed

summary的1-gram、2-gram如下,N-gram以此类推:
在这里插入图片描述
R o u g e _ 1 ( X 1 , Y ) = 6 6 = 1.0 Rouge\_1(X1,Y)=\dfrac66=1.0 Rouge_1(X1,Y)=66=1.0,分子是待评测摘要和参考摘要都出现的1-gram的个数,分子是参考摘要的1-gram个数。(其实分母也可以是待评测摘要的,但是在精确率和召回率之间,我们更关心的是召回率Recall,同时这也和上面ROUGN-N的公式相同)
同样, R o u g e _ 2 ( X 1 , Y ) = 4 5 = 0.8 Rouge\_2(X1,Y)=\dfrac{4}{5}=0.8 Rouge_2(X1,Y)=54=0.8

Rouge-L

L即是LCS(longest common subsequence,最长公共子序列)的首字母,因为Rouge-L使用了最长公共子序列。Rouge-L计算方式如下:
R l c s = L C S ( X , Y ) m ( 2 ) R_{lcs}=\frac{LCS(X,Y)}m\quad(2) Rlcs=mLCS(X,Y)(2)
P l c s = L C S ( X , Y ) n ( 3 ) P_{lcs}=\frac{LCS(X,Y)}{n}\quad(3) Plcs=nLCS(X,Y)(3)
F l c s = ( 1 + β 2 ) R l c s P l c s R l c s + β 2 P l c s ( 4 ) F_{lcs}=\frac{(1+\beta^2)R_{lcs}P_{lcs}}{R_{lcs}+\beta^2P_{lcs}}\quad(4) Flcs=Rlcs+β2Plcs(1+β2)RlcsPlcs(4)
其中 L C S ( X , Y ) LCS(X,Y) LCS(X,Y)是X和Y的最长公共子序列的长度,m,n分别表示参考摘要和自动摘要的长度(一般就是所含词的个数), R l c s R_{lcs} Rlcs, P l c s P_{lcs} Plcs分别表示召回率和准确率。最后的 F l c s F_{lcs} Flcs即是我们所说的Rouge-L。在DUC中, β \beta β被设置为一个很大的数,所以 R o u g e _ L Rouge\_L Rouge_L几乎只考虑了 R l c s R_{lcs} Rlcs,与上文所说的一般只考虑召回率对应。

参考文章:
[1].自动文摘评测方法:Rouge-1、Rouge-2、Rouge-L、Rouge-S
[2].What is ROUGE and how it works for evaluation of summaries?
[3].ROUGE:A Package for Automatic Evaluation of Summaries
[4].BLEU评估指标
[5].评价度量指标之BLEU,METEOR,ROUGE,CIDEr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目-苍穹外卖-Day01

文章目录 博客介绍软件开发流程项目介绍产品原型技术选型前端环境搭建 博客介绍 从头开始做黑马的苍穹外卖项目 每天记录一下新学的知识点以及对应的开发进度 然后一些在项目中遇到的问题会重点标注 本篇主要是后端的,前端会一笔带过 软件开发流程 流程介绍需求分…

DM开启慢日志监控并用DmLog工具分析数据

工具描述 DMLOG用于对达梦SQL日志进行统计分析,便于SQL优化人员进行查看捕获关键信息,不提供SQL优化建议。DMLOG用java语言编写,不受操作系统平台限制,大小不超过10M,在安装好Java环境后,可在各平台运行。 …

花费7元训练自己的GPT 2模型

在上一篇博客中,我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多,主要在以下方面: 1. GPT 2把layer normalization放在每个decoder block的前…

17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

YML配置文件及加载自定义配置文件的几种方式 ★ YAML配置文件 其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件,SnakeYml工具默认就会被spring-boot-starter导入,因此无需开发者做任何额外配置。 YAML本质…

数据分析基础-Excel图表的美化操作(按照教程一步步操作)

一、原始数据 包含月份和对应的销量和产量。 时间销量产量1月60722月38673月28344月58685月67596月72357月61428月24319月556710月243511月122112月2645 二、原始的图表设计-采用Excel自带模板 三、优化思路 1、删除多余元素 2、弱化次要元素 对于可以弱化的元素&#xff0c…

计算机视觉实验:图像增强应用实践

本次实验主要从基于统计、函数映射的图像增强方法和基于滤波的图像增强方法两种方法中对一些图像增强的算法进行实现。主要的编程语言为python,调用了python自带的PIL图像库用于读取图像,利用numpy进行图像运算,最后使用opencv第三方库进行对…

基于DCT变换和huffman编码的语音压缩算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 多通道滤波 4.2 DCT变换 4.3 量化 4.3 哈夫曼编码 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ................................…

云上 Index:看「简墨」如何为云原生打造全新索引

拓数派首款数据计算引擎 PieCloudDB Database 是一款全新的云原生虚拟数仓。为了提升用户使用体验,提高查询效率,在实现存算分离的同时,PieCloudDB 设计与打造了全新的存储引擎「简墨」等模块,并针对云场景和分析型场景设计了高效…

网络安全进阶学习第九课——SQL注入介绍

文章目录 一、什么是注入二、什么是SQL注入三、SQL注入产生的原因四、SQL注入的危害五、SQL注入在渗透中的利用1、绕过登录验证:使用万能密码登录网站后台等。2、获取敏感数据3、文件系统操作4、注册表操作5、执行系统命令 六、如何挖掘SQL注入1、SQL注入漏洞分类按…

跨境电商代运营模式,Live Market打造跨境电商出海SaaS服务平台

近年来,我国跨境电商发展取得可喜进展。商务部数据显示,跨境电商货物进出口规模占外贸比重由5年前的不足1%上升到目前的5%左右。私域流量业态在电商领域兴起,品牌企业在线上建立自主经营的手机应用软件直接触达用户。跨境电商的发展模式转向平…

【力扣】92. 反转链表 II <链表指针>

【力扣】92. 反转链表 II 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回反转后的链表。 示例 1 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff…

Eclipse进行debug

目录 基本步骤三种执行方式 -- 键盘快捷键variables面板移除debug过的项目通过eclipse调用具有软件界面的项目进行debug各个variable颜色具有的意义 基本步骤 点击eclipse右上角debug按钮 调出debug面板 点击小蜘蛛图标&#xff08;不是点绿色三角的Run&#xff09; 此时会进…

第一个 vue-cli 项目

一、什么是 vue-cli vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个 vue 的项目模板&#xff1b;预先定义好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目&#xff0c;这个骨架项目就是脚手架&#xff0c;我们的开发更加…

Maven【入门笔记】

Maven 解决版本依赖的问题 https://www.liaoxuefeng.com/wiki/1252599548343744/1309301146648610 如果没有项目管理工具&#xff0c;在开发项目的时候&#xff0c;我们需要手动管理依赖包&#xff0c;需要管理依赖包的版本、去找到并下载依赖包、还有依赖包所依赖的包 等等。…

百度与AI:历史、投资和监管

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 百度的人工智能在中国具有先发优势 随着ChatGPT的爆火&#xff0c;人工智能重新引起了投资者的注意&#xff0c;然而人工智能并不是突然爆火的&#xff0c;而是全球众多公司在人工智能技术上进行数十年如一日的研发和积累&a…

解决新版 Idea 中 SpringBoot 热部署不生效

标题 依赖中添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <opt…

项目管理中的需求分析:实施策略与最佳实践

引言 在项目管理的过程中&#xff0c;需求分析起着至关重要的作用。理解和定义项目需求是项目成功的关键一步&#xff0c;它可以帮助我们确定项目的目标和范围&#xff0c;以及如何有效地达到这些目标。在本文中&#xff0c;我们将深入探讨需求分析的重要性&#xff0c;讨论如…

rar压缩包怎么改成zip格式

不知道大家有没有遇到需要转换压缩包格式的问题&#xff0c;今天想和大家分享rar压缩包改成zip格式的方法。 方法一&#xff1a; 直接修改rar压缩包的后缀名变为zip&#xff0c;就可以修改压缩包文件格式了 方法二&#xff1a; 先将rar压缩包解压出来&#xff0c;然后再将解…

【Spring】bean的生命周期

1.具体的生命周期过程 bean对象创建&#xff08;调用无参构造器&#xff09; 给bean对象设置属性 bean对象初始化之前操作&#xff08;由bean的后置处理器负责&#xff09; bean对象初始化&#xff08;需在配置bean时指定初始化方法&#xff09; bean对象初始化之后操作&am…

数字IC验证高频面试问题整理附答案(二)

近日后台有同学私信还想要验证的面试题目&#xff0c;这不就来了~ Q16.权重约束中”:”和”: /”的区别 : 操作符表示值范围内的每一个值的权重是相同的,比如[1:3]:40,表示1&#xff0c;2&#xff0c;3取到的概率为40/120&#xff1b; :&#xff0f;操作符表示权重要平均分到…