NLG(自然语言生成)评估指标介绍
诸神缄默不语-个人CSDN博文目录
本文介绍自然语言生成任务中的各种评估指标。
因为我是之前做文本摘要才接触到这一部分内容的,所以本文也是文本摘要中心。
持续更新。
文章目录
- 1. 常用术语
- 2. ROUGE (Recall Oriented Understudy for Gisting Evaluation)
- 1. 计算指标
- 2. 对rouge指标的更深入研究和改进
- 3. BLEU (Bilingual Evaluation Understudy)
- 4. METEOR (Metric for Evaluation for Translation with Explicit Ordering)
- 5. Perplexity
- 6. Bertscore
- 7. Faithfulness
- 8. 人工评估指标
- 9. InfoLM
- 10. MOVERSCORE
- 11. BEER
- 12. BEND
- 参考资料
1. 常用术语
模型生成的句子、预测结果——candidate
真实标签——reference、ground-truth
2. ROUGE (Recall Oriented Understudy for Gisting Evaluation)
ROUGE值是文本摘要任务重最常用的机器评估指标,衡量生成文本与真实标签之间的相似程度。
precision:candidate中匹配reference的内容占candidate比例
recall:candidate中匹配reference的内容占reference比例
示例:
Reference: I work on machine learning.Candidate A: I work.Candidate B: He works on machine learning.
在这个例子中,用unigram(可以理解为一个词或token)1衡量匹配:A就比B的precision更高(A的匹配内容I work
占candidate 100%,B的on machine learning
占60%),但B的recall更高(60% VS 40%)。
出处论文:(2004 WS) ROUGE: A Package for Automatic Evaluation of Summaries
感觉没有2004年之后的文本摘要论文不使用这个指标的,如果看到有的话我会专门来这里提一嘴的。
分类:ROUGE-N(常用其中的ROUGE-1和ROUGE-2), ROUGE-L,ROUGE-W,ROUGE-S(后两种不常用)
原版论文中ROUGE主要关注recall值,但事实上在用的时候可以用precision、recall和F值。(我看到很多论文都用的是F值)
1. 计算指标
每种rouge值原本都是计算recall的,主要区别在于这个匹配文本的单位的选择:
ROUGE-N:基于n-grams,如ROUGE-1计算基于匹配unigrams的recall,以此类推。
ROUGE-L:基于longest common subsequence (LCS)
ROUGE-W:基于weighted LCS
ROUGE-S:基于skip-bigram co-occurence statistics(skip-bigram指两个共同出现的单词,不管中间隔了多远。要计算任何bigram的出现可能 C n 2 C_n^2 Cn2)
以ROUGE-L为例, A A A 是candidate,长度 m m m; B B B 是reference,长度 n n n:
P = L C S ( A , B ) m P=\frac{LCS(A,B)}{m} P=mLCS(A,B) R = L C S ( A , B ) n R=\frac{LCS(A,B)}{n} R=nLCS(A,B) F = ( 1 + b 2 ) R P R + b 2 P F=\frac{(1+b^2)RP}{R+b^2P} F=R+b2P(1+b2)RP
2. 对rouge指标的更深入研究和改进
(2018 EMNLP) A Graph-theoretic Summary Evaluation for ROUGE
批判文学:(2023 ACL) Rogue Scores:喷原包有bug。嘛我之前也喷过2,终于有顶会论文喷了我很欣慰
3. BLEU (Bilingual Evaluation Understudy)
常用于翻译领域。
出处论文:(2002 ACL) Bleu: a Method for Automatic Evaluation of Machine Translation
precision用modified n-gram precision估计,recall用best match length估计。
Modified n-gram precision:
n-gram precision是candidate中与reference匹配的n-grams占candidates的比例。但仅用这一指标会出现问题。
举例来说:
Reference: I work on machine learning.Candidate 1: He works on machine learning.Candidate 2: He works on on machine machine learning learning.
candidate 1的unigram precision有60%(3/5),candidate 2的有75%(6/8),但显然candidate 1比2更好。
为了解决这种问题,我们提出了“modified” n-gram precision,仅按照reference中匹配文本的出现次数来计算candidate中的出现次数。这样candidate中的on
、machine
和learning
就各自只计算一次,candidate 2的unigram precision就变成了37.5%(3/8)。
对多个candidate的n-gram precision,求几何平均(因为precision随n呈几何增长,因此対数平均能更好地代表所有数值(这块其实我没看懂)):
P r e c i s i o n = exp ( ∑ n = 1 N w n log p n ) , where w n = 1 / n Precision=\exp(\sum_{n=1}^Nw_n\log p_n),\ \text{where} \ w_n=1/n Precision=exp(n=1∑Nwnlogpn), where wn=1/n
Best match length:
recall的问题在于可能存在多个reference texts,故难以衡量candidate对整体reference的sensitivity(这块其实我也没看懂)。显然长的candidate会包含更多匹配文本,但我们也已经保证了candidate不会无限长,因为这样的precision可能很低。因此,我们可以从惩罚candidate的简洁性(文本短)入手来设计recall指标:
在modified n-gram precision中添加一个multiplicative factor B P BP BP:
B P = { 1 , if c > r exp ( 1 − r c ) , otherwise \begin{aligned} BP=\begin{cases}1,& \text{if}\ c >r\\ \exp \left( 1-\dfrac{r}{c}\right) ,&\text{otherwise}\end{cases} \end{aligned} BP={1,exp(1−cr),if c>rotherwise
其中 c c c 是candidates总长度, r r r 是reference有效长度(如reference长度平均值),随着candidate长度( c c c)下降, B P BP BP 也随之减少,起到了惩罚短句的作用。
4. METEOR (Metric for Evaluation for Translation with Explicit Ordering)
常用于翻译领域。
出处:(2005) METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
BLEU的问题在于 B P BP BP 值所用的长度是平均值,因此单句得分不清晰。而METEOR调整了precision和recall的计算方式,用基于mapping unigrams的weighted F-score和penalty function for incorrect word order来代替。
Weighted F-score:
首先,我们要找到candidate和reference间最大的可以形成对齐(alignment)的映射(mappings)子集(subset)。在经过Porter stemming[^3]、用了WordNet同义词后,假设找到的对齐数是 m m m,则precision就是 m / c m/c m/c( c c c 是candidate长度)、recall是 m / r m/r m/r( r r r 是reference长度),F就是 F = P R α P + ( 1 − α ) R F=\frac{PR}{\alpha P+(1-\alpha)R} F=αP+(1−α)RPR
Penalty function:
考虑candidate中的单词顺序:
P e n a l t y = γ ( c m ) β , where 0 ≤ γ ≤ 1 Penalty=\gamma(\frac{c}{m})^\beta,\ \text{where}\ 0\leq\gamma\leq1 Penalty=γ(mc)β, where 0≤γ≤1
其中 c c c 是matching chunks数, m m m 是matches总数。因此如果大多数matches是连续的, c c c 就会小,penalty就会低。这部分我的理解是:连续的matches组成一个chunk。但我不确定,可能我会去查阅更多资料。
最终METEOR得分的计算方式为:
( 1 − P e n a l t y ) F (1-Penalty)F (1−Penalty)F
5. Perplexity
常用于语言模型训练。
待补。
6. Bertscore
使用该指标的论文:Rewards with Negative Examples for Reinforced Topic-Focused Abstractive Summarization
待补。
7. Faithfulness
- Entailment Ranking Generated Summaries by Correctness: An Interesting but Challenging Application for Natural Language Inference:用预训练的基于entailment的方法评估原文蕴含生成摘要的概率
- FactCC Evaluating the Factual Consistency of Abstractive Text Summarization:用基于规则的变换生成假摘要,训练基于Bert的模型,分类生成摘要是否faithful
- DAE Annotating and Modeling Fine-grained Factuality in Summarization:收集细粒度的词/依赖/句级别的faithfulness的标注,用这些标注训练factuality检测模型
8. 人工评估指标
文本的流畅程度、对原文的忠实程度、对原文重要内容的包含程度、语句的简洁程度等
9. InfoLM
出处论文:(2022 AAAI) InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation
待补。
10. MOVERSCORE
待补
11. BEER
待补。
12. BEND
待补。
参考资料
- Metrics for NLG evaluation. Simple natural language processing… | by Desh Raj | Explorations in Language and Learning | Medium
- 我还没看,等我看完了补上:
Revisiting Automatic Evaluation of Extractive Summarization Task: Can We Do Better than ROUGE?
Benchmarking Answer Verification Methods for Question Answering-Based Summarization Evaluation Metrics
SARI
InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation
SPICE
Play the Shannon Game With Language Models: A Human-Free Approach to Summary Evaluation
Reference-free Summarization Evaluation via Semantic Correlation and Compression Ratio
参考unigram_百度百科
父词条:n-gram
unigram: 1个word
bigram: 2个word
trigram : 3个word
(注意此处的word是英文的概念,在中文中可能会根据需要指代字或词)
中文中如果用字作为基本单位,示例:
西安交通大学:
unigram 形式为:西/安/交/通/大/学
bigram形式为: 西安/安交/交通/通大/大学
trigram形式为:西安交/安交通/交通大/通大学 ↩︎pyrouge和rouge在Linux上的安装方法以及结果比较 ↩︎
相关文章:
NLG(自然语言生成)评估指标介绍
诸神缄默不语-个人CSDN博文目录 本文介绍自然语言生成任务中的各种评估指标。 因为我是之前做文本摘要才接触到这一部分内容的,所以本文也是文本摘要中心。 持续更新。 文章目录 1. 常用术语2. ROUGE (Recall Oriented Understudy for Gisting Evaluation)1. 计算…...
苍穹外卖(七) Spring Task 完成订单状态定时处理
Spring Task 完成订单状态定时处理, 如处理支付超时订单 Spring Task介绍 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 应用场景: 信用卡每月还款提醒 火车票售票系统处理未支付订单 入职纪念日为用户发送通知 点外…...
【探索Linux】—— 强大的命令行工具 P.11(基础IO,文件操作)
阅读导航 前言一、C语言的文件操作二、C的文件操作三、Linux系统文件操作(I/O接口)1. open()⭕传入多个打开方式(按位或操作将不同的标志位组合在一起) 2. write()3. read()4. close()5. lseek() 温馨提示 前言 前面我们讲了C语言…...
前端练习项目(附带页面psd图片及react源代码)
一、前言 相信很多学完前端的小伙伴都想找个前端项目练练手,检测自己的学习成果。但是现在很多项目市面上都烂大街了。今天给大家推荐一个全新的项目——电子校园 项目位置:https://github.com/v5201314/eSchool 二、项目介绍(部分页面展示)ÿ…...
【从零开始学习Redis | 第三篇】在Java中操作Redis
前言: 本文算是一期番外,介绍一下如何在Java中使用Reids ,而其实基于Java我们有很多的开源框架可以用来操作redis,而我们今天选择介绍的是其中比较常用的一款:Spring Data Redis 目录 前言: Spring Data…...
vim、gcc/g++、make/Makefile、yum、gdb
vim、gcc/g、make/Makefile、yum、gdb 一、Linux编辑器vim1、简介2、三种模式的概念(1)正常/普通/命令模式(Normal mode)(2)插入模式(Insert mode)(3)末行/底行模式(last line mode) 3、三种模式的切换4、正…...
2022最新版-李宏毅机器学习深度学习课程-P13 局部最小值与鞍点
一、优化失败的原因 局部最小值?鞍点? 二、数学推导分析 用泰勒公式展开 一项与梯度(L的一阶导)有关,一项与海赛矩阵(L的二阶导)有关 海瑟矩阵 VTHV通过海瑟矩阵的性质可以转为判断H是否是正…...
ARM架构的基本知识
ARM两种授权 体系结构授权, 一种硬件规范, 用来约定指令集, 芯片内部体系结构(内存管理, 高速缓存管理), 只约定每一条指令的格式, 行为规范, 参数, 客户根据这个规范自行设计与之兼容的处理器处理IP授权, ARM公司根据某个版本的体系结构设计处理器, 再把处理器设计方案授权给…...
网络安全(黑客技术)——如何高效自学
前言 前几天发布了一篇 网络安全(黑客)自学 没想到收到了许多人的私信想要学习网安黑客技术!却不知道从哪里开始学起!怎么学?如何学? 今天给大家分享一下,很多人上来就说想学习黑客,…...
云原生场景下高可用架构的最佳实践
作者:刘佳旭(花名:佳旭),阿里云容器服务技术专家 引言 随着云原生技术的快速发展以及在企业 IT 领域的深入应用,云原生场景下的高可用架构,对于企业服务的可用性、稳定性、安全性越发重要。通…...
图论-最短路径算法-弗洛伊德算法与迪杰斯特拉算法
弗洛伊德算法: 弗洛伊德算法本质是动态规划,通过添加点进如可选择的点组成的集合的同时更新所有点之间的距离,从而得到每两个点之间的最短距离。 初始化: 创建一个二维数组 dist,其中 dist[i][j] 表示从节点 i 到节点…...
[23] IPDreamer: Appearance-Controllable 3D Object Generation with Image Prompts
pdf Text-to-3D任务中,对3D模型外观的控制不强,本文提出IPDreamer来解决该问题。在NeRF Training阶段,IPDreamer根据文本用ControlNet生成参考图,并将参考图作为Zero 1-to-3的控制条件,用基于Zero 1-to-3的SDS损失生成…...
深入理解React中的useEffect钩子函数
引言: React是一种流行的JavaScript库,它通过组件化和声明式编程的方式简化了前端开发。在React中,一个核心概念是组件的生命周期,其中包含了许多钩子函数,用于管理组件的不同阶段。其中之一就是useEffect钩子函数&…...
数字化时代的财务管理:挑战与机遇
导语:随着数字化技术的不断发展,财务管理正面临着前所未有的挑战和机遇。数字化不仅改变了财务数据的收集、处理和分析方式,还为财务决策提供了更多的依据和方向。本文将探讨数字化时代财务管理的新特点,以及如何利用数字化技术提…...
网络通信协议-HTTP、WebSocket、MQTT的比较与应用
在今天的数字化世界中,各种通信协议起着关键的作用,以确保信息的传递和交换。HTTP、WebSocket 和 MQTT 是三种常用的网络通信协议,它们各自适用于不同的应用场景。本文将比较这三种协议,并探讨它们的主要应用领域。 HTTPÿ…...
【深度学习】深度学习实验四——循环神经网络(RNN)、dataloader、长短期记忆网络(LSTM)、门控循环单元(GRU)、超参数对比
一、实验内容 实验内容包含要进行什么实验,实验的目的是什么,实验用到的算法及其原理的简单介绍。 1.1 循环神经网络 (1)理解序列数据处理方法,补全面向对象编程中的缺失代码,并使用torch自带数据工具将数据封装为dataloader。 (2)分别采用手动方式以及调用接口方式…...
DB2分区表详解
一、分区表基本概念 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。分区后的表称为分区表。 表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个“表空间”(物理文件上),这样查询数据时…...
基本地址变换机构
基本地址变换机构:用于实现逻辑地址到物理地址转换的一组硬件机构。 关于页号页表的定义,放个本人的传送门 1.页表寄存器 基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 1.作用 通常会在系统中设置一个页表寄存器(PTR&…...
以单颗CMOS摄像头重构三维场景,维悟光子发布单目红外3D成像模组
维悟光子近期发布全新单目红外3D成像模组,现可提供下游用户进行测试导入。通过结合微纳光学元件编码和人工智能算法解码,维悟光子单目红外3D成像模组采用单颗摄像头,通过单帧拍摄,可同时获取像素级配准的3D点云和红外图像信息,可被应用于机器人、生物识别等广阔领域。 市场…...
Jinja2模板注入 | python模板注入特殊属性 / 对象讲解
在进行模板利用的时候需要使用特殊的属性和对象进行利用,这里对这些特殊属性及方法进行讲解 以下实验输出python3版本为 3.10.4, python2版本为 2.7.13 特殊属性 __class__ 类实例上使用,它用于获取该实例对应的类__base__ 用于获取父类__mr…...
一致性公式证明
首先,假设存在两个不同的聚类假设 f 1 f^1 f1和 f 2 f^2 f2,它们在两个视角上的聚类结果分别为 y 1 ∈ { − 1 , 1 } n y^1\in\{-1,1\}^n y1∈{−1,1}n和 y 2 ∈ { − 1 , 1 } n y^2\in\{-1,1\}^n y2∈{−1,1}n。 证明一致性不等式: …...
allegro中shape的一些基本操作(一)——添加和修改shape
添加shape 简单添加shape的方式有3种,如下图所示 点击选择相应的shape模式后可以在option面板中设置相应的shape参数(这里不做过多介绍,里面可以设置shape的大小、静态或动态shape等参数),然后再用鼠标在相应的层上添…...
HBuilder创建uniapp默认项目导入uview(胎教)
1:更新HBuilder 建议更新 2:更新插件 我本人在没有更新插件的情况下报错了,找到了**这个大佬**解决问题,所以建议更新插件 先卸载uni-app(Vue2)编译 再重新安装 uni-app(Vue2)…...
C语言基础算法复习
003 斐波那契数列问题 #include<stdio.h> int main() {int i,f11,f21,f3,num;printf("%5d %5d",f1,f2);num2;for(i1; i<18; i){f3f1f2;f1f2;f2f3;num;printf("%5d",f3);if(num%40) printf("\n");}return 0; }//#输数斐波那契数列的前20…...
PyQt界面里如何加载本地视频以及调用摄像头实时检测(小白入门必看)
目录 1.PyQt介绍 2.代码实现 2.1实时调用摄像头 2.2 使用YOLOv5推理 2.3 代码中用到的主要函数 1.PyQt介绍 PyQt是一个用于创建桌面应用程序的Python绑定库,它基于Qt框架。Qt是一个跨平台的C应用程序开发框架,提供了丰富的图形界面、网络通信、数据…...
Ubuntu:VS Code IDE安装ESP-IDF【保姆级】
物联网开发学习笔记——目录索引 参考: VS Code官网:Visual Studio Code - Code Editing. Redefined 乐鑫官网:ESP-IDF 编程指南 - ESP32 VSCode ESP-ID Extension Install 一、前提条件 Visual Studio Code IDE安装ESP-IDF扩展&…...
软考高级系统架构设计师系列之:快速掌握软件工程核心知识点
软考高级系统架构设计师系列之:快速掌握软件工程核心知识点 一、软件开发方法二、软件开发模型三、软件开发模型-瀑布模型四、软件开发模型-经典模型汇总五、软件开发模型-增量模型与螺旋模型六、软件开发模型-V模型七、软件开发模型-构件组装模型八、软件开发模型-统一过程九…...
Java基础面试-ArrayList和LinkedList的区别
ArrayList: 基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制: 因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往…...
如何从 Pod 内访问 Kubernetes 集群的 API
Kubernetes API 是您检查和管理集群操作的途径。您可以使用Kubectl CLI、工具(例如curl)或流行编程语言的官方集成库来使用 API 。 该 API 也可供集群内的应用程序使用。Kubernetes Pod 会自动获得对 API 的访问权限,并且可以使用提供的服务帐户进行身份验证。您可以通过使…...
计网面试复习自用
五层: 应用层:应用层是最高层,负责为用户提供网络服务和应用程序。在应用层,用户应用程序与网络进行交互,发送和接收数据。典型的应用层协议包括HTTP(用于网页浏览)、SMTP(用于电子邮…...
wordpress 获取分类文章/seo推广的常见目的有
http://www.cnblogs.com/newpanderking/archive/2011/10/03/2198648.html 讲得很详细。。。我没明白。...
介绍网页设计/seo网络排名优化哪家好
通过前面四天,我们其实已经基本实现了docker的最核心的功能,后面几天,我将带大家实现一些docker的其他命令,今天我们主要是来实现一下 docker logs 功能,也就是查看docker内部日志 写日志 说下总体思路,这个…...
自己的电脑做网站服务器吗/晋中网络推广
我们将通过实验详细分析 instance 从 nova-api-metadata 获取信息的完整过程。 环境介绍 1. 一个 all-in-one 环境(多节点类似)。 2. 已创建 neutron 网络 test_net,DHCP 已启动。在这个 metadata 实验中, test_net 的 type 不重要…...
渝中网站建设/百度文库首页
文章目录(1)__int8、__int16、__int32、__int64(2)int8_t、uint8_t、int16_t、 uint16_t、int32_t、 uint32_t、int64_t、uint64_t(1)__int8、__int16、__int32、__int64 __int8、__int16、__int32、__int…...
网站如何做导航/万网域名管理平台
粒子群算法读书笔记精读 2020《电子信息学报》基于非线性降维的自然计算方法 孙小晴(2020-04-28) 1针对问题 高维大规模优化问题,陷入局部最优与收敛速度和时间复杂度的矛盾。 2创新点 非线性降维思想 - NDR 将初始化的N个D维个体&…...
郑州正规的网站制作价钱/合肥网站推广优化
文章 计算机视觉课程第一讲-VS2015环境配置开发库OpenCV安装读取显示图像程序 计算机视觉课程第二讲-OpenCV4读取、显示、保存-视频&摄像头数据 计算机视觉课程第三讲-形态学处理:膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽、击中击不中变换 计算…...