发明内容
本申请实施例提供一种多轮问答语义生成方法、设备及介质,用于解决在智能问答系统的多轮问答中,语义理解准确率低的问题。
本申请实施例采用下述技术方案:
一方面,本申请实施例提供了一种多轮问答语义生成方法,该方法包括:获取本轮对话中的提问信息;将所述提问信息输入至预先构建的自然语言处理模型,预测所述本轮对话对应的第一历史上下文信息;获取与所述本轮相邻的上一轮对话对应的第二历史上下文信息;确定所述第一历史上下文信息与所述第二历史上下文信息之间的语义变化信息;根据所述语义变化信息与所述第一历史上下文信息,生成所述提问信息对应的答复信息。
一个示例中,所述将所述提问信息输入至预先构建的自然语言处理模型,预测所述本轮对话对应的第一历史上下文信息,具体包括:确定所述自然语言处理模型为Transformer模型;将所述提问信息中的位置信息、段落信息以及单词信息嵌入所述Transformer模型中的编码器,确定所述提问信息对应的编码信息;获取所述本轮对话之前的每轮对话的历史上下文信息;将所述每轮对话的历史上下文信息与所述编码信息输入至预先构建的流式预测模型,生成所述本轮对话对应的第一历史上下文信息。
一个示例中,所述将所述每轮对话的历史上下文信息与所述编码信息输入至预先构建的流式预测模型,生成所述本轮对话对应的第一历史上下文信息,具体包括:确定所述每轮对话的历史上下文信息对应的标识信息;将所述标识信息与所述编码信息输入至预先构建的流式预测模型,生成所述本轮对话对应的第一历史上下文信息。
一个示例中,所述确定所述每轮对话的历史上下文信息对应的标识信息,具体包括:在所述每轮对话结束时,在所述每轮对话后增加对应的令牌信息,并将所述令牌信息作为所述每轮对话的历史上下文信息对应的标识信息。
一个示例中,所述确定所述第一历史上下文信息与所述第二历史上下文信息之间的语义变化信息,具体包括:确定所述第一历史上下文信息与所述第二历史上下文信息之间的差值信息;通过所述差值信息确定所述第一历史上下文信息与所述第二历史上下文信息之间的语义变化信息。
一个示例中,所述根据所述语义变化信息与所述第一历史上下文信息,生成所述提问信息对应的答复信息,具体包括:将所述语义变化信息与所述第一历史上下文信息输入至Softmax层;在所述Softmax层中,根据所述语义变化信息与所述第一历史上下文信息,生成所述提问信息对应的答复信息。
一个示例中,所述在所述Softmax层中,根据所述语义变化信息与所述第一历史上下文信息,生成所述提问信息对应的答复信息,具体包括:在所述Softmax层中,调用数据库;根据所述语义变化信息与所述第一历史上下文信息,在所述数据库中匹配所述提问信息对应的答复信息。
一个示例中,所述根据所述语义变化信息与所述第一历史上下文信息,在所述数据库中匹配所述提问信息对应的答复信息,具体包括:根据所述语义变化信息与所述第一历史上下文信息,对所述数据库中的词进行评分,确定所述提问信息对应的第一答复词;根据所述语义变化信息与所述第一答复词,确定所述提问信息对应的第二答复词;根据所述第一答复词与所述第二答复词,生成所述提问信息对应的答复信息。
另一方面,本申请实施例提供了一种多轮问答语义生成设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取本轮对话中的提问信息;将所述提问信息输入至预先构建的自然语言处理模型,预测所述本轮对话对应的第一历史上下文信息;获取与所述本轮相邻的上一轮对话对应的第二历史上下文信息;确定所述第一历史上下文信息与所述第二历史上下文信息之间的语义变化信息;根据所述语义变化信息与所述第一历史上下文信息,生成所述提问信息对应的答复信息。
另一方面,本申请实施例提供了一种多轮问答语义生成非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:获取本轮对话中的提问信息;将所述提问信息输入至预先构建的自然语言处理模型,预测所述本轮对话对应的第一历史上下文信息;获取与所述本轮相邻的上一轮对话对应的第二历史上下文信息;确定所述第一历史上下文信息与所述第二历史上下文信息之间的语义变化信息;根据所述语义变化信息与所述第一历史上下文信息,生成所述提问信息对应的答复信息。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例通过在预先构建的自然语言处理模型中,不仅预测本轮对话对应的第一历史上下文信息,又获取与本轮相邻的上一轮对话对应的第二历史上下文信息,考虑到了历史上下文信息的先后顺序,并且又考虑到了经过本轮对话后语义的转化程度,使得多轮问答系统在闲聊多轮问答时,能根据人类语义的变化做出调整,提高了语义理解的准确率。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面参照附图来对本申请的一些实施例进行详细说明。
图1为本申请实施例提供的一种多轮问答语义生成方法的流程示意图。该方法可以应用于不同的业务领域。该流程可以由相应领域的计算设备执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
本申请实施例涉及的分析方法的实现可以为终端设备,也可以为服务器,本申请对此不作特殊限制。为了方便理解和描述,以下实施例均以服务器为例进行详细描述。
需要说明的是,该服务器可以是单独的一台设备,可以是有多台设备组成的系统,即,分布式服务器,本申请对此不做具体限定。
图1中的流程包括以下步骤:
S101:获取本轮对话中的提问信息。
具体地,提问信息是指用户在与多轮问答系统交互的过程中,产生的语义信息。即,提问信息可以是疑问句,也可以是陈述句,并且当前的提问信息包括一句话或多句话。
S102:将提问信息输入至预先构建的自然语言处理模型,预测本轮对话对应的第一历史上下文信息。
其中,自然语言处理是指利用人类交流所使用的自然语言与机器进行交互通讯的技术,通过人为的对自然语言的处理,使得计算机对其能够可读并理解。也就是说,自然语言处理模型是指对自然语言的处理,使得计算机对其能够可读并理解的模型。
具体地,服务器将提问信息输入至历史上下文表示模块,并输出预测出的本轮对话对应的第一历史上下文信息。即,历史上下文表示模块采用预先构建的自然语言处理模型。其中,预先构建的自然语言处理模型为Transformer模型。
进一步地,服务器将提问信息中的位置信息、段落信息以及单词信息嵌入Transformer模型中的编码器,确定提问信息对应的编码信息。
其中,位置信息是指提问信息中用户对每个词的输入顺序,段落信息是指提问信息中每句话的输入顺序,单词信息是指每个词所表示的含义。
需要说明的是,编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。
更进一步地,服务器获取本轮对话之前的每轮对话的历史上下文信息,将每轮对话的历史上下文信息与编码信息输入至预先构建的流式预测模型,生成本轮对话对应的第一历史上下文信息。其中,在Transformer的上层,增加预先构建的流式预测模型。
需要说明的是,预测模型是指用于预测的,用数学语言或公式所描述的事物间的数量关系,预测时把它作为计算预测值的直接依据。而预先构建的流式预测模型可以根据实际需要进行设置,本申请实施例在此不作具体限定。
其中,服务器在生成本轮对话对应的第一历史上下文信息时,首先在本轮对话之前的每轮对话结束时,在每轮对话后增加对应的令牌信息,并将令牌信息作为每轮对话的历史上下文信息对应的标识信息。比如,在每轮对话的文本结束,添加一个名字为C的token,作为历史上下文所有信息的表示。
需要说明的是,token在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。
然后,将标识信息与编码信息输入至预先构建的流式预测模型,生成本轮对话对应的第一历史上下文信息。比如,在Transformer的上层,增加流式预测模型,输入为每轮对话的文本结束的C token,输出为本轮对话对应的历史对话整体的上下文信息。
S103:获取与本轮相邻的上一轮对话对应的第二历史上下文信息。
具体地,服务器从存储用户与多轮问答系统交互时的交互信息的数据库中,获取与本轮相邻的上一轮对话对应的第二历史上下文信息。
其中,服务器在确定上一轮对话对应的第二历史上下文信息与步骤S102中的生成本轮对话对应的第一历史上下文信息的过程原理一致。即,服务器首先获取上一轮对话的提问信息,然后将上一轮对话的提问信息输入至预先构建的自然语言处理模型,预测上一轮对话对应的第二历史上下文信息。
然后,服务器将上一轮对话的提问信息中的位置信息、段落信息以及单词信息嵌入Transformer模型中的编码器,确定上一轮对话提问信息对应的编码信息。
最后,服务器获取上一轮对话之前的每轮对话的历史上下文信息,将每轮对话的历史上下文信息与编码信息输入至预先构建的流式预测模型,生成上一轮对话对应的第二历史上下文信息。
S104:确定第一历史上下文信息与第二历史上下文信息之间的语义变化信息。
具体地,在语义转化模块中,服务器确定第一历史上下文信息与第二历史上下文信息之间的语义变化信息。其中,语义变化信息反映了用户新输入问题后,整体的语义变化,是对话题转化的一种衡量指标。
其中,服务器确定第一历史上下文信息与第二历史上下文信息之间的差值信息,然后通过差值信息确定第一历史上下文信息与第二历史上下文信息之间的语义变化信息。比如,语义变化信息表达式为IK=CK+1-Ck,其中,CK+1为本轮对话对应的第一历史上下文信息的预测值,CK为与本轮相邻的上一轮对话对应的第二历史上下文信息的预测值,IK为第一历史上下文信息与第二历史上下文信息之间的差值。
S105:根据语义变化信息与第一历史上下文信息,生成提问信息对应的答复信息。
具体地,在文本生成模块中,服务器根据语义变化信息与第一历史上下文信息,生成提问信息对应的答复信息。
其中,将语义变化信息与所述第一历史上下文信息输入至Softmax层,在Softmax层中,根据语义变化信息与第一历史上下文信息,生成提问信息对应的答复信息。
进一步地,服务器在Softmax层中,调用数据库,根据语义变化信息与第一历史上下文信息,在数据库中匹配提问信息对应的答复信息。
更进一步地,服务器根据语义变化信息与第一历史上下文信息,在数据库中匹配提问信息对应的答复信息时,首先根据语义变化信息与第一历史上下文信息,对数据库中的词进行评分,确定提问信息对应的第一答复词,然后,根据语义变化信息与第一答复词,确定提问信息对应的第二答复词,最后,根据第一答复词与第二答复词,生成提问信息对应的答复信息。
也就是说,服务器在文本生成模块生成答复信息时,是一个字一个字的生成的,比如,将用户的提问信息为“你爱吃什么?”,多轮问答系统生成的答复为“我爱吃番茄”。则在生成“我爱吃番茄”时,首先在数据库挑选出来的词为“我”,然后根据语义变化信息与“我”,在数据库挑选出来的词为“爱”,然后根据语义变化信息与“我爱”,在数据库挑选出来的词为“吃”,依次类推,直至生成“我爱吃番茄”。
需要说明的是,本申请实施例中历史上下文信息表示模块、语义转化模块以及文本生成模块,采用的模型架构为Transformer架构,在此基础上增加了自身信息。
需要说明的是,虽然本申请实施例是参照图1来对步骤S101至步骤S105依次进行介绍说明的,但这并不代表步骤S101至步骤S105必须按照严格的先后顺序执行。本申请实施例之所以按照图1中所示的顺序对步骤S101至步骤S105依次进行介绍说明,是为了方便本领域技术人员理解本申请实施例的技术方案。换句话说,在本申请实施例中,步骤S101至步骤S105之间的先后顺序可以根据实际需要进行适当调整。
本申请实施例通过在预先构建的自然语言处理模型中,不仅预测本轮对话对应的第一历史上下文信息,又获取与本轮相邻的上一轮对话对应的第二历史上下文信息,考虑到了历史上下文信息的先后顺序,并且又考虑到了经过本轮对话后语义的转化程度,使得多轮问答系统在闲聊多轮问答时,能根据人类语义的变化做出调整,提高了语义理解的准确率。
基于同样的思路,本申请的一些实施例还提供了上述方法对应的设备和非易失性计算机存储介质。
图2为本申请实施例提供的一种多轮问答语义生成设备的结构示意图,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取本轮对话中的提问信息;
将提问信息输入至预先构建的自然语言处理模型,预测本轮对话对应的第一历史上下文信息;
获取与本轮相邻的上一轮对话对应的第二历史上下文信息;
确定第一历史上下文信息与第二历史上下文信息之间的语义变化信息;
根据语义变化信息与第一历史上下文信息,生成提问信息对应的答复信息。
本申请的一些实施例提供的一种多轮问答语义生成非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取本轮对话中的提问信息;
将提问信息输入至预先构建的自然语言处理模型,预测本轮对话对应的第一历史上下文信息;
获取与本轮相邻的上一轮对话对应的第二历史上下文信息;
确定第一历史上下文信息与第二历史上下文信息之间的语义变化信息;
根据语义变化信息与第一历史上下文信息,生成提问信息对应的答复信息。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请技术原理之内所作的任何修改、等同生成、改进等,均应落入本申请的保护范围之内。