1.本发明属于自然语言处理领域,涉及一种基于神经网络模型的命名实体识别方法。
背景技术:2.命名实体识别(named entity recognition,ner)旨在从非结构化文本数据中识别出实体的边界和类型,是自然语言处理(natural language processing,nlp)领域的一项基础性工作,作为实体链接、句法分析、机器翻译、知识图谱构建等众多nlp任务的上游工作,长久以来在学术界与工业界受到广泛关注,持续不断地改进ner技术具有重要的科研与应用意义。
3.早期命名实体识别主要基于规则方法,代表技术有字典、规则,在词典大小有限的情况下,该方法可以取得较好的效果,但此类方法召回率低、可迁移性差,面对新领域需要重新指定规则。随后,基于机器学习方法的命名实体识别技术逐渐占据主要地位,代表技术有隐马尔可夫模型、条件随机场等,此类方法基本解决了基于规则方法的命名实体识别技术所面临的问题,但是此类方法需要人工选择数据特征,且对数据特征十分敏感,要求专家有极为丰富的特征选择经验。。当前,随着计算机算力的提升,深度学习算法迎来又一次的性能解放,再度成为人工智能领域的研究热点,相比于基于机器学习的命名实体识别方法,基于深度学习的命名实体识别方法不需要人工选取数据特征,而由模型自动择优选择,基于深度学习的命名实体识别方法也在该领域占据了主要地位。
4.根据不同语言的特点,面向不同语言的命名实体识别模型也存在一定差异性。目前,主流ner模型均面向英文设计,迁移至中文ner仍需要一定研究。英文以空格作为自然分隔符,将词与词分隔开,英文nlp模型通常将词作为token来处理各种nlp任务,简单且有效,而中文不存在能够将词与词分隔开的自然分隔符,一个直觉性的想法是首先利用分词工具对中文文本分词处理,再利用英文ner模型处理中文ner任务,但分词过程将不可避免的产生错误而影响之后的命名实体识别,利用词典等方法又会产生oov(out of vocabulary,未登录词)问题。有研究人员将中文字符(单个汉字)作为ner模型的token,再利用英文ner模型获取每个中文字符的ner标签,并取得了不错的效果。在中文命名实体识别领域中,以字符为token的模型被归为基于字符的ner模型一类,先分词再实体识别的模型被归为基于词的ner模型一类,多数研究工作已证实,基于字符的中文ner模型效果优于基于词的中文ner模型。但是,基于字符的中文ner模型中仅包含字符级别和句子级别的信息,而缺失了词级别信息,直接利用英文ner模型必然会影响性能。另一方面,在命名实体识别任务中,只有实体的类型和两个边界和基本事实完全匹配时,才认为该实体识别是正确的,其中实体类型的识别相对较为容易,而实体边界的识别却较为困难。
技术实现要素:5.为了解决上述问题,本发明提供本发明采用的技术方案是:一种基于神经网络模
型的命名实体识别方法,包括以下步骤:
6.构建用于识别出中文文本中的实体的命名实体识别模型;
7.构建用于训练命名实体识别模型的数据集,将所述数据集划分为训练集和测试集;
8.基于训练集和测试集,对所述命名实体识别模型进行训练,得到训练好的命名实体识别模型;
9.将需要进行命名实体识别的中文文本处理成指定格式;
10.将处理成指定格式的中文文本输入到训练好的面向中文的命名实体识别模型,识别出该中文文本中命名实体。
11.进一步地:所述命名实体识别模型包括串联相接的嵌入层、cnns层、全连接层和双向长短时记忆bilstm层及条件随机场crf层;
12.所述嵌入层用于将输入模型的字符序列即中文文本嵌入向量空间中,得到每一个字符的低维、稠密的向量表示;
13.所述cnns层用于从所述嵌入层输出的向量序列中提取词级别信息,采用单通道二维卷积核,并设置多种卷积核尺寸,缓解了ner模型难以识别实体边界的问题,输出含有词级别信息的向量表示;
14.所述全连接层对所述多尺寸卷积核层输出的词级别信息进行数据降维,滤除词级别信息中的噪音,输出降维后的向量序列;
15.所述双向长短时记忆bilstm层从所述全连接层输出的降维后向量序列中,提取文本的全局特征,即句子级别信息,并预测输入模型的字符序列所对应的标签序列;
16.所述条件随机场crf层用于对bilstm输出的标签序列施加一定的命名实体识别的规则约束,并解码输出最终的标签序列。
17.进一步地:所述指定格式指的是:每个句子之间以空行隔开,每个汉字单独成行。
18.进一步地:所述构建用于训练命名实体识别模型的数据集,将所述数据集划分为训练集和测试集包括以下步骤:
19.从互联网上收集大量中文文本;
20.将收集到的中文文本以句子为单位划分,每个句子之间以一个空行隔开,一个句子即一条样本数据,句子中的每个汉字单独成行;
21.利用bio或bmes标注法对数据集进行标注,并以8:2的比例将数据集划分为训练集和测试集。
22.进一步地:所述基于训练集和测试集,对所述命名实体识别模型进行训练,得到训练好的命名实体识别模型,包括以下步骤:
23.设定迭代次数n,初始迭代n=1,将训练集输入到所述命名实体识别模型中,对所述命名实体识别模型进行第n次参数更新,包括权重与偏置,并将测试集输入第n次参数更新之后的所述命名实体识别模型中,输出第n次参数更新之后的所述命名实体识别模型的性能评估结果,记录该性能评估结果且保存此次参数更新之后的所述命名实体识别模型的全部参数;
24.选择所述命名实体识别模型具有最优性能评估结果的一组参数,令所述命名实体识别模型加载该组参数,作为训练完成的命名实体识别模型。
25.进一步地:所述评估指标包括精度、召回率和f1值;
26.其中,精度指命名实体识别模型识别正确的实体数量占该模型识别的实体总数量的比例;
27.召回率指命名实体识别模型识别正确的实体数量占黄金标准实体数量的比例;
28.f1值指精度与召回率的调和均值,一般代表命名实体识别模型的综合性能。
29.本发明提供的一种基于神经网络模型的命名实体识别方法,具有以下优点:采用本发明提出的的cnns+fc模型从输入模型的字符序列中提取词级别信息,该模型的cnns层具有多种尺寸的卷积核,在提取词级别信息的同时可以编码所有候选实体的边界信息,有效缓解了ner模型识别实体边界困难的问题,fc层用于数据降维,可以迫使模型学习到更有效的信息,另外,使用双向长短时记忆网络bilstm提取句子级别信息并预测输入模型的字符序列所对应的ner标签,条件随机场crf对bilstm层输出的ner标签序列施加一定的规则约束,解码输出最终的ner标签。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
31.图1是中文命名实体识别模型结构图;
32.图2是cnns层不同大小的滑动窗口示意图;
33.图3(a)原网络示意图,(b)h2神经元失活图,(c)x
l
神经元失活图,(d)x2h
l
神经元失活图;
34.图4是lstm单元结构图。
具体实施方式
35.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合,下面将参考附图并结合实施例来详细说明本发明。
36.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
38.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当清楚,为了便于描述,附图中所示出的各个部
分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员己知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任向具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
39.在本发明的描述中,需要理解的是,方位词如“前、后、上、下、左、右”、“横向、竖向、垂直、水平”和“顶、底”等所指示的方位或位置关系通常是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,在未作相反说明的情况下,这些方位词并不指示和暗示所指的装置或元件必须具有特定的方位或者以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制:方位词“内、外”是指相对于各部件本身的轮廓的内外。
40.为了便于描述,在这里可以使用空间相对术语,如“在
……
之上”、“在
……
上方”、“在
……
上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其位器件或构造之下”。因而,示例性术语“在
……
上方”可以包括“在
……
上方”和“在
……
下方”两种方位。该器件也可以其他不同方式定位(旋转90度或处于其他方位),并且对这里所使用的空间相对描述作出相应解释。
41.此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本发明保护范围的限制。
42.一种基于神经网络模型的命名实体识别方法,该方法适用于基于字符的ner模型,该方法包括以下步骤:
43.s1:构建用于识别出中文中的实体的命名实体识别模型;
44.s2:构建用于训练命名实体识别模型的数据集,将所述数据集划分为训练集和测试集;
45.s3:基于训练集和测试集,对所述命名实体识别模型进行训练,得到训练好的命名实体识别模型;
46.s4:将需要进行命名实体识别的中文文本处理成指定格式;所述指定格式指的是:每个句子之间以空行隔开,每个汉字单独成行。
47.s5:将处理成指定格式的中文文本输入到训练好的面向中文的命名实体识别模型,识别出该中文文本中命名实体。
48.所述步骤s1/s2/s3/s4/s5/s6顺序执行;
49.图1是中文命名实体识别模型结构图;
50.所述命名实体识别模型包括嵌入层、cnns层、全连接层和双向长短时记忆bilstm层及条件随机场crf层;
51.所述嵌入层用于将输入模型的字符序列或句子(中文文本)嵌入向量空间中,得到每一个字符的低维、稠密的向量表示;字符到向量之间的映射关系由嵌入矩阵e∈rd×v表示,
其中d表示嵌入维度,v表示字典大小,将输入字符序列表示为s=[w1,w2,
…
,wn],其中n为输入字符序列的长度,wi∈rv是第i个字符的独热编码,则输出层可以表示为一个向量序列[e1,e2,
…
,en],其中ei代表第i个字符的稠密向量表示。
[0052]
所述嵌入层可以使用随机初始化的嵌入层或者预训练嵌入层,其中随机初始化嵌入层指嵌入矩阵e中的参数由随机初始化得来,预训练嵌入层指嵌入矩阵e中的参数由word2vec、glove、bert、ernie等预训练模型在数百万文档上经过训练得来,相比于随机初始化嵌入层,使用预训练嵌入层可以提高ner模型的效果。
[0053]
所述cnns层用于从所述嵌入层输出的向量序列[e1,e2,
…
,en]中提取词级别信息,采用单通道二维卷积核,并设置多种卷积核尺寸,有效缓解了ner模型难以识别实体边界的问题,以提取不同长度的词汇,用于输出提取的含有词级别信息的向量表示;
[0054]
cnns层为一组具有不同尺寸卷积核的卷积神经网络,旨在从嵌入层输出的向量序列中提取局部特征,即词级别信息。多尺寸卷积核的设置使cnns类似于具有不同大小的滑动窗口,如图3所示,通过滑动窗口枚举所有可能的候选实体,并将候选实体的信息通过卷积操作编码至模型的下一层,可以有效缓解实体边界识别困难的问题,
[0055]
图2是cnns层不同大小的滑动窗口示意图;图中{天坛}和{天坛公园}的信息均会被模型提取,而不至于仅从{天坛}、{坛公}和{公园}中选择实体。cnns的单个cnn采用单通道二维卷积核,卷积核尺寸表示为[l,d],l表示一次卷积操作可涉及的字符数量,根据中文常见词汇的长度,本文设置l分别为2、3、4和5,d为字符的嵌入维度。本层的输出表示为c=[c1,c2,
…
,cn],ci∈r4
×
z,其中4表示有4种不同尺寸卷积核的cnn,z表示单个cnn卷积核的数量,ci为4种不同尺寸卷积核的cnn的输出向量的拼接。
[0056]
卷积核采用单通道二维卷积核,每一种卷积核尺寸可表示为[l,d],其中l表示一次卷积操作可涉及的字符数量,根据中文常见词汇的长度,本发明设置l分别为2、3、4、5,d为字符的嵌入维度,为了使卷积的输出向量维度与字符的嵌入维度保持一致,卷积核数量设置为d,卷积之后,拼接不同尺寸卷积核cnn的输出向量,拼接结果表示为[c1,c2,
…
,cn],其中ci∈r
4d
。
[0057]
所述全连接层对所述多尺寸卷积核层输出的词级别信息进行数据降维,同时可以迫使模型学习到更有效的信息,并滤除词级别信息中的噪音,输出降维后的向量序列;
[0058]
全连接层旨在高度提纯数据特征,迫使模型学习更有效的信息,滤除数据中的噪音。另外,为防止模型过拟合,增强模型的健壮性,加入dropout层。dropout在训练过程中按一定比例使神经网络中的神经元失活,在后续的正向传播中,这些失活神经元不会对下游神经元产生影响,反向传播时,这些失活神经元的权重与偏置参数也不会被更新,如图4所示。该层的输出表示为x=[x1,x2,
…
,xn],其中xi∈rm,m为全连接层的输出维度。
[0059]
图3(a)原网络示意图,(b)h2神经元失活图,(c)xl神经元失活图,(d)x2hl神经元失火图;所述双向长短时记忆bilstm层及条件随机场crf层从所述全连接层输出的降维后向量序列中,提取文本的全局特征,即句子级别信息,并预测输入模型的字符序列所对应的标签序列;从所述句子级别信息中解码获取字符标签。
[0060]
bilstm层旨在提取全局特征,即句子级别信息,并预测每一个输入字符对应的ner标签。bilstm由前向lstm和后向lstm组合而成,可以获取上下文信息。
[0061]
图4是lstm单元结构图。lstm解决了rnn中存在的长期依赖问题、梯度消失和梯度
爆炸问题,十分适合处理序列输入。lstm单元结构如图5所示,包含遗忘门、输入门和输出门3种逻辑结构,其中遗忘门用于丢弃单元状态中的某些信息,遗忘门输出f
t
如下:
[0062]
ft=σ(wf·
[h
t-1
,x
t
]+bf)
[0063]
其中,x
t
表示当前输入,h
t-1
表示前一时刻的隐藏状态,w、b分别为权重和偏置,σ表示sigmoid激活函数。
[0064]
输入门将当前输入x
t
和上一个隐藏状态h
t-1
中的某些信息保存在单元状态中,输入门输出i
t
和如下:
[0065]it
=σ(wi·
[h
t-1
,x
t
]+bi)
[0066][0067]
根据遗忘门和输入门,lstm的单元状态可以得到更新,公式如下:
[0068][0069]
其中c
t
为当前时刻的单元状态,c
t-1
为上一时刻的单元状态,f
t
为遗忘门输出,i
t
和为输入门输出。
[0070]
输出门用于控制当前单元的输出信息,其输出h
t
如下:
[0071]ot
=σ(wo·
[h
t-1
,x
t
]+bo)
[0072]ht
=o
t
*tanh(c
t
)
[0073]
所述条件随机场crf层用于对bilstm输出的标签序列施加一定的命名实体识别的规则约束,并解码输出最终的标签序列,从而保证预测标签的有效性。ner模型中的条件随机场一般指线性链条件随机场,属于判别式概率模型,记为p(y|x),在随机变量x取值为x的条件下,随机变量y取值为y的条件概率如下:
[0074][0075][0076]
其中,z(x)为规范化因子,tk和s
l
为特征函数,λk和μ
l
为对应的权值。
[0077]
所述构建用于训练命名实体识别模型的数据集,将所述数据集划分为训练集和测试集包括以下步骤:
[0078]
利用爬虫从互联网上收集大量中文文本;
[0079]
将收集到的中文文本以句子为单位划分,每个句子之间以一个空行隔开,一个句子即一条样本数据,句子中的每个汉字单独成行;
[0080]
利用bio或bmes标注法对数据集进行标注,并以8:2的比例将数据集划分为训练集和测试集。
[0081]
进一步地,所述基于训练集和测试集,对所述命名实体识别模型进行训练,得到训练好的命名实体识别模型,包括以下步骤:
[0082]
s1:设定迭代次数n,初始迭代n=1,将训练集输入到所述命名实体识别模型中,对所述命名实体识别模型进行第n次参数更新,包括权重与偏置,并将测试集输入第n次参数更新之后的所述命名实体识别模型中,输出第n次参数更新之后的所述命名实体识别模型的性能评估结果,记录该性能评估结果且保存此次参数更新之后的所述命名实体识别模型
的全部参数;
[0083]
s2:选择所述命名实体识别模型具有最优性能评估结果的一组参数,令所述命名实体识别模型加载该组参数,作为训练完成的最终模型即命名实体识别模型。
[0084]
所述指标评估包括精度、召回率和f1值。其中,精度指命名实体识别模型识别正确的实体数量占该模型识别的实体总数量的比例;召回率指命名实体识别模型识别正确的实体数量占黄金标准实体数量的比例;f1值指精度与召回率的调和均值,一般代表命名实体识别模型的综合性能。
[0085]
本发明所述的命名实体识别模型的训练采用负对数似然损失函数,公式如下:
[0086][0087]
其中:s为训练集中句子集合,p是crf生成的条件概率,p是参数集合,hs是bilstm的隐藏层向量,ys是句子的标签序列。
[0088]
优化器采用adam优化器;
[0089]
本文引入三个基准数据集:msra、人民日报和weibo,并使用bmes标注法处理原始语料。
[0090]
msra数据集由2006年第三届国际中文自动分词评测sighan发布,其中,训练集包括45000条句子,测试集包括3442条句子,实体类别包括3类:人物(per)、地点(loc)和机构(org)。人民日报数据集来源于中国人民日报,使用20864条句子作为训练集,2318条句子作为验证集和4636条句子作为测试集,实体类别包括人物(per)、地点(loc)和机构(org)3类。微博数据集来源于新浪微博,其中,训练集包括1350条句子,验证集包括270条句子,测试集包括270条句子,实体类别包括4类:人物(per)、地点(loc)、机构(org)和地缘政治(gpe,geo-political entity)。上述数据集的具体信息见表1。
[0091][0092][0093]
本技术使用精度(precision)、召回率(recall)和f1值作为模型的评估指标,其中,精度指命名实体识别模型识别正确(实体类型和边界均正确)的实体数量占该模型预测的实体总数量的比例;召回率指命名实体识别模型识别正确的实体数量占黄金标准实体数量的比例;f1值指精度与召回率的调和均值,一般代表命名实体识别模型的综合性能。公式如下:
[0094][0095][0096][0097]
主要实验环境见表2:
[0098][0099]
本技术提出一种cnns神经网络结构,可以更高效的从字符序列中提取词级别信息,并缓解ner任务中实体边界识别困难的问题。基于cnns,本技术提出一种基于字符的中文命名实体识别模型,该模型可以同时编码字符级别信息、词级别信息和句子级别信息。在msra、人民日报、weibo三个常见的公共数据集上的实验结果证明了本文所提模型的有效性,此外,在使用bert预训练嵌入层后,本文模型的性能得到了进一步提升。
[0100]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。