NLP从入门到实战——命名实体识别
1. 命名实体识别
1.1 概念
- 中文命名实体识别(Named Entity Recognition,NER是指识别中文文本中实体的边界和类别。
- 命名实体识别是文本处理中的基础技术,广泛应用在自然语言处理、推荐系统、知识图谱等领域,比如推荐系统中的基于实体的用户画像、基于实体召回等。
1.2 分类
划分: 3大类与7小类
- 3大类
- 实体类
- 时间类
- 数字类
- 7小类
- 人名
- 地名
- 组织机构名
- 时间
- 日期
- 货币量
- 百分数
1.3 识别思想
命名实体识别通常是先进行实体标注,然后识别单个实体,最后再识别复合实体。
从以下几个方面来理解:
-
1.实体边界识别:确定文本中实体的起始和结束位置。例如,在句子“苹果公司是由史蒂夫·乔布斯创立的。”中,"苹果"和"史蒂夫·乔布斯"是需要别的实体。
-
2.实体类别分类:在识别出实体的基础上,一步确定实体属于哪一个预定义的类。在上述例子中,“苹果公司”可以被分类为“组织名”,而“史蒂夫·乔布斯”可以被分类为“人名”。
-
3.上下文理解:实体的识别往往依赖于上下文信息。同一个词在不同的上下文中可能表示不同的实体,或者不表示实体。例如,“苹果”在不同的上下文中可能指代一个公司或者一种水果。
-
4. 模式和规则学习:传统的NER系统可能依赖于手工编写的规则或模来识别实体,如正则表达式、词性标注模式等。
-
5.统计和机器学习方法:现代的NER系统通常采用统计学习方法,通过大量的标注数据来训练模,使其能够学习到实体的特征和上下文模式。这些方法包括条件随机场(CRF)、支持向量机(SVM隐马尔可夫模型(HMM)以及深度学习模型,如循环神经网络(RNN)、长短期记忆网络(LSTM)和转换器模型(Transformer)。
-
6.特征工程:在机器学习方法中,特征工程是提高NER性能的关键。这包括选择合适的词汇特征(如词形、词性)、上下文特征(如相邻词汇的信息)、语法特征(如依存关系)等。
-
7. 深度学习和端到端模型:随深度学习的发展,NER任务越来越多地采用端到端的训练方法,这意味着整个识别过程不再需要复杂的特征工程,而是通过神经网络自动学习特征表示。
1.4 实体标注方法
不同的数据集可能采用不同的实体标注方法,最常见的标注方法有BIO,BIOES,Markup。
命名实体识别(NER)的标注方法主要包括以下几种:
-
BIO标注法(Begin, Inside, Outside
- B:表示实体的开始(Begin)
- I:表示实体的内部(Inside)
- O:表示非实体部分(Outside)
例如,句子“Barack Obama was born in Hawaii.”中的实体标注如下:
- Barack (B-PER)
- Obama (I-P)
- was (O)
- born (O)
- in (O)
- Hawaii (B-LOC)
-
. (O)
其中PER代表人名,LOC代表地名。
-
BIOES标注法(Begin, Outside, End, Single)
- B:实体的开始
- I:实体的内部
- O:非实体部分
- E:实体的结束(End)
- S:单独成实体(Single)
例如,句子“Barack Obama was born in Hawaii.”中的实体标注如下:
- Barack (B-PER)
- Obama (E-PER)
- was (O)
- born (O)
- in (O)
- Hawaii (S-LOC)
- . (O)
BIOES标注法比BIO更精细,可以明确地标出实体的结束,有助于模型更好地识别实体边界。
-
BMES标注法(Begin, Middle, End, Single)
- B:实体的开始
- M:实体的中间部分(Middle)
- E:实体的结束
- S:单独成实体
这种方法在中文NER中使用较多,因为中文实体没有空格分隔。例如,中文句子“奥巴马出生在夏威夷。”中的实体标注如下:
- 奥 (B-PER)
- 巴 (M-PER)
- 马 (E-PER)
- 出生 (O)
- 在 (O)
- 夏 (B-LOC)
- 威 (M-LOC)
- 夷 (E-LOC)
- 。 (O)
-
基于词汇的标注
在某些情况下,尤其是处理中文文本时,可能会采用基于词汇的标注,直接将整个词汇标注为一个实体,而不是使用BIO或BIOES等模式。例如:- 奥巴马 (PER)
- 出生 (O)
- 在 (O)
- 夏威夷 (LOC)
- 。 (O)
-
基于短语的标注
在这种方法中,整个短语或实体被标注为一个单元,而不是标注单个词。例如,英文中的“New York City”作为一个地名实体整体标注:- [New York City] (LOC)
-
Markup方法
Markup方法通常指的是使用XML或类似的标记语言来注释文本中的实体这种方法可以直接在文本中标记实体的边界和类型。
例如,句子“Steve Jobs founded Apple Inc.”可以使用XML标记如下:
<PER>Steve Jobs</PER> founded <ORG>Apple Inc.</ORG>.
每种标注方法都有其优缺点,选择哪一种方法取决于具体的应用场景、所使用的模型以及标注资源的可用性。在实际应用中,BIO和BIOES是最常用的标注方案,因为它们能够提供足够的信息来帮助模型识别实体的边界和类别。
参考文献
1.中文命名实体识别NER的原理、方法与工具
相关文章:
NLP从入门到实战——命名实体识别
1. 命名实体识别 1.1 概念 中文命名实体识别(Named Entity Recognition,NER是指识别中文文本中实体的边界和类别。命名实体识别是文本处理中的基础技术,广泛应用在自然语言处理、推荐系统、知识图谱等领域,比如推荐系统中的基于…...
接口测试工具-postman介绍
一、介绍 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 作用:常用于进行接口测试。 它可以模拟浏览器发起任何形式的HTTP请求...
日志中看到来自User Agent go-http-client / 1.1的大量请求(go-http-client 1.1)服务器爆了
在日志中看到来自User Agent go-http-client / 1.1的大量请求 The go-http-client/1.1 User Agent 是Google的Bot / Crawler 这不是真的。这可能是指Go库(根据您提到的来源,由Google开发,但是我找不到可靠的信息)。 之前写过“G…...
yolov8 区域声光报警+计数
yolov8 区域报警计数 1. 基础2. 报警功能2. 1声音报警代码2. 2画面显示报警代码 3. 完整代码4. 源码 1. 基础 本项目是在 yolov8 区域多类别计数 的基础上实现的,具体区域计数原理可见上边文章 2. 报警功能 设置一个区域region_points,当行人这一类别…...
《QT实用小工具·五十五》带有标签、下划线的Material Design风格输入框
1、概述 源码放在文章末尾 该项目实现了一个带有标签动画、焦点动画、正确提示、错误警告的单行输入框控件。下面是demo演示: 项目部分代码如下所示: #ifndef LABELEDEDIT_H #define LABELEDEDIT_H#include <QObject> #include <QWidget>…...
用Go实现一个无界资源池
写在文章开头 我们希望通过go语言实现一个简单的资源池,而这个资源池的资源包括但不限于: 数据库连接池线程池协程池网络连接池 只要这些资源实现我们指定的关闭方法,则都可以通过我们封装的资源池进行统一管理,需要简单说明一下这个资源池…...
Apache Seata基于改良版雪花算法的分布式UUID生成器分析2
title: 关于新版雪花算法的答疑 author: selfishlover keywords: [Seata, snowflake, UUID, page split] date: 2021/06/21 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 关于新版雪花算法的答疑 在上一篇关于新版雪花算法的解析中…...
13、揭秘JVM垃圾回收器:面试必备知识,你掌握了吗?
13.1、前文回顾 在上一篇文章中,我们详细分析了触发Minor GC的时机,以及对象何时会从新生代迁移到老年代。我们还讨论了为了确保新生代向老年代的内存迁移安全,需要在Minor GC之前如何检查老年代的内存空间,以及在什么情况下会触发老年代的Full GC,以及老年代的垃圾回收算…...
治疗耳鸣患者案例分享第二期
“患者耳鸣20年了,目前耳朵没有堵或者胀的感觉,但是偶尔有点痒,平时会有头晕头胀这种情况,然后头晕是稍微晕炫一下。然后头疼是经常有的,头胀不经常。” 患者耳鸣持续20年,虽然耳朵没有堵或胀的感觉&#x…...
数据加密的方法
这些方法可以单独或结合使用,以提高数据的安全性和保护隐私。 对称加密:使用相同的密钥对数据进行加密和解密。常见的对称加密算法包括DES、AES和RC4。 非对称加密:使用一对密钥(公钥和私钥)对数据进行加密和解密。发…...
Android BINDER是干嘛的?
1.系统架构 2.binder 源码位置: 与LINUX传统IPC对比...
运维各种中间件的手动安装(非常详细)
压缩文件夹 tar -zcvf newFolder.tar.gz oldFolder 把oldFolder文件夹压缩成newFolder.tar.gz解压文件夹 tar -zxvf 压缩文件名.tar.gzlinux安装jdk (参考 https://blog.csdn.net/qq_42269466/article/details/124079963 ) 1、创建目录存放jdk包 mkd…...
【Android】Android应用性能优化总结
AndroidApp应用性能优化总结 最近大半年的时间里,大部分投在了某国内新能源汽车的某款AndroidApp开发上。 由于该App是该款车上,常用重点应用。所以车厂对应用性能的要求比较高。 主要包括: 应用冷启动达到***ms。应用热(温)启动达到***ms应…...
FBA头程海运发货流程是怎样的?
FBA头程发货作为整个FBA流程的关键一环,更是直接影响到商品从起点到终点的流通效率和成本。其中,海运作为一种经济、稳定的运输方式,在FBA头程发货中扮演着举足轻重的角色。那么,FBA头程海运发货流程究竟是怎样的呢? 1、装箱与发…...
二、VLAN原理和配置
vlan不是协议,是一个技术,虚拟局域网技术,基于802.1q协议。 vlan(虚拟局域网),将一个物理的局域网在逻辑上划分成多个广播域的技术。 目录 1.冲突域和广播域 概念 范围 2.以太网帧格式 3.以太网帧封装…...
stackqueue类——适配器模式 双端队列deque(C++)
接下来我们将实现 stack、queue 类的常用函数,其实对于 stack 和 queue 的常用函数实现可以说得上是非常简单,若想详细了解可以看这篇:栈和队列&循环队列(C/C)_栈和循环队列-CSDN博客;在本篇中我们将使…...
SpringCloud知识点梳理
1. Spring Cloud 综述 1.1 Spring Cloud 是什么 [百度百科]Spring Cloud是⼀系列框架的有序集合。它利⽤Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ Spring Boot的开发⻛格…...
【NOI】C++程序结构入门之分支结构二
文章目录 前言一、逻辑运算符1.导入2.逻辑与(&&)3.逻辑或(||)4.逻辑非(!) 二、例题讲解问题:1656. 是两位的偶数吗问题:1658. 游乐设施问题:1659. 是否含有数字5…...
web自动化系列-使用普通模式编写测试用例以及存在问题(十六)
前面已经把selenium的主要操作介绍完毕 ,接下来我们通过编写几条测试用例感受下selenium的用法 。 1.用例需求 还是以登录为例 ,需要实现的测试用例为 : case1:输入正确的用户名和密码进行登录case2 : 输入正确的用户名和错误的…...
VSCode 配置 Qt 开发环境
文章目录 1. 环境说明2. 配置系统环境变量 1. 环境说明 操作系统:Windows 11VSCode版本:1.88.1CMake版本:3.27.7Qt6版本:6.7.0(MinGW 11.2.0 64-bit) 2. 配置系统环境变量 自行根据自己的Qt安装路径配置 配置 MinGW 和 CMake C…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
