基于注意力机制的中文电子病历命名实体识别方法及系统与流程

文档序号:20067118发布日期:2020-03-06 08:36阅读:180来源:国知局
基于注意力机制的中文电子病历命名实体识别方法及系统与流程

本发明涉及文本信息挖掘技术领域,具体地说是一种基于注意力机制的中文电子病历命名实体识别方法及系统。



背景技术:

医疗信息化的不断发展产生了大量的医疗数据,尤其是电子病历的产生,如何使用自然语言处理技术来处理电子病历,在其中提取出重要的信息服务于医生的临床决策,具有深远的研究意义,因此命名实体识别技术被提出。

目前,应用于中文电子病历命名实体识别的主要方法可以大致分为三种:基于规则和词典的方法、基于统计学习的方法以及将两种方法混合使用的方法。

其中,基于规则和词典的方法:基本思想主要是利用语言学家人工构造的规则模板,以字符串和模式进行匹配,所使用的特征主要包含方向词、中心词、统计信息、关键字、位置词等,而这些特征均依赖于词典构建的质量。基于规则与词典的方法最先被应用于命名实体的识别,但是该方法的跨领域适用性较差,而且构造规则、构建词典会需要花费大量的人力。

基于统计学习的方法:目前常被应用于命名实体识别的统计学方法有:最大熵、隐马尔科夫、条件随机场、支持向量机。这些常用的统计学方法,其共同之处在于对相应研究领域文本特征的选择要求会比较高,因此选择一些对实验结果影响显著的特征将会直接影响这些模型的识别效果;其次,由于不同领域的文本涉及到的命名实体均具有独特的特征,如何选择能够有效反映命名实体自身特有的特征集合也是一项相对复杂的任务,而这些也直接影响着模型的识别性能。

混合方法:根据目前的研究情况进一步表明,单独使用一种方法已经很难实现识别性能上的提升,因此,现在多数情况下,是将基于规则与词典的方法与基于统计学的方法进行组合使用,以期达到更好地识别效果,混合方法可以大致分为以下三种类型:

1)统计学习方法之间或内部层叠融合;

2)统计学习方法与规则、词典之间的融合,关键之处还在于两者之间融合技术的选择;

3)各类模型、算法之间的结合,将前一级模型的结果作为下一级的训练数据,并用这些训练数据对模型进行训练,得到下一级模型。

在混合方法中,关键之处在于如何有效地将这两种方法进行结合,而这也将直接影响到混合之后识别的性能。

以上所介绍的方法中,基于规则与字典的方法在识别效果中相对来说是比较好的,但是规则的构造、词典的构建均需要大量的人力,且构建的规则与词典也存在一定的领域局限性,普适性不强,限制了其广泛的使用;其次,基于单一的统计学方法又很难进一步实现识别性能的提升,因此,目前基于混合方法的命名体识别是主流。但是如何基于神经网络和注意力机制实现更加准确便捷地识别出电子病历中的命名实体是目前现有技术中急需解决的问题。

专利号为cn109871538a的专利文献公开了一种中文电子病历命名实体识别方法,包括步骤:1)构建普通词汇字典;2)简约词性标注;3)构建文本和词性向量映射表;4)训练命名实体的预测模型;5)命名实体的标签预测。该技术方案通过加入词性特征,来提高命名实体和普通词汇的边界可区分性,从而提高命名实体边界准确,但是不能基于神经网络和注意力机制实现更加准确便捷地识别出电子病历中的命名实体。

专利号为cn110032739a的专利文献公开了一种中文电子病历命名实体抽取方法及系统。该方法包括:通过字符嵌入层将输入语句中的每个字映射为一个向量;采用lstm模型输入字符序列,获得隐表示向量;将每个字作为以该字为结尾的语义单位的最后一个字,进行语义分割,得到该字对应的所有网格编码;将每个字的所有网格编码进行线性组合,得到最后的每个字符的向量,其中,线性组合中的权重由自注意力机制给出;采用深度残差网络作为输出解码层,解码出命名实体链。但是该技术方案不能基于神经网络和注意力机制实现更加准确便捷地识别出电子病历中的命名实体。



技术实现要素:

本发明的技术任务是提供一种基于注意力机制的中文电子病历命名实体识别方法及系统,来解决如何基于神经网络和注意力机制实现更加准确便捷地识别出电子病历中的命名实体的问题。

本发明的技术任务是按以下方式实现的,基于注意力机制的中文电子病历命名实体识别方法,该方法步骤如下:

s1、基于词向量建模的方法,获取中文词语词性的词向量和词性向量表示并将词向量和词性向量拼接;

s2、将词向量与词性向量拼接后输入double-lstms神经网络模型进行特征提取,以获取更加准确的隐层向量表示;

s3、基于double-lstms神经网络,增加一层注意力层,为文本中相对重要的信息赋予更高的权重,突出其作用;

s4、基于注意力层获得的权重,将权值赋予对应的正向编码所获得的隐层向量与反向编码所获得的隐层向量,并分别将正向编码所获得的隐层向量与反向编码所获得的隐层向量进行拼接,作为特征向量;

s5、基于条件随机场模型(crfs)进行序列标注,实现命名实体的识别任务。

作为优选,所述步骤s1中获取中文词语词性的词向量和词性向量表示并将词向量和词性向量拼接的具体步骤如下:

s101、使用word2vec模型的skip-gram(skip-gram本质上是一个神经网络模型)方法生成词向量wi;

s102、使用word2vec模型的skip-gram方法生成词性向量wi;

s103、将得到的词向量wi与词性向量wi进行拼接,得到向量[wi,pi],向量[wi,pi]将作为double-lstms层的输入。

更优地,所述步骤s101中使用word2vec模型的skip-gram方法生成词向量wi的具体步骤如下:

s10101、skip-gram开始时通过输入层输入一个one-hot的表示形式,即对句子序列中的词语按照顺序进行排列,每个词语对应的one-hot就是将该词出现的位置置实数值1,其余各个位置均置0,组成一个长度为句子序列长度的向量;

s10102、输入层之后为隐含层,隐含层的节点个数自行设置,设置的节点个数就是所生成词向量的维度;其中,隐含层用于对相对大的向量维度进行降维处理,在降维的过程中,起到关键作用的就是输入层与隐含层的权重矩阵;

s10103、在输入层,神经元的节点个数为文本中词语的总数,在隐含层和输入层之间存在一个参数矩阵,词向量在经过矩阵计算后进行softmax归一化,重新形成一个向量,即生成了一个文本的词向量。

作为优选,所述步骤s2中隐层向量是使用两个lstm分别对文本进行正向、反向编码,形成double-lstms层,正向编码所获得的每个词的隐层向量表示为hi,反向编码所获得的每个词的隐层向量表示为hi';

其中,正向编码所获得的每个词的隐层向量表示为hi具体的数学表达式为:

ft=σ(wf·[ht-1,xt]+bf);

it=σ(wi·[ht-1,xt]+bi);

ot=σ(wo·[ht-1,xt]+bo);

ht=ot*tanh(ct);

其中,ft、it、ct分别表示标准lstm结构中的遗忘门、输入门、临时单元状态、单元状态;ht与ot分别表示标准lstm的隐层状态与输出门,也是标准lstm的两个输出;wf、wi、wc、wo分别表示遗忘门、输入门、临时单元状态、输出门对应的权重矩阵;bf、bi、bc、bo分别表示遗忘门、输入门、临时单元状态、输出门对应的偏置项;*表示按元素乘;σ表示sigmoid函数;tanh函数表示激活函数;sigmoid函数与tanh函数的数学表达式为:

其中,反向编码所获得的每个词的隐层向量表示为h'i的计算方式同正向编码所获得的每个词的隐层向量表示为hi。

作为优选,所述步骤s3中注意力层的构建步骤具体如下:

s301、将每个词对应的隐层向量ht通过一个单层的mlp神经网络线性转换成ut进行隐含表示,具体的数学表达式为:

ut=tanh(wwht+bw);

其中,ww表示权重矩阵;bw表示偏移矩阵;

s302、同时随机初始化一个词语级的上下文向量uw;

s303、在神经网络训练的过程中,向量ut与上下文向量uw被共同学习得到,计算经过学习得到的向量ut与上下文向量uw之间的相似度,将得到的相似度值使用一个softmax函数对其进行归一化;

s304、归一化之后的值就作为相应词的重要性权重,具体的数学表达式为:

其中,t表示向量的转置;uw表示上下文向量;t表示当前时刻;表示正向注意力权重集合;

其中,反向注意力权重集合的计算方法同正向注意力权重集合

作为优选,所述步骤s4中隐层向量进行拼接的具体步骤如下:

s401,将每一个隐层向量分别与其对应的注意力权重进行相乘,得到其中,hi表示正向隐层向量;hi'表示反向隐层向量;表示正向注意力权重集合;表示反向注意力权重集合;i表示当前词语;

s402、将得到的正反向加权隐层向量进行拼接,得到向量并将该向量作为特征向量输入crf分类层进行命名实体的识别。

作为优选,所述步骤s5中命名实体主要包括症状和体征、检查和检验、疾病和诊断、治疗、身体部位五类。

更优地,所述步骤s5中命名实体的识别任务实质上就是对步骤s4中得到的组合向量进行解码,通过解码计算标签得分,得到标签序列的概率并找到概率最大的序列,该概率最大的序列就被作为命名实体识别的结果。

更优地,所述解码是使用条件随机场(crfs),根据crfs定义标签序列的全局得分c,具体为:

其中,t表示一个5*5的转换矩阵,且包含了标签决策内的线性依赖关系,后一个标签依赖于前一个标签;b,e均表示5维向量,表示某个标签作为开始和结尾的成本;y1,...,yn表示长度为n的句子中每个词可能对应的标签。

基于注意力机制的中文电子病历命名实体识别系统,该系统包括,

词向量及词性向量获取与拼接单元,用于基于词向量建模的方法,获取中文词语词性的词向量和词性向量表示并将词向量和词性向量拼接;

正反隐层向量获取单元,用于基于词向量与词性向量拼接之后,输入double-lstms神经网络模型进行特征提取;

注意力层构建单元,用于基于double-lstms神经网络构建一层注意力层,为文本中相对较重要的信息赋予更高的权重,突出其作用;

隐层向量拼接单元,用于基于注意力层获得的权重,将权值赋予对应的正向编码所获得的隐层向量与反向编码所获得的隐层向量,并分别将其进行拼接,作为特征向量;

命名实体解码单元,用于基于条件随机场模型(crfs)进行序列标注,实现命名实体的识别任务。

本发明的基于注意力机制的中文电子病历命名实体识别方法及系统具有以下优点:

(一)本发明将命名实体识别任务归纳为序列标注任务,使用神经网络提取中文电子病历中的特征,增加注意力机制,以及融合多元信息,实现中文电子病历中命名实体更加准确地识别;

(二)本发明在double-lstms层之后增加了注意力层,通过注意力层为文本中出现的命名实体赋予较高的权重,突出其在文本中的作用,这样形成特征向量用于命名实体识别,将会提高识别的性能。;

(三)基于神经网络自动提取文本特征,针对电子病历中的命名实体的识别,本发明避免了人工提取特征所耗费的大量精力,也提高了各文本领域之间的普适性;

(四)本发明使用了两个标准的lstm,构建double-lstms层,对文本进行正反向的编码,充分利用了上下文信息;

(五)本发明在标准lstm之后增加了注意力层,为命名实体学习注意力权重,增加命名实体在文本中所占的比重;

(六)拼接词向量与词性向量,丰富每个词的语义信息,获得每个词更加准确的隐层向量表示;

(七)加权之后的正反向隐层向量拼接组成的特征向量,融合上下文信息的同时,也突出了正反向隐层向量在重要性上的差异;

(八)基于条件随机场对特征向量进行解码,克服了softmax方法只能做局部选择的不足。

附图说明

下面结合附图对本发明进一步说明。

附图1为基于注意力机制的中文电子病历命名实体识别方法的基本结构图;

附图2为词向量生成原理图;

附图3为注意力层基本结构框图。

具体实施方式

参照说明书附图和具体实施例对本发明的基于注意力机制的中文电子病历命名实体识别方法及系统作以下详细地说明。

实施例1:

如附图1所示,本发明的基于注意力机制的中文电子病历命名实体识别方法,该方法步骤如下:

s1、基于词向量建模的方法,获取中文词语词性的词向量和词性向量表示并将词向量和词性向量拼接;具体步骤如下:

s101、使用word2vec模型的skip-gram方法生成词向量wi;使用word2vec模型的skip-gram方法来生成词向量,skip-gram本质上是一个神经网络模型,其基本结构包括输入层、隐含层以及输出层;具体步骤如下:

s10101、skip-gram开始时通过输入层输入一个one-hot的表示形式,即对句子序列中的词语按照顺序进行排列,每个词语对应的one-hot就是将该词出现的位置置实数值1,其余各个位置均置0,组成一个长度为句子序列长度的向量;

s10102、输入层之后为隐含层,隐含层的节点个数自行设置,设置的节点个数就是所生成词向量的维度;其中,如果句子序列相对较长时,那么每个词语对应的one-hot形式的向量维度也会较大,而且所表示的语义特征也比较稀疏,那么就需要通过隐含层对其进行降维,从而降低计算的复杂度。在降维的过程中,起到关键作用的就是输入层与隐含层的权重矩阵,假设有某文本中词汇量为1000,其中每个词语的one-hot形式的向量均为1000维,如果想要将其训练生成300维的词向量,那么隐含层的节点个数就可以设置为300,在隐含层形成一个[1000,300]的参数矩阵,根据矩阵之间的乘法,某一one-hot形式的行向量和矩阵相乘,得到的就是矩阵的某一行,这样就成功的将1000维降成了300维。本质上来讲,这个参数矩阵就对应了整个文本所对应的词向量。

s10103、在输入层,神经元的节点个数为文本中词语的总数,在隐含层和输入层之间存在一个参数矩阵,词向量在经过矩阵计算后进行softmax归一化,重新形成一个向量,即生成了一个文本的词向量。依然假设为1000,那么在隐含层与输出层之间会存在一个大小为[300,1000]的参数矩阵,词向量会在这里经过矩阵计算之后进行softmax归一化,重新形成一个1000维的向量,其实际意义就是获得了1000个维度为300的归一化向量,至此,就生成了一个文本的词向量,如附图2所示,按照词向量的生成建模方式,词性向量的生成类似于词向量。

s102、使用word2vec模型的skip-gram方法生成词性向量wi;同样步骤s10101到s10103采用word2vec中的skipgram方法得到每个词对应的词性向量wi;

s103、将得到的词向量wi与词性向量wi进行拼接,得到向量[wi,pi],向量[wi,pi]将作为double-lstms层的输入。

s2、将词向量与词性向量拼接后输入double-lstms神经网络模型进行特征提取,以获取更加准确的隐层向量表示;其中,隐层向量是使用两个lstm分别对文本进行正向、反向编码,形成double-lstms层,正向编码所获得的每个词的隐层向量表示为hi,反向编码所获得的每个词的隐层向量表示为hi';

其中,正向编码所获得的每个词的隐层向量表示为hi具体的数学表达式为:

ft=σ(wf·[ht-1,xt]+bf);

it=σ(wi·[ht-1,xt]+bi);

ot=σ(wo·[ht-1,xt]+bo);

ht=ot*tanh(ct);

其中,ft、it、ct分别表示标准lstm结构中的遗忘门、输入门、临时单元状态、单元状态;ht与ot分别表示标准lstm的隐层状态与输出门,也是标准lstm的两个输出;wf、wi、wc、wo分别表示遗忘门、输入门、临时单元状态、输出门对应的权重矩阵;bf、bi、bc、bo分别表示遗忘门、输入门、临时单元状态、输出门对应的偏置项;*表示按元素乘;σ表示sigmoid函数;tanh函数表示激活函数;sigmoid函数与tanh函数的数学表达式为:

其中,反向编码所获得的每个词的隐层向量表示为h'i的计算方式同正向编码所获得的每个词的隐层向量表示为hi。

s3、基于double-lstms神经网络,增加一层注意力层,为文本中相对重要的信息赋予更高的权重,突出其作用;使用标准的lstm对文本中的词进行编码,其默认每个词在文本中的重要性是一致的,那么单纯使用lstm编码得到的隐层向量作为特征向量输入到分类层,命名实体显然更易受到一些非相关词的影响,因此,针对这一问题,本发明在double-lstms层之后增加了注意力层,通过注意力层为文本中出现的命名实体赋予较高的权重,突出其在文本中的作用,这样形成特征向量用于命名实体识别,将会提高识别的性能。

如附图3所示,注意力层构建的具体步骤如下:

s301、将每个词对应的隐层向量ht通过一个单层的mlp神经网络线性转换成ut进行隐含表示,具体的数学表达式为:

ut=tanh(wwht+bw);

其中,ww表示权重矩阵;bw表示偏移矩阵;

s302、同时随机初始化一个词语级的上下文向量uw;

s303、在神经网络训练的过程中,向量ut与上下文向量uw被共同学习得到,计算经过学习得到的向量ut与上下文向量uw之间的相似度,将得到的相似度值使用一个softmax函数对其进行归一化;

s304、归一化之后的值就作为相应词的重要性权重,具体的数学表达式为:

其中,t表示向量的转置;uw表示上下文向量;t表示当前时刻;表示正向注意力权重集合;

其中,反向注意力权重集合的计算方法同正向注意力权重集合

s4、基于注意力层获得的权重,将权值赋予对应的正向编码所获得的隐层向量与反向编码所获得的隐层向量,并分别将正向编码所获得的隐层向量与反向编码所获得的隐层向量进行拼接,作为特征向量;其中,隐层向量进行拼接的具体步骤如下:

s401,将每一个隐层向量分别与其对应的注意力权重进行相乘,得到其中,hi表示正向隐层向量;hi'表示反向隐层向量;表示正向注意力权重集合;表示反向注意力权重集合;i表示当前词语;

s402、将得到的正反向加权隐层向量进行拼接,得到向量并将该向量作为特征向量输入crf分类层进行命名实体的识别。

其中,下标i和小标t表示不同的维度。

s5、基于条件随机场模型(crfs)进行序列标注,实现命名实体的识别任务。其中,命名实体主要包括症状和体征、检查和检验、疾病和诊断、治疗、身体部位五类。命名实体的识别任务实质上就是对步骤s4中得到的组合向量进行解码,通过解码计算标签得分,得到标签序列的概率并找到概率最大的序列,该概率最大的序列就被作为命名实体识别的结果。解码是使用条件随机场(crfs),根据crfs定义标签序列的全局得分c,具体为:

其中,t表示一个5*5的转换矩阵,且包含了标签决策内的线性依赖关系,后一个标签依赖于前一个标签;b,e均表示5维向量,表示某个标签作为开始和结尾的成本;y1,...,yn表示长度为n的句子中每个词可能对应的标签。

实施例2:

本发明的基于注意力机制的中文电子病历命名实体识别系统,该系统包括,

词向量及词性向量获取与拼接单元,用于基于词向量建模的方法,获取中文词语词性的词向量和词性向量表示并将词向量和词性向量拼接;

正反隐层向量获取单元,用于基于词向量与词性向量拼接之后,输入double-lstms神经网络模型进行特征提取;

注意力层构建单元,用于基于double-lstms神经网络构建一层注意力层,为文本中相对较重要的信息赋予更高的权重,突出其作用;

隐层向量拼接单元,用于基于注意力层获得的权重,将权值赋予对应的正向编码所获得的隐层向量与反向编码所获得的隐层向量,并分别将其进行拼接,作为特征向量;

命名实体解码单元,用于基于条件随机场模型(crfs)进行序列标注,实现命名实体的识别任务。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1