姚元杰 龚毅光 刘 佳 陈嫚丽
(南京信息工程大学自动化学院 南京 210044)
命名实体识别(Named Entity Recognition,NER)任务是信息抽取领域内的一个子任务,其任务目标是给定一段非结构文本后,从句子中寻找、识别和分类相关实体,例如人名、地名和机构名称[1]。NER 任务是信息提取、问答系统、知识图谱等应用领域的重要基础工具,识别任务通常面向特定的行业和领域。
与英语相比,汉语具有词汇边界模糊、实体结构复杂、表现形式多样、缺乏明确的词边界等特点,使得汉语命名实体识别更加困难[2]。
1991 年Rau[3]首次提出NER 任务,拉开了NER任务在自然语言处理中应用的序幕。起初,命名实体识别大多是基于规则、统计或是两者结合的混合方法。SHEFFIELD 大学提出的一种基于规则的命名题识别系统[4],此方法鲁棒性不高。Bikel 等[5]在1999 年提了基于统计法-隐马尔可夫方法,该方法及其变种后来被广泛应用。Adwait[6]提出用最大熵求解文本分类的问题。
近年来,由于深度学习能够从自由文本等非结构化数据中提取相关特征,且相关模型取得不错的效果,因此采用深度学习来识别命名实体的方法已然成为一种趋势。Yoshua Bengio 等将DNN 模型[7]应用在命名实体识别和词性标注中,取得了较好的效果。也有人将传统机器学习方法与深度学习结合,取得了不错的效果。于红等[8]采用LSTM-CRF模型的方法来识别渔业领域命名实体,其识别结果的准确率P、召回率R 以及F1 值比采用单一LSTM或CRF 模型的识别结果提高了3%左右。颜柏杨等[9]利用卷积神经网络(Convolutional Neural Net⁃works,CNN)结合和BiLSTM-CRF 的模型来从医疗文本中识别医疗相关特征实体,取得了较高的识别率。Huang C等[10]在BiLSTM-CRF模型中添加注意力机制,在识别疾病相关名称时,一致率高达0.87。在和预训练模型结合方面,陈彦妤等[11]则采用预训练的字向量作为BiLSTM-CRF模型的输入,在保险行业相关的数据集上得到了较好的准确率和召回率。张芳丛等[12]提出将RoBERTa-WWM 预训练模型结合BiLSTM-CRF,其在电子病历中的命名实体识别中取得较好的结果。除此之外,将记忆网络应用于NER 任务,已被证明具有较好的效果。Yuyang 等[13]采用门控制将记忆网络用于NER任务,在多个数据集中取得较好成绩。李天宁等[14]将记忆网络和RoBERTa 预训练模型结合,并融入到BiLSTM 网络中,在中文细粒度命名实体识别任务上,取得较好效果。
经典的BiLSTM-CRF 模型并不能提取词级别的语义信息,在中文命名实体识别任务中存在很大缺陷。特别是在特定领域中,由于领域的特殊性,往往存在大量未登录的专业性词汇。比如“厄尔尼诺”、“暴风雪”等。若模型不能准确识别“厄尔尼诺”或者将“暴风雪”仅仅识别成“风雪”,便会产生歧义,对后续工作造成很大影响。Zhang 等[15]提出了一种基于Lattice-LSTM 网络,其通过匹配词典中的词语来增强语义信息的提取,但Lattice结构复杂且一个字符往往对应多个词汇,模型容易丢失低频率的长词词汇信息,从而造成语义偏差问题。
气象与人们的生活息息相关,掌握气象知识对我们的生活有着重要的意义。目前,在气象科普这一领域,随着数字化与互联网的深入,已经有大量气象知识数据的积累,但针对气象科普知识暂时无法获得已经做好标注和完成分词的语料,同时也无特定针对气象科普知识的命名实体识别模型。研究基于气象科普知识的命名实体识别,有助于组织和挖掘气象科普知识的相关实体信息。
基于上述问题,本文构建了气象科普知识数据集并提出了基于多粒度信息融合的气象科普知识命名实体识别模型的MGTNER 算法。模型利用BERT 预训练模型[16]来增强文本的特征表示能力,利用相对简单高效的SoftLexicon 结构[17]进行字、词信息的融合,该结构利用词集可以结合训练好的词典有效针对含有专业词汇的特定领域,也可以避免一些情况下,短词频率高于重要长词频率并导致词边界识别错误,信息提取出现偏差的情况。对于经典的BiLSTM网络很难捕捉句子级别和整个数据源中语义特征信息的问题,本文利用键值记忆网络来提取数据源级别的特征信息。最后,使用条件随机场(Conditional Random Field,CRF)来捕获相邻标签之间的依赖关系。
本实验数据集来源于气象类相关网页,其中最主要的来源为中国气象科普网。该网站的内容包含了灾害防御、二十四节气、人工影响天气、气候与气候变化以及气象术语等。
图1 显示了以中国气象科普网为数据来源的数据集构建流程。首先初始化URL 序列,获得中国气象科普网页,通过遍历网页后台数据和解析爬取到的网页,以此确定网页数目。通过XPath 定位网页中灾害以及灾害防御的内容并进行文本爬取,进而获得气象灾害以及防御措施的相关数据。数据爬取完成后,将数据以CVS 格式存储起来,接着对数据进行清洗,剔除无效数据,筛选出所需要的数据。整理数据后,采用人工定义领域内词典进行实体匹配和人工修正的方法进行BIO 标注。最后将数据按照8∶1∶1 的比例随机切割成训练集、测试集以及验证集,并进行人工修正。最终获得我们所需的气象科普知识数据集。
图1 本文数据集构建流程图
本文在对数据集进行标注时将气象科普实体分为时间类、地点类、灾害类、措施类、天气类和术语类六个类型,将实体分类后,本文采用目前流行的BIO 标注法对预处理后的文本语料进行标注,B表示一个实体的开始字符,I表示实体的内部字符,O 表示不是相关实体。三个数据集的数据分布如表1。
表1 实体类别数量分布
MGTNER 模 型 通 过BERT 预 训 练 模 型、Softi⁃con-BiLSTM 网络、键值记忆网络和CRF 实现字词和数据集级别的语义特征信息的融合,其总体框架如图2。
图2 本文模型总体框架
模型总体分为三个部分:1)输入表示层,输入序列首先被映射为向量,结合词典提取词级别的特征信息并存储在词集中,接着将该字符匹配到的加权后词集KJZM 信息和BERT 得到的字符向量拼接,作为BiLSTM网络的输入。2)信息融合层,将含字词信息的BiLSTM网络输出的隐藏状态和事先保存在记忆网络的特征信息结合,以此实现三种粒度信息的融合。3)输出层,最终通过CRF进行标签解码。
预训练语言模型的核心思想是在大规模无监督语料库上预训练一个语言模型,并在下游目标任务中利用该模型的编码嵌入表示进行训练。这类工作是预训练词嵌入工作的延续,主要解决了传统词嵌入模型无法通过结合上下文,处理一词多义的问题。
本文选择BERT 语言模型对句子中的字符进行编码,将输入的句子表示为字向量、句向量、位置向量三者之和。BERT采用生成式的掩码语言模型(Masked Language Model,MLM),掩 码 比 率 为15%。在句子的起始位置加入[CLS]标签,用[SEP]标签来分割两个句子。
BERT 模型是一种双向Transformer 结构,定义输入句子为S={c1,c2,c3,…,cn},其中xi表示句中第i个字,经过预训练模型BERT 处理后得到输人句子S的初始向量表示为{x1,x2,…,xn}。
图3 BERT预训练语言模型
在长序列训练过程中,循环神经网络(Recur⁃rent Neural Network,RNN)存在梯度消失和爆炸的问题。为此,长短期记忆网络引入记忆单元去记录状态信息并通过输入门、遗忘门和输出门进行控制。SoftLexicon 结构的BiLSTM 网络是在基于字的LSTM模型的基础上,加入潜在的词语信息。
3.2.1 SoftLexicon结构
模型利用词典,将每个字所匹配到的字词分为四类“K”、“J”、“M”、“Z”。K 表示匹配到由这个字为开始的词集,J为匹配到由这个字为结尾的词集,M 表示匹配到这个字在中间的词集,Z 表示匹配到整个字。对于输入序列S={c1,c2,…,cn},四个词集由式(1)构成:
其中,L 为事先构建的词典;w 为匹配到的词;j、k 为匹配到词的下标。若该字无匹配到的词,则添加特殊的词“None”。例如,对于输入句子“台风与强热带风暴相比。”中,对于c4“强”来说,匹配到词w4,8“强热带风暴”,放在词集K 中。对于c7“风”,匹配到词w7,8“风暴”,放在词集K 中,匹配到词w4,8放在词集M 中。得到词集“KJMZ”后,需将该汉字匹配到的词集压缩成一个固定维度的向量。为保持计算效率,网络采用单词的静态频率去计算相关权重,计算公式如式(2)和式(3)。
其中,K 为词集,c(w)表示词w 在数据中出现的频率,ew(w)为对应词的词嵌入表示。在计算频率时,若词w 被另一个匹配到词典的词覆盖则较短词w的频率不会增加,这样就避免了一些情况下,短词概率总比长词概率大的问题。
图4 SoftLexicon方法
单个词集压缩成固定向量后,再将该字对应的四个词集KJMZ 合成一个固定向量并将它们和预训练得到字向量拼接,这样极大程度上保留了所匹配到词的信息,最终形成字词向量的结合表示。公式如式(4)、式(5),其中υs是经过权重计算过后的词集的向量。
3.2.2 BiLSTM结构
融合字词向量后,融合后的字符表示传入采用双向长短期记忆网络的上下文编码层,即使用前向和后向LSTM 对输入序列进行正向特征提取和反向特征提取。LSTM 是RNN 的一个变种,主要为了解决传统RNN 在训练长序列过程中存在梯度消失和爆炸的问题,为此LSTM 引入记忆单元并通过输入门、遗忘门和输出门的结构来更新隐藏状态和记忆单元。
LSTM模型计算公式包括式(6)~式(11):
图5 BiLSTM网络结构
在许多NLP任务中,使用键值记忆网络[18]及其变体来利用额外的特征增强模型已获得较好的效果[19~20]。在BiLSTM 网络中,输入来源于当前的单词嵌入和过去的状态,很难捕捉句子级别和在整个数据源中的特征信息。为此,本文采用键值记忆网络来提取更大范围的特征,将记忆网络和上文提到的BERT-SoftLexicon-BiLSTM 网络结合,不仅能提取字词粒度的语义信息,也能对数据源中上下文的语义特征进行融合,上下文的语义特征包括POS标签和字词之间的依赖关系,如图6。
图6 语义特征信息示例
用键值记忆网络对输入序列xi的上下字词相对应的不同类型的语义特征信息进行编码并将其映射在记忆网络模块的键{ki1,ki2,…,kin}和值{vi1,vi2,…,vin}上。模型在对输入序列进行编码时会从记忆网络模块中提取出对应的特征值并和BiLSTM网络输出的隐藏状态融合,以此来实现增强输入文本的表示,进而提高模型性能,如图7。
图7 键值记忆网络流程示例
公式如式(13)~式(16):
其中,wi,j为经过softmax 后的值v 的权重,ri是加权过后的特征信息,si为不同特征向量聚合后的结果,n 为对于输入xi特征信息的个数,hi为BiLSTM 网络输出的隐藏状态。oi为CRF 标签解码层的输入,λ为模型参数,其值在0和1之间。
在命名实体识别中,有些标签需要遵守一定的逻辑关系,但简单的归一化函数并不能结合局部标签和上下文信息。为此,本文采用命名实体识别任务中常用的CRF作为标签解码层,CRF能够利用标签间的关系,从而得到最佳的标签序列。
对于给定输入序列x={x1,x2,…,xn},句子标签序列y={y1,y2,…,yn}。对于语句的标签序列得分如式(17):
Ayi,yi+1为标签yi转移到标签yi+1的分数,Pi,yi为该字符被预测为第yi个标签的分数。定义标签序列Y的概率为式(18):
其中,y′表示真实的标签序列,YX为可能标签的集合。最后,利用维特比算法输出得分最高的标签序列out*,计算公式如式(19)。
本文的气象科普知识来源于百度文库资料和气象科普网站,通过python 获取数据,进行数据清洗之后,将实体类别分为天气类、灾害类、术语类、应对措施类、时间类和地点6 类。本实验中采用BIO 标注模式,对于气象科普知识语料,本文采用jieba 分词工具,再利用word2vec 模型训练词向量。实体类别示例如表2。
表2 实体类别示例
为了评估模型对气象科普知识数据集中实体识别的效果,本文采用命名实体识别任务中常见的召回率(recall)、精确率(precision)和F1 score 作为评估指标。
F1值表示答案之间的重合度,公式如式(20)。
其中,Pre为Precision精确率,公式如式(21),Rec为Recall召回率,公式如式(22)。
其中,TP为被模型预测为正类的正样本;FP为被模型预测为正类的负样本;FN 为被模型预测为负类的正样本。
本实验使用RTX 2080ti的GPU进行加速,软件版本为python3.7,pytorch1.4.0。超参数设置为:字词向量维度都是50,LSTM 隐藏单元为300,dropout为0.5,epoch 为50,使用Adam 来优化参数,学习率为0.015,衰减率为0.05。
4.4.1 气象科普知识数据集上的实验结果与分析
本文模型MGTNER 在气象科普知识数据集的实验结果如表3。在所有六大实体类别中,时间和地点类实体的实验结果最好,F1 值分别达到了92.59%和92.70%。其次是术语类、灾害类和天气类,F1 值为90.23%、90.66%和89.21%,虽然这三类包含了大量的专业词汇,但因为实体数量较多并且模型结合领域词典,所以具有较高的识别准确率。实体识别效果最差的是措施类,因为该类实体数量较少,模型还不能充分挖掘这类实体的特征信息。图8是本文模型的三个指标精确率、召回率和F1值随迭代次数变化的测试,可以看出模型在前十次迭代中收敛较快,之后模型性能提升逐渐放缓,在大约20 次迭代后,指标在一个小范围内变化,在接近50次迭代时,模型性能处于稳定。
表3 不同实体类别的识别结果
图8 本文模型的测试表现
4.4.2 消融实验与结果分析
基于上文的气象科普知识数据集和实验参数设置,为了验证MGTNER 模型对实验结果的影响,本文利用消融实验来验证模型的优越性。
本文采用字符级别的BiLSTM-CRF 模型和Lattice-LSTM 模型作为本次实验的基线模型,实验结果如表4。从实验结果来看,字符级别的BiL⁃STM-CRF 网络效果较差,三相指标仅在80%左右,因为字符级别的BiLSTM-CRF 模型并不能结合领域词典,而气象科普知识数据集存在不少领域内词汇,如“强热带风暴”等。Lattice-LSTM 和SoftLexi⁃con-BiLSTM 网络三项指标相近,SoftLexicon-BiL⁃STM 网络实体识别效果略微高一点,Lattice-LSTM网络虽然也解决了中文词级别信息的融入,但其模型相比LSTM 需要额外建模,训练和推理效率相对较低。为了验证BERT 的有效性,设置了BERTSoftLexicon-BiLSTM 模 型 与SoftLexicon-BiLSTM 相比,三项指标有了一定的提升。最后,为了验证记忆网络的对模型性能提升的有效性,本文将BERT-SoftLexicon-BiLSTM并结合记忆网络的模型与BERT-SoftLexicon-BiLSTM 模型进行对比,在精确率、召回率和F1 三项指标上分别提升了1.07%、0.84%和0.95%,可以看出,通过融合记忆网络对模型识别效果有一定的提升。从实验结果可以得出,本文模型MGTNER 在气象科普知识数据集上,相比于对比模型,有更好的实体识别效果。
表4 气象科普知识领域各模型对比结果
4.4.3 Resume数据集上的实验结果与分析
由于气象科普知识数据集没有公开标注好的数据集,本文采用公开数据集Resume 进一步验证本文模型的性能。由于数据集不是特定领域,本实验采取Lattice-LSTM 的词典,由704400 个字词组成,包含了5700 个汉字、291500 个双字词、278100个三字词和129100个其他词汇。
为了探究在Resume数据集上,LSTM 隐藏层状态的维度对模型效果的影响。实验在本文模型上选取不同维度的LSTM 隐藏层状态进行实验,实验如图9。从实验结果来看,模型在LSTM 网络隐藏层维度为300时,F1得到最优结果95.94%。
图9 LSTM的隐藏层状态的维度
在Resume 数据集的实验对比中,采用以下五种模型,除了上文提到的Lattice-LSTM 模型、SoftLexcion-BiLSTM 模型和本文模型外,LR-CNN模型[21]是在CNN 网络的基础上加入反馈机制来合并词汇信息,TENER 模型[22]则是针对NER 任务对Transformer 网络进行改进。表5 为各模型在中文Resume 数据集上的表现,根据实验结果,本文模型MGTNER相较于其他几种模型取得了最好的结果,其准确率、召回率、F1 值分别为95.62%、96.26%、95.94%。可以得出在Resume 数据集上,本文基于多粒度的命名实体识别模型,相比于列表的几种模型具有一定的优势。
表5 在Resume数据集上各模型对比实验结果
本文针对气象科普知识领域存在大量领域内专业词汇,构建了气象科普知识数据集并且提出了一种基于多粒度信息融合的气象科普知识命名实体识别模型MGTNER。该模型在气象科普知识数据集中,相比于几种基线模型BiLSTM-CRF、Lat⁃tice-CRF等具有一定的优势。为进一步验证模型,本文在Resume 数据集中进行几种模型的对比,结果表明本文模型取得更好的实体识别效果。在未来的研究中,我们将继续探索气象科普知识的命名实体识别在其他下游任务中的应用。