命名实体识别总结

1、什么是命名实体识别

   命名实体识别(NER)是指在文本中识别出特殊对象,这些对象的语义类别一般在识别前被预约义好,预约义类别如人、地址、组织等。命名实体识别不只仅是独立的信息抽取任务,它在许多大型nlp应用系统如信息检索、自动文本摘要、问答系统、机器翻译以及知识建库(知识图谱)中也扮演了关键的角色。web

1. 命名实体分类

2. 方法分类

传统:网络

  • 基于规则的方法
  • 无监督方法
  • 基于特征的监督学习方法

当今:dom

  • 深度学习方法

3. 形式化定义

  给定标识符集合s=<w1,w2,...,wN>,NER输出一个三元组<Is,Ie,t>的列表,列表中的每一个三元组表明s中的一个命名实体。分布式

  • Is属于[1,N],为命名实体的起始索引
  • Ie属于[1,N],为命名实体的结束索引
  • t指代从预约义类别中选择的实体类型

例:工具

4. NER任务分类

2、背景

1. 数据集

  有监督方法的NER任务依赖标注数据集。2005 年以前,数据集主要经过标注新闻文章获得而且预约义的实体种类少,这些数据集适合用于粗粒度的NER任务; 2005 年以后,数据集来源愈来愈多,包括但不限于维基百科文章、对话、用户生成语料(如推特等社区的用户留言)等,而且预约义的实体类别也多了许多,以数据集 OneNotes 为例,其预约义的实体类别达到了89种之多。性能

  全部数据集中,最多见的数据集为 CoNLL03 和 OneNotes,分别常见于粗粒度的NER任务和细粒度的NER任务。学习

  常见的数据集列举以下:ui

2. 工具

  现成的NER工具来源于学界、工业界以及开源项目。列举以下:编码

3、评估标准

1. 精确匹配评估

  NER任务须要同时肯定实体边界以及实体类别。在精确匹配评估中,只有当实体边界以及实体类别同时被精确标出时,实体识别任务才能被认定为成功。基于数据的TP、FP以及FN,能够计算NER任务的准确率,召回率以及F-score用于评估任务优劣。spa

  

准确率 

Precision=\frac{TP}{TP+FP}
召回率 Recall = \frac{TP}{TP+FN}

F-score:F-score 是精确率和召回率的调和平均,最经常使用的 F-score :

2\times\frac{Precision\times Recall}{Precision+Recall}

 

  绝大多数的NER任务须要识别多种实体类别,须要对全部的实体类别评估NER的效果。基于这个思路,有两类评估指标:

2. 宽松匹配评估

4、传统的NER方法

1. 基于规则的方法

2. 无监督学习方法

3. 基于特征的有监督学习方法

5、深度学习方法

1. 为何使用深度学习方法

2. 模型分类法

  一个深度NER系统的结构示例:

 

6、输入的分布式表示

  分布式语义表示:一个单词的含义是由这个单词常出现的语境(上下文)所决定的.

  一种直接粗暴的单词表示方法为 one-hot 向量表示。这种方法一般向量的维度太大,极度稀疏,且任何两个向量都是正交的,没法用于计算单词类似度(见 CS224N lecture1笔记)。分布式表示使用低维度稠密实值向量表示单词,其中每一个维度表示一个隐特征(此类特征由模型自动学习获得,而非人为明确指定,研究者每每不知道这些维度到底表明的是什么具体的特征)。这些分布式表示能够自动地从输入文本中学习获得重要的信息。深度NER模型主要用到了三类分布式表示:

  • 单词级别表示
  • 字符级别表示
  • 混合表示

1. 单词级别的分布式表示

做为后续阶段的输入,这些词嵌入向量既能够在预训练以后就固定,也能够根据具体应用场景进行调整。

  典型的应用:

2. 字符级别的表示

  典型例子:

3. 混合表示

典型例子以下:

7、语义编码结构

  基于深度学习的NER系统的第二步时利用输入表示学习语义编码。常见的语义编码结构有:

  • 卷积神经网络(convolutional neural network)
  • 循环神经网络(recurrent neural network)
  • 递归神经网络(recursive neural network)
  • 神经语言模型
  • transformer

  如无特殊说明,文中的 RNN 通常指循环(recurrent)神经网络。

1. 卷积神经网络(CNN)

  如图是一个经典的基于 CNN 的句子处理方法:

  输入表示阶段,输入序列中的每个词都被嵌入一个 N 维的向量。在这以后,系统利用卷积神经网络来产生词间的局部特征,而且此时卷积神经网络的输出大小还与输入句子的大小有关。随后,经过对该局部特征施加极大池化(max pooling)或者平均池化(average pooling)操做,咱们能获得大小固定且与输入相互独立的全局特征向量。这些长度大小固定的全局特征向量以后将会被导入标签解码结构中,分别对全部可能的标签计算相应的置信分数,完成对标签的预测。

2. 循环神经网络(Recurrent NN)

循环神经网络在处理序列输入时效果优秀,它有两个最多见的变种:

  • GRU(gated recurrent unit)
  • LSTM(long-short term memory)

特别的,双向循环神经网络(bidirectional RNNs)能同时有效地利用过去的信息和将来的信息,便可以有效利用全局信息。所以,双向循环神经网络逐渐成为解决 NER 这类序列标注任务的标准解法。

  典型例子:

3. 递归神经网络(Recursive NN)

  递归神经网络是一种非线性自适应的模型,它能够学习获得输入的深度结构化信息。命名实体与某些语言成分联系十分紧密,如名词词组。传统的序列标注方法几乎忽略了句子的结构信息(成分间的结构),而递归神经网络能有效的利用这样的结构信息,从而得出更好的预测结果。

  典型例子:

  • Leveraging linguistic structures for named entity recognition with bidirectional recursive neural networks

 

4. 神经语言模型

  语言模型是一类描述序列生成的模型。给定符号序列 (t_1,t_2,...,t_N) ,且已知符号 t_k 以前的符号为 (t_1,...,t_{k-1}) ,前向语言模型经过对符号 t_k 的几率进行建模来计算整个序列的几率:

  相似的,反向语言模型对整个序列的计算以下:

  而双向语言模型(结合了前向和反向语言模型)同时利用了过去和将来的词的信息来计算当前符号的几率,于是能够很好的利用语境的语义与句法信息

  典型例子:

  • Semisupervised sequence tagging with bidirectional language models 文章认为,利用单词级别表示做为输入来产生上下文表示的循环神经网络每每是在相对较小的标注数据集上训练的。而神经语言模型能够在大型的无标注数据集上训练。文中模型同时使用词嵌入模型与神经语言模型对无监督的语料进行训练,获得两种单词表示;以后模型中省去了将输入向量转化为上下文相关向量的操做,直接结合前面获得的两类单词表示并用于有监督的序列标注任务,简化了模型的结构。示例图以下:

5. transforer

  典型例子:

 

8、标签解码结构

  标签解码是NER模型中的最后一个阶段。在获得了单词的向量表示并将它们转化为上下文相关的表示以后,标签解码模块以它们做为输入并对整个模型的输入预测相应的标签序列。主流的标签解码结构分为四类:

  • 多层感知器+Softmax
  • 条件随机场
  • 循环神经网络
  • pointer networks

1. 多层感知器+softmax

  利用这个结构能够将NER这类序列标注模型视为多类型分类问题。基于该阶段输入的上下文语义表示,每一个单词的标签被独立地预测,与其邻居无关。

  例子以下:

2. 条件随机场

  条件随机场(conditional random fields)是一类几率图模型,在基于特征的有监督方法中应用普遍,近来的许多深度学习方法也使用条件随机场做为最后的标签标注结构。其缺点为: 没法充分利用段级信息,由于段的内部属性没法使用字级表示进行彻底编码。

  例子以下:

3. 循环神经网络

  一些研究使用 RNN 来预测标签。

  例子以下:

4. pointer networks

 

 

 参考文献:

【1】【综述笔记】命名实体识别中的深度学习方法

【2】A survey on deep learning for named entity recognition

相关文章
相关标签/搜索