基于上下文语言模型和知识嵌入的医疗问答方法及系统与流程

文档序号:21802063发布日期:2020-08-11 20:57阅读:183来源:国知局
基于上下文语言模型和知识嵌入的医疗问答方法及系统与流程

本发明涉及医疗问答技术领域,特别是涉及一种基于上下文语言模型和知识嵌入的医疗问答方法、系统。



背景技术:

随着问答平台的发展,越来越多的用户倾向于通过医疗问答网站获得第一手的相关医疗信息。同时,医疗问答网站的发展也极大便利了人们的生活,缓解了传统医疗带来的看病难等问题。然而,由于网上充斥着大量信息资源,如何高效准确地搜索出问题相关答案考验着各个医疗网站。就医疗问答技术来说,如何在海量文本信息中找到问题相关答案是一个巨大的挑战,提升问答检索的性能仍然是医疗问答领域研究的重点。尽管现在已经有很多问答检索方法被应用于医疗问答中,如传统的文本检索方法以及基于深度学习的问答检索方法,但它们在医疗问答的准确性等性能方面还存在很大的欠缺。传统的问答检索方法都是基于关键词匹配进行检索,忽略了问答中的语义信息;基于深度学习的问答检索方法利用了词法句法语义特征,却忽略了外在知识信息。此外,大部分医疗问答技术都用于解决事实描述性问题,现实中用户提出的问题繁多,不仅仅局限于事实描述性问题。这使得现有的检索性能还不尽如人意。



技术实现要素:

本发明的目的是提供一种基于上下文语言模型和知识嵌入的医疗问答方法及系统,提高检索性能。

为实现上述目的,本发明提供了如下方案:

一种基于上下文语言模型和知识嵌入的医疗问答方法,包括:

获取医疗问题;

采用训练好的上下文语言模型提取所述医疗问题的上下文嵌入;

采用训练好的知识表示模型提取所述医疗问题的知识嵌入;

对所述医疗问题的上下文嵌入以及所述医疗问题的知识嵌入进行融合,得到医疗问题特征表示;

获取医疗答案库中的医疗答案,记为候选医疗答案;

采用所述训练好的上下文语言模型提取所述候选医疗答案的上下文嵌入;

采用所述训练好的知识表示模型提取所述候选医疗答案的知识嵌入;

对所述候选医疗答案的上下文嵌入以及所述候选医疗答案的知识嵌入进行融合,得到候选医疗答案特征表示;

根据所述医疗问题特征表示和所述候选医疗答案特征表示计算所述候选医疗答案与所述医疗问题的相关度;

重复“获取医疗答案库中的医疗答案,记为候选医疗答案”步骤至“根据所述医疗问题特征表示和所述候选医疗答案特征表示计算所述候选医疗答案与所述医疗问题的相关度”步骤,计算所述医疗答案库中各候选医疗答案与所述医疗问题的相关度;

根据相关度的大小确定所述医疗问题的医疗答案。

可选的,所述训练好的知识表示模型为基于知识图谱的知识表示模型。

可选的,所述知识表示模型的训练方法包括:

获取知识图谱;

从所述知识图谱对应的rdf文件抽取出对应的实体关系三元组,并将所述实体关系三元组转化成知识图谱编码文件,所述实体关系三元组包括:实体、关系、实体关系对,所述知识图谱编码文件包括实体编号文件、关系编号文件、实体关系对编号文件;

基于所述知识图谱编码文件对知识表示模型进行训练,得到训练好的知识表示模型。

可选的,所述上下文语言模型为bert模型。

可选的,所述知识表示模型为transe模型。

可选的,所述根据所述医疗问题特征表示和所述候选医疗答案特征表示计算所述候选医疗答案与所述医疗问题的相关度,具体包括:

将所述医疗问题特征表示和候选医疗答案特征表示输入训练好的深度神经网络模型,得到所述所述候选医疗答案与所述医疗问题的相关度。

可选的,所述深度神经网络模型为pacrr模型、knrm模型或drmmtks模型。

可选的,所述根据相关度的大小确定所述医疗问题的医疗答案,具体包括:

根据相关度的大小对所述候选医疗答案进行排序,并输出排序后的候选医疗答案。

可选的,所述根据相关度的大小确定所述医疗问题的医疗答案,具体包括:

输出设定数量的相关度相对高的候选医疗答案作为所述医疗问题的医疗答案。

本发明还提供了一种基于上下文语言模型和知识嵌入的医疗问答系统,包括:

医疗问题获取模块,用于获取医疗问题;

候选医疗答案获取模块,用于获取医疗答案库中的医疗答案,记为候选医疗答案;

上下文嵌入提取模块,用于采用训练好的上下文语言模型提取所述医疗问题的上下文嵌入以及所述候选医疗答案的上下文嵌入;

知识嵌入提取模块,用于采用训练好的知识表示模型提取所述医疗问题的知识嵌入以及所述候选医疗答案的知识嵌入;

医疗问题特征表示确定模块,用于对所述医疗问题的上下文嵌入以及所述医疗问题的知识嵌入进行融合,得医疗问题特征表示;

候选医疗答案特征表示确定模块,用于对所述候选医疗答案的上下文嵌入以及所述候选医疗答案的知识嵌入进行融合,得到候选医疗答案特征表示;

相关度计算模块,用于根据所述医疗问题特征表示和所述候选医疗答案特征表示计算所述候选医疗答案与所述医疗问题的相关度;

医疗答案确定模块,用于根据相关度的大小确定所述医疗问题的医疗答案。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的医疗问答方法及系统结合上下文语言模型和知识嵌入对医疗问题和候选医疗答案提取了上下文嵌入和知识嵌入,并将医疗问题的上下文嵌入和知识嵌入进行融合,得到医疗问题特征表示,将候选医疗答案的上下文嵌入和知识嵌入进行融合,得到候选医疗答案特征表示,最后根据候选医疗答案特征表示和医疗问题特征表示的相关度确定最终的医疗答案。本发明利用上下文语义信息及外在知识信息辅助提高医疗问答检索的性能,提高了对医疗问题的适应性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的基于上下文语言模型和知识嵌入的医疗问答方法流程示意图;

图2为本发明实施例2提供的基于上下文语言模型和知识嵌入的医疗问答系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明的第一方面提供了一种基于上下文语言模型和知识嵌入的医疗问答方法。图1为本发明实施例1提供的基于上下文语言模型和知识嵌入的医疗问答方法流程示意图,如图1所示,本实施例提供医疗问答方法包括以下步骤:

步骤101:获取医疗问题;

步骤102:采用训练好的上下文语言模型提取所述医疗问题的上下文嵌入;

步骤103:采用训练好的知识表示模型提取所述医疗问题的知识嵌入;

步骤104:对所述医疗问题的上下文嵌入以及所述医疗问题的知识嵌入进行融合,得到医疗问题特征表示;

步骤105:获取医疗答案库中的医疗答案,记为候选医疗答案;

步骤106:采用所述训练好的上下文语言模型提取所述候选医疗答案的上下文嵌入;

步骤107:采用所述训练好的知识表示模型提取所述候选医疗答案的知识嵌入;

步骤108:对所述候选医疗答案的上下文嵌入以及所述候选医疗答案的知识嵌入进行融合,得到候选医疗答案特征表示;

步骤109:根据所述医疗问题特征表示和候选医疗答案特征表示计算所述候选医疗答案与所述医疗问题的相关度;

重复步骤105至步骤109,计算医疗答案库中各候选医疗答案与所述医疗问题的相关度;

步骤110:根据相关度的大小确定所述医疗问题的医疗答案。

实施例中,首先获取医疗问题q,并读取系统数据库中所有的候选医疗答案{d1,d2,…,dn}。在获取了问题q以及候选答案{d1,d2,…,dn}对应的文本描述的基础上,选取某一候选答案di的文本内容作为方法的初始化输入内容。

上下文语言模型可以为bert模型,bert模型提取医疗问题q以及候选答案di的上下文嵌入的过程如下:首先,对q以及di的文本进行wordpiece分词处理;然后,连接q以及di分词后的序列wq以及wdi到序列w中,将连接好的序列w转换为分词嵌入、位置嵌入、类型嵌入三部分嵌入信息,并输入多层双向transformer网络中进行计算;最后,获取每层transformer的输出,并从输出中分别抽取出q以及di对应的上下文嵌入cq及cdi。

知识表示模型可以为基于知识图谱的知识表示模型。作为一种实施方式,所述知识表示模型的训练方法包括以下步骤:收集大量的知识图谱;从所述知识图谱对应的rdf文件抽取出对应的实体关系三元组,并将所述实体关系三元组转化成知识图谱编码文件,所述实体关系三元组包括:实体、关系、实体关系对,所述知识图谱编码文件包括实体编号文件、关系编号文件、实体关系对编号文件;基于所述知识图谱编码文件对知识表示模型进行训练,得到训练好的知识表示模型。这里的知识表示模型可以为传统的知识表示模型transe模型,将生成的知识图谱编码文件输入transe模型中,获取知识图谱对应的知识表示e。然后,结合实体识别技术(ner),如spacy工具包和tagme工具中的ner模块,识别医疗问题q以及候选医疗答案di中包含的实体,并链接到知识图谱中对应实体,分别生成实体序列eq和edi。最后,根据q以及di识别出的实体序列eq和edi,索引到知识表示e中对应实体的向量作为知识嵌入kq及kdi。

作为一种实施方式,步骤104和步骤108中上下文嵌入和知识嵌入融合的方法如下:将上下文嵌入及知识嵌入作为不同的矩阵,分别对医疗问题和候选医疗答案的上下文嵌入及知识嵌入进行融合,如给定(cq,kq)及(cdi,kdi),分别使用转换参数矩阵m∈rc*d和n∈rk*d(c和k分别为上下文嵌入及知识嵌入的向量空间维度)将上下文嵌入和知识嵌入投射到同一向量空间rd中,获取新的特征表示ckq,ckdi。详细计算过程如下:

作为一种实施方式,步骤109具体包括:

将所述医疗问题特征表示和候选医疗答案特征表示输入训练好的深度神经网络模型,深度神经网络模型会先计算出分词粒度的相关度矩阵r(r=(ckq)t*ckdi),然后,通过卷积神经网络的多卷积核卷积操作及高斯过滤器,提取相关度矩阵r中的相关度抽象特征向量,输入到多层感知机中,得到问答相关度si。其中,所述深度神经网络模型可以采用现有的pacrr模型、knrm模型或drmmtks模型。

作为一种实施方式,步骤110可以为:根据相关度的大小对所述候选医疗答案进行排序,并输出排序后的候选医疗答案。在另一种所述方式中,步骤110可以为:输出设定数量的相关度相对高的候选医疗答案作为所述医疗问题的医疗答案。

本实施例提供的医疗问答方法使用python语言进行编写,结合深度学习领域的pytorch深度学习框架和nvidiagpu服务器算力,通过端对端的监督学习对医疗问答任务进行学习,对用户提出的医疗问题,能够对答案实现有效的检索,提高了医疗问答检索的效率。

本发明中的上下文模型通过大量文本的无监督预训练,结合文本内容预测以及连续语句预测两个任务,学习到了大量文本语义信息。同时,结合采用知识图谱进行无监督预训练得到的知识表示模型,注入了更多的外源知识,能发现问答中潜在的关联信息,进一步提升了我们模型的性能。其次,本发明的问答相关度更具解释性,并同时实现了分词、实体等细粒度的相关度计算。该方法首先通过wordpiece分词以及ner(实体识别)技术,分别获取了问答中分词及实体粒度的嵌入表示。在此基础上,通过相似度计算得到了相关度矩阵,通过可视化相关度矩阵,能够使得问答相关性易于解释。

对本发明提供的方法的效果进行验证,验证实验结果如表1所示。

表1:

其中,feature-based,knowledge-embedding,context-based是基准模型。从实验结果中可以看出,本发明提供的方法ck-hqa(基于上下文语言模型和知识嵌入的医疗问答方法)相比其他的基准模型都有明显的提高,在所有实验指标上都取得了最优的结果。

本发明的第二方面提供了一种基于上下文语言模型和知识嵌入的医疗问答系统。图2为本发明实施例2提供的基于上下文语言模型和知识嵌入的医疗问答系统结构示意图,如图2所示,本实施例提供的医疗问答系统包括:

医疗问题获取模块201,用于获取医疗问题。

候选医疗答案获取模块202,用于获取医疗答案库中的医疗答案,记为候选医疗答案。

上下文嵌入提取模块203,用于采用训练好的上下文语言模型提取所述医疗问题的上下文嵌入以及所述候选医疗答案的上下文嵌入;其中,上下文语言模型可以为bert模型。

知识嵌入提取模块204,用于采用训练好的知识表示模型提取所述医疗问题的知识嵌入以及所述候选医疗答案的知识嵌入;其中,所述知识表示模型为transe模型。

医疗问题特征表示确定模块205,用于对所述医疗问题的上下文嵌入以及所述医疗问题的知识嵌入进行融合,得到融合后的医疗问题特征表示。

候选医疗答案特征表示确定模块206,用于对所述候选医疗答案的上下文嵌入以及所述候选医疗答案的知识嵌入进行融合,得到融合后的候选医疗答案特征表示。

相关度计算模块207,用于根据所述医疗问题特征表示和候选医疗答案特征表示计算所述候选医疗答案与所述医疗问题的相关度。其中,相关度的计算可以采用训练好的深度神经网络模型完成,所述深度神经网络模型可以为pacrr模型、knrm模型或drmmtks模型。

医疗答案确定模块208,用于根据相关度的大小确定所述医疗问题对应的医疗答案。

本实施例提供的医疗问答系统能够对用户提出的医疗问题的答案进行有效的检索,提高医疗问答检索的效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1