李宝昌,郭卫斌
(华东理工大学信息科学与工程学院, 上海 200237)
命名实体识别(Name Entity Recognition, NER)[1]是自然语言处理领域中的一个子领域,是自然语言处理的基本任务之一,旨在从文本中标注出具有特殊意义的实体,包括人名、地名、组织机构名等,该任务对信息抽取[2]、机器翻译[3]、智能问答[4]等自然语言处理的应用起着至关重要的作用。
早期命名实体识别采用基于规则和词典方法,通过人工根据数据集的特征构造出相应的规则模板或专用词典,然后进行文本匹配来识别文本实体。该方法须耗费大量人力物力建立专门词典,且词典仅适合特定领域,可迁移性差。随着大量文本数据的产生,学者们开始将基于大型语料库的统计概率方法引入到该任务中,常用的模型有隐马尔科夫模型(HMM)[5]、条件随机场(CRF)[6]、最大熵模型(ME)[7]、支持向量机(SVM)[8]等。该类方法的效果往往取决于特征的选取,依然须耗费大量的人力来设计特征模板。
近年来,随着深度学习的快速发展,深度神经网络模型被引入到命名实体识别任务中,且取得了巨大成果。Collobert 等[9]首次提出了一种深度神经网络模型用于NER 任务,与之前的统计模型相比,实验识别效果有了明显提升。由于文本数据序列特征比较明显,需要考虑文本长距离间的有效特征信息,因此,长短期记忆网络(LSTM)[10]被运用到NER 任务中。Huang 等[11]提出了BiLSTM-CRF 模型,添加了CRF 以优化输出序列标签,识别效果显著,因此该模型框架逐渐成为NER 任务中的主流框架。
与英文NER 不同,中文NER 因受限于中文句子的特点而更加困难[12]:一是中文句子是由汉字紧密地排列在一起组成的,不像英文句子中有天然空格将单词分开,而且中文句子中词语边界往往是实体边界,因此中文实体边界难以区分;
二是中文具有更强的多义性,往往具有一字多义和一词多义的特性,同一个中文词汇在不同的语境中语义可能是不同的,这增加了对中文实体识别的困难。
在早期中文命名实体识别方法中,基于深度神经网络的中文NER 基准方法主要有两种:一种是基于字符的中文NER 模型(Char-based-NER)[13-14];
另一种是基于词汇的中文NER 模型(Word-based-NER)[15-17]。前者将每个字作为独立输入进行特征提取,但未充分利用句子词汇信息;
后者先根据中文分词系统将句子拆分成可能出现的词汇,然后进行特征提取,但分词时可能出现词汇错误分割问题,导致实体边界和实体类别的错误预测。
Zhang 等[18]提出了一种将词汇信息加入到字信息中的模型(Lattice-LSTM)。为了能够进行字词信息融合,首先对句子进行词汇匹配,如果句子中子序列 {ci,···,cj} 与词典中的词汇匹配,则在ci到cj之间添加一个Lattice 结构,使该词汇信息经过此结构添加到词汇结尾的字符单元中。该模型与基于词向量的NER 模型相比,避免了分词错误的问题,实验结果表明,其F1 值有很大的提高,提升了识别效果。由于一个字符可能存在多个对应词汇,因此该模型存在词汇冲突问题,并且由于增加了Lattice 结构,模型框架变得相当复杂,大大降低了它的训练速度。同时,由于使用的字词向量表是word2vec 构建的,在构建过程中会过滤低频词汇,根据中文特点,常用词一般是短词,长词出现的频率偏低,因此词汇长度越长越可能成为未登录词,模型越可能丢失长词词汇信息,会产生语义偏差问题。
Liu 等[19]提出的 WC-LSTM(Word-Character LSTM)模型是对Lattice-LSTM 模型的改进,它将Lattice 结构取消,规定每个字之间有且仅有一个节点代表词汇信息,将词汇信息拼接到词汇末尾字符信息的后面,如果字之间没有词汇信息就使用
为了能够高效地将词汇信息融入到字符信息中,本文提出了一种词典信息分层调整的中文命名实体识别方法。首先,提出了一种简洁的方法进行字词融合,通过分层调整机制调节词汇权重,增强长词权重,减弱短词权重来弱化较多长词词汇信息丢失而导致的语义偏差问题,以此缓解多个对应词汇产生的冲突影响;
然后,为了探索调整机制的有效性,探索了3 种不同的词汇融合策略,将词汇信息编码成维度固定的向量,使模型能够进行并行训练。
本文将每个字所能匹配到的词汇按照词汇长度分层,根据词汇长度调整词汇所占权重,然后将词汇合并到基于字符的中文命名实体识别模型中。在输入层将词汇信息加入到字信息中,既可以使每个有对应词汇的字符都直接使用相关词汇信息,保证不会遗漏词典匹配到的词汇信息,还可以降低所有词汇间信息冲突对模型的影响,与Lattice-LSTM相比,本文模型结构简单且更容易实现。
本文模型的总体框架图如图1 所示。模型框架分为三个部分:(1)输入表示层。首先将输入序列每个字符根据字向量表映射为一个稠密向量,然后将每个字符在词典中进行词汇匹配,将对应的词汇按照词汇长度进行分类,通过词汇长度进行词集的权重调整,将最终词集信息向量拼接到字符向量后形成完整的输入信息向量。(2)上下文编码层。使用Bi-LSTM 进行上下文的特征提取。(3)标签解码层。将编码层输出,使用条件随机场来进行解码,识别出命名实体。
图1 本文模型的总体框架图Fig.1 General framework of model in this paper
1.1 输入表示层
句子在送入上下文编码层前,首先要将每一个字转化为一个定长的稠密向量。假设输入一个由n个汉字组成的句子sentence=(),每个字ci通过查找预训练好的字向量表映射成为向量序列(),即
1.1.1词典信息分层调整机制 利用现有的词典,对输入句子中的每个字所匹配到的词汇按照词汇长度进行分层,这样可以保留所有的词汇信息。通过调整机制调节所有词汇所占的权重,增强长词汇权重,降低短词汇权重,这样既弱化了语义偏差问题,又减少了所有词汇之间的信息冲突。
为保留所有的词汇信息,每个汉字根据其所匹配到的词汇长度被分到不同的词集中。由于中文词汇一般由2 个汉字组成,最多由4 个汉字组成,这里设置4 个词集“Bigram”、“Trigram”、“Quaternary”、“More”,分别以“B”、“T”、“Q”、“M”表示。其中B表示由2 个字组成的词汇的词集;
T表示由3 个字组成的词汇的词集;
Q表示由4 个字组成的词汇的词集;
M表示由多于4 个字组成的词汇的词集。对于输入的句子sentence=(),这4 个词汇集合构成如下:
其中:Ll表示长度为l的词汇;
w表示所匹配到的词汇;
n表示字符下标的最大值,即句子的长度;
k表示对应词汇结束字符的下标。此外,如果一个词集是空的,即该汉字没有对应此长度的词汇,空词集中会添加一个特殊的词“None”。以“上海市中山西路”中的字符c5“山”为例,在词典中匹配到两字词汇w4,5“中山”和w5,6“山西”,放在B词集中;
四字词汇w4,7“中山西路”,放在Q词集中,分类方式如图2 所示。使用这样的分类方式将词汇信息融合到词汇中每个字符信息中时,能够保留所有可能的词汇信息,避免词汇信息的丢失
图2 词典信息分层方法Fig.2 Dictionary information layering method
在将词典信息分层得到B、T、Q、M词集之后,通过调整机制调节词集中词汇所占的权重。根据不同的层级即词汇的长度,通过Softmax 函数来计算它的权重。通过增强高层词汇向量权重,降低低层词汇向量权重,该模型可以弱化语义偏差问题,并降低词汇信息之间的冲突。
若字符ci对应词汇wL2和wL3,将其全部融入字符中,可能会侧重一个误导性的词汇,导致不正确的标签预测。根据词典信息,增强词典中长词的权重以更多地关注潜在的实体,降低了嵌套实体对词边界判定的干扰,同时也缓解了高频短词对语义的偏差影响,从而使模型侧重于正确的标签预测,词典信息反馈调整图如图3 所示。
图3 词典信息反馈调整图Fig.3 Dictionary information feedback adjustment diagram
计算各词集中词汇的权重时,记录每个词汇的权重,若后面有更高层词汇对已计算词汇产生调整,取小值更新权重,以此保证高层词汇拥有更高的权重。计算方法如下:
其中:l∈L,L表示字符对应不为“None”的词集的词汇长度集合(“M”词集中词汇长度定义为5);
αl表示长度为l的词汇所占的权重;
v(B) 表示B词集中所有词的向量合并;
α 表示记录下的对应词汇的权重;
ew表示预训练好的词向量表。经过公式(3)的计算,各词集中词汇都得到了相应的词向量表示。
1.1.2字词向量结合表示 将4 个词集的表示组合成1 个固定维度的特征向量,并将它们添加到每个字向量后面,形成字词向量的结合表示。为了尽可能多地保留信息,将这4 个词集的向量表示拼接起来,每个字词向量表示如下:
其中,v表示每个词集合并后的向量。
1.2 词汇融合策略
分层调整机制通过调整词汇的权重来缓解语义偏差问题和降低词汇冲突问题,但同时也合并了被高层词汇反馈降低权重的底层词向量。为了验证反馈机制的有效性,本文提出了3 种不同的策略进行对比实验:(1)只保留最高层词汇信息;
(2)只保留最底层词汇信息;
(3)利用注意力机制来调整各层词汇的权重。
1.2.1保留最高层词汇信息(H-LSTM)对于每个字符对应的词集,在计算词汇权重时,最高层词集词汇权重保持不变,若底层有词集词汇受高层词汇影响则权重置为0,即将底层词汇向量置为0,这样只保留了最高层词集词汇信息。每个字词向量表示如下:
1.2.2保留最低层词汇信息(S-LSTM)对于每个字符对应的词集,在计算词汇权重时,最低层词集词汇的权重保持不变,若此词集词汇有高层词汇对其影响,高层词汇权重置为0,即将高层词汇向量置为0,这样只保留了最低层词集词汇信息。每个字词向量表示如下:
1.2.3 注意力机制调整各层词汇权重(Att-LSTM)考虑到各层词集的重要程度不同,引入自注意力机制计算每个字符对应各层词集权重[20]。将4 个词集合并起来表示为矩阵Vi:
将矩阵通过线性映射操作转化成3 个维度均为dk的输入矩阵:查询矩阵Q、键矩阵K和值矩阵V,使用自注意力函数计算Q和K的相似性来确定V的权重,公式如下:
其中:dk表示神经网络的隐层单元数,起到调节作用,防止内积维度过大。
以ai表示计算所得的权重矩阵,每个字词向量表示如下:
1.3 上下文编码层
为了有效地获取上下文的特征,上下文编码层采用双向长短期记忆网络,即使用前向LSTM 和后向LSTM 组成的BiLSTM 分别对文本进行正向特征提取和逆向特征提取。输入向量在LSTM 结构中的计算方式如下:
其中:σ 为激活函数Sigmoid 函数;
tanh 为激活函数双曲正切函数;
⊗ 为向量矩阵点乘;
W、U和b为模型计算过程中的参数;
it、ft和ot分别表示在t时刻的输入门、遗忘门和输出门;
~ct表示t时刻输入向量的信息状态;
ct表示t时刻更新后的信息状态;
ht表示时t刻的输出信息状态。在BiLSTM 模型中,t时刻的输出信息特征ht由前向LSTM得到的输出信息特征和反向LSTM 得到的输出信息特征拼接而成,表达式如下:
该表达式有效地包含了文本的上下文信息,对中文命名实体识别任务的解决有很大帮助。
1.4 标签解码层
标签解码层在收到上下文编码层对文本的特征表示后,对整个模型的输入文本进行相应的标签序列预测。目前,命名实体识别任务中常使用CRF 层作为标签解码层[21]。CRF 充分考虑到上下文标签序列信息,并考虑到了标签间的约束关系,保证了对标签预测的合理性和准确性。
使用CRF 层解码,需要计算两类分数。第一类是发射分数(Emission score),根据BiLSTM 层所提取到的信息特征H={h1,h2,···,hn} 计算每个标签分数,如式(17)所示:
其中:O为发射分数矩阵;
H为信息特征矩阵;
Wo为H的权重矩阵;
bo为偏置矩阵。
第二类是标签之间状态转移分数(Transition score),由CRF 层学习得到。
综合评估分数的计算公式如下:
其中:X=(c1,c2,···,cn) 表示输入序列;
y=(y1,y2,···,yn)表示一个可能的标签预测序列;
T为状态转移分数矩阵,Tyt,yt+1表示标签yt到标签yt+1的转移分数;
Ot,yt表示在t时刻yt标签的发射分数。预测序列y在整个序列中的概率如式(19)所示:
其中:YX表示所有可能的标签组;
表示任意一个可能的标签预测系列。
定义式(19)的概率预测函数为损失函数,将其转化为对数损失函数:
其中:s(X,y) 表示预测序列y的综合评估分数。在解码时,选取最大概率的预测序列y作为最终的输出结果。
本文通过一系列实验来研究词典信息分层调整机制的有效性,同时与其他基于深度学习的中文命名实体识别模型进行了对比。大多数实验设置都遵循Lattice-LSTM,包括测试数据集、比较标准、评估指标等。
2.1 数据集
在2 个公开的中文数据集上进行测试,分别是Resume 数据集和Weibo 数据集。Resume 数据集来自新浪财经的中文个人简历总结;
Weibo 数据集来自新浪微博的社交媒体网站。在Weibo 数据集中,按照句子数量划分为训练集1400、验证集270 和测试集270,对应的字符数量划为训练集73800、验证集14500和测试集14800。在Resume 数据集中,按照句子数量划分为训练集3800、验证集460 和测试集480,对应的字符数量分别为训练集124100、验证集13900 和测试集15100。这2 个数据集的统计信息如表1 所示。
表1 数据集统计信息Table 1 Data set statistics
Weibo 数据集包含了3 个不同类型的数据集:(1)Named Entities(NE)表示常用的命名实体;
(2)Nominal Entities(NM)表示宽泛的名义实体;
(3)Overall 表示以上全都包含的实体。
2.2 实验设置
本文模型是对Lattice-LSTM 模型的改进,因此大多数参数设置都参考了Lattice-LSTM,如表2 所示。字向量维度和词向量维度大小均设置为50。为了避免过拟合,对字向量和词向量使用0.5 的丢弃率。使用Adam 来优化所有可训练的参数,初始学习率为0.015,衰减率为0.05。
表2 参数设置Table 2 Parameter setting
实验中使用与Lattice-LSTM 相同的词典,由704400 个字词组成,包含了5700 个汉字、291500 个双字词、278100 个三字词和129100 个其他词汇。本文使用的字词向量表与Lattice-LSTM 相同,它是使用word2vec 在中文数据集Giga-Word 上进行预训练得到的。
2.3 评价指标
为了能够清楚地表达实验效果,统一采用准确率(Precision,P)、召回率(Recall,R)和F1 值(F1-score)3 个指标来衡量。公式如下:
其中:T P (True Positive)表示将正类预测为正类;
FP(False Positive)表示将负类预测为正类;
FN (False Negative)表示将负类预测为负类;
(TP+FP) 表示预测为正类的结果中,正确个数的比例;
(TP+FN) 表示实际为正类的样本中,正确判断为正类的比例。
2.4 实验对比分析
Resume 数据集的实验对比方法:(1)Word-based是词汇级的中文命名实体识别基准方法;
(2)Charbased 是以字符级的中文命名实体识别基准方法;
(3)Lattice-LSTM 是在LSTM 模型中添加Lattice 结构的方法;
(4)LR-CNN[22]是基于CNN 模型使用一种反馈机制合并词汇的方法;
(5)WC-LSTM 是一种字词融合的方法,共有4 种不同选择词汇策略:Shortest是融合匹配到的最短词汇;
Longest 是融合匹配到的最长词汇;
Average 是取最短词汇向量和最长词汇向量的平均值;
Self-attention 是利用自注意力机制对最短词汇和最长词汇分配权重。
Weibo 数据集是中文社交媒体上的数据集合,比Resume 数据集增加了2 种针对中文社交媒体的实验对比方法:Peng(2015)[23]是使用3 种类型的中文嵌入方法,利用NER 训练文本,然后对embedding 进行微调的方法;
He(2017)[24]是基于BiLSTM 神经网络的半监督学习模型。
本文模型共有4 种不同的调整词汇权重策略:SLSTM 保留最底层词汇,将高层词汇权重置为0;
HLSTM 保留最高层词汇,将底层词汇权重置为0;
Att-LSTM 利用自注意力机制对各个词汇分配权重;
HALSTM 利用调整机制对各个词汇分配权重。
2.4.1模型识别效果对比分析 表3 列出了在Resume 数据集上不同模型的实验结果,相比于Word-based 和Char-based,本文提出的HA-LSTM 模型的F1 值分别提升了2.05%和2.15%,说明字词融合的有效性;
相比于Lattice-LSTM,本文提出的模型F1 值提升了1.17%,说明了缓解词汇冲突对识别效果的有效性;
相比于LR-CNN 和WC-LSTM 的4 种不同策略,本文模型具有更好的实验表现,表明了所有字符直接使用词汇信息和保证词汇信息完整性的重要性;
相比于S-LSTM、H-LSTM 和Att-LSTM,对词典信息分层调整的方法具有最好的实验表现,表明了本文方法的有效性。
表3 不同模型在Resume 数据集上的实验结果Table 3 Experimental results of different models on Resume dataset
表4 列出了在Weibo 数据集3 种不同类型数据集上不同模型的F1 值。相比于Peng(2015),本文HA-LSTM 模型的F1 值分别提升了2.06%、2.31%、3.91%;
相比于He(2017),本文HA-LSTM 模型的F1值分别提升了3.42%、3.99%、5.14%;
相比于其他方法,本文HA-LSTM 方法在Overall 数据集上有更好的表现结果,但是在NE 和NM 数据集上的效果不理想。
表4 不同模型在Weibo 数据集上的F1 值Table 4 F1 values of different models on Weibo dataset
对比S-LSTM 和H-LSTM,H-LSTM 在NM 数据集上的效果较好,S-LSTM 在NE 数据集上的效果较好。可以看出,对于Weibo 数据集,当融入较长词汇时,模型能较好地识别出宽泛的实体;
当融入较短词汇时,模型能较好地识别出常用的实体。Weibo 数据集来自网络社交软件,文本存在不规范性,许多词汇具有网络流行性,所以融合较长词汇时在宽泛实体数据集上表现较好,融合较短词汇时在常用实体数据集上表现较好。
2.4.2模型时间效率对比分析 为了进一步探索改进模型的有效性,在Resume 数据集上进行了训练时间效率对比。表5 列出了模型每个周期的花费时间(t)、每秒处理句子的条数,使用的显卡是NVIDIA GTX1660Ti。因为Lattice 结构的特点,batch_size 设置为1。在同样的batch_size 设置下,本文的HA-LSTM模型比Lattice-LSTM 模型速度快约2.8 倍。当batch_size 为4 时,HA-LSTM 模型比Lattice-LSTM 模型速度快约6.13 倍。实验结果表明本文提出的模型相比Lattice-LSTM 模型在推理速度方面有了较大提升。
表5 不同模型在Resume 数据集上的时间效率表现Table 5 Time efficiency performance of different models on the Resume dataset
提出了一种词典信息分层调整的中文命名实体识别方法,利用词典信息分层调整机制使得模型可以保留所有可能匹配到的词汇信息,避免了信息丢失。为了缓解语义偏差,降低词汇之间的冲突,通过利用高层词汇来调整低层词汇的权重,使得模型更加侧重于潜在的实体来纠正标签预测。在2 个中文数据集上的实验结果表明,与其他方法相比,本文方法能有效地提高中文命名实体的识别效果。与Lattice-LSTM 模型相比,本文方法能有效地提高推理速度。此外,所有方法在Weibo 数据集上不理想的表现说明对不规范文本的命名实体识别还需要改进,探索如何处理词典的外部词汇,是我们下一步的研究方向。
猜你喜欢字符词典实体寻找更强的字符映射管理器电脑爱好者(2022年15期)2022-05-30米沃什词典文苑(2019年24期)2020-01-06字符代表几小学生学习指导(低年级)(2019年12期)2019-12-04前海自贸区:金融服务实体中国外汇(2019年18期)2019-11-25一种USB接口字符液晶控制器设计电子制作(2019年19期)2019-11-23消失的殖民村庄和神秘字符少儿美术(快乐历史地理)(2018年7期)2018-11-16评《现代汉语词典》(第6版)疯狂英语(双语世界)(2017年3期)2018-01-19实体的可感部分与实体——兼论亚里士多德分析实体的两种模式哲学评论(2017年1期)2017-07-31词典例证翻译标准探索疯狂英语(双语世界)(2017年1期)2017-07-01两会进行时:紧扣实体经济“钉钉子”领导决策信息(2017年9期)2017-05-04