公开/公告号CN113821618A
专利类型发明专利
公开/公告日2021-12-21
原文格式PDF
申请/专利权人 山东健康医疗大数据有限公司;
申请/专利号CN202111006045.6
申请日2021-08-30
分类号G06F16/332(20190101);G16H10/60(20180101);G06F40/242(20200101);G06F40/284(20200101);G06N3/04(20060101);
代理机构37100 济南信达专利事务所有限公司;
代理人郗艳荣
地址 250117 山东省济南市槐荫区兴福街道西城西进时代中心D座1212室
入库时间 2023-06-19 13:46:35
技术领域
本发明涉及自然语言处理技术领域,特别涉及一种电子病历是否类细项提取方法与系统。
背景技术
在电子病历细项提取过程中,发现存在许多“是/否”类细项提取问题。如是否有吸烟史、是否有饮酒史等。针对该类问题,目前业界常采用规则提取和实体关系提取两种方式。
规则提取,是指通过人为定义关键字或编写正则表达式的方式完成“是/否”类细项提取。该类方法的优点在于规则修改灵活,但缺点在于需要制定规则库来穷举文本中可能出现的情况。面对海量的电子病历数据,这穷尽规则显然是困难的。
基于机器学习模型的实体关系提取方法,是目前业界主流的提取方法。该方法利用模型的学习功能,让模型基于标注的样本自行学习语义及实体间的关系,给出提取结果。具体过程,首先通过命名实体识别模型,识别句子中的各类实体,包括“疾病”、“症状”、“限定词”等。然后,通过关系提取模型,对识别出来的实体进行两两实体关系预测,使限定词与其他类型的实体根据语境建立否定或肯定关系。然而,由于关系实体提取类模型所需样本,需要标注内容包括文本中实体的位置、实体的类型、各实体之间的关系,标注过程复杂,因此很难在实际场景中得到快速有效的应用。
为了降低样本标注难度,满足快速落地的需求,本发明提出了一种电子病历是否类细项提取方法与系统。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的电子病历是否类细项提取方法与系统。
本发明是通过如下技术方案实现的:
一种电子病历是否类细项提取方法与系统,其特征在于:包括以下步骤:
第一步,数据处理
按逗号与句号对输入的电子病例样本中的文本进行分句,并按关键词筛选需要解析的核心语句,若子句S
第二步,模型评估
在完成数据处理后,将得到的待评估语句与待解析细项Tagi的映射关系作为输入,通过文本分类模型完成对待评估语句是否类倾向性的评估。
所述第一步中,按句子分隔符对文本进行分句,分句列表为[S
根据细项解析任务中的待解析细项Tagi内容设计关键词字典,待解析细项Tagi的关键字列表为[KW
所述第二步中,模型评估具体流程如下:
S1.取出待评估语句与待解析细项Tagi映射关系中第i个解析项的第j个解析语句;
S2.将子句S
S3.基于模型嵌入字典对子句S
S4.基于模型嵌入字典对句子进行位置嵌入(position embedding)处理,将原句位置嵌入后转化为m*Pos_embedding的矩阵;其中,模型位置嵌入字典初始化为随机数,长度为m;
S5.原句在完成字嵌入与位置嵌入后合并字嵌入与位置嵌入矩阵,生成m*(Wordembedding+Pos_embedding)的矩阵;
S6.合并矩阵经过两层卷积神经网络层(CNN Layer),一层最大化池化层(MAX_Pool)和一层softmax层,生成一个二维向量[y1,y2],最终评估结果Y如下:
若结果为否,则第i个解析项的解析结果为否,然后再次跳转到步骤S1,进行下一个解析项的解析;若结果为是,则跳转到步骤S2,进行该解析项下一个待解析语句的解析。
该电子病历是否类细项提取系统,包括数据处理、数据标注、模型生成和模型应用四个模块;
所述数据处理模块基于是否类细项提取方法中数据处理部分方法,将电子病历原始文档进行分句、待解析关键句提取;
所述数据标注模块的标注数据来自数据处理模块与模型应用模块,其中数据处理模块的来源数据用于初代模型的训练,模型应用模块的来源数据与数据处理模块的来源数据合并用于模型的再训练;
所述模型生成模块负责实现样本集构建、模型训练、模型评估和生成模型;
所述模型应用模块负责实现数据的解析与解析结果的检测,实现模型的自学习功能。
在模型训练任务中,所述数据处理模块负责将提取的关键语句送入数据标注模块进行数据标注,供模型学习;在模型解析任务中,所述数据处理模块负责将提取的关键语句送入模型应用模块进行解析,并将解析结果保存至解析数据库。
所述数据处理模块的来源数据需要人工进行0、1标注处理,0代表否定情感,即“否”,1代表肯定情感,即“是”,然后将标注结果送入模型生成模块;
所述模型应用模块的来源数据是模型在使用中误解析数据的反馈,由于该部分数据为确定的误解析数据,将原解析结果值取反即为正确标注数据。
所述模型生成模块实现样本集构建、模型训练、模型评估和生成模型的具体步骤如下:
S1,平衡正负样本,样本集构建
模型生成模块对数据标注模块标注好的样本集中正负样本的数量进行统计,当出现样本不平衡问题时使用样本平衡方法进行样本平衡;
S2,模型训练
首先,对样本集进行训练集、测试集、验证集划分;然后设置参数测试范围,在该模型中调优参数为cnn层神经元个数;最后通过网格搜索方式,依据文本分类模型结构,以交叉熵损失作为损失函数,以梯度提升作为优化算法,进行模型训练;
S3,模型准确性评估
使用测试集对每次训练所得模型进行评估,选择准确率最高的神经元个数为最优参数;
S4,生成模型
将全量样本作为训练集,以最优参数作为训练参数,生成模型。
所述步骤S1中,样本平衡方法先假设标注为0的正样本数为N_p,标注为1的负样本数为N_n;
当N_p>>N_n时,首先将负样本复制N_p//N_n遍,然后再从原负样本中随机抽取N_p%N_n条进行复制,将两部分复制结果加入样本集,以保证样本集中正负样本的平衡;
当N_n>>N_p时,首先将负样本复制N_n//N_p遍,然后再从原负样本中随机抽取N_n%N_p条进行复制,将两部分复制结果加入样本集。
所述模型应用模块使用生成的模型对数据处理后的文本进行解析,然后将解析结果中错误的部分传回数据标注模块进行重新标注,更新模型,实现模型的自学习功能。
本发明的有益效果是:该电子病历是否类细项提取方法与系统,样本标注流程简单,同时具备模型自学习能力,进一步提高了模型的泛化能力,使其可以自动适应各种是否类细项提取任务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明文本分类模型原理示意图。
附图2为本发明电子病历是否类细项提取系统示意图。
附图3为本发明文本分类模型生成流程示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该电子病历是否类细项提取方法,包括以下步骤:
第一步,数据处理
按逗号与句号对输入的电子病例样本中的文本进行分句,并按关键词筛选需要解析的核心语句,若子句S
第二步,模型评估
在完成数据处理后,将得到的待评估语句与待解析细项Tagi的映射关系作为输入,通过文本分类模型完成对待评估语句是否类倾向性的评估。
所述第一步中,按句子分隔符对文本进行分句,分句列表为[S
根据细项解析任务中的待解析细项Tagi内容设计关键词字典,待解析细项Tagi的关键字列表为[KW
字典内容如下。
{
Tag1:[KW
Tag2:[KW
Tag3:[KW
……
}
筛选待评估语句,将a中分得的每个子句,与b的关键词字典进行比对。最终形成待评估语句与待解析项映射内容如下。
{
Tag1:[S
Tag2:[S
Tag3:[S
……
}
需要注意的是,同一个子句允许分到不同的待解析细项中。
所述第二步中,模型评估具体流程如下:
S1.取出待评估语句与待解析细项Tagi映射关系中第i个解析项的第j个解析语句;
S2.将子句S
S3.基于模型嵌入字典对子句S
S4.基于模型嵌入字典对句子进行位置嵌入(position embedding)处理,将原句位置嵌入后转化为m*Pos_embedding的矩阵;其中,模型位置嵌入字典初始化为随机数,长度为m;
S5.原句在完成字嵌入与位置嵌入后合并字嵌入与位置嵌入矩阵,生成m*(Wordembedding+Pos_embedding)的矩阵;
S6.合并矩阵经过两层卷积神经网络层(CNN Layer),一层最大化池化层(MAX_Pool)和一层softmax层,生成一个二维向量[y1,y2],最终评估结果Y如下:
若结果为否,则第i个解析项的解析结果为否,然后再次跳转到步骤S1,进行下一个解析项的解析;若结果为是,则跳转到步骤S2,进行该解析项下一个待解析语句的解析。
该电子病历是否类细项提取系统,基于电子病历是否类细项提取方法实现从原始数据到解析数据的转换,伴随对电子病历越来越多的解析,该系统还将协助模型完成模型不断的升级任务,进而使模型不断适应数据,提高解析的准确性。
该电子病历是否类细项提取系统,包括数据处理、数据标注、模型生成和模型应用四个模块;
所述数据处理模块基于是否类细项提取方法中数据处理部分方法,将电子病历原始文档进行分句、待解析关键句提取;
所述数据标注模块的标注数据来自数据处理模块与模型应用模块,其中数据处理模块的来源数据用于初代模型的训练,模型应用模块的来源数据与数据处理模块的来源数据合并用于模型的再训练;
所述模型生成模块负责实现样本集构建、模型训练、模型评估和生成模型;
所述模型应用模块负责实现数据的解析与解析结果的检测,实现模型的自学习功能。
在模型训练任务中,所述数据处理模块负责将提取的关键语句送入数据标注模块进行数据标注,供模型学习;在模型解析任务中,所述数据处理模块负责将提取的关键语句送入模型应用模块进行解析,并将解析结果保存至解析数据库。
所述数据处理模块的来源数据需要人工进行0、1标注处理,0代表否定情感,即“否”,1代表肯定情感,即“是”,然后将标注结果送入模型生成模块;
所述模型应用模块的来源数据是模型在使用中误解析数据的反馈,由于该部分数据为确定的误解析数据,将原解析结果值取反即为正确标注数据。
所述模型生成模块实现样本集构建、模型训练、模型评估和生成模型的具体步骤如下:
S1,平衡正负样本,样本集构建
模型生成模块对数据标注模块标注好的样本集中正负样本的数量进行统计,当出现样本不平衡问题时使用样本平衡方法进行样本平衡;
S2,模型训练
首先,对样本集进行训练集、测试集、验证集划分;然后设置参数测试范围,在该模型中调优参数为cnn层神经元个数;最后通过网格搜索方式,依据文本分类模型结构,以交叉熵损失作为损失函数,以梯度提升作为优化算法,进行模型训练;
S3,模型准确性评估
使用测试集对每次训练所得模型进行评估,选择准确率最高的神经元个数为最优参数;
S4,生成模型
将全量样本作为训练集,以最优参数作为训练参数,生成模型。
所述步骤S1中,样本平衡方法先假设标注为0的正样本数为N_p,标注为1的负样本数为N_n;
当N_p>>N_n(即N_p远大于N_n)时,首先将负样本复制N_p//N_n(即N_p除以N_n的商取整数)遍,然后再从原负样本中随机抽取N_p%N_n(即N_p除以N_n后取余数)条进行复制,将两部分复制结果加入样本集,以保证样本集中正负样本的平衡;
当N_n>>N_p(即N_n远大于N_p)时,首先将负样本复制N_n//N_p(即N_n除以N_p的商取整数)遍,然后再从原负样本中随机抽取N_n%N_p(即N_n除以N_p后取余数)条进行复制,将两部分复制结果加入样本集。
所述模型应用模块使用生成的模型对数据处理后的文本进行解析,然后将解析结果中错误的部分传回数据标注模块进行重新标注,更新模型,实现模型的自学习功能。
实施例1
(一)原始数据库
原始数据库,用于存储医院的原始数据与解析项配置数据。数据库选用oracle数据库,原始数据存储结构如表1所示,解析项配置表结构如表2所示。
表1原始电子病历存储表
表2解析项配置表
(二)数据处理
首先,根据解析需求配置解析项及对应每个解析项的关键字组,并将配置内容保存至解析项配置表中。
然后,读入原始数据库中存储表内容,对TEXT字段中的待解析原句,按照发明内容部分中的数据处理方法,逐条进行处理。处理内容:第一,依据句中逗号、句号位置对原句进行分句处理;第二,依据该句对应的TASK_ID与TASK_NAME从解析项配置表中获取该句需要解析的解析项编码PARSE_ID、解析项名称PARSE_NAME、关键字列表KEY_LIST;第三,依据发明内容部分,是否类提取方法中的筛选待评估语句方法,将TEXT字段中提取出来的语句处理成如下格式。其中,parse_idi为解析项配置表中PARSE_ID字段内容。
{
parse_id1:[S
parse_id2:[S
parse_id3:[S
……
}
最后,对于在没有任何模型的系统初始状态,数据处理模块将以上处理结果输入数据标注层。对于已存在解析模型,需要利用解析模型进行解析的状态,数据处理模块将以上处理结果输入模型应用模块。
(三)数据标注
数据标注模块的功能是对数据进行标注后用于模型的训练。该模块的具体实施流程如下:
首先,在系统初始状态下,数据标注模块对数据处理模块输入的待评估数据进行处理与标注,将数据处理成如下格式。其中,列表中的每一个元素第一项Si是待评估短句,第二项是该评估短句的标注标签。初始标注过程通过人工标注100句。并将标注结果保存至原始数据库。标注结果保存表如表3所示。
[[S
表3标注结果
然后,将标注的100句送入模型生成模块进行模型生成。生成模型再对数据处理中新增的电子病历进行解析,并将解析中错误的语句连同错误解析结果反馈给数据标注模块。反馈格式同第一步的标注格式。
最后,对反馈结果中每个语句的标注标签取反,即标注为0的替换为1,标注为1的替换为0。并将替换后的误解析语句与初始的100条语句融合,存储于表3内,并输入模型生成模块。
数据标注模块通过以上实施流程,配合系统完成模型的自动迭代更新。
(四)模型生成
模型生成流程如附图3所示,模型生成模块包含样本集构建、模型训练、模型评估、生成模型四个部分。
1)样本集构建
该模块将对标注模块输入的正负样本数量进行分别统计,当样本数量出现不平衡现象时,通过发明内容中的样本平衡方法进行样本平衡。
2)模型训练
首先,以8:1:1的比例,划分样本集为训练集、测试集、验证集。然后,设置CNN层神经元的调参范围为[50,100,500,1000],并通过网格搜索方式逐一按设置参数进行模型训练。保留每个参数对应的训练模型。
3)模型准确性评估
使用模型训练中不同参数对应的模型,对测试集数据进行分别评估。选择准确率最高的模型对应参数,为最优参数。评估公式如下所示。
4)模型生成
将训练集、测试集、验证集合并,使用最优参数重新训练模型,并保存最终模型。
(五)模型应用
模型应用模块,使用模型生成模块生成的最终模型,对数据处理部分形成的待评估数据进行解析,并将解析错误数据反馈给数据标注模块。具体实施过程如下:
首先,获取数据处理模块推送的数据,推送格式如下。
{
parse_id1:[S
parse_id2:[S
parse_id3:[S
……
}
然后,获取其中一个解析项parse_idi:[S1,S3,S5,……],将该项中逐个S句输入模型获得每个S句的评估结果。当评估结果出现否,则该解析项解析结果为否,停止该解析项接下来的解析。当评估结果为是,则继续解析下一个S句。当该解析项所有S句均评估为是,则认为该解析项结果为是。在该过程中,各S句及解析项的评估结果均需存储于解析数据库。S句评估结果存储表如表4所示,解析项结果存储表如表5所示。
表4S句结果存储表
表5解析项结果存储
最后,在数据使用中若发现表5中解析项解析错误,通过表5的TEXT_ID、PARSE_ID与表4中的数据关联,确定评估错误的短句。然后从表4中,将该短句的S、LABEL返回给数据标注模块,进行模型更新。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
机译: 故障后,一种管理有关是否恢复的信息的方法,一种故障后,一种用于恢复的方法,以及一种在具有大量缓存方式的系统中发生故障后用于恢复数据项的当前版本的方法。
机译: 一种数字家庭电子设备系统,用于根据命令是否对人类生命或安全构成危险来预先检查用户的选择是否值得信赖
机译: 分离的多核苷酸,表达盒,宿主细胞,分离的多肽,已被改变以表达耐碱突变体多肽的非人类转基因动物,与耐碱突变体多肽特异性结合的抗体,突变检测试剂盒生物样品,以及用于评估生物样品中是否存在对烷基抑制剂的抗性突变以诊断对至少一种碱性抑制剂有抗药性或可能发展出抗药性的癌症的方法。小分子激酶,用于评估生物学样品中是否具有抑制碱性磷酸酶抑制剂的突变,以诊断对患者具有抗药性或可能对pf-02341066产生抗药性的癌症,从而特异性降低抗癌突变体的表达以治疗癌症与激活抗至少一种小分子烷基激酶抑制剂的异常环路能力有关,该抑制剂治疗对pf-02341066有抵抗力的异常癌症