什么是命名实体识别?

一、说明

        命名实体识别 (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.mzph.cn/diannao/57914.shtml

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

相关文章

深入了解 MySQL 中的 INSERT ... SELECT 语句

在 MySQL 数据库管理中,INSERT ... SELECT 语句是一种非常强大的数据处理工具。它允许我们从一个表中选择数据,并将其插入到另一个表中。这种方式不仅高效,而且在数据迁移和归档过程中非常实用。本文将深入探讨 INSERT ... SELECT 语句的用法…

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

基本设计要求:设计并仿真实现一个音频功率放大器。功率放大器的电源电压为+5V(电路其他部分的电源电压不限),负载为8Ω电阻。具体要求如下:1)3dB通频带为300~3400Hz,输出…

WebSocket简单使用

1.WebSocket 简介 WebSocket 是一种网络通信协议,提供了在单个TCP连接上进行全双工通信的能力。这意味着客户端和服务器可以同时发送和接收数据,而不需要等待对方的回应。WebSocket 协议在2011年成为国际标准,并且被大多数现代浏览器所支持。…

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型,实现 API 形式进行聊天对话

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型,实现 API 形式进行聊天对话 目录 AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型,实现 API 形式进行聊天对话 一、简单介绍 二、创建一个聊…

python爬虫基础篇:BeautifulSoup解析界面

BeautifulSoup解析界面 下载:pip install bs4 from bs4 import BeautifulSoupimport requestshead {user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0}html request…

用ElementPlus开发el-tab结合router-view调用组件时需要注意多次渲染的问题

最近在用vue3elementPlus开发后台界面,用到右侧el-tab这个组件结合router-view实现调用,刚在逛csdn的时候发现一个大佬说如果把router-view放在el-tab-pane下会导致多次渲染,我想还有这事?赶紧测试一下。。。果然,大佬…

Python数字图像处理——基于SIFT特征提取的图像拼接算法(暴力匹配、knn匹配和hist匹配)

(1)项目概述 本文通过Python实现基于SIFT特征提取的图像拼接算法,包括三种匹配策略:暴力匹配、KNN(k近邻)匹配和hist直方图的特征匹配。SIFT算法是一种在尺度和旋转上不变的特征提取算法。它能够在图像中找…

Python浪漫之画星星

效果图(动态的哦!): 完整代码(上教程): import turtle import random import time # 导入time模块# 创建一个画布 screen turtle.Screen() screen.bgcolor("red")# 创建一个海龟&a…

程序员修仙传

凡人修仙 前文修仙愿望练气期筑基期结丹期元婴期化神期大乘期成神 前文 工作好几年了,前前后后经历很多。一年一度的程序员日,回首总是惆怅,但时间永远向前,以前车之鉴未雨绸缪。工作如修仙,以修仙角度解读心得感想。…

PostgreSQL(十三)pgcrypto 扩展实现 AES、PGP 加密,并自定义存储过程

目录 一、pgcrypto 简介1.1 安装 pgcrypto 扩展1.2 pgcrypto 包含的函数 二、用法①:对称加密(使用 AES、Blowfish 算法)2.1 密钥2.2 密钥偏移量 三、用法②:PGP加解密3.1 什么是PGP算法?3.2 使用 GPG 生成密钥对3.3 列…

TypeScript基础简介

TypeScript是Javascript的一个超集。 TypeScript在原有的基础之上又添加了编译器类型检查的功能,意味着如果使用ts进行开发,会对变量的类型进行较为严格的验证,防止程序员写出可能出错的代码,规范变成习惯,适合大项目开…

关于我的数据库——MySQL——第四篇

(叠甲:如有侵权请联系,内容都是自己学习的总结,一定不全面,仅当互相交流(轻点骂)我也只是站在巨人肩膀上的一个小卡拉米,已老实,求放过)。 函数 函数名称描…

SwitchHosts快速修改host文件

中文说明 https://github.com/oldj/SwitchHosts/blob/master/README.zh_hans.md 下载地址 https://github.com/oldj/SwitchHosts/releases 搭配域名对应的ip地址查询工具DNS Checker - DNS Check Propagation Tool

网络搜索引擎Shodan(2)

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。 感谢泷…

Windows 和 Linux 下常用命令(待更新)

Windows PowerShell 命令 1. 获取命令帮助信息 Get-Help [命令]2. 解决 Windows 平台下由于 “你需要权限才能执行此操作” 导致的文件夹删除失败 rm [需要删除的文件或文件夹] -Recurse -ForceLinux 命令 1. grep 使用正则表达式匹配字符串 grep -o -P [PATTERNS] [FILES…

Vue 项目中 Webpack 常见问题详解

前言 在Vue.js项目中,Webpack 作为打包工具,处理各种静态资源和模块化的代码打包需求。尽管 Webpack 在 Vue CLI 项目中已经配置好了一些默认行为,但开发者在实际项目中仍然会遇到许多与资源管理、public 和 assets 目录、require 语法等相关…

【力扣 | SQL题 | 每日4题】力扣2004, 1454,1613,1709

1. 力扣2004:职员招聘人数 1.1 题目: 表: Candidates ------------------- | Column Name | Type | ------------------- | employee_id | int | | experience | enum | | salary | int | ------------------- employee_id是此表的主键列。 经…

dfs复习(一)

题目在蓝桥云课上&#xff1a; 1.四位密码锁 四层&#xff0c;每层遍历所有可能的数字。 #include <bits/stdc.h> using namespace std; typedef long long ll; int sum0; void dfs(int depth,int ans) {if(depth4) //不再递归 {if(ans384) {sum;}return;}for(int i…

Python 从入门到实战40(数据分析概述)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了通过线程的相关知识。今天学习一下数据分析相…

#网络安全#渗透测试# 渗透测试应用

网络安全渗透测试是一种重要的安全评估方法&#xff0c;用于发现和评估网络系统中的安全漏洞。在进行渗透测试时&#xff0c;需要注意以下几个关键点&#xff1a; 法律和道德考量 获得授权&#xff1a;在进行渗透测试之前&#xff0c;必须获得目标系统的正式授权。未经授权的测…