掌桥专利:专业的专利平台
掌桥专利
首页

一种对话问题生成方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:52:40


一种对话问题生成方法、装置、设备及存储介质

技术领域

本发明涉及智能对话技术领域,尤其涉及一种对话问题生成方法、装置、设备及存储介质。

背景技术

对话问题生成技术,旨在根据指定场景的需求,基于历史对话预测下一轮对话的问题(或者预测下一轮对话的问题和答案)。对话问题生成技术可以用于构建问答对话语料,还可以在实际对话流程中用于对话引导。对话问题生成作为一个新兴且富有挑战的自然语言处理任务,已成为相关领域人员的研究新方向。

目前的对话问题生成方案大多为基于人工的对话问题生成方案,即,由人工根据历史对话预测下一轮对话的问题(或者预测下一轮对话的问题和答案)。然而,基于人工的对话问题生成方案费时、费力且对相关人员的要求较高,即,基于人工的对话问题生成方案效率较低、成本较高。

发明内容

有鉴于此,本发明提供了一种对话问题生成方法、装置、设备及存储介质,用以解决现有的基于人工的对话问题生成方案效率较低、成本较高的问题,其技术方案如下:

一种对话问题生成方法,包括:

获取指定场景中的参考文档,以及针对所述参考文档所展开的对话的历史对话数据;

识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息;

基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案;

基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题。

可选的,所述基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案,包括:

基于所述历史对话数据、所述参考文档以及所述目标意图信息,从所述参考文档中抽取候选答案,以得到由抽取出的候选答案组成的第一候选答案集;

基于所述目标意图信息中所述下一轮对话的意图,从所述第一候选答案集中筛选出下一轮对话的答案。

可选的,所述第一候选答案集中的每个候选答案对应有预测概率,所述预测概率为对应候选答案为下一轮对话的答案的概率;

所述基于所述目标意图信息中所述下一轮对话的意图,从所述第一候选答案集中筛选出下一轮对话的答案,包括:

将所述第一候选答案集中对应的预测概率小于预设的概率阈值的候选答案删除,得到第二候选答案集;

从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,所述从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案,包括:

识别所述第二候选答案集中的每个候选答案所包含的命名实体;

从所述第二候选答案集中筛选所包含的命名实体与所述下一轮对话的意图匹配的候选答案,作为第一目标答案;

若第一目标答案为一个,则将该第一目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案;若第一目标答案为多个,则将多个第一目标答案中对应的预测概率最大的第一目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,所述从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案,还包括:

若所述第二候选答案集中不存所包含的命名实体与所述下一轮对话的意图匹配的候选答案,则基于预先构建的意图与命名实体的相关性信息,确定与所述下一轮对话的意图相关的命名实体,其中,所述意图与命名实体的相关性信息包括若干种意图以及与所述若干种意图中的每种意图相关的命名实体;

基于与所述下一轮对话的意图相关的命名实体,从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,所述意图与命名实体的相关性信息的构建过程包括:

获取多条标注有意图信息的对话语料,其中,每条对话语料包括多轮对话,每轮对话标注有意图;

针对每条对话语料包含的每轮对话,对该轮对话中的答案进行命名实体识别,识别出的命名识别作为与该轮对话标注的意图相关的命名实体;

基于每条对话语料包含的每轮对话标注的意图,以及与每条对话语料包含的每轮对话标注的意图相关的命名实体,构建所述意图与命名实体的相关性信息。

可选的,所述基于与所述下一轮对话的意图相关的命名实体,从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案,包括:

从所述第二候选答案中,筛选包含与所述下一轮对话的意图相关的命名实体的候选答案,作为第二目标答案;

若第二目标答案为一个,则将该第二目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案;

若第二目标答案为多个,则将多个第二目标答案中对应的预测概率最大的第二目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,所述识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,包括:

以所述历史对话数据包含的每轮对话为依据,利用预先训练得到的意图识别模型识别所述历史对话数据包含的每轮对话的意图;

以所述历史对话数据所包含的最后一轮对话的向量表示为依据,利用所述意图识别模型,预测下一轮对话的意图,其中,所述最后一轮对话的向量表示为所述意图识别模型在进行意图识别的过程中确定的包含各轮对话的对话信息的向量;

其中,所述意图识别模型采用标注有真实意图信息的训练对话数据训练得到,训练对话数据标注的真实意图信息包括训练对话数据包含的每轮对话的真实意图和下一轮对话的真实意图。

可选的,所述基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案,包括:

基于所述历史对话数据、所述参考文档、所述目标意图信息以及预先训练得到的答案抽取模型,生成下一轮对话的答案;

其中,所述答案抽取模型采用标注有下一轮对话的真实答案的训练样本训练得到,所述标注有下一轮对话的真实答案的训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于意图识别模型对训练对话数据进行识别和预测的意图信息。

可选的,所述基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题,包括:

以所述历史对话数据、所述参考文档以及所述下一轮对话的答案为依据,利用预先训练得到的问题生成模型,生成下一轮对话的问题;

其中,所述问题生成模型采用标注有下一轮对话的真实问题的训练样本训练得到,所述标注有下一轮对话的真实问题的训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于答案抽取模型针对训练对话数据确定的下一轮对话的答案。

一种对话问题生成装置,包括:数据获取模块、意图识别和预测模块、答案生成模块和问题生成模块

所述数据获取模块,用于获取指定场景中的参考文档,以及针对所述参考文档所展开的对话的历史对话数据;

所述意图识别和预测模块,用于识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息;

所述答案生成模块,用于基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案;

所述问题生成模块,用于基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题。

一种对话问题生成设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现上述任一项所述的对话问题生成方法的各个步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的对话问题生成方法的各个步骤。

本发明提供的对话问题生成方法、装置、设备及存储介质,首先获取指定场景中的参考文档以及针对参考文档所展开的对话的历史对话数据,然后识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,接着基于历史对话数据、参考文档以及识别和预测的意图,生成下一轮对话的答案,最后基于历史对话数据、参考文档以及下一轮对话的答案,生成下一轮对话的问题。本发明提供的对话问题生成方法可利用历史对话数据所包含的每轮对话的意图以及下一轮对话的意图自动预测出下一轮对话的答案,进而可利用预测出的下一轮对话的答案自动预测出下一轮对话的问题,从而得到下一轮对话的问答对,相比于基于人工的对话问题生成方案,本发明提供的对话问题生成方法具有较高的效率和较低的成本,且问答对的生成效果较好。

附图说明

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

图1为本发明本发明涉及的硬件架构的示意图;

图2为本发明实施例提供的对话问题生成方法的流程示意图;

图3为本发明实施例提供的基于意图识别模型识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图的流程示意图;

图4为本发明实施例提供的基于历史对话数据、参考文档以及目标意图信息,生成下一轮对话的答案的流程示意图;

图5为本发明实施例提供的对话问题生成装置的结构示意图;

图6为本发明实施例提供的对话问题生成设备的结构示意图。

具体实施方式

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

考虑到现有的基于人工的对话问题生成方案效率较低、成本较高,本案发明人试图提出一种自动对话问题生成方案,以提高对话问题生成效率,降低对话问题生成成本,为此,进行了研究,起初的思路是:

采用基于规则的对话问题生成方法,该方法依赖语法规则、浅层语义解析、词汇资源等资源,从历史对话中,参考对话上下文内容(参考文档中的内容),挖掘下一轮对话的问答对。

基于规则的对话问题生成方法虽然在一定程度上能够提高对话问题生成效率、降低对话问题生成成本,但其存在诸多缺陷,比如,定制化高、泛化能力差,不能提取规则之外的问答对,生成问答对的效果不够稳定。

鉴于基于规则的对话问题生成方法存在诸多缺陷,本案发明人进一步进行研究,通过研究,想到了基于深度学习的对话问题生成方法,该方法在已知下一轮对话的答案的前提下,以历史对话、参考文档和下一轮对话的答案为依据,利用深度学习模型生成下一轮对话的问题。

然而,上述对话问题生成方法是在已知下一轮对话的答案的情况下,根据已知答案生成问题,其无法根据历史对话自动生成下一轮对话的问题和答案,另外,由于基于深度学习的对话问题生成方法需要进行模型训练,用于模型训练的数据需要标注答案,而答案的标注十分耗力,且需要培训专业的标注人员才能进行答案标注。

鉴于基于深度学习的对话问题生成方法所存在的不足,本案发明人继续进行研究,通过不断研究,最终提出了一种效果较好的对话问题生成方法,该方法无需已知下一轮对话的答案(无需进行答案标注),其可通过对参考文档以及针对参考文档所展开的对话的历史对话数据进行处理,自动生成下一轮对应的问题和答案,该方法的泛化能力较强,生成问答对的效果较为稳定。

在介绍本发明提供的对话问题生成方法之前,先对本发明涉及的硬件架构进行说明。

在一种可能的实现方式中,如图1所示,本发明涉及的硬件架构可以包括:电子设备101和服务器102。

示例性的,电子设备101可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,手机、笔记本电脑、平板电脑、掌上电脑、个人计算机、可穿戴设备、智能电视、PAD等。

应注意的是,图1仅仅是一种示例,电子设备的类型可以有多种,不限于图1中的笔记本电脑。

示例性的,服务器102可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务器中心。服务器102可以包括处理器、存储器以及网络接口等。

示例性的,电子设备101可以通过无线通信网络与服务器102建立连接并通信;示例性的,电子设备101可以通过有线网络与服务器102建立连接并通信。

电子设备101可将参考文档以及针对参考文档所展开的对话的历史对话数据发送至服务器102,服务器按本发明提供的对话问题生成方法生成下一轮对话的问题和答案,将生成的问题和答案发送至电子设备101。

在另一种可能的实现方式中,本发明涉及的硬件架构可以包括:电子设备。电子设备为具有较强数据处理能力的设备。

示例性的,电子设备可以为任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,PC、手机、笔记本电脑、平板电脑、掌上电脑、个人计算机等。

电子设备可按本发明提供的对话问题生成方法生成下一轮对话的问题和答案,并将生成的问题和答案输出。

本领域技术人员应能理解上述电子设备和服务器仅为举例,其它现有的或今后可能出现的电子设备或服务器如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。

接下来通过下述实施例对本发明提供的对话问题生成方法进行介绍。

第一实施例

请参阅图2,示出了本发明实施例提供的对话问题生成方法的流程示意图,可以包括:

步骤S201:获取指定场景中的参考文档,以及针对参考文档所展开的对话的历史对话数据。

其中,指定场景可以为任何需要进行对话问题生成的场景,比如金融场景,历史对话数据可以包括一轮对话,也可以包括多轮对话,历史对话数据包含的各轮对话为围绕参考文档中的内容展开的对话。

示例性的,指定场景为金融场景,参考文档可以为理财产品介绍文档,则历史对话数据为针对理财产品介绍文档中的内容所展开的对话的历史对话数据。

步骤S202:识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息。

示例性的,历史对话数据包括3轮对话,则步骤S202的目的在于,识别第1轮对话的意图、第2轮对话的意图和第3轮对话的意图,以及预测第4轮对话的意图。示例性的,对话的意图可以为时间、地点、概念解释等。

对历史对话数据所包含的每轮对话进行意图识别,以得到历史对话数据所包含的每轮对话的意图,在对历史对话数据所包含的各轮对话进行识别的过程中,可获得历史对话数据所包含的各轮对话的对话信息,可基于历史对话数据所包含的各轮对话的对话信息预测下一轮对话的意图。

步骤S203:基于历史对话数据、参考文档以及目标意图信息,生成下一轮对话的答案。

经由步骤S202获得目标意图信息后,可基于历史对话数据和参考文档,同时结合目标意图信息,预测下一轮对话的答案。具体的,可首先基于历史对话数据、参考文档以及目标意图信息,从参考文档中抽取候选答案,以得到若干候选答案,然后从若干候选答案中筛选出下一轮对话的答案。

步骤S204:基于历史对话数据、参考文档以及下一轮对话的答案,生成下一轮对话的问题。

经由步骤S203获得下一轮对话的答案后,可基于历史对话数据和参考文档,同时结合下一轮对话的答案,预测下一轮对话的问题,至此便获得了下一轮对话的问答对。

本发明实施例提供的对话问题生成方法,首先获取指定场景中的参考文档以及针对参考文档所展开的对话的历史对话数据,然后识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,接着基于历史对话数据、参考文档以及识别和预测的意图,生成下一轮对话的答案,最后基于历史对话数据、参考文档以及下一轮对话的答案,生成下一轮对话的问题。本发明实施例提供的对话问题生成方法可利用历史对话数据所包含的每轮对话的意图以及下一轮对话的意图自动预测出下一轮对话的答案,进而可利用预测出的下一轮对话的答案自动预测出下一轮对话的问题,从而得到下一轮对话的问答对,相比于基于人工的对话问题生成方案,本发明实施例提供的对话问题生成方法具有较高的效率和较低的成本,且问答对的生成效果较好。

另外,相比于有答案的问题生成方法,本发明实施例提供的对话问题生成方法的成本更低、实现难度更小、可用性更强,相比于基于规则的对话问题生成方法,本发明实施例提供的对话问题生成方法的泛化能力更强,生成问答对的效果更稳定。

第二实施例

本实施例对上述实施例中的“步骤S202:识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息”的具体实现过程进行介绍。

上述实施例提到,可对历史对话数据所包含的每轮对话进行意图识别,以得到历史对话数据所包含的每轮对话的意图,可基于在对历史对话数据所包含的各轮对话进行意图识别的过程中获得的各轮对话的对话信息预测下一轮对话的意图。

可选的,上述意图识别和预测过程可基于模型实现,当然,本实施例并不限定于此,即本实施例对上述意图识别和预测过程的具体实现形式不做限定。接下来以意图识别和预测过程基于模型实现为例,对步骤S202的具体实现过程进行介绍。

请参阅图3,示出了基于意图识别模型识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图的流程示意图,可以包括:

步骤S301:以历史对话数据包含的每轮对话为依据,利用预先训练得到的意图识别模型识别历史对话数据包含的每轮对话的意图。

具体的,可首先对历史对话数据进行分割,以分割出每轮对话,然后在相邻对话间插入分隔符(比如,对于包含3轮对话的历史对话数据,在第1轮对话与第2轮对话之间插入分隔符,在第2轮对话与第3轮对话之间插入分隔符),然后将插入分隔符的历史对话数据输入预先训练得到的意图识别模型进行意图识别,以得到意图识别模型针对输入的每轮对话识别的意图。

步骤S302:以历史对话数据所包含的最后一轮对话数据的向量表示为依据,利用意图识别模型,预测下一轮对话的意图。

其中,最后一轮对话数据的向量表示为意图识别模型在进行意图识别的过程中确定的包含各轮对话的对话信息的向量,意图识别模型根据最后一轮对话数据的向量表示预测下一轮对话的意图。

本实施例中的意图识别模型采用标注有真实意图信息的训练对话数据训练得到,其中,训练对话数据标注的真实意图信息包括训练对话数据包含的每轮对话的真实意图和下一轮对话的真实意图。示例性的,本实施例中的意图识别模型可以但不限定为序列标注模型BERT-CRF。

具体的,意图识别模型的训练过程可以包括:

步骤a1、从第一训练集中获取标注有真实意图信息的训练对话数据。

其中,第一训练集中包括多条标注有真实意图信息的训练对话数据,第一训练集中每条标注有真实意图信息的训练对话数据可基于语料库中的对话语料构建。

需要说明的是,语料库中包括指定场景的多条标注有意图信息的问答对话语料以及多条问答对话语料分别对应的参考文档,每条问答对话语料包括多轮对话,每轮对话包括问题和答案,每轮对话标注有该轮对话的意图。

对于一条包括N轮对话的问答对话语料,可按如下方案构建一条或多条标注有真实意图信息的训练对话数据:将第n轮对话之前的m(m取大于或等于1且小于或等于n-1的整数)轮对话数据作为构建的训练对话数据,将第n轮(n取大于1且小于或等于N的整数)对话之前的m轮对话数据中每轮对话标注的意图以及第n轮对话标注的意图,作为构建的训练对话数据的标注信息。

示例性的,对于一条包括4轮对话的问答对话语料,可将第1轮问答对话作为构建的训练对话数据1,将第1轮对话标注的意图以及第2轮对话标注的意图作为训练对话数据1的标注信息,可将第1轮对话和第2轮对话作为构建的训练对话数据2,将第1轮对话标注的意图、第2轮对话标注的意图以及第3轮对话标注的意图作为训练对话数据2的标注信息,可将第1轮对话~第3轮对话作为构建的训练对话数据3,将第1轮对话标注的意图、第2轮对话标注的意图、第3轮对话标注的意图以及第4轮对话标注的意图作为训练对话数据3的标注信息,另外,还可将第2轮对话作为构建的训练对话数据4,将第2轮对话标注的意图以及第3轮对话标注的意图作为训练对话数据4的标注信息,还可将第3轮对话作为构建的训练对话数据5,将第3轮对话标注的意图以及第4轮对话标注的意图作为训练对话数据5的标注信息,还可将第2轮对话和第3轮对话作为构建的训练对话数据6,将第2轮对话标注的意图、第3轮对话标注的意图以及第4轮对话标注的意图作为训练对话数据6的标注信息。

对于语料库中的多条标注有意图信息的问答对话语料,按上述方式可构建出大量标注有意图信息的训练对话数据。

步骤a2、将获取的训练对话数据输入意图识别模型,得到意图识别模型输出的意图识别及预测结果。

将训练对话数据输入意图识别模型后,意图识别模型对训练对话数据包含的每轮对话的意图进行识别,并预测下一轮对话的意图,进而输出意图识别及预测结果。需要说明的是,在将训练对话数据输入意图识别模型时,同样需要对训练对话数据进行分割,以在相邻的两轮对话之间插入分割符,进而将插入分隔符的训练对话数据输入意图识别模型。

需要说明的是,意图识别模型具有两个任务,一是为每轮对话打上意图标签,二是通过最后一轮对话的向量表示,预测下一轮对话的意图,通过多任务学习,能充分利用各轮对话之间的上下文关系,更好地捕捉各轮对话意图潜在的承接关系。

步骤a3、基于意图识别模型输出的意图识别及预测结果,以及输入的训练对话数据标注的真实意图信息,确定意图识别模型的预测损失。

可选的,可基于意图识别模型输出的意图识别及预测结果,以及输入的训练对话数据标注的真实意图信息确定意图识别模型的交叉熵损失,交叉熵损失的确定方式为现有技术,本实施例在此不做赘述。

步骤a4、根据意图识别模型的预测损失,对意图识别模型进行参数更新。

按上述步骤a1~步骤a4的过程对意图识别模型进行多次迭代训练,直至满足训练结束条件(比如,模型收敛,或者达到预设的迭代次数)。

在训练结束后,便可将历史对话数据输入训练得到的意图识别模型,意图识别模型识别历史对话数据包含的每轮对话的意图,并预测下一轮对话的意图,针对历史对话数据输出意图识别和预测结果。

第三实施例

本实施例对上述实施例中的“步骤S203:基于历史对话数据、参考文档以及目标意图信息,生成下一轮对话的答案”的具体实现过程进行介绍。

请参阅图4,示出了基于历史对话数据、参考文档以及目标意图信息,生成下一轮对话的答案的流程示意图,可以包括:

步骤S401:基于历史对话数据、参考文档以及目标意图信息,从参考文档中抽取候选答案,以得到由抽取出的候选答案组成的第一候选答案集。

具体的,基于历史对话数据、参考文档以及目标意图信息,从参考文档中抽取候选答案的过程可以包括:

步骤S4011、基于历史对话数据、参考文档以及目标意图信息,预测参考文档中每个词对应的第一概率和第二概率。

其中,第一概率为对应词为答案起始词的概率,第二概率为对应词为答案结束词的概率。

步骤S4012、基于参考文档中每个词对应的第一概率和第二概率,从参考文档中确定出答案起始词和答案结束词。

在预测出参考文档中每个词对应的第一概率和第二概率后,便可基于预测出的概率从参考文档中确定出答案起始词和答案结束词。

步骤S4013、根据从参考文档中确定出的答案起始词和答案结束词,从参考文档中抽取候选答案。

需要说明的是,抽取出的每个候选答案为从一答案起始词到一答案结束词的文本片段,即,一个答案起始词、与该答案起始词相邻的答案结束词以及二者之间的部分组成一候选答案。

对于抽取出的每个候选答案,可进一步确定该候选答案对应的预测概率,该候选答案对应的预测概率可根据该候选答案的起始词对应的第一概率和结束词对应的第二概率确定,比如,可将该候选答案的起始词对应的第一概率与该候选答案的结束词对应的第二概率求和,求和结果作为该候选答案对应的预测概率,除此之外,还可将候选答案的起始词对应的第一概率与该候选答案的结束词对应的第二概率相乘,相乘结果作为该候选答案对应的预测概率。需要说明的是,一候选答案对应的预测概率为该候选答案为下一轮对话的答案的概率。

步骤S402:基于目标意图信息中下一轮对话的意图,从第一候选答案集中筛选出下一轮对话的答案。

具体的,基于目标意图信息中下一轮对话的意图,从第一候选答案集中筛选出下一轮对话的答案的过程可以包括:

步骤S4021、将第一候选答案集中对应的预测概率小于预设的概率阈值的候选答案删除,得到第二候选答案集。

步骤S4021的目的在于,基于预设的概率阈值,将第一候选答案集中不可能为下一轮对话的答案的候选答案去除。

步骤S4022、从第二候选答案集中筛选与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

具体的,从第二候选答案集中筛选与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案的过程包括:

步骤b1、识别第二候选答案集中的每个候选答案所包含的命名实体。

可采用现有的命名实体识别方法识别第二候选答案集中的每个候选答案所包含的命名实体。

步骤b2、从第二候选答案集中筛选所包含的命名实体与下一轮对话的意图匹配的候选答案,作为第一目标答案。

示例性的,下一轮对话的意图为时间,第二候选答案集中一候选答案包含的命名实体为年份,则可确定该候选答案为与下一轮对话的意图匹配的候选答案。

步骤b3-a、若第一目标答案为一个,则将该第一目标答案确定为与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

步骤b3-b、若第一目标答案为多个,则将多个第一目标答案中对应的预测概率最大的第一目标答案确定为与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

示例性的,下一轮对话的意图为时间,第二候选答案集中有3个候选答案包含的命名实体与下一轮对话的意图时间匹配,则将这3个候选答案中对应的预测概率最大的候选答案确定为下一轮对话的答案。

在某些时候,可能出现第二候选答案集中不存第一目标答案(即第二候选答案集中不存在所包含的命名实体与下一轮对话的意图匹配的候选答案)的情况,针对这种情况,本实施例提出如下处理策略:

步骤b4、基于预先构建的意图与命名实体的相关性信息,确定与下一轮对话的意图相关的命名实体。

其中,意图与命名实体的相关性信息包括若干种意图以及与若干种意图中的每种意图相关的命名实体。

具体的,意图与命名实体的相关性信息的构建过程包括:

步骤c1、从语料库中获取多条标注有意图信息的问答对话语料。

其中,每条问答对话语料包括多轮对话,每轮对话标注有意图。

步骤c2、针对获取的每条问答对话语料包含的每轮对话,对该轮对话中的答案进行命名实体识别,识别出的命名识别作为与该轮对话标注的意图相关的命名实体。

经由步骤c2可获得与若干意图相关的命名实体。

步骤c3、基于每条问答对话语料包含的每轮对话标注的意图,以及与每条问答对话语料包含的每轮对话标注的意图相关的命名实体,构建意图与命名实体的相关性信息。

示例性的,有3条问答对话语料,第1条问答对话语料包括3轮对话,其中,第1轮对话的意图为a,从第1轮对话的答案中识别出的命名实体为e

示例性的,意图与命名实体的相关性信息如下所示:

可选的,在与某个意图相关的命名实体较多时,可将与该意图相关度较低(比如,在多条对话语料中,标注意图a的有100轮对话,只从一轮对话的答案中识别到了命名实体e,则说明命名实体e与意图a的相关度不高)的命名实体去掉。当然,与每个意图相关的所有命名实体也可全部保留。

步骤b5、基于与下一轮对话的意图相关的命名实体,从第二候选答案集中筛选与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

具体的,可从第二候选答案中,筛选包含与下一轮对话的意图相关的命名实体的候选答案,作为第二目标答案,若第二目标答案为一个,则将该第二目标答案确定为与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案,若第二目标答案为多个,则将多个第二目标答案中对应的预测概率最大的第二目标答案确定为与下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

在一种可能的实现方式中,可基于历史对话数据、参考文档、目标意图信息以及预先训练得到的答案抽取模型,生成下一轮对话的答案。具体的,首先以历史对话数据、参考文档以及目标意图信息为依据,利用预先训练得到的答案抽取模型,从参考文档中抽取候选答案,以得到由抽取出的候选答案组成的第一候选答案集,然后基于下一轮对话的意图,从第一候选答案集中筛选出下一轮对话的答案。

其中,在以历史对话数据、参考文档以及目标意图信息为依据,利用预先训练得到的答案抽取模型,从参考文档中抽取候选答案时,将历史对话数据、参考文档以及目标意图信息输入答案抽取模型,答案抽取模型输出参考文档中每个词对应的第一概率和第二概率,进而基于参考文档中每个词对应的第一概率和第二概率从参考文档中抽取候选答案。需要说明的是,在将历史对话数据、参考文档以及目标意图信息输入答案抽取模型时,将这三部分输入数据之间以分隔符分隔开。

本实施例中的答案抽取模型采用标注有下一轮对话的真实答案的训练样本训练得到,标注有下一轮对话的真实答案的训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于意图识别模型对训练对话数据进行识别和预测的意图信息。示例性的,答案抽取模型可以但不限定为基于BERT的答案抽取模型。

具体的,答案抽取模型的训练过程可以包括:

步骤d1、从第二训练集中获取标注有下一轮对话的真实答案的训练样本。

其中,第二训练集包括多个标注有下一轮对话的真实答案的训练样本,如上所述,训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于意图识别模型对训练对话数据进行识别和预测的意图信息。

此处的训练样本同样基于上述提及的语料库构建,比如,语料库中的一条问答对话语料包括3轮对话,可将第1轮对话作为训练对话数据1,将该条问答语料对应的参考文档作为训练对话数据1对应的参考文档,基于意图识别模型对训练对话数据1进行意图识别和预测,如此可得到包括训练对话数据1、训练对话数据1对应的参考文档和训练对话数据1的意图信息的训练样本1,将该条对话语料中第2轮对话中的答案作为训练样本1的标注信息,可将第1轮对话和第2轮对话作为训练对话数据2,将该条问答对话语料对应的参考文档作为训练对话数据2对应的参考文档,基于意图识别模型对训练对话数据2进行意图识别和预测,如此可得到包括训练对话数据2、训练对话数据2对应的参考文档和训练对话数据2的意图信息的训练样本2,将该条对话语料中第3轮对话中的答案作为训练样本2的标注信息。

步骤d2、将获取的训练样本输入答案抽取模型,得到训练样本包含的训练对话数据所对应的参考文档中每个词对应的第一概率和第二概率。

其中,第一概率为参考文档中对应词为答案起始词的概率,第二概率为对应词为答案结束词的概率。

步骤d3、基于训练样本包含的训练对话数据所对应的参考文档中每个词对应的第一概率和第二概率,从训练样本包含的训练对话数据对应的参考文档中抽取候选答案,以得到由抽取的候选答案组成的候选答案集。

具体的,基于训练样本包含的训练对话数据对应的参考文档中每个词对应的第一概率和第二概率,从训练样本包含的训练对话数据对应的参考文档中确定出答案起始词和答案结束词,基于确定出的答案起始词和答案结束词从训练样本包含的训练对话数据对应的参考文档中抽取候选答案。

步骤d4、基于训练样本包含的训练对话数据的意图信息中下一轮对话的意图,从候选答案集中筛选出下一轮对话的答案。

步骤d4的具体实现过程与上述步骤S402的具体实现过程类似,本实施例在此不做赘述。

步骤d5、基于从候选答案集中筛选出的下一轮对话的答案和训练样本标注的下一轮对话的真实答案,确定答案抽取模型的预测损失。

可选的,基于从候选答案集中筛选出的下一轮对话的答案和训练样本标注的下一轮对话的真实答案,确定答案抽取模型的交叉熵损失,交叉熵损失的确定方式为现有技术,本实施例在此不做赘述。

步骤d6、根据答案抽取模型的预测损失对答案抽取模型进行参数更新。

按上述步骤d1~步骤d6的过程对答案抽取模型进行多次迭代训练,直至满足训练结束条件(比如,模型收敛,或者达到预设的迭代次数)。

第四实施例

本实施例对上述实施例中的“步骤S204:基于历史对话数据、参考文档以及下一轮对话的答案,生成下一轮对话的问题”的具体实现过程进行介绍。

在一种可能的实现方式中,可以历史对话数据、参考文档以及下一轮对话的答案为依据,利用预先训练得到的问题生成模型,生成下一轮对话的问题。

具体的,将历史对话数据、参考文档以及下一轮对话的答案输入预先训练得到的问题生成模型,得到问题生成模型输出的下一轮对话的问题。需要说明的是,在将历史对话数据、参考文档以及下一轮对话的答案输入问题生成模型时,将这三部分输入数据之间以分隔符分隔开。

其中,问题生成模型采用标注有下一轮对话的真实问题的训练样本训练得到,标注有下一轮对话的真实问题的训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于答案抽取模型针对训练对话数据确定的下一轮对话的答案。示例性的,本实施例中的问题生成模型可以但不限定为采用T5生成模型。

具体的,问题生成模型的训练过程包括:

步骤e1、从第三训练集中获取标注有下一轮对话的真实问题的训练样本。

其中,第三训练集中包括多个标注有下一轮对话的真实问题的训练样本,此处的训练样本同样基于上述提及的语料库构建,比如,语料库中的一条问答对话语料包括3轮对话,可将第1轮对话作为训练对话数据1,将该条问答对话语料对应的参考文档作为训练对话数据1对应的参考文档,基于答案抽取模型针对训练对话数据1确定下一轮对话的答案,如此可获得包括训练对话数据1、训练对话数据1对应的参考文档和训练对话数据1的下一轮对话的答案的训练样本1,将该条对话语料中第2轮对话中的问题作为训练样本1的标注信息,可将第1轮对话和第2轮对话作为训练对话数据2,将该条问答对话语料对应的参考文档作为训练对话数据2对应的参考文档,基于答案抽取模型针对训练对话数据2确定下一轮对话的答案,如此可得到包括训练对话数据2、训练对话数据2对应的参考文档和训练对话数据2的下一轮对话的答案的训练样本2,将该条问答对话语料中第3轮对话中的问题作为训练样本2的标注信息。

需要说明的是,第一训练集、第二训练集和第三训练集中的训练对话数据可以相同,当然也可以不同,若三个训练集中的训练对话数据相同,则在构建出一条训练对话数据后,可进一步构建该训练对话数据对应的参考文档、该训练对话数据的下一轮对话的真实答案,该训练对话的下一轮对话的真实问题。

步骤e2、将获取的训练样本输入问题生成模型,得到问题生成模型生成的下一轮对话的问题。

将训练样本包含的三部分以分隔符分隔开后输入问题生成模型,问题生成模型输出其预测的下一轮对话的问题。

步骤e3、根据问题生成模型生成的下一轮对话的问题以及训练样本标注的下一轮对话的问题,确定问题生成模型的预测损失。

可选的,可根据问题生成模型生成的下一轮对话的问题以及训练样本标注的下一轮对话的问题,确定问题生成模型的交叉熵损失,交叉熵损失的确定方式为现有技术,本实施例在此不做赘述。

步骤e4、根据问题生成模型的预测损失,对问题生成模型进行参数更新。

按上述步骤e1~步骤e4的过程对问题生成模型进行多次迭代训练,直至满足训练结束条件(比如,模型收敛,或者达到预设的迭代次数)。

第五实施例

本发明实施例还提供了一种对话问题生成装置,下面对本发明实施例提供的对话问题生成装置进行描述,下文描述的对话问题生成装置与上文描述的对话问题生成方法可相互对应参照。

请参阅图5,示出了本发明实施例提供的对话问题生成装置的结构示意图,该对话问题生成装置可以包括:数据获取模块501、意图识别和预测模块502、答案生成模块503和问题生成模块504。

数据获取模块501,用于获取指定场景中的参考文档,以及针对所述参考文档所展开的对话的历史对话数据。

意图识别和预测模块502,用于识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息。

答案生成模块503,用于基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案。

问题生成模块504,用于基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题。

可选的,答案生成模块503包括:答案抽取模块和答案筛选模块。

答案抽取模块,用于基于所述历史对话数据、所述参考文档以及所述目标意图信息,从所述参考文档中抽取候选答案,以得到由抽取出的候选答案组成的第一候选答案集。

答案筛选模块,用于基于所述目标意图信息中所述下一轮对话的意图,从所述第一候选答案集中筛选出下一轮对话的答案。

可选的,所述第一候选答案集中的每个候选答案对应有预测概率,所述预测概率为对应候选答案为下一轮对话的答案的概率;

答案筛选模块在基于所述目标意图信息中所述下一轮对话的意图,从所述第一候选答案集中筛选出下一轮对话的答案时,具体用于:

将所述第一候选答案集中对应的预测概率小于预设的概率阈值的候选答案删除,得到第二候选答案集;

从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,答案筛选模块在从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案时,具体用于:

识别所述第二候选答案集中的每个候选答案所包含的命名实体;

从所述第二候选答案集中筛选所包含的命名实体与所述下一轮对话的意图匹配的候选答案,作为第一目标答案;

若第一目标答案为一个,则将该第一目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案;

若第一目标答案为多个,则将多个第一目标答案中对应的预测概率最大的第一目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,答案筛选模块在从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案时,还用于:

若所述第二候选答案集中不存所包含的命名实体与所述下一轮对话的意图匹配的候选答案,则基于预先构建的意图与命名实体的相关性信息,确定与所述下一轮对话的意图相关的命名实体,其中,所述意图与命名实体的相关性信息包括若干种意图以及与所述若干种意图中的每种意图相关的命名实体;

基于与所述下一轮对话的意图相关的命名实体,从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,本发明实施例提供的对话问题生成装置还可以包括:相关性信息构建模块。相关性信息构建模块,用于构建意图与命名实体的相关性信息。

相关性信息构建模块在构建意图与命名实体的相关性信息时,具体用于:

获取多条标注有意图信息的对话语料,其中,每条对话语料包括多轮对话,每轮对话标注有意图;

针对每条对话语料包含的每轮对话,对该轮对话中的答案进行命名实体识别,识别出的命名识别作为与该轮对话标注的意图相关的命名实体;

基于每条对话语料包含的每轮对话标注的意图,以及每条对话语料包含的每轮对话标注的意图相关的命名实体,构建所述意图与命名实体的相关性信息。

可选的,答案筛选模块在基于与所述下一轮对话的意图相关的命名实体,从所述第二候选答案集中筛选与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案时,具体用于:

从所述第二候选答案中,筛选包含与所述下一轮对话的意图相关的命名实体的候选答案,作为第二目标答案;

若第二目标答案为一个,则将该第二目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案;

若第二目标答案为多个,则将多个第二目标答案中对应的预测概率最大的第二目标答案确定为与所述下一轮对话的意图匹配的候选答案,作为下一轮对话的答案。

可选的,意图识别和预测模块502在识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图时,具体用于:

以所述历史对话数据包含的每轮对话为依据,利用预先训练得到的意图识别模型识别所述历史对话数据包含的每轮对话的意图;

以所述历史对话数据所包含的最后一轮对话的向量表示为依据,利用所述意图识别模型,预测下一轮对话的意图,其中,所述最后一轮对话的向量表示为所述意图识别模型在进行意图识别的过程中确定的包含各轮对话的对话信息的向量;

其中,所述意图识别模型采用标注有真实意图信息的训练对话数据训练得到,训练对话数据标注的真实意图信息包括训练对话数据包含的每轮对话的真实意图和下一轮对话的真实意图。

可选的,答案生成模块503在基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案时,具体用于:

基于所述历史对话数据、所述参考文档、所述目标意图信息以及预先训练得到的答案抽取模型,生成下一轮对话的答案;

其中,所述答案抽取模型采用标注有下一轮对话的真实答案的训练样本训练得到,所述标注有下一轮对话的真实答案的训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于意图识别模型对训练对话数据进行识别和预测的意图信息。

可选的,问题生成模块504在基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题时,具体用于:

以所述历史对话数据、所述参考文档以及所述下一轮对话的答案为依据,利用预先训练得到的问题生成模型,生成下一轮对话的问题;

其中,所述问题生成模型采用标注有下一轮对话的真实问题的训练样本训练得到,所述标注有下一轮对话的真实问题的训练样本包括训练对话数据、训练对话数据对应的参考文档以及基于答案抽取模型针对训练对话数据确定的下一轮对话的答案。

本发明实施例提供的对话问题生成装置,首先获取指定场景中的参考文档以及针对参考文档所展开的对话的历史对话数据,然后识别历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,接着基于历史对话数据、参考文档以及识别和预测的意图,生成下一轮对话的答案,最后基于历史对话数据、参考文档以及下一轮对话的答案,生成下一轮对话的问题。本发明实施例提供的对话问题生成装置可利用历史对话数据所包含的每轮对话的意图以及下一轮对话的意图自动预测出下一轮对话的答案,进而可利用预测出的下一轮对话的答案自动预测出下一轮对话的问题,从而得到下一轮对话的问答对,本发明实施例提供的对话问题生成装置具有较高的效率和较低的成本,且问答对的生成效果较好,另外,本发明实施例提供的对话问题生成装置的泛化能力强,生成问答对的效果稳定。

第六实施例

本发明实施例还提供了一种对话问题生成设备,请参阅图6,示出了该对话问题生成设备的结构示意图,该对话问题生成设备可以包括:处理器601、通信接口602、存储器603和通信总线604;

在本发明实施例中,处理器601、通信接口602、存储器603、通信总线606的数量为至少一个,且处理器601、通信接口602、存储器603通过通信总线604完成相互间的通信;

处理器601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpeciIic Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:

获取指定场景中的参考文档,以及针对所述参考文档所展开的对话的历史对话数据;

识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息;

基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案;

基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

第七实施例

本发明实施例还提供了一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:

获取指定场景中的参考文档,以及针对所述参考文档所展开的对话的历史对话数据;

识别所述历史对话数据所包含的每轮对话的意图,并预测下一轮对话的意图,将识别的意图和预测的意图作为目标意图信息;

基于所述历史对话数据、所述参考文档以及所述目标意图信息,生成下一轮对话的答案;

基于所述历史对话数据、所述参考文档以及所述下一轮对话的答案,生成下一轮对话的问题。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120116329779