基于BiLSTM-CNN-CRF模型的维吾尔文命名实体识别

2018-08-17 01:22买买提阿依甫
计算机工程 2018年8期
关键词:字符命名实体

买买提阿依甫,·,·,

(新疆大学 信息科学与工程学院,乌鲁木齐 830046)

0 概述

命名实体识别[1](Named Entity Recognition,NER)是自然语言处理(Natural Language Processing,NLP)工作中具有挑战性的任务之一,通过它可以准确地从文本中识别出人名、机构名、地名、时间、日期、货币、百分号等信息,为话题识别、话题跟踪、信息检索、机器翻译、舆情分析等高级NLP任务提供重要的特征信息。过去NER任务多采用基于规则的识别方法、基于统计机器学习的识别方法(包括隐马尔可夫模型、条件随机场模型、支持向量机等)和基于规则和统计相结合的混合识别方法[2]。近年来,深度神经网络在自然语言处理领域受到了广泛的关注,相比于上述方法,基于深度神经网络的方法具有泛化性更强、更少依赖人工特征的优点。因此,面向汉语和英语等大语言,研究人员已提出了许多基于深度神经网络的NER模型,但针对以维吾尔语为代表的低资源少数民族语言的研究较少。维吾尔命名实体识别研究大多只针对维吾尔人名的识别,关于人名、地名、机构名的通用研究较少,目前多数研究都是基于规则或统计模型的方法。

针对维吾尔文命名实体识别问题,本文构建基于BiLSTM-CNN-CRF的混合深度学习模型。首先利用卷积神经网络(Convolutional Neural Network,CNN)模型捕获单词的字符级特征向量;然后将字符级特征向量、词性向量和词向量拼接的混合向量作为BiLSTM模型的输入进行训练,获取语句单词之间隐含的语义特征;最后通过CRF模型得到最优标注序列。

1 神经网络体系结构

本节将详细描述BiLSTM-CNN-CRF[1]神经网络体系结构的各组成部分,从下至上逐一介绍神经网络中的各神经层。

1.1 字词向量特征

1.1.1 字符特征

维吾尔语是典型的黏着语[3],具有复杂的形态变化。从文字信息处理的角度出发,维吾尔文字属于复杂文本信息处理的范畴。现行维吾尔文使用的文字为基于阿拉伯字符的文字,该类文字的形状特征为不等宽的字符,每个字符根据在词中出现的位置又有不同的形状,书写特征是自右向左书写(数字和其他非阿拉伯字符保持自己的书写顺序),与英语和汉语顺序相反。

现行维吾尔文有32个字母。每个字母按出现在词首、词中、词末的位置有不同的形式。字母表中的单式除代表该字母的独立形式外,一般出现在词末不可连字母之后,前式出现在可连字母之前,中式出现在词中2个可连字母中间,末式出现在词末可连字母之后,有些字母只有单式和末式,这样维吾尔文32个字母实际共有126种写法。为了降低字符向量维度,本文通过设计现行维吾尔文到拉丁维吾尔文的转换算法,从而将维吾尔文字符转换为一个拉丁字符,这样只用32个拉丁字母就可以表示维吾尔文。

1.1.2 词向量

词向量[4]的主要设计思想是通过神经网络学习词语的联合概率分布,将语料中的单词映射到指定的d维稠密实数向量。word2vec用到了2个重要的模型:CBOW模型和Skip-Gram模型[5]。

维吾尔句子中单词之间用空格或标点符号来分割。维吾尔文单词在结构上可以分为词根和词干:词根是不可分割的最小语义单元;词干是由几个词根或词根和词缀连接构成,单词一般由词干和词缀(附加成分)连接构成,每个词的变化形式最多可达到数百种。例如:词根为ish(事宜,事情),通过对其连接构词词缀qi,可以得到词干ish+qi=ishqi(工人),可以将单词结构表示为:单词=词缀+词干+后缀1+后缀2+后缀3+…。例如:ish+qi+lar+ning=ishqilarning(工人们的)。为了获取维吾尔单词隐含的丰富信息,本文未对维吾尔词语进行词干提取,保留了词干与词缀,对语料库中的每个单词进行训练预先生成了对应的词向量。

本文利用word2vec工具的Skip-Gram模型对从网络上下载的无标注维吾尔语料库进行训练生成了词向量,假设语料库由w1,w2,…,wm个单词组成,Skip-Gram模型的目标是使以下函数最大化:

其中,n是训练窗口大小,训练时根据窗口大小获取当前词语的上下文相关词语。

经过word2vec生成的词向量为:vi=[a0,a1,…,ad],其中d=300表示词向量的维度。通过word2vec训练生成的词向量每一维都包含丰富的上下文信息。例1给出了维吾尔语料库中一个单词用word2vec生成的词向量。

图1 通过维吾尔文词向量获取的相似单词

1.1.3 词性特征

本文采用词向量很方便地添加了其他新的特征。例如,对于词语可以添加词性特征、字符特征等信息,通过这些信息可以对词语进行抽象化,能够进一步发现语句中词语的结构联系。因此,本文加入了字符特征和词性特征,进一步提高了命名实体识别的性能。维吾尔文词性有2种标注方法:一级词性和二级词性,如表1所示。

表1 维吾尔文词性标注设置

由于本文语料库没有二级词性标注数据,因此实验只使用一级词性特征。使用维度为4的实数向量表示词性向量,最后与词向量和字符向量拼接构成混合向量作为BiLSTM模型输入,提高了模型的命名实体识别性能。

1.2 卷积神经模型

卷积神经网络[6]中卷积层能够提取文本数据的局部特征信息,通过使用卷积和最大池化层可以提取局部特征信息中最具有代表性的部分作为特征向量。现有研究表明,CNN是一种从词的字符中提取形态信息(如词的前缀或后缀)并将其编码为神经表示的最有效方法,文献[1,7]采用CNN提取字符级特征在命名实体识别领域达到了很好的效果,因此,本文利用CNN提取维吾尔文单词的字符特征,通过使用字符级特征、单词词性和词向量相结合的方法提高模型的命名实体识别性能,但维吾尔文中不存在大小写的问题,在本文中并没有用到字符类型等特征,采用CNN提取的维吾尔文形态特征信息作为词向量的补充,从而模型的识别率得到了很好的提高。

CNN模型结构如图2所示,其由字符向量表、卷积层和池化层组成。

图2 字符级CNN模型结构

对CNN网络中包括32个维吾尔文字母和37个标点符号,再加上一个表示不在字符集中的不确定字符的共70个字符分别生成对应的字符向量,由这些向量构成字符向量表。字符向量表的作用是将单词中的每个字符转换成为对应的字符向量,然后生成单词对应的字符向量矩阵。由于单词长度不一样,因此生成的字符向量矩阵的大小也不一样。为解决该问题,本文以最长的单词长度为标准,利用Padding占位符补全单词两端[8],使字符向量矩阵的长度一致。此方法同样可以用于句子长度不一致的问题,最后字符向量表在卷积神经网络训练过程中通过反向传播机制自动更新字符向量矩阵。通过实验发现CNN网络可以有效获取维吾尔文单词中的前缀或后缀等形态特征信息。

1.3 BiLSTM模块

1.3.1 LSTM模块

递归神经网络[9]具有一定的记忆功能,可以被用来解决很多NLP问题,但是它并不能很好地处理长时依赖问题,存在梯度消失和梯度爆炸的问题。

为了解决传统递归神经网络的梯度消失等问题,研究者提出了RNN的特殊形式:长短期记忆网络(Long Short-Term Memory,LSTM)[9-10],传统RNN每一步的隐藏单元只是执行一个简单的tanh或ReLU操作[11]。LSTM是递归神经网络的一种特殊形式,同样考虑时序关系,只是LSTM每个隐层节点还加一些特殊的结构,如图3所示。可以看出,LSTM增加了记忆单元,主要由3个控制门,即遗忘门、输入门、输出门与一个记忆单元(cell)组成。LSTM利用记忆单元对历史信息进行记录,并且这个记录是由3个控制门来控制LSTM单元应写入、读取、输出的内容。因此,通过这些控制门,LSTM能够缓解原始RNN所面临的“梯度消失”或“梯度爆炸”问题。

图3 LSTM单元结构

LSTM单元在t时刻更新的公式如下:

it=σ(Wiht-1+Uixt+bi)

(1)

ft=σ(Wfht-1+Ufxt+bf)

(2)

ot=σ(Woht-1+Uoxt+bo)

(5)

ht=ot⊙tanh(ct)

(6)

在维吾尔文中,人名、机构名和地名中由3个以上的单词构成的情况较多,通过LSTM网络能够记忆单词间的长距离依赖关系的特点,有效识别出维吾尔文中的较长的人名、地名和机构名。例如:“samat bilan kvrash xinjiang aptonum rayonluk helik dohturhanisida ishlaydu.”(赛买提和库莱西在新疆自治区人民医院工作。),针对这句话中的机构名“xinjiang aptonum rayonluk helik dohturhanisida”(新疆自治区人民医院),用传统的统计模型CRF进行识别时出现了无法完全识别的问题,而LSTM模型巧妙地识别出了类似长机构名。在这句话中kvrash是个兼类词(人名和动词),通过LSTM模型根据上下文历史信息正确识别CRF统计模型无法识别的兼类词。

1.3.2 BiLSTM模块

在句子中命名实体的正确识别取决于词的上下文[12]。前后2个词对预测标签都很重要,如果能够获取过去和将来的上下文信息,对命名实体识别任务很有帮助。然而,LSTM的隐藏状态ht仅从过去获取信息,对未来一无所知。双向LSTM[7,13](简称为BiLSTM)是一种较好的解决方案,其有效性已在前人的工作中得以证明,基本思想是将每个顺序序列和逆序序列呈现到2个单独的隐藏状态,以分别捕获过去和将来的信息,然后将连接2个隐藏状态作为最终输出。BiLSTM已经被证明在许多机器翻译、问题回答、序列标注等NLP任务中很有用。

姥爷最拿手的是高汤汆大白菜:切掉菜根,将摘洗干净的菜身拦腰切开一分为二,上边是新嫩青绿的菜叶,下边则是晶莹粗厚的菜帮子,用香浓月白的高汤汆烫,然后加粉丝和红肉丸子,出锅的时候来一点香油和虾米,美味至极,是我童年味蕾上最美好的记忆。

1.4 CRF模块

条件随机场(Condition Random Field,CRF)[7,12]模型是一种用于标注和切分有序数据的条件概率模型。该模型结合了隐马尔可夫模型和最大熵模型的优点[13],避免了这些模型本身存在的一些缺点,能够有效地解决序列标注问题。 可以把命名实体识别任务转化成一个序列标注任务,本文采用SBIEO标记策略(如表2所示)对语料进行标注,表3是使用SBIEO标记策略对给定现行维吾尔文句子进行转换为拉丁维吾尔句子后的标注示例。

表2 CRF模块SBIEO标签集

表3 维吾尔文命名实体标注方法示例

对于命名实体识别任务,本文使用CRF模型联合建模标注决策,而不是独立建模决策。将CRF层作为神经网络架构的最后一层,对BiLSTM模块的输出结果进行处理,获得最优的全局标注序列。

对于一个给定维吾尔文句子,本文用X={x1,x2,…,xn}表示对应的输入单词序列,假设P是大小为n×k的BiLSTM网络输出的分数矩阵,其中k是不同标签的数量,Pi,j对应第i个单词的第j个标签的分数。对于一个标签预测y={y1,y2,…,yn},定义其分数为:

其中,A是转移分数矩阵,Ai,j表示从标签i转移到标签j的分数,y0和yn是在句子开始和结束为位置添加的标签,因此,A是一个大小为k+2的方阵。

对于序列y,本文采用softmax来生成所有:

在训练过程中最大化正确标签序列的对数概率:

其中,YX是对于输入句子X的所有可能标签序列。从上式可以明显看出,本文的神经网络产生有效的输出标签序列。最终解码时,通过以下公式预测得分最大的输出序列:

通过将BiLSTM的输出向量输入到CRF层来构造神经网络模型[11]。本文神经网络架构由BiLSTM模块、CNN模块和CRF模块组成。第1层是输入层,主要负责将输入的句子进行字词向量的映射,为了便于后期处理首先通过转换算法将现行维吾尔文句子转换成拉丁维吾尔文,然后通过查询词向量表将文本转换为词向量序列,再对于文本中的每个单词,通过查询字符向量表获得每个字符的字符向量,由字符向量组成单词的字符向量矩阵。CNN模块对字符向量矩阵进行卷积和最大池化,获得每个单词的字符级特征,每个单词的字符向量和词性向量与词向量拼接组合后的混合向量作为第2层神经网络模块BiLSTM的输入,最后用第3层CRF模块将第2层的输出解码出一个最优的标记序列。本文神经网络的体系结构如图4所示。

图4 深度神经网络结构

2 神经网络训练

2.1 参数初始化

2.1.1 词向量

文献[10,14]已指出,词向量在提高序列标记任务性能中起到了至关重要的作用。目前缺乏公开的已训练好的维吾尔文词向量数据集。为了构建维吾尔文词向量,本文首先从知名度较高的几个新闻网站上下载了新闻数据(如表4所示),然后对收集到的9.5万条新闻数据(包含多余3 500万条词条,40多万单词)用gensim的skip-gram模型进行训练[15],生成了维度为300的词向量,本实验设置窗口的大小为5,单词频率最小值设为4。

表4 下载数据统计

2.1.2 字符向量

实验对70个维吾尔文字符和标点符号使用随机均匀分布来初始化字符向量查询表,字符向量的维度设为10,并且其取值范围为[-0.5,0.5]。

2.2 优化算法

目前神经网络中流行的优化算法有随机梯度下降(Stochastic Gradient Descent,SGD)、Momentum、Adagrad、Adadelta、RMSprop、Adam、Adamax等[13,16-17],每个优化算法都有自己的特点,本文实验中使用了SGD算法进行优化,实验结果表明SGD优化算法提高了模型性能,学习率η0初始值设为0.001,momentum设为0.9,每个训练周期学习率η0通过公式:ηt=η0/1+ρt来自动更新,其中延迟率为ρ=0.5,t是已经完成的训练循环数。

2.3 Dropout参数

在正则化方法中,Dropout[16]是非常有用和成功的一种技术。一般来说,它会随机删除一些神经元,以在不同批量上训练不同的神经网络架构。在实验中Dropout的值和在模型中的位置很关键,直接影响到模型的性能。在多数神经网络研究中,Dropout值设为0.5时的性能较好,能够有效防止过拟合问题,但在本文实验中,用不同的Dropout的值对模型进行了交叉验证。实验结果表明,Dropout值为0.63时达到了最好的识别效果,在BiLSTM模型输入输出端两端都用了Dropout机制[17]。本文神经网络参数设定如表5所示。

表5 神经网络参数设置

3 实验与结果分析

3.1 实验数据集

由于目前维吾尔命名实体识别缺乏公开的标注数据集,因此本文人工建立了一个维吾尔文命名实体识别数据集。所使用的语料是从政府新闻网站天山网下载的维吾尔语新闻数据,从中挑选22 150个维吾尔语句子,然后对其进行人工标注词性和命名实体标记,作为本文实验的维吾尔文命名实体识别语料库,如表6所示。

表6 维吾尔文命名实体识别标注语料库

3.2 实验结果

本文进行了5组实验对维吾尔文人名、地名、机构名进行命名实体识别,5组实验都在实验室的UNERDATA数据集上进行命名实体识别。实验的评测方法是F1值、准确率、召回率[18]。

实验1实验目的:1)将CRF模型作为基准模型,测试统计模型CRF在实验室提供的UNERDATA数据集上的性能;2)汇总使用CRF模型进行命名实体识别时发现的一系列问题。实验中使用了目前较流行的统计模型CRF++[18],由于标记数据集是基于句子的,因此对于CRF++工具,只考虑了词级特征。使用CRF工具进行UNER任务后发现了以下问题:

1)CRF统计模型对语料中没有出现的人名、地名无法正确识别。由于目前维吾尔文中尚缺少大型人名、地名和机构名称的标注语料库,导致统计模型无法正确识别命名实体。

2)维吾尔文中机构名称存在大量的缩写情况,CRF模型对这种由单独字符组成的机构名缩写无法进行识别。例如:“ürümchi sheһirlik j x idarsi”(乌鲁木齐市公安局)里面的“j x”是公安局的缩写,CRF模型对这种缩写无法准确识别。

3)维吾尔文中的人名存在缺乏统一的写作风格,有些人名有几种写法。例如:人名“memetqasim”(买买提喀斯木)的另一个写法是“matqasim”(买提喀斯木)。

4)维吾尔文中存在大量兼类词,有些人名兼有其他含义。例如:人名“yalqun”(亚力坤)的另一个意思是火焰,CRF模型无法利用上下文对这种兼类词进行正确识别,有时将类似人名识别标记为O(其他)。

5)维吾尔人姓名基本上由2个词组成,但也存在一个人名由3,4个人名组成的情况,例如:“nurmemetоbulqasim”(努尔麦麦提吾布力卡斯木),CRF模型无法对这些长人名正确识别。

6)维吾尔地名中大量存在长地名和长机构名,例如:“shinjang uyghur aptonom rayoni”(新疆维吾尔自治区),CRF模型无法对类似长地名准确识别。

7)维吾尔文论坛、微博、新闻等网络文本中存在大量的拼写错误问题,CRF模型无法对拼写错误的单词准确识别,其准确率为78.35%,召回率为75.78%,F1值为77.04%,

实验2实验目的:1)研究深度神经网络模型相对于统计模型在维吾尔命名实体识别上是否有优势;2)研究深度神经网络能否解决CRF统计模型中发现的问题。实验中分别用简单RNN模型、LSTM模型和BiLSTM模型进行UNER任务。从表7中可以看出,简单RNN模型的性能和CRF模型基本一样,LSTM模型和BiLSTM模型的性能都比CRF模型好,其中BiLSTM模型的F1值比CRF模型提高了5.03%。

表7 神经网络模型的实验结果 %

实验3实验目的:验证CNN模型的有效性。实验在LSTM模型和BiLSTM模型的基础上加入了CNN模型,使用CNN模型获取字符特征,然后将字符向量和词向量拼接后作为LSTM或BiLSTM模型的输入进行训练。从表8的实验结果可以看出,LSTM、BiLSTM模型加入CNN网络后系统的识别能力都得到了提高,LSTM-CNN模型的F1值比LSTM模型提高了1.3%,BiLSTM-CNN模型比BiLSTM模型F1值提高了2.69%。

表8 加入CNN模型后的实验结果 %

实验4实验目的:验证CRF模型加入到BiLSTM-CNN-CRF框架后系统的性能,并进一步提升系统UNER任务中的识别性能。在实验3的基础上,对BiLSTM模型的输出进行CRF层,输出概率最大的最优标记序列。从表9的实验结果可以看出,加入CRF层后LSTM-CNN-CRF模型和BiLSTM-CNN-CRF模型准确率都得到了提高,其中BiLSTM-CNN-CRF模型的F1值比BiLSTM-CNN模型提高了4.3%。

表9 加入CRF模型后各模型的实验结果 %

实验5实验目的:进一步提高系统的命名实体识别性能。在实验4的基础上,对系统的输入向量增加了词性向量,本文实验中由于UNERDATA数据集中未提供维吾尔二级词性的标记,只使用了一级词性作为特征进行了模型训练,将CNN模型提取出来的字符特征向量和词性向量与词向量拼接生成最终特征向量作为RNN-CNN-CRF模型的输入进行训练。从表10的实验结果中可以看出,词性向量加入到词向量后BiLSTM-CNN-CRF模型准确率有了提升,其中BiLSTM-CNN-CRF模型的准确率达到了91.46%,F1值达到了91.89%,相对于基线CRF方法,其准确率提高了13.11%,F1值提高了14.85%。

表10 加入词性向量后各模型的实验结果 %

以上5组实验结果表明,本文建立的BiLSTM-CNN-CRF模型通过使用字符向量、词性向量和词向量组合的混合向量,在维吾尔文命名实体识别任务中达到了最好的性能。

4 结束语

针对维吾尔文命名实体识别任务,本文以传统的CRF统计模型作为基准进行实验,总结维吾尔文命名实体识别中出现的问题,进而构建基于BiLSTM-CNN-CRF框架的神经网络模型。该模型在CNN层捕获字符级特征向量,在BiLSTM层获取当前词语的过去和将来的上下文信息,在CRF层对BiLSTM层的输出进行解码,最终输出最优的标记序列。基于UNERDATA语料的实验结果进一步验证了BiLSTM-CNN-CRF框架对维吾尔文命名实体识别的有效性。

本文构建的BiLSTM-CNN-CRF深度学习模型能够在维吾尔文命名实体识别语料库上得到较好的实验结果,并已应用于维吾尔文网络舆情分析系统,有效识别出了文本中的人名、地名和机构名,提高了舆情系统分析能力。后续将进一步完善语料库,加入二级词性标注特征信息,并在新语料库的基础上测试本文模型的性能。

猜你喜欢
字符命名实体
命名——助力有机化学的学习
字符代表几
前海自贸区:金融服务实体
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
有一种男人以“暖”命名
为一条河命名——在白河源
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”