一种面向医疗领域基于深度学习的命名实体识别方法
技术领域
本发明涉及命名实体识别方法,特别涉及一种面向医疗领域基于深度学习的命名实体识别方法。
背景技术
命名实体识别作为信息抽取的基本任务之一,在问答系统、句法分析、机器翻译等领域中都有重要应用。医疗实体与普通实体区别较大,开放领域实体标注语料信息对医疗实体标注作用甚微;同时医疗领域的实体识别又缺乏标注语料,这主要是由于医疗实体的判断需要专业人士来进行,大大提高了医疗领域实体标注的成本。因此,在医疗领域如何利用少量标注语料进行更好的标注是十分重要的。
深度学习在近几年取得了重大进展,它已经被证明能够发掘出高维数据中的复杂结构进行学习。目前在自然语言处理领域中,一种新的词表示方法:词向量(wordembedding) 取得了巨大成功。
词向量(word embedding)是近年来常用来替代传统词袋(bag of word)的词表示方法,解决了词袋表示带来的维数灾难问题。研究人员还发现,通过训练语言模型得到的词向量蕴含了词汇的语义信息,还可以通过一些算法能够在一定程度上得到词汇的相似度等数据。此外,由于词向量的训练无需任何标注工作,所以围绕词向量进行研究可以减少很多工作量,也可以按需训练:既可以使用大量开放语料训练得到可泛用的良好的词向量表示,也可以选择同一领域的语料训练得到对某个领域专用的词向量,更可以根据任务直接进行训练。
词向量的训练一般使用深度神经网络进行,而在自然语言处理领域,循环神经网络 (RNN)模型是应用最广泛的神经网络之一。在自然语言处理领域,上文信息对下文的影响一般用语言模型来刻画,而RNN模型利用一个循环反馈的隐层很自然的利用了上文信息,而且在理论上可以使用到全部的上文信息,这是传统语言模型不能做到的。但RNN 模型在实际应用中存在梯度消失的问题,长短期记忆单元(Long Short-Term Memory, LSTM)就是对于RNN的一个有效的改进。LSTM针对RNN无法有效保留所需信息的现状,使用了记忆单元(Memory Cell)记录信息,并引入多个门(gate)控制记忆单元的更新和使用,使得所需的信息可以有效保存下来。LSTM现在已经被广泛应用于从分词、词性标注、命名实体识别到机器翻译等自然语言处理任务中。
在深度神经网络中一个常用的技术是预训练技术。多个研究成果证明,使用大规模语料进行无监督训练得到的词向量来初始化神经网络的参数,要比随机初始化训练可以得到更好的模型,这主要是由于预训练得到的词向量可以利用大规模无标注数据,包含了训练数据中没有的信息,且能在一定程度上防止随机初始化的词向量在优化过程中陷入局部极值。对于训练数据稀缺的医疗领域来说,能够利用大规模无标注数据进行辅助训练是极有意义的。
目前命名实体识别任务使用的模型主要有以CRF为代表的传统模型和深度神经网络模型两类,而在医疗领域一般还在使用传统的CRF模型。
CRF模型由于不考虑语义信息,在训练语料极度缺乏的情况下,标注结果中会出现大量的无意义的标注结果,而LSTM模型蕴含的语义信息可以防止这种情况发生。
发明内容
本发明的目的是为了解决CRF模型由于不考虑语义信息,在训练语料极度缺乏的情况下,标注结果中会出现大量的无意义的标注结果的问题,而提出的一种面向医疗领域基于深度学习的命名实体识别方法。
上述的发明目的是通过以下技术方案实现的:
步骤一、利用无标注语料进行词向量veci的训练,得到了补充医疗领域语料的词表voc 和词表voc对应的词向量vec;其中,i=1,2,3,…,n;vec=vec1,vec2,…,veci,…,vecn; voc=voc1,voc2,…,voci,…,vocn;n为无标注语料中的词种类总个数;
步骤二、利用有标注语料中的训练语料进行长短期记忆单元网络LSTM的训练;利用步骤一得到的词向量vec作为预训练向量,利用LSTM方法根据预训练向量、xk以及yk计算优化目标利用梯度下降算法优化进行LSTM的神经网络参数θ的更新;有标注语料包括训练语料和测试语料;
其中,xk为第k个样例的有标注语料中的训练语料对应的LSTM输入的词序列;yk为第k个样例的有标注语料中的训练语料对应的标注结果向量;
步骤二一、将词表voc和词表voc对应的词向量vec进行预训练;利用xk和步骤一得到的词向量vec来计算得到LSTM神经网络的输入序列X,其中,计算得到LSTM神经网络的输入序列X采用两种方法,两种方法具体为:一种是将词向量vec作为LSTM模型的初始值所选用的方法即方法一;另一种方法是将词向量vec作为LSTM神经网络的输入所选用的方法即方法二;
步骤二二、利用输入Xt、第t-1次计算得到的隐层ht-1和第t-1次计算得到的记忆单元ct-1计算第t次计算的LSTM模型的输入门int、LSTM模型的输出门ot以及LSTM模型的遗忘门ft;根据int、ot和ft计算得到记忆单元值ct和隐层值ht;其中, X=X1,X2,...,Xt,...,XT;
步骤二三、对输入序列X,分别从按X1到XT的顺序分别输入到步骤二二带入到公式(9)得到的隐层输出hf;从XT到X1的顺序分别输入到步骤二二带入到公式(9),得到的隐层输出hb;
步骤二四、采用转移代价的整个序列的代价计算方法将步骤二三得到的隐层结果hf和hb进行序列代价计算得到优化目标利用梯度下降算法优化进行LSTM的神经网络参数θ的更新;其中,θ为word_emb、WX_in、Wh_in、Wc_in、WX_o、 Wh_o、Wc_o、WX_f、Wh_f、Wc_f、bin、bo或bf;
步骤三、LSTM的测试;输入有标注语料,根据步骤二中的更新的LSTM的神经网络参数θ进行标注结果的路径查找,得到有标注语料的标注结果;利用命名实体识别评估标准F值对有标注语料中的测试语料的标注结果进行评估,具体评估计算方法如下:
步骤四、将有标注语料重复步骤二和步骤三,直至步骤三的命名实体识别评估标准F 值不增加或重复步骤二和步骤三的次数达到最大值50~100次为止。
发明效果
一种面向医疗领域基于深度学习的命名实体识别方法,本发明涉及命名实体识别方法,所属信息抽取领域,相关研究对命名实体识别研究有促进作用。本发明希望缓解医疗领域的实体识别又缺乏标注语料的问题,研究在医疗领域如何利用少量标注语料进行更好的标注。本发明通过使用深度学习方法,进一步挖掘语料所蕴含的信息;同时引入大规模语料信息来防止模型在测试中,由于出现了过多没有经过训练的开放领域常规词而降低效果的问题。实验结果证明,这种面向医疗领域基于深度学习的命名实体识别方法与传统医疗领域命名实体识别方法相比,更适用于医疗领域的命名实体识别。
一种面向医疗领域基于深度学习的命名实体识别方法,本发明涉及命名实体识别方法,所属信息抽取领域,相关研究对命名实体识别研究有促进作用。本发明希望缓解医疗领域的实体识别又缺乏标注语料的问题,研究在医疗领域如何利用少量标注语料进行更好的标注。本发明通过使用深度学习方法,进一步挖掘语料所蕴含的信息;同时引入大规模语料信息来防止模型在测试中,由于出现了过多没有经过训练的开放领域常规词而降低效果的问题。实验结果证明,这种面向医疗领域基于深度学习的命名实体识别方法与传统医疗领域命名实体识别方法相比,更适用于医疗领域的命名实体识别。
本发明涉及命名实体识别方法,特别涉及基于深度学习的面向医疗领域的命名实体识别方法。本发明所属信息抽取领域,对命名实体识别研究有促进作用。
本发明的目的是为了充分利用现有的医疗领域命名实体识别标注语料,提升深度神经网络在医疗领域命名实体识别任务的性能。同时为了解决医疗领域命名实体识别标注语料匮乏的现状,利用大规模无标注数据参与模型训练,提出了一种面向医疗领域基于深度学习的命名实体识别方法。
本发明的相关研究提高了医疗领域命名实体识别的性能,不仅是对信息学、语言学相关理论的佐证,同时对自然语言理解有促进作用。为了提高命名实体识别的性能,本发明充分利用了现有的少量医疗领域的命名实体识别标注语料,通过使用LSTM深度神经网络建模,并利用深度神经网络的预训练技术加入了大规模生语料的信息,这种方法相比传统方法相比,既无需人工标注更多的实体识别语料,减少了人力物力的消耗,又可以提高医疗领域命名实体识别的性能。
本发明对语料预处理的粒度没有要求,既可以按字进行标注,也可以按词进行,这主要取决于所使用的训练预料。考虑到医疗领域的实体很多词都很少在开放领域出现,用词粒度进行训练会需要为预训练语料分词,可能会带来一些困难。为了最大限度的减少人力物力资源的消耗,比较推荐使用按字进行处理。
总的来说,该方法提出了一种面向医疗领域基于深度学习的命名实体识别方法。
使用少量医疗语料训练模型,并标注大量的在在线医疗问答网站爬取的文本,对两种模型标注结果进行了高频词的统计,其对比如下表:
CRF模型与LSTM模型在线问答语料测试的高频词对比
表中粗体为明显无意义的标注结果,可以看出LSTM表现远好于CRF模型。
附图说明
图1为具体实施方式一提出的一种面向医疗领域基于深度学习的命名实体识别方法流程图;
图2为具体实施方式一提出的LSTM的计算流程图。
具体实施方式
具体实施方式一:结合图1本实施方式的一种面向医疗领域基于深度学习的命名实体识别方法,具体是按照以下步骤制备的:
步骤一、利用无标注语料进行词向量veci的训练(使用word2vec工具包进行词向量的训练),得到了补充医疗领域语料的词表voc(该词表与医疗领域语料相比含有更多的词表)和词表voc对应的词向量vec;其中,i=1,2,3,…,n;vec=vec1,vec2,…,veci,…,vecn; voc=voc1,voc2,…,voci,…,vocn;n为无标注语料中的词种类总个数;
步骤二、利用有标注语料中的训练语料进行长短期记忆单元网络LSTM的训练;利用步骤一得到的词向量vec作为预训练向量,利用LSTM方法根据预训练向量、xk以及yk计算优化目标利用梯度下降算法优化进行LSTM的神经网络参数θ的更新;有标注语料包括训练语料和测试语料;
其中,xk为第k个样例的有标注语料中的训练语料对应的LSTM输入的词序列;yk为第k个样例的有标注语料中的训练语料对应的标注结果向量;
步骤二一、将词表voc和词表voc对应的词向量vec进行预训练;利用xk和步骤一得到的词向量vec来计算得到LSTM神经网络的输入序列X,其中,计算得到LSTM神经网络的输入序列X采用两种方法,两种方法具体为:一种是将词向量vec作为LSTM模型的初始值所选用的方法即方法一;另一种方法是将词向量vec作为LSTM神经网络的输入所选用的方法即方法二;
步骤二二、用LSTM层计算存储单元及隐层;由于步骤二一得到的输入序列X的维数与多个参数有关,将参数矩阵与X相乘的维度转化为与LSTM隐含层相同的维度;利用输入Xt、第t-1次计算得到的隐层ht-1和第t-1次计算得到的记忆单元ct-1计算第t次计算的LSTM模型的输入门int、LSTM模型的输出门ot以及LSTM模型的遗忘门ft如图2;根据int、ot和ft计算得到记忆单元值ct和隐层值ht;其中,X=X1,X2,...,Xt,...,XT;
步骤二三、对于命名实体识别任务,一般使用双向的LSTM,即对输入序列X,分别从按X1到XT的顺序分别输入到步骤二二带入到公式(9)得到的隐层输出hf;从XT到X1的顺序分别输入到步骤二二带入到公式(9),得到的隐层输出hb;
步骤二四、采用转移代价的整个序列的代价计算方法将步骤二三得到的隐层结果hf和hb进行序列代价计算得到优化目标利用梯度下降算法优化进行LSTM的神经网络参数θ的更新;其中,θ为word_emb、WX_in、Wh_in、Wc_in、WX_o、 Wh_o、Wc_o、WX_f、Wh_f、Wc_f、bin、bo或bf;
步骤三、LSTM的测试;输入有标注语料,根据步骤二中的更新的LSTM的神经网络参数θ进行标注结果的路径查找,得到有标注语料的标注结果;利用命名实体识别评估标准F值对有标注语料中的测试语料的标注结果进行评估,具体评估计算方法如下:
在进行一定次数的步骤二后,需要对深度神经网络现在参数的效果进行评估,也就需要使用开发集语料进行测试;这一步骤需要对开发集中的每一句语料进行最优的标注路径查找,主要使用维特比算法;
步骤四、将有标注语料重复步骤二和步骤三,直至步骤三的命名实体识别评估标准F 值不增加或重复步骤二和步骤三的次数达到最大值50~100次为止;使用步骤三计算得到的F值进行评估,在命名实体识别任务中使用F值。
本实施方式效果:
一种面向医疗领域基于深度学习的命名实体识别方法,本实施方式涉及命名实体识别方法,所属信息抽取领域,相关研究对命名实体识别研究有促进作用。本实施方式希望缓解医疗领域的实体识别又缺乏标注语料的问题,研究在医疗领域如何利用少量标注语料进行更好的标注。本实施方式通过使用深度学习方法,进一步挖掘语料所蕴含的信息;同时引入大规模语料信息来防止模型在测试中,由于出现了过多没有经过训练的开放领域常规词而降低效果的问题。实验结果证明,这种面向医疗领域基于深度学习的命名实体识别方法与传统医疗领域命名实体识别方法相比,更适用于医疗领域的命名实体识别。
一种面向医疗领域基于深度学习的命名实体识别方法,本实施方式涉及命名实体识别方法,所属信息抽取领域,相关研究对命名实体识别研究有促进作用。本实施方式希望缓解医疗领域的实体识别又缺乏标注语料的问题,研究在医疗领域如何利用少量标注语料进行更好的标注。本实施方式通过使用深度学习方法,进一步挖掘语料所蕴含的信息;同时引入大规模语料信息来防止模型在测试中,由于出现了过多没有经过训练的开放领域常规词而降低效果的问题。实验结果证明,这种面向医疗领域基于深度学习的命名实体识别方法与传统医疗领域命名实体识别方法相比,更适用于医疗领域的命名实体识别。
本实施方式涉及命名实体识别方法,特别涉及基于深度学习的面向医疗领域的命名实体识别方法。本实施方式所属信息抽取领域,对命名实体识别研究有促进作用。
本实施方式的目的是为了充分利用现有的医疗领域命名实体识别标注语料,提升深度神经网络在医疗领域命名实体识别任务的性能。同时为了解决医疗领域命名实体识别标注语料匮乏的现状,利用大规模无标注数据参与模型训练,提出了一种面向医疗领域基于深度学习的命名实体识别方法。
本实施方式的相关研究提高了医疗领域命名实体识别的性能,不仅是对信息学、语言学相关理论的佐证,同时对自然语言理解有促进作用。为了提高命名实体识别的性能,本实施方式充分利用了现有的少量医疗领域的命名实体识别标注语料,通过使用LSTM深度神经网络建模,并利用深度神经网络的预训练技术加入了大规模生语料的信息,这种方法相比传统方法相比,既无需人工标注更多的实体识别语料,减少了人力物力的消耗,又可以提高医疗领域命名实体识别的性能。
本实施方式对语料预处理的粒度没有要求,既可以按字进行标注,也可以按词进行,这主要取决于所使用的训练预料。考虑到医疗领域的实体很多词都很少在开放领域出现,用词粒度进行训练会需要为预训练语料分词,可能会带来一些困难。为了最大限度的减少人力物力资源的消耗,比较推荐使用按字进行处理。
总的来说,该方法提出了一种面向医疗领域基于深度学习的命名实体识别方法。
使用少量医疗语料训练模型,并标注大量的在在线医疗问答网站爬取的文本,对两种模型标注结果进行了高频词的统计,其对比如下表:
CRF模型与LSTM模型在线问答语料测试的高频词对比
表中粗体为明显无意义的标注结果,可以看出LSTM表现远好于CRF模型。
具体实施方式二:本实施方式与具体实施方式一不同的是:步骤二一中所述采用方法一计算得到LSTM神经网络的输入序列X具体过程:
建立有标注语料中的训练语料词表voc′,将voc′和voc合并词表VOC; VOC=VOC1,VOC2,VOC3,…,VOCN;
随机初始化词表VOC对应的向量矩阵word_emb,使得向量矩阵word_emb维度与词向量vec相同,并按公式(1)进行赋值:
word_embi为word_emb中第i个词向量;
最后将xk[k1,k2]与word_emb相乘得到LSTM神经网络的输入序列X:
X=xk[k1,k2]·word_emb (2)
其中,xk[k1,k2]为词序列xk中k1与k2之间的词序列。其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:步骤二一中所述采用方法二计算得到LSTM神经网络的输入序列X具体过程:
随机初始化词表VOC对应的向量矩阵word_emb,并按公式(1)进行赋值后保持向量word_embi不变,即不作为参数进行更新,再随机初始化词表VOC中的一份词表对应的向量矩阵为word_emb_para,计算LSTM神经网络的输入序列X:
将word_emb参数固定的情况下,word_emb_para则完全按照标准参数更新。其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:步骤二二所述的第t次计算LSTM模型(或记忆单元的)的输入门int具体为:
int=σ(WX_inXt+Wh_inht-1+Wc_inct-1+bin) (4)
其中,σ为sigmoid函数;WX_in为与Xt相乘的输入门参数矩阵;Wh_in为ht-1相乘输入门参数矩阵;Wc_in为与ct-1相乘的输入门参数矩阵;bin为计算输入门的偏置。其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:步骤二二所述的第t次计算LSTM模型的(或记忆单元的)的输出门ot(output gate)的具体过程为:
ot=σ(WX_oXt+Wh_oht-1+Wc_oct-1+bo) (5)
其中,WX_o为与Xt相乘的输出门参数矩阵;Wh_o为ht-1相乘输出门参数矩阵;Wc_o为与ct-1相乘的输出门参数矩阵;bo为计算输出门的偏置。其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:步骤二二所述的第t次计算LSTM模型的(或记忆单元的)的遗忘门(forget gate)ft的具体过程为:
ft=σ(WX_fXt+Wh_fht-1+Wc_fct-1+bf) (6)
其中,WX_f为与Xt相乘的遗忘门参数矩阵;Wh_f为ht-1相乘遗忘门参数矩阵;Wc_f为与ct-1相乘的遗忘门参数矩阵;bf为计算遗忘门的偏置。其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:步骤二二中根据 int、ot和ft计算得到记忆单元值ct和隐层值ht具体为:
(1)、首先第t次计算不加门时的记忆单元值
其中,WX_c为与Xt相乘的记忆单元参数矩阵;Wh_c为ht-1相乘记忆单元参数矩阵;bc为记忆单元的偏置;
(2)、根据(4)、(6)计算得到的输入门值int、遗忘门值ft、不加门时的记忆单元值ct和ct-1计算第t次计算的记忆单元值ct:
最后,使用记忆单元值ct和式(5)计算得到的输出门ot计算得到隐层的值ht:
ht=ot·tanh(ct) (9)。其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:步骤二四中采用转移代价的整个序列的代价计算方法将步骤二三得到的隐层结果hf和hb进行序列代价计算得到优化目标利用梯度下降算法优化进行LSTM的神经网络参数θ的更新具体过程:
(1)、首先利用隐层hf和hb计算序列xk标记为标签的代价Qt:
Qt=hf(t)·Wf+hb(t)·Wb+b (10)
其中,Wf为与hf(t)相乘的参数矩阵;Wb为与hb(t)相乘的参数矩阵;b为最终输出偏置;
(2)、将转移代价矩阵A来描述标签转移的代价,设转移代价为Ai,j表示从标签i到标签j的转移代价,则输入序列X的整体代价即优化目标为:
(3)、利用极大似然估计法,计算最大化正确路径的概率p:
costright为正确路径的代价;
虽然所有路径的个数是一个指数爆炸的数字,但是公式(12)中的所有路径代价之和无需遍历所有路径,可以在线性时间内使用动态规划算法得出;
(4)、利用梯度下降算法根据最大化正确路径的概率p更新LSTM的神经网络参数θ;其中,更新θ包含所有步骤二一、二二中提到为LSTM的神经网络参数θ的变量;需要计算序列代价来得到系统的优化目标。其它步骤及参数与具体实施方式一至七之一相同。
具体实施方式九:本实施方式与具体实施方式一至八之一不同的是:步骤三中根据步骤二中的更新的LSTM的神经网络参数θ进行标注结果的路径查找,得到语料的标注结果具体方法:
将输入序列X的代价cost进行排列得到矩阵C,利用维特比算法计算矩阵C得到有标注语料中的测试语料的标注结果。其它步骤及参数与具体实施方式一至八之一相同。
具体实施方式十:本实施方式与具体实施方式一至九之一不同的是:步骤四中重复步骤二和步骤三的次数达到最大值60~90次。其它步骤及参数与具体实施方式一至九之一相同。