本发明涉及自然语言处理领域,特别是一种基于词典增强和相互注意力的中文医疗命名实体识别方法。
背景技术:
1、随着互联网和信息技术的飞速发展,医疗行业也进入了信息化的进程。同时,国民的健康意识不断提高,使得医疗资源不足的问题逐渐显现,医疗服务需求呈现不断增长之势,而医疗信息系统中有着大量的医学诊疗文本数据,如何合理利用这些数据为产业赋能对医疗发展具有重要意义。
2、从大量的医疗数据中提炼出有用的医学知识是医疗领域数据分析的关键,能够在辅助诊疗、疾病预诊等方面提供极大的帮助,同时能够辅助患者对自己健康状况做出合理的评估,也可以协助医疗机构针对疾病制定诊疗方案。命名实体识别是指从非结构化的文本中识别和抽取出特定类别的命名实体的过程,在很多自然语言任务中都起着至关重要的作用。由于中文医疗领域往往会产生很大的数据量,人工提取实体的方式效率低下且实时性不够,同时准确率也无从保证。
3、命名实体识别在医疗信息检索、医疗智能问答等领域都有着具体的应用。医疗诊断信息、临床病例和药物说明等数据中都具有很大的潜在价值,目前已经有很多研究在考虑如何最大限度地提取其中的知识为临床治疗和自助医疗所用。医疗文本的领域性极强,其中包含大量医学专业术语和英文缩写,常规的通用命名实体识别模型可能无法做到对于特定医学领域的识别,且在日新月异的今天考验着识别方法与时俱进的能力。本发明提出了一种基于词典增强和相互注意力的高效中文医疗命名实体识别方法,利用医疗领域的词典能够增强在医疗细分领域的识别性能,通过相互注意力网络结合词典信息,增强命名实体的识别效率。
技术实现思路
1、为了克服医疗领域相关文本中有价值信息提取困难、现有方法效率不高的问题,本发明提出了一种基于词典增强和相互注意力的中文医疗命名实体识别方法,利用了医疗领域的词典,考虑了词汇和字符之间的动态关系,提高了中文医疗领域命名实体识别的效率和准确率。
2、本发明解决该技术问题所采用的技术方案是:
3、一种基于词典增强和相互注意力的中文医疗命名实体识别方法,包括以下步骤:
4、步骤1:对医疗文本数据进行预处理,生成由汉字、英文和数字等字符构成的医疗文本数据集{s1,s2,…,si,sn},其中si={ci1,ci2,…,cij,…,cin}表示第i个医疗文本,n表示医疗文本数量,cij表示医疗文本si中的第j个字符,in表示si中的字符数量;使用医疗细分领域专有名词和短语构建一个医疗领域外部词典,定义医疗命名实体类别标签集合τ={label1,label2,…,labelt,…,labelm},其中m是标签数量;
5、步骤2:从医疗文本数据集中任意选择第i个医疗文本si作为输入文本,文本中的每个字符作为一元字符,每个字符与其相邻字符组合作为二元字符;使用word2vec算法将医疗文本si中所有一元和二元字符分别映射到一个d维词向量空间中作为一元和二元字符嵌入向量;任意选取si中的第j个字符,将第j个字符对应的一元和二元字符嵌入向量拼接作为该字符的表征向量xij=[ec(cij);eb(cij,cij+1)],其中ec(cij)和eb(cij,cij+1)分别表示用word2vec算法获取一元和二元医疗文本字符的嵌入向量;遍历医疗文本si中所有字符,计算所有字符的表征向量;
6、步骤3:在医疗文本si中任选一个医疗字符cij,在医疗领域外部词典中检索出当前医疗文本字符cij匹配到的所有词汇,并依据医疗字符在其对应词汇中所处位置将词汇分配到当前医疗字符对应的四个词集中,即b(cij)、m(cij)、e(cij)、s(cij),其中b表示字符处于对应词汇首位,m表示字符处于词汇中间位置,e表示字符处于词汇末位,s表示当前字符独立成词,同时将各词集中的词汇依据由短到长的顺序排序;
7、步骤4:使用word2vec算法将当前医疗字符cij所对应的四个词集中的词汇映射到d维向量空间,并对m词集中所有的词汇向量进行加权求和得到各词集的表征向量:
8、
9、其中,表示字符cij的m词集表征向量,ew(m(cij))表示使用word2vec算法获取字符cij的m词集中所有词汇的嵌入向量,wm表示m词集中不同位置词汇的权重;使用同样的方式分别计算出b、e、s词集的向量
10、步骤5:计算当前医疗字符cij对应的查询向量:
11、qij=xijwq
12、其中,wq表示查询向量的权重矩阵;
13、步骤6:计算当前医疗字符cij对应的b、m、e、s词集的键向量:
14、
15、和值向量:
16、
17、其中,wk和wv分别为键、值向量的权重矩阵;
18、步骤7:计算当前医疗文本字符cij和对应b、m、e、s词集间的注意力分数:
19、aij=(qij+u)τkij
20、其中,u是偏置项,τ是转置操作;
21、步骤8:计算当前医疗文本字符cij的最终表征向量:
22、θij=softmax(mask(aij))vij
23、其中,mask是掩码函数;遍历医疗文本si中所有字符,重复执行步骤3~步骤8,计算医疗文本si中的所有字符融合词汇信息后的表征向量;
24、步骤9:按照j从1到in的顺序,使用双向lstm网络计算当前医疗文本字符cij的上下文信息:
25、
26、其中
27、
28、hij=oij*tanh(cellij)
29、其中,w表示可学习的权重参数,b表示偏置项,hij表示医疗文本字符cij的隐藏状态,σ是sigmoid激活函数,iij、fij、oij分别表示输入门、遗忘门和输出门;
30、步骤10:按照j从1到in的顺序,计算cij的预测标签为labelt的概率:
31、
32、其中,labelt是从医疗命名实体类别集合τ任选的一个标签,
33、ft(yt-1,hij)=μlsl(labelt,hij,j)+γkuk(yij-1,labelt,hij,j)
34、wt是可调参数,sl(labelt,hij,j)是状态特征函数,uk(yij-1,labelt,hij,j)是状态转移函数,μl和γk是可调参数;遍历计算实体类别集合τ中所有标签的概率,选取概率最大的标签作为cij的预测标签yij;
35、步骤11:计算损失
36、
37、其中,n表示医疗文本序列的长度,表示字符cij的真实标签;
38、步骤12:利用随机梯度下降方法更新模型参数,重复步骤2~步骤12,直至loss小于指定的最小损失值后结束计算;得到医疗文本数据集中所有字符的预测标签,将标签依据bmes规则组合成医疗命名实体,作为识别结果。
39、进一步,所述步骤1中,所述医疗文本数据包括原始医学文献、诊断报告和电子病历。
40、本发明的有益效果为:针对医疗领域大量文本数据,考虑医疗细分领域的外部知识,通过相互注意力,将医疗领域外部词典与医疗文本进行有效融合,提高了医疗命名实体边界的识别准确性。
1.一种基于词典增强和相互注意力的中文医疗命名实体识别方法,其特征在于,所述方法包括以下步骤:
2.如权利要求1所述的基于词典增强和相互注意力的中文医疗命名实体识别方法,其特征在于,所述步骤1中,所述医疗文本数据包括原始医学文献、诊断报告和电子病历。