一种基于语言模型的跨专科文本结构化方法
技术领域
本发明涉及一种文本结构化技术,尤其涉及面向于电子病历的基于语言模型的文本结构化方法。
背景技术
随着医疗信息化的不断推进,病人的电子健康记录(Electronic Health Record,简称EHR)也愈发趋于完善。EHR是以个人健康、保健和治疗为中心的数字记录,它以数字化的形式采集和存储患者的健康信息和就诊信息。
在EHR中,大量的医疗文书是以文本形式存在,电子病历的文本包含了病人的症状,检查结果,以及医生根据症状、理化指标等基础数据做出的诊断和治疗过程的描述。相比已经结构化非常良好的用药记录、检验结果等,临床文本中记录了医生的判断依据,以及对各种诊疗行为的效果跟踪,而这些重要的信息保存在非结构化信息中,不能被计算机所理解和处理。
现有的文本结构化例如基于通用领域预训练的BERT、CRF、LSTM等模型的命名实体识别或关系抽取算法,都面临着问题定义不精准、不同应用的抽取目标不同、算法泛化能力差、依赖于大规模人工语料标注等挑战。
发明内容
针对现有文本结构化方案中所存在的不足,本发明提供了一种基于语言模型的跨专科文本结构化方法,使用了一种端到端的文本结构化方法,将病历文本视为知识,将字段名做一定变换后构造成问题,让模型回答出对应的字段值,将三类文本结构化任务转换为生成式的问答任务,对不同类型的结构化任务进行了统一,使得算法具有跨专科任务的可迁移性与解决不同类型的灵活性。
本发明采用以下技术方案:
1.基于语言模型的跨专科文本结构化方法,其主要思路包括如下步骤:
S1:将问题转化为问答的形式后,使用模板术语分离器,以医学知识库为字典,从医学文本S中匹配出对应的术语部分,对其进行替换,生成文本模板与专业术语集合。
S2:输入文本模板与专业术语,融合后获得向量表征;
S2:解码器部分根据病历文本表征,以及字段名表征,依次采用Self Attention、Query Cross Attention、Text Cross Attention捕捉上文信息,字段信息以及病历文本信息,通过门控单元生成对应的字段值。
2.具体的,所述步骤S1中,构造文本模板与专业术语的方法包括如下步骤:
S11:输入为病历文本SDoc、字段名Skey,输出入为字段值Svalue,根据字段类型确定不同的处理方式。具体的,任务可分为如下三类:
(1)分类型:指待抽取的字段的候选值为有限个,例如“胃癌手术技术”字段,其候选值为:{“开腹手术”,“腹腔镜辅助”,“全腔镜”,“胸腹联合”};
(2)文本跨度型:指待抽取的字段为病历中的一段文本,例如“上切缘距离”,其字段值为文本中对应的一段跨度;
(3)生成型:指待抽取的字段即无候选值,也非病历中的一段文本,需要从头到尾重新生成,例如“症状列表”,其字段值为主诉文本中归一化后的症状词。
S12:如果是分类型任务,则枚举对应候选值,转换为完形填空问题;根据候选值集合建立字典树,转换为限制候选词列表的生成问题;
S13:如果是文本跨度型任务,则枚举所有可能的文本跨度,转换为完形填空问题。解码过程引入门控机制,通过额外的神经元计算当前是否应该选择原文中的一个词,转换为可以直接生成原文中一个词的生成问题;
S14:如果是生成型任务,解码过程中引入Beam Search算法,通过扩大一定量的搜索空间,转换为对应的生成问题;
S15:利用字典树匹配算法,以医学知识库KG为字典,从医学文本S中匹配出对应的术语部分,再对其进行替换,生成文本模板Spattern与专业术语集合SKG。
3.具体的,所述步骤S2中,构建语言模型包括如下步骤:
S21:构建基于电子病历文本的可迁移语言模型,其输入为病历文本Din以及医学知识库KG,预训练阶段的输出为下游任务的损失,微调阶段的输出为融合后的向量表征El+1;
S22:使用预训练完成的语言模型,输入文本模板与专业术语,输出融合后的向量表征El+1,其中模板术语编码器使用Patten Attention、KG Cross Attention依次捕捉模板的上下文语义信息,模板与知识库之间的关联信息,再使用FNN层对其进行一次非线性变换,得融合后的向量表征El+1;其具体公式如下,
SelfAttention(X)=ln(mult_headh=12(X,X,X,MASK)+X)
KGCrossAttention(X,K)=ln(mult_headh=12(X,K,K,MASK)+X)
El+1=FFN(KGCrossAttention(Self Attention(El),K,MASK))
E1=layer_normal(add([xi]s_max,[pi]s_max))
其中,E1为初始向量,源于文本X经过词向量映射的[xi]s_max以及对应的位置编码[pi]s_max,K为专业术语集合SKG中每个词的向量表示,MASK为掩码矩阵,层数l∈{x|1≤x≤12}。
4.具体的,所述步骤S3中,解码器的算法包括如下步骤:
S31:解码器根据病历文本表征以及字段名表征依次采用SelfAttention、Query Cross Attention、Text Cross Attention捕捉上文信息,字段信息以及病历文本信息,通过门控单元生成对应的字段值Svalue。其具体公式如下。
SelfAttention(X)=ln(mult_headh=12(X,X,X,Tri)+X)
Dl+1=FFN(TextCrossAttention(QueryCrossAttention(SelfAttention(Dl),HN),E))
D1=layer_normal(add([xi]s_max,[pi]s_max))
S32:使用基于字典树的解码算法,当时,表示yi从词表中选词;当时,表示yi从医学文本中选词。最终模型的损失函数如下。
附图说明
读者在参照附图阅读了本发明的
具体实施方式
以后,将会更清楚地了解本发明的各个方面。其中,
图1示出依据本发明的实施方式,基于医学知识库的模板与术语分离生成式抽取模型的示意图。
具体实施方式
为了使本申请所揭示的技术内容更加详尽与完备,可参照附图以及本发明的下述各种具体实施例,附图中相同的标记代表相同或相似的组件。然而,本领域的普通技术人员应当理解,下文中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。
下面参照附图,对本发明各个方面的具体实施方式作进一步的详细描述。
图1示出依据本发明的实施方式,基于医学知识库的模板与术语分离生成式抽取模型的示意图。
基于医学知识库的模板与术语分离生成式抽取模型,其主要思路包括如下步骤:
S1:模板术语分离器,以医学知识库为字典,从医学文本S中匹配出对应的术语部分,对其进行替换,生成文本模板与专业术语集合;
S2:输入文本模板与专业术语,输出融合后的向量表征;
S3:解码器根据病历文本表征,以及字段名表征,依次采用Self Attention、QueryCross Attention、Text Cross Attention捕捉上文信息,字段信息以及病历文本信息,通过门控单元生成对应的字段值。进一步,步骤S1中生成文本模板与专业术语集合是构造问答的过程,具体方法包括如下步骤:
S11:输入为病历文本SDoc、字段名Skey,输出入为字段值Svalue,根据字段类型确定不同的处理方式。具体的,任务可分为如下三类:
(1)分类型:指待抽取的字段的候选值为有限个字段,例如“胃癌手术技术”字段,其候选值为:{“开腹手术”,“腹腔镜辅助”,“全腔镜”,“胸腹联合”};
(2)文本跨度型:指待抽取的字段为病历中的一段文本,例如“上切缘距离”,其字段值为文本中对应的一段跨度;
(3)生成型:指待抽取的字段即无候选值,也非病历中的一段文本,需要从头到尾重新生成,例如“症状列表”,其字段值为主诉文本中归一化后的症状词。
S12:如果是分类型任务,则枚举对应候选值,转换为完形填空问题;根据候选值集合建立字典树,转换为限制候选词列表的生成问题;
如果是文本跨度型任务,则枚举所有可能的文本跨度,转换为完形填空问题。解码过程引入门控机制,通过额外的神经元计算当前是否应该选择原文中的一个词,转换为可以直接生成原文中一个词的生成问题;
如果是生成型任务,解码过程中引入Beam Search算法,通过扩大一定量的搜索空间,转换为对应的生成问题;
S13:利用字典树匹配算法,以医学知识库KG为字典,从医学文本S中匹配出对应的术语部分,再对其进行替换,生成文本模板Spattern与专业术语集合SKG。
例如胃癌手术过程文本:“探查:肝、胆、胰、脾,大小肠未见异常,病灶位于胃小弯前壁”,可以分解为模板:“探查[身体器官][异常情况],病灶位于[身体器官]”与术语:“肝”、“胆”、“胰”、“脾”,“大小肠”,“胃小弯前壁”以及“未见异常”的组合。
1.获得向量表征的方法包括如下步骤:
S21:构建基于电子病历文本的可迁移语言模型,其输入为病历文本Din以及医学知识库KG,预训练阶段的输出为下游任务的损失,微调阶段的输出为融合后的向量表征El+1。
相较于RNN类型的模型,使用预训练语言模型能够捕获到更多文本的上下文信息,在面对经过S1处理后的问答类任务时可以获得更好的表现,面向电子病历文本进行预训练后能够更好的在不同专科间进行迁移。
S22:使用预训练完成的语言模型,输入文本模板与专业术语,输出融合后的向量表征El+1。模板术语编码器使用Patten Attention、KG Cross Attention依次捕捉模板的上下文语义信息,模板与知识库之间的关联信息,再使用FNN层对其进行一次非线性变换,得融合后的向量表征El+1。其具体公式如下,层数l∈{x|1≤x≤12}。
SelfAttention(X)=ln(mult_headh=12(X,X,X,MASK)+X)
KGCrossAttention(X,K)=ln(mult_headh=12(X,K,K,MASK)+X)
El+1=FFN(KGCrossAttention(Self Attention(El),K,MASK))
E1=layer_normal(add([xi]s_max,[pi]s_max))
其中,E1为初始向量,源于文本X经过词向量映射的[xi]s_max以及对应的位置编码[pi]s_max。K为专业术语集合SKG中每个词的向量表示。MASK为掩码矩阵,能够控制每个词的注意力范围,此处用于KG Cross Attention中让模板只关注对应替换位置的向量表示。
2.所述步骤S3中,解码器包括如下步骤:
S31:解码器根据病历文本表征以及字段名表征依次采用SelfAttention、Query Cross Attention、Text Cross Attention捕捉上文信息,字段信息以及病历文本信息,通过门控单元生成对应的字段值Svalue。其具体公式如下。
SelfAttention(X)=ln(mult_headh=12(X,X,X,Tri)+X)
Dl+1=FFN(TextCrossAttention(QueryCrossAttention(SelfAttention(Dl),HN),E))
D1=layer_normal(add([xi]s_max,[pi]s_max))
S32:当时,表示yi从词表中选词;当时,表示yi从医学文本中选词。最终模型的损失函数如下。
为了解决实际使用过程中,生成式的解码过程出现不在候选词范围内的值,对此情况,本发明设计了一种基于字典树的解码算法,确保生成的候选值必定在对应的范围内,算法如下。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于电子病历文本的可迁移语言模型