赵 辉,庞海婷,冯珊珊,韩东辰
(长春工业大学 计算机科学与工程学院,吉林 长春 130012)
在计算机科学人工智能大发展下,信息抽取IR 作为自然语言处理领域的一个重要分支,主要用来对文本信息进行结构化处理。信息抽取包含命名实体识别、关系提取、事件抽取和共指消解等多个子任务。命名实体识别NER是信息抽取研究中的子任务,是关系抽取、语义角色标注、自动问答等基础工具。命名实体识别主要用来识别非结构化文本中指代性强的真实具体相互区别的实体,比如特定实体人名、地名、机构名、专有名词等,并对所识别的实体属类进行标注类型。例如台风“烟花”不在宁波登陆为何宁波雨量浙江第一。台风“烟花”为专有名词,宁波和浙江是地名。因此,命名实体识别能将大量非结构化、半结构化数据中的实体识别出来,对未来收集、整理、查询对应数据具有很强的现实意义和应用价值。
近几年,命名实体识别在持续发展和进步中,在各个模型中产生很好的效果,并在多个领域得以运用。命名实体识别这个词是在1995年第6届消息理解会议MUC-6[1]上首次提出并命名,将命名实体识别设置为测评任务。此次会议主要关注3类专业名词的识别,分别是人名、地名、组织机构名,之后在MUC-7会议又将类别划分为3大类和7小类。进入21世纪后,CoNLL国际会议将命名实体定义为包含名称的短语。
MUC-1~MUC-4会议都只针对英语语料,开始针对日语语料是在MUC-5会议上,开始针对中文语料的测评则是在MUC6会议上,当时这些语料主要是从电子新闻、广播新闻、纸质报纸等获得的。一些国内学者对中文命名实体识别的研究最早是1995年孙茂松等[2]提出基于统计的方法,使用算法在中文文本中自动识别出人名。2000年ACL会议上,Zhang Yimin等[3]提出信息抽取系统,即识别实体及相互关系,运用记忆学习算法识别实体结果显示准确率为81.10%、召回率为83.69%、F1值为82.38%,识别效果一般,说明该方法对于中文实体识别效果略差。这是因为中文存在实体边界划分不明显、实体结构复杂、一词多义歧义性、语料较少等问题。
中文命名实体识别难度高于英文。中文文字本身是没有明显划分的,不能像英文文本首字母大写、单词之间有空格划分,实体边界划分明显,只需要确定实体的类别即可。而中文文本只有逗号、句号划分句子,一边需要确定实体的边界,另一边需要识别实体类别标注,这些问题导致中文文本在命名实体识别时比英文要复杂。中文命名实体识别难点在于:
1)实体边界。英文文本单词与单词之间通过空格划分,但是中文文字之间没有类似的标识词,所以中文文本的命名实体在识别前需要先确定词的边界,才能对词进行标注,词的边界确定利用的是中文分词方式,中文分词最早出现的是jieba分词技术。因此,中文命名实体识别效果首先取决于中文分词[4]效果的好坏。
2)语料库。现在有越来越多的网络用语出现,例如以中文为主、英文为辅,交替出现的文本,使得进行中文命名实体识别时需要将英文命名实体识别考虑进来,另一类网络新名称的出现,导致语料库的老旧。而且当探索一个新的领域就会遇到新的名词,已有的语料库不能完全适用于新领域,就需要花大量的人力、时间构造新领域的语料库。
命名实体识别的研究方法有很多种,可分为基于规则词典、机器学习、深度学习技术,还有当下热门研究,包括基于BERT、ERNIE预训练模型和基于迁移学习的方法等,因此命名实体识别还有很多方法值得研究。
规则和词典技术是命名实体研究识别方法之一,识别方法来源于语言学家依据数据集特征手工构建的特殊词典和特定规则模板,配合语法、句法等信息而设计规定的一批规则模板与词典,将输入文本与这些规则进行模式或字符串匹配,从而得到文本中的命名实体。基于规则和词典技术依赖特定规则识别实体,且多为针对某一领域内的实体知识制定的规则,无法对所有领域通用。Kim J H等[5]使用人工规则进行口语输入文本的命名实体识别。Quimbaya A P等[6]使用人工规则词典提取电子医疗记录文本中的命名实体。周昆[7]提出一种基于规则的方法,结果得到89.29%的准确率。1997年,张小衡等[8]通过总结制定高效名词的基本规则,用最大匹配法进行分析识别,效果良好,正确率和召回率均达到96%以上。但是基于规则的识别方法是存在局限性的,首先不能保证词典完全丰富,其次词语之间存在一定的歧义,如上下文信息缺乏,以及名称的“切前”、“缩写”等问题,而且随着实体的增加,实体越来越丰富,面对大量的数据集想要好的识别效果,需要更加复杂的规则模板和词典集,这样就消耗大量的时间和人力。在新领域中旧领域制定的规则和词集无法通用于新领域,语言学家需要根据新领域的特点重新书写规则、建立知识库,重新考虑系统识别能力,为这些繁琐的工作量付出很大的代价。因此旧的规则难以涵盖所有语言、规则之间发生的冲突、规则的局限性等,导致这种方法逐渐被后来的机器学习方法所替代。
以统计概率为主的机器学习方法于20世纪末出现在命名实体识别任务中。基于机器学习的方法本质上属于序列化标注问题,序列标注方法即从标记序列中提取实体块,例如人名、地名和机构名等实体块,再将提取出来的实体块归纳整理,最终获得由若干词构成的命名实体及其类别。以统计概率为主的机器学习方法模型有ME最大熵、CRF条件随机场、HMM隐马尔可夫、DT决策树等。
俞鸿魁等[9]提出用角色标注方法识别机构名称;郑逢强等[10]使用ME模型识别实体,并提出基于知网的改进策略;王江伟[11]基于标注语料库,运用最大熵(ME)基本框架识别人名、地名、组织机构名,在训练语料集相对较小时,训练效果比较好。ME获得的是所有满足约束条件中信息熵最大的模型,在命名实体做分类时准确率非常高,但是样本数量逐渐增多、约束条件逐渐增加,计算量也就越来越复杂,迭代速度越来越慢,训练时间复杂度非常高,准确率下降,训练代价加大[12]。
1999年,Bikel D M等[13]提出隐马尔可夫模型的Identi Finder TM系统,识别和分类名词、日期、时间和数值等实体,在英语和西班牙语语料的准确率是非常高的。将隐马尔可夫模型(HMM)应用在命名实体识别算法中[14],利用标注好的语料生成一系列概率值,再运用维特比算法解码观察序列及HMM下的隐藏状态序列。但是HMM只考虑了一个状态的影响,忽略了上下文的语义信息。条件随机场(CRF)将忽略上下文语义信息的问题化解了。2006年,向晓雯[15]将CRF应用于中文命名实体识别任务中;Mccallum A等[16]提出基于条件随机场(CRF)的命名实体识别方法,F1值达到了88.96%的识别效果;Han L F等[17]利用CRF进行中文NER,在bakeoff-4语料集上得到79.55%的F1值;胡佳慧等[18]提出一种使用pipeline标注思路的CRF方法,在中文电子病历数据上F1值达到了87.72%。
在研究基于人工规则和基于统计机器学习的NER方法中,有部分研究人员提出两者相结合的思路和模型,以寻求结合两者各自的优点,得到更好的识别效果。邱泉清等[19]使用中文知识库构建规则模板,结合CRF做实体识别,并以正确识别的实体继续反馈到知识库,有效实现中文微博的命名实体识别。条件随机场模型的优势在于能够通过计算联合概率捕捉全局信息。
基于统计机器学习方法的核心为机器学习模型和算法,基于机器学习的方法比之前基于规则和词典的方法效果明显有所提高,无需人工制定规则,减少了一部分人工成本投入,也使得构建的模型具有一定的可移植性以及健壮性。更重要的是,因为使用机器代替人来进行特征提取和分类,依靠其强大的计算能力和效率,可以更有效地处理大规模的复杂语料,从而得到更为精准的识别结果。但也有其问题存在,主要在于数据集的处理、选择和构建合适有效的特征,因为特征的选取质量会影响算法和模型的结果。这个过程同样也需要具有专业领域知识的人进行大量人工标注,花费的人力和时间成本还是很高,需要一定的人力和时间资源投入。
随着各种算法和模型不断更迭,深度学习技术逐渐兴起,使用深度学习神经网络方法处理命名实体识别任务已经成为自然语言处理研究的大趋势。目前深度学习技术在命名实体识别中的研究方法包括CNN、RNN等[20],以及改进RNN模型的LSTM、GRU、BiLSTM、BiGRU等。因此神经网络自动学习文本特征的方法被大家广泛应用。2003年,Bengio Y等[21]把神经网络作为概率函数,训练了一个具有数百万参数的模型,被认为是首次在语言模型中引入深度学习的概念;Kipyatkova I等[22]提出基于循环神经网络(RNN)的语言模型,通过RNN调整训练n-gram语言模型,降低了模型的绝对错误率;张聪品等[23]在命名实体识别任务中使用LSTM-CRF模型;Collobert R等[24]提出基于CNN的CNN-CRF模型处理命名实体识别任务;2015年,Huang Z等[25]提出BILSTM模型,将BILSTM模型应用于序列标记数据集中,经过实验证明,BiLSTM模型提取上下文特征能力的效果很好,但是模型存在训练时间长、无法区分多义词、缺乏对局部空间特征提取的问题;李丽双等[26]运用BiLSTM模型结构,在生物医学数据集上F1值达到了89.09%。
中文场景的命名实体识别有着中文的特性,字和词各含有一定的信息和特征,因此有基于字级、词级以及结合字词特征的3个方向。Jingzhou H等[27]对比研究了字级和词级基于统计方法的表现,发现针对字级命名实体识别效果表现得更好。同时,也有研究人员尝试在字级命名实体识别结构中加入词级特征进行综合训练。王博冉等[28]提出基于字符级的Lattice LSTM,利用点阵长短期记忆(Lattice Long Short Term Mermory Network, Lattice LSTM)网络处理句子中的词汇,利用字符作为基础输入,通过从信息流中自动找到有用的词来降低NER的分词误差。
近期学者们发现将BERT、ERNIE预训练模型运用到命名实体识别研究方法的输入中,有助于增强语义表示,对输入的字向量、词向量运用BERT预训练模型和ERNIE语义模型,以及挖掘词间信息的注意力模型(Attention Model,AM)等,再结合神经网络模型、机器学习模型产生了准确率、召回率很高的结果。
传统的预训练模型对中文文本特征提取能力较弱。2018年,Google AI研究院提出并发布基于Transformer的双向编码器表示BERT方法,可以对文本语义特征提取深层次特征信息,是深度双向表示预训练模型;2019年,王子牛等[29]提出BERT训练词向量,在1998年人民日报数据集实体识别的F1值达到了94.86%,实体识别效果得到明显提升;2020年,王雪梅等[30]采用BERT模型训练中文词向量,利用BERT增强字的语义表示,完整保存语义信息,解决了多义词问题,并利用BiGRU对文本深层次语义信息进行特征提取,完善了LSTM参数较多、内部计算复杂等问题。
百度2019年基于自己的深度学习框架构造了ERNIE模型,它是在BERT预训练模型的基础上产生的另一个通过多任务学习方式充分捕捉语料信息的优化模型。2020年,张晓等[31]引入ERNIE模型,结合深度学习,利用多任务学习语义知识对大规模语料进行建模,实验表明,F1值达到了94.46%。
学者们通过总结发现,无论基于规则词典、机器学习,还是基于深度学习,命名实体识别都依赖于已经标注好的训练数据,并且每个领域都标定大量训练数据,还需要服从同分布假设,在实际使用过程中可能会遇到标注数据、训练数据过期的问题,完全放弃这些数据再标注新数据是非常繁琐的过程。近期学者们发现迁移学习(Transfer Learning)[32]可以合理有效利用这些数据,利用源域数据和模型完成目标域任务模型构建,通过在目标领域建立具有明确分类和清晰可靠的学习模型提升模型效果,有效利用残缺的训练数据,减少数据资源浪费情况。
2021年,李猛等[33]通过迁移学习实现命名实体识别,主要思想是通过迁移学习一个相似任务,构建到要完成的任务上,并完成这个任务。例如,孔翔鹏等[34]提出对维吾尔语进行命名实体识别操作,由于维吾尔语数据资源不够充分,所以利用迁移学习方法把中文命名实体识别学习到的任务构建到维吾尔语实体识别系统中,准确率达到了91.39%。利用旧知识解决新问题,表明迁移学习方法运用到命名实体识别中是行之有效的。
命名实体识别方法的实验结果对比见表1。
由表1可以看出,基于规则词典、机器学习、深度学习方法在实验中得出的结果F1值平均都在80%左右,而近几年的热门研究方法F1值都在90%以上。随着研究方法的不断更新,识别效果逐渐趋于高准确率,实验表明,深度学习与BERT等方法的融合是最普遍的方法,也是最佳的识别方法。对于命名实体识别方法还有很多有待探究的方法值得尝试。
在命名实体输入模型之前,需要对输入的实体数据集指定一定的规范性,只有指定了数据集的标注规范,输入到模型中得出的结果才有可比性。关于中文命名实体识别的标注方式[35]有BIO、BIOES、Markup等。
BIO标注法,B代表实体首部,B-school表示一个school实体首部;I代表实体内部或结束,I-person表示一个person实体的内部或尾部;O代表非命名实体,标注规范约束了B-school后应为I-school,而非I-person。
BIOES标注法是BIO标注法的扩展,B、I、O含义不变;E代表实体尾部;S表示由一个词或字构成的单独命名实体。
Markup标注法是一种类XML规范,使用字段设置类型,
表1 命名实体识别方法的实验结果对比
命名实体识别评价方式[36]有精确率(Precise)、召回率(Recall)、F1值。精确率和召回率用于判断训练结果的好坏;F1值通过结合前面两个指标用于判断整体效果。精确率、召回率和F1值的计算矩阵见表2。
表2 计算矩阵
精确率、召回率和F1值的计算公式分别为:
(1)
(2)
(3)
命名实体识别的识别效果在关系抽取、语义角色标注、自动问答等NLP任务中起着不可或缺的作用。文中对NER的背景做了简要介绍,其次对命名实体识别的识别方法详细介绍,近年来学者们的研究路线都是以深度神经网络结构提取隐含特征,利用CRF求解最优序列,如经典模型BiLSTM+CRF、BERT+BiLSTM+CRF、BERT+BiGRU+CRF等,都取得了较好的效果。之后学者们开始运用当下热门的方法,如对语料的操作运用Attention注意力机制[37]、Transformer、BERT、ERNIT等预训练模型可以提升特征提取能力,又将迁移学习加入到命名实体识别研究中,避免了旧数据集的浪费。大部分标注方法和评价指标都大同小异,目的都是为了与其他方法做对比来判断识别效果。所以无论用旧的思想,还是新的思想,或者新旧融合的思想,目地都是为了让命名实体识别用一个简单的方法呈现好的识别效果。因此,命名实体识别的研究方法可以向其他领域借鉴学习,运用解决其他问题的思想联想解决命名实体识别方法。命名实体识别的识别能力虽然早已实现,但是更好的识别效果还有很多方法,面向更多的领域和更广的知识空间,有待于做进一步的探索。