人机对话方法、装置及计算机可读存储介质与流程

文档序号:16537418发布日期:2019-01-08 20:01阅读:188来源:国知局
人机对话方法、装置及计算机可读存储介质与流程

本公开涉及人机交互技术领域,尤其是一种人机对话方法、装置及计算机可读存储介质。



背景技术:

近年来,聊天机器人技术越来越普及,推动了人机对话的发展。例如,用户可以向聊天机器人提出问题,聊天机器人针对用户提出的问题提供答案,为用户带来了很大的便利。

但是,目前的人机对话方式只能是一问一答的形式,即,聊天机器人需要基于用户提出的问题提供相应的答案。



技术实现要素:

发明人注意到,相关技术中的人机对话方式中,由于聊天机器人只能被动回答问题,用户可能需要提出很多问题,才能得到想要的答案,浪费了用户的时间,用户体验较差。

为了解决上述问题,本公开实施例提出了如下解决方案。

根据本公开实施例的一方面,提供一种人机对话方法,包括:获取用户在当前会话中已提出的问题;将所述已提出的问题输入到神经网络模型,以预测所述用户在当前会话中即将提出的下一个问题所属的类别;将所述下一个问题所属的类别对应的答案推送给所述用户。

在一些实施例中,所述神经网络模型根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;对每个问题进行分类,以得到每个问题所属的类别;根据每次历史会话中第i个问题对应的类别,确定待进行训练的类别,2≤i≤n,n为每次历史会话中的问题数量;以每次历史会话中第i个问题对应的待进行训练的类别作为输入、前i-1个问题作为输出,对所述神经网络模型进行训练。

在一些实施例中,根据每次历史会话中第i个问题对应的类别,确定待进行训练的类别包括:根据每次历史会话中第i个问题对应的类别,确定每个类别对应的问题数量;将对应的问题数量大于预设数量的类别确定为待进行训练的类别。

在一些实施例中,所述方法还包括:获取所述用户的评价信息;根据所述评价信息,分析预测的所述下一个问题所属的类别的准确性;在所述准确性超过阈值的情况下,以所述已提出的问题作为输入、所述下一个问题所属的类别作为输出,对所述神经网络模型进行训练。

在一些实施例中,将所述已提出的问题输入到神经网络模型,以预测所述用户在当前会话中即将提出的下一个问题所属的类别包括:将所述已提出的问题输入到第一神经网络模型,以预测所述下一个问题;将所述下一个问题输入到第二神经网络模型,以预测所述下一个问题所属的类别。

在一些实施例中,所述第一神经网络模型根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;以每次历史会话中的前i-1个问题作为输入、第i个问题作为输出,对所述第一神经网络模型进行训练,2≤i≤n,n为每次历史会话中的问题数量。

在一些实施例中,i=n。

在一些实施例中,所述第二神经网络模型根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;获取每个问题所属的类别;以每个问题作为输入、每个问题对应的类别作为输出,对所述第二神经网络模型进行训练。

根据本公开实施例的另一方面,提供一种人机对话装置,包括:获取模块,用于获取用户在当前会话中已提出的问题;预测模块,用于将所述已提出的问题输入到神经网络模型,以预测所述用户在当前会话中即将提出的下一个问题所属的类别;推送模块,用于将所述下一个问题所属的类别对应的答案推送给所述用户。

在一些实施例中,所述神经网络模型根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;对每个问题进行分类,以得到每个问题所属的类别;根据每次历史会话中第i个问题对应的类别,确定待进行训练的类别,2≤i≤n,n为每次历史会话中的问题数量;以每次历史会话中第i个问题对应的待进行训练的类别作为输入、前i-1个问题作为输出,对所述神经网络模型进行训练。

在一些实施例中,根据每次历史会话中第i个问题对应的类别,确定每个类别对应的问题数量;将对应的问题数量大于预设数量的类别确定为待进行训练的类别。

在一些实施例中,评价收集模块,用于收集所述用户的评价信息;准确性分析模块,用于根据所述评价信息,分析预测的所述下一个问题所属的类别的准确性;所述预测模块还用于在所述准确性超过阈值的情况下,将所述已提出的问题和所述下一个问题所属的类别输入到训练模块,以便所述训练模块以所述已提出的问题作为输入、所述下一个问题所属的类别作为输出,对所述神经网络模型进行训练。

在一些实施例中,所述预测模块用于将所述已提出的问题输入到第一神经网络模型,以预测所述下一个问题;将所述下一个问题输入到第二神经网络模型,以得到所述下一个问题所属的类别。

在一些实施例中,所述第一神经网络模型根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;以每次历史会话中的前i-1个问题作为输入、第i个问题作为输出,对所述第一神经网络模型进行训练,2≤i≤n,n为每次历史会话中的问题数量。

在一些实施例中,i=n。

在一些实施例中,所述第二神经网络模型根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;获取每个问题所属的类别;以每个问题作为输入、每个问题对应的类别作为输出,对所述第二神经网络模型进行训练。

根据本公开实施例的再一方面,提供一种人机对话装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。

根据本公开实施例的还一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例所述的方法。

本公开实施例中,神经网络模型可以根据用户已提出的问题,预测用户即将提出的下一个问题所属的类别,然后将下一个问题所属的类别对应的答案推送给用户。这样的人机对话方式中,用户还未提出下一个问题的情况下,即可接收到下一个问题的答案,节约了用户的提问时间,提升了用户体验。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

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

图1是根据本公开一些实施例的人机对话方法的流程示意图;

图2是根据本公开一些实施例的神经网络模型的训练方式的流程示意图;

图3是根据本公开另一些实施例的人机对话方法的流程示意图;

图4是根据本公开一些实施例的第一神经网络模型的训练方式的流程示意图;

图5是根据本公开一些实施例的第二神经网络模型的训练方式的流程示意图;

图6是根据本公开一些实施例的人机对话装置的结构示意图;

图7是根据本公开另一些实施例的人机对话装置的结构示意图;

图8是根据本公开又一些实施例的人机对话装置的结构示意图;

图9是根据本公开再一些实施例的人机对话装置的结构示意图。

具体实施方式

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

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1是根据本公开一些实施例的人机对话方法的流程示意图。

在步骤102,获取用户在当前会话中已提出的问题。

例如,已提出的问题可以包括一个或多个。在一些实施例中,已提出的问题至少包括两个问题,以提高预测的准确性。在一些实施例中,已提出的问题为经过筛选后合法的问题,例如,当前会话中可能会包含一些系统通知消息,已提出的问题不包括这些系统通知消息。

在步骤104,将已提出的问题输入到神经网络模型,以预测用户在当前会话中即将提出的下一个问题所属的类别。

这里,问题所属的类别例如可以包括配送周期、什么时间出库、商品价格咨询、近期活动咨询、能否优惠、服务单查询、包装清单、家电安装、物流全程跟踪、正品保障等等。

例如,已提出的问题包括“这个商品有货吗”,下一个问题是“这个商品有优惠吗”。这种情况下,预测出的下一个问题所属的类别为能否优惠。又例如,已提出的问题包括“这个商品有货吗”和“这个商品有优惠吗”,下一个问题是“现在下单,什么时候能送到”。这种情况下,预测出的下一个问题所属的类别为配送周期。

在一些实现方式中,神经网络模型能够根据已提出的问题,直接预测出下一个问题所属的类别。后文将结合图2详细介绍神经网络模型的训练方式。

在步骤106,将下一个问题所属的类别对应的答案推送给用户。

针对每个类别,均有相应的答案与之对应。在预测出下一个问题所属的类别后,可以直接将该类别对应的答案推送给用户。

上述实施例中,神经网络模型可以根据用户已提出的问题,预测用户即将提出的下一个问题所属的类别,然后将下一个问题所属的类别对应的答案推送给用户。这样的人机对话方式中,用户还未提出下一个问题的情况下,即可接收到下一个问题的答案,节约了用户的提问时间,提升了用户体验。

图2是根据本公开一些实施例的神经网络模型的训练方式的流程示意图。

在步骤202,从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题。

这里,会话记录例如可以是全部用户与客服的会话记录,也可以是全部用户中的部分用户(例如一个或多个用户)与客服的会话记录。需要说明的是,这里的客服可以是人工客服,也可以是聊天机器人。

在步骤204,对每个问题进行分类,以得到每个问题所属的类别。

例如,可以预先设置各个类别,通过对每个问题进行自然语言处理,以得到每个问题所属的类别。又例如,可以通过训练好的神经网络模型对每个问题进行分类。

在某些情况下,不同问题对应的类别可以相同。举例来说,如果问题是“我的商品还有货吗”或者“还有货吗”,则这两个问题所属的类别均可以是“是否有货”。另外,每个类别可以用相应的标识来标记,例如“是否有货”可以标记为“分类1”。

在步骤206,根据每次历史会话中第i个问题对应的类别,确定待进行训练的类别,2≤i≤n,n为每次历史会话中的问题数量。

在一些实现方式中,可以将每次历史会话中第i个问题对应的类别均确定为待进行训练的类别。

例如,一次历史会话中被提出的问题按照时间先后顺序依次可以包括问题a、问题b、问题f和问题e。第i个问题对应的类别可以是问题b对应的类别、问题f对应的类别或问题e对应的类别。这种方式下,可以将问题b对应的类别、问题f对应的类别和问题e对应的类别均确定为待进行训练的类别。

在另一些实现方式中,可以根据每次历史会话中第i个问题对应的类别,确定每个类别对应的问题数量;将对应的问题数量大于预设数量的类别确定为待进行训练的类别。

例如,问题b对应的类别为类别1,类别1一共对应10个问题;问题f对应的类别为类别2,类别2一共对应5个问题;问题e对应的类别为类别3,类别3一共对应8个问题。假设预设数量为6,则将问题b对应的类别和问题e对应的类别确定为待进行训练的类别。这样的方式下,待进行训练的类别基本为用户常问的问题,可以提高训练的准确性,从而可以提高推荐的答案的准确性。

在步骤208,以每次历史会话中第i个问题对应的待进行训练的类别作为输入、前i-1个问题作为输出,对神经网络模型进行训练。

优选地,i=n,即,以每次历史会话中最后一个问题对应的类别作为输入,除最后一个问题外的其他问题作为输出,对神经网络模型进行训练。这样的训练方式可以进一步提高训练的准确性。

上述实施例中,获取历史会话记录中被提出的问题后,对每个问题进行分类,之后以每次历史会话中第i个问题对应的待进行训练的类别作为输入、前i-1个问题作为输出,对神经网络模型进行训练,从而使得神经网络模型能够根据会话中已提出的问题预测出即将提出的下一个问题。

在一些实施例中,在向用户推送下一个问题所属的类别对应的答案后,可以获取用户的评价信息;根据评价信息,确定预测的下一个问题所属的类别的准确性;在准确性超过阈值的情况下,以已提出的问题作为输入、预测的下一个问题所属的类别作为输出,对神经网络模型进行训练。

例如,可以以星级来衡量准确性,假设阈值为4星,如果用户评价为5星或4.5星,则认为预测的答案可靠。这种情况下,可以以已提出的问题作为输入、预测的下一个问题所属的类别作为输出,对神经网络模型进行训练。这样的方式可以提高神经网络训练样本的准确性,从而提高神经网络模型预测结果的准确性,进一步提升用户体验。

图3是根据本公开另一些实施例的人机对话方法的流程示意图。

在步骤302,获取用户在当前会话中已提出的问题。

在步骤304,将已提出的问题输入到第一神经网络模型,以预测下一个问题。

在步骤306,将下一个问题输入到第二神经网络模型,以预测下一个问题所属的类别。

在步骤308,将下一个问题所属的类别对应的答案推送给用户。

上述实施例中,第一神经网络模型能够根据已提出的问题预测下一个问题,第二神经网络模型能够根据下一个问题预测下一个问题所属的类别,进而可以将下一个问题所属的类别对应的答案推送给用户。这样的人机对话方式中,用户还未提出下一个问题的情况下,即可接收到下一个问题的答案,节约了用户的提问时间,提升了用户体验。

后文将结合图4和图5详细介绍第一神经网络模型和第二神经网络模型的训练方式。

图4是根据本公开一些实施例的第一神经网络模型的训练方式的流程示意图。

在步骤402,从会话记录中获取多次历史会话中被提出的问题,每次历史会话包括多个问题。步骤402的具体实现可以参照上面的步骤302。

在步骤404,以每次历史会话中的前i-1个问题作为输入、第i个问题作为输出,对第一神经网络模型进行训练,2≤i≤n,n为每次历史会话中的问题数量。在一些实施例中,i=n。

上述实施例中,以每次历史会话中的前i-1个问题作为输入、第i个问题作为输出,对第一神经网络模型进行训练,从而使得第一神经网络模型能够根据已提出的问题预测下一个问题。

图5是根据本公开一些实施例的第二神经网络模型的训练方式的流程示意图。

在步骤502,从会话记录中获取多次历史会话中被提出的问题,每次历史会话包括多个问题。步骤402的具体实现可以参照上面的步骤302。

在步骤504,获取每个问题所属的类别。

例如,可以获取通过人工审核的方式对每个问题进行分类后每个问题所属的类别。

在步骤506,以每个问题作为输入、每个问题对应的类别作为输出,对第二神经网络模型进行训练。

上述实施例中,以每次历史会话中的每个问题作为输入、每个问题对应的类别作为输出,对第二神经网络模型进行训练,从而使得第二神经网络模型能够根据下一个问题预测下一个问题对应的类别。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图6是根据本公开一些实施例的人机对话装置的结构示意图。如图6所示,该实施例的装置包括获取模块601、预测模块602和推送模块603。

获取模块601用于获取用户在当前会话中已提出的问题。

预测模块602用于将已提出的问题输入到神经网络模型,以预测用户在当前会话中即将提出的下一个问题所属的类别。

例如,神经网络模型可以根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;对每个问题进行分类,以得到每个问题所属的类别;根据每次历史会话中第i个问题对应的类别,确定待进行训练的类别,2≤i≤n,n为每次历史会话中的问题数量;以每次历史会话中第i个问题对应的待进行训练的类别作为输入、前i-1个问题作为输出,对神经网络模型进行训练。优选地,可以根据每次历史会话中第i个问题对应的类别,确定每个类别对应的问题数量;将对应的问题数量大于预设数量的类别确定为待进行训练的类别。优选地,i=n。

在一些实现方式中,预测模块602用于将已提出的问题输入到第一神经网络模型,以预测下一个问题;将下一个问题输入到第二神经网络模型,以得到下一个问题所属的类别。

例如,第一神经网络模型可以根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;以每次历史会话中的前i-1个问题作为输入、第i个问题作为输出,对第一神经网络模型进行训练,2≤i≤n,n为每次历史会话中的问题数量。优选地,i=n。

例如,第二神经网络模型可以根据如下方式进行训练:从会话记录中获取多次历史会话中被提出的问题,其中,每次历史会话包括多个问题;获取每个问题所属的类别;以每个问题作为输入、每个问题对应的类别作为输出,对第二神经网络模型进行训练。

推送模块603用于将下一个问题所属的类别对应的答案推送给用户。

上述实施例中,利用神经网络模型可以根据用户已提出的问题,预测用户即将提出的下一个问题所属的类别,然后将下一个问题所属的类别对应的答案推送给用户。这样的人机对话方式中,用户还未提出下一个问题的情况下,即可接收到下一个问题的答案,节约了用户的提问时间,提升了用户体验。

图7是根据本公开另一些实施例的人机对话装置的结构示意图。如图6所示,该实施例的装置与图6相比还包括评价收集模块701和准确性分析模块702。

评价收集模块701还用于获取用户的评价信息。准确性分析模块702用于根据评价信息,分析预测的下一个问题所属的类别的准确性。预测模块602还用于在准确性超过阈值的情况下,将已提出的问题和下一个问题所属的类别输入到训练模块(图中未示出),以便训练模块以已提出的问题作为输入、下一个问题所属的类别作为输出,对神经网络模型进行训练。

上述实施例可以提高神经网络训练样本的准确性,从而提高神经网络模型预测结果的准确性,进一步提升用户体验

图8是根据本公开又一些实施例的人机对话装置的结构示意图。如图8所示,该实施例的装置与图6相比还包括前端界面模块801、预处理模块802、意图识别模块803、答案处理模块804和评价收集模块805。

前端界面模块801用于根据用户的提出的问题,以自然语言语句的形式进行回答,以得到用户的会话信息。预处理模块802用于获取用户的特征信息和用户的会话信息。意图识别模块803用于根据用户的特征信息和用户的会话信息,结合术语词库、语法、语义方面的资源,分析用户提出的问题以识别用户的意图。答案处理模块804用于根据用户的意图和业务处理逻辑,判断该用户提出的问题的答案的处理流程,例如是闲聊、还是业务,是否需要用户登录等。评价收集模块805用于收集用户反馈的满意或者不满意的评价信息。根据收集的用户的评价信息,可以分析不满意用户的会话信息,以便改进人机对话装置中的一个或多个模块。

图9是根据本公开再一些实施例的人机对话装置的结构示意图。如图9所示,该实施例的装置900包括存储器901以及耦接至该存储器901的处理器902,处理器902被配置为基于存储在存储器901中的指令,执行前述任意一个实施例的方法。

存储器901例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如可以存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

装置900还可以包括输入输出接口903、网络接口904、存储接口905等。这些接口903、904、905之间、以及存储器901与处理器902之间例如可以通过总线906连接。输入输出接口903为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口904为各种联网设备提供连接接口。存储接口905为sd卡、u盘等外置存储设备提供连接接口。

本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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