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

一种基于主动学习的中文电子病历命名实体识别方法

2022-12-07 03:24:59 来源:中国专利 TAG:


1.本发明属于文本标注领域,具体涉及一种基于主动学习的中文电子病历命名实体识别方法。


背景技术:

2.随着医疗领域检测技术和疾病诊断方式的发展,医生们越来越多地使用电子文档记录病人的相关信息以及疾病的各项表征数据。因此产生了大量的电子病历文本,如何有效地从大量电子病历文本数据中抽取出有效信息,从而使得医护人员能够方便快捷地使用医疗数据分析系统,使现在人工智能在医疗领域面临的问题。面对信息量庞大的电子病历文本信息,医生必须快速有效地提取出对于病情诊断来说最为有效的信息,例如,疾病名称、发病的部位、对应的症状等内容。但是在医疗电子报告中通常会包含一些相关度较低的信息,所以开发有关技术帮助医生们快速地排除无关信息的干扰以及抽取有效信息是十分必要的。
3.其中,中文电子病历的命名实体识别工作是医疗信息处理的上游工作。命名实体识别是指识别出文本中具有特定意义的实体。但是经过标注的中文电子病历资源目前十分稀缺,如何获得有效的、高质量的标注数据成为了急需解决的问题。主动学习是机器学习的一个子领域,主动学习的思想是通过未标注数据基于某一种筛选策略有选择地选取样本进行人工标注,从而达到减少人工标注工作量,同时最大限度的提升模型表现。现有的广泛使用的主动学习策略大致可分为一下几种:
4.(1)基于不确定性的主动学习策略:不确定性抽样可以用于识别当前机器学习模型中的决策边界附近的未标记样本。这里信息最丰富的例子是分类器最不确定的例子。模型最不确定性的样本可能是在分类边界附近的数据。而我们模型学习的算法将通过观察这些分类最困难的样本来获得有关类边界的更多的信息。
5.(2)基于代表性的主动学习策略:代表性抽样是从数据的分布考虑的常用策略。算法根据数据分布确保查询的样本能够覆盖整个数据分布以保证标注数据的多样性。
6.然而,基于不确定性的主动学习策略有一个非常强的假设就是所有样本独立同分布,现实世界中并不总是如此。基于代表性的主动学习策略相比于基于不确定性的主动学习策略能够更有效的选择具有不同特征的样本,但是却并不能有效识别对于模型来说信息量最丰富的样本;并且在中文电子病历命名实体识别这一场景下,对于句子级准确率有着相当高的要求。


技术实现要素:

7.为解决上述技术问题,本发明提出一种基于主动学习的中文电子病历命名实体识别方法,包括:
8.将待识别的中文电子病历文本输入训练好的命名实体识别模型的主网络进行识别,并得到识别结果;
9.所述命名实体识别模型包括:主网络和子网络;
10.所述命名实体识别模型的训练过程包括:
11.s1:获取未标记的中文电子病历文本,从中选取部分进行人工标注,以4:1的比例划分训练集和验证集;
12.s2:将训练集中的文本输入命名实体识别模型的主网络,对主网络进行训练,根据训练完成后的主网络在验证集上的识别结果获得f1值,保存f1最大的模型参数,并固定主网络的参数;
13.s3:计算训练集中的文本的token的交叉熵损失;
14.s4:将文本的token的交叉熵损失作为训练集和验证集的新标签,将带交叉熵损失标签的训练集输入命名实体识别模型的子网络,训练子网络,根据训练完成后的子网络在验证集上的损失,保存验证集上损失最小的子网络模型的参数,并固定子网络的参数;
15.s5:将未标注的文本输入固定参数后的命名实体识别模型的子网络,得到文本每个token的损失预测值,选取文本损失预测值最大的文本,将文本损失预测值的文本进行标注,并加入训练集和验证集,重复上述过程,直到命名实体识别模型的主网络在验证集上的f1值达到模型的预设条件,完成模型的训练。
16.优选的,将待识别的中文电子病历文本输入训练好的命名实体识别模型进行识别,得到识别结果,具体包括:
17.步骤一:将待识别的中文电子病历文本进行文本划分,得到文本长度小于等于256,若文本长度小于256的序列用padding的方式补齐;
18.步骤二:将划分好的文本进行词编码(token embedding)、句子编码(sentence embedding)、位置编码(position embedding);
19.步骤三:将编码后的文本输入到命名实体识别模型中,得到命名实体识别模型主网络的输出,进行维特比解码,得到最终识别结果。
20.优选的,所述命名实体识别模型主网络结构为bert bilstm crf,所述子网络结构为bert bilstm linear,其中bert lstm的权重与主网络共享。
21.优选的,其特征在于,对主网络进行训练,具体包括:
22.将训练集中的文本输入主网络的bert层进行文本划分,将划分后的文本通过bilstm层进行编码处理,得到文本中每个单词的编码向量,将文本中每个单词的编码向量输入crf层,得到文本中所有单词对应的预测标签,并计算文本中所有单词的预测标签得分,根据预测标签得分采用softmax计算正确标签文本的概率,并最大化正确标签文本的概率,根据最大化后的正确标签文本的概率解码文本中每个单词的编码向量,得到最优的文本序列,将输出最优序列下的主网络作为训练得到的最优主网络。
23.进一步的,计算文本中单词的预测标签得分,表示为:
[0024][0025]
其中,s(x,y)表示文本中单词的预测标签得分,x表示文本序列,y表示预测的标签序列,n为序列长度,表示输入序列中第i个字符预测为第yi个标签得分,a表示转移矩
阵。
[0026]
进一步的,根据预测标签得分采用softmax计算正确标签文本的概率,并最大化正确标签文本的概率,表示为:
[0027][0028]
其中,p(y|x)表示正确标签文本的概率,s(x,y)表示示文本中单词的预测标签得分,s(x,y

)表示正确标签得分,表示所有可能标签得分指数和,x表示文本序列,y表示预测的标签序列,y
x
表示所有可能的标签序列集合,y

表示所有可能的标签序列集合中的标签序列。
[0029]
优选的,根据训练完成后的主网络在验证集上的识别结果获得f1值,表示为:
[0030][0031]
其中,c表示实体类别总数,f
1k
表示第k个实体的f1值。
[0032]
优选的,计算文本的token的交叉熵损失,表示为:
[0033][0034]
其中,ti为一个样本中第i个token的交叉熵损失,y
ij
表示第i个token是否属于第j类,若是则为1,不是则等于0,q
ij
表示第i个token属于第j个类别的概率,p表示bilstm的输出矩阵,c为标签数量,p
i,j
表示bilstm在第i个token的第j个维度上的输出,e表示自然底数。
[0035]
优选的,子网络的训练,表示为:
[0036][0037]
其中,l
sub
表示子网络的损失,s表示句子长度,b表示一个训练batch的大小,t
ij
表示一个batch中第j个样本中第i个token的交叉熵损失,表示子网络对一个batch中第j个样本中第i个token损失的预测值。
[0038]
本发明的有益效果:通过让模型预测自己的损失,从而找到能让自己改变最大的样本,模型不关心具体的不确定性度或者样本的差异性,只关心自己预测值与真实标签的差异,同时为了满足中文电子病历这一场景下对于句子级的命名实体识别准确率的高要求,在采样策略上调整为一个句子中所有token损失中最大的值进行筛选,因为在句子级准确率评估上,任意一个token预测错误都会被划分到错误预测,类似于补齐最后一块短板的思想,将token损失最大的值做为该样本的损失值进行排序筛选。
附图说明
[0039]
图1为本发明的命名实体识别模型训练过程流程图;
[0040]
图2为本发明模型结构示意图。
具体实施方式
[0041]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]
一种基于主动学习的中文电子病历命名实体识别方法,包括:
[0043]
将待识别的中文电子病历文本输入训练好的命名实体识别模型的主网络进行识别,并得到识别结果;
[0044]
所述命名实体识别模型包括:主网络和子网络;
[0045]
所述命名实体识别模型的训练过程包括,如图1所示:
[0046]
s1:获取未标记的中文电子病历文本,从中选取部分进行人工标注,以4:1的比例划分训练集和验证集;
[0047]
s2:将训练集中的文本输入命名实体识别模型的主网络,对主网络进行训练,根据训练完成后的主网络在验证集上的识别结果获得f1值,保存f1最大的模型参数,并固定主网络的参数;
[0048]
s3:计算训练集中的文本的token的交叉熵损失;
[0049]
s4:将文本的token的交叉熵损失作为训练集和验证集的新标签,将带交叉熵损失标签的训练集输入命名实体识别模型的子网络,训练子网络,根据训练完成后的子网络在验证集上的损失,保存验证集上损失最小的子网络模型的参数,并固定子网络的参数;
[0050]
s5:将未标注的文本输入固定参数后的命名实体识别模型的子网络,得到文本每个token的损失预测值,选取文本损失预测值最大的文本,将文本损失预测值的文本进行标注,并加入训练集和验证集,重复上述过程,直到命名实体识别模型的主网络在验证集上的f1值达到模型的预设条件,完成模型的训练。
[0051]
对大量未标记数据预处理,因为bert模型最长只能接收512个token,所以对于长文本需要进行划分以满足bert的输入限制。句子采用标点符号进行划分,为了提升推理速度同时又保持信息的丰富度,句子输入长度均为256。在句子划分的时候首先通过标点符号确保句子的完整性,然后确保整个句子的长度小于等于256,不足的则通过padding的方式补齐。
[0052]
所述命名实体识别模型,如图2所示,包括主干网络和子网络两部分,主网络结构为bert bilstm crf,所述子网络结构为bert bilstm linear,其中bert lstm的权重与主网络共享。
[0053]
将待识别的中文电子病历文本输入训练好的命名实体识别模型进行识别,得到识别结果,具体包括:
[0054]
步骤一:将待识别的中文电子病历文本进行文本划分,得到文本长度小于等于256,若文本长度小于256的序列用padding的方式补齐;
[0055]
步骤二:将划分好的文本进行词编码(token embedding)、句子编码(sentence embedding)、位置编码(position embedding);
[0056]
步骤三:将编码后的文本输入到命名实体识别模型中,得到命名实体识别模型主网络的输出,进行维特比解码,得到最终识别结果。
[0057]
对主网络进行训练,具体包括:
[0058]
将训练集中的文本输入主网络的bert层进行文本划分,将划分后的文本通过bilstm层进行编码处理,得到文本中每个单词的编码向量,将文本中每个单词的编码向量输入crf层,得到文本中所有单词对应的预测标签,并计算文本中所有单词的预测标签得分,根据预测标签得分采用softmax计算正确标签文本的概率,并最大化正确标签文本的概率,根据最大化后的正确标签文本的概率解码文本中每个单词的编码向量,得到最优的文本序列,将输出最优序列下的主网络作为训练得到的最优主网络。
[0059]
计算文本中所有单词的预测标签得分,表示为:
[0060][0061]
其中,p∈rn×c为bilstm的输出矩阵,n为序列长度,c为标签数量,表示输入序列中第i个字符预测为第yi个标签得分,a表示转移矩阵,a∈r
c 2
×
c 2
,a
ij
表示从标签i转移到标签j的概率(得分)。
[0062]
根据预测标签得分采用softmax计算正确标签文本的概率,并最大化正确标签文本的概率,表示为:
[0063][0064]
其中,s(x,y)表示正确标签得分,s(x,y

)表示预测标签得分,表示所有可能标签得分指数和。
[0065]
根据训练完成后的主网络在验证集上的识别结果获得f1值,表示为:
[0066][0067]
其中,c表示实体类别总数,f
1k
表示第k个实体的f1值。
[0068]
计算文本的token的交叉熵损失,表示为:
[0069][0070]
其中,ti为一个样本中第i个token的交叉熵损失,y
ij
表示第i个token是否属于第j类,若是则为1,不是则等于0,q
ij
表示第i个token属于第j个类别的概率,p∈rn×c为bilstm的输出矩阵,n为序列长度,c为标签数量,p
i,j
表示bilstm在第i个token的第j个维度上的输出。
[0071]
用子网络预测文本数据的损失,对于每个样本得到句子中每个token的损失预测值选取其中最大的一个损失值作为该样本的筛选依据l
irank
=max(ti),然后将所有被预测样本的l
irank
值进行降序排序,选取最大的top-k个,将文本损失预
测值的文本进行标注,并加入训练集和验证集,重复训练主网络和子网络直到主网络的预测指标满足预设条件。
[0072]
子网络的训练,子网络的线性层部分设置学习率为1e-3,优化器采用adamw,同时固定主网络的参数,也就是只更新线性层部分,表示为:
[0073][0074]
其中,l
sub
表示子网络的损失,s表示句子长度也即是token的个数,b表示一个训练batch的大小,ti为一个样本中第i个token的交叉熵损失,为子网络对一个句子中第i个token损失的预测值。
[0075]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献