人机对话控制方法、装置、服务器及可读存储介质与流程

文档序号:22084126发布日期:2020-09-01 19:50阅读:149来源:国知局
人机对话控制方法、装置、服务器及可读存储介质与流程

本申请涉及人机交互技术领域,具体而言,涉及一种人机对话控制方法、装置、服务器及可读存储介质。



背景技术:

随着计算机技术及网络技术的发展,人机交互机器人越来越多的被用来为用户提供智能服务,比如,客户服务或资讯查询服务。

通常的人机交互机器人需要同时具备处理业务问题和寒暄问题,针对这两种问题,一般会对应有两种不同的知识库系统,在问题处理模型和方法上也存在较大的差别。对于寒暄问题,需要明确输入问题是否属于寒暄问题,在判断为是寒暄问题后,再进行相应的处理。

目前的人机交互机器人在处理寒暄问题时,可以基于问答匹配和文本生成两种方法生成对寒暄问题的回复。问答匹配是将输入的寒暄问题与人机交互机器人的知识库中已存储的所有类别的寒暄问题进行文本相似度的匹配,从而确定对输入寒暄问题的回复。文本生成则是采用深度学习的方式将输入的寒暄问题作为深度学习系统的输入,经过深度学习后输出特定的寒暄回复。然而,上述两种方式生成的方法各有优缺点,基于问答匹配的方法具有回复可控,但灵活性缺乏的特点;基于文本生成的方法具有回复多样性,但回复缺乏评价标准的特点。如何使人机交互机器人在处理寒暄问题上即具有灵活性又具有可用的评价标准,成为本领域技术人员需要解决的技术问题。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种人机对话控制方法、装置、服务器及可读存储介质,可以对寒暄问题采用两种不同方式给出问题回复,选择较优的问题回复作为对该寒暄问题的答复。

根据本申请实施例的一个方面,提供一种电子设备,可以包括一个或多个存储介质和一个或多个与存储介质通信的处理器。一个或多个存储介质存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行所述机器可读指令,以执行下述的人机对话控制方法。

根据本申请实施例的另一方面,提供一种人机对话控制方法,应用于交互机器人,所述方法包括:在接收到用户的目标问题时,判断接收到的目标问题是否为寒暄问题;在所述目标问题为寒暄问题时,根据预设的问答匹配规则从所述交互机器人的知识库中获得与所述目标问题对应的第一问题答复,及采用所述第一问题答复作为所述目标问题的回复的第一概率;在所述目标问题为寒暄问题时,根据预设的文本生成规则生成与所述目标问题对应的第二问题答复,并根据预设问题答复的评价规则计算采用所述第二问题答复作为所述目标问题的回复的第二概率;将所述第一概率和第二概率进行比较,根据比较结果选择第一问题答复或第二问题答复作为对所述目标问题的回复。

在本申请的一些实施例中,所述将所述第一概率和第二概率进行比较,根据比较结果选择第一问题答复或第二问题答复作为对所述目标问题的回复,包括:在所述第一概率大于第二概率时,将所述第一问题答复作为对所述目标问题的回复;在所述第一概率小于第二概率时,将所述第二问题答复作为对所述目标问题的回复;在所述第一概率等于第二概率时,在所述第一问题答复和所述第二问题答复中任选一个作为对所述目标问题的回复。

在本申请的一些实施例中,在所述交互机器人包括人机对话回复模型,判断接收到的目标问题是否为寒暄问题之前,所述方法还包括:训练所述人机对话回复模型,其中,所述人机对话回复模型包括长短期记忆网络lstm结构、寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型;所述训练所述人机对话回复模型,包括:随机将各子模型的训练数据输入到所述lstm结构中进行训练,并将经过所述lstm结构训练后的训练结果输入到对应的各子模型中进行训练,直到所述人机对话回复模型收敛。

在本申请的一些实施例中,所述训练所述人机对话回复模型的步骤,还包括:采用交叉熵损失函数计算每次训练后所述人机对话回复模型的损失函数值;将所述损失函数值与预设阈值进行比较;若所述损失函数值不小于所述预设阈值,则判定所述人机对话回复模型未收敛;若所述损失函数值大于所述预设阈值,则判定所述人机对话回复模型收敛。

在本申请的一些实施例中,在随机将所述将各子模型的训练数据输入所述lstm结构中进行训练之前,所述训练所述人机对话回复模型的步骤,还包括:根据所述寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量大小,调整用于训练所述寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量。

在本申请的一些实施例中,所述训练所述人机对话回复模型的步骤,还包括:在每次训练过程中,采用优化器对每次随机输入所述人机对话回复模型的训练数据所对应的子模型的参数和所述lstm结构的参数进行优化,其中,所述优化器包括adam优化器。

在本申请的一些实施例中,所述交互机器人采用训练好的人机对话回复模型进行人机对话控制,其中,采用所述寒暄问题判断子模型判断接收到的目标问题是否为寒暄问题;在所述目标问题为寒暄问题时,采用所述多分类子模型获得与所述目标问题对应的第一问题答复,及所述第一问题答复作为所述目标问题的回复的第一概率,其中,所述多分类子模型用于训练问答匹配规则;在所述目标问题为寒暄问题时,采用所述文本生成子模型生成与所述目标问题对应的第二问题答复,并采用所述文本评价子模型计算所述第二问题答复作为所述目标问题的回复的第二概率,其中,所述文本生成子模型用于训练文本生成规则,所述文本评价子模型用于训练问题答复的评价规则。

在本申请的一些实施例中,在训练所述人机对话回复模型之前,所述方法还包括对所述人机对话回复模型的训练数据进行处理的步骤,所述步骤包括:获取所述人机对话回复模型的训练数据;将所述训练数据进行清洗处理;将清洗处理后的训练数据进行编码得到词汇表,其中,所述词汇表包括数据所需的字和符号。

在本申请的一些实施例中,所述获取所述人机对话回复模型的训练数据的步骤,包括:获取已标注的寒暄问题,将获取的寒暄问题作为所述多分类子模型的训练数据,其中,每类寒暄问题包括多个相似问题,每个问题包括对应的类别;将所述多分类子模型的训练数据作为正例,将从业务问题中选择的预设数量的相似问题作为负例,由所述正例和所述负例组成所述寒暄问题判断子模型的训练数据,其中,每个正例和负例对应有标识是否为寒暄问题的标签;将寒暄数据作为所述文本生成子模型的训练数据,其中,寒暄数据包括问题和答案对;从所述寒暄数据和业务数据中随机抽样得到正例句子,由随机抽取的字组成的句子作为负例句子,由所述正例句子和负例句子作为所述文本评价子模型的训练数据,其中,相同字数的正例句子和负例句子的数量相同。

在本申请的一些实施例中,所述将所述训练数据进行清洗处理的步骤,包括:将训练数据进行过滤,去除所述训练数据中非预设格式的数据;将过滤后的训练数据进行数据整理,将各个子模型的训练数据整理为各个子模型所需的对应格式;将所述各个子模型的训练数据按照预设比例划分为训练数据集和测试数据集。

在本申请的一些实施例中,所述将训练数据进行过滤,去除所述训练数据中非预设格式的数据的步骤,包括:通过采用正则表达式匹配的方式将所述训练数据中包含的非预设格式的数据进行过滤,并将所述训练数据的字体转换为预设字体。

在本申请的一些实施例中,所述将清洗处理后的训练数据进行编码得到词汇表的步骤,包括:对清洗处理后训练数据中的字或符号进行统计;根据统计的字或符号的词频,对所述词汇表中的字或符号进行排序,得到所述词汇表。

根据本申请实施例的另一方面,提供一种人机对话控制装置,应用于交互机器人,所述装置包括:判断模块,用于在接收到用户的目标问题时,判断接收到的目标问题是否为寒暄问题;获得模块,用于在所述目标问题为寒暄问题时,根据预设的问答匹配规则从所述交互机器人的知识库中获得与所述目标问题对应的第一问题答复,及采用所述第一问题答复作为所述目标问题的回复的第一概率;生成模块,用于在所述目标问题为寒暄问题时,根据预设的文本生成规则生成与所述目标问题对应的第二问题答复,并根据预设问题答复的评价规则计算采用所述第二问题答复作为所述目标问题的回复的第二概率;选择模块,用于将所述第一概率和第二概率进行比较,根据比较结果选择第一问题答复或第二问题答复作为对所述目标问题的回复。

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

基于上述任一方面,本申请实施例,首先,判断接收到的目标问题是否为寒暄问题;接着,在为寒暄问题时,通过预设的问答匹配规则生成第一问题答复,通过预设的文本生成规则生成第二问题答复;最后,根据第一问题答复和第二问题答复被用于回复目标问题的概率,确定采用第一问题答复还是第二问题答复作为目标问题的回复。采用两种不同的问题答复方式生成对目标问题的不同答复,并根据不同答复对应回复目标问题的概率选择较优的答复作为该目标问题的回复,不仅回复寒暄问题的答复具有灵活性,同时也能采用可用评价标准从不同的答复选择较优的答复。

为使本申请实施例的上述目的、特征和优点能更明显易懂,下面将结合实施例,并配合所附附图,作详细说明。

附图说明

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

图1示出了本申请实施例所提供的人机交互系统的交互示意框图;

图2示出了本申请实施例所提供的可以实现图1的用户终端、服务器的电子设备的示例性硬件和软件组件的示意图;

图3示出了本申请实施例所提供的人机对话控制方法的流程示意图;

图4示出了本申请实施例所提供的人机对话回复模型的模型结构示意图;

图5示出了本申请实施例所提供的人机对话控制装置的功能模块框图之一;

图6示出了本申请实施例所提供的人机对话控制装置的功能模块框图之二。

具体实施方式

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

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

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

为了解决上述背景技术中的技术问题,本申请实施例提供了一种人机对话控制方法、装置、服务器及可读存储介质,首先,判断接收到的目标问题是否为寒暄问题;接着,在为寒暄问题时,通过预设的问答匹配规则生成第一问题答复,通过预设的文本生成规则生成第二问题答复;最后,根据第一问题答复和第二问题答复被用于回复目标问题的概率,确定采用第一问题答复还是第二问题答复作为目标问题的回复。采用两种不同的问题答复方式生成对目标问题的不同答复,并根据不同答复对应回复目标问题的概率选择较优的答复作为该目标问题的回复,不仅回复寒暄问题的答复具有灵活性,同时也能采用可用评价标准从不同的答复选择较优的答复。

图1是本申请一种可替代实施例提供的人机交互系统100的架构示意图。人机交互系统100包括用户终端110、服务器120、及网络130。用户终端110通过网络130与服务器120通信连接。

用户终端110可以运行任何能提供人机对话服务的软件(比如,滴滴出行、摩拜单车、淘宝等),用户终端110通过人机对话服务软件提供的界面问询业务问题或寒暄问题。用户终端110可以包括移动设备、平板计算机、膝上型计算机、或机动车辆中的内置设备等,或其任意组合。在一些实施例中,移动设备可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、或增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器设备的控制设备、智能监控设备、智能电视、智能摄像机、或对讲机等,或其任意组合。在一些实施例中,可穿戴设备可包括智能手环、智能鞋带、智能玻璃、智能头盔、智能手表、智能服装、智能背包、智能配件等、或其任何组合。在一些实施例中,智能移动设备可以包括智能手机、个人数字助理(personaldigitalassistant,pda)、游戏设备、导航设备、或销售点(pointofsale,pos)设备等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实玻璃、虚拟现实贴片、增强现实头盔、增强现实玻璃、或增强现实贴片等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括各种虚拟现实产品等。在一些实施例中,机动车辆中的内置设备可以包括车载计算机、车载电视等。

服务器120可以是单个服务器,也可以是一个服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器120可以是分布式系统)。服务器120中运行有交互机器人,在一些实施例中,交互机器人在接收到用户终端110输入的问询问题后,对问询问题给出回复,并将对问询问题的回复发送给用户终端110进行显示,交互机器人可以包括用于存储问句和对应答案对的知识库,交互机器人还可以包括用于根据问询问题生成回复的人机对话回复模型。在一些实施例中,服务器120相对于用户终端110而言,可以是本地的、也可以是远程的。在一些实施例中,服务器120可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(communitycloud)、分布式云、跨云(inter-cloud)、多云(multi-cloud)等,或者它们的任意组合。

网络130可以用于信息和/或数据的交换。在一些实施例中,人机交互系统100中的一个或多个组件(例如,用户终端110及服务器120)可以向其他组件发送信息和/或数据。例如,用户终端110可以经由网络130从服务器120获取问询问题的回复。在一些实施例中,网络130可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络130可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)、无线局域网(wirelesslocalareanetworks,wlan)、城域网(metropolitanareanetwork,man)、广域网(wideareanetwork,wan)、公共电话交换网(publicswitchedtelephonenetwork,pstn)、蓝牙网络、zigbee网络、或近场通信(nearfieldcommunication,nfc)网络等,或其任意组合。在一些实施例中,网络130可以包括一个或多个网络接入点。例如,网络130可以包括有线或无线网络接入点,例如基站和/或网络交换节点,人机交互系统100的一个或多个组件可以通过该接入点连接到网络130以交换数据和/或信息。

在一些实施例中,用户终端110、服务器120可以在具有本申请中图2所示的一个或多个组件的电子设备200上实现。

图2示出根据本申请的一些实施例可以实现本申请思想的电子设备200的示例性硬件和软件组件的示意图。

电子设备200可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请的人机对话控制方法。本申请尽管仅示出了一个计算机,但是为了方便起见,也可以在多个类似平台上以分布式方式实现本申请描述的页面加载功能,以均衡处理负载。

在本申请实施例中,电子设备200可以包括连接到网络的网络端口210、用于执行程序指令的一个或多个处理器220、通信总线230、和不同形式的存储介质240,例如,磁盘、rom、或ram,或其任意组合。示例性地,电子设备200还可以包括存储在rom、ram、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。根据这些程序指令可以实现本申请提供的人机对话控制方法。电子设备200还包括计算机与其他输入输出设备(例如键盘、显示屏)之间的输入/输出(input/output,i/o)接口250。

为了便于说明,在电子设备200中仅描述了一个处理器。然而,应当注意,本申请中的电子设备200还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器220联合执行或单独执行。例如,若电子设备200的处理器220执行步骤a和步骤b,则应该理解,步骤a和步骤b也可以由两个不同的处理器220共同执行或者在一个处理器220中单独执行。例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一处理器和第二处理器共同执行步骤a和b。

图3示出了本申请的一些实施例的人机对话控制方法的流程示意图,该人机对话控制方法可以由图1中所示的服务器120执行。应当理解,在其它实施例中,本实施例所述的人机对话控制方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该人机对话控制方法的详细步骤介绍如下。

步骤s110,在接收到用户的目标问题时,判断接收到的目标问题是否为寒暄问题。

用户通过用户终端110输入目标问题,用户终端110将输入的目标问题发送给服务器120。

服务器120接收到目标问题后,判断目标问题是否为寒暄问题。具体地,服务器120可以在预先存储的寒暄问题中查找是否存在该目标问题,若存在,则判定目标问题为寒暄问题;反之,则判定目标问题为业务问题,在目标问题为寒暄问题时继续后续流程,在目标问题为业务问题时进行业务问题处理流程。

步骤s120,根据预设的问答匹配从交互机器人的知识库中获得与目标问题对应的第一问题答复,及采用第一问题答复作为目标问题的回复的第一概率。

在本申请实施例中,交互机器人的知识库中保存有问题和答案对,将目标问题与保存的问题进行文本相似度匹配,计算目标问题与知识库中保存的问题之间的文本相似度,将文本相似度最大的问题所对应的答案作为对目标问题的第一问题答复,并可以将目标问题与该问题之间的文本相似度作为第一概率。

步骤s130,根据预设的文本生成规则生成与目标问题对应的第二问题答复,并计算采用第二问题答复作为目标问题的回复的第二概率。

在本申请实施例中,通过预设的文本生成规则对目标问题进行处理,生成与该目标问题对应的第二问题答复,并通过预先配置的问题答复的评价规则计算采用第二问题答复作为目标问题的回复的第二概率。

步骤s140,将第一概率和第二概率进行比较,根据比较结果选择第一问题答复或第二问题答复作为对所述目标问题的回复。

具体地,在本申请实施例中,在第一概率大于第二概率时,将第一问题答复作为对目标问题的回复;

在第一概率小于第二概率时,将第二问题答复作为对目标问题的回复;

在第一概率等于第二概率时,在第一问题答复和第二问题答复中任选一个作为对目标问题的回复。

在本申请实施例中,上述人机对话控制方法可以通过交互机器人中的人机对话回复模型实现。

请参照图4,人机对话回复模型包括长短期记忆网络lstm(long-shorttermmemory)结构、寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型。其中,lstm结构的输出端分别与寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的输入端相连。

本申请实施例采用训练好的人机对话回复模型实现人机对话控制。

具体地,可以采用寒暄问题判断子模型判断接收到的目标问题是否为寒暄问题;

在目标问题为寒暄问题时,采用多分类子模型获得与目标问题对应的第一问题答复,及第一问题答复作为目标问题的回复的第一概率,其中,多分类子模型用于训练问答匹配规则,以根据目标问题从交互机器人的知识库中获得与目标问题对应的第一问题答复,并通过计算得到第一问题答复作为目标问题的回复的第一概率;

在目标问题为寒暄问题时,采用文本生成子模型生成与目标问题对应的第二问题答复,并采用文本评价子模型计算第二问题答复作为所述目标问题的回复的第二概率,其中,文本生成子模型用于训练文本生成规则,文本评价子模型用于训练问题答复的评价规则。

在采用训练好的人机对话回复模型实现人机对话控制之前,人机对话控制方法还可以包括训练人机对话回复模型的步骤,该步骤包括:

随机将各个子模型的训练数据输入到lstm结构中进行训练,在lstm结构训练完成后,从lstm结构的输出端将训练结果输入到对应的子模型中再对子模型进行训练,直到人机对话回复模型收敛。

在本申请实施例中,人机对话回复模型在训练时,采用多任务训练的思想对四个子模型同时进行训练,能够有效提高各个子模型的训练效果,加强整个人机对话回复模型中各个子模型之间的内部融合度,有利于提高人机对话控制的关联性。

具体地,比如,随机输入的训练数据为多分类子模型的训练数据,则lstm结构在对该训练数据训练后,将训练后的训练结果输入到多分类子模型中在对多分类子模型进行训练。即每一次随机输入的训练数据都会对lstm结构进行训练。而寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型只会在输入的训练数据为对应子模型的训练数据时才会被训练;即每一次随机输入的训练数据只对寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型其中之一进行训练。

在每次随机输入训练数据完成对人机对话回复模型的训练之后,判断本次训练后的人机对话回复模型是否收敛。具体判断人机对话回复模型是否收敛的方式如下:

首先,采用交叉熵损失函数计算每次训练后人机对话回复模型的损失函数值;

其次,将计算得到的人机对话回复模型的损失函数值与预设阈值进行比对;

最后,若损失函数值不小于预设阈值,则判定人机对话回复模型未收敛;若损失函数值大于预设阈值,则判定人机对话回复模型收敛。

在本申请实施例中,在随机将各子模型的数据输入lstm结构中进行训练之前,该训练人机对话回复模型的步骤,还可以包括:

根据寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量大小,调整用于训练寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量。

在本申请实施例中,具体地调整方式可以是将寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量调整为一致。因每次训练均是从所有子模型的训练数据中随机选择输入的训练数据,将每个子模型的训练数据量统一可以确保证整个训练人机对话回复模型中的各个子模型被均衡训练,均衡训练各个子模型不仅可以保证人机对话回复模型的训练结果,还可以加速模型收敛,提高模型训练速度。

具体地,下面以举例地方式对训练寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量的调整过程进行介绍。

若寒暄问题判断子模型的训练数据的数据量为200条、多分类子模型的训练数据的数据量为300条、文本生成子模型的训练数据的数据量为300条、文本评价子模型的训练数据的数据量为800条。可以将寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量统一为300条。对于寒暄问题判断子模型,可以从已有的200条训练数据中随机选择100条训练数据,由随机选择的100条训练数据和已有的200条数据构成寒暄问题判断子模型的训练数据;对于文本评价子模型,可以从800条训练数据中随机选择300条作为文本评价子模型的训练数据。

在本申请实施例中,训练人机对话回复模型的步骤,还可以包括:

在人机对话回复模型的每一次训练过程中,采用优化器对每次随机输入人机对话回复模型的训练数据所对应的子模型的参数和所述lstm结构的参数进行优化,其中,优化器包括adam优化器。

采用adam优化器对每次训练过程中的,输入训练数据所对应的子模型的参数和所述lstm结构的参数进行优化,可以确保每次训练都是朝着使人机对话回复模型收敛的方向训练人机对话回复模型的参数。

在本申请实施例中,在对人机对话回复模型进行训练之前,所述方法还可以包括对人机对话回复模型的训练数据进行处理的步骤。该步骤具体如下:

首先,获取人机对话回复模型的训练数据。

具体地,分别获取寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据。

获取多分类子模型的训练数据的方式可以是:

获取已标注的寒暄问题,将获取的寒暄问题作为多分类子子模型的训练数据,其中,已标注的寒暄问题可以是人工标注的。在已经标注的寒暄问题中,每类寒暄问题包括多个相似问题,每个问题包括对应的类别。比如,对于“你好”这一类寒暄问题,可以对应包括“你好呀”、“你好吗”、“您好”等多个相似问题,同时若“你好”在寒暄问题中对应的类别为第i类,则“你好呀”、“你好吗”、“您好”等多个相似问题对应的类别也为第i类。

获取寒暄问题判断子模型的训练数据的方式可以是:

寒暄问题判断子模型是二分类模型,寒暄问题判断子模型的训练数据包括两部分组成,即正例和负例。具体地,可以将寒暄问题判断子模型中所有相似问题作为正例,将从所有业务问题中选择的预设数量的相似问题作为负例,由正例和负例组成寒暄问题判断子模型的训练数据。其中,每个正例和负例对应有标识是否为寒暄问题的标签,具体地,正例中的每个问题对应有“是”的标签,负例中的每个问题对应有“否”的标签。

获取文本生成子模型的训练数据的方法可以是:

将寒暄数据作为文本生成子模型的训练数据,其中,寒暄数据包括问题和答案对。寒暄数据主要来源于多分类子模型中的寒暄数据,也可以包括公开的寒暄数据集,公开的寒暄数据集可以是不同交互机器人收集的寒暄数据集。

获取文本评价子模型的训练数据的方式可以是:

文本评价子模型可以为二分类模型,文本评价子模型的训练数据包括正例句子和负例句子。其中,正例句子可以从寒暄数据和业务数据中的回复中随机抽样得到,正例句子为正常通常的句子;负例句子可以由随机抽取的字组成,负例句子为随机生成的句子。在文本评价子模型的训练数据中,相同字数的正例句子和负例句子的数量相同。在文本评价子模型的训练数据中保证相同字数的正例句子和负例句子的数量相同,可以确保文本评价子模型在训练过程不受句子字数影响。

接着,对获取的人机对话回复模型的训练数据进行清洗处理。

数据清洗处理包括数据过滤、数据整理及数据切分三个部分,下面对各个部分进行详尽介绍。

在数据过滤处理过程中,去除各个子模型的训练数据中非预设格式的数据。具体地,可以采用正则表达式匹配的方式将各个子模型的训练数据中包含的非预设格式的数据进行过滤。比如,预设格式的数据可以是字母、汉字和标点符号等,在多分类子模型的训练数据为“您好,&%*”时,可以通过正则表达式将训练数据中的“&%*”去掉,得到过滤后的训练数据为“您好,”。在该数据过滤处理过程中还用于将各个子模型的训练数据的字体转换为预设字体,可以是将繁体中文转简体中文,比如,可以将“今天身體狀況如何?”转换为“今天身体状况如何?”。在本申请实施例中,在数据过滤处理的过程中还可以将方言转换为普通话,比如,将上海话中的“侬好!”转换为“你好!”。可以理解的是,上述仅仅是对数据过滤处理中几种具体过滤方式的举例,在本申请实施例中,对数据过滤处理还可以包括其他更多的过滤方式。

在数据整理过程中,将获得的各个子模型的训练数据,按照各个子模型不同的数据要求格式进行整理,为输入对应各个子模型进行训练做准备。具体地,寒暄问题判断子模型、多分类子模型及文本评价子模型属于分类模型,每条寒暄问题判断子模型、多分类子模型及文本评价子模型的训练数据都对应具体的类别;文本生成子模型属于生成模型,文本生成子模型的训练数据可以由问题和答案对组成。

在数据切分的过程中,将各个子模型的训练数据按照预设比例(比如,4:1)划分为训练数据集和测试数据集。对各个子模型的训练数据进行切分便于成训练数据集和测试数据集,采用训练数据集对各个子模型进行训练,采用测试数据集对训练好的各个子模型进行测试,便于在人机对话回复模型训练过程中对各个子模型的训练结果进行评估。

最后,将清洗处理后的训练数据进行编码得到词汇表。

在对人机对话回复模型进行训练时,需要将训练数据通过编码后输入到人机对话回复模型中进行训练。比如,训练数据“你好”对应的编码为“01”,则将输入的训练数据“你好”转换成“01”后输入到人机对话回复模型中进行训练。为此可以通过对清洗处理后的训练数据进行编码处理得到词汇表,在将训练数据输入人机对话回复模型中进行训练之前,可以通过查找词汇表得到训练数据对应的编码。

具体地,在对清洗处理后的训练数据进行编码得到词汇表的过程中:

首先,对清洗处理后的训练数据中的字或符号进行统计;

接着,根据统计的字或符号的词频,对词汇表中的字或符号进行排序,得到词汇表。

在对人机对话回复模型进行训练的过程中,因需要将输入人机对话回复模型的训练数据进行编码后再输入人机对话回复模型中进行训练。为此需要创建一个包括训练数据的所有字和符号的词汇表,在每次输入数据时可以通过查表的方式获得输入数据对应的编码。在创建词汇表的过程中,可以对训练数据进行统计,并根据训练数据中字和符号的词频,将训练数据中字和符号按照降序的方式放入到词汇表中,并根据情况控制词汇表大小。比如,将词频大于等于2的字和符号放入词汇表,将词频小于2的字和符号舍弃。通过控制词汇表大小可以减小人机对话回复模型训练过程中的计算量。

在完成对人机对话回复模型的训练后,保存人机对话回复模型的模型结构和参数,可以通过采用tensorflowserving实现人机对话回复模型的在线部署和切换,以便通过部署的人机对话回复模型实现本申请实施例的人机对话控制方法。其中,tensorflowserving是一用于机器学习模型serving的高性能开源库。

上述实施例提供的人机对话控制方法,首先,判断接收到的目标问题是否为寒暄问题;接着,在为寒暄问题时,通过预设的问答匹配规则生成第一问题答复,通过预设的文本生成规则生成第二问题答复;最后,根据第一问题答复和第二问题答复被用于回复目标问题的概率,确定采用第一问题答复还是第二问题答复作为目标问题的回复。采用两种不同的问题答复方式生成对目标问题的不同答复,并根据不同答复对应回复目标问题的概率选择较优的答复作为该目标问题的回复,不仅回复寒暄问题的答复具有灵活性,同时也能采用可用评价标准从不同的答复选择较优的答复。进一步地,在人机对话回复模型在训练时,采用多任务训练的思想对四个子模型同时进行训练,能够有效提高各个子模型的训练效果,加强整个人机对话回复模型中各个子模型之间的内部融合度,采用训练好的人机对话回复模型实现人机对话控制方法有利于提高人机对话控制过程中问题和答复之间的关联性。

图5示出本申请的一些实施例的人机对话控制装置400的框图,该人机对话控制装置400实现的功能对应上述方法执行的步骤。该装置可以理解为上述服务器200,或服务器200的处理器,也可以理解为独立于上述服务器200或处理器之外的在服务器200控制下实现本申请功能的组件,如图5所示,人机对话控制装置400可以包括判断模块450、获得模块460、生成模块470及选择模块480。

判断模块450,可用于在接收到用户的目标问题时,判断接收到的目标问题是否为寒暄问题。

可以理解,该判断模块450可以用于执行上述步骤s110,关于该判断模块450的详细实现方式可以参照上述对步骤s110有关的内容。

获得模块460,可以用于在目标问题为寒暄问题时,根据预设的问答匹配规则从交互机器人的知识库中获得与目标问题对应的第一问题答复,及采用第一问题答复作为目标问题的回复的第一概率。可以理解,该获得模块460可以用于执行上述步骤s120,关于该获得模块460的详细实现方式可以参照上述对步骤s120有关的内容。

生成模块470,可以用于在目标问题为寒暄问题时,根据预设的文本生成规则生成与目标问题对应的第二问题答复,并计算采用第二问题答复作为目标问题的回复的第二概率。可以理解,该生成模块470可以用于执行上述步骤s130,关于该生成模块470的详细实现方式可以参照上述对步骤s130有关的内容。

选择模块480,可以用于将第一概率和第二概率进行比较,根据比较结果选择第一问题答复或第二问题答复作为对目标问题的回复。可以理解,该选择模块480可以用于执行上述步骤s140,关于该选择模块480的详细实现方式可以参照上述对步骤s140有关的内容。

在一种可能的实施方式中,选择模块480还可以具体用于:

在第一概率大于第二概率时,将第一问题答复作为对目标问题的回复;

在第一概率小于第二概率时,将第二问题答复作为对目标问题的回复;

在第一概率等于第二概率时,在第一问题答复和第二问题答复中任选一个作为对目标问题的回复。

在一种可能的实施方式中,交互机器人包括人机对话回复模型,人机对话回复模型包括长短期记忆网络lstm结构、寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型。交互机器人可以采用训练好的人机对话回复模型进行人机对话控制,其中,

判断模块450,用于采用寒暄问题判断子模型判断接收到的目标问题是否为寒暄问题;

获得模块460,用于在目标问题为寒暄问题时,采用多分类子模型获得与目标问题对应的第一问题答复,及第一问题答复作为目标问题的回复的第一概率,其中,多分类子模型用于训练问答匹配规则;

生成模块470,用于在目标问题为寒暄问题时,采用文本生成子模型生成与目标问题对应的第二问题答复,并采用文本评价子模型计算第二问题答复作为目标问题的回复的第二概率,其中,文本生成子模型用于训练文本生成规则,文本评价子模型用于训练问题答复的评价规则。

请参照图6,在一种可能的实施方式中,人机对话控制装置400还可以包括:

训练模块430,用于训练人机对话回复模型,其中,人机对话回复模型包括长短期记忆网络lstm结构、寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型;

训练模块430具体用于:

随机将各子模型的训练数据输入到lstm结构中进行训练,并将经过lstm结构训练后的训练结果输入到对应的各子模型中进行训练,直到人机对话回复模型收敛。

在一种可能的实施方式中,训练模块430还可以用于:

采用交叉熵损失函数计算每次训练后人机对话回复模型的损失函数值;

将损失函数值与预设阈值进行比较;

若损失函数值不小于所述预设阈值,则判定人机对话回复模型未收敛;

若损失函数值大于预设阈值,则判定人机对话回复模型收敛。

在一种可能的实施方式中,训练模块430还可以用于:

根据寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量大小,调整用于训练寒暄问题判断子模型、多分类子模型、文本生成子模型及文本评价子模型的训练数据的数据量。

在一种可能的实施方式中,训练模块430还可以用于:

在每次训练过程中,采用优化器对每次随机输入人机对话回复模型的训练数据所对应的子模型的参数和lstm结构的参数进行优化,其中,优化器包括adam优化器。

请再次参照图6,人机对话控制装置400还可以包括:数据获取模块410、数据清洗模块420及数据编码模块430。

数据获取模块410可以用于获取人机对话回复模型的训练数据。

具体地,数据获取模块410用于:

获取已标注的寒暄问题,将获取的寒暄问题作为多分类子模型的训练数据,其中,每类寒暄问题包括多个相似问题,每个问题包括对应的类别;

将多分类子模型的训练数据作为正例,将从业务问题中选择的预设数量的相似问题作为负例,由正例和所述负例组成寒暄问题判断子模型的训练数据,其中,每个正例和负例对应有标识是否为寒暄问题的标签;

将寒暄数据作为文本生成子模型的训练数据,其中,寒暄数据包括问题和答案对;

从寒暄数据和业务数据中随机抽样得到正例句子,由随机抽取的字组成的句子作为负例句子,由正例句子和负例句子作为文本评价子模型的训练数据,其中,相同字数的正例句子和负例句子的数量相同。

数据清洗模块420,可以用于将训练数据进行清洗处理。

具体地,数据清洗模块420具体用于:

将训练数据进行过滤,去除训练数据中非预设格式的数据;

将过滤后的训练数据进行数据整理,将各个子模型的训练数据整理为各个子模型所需的对应格式;

将各个子模型的训练数据按照预设比例划分为训练数据集和测试数据集。

进一步地,数据清洗模块420用于:

通过采用正则表达式匹配的方式将训练数据中包含的非预设格式的数据进行过滤,并将训练数据的字体转换为预设字体。

数据编码模块430,可以用于将清洗处理后的训练数据进行编码得到词汇表,其中,词汇表包括数据所需的字和符号。

具体地,数据编码模块430用于:

对清洗处理后训练数据中的字或符号进行统计;

根据统计的字或符号的词频,对词汇表中的字或符号进行排序,得到词汇表。

本申请实施例还提供了一种可读存储介质,所述可读存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的人机对话控制方法。

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

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

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

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

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

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