本申请涉及数字医疗技术领域,具体而言,本申请涉及一种医疗命名实体识别模型的生成方法、装置和计算机设备。
背景技术:
电子病历单中的医疗命名实体识别涉及到患者的医疗诊断过程。例如:疾病名称、临床症状、药品名称、医疗方法等具有特定意义的医疗命名实体。电子病历单由于医生书写的非规范性,以及包含大量的专业术语缩略词等,使得对于电子病历单的医疗命名实体识别的难度较大。
现有基于传统及机器学习方法进行的电子病历单的医疗命名实体识别都严重依赖训练数据的质量和规模,当训练数据的质量较差或规模有限时,则会使训练得到的医疗命名实体识别模型的识别效果较差。
技术实现要素:
本申请的主要目的为提供一种医疗命名实体识别模型的生成方法、装置和计算机设备,提高医疗命名实体识别模型的识别效果。
为了实现上述发明目的,本申请提供一种医疗命名实体识别模型的生成方法,其包括以下步骤:
获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的初始实体的原始实体;
判断所述原始实体与人工标注的医疗命名实体是否一致;
当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
优选地,所述将所述医疗命名实体嵌入所述输入语句的各个词之间的步骤,包括:
当检测到所述医疗命名实体包括多个单词时,分别计算每个单词与所述输入语句的各个词之间的相似度,根据所述相似度确定每个单词嵌入所述输入语句的每个位置对应词嵌入的平均值;其中,所述词嵌入的平均值用于评估单词嵌入所述输入语句的每个位置的合理度;
根据所述每个单词对应词嵌入的平均值确定每个单词对应嵌入的嵌入位置;
按照所述嵌入位置将各个单词嵌入所述输入语句的各个词之间。
优选地,所述根据所述上下文信息预测被遮蔽的初始实体的原始实体的步骤,包括:
根据所述上下文信息采用softmax函数对被遮蔽的所述初始实体进行预测,得到多个预测实体及各个预测实体的概率值;
将概率值最大的预测实体作为所述原始实体。
进一步地,所述判断所述原始实体与人工标注的医疗命名实体是否一致的步骤之后,还包括:
当确定所述原始实体与人工标注的医疗命名实体不一致时,获取所述原始实体与人工标注的医疗命名实体的差异信息;
根据所述差异信息调整所述自然语言生成模型的参数,对调整参数后的所述自然语言生成模型进行再次训练,直至预测的原始实体与人工标注的医疗命名实体一致。
优选地,所述将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体的步骤,包括:
在对所述自然语言生成模型的训练过程中,使用多种注意力机制计算所述目标输入语句的注意力得分,并筛选出注意力得分最高的注意力机制;
根据所述注意力得分最高的注意力机制确定所述目标输入语句的初始实体。
优选地,所述判断所述原始实体与人工标注的医疗命名实体是否一致的步骤,包括:
利用预先训练好的word2vec词向量模型将所述原始实体及所述医疗命名实体分别转换成词向量;
计算所述原始实体的词向量与所述医疗命名实体的词向量的余弦相似度;
判断所述余弦相似度是否大于预设相似度阈值;
若是,则所述原始实体与人工标注的医疗命名实体一致。
优选地,所述从所述电子病历单中提取输入语句的步骤,包括:
从所述电子病历单中提取文本信息;
对所述文本信息进行数据清洗处理,以去除标点符号或特殊字符,得到所述输入语句。
本申请还提供一种医疗命名实体识别模型的生成装置,其包括:
获取模块,用于获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
嵌入模块,用于将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
训练模块,用于将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
预测模块,用于随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的初始实体的原始实体;
判断模块,用于判断所述原始实体与人工标注的医疗命名实体是否一致;
确定模块,用于当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本申请所提供的一种医疗命名实体识别模型的生成方法、装置、计算机设备和计算机可读存储介质,通过获取电子病历单,从电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;将医疗命名实体嵌入输入语句的各个词之间,得到目标输入语句;然后将目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定目标输入语句的初始实体;随机选用遮蔽符号遮蔽目标输入语句中预定比例的初始实体,并根据上下文信息预测被遮蔽的初始实体的原始实体;判断原始实体与人工标注的医疗命名实体是否一致;当确定原始实体与人工标注的医疗命名实体一致时,完成自然语言生成模型的训练,得到医疗命名实体识别模型。由于将医疗命名实体嵌入输入语句的各个词之间,同时利用了句子和实体对自然语言生成模型进行训练,无需海量的训练数据即可完成训练;并随机选用遮蔽符号遮蔽目标输入语句中预定比例的初始实体,对初始实体的原始实体进行判断,提高了训练得到的医疗命名实体识别模型对医疗命名实体的识别准确性。
附图说明
图1为本申请一实施例的医疗命名实体识别模型的生成方法的流程示意图;
图2为本申请一实施例的医疗命名实体识别模型的生成装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请提出一种医疗命名实体识别模型的生成方法,其中,该医疗命名实体识别模型是指识别文本中特定的实体,例如:人名、地名等实体。在电子病历领域,旨在自动识别和分类病例中医学实体,例如疾病领域中的感冒、高血压、糖尿病等,或是症状领域中的发烧、头痛等治疗手段等。该医疗命名实体识别模型可以是一个深度学习网络模型,可以基于电子病历单以及预先确定的医疗实体标签进行训练后得到,能够通过对每个输入的电子病历单(文本数据)进行特征提取后,输出与输入的文本数据相对应的命名实体识别结果,例如该文本数据中所包含的人名、地名、检查检验名、症状体征特点、疾病诊断结果等等。本申请提供的医疗命名实体识别模型,由于在训练时将医疗命名实体嵌入输入语句的各个词之间,同时随机选用了遮蔽符号遮蔽目标输入语句中预定比例的初始实体,对初始实体的原始实体进行判断,提高了训练得到的医疗命名实体识别模型对医疗命名实体的识别准确性,使得医疗命名实体识别模型能有效地从待识别电子病历单中识别不连续、并列的医疗命名实体,提高了医疗命名实体识别的准确性。
其中一实施例中,该医疗命名实体识别模型的生成方法包括如下步骤:
s11、获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
s12、将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
s13、将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
s14、随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的所述初始实体的原始实体;
s15、判断所述原始实体与人工标注的医疗命名实体是否一致;
s16、当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
如上述步骤s11所述,电子病历单为患者在看病过程中,医生为患者开具的疾病诊断书,电子病历单中可包含患者的姓名、身份证号、疾病名称、医院名称等等。其中,疾病名称也被称为医疗命名实体。例如,心脏病、心血管疾病、肺结核、支气管哮喘等等。
所述输入语句为电子病历单中连续的文本信息,输入语句中包括医疗命名实体,但该医疗命名实体并未标注,自然语言生成模型无法直接识别。例如,输入语句可以是初步诊断为慢性浅表性胃炎,建议进一步幽门螺杆菌检测。其中,医疗命名实体为慢性浅表性胃炎。
本申请还可预先人工标注医疗命名实体,可引入专家机制,由专家对医疗命名实体进行标注,提高人工标注的准确性,并将人工标注的医疗命名实体保存在数据库中,以供参考。当获取输入语句时,根据所述输入语句的所属领域从数据库中获取与该领域相对应的人工标注的医疗命名实体。
如上述步骤s12所述,本步骤将医疗命名实体嵌入输入语句的各个词之间,得到目标输入语句。嵌入时,可将人工标注的医疗命名实体嵌入输入语句的首端、中部或末端的位置,还可嵌入输入语句的主体之后。
如上述步骤s13所述,transformer架构是第一个完全依赖自注意力来计算输入和输出的表示,而不使用序列对齐的递归神经网络或卷积神经网络的转换模型。其使用注意力机制处理输入和输出之间的依赖关系,并且要完全递归。本步骤将目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,transformer架构的自然语言生成模型通过嵌入层将用户输入的目标输入语句中的每个词转为词嵌入向量,同时得到目标输入语句中每个词的位置嵌入和句子类别嵌入,并由每个词的词嵌入向量、位置嵌入和句子类别嵌入组成嵌入向量,对所述嵌入向量的隐藏状态序列进行加权,得到经过加权的隐藏状态序列,依次通过自然语言生成模型的其他transformer层对前一个transformer层的输出进行处理,得到经过多层复杂加权的隐藏状态序列,所述经过多层复杂加权的隐藏状态序列为高维矩阵,自然语言生成模型的crf层基于高维矩阵输出所述目标输入语句的分词序列,从而根据分词序列确定目标输入语句的初始实体,由于同时利用了句子和实体对自然语言生成模型进行训练,因此无需海量的训练数据即可完成训练。其中,词嵌入向量表示每个词自身信息;位置嵌入是指将每个词的位置信息编码成特征向量;句子类别嵌入用于区分不同句子。
对于整个医疗系统来讲,医学术语的专业性和繁杂性,医疗命名实体识别可以有效的提取疾病名称、临床症状、药品名称、医疗方法等具有特定意义的实体,在大数据背景下,数据提取对于疾病的分析,关联疾病进行分析对于疾病的提前感知预防都是有重要意义的。
基于深度神经网络transformer语境化的词语表达并不适用于命名实体的任务,虽然它可以通过使用自注意力机制来将词与词之间的多次关联来获取单词之间的复杂程度,但是对于预测“心脏病”里面的“心脏”比预测出心脏病这个实体更加容易。因此,在训练时,还可以提取电子病历单的场景信息,进一步结合电子病历单的场景信息,根据场景信息对自然语言生成模型进行训练。例如,对于电子病历单的场景信息,其更大概率描述的是患者的疾病类型,而非器官,因此对电子病历单的医疗命名实体识别,疾病类型的医疗命名实体命中的概率更大,即预测出“心脏病”这一医疗命名实体的概率比“心脏”这个实体的概率更高。
如上述步骤s14所述,本发明可随机的采用特殊的遮蔽符号mask去替换目标输入语句中预定比例的初始实体,然后以初始实体为中心,分别获取所述初始实体的上下文信息,根据所述上下文信息去预测被遮蔽的所述初始实体的原始实体。
如上述步骤s15所述,本步骤将自然语言生成模型预测的原始实体与人工标注的医疗命名实体进行比对,判断原始实体与人工标注的医疗命名实体是否一致。
如上述步骤s16所述,当确定原始实体与人工标注的医疗命名实体一致时,则表示自然语言生成模型已完成训练,则将已完成训练的自然语言生成模型作为医疗命名实体识别模型。
本申请所提供的一种医疗命名实体识别模型的生成方法,通过获取电子病历单,从电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;将医疗命名实体嵌入输入语句的各个词之间,得到目标输入语句;然后将目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定目标输入语句的初始实体;随机选用遮蔽符号遮蔽目标输入语句中预定比例的初始实体,并根据上下文信息预测被遮蔽的所述初始实体的原始实体;判断原始实体与人工标注的医疗命名实体是否一致;当确定原始实体与人工标注的医疗命名实体一致时,完成自然语言生成模型的训练,得到医疗命名实体识别模型。由于将医疗命名实体嵌入输入语句的各个词之间,同时利用了句子和实体对自然语言生成模型进行训练,无需海量的训练数据即可完成训练;并随机选用遮蔽符号遮蔽目标输入语句中预定比例的初始实体,对初始实体的原始实体进行判断,提高了训练得到的医疗命名实体识别模型对医疗命名实体的识别准确性。
在一实施例中,如上述步骤s12所述,所述将所述医疗命名实体嵌入所述输入语句的各个词之间的步骤,可具体包括:
s121、当检测到所述医疗命名实体包括多个单词时,分别计算每个单词与所述输入语句的各个词之间的相似度,根据所述相似度确定每个单词嵌入所述输入语句的每个位置对应词嵌入的平均值;其中,所述词嵌入的平均值用于评估单词嵌入所述输入语句的每个位置的合理度;
s122、根据所述每个单词对应词嵌入的平均值确定每个单词对应嵌入的嵌入位置;
s123、按照所述嵌入位置将各个单词嵌入所述输入语句的各个词之间。
如上述步骤s121所述,如果一个医疗命名实体包括多个单词,则需计算每个单词对应词嵌入的平均值。计算时,将每个单词及输入语句的各个词分别转换为向量形式,计算每个单词与输入语句的各个词之间的余弦相似度,将所述相似度换算成平均值。其中,该平均值用于评估单词嵌入输入语句的每个位置的合理度,相似度越大,则平均值越高,则对应嵌入的位置的合理性更优,训练得到的医疗命名实体识别模型的识别效果更好。
如上述步骤s122所述,本步骤根据词嵌入的平均值确定每个单词对应嵌入的嵌入位置,即平均值最大所对应的嵌入位置。例如,当医疗命名实体中的慢性浅表性胃炎在主体之后的平均值最大时,则慢性浅表性胃炎这一医疗命名实体嵌入的位置在主体之后。
上述步骤s123所述,本步骤按照各个单词的嵌入位置将各个单词分别嵌入所述输入语句的各个词之间,以使训练得到的医疗命名实体识别模型的识别效果更好。
在一实施例中,在步骤s14中,所述根据所述上下文信息预测被遮蔽的所述初始实体的原始实体的步骤,可具体包括:
s141、根据所述上下文信息,采用softmax函数对被遮蔽的所述初始实体进行预测,得到多个预测实体及各个预测实体的概率值;
s142、将概率值最大的预测实体作为所述原始实体。
如上述步骤s141所述,softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。因此,可采用softmax函数对被遮蔽的初始实体进行预测,结合上下文信息预测每个被遮蔽的初始实体的多个预测实体及各个预测实体的概率值,并筛选出概率值最大的预测实体。其中,该概率值用于表征每个预测实体为原始实体的可能性。例如,假设被遮蔽的初始实体的预测实体分别为心脏、心脏病及心血管,心脏的概率值为90%、心脏病的概率值为99%,心血管的概率值为80%,则概率值最大的预测实体为心脏病。如上述步骤s142所述,本步骤将概率值最大的预测实体作为原始实体,提高医疗命名实体的预测准确性。
在一实施例中,在步骤s15中,所述判断所述原始实体与人工标注的医疗命名实体是否一致的步骤之后,还可包括:
当确定所述原始实体与人工标注的医疗命名实体不一致时,获取所述原始实体与人工标注的医疗命名实体的差异信息;
根据所述差异信息调整所述自然语言生成模型的参数,对调整参数后的所述自然语言生成模型进行再次训练,直至预测的原始实体与人工标注的医疗命名实体一致。
本实施例可引入自检查机制,当确定原始实体与人工标注的医疗命名实体不一致时,则获取原始实体与人工标注的医疗命名实体的差异信息,根据差异信息调整自然语言生成模型的参数,对调整参数后的自然语言生成模型进行再次训练,直至预测的原始实体与人工标注的医疗命名实体一致。
此外,还可由专家检查修正,对于医疗命名实体识别模型的训练结果进行调整和修正,及时更新语料库,确保医疗命名实体识别模型生成的准确性,对于相同的错误不会重复犯错,让医疗命名实体识别模型越来越智能。
在一实施例中,在步骤s13中,所述将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体的步骤,可具体包括:
s131、在对所述自然语言生成模型的训练过程中,使用多种注意力机制计算所述目标输入语句的注意力得分,并筛选出注意力得分最高的注意力机制;
s132、根据所述注意力得分最高的注意力机制确定所述目标输入语句的初始实体。
在本实施例中,神经网络中的注意力机制(attentionmechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。在神经网络学习中,一般而言模型的参数越多则模型的表达能力越强,模型所存储的信息量也越大,但这会带来信息过载的问题。那么通过引入注意力机制,在众多的输入信息中聚焦于对当前任务更为关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,就可以解决信息过载问题,并提高任务处理的效率和准确性。
如上述步骤s131所述,在对自然语言生成模型的训练过程中,可使用多种注意力机制计算目标输入语句的注意力得分,并筛选出注意力得分最高的注意力机制。其中,该注意力得分用于评估各个注意力机制是否符合自然语言生成模型的训练。
如上述步骤s132所述,本步骤筛选出注意力得分最高的注意力机制,根据注意力得分最高的注意力机制确定所述目标输入语句的初始实体,以提高初始实体的识别精度。
在一实施例中,所述判断所述原始实体与人工标注的医疗命名实体是否一致的步骤,包括:
利用预先训练好的word2vec词向量模型将所述原始实体及所述医疗命名实体分别转换成词向量;
计算所述原始实体的词向量与所述医疗命名实体的词向量的余弦相似度;
判断所述余弦相似度是否大于预设相似度阈值;
若是,则所述原始实体与人工标注的医疗命名实体一致。
在本实施例中,可利用预先训练好的word2vec词向量模型将原始实体及所述医疗命名实体分别转换成词向量,分别计算原始实体的词向量与医疗命名实体的词向量的余弦相似度,判断余弦相似度是否大于预设相似度阈值;其中,该预设相似度阈值为0.9。当余弦相似度大于预设相似度阈值时,则原始实体与人工标注的医疗命名实体一致,从而提高原始实体的判断准确性。
其中,word2vec词向量模型是从大量文本中学习语义知识的一种模型,采用无监督的方式。其通过训练大量文本,将文本中的词用向量形式表示,这个向量我们称之为词向量,可以通过计算两个词的词向量之间的距离,从而得知两个词之间的联系。
在一实施例中,所述从所述电子病历单中提取输入语句的步骤,包括:
从所述电子病历单中提取文本信息;
对所述文本信息进行数据清洗处理,以去除标点符号或特殊字符,得到所述输入语句。
本实施例可利用结巴分词,将文本信息拆分为词组的集合,遍历所有语料库中的所有词语,依据语料库获取词组的集合中的停用词以及近义词,删除其中的停用词,并文本信息进行数据清洗处理,以去除标点符号或特殊字符,得到所述输入语句。
参照图2,本申请实施例中还提供一种医疗命名实体识别模型的生成装置,包括:
获取模块11,用于获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
嵌入模块12,用于将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
训练模块13,用于将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
预测模块14,用于随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的所述初始实体的原始实体;
判断模块15,用于判断所述原始实体与人工标注的医疗命名实体是否一致;
确定模块16,用于当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
电子病历单为患者在看病过程中,医生为患者开具的疾病诊断书,电子病历单中可包含患者的姓名、身份证号、疾病名称、医院名称等等。其中,疾病名称也被称为医疗命名实体。例如,心脏病、心血管疾病、肺结核、支气管哮喘等等。
所述输入语句为电子病历单中连续的文本信息,输入语句中包括医疗命名实体,但该医疗命名实体并未标注,自然语言生成模型无法直接识别。例如,输入语句可以是初步诊断为慢性浅表性胃炎,建议进一步幽门螺杆菌检测。其中,医疗命名实体为慢性浅表性胃炎。
本申请还可预先人工标注医疗命名实体,可引入专家机制,由专家对医疗命名实体进行标注,提高人工标注的准确性,并将人工标注的医疗命名实体保存在数据库中,以供参考。当获取输入语句时,根据所述输入语句的所属领域从数据库中获取与该领域相对应的人工标注的医疗命名实体。
进一步地,将医疗命名实体嵌入输入语句的各个词之间,得到目标输入语句。嵌入时,可将人工标注的医疗命名实体嵌入输入语句的首端、中部或末端的位置,还可嵌入输入语句的主体之后。
transformer架构是第一个完全依赖自注意力来计算输入和输出的表示,而不使用序列对齐的递归神经网络或卷积神经网络的转换模型。其使用注意力机制处理输入和输出之间的依赖关系,并且要完全递归。本步骤将目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,transformer架构的自然语言生成模型通过嵌入层将用户输入的目标输入语句中的每个词转为词嵌入向量,同时得到目标输入语句中每个词的位置嵌入和句子类别嵌入,并由每个词的词嵌入向量、位置嵌入和句子类别嵌入组成嵌入向量,对所述嵌入向量的隐藏状态序列进行加权,得到经过加权的隐藏状态序列,依次通过自然语言生成模型的其他transformer层对前一个transformer层的输出进行处理,得到经过多层复杂加权的隐藏状态序列,所述经过多层复杂加权的隐藏状态序列为高维矩阵,自然语言生成模型的crf层基于高维矩阵输出所述目标输入语句的分词序列,从而根据分词序列确定目标输入语句的初始实体,由于同时利用了句子和实体对自然语言生成模型进行训练,因此无需海量的训练数据即可完成训练。其中,词嵌入向量表示每个词自身信息;位置嵌入是指将每个词的位置信息编码成特征向量;句子类别嵌入用于区分不同句子。
对于整个医疗系统来讲,医学术语的专业性和繁杂性,医疗命名实体识别可以有效的提取疾病名称、临床症状、药品名称、医疗方法等具有特定意义的实体,在大数据背景下,数据提取对于疾病的分析,关联疾病进行分析对于疾病的提前感知预防都是有重要意义的。
基于深度神经网络transformer语境化的词语表达并不适用于命名实体的任务,虽然它可以通过使用自注意力机制来将词与词之间的多次关联来获取单词之间的复杂程度,但是对于预测“心脏病”里面的“心脏”比预测出心脏病这个实体更加容易。因此,在训练时,还可以提取电子病历单的场景信息,进一步结合电子病历单的场景信息,根据场景信息对自然语言生成模型进行训练。例如,对于电子病历单的场景信息,其更大概率描述的是患者的疾病类型,而非器官,因此对电子病历单的医疗命名实体识别,疾病类型的医疗命名实体命中的概率更大,即预测出“心脏病”这一医疗命名实体的概率比“心脏”这个实体的概率更高。
本发明可随机的采用特殊的遮蔽符号mask去替换目标输入语句中预定比例的实体,然后以初始实体为中心,分别获取所述初始实体的上下文信息,根据所述上下文信息去预测被遮蔽的所述初始实体的原始实体。
此外,将自然语言生成模型预测的原始实体与人工标注的医疗命名实体进行比对,判断原始实体与人工标注的医疗命名实体是否一致。
当确定原始实体与人工标注的医疗命名实体一致时,则表示自然语言生成模型已完成训练,则将已完成训练的自然语言生成模型作为医疗命名实体识别模型。
如上所述,可以理解地,本申请中提出的所述医疗命名实体识别模型的生成装置的各组成部分可以实现如上所述医疗命名实体识别模型的生成方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于关系抽取模型、药物发现模型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种医疗命名实体识别模型的生成方法。
上述处理器执行上述的医疗命名实体识别模型的生成方法,包括:
获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的所述初始实体的原始实体;
判断所述原始实体与人工标注的医疗命名实体是否一致;
当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种医疗命名实体识别模型的生成方法,包括步骤:
获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的所述初始实体的原始实体;
判断所述原始实体与人工标注的医疗命名实体是否一致;
当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
综上所述,本申请的最大有益效果在于:
本申请所提供的一种医疗命名实体识别模型的生成方法、装置、计算机设备和计算机可读存储介质,通过获取电子病历单,从电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;将医疗命名实体嵌入输入语句的各个词之间,得到目标输入语句;然后将目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定目标输入语句的初始实体;随机选用遮蔽符号遮蔽目标输入语句中预定比例的初始实体,并根据上下文信息预测被遮蔽的所述初始实体的原始实体;判断原始实体与人工标注的医疗命名实体是否一致;当确定原始实体与人工标注的医疗命名实体一致时,完成自然语言生成模型的训练,得到医疗命名实体识别模型。由于将医疗命名实体嵌入输入语句的各个词之间,同时利用了句子和实体对自然语言生成模型进行训练,无需海量的训练数据即可完成训练;并随机选用遮蔽符号遮蔽目标输入语句中预定比例的初始实体,对初始实体的原始实体进行判断,提高了训练得到的医疗命名实体识别模型对医疗命名实体的识别准确性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
1.一种医疗命名实体识别模型的生成方法,其特征在于,包括以下步骤:
获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的初始实体的原始实体;
判断所述原始实体与人工标注的医疗命名实体是否一致;
当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
2.根据权利要求1所述的医疗命名实体识别模型的生成方法,其特征在于,所述将所述医疗命名实体嵌入所述输入语句的各个词之间的步骤,包括:
当检测到所述医疗命名实体包括多个单词时,分别计算每个单词与所述输入语句的各个词之间的相似度,根据所述相似度确定每个单词嵌入所述输入语句的每个位置对应词嵌入的平均值;其中,所述词嵌入的平均值用于评估单词嵌入所述输入语句的每个位置的合理度;
根据所述每个单词对应词嵌入的平均值确定每个单词对应嵌入的嵌入位置;
按照所述嵌入位置将各个单词嵌入所述输入语句的各个词之间。
3.根据权利要求1所述的医疗命名实体识别模型的生成方法,其特征在于,所述根据所述上下文信息预测被遮蔽的初始实体的原始实体的步骤,包括:
根据所述上下文信息,采用softmax函数对被遮蔽的所述初始实体进行预测,得到多个预测实体及各个预测实体的概率值;
将概率值最大的预测实体作为所述原始实体。
4.根据权利要求1所述的医疗命名实体识别模型的生成方法,其特征在于,所述判断所述原始实体与人工标注的医疗命名实体是否一致的步骤之后,还包括:
当确定所述原始实体与人工标注的医疗命名实体不一致时,获取所述原始实体与人工标注的医疗命名实体的差异信息;
根据所述差异信息调整所述自然语言生成模型的参数,对调整参数后的所述自然语言生成模型进行再次训练,直至预测的原始实体与人工标注的医疗命名实体一致。
5.根据权利要求1所述的医疗命名实体识别模型的生成方法,其特征在于,所述将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体的步骤,包括:
在所述自然语言生成模型的训练过程中,使用多种注意力机制计算所述目标输入语句的注意力得分,并筛选出注意力得分最高的注意力机制;
根据所述注意力得分最高的注意力机制确定所述目标输入语句的初始实体。
6.根据权利要求1所述的医疗命名实体识别模型的生成方法,其特征在于,所述判断所述原始实体与人工标注的医疗命名实体是否一致的步骤,包括:
利用预先训练好的word2vec词向量模型将所述原始实体及所述医疗命名实体分别转换成词向量;
计算所述原始实体的词向量与所述医疗命名实体的词向量的余弦相似度;
判断所述余弦相似度是否大于预设相似度阈值;
若是,则判定所述原始实体与人工标注的医疗命名实体一致。
7.根据权利要求1所述的医疗命名实体识别模型的生成方法,其特征在于,所述从所述电子病历单中提取输入语句的步骤,包括:
从所述电子病历单中提取文本信息;
对所述文本信息进行数据清洗处理,以去除标点符号或特殊字符,得到所述输入语句。
8.一种医疗命名实体识别模型的生成装置,其特征在于,包括:
获取模块,用于获取电子病历单,从所述电子病历单中提取输入语句,并根据所述输入语句从数据库中获取人工标注的医疗命名实体;其中,所述输入语句为未标注医疗命名实体的文本数据;
嵌入模块,用于将所述医疗命名实体嵌入所述输入语句的各个词之间,得到目标输入语句;
训练模块,用于将所述目标输入语句输入基于transformer架构的自然语言生成模型中进行训练,确定所述目标输入语句的初始实体;
预测模块,用于随机选用遮蔽符号遮蔽所述目标输入语句中预定比例的初始实体,并获取所述初始实体的上下文信息,根据所述上下文信息预测被遮蔽的初始实体的原始实体;
判断模块,用于判断所述原始实体与人工标注的医疗命名实体是否一致;
确定模块,用于当确定所述原始实体与人工标注的医疗命名实体一致时,完成所述自然语言生成模型的训练,得到医疗命名实体识别模型。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行根据权利要求1至7任一项所述的医疗命名实体识别模型的生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的医疗命名实体识别模型的生成方法。
技术总结