介绍

命名实体识别(Named Entity Recognition,NER)是NLP领域中一项基础的信息抽取任务,NER 是关系抽取、知识图谱、问答系统等其他诸多NLP任务的基础。NER从给定的非结构化文本中识别命名实体,并对实体分类,如时间、人名、地名、机构名等类型的实体。

NER 常转化为序列标注问题,利用BIO、BIOES和BMES等常用的标注规则对经过分词的文本进行token标注。以BIO标注模式为例,下图为对文本进行token-level的命名实体标注实例,通过构建模型对文本的每个token标签进行预测,进行实体识别。

基于序列标注的命名实体识别

序列标注的命名实体识别方法中,CNN、RNN和BERT等深度模型与条件随机场CRF结合已经成为最主流和普遍的方法

基于序列标注的命名实体识别的发展大致经历了以下三个历程:

  • [机器学习]:早期传统机器学习时代,除了利用人工规则的方法外,往往利用隐马尔科夫链HMM和条件随机场CRF进行实体标注;
  • [深度学习]:随着深度学习的发展,将CNN和RNN做为基本的文本特征编码器,更好的学习token或word的隐层表示,再利用CRF进行实体标签分类,Bi-LSTM-CRF是最常用和普遍的实体识别模型;
  • [预训练模型]:最近BERT为代表的预训练模型表现出了强大的文本表示和理解能力,目前最流行的方法是将BERT或BERT-Bi-LSTM作为底层的文本特征编码器,再利用CRF进行实体标签预测。现在,对于许多命名实体识别任务可以将BERT-Softmax、BERT-CRF、BERT-Bi-LSTM-CRF这几个模型作为baseline,而且能达到很好的效果,这几乎得益于BERT模型的强大文本表征建模能力。

CRF与NER

基于序列标注的命名实体识别方法利用CNN、RNN和BERT等模型对文本token序列进行编码表征,再利用全连接层对序列每个token分类,最后利用Softmax或CRF进行最终标签判断确定。

假设数据集的实体类别为 k个,以 BIO 作为标注模式,命名实体识别的过程如下:

假设数据的实体类别为 2:人名(P)和国家(C), label_set = {B-C, I-C, B-P, I-P, O}。以“朝鲜领导人和普京举行会晤”句子为例,下图为命名实体识别的整个过程。

CRF实体标签判断

Softmax预测实体标签时是独立的,只由其对应token的输出所决定,同一序列中判断预测的多个标签也是独立的,没有关联和影响。而CRF是以标签路径为预测目标,可以在Logit基础上为最终的预测标签序列添加约束,确保预测的实体标签序列是有效的,约束可以由CRF层在训练过程中从训练数据集自动学习。

最终的输出可能会产生多种标签序列组合,如下图所示列举了三个标签路径组合,红色路径标签序列为 [B-C,I-C, ...,,B-P,I-P,...,O],蓝色标签序列为 [O,B-P,...,I-P,O,..., O],绿色标签序列为 [I-C,O,...,O,I-P,...,B-C],红色路径为真实正确的,其他两条为可能预测产生的路径。

很多标签路径预测结果是错误的,比如绿色路径中,I-C不可能作为序列的起始标签,标签O后面不可能是I-P标签,所以标签之间的转移关系和标签本身的属性对实体标签预测作用很大。

CRF正是通过数据学习标签转移关系和一些约束条件,帮助模型选择正确合理的实体标签序列,减少无效的实体标签序列的预测判断,模式约束例举如下:

  • 文本第一个单词的实体标签应该以 'B-' 、'O' 开头,而不是 'I-' ;
  • ' B-label1 I-label2 I-label3 I-…'模式中,label1、label2、label3等应该是相同的实体标签;
  • 一个命名实体的第一个标签应该以 'B-' 而不能是 'I-' 开头;

CRF在训练过程中通过数据学习一个标签转移关系关系矩阵 transaction ∈ (k*k),矩阵是CRF的参数,通过数据集训练学习,得到标签之间的关系和标签约束。

参考:

命名实体识别模型BERT-Bi-LSTM-CRF - 知乎

浅析命名实体识别(NER)的三种序列标注方法_实体识别标注_李国冬的博客-CSDN博客

BiLSTM上的CRF,用命名实体识别任务来解释CRF(1) (qq.com)

命名实体识别(NER)知识汇总相关推荐

  1. 命名实体识别NER探索(1)

    命名实体识别NER探索(1) 命名实体识别(Named-entity recognition ,NER)(也称为实体识别.实体分块和实体提取)是信息提取的一个子任务,旨在将非结构化文本中提到的命名实体 ...

  2. 信息抽取实战:命名实体识别NER【ALBERT+Bi-LSTM模型 vs. ALBERT+Bi-LSTM+CRF模型】(附代码)

    实战:命名实体识别NER 目录 实战:命名实体识别NER 一.命名实体识别(NER) 二.BERT的应用 NLP基本任务 查找相似词语 提取文本中的实体 问答中的实体对齐 三.ALBERT ALBER ...

  3. 【命名实体识别(NER)】(1):命名实体识别综述

    什么是命名实体识别? 命名实体识别(Named Entity Recognition,简称NER),又称作"专名识别",是自然语言处理中的一项基础任务,应用范围非常广泛.命名实体一 ...

  4. NLP命名实体识别NER数据准备及模型训练实例

    NLP命名实体识别NER数据准备及模型训练实例 目录 NLP命名实体识别NER数据准备及模型训练实例 ​ 方案一

  5. NLP命名实体识别(NER)代码实践

    NLP命名实体识别(NER)开源实战教程  引 https://blog.csdn.net/xiaosongshine/article/details/99622170 NER学习系列之-BILSTM ...

  6. 用CRF做命名实体识别——NER系列(三)

    在上一篇文章<用隐马尔可夫模型(HMM)做命名实体识别--NER系列(二)>中,我们使用HMM模型来做命名实体识别,将问题转化为统计概率问题,进行求解.显然,它的效果是非常有限的. 在深度 ...

  7. 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(二)

    上一篇文章里<用规则做命名实体识别--NER系列(一)>,介绍了最简单的做命名实体识别的方法–规则.这一篇,我们循序渐进,继续介绍下一个模型--隐马尔可夫模型. 隐马尔可夫模型,看上去,和 ...

  8. NLP入门(八)使用CRF++实现命名实体识别(NER)

    CRF与NER简介   CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机 ...

  9. 逐行讲解CRF实现命名实体识别(NER)

    文章标题 本文概述 NER介绍 代码详解 任务 导入库 加载数据集 构造特征字典 数据处理 模型训练 模型验证 模型参数 备注 随机搜索RandomizedSearchCV 本文概述 使用sklear ...

最新文章

  1. ML 神经网络 NeuralNetworks
  2. 解决iOS地图持续定位耗电问题
  3. 雨滴桌面时间插件_Win10美化向——如何搭配你的桌面
  4. pccad自定义图框_(PCCAD自定义标题栏详细方法.doc
  5. [html] 渐进式渲染是什么?
  6. java volidate_volidate 学习
  7. Oracle 数据库-分组函数总结
  8. ios之mknetworkkit笔记
  9. 计算机硬件加速怎么开,显卡硬件加速,小编教你电脑怎么开启显卡硬件加速
  10. sql 表变量 临时表_何时使用SQL临时表与表变量
  11. Web 能力分析工具 WCAT
  12. 显示MSSQL SQL语句执行的时间
  13. 如何最大程度地提高cin和cout的效率
  14. Android 中文API (37) —— AbsoluteLayout
  15. 百度谭中意:我和开源20年
  16. 全国计算机高新技术模块,全国计算机信息高新技术考试模块总表.doc
  17. 多项式函数的极值点与拐点判别及个数公式
  18. 计算机语言的拼音,语言拼音_语言的拼音和组词_怎么写语言拼音
  19. js点击获取短信验证码
  20. 思科本周发布一季财报:利润或继续下滑

热门文章

  1. socket error 10054错误出现的原因以及解决办法,全网最全没有之一
  2. 1.3 OC与OD门(硬件基础系列)
  3. python爬虫(网页解析)
  4. 机器学习概述----机器学习并没有那么深奥,它很有趣(2)
  5. 为什么国内搜索不到国外服务器网站?
  6. echarts折线图设置圆点_echarts 设置折线图单个数据小圆圈样式
  7. 神经网络学习(3)————BP神经网络以及python实现
  8. 视觉和imu(惯性传感器)( 一)
  9. Android 同步网络时间
  10. mysql dataType