一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于融合注意力的医疗命名实体识别建模方法与流程

2021-10-24 07:00:00 来源:中国专利 TAG:自然语言 建模 注意力 实体 命名


1.本发明涉及自然语言处理技术领域,特别是一种基于融合注意力的医疗命名实体识别建模方法。


背景技术:

2.医学信息化的不断推进导致医疗领域的海量数据呈爆发式增长,数据形式也愈发多种多样,其包含着大量有用信息。医疗数据来源广泛,其主要来自医学网站、医院电子病历以及医学书籍等。医疗知识图谱以其完整的一套准则规范着从知识获取到知识更新的整个细化流程,以便海量医疗知识能被高效地管理与应用。对于医疗知识图谱的构建,从海量医疗数据中准确地进行医疗命名实体识别为其奠定了重要基础。通过医疗命名实体识别对具体特设类型的医疗实体进行抽取,譬如“血常规”属于检查项目类型的实体,“支气管炎”属于疾病类型的实体,该任务也被称为医疗实体抽取。
3.命名实体识别是知识抽取的一项基本任务,其通常被视为序列标注任务,用于预测实体边界以及实体类别标签。当前,命名实体识别方法主要为基于深度学习的方法。通过单向长短时记忆网络(long short

term memory,lstm)进行命名实体识别标志着第一次将神经网络应用于命名实体识别。通过使用卷积神经网络(convolutional neural network,cnn)与条件随机场(conditional random field,crf)组合的cnn

crf取得了优异的识别效果。通过利用基于字符的cnn可增强cnn

crf模型的性能。目前中文命名实体识别领域中,lstm

crf的体系结构成为主流,被大量研究所采用。手动设计(hand

crafted)的字符特征、基于字符的cnn以及基于字符的lstm等被用于表示字符特征。
4.字符序列标注为中文命名实体识别的主要方法。通过比较命名实体识别任务中基于词语和基于字符的统计方法,结果表明基于字符的方法相对更优。针对如何在中文命名实体识别任务中更好地利用词语信息一直受到研究者的广泛关注,例如将分词信息用作命名实体识别的特征,通过对偶分解对分词与命名实体识别进行联合,以及多任务学习等。
5.外部信息资源被用于辅助命名实体识别,特别是词典被广泛地应用。例如利用词语级的语言模型以增强命名实体识别的训练来对大型原始文本执行多任务学习,通过预训练字符级的语言模型以增强词语表示,以及通过多任务学习对跨领域和跨语言的知识进行挖掘等。


技术实现要素:

6.本发明的目的是提供一种基于融合注意力的医疗命名实体识别建模方法。
7.实现本发明目的的技术方案如下:
8.基于融合注意力的医疗命名实体识别建模方法,包括:
9.步骤1:将医疗文本语句s进行中文分词并索引:将医疗文本语句s与词典进行匹配得到词语序列w1,w2,

,wn,wi为词语序列中第i个词语,i=1,2,

,n;第i个词语的第k个字符以t(i,k)进行索引,k为字符在词语中所处位置;
10.所述医疗文本语句s=c1,c2,

,cm,cj为医疗文本语句s的第j个字符,j=1,2,

,m;
11.索引以b作为开始且以e作为结束的词语通过进行表示,其中b表示词语开始字符的索引,e表示词语结束字符的索引;
12.步骤2:利用前向lstm和反向lstm通过拼接得到bi

lstm模型;
13.所述前向lstm的为:
[0014][0015][0016][0017]
其中,和分别为输入门、遗忘门和输出门;为新的候选细胞信息;wct和bc分别为要学习的模型权重参数和偏置项;σ为sigmoid函数;

为哈达玛乘积;
[0018]
为字符cj的嵌入表示,ec表示字符嵌入查询表;
[0019]
为字符cj对应的隐藏状态,为字符cj对应的字符细胞状态;为前一字符cj
‑1对应的隐藏状态,为前一字符cj
‑1对应的字符细胞状态;
[0020]
引入词语信息后的字符细胞状态由以下步骤得到:
[0021][0022][0023][0024]
其中,和为和经过归一化之后得到;
[0025]
为引入的附加门结构,用于控制所有以索引为e的字符结尾的词语细胞对尾字符细胞的贡献,wlt和bl分别为要学习的模型权重参数和偏置项;
[0026]
词语细胞状态由以下步骤得到:
[0027]
[0028][0029]
其中,为输入门,为遗忘门;为新的候选词语细胞信息;wwt和bw分别为要学习的模型权重参数和偏置项;为词语首字符对应的隐藏状态;
[0030]
为词语的嵌入表示,ew表示由步骤1所述词典转化得到的词嵌入查询表;
[0031]
反向lstm与前向lstm类同;
[0032]
将上述方法分别用于医疗文本语句s,得到和两组向量,然后将两组向量进行拼接,s中每个字符对应的最终隐藏向量计算公式如下:
[0033][0034]
步骤3:通过注意力机制给步骤2的输出分配与其对应的权重αtj,特征向量以及与其对应的权重αtj进行加权求和后得到新的输出向量ct,具体为:
[0035][0036]
特征向量对应的权重αtj由以下步骤得到:
[0037][0038][0039]
其中,etj用于度量第j个源端字符与第t个目标端字符的匹配程度;st
‑1为第t时刻隐藏层状态;wa和ua为权重矩阵;
[0040]
步骤4:通过条件随机场crf对步骤3输出的特征向量c={c1,c2,

,cm}进行解码,得到输入医疗文本语句s的医疗实体类型的标注,具体为:
[0041]
p(y|c)=crf(c,y);
[0042]
其中,y为输入医疗文本语句s所有可能的输出标签序列,p(y|c)为可能的输出标签序列y的条件概率;
[0043]
预测时,通过动态规划的维特比算法(viterbi algorithm)在输入序列上找到得分最高的标注序列,得到输入医疗文本语句s的医疗实体类型的标注y*,
[0044]
y*=argmaxp(y|c)。
[0045]
与现有技术相比,本发明的有益效果为:
[0046]
一、利用词语信息使得医疗命名实体识别准确率得以提升。本发明的输入在字符序列的基础
[0047]
上加入了其在词典中匹配到的词语,通过门结构动态控制为模型提供更多指导,从而从医疗语料中选择出最相关的字符和词语。相较于基于字符的方法,多粒度信息得以被该模型显式地运用,以获得更好的识别性能。
[0048]
二、引入注意力机制,使得模型重点关注有效信息,从而弥补传统bi

lstm

crf模型虽考虑
[0049]
了上下文信息,却忽略了不同字符和词语在句子中重要性不同的情况。
附图说明
[0050]
图1为医疗命名实体识别模型架构示意图。
[0051]
图2为使用注意力机制的encoder

decoder示意图。
[0052]
图3为建模方法中注意力机制示意图。
具体实施方式
[0053]
为了利用词语信息使得医疗命名实体识别准确率得以提升,并避免或减少因为医学专业术语存在一定的特殊性导致出现歧义而造成未登录词的识别错误,同时弥补传统bi

lstm

crf模型虽考虑了上下文信息,却忽略了不同字符和词语在句子中重要性不同的情况,本发明提出了一种基于新词发现且融合注意力机制的医疗命名实体识别方法ng

bac,模型架构如图1所示。该模型首先通过n

grams算法从医疗语料中获取新词来构建一个医疗相关的外部词典;将潜在的词语信息集成到基于字符的模型中作为扩展,通过门结构动态地将信息从不同路径路由到每个字符;通过引入注意力机制为bi

lstm层输出分配不同权重来提高输出的准确性;最后通过条件随机场crf进行序列标注。
[0054]
具体实施步骤如下所示:
[0055]
步骤1:通过基于n

grams模型的新词发现算法提取新词,主要依据凝固度和词语频数两个指标:
[0056]
(1)凝固度:表示词语片段间紧密程度,通常用互信息来度量;
[0057]
(2)词语频数:表示词语在语料中出现的次数。
[0058]
不同于只考虑相邻字凝固度的方法,本发明方法同时考虑语料中多字的内部凝固度,通过n

grams对语料进行切分,并计算其内部凝固度,以3字为例的字符串内部凝固度计算公式如下:
[0059][0060]
其中,a、b、c是字符串中相邻的三个字符;p(a)、p(b)、p(c)代表其单独出现的频率;p(ab)、p(bc)、p(abc)代表其组成词语后出现的频率;取其中凝固度的最小值作为整个字符串的内部凝固度。
[0061]
新词发现即为提取满足凝固度阈值以及词语频数两个指标的词语,以4

grams为例,算法执行步骤如下:
[0062]
步骤1.1:设定n为4字(即为4

grams)来对句子进行切分,统计2

grams、3

grams和4

grams,计算其内部凝固度;
[0063]
步骤1.2:设定不同的阈值,将其设定为5的倍数,若n等于2则设定的阈值为5,若n等于3则设定的阈值为25,若n等于4则设定的阈值为125;
[0064]
步骤1.3:生成集合g对内部凝固度高于阈值的片段进行保留;
[0065]
步骤1.4:依据步骤1.1对grams的设定,粗糙地切分语料,切分时应遵循只要集合g中存在一个片段,那么该片段将不再被切分,并对其频率进行计算;
[0066]
步骤1.5:经步骤1.4后,因其“宁放过,不切错”的原则,需要回溯检查;当被切分出
的词语字数小于等于4字时,则判断其是否在集合g中,存在则保留,反之予以删除;当其字数大于4字时,则检测其每个4字片段是否在集合g中,存在则保留,反之予以删除;
[0067]
提取新词后,与jieba分词内置词典进行对比,将对比筛选后的新词进行人工筛查,进而确定最终的词典。
[0068]
本发明在利用词语信息的基础上又引入了新词发现来避免或减少由于未登录词而导致的错误。因为专业术语存在一定的特殊性,对于特殊领域的命名实体识别任务,会因为出现歧义而造成未登录词的识别错误。例如在“支气管扩张”中,由于“气管”属于生活领域中的一种常用工具而被错误地识别出来,此类错误在医疗领域尤为显著。本发明通过n

grams算法从医疗语料中获得新词来辅助分词算法进行分词操作,然后将分词后得到的结果利用word2vec来构建一个医疗相关的词典。
[0069]
步骤2:本发明将基线网络结构设定为bi

lstm作为基础,引入了词语信息来提高医疗命名实体识别的准确率。
[0070]
与传统基于字符的模型不同,本发明方法在字符序列c1,c2,

,cm的基础上输入该字符序列的所有子序列在词典中匹配到的词语对其进行补充,该词典由步骤1提到的基于n

grams模型的新词发现算法所确定。也可以使用其它词典,例如jieba分词内置词典。
[0071]
形式上,通过s=c1,c2,

,cm对输入的句子进行表示,cj代表输入序列的第j个字符。
[0072]
对于本发明方法,输入的句子s也可看作一个词语序列:s=w1,w2,

,wn,通过对输入句进行中文分词得到该词语序列,序列中第i个词语即为wi。
[0073]
索引以b作为开始且以e作为结束的子序列通过进行表示,如图1所示,“支气管扩张”中表示“支气管”,表示“扩张”。
[0074]
特定词语i的特定字符k以t(i,k)进行索引,如图1所示,如果该句被分割为“支气管扩张”,那么t(2,1)=4(扩),t(1,3)=3(管)。
[0075]
步骤3:通过引入门控机制,lstm模型相较于传统循环神经网络使其神经元增加了遗忘功能,可用于避免梯度消失现象的出现,本发明方法利用前向lstm和反向lstm通过拼接得到的bi

lstm模型,以便更好地获取上下文信息。
[0076]
以前向lstm为例,算法执行步骤如下:
[0077]
本发明方法的基线模型是基于字符的模型,输入模型时,每个字符cj的嵌入表示计算公式如下:
[0078][0079]
其中,ec表示字符嵌入查询表;
[0080]
基线模型的基本循环结构由字符细胞状态和每个字符cj对应的隐藏状态构造而成,其中用于记录从句首到字符cj的循环信息流,用于crf层进行序列标注;
[0081]
lstm中主要计算公式如下所示:
[0082][0083][0084][0085]
其中,和分别代表输入门、遗忘门和输出门;wct和bc为模型参数;σ代表sigmoid函数;

为哈达玛乘积。
[0086]
与基于字符的模型不同,本发明方法将句子与词典进行匹配得到的子序列引入了对细胞状态的计算,输入模型时,每个子序列的嵌入表示计算公式如下:
[0087][0088]
其中,ew表示词嵌入查询表。
[0089]
词语细胞用于表示从句首开始的循环状态,由于只在字符级别进行标注,因此此处没有用于词语细胞的输出门,的计算公式如下:
[0090][0091][0092]
其中,代表输入门,代表遗忘门。
[0093]
引入词语细胞后,流入每个的信息流有了更多的循环路径,如图1中输入的“支气管扩张”所示,的输入源包括(管),(气管)以及(支气管)。
[0094]
本发明方法将所有以索引为e的字符结尾的连接到了细胞中,并引入一个附加的门结构来控制每个子序列细胞对的贡献,计算公式如下:
[0095][0096]
因此,引入词语信息后模型的细胞状态计算公式如下:
[0097][0098]
其中,和经过归一化之后得到和计算公式如下:
[0099]
[0100][0101]
引入词语信息后,隐藏向量仍同基于字符的模型进行计算。
[0102]
在模型训练期间,损失值会反向传播到参数,不断优化参数,从而使模型在标注期间动态地专注于更相关的词。
[0103]
bi

lstm层将上述方法以前向和反向的顺序应用于每条语料,得到和两组向量,然后将两组向量进行拼接,语料中每个字符对应的最终隐藏向量计算公式如下:
[0104][0105]
步骤4:如图2所示,本发明方法引入注意力机制,模拟人类对于关注焦点的处理方式,让模型忽略无用信息,专注于输入医疗语料中需重点关注的目标信息以及与当前输出相关的信息,以提高输出效率和质量;
[0106]
如图3所示,与bi

lstm层的输出相对应的权重通过注意力机制进行分配,将前序模型输出的各特征向量以及与其对应的权重αtj进行加权求和后得到新的输出向量ct,计算公式如下:
[0107][0108]
各特征向量对应的权重αtj计算公式如下:
[0109][0110][0111]
其中,etj用于度量第j个源端字符与第t个目标端字符的匹配程度;
[0112]
将注意力机制引入传统decoder中后,encoder不必再以固定长度对所有信息进行编码,通过这种方式,decoder可对标注序列中传播的信息进行选择。
[0113]
步骤5:最后使用标准crf进行序列标注,crf在标注过程中能够利用标注之间的依赖信息预测标注之间的关系,进而得到全局最优的标注序列;
[0114]
通过条件随机场crf对步骤4输出的特征向量c={c1,c2,

,cm}进行解码,得到输入医疗文本语句s的医疗实体类型的标注,具体为:
[0115]
p(y|c)=crf(c,y);
[0116]
其中,y为输入医疗文本语句s所有可能的输出标签序列,p(y|c)为可能的输出标签序列y的条件概率;
[0117]
预测时,通过动态规划的维特比算法(viterbi algorithm)在输入序列上找到得分最高的标注序列,得到输入医疗文本语句s的医疗实体类型的标注y*,计算公式如下:
[0118]
y*=argmax p(y|c)。
[0119]
为验证本发明的有效性,本发明在ccks2017

task2公开数据集的1200份带有人工
标注的电子病历上与3个命名实体识别任务中的经典模型进行了对比实验,3个对比模型如下:
[0120]
(1)lstm

crf:在单向长短期记忆网络中引入了条件随机场;
[0121]
(2)bi

lstm

crf:在双向长短期记忆网络中引入了条件随机场;
[0122]
(3)lattice

lstm:在基于字符的lstm

crf中引入了基于词语的单元。
[0123]
评价指标采用精确率(precision)、召回率(recall)以及f1值(f1

score)来进行评价,计算公式如下:
[0124][0125][0126][0127]
依据期望输出以及模型实际输出,可将结果分为tp(true positive)、fp(false positive)、tn(true negative)以及fn(false negative)。在命名实体识别任务中,其含义如下所示:
[0128]
(1)tp:将实体正确识别为实体的数量;
[0129]
(2)fp:将非实体错误识别为实体的数量;
[0130]
(3)tn:将非实体正确判断为非实体的数量;
[0131]
(4)fn:将实体错误判断为非实体的数量。
[0132]
精确率表示所有被识别为实体的样本中真正为实体的比率,即查准率。召回率表示样本中的所有实体被正确识别出来的比率,即查全率。综合考虑以上两个评价指标,对其进行加权调和平均则得到f1值,以避免两者出现相互制约的情况。
[0133]
实验结果如表1所示:
[0134]
表1模型对比实验结果
[0135][0136]
实验结果表明,本发明提出的ng

bac模型在ccks2017

task2数据集中表现优异,精确率达到89.86%,召回率达到92.05%,f1值达到90.94%,与命名实体识别任务中的经典模型相比,有了一定的提升。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜