一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应答语句生成方法和装置与流程

2021-12-08 02:21:00 来源:中国专利 TAG:


1.本技术涉及计算机及通信技术领域,特别涉及一种应答语句生成方法和装置。


背景技术:

2.人工智能是计算机学科的一个分支,被认为是二十一世纪三大尖端技术之一。近三十年来人工智能获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果。
3.人工智能技术中的自然语言处理技术可以用于实现智能对话,现有技术中,通常是在对话机器人中预先存储对话模板,当对话机器人接收到对话模板中的语句,则按照对话模板对语句进行应答,但是,由于存储空间等限制,对话机器人接收到的语句不一定被预先存储在对话模板中,会导致应答失败。


技术实现要素:

4.本技术旨在提供一种应答语句生成方法和装置,能够在一定程度上提高成功生成应答语句的可能性。
5.根据本技术实施例的一个方面,提供了一种应答语句生成方法,包括:获取会话中的待应答语句以及所述待应答语句之前的历史语句;基于所述待应答语句和所述历史语句,确定在所述待应答语句加入所述会话之后,所述会话的当前语境信息;基于所述历史语句和所述当前语境信息,预测所述会话的下一语境信息;基于所述当前语境信息与所述下一语境信息之间的差异,预测与所述待应答语句对应的应答语句。
6.根据本技术实施例的一个方面,提供了一种应答语句生成装置,包括:获取模块,配置为获取会话中的待应答语句以及所述待应答语句之前的历史语句;确定模块,配置为基于所述待应答语句和所述历史语句,确定在所述待应答语句加入所述会话之后,所述会话的当前语境信息;语境预测模块,配置为基于所述历史语句和所述当前语境信息,预测所述会话的下一语境信息;语句预测模块,配置为基于所述当前语境信息与所述下一语境信息之间的差异,预测与所述待应答语句对应的应答语句。
7.在本技术的一个实施例中,基于前述方案,所述语境预测模块配置为:基于所述历史语句,确定所述会话的历史语境信息;基于所述历史语境信息和所述当前语境信息,确定所述会话对应的语境分布函数;将所述语境分布函数和所述当前语境信息作为所述语境分布函数的自变量,得到所述语境分布函数输出的所述下一语境信息。
8.在本技术的一个实施例中,基于前述方案,所述语境预测模块配置为:生成各个历史语句对应的历史表征向量,并获取各个历史表征向量对应于各个候选语境信息的权重;计算所述历史表征向量与所述候选语境信息的权重的乘积,以得到各个历史表征向量的加权值;使用与各个历史表征向量的加权值对应的参数,对所述各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的加权值对应的线性变换结果,其中,不同历史表征向量的加权值对应的参数不同,所述历史表征向量的加权值对应的参数与所述历史表征向
量的加权值一一对应;将多个历史表征向量对应的线性变换结果进行拼接,得到历史拼接结果;基于所述历史拼接结果,从所述候选语境信息中选取所述历史语境信息。
9.在本技术的一个实施例中,基于前述方案,所述语境预测模块配置为:基于所述历史语句的语义,对所述历史语句进行拆分,得到多个历史语义单元;分别确定所述多个历史语义单元对应的历史单元向量;基于所述历史语句的语义,将属于不同历史语句的历史语义单元进行区分,得到历史区分结果;对所述历史区分结果进行向量转换,得到所述历史语句对应的历史分段向量;基于所述历史语义单元在所述历史语句中的位置信息,确定所述历史语句对应的历史位置向量;将所述历史单元向量、所述历史分段向量以及所述历史位置向量求和,得到所述历史表征向量。
10.在本技术的一个实施例中,基于前述方案,所述语句预测模块配置为:基于所述当前语境信息与所述下一语境信息之间的差异,预测所述应答语句的语义;基于所述应答语句的语义,预测所述应答语句中位于首位的起始单词,将所述起始单词加入预测单词组合;基于所述应答语句的语义以及所述预测单词组合中的单词,预测所述应答语句中的下一位单词,并将所述应答语句中的下一位单词加入所述预测单词组合,直至完成预测;在完成预测后,根据所述预测单词组合生成所述应答语句。
11.在本技术的一个实施例中,基于前述方案,所述语句预测模块配置为:将所述预测单词集合中的单词分别进行编码,得到多个单词编码;将所述多个单词编码进行组合,得到所述预测单词集合对应的单词序列;基于所述应答语句的语义和所述单词序列,确定词汇表中的候选词汇作为所述应答语句中的下一位单词的候选概率;基于所述候选概率,从所述候选词汇中选取所述应答语句中的下一位单词。
12.在本技术的一个实施例中,基于前述方案,在获取所述历史语句之后,所述语句预测模块配置为:通过神经网络模型根据所述目标语句和所述历史语句生成所述应答语句,其中,所述神经网络模型包括输入嵌入模块、连接所述输入嵌入模块的语境信息预测模块、连接所述语境信息预测模块的语义预测模块,以及连接所述语义预测模块的应答生成模块;所述输入嵌入模块用于接收所述待应答语句和所述历史语句,确定所述待应答语句对应的待应答表征向量,并确定所述历史语句对应的历史表征向量;所述语境信息预测模块用于接收所述输入嵌入模块输出的所述待应答表征向量和所述历史表征向量,基于所述待应答表征向量和所述历史表征向量确定所述当前语境信息,并基于所述历史表征向量确定所述历史语境信息;所述语义预测模块用于接收所述语境信息预测模块输出的所述历史语境信息和所述当前语境信息,基于所述历史语境信息和所述当前语境信息,预测所述下一语境信息,以及基于所述当前语境信息与所述下一语境信息之间的差异,预测所述应答语句的语义;所述应答生成模块用于接收所述应答语句的语义,并接受所述历史语句,基于所述应答语句的语义和所述历史语句,预测所述应答语句。
13.在本技术的一个实施例中,基于前述方案,所述输入嵌入模块包括:语义单元嵌入层、分段嵌入层、位置嵌入层,以及连接所述语义单元嵌入层、分段嵌入层和位置嵌入层的汇总层;所述语义单元嵌入层用于确定所述历史语句包含的各个历史语义单元对应的历史单元向量;所述分段嵌入层用于确定历史语句对应的历史分段向量,所述位置嵌入层用于确定历史语句对应的历史位置向量;所述汇总层用于将所述历史单元向量、所述历史分段向量以及所述历史位置向量求和,得到所述历史语句对应的历史表征向量。
14.在本技术的一个实施例中,基于前述方案,所述语境信息预测模块包括:归一化层、多头注意力层以及前馈层;所述归一化层用于接收所述历史表征向量,确定各个历史表征向量对应于各个历史语境信息的权重,并计算所述历史表征向量与所述权重的乘积,以得到各个历史表征向量的加权值;所述多头注意力层用于接收所述各个历史表征向量的加权值,并使用与各个历史表征向量的加权值对应的参数,对所述各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的加权值对应的线性变换结果,将多个历史表征向量对应的线性变换结果进行拼接,得到历史拼接结果,其中,不同历史表征向量的加权值对应的参数不同,所述历史表征向量的加权值对应的参数与所述历史表征向量的加权值一一对应;所述前馈层用于接收所述历史拼接结果,并基于所述历史拼接结果,从所述候选语境信息中选取所述历史语境信息。
15.根据本技术实施例的一个方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行上任一项所述的方法。
16.根据本技术实施例的一个方面,提供了一种电子设备,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如上任一项所述的方法。
17.根据本技术实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的方法。
18.本技术的实施例提供的技术方案可以包括以下有益效果:
19.在本技术的一些实施例所提供的技术方案中,通过获取会话中的待应答语句以及待应答语句之前的历史语句;基于待应答语句和历史语句,确定在待应答语句加入会话之后,会话的当前语境信息;基于历史语句和当前语境信息,预测会话的下一语境信息;基于当前语境信息与下一语境信息之间的差异,预测与待应答语句对应的应答语句,当前语境信息与下一语境信息之间的差异能够体现出应答语句对语境信息的影响,可以根据应答语句对语境信息的影响预测出应答语句。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并于说明书一起用于解释本技术的原理。
22.图1示出了可以应用本技术实施例的技术方案的示例性系统架构的示意图;
23.图2示意性示出了根据本技术的一个实施例的应答语句生成方法的流程图;
24.图3示意性示出了本技术一个实施例的语句和语境信息的关系;
25.图4示意性示出了根据本技术的一个实施例的神经网络模型的结构图;
26.图5示意性示出了根据本技术的一个实施例的应答语句生成装置的框图;
27.图6是根据一示例性实施例示出的一种电子设备的硬件图。
具体实施方式
28.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
29.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
30.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
31.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
32.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
33.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
34.自然语言处理(nature language processing,nlp)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
35.本技术实施例提供的方案涉及人工智能的自然语言处理等技术,具体通过如下实施例进行说明:
36.图1示出了可以应用本技术实施例的技术方案的示例性系统架构100的示意图。
37.如图1所示,系统架构100可以包括客户端101、网络102和服务器103。网络102用以在客户端101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等,本技术在此不做限制。
38.应该理解,图1中的客户端101、网络102和服务器103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端101、网络102和服务器103。比如服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是
提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。客户端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、聊天机器人等,但并不局限于此。
39.在本技术的一个实施例中,服务器103通过获取客户端101中的会话中的待应答语句以及待应答语句之前的历史语句;基于待应答语句和历史语句,确定在待应答语句加入会话之后,会话的当前语境信息;基于历史语句和当前语境信息,预测会话的下一语境信息;基于当前语境信息与下一语境信息之间的差异,预测与待应答语句对应的应答语句,当前语境信息与下一语境信息之间的差异能够体现出应答语句对语境信息的影响,可以根据应答语句对语境信息的影响预测出应答语句。
40.需要说明的是,本技术实施例所提供的应答语句生成方法一般由服务器103执行,相应地,应答语句生成装置一般设置于服务器103中。但是,在本技术的其它实施例中,客户端101也可以与服务器103具有相似的功能,从而执行本技术实施例所提供的应答语句生成方法。
41.以下对本技术实施例的技术方案的实现细节进行详细阐述:
42.图2示意性示出了根据本技术的一个实施例的应答语句生成方法的流程图,该应答语句生成方法的执行主体可以是服务器,比如可以是图1中所示的服务器103。
43.参照图2所示,该应答语句生成方法至少包括步骤s210至步骤s240,详细介绍如下:
44.在步骤s210中,获取会话中的待应答语句以及所述待应答语句之前的历史语句。
45.在本技术的一个实施例中,会话可能是客户端101参与的,也可能是客户端101从云端、服务器或其他设备中获取的,其中,客户端101可以是对话机器人或带有对话功能的电子设备。
46.在本技术的一个实施例中,待应答语句是需要被应答的语句,可以是用户或用户终端向客户端101发送的。
47.在本技术的一个实施例中,会话中待应答语句之前的历史语句,即是在在待应答语句出现在会话之前,会话中出现的语句。会话中的历史语句可以有一个或多个。
48.在步骤s220中,基于待应答语句和历史语句,确定在待应答语句加入会话之后,会话的当前语境信息。
49.在本技术的一个实施例中,当前语境信息为待应答语句加入会话之后,由待应答语句和历史语句组成的语境对应的语境信息。
50.在本技术的一个实施例中,可以基于待应答语句的语义和历史语句的语义,确定当前语境信息。
51.在本技术的一个实施例中,可以生成各个历史语句对应的历史表征向量,生成待应答语句对应的待应答表征向量;获取各个历史表征向量对应于各个历史语境信息的权重,并获取历史表征向量对应于各个候选语境信息的权重;计算历史表征向量与候选语境信息的权重的乘积,以得到各个历史表征向量的加权值;计算待应答表征向量与候选语境信息的权重的乘积,以得到待应答历史表征向量的加权值;使用与各个历史表征向量的加权值对应的参数,对各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的
加权值对应的线性变换结果,其中,不同历史表征向量的加权值对应的参数不同,历史表征向量的加权值对应的参数与历史表征向量的加权值一一对应;使用与待应答表征向量的加权值对应的参数,对待应答表征向量的加权值进行线性变换,得到待应答表征向量的加权值对应的线性变换结果,其中,待应答表征向量的加权值对应的参数与历史表征向量的加权值不同;将多个历史表征向量对应的线性变换结果以及待应答表征向量对应的线性变换结果进行拼接,得到当前拼接结果;基于当前拼接结果,确定当前语境信息。
52.在该实施例中,在当前语境信息时,考虑到了会话中每个语句对于当前语境信息的不同影响。
53.在本技术的一个实施例中,可以基于历史语句的语义,对历史语句进行拆分,得到多个历史语义单元;分别确定多个历史语义单元对应的历史单元向量;基于历史语句的语义,将属于不同历史语句的历史语义单元进行区分,得到历史区分结果;对历史区分结果进行向量转换,得到历史语句对应的历史分段向量;基于历史语义单元在历史语句中的位置信息,确定历史语句对应的历史位置向量;将历史单元向量、历史分段向量以及历史位置向量求和,得到历史表征向量。
54.在本技术的一个实施例中,可以基于待应答语句的语义,对待应答语句进行拆分,得到多个待应答语义单元;分别确定多个待应答语义单元对应的待应答单元向量;基于待应答语句的语义,将属于不同待应答语句的待应答语义单元进行区分,得到待应答区分结果;对待应答区分结果进行向量转换,得到待应答语句对应的待应答分段向量;基于待应答语义单元在待应答语句中的位置信息,确定待应答语句对应的待应答位置向量;将待应答单元向量、待应答分段向量以及待应答位置向量求和,得到待应答表征向量。
55.继续参照图2,在步骤s230中,基于所述历史语句和所述当前语境信息,预测所述会话的下一语境信息。
56.在本技术的一个实施例中,可以基于所述历史语句,确定所述会话的历史语境信息;基于所述历史语境信息和所述当前语境信息,确定所述会话对应的语境分布函数;将所述语境分布函数和所述当前语境信息作为所述语境分布函数的自变量,得到所述语境分布函数输出的所述下一语境信息,其中,历史语境信息可以有多个,每个历史语句和该历史语句之前的历史语句都构成一个历史语境信息。
57.在本技术的一个实施例中,可以生成各个历史语句对应的历史表征向量,并获取各个历史表征向量对应于各个候选语境信息的权重;计算历史表征向量与候选语境信息的权重的乘积,以得到各个历史表征向量的加权值;使用与各个历史表征向量的加权值对应的参数,对各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的加权值对应的线性变换结果,其中,不同历史表征向量的加权值对应的参数不同,历史表征向量的加权值对应的参数与历史表征向量的加权值一一对应;将多个历史表征向量对应的线性变换结果进行拼接,得到拼接结果;基于拼接结果,从候选语境信息中选取历史语境信息。
58.在本技术的一个实施例中,可以计算历史拼接结果与候选语境信息之间的特征距离,基于特征距离,确定各个候选语境信息作为历史语境信息的概率,根据概率从候选语境信息中选取历史语境信息。
59.在步骤s240中,基于当前语境信息与下一语境信息之间的差异,预测与待应答语句对应的应答语句。
60.在本技术的一个实施例中,可以基于当前语境信息与下一语境信息之间的差异,预测应答语句的语义;基于应答语句的语义,预测应答语句中位于首位的起始单词,将起始单词加入预测单词组合;基于应答语句的语义以及预测单词组合中的单词,预测应答语句中的下一位单词,并将应答语句中的下一位单词加入预测单词组合,直至完成预测;在完成预测后,根据预测单词组合生成应答语句,在预测应答语句中除了起始单词的其他单词时,考虑到了已经被预测到的单词,使得其他单词的预测结果更加准确。
61.在本技术的一个实施例中,可以根据预测单词组合的语义或组合的语法结构,确定应答语句是否完成预测。
62.在本技术的一个实施例中,可以将预测单词组合中单词拆分,按照预测单词组合中单词的先后顺序组合拆分后的预测单词组合中的单词,以得到应答语句。
63.在本技术的一个实施例中,在起始单词加入预测单词组合之前,预测单词组合可以为空。
64.在本技术的一个实施例中,可以用当前语境信息与下一语境信息之间的矢量差表示应答语句的语义,如图3所示,图3示意性示出了本技术一个实施例的语句和语境信息的关系,其中,平面表示会话的语义空间,c
k
表示当前语境信息,c
k
‑1表示距离当前语境的最近一个历史语境信息,c
k
‑2表示与最近一个历史语境信息相邻的历史语境信息,c
k 1
表示当前语境的下一语境信息,i
k
‑1表示待应答语句的语义,即表示待应答语句对最近一个历史语境信息的影响;i
k
‑2表示与待应答语句相邻的最近一个历史语句的语义,即表示了最近一个历史语句对与最近一个历史语境信息相邻的历史语境信息的影响,i
k
表示待应答语句对应的应答语句的语义,即表示了应答语句对当前语境信息的影响,其中,与待应答语句相邻的最近一个历史语句i
k
‑2可以是“i would like to report a break

in.”,待应答语句i
k
‑1可以是“when was this break

in?”,那么应答语句i
k
可以是“it was at 7am”。
65.在本技术的一个实施例中,可以将预测单词集合中的单词分别进行编码,得到多个单词编码;将多个单词编码进行组合,得到预测单词集合对应的单词序列;基于应答语句的语义和单词序列,确定词汇表中的候选词汇作为应答语句中的下一位单词的候选概率;基于候选概率,从候选词汇中选取应答语句中的下一位单词。
66.在图2的实施例中,通过获取会话中的待应答语句以及待应答语句之前的历史语句;基于待应答语句和历史语句,确定在待应答语句加入会话之后,会话的当前语境信息;基于历史语句和当前语境信息,预测会话的下一语境信息;基于当前语境信息与下一语境信息之间的差异,预测与待应答语句对应的应答语句,当前语境信息与下一语境信息之间的差异能够体现出应答语句对语境信息的影响,可以根据应答语句对语境信息的影响准确的预测出应答语句。
67.在该实施例中,通过利用语境信息预测应答语句,考虑到了会话整体对预测应答语句的影响,而语境信息的生成考虑到了每个语句会会话的不同影响,从而使得生产的应答语句更加准确。
68.在本技术的一个实施例中,在获取历史语句之后,可以通过神经网络模型根据目标语句和历史语句生成应答语句,其中,神经网络模型包括输入嵌入模块、连接输入嵌入模块的语境信息预测模块、连接语境信息预测模块的语义预测模块,以及连接语义预测模块的应答生成模块;输入嵌入模块用于接收待应答语句和历史语句,确定待应答语句对应的
待应答表征向量,并确定历史语句对应的历史表征向量;语境信息预测模块用于接收输入嵌入模块输出的待应答表征向量和历史表征向量,基于待应答表征向量和历史表征向量确定当前语境信息,并基于历史表征向量确定历史语境信息;语义预测模块用于接收语境信息预测模块输出的历史语境信息和当前语境信息,基于历史语境信息和当前语境信息,预测下一语境信息,以及基于当前语境信息与下一语境信息之间的差异,预测应答语句的语义;应答生成模块用于接收应答语句的语义,并接受历史语句,基于应答语句的语义和历史语句,预测应答语句,以通过对会话历史语句进行语句级别的信息流建模,预测会话接下来的发展方向,指导多轮对话系统的应答语句生成,有效提高了应答文本的质量。
69.在本技术的一个实施例中,输入嵌入模块可以包括:语义单元嵌入层、分段嵌入层、位置嵌入层,以及连接语义单元嵌入层、分段嵌入层和位置嵌入层的汇总层;语义单元嵌入层用于确定历史语句包含的各个历史语义单元对应的历史单元向量;分段嵌入层用于确定历史语句对应的历史分段向量,位置嵌入层用于确定历史语句对应的历史位置向量;汇总层用于将历史单元向量、历史分段向量以及历史位置向量求和,得到历史语句对应的历史表征向量。
70.在本技术的一个实施例中,语境信息预测模块可以包括:归一化层、多头注意力层以及前馈层;归一化层用于接收历史表征向量,确定各个历史表征向量对应于各个历史语境信息的权重,并计算历史表征向量与权重的乘积,以得到各个历史表征向量的加权值;多头注意力层用于接收各个历史表征向量的加权值,并使用与各个历史表征向量的加权值对应的参数,对各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的加权值对应的线性变换结果,将多个历史表征向量对应的线性变换结果进行拼接,得到历史拼接结果,其中,不同历史表征向量的加权值对应的参数不同,历史表征向量的加权值对应的参数与历史表征向量的加权值一一对应;前馈层用于接收历史拼接结果,并基于历史拼接结果,从候选语境信息中选取历史语境信息。
71.图4示意性示出了根据本技术的一个实施例的神经网络模型的结构图,如图4所示,图4的神经网络模型中输入嵌入模块可以包括语义单元嵌入层(token embedding)、分段嵌入层(segment embedding)、位置嵌入层(position embedding)。输入嵌入模块接收会话的历史语句与待应答语句,输入嵌入模块输出历史语句对应的历史表征向量以及待应答语句对应的待应答表征向量,其中,历史语句及待应答语句需要进行预处理:在每个语句的最后插入一个特殊符号[c],作为每句语句的结束符号,以使神经网络模型区分不同语句;使用特殊符号[speaker1]、[speaker2]、[speakern]分别标注每句语句的来源,以增加神经网络模型获得的语句特征,从而更好的预测应答语句。
[0072]
在本技术的一个实施例中,可以定义会话为d,d由n句语句组成:d={u1,u2,
……
u
n
},其中,第k个语句u
k
由t个单词组成:由t个单词组成:从语句u1至u
k
‑1为第k个语句的历史对话信息,表示为u
<k
={u1,u2,
……
u
k
‑1},将产生语境信息c
k
。因此,语境c
k
和c
k
‑1的差值即为第k个语句产生的语义影响,定义为:i
k
=c
k 1

c
k

[0073]
在图4的一个实施例中,语境信息预测模块可以包括l个编码组合(transformer block 1
……
transformer block l),每个语境信息预测层组合都包括归一化层(layer norm)、多头注意力层(multi

head attention)以及前馈层(feed forward),具体地,使用预训练生成模型(generative pre

training

2,gpt

2)的前置归一化层替代了预训练模型
(bidirectional encoder representation from transformers,bert)的后置归一化层,因为后置归一化层在模型尺寸过大时会导致模型性能的下降,但前置归一化层可以在大规模训练时保持模型性能的稳定。在该模块中,使用单向对话编码层对历史语句u<k进行编码,将当前语句结束符号对应的隐含层状态作为模块的输出,即当前语境信息c
k
,如公式1所示:
[0074]
c
k
=transformer(u<k)
ꢀꢀ
(1)
[0075]
在本技术的一个实施例中,语义预测模块可以是流模块(flow moudle),将历史语境信息和当前语境信息c1,c2,
……
c
k
作为输入,输出下一语境信息c
k 1
,如公式2所示:
[0076]
c
k 1
=flow(c1,c2,
……
c
k
)
ꢀꢀ
(2)
[0077]
因此,可以预测应答文本的语义,如公式3所示:
[0078]
i
k
=c
k 1

c
k
ꢀꢀ
(3)。
[0079]
在本技术的一个实施例中,应答语句生成模块可以是响应发生器(response cenerator),应答语句生成模块接收语义预测模块输出的应答文本的语义,以指导应答语句的生成工作,并与历史语句u<k和应答语句中已经生成的单词序列的概率p,如公式4所示:
[0080][0081]
其中,|v|表示词汇表的大小,w1和b1是模型中的待学习参数。
[0082]
图4中的神经网络模型的建模步骤包括:
[0083]
步骤一:首先,将会话的历史语句及待应答语句输入到输入嵌入模块,得到历史语句对应的历史表征向量以及待应答语句对应的待应答表征向量;
[0084]
步骤二:将步骤一得到的历史表征向量和待应答表征向量,作为语境信息预测模块的输入,使用单向对话编码层得到历史语境信息和当前语境信息;
[0085]
步骤三:将历史语境信息及当前语境信息作为语义预测模块的输入,预测响应文本对应的下一语境信息;
[0086]
步骤四:应答语句生成模块接受预测的下一语境信息及当前语境信息作为输入,计算应答文本应的语义信息,并指导应答文本的生成。
[0087]
在本技术的一个实施例中,可以使用评估数据集(reddit comments数据集)对图4中的神经网络模型在不同参数规模下进行大规模预训练。针对回复生成,在参考回复的评估测试集(multi

reference reddit dataset)以及日常会话数据集(dailydialog dataset)上进行实验,实验结果如表1所示,其中,基于信息增量的评估方法(national institute of standards and technology,nist)、双语评估替补评估方法(bilingual evaluation understudy,bleu)及meteor评估法用来评估生成的回复和参考回复的相关度。其中,nist评估方法可以消除生成的回复中存在通用回复(如:我不知道)的影响,所以对于多参考评估,nist指标更加有效。从表1中可以看出,相比现有技术中的模型dialogpt(b,greedy)、dialoflow(b,greedy)、dialogpt(m,greedy)、dialoflow(m,greedy)、dialogpt(l,greedy),图4中的神经网络模型在生成的回复的相关度上有明显的提升。
[0088]
表1
[0089][0090]
以下介绍本技术的装置实施例,可以用于执行本技术上述实施例中的应答语句生成方法。对于本技术装置实施例中未披露的细节,请参照本技术上述的应答语句生成方法的实施例。
[0091]
图5示意性示出了根据本技术的一个实施例的应答语句生成装置的框图。
[0092]
参照图5所示,根据本技术的一个实施例的应答语句生成装置500,包括获取模块501、确定模块502、语境预测模块503和语句预测模块504。
[0093]
在本技术的一个实施例中,基于前述方案,语境预测模块503配置为:基于历史语句,确定会话的历史语境信息;基于历史语境信息和当前语境信息,确定会话对应的语境分布函数;将语境分布函数和当前语境信息作为语境分布函数的自变量,得到语境分布函数输出的下一语境信息。
[0094]
在本技术的一个实施例中,基于前述方案,语境预测模块503配置为:生成各个历史语句对应的历史表征向量,并获取各个历史表征向量对应于各个候选语境信息的权重;计算历史表征向量与候选语境信息的权重的乘积,以得到各个历史表征向量的加权值;使用与各个历史表征向量的加权值对应的参数,对各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的加权值对应的线性变换结果,其中,不同历史表征向量的加权值对应的参数不同,历史表征向量的加权值对应的参数与历史表征向量的加权值一一对应;将多个历史表征向量对应的线性变换结果进行拼接,得到历史拼接结果;基于历史拼接结果,从候选语境信息中选取历史语境信息。
[0095]
在本技术的一个实施例中,基于前述方案,语境预测模块503配置为:基于历史语句的语义,对历史语句进行拆分,得到多个历史语义单元;分别确定多个历史语义单元对应的历史单元向量;基于历史语句的语义,将属于不同历史语句的历史语义单元进行区分,得到历史区分结果;对历史区分结果进行向量转换,得到历史语句对应的历史分段向量;基于历史语义单元在历史语句中的位置信息,确定历史语句对应的历史位置向量;将历史单元向量、历史分段向量以及历史位置向量求和,得到历史表征向量。
[0096]
在本技术的一个实施例中,基于前述方案,语句预测模块504配置为:基于当前语境信息与下一语境信息之间的差异,预测应答语句的语义;基于应答语句的语义,预测应答语句中位于首位的起始单词,将起始单词加入预测单词组合;基于应答语句的语义以及预
测单词组合中的单词,预测应答语句中的下一位单词,并将应答语句中的下一位单词加入预测单词组合,直至完成预测;在完成预测后,根据预测单词组合生成应答语句。
[0097]
在本技术的一个实施例中,基于前述方案,语句预测模块504配置为:将预测单词集合中的单词分别进行编码,得到多个单词编码;将多个单词编码进行组合,得到预测单词集合对应的单词序列;基于应答语句的语义和单词序列,确定词汇表中的候选词汇作为应答语句中的下一位单词的候选概率;基于候选概率,从候选词汇中选取应答语句中的下一位单词。
[0098]
在本技术的一个实施例中,基于前述方案,在获取历史语句之后,语句预测模块504配置为:通过神经网络模型根据目标语句和历史语句生成应答语句,其中,神经网络模型包括输入嵌入模块、连接输入嵌入模块的语境信息预测模块、连接语境信息预测模块的语义预测模块,以及连接语义预测模块的应答生成模块;输入嵌入模块用于接收待应答语句和历史语句,确定待应答语句对应的待应答表征向量,并确定历史语句对应的历史表征向量;语境信息预测模块用于接收输入嵌入模块输出的待应答表征向量和历史表征向量,基于待应答表征向量和历史表征向量确定当前语境信息,并基于历史表征向量确定历史语境信息;语义预测模块用于接收语境信息预测模块输出的历史语境信息和当前语境信息,基于历史语境信息和当前语境信息,预测下一语境信息,以及基于当前语境信息与下一语境信息之间的差异,预测应答语句的语义;应答生成模块用于接收应答语句的语义,并接受历史语句,基于应答语句的语义和历史语句,预测应答语句。
[0099]
在本技术的一个实施例中,基于前述方案,输入嵌入模块包括:语义单元嵌入层、分段嵌入层、位置嵌入层,以及连接语义单元嵌入层、分段嵌入层和位置嵌入层的汇总层;语义单元嵌入层用于确定历史语句包含的各个历史语义单元对应的历史单元向量;分段嵌入层用于确定历史语句对应的历史分段向量,位置嵌入层用于确定历史语句对应的历史位置向量;汇总层用于将历史单元向量、历史分段向量以及历史位置向量求和,得到历史语句对应的历史表征向量。
[0100]
在本技术的一个实施例中,基于前述方案,语境信息预测模块包括:归一化层、多头注意力层以及前馈层;归一化层用于接收历史表征向量,确定各个历史表征向量对应于各个历史语境信息的权重,并计算历史表征向量与权重的乘积,以得到各个历史表征向量的加权值;多头注意力层用于接收各个历史表征向量的加权值,并使用与各个历史表征向量的加权值对应的参数,对各个历史表征向量的加权值进行线性变换,得到各个历史表征向量的加权值对应的线性变换结果,将多个历史表征向量对应的线性变换结果进行拼接,得到历史拼接结果,其中,不同历史表征向量的加权值对应的参数不同,历史表征向量的加权值对应的参数与历史表征向量的加权值一一对应;前馈层用于接收历史拼接结果,并基于历史拼接结果,从候选语境信息中选取历史语境信息。
[0101]
所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0102]
下面参照图6来描述根据本技术的这种实施方式的电子设备60。图6显示的电子设备60仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0103]
如图6所示,电子设备60以通用计算设备的形式表现。电子设备60的组件可以包括但不限于:上述至少一个处理单元61、上述至少一个存储单元62、连接不同系统组件(包括存储单元62和处理单元61)的总线63、显示单元64。
[0104]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元61执行,使得所述处理单元61执行本说明书上述“实施例方法”部分中描述的根据本技术各种示例性实施方式的步骤。
[0105]
存储单元62可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(rom)623。
[0106]
存储单元62还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0107]
总线63可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0108]
电子设备60也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备60交互的设备通信,和/或与使得该电子设备60能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口65进行。并且,电子设备60还可以通过网络适配器66与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与电子设备60的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0109]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本技术实施方式的方法。
[0110]
根据本技术一个实施例,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本技术的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。
[0111]
根据本技术一个实施例,用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0112]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信
号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0113]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0114]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0115]
可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0116]
此外,上述附图仅是根据本技术示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0117]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献