掌桥专利:专业的专利平台
掌桥专利
首页

一种病历文本变量抽取方法及装置

文献发布时间:2024-04-18 20:01:55


一种病历文本变量抽取方法及装置

技术领域

本发明涉及信息抽取、自然语言处理技术领域,具体而言,涉及一种病历文本变量抽取方法及装置。

背景技术

近年来,随着医疗信息化产业的发展,以电子病历为代表的文本数据规模也呈现出了高速增长的趋势。电子病历因其便于共享、传输效率高、使用方便、便于管理、成本不高等各个方面的优点逐渐取代了传统的纸质病历。

从病历文本中提取变量,即从病历文本中获取指定变量的值,是医疗数据再应用的核心环节,主要应用于以下方向:

(1)专病数据库:针对某一种或某一类疾病,建立数据库来搜集科研可能使用到的可分析数据;

(2)在线CRF(临床试验病例报告单)信息抽取:通常用于临床试验、真实世界研究,根据试验要求填充预定CRF(临床试验病例报告单);

(3)单病种质量控制:针对诊疗流程比较固定的某一种疾病,搜集和评估该病种的质量相关指标或者费用控制。

例如:患者患有高血压十五年,最近半年加重,无头痛、胸闷;服用尼莫地平降压,提取变量列表如下:

现阶段从病历文本中提取变量的方法主要包括以下两类:

第一类是以正则表达式为主的方法:首先由医生解释每个字段的含义,并且标注匹配逻辑、各类同义词;其次由程序员根据医生的配置编写正则表达式,然后分批测试数据,直到结果稳定。

第二类是基于NLP算法的方法,该方法的整体流程和第一类的区别在于:把“正则表达式”环节部分换成基于NLP算法首先进行命名实体识别和关系识别,再由程序员在该算法输出结果上编写查询规则。

然而,现有的上述两类方法存在以下缺点和难点问题:

1、采用以正则表达式为主的方法需要大量人工参与,反复badcase(异常案例)驱动调试,处理效率较低。

2、在一家医院调试出来的效果,到另一家医院不可复用,通用度不够。

3、逐条研究正则表达式实现医学逻辑,需要技术人员深度参与,生产过程复杂,非常依赖实现人员的熟练程度,非技术人员无法掌握。

4、无论第一类还是第二类方式,都没有实现“在线服务式”生产,添加新字段困难。

5、因为依靠正则表达式无法有效地参考上下文信息,所以造成提取变量的准确性较差。

6、基于NLP算法的方法没有完成全流程闭环,导致人工劳动量没有减少,对算法输出结果的处理,没有一定技术背景的人员无法掌握,病历变量抽取生产效率较低。

发明内容

鉴于此,本发明的目的在于提出一种病历文本变量抽取方法,主要基于三个要点实现:NLP算法标准化、配置描述语言、知识库沉淀,只需要医生按照简单格式表达,不再需要罗列各种变化情况,同时不再需要技术人员参与,以降低病历文本变量抽取的复杂度,解决现有技术的上述缺点和难点问题。

本发明提供一种病历文本变量抽取方法,包括以下步骤:

S1、根据病历文本变量抽取所需的字段配置算子语言脚本;

所述配置算子语言脚本的方法包括以下步骤:

S11、基于一阶逻辑的数理逻辑,实现基于逻辑推理的形式化语言;

基于一阶逻辑的形式化语言的含义举例如下:

对于当前手术x,存在y∈{从病历中识别出来发生在x之后的症状或疾病}∧{y∈知识库中x及其父类的并发症以及并发症的标志症状或子类};

如果存在,则为:是;如果不存在,则为:否;

S12、自定义用于变量生产的基本算子,通过每个所述基本算子将底层的匹配法则、同义词封装成为一个算子函数;

S13、配置自然语言描述,系统自动将自然语言转化成内部函数;

自然语言描述比如:

查找高血压实体|输出有无;

查找血压实体|数值大于140mmHg则输出有,否则输出无;

S2、嵌套命名文本中的实体识别和关系识别,基于自然语言处理算法将非结构化的电子病历转换成结构化的实体图谱,并输出所述实体图谱;

S3、根据所述算子语言脚本的参数,查询知识库中的实体,返回知识库中以该实体为中心的子图;

知识库是具有有向图结构的一个知识图谱,知识库中可能存在is-a(继承)和has-a(组合)之外的关系;

S4、根据知识库查询结果以及算子语言脚本的参数,查询到所述子图中的实体图谱;

S5、使用所述算子语言脚本配合S3步骤和S4步骤的处理结果,获得最终的变量抽取目标值。

进一步地,所述S2步骤的嵌套命名文本中的实体识别和关系识别的方法包括以下步骤:

S21、采用基于SPAN的模型实现嵌套实体识别,获取不同粒度的医学信息;

所述基于SPAN的模型包括ENCODER和DECODER两个模块;

所述ENCODER模块实现对病历文本的向量化以及特征抽出,采用Transform-encode模型和CNN卷积神经网络相结合的结构;

所述DECODER模块通过构造N2矩阵并集合一个多分类器,同时得到不同粒度的实体;

S22、基于文本中实体的依存关系和医学关系实现关系识别;

通过依存关系抽取获取文本上直接表述的较浅层的医学实体之间的关系,参考NLP算法中依存句法分析任务,采用基于转移的方式实现关系识别;依存关系抽取模块中不仅包含基于DNN的分类模块,同时也包含了支持实体调度的堆栈和列表;

通过医学关系抽取获取更为抽象的医学关系,医学关系抽取模块中的算法通过PCNN模型改造而来;

S23、根据图联通规则以及定制的语义规则,补充隐含的关系,并删除多余的关系;对关系结构进行标准化,预定义一个标准的关系模板的集合,每个关系模板是一个三元组,把所有关系都归一化成标准的关系模板中的形式。

比如:无头痛、胸闷,原始输出为<无,依存,头痛><头痛,依存,胸闷>,归一化后为:<头痛,依存,无>、<胸闷,依存,无>

属性关系是一类特殊关系,表示一个实体是另一个实体的一个属性,类似于“has-a”。比如“左肺下叶切除术”本身是一个手术实体,“左肺下叶”是一个器官实体,而“左肺下叶”是“左肺下叶切除术”的一个属性。

例如定义关系模板集合包含:<疾病,依存,动词><疾病,依存,药物><检查,依存,部位>。将所有关系都以以上方式输出,比如“无头痛”,归一化为:<头痛,依存,无>。

进一步地,所述S12步骤的将底层的匹配法则、同义词封装成为一个算子函数的方法包括:

在输出算子中内嵌对属性的判断,默认输出:不详;支持正则表达式;每次查找的结果都去重。

进一步地,所述S12步骤的封装的算子函数包括:

查找实体:find_entity(entity_value);

查找关联实体:find_related_entity(entity_id);

根据数值查找:filter_number(entity_id,num,relation);

输出实体属性:output_attribute(entity_id);

查找文本中的具体实体时,需自动判断是否可以通过其它途径进行查找。

进一步地,所述S3步骤的查询知识库中的实体的方法包括:

依据推理规则指定如何查询知识库以及从知识库中取出哪些内容,限定查询算子的类型,包括:

实体(get_entity_class):根据实体名称返回所有的表示;

实体e,关系r(get_entity_relation):根据e查询与e实体有r关系的实体集合;

查询结果根据每个具体的查询算子而定,包括以下情形:只需要返回实体集合,或者返回实体和关系集合。

进一步地,所述查询算子的类型中的实体包括:

a、仅返回本实体所有同义词,不需要返回子类;

b、需要返回所有子孙类。

进一步地,所述查询算子的类型中的实体e,关系r的关系能够向上继承,继承实体e的所有祖先类的r关系。

本发明还提供一种病历文本变量抽取装置,执行如上述所述的病历文本变量抽取方法,包括:

配置算子语言脚本模块:用于根据病历文本变量抽取所需的字段配置算子语言脚本;

命名实体识别和关系识别模块:用于嵌套命名文本中的实体识别和关系识别,基于自然语言处理算法将非结构化的电子病历转换成结构化的实体图谱,并输出所述实体图谱;

查询知识库模块:用于根据所述算子语言脚本的参数,查询知识库中的实体,返回知识库中以该实体为中心的子图;

查询实体图谱模块:用于根据知识库查询结果以及算子语言脚本的参数,查询到所述子图中的实体图谱;

获取变量抽取目标值模块:使用所述算子语言脚本配合S3步骤和S4步骤的处理结果,获得最终的变量抽取目标值。

本发明结合知识库沉淀,将同义词、稳定的关系、通用逻辑沉淀到知识库内,减少配置工作量;将NLP算法标准化:对NLP算法输出结果做归一化,包括术语名称、关系结构,使得同样的语义使用同样的模板表示;配置描述语言:在标准化基础上,开发标准化的、半自然语言化的配置描述语言,虽然仍需要配置医学逻辑,但只需要医生按照简单格式表达,不再需要罗列各种变化情况,同时可以不需要技术人员参与,从而降低了病历文本变量抽取的复杂度。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述所述的病历文本变量抽取方法的步骤。

本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的病历文本变量抽取方法的步骤。

与现有技术相比,本发明的有益效果在于:

本发明病历文本变量抽取方法通过知识库沉淀减少配置工作量,对NLP算法输出结果做归一化,开发标准化的、半自然语言化的配置描述语言;可以不需要技术人员参与,降低了病历文本变量抽取的复杂度;该病历文本变量抽取方法既可离线批量处理、也可在线实时处理,同样的变量对不同医院、不同病种的数据可适配、不需要重新生产,极大降低了变量生产的难度和代价;原有的需反复调试的工作只需使用几条配置语句就能实现,并且可随时增加新的变量,极大降低了对生产人员的要求门槛,可以直接培训非技术人员进行生产,提高了病历文本变量抽取生产效率。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

在附图中:

图1为本发明实施例病历文本变量抽取的主流程图;

图2为本发明实施例实体图谱抽取处理过程的框架图;

图3为本发明一种病历文本变量抽取方法的流程图;

图4为本发明实施例的配置算子语言脚本的方法流程图;

图5为本发明实施例的嵌套命名文本中的实体识别和关系识别的方法流程图;

图6为本发明实施例计算机设备的构成示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和产品的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面对本发明实施例作进一步详细说明。

本发明实施例提供病历文本变量抽取方法,参见图3所示,包括以下步骤:

S1、根据病历文本变量抽取所需的字段配置算子语言脚本;

所述配置算子语言脚本的方法,参见图4所示,包括以下步骤:

S11、基于一阶逻辑的数理逻辑,实现基于逻辑推理的形式化语言;

本实施例中的形式化语言的实例如下:

对于当前手术x,存在y∈{从病历中识别出来发生在x之后的症状或疾病}∧{y∈知识库中x及其父类的并发症以及并发症的标志症状或子类};

如果存在,则为:是;如果不存在,则为:否;

S12、自定义用于变量生产的基本算子,通过每个所述基本算子将底层的匹配法则、同义词封装成为一个算子函数;

所述将底层的匹配法则、同义词封装成为一个算子函数的方法包括:

在输出算子中内嵌对属性的判断,默认输出:不详;支持正则表达式;每次查找的结果都去重。

所述S12步骤的封装的算子函数包括:

查找实体:find_entity(entity_value);

查找关联实体:find_related_entity(entity_id);

根据数值查找:filter_number(entity_id,num,relation);

输出实体属性:output_attribute(entity_id);

查找文本中的具体实体时,需自动判断是否可以通过其它途径进行查找。

S13、配置自然语言描述,系统自动将自然语言转化成内部函数;

本实施例中,自然语言描述的实例如下:

查找高血压实体|输出有无;

查找血压实体|数值大于140mmHg则输出有,否则输出无;

S2、嵌套命名文本中的实体识别和关系识别,基于自然语言处理算法将非结构化的电子病历转换成结构化的实体图谱,并输出所述实体图谱;

本实施例的实体图谱抽取框架如图2所示。

所述嵌套命名文本中的实体识别和关系识别的方法,参见图5所示,包括以下步骤:

S21、采用基于SPAN的模型实现嵌套实体识别,获取不同粒度的医学信息;

所述基于SPAN的模型包括ENCODER和DECODER两个模块;

所述ENCODER模块实现对病历文本的向量化以及特征抽出,采用Transform-encode模型和CNN卷积神经网络相结合的结构;

所述DECODER模块通过构造N2矩阵并集合一个多分类器,同时得到不同粒度的实体;

S22、基于文本中实体的依存关系和医学关系实现关系识别;

通过依存关系抽取获取文本上直接表述的较浅层的医学实体之间的关系,参考NLP算法中依存句法分析任务,采用基于转移的方式实现关系识别;依存关系抽取模块中不仅包含基于DNN的分类模块,同时也包含了支持实体调度的堆栈和列表;

通过医学关系抽取获取更为抽象的医学关系,医学关系抽取模块中的算法通过PCNN模型改造而来;

S23、根据图联通规则以及定制的语义规则,补充隐含的关系,并删除多余的关系;对关系结构进行标准化,预定义一个标准的关系模板的集合,每个关系模板是一个三元组,把所有关系都归一化成标准的关系模板中的形式。

本实施例中,无头痛、胸闷,原始输出为<无,依存,头痛><头痛,依存,胸闷>,归一化后为:<头痛,依存,无>、<胸闷,依存,无>

属性关系:“左肺下叶切除术”本身是一个手术实体,“左肺下叶”是一个器官实体,而“左肺下叶”是“左肺下叶切除术”的一个属性。

定义关系模板集合包含:<疾病,依存,动词><疾病,依存,药物><检查,依存,部位>。将所有关系都以以上方式输出,比如“无头痛”,归一化为:<头痛,依存,无>。

S3、根据所述算子语言脚本的参数,查询知识库中的实体,返回知识库中以该实体为中心的子图;

所述查询知识库中的实体的方法包括:

依据推理规则指定如何查询知识库以及从知识库中取出哪些内容,限定查询算子的类型,包括:

实体(get_entity_class):根据实体名称返回所有的表示;

实体e,关系r(get_entity_relation):根据e查询与e实体有r关系的实体集合;

查询结果根据每个具体的查询算子而定,包括以下情形:只需要返回实体集合,或者返回实体和关系集合。

所述查询算子的类型中的实体包括:

a、仅返回本实体所有同义词,不需要返回子类;

b、需要返回所有子孙类。

所述查询算子的类型中的实体e,关系r的关系能够向上继承,继承实体e的所有祖先类的r关系。

S4、根据知识库查询结果以及算子语言脚本的参数,查询到所述子图中的实体图谱;

S5、使用所述算子语言脚本配合S3步骤和S4步骤的处理结果,获得最终的变量抽取目标值。

参见图1所示为本实施例病历文本变量抽取的主流程。

本发明实施例还提供一种病历文本变量抽取装置,执行如上述所述的病历文本变量抽取方法,包括:

配置算子语言脚本模块:用于根据病历文本变量抽取所需的字段配置算子语言脚本;

命名实体识别和关系识别模块:用于嵌套命名文本中的实体识别和关系识别,基于自然语言处理算法将非结构化的电子病历转换成结构化的实体图谱,并输出所述实体图谱;

查询知识库模块:用于根据所述算子语言脚本的参数,查询知识库中的实体,返回知识库中以该实体为中心的子图;

查询实体图谱模块:用于根据知识库查询结果以及算子语言脚本的参数,查询到所述子图中的实体图谱;

获取变量抽取目标值模块:使用所述算子语言脚本配合S3步骤和S4步骤的处理结果,获得最终的变量抽取目标值。

本发明实施例还提供一种计算机设备,图6是本发明实施例提供的一种计算机设备的结构示意图;参见附图图6所示,该计算机设备包括:输入装置23、输出装置24、存储器22和处理器21;所述存储器22,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器21执行,使得所述一个或多个处理器21实现如上述实施例提供的病历文本变量抽取方法;其中输入装置23、输出装置24、存储器22和处理器21可以通过总线或者其他方式连接,图6中以通过总线连接为例。

存储器22作为一种计算设备可读写存储介质,可用于存储软件程序、计算机可执行程序,如本发明实施例所述的病历文本变量抽取方法对应的程序指令;存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等;此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件;在一些实例中,存储器22可进一步包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置23可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入;输出装置24可包括显示屏等显示设备。

处理器21通过运行存储在存储器22中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的病历文本变量抽取方法。

上述提供的计算机设备可用于执行上述实施例提供的病历文本变量抽取方法,具备相应的功能和有益效果。

本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的基于OpenStack Ironic的动态电源管理方法,存储介质是任何的各种类型的存储器设备或存储设备,存储介质包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等;存储介质可以还包括其它类型的存储器或其组合;另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统;第二计算机系统可以提供程序指令给第一计算机用于执行。存储介质包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上实施例所述的病历文本变量抽取方法,还可以执行本发明任意实施例所提供的病历文本变量抽取方法中的相关操作。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116571703