自然语言处理从入门到应用——评价指标

news2024/11/27 12:53:31

分类目录:《自然语言处理从入门到应用》总目录

相关文章:
· 深入理解机器学习——机器学习模型的性能度量


由于自然语言处理任务的多样性以及评价的主观性,因此很难使用单一的评价指标衡量所有任务的性能,所以针对不同类型的任务,往往采用不同的评价方法。对评价方法的准确把握,有助于深入理解各项自然语言处理任务。准确率(Accuracy)是最简单、直观的评价指标,经常被应用于文本分类等问题。其计算公式为:
ACC CLS = 正确分类文本数 测试文本总数 \text{ACC}^{\text{CLS}} = \frac{\text{正确分类文本数}}{\text{测试文本总数}} ACCCLS=测试文本总数正确分类文本数

词性标注等序列标注问题也可以采用准确率进行评价,即:
ACC POS = 正确标注的词数 测试文本中词的总数 \text{ACC}^{\text{POS}} = \frac{\text{正确标注的词数}}{\text{测试文本中词的总数}} ACCPOS=测试文本中词的总数正确标注的词数

但是,并非全部的序列标注问题都可以采用准确率进行评价,如在将分词、命名实体识别等序列分割问题转化为序列标注问题后,就不应该使用准确率进行评价。以命名实体识别为例,如果采用按词计算的准确率,则很多非命名实体(相应词对应的类别为O)也被计入准确率的计算之中。另外,如果错标了部分词,那么命名实体识别结果就是错误的,但是按照词准确率计算的话,仍然有部分词被认为分类正确了。如下图中的例子所示,按照词(此处为汉字)计算,在8个输入词中,仅仅预测错了1个(三),则准确率为 7 8 = 0.875 \frac{7}{8}=0.875 87=0.875,这显然是不合理的。分词等其他序列分割问题的评价也存在类似的问题。
命名实体识别评价示例
那么,如何更合理地评价序列分割问题的性能呢?这就需要引入F值(F-Measure或F-Score)评价指标,其是精确率(Precision)和召回率(Recall)的加权调和平均,具体公式为:
F值 = ( β 2 + 1 ) ∗ P R β 2 ( P + R ) \text{F值}=\frac{(\beta^2 + 1) * PR}{\beta^2(P + R)} F=β2(P+R)(β2+1)PR

式中, β \beta β是加权调和参数, P P P是精确率, R R R是召回率。当 β = 1 \beta=1 β=1时,即精确率和召回率的权重相同,此时F值又称为F1值,具体公式为:
F 1 = 2 P R P + R F_1=\frac{2PR}{P + R} F1=P+R2PR

在命名实体识别问题中,精确率和召回率的定义分别为:
P = 正确识别命名的实体数目 识别出命名实体的总数 R = 正确识别命名的实体数目 测试文本中命名实体的总数 \begin{aligned} P &=\frac{正确识别命名的实体数目}{识别出命名实体的总数} \\ \\ R &=\frac{正确识别命名的实体数目}{测试文本中命名实体的总数} \end{aligned} PR=识别出命名实体的总数正确识别命名的实体数目=测试文本中命名实体的总数正确识别命名的实体数目

仍以上图中的示例为例,其中,“正确识别的命名实体数目”为1(“哈尔滨”),“识别出的命名实体总数”为2(“张”和“哈尔滨”),“测试文本中命名实体的总数”为2(“张三”和“哈尔滨”),那么此时精确率和召回率皆为 1 2 = 0.5 \frac{1}{2}=0.5 21=0.5,最终的 F 1 = 0.5 F_1=0.5 F1=0.5。与基于词计算的准确率(0.875)相比,该值更为合理了。

理解了准确率和F值两种评价指标的区别和联系后,就可以很容易地为一个自然语言处理任务选择合适的评价指标。例如,在评价依存句法分析时(分析结果是一棵句法依存树),由于正确的标注结果为每个词都赋予了一个正确的父节点,因此可以使用以词为单位的准确率对依存句法分析结果进行评价,以表明有多大比例的词正确地找到了父节点。不过,评价指标通常不被直接称作准确率,而使用UAS(Unlabeled Attachment Score)指标,即词的父节点被正确识别的准确率。另外,在考虑一个词与父节点的关系时,则使用LAS(Labeled Attachment Score)指标进行评价,即词的父节点以及与父节点的句法关系都被正确识别的准确率。而在对语义依存图任务进行评价时,由于每个词的父节点的个数不确定,则无法使用准确率进行评价,此时就需要使用F值了,即以图中的弧为单位,计算其识别的精确率和召回率,然后计算F值。与依存句法分析一样,F值也分为考虑语义关系和不考虑语义关系两种情况。类似地,短语结构句法分析也无法使用准确率进行评价,可以使用句法结构中包含短语(包括短语类型及短语所覆盖的范围)的F值进行评价。

虽然准确率和F值可以用来对标准答案比较明确的任务进行评价,但是很多自然语言处理问题的答案并不明确,或者说并不唯一。如《自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)》中介绍的语言模型问题,在给定历史文本预测下一个词时,除了在语料库中出现的词,还有许多其他词也是合理的。因此,不能简单地使用准确率进行评价,所以才引入了困惑度这一评价指标。对机器翻译系统的评价也类似,测试数据中的参考译文并非唯一正确的答案,目标语言翻译结果只要与源语言语义相同,其表达方式可以非常的灵活。BLEU值是最常用的机器翻译自动评价指标,其计算方法是统计机器译文与参考译文(可以不止一个)中N-gram匹配的数目占机器译文中所有N-gram总数的比率,即N-gram的精确率。其中N 的取值不易过大,也不易过小。过大的N 会导致机器译文与参考译文中共现的N-gram过少,而过小的N会无法衡量机器译文中词语的顺序信息,所以一般N最大取4。另外,由于此评价方法仅考虑了精确率,而忽视了召回率,所以其倾向于较短的翻译。因此,BLEU值引入了一个长度惩罚因子,鼓励机器译文中单词数目尽量接近参考译文中的数目。最终,BLEU值的区间是0~1,得分越高表明机器翻译系统的译文质量越好。

对人机对话系统的评价,虽然也可以利用历史上人人对话数据,采用BLEU值等指标,但是由于回复的开放性,这种自动评价的结果很难保证公正、客观。因为与机器翻译类似,人机对话系统的机器回复也没有唯一的标准答案,但比机器翻译评价更困难的是,人机对话系统的回复甚至都没有需要与输入语义相同这一约束,也就是说人机对话系统的答案是开放式的。此外,由于对话的交互性,不能简单地通过一轮人机对话就对系统进行评价。以上这些问题都给人机对话系统的自动评价带来了极大的挑战。因此,在评价一个人机对话系统时,往往采用人工评价的方式,即通过人与系统进行多轮对话后,最终给出一个总的或多个维度(流畅度、相关度和准确性等)的主观分数。由于评分的主观性,人工评价的一致性往往又比较低,也就是说不同人打分可能差异比较大,为了消除这种差异性,又需要多人进行评价并最终取一个平均分数。因此,人工评价的代价往往非常高,很难在系统开发的过程中多次进行。综上,人机对话系统的评价方法仍是目前自然语言处理领域一个非常棘手的开放性问题,并没有很好地被解决。

参考文献:
[1] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[2] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[3] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[4] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[5] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

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

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

相关文章

C++服务器框架开发9——日志系统LogFormatter_4/各个类的关系梳理/std::function/std::get

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C高级教程]从零开始开发服务器框架(sylar) 上一篇:C服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase结构 C服务器框架开发9——日志系统LogFormatt…

3-10 0-1背包问题

1.什么是0-1背包问题 0-1背包问题是动态规划中的一个经典问题,其目标是在给定背包容量和一组物品的重量和价值的情况下,选择一些物品放入背包中,使得放入的物品总重量不超过背包容量,并且使得放入的物品总价值最大化。 问题的输…

低代码平台实力盘点:2023年最具实力的低代码平台排行榜

低代码平台是近年来迅猛发展的技术之一。它通过用最少量的编程代码去开发应用程序,从而提高效率。由此,许多企业都在使用低代码平台进行业务的开发和升级。低代码平台可以大幅简化编码过程,并且可以快速构建定制化的应用程序,从而…

GC 调优(工具篇)

进行GC性能调优时, 需要明确了解, 当前的GC行为对系统和用户有多大的影响。有多种监控GC的工具和方法, 本章将逐一介绍常用的工具。 JVM 在程序执行的过程中, 提供了GC行为的原生数据。那么, 我们就可以利用这些原生数据来生成各种报告。原生数据(raw data) 包括: 各个内存池…

1. 卷积的基本结构

一、卷积神经网络的结构有哪些? 一般包含5种类型的网络层次结构: 输入层:卷积网络的原始输入,可以是原始或预处理后的像素矩阵 卷积层 :参数共享、局部连接,利用平移不变性从全局特征图提取局部特征 激活层…

路径规划算法:基于原子搜索优化的路径规划算法- 附代码

路径规划算法:基于原子搜索优化的路径规划算法- 附代码 文章目录 路径规划算法:基于原子搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

java并发编程:java内存模型介绍

文章目录 并发编程模型的两个关键问题物理计算机的内存模型缓存不一致的问题总线加LOCK#锁的方式缓存一致性协议 Java内存模型 并发编程模型的两个关键问题 线程间如何通信?即:线程之间以何种机制来交换信息 线程间如何同步?即:…

JavaEE-Servlet(CookieSession)

目录 CookieCookie从哪里来?Cookie到哪里去?Cookie有啥用? SessionServlet中操作 Cookie 和 Session 的APIHttpServletRequest小案例:模拟实现登录功能 HttpServletResponseHttpSessionCookie 类中的相关方法小案例:上…

【深入浅出C#】章节 1:C#入门介绍:C#开发环境的设置和配置

一、环境准备 1.1 安装和配置.NET Core 当配置C#开发环境时,安装.NET Core是一个重要的步骤。以下是安装.NET Core的基本过程: 访问官方网站:打开浏览器,访问.NET Core的官方网站:https://dotnet.microsoft.com/en-u…

【vue】三:核心处理---vue的生命周期

文章目录 1.Vue生命周期的四个阶段,八个钩子2.vue的生命周期图例3. 初始阶段:虚拟DOM生成4. 挂载阶段:真实DOM生成5. 更新阶段:data变化重新渲染6. 销毁阶段:卸载所有,销毁vm 1.Vue生命周期的四个阶段&…

Python+Django人脸识别考勤系统网站

程序示例精选 PythonDjango人脸识别考勤系统网站 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonDjango人脸识别考勤系统网站>>编写代码&#xff0c;代码整洁&#xff0c…

文本分类系统Python,基于深度学习CNN卷积神经网络

一、介绍 文本分类系统&#xff0c;使用Python作为主要开发语言&#xff0c;通过TensorFlow搭建CNN卷积神经网络对十余种不同种类的文本数据集进行训练&#xff0c;最后得到一个h5格式的本地模型文件&#xff0c;然后采用Django开发网页界面&#xff0c;实现用户在界面中输入一…

I.MX6ull 按键抖动消除

1 按键消抖的原理 其实就是在按键按下以后延时一段时间再 去读取按键值&#xff0c;如果此时按键值还有效那就表示这是一次有效的按键&#xff0c;中间的延时就是消抖的。 延时函数实现 会浪费 CPU 性能&#xff0c;因为延时函数就是空跑。 我们可以借助定时器来实现消抖&…

小程序服务器SSL证书替换,访问小程序异常

小程序最近SSL证书过期&#xff0c;访问小程序errno: 600001, errMsg: “request:fail -102:net::ERR_CONNECTION_REFUSED“。 1.在阿里云申请DV证书&#xff0c; DV证书&#xff1a;域名验证型证书&#xff0c;证书审核方式为通过验证域名所有权即可签发证书。 DV证书只验证…

基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

从本篇博客正式开始深度学习项目的记录&#xff0c;实例代码只会放通用的代码&#xff0c;数据集和训练数据也是不会全部放出。 系列文章&#xff1a; 基于Yolov5目标检测的物体分类识别及定位&#xff08;一&#xff09; -- 数据集原图获取与标注 基于Yolov5目标检测的物体分类…

【计算机组成原理与体系结构】硬件系统概述

目录 一、计算机的发展 二、计算机的硬件系统 三、硬件的工作原理 四、计算机系统的层次结构 五、计算机的性能指标 一、计算机的发展 第一代计算机&#xff1a;电子管计算机 第一台电子计算机&#xff1a;ENIAC&#xff08;1946&#xff09; 设计目的&#xff1a;计算导弹…

实验篇(7.2) 06. 通过安全隧道访问远端内网服务器 (SSL) ❀ 远程访问

【简介】直接映射服务器到公网&#xff0c;没有验证不安全&#xff1b;通过Web浏览器访问远程内网服务器&#xff0c;有验证也安全&#xff0c;但是支持的协议太少。那有没有即安全&#xff0c;又能支持所有协议的访问方法呢&#xff1f;我们来看看SSL VPN的隧道模式。 实验要求…

基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换

刚开始跟着网上的教程做&#xff0c;把环境安装错了&#xff0c;后来直接用GitHub的官方教程来安装环境。 地址是yolov5官方团队代码及教程&#xff0c;看readme文件就可以。 系列文章&#xff1a; 基于Yolov5目标检测的物体分类识别及定位&#xff08;一&#xff09; -- 数据集…

【MySQL】一文带你了解表的增删改查 CRUD

文章目录 1. 增加&#xff08;Create&#xff09;1.1 单行插入 全列插入1.2 多行插入 指定列插入 2. 查询&#xff08;Retrieve&#xff09;2.1 全列查询2.2 指定列查询2.3 查询字段为表达式2.4 别名2.5 去重2.6 排序 3. 条件查询&#xff08;Where&#xff09;3.1比较运算符…

【人工智能】— 学习与机器学习、无/有监督学习、强化学习、学习表示

【人工智能】— 学习与机器学习、无/有监督学习、强化学习、学习表示 上一章Bayesian Networks本章&#xff1a;观测学习学习学习元素机器学习概论机器学习对什么有用自动语音识别计算机视觉Information retrieval—信息检索 机器学习机器学习&#xff1a;定义 电子邮件过滤问题…