【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.rhkb.cn/news/74236.html

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

相关文章

ubuntu服务器配置ftp服务

需求:配置ftp服务用于在windows电脑上直接浏览、下载、上传ubuntu服务器上的文件,用于文件共享,方便实用 效果:用户打开windows资源管理器后输入ftp://xxx.xxx.xxx.xxx (公网IP地址)后,即可浏览…

ChatGPT及其工作原理;OpenAI申请注册商标GPT-5,引发关注

🦉 AI新闻 🚀 OpenAI申请注册商标GPT-5,引发关注 摘要:OpenAI已在上月18日申请注册商标GPT-5,显示该模型将提供文本生成、自然语言理解、语音转录、翻译、分析等功能。此前OpenAI曾表示尚未开始训练GPT-4的后继者GPT…

Atlas200DK A2联网实战

文章目录 1.Atlas原始网络信息2. 开发板联网2.1 使用Type-c 连接开发板2.2 修改本地网络适配器2.3 修改开发板网络信息2.4 测试外网连接 1.Atlas原始网络信息 Type-C 网口 ETH0 网口 ETH1 网口 2. 开发板联网 2.1 使用Type-c 连接开发板 使用xshell 等ssh终端登录开发板&…

(树) 剑指 Offer 33. 二叉搜索树的后序遍历序列 ——【Leetcode每日一题】

❓剑指 Offer 33. 二叉搜索树的后序遍历序列 难度:中等 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树&#xff1…

Linux lvs负载均衡

LVS 介绍: Linux Virtual Server(LVS)是一个基于Linux内核的开源软件项目,用于构建高性能、高可用性的服务器群集。LVS通过将客户端请求分发到一组后端服务器上的不同节点来实现负载均衡,从而提高系统的可扩展性和可…

PHP正则绕过解析

正则绕过 正则表达式PHP正则回溯PHP中的NULL和false回溯案例案例1案例2 正则表达式 在正则中有许多特殊的字符,不能直接使用,需要使用转义符\。如:$,(,),*,,.,?,[,,^,{。 这里大家会有疑问:为啥小括号(),这个就需要两个来转义&a…

智能制造企业如何建立大客户管理模型?

01、大客户管理依然是智能制造企业经营的黄金定律 《连线》杂志创始人凯文凯利(Kevin Kelly)在《技术元素》一书中写道:“数量不是目的,质量才是根本,重视1%的超级用户才是提高效率的关键。” 根据“二八定律”&…

filebeat介绍

1、filebeat概述 Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash或kafka进行索引 1.1 Filebeat两个主要组件 prospector 和 harvester。 prospector&a…

C++---list常用接口和模拟实现

list---模拟实现 list的简介list函数的使用构造函数迭代器的使用list的capacitylist element accesslist modifiers list的模拟实现构造函数,拷贝构造函数和迭代器begin和endinsert和eraseclear和析构函数 源码 list的简介 list是用双向带头联表实现的一个容器&…

C—数据的储存(下)

文章目录 前言🌟一、练习一下🌏1.例一🌏2.例二🌏3.例三🌏4.例四 🌟二、浮点型在内存中的储存🌏1.浮点数🌏2.浮点数存储💫(1).二进制浮点数&#x…

提高生产线效率:PDM系统的工艺优化智慧

在现代制造业中,提高生产线效率是企业追求高质量和降低成本的重要目标。PDM系统(Product Data Management,产品数据管理)作为一款强大的数字化工具,发挥着工艺优化智慧的作用,帮助企业实现生产线效率的提升…

C# 回文链表

234 回文链表 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true 示例 2: 输入&…

TPlink云路由器界面端口映射设置方法?快解析内网穿透能实现吗?

有很多网友在问:TPlink路由器端口映射怎么设置?因为不懂端口映射的原理,所以无从下手,下面小编就给大家分享TPlink云路由器界面端口映射设置方法,帮助大家快速入门TP路由器端口映射设置方法。 1.登录路由器管理界面&a…

性能测试/负载测试/压力测试之间的区别

做测试一年多来,虽然平时的工作都能很好的完成,但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺,所以,在工作之余也做了一些测试方面的知识的补充。不足之处,还请大家多多交流,互相学习。 …

Amazon Aurora Serverless v2 正式发布:针对要求苛刻的工作负载的即时扩展

我们非常兴奋地宣布,Amazon Aurora Serverless v2 现已面向 Aurora PostgreSQL 和 MySQL 正式发布。Aurora Serverless 是一种面向 Amazon Aurora 的按需自动扩展配置,可让您的数据库根据应用程序的需求扩展或缩减容量。 亚马逊云科技开发者社区为开发者…

Hudi Flink SQL源码调试学习(1)

前言 本着学习hudi-flink源码的目的,利用之前总结的文章Hudi Flink SQL代码示例及本地调试中的代码进行调试,记录调试学习过程中主要的步骤及对应源码片段。 版本 Flink 1.15.4Hudi 0.13.0 目标 在文章Hudi Flink SQL代码示例及本地调试中提到:我们…

2023网络安全学习路线 非常详细 推荐学习

首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上,更多的人会倒在学习语言上; 2、知识点掌握程度不清楚 对于网络安…

Qsys介绍

文章目录 前言一、为什么需要Qsys1、简化了系统的设计流程2、Qsys涉及的技术 二、Qsys真身1、一种系统集成工具2、何为Nios II1、内核架构2、Nios II选型 三、Qsys设计涉及到的软件&工具四、总结五、参考资料 前言 Qsys是Altera下的一个系统集成工具,可用于搭建…

使用tinyxml解析和修改XML文件

首先要清楚XML文件包含哪些元素&#xff1a; 他是由元素、文本或者两者混合物组成。元素可以拥有属性&#xff0c;元素是指从开始标签到结束标签的部分。 <?xml version"1.0" encoding"UTF-8" ?> <books><book id"1001">&…

新一代开源流数据湖平台Apache Paimon入门实操-上

文章目录 概述定义核心功能适用场景架构原理总体架构统一存储基本概念文件布局 部署环境准备环境部署 实战Catalog文件系统Hive Catalog 创建表创建Catalog管理表查询创建表&#xff08;CTAS&#xff09;创建外部表创建临时表 修改表修改表修改列修改水印 概述 定义 Apache Pa…