一种医疗长文本信息抽取方法及装置与流程

文档序号:31474596发布日期:2022-09-10 00:08阅读:115来源:国知局
一种医疗长文本信息抽取方法及装置与流程

1.本发明涉及数据处理技术领域,尤其涉及一种医疗长文本信息抽取方法及装置。


背景技术:

2.在医疗场景下,编码员需要根据医生给出的医疗文书,快速定位关键文本证据,从而给出对应的正确的部位相关编码。如下述例子:
3.(1)入院后完善相关检查,....,胸腹盆部ct增强示:1、右上肺肿块,....,于2019-11-23行支气管镜检查,术后病理:(右肺上叶,经支气管镜肺活检标本):肺腺癌,...
4.(2)编码员根据上述加粗部分证据能够将部位未特指编码c34.9(未特指的肺的恶性肿瘤)改为编码c34.1(上叶、支气管或肺的恶性肿瘤)。
5.现有技术存在的问题如下:
6.(1)需要处理的医疗文本长度过长,可能达到五千字以上,现有模型无法处理。
7.(2)不仅需要判断文本中的句子是不是含有部位信息的支撑句,还要判断整个文本是否含有支撑句,现有模型只支持单任务。


技术实现要素:

8.本发明的目的是提供一种医疗长文本信息抽取方法及装置,以解决现有技术中的上述问题。
9.第一方面,本发明提供了一种医疗长文本信息抽取方法,所述方法包括:
10.对长文本进行划分,得到多个片段;每个片段包括预设数量个句子;
11.将每个片段输入预训练模型,得到所述片段中的句子的字符表示;
12.将所述字符表示输入到神经网络,得到字符表示对应的上下文表示;并根据所述上下文表示获取句子表示;
13.根据所述句子表示,计算当前句子为支撑句的得分;
14.当所述得分大于预设的第一得分阈值时,确定所述当前句子所属的片段具有支撑句;
15.判断所述片段中的句子的得分是否大于预设的第二阈值;
16.当所述片段中的句子的得分大于预设的第二阈值时,根据所述片段中的句子的得分大于第二阈值的句子,获取片段中的支撑句集合。
17.在一种可能的实现方式中,所述对长文本进行划分,得到多个片段具体包括:
18.根据句子级粒度,对所述长文本进行划分,得到多个句子;
19.根据句子划分策略,确定预设数量个句子构成一个片段,将所述多个句子划分为多个片段。
20.在一种可能的实现方式中,所述根据所述上下文表示获取句子表示具体包括:
21.根据所述上下文表示,确定每个句子的起止位置;
22.根据所述起止位置,获取最大信息量;
23.根据所述最大信息量,确定句子表示。
24.在一种可能的实现方式中,所述根据所述句子表示,计算当前句子为支撑句的得分具体包括:
25.将所述句子表示通过多层感知机mlp映射到二维,通过第一函数计算当前句子的得分。
26.在一种可能的实现方式中,所述根据所述句子表示,计算当前句子为支撑句的得分具体包括:
27.将所述句子表示和特殊分类标识符表示合并,得到合并后的表示;
28.将所述合并后的表示通过mlp映射到二维,通过第一函数计算合并后的表示的得分。
29.在一种可能的实现方式中,所述预训练模型中包括训练集,所述训练集包括多个样本,每个样本包括篇章、对应问题、参考答案和证据集合。
30.第二方面,本发明提供了一种医疗长文本信息抽取装置,所述装置包括:
31.划分模块,所述划分模块用于对长文本进行划分,得到多个片段;每个片段包括预设数量个句子;
32.模型输入模块,所述模型输入模块用于将每个片段输入预训练模型,得到所述片段中的句子的字符表示;
33.神经网络输入模块,所述神经网络输入模块用于将所述字符表示输入到神经网络,得到字符表示对应的上下文表示;并根据所述上下文表示获取句子表示;
34.计算模块,所述计算模块用于根据所述句子表示,计算当前句子为支撑句的得分;
35.确定模块,所述确定模块用于当所述得分大于预设的第一得分阈值时,确定所述当前句子所属的片段具有支撑句;
36.判断模块,所述判断模块用于判断所述片段中的句子的得分是否大于预设的第二阈值;
37.所述获取模块还用于当所述片段中的句子的得分大于预设的第二阈值时,根据所述片段中的句子的得分大于第二阈值的句子,获取片段中的支撑句集合。
38.第三方面,本发明提供了一种芯片系统,包括处理器,所述处理器与存储器的耦合,所述存储器存储有程序指令,当所述存储器存储的程序指令被所述处理器执行时实现第一方面任一项所述的医疗长文本信息抽取方法。
39.第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行第一方面任一项所述的医疗长文本信息抽取方法。
40.第五方面,本发明提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面任一项所述的医疗长文本信息抽取方法。
41.通过应用本发明实施例提供的医疗长文本信息抽取方法,设计了答案预测抽取局部和全文的医疗部位信息,并且判断片段是否具有所需支撑句的问题,基于句子级切分和预测的模型框架来解决长医疗文本处理问题,从而提供了借鉴医疗长文本信息抽取的新思路,并且在进行支撑句的获取时,考虑了句子表示,从而提高了抽取的精度。
附图说明
42.图1为本发明实施例一提供的医疗长文本部位信息证据抽取系统架构图;
43.图2为本发明实施例一提供的医疗长文本信息抽取方法流程示意图;
44.图3为本发明实施例二提供的医疗长文本信息抽取装置结构示意图;
45.图4为本发明实施例三提供的芯片系统结构示意图;
46.图5为本发明实施例四提供的计算机可读存储介质示意图;
47.图6为本发明实施例五提供的计算机程序产品示意图。
具体实施方式
48.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
49.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
50.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包括。例如包括了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
51.在本技术中,将从医疗文书中快速定位关键文本证据,从而给出对应的正确的部位相关编码的问题,定义为一个长文本阅读理解任务,目的是对未特指编码信息寻找部位相关证据。
52.本技术提供了一种医疗长文本部位信息证据抽取系统,该系统架构图如图1所示,在图1中,该系统架构相当于阅读理解系统,包括答案类型分类器、支撑句预测网络和预训练模型,该系统架构也和阅读理解系统一样,完成两个任务,一个是拒答预测任务,另一个是证据预测任务,而证据预测任务,就相当于本技术的医疗长文本信息抽取方法。
53.该预训练模型可以进行如下表示:
54.预训练的模型的训练集可以表示为d={d1,d2,...,dn},其中di={p,q,a,s}为第i个样本,p为篇章,q为对应问题,a为参考答案,s为证据集合,为推理编码所必须的句子,从篇章中获取而该答案类型分类器,用于对句子是否具有支撑句进行分类,对于支撑句,可以通过上述的支撑句预测网络来进行处理。
55.对于预训练模型输出的证据预测任务,可以通过支撑句预测网络进行,从而得到支撑句集合,以便于根据该支撑句集合得到部位相关编码,从而实现了自动对长文本信息抽取。
56.实施例一
57.图2为本发明实施例一提供的医疗长文本信息抽取方法流程示意图,该方法应用在对医疗长文本信息进行处理的场景中。如图2所示,该方法包括以下步骤:
58.步骤210,对长文本进行划分,得到多个片段;每个片段包括预设数量个句子;
59.具体的,步骤210包括句子划分和片段划分两个。句子划分是指对长文本进行划分,片段划分是将一个长文本切分后得到的句子进行划分。句子划分的目的是为了控制每
个句子的长度,只有控制了单个句子的长度,才可以最终限定片段的长度。
60.针对句子划分:对长文本按句子级粒度切分,设定一个最大句子长度为maxsentencelength,当将标点符号算在内,长文本的长度超过maxsentencelength,则将长文本进行平均切分,得到的句子个数为:
61.sent_count=round(sentencelength/maxsentlength)
62.其中,round表示向上取整函数,sentencelength表示当前句子长度。
63.针对片段划分:基于上述的句子划分策略,每个片段最多包括maxsentencecount个句子,由此,可以将一个长文本划分为多个片段,比如m个片段。
64.举个例子,比如每个句子不超过16个字,而片段中的句子个数不超过8个,则一个片段的总长度则不超过8*16=128。
65.步骤220,将每个片段输入预训练模型,得到片段中的句子的字符表示;
66.针对每个片段,使用预训练模型m,来生成具有篇章信息的问题q和k个句子的字符表示:
67.c=m(<[cls],q,[sep],s1,...,sk>))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式1
[0068]
其中,m可以是基于大规模无监督文本预训练的模型,该模型的训练集可以表示为d={d1,d2,...,dn},其中di={p,q,a,s}为第i个样本,p为篇章,q为对应问题,a为参考答案,s为证据集合,为推理编码所必须的句子,从篇章中获取。
[0069]
具体的,将每个片段输入预训练模型m,该m中的训练集如d一样表示,从而可以得到句子中的字符表示,其中,c为生成的字符表示,c∈r
n*h
,h为一个字符的表示维度;r表示什么?;n为问句长度加上k个句子长度加预设数值,比如加2;k为当前片段中句子的数量;s1,...,sk表示当前片段中的第一个句子至第k个句子;[cls]为蕴含全文信息的特殊分类标识符,在实际应用中,为预训练模型在预训练过程中默认的一个标识符,通常放到这个序列的最开始,表示蕴含输入的全局信息,可以认为其是一个没有实际含义的占位符,[sep]一般是用来区分输入的前后片段,也是一个占位符号,为用于区分问题和文章句子的特殊分隔标识符。比如“你好呀[sep]谢谢”中,[sep]区分两个语义片段。
[0070]
步骤230,将字符表示输入到神经网络,得到字符表示对应的上下文表示;并根据上下文表示获取句子表示;
[0071]
其中,神经网络可以是双向循环神经网络,示例而非限定,双向循环神经网络可以是长短期记忆网络(long short-term memory,lstm)。
[0072]
可以将生成的字符表示输入到双向循环神经网络,获得更细致的上下文表示h,其中,h∈r
n*3d
,h为上下文表示,n为问句长度加上k个句子长度加预设数值,比如加2;d为维度,3d表示一个字符可以用1*3d的向量表示。
[0073]
h=bi_lstm(c)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式2
[0074]
其中,c为字符表示,bi_lstm(c)表示通过lstm网络将字符表示转换为上下文表示。
[0075]
进一步的,根据上下文表示获取句子表示具体包括:
[0076]
根据上下文表示,确定每个句子的起止位置;根据起止位置,获取最大信息量;根据最大信息量,确定句子表示。
[0077]
具体的,基于句子的上下文表示,确定句子的起止位置,从而根据句子的起止位置
确定最大信息量,并根据最大信息量,确定句子表示,具体可以参见如下公式:
[0078]
sk=maxpooling(h[s
k_s
:s
k_e
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式3
[0079]
其中,sk为句子表示,maxpooling表示最大池化,s
k_s
为第k个句子在神经网络模型输入的开始位置,s
k_e
为第k个句子在神经网络模型输入结束位置,h[s
k_s
:s
k_e
]为信息量,maxpooling(h[s
k_s
:s
k_e
])表示最大池化信息量,也就是句子表示。
[0080]
步骤240,根据句子表示,计算当前句子为支撑句的得分;
[0081]
其中,支撑句相对于主题句而言的,主题句是段落的中心句。而支撑句就是用来支持主题观点,围绕主题展开的句子。此处引入支撑句,是为了判断当前片段根据当前问题是否有支撑句。步骤240包括:
[0082]
将句子表示通过多层感知机(multilayer perception,mlp)映射到二维,通过第一函数计算当前句子是否为支撑句的得分;当得分大于预设的第二阈值时,确定当前句子为支撑句;当当前句子为支撑句时,当前句子对应的片段也具有支撑句。
[0083]
其中,mlp(sk)表示通过mlp将句子表示映射到二维,通过下列公式计算当前句子的得分:
[0084]sk_score
=sigmoid(mlp(sk))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式4
[0085]
其中,sigmoid为第一函数,该函数又称s函数,s
k_score
为当前句子的得分。
[0086]
进一步的,当句子中具有特殊分类标识符时,为了提高对当前句子是否为支撑句的判断精度,可以在判断当前句子是否为支撑句时,根据句子表示和特殊分类标识符表示合并,计算当前句子为支撑句的得分。
[0087]
具体的,将句子表示和特殊分类标识符表示进行合并,作为判断此片段是否有支撑句的任务输入。将这两个表示合并生成一个表示,也就是[h:c[0]],此处是否要修改为[sk:c[0]],其中,sk为句子表示,c[0]为特殊分类标识符,[sk:c[0]]表示将这两种表示进行合并,然后作为sigmoid(mlp)的输入,继续可以通过第一函数来计算合并后的两种表示的得分,得分可以表示为如下公式:
[0088]sunk_score
=sigmoid(mlp([sk;c[0]]))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式5
[0089]
其中,s
unk_score
表示合并后的两种表示的得分,mlp([sk;c[0]])表示将合并后的两种表示通过mlp映射到二维。
[0090]
其中,步骤230和240合起来可以称为答案预测网络。
[0091]
步骤250,当得分大于预设的第一得分阈值时,确定当前句子所属的片段具有支撑句;
[0092]
具体的,对于m个片段,每个片段经过步骤230和240所构成的答案预测网络后,可以确定此片段具有支撑句的得分,然后根据得分判断片段是否具有支撑句,具体可以通过如下公式来具体:
[0093][0094]
其中,t_unk为预设的第一得分阈值,可以根据实际工作来进行调整。
[0095]
步骤260,判断片段中的句子的得分是否大于预设的第二阈值;
[0096]
具体的,对于有支撑句的片段,再判断其中句子的得分是否大于预设的第二得分
阈值t_sp,大于阈值则为支撑句。
[0097][0098]
其中,t
sp
为第二得分阈值,可以根据实际需要进行调整。
[0099]
步骤270,当片段中的句子的得分大于预设的第二阈值时,根据片段中的句子的得分大于第二阈值的句子,获取片段中的支撑句集合。
[0100]
具体的,将片段中的句子的得分大于第二阈值时,将该些句子集合起来,从而得到支撑句集合s,该支撑句集合s则为答案。
[0101]
通过应用本发明实施例提供的医疗长文本信息抽取方法,设计了答案预测抽取局部和全文的医疗部位信息,并且判断片段是否具有所需支撑句的问题,基于句子级切分和预测的模型框架来解决长医疗文本处理问题,从而提供了借鉴医疗长文本信息抽取的新思路,并且在进行支撑句的获取时,考虑了句子表示,从而提高了抽取的精度。
[0102]
实施例二
[0103]
本发明实施例二提供了一种医疗长文本信息抽取装置,如图3所示,该医疗长文本信息抽取装置包括:划分模块310,模型输入模块320,神经网络输入模块330,计算模块340,确定模块350和判断模块360。
[0104]
划分模块310用于对长文本进行划分,得到多个片段;每个片段包括预设数量个句子;
[0105]
模型输入模块320用于将每个片段输入预训练模型,得到片段中的句子的字符表示;
[0106]
神经网络输入模块330用于将字符表示输入到神经网络,得到字符表示对应的上下文表示;并根据上下文表示获取句子表示;
[0107]
计算模块340用于根据句子表示,计算当前句子为支撑句的得分;
[0108]
确定模块350用于当得分大于预设的第一得分阈值时,确定当前句子所属的片段具有支撑句;
[0109]
判断模块360用于判断片段中的句子的得分是否大于预设的第二阈值;
[0110]
获取模块370还用于当片段中的句子的得分大于预设的第二阈值时,根据片段中的句子的得分大于第二阈值的句子,获取片段中的支撑句集合。
[0111]
进一步的,划分模块310对长文本进行划分,得到多个片段具体包括:
[0112]
根据句子级粒度,对长文本进行划分,得到多个句子;根据句子划分策略,确定预设数量个句子构成一个片段,将多个句子划分为多个片段。
[0113]
进一步的,神经网络输入模块330根据上下文表示获取句子表示具体包括:
[0114]
根据上下文表示,确定每个句子的起止位置;根据起止位置,获取最大信息量;根据最大信息量,确定句子表示。
[0115]
进一步的,计算模块340根据句子表示,计算当前句子为支撑句的得分具体包括:将句子表示通过多层感知机mlp映射到二维,通过第一函数计算当前句子的得分。
[0116]
进一步的,计算模块340根据句子表示,计算当前句子为支撑句的得分具体包括:
[0117]
将句子表示和特殊分类标识符表示合并,得到合并后的表示;将合并后的表示通
过mlp映射到二维,通过第一函数计算合并后的表示的得分。
[0118]
进一步的,预训练模型中包括训练集,训练集包括多个样本,每个样本包括篇章、对应问题、参考答案和证据集合。
[0119]
本发明实施例二提供的装置,可以执行上述方法实施例一中的方法步骤,其实现原理和技术效果类似,在此不再赘述。
[0120]
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
[0121]
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
[0122]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例所描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路((digital subscriber line,dsl))或无线(例如红外、无线、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0123]
实施例三
[0124]
本发明实施例三供了一种芯片系统,如图4所示,包括处理器,处理器与存储器的耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现如实施例一提供的任意一种医疗长文本信息抽取方法。
[0125]
实施例四
[0126]
本发明实施例四提供一种计算机可读存储介质,如图5所示,包括程序或指令,当所述程序或指令在计算机上运行时,实现如实施例一提供的医疗长文本信息抽取方法。
[0127]
实施例五
[0128]
实施例五提供一种包含指令的计算机程序产品,如图6所示,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如实施例一提供的医疗长文本信息抽取方法。
[0129]
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0130]
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0131]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1