一种基于prompt的文本相似度计算方法及系统与流程

文档序号:31853586发布日期:2022-10-19 01:57阅读:379来源:国知局
一种基于prompt的文本相似度计算方法及系统与流程

1.本发明涉及自然语言处理的技术领域,特别是涉及一种基于prompt的文本相似度计算方法及系统。


背景技术:

2.在智能质检领域,经常需要对两句话进行相似度分析,以判断两文本对话之间的相似程度。现有技术中常采用的相似度算法可以大致分为三类:无监督相似度计算、有监督相似度计算,以及有监督加无监督相似度计算。
3.其中,有无监督相似度计算通过对大规模语料库进行训练得到词向量,随后对文本进行分词等操作,得到每个词对应的词向量,最后对文本的所有词的词向量进行求和计算,获得该文本的句子向量。通过对两文本的句子向量进行距离度量获得文本之间的相似度值。
4.有监督相似度计算通过在具有标注语料的条件下进行模型建模,利用机器学习和深度学习算法进行端到端模型训练,直接求解出文本的相似度值。
5.有监督加无监督相似度计算将无监督学习和有监督学习结合起来,用于提高无监督学习的准确率并且降低有监督学习的时间成本,无监督学习的弊端在于句向量的生成和生成的句向量的质量差,可以使用有监督学习的方法去获取一个文本的句向量,而对于有监督学习的时间复杂度太高的问题,可以使用蒸馏的方式来降低时间成本。
6.但是现有技术中采用的相似度算法在实现相似度计算过程中,存在以下缺点:1.采用预训练语言练模型时,存在过高的时间消耗成本,同时还需要大量的标注语料进行训练和模型的微调;2.采用孪生结构将两个文本投影到相同的网络结构中进行特征提取后,在通过距离计算分析相似度的方式,会出现维度高、得分低,或者维度低、得分高的情况,而且当出现预料没有文本数据时,效果不佳;3.采用lstm作为时序模型时,在并行处理上存在一定的劣势,同时模型复杂,计算量较大费时;4.基于stacking的方式虽然效果好,但是模型的结构会非常复杂,计算量大,耗费时间长;5.采用预训练语言模型的方式,存在模型结构复杂、参数过多、网络结构固定、应用场景受限、优化空间有限的问题;6.采用bi-lstm的方式,过于依赖与上一时刻和下一时刻的状态,速度慢,且无法进行并行处理。


技术实现要素:

7.发明目的:提出一种基于prompt的文本相似度计算方法及系统,以解决现有技术存在的上述问题。针对文本相似度分析,引入prompt模块分析的新模式,优化了分析模型,
在小样本或零样本场景下,可以有效提高模型效果,使得预训练语言模型提取的特征更自然地用于下游任务,特征质量高。
8.技术方案:第一方面,提出了一种基于prompt的文本相似度计算方法,该方法具体包括以下步骤:步骤1、构建数据读取模块,并读取数据库中的源数据;步骤2、对源数据进行预处理分析,获得第一数据;步骤3、将第一数据传输至构建的prompt模块中,获得第二数据;步骤4、将第二数据传输至构建的预训练语言模型中,获得第三数据;步骤5、构建特征深度提取模块,并对第三数据进行特征提取,获得数据特征集;步骤6、构建相似度分析模块,并对获取到的数据特征集进行相似度分析;步骤7、输出相似度分析结果。
9.在第一方面的一些可实现方式中,当所述源数据为语音数据时,在进行预处理分析之前,还包括语音数据转文本信息的操作;随后构建纠错模块对完成转换后的文本信息进行纠错预处理。
10.实现文本信息纠错的过程中,具体包括以下步骤:步骤2.1、构建纠错模块并接收完成转换后的文本信息,提取query特征;步骤2.2、将所述query特征转换为xlnet中文模型字典里的字典序号;所述字典序号为:句子特征和位置特征;步骤2.3、判断文本信息长度与序列最大长度的数值大小;当文本信息长度小于序列最大长度时,补0直到长度满足后跳转至步骤2.4;反之,直接跳转至步骤2.4;步骤2.4、添加拼音向量和词性向量至文本信息中;步骤2.5、计算query特征中每个字符出现的概率;步骤2.6、根据计算出的概率,找出疑似错字,并加入构建的疑似错误集中;步骤2.7、将所述疑似错误集中的数据引入纠正候选池中;步骤2.8、利用个句子困惑度对纠正候选池中的数据进行评价,并排序;步骤2.9、选取困惑度最小的数据作为最终的纠错结果。
11.利用所述prompt模块获取第二数据的过程中,具体包括以下步骤:步骤3.1、构建文本信息转化函数;步骤3.2、利用所述转化函数获取prompt化的文本数据;步骤3.3、输出prompt化的文本数据。
12.将获取到的第二数据传输至构建的预训练语言模型中,实现特征的向量化表示,并改进行特征的自动提取;为了提高预训练语言模型的分辨能力和鲁棒性,进一步在预训练语言模型中添加对抗训练模块。
13.采用构建的特征深度提取模块,对文本信息进行特征提取的过程中,采用注意力层从关键的部分进行特征提取,得到深层次的语义特征信息。针对所述注意力层的数量偏多导致梯度爆炸和消失的现象,在特征深度提取模块前后加上残差网络结构。
14.对获取到的数据特征集进行相似度分析时,采用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小;当余弦值越接近1,夹角越接近0度,两个向量越相似;反之,则越不相似。
15.对于两个n维的样本点和,,那么、两者之间的夹角余弦值表达式为:当相似度越小时,距离越大;相似度越大,距离越小。
16.第二方面,提出一种基于prompt的文本相似度计算系统,用于相似度计算方法,该系统具体包括以下模块:数据读取模块,用于读取数据库中待分析的数据;预处理模块,用于对读取到的数据进行预处理;prompt模块,用于实现数据的prompt化处理;预训练模块,用于对数据进行自动特征抽取;特征深度提取模块,用于对文本信息进行特征提取;相似度比对模块,用于比对文本之间的相似度程度。
17.有益效果:本发明提出了一种基于prompt的文本相似度计算方法及系统,针对文本相似度分析,引入prompt模块分析的新模式,优化了分析模型,在小样本或零样本场景下,可以有效提高分析结果。另外,因为任务形式和预训练语言模型本身相适应,本发明提出的技术方案不需要为下游任务新增一个分类器,仅通过建立一个简单的映射,将prompt范式的输出转变成下游任务需要的输出形式即可,达到在不同下游任务中,可以方便进行调节的目的,比预训练更方便。
附图说明
18.图1为本发明的数据处理流程图。
19.图2为本发明纠错模块示意图。
20.图3为本发明文本拼接流程图。
21.图4为本发明attention结构示意图。
具体实施方式
22.在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
23.在自然语言处理任务中,经常需要判断两篇文档是否相似、计算两篇文档的相似程度。例如在实际应用,基于聚类算法发现微博热点话题时,需要度量各篇文本的内容相似度,然后让内容足够相似的微博聚成一个簇;在问答系统中,会准备一些经典问题和对应的答案,当用户的问题和经典问题很相似时,系统直接返回准备好的答案;在监控新闻稿件在互联网中的传播情况时,把所有和原创稿件相似的文章,都看作转发,进而刻画原创稿件的传播范围;在对语料进行预处理时,需要基于文本的相似度,把重复的文本给挑出来并删掉等等。总之,文本相似度作为一种非常有用的工具,在实际应用中可以解决很多问题。
24.申请人认为,近几年,自然语言处理技术发展迅猛,特别是bert预训练语言模型的出现,开启了自然语言处理技术领域新一轮的发展。从bert预训练语言模型开始,对预训练语言模型进行微调已经成为了整个领域的常规范式。
25.自预训练语言模型的兴起后,在这个范式下,一个具有固定架构的模型通过预训练作为语言模型用来观测文本数据的概率,且现在的原始文本数据足够丰富,这些语言模型都是在比较大的数据集上训练完成,并在特定的任务的目标函数对模型进行微调,将预训练语言模型适用于不同的任务当中。但是这种方式有个通病,针对不同的任务,需要通过微调模型来优化模型效果。
26.针对上述存在的问题,prompt的过程由原来的“预训练,微调”改成了“预训练、prompt和预测”,通过重新形式化下游任务,使其在文本prompt的帮助下在原始语言模型训练期间解决预测任务。因此,选择合适的prompt,可以操作模型的行为,这种方法的优点就是给定一组合适的prompt,以完全无监督的训练方式训练单个语言模型就能够解决大量任务。基于合适的prompt,本技术针对文本分析提出一种基于prompt的文本相似度计算方法及系统,相比于现有技术,在小样本或零样本场景下,可以有效提高分析结果,同时在推断阶段也更便于预测。
27.实施例一在一个实施例中,针对语音文本的相似度分析的需求,提出一种基于prompt的文本相似度计算方法,如图1所示,该方法具体包括以下步骤:步骤1、构建数据读取模块,并读取数据库中的源数据;步骤2、对源数据进行预处理分析,获得第一数据;步骤3、将第一数据传输至构建的prompt模块中,获得第二数据;步骤4、将第二数据传输至构建的预训练语言模型中,获得第三数据;步骤5、构建特征深度提取模块,并对第三数据进行特征提取,获得数据特征集;步骤6、构建相似度分析模块,并对获取到的数据特征集进行相似度分析;步骤7、输出相似度分析结果。
28.其中prompt模块用于实现数据的prompt化,即在预训练语言模型中给予其一个线索,通过在输入端添加额外的文本,更好的挖掘预训练语言模型的能力,找到预训练语言模型的上边界。
29.优选实施例中,针对数据库中获取到的语音源数据,首先将源数据转化成文本信息;其次,利用纠错模块对转化而来的文本信息进行纠错;再次,将完成纠错的数据传输至prompt模块;从次,在数据prompt化后,将数据传输至预训练语言模型中,实现特征的向量化表示,并在特征深度提取模块中,对数据进行自动特征提取,获取高价值信息;最后,利用相似度分析模块对获取到的特征进行相似度分析,并将结果输出。
30.本实施例针对文本相似度分析,引入prompt模块的新模式,优化分析过程,使得提取到的特征质量更高,且可以更自然地用于预训练语言模型的下游任务。
31.实施例二在实施例一基础上,在质检的实际应用过程中,获取到的语音源数据可以是客服与客户之间的正常对话录音。根据质检需求,将客服在服务客户过程中对客户的话,与标准话术模版进行相似度匹配,通过将匹配结果作为智能质检中一项关键评价指标,实现对服
务过程进行评价。
32.现有技术在实现语音信息到文本信息的转化过程中,常采用asr技术进行数据形式的转换,但是根据实际应用结果,发现asr技术生成的文本内容可能会包含错误信息,如果任由其发生而不改正,会导致错误不断传递,继而导致后续的用户意图理解出现偏差,影响最终的分析效果。因此,本实施例在接收到源数据后,通过构建的纠错模块进行预处理分析,在原有基础上的句子输入端,增加拼音向量和词性向量,提高纠错模块的性能,特别是对谐音字词和混淆字词的学习和辨别能力。
33.具体的,如图2所示,实现文本纠错的过程包括以下步骤:步骤1、接收待进行纠错的文本数据,并提取query特征;步骤2、根据提取到的query特征,将query特征中每个字符进行特征转换,并加入拼音向量和词性向量;步骤3、计算query特征中每个字符出现的概率;步骤4、根据计算出的概率,找出疑似错字,并加入构建的疑似错误集中。
34.步骤5、将疑似错误集中的数据引入纠正候选池中;步骤6、利用句子困惑度对纠正候选池中的数据进行评价,并排序;步骤7、选取困惑度最小的数据作为最终的纠错结果,并输出。
35.其中,句子困惑度越低表示句子越流畅,所以取句子困惑度最小的那个,作为最后的答案。句子困惑度的获取方式为:将纠正候选池中的数据逐个替换到错误位置上,生成新的句子,并提取新句子的特征,计算每个字出现的概率,然后将每个字出现的概率取log累加起来,再求平均,最后取反,即可得到句子困惑度。
36.优选实施例中,在纠错模块实现疑似错字提取的过程中,采用xlnet模型,首先接收待进行纠错的文本数据,并提取query特征;其次,将query中的每个字符转换成其在xlnet中文模型字典里的字典序号,即为句子的特征,还有位置特征position embedding,当句子长度小于序列最大长度时,则补0直到长度满足,同时加入拼音向量和词性向量;再次,在xlnet模型框架的基础上添加一个softmax层,将句子特征从xlnet的输入层输入到特征提取模块中,在通过中间隐藏层复杂的计算后,获得softmax层的输出结果,即xlnet字典中每个字出现在句子每个位置的概率,计算过程中涉及到的矩阵维度大小为:序列最大长度*xlnet字典大小;从次,在剔除白名单中出现的字符的概率后,根据计算出的概率,对剩下的所有字符的概率计算其平均绝对离差值,并且通过变量值与其中位数的离差除以平均绝对离差计算标准得分,将概率小于平均绝对离差并且标准得分大于阈值的字符作为疑似错字判断条件,找出疑似错字,并将疑似错字加入构建的疑似错误集中;最后,进入到纠正候选池中,利用句子困惑度来作为评价函数指标,并以此进行排序,选取句子困惑度最小的那个,作为最后纠错后的文本,用于后续分析。
37.本实施例针对语音转文本过程中的错误信息,通过纠错模块的引入,实现如配副眼睛-配副眼镜的谐音字词纠错、流浪织女-牛郎织女的混淆字词纠错、想象难以-难以想象的语法纠错,以及高梁-高粱的形似字纠错。
38.实施例三在实施例一基础上,针对预训练语言模型在微调过程中会出现的灾难性遗忘问题,针对经过预处理后的数据进行prompt化操作,通过设计不同的输入形态,激发预训练语
言模型的潜力,得到任务相关的输出。实现prompt化操作的过程为采用函数实现输入文本到prompt化的转化,即。
39.其中函数的数据处理过程具体包括以下步骤:步骤1、构建一个文本格式的模板;该模板包含:用于填充输入文本的空位,以及填充生成答案文本的空位;步骤2、将接收到的文本填充至对应的空位中。
40.在进一步的实施例中,执行prompt化,实现两个文本数据拼接的过程中,如图3所示,除了第一文本sent1和第二文本sent2,还包括其他元素。在添加的元素中,[cls]标志被放在句子的首位,表示可以用于后续的任务,[sep]标志用于分开两个输入句子,[mask]标志用于遮盖句子的一些单词,并作为后续预测的部分,[token]表示单词,占位符。
[0041]
优选实施例中,针对文本“今天天气[x],真是个[y]日子”根据标签词前后添加填充位《x》《y》,然后将其送入到prompt模型中,prompt模型会自动在填充位生成序列,最后将标签词转换成[mask]标签,最终形成模版,具体过程中采用beam search的方法生成多个候选模版,然后对每个候选模版利用验证集进行微调,选择其中一个最佳模版。
[0042]
例如文本一的模版为:请问是否还有其他业务需要办理。文本二:还要办其他业务吗。经过prompt化的版本为:[cls]请问是否还有其他业务需要办理[sep]还要办其他业务吗[sep]两句话[mask]关系[sep]。
[0043]
其中[mask]的地方有两种选择:有或者无。在整体的数据处理过程中,根据学习去判断这两句话是否是相关的,并返回概率值,如果大于一个阈值,则表示两句话有关系,如果小于阈值,则表明两句话没有关系。在两句话拼接的后面,加入提示语(prompt),可以更好地学习两者之间的区别。
[0044]
实施例四在实施例一基础上,近些年来bert、gpt、ernie等大规模预训练语言模型取得了巨大的成功,成为人工智能领域的一大里程碑。由于复杂的预训练目标和巨大的模型参数,大规模的预训练语言模型可以有效地从大量标记和未标记数据中获取知识,通过对模型的微调,实现在模型中学习知识和信息的目的。针对待分析的源数据,在数据经过prompt化后,进入到预训练语言模型中进行特征的向量化表示,并使用线性或非线性转换对数据进行自动特征抽取。
[0045]
现有技术中常采用预训练语言模型的backbone进行特征提取,但是在实际应用中,某些文本之间存在一定的相似性,但是句子表达的含义却不相同,因此为了增加预训练语言模型的分辨能力,提高模型的鲁棒性,进一步引入对抗训练模块fgn,通过人工生成相类似的真实样本,提升模型的健壮性和泛化能力,增加模型的区分能力和鲁棒性。
[0046]
具体的,增加预训练语言模型区分能力和鲁棒性的过程中,通过在embedding层加入扰动实现,假设输入的文本序列的embedding向量为,则embedding层的扰动为:
式中,表示损失函数在方向上的梯度;表示超参数,优选为取值为1.0;计算的前向损失,并通过反向传播得到梯度,根据embedding矩阵的梯度计算出,并加到当前的embedding上,随后通过计算的前向损失,并通过反向传播得到对抗的梯度。
[0047]
实施例五在实施例一基础上,对文本进行特征提取的过程中,采用注意力层attention layer实现。attention机制是模仿人类注意力而提出的一种解决办法,简单来说就是从大量信息中快速筛选出高价值的信息,主要用于解决lstm/rnn模型输入序列较长的时候很难获得最终合理的向量表示问题,通过保留lstm的中间结果,用新的模型对其进行学习,并将其与输出进行关联,从而达到信息筛选的目的。其对应的结构如图4所示。
[0048]
attention机制决定了整段输入的哪个部分需要更加关注,并从关键的部分进行特征提取,得到重要的信息。例如在某些句子里,可定会涉及到表达情感的词语,包括但不限于“高兴”,“沮丧”,“开心”等关键词,这些关键词在对内容理解方面要比其他词汇更加重要,是能否正确理解整个句子的关键词汇,也是需要attention的部分,其对应的表达式为:式中,表示query向量;表示key向量;表示value向量;表示的维度;表示q向量矩阵乘以k向量的转置。
[0049]
在进一步的实施例中,多层的attention layer能够提取到深层次的语义特征信息。但是考虑到多层的attention layer会导致模型出现过拟合现象和梯度消失以及梯度爆炸问题,本实施例在特征深度提取模块前后加上残差网络结构,用于减缓模型的过拟合现象和梯度消失,以及梯度爆炸问题。
[0050]
实施例六在实施例一基础上,构建相似度分析模块,并对获取到的数据特征集进行相似度分析时,采用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小,当余弦值越接近1,表明夹角越接近0度,也就是两个向量越相似。
[0051]
具体的,对于两个n维的样本点和,,那么、两者之间的夹角余弦值表达式为:当相似度越小时,距离越大;相似度越大,距离越小。
[0052]
根据余弦相似度算法计算得出的最终结果,得出两个文本之间的相似度数值。
[0053]
本实施例通过计算余弦相似度,从而计算出两文本之间的相似度数值,并将该数值作为最后相似度分析的结果进行输出。
[0054]
实施例七本实施例提出一种基于prompt的文本相似度计算系统,该系统具体包括数据读取
模块、预处理模块、prompt模块、预训练语言模块、特征深度提取模块、相似度比对模块。数据读取模块用于读取数据库中待分析的数据;预处理模块用于对读取到的数据进行预处理;prompt模块用于实现数据的prompt化处理;预训练模块用于对数据进行自动特征抽取;特征深度提取模块用于对文本信息进行特征提取;相似度比对模块用于比对文本之间的相似度程度。基于本实施例所提出的文本相似度计算系统,可以执行实施例一至实施例六种所述的文本相似度计算方法。
[0055]
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1