实体识别(NER)命名实体识别(Name Entity Recognition,NER)是在一段文本中,将预先定义好的实体类型(如人名、机构、地名等)识别出来的技术。它是自然语言处理中一个非常重要且基础的任务。一、主要功能和用途NER的主要功能是把文本中预先定义好的、需要提取的实体识别出来。例如,在句子“我爱北京天安门”中,“北京”是地名,“天安门”是组织机构名。NER任务被广泛地应用到了信息抽取、关系抽取、句法分析、信息检索、问答系统、机器翻译等多个领域中。二、模型操作步骤NER模型的整个架构可以分为三个部分:特征表示、特征编码、标签解码。特征表示特征表示步骤主要是对输入的文字进行分布式向量表示,常用的表示方法有Word Embedding、Char Embedding、Word Embedding and Char Embedding以及Hybird Representation。Word Embedding是对单词进行表示,中文中就是先分词然后对词组进行表示;Char Embedding是对每个英文字母进行表示,中文中就是对每个字进行表示。两种方式也可以融合,通过对Word Embedding和Char Embedding的输出向量进行拼接或者相加等操作来融合信息。Hybird Representation则是除了对输入文字进行表示之外,还引入知识图谱或者词典等外部信息来增强表示信息。特征编码特征编码主要是对输入的分布式表示信息进行变换,提取句子的语义信息。常用的特征提取器有CNN、RNN、Transformer等模型。随着Transformer的问世,并且效果惊人,也衍生出了很多大型的预训练模型来作为强大的特征编码器。标签解码标签解码是NER任务的最后一步,也是至关重要的一步,它的主要目标是对输入的每个token输出一个标签类别。总结为四种解码方式:多层感知机(MLP,Multi-Layer Perceptron + Softmax)、条件随机场(CRF,Conditional Random Fields)、循环神经网络(RNN,Recurrent Neural Networks)、指针网络(Pointer Networks)。三、常用方法和模型BI-LSTM+CRFBI-LSTM+CRF是目前最主流的NER模型,也是NER项目的baseline冷启动模型。采用两个LSTM cell,一个从左往右跑得到第一层表征向量,一个从右往左跑得到第二层向量,然后两层向量相加或者拼接得到第三层向量c。如果不使用CRF的话,就可以直接接一层全连接与softmax,然后输出结果;如果用CRF的话,需要把c输入到CRF层中,经过CRF层对各个标签的约束来得到最终每个token的标签分类。优点:通过双向的LSTM可以更好的建模每个token的上下文信息。通过CRF使得模型解码更加合理。缺点:LSTM模型不能并行计算,速度受到制约。如果序列太长,LSTM会存在梯度消失或者爆炸的问题。如果标签的种类太多,CRF概率转移矩阵就会庞大,对速度和效果都会产生影响。BERT+CRF & BERT+LSTM+CRF增加BERT模型操作和原理都不难理解,只是再让输入数据过一遍BERT,然后再送入到CRF或者LSTM中。采用BERT训练需要设置两个学习率,一个是BERT的小点的学习率,一个下游LSTM或者CRF的大点的学习率,以防止BERT学习率过大梯度振荡。优点:增加BERT预训练模型使得效果得到了略微的提升。缺点:BERT模型太过庞大,训练和推理速度都是硬伤。Cascade(级联)为了解决标签种类太多对速度和效果造成的影响,研究者们尝试把NER转成一个多任务学习的框架,首先提取实体的范围,然后再对实体的类型进行分类。优点:降低了标签类别,减小了CRF的概率转移矩阵,提高训练速度,效果也略微提升。缺点:实现相对复杂。Word-Level Feature以往的实体识别输入的单位都是字符级别(character level)的,即一个字一个字的,但是这种方式区分度不强,且容易造成边界问题。于是学者就想到加入词级别(word level)的信息,在输入端同时输入字符级别的信息和词级别的信息。优点:通过融合词级别的信息扩展了特征。四、问题和解决方法样本比例失衡样本比例失衡是指不同类别实体的数量差异巨大,这会造成训练效果偏向于实体数量多的类别,而忽略了实体数量少的类别。对于此种问题的缓解方法可以通过数据增强的方式,如造实体和造内容。边界问题边界问题一直是NER任务中的主要问题,即实体两边会有多识别和少识别的问题。这种问题可以通过模型输入和模型输出两个方面进行优化,如融合word level的信息、尝试BMESO打标方式、后处理等方式。打标方式打标方式有两种:BMESO和BIO。BMESO对实体的边界有不同的标签,有利于缓解边界漏识别和多识别的问题,但如果实体类型比较多,会造成分类标签太多,CRF层的转移矩阵参数太多。BIO则分类标签少,节省时间复杂度,但没有对实体边界特殊标签,有可能造成边界问题。长实体长实体一直以来都是NER中的大难题。如果训练集中长短实体都有,可以尝试按照实体长度的大小划分为长实体数据集和短实体数据集两个部分(前提是数据集比较充足的情况),然后对短实体数据采用BILSTM+CRF模型,对长实体采用抽取+分类的模型。在模型预测的时候,两个模型都预测一次,然后再对得出的结果通过某种方式选择其中一个。NER作为自然语言处理中的一个基础且重要的任务,其技术和方法在不断发展和完善。通过深入了解NER的原理、常用模型以及可能遇到的问题和解决方法,可以更好地应用NER技术于实际场景中。



































