一种对话生成方法、装置、电子设备及可读存储介质与流程

文档序号:22084117发布日期:2020-09-01 19:50阅读:110来源:国知局
一种对话生成方法、装置、电子设备及可读存储介质与流程

本申请涉及互联网技术领域,具体而言,涉及一种对话生成方法、装置、电子设备及可读存储介质。



背景技术:

在服务领域中,客服都有着举足轻重的作用,这关系到用户的使用体验,故企业一般会客服投入较多成本,以维护与客户的关系。但是随着用人成本的上升,以及对用户体验提升的迫切需要,自动化和智能化的客服机器人的出现,能够降低当下企业针对客服投入的用人成本。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种对话生成方法、装置、电子设备及可读存储介质,能够使相邻的两次对话内容连接更紧密。

根据本申请的一个方面,提供一种对话生成方法,所述方法包括:

获取历史关联输出语句和当前用户输入语句,其中,所述历史关联输出语句为,所述当前用户输入语句邻接的上一用户输入语句对应的关联输出语句;

将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,其中,所述当前关联输出语句为,所述当前用户输入语句对应的关联输出语句。

在一些实施例中,所述第一深度学习模型包括编码模型和解码模型;

将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句的步骤,包括:

所述编码模型将所述历史关联输出语句和所述当前用户输入语句各自对应的向量进行组合,得到当前关联输入向量;

所述解码模型对所述当前关联输入向量进行处理,生成所述当前关联输出语句。

在一些实施例中,所述编码模型包括第一编码子模型、第二编码子模型及第一向量组合子模型;

所述编码模型将所述历史关联输出语句和所述当前用户输入语句各自对应的向量进行组合,得到当前关联输入向量的步骤,包括:

所述第一编码子模型将所述历史关联输出语句编码为历史关联输出向量;

所述第二编码子模型将所述当前用户输入语句编码为当前用户输入向量;

所述第一向量组合子模型将所述历史关联输出向量及所述当前用户输入向量进行组合,得到所述当前关联输入向量。

在一些实施例中,所述第一深度学习模型包括编码模型和解码模型;

将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句的步骤,包括:

所述编码模型对所述历史关联输出语句和所述当前用户输入语句均进行编码,分别得到历史关联输出向量及当前用户输入向量;

所述解码模型将所述历史关联输出向量及所述当前用户输入向量作为输入进行处理,生成所述当前关联输出语句。

在一些实施例中,所述编码模型包括第一编码子模型及第二编码子模型;

所述编码模型对所述历史关联输出语句和所述当前用户输入语句均进行编码,分别得到历史关联输出向量及当前用户输入向量的步骤,包括:

所述第一编码子模型对所述历史关联输出语句进行编码,得到所述历史关联输出向量;

所述第二编码子模型对所述当前用户输入向量进行编码,得到所述当前用户输入向量;

所述解码模型包括第二向量组合子模型及语句解码子模型;

所述解码模型将所述历史关联输出向量及所述当前用户输入向量作为输入进行处理,生成所述当前关联输出语句的步骤,包括:

所述第二向量组合子模型将所述历史关联输出向量及所述当前用户输入向量进行组合,得到当前关联输入向量;

所述语句解码子模型对所述当前关联输入向量进行处理,生成所述当前关联输出语句。

在一些实施例中,在将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句的步骤之前,所述方法还包括:

判断所述历史关联输出语句与所述当前用户输入语句两者的时间差值是否达到时间阈值;

若所述历史关联输出语句与所述当前用户输入语句两者的时间差值未达到所述时间阈值,执行将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句的步骤。

在一些实施例中,在获取历史关联输出语句和当前用户输入语句的步骤之前,所述方法还包括:

获取多个训练样本集,其中,每一训练样本集包括多组邻接的问答会话,每一组问答会话包括训练提问语句和训练回答语句;

使用所述多个训练样本集对第二深度学习模型进行训练,直至对所述第二深度学习模型训练结束,将所述训练结束的第二深度学习模型作为所述第一深度学习模型,其中,训练所述第二深度学习模型时,所述第二深度学习模型的输入包括目标组问答会话的训练提问语句,以及与所述目标组问答会话邻接的上一组问答会话的训练回答语句。

在一些实施例中,使用每一训练样本集对第二深度学习模型进行训练的步骤,包括:

将当前组问答会话中的训练提问语句,以及与所述当前组问答会话邻接的上一组问答会话中的训练回答语句作为所述第二深度学习模型的输入,得到当前回答语句;

若所述当前回答语句与所述当前组问答会话中的训练回答语句的偏差值大于偏差阈值,调整所述第二深度学习模型的参数,以获得新的深度学习模型作为所述第二深度学习模型,并以所述当前组问答会话邻接的下一组问答会话作为新的当前组问答会话,返回重新训练;

若所述当前回答语句与所述当前组问答语句中的训练回答语句的偏差值小于或等于所述偏差阈值,将所述当前组问答会话对应的深度学习模型作为所述训练结束的第二深度学习模型。

在一些实施例中,在获取多个训练样本集的步骤之后,所述方法还包括:

将每一组问答会话对齐,以使所述多个训练样本集中的每一训练提问语句和每一训练回答语句均包含n个字,其中,n为正整数。

在一些实施例中,将每一组问答会话对齐的步骤,包括:

若目标训练提问语句或目标训练回答语句的字数大于所述n,则保留所述目标训练提问语句或所述目标训练回答语句中的n个字,将其他的字剔除;

若所述目标训练提问语句或所述目标训练回答语句的字数小于所述n,则在所述目标训练提问语句或所述目标训练回答语句补充至少一个字,以使所述目标训练提问语句或所述目标训练回答语句的字数为所述n。

根据本申请的另一方面,提供一种对话生成装置,所述装置包括:

获取模块,用于获取历史关联输出语句和当前用户输入语句,其中,所述历史关联输出语句为,所述当前用户输入语句邻接的上一用户输入语句对应的关联输出语句;

处理模块,用于将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,其中,所述当前关联输出语句为,所述当前用户输入语句对应的关联输出语句。

在一些实施例中,所述第一深度学习模型包括编码模型和解码模型;

所述处理模块具体用于:

所述编码模型将所述历史关联输出语句和所述当前用户输入语句各自对应的向量进行组合,得到当前关联输入向量;

所述解码模型对所述当前关联输入向量进行处理,生成所述当前关联输出语句。

在一些实施例中,所述编码模型包括第一编码子模型、第二编码子模型及第一向量组合子模型;

所述处理模块具体用于:

所述第一编码子模型将所述历史关联输出语句编码为历史关联输出向量;

所述第二编码子模型将所述当前用户输入语句编码为当前用户输入向量;

所述第一向量组合子模型将所述历史关联输出向量及所述当前用户输入向量进行组合,得到所述当前关联输入向量。

在一些实施例中,所述第一深度学习模型包括编码模型和解码模型;

所述处理模块具体用于:

所述编码模型对所述历史关联输出语句和所述当前用户输入语句均进行编码,分别得到历史关联输出向量及当前用户输入向量;

所述解码模型将所述历史关联输出向量及所述当前用户输入向量作为输入进行处理,生成所述当前关联输出语句。

在一些实施例中,所述编码模型包括第一编码子模型及第二编码子模型;

所述处理模块具体用于:

所述第一编码子模型对所述历史关联输出语句进行编码,得到所述历史关联输出向量;

所述第二编码子模型对所述当前用户输入向量进行编码,得到所述当前用户输入向量;

所述解码模型包括第二向量组合子模型及语句解码子模型;

所述处理模块还具体用于:

所述第二向量组合子模型将所述历史关联输出向量及所述当前用户输入向量进行组合,得到当前关联输入向量;

所述语句解码子模型对所述当前关联输入向量进行处理,生成所述当前关联输出语句。

在一些实施例中,所述处理模块还用于:

判断所述历史关联输出语句与所述当前用户输入语句两者的时间差值是否达到时间阈值;

若所述历史关联输出语句与所述当前用户输入语句两者的时间差值未达到所述时间阈值,则将所述历史关联输出语句和所述当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句。

在一些实施例中,所述获取模块还用于,获取多个训练样本集,其中,每一训练样本集包括多组邻接的问答会话,每一组问答会话包括训练提问语句和训练回答语句;

所述装置还包括:

训练模块,用于使用所述多个训练样本集对第二深度学习模型进行训练,直至对所述第二深度学习模型训练结束,将所述训练结束的第二深度学习模型作为所述第一深度学习模型,其中,训练所述第二深度学习模型时,所述第二深度学习模型的输入包括目标组问答会话的训练提问语句,以及与所述目标组问答会话邻接的上一组问答会话的训练回答语句。

在一些实施例中,所述训练模块具体用于:

将当前组问答会话中的训练提问语句,以及与所述当前组问答会话邻接的上一组问答会话中的训练回答语句作为所述第二深度学习模型的输入,得到当前回答语句;

若所述当前回答语句与所述当前组问答会话中的训练回答语句的偏差值大于偏差阈值,调整所述第二深度学习模型的参数,以获得新的深度学习模型作为所述第二深度学习模型,并以所述当前组问答会话邻接的下一组问答会话作为新的当前组问答会话,返回重新训练;

若所述当前回答语句与所述当前组问答语句中的训练回答语句的偏差值小于或等于所述偏差阈值,将所述当前组问答会话对应的深度学习模型作为所述训练结束的第二深度学习模型。

在一些实施例中,所述训练模块还用于:

将每一组问答会话对齐,以使所述多个训练样本集中的每一训练提问语句和每一训练回答语句均包含n个字,其中,n为正整数。

在一些实施例中,所述训练模块还具体用于:

若目标训练提问语句或目标训练回答语句的字数大于所述n,则保留所述目标训练提问语句或所述目标训练回答语句中的n个字,将其他的字剔除;

若所述目标训练提问语句或所述目标训练回答语句的字数小于所述n,则在所述目标训练提问语句或所述目标训练回答语句补充至少一个字,以使所述目标训练提问语句或所述目标训练回答语句的字数为所述n。

根据本申请的另一方面,提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当服务器运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述的对话生成方法的步骤。

根据本申请的另一方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述对话生成方法的步骤。

基于上述任一方面,本申请实施例所提供的一种对话生成方法、装置、电子设备及可读存储介质,将与当前用户输入语句邻接的上一用户输入语句对应的关联输出语句作为历史关联输出语句,与当前用户输入语句一并作为第一深度学习模型的输入,从而得到作为对当前用户输入语句回复的当前关联输出语句,相比于现有技术,使对当前用户输入语句进行回复语句,不仅考虑当前用户输入语句的内容,还关联了与当前用户输入语句邻接的上一句对话内容,使相邻的两次对话内容连接更紧密。

另外,在一些实施例中,通过判断历史关联输出语句与当前用户输入语句两者的时间差值是否达到时间阈值,进而判定历史关联输出语句与当前用户输入语句两者的关联性,以使在判定历史关联输出语句与当前用户输入语句两者的内容具有关联时,将历史关联输出语句和当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,而在判定历史关联输出语句与当前用户输入语句两者的内容不具有关联时,将当前用户输入语句作为第一深度学习模型的输入,从而生成当前关联输出语句,以至少部分减少计算量。

另外,在一些实施例中,通过将训练样本的中每一训练提问语句和每一训练回答语句均对齐至相同的字数,使深度学习模型在训练时,每一次训练输入的字数均相同,无需改变模型的结构,提升模型训练速度。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种电子设备的示意性结构图;

图2示出了本申请实施例所提供的一种对话生成方法的示意性流程图;

图3为本申请实施例中第一深度学习模型的一种示意性结构图;

图4为图2中s208的子步骤的一种示意性流程图;

图5为图4中s2081的子步骤的一种示意性流程图;

图6为本申请实施例中第一深度学习模型的另一种示意性结构图;

图7为图2中s208的另一种示意性流程图;

图8为图7中s2086的子步骤的一种示意性流程图;

图9为图7中s2087的子步骤的一种示意性流程图;

图10为本申请实施例所提供的一种对话生成方法的另一种示意性流程图;

图11为训练得到第一深度学习模型的一种示意性流程图;

图12为图11中s204的子步骤的一种示意性流程图;

图13为训练得到第一深度学习模型的另一种示意性流程图;

图14为图13中s201的子步骤的一种示意性流程图;

图15示出了本申请实施例所提供的一种对话生成装置的示意性结构图。

图中:100-电子设备;101-存储器;102-处理器;103-存储控制器;104-外设接口;105-射频单元;106-通讯总线/信号线;300-对话生成装置;301-获取模块;302-处理模块;303-训练模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“智能对话客服系统”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕智能对话客服系统进行描述,但是应该理解,这仅是一个示例性实施例。本申请可以应用于任何其他自动对话的应用场景。例如,本申请可以应用于不同的对话环境,包括电子政务服务问答、自动对话机器人、自动客服机器人等。本申请还可以包括用于智能对话的任何服务系统,例如,用于发送和/或接收快递的系统、用于买卖双方交易的服务系统。本申请的系统或方法的应用可以包括网页、浏览器的插件、客户端终端、定制系统、内部分析系统、或人工智能机器人等,或其任意组合。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

在本申请提出之前,在例如智能对话客服系统的应用场景中,一般采用基于任务的对话系统,在与用户对话时,根据用户的当前用户输入语句,基于规则匹配与槽抽取等技术,输出与用户的当前用户输入语句相匹配的输出语句。

但一般来说,用户连续的对次对话中,一般具有一定的连续性,而基于规则匹配的方式,由于采用的是“一问一答”方式,根据用户的当前用户输入语句,进行规则匹配,从而得到的输出语句,缺乏对用户语义的上下文理解,导致各输出语句间的逻辑性不够紧密。

基于上述缺陷,本申请实施例所提供的一种实现方式为:将与当前用户输入语句邻接的上一用户输入语句对应的关联输出语句作为历史关联输出语句,与当前用户输入语句一并作为第一深度学习模型的输入,从而得到作为对当前用户输入语句回复的当前关联输出语句。

请参阅图1,示出了本申请实施例所提供的一种电子设备100的示意性结构图,在本申请实施例中,所述电子设备100可以是,但不限于智能手机、个人电脑(personalcomputer,pc)、平板电脑、膝上型便携计算机、个人数字助理(personaldigitalassistant,pda)等等。所述电子设备100包括存储器101、存储控制器103、一个或多个(图中仅示出一个)处理器102、外设接口104及射频单元105等。这些组件通过一条或多条通讯总线/信号线106相互通讯。

存储器101可用于存储软件程序以及模组,如本申请实施例所提供的对话生成装置300对应的程序指令/模组,处理器102通过运行存储在存储器101内的软件程序以及模组,从而执行各种功能应用以及图像处理,如本申请实施例所提供的对话生成方法。

其中,所述存储器101可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

处理器102可以是一种集成电路芯片,具有信号处理能力。上述的处理器102可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)、语音处理器以及视频处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器102也可以是任何常规的处理器等。

外设接口104将各种输入/输入装置耦合至处理器102以及存储器101。在一些实施例中,外设接口104,处理器102以及存储控制器103可以在单个芯片中实现。在本申请其他的一些实施例中,他们还可以分别由独立的芯片实现。

射频单元105用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。

可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参阅图2,图2示出了本申请实施例所提供的一种对话生成方法的示意性流程图,作为一种可能的实现方式,该对话生成方法包括以下步骤:

s206,获取历史关联输出语句和当前用户输入语句。

s208,将历史关联输出语句和当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句。

在本申请实施例中,以上述智能客服对话系统的应用场景为例,在为用户提供问答会话服务时,存储有每一次回答用户的输出语句。

在获取到当前用户输入语句时,获取与该当前用户输入语句相关联的历史关联输出语句,其中,该历史关联输出语句为,当前用户输入语句邻接的上一用户输入语句对应的关联输出语句。

比如,若用户与智能客服对话系统发生如下对话:

用户:输入语句1。

系统:智能回复1。

用户:输入语句2。

系统:智能回复2。

用户:输入语句3。

系统:智能回复3。

若当前用户输入语句为输入语句2,则历史关联输出语句为智能回复1;若当前用户输入语句为输入语句3,则历史关联输出语句为智能回复2。

在本申请中,在获取到当前用户输入语句时,则将获取到的历史关联输出语句和当前用户输入语句一并作为第一深度学习模型的输入,从而使第一深度学习模型根据历史关联输出语句和当前用户输入语句生成当前关联输出语句,其中,该当前关联输出语句为,当前用户输入语句对应的关联输出语句,即:智能客服对话系统对当前用户输入语句的回复。

比如,在上述示例中,若当前用户输入语句为输入语句2,则智能客服对话系统将输入语句2和智能回复1一并作为第一深度学习模型的输入,从而得到智能回复2;或者,若当前用户输入语句为输入语句3,则智能客服对话系统将输入语句3和智能回复2一并作为第一深度学习模型的输入,从而得到智能回复3。

基于上述设计,本申请实施例所提供的一种对话生成方法,将与当前用户输入语句邻接的上一用户输入语句对应的关联输出语句作为历史关联输出语句,与当前用户输入语句一并作为第一深度学习模型的输入,从而得到作为对当前用户输入语句回复的当前关联输出语句,相比于现有技术,使对当前用户输入语句进行回复语句,不仅考虑当前用户输入语句的内容,还关联了与当前用户输入语句邻接的上一句对话内容,使相邻的两次对话内容连接更紧密。

一般来说,采用深度学习模型对用户输入语句进行回复时,需要先将用户输入语句进行向量编码,再对编码得到的向量进行处理后,解码输出,从而得到对用户输入语句进行回复的输出语句。

可选地,作为一种可能的实现方式,请参阅图3,图3为本申请实施例中第一深度学习模型的一种示意性结构图,在本申请实施例中,该第一深度学习模型包含有编码模型(encode)和解码模型(decode),编码模型用于对用户输入语句进行编码为向量,而解码模型用于对编码后的向量进行处理,生成输出语句。

请参阅图4,图4为图2中s208的子步骤的一种示意性流程图,作为一种可能的实现方式,s208包括以下子步骤:

s2081,编码模型将历史关联输出语句和当前用户输入语句各自对应的向量进行组合,得到当前关联输入向量。

s2082,解码模型对当前关联输入向量进行处理,生成当前关联输出语句。

例如,在上述示例中,当前用户输入语句为输入语句2,历史关联输出语句为智能回复1,则编码模型将输入语句2和智能回复1各自对应的向量进行组合,得到当前关联输入向量;进而,解码模型将当前关联输入向量进行处理,生成当前关联输出语句(当前关联输出语句为智能回复2)。

在一种可能的实现方式中,请继续参阅图3,该第一深度学习模型可以采用基于lstm(longshort-termmemory,长短期记忆网络)的sequence2sequence结构,并基于tensorflow深度学习框架进行搭建和训练。

并且,该编码模型包括第一编码子模型、第二编码子模型及第一向量组合子模型,其中,第一编码子模型和第二编码子模型均各自包括多个lstm。

请参阅图5,图5为图4中s2081的子步骤的一种示意性流程图,作为一种可能的实现方式,s2081包括以下子步骤:

s20811,第一编码子模型将历史关联输出语句编码为历史关联输出向量。

s20812,第二编码子模型将当前用户输入语句编码为当前用户输入向量。

s20813,第一向量组合子模型将历史关联输出向量及当前用户输入向量进行组合,得到当前关联输入向量。

例如,在上述以输入语句2为当前用户输入语句、智能回复1为历史关联输出语句的示例中,在获得当前关联输入向量时,第一编码子模型将智能回复1进行编码,得到历史关联输出向量;第二编码子模型将输入语句2进行编码,得到当前用户输入向量;第一向量组合子模型则将智能回复1编码后得到的历史关联输出向量、与输入语句2编码后得到的当前用户输入向量进行组合,得到当前关联输入向量。

其中,作为一种可能的实现方式,当前关联输入向量为当前用户输入向量与历史关联输出向量的组合,则此时,当前关联输入向量的维度为当前用户输入向量的维度与历史关联输出向量的维度之和,比如,若当前用户输入向量为维度为512的向量且历史关联输出向量为维度为512的向量则当前关联输出向量为维度为1024的向量

而作为另一可能的实现方式,当前关联输入向量还可以为当前用户输入向量与历史关联输出向量两者对应的元素之和,则此时,当前关联输入向量的维度则与当前用户输入向量或历史关联输出向量相同,比如,若当前用户输入向量为维度为512的向量且历史关联输出向量为维度为512的向量则当前关联输出向量为维度为512的向量

上述第一深度学习模型的实现方式为将编码模型进行了改进,而无需改进解码模型。作为另一种可能的实现方式,还可以对编码模型与解码模型均进行改进。

比如,请参阅图6,图6为本申请实施例中第一深度学习模型的另一种示意性结构图,该第一深度学习模型同样包含有编码模型和解码模型,且编码模型用于对用户输入语句进行编码为向量,而解码模型用于对编码后的向量进行处理,生成输出语句。

但在如图6所示的第一深度学习模型中,编码模型仅将当前用户输入语句和历史关联输出语句进行编码,不将两者进行组合得到当前关联输入向量,而是由解码模型将两者进行组合,得到当前关联输入向量,进而生成当前关联输出语句。

此时,作为另一种可能的实现方式,请参阅图7,图7为图2中s208的另一种示意性流程图,s208还可以包括以下子步骤:

s2086,编码模型对历史关联输出语句和当前用户输入语句均进行编码,分别得到历史关联输出向量及当前用户输入向量。

s2087,解码模型将历史关联输出向量及当前用户输入向量作为输入进行处理,生成当前关联输出语句。

例如,在上述示例中,当前用户输入语句为输入语句2,历史关联输出语句为智能回复1,则编码模型将输入语句2和智能回复1均进行编码,分别得到输入语句2对应的当前用户输入向量以及智能回复1对应的历史关联输出向量。

而编码模型则将输入语句2对应的当前用户输入向量和智能回复1对应的历史关联输出向量作为输入,比如上述的向量和向量进行数据处理,从而生成当前关联输出语句。

其中,如图6所示,作为第一深度学习模型的另一种结构,编码模型包括第一编码子模型和第二编码子模型,而解码模型包括第二向量组合子模型及语句解码子模型。

编码模型在执行s2086时,请参阅图8,图8为图7中s2086的子步骤的一种示意性流程图,作为一种可能的实现方式,s2086包括以下子步骤:

s20861,第一编码子模型对历史关联输出语句进行编码,得到历史关联输出向量。

s20862,第二编码子模型对当前用户输入向量进行编码,得到当前用户输入向量。

例如,在上述示例中,当前用户输入语句为输入语句2,历史关联输出语句为智能回复1,则第一编码子模型对智能回复1进行编码,得到历史关联输出向量;第二编码子模型对输入语句2进行编码,得到当前用户输入向量。

而解码模型在执行s2087时,请参阅图9,图9为图7中s2087的子步骤的一种示意性流程图,作为一种可能的实现方式,s2087包括以下子步骤:

s20871,第二向量组合子模型将历史关联输出向量及当前用户输入向量进行组合,得到当前关联输入向量。

s20872,语句解码子模型对当前关联输入向量进行处理,生成当前关联输出语句。

比如,在上述示例中,若当前用户输入向量为维度为512的向量且历史关联输出向量为维度为512的向量解码模型在获得向量和向量后,第二向量组合子模型首先由向量和向量进行组合,得到当前关联输入向量,比如上述维度为1024的向量然后语句解码子模型对该维度为1024的向量进行处理,从而生成当前关联输出语句,得到智能回复2。

值得说明的是,图3与图6两种第一深度学习模型的差异在于,图3所示的第一深度学习模型中,将历史关联输出向量与当前用户输入向量进行组合是由编码模型进行实现,解码模型未做改进;而在图6所示的第一深度学习模型中,将历史关联输出向量与当前用户输入向量进行组合是由解码模型进行实现,编码模型与解码模型均进行了改进。

并且,值得说明的是,在本申请实施例其他一些可能的实现方式中,还可以将历史关联输出向量与当前用户输入向量进行组合单独由向量组合模型实现,编码模型仅将历史关联输出语句和当前用户输入语句分别转换为对应的历史关联输出向量和当前用户输入向量,且此时,解码模型也不需要进行改进。

上述将与当前用户输入语句邻接的上一用户输入语句对应的关联输出语句作为历史关联输出语句,与当前用户输入语句一并作为第一深度学习模型的输入,从而得到作为对当前用户输入语句回复的当前关联输出语句的策略,是基于用户连续对话的应用场景,而在另一些应用场景中,若用户与智能客服对话系统邻接的两句对话间隔时间过长,则可能两句对话并没有逻辑上的关联。

比如在上述用户与智能客服对话系统对话的应用场景中,若用户的输入语句1与输入语句2两者的间隔时间过长,则输入语句1与输入语句2可能并没有关联,例如输入语句1可能是在询问天气,而输入语句2则是在查询电话号码。

因此,作为一种可能的实现方式,请参阅图10,图10为本申请实施例所提供的一种对话生成方法的另一种示意性流程图,基于如图2所示的流程步骤,在执行s208之前,该对话生成方法还包括以下步骤:

s207,判断历史关联输出语句与当前用户输入语句两者的时间差值是否达到时间阈值;若为是,执行s208;若为否,执行s209。

s209,将当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句。

比如,在上述用户与智能客服对话系统对话的应用场景中,智能客服对话系统接收到用户的输入语句2时,若智能客服对话系统判定输入语句2与智能回复1两者的时间差值未达到时间阈值,则表征智能回复1的内容与输入语句2两者的内容可能具有关联性,此时执行s208,则在如图3所示的第一深度学习模型上的表现为,第一编码子模型和第二编码子模型均有输入及输出;反之,若智能客服对话系统判定输入语句2与智能回复1两者的时间差值达到时间阈值,则表征智能回复1与输入语句2两者的内容可能不具有关联性,此时则执行s209,将当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,则在如图3所示的第一深度学习模型上的表现为,第一编码子模型没有输入及输出,第二编码子模型具有输入及输出。

值得说明的是,在一些可能的实现方式中,该时间阈值可以是为智能客服对话系统预先定的值,比如2分钟或者是5分钟,也可以是接收用户输入的值,只要智能客服对话系统存储有时间阈值即可。

基于上述设计,本申请实施例所提供的一种对话生成方法,通过判断历史关联输出语句与当前用户输入语句两者的时间差值是否达到时间阈值,进而判定历史关联输出语句与当前用户输入语句两者的关联性,以使在判定历史关联输出语句与当前用户输入语句两者的内容具有关联时,将历史关联输出语句和当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,而在判定历史关联输出语句与当前用户输入语句两者的内容不具有关联时,将当前用户输入语句作为第一深度学习模型的输入,从而生成当前关联输出语句,以至少部分减少计算量。

上述实现方式为使用第一深度学习模型进行对话生成的过程,而在具体应用第一深度学习模型进行对话之前,还需要对模型进行训练,进而得到具体用于对话生成的第一深度学习模型。

请参阅图11,图11为训练得到第一深度学习模型的一种示意性流程图,作为一种可能的实现方式,训练得到第一深度学习模型流程包括以下步骤:

s200,获取多个训练样本集。

s202,使用多个训练样本集对第二深度学习模型进行训练。

s204,将训练结束的第二深度学习模型作为第一深度学习模型。

其中,获取得到的多个训练样本集中,每一训练样本集包括多组邻接的问答会话,每一组问答会话包括训练提问语句和训练回答语句。

比如在上述用户与智能客服对话系统的对话示例中,共计包含有3组邻接的问答会话,包括输入语句1-智能回复1、输入语句2-智能回复2、输入语句3-智能回复3。在所包含的3组邻接的问答会话中,输入语句1、输入语句2及输入语句3均为训练提问语句,智能回复1、智能回复2及智能回复3均为训练回答语句。

多个训练样本集在对第二深度学习模型进行训练时,与上述使用第一深度学习模型进行对话生成的流程类似,第二深度学习模型的输入包括目标组问答会话的训练提问语句,以及与该目标组问答会话邻接的上一组问答会话的训练回答语句。

比如,当输入语句2-智能回复2作为目标组问答会话时,训练第二深度学习模型的输入则为输入语句2和智能回复1。

值得说明的是,由于在每一组问答会话中,第一个训练提问语句没有邻接的上一组问答会话,比如在上述示例中,输入语句1没有邻接的智能回复,此时,则可以将上一组问答回答设置为0。

可选地,请参阅图12,图12为图11中s204的子步骤的一种示意性流程图,作为一种可能的实现方式,s204包括以下子步骤:

s2041,将当前组问答会话中的训练提问语句,以及与当前组问答会话邻接的上一组问答会话中的训练回答语句作为第二深度学习模型的输入,得到当前回答语句。

s2042,判断当前回答语句与当前组问答会话中的训练回答语句的偏差值是否大于偏差阈值;若为是,执行s2043;若为否,执行s2044。

s2043,调整第二深度学习模型的参数,以获得新的深度学习模型作为第二深度学习模型,并以当前组问答会话邻接的下一组问答会话作为新的当前组问答会话,返回重新训练。

s2044,将当前组问答会话对应的深度学习模型作为训练结束的第二深度学习模型。

比如,以上述用户与智能客服对话系统的对话为例,当使用输入语句2-智能回复2作为目标组问答会话训练第二深度学习模型时,则将输入语句2与智能回复2作为第二深度学习模型的输入,得到第二深度学习模型的当前回答语句;然后计算当前回答语句与智能回复2的偏差值,例如,利用交叉熵函数,以当前回答语句和智能回复2作为交叉熵函数的输入,将计算得到的交叉熵函数值作为偏差值,若偏差值大于偏差阈值,表征第二深度学习模型还未学习结束,需要继续训练,此时执行s2043,调整第二深度学习模型的参数,以获得新的深度学习模型作为第二深度学习模型,并以输入语句3-智能回复3作为新的当前组问答会话,返回对第二深度学习模型重新训练;反之,若计算得到的偏差值小于或等于偏差阈值,表征第二深度学习模型学习结束,此时则当前组问答会话对应的深度学习模型则为训练结束的第二深度学习模型。

请返回参阅图3,在如图3所示,该第一深度学习模型,采用基于lstm的结构进行搭建,其中,在例如编码模型中,每一lstm对应用于将训练语句中的一个字编码为向量,则在训练时,若连续邻接的训练提问语句或连续邻接的训练回答语句的字数不相同,则需要调整lstm的个数,导致训练效率较低。

比如,“你吃饭了吗”和“今天天气如何”两个语句中,包含的字数分别为5和6,则第二深度学习模型在分别以这两个语句进行训练时,需要调整编码模型的lstm的数量分别为5和6,导致训练效率较低。

基于此,可选地,请参阅图13,图13为训练得到第一深度学习模型的另一种示意性流程图,作为一种可能的实现方式,在执行s200之后,该训练得到第一深度学习模型的流程还包括以下步骤:

s201,将多个训练样本对齐。

其中,将多个训练样本对其后,每一训练提问语句和每一训练回答语句均包含n个字,n为正整数。

基于上述设计,本申请实施例所提供的一种对话生成方法,通过将训练样本的中每一训练提问语句和每一训练回答语句均对齐至相同的字数,使深度学习模型在训练时,每一次训练输入的字数均相同,无需改变模型的结构,提升模型训练速度。

可选地,请参阅图14,图14为图13中s201的子步骤的一种示意性流程图,作为一种可能的实现方式,s201包括以下子步骤:

s2011,将目标训练提问语句或训练回答语句的字数与n相比较;若大于,执行s2012;若小于,执行s2013。

s2012,保留目标训练提问语句或目标训练回答语句中的n个字,将其他的字剔除。

s2013,在目标训练提问语句或目标训练回答语句补充至少一个字,以使目标训练提问语句或目标训练回答语句的字数为n。

在一个可能的示例中,假定n等于10,则对于上述语句为“今天天气如何”的示例,字数为6,小于10,则将该语句补充至10个字,例如,可采用设定的默认字符“dnn_padding”进行补充,补充后,该语句变为“今天天气如何dnn_paddingdnn_paddingdnn_paddingdnn_padding”,其中“dnn_padding”整体算一个字;而在另一示例中,若语句为“今天风和日丽建议外出走走”,字数为12,大于10,则保留报语句中的10个字,将其他的字剔除,其中,作为一种可能的实现方式,可以选择将该语句末尾的字剔除,保留起始的10个字,比如,保留“今天风和日丽建议外出”。

请参阅图15,图15示出了本申请实施例所提供的一种对话生成装置300的示意性结构图,该对话生成装置300包括获取模块301及处理模块302。

获取模块301用于获取历史关联输出语句和当前用户输入语句,其中,历史关联输出语句为,当前用户输入语句邻接的上一用户输入语句对应的关联输出语句。

处理模块302用于将历史关联输出语句和当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,其中,当前关联输出语句为,当前用户输入语句对应的关联输出语句。

可选地,作为一种可能的实现方式,第一深度学习模型包括编码模型和解码模型;

处理模块302具体用于:

编码模型将历史关联输出语句和当前用户输入语句各自对应的向量进行组合,得到当前关联输入向量;

解码模型对当前关联输入向量进行处理,生成当前关联输出语句。

可选地,作为一种可能的实现方式,编码模型包括第一编码子模型、第二编码子模型及第一向量组合子模型;

处理模块302具体用于:

第一编码子模型将历史关联输出语句编码为历史关联输出向量;

第二编码子模型将当前用户输入语句编码为当前用户输入向量;

第一向量组合子模型将历史关联输出向量及当前用户输入向量进行组合,得到当前关联输入向量。

可选地,作为一种可能的实现方式,第一深度学习模型包括编码模型和解码模型;

处理模块302具体用于:

编码模型对历史关联输出语句和当前用户输入语句均进行编码,分别得到历史关联输出向量及当前用户输入向量;

解码模型将历史关联输出向量及当前用户输入向量作为输入进行处理,生成当前关联输出语句。

可选地,作为一种可能的实现方式,编码模型包括第一编码子模型及第二编码子模型;

处理模块302具体用于:

第一编码子模型对历史关联输出语句进行编码,得到历史关联输出向量;

第二编码子模型对当前用户输入向量进行编码,得到当前用户输入向量;

解码模型包括第二向量组合子模型及语句解码子模型;

处理模块302还具体用于:

第二向量组合子模型将历史关联输出向量及当前用户输入向量进行组合,得到当前关联输入向量;

语句解码子模型对当前关联输入向量进行处理,生成当前关联输出语句。

可选地,作为一种可能的实现方式,处理模块302还用于:

判断历史关联输出语句与当前用户输入语句两者的时间差值是否达到时间阈值;

若历史关联输出语句与当前用户输入语句两者的时间差值未达到时间阈值,则将历史关联输出语句和当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句。

可选地,作为一种可能的实现方式,获取模块301还用于,获取多个训练样本集,其中,每一训练样本集包括多组邻接的问答会话,每一组问答会话包括训练提问语句和训练回答语句;

对话生成装置300还包括:

训练模块303用于使用多个训练样本集对第二深度学习模型进行训练,直至对第二深度学习模型训练结束,将训练结束的第二深度学习模型作为第一深度学习模型,其中,训练第二深度学习模型时,第二深度学习模型的输入包括目标组问答会话的训练提问语句,以及与目标组问答会话邻接的上一组问答会话的训练回答语句。

可选地,作为一种可能的实现方式,训练模块303具体用于:

将当前组问答会话中的训练提问语句,以及与当前组问答会话邻接的上一组问答会话中的训练回答语句作为第二深度学习模型的输入,得到当前回答语句;

若当前回答语句与当前组问答会话中的训练回答语句的偏差值大于偏差阈值,调整第二深度学习模型的参数,以获得新的深度学习模型作为第二深度学习模型,并以当前组问答会话邻接的下一组问答会话作为新的当前组问答会话,返回重新训练;

若当前回答语句与当前组问答语句中的训练回答语句的偏差值小于或等于偏差阈值,将当前组问答会话对应的深度学习模型作为训练结束的第二深度学习模型。

可选地,作为一种可能的实现方式,训练模块303还用于:

将每一组问答会话对齐,以使多个训练样本集中的每一训练提问语句和每一训练回答语句均包含n个字,其中,n为正整数。

可选地,作为一种可能的实现方式,训练模块303还具体用于:

若目标训练提问语句或目标训练回答语句的字数大于n,则保留目标训练提问语句或目标训练回答语句中的n个字,将其他的字剔除;

若目标训练提问语句或目标训练回答语句的字数小于n,则在目标训练提问语句或目标训练回答语句补充至少一个字,以使目标训练提问语句或目标训练回答语句的字数为n。

上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过lan、wan、蓝牙、zigbee、或nfc等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

综上所述,本申请实施例提供的一种对话生成方法、装置、电子设备及可读存储介质,将与当前用户输入语句邻接的上一用户输入语句对应的关联输出语句作为历史关联输出语句,与当前用户输入语句一并作为第一深度学习模型的输入,从而得到作为对当前用户输入语句回复的当前关联输出语句,相比于现有技术,使对当前用户输入语句进行回复语句,不仅考虑当前用户输入语句的内容,还关联了与当前用户输入语句邻接的上一句对话内容,使相邻的两次对话内容连接更紧密;还通过判断历史关联输出语句与当前用户输入语句两者的时间差值是否达到时间阈值,进而判定历史关联输出语句与当前用户输入语句两者的关联性,以使在判定历史关联输出语句与当前用户输入语句两者的内容具有关联时,将历史关联输出语句和当前用户输入语句作为第一深度学习模型的输入,生成当前关联输出语句,而在判定历史关联输出语句与当前用户输入语句两者的内容不具有关联时,将当前用户输入语句作为第一深度学习模型的输入,从而生成当前关联输出语句,以至少部分减少计算量;还通过将训练样本的中每一训练提问语句和每一训练回答语句均对齐至相同的字数,使深度学习模型在训练时,每一次训练输入的字数均相同,无需改变模型的结构,提升模型训练速度。

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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