一种基于病人意图的语义对齐方法与流程

文档序号:36100723发布日期:2023-11-21 13:28阅读:41来源:国知局
一种基于病人意图的语义对齐方法与流程

本技术涉及医疗保健和自然语言处理领域,具体地说是一种基于病人意图的语义对齐方法。


背景技术:

1、传统技术架构

2、目前在医疗保健领域,病人描述的对齐任务是一项重要的技术问题。在这个任务中,病人对于同一种病症的不同描述往往存在着各种差异,这给医生的诊断和治疗工作带来了很大的困难。为了解决这个问题,现有的技术方案通常采用基于规则或者基于统计的方法来进行病人描述的对齐。其中,基于规则的方法主要是通过人工编写规则来匹配不同的病症描述,这种方法往往存在着较高的误差率和工作量。而基于统计的方法则是通过计算病人描述之间的相似度来进行匹配,但是这种方法受限于特征提取和计算模型的能力,无法准确地匹配不同病症描述之间的关系。

3、现有技术方案存在的技术缺陷:

4、特征提取能力受限:现有技术方案通常采用传统的特征提取方法,比如n-gram模型或tf-idf模型来提取病人描述的特征。但是这些方法无法捕捉到病人描述之间的语义信息,难以进行有效的匹配。

5、相似度计算不准确:现有技术方案往往采用余弦相似度或者jaccard相似度来计算病人描述之间的相似度,但是这种方法存在着词汇消歧和语义歧义等问题,无法准确地计算病人描述之间的相似度。

6、模型可扩展性差:现有技术方案通常是基于传统的机器学习算法来实现的,这些算法往往需要手动设计特征和选择合适的算法,无法自适应地适应不同的病症描述对齐任务。

7、造成这些缺陷的原因:

8、有的技术方案还有一个缺陷是无法处理语义相似但不同的描述,例如同一种病症可能有不同的表述方式,例如“头疼”、“头痛”、“头部不适”等,这些表述方式在语义上非常相似,但是传统的文本匹配算法往往不能很好地将它们匹配在一起,导致无法对病人的不同描述进行有效的对齐。这个问题的根源是传统的文本匹配算法无法很好地捕捉到语义上的相似性,而且传统算法的特征提取方法很容易受到文本表述的局限性和数据集的偏差性的影响,导致算法在真实应用场景中的性能下降。

9、因此,我们需要一种新的方法来解决这个问题。本发明提出了一种基于神经网络和文本嵌入技术的病人描述对齐方法,能够有效地处理语义相似但不同的病症描述,实现对病人描述的准确对齐,提高医疗诊断的准确性和效率。


技术实现思路

1、本发明旨在提供一种病人意图对齐的方法,解决现有技术方案在进行医疗领域的病症描述对齐时存在的不足之处。现有技术方案在进行病症描述对齐时往往需要大量的人工干预和耗费时间,且准确率也难以保证。因此,本发明旨在通过自然语言处理中的多模型融合技术,提高病症描述对齐的自动化程度和准确性,为医疗行业的精准诊断和治疗提供支持。

2、为了达到上述目的,本发明采用如下技术方案:

3、一种基于病人意图的语义对齐方法,包括以下步骤:

4、s1.数据预处理:

5、该发明的数据是爬取好医生在线等医疗在线网站的问答数据,共爬取100000条问答数据。首先读取数据集,并进行数据清洗和预处理,包括去除无用字符、标点符号、转化为小写等。之后利用chatgpt4接口将相同语义的句子随机放到同一个句子对中。然后对每条句子做分词处理,使用jieba分词库进行中文分词。

6、s2.数据划分:

7、将预处理后的数据集按照一定的比例划分为训练集和测试集。并在训练集上进行kfold交叉验证;

8、s3.模型设计:

9、该模型主要包括三个部分:输入编码器、交互层和输出层。

10、首先是输入编码器,该层使用预训练的uer-py+nezha模型对输入的文本序列进行编码,其中[cls]句子1[sep]句子2的结构被采用,使得两个句子之间有一个分隔符[sep]进行分隔。这样可以使得模型能够更好地理解两个句子之间的关系。

11、接下来是交互层,这一层的作用是在两个输入句子之间建立交互关系。该层采用基于注意力机制的模型,bi-attention和self-attention。这一层的输入是两个编码后的句子向量,输出是一个交互向量。

12、最后是输出层,该层包括一个全连接层和一个softmax层。这一层的作用是将交互向量映射到一个预测概率,用于判断两个句子之间是否匹配。全连接层将交互向量映射到一个低维空间,然后经过softmax函数,输出两个句子之间匹配的概率。

13、总体来说,该模型的设计主要是采用了预训练的uer-py+nezha模型进行输入编码,并且采用基于注意力机制的交互层建立两个句子之间的交互关系。最后通过输出层将交互向量映射到匹配概率。;

14、s4.集成学习:

15、通过将预训练模型与不同的词向量结构相结合,来提高模型在处理数据方面的效果。通常情况下,每种预训练模型都有其擅长的数据处理领域和任务,因此在使用多模型的方法时,可以充分利用不同预训练模型的优势。每种词向量也有各自的特征,腾讯词向量基于大规模互联网文本数据进行训练得到的。腾讯词向量能够捕捉到词汇的语义和关联关系,可以用来表示文本的语义特征。fasttext词向量是facebook开源的一个词向量训练工具,它基于词袋模型和n-gram特征,并结合了层次softmax和负采样等技术。fasttext词向量在训练时考虑了子词信息,可以更好地处理未登录词和词形变化,适用于各种自然语言处理任务。再集成学习部分。我将uer-py和nezha模型融合,就是句子中的每个词过一遍uer-py模型得到一个词向量,再过一遍nezha模型得到另一个词向量。又用腾讯词向量和fasttext词向量拼接的方式得到第三种词向量。这三种词向量都包含的句子的信息,但侧重点有所不同,将三种词向量融合(加权平均)得到最后的词向量。

16、将不同的词向量融合到预训练模型中,可以充分利用它们各自的优势,增强对文本特征的表达能力。这种方式可以提供更丰富、更全面的特征表示,从而有助于提高模型的性能和泛化能力。本发明采用的是uer-py+nezha模型再拼接上腾讯词向量+fasttext词向量的方式,将两种词向量拼接到uer-py+nezha模型中得到三种词向量,再将三种词向量融合到一起,从而提高模型的性能和泛化能力,使得将句子语义对齐时的准确率更高。

17、s5.后处理:

18、通过对模型预测结果进行一系列处理,以获得更加合理的输出结果。在该项目中,后处理的主要目的是过滤掉一些不合理的预测结果,并进行一些额外的处理,以提高模型的性能和稳定性;

19、上述技术方案中:为了实现了比较两个句子是否相似的方法。拼接在一起是为了让模型学习。在用大量数据训练完成后,模型可以分别两句话的语义是否一致,从而将语义相同的句子对齐到一起。所述步骤s1包括以下步骤:

20、步骤1:读取爬取的数据文件,文件包括训练集、验证集和测试集;

21、步骤2:对于每个句子,先进行分词处理,使用jieba分词库进行中文分词;

22、步骤3:将分好的词转换成数字id,使用中文维基百科预训练语料库进行embedding,实现将单词映射到向量。

23、步骤4:对于步骤3embedding后的每个句对(通过gpt的接口让gpt对齐数据,获得相同语义的句子对),通过tokenization,将两个句子拼接在一起,中间插入一个[sep]符号,形成一个输入序列,同时对输入序列进行padding和truncation,保证序列长度一致。对输入序列进行padding和truncation是为了保证序列长度一致,使得输入能够适应模型的要求和限制。这是因为在训练深度学习模型时,需要将数据以batch的形式输入模型进行并行处理,而每个batch中的样本需要具有相同的维度。因此,需要将序列长度调整为一致的固定长度。

24、上述技术方案中:为了利用全部数据,获得更多信息,降低方差,提高模型性能,所述步骤s2包括以下步骤:

25、步骤1:将预处理后的数据集,按照一定的比例划分为训练集和测试集;

26、步骤2:将训练集分成k份,每次取其中一份作为验证集,剩余的k-1份作为训练集进行训练;

27、步骤3:训练完成后,在验证集上进行测试,并记录验证集上的评估指标,如准确率、f1分数等;

28、步骤4:重复步骤2和3,每次将不同的一份作为验证集,直到每份数据都被用作验证集一次;

29、步骤5:将每次交叉验证的结果进行平均,得到最终的模型评估指标;

30、上述技术方案中:所述步骤s3包括以下步骤:

31、步骤1:embedding层:使用uer-py和nezha模型作为编码器,将输入的句子映射到向量表示,uer-py模型作为预训练语言模型,学习到输入句子中的词语之间的关系和上下文信息,nezha模型则学习到输入句子的时序信息,这两者结合起来可以更好地表示句子的含义;

32、步骤2:word representation层:对uer-py和nezha编码层的输出进行降维处理,从而减小模型复杂度,采用全连接层对每个词向量进行线性映射,将预训练模型输出的高维词向量降维到更低维度的向量表示;

33、步骤3:双向lstm层:将降维后的词向量输入双向lstm模型中,通过lstm模型的记忆单元和门控单元,可以捕捉到词序列中的长距离依赖关系,从而提取更加丰富的语义特征;

34、步骤4:local inference modeling层:本层通过比较句子a和句子b中每个词的向量,得到两句话之间的交互信息。这里使用了两种计算方式:一是两个词向量的差异特征,另一个是两个词向量之间的交互特征。这里使用了soft-align attention机制,可以根据每个词对相应词的注意力权重进行相应加权,从而得到更准确的特征向量。

35、步骤5:inference composition层:该层用于获取文本匹配的全局特征信息。具体地,通过uer-py和nezha模型对双向lstm输出的局部推理信息特征及其上下文信息特征进行捕获。最后通过最大池化与平均池化进行特征融合,然后通过mlp进行特征映射,得到最终的文本匹配结果;

36、通过测试将不同的模型融合在一起,最终发现预训练模型使用uer-py+nezha重复五次再拼接上腾讯词向量+fasttext词向量得到96%的准确率。

37、上述技术方案中:为了使用uer-py和nezha模型融合,再拼接上腾讯词向量和fasttext词向量得到最高的对齐准确率,所述步骤s4包括以下步骤:

38、步骤1:使用uer-py和nezha模型,分别训练5个uer-py模型和nezha模型,得到10个模型,每个模型都有不同的初始权重和训练历史,训练的过程中需要指定模型的参数、超参数以及训练数据和验证数据的路径,使用gpu来加速训练过程;

39、步骤2:训练完成后,将测试数据输入到每个模型中进行预测,并得到10个预测结果,在进行预测的过程中,保持每个模型的参数一致,以保证结果的可比性,在预测的过程中,使用batch来进行加速;

40、步骤3:使用腾讯词向量和fasttext词向量库加载对应的词向量模型,并获取待比较文本中每个词的对应词向量,这些词向量可以作为静态的词级特征(句子中的每个词对应的词向量,如果两个句子的词是一样的,那么词级特征是100%相同的。);

41、步骤4:对文本进行拼接:将预训练模型的文本表示和腾讯词向量、fasttext词向量拼接在一起,采用将预训练模型的向量、腾讯词向量和fasttext词向量进行加权平均,根据病人意图对齐任务的需求和实际效果,对不同词向量的权重进行测试,最终在预训练模型占比50%,腾讯词向量占比30%,fasttext词向量占比20%时候得到对齐准确率最高的权重分配方式;

42、步骤5:在将词向量进行加权平均后得到最终的预测结果。并在加权后进行归一化处理;

43、上述技术方案中:所述步骤s5包括以下步骤:

44、步骤1:结果投票:将不同模型预测的结果进行投票,选择得票数最多的作为最终预测结果。帮助降低单个模型预测的错误率;

45、步骤2:后验概率校准:校准模型输出的概率分布,使得它更符合真实情况。这可以提高模型的可靠性和准确性;

46、步骤3:阈值调整:将10个预测结果进行加权平均得到最终的预测结果。并在加权后进行归一化处理,通过实验测试,一遍遍的调整,一直到准确率最高的点;

47、步骤4:结果后处理:对模型预测结果进行进一步处理,比如根据实际情况进行修正、去除不合理的结果等。这可以提高模型的稳定性和鲁棒性。

48、因为本发明采用上述技术方案,因此具备以下有益效果:

49、一、数据预处理部分:

50、在通过对原始数据进行清洗、去噪、分词、词向量转换等处理,提高了模型的输入质量和准确度。

51、二、数据划分部分:

52、采用k-fold交叉验证方法,充分利用数据,提高了模型的泛化能力和鲁棒性。

53、三、模型设计部分:

54、通过采用多种模型,如uer-py,nezha等,以及双向lstm、local inferencemodeling、inference composition等技术手段,提高了模型的学习能力和表达能力,使得模型更加准确地判断句子语义是否匹配。

55、四、集成学习部分:

56、采用了由thunlp实验室开发uer-py模型和由华为noah’s ark实验室开发的中文预训练模型nezha进行融合,以获得更好的性能和泛化能力。再将uer-py+nezha各5折共10个模型得到的预训练模型与腾讯词向和fasttext词向量拼接起来,使得模型的预测结果更加准确可靠。

57、六、后处理部分:

58、通过对模型预测结果进行后处理,如阈值调整、结果过滤等,进一步提高了模型的性能表现和可靠性。

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