刘小安,彭 涛
1.北京联合大学 智慧城市学院,北京100101
2.北京联合大学 机器人学院,北京100101
命名实体识别(Named Entity Recognition,NER)是自然语言处理(Natural Language Processing,NLP)的一项基础任务,它的重要作用是从文本中准确识别出人名、地名、机构名、时间、货币等信息[1]。命名实体识别是很多语义理解应用的基础,可以为上层应用提供实用、有效的文本信息。在问答系统中,常常会遇到需要回答某个人名、地点、机构以及其他实体的事实型问题,常规分词结果并不能满足需要,因此将命名实体识别技术应用其中将对问题文本做出更准确的理解[2-4]。在自动文摘任务中,文本中的命名实体通常包含重要的信息内容,因此对文本进行命名实体识别,进一步筛选出重要实体形成文本摘要将获得更好效果[5-6]。
现有研究主要集中于通用领域人名、地点、机构名的实体识别,已经取得了较好的效果[7-10]。在旅游领域,旅游景点是旅游过程中的重要组成部分,对于旅游景点的识别也很重要,它直接影响旅游领域问答系统的答案获取和旅游文本中的信息抽取。目前对于中文旅游景点命名实体识别的研究主要采用基于统计机器学习的方法。郭剑毅等人[11]提出一种基于层级条件随机场的方法,该方法相对于隐含马尔可夫模型(Hidden Markov Model,HMM)F1值提高了15个百分点。但是该方法主要依赖于特征模板,而特征模板的构建是一个非常费力的过程。此外引入了较多的外部信息(如指界词),这些外部词典数量巨大,难以全部收录,当词典中的指界词成为景点实体的一部分时,将导致识别错误。
中文旅游景点的识别难点在于:
(1)景点实体数量巨大,不能枚举,也难以全部收录到词典中。经不完全统计,北京大大小小的旅游景点数量就有6 000多个。这里指的景点包含了嵌套景点,如“恭王府”中的“多福轩”,在本文中也视为独立的景点实体。
(2)景点实体名称丰富多样,没有严格的规律可以遵循。如北京雁栖湖有一个小景点名称为“牵手”;颐和园有一个小景点名称为“湖山真意”。
(3)经常采用缩写形式。如“故宫博物院”在实际旅游文本中常用“故宫”,“天坛公园”在实际文本中常用“天坛”。
本文在现有研究的基础上,提出一种基于CNNBiLSTM-CRF网络模型的中文景点识别方法。该方法避免了人工特征的构建,实现了“端到端”中文景点实体识别,并且在测试集上达到了93.9%的F1值。
目前命名实体识别已经得到了国内外学者的广泛研究。在中文命名实体识别方面,命名实体识别的主要方法分为:基于规则的方法、基于统计机器学习的方法和基于深度学习的方法。早期的命名实体识别研究主要采用基于规则的方法。张小衡等人[12]从语言学的角度总结规则,对中文机构名进行识别分析;张艳丽等人[13]基于经验对文本数据进行统计分析来总结规则,对中文机构名进行实体识别;Zhang等人[14]利用基于记忆学习(Memory Based Learning,MBL)的算法获取规则,用于抽取命名实体和它们之间的关系。基于规则的方法多采用语言学专家根据经验和对数据的分析手工构造规则模板,或者是通过启发式算法获取模板,这类方法在某些语言学规律性较强的命名实体识别任务下,往往能够表现出较高的准确率。但是这些规则往往依赖于具体语言、领域、文本格式,编制过程耗时且容易产生错误,并且需要富有经验的语言学家才能完成[15]。
相比而言,基于统计机器学习的方法和基于深度学习的方法主要利用人工标注的语料进行训练,标注语料时不需要广博的计算语言学知识,并且可以在较短时间内完成。这类方法将命名实体识别任务规约为序列标注任务。基于统计机器学习的方法主要包括:隐含马尔可夫模型、最大熵(Maximum Entropy,ME)、支持向量机(Support Vector Machine,SVM)、条件随机场(Conditional Random Field,CRF)等。廖先桃等人[16]采用HMM模型进行中文命名实体识别,在北大富士通语料上达到了85.28%的F1值;李丽双等人[17]使用SVM模型进行中文地名识别;孙丽萍等人利用CRF对企业简称进行命名实体识别。在这类方法中,研究者针对不同的问题提出大量的人工特征,包括词特征、边界特征、上下文特征、常用命名实体字符特征等。实验表明,这些特征和基于统计机器学习方法的结合在相关的中文命名实体识别任务上能够取得较好的识别效果。但是该类方法很大程度上依赖于人工特征的设计,并且有些特征难以清晰地通过机器语言表达和实现,与此同时,人工特征在提高模型性能的同时也使得模型的泛化能力降低。
近年来,深度神经网络模型不断发展,涌现出海量的深度神经网络模型,并在图像识别、语音识别等任务上取得了巨大突破。这类模型最大的特点在于大幅减少了人工特征,实现了模型“端到端”的学习。张海楠等人[18]提出一种基于字、词向量相结合的深度神经网络模型进行中文命名实体识别,在1998年《人民日报》语料上机构名识别达到了91.06%的F1值。模型主要对输入文本进行了字粒度和词粒度的向量化表示,通过字词结合的方式提升全联接神经网络的实体识别效果。该模型虽然在文本的特征表示上进行了优化,但是没有充分利用文本的上下文信息。王蕾等人提出一种基于神经网络片段的中文命名实体识别方法,通过引入离散特征与稠密向量结合的方式来充分表示文本的局部特征信息,在MSRA语料上达到了90.44%的F1值。朱丹浩等人[9]提出一种汉字级别循环神经网络方法来进行命名实体识别,在1998年《人民日报》语料上达到了88.69%的F1值。该模型通过双向长短记忆神经网络(Bidirectional Long Short Term Memory,BiLSTM),充分利用片段级上下文信息,并通过对模型输入层和输出层的改进来提高模型效果,但是该模型在输出层的改进没有进一步考虑输出序列的上下文信息,并对输出标注进行全局约束,容易出现标注不合法的情况。
本文在上述研究的基础上,提出一种基于CNNBiLSTM-CRF的网络模型。首先使用卷积神经网络(Convolutional Neural Network,CNN)结构对文本字符级的信息进行编码,对景点实体的局部特征信息进行表示学习,然后将局部抽象特征信息作为BiLSTM的输入,进一步通过BiLSTM来充分学习文本的上下文信息,而在BiLSTM模型的输出层,采用链式CRF对模型标签之间的关系进行学习和约束,最终输出景点命名实体识别结果。经实验对比,该模型在本文构建的中文景点数据集中,不需要加入任何人工特征,能达到较好的效果,F1值为93.9%。
本文提出的基于CNN-BiLSTM-CRF的模型结构如图1所示。该模型主要包含四部分:字向量矩阵、CNN、BiLSTM、CRF。模型首先通过字粒度的词袋模型将输入的字序列转换成对应字的ID序列;然后通过Skip-Gram模型[19]将输入ID序列转换为字向量矩阵;进一步通过CNN来对输入文本的局部特征进行抽象化抽取和表示;接着通过BiLSTM充分学习文本的上下文特征信息;最后使用CRF来输出一个全局最优的标记序列。
图1 CNN-BiLSTM-CRF模型
卷积神经网络是一种可以实现“端到端”学习的神经网络模型,该模型通过局部接收域、权重共享和降采样三大特点,能够实现对输入数据的特征学习和特征表示。Kim[20]使用卷积神经网络来进行文本分类,取得了较好的效果;Ma[21]、Chiu[22]等人使用卷积神经网络来进行通用命名实体识别,并在公开英文命名实体识别数据集上取得较好效果。卷积神经网络的优点在于能够对局部连续的突出特征进行很好的捕捉和特征表示,并通过多层卷积将多个局部特征进行组合以获得更为抽象的高层表示。而在中文旅游文本中,旅游景点实体也是处于文本的局部,并且一个实体是由连续的字组成(单字实体除外),具备局部连续的特点。此外有些中文旅游景点实体是由多个独立实体组合而成(如“故宫博物院”),具备局部组合的特点。因此本文使用卷积神经网络的特点来对文本中实体的特征信息进行学习和表示,为上层网络提供更为有效的局部信息。本文使用的卷积神经网络与Chiu所用网络基本相似(如图1中CNN部分所示),而不同点在于,为了尽可能减少额外的输入和先验知识,实现“端到端”的学习模型,本文仅采用字符向量矩阵作为网络模型的输入;此外,采用ReLU[23]函数作为激活函数,以提高模型收敛速度。
其中,为了解决由于文本长度不一致而导致的输入字向量矩阵不一致问题,本文以通过统计方法获得数据的文本长度分布,并在此基础上选择合适的文本长度,为不够文本最大长度的文本末尾补充占位符使得输入矩阵大小一致;在池化层中,本文采用最大池化(Max Pooling)方法进行下采样,从而获得更加抽象的文本特征,并且在一定程度上防止模型过拟合。
双向长短记忆网络(BiLSTM)[24]是循环神经网络(Recurrent Nerual Network,RNN)的一个变种模型,该模型能够有效地克服传统RNN在长距离依赖下所带来的梯度爆炸和梯度消失问题[25]。此外,该模型相对于长短记忆神经网络(Long Short Term Memory,LSTM),能够充分利用输入序列的上下文信息,从而更多挖掘序列中的隐含特征,提升模型整体效果。双向LSTM的基本思想即通过前向、后向LSTM两个隐藏层来分别获取输入序列的前向和后向信息,并在最后通过结合形成输出。在命名实体识别任务中,通过对张小衡、张艳丽等人基于规则的方法进行分析可以发现,实体前向、后向所包含的文本信息(如“去”“逛”“参观”“游玩”等)能够为实体的识别带来有效的特征信息。因此本文使用BiLSTM来对上下文的有效信息进行学习,以达到更好的模型效果。本文使用的BiLSTM模型主要结构LSTM单元(如图2所示)可形式化表示如式(1)~式(6)所示。
图2 LSTM单元结构
其中,xt是当前时刻的输入;it、ft、ot分别是输入门、遗忘门、输出门函数;ct、ht表示当前时刻的隐状态;⊙表示点乘运算;σ表示sigmoid激活函数;tanh表示双曲正切激活函数;ht-1、ct-1分别代表上一时刻的两部分隐状态;Wf、Wi、Wc、Wo表示模型权重矩阵;bf、bi、bc、bo表示模型偏置向量。
条件随机场(CRF)是用来标注和划分序列结构数据的概率化模型结构。该模型能够考虑到标签之间的关系以输出识别序列的全局最优序列。本文使用的是链式CRF,对于给定的文本字序列X={x1,x2,…,xn}(n表示字符序号),定义矩阵B表示输入字序列X时模型BiLSTM层的输出结果,其维度为N×K(N表示句子字符个数,K表示识别标签个数),得到给定某一个字序列X,某一个预测序列y={y1,y2,…,yn}与X的联合概率如式(7)所示。其中,A是状态转移矩阵。进一步可得到,给定文本字序列X的条件下,产生标记序列y的条件概率如式(8)所示。
对于链式CRF的训练过程,本文使用极大似然估计作为代价函数;在预测过程中,输出条件概率最大的预测序列。在本文实验中,采用维特比算法(Viterbi algorithm)来快速获得全局最优序列。
由于目前还没有公认度较高的旅游领域文本预料,本文从旅游相关网站上爬取了8 900余篇北京旅行游记文本作为初始未标注数据,经过去除空白行、空格、非文本相关内容等预处理操作,得到旅游领域文本34万余条句子。同时通过高德地图旅游景点数据和旅游网站检索构造了北京旅游景点词典,经过去重和人工审核后,得到有效景点词8 000余个。本文通过词典对旅游文本进行自动化标注,标注样例如表1所示,并构建模型训练集和测试集,具体数据情况如表2所示。
表1 旅游文本标注样例
表2 训练集和测试集数据情况
为了验证训练集和测试集的可靠性,本文从自动化标注的数据集中随机抽取3组数据,每组数据20 000条句子。经过专家人工审核,得到平均标注准确率约为97%,具体如表3所示。
表3 训练集和测试集数据情况
本文采用命名实体识别常用的评价指标,即准确率(Precision,P)、召回率(Recall,R)和F1测度值(F1-score,F1),如式(9)~式(11)所示。
为了验证本文提出的模型结构的有效性,设计了3组对比实验,分别与LSTM模型、BiLSTM模型、BiLSTM+CRF模型进行对比。训练过程中均使用本文构建的全量训练集进行模型训练,模型输入为经过统一处理得到的文本字符向量矩阵,经实验分析后指定每一个字的向量维度为256。实验过程受限篇幅不做赘述。训练过程中所涉及到的模型参数均和本文提出的模型所使用的参数一致,实验结果如表4所示。
表4 模型有效性验证对比实验结果
实验结果显示,BiLSTM模型在各评价指标上相比于LSTM模型有较大幅度的提升。通过对LSTM模型预测错误的结果进行分析发现,LSTM模型识别错误主要是丢失实体开头一两个字,导致实体本身不完整,使得识别错误。比如“这个是苏州街”中的“苏州街”,模型预测为“州街”;“顺贞门乃内延通往神武门之重要通道”中的“顺贞门”“神武门”,模型预测为“贞门”“武门”。其主要原因在于LSTM相对于BiLSTM,不能够更加充分地学习到文本的上下文信息。相比于BiLSTM模型,BiLSTM+CRF模型在准确率上提高了2.51个百分点,在召回率和F1值上也分别有一定的提升。由于CRF本质上是给定观测序列和标识序列的转移矩阵,该模型充分利用相邻标签关系,输出全局最优序列。对模型预测错误的结果进行对比发现,相对于BiLSTM将各个标签视为相对独立进行计算,CRF模型很少出现将一个完整实体拆分成两部分非实体词的情况(如“夜幕中的国家大剧院”中的“国家大剧院”,模型识别为“国家”“剧院”两个实体),能够更为准确地识别实体。本文提出的模型相比于BiLSTM+CRF模型,在召回率上提高了近1个百分点,并且准确率和F1值也得到了一定的提升,表明CNN能够进一步抽取文本的局部有效特征,提升模型的识别效果。
为了进一步验证本文模型的识别效果,本文设计了4组对比实验。由于现有研究对于中文旅游景点命名实体识别的研究较少,本文选择了主流的两组基于统计机器学习的方法和两组基于深度学习的方法进行对比实验:廖先桃等人[16]提出的基于HMM模型的方法;郭剑毅等人[11]提出的基于层级条件随机场的方法;Lample等人[26]提出的基于BiLSTM+CRF的方法;Chiu等人[22]提出的基于CNN+BiLSTM的方法。实验结果如表5所示。
表5 相关工作对比实验结果
实验结果表明,基于深度学习方法的模型效果要优于基于统计机器学习方法。在基于深度学习的方法中,Lample等人的方法通过BiLSTM+CRF模型,充分学习训练文本的上下文特征信息,得到了94.76%的准确率和91.96%的召回率。而本文模型在该模型的基础上,准确率提高了0.27%,召回率提高了0.84%。因为本文在BiLSTM之前采用CNN对文本的局部特征信息进行建模和学习,除了利用上下文信息之外,也充分利用景点实体自身的局部特征信息。Chiu等人的方法充分学习文本的局部信息,因此在召回率上相对于Lample的方法提高了约1个百分点。而本文模型既考虑文本的上下文信息,又关注于文本的局部特征信息,在准确率上,相对于该模型提高了1.46%。此外,本文通过链式CRF模型对输出序列的上下文信息进行全局约束,减少模型输出标注不合法的情况。从上述对比实验可以看出,本文提出的模型不用加入任何人工特征,取得了最好的实验效果。
本文针对中文旅游景点实体识别的特点和难点,提出一种基于CNN-BiLSTM-CRF的网络模型。实验结果表明,该模型在未使用人工特征的情况下,取得了较好的效果。该模型通过卷积神经网络来对文本的局部信息特征进行抽象化抽取和表示,使得模型在召回率上得到一定的提升;同时,通过BiLSTM充分学习训练文本的上下文信息;在输出结果上,使用链式CRF来输出全局最优的标记序列,提高了模型的准确率,进而达到最高的F1值。下一步工作可以考虑将Attention机制[27]加入到当前模型,也可以进一步探索将最新的语言表示模型——双向编码器表示模型(Bidirectional Encoder Representations from Transformers,BERT)[28]嵌入到字粒度向量矩阵中,进一步提高实体识别效果。