什么是命名实体识别?

一、说明

        命名实体识别 (NER) 也称为实体分块或实体提取,是自然语言处理 (NLP) 的一个组件,用于识别文本正文中的预定义对象类别。这些类别可以包括但不限于个人姓名、组织、地点、时间表达、数量、医疗代码、货币价值和百分比等。从本质上讲,NER 是获取一串文本(即句子、段落或整个文档)并识别和分类引用每个类别的实体的过程。

        当“NER”一词在第六次信息理解会议 (MUC-6) 上创造时,目标是简化信息提取任务,其中包括处理大量非结构化文本和识别关键信息。从那时起,NER 不断发展壮大,其发展在很大程度上归功于机器学习深度学习技术的进步。

二、关于NER 技术

        根据 2019 年的一项调查,大约 64% 的公司依赖来自内部资源的结构化数据,但只有不到 18% 的公司利用非结构化数据和社交媒体评论来为业务决策提供信息1。

        使用 NER 进行非结构化数据提取的组织依赖于一系列方法,但大多数方法分为三大类:基于规则的方法、机器学习方法和混合方法。

  • 基于规则的方法涉及为语言的语法创建一组规则。然后,这些规则用于根据实体的结构和语法特征来识别文本中的实体。这些方法可能非常耗时,并且可能无法很好地推广到看不见的数据。
  • 机器学习方法涉及使用条件随机场和最大熵(两种类型的复杂统计语言模型)等算法在标记数据集上训练 AI 驱动的机器学习模型。技术范围从传统的机器学习方法(例如决策树和支持向量机)到更复杂的深度学习方法,例如递归神经网络 (RNN) 和转换器。这些方法可以更好地泛化到看不见的数据,但它们需要大量标记的训练数据,并且计算成本可能很高。
  • 混合方法结合了基于规则的方法和机器学习方法,以利用两者的优势。他们可以使用基于规则的系统快速识别易于识别的实体,并使用机器学习系统来识别更复杂的实体。

 

三、NER 方法

        自 NER 问世以来,已经取得了一些重大的方法进步,尤其是那些依赖于基于深度学习的技术的方法。较新的迭代包括:

  • 递归神经网络 (RNN) 和长短期记忆 (LSTM)。RNN 是一种专为序列预测问题而设计的神经网络。LSTM 是一种特殊的 RNN,可以随着时间的推移学习识别模式,并在长序列中将信息保存在“内存”中,这使得它们对于理解上下文和识别实体特别有用。
  • 条件随机字段 (CRF)。CRF 通常与 LSTM 结合使用用于 NER 任务。它们可以对整个标签序列的条件概率进行建模,而不仅仅是对单个标签进行建模,这使得它们对于单词的标签取决于周围单词的标签的任务非常有用。
  • 变压器和 BERT。Transformer 网络,尤其是 BERT (Bidirectional Encoder Representations from Transformers) 模型,对 NER 产生了重大影响。BERT 使用一种权衡不同单词重要性的自我注意机制,通过查看单词前后的单词来解释单词的完整上下文。

 

NER 流程

步骤 1、数据采集

NER 的第一步是聚合带注释文本的数据集。数据集应包含文本示例,其中标记或标记了命名实体,以指示其类型。注释可以手动完成,也可以使用自动方法完成。

步骤 2、数据预处理

收集数据集后,应清理文本并设置其格式。您可能需要删除不必要的字符、规范化文本和/或将文本拆分为句子或标记。

步骤 3、特征提取

在此阶段,将从预处理的文本中提取相关特征。这些功能可以包括词性标记 (POS 标记)、单词嵌入和上下文信息等。功能的选择将取决于组织使用的特定 NER 模型。

步骤 4、模型训练

下一步是使用带注释的数据集和提取的特征训练机器学习或深度学习模型。该模型学习识别文本中单词之间的模式和关系,以及它们相应的命名实体标签。

步骤 5、模型评估

训练 NER 模型后,应对其进行评估以评估其性能。您可以测量精度、召回率和 F1 分数等指标,这些指标表示模型正确识别和分类命名实体的能力。

步骤 6、模型微调

根据评估结果,您将优化模型以提高其性能。这可能包括调整超参数、修改训练数据和/或使用更高级的技术(例如,集成或域适应)。

步骤 7、推理

在此阶段,您可以开始使用该模型对新的、看不见的文本进行推理。该模型将采用输入文本,应用预处理步骤,提取相关特征,并最终预测每个标记或文本范围的命名实体标签。

步骤 8、后处理

NER 模型的输出可能需要进行后处理步骤,以优化结果和/或添加上下文信息。您可能需要完成实体链接等任务,其中命名实体链接到知识库或数据库以进一步丰富。

四、实施 NER 流程

4.1 简化实施

        实现命名实体识别系统的最简单方法是依赖应用程序编程接口 (API)。NER API 是基于 Web 的接口或本地接口,提供对 NER 功能的访问。NER API 的一些常见示例包括:

        自然语言工具包 (NLTK)

        NLTK 是一个领先的开源平台,用于构建 Python 程序以处理人类语言数据。它为 100 多个经过训练的提取模型提供了易于使用的界面2。它还包括用于分类、分词、词干提取、标记、解析和语义推理的文本处理库。NLKT 有自己的分类器来识别命名实体,称为 ne_chunk,但也提供了一个包装器,用于在 Python 中使用 Stanford NER 标记器。

4.2 Stanford 命名实体识别器

        Stanford NER 由斯坦福大学开发,是一种 Java 实现,被广泛认为是标准实体提取库。它依赖于 CRF 并提供用于提取命名实体的预训练模型。

4.3 SpaCy 系列

SpaCy 用 Python 编写,以其速度和用户友好性而闻名,是一个用于高级 NLP 的开源软件库。它建立在最新的研究之上,专为与真实产品一起使用而设计。它还具有先进的统计系统,允许用户构建定制的 NER 提取器。

五、NER 的应用

        随着技术的不断发展,NER 系统只会变得更加普遍,帮助组织理解他们每天遇到的数据。到目前为止,事实证明,它对多个行业都起到了重要作用,从医疗保健和金融到客户服务和网络安全。

        一些最具影响力的用例是:

  •         信息提取

        NER 是从大型非结构化数据库中提取有用的结构化信息的关键第一步。搜索引擎使用 NER 来提高其搜索结果的相关性和准确性。

  • 自动新闻聚合

        新闻聚合商使用 NER 根据文章和报道包含的命名实体对文章和报道进行分类,从而以更有条理、更高效的方式向受众展示新闻。例如,新闻应用的 NER 可以自动执行分类过程,将类似的新闻报道分组在一起,并提供特定新闻事件的更全面视图。

  • 社交媒体监控
        随着社交媒体平台的激增,可用于分析的文本数据量是压倒性的。NER 在社交媒体分析中发挥着重要作用,识别帖子和评论中的关键实体,以了解不同主题的趋势和公众意见(尤其是围绕品牌和产品的意见)。这些信息可以帮助公司进行情绪分析、制定营销策略、制定客户服务响应并加快产品开发工作。
  • 聊天机器人和虚拟助手
         虚拟助手和生成式人工智能聊天机器人,并使用 NER 准确理解用户请求和客户支持查询。通过识别用户查询中的关键实体,这些 AI 驱动的工具可以提供精确的、特定于上下文的响应。例如,在查询“查找 Piedmont Park 附近的 Soul Food 餐厅”中,NER 帮助助手将“Soul Food”理解为美食,将“restaurants”理解为场所类型,将“Piedmont Park”理解为位置。
  • 网络安全
  

        在网络安全方面,NER 帮助公司识别网络日志和其他安全相关数据中的潜在威胁和异常。例如,它可以识别网络安全日志中的可疑 IP 地址、URL、用户名和文件名。因此,NER 可以促进更彻底的安全事件调查并提高整体网络安全性。

六、使用 NER 的挑战

        NER 自成立以来已经走过了漫长的道路,整合了创新技术并在此过程中广泛扩展了其实用性。但是,在评估 NER 技术时,需要考虑一些值得注意的挑战。

        虽然 NER 在英语等语言方面取得了很大进步,但它对许多其他语言的准确性水平不尽相同。这通常是由于这些语言中缺少标记数据。跨语言 NER,涉及将知识从一种语言转移到另一种语言,是一个活跃的研究领域,可能有助于弥合 NET 语言差距。

        有时,实体也可以嵌套在其他实体中,识别这些嵌套的实体可能具有挑战性。例如,在句子“The Pennsylvania State University, University Park was established in 1855”中,“Pennsylvania State University”和“The Pennsylvania State University, University Park”都是有效实体。

此外,虽然通用 NER 模型可以识别名称和位置等常见实体,但它们可能难以识别特定于某个域的实体。例如,在医疗领域,识别疾病名称或药物名称等复杂术语可能具有挑战性。特定领域的 NER 模型可以在专门的、特定于领域的数据上进行训练,但获取这些信息本身可能具有挑战性。

NER 模型也可能遇到更广泛的歧义问题(例如,“Apple”可能指水果或科技公司);实体名称变体(例如,“USA”、“U.S.A.”、“United States”和“United States of America”均指同一国家/地区);以及有限的上下文信息(其中文本和/或句子不包含足够的上下文来准确识别和分类实体)。

尽管 NER 面临挑战,但持续的进步不断提高其准确性和适用性,因此有助于最大限度地减少现有技术差距的影响。

七、NER 的未来

        虽然 NER 是一个成熟的领域,但仍有许多工作要做。

        展望未来,一个有前途的领域是 NER 的无监督学习技术。虽然监督学习技术表现良好,但它们需要大量标记数据,这可能很难获得。无监督学习技术不需要标记数据,可以帮助组织克服数据可用性挑战。

        另一个有趣的方向是将 NER 与其他 NLP 任务集成。例如,NER 和实体链接的联合模型(涉及将实体链接到知识库中的相应条目)或 NER 和共指解析(涉及确定文本中的两个或多个表达式何时引用同一实体)可以使系统更好地理解和处理文本。

        小样本学习和多模态 NER 还扩展了 NER 技术的功能。通过小样本学习,模型被训练为仅使用几个样本来执行任务,这在标记数据稀缺时特别有用。另一方面,多模式 NER 涉及将文本与其他实体类型集成。例如,图像或音频片段可以提供有助于识别实体的额外上下文。

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

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

相关文章

mysql 通过GROUP BY 聚合并且拼接去重另个字段

我的需求: 我想知道同一个手机号出现几次,并且手机号出现在哪些地方。下面是要的效果。 源数据: CREATE TABLE bank (id bigint(20) unsigned NOT NULL AUTO_INCREMENT,user_id int(11) NOT NULL DEFAULT 0,tel varchar(255) COLLATE utf8mb4_unicode_…

【自然语言处理】BERT模型

BERT:Bidirectional Encoder Representations from Transformers BERT 是 Google 于 2018 年提出的 自然语言处理(NLP)模型,它基于 Transformer 架构的 Encoder 部分。BERT 的出现极大提升了 NLP 任务的性能,如问答系…

Python | Leetcode Python题解之第509题斐波那契数

题目&#xff1a; 题解&#xff1a; class Solution:def fib(self, n: int) -> int:if n < 2:return nq [[1, 1], [1, 0]]res self.matrix_pow(q, n - 1)return res[0][0]def matrix_pow(self, a: List[List[int]], n: int) -> List[List[int]]:ret [[1, 0], [0, …

自动化部署-02-jenkins部署微服务

文章目录 前言一、配置SSH-KEY1.1 操作jenkins所在服务器1.2 操作github1.3 验证 二、服务器安装git三、jenkins页面安装maven四、页面配置自动化任务4.1 新建任务4.2 选择4.3 配置参数4.4 配置脚本 五、执行任务5.1 点击执行按钮5.2 填写参数5.3 查看日志 六、查看服务器文件七…

51单片机STC8G串口Uart配置

测试环境 单片机型号&#xff1a;STC8G1K08-38I-TSSOP20&#xff0c;其他型号请自行测试&#xff1b; IDE&#xff1a;KEIL C51&#xff1b; 寄存器配置及主要代码 STC8G系列单片机具有4个全双工异步串行通信接口&#xff1b;本文以串口1为例&#xff0c;串口1有4种工作方式…

java疫苗发布和接种预约系统源码(springboot)

项目简介 疫苗发布和接种预约系统实现了以下功能&#xff1a; 疫苗发布和接种预约系统的主要使用者分为&#xff1a; 管理员对公告信息&#xff0c;医院信息&#xff0c;疫苗信息&#xff0c;医生信息&#xff0c;用户信息&#xff0c;论坛帖子信息以及预约接种信息等信息进行…

C语言程序设计:现代设计方法习题笔记《chapter5》下篇

第七题 题目分析&#xff1a;求最大最小值转换为条件判断问题&#xff0c;最大值有四种可能&#xff0c;最小值相应有三种情况&#xff0c;给出下列代码。 示例代码&#xff1a; #include <stdio.h>int main() {int num1, num2, num3, num4; // 定义四个变量来存储输入…

nfs服务部署案例

目录 nfs服务介绍 案例信息 服务端部署 安装服务 启动服务 修改配置文件 重新加载配置文件 创建存储目录 客户端部署 安装服务 挂载nfs目录 测试 nfs服务介绍 nfs是网络文件系统&#xff0c;类似与windows的共享文件&#xff0c;用于存储文件。 nfs依赖于rpc服务才…

【C++】抱C++中的函数式编程:使用`std::function`和Lambda表达式简化代码

C自C11标准引入了lambda表达式、std::function和std::bind&#xff0c;为开发者带来了强大的函数式编程特性。函数式编程让代码更加灵活、简洁、可重用&#xff0c;并使得开发者可以轻松处理回调、事件驱动编程和更复杂的函数组合。本文将详细介绍C中函数式编程的关键工具&…

解码专业术语——应用系统开发项目中的专业词汇解读

文章目录 引言站点设置管理具体要求包括&#xff1a; Footer管理基于URL的权限控制利用数据连接池优化数据库操作什么是数据连接池&#xff1f;优化的优势 利用反射改造后端代码&#xff0c;AJAX反射的作用及其在后端代码中的应用AJAX 实现前后端无刷新交互 引言 创新实践项目二…

Linux常用命令1

切换目录 cd [rootlocalhost menge]# cd /[rootlocalhost /]# cd: cd [-L|[-P [-e]] [-]] [目录] 查看当前的目录 pwd 浏览目录内容 ls ls浏览后颜色表示 白色&#xff1a;普通文件 蓝色&#xff1a;目录 红色&#xff1a;压缩包文件 黄色&#xff1a;设备文件 绿…

Python浪漫之画一个圆月亮

效果图&#xff1a; 完整代码&#xff1a; import turtle import time# 创建一个画布 screen turtle.Screen() screen.bgcolor("darkblue") # 设置背景为深蓝色# 创建一个海龟&#xff08;turtle&#xff09;用于绘制月亮 moon turtle.Turtle() moon.color("…

Axure设置面板状态——元件动作二

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01;因为有事断更了三天&#xff0c;从今天开始又回来了&#xff0c;继续为大家分享Axure相关知识点。 课程主题&#xff1a;设置面板状态 主要内容&#xff1a;State状态、推…

UML 总结(基于《标准建模语言UML教程》)

定义 UML 又称为统一建模语言或标准建模语言&#xff0c;是一种标准的图形化建模语言&#xff0c;它是面向对象分析与设计的一种标准表示。尽管UML 本身没有对过程有任何定义&#xff0c;但UML 对任何使用它的方法&#xff08;或过程&#xff09;提出的要求是&#xff1a;支持用…

springboot入门学习笔记

在我们创建了一个Springboot项目之后&#xff0c;我们会看到有很多文件夹和文件 Springboot程序中各类文件的意义 一.pom.xml 在 Spring Boot 项目中&#xff0c;pom.xml&#xff08;Project Object Model&#xff09;文件是 Maven 构建工具的核心配置文件。起到项目信息定义…

S-Function

目录 S-Function介绍 生成S-Function的三种常用手段 使用手写S-函数合并定制代码 使用S-Function Builder块合并定制代码 使用代码继承工具合并定制代码 S-Function介绍 我们可以使用S-Function扩展Simulink对仿真和代码生成的支持。例如&#xff0c;可以使用它们&#xf…

ELK之路第一步——Elasticsearch集群的搭建以及踩坑记录

elasticSearch集群 前言一、架构二、下载三、虚拟机相关设置3.1 创建es用户3.2 为建es用户赋权sudo3.3 更换es目录所属用户 四、Elasticsearch配置文件修改4.1 修改elasticsearch.yml4.2 修改jvm.options4.3 修改jdk路径 五、启动六、启动报错七、可视化界面cerebro 前言 Elk&…

二进制方式部署k8s集群

目标任务: 1、Kubernetes集群部署架构规划 2、部署Etcd数据库集群 3、在Node节点安装Docker 4、部署Flannel网络插件 5、在Master节点部署组件(api-server,schduler,controller-manager) 6、在Node节点部署组件(kubelet,kube-proxy) 7、查看集群状态 8、运行⼀个测…

【有啥问啥】DINO:一种改进的去噪锚框的端到端目标检测器

DINO&#xff1a;一种改进的去噪锚框的端到端目标检测器 在目标检测领域&#xff0c;DINO&#xff08;DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection&#xff09;是一种创新的端到端目标检测模型&#xff0c;旨在解决传统目标检测算法中的一些关…

基于Multisim的音频放大电路设计与仿真

基本设计要求&#xff1a;设计并仿真实现一个音频功率放大器。功率放大器的电源电压为&#xff0b;5V&#xff08;电路其他部分的电源电压不限&#xff09;&#xff0c;负载为8Ω电阻。具体要求如下&#xff1a;1&#xff09;3dB通频带为300&#xff5e;3400Hz&#xff0c;输出…