对话处理方法、模型训练方法及其相关设备转让专利

申请号 : CN201811595186.4

文献号 : CN111368040B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄磊靳丁南罗欢权圣

申请人 : 马上消费金融股份有限公司

摘要 :

本申请公开了一种对话处理方法、模型训练方法及其相关设备。其中,该对话处理方法包括:获取至少一条用户输入数据;提取所述至少一条用户输入数据的意图和实体;将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据;将所述回复数据反馈给用户。上述方案,能够提高设备与用户之间交互的准确性。

权利要求 :

1.一种对话处理方法,其特征在于,包括:

获取属于同一轮对话流中的多条用户输入数据;

提取每条所述用户输入数据的意图和实体;

将每条所述用户输入数据的所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据;

将所述回复数据反馈给用户;

其中,在所述将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据之前,所述方法还包括:若所述当前用户输入数据为用户首次输入的数据,则识别出所述用户输入数据的意图,并从若干个针对不同场景的对话处理模型中选择出与所述意图匹配的对话处理模型,以作为对所述用户输入数据进行处理的对话处理模型,其中,所述场景与所述意图对应匹配,所述当前用户输入数据为在本轮所述对话流中最新收到的用户输入的数据,所述用户首次输入为本轮所述对话流中用户的首次输入;

若所述多条用户输入数据中的当前用户输入数据不为用户首次输入的数据,则选择对用户前次输入的用户输入数据进行回复时所采用的对话处理模型,以作为对所述用户输入数据进行处理的对话处理模型。

2.根据权利要求1所述的方法,其特征在于,所述同一轮对话流中的多条用户输入数据包括属于同一轮对话流中的当前用户输入数据和至少一条历史用户输入数据;

所述提取所述多条用户输入数据的意图和实体,包括:

分别提取每条所述用户输入数据的意图和实体,并由每条所述用户输入数据的意图和实体形成特征数据;

所述将所述意图和实体输入至对话处理模型中处理,包括:

将所述特征数据输入至对话处理模型中处理。

3.根据权利要求2所述的方法,其特征在于,所述由每条所述用户输入数据的意图和实体形成特征数据,包括:基于每条所述用户输入数据的意图和实体形成一特征向量,并由每条所述用户输入数据对应得到的特征向量组成所述特征数据;

其中,所述特征向量为独热one-hot向量。

4.根据权利要求1所述的方法,其特征在于,所述将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据,包括:将所述意图和实体输入至对话处理模型中处理,得到至少一条预测回复数据及所述预测回复数据的匹配评估结果;

选择所述匹配评估结果符合预设要求的所述预测回复数据作为与所述用户输入数据匹配的回复数据。

5.根据权利要求4所述的方法,其特征在于,所述将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据,还包括:若所述至少一条预测回复数据均不符合所述预设要求,则保存所述对话处理模型的处理记录,并从若干个针对不同场景的对话处理模型中,重新选择与所述用户输入数据的意图匹配的其他对话处理模型,并将所述意图和实体输入至所述重新选择的对话处理模型中处理,以得到与所述用户输入数据匹配的回复数据。

6.根据权利要求4所述的方法,其特征在于,

所述匹配评估结果为所述预测回复数据的概率,所述预设要求为所述预测回复数据的概率大于预设阈值。

7.一种对话处理模型的训练方法,其特征在于,包括:

获取至少一组历史对话数据,其中,每组所述历史对话数据包括多条历史用户输入数据;

基于所述历史用户输入数据的意图和实体得到训练数据;

利用所述训练数据对预设机器学习模型进行训练,建立初始模型;

将测试用户输入数据输入到所述初始模型中,得到测试回复数据;

利用所述测试回复构建损失函数,通过所述损失函数确定是否对所述初始模型进行再训练,并将训练完成的模型确定为所述对话处理模型;

其中,每组所述历史对话数据还包括与所述多条历史用户输入数据对应的一条历史回复数据;所述基于所述历史用户输入数据的意图和实体得到训练数据,包括:基于每组所述历史对话数据中的所述历史用户输入数据的意图和实体形成一组训练向量,将所述一组训练向量作为训练样本;其中,每条所述历史用户输入数据的意图和实体形成一条训练向量,所述多条历史用户输入数据对应的多条训练向量组成所述一组训练向量;

由每组所述训练样本及所述历史对话数据中的历史回复数据组成一组所述训练数据。

8.根据权利要求7所述的方法,其特征在于,每组所述历史对话数据中包含的历史用户输入数据的条数决定于所述预设机器学习模型的隐藏节点数。

9.根据权利要求8所述的方法,其特征在于,每组所述历史对话数据中包含的历史用户输入数据的条数等于所述预设机器学习模型的隐藏节点数。

10.根据权利要求7所述的方法,其特征在于,每组所述训练向量包括至少一个训练向量;所述基于每组所述历史对话数据中的所述历史用户输入数据的意图和实体形成一组训练向量,包括:对于每条历史用户输入数据,提取所述历史输入数据的意图和实体,并由所述提取的意图和实体分别对应的编码信息组成一个所述训练向量;其中,所述训练向量为独热one-hot向量。

11.根据权利要求7所述的方法,其特征在于,所述预设机器学习模型为长短期记忆网络LSTM模型。

12.一种电子设备,其特征在于,包括相互耦接的存储器和处理器;

所述处理器用于执行所述存储器存储的程序指令,以实现权利要求1至6任一项所述的对话处理方法;

和/或所述处理器用于执行所述存储器存储的程序指令,以实现权利要求7至11任一项所述的对话处理模型训练方法。

13.一种存储装置,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至6任一项所述的对话处理方法,和/或,实现权利要求7至11任一项所述的对话处理模型训练方法。

说明书 :

对话处理方法、模型训练方法及其相关设备

技术领域

[0001] 本申请涉及数据处理领域,特别是涉及一种对话处理方法、模型训练方法及其相关设备。

背景技术

[0002] 随着人工智能的高速发展,聊天机器人是近年来重点研究的方向。苹果的Siri如今已经变得家喻户晓,微软的小冰2014年进入中国以来已经成为百万中国用户的数字伙伴,阿里的店小蜜如今已经为千万卖家服务,为其充当智能客服。多轮对话作为一种对话管理(Dialog Management,DM)过程是聊天机器人中重要的一环。DM控制着人机对话的过程,根据对话历史信息,决定此刻对用户的回复。
[0003] 目前大多数公司的多轮对话处理方式,一种主要是通过规则的方式来实现的,即通过有限状态机来实现,状态和下一步动作都定义好了,当状态满足时,进行下一步动作,进入相应的节点。故基于规则实现的多轮对话必须严格按照流程的方向来执行,缺乏灵活性。例如订飞机票功能,设置的规则是先询问出发地目的地,再在询问时间,这个顺序,如果用户先回答时间,对话处理系统就无法识别,进而无法与用户进行正常交互。另一种是通过对用户输入文本进行分词,并基于分词结果生成对用户的回复。然而,此种仅基于简单分词实现对话处理的方式,会导致设备生成的用户回复不够准确,进而导致设备与用户之间的交互出错。

发明内容

[0004] 本申请主要解决的技术问题是提供一种对话处理方法、模型训练方法及其相关设备,能够提高设备与用户之间交互的准确性。
[0005] 为了解决上述问题,本申请第一方面提供了一种对话处理方法,包括:获取至少一条用户输入数据;提取所述至少一条用户输入数据的意图和实体;将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据;将所述回复数据反馈给用户。
[0006] 为了解决上述问题,本申请第二方面提供了一种用于对话处理的模型训练方法,包括:获取至少一组历史对话数据,并基于所述历史对话数据中历史用户数据的意图和实体得到训练数据;利用所述训练数据对预设机器学习模型进行训练,建立初始模型;将测试用户数据输入到所述初始模型中,得到测试回复数据;利用所述预测回复构建损失函数,通过所述损失函数确定是否对所述初始模型进行再训练,并将训练完成的模型确定为所述对话处理模型。
[0007] 为了解决上述问题,本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器;所述处理器用于执行所述存储器存储的程序指令,以实现上述第一方面的方法;或者,所述处理器用于执行所述存储器存储的程序指令,以实现上述第二方面的方法。
[0008] 为了解决上述问题,本申请第四方面提供了一种存储装置,存储有能够被处理器运行的程序指令,所述程序指令用于实现上述第一方面和/或第二方面的方法。
[0009] 上述方案中,通过将用户输入数据的意图和实体输入至对话处理模型进行对话处理,以得到匹配的回复数据,由此可实现设备与用户之间的智能交互,且基于用户输入数据的意图和实体实现该对话处理,能够提高设备对用户输入数据内容的意图识别,进而可得到准确率更高的回复数据,故提高设备与用户交互的准确性。
[0010] 另外,通过历史用户输入数据的意图和实体训练得到对话处理模型,进而使得可利用该对话处理模型能够基于用户输入数据的意图和实体生成准确的回复数据,提高设备与用户交互的准确性。

附图说明

[0011] 图1是本申请对话处理方法一实施例的流程示意图;
[0012] 图2是本申请对话处理方法另一实施例的流程示意图;
[0013] 图3是本申请用于对话处理的模型训练方法一实施例的流程示意图;
[0014] 图4是本申请对话处理方法中另一实施例中关于步骤S320的流程示意图;
[0015] 图5是本申请电子设备一实施例的结构示意图;
[0016] 图6是本申请存储装置一实施例的结构示意图;
[0017] 图7是本申请对话处理装置一实施例的结构示意图;
[0018] 图8是本申请用于对话处理的模型训练装置一实施例的结构示意图。

具体实施方式

[0019] 下面结合说明书附图,对本申请实施例的方案进行详细说明。
[0020] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
[0021] 本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
[0022] 本申请提出一种将用户输入数据的意图和实体作为对话处理模型的输入,以产生与用户输入数据匹配的回复,进而实现设备与用户之间的智能交互,故实现了对话管理。而且,生成回复的对话处理模型可是基于历史对话数据中的意图和实体对机器学习模型训练得到,相比于基于固定规则实现回复的方式,提高了设备与用户交互的灵活性。本文的机器学习模型具体可以为深度学习模型或强化学习模型等,为便于说明,下面统一以采用深度学习模型进行对话处理来举例描述,采用强化学习模型进行对话处理同理。
[0023] 首先,对本文所出现的词语进行说明:
[0024] 意图:是指用户输入数据所表达的用户目的,例如用户输入数据为:我想订中餐。其意图即为:订餐。
[0025] 实体,是指用户输入数据中的关键要素,例如为词槽。具体如,餐食类实体有:中餐、西餐、川菜等,城市类实体有:北京、上海,深圳等。若用户输入数据为:我想订中餐。其实体即为:中餐。
[0026] 长短期记忆网络(Long Short-Term Memory,LSTM),是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。
[0027] 请参阅图1,图1是本申请对话处理方法一实施例的流程示意图。本实施例中,该方法由具有处理能力的电子设备执行,例如电脑、手机等终端或者服务器等。本实施例中,该方法包括以下步骤:
[0028] S110:获取至少一条用户输入数据。
[0029] 例如,该电子设备为服务器,服务器通过网络接收到用户通过其用户设备输入的用户输入数据。其中,该用户输入数据可以为语音格式或者文本格式,具体可以为自然语言的语句。当电子设备接收到语音格式的用户输入数据时,先对该用户输入数据进行语音识别得到对应的文本格式的数据。
[0030] 其中,S110获取的用户输入数据可以包括属于同一轮对话流中的一条或多条用户输入数据。若仅包括一条用户输入数据时,该S110获取的用户输入数据为当前用户输入数据。若包括多条用户输入数据时,该S110获取的多条用户输入数据包括当前用户输入数据和至少一条历史用户输入数据。其中,所述一轮对话流可以包括多轮用户与设备之间的一来一往的对话,电子设备可通过判断用户是否在预设时间内继续输入数据,或者输入数据与之前输入数据是否相关,来确定该轮对话流是否结束。该当前用户输入数据为在对话流中最新收到的用户输入的数据,该至少一条历史用户输入数据可以但不限为在当前用户输入数据之前的一条或多条用户输入数据。
[0031] S120:提取至少一条用户输入数据的意图和实体。
[0032] 其中,可利用意图模型提取得到用户输入数据中的意图,利用实体模型提取得到用户输入数据中的实体。该意图模型和实体模型可以是利用对应的意图数据或实体数据对深度学习模型训练得到的。该用户输入数据的意图和实体可以但不限于采用如独热(one-hot)向量等向量方式表示。
[0033] 为了提高回复数据的准确性,S110获取的用户输入数据可以包括属于同一轮对话流中的多条用户输入数据,所述多条用户输入数据包括当前用户输入数据和至少一条历史用户输入数据。本S120具体可包括:分别提取每条所述用户输入数据的意图和实体,并由每条所述用户输入数据的意图和实体形成特征数据,进而将该特征数据输入至对话处理模型中处理,以得到对应回复数据。具体地,上述每条用户输入数据的意图和实体可用向量表示。例如,上述由每条所述用户输入数据的意图和实体形成特征数据,可具体包括:基于每条所述用户输入数据的意图和实体形成一特征向量,并由每条所述用户输入数据对应得到的特征向量组成所述特征数据。可以理解的是,每条用户输入数据并非必然存在意图和实体,故若不存在则可采用设定编码表示。具体举例如下,电子设备预设有不同意图与其对应的编码信息的关联关系,如下表1,不同实体与其对应的编码信息的关联关系,如下表2。该特征向量为one-hot向量。
[0034] 意图及其编码信息对应关系表-表1
[0035] 问候 订餐 出行 商品咨询 查天气10000 01000 00100 00010 00001
[0036] 实体及其编码信息对应关系表-表2
[0037]西餐 中餐 川菜 粤菜 湘菜
10000 01000 00100 00010 00001
[0038] 对话流如下:
[0039] 用户:我想订餐;
[0040] 设备:你想订什么;
[0041] 用户:想订西餐。
[0042] 电子设备获取当前用户输入数据“想订西餐”,并识别出用户输入数据的意图和实体分别为“订餐”和“西餐”。电子设备获取之前一条历史用户输入数据“我想订餐”,并识别出用户输入数据的意图为“订餐”且无实体。通过该预设的关联关系,可知道,“订餐”意图对应的编码信息为(01000);“西餐”实体对应的编码信息为(10000),无实体对应的编码信息为(00000),由当前用户输入数据的意图和实体组成的one-hot向量为(0,1,0,0,0,1,0,0,0,0),将其作为当前用户输入数据对应的特征向量。同理,由历史用户输入数据的意图和实体组成的one-hot向量为(0,1,0,0,0,0,0,0,0,0),将其作为历史用户输入数据对应的特征向量。可由该两条特征向量组成二维数据,以作为该特征数据。
[0043] S130:将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据。
[0044] 例如,该对话处理模型是依靠用于训练的用户输入数据的意图和实体及对应回复数据来训练得到的,则可利用用户输入数据的意图和实体作为输入参数,将由S120得到的意图和实体作为特征数据输入至对话处理模型进行预测处理,以得到匹配的回复数据,其中,该回复数据也可以为自然语言的语句。
[0045] 所述对话处理模型可以为基于至少一组历史对话数据中的历史用户输入数据和历史回复数据对深度学习模型进行训练得到。具体地,该深度学习模型可以为LSTM模型等时间递归神经网络模型,也可以为其他类型的深度学习模型,在此不做限定。另外,该对话处理模型可以是基于由至少一组历史对话数据分别转换得到的至少一组训练数据对深度训练模型进行训练得到的;对于每组所述训练数据,由所述历史对话数据中每条历史用户输入数据的意图和实体组成的训练向量为所述训练数据中的训练样本,所述历史对话数据中的历史回复数据为所述训练样本对应的结果标签。可以理解的是,对深度学习模型的训练过程可以为本电子设备预先执行或者由其他电子设备预先执行得到。关于该深度学习模型及其训练方法的详细说明可参考下面模型训练方法实施例的描述。
[0046] 在一实施例中,通过对话处理模型处理得到的数据可包括至少一条预测回复数据及该预测回复数据的匹配评估结果。该匹配评估结果用于表示该预测回复数据与用户输入数据的匹配程度。故电子设备可基于该匹配评估结果选择预测回复数据作为与用户输入数据的匹配的回复数据。例如,选择匹配评估结果符合预设要求的预测回复数据作为与所述用户输入数据匹配的回复数据。该预设要求可以为匹配评估结果大于预设阈值,或者匹配评估结果为本次输出的所述至少一条预测回复数据中最优的(如为本次输出的所有预测回复数据中概率最高的)。
[0047] S140:将所述回复数据反馈给用户。
[0048] 其中,该回复数据是用于响应用户输入数据的应答。在获得与用户输入数据匹配的回复数据后,电子设备可将该回复数据反馈给用户,以实现与用户之间进行对话。例如,电子设备为服务器,用户输入数据为:我想订餐。服务器执行S120得到匹配的回复数据为:请问你想吃什么?服务器将该回复数据可以采用语音格式或文本格式发送给用户设备,进而由用户设备通过语音播放或者显示屏显示该回复数据,以将回复数据告知用户,进而用户可基于该回复数据继续输入新的用户输入数据,由此展开多轮次对话。
[0049] 本实施例,通过将用户输入数据的意图和实体输入至对话处理模型进行对话处理,以得到匹配的回复数据,由此可实现设备与用户之间的智能交互,且基于用户输入数据的意图和实体实现该对话处理,能够提高设备对用户输入数据内容的意图识别,进而可得到准确率更高的回复数据,故提高设备与用户交互的准确性。进一步地,该对话处理模型可基于用于训练的的用户输入数据的意图和实体对机器学习模型进行训练得到的,相比于现有基于设定规则的有限状态机实现对话处理,能够提高设备与用户交互的灵活性。进一步地,可采用历史对话数据对预设深度学习模型进行训练即可得到对话处理模型,即只需选取正确流程的部分历史对话数据即可训练出该对话流程的模型,简化了对话流程配置。
[0050] 请参阅图2,图2是本申请对话处理方法另一实施例的流程示意图。本实施例中,该方法由如上所述的电子设备执行。本实施例中,该方法包括以下步骤:
[0051] S201:获取至少一条用户输入数据。
[0052] S202:提取所述至少一条用户输入数据的意图和实体。
[0053] 其中,本步骤S201-S202的相关说明可参考上述S110-S120的描述,在此不做赘述。S201中的至少一条用户输入数据至少包括当前用户输入数据,并可选择性包括与当前用户输入数据属于同一轮对话流的至少一条历史用户输入数据。
[0054] S203:判断当前用户输入数据是否为用户首次输入的数据。若是,则执行S204,否则执行S205。
[0055] 本实施例中,电子设备可通过判断本次获得的当前用户输入数据是否为首次输入来确定出后续使用的对话处理模型。可以理解的是,本文所述的用户首次输入,是指在本轮对话流中用户的首次输入。所谓本轮对话流可以包括多轮用户与设备之间的一来一往的对话,电子设备可通过判断用户是否在预设时间内继续输入数据,或者输入数据与之前输入数据是否相关,来确定本轮对话流是否结束。
[0056] 例如,关于以下对话流:
[0057] 用户:你好;
[0058] 设备:你好;
[0059] 用户:我想订餐;
[0060] 设备:你想吃什么;
[0061] 用户:我想吃川菜:
[0062] 设备:我认为**的川菜很不错,是否需要帮您订餐;
[0063] 用户:好的;
[0064] 设备:已帮您订餐,预估40分钟能够送达。
[0065] 上述对话流实质就包含4次对话。而用户输入数据“你好”为用户首次输入的数据。电子设备在最近一次回复之后的十分钟内未收到用户的最新输入数据,则确定本轮对话流结束。
[0066] S204:识别出用户输入数据的意图,并从若干个针对不同场景的对话处理模型中选择出与意图匹配的对话处理模型,以作为对用户输入数据进行处理的对话处理模型。
[0067] 本实施例中,电子设备预存有若干个针对不同场景的对话处理模型。其中,每个对话处理模型的训练均可参考下面模型训练方法实施例的描述。其中,不同场景的对话处理模型根据不同场景的历史对话数据对预设深度学习模型训练得到,不同场景例如为:订餐、查天气、出行、商品咨询场景等,通常,不同场景都是跟不同意图对应匹配的。
[0068] 电子设备在开始一轮对话流时,会根据用户首次输入的用户输入数据的意图,从预存的对话处理模型中选择出与意图匹配的一个模型,以作为对该用户输入数据进行处理的对话处理模型。通过选择场景与意图相匹配的模型进行对话处理,可提高后续生成的回复数据的准确性。
[0069] S205:选择对用户前次输入的用户输入数据进行回复时所采用的对话处理模型,以作为对用户输入数据进行处理的对话处理模型。
[0070] 通常,用户在一轮对话流中的意图是固定或者相关的,故通常可采用同一场景的对话处理模型对该轮对话流中每次用户输入的数据进行对话处理。故电子设备在每接收到一次用户输入数据时,可直接将用于前一次用户输入数据的对话处理的对话处理模型作为本次的对话处理模型。例如,对于上面例子的对话流,电子设备对当前用户输入数据“我想订餐”采用的是订餐场景的对话处理模型,故在继续接收到下一条当前用户输入数据“我想吃川菜”时,可继续使用该订餐场景的对话处理模型对其进行对话处理。
[0071] S206:将所述意图和实体输入至对话处理模型中处理,得到至少一条预测回复数据及所述预测回复数据的匹配评估结果。
[0072] 例如,获得多条用户输入数据的意图和实体,并由每条用户输入数据的意图和实体对应的编码组成一输入向量,将该多条输入向量输入至对话处理模型中处理,对话处理模型输出与该输入向量相关的预测回复数据及其概率。
[0073] S207:判断是否存在匹配评估结果符合预设要求的预测回复数据。若是,则执行S208,否则执行S209。
[0074] 本实施例中,电子设备考虑用户也有可能会在一轮对话流中出现跳转话题的情况,故可以通过先判断采用当前的对话处理模型处理得到的预测回复数据是否符合要求,若是则确定当前的对话处理模型是匹配的,并可直接采用其输出的回复数据,否则可以考虑重新选择其他对话处理模型对用户输入数据进行重新对话处理。
[0075] 例如,该预设要求为预测回复数据的概率大于预设阈值。故电子设备将S206获得的每一条预测回复数据的概率与预设阈值进行比对,若存在概率大于预设阈值的预测回复数据,则确定存在匹配评估结果符合预设要求的预测回复数据。
[0076] S208:选择匹配评估结果符合预设要求的预测回复数据作为与用户输入数据匹配的回复数据。
[0077] 例如,选择概率大于预设阈值的预测回复数据作为用户输入数据匹配的回复数据。若概率大于预设阈值的预测回复数据存在多条,则可进一步从概率大于预设阈值的多条预测回复数据中,选择概率最高的预测回复数据作为与用户输入数据匹配的回复数据。
[0078] S209:保存对话处理模型的处理记录,并从若干个针对不同场景的对话处理模型中,重新选择与用户输入数据的意图匹配的其他对话处理模型,并将意图和实体输入至重新选择的对话处理模型中处理,以得到与用户输入数据匹配的回复数据。
[0079] 为提高模型输出的准确性,若所述至少一条预测回复数据中不存在匹配评估结果符合预设要求的预测回复数据,也即所述至少一条预测回复数据的匹配评估结果均不符合预设要求,此时,电子设备从其预存的若干个不同场景的对话处理模型中,重新选择与用户输入数据的意图匹配的其他对话处理模型(当S201获取的用户输入数据包括上述属于同一对话流的当前用户输入数据和历史用户输入数据时,可选择与当前用户输入数据的意图匹配的其他对话处理模型,或者综合该当前用户输入数据和历史用户输入数据确定得到最终意图,选择与最终意图匹配的其他对话处理模型)。若预存的对话处理模型中不存在与用户输入数据的意图匹配的其他对话处理模型,则可继续执行上述S208,并从输出的所述至少一个预测回复数据中选择匹配评估结果最优的一个作为用户输入数据匹配回复数据。若预存的对话处理模型中存在与用户输入数据的意图匹配的其他对话处理模型,则利用该其他对话处理模型重新执行上述S206-S209,直至新的对话处理模型输出的预测回复数据满足预设要求,则执行S208以获得选与用户输入数据匹配的回复数据。
[0080] 可以理解的是,出现至少一条预测回复数据的匹配评估结果均不符合预设要求的通常情况是电子设备在处理一轮对话流的用户非首次输入数据,此时由S205先采用上次使用的对话处理模型进行用户输入数据处理,由于用户可能在本次用户输入数据中已经跳转话题,例如上次输入的是“我想订餐”,本次输入的是“今天天气怎么样”,故此时若利用上次使用的订餐场景的模型处理输出的回复数据的概率不高,则可识别本次输入数据的意图,由此选择出匹配的模型来进行处理。
[0081] 另外,电子设备还存储对话处理模型的处理记录。例如,在重新选择新的对话处理模型之前的对话处理模型的处理记录,具体如之前使用的对话处理模型为哪一个,以及采用之前使用的对话处理模型处理了哪些用户输入数据以及已做出如何的回复。由此,当用户继续转回到原来话题,而在切换回原来对话处理模型时,电子设备可读取该记录确定之前与用户的交互内容,并基于该交互内容继续完成后续交互。
[0082] 需要说明的是,本实施例中,电子设备通过判断预测回复数据的匹配评估结果来确定是否重新选择新的对话处理模型,以提高交互的准确性。但在其他实施例中,也可根据实际需求,电子设备在执行S204或S205后直接执行S208,也即必须在S204或S205输出的预测回复数据中选择出与用户输入数据匹配的回复数据。
[0083] S210:将所述回复数据反馈给用户。
[0084] 本步骤S210的相关说明可参考上述S140的描述,在此不做赘述。
[0085] 请参阅图3,图3是本申请对话处理模型的训练方法一实施例的流程示意图。本实施例中,该方法由具有处理能力的电子设备执行,例如电脑、手机等终端或者服务器等。本实施例中,该方法包括以下步骤:
[0086] S310:获取至少一组历史对话数据。
[0087] 其中,每组历史对话数据包括至少一条历史用户输入数据和历史回复数据。每条历史用户输入数据即每次用户输入的语言数据,每条历史回复数据即对每条历史用户输入数据响应的语言数据,每条上述语言数据实际可包括一句或多句内容。具体而言,每组历史对话数据可包括多条历史用户输入数据和一条历史回复数据。该多条历史用户输入数据为在一轮对话流中,用户连续输入的多条历史用户输入数据。该历史回复数据为基于多条历史用户输入数据中最新的历史回复数据的回复数据。如上一实施例举例的对话流中,该多条历史用户输入数据包括:“你好”;“我想订餐”;“我想吃川菜”;历史回复数据为“我认为**的川菜很不错,是否需要帮您订餐”。由于用户连续输入的多条数据通常是有关联的,也即,该多条用户输入数据中的最新一条的回复可能跟该多条数据均有关联,只是与最新一条用户输入数据之间的关联权重最高而已。故将该多条数据与对应最新一条的回复数据一并作为一组历史对话数据。
[0088] 本实施例中,电子设备可通过接收至少一个用户输入的至少一组对话数据;和/或,获取所述电子设备与用户进行交互时产生历史对话数据等方式获得该至少一组历史对话数据。
[0089] 所述电子设备与用户进行交互时产生历史对话数据,表示该对话数据中的回复数据是由设备产生的;例如,模型训练是个不断循环的过程,即训练得到一对话处理模型后,仍可根据后续的历史对话数据继续对该模型进行优化,故该历史对话数据具体包括电子设备使用所述对话处理模型与用户进行交互时产生历史对话数据;又例如,电子设备先基于简单设定的规则与用户进行交互得到对话数据,将该部分对话数据先获取作为用于训练的历史对话数据。
[0090] 所述用户输入的至少一组对话数据表示该对话数据中的历史用户输入数据及回复数据均是由用户输入形成的,也即由用户自定义该对话的问答,故后续训练出来的模型可按照用户期望来实现对话回复;而且,由于一个场景的对话流可能会具有较为复杂的流程,且其流程分支非常多,故单依赖一个用户来设计整个对话流程的所有对话会导致效率低下,本申请电子设备设有可与多个用户数据交互的数据接收接口,通过该接口可收集不同用户输入的对话数据,每个用户可输入一部分对话流程分支的对话数据,故可实现多人同时进行对话流程对话数据的生成,提高训练数据的生成效率,进而能够快速生成模型。
[0091] 可以理解的是,该历史对话数据可以同时包括上述用户编写输入的对话数据或上述人机交互产生的历史对话数据,例如,先收集上述人机交互产生的历史对话数据,若不够,则可人工编写几条对话流程正确的对话数据。
[0092] S320:基于所述历史对话数据中历史用户输入数据的意图和实体得到训练数据。
[0093] 本实施例中,利用历史用户输入数据的意图和实体进行作为训练数据,以用于对预设机器学习模型进行训练。其中,每组历史对话数据可对应一组训练数据,每组训练数据包括训练样本和结果标签,该训练样本包括所述历史对话数据中的历史用户输入数据中的意图和实体,所述结果标签可包括所述历史对话数据中的历史回复数据,或者该历史回复数据对应的标识信息。
[0094] S330:利用训练数据对预设机器学习模型进行训练,建立初始模型。
[0095] 例如,将S320得到的训练数据输入至预设机器学习模型中进行训练,以确定该模型的初始参数,进而由确定的初始参数得到初始模型。下面以深度学习模型为例进行说明。电子设备利用S320获取的历史用户输入数据的用户意图和实体以及对应历史回复数据形成训练数据,利用该训练数据对预设深度学习模型进行训练,得到基于对历史对话数据进行深度学习得到的初始模型。其中,该预设深度学习模型可以为LSTM模型等时间递归神经网络模型,也可以为其他类型的深度学习模型,在此不做限定。
[0096] 在再一实施例中,S310所获取的每组所述历史对话数据中包含的历史用户输入数据的条数可以决定于预设深度学习模型的隐藏节点数。具体地,每组所述历史对话数据中包含的历史用户输入数据的条数可以等于预设深度学习模型的隐藏节点数。该预设深度学习模型的隐藏节点数一般可选为3-8。例如,该预设深度学习模型为LSTM模型,LSTM模型的隐藏节点数为5,则每组所述历史对话数据中包括一轮历史对话流中一条历史用户输入数据及其之前的4条历史用户输入数据,如果之前的历史输入数据不足4条,则将不足的部分用空数据表示。由此,对应训练得到的对话处理模型的隐藏节点数也为5。
[0097] 通常,模型的隐藏节点数与对话流的长度(也即对话流的数据条数)有关,例如对话流越长,其模型的隐藏节点理应越多。另外,模型的隐藏节点数可以不直接确定的,可分别假定模型的隐藏节点为多个不同数如3-8,进而分别采用每组包含3-8条历史用户输入数据的历史对话数据形成不同训练数据,分别输入至对应隐藏节点的预设深度学习模型中,以训练得到对应的多个初始模型,该多个初始模型的隐藏节点数即分别为3-8,利用用户输入数据输入至该得到的每个初始模型,以输出对应的回复数据,通过判断每个初始模型输出的回复数据的准确率去验证初始模型理应所具有的隐藏节点数,例如,将回复数据的准确率最高的初始模型的隐藏节点数确定为最终初始模型的隐藏节点数,故后续可采用历史用户输入数据的条数为该最终确定的隐藏节点数的历史对话数据继续对该初始模型进行迭代训练。
[0098] S340:将测试用户输入数据输入到初始模型中,得到测试回复数据。
[0099] 在训练得到初始模块后,继续对初始模型进行优化,以得到最终的对话处理模型。具体地,将测试输入用户数据输入至初始模型,初始模型作为初始的对话处理模型,会根据该测试数据产生对应的测试回复数据。
[0100] S350:利用预测回复构建损失函数,通过损失函数确定是否对所述初始模型进行再训练,并将训练完成的模型确定为所述对话处理模型。
[0101] 例如,可利用测试回复数据和设定回复数据构建损失函数,该设定回复数据可以为用户输入的或者设备预存的与该测试用户输入数据匹配的回复数据。例如,在一实施例中,该测试回复数据和设定回复数据分别为类似于S310所述的历史对话数据中的历史用户输入数据和历史回复数据。由于损失函数为凸函数,由凸函数性质可知,在对损失函数求最小值时,可得到当前优化参数。即将损失值为最小损失值所对应的损失函数参数作为该损失函数的当前优化参数。由该损失函数的当前优化参数能够得到初始模型的当前优化参数。故在创建损失函数后,通过该损失函数反向传播,对该初始模型进行训练。具体地,可将当前损失值为最小损失值所对应的损失函数的参数确定为所述损失函数的当前优化参数,并对该初始模型进行再训练,直至当前损失值的变化小于预设范围时,将当前的损失函数参数确定为前述初始模型的模型参数,并将该参数下训练完成的初始模型确定为对话崔丽模型。
[0102] 需要说明的是,可针对不同场景,采用不同场景的历史对话数据对预设深度学习模型进行训练以对应得到不同的对话处理模型,该对话处理模型可用于处理该场景对应的对话。例如,电子设备收集商品咨询类的历史对话数据,利用收集的商品咨询类的历史对话数据对预设深度学习模型进行训练得到商品咨询场景的对话处理模型。同时,电子设备收集场店信息咨询类的历史对话数据,利用收集的场店信息咨询类的历史对话数据对预设深度学习模型进行训练得到场店信息咨询场景的对话处理习模型。电子设备将训练得到的模型存储或者发送给另外电子设备,以由自身或另外电子设备利用存储的模型实现与用户交互,具体如上面图1和图2所示的对话处理方法实施例所述。
[0103] 在另一实施例中,可将S310中获取的每组历史对话数据中的用户输入数据的意图和实体及其对应回复数据作为一组训练数据,进而基于每组训练数据对深度学习模型训练得到初始模型。如图4所示,本S320可包括以下子步骤:
[0104] S421:基于每组历史对话数据中的历史用户输入数据的意图和实体形成一组训练向量,将所述一组训练向量作为训练样本,且将历史对话数据中的历史回复数据作为训练样本对应的结果标签。
[0105] 本实施例将用户意图和实体组合成训练向量,以作为训练数据中的训练样本。该训练向量可但不限于为one-hot向量。具体地,每组历史对话数据包括至少一条历史用户输入数据和一条对应的回复数据。电子设备利用每组历史对话数据中的历史用户输入数据的意图和实体对应的编码形成一组训练向量。其中,可以将每条历史用户输入数据的意图和实体对应的编码形成一条训练向量,例如对于每条历史用户输入数据,提取所述历史输入数据的意图和实体,并由所述提取的意图和实体分别对应的编码信息组成一个所述训练向量。故,对应一组历史对话数据中的每条历史用户输入数据形成一条训练向量,由该形成的至少一条训练向量组成与该组历史对话数据对应的一组训练向量,将该训练向量组作为训练样本。可以理解的是,每条用户输入数据并非必然存在意图和实体,故若不存在则可采用设定编码(如全0位的编码)表示。另外,基于该历史对话数据中的回复数据得到该训练该样本对应的结果标签,例如将该回复数据对应的标识作为该训练该样本对应的结果标签。其中,回复数据的标识也可以采用下述意图和实体的编码方式表示。
[0106] S422:由每组所述训练样本及对应的结果标签组成一组所述训练数据。
[0107] 例如,对于每组历史对话数据得到的该组训练该样本及对应的结果标签组成一组训练数据,故由多组历史对话数据可得到多组训练数据,将得到的多组训练数据作为初始模型的训练数据集。
[0108] 下面继续举例说明,电子设备中预存有该关于意图和实体与编码信息的关联关系表,分别如上面实施例中的表1和表2。每个意图或实体可采用编码的一位表示,故,意图或实体的编码信息的位数可等于穷举的意图/实体数量。例如,意图共有5个,则其编码的位数共5位,每个意图对应于编码的一位,当表示该意图时,则编码的对应位为1,否则为0。回复数据的标识如下表3:
[0109] 回复数据及其标识对应关系表-表3
[0110]
[0111] 针对下面的历史对话流产生用于训练的至少一组历史对话数据:
[0112] 用户对话1:你好;
[0113] 设备对话1:你好;
[0114] 用户对话2:我想订餐;
[0115] 设备对话2:请问你想吃什么;
[0116] 用户对话3:中餐;
[0117] 设备对话3:喜欢什么菜;
[0118] 用户对话4:川菜;
[0119] 设备对话4:推荐**川菜,是否需帮您订餐;
[0120] 用户对话5:好的;
[0121] 设备对话5:已帮您订餐。
[0122] 设定每组历史对话数据的用户输入数据的条数为模型的隐藏节点数3。由上述历史会话流可组成:第一组历史对话数据:2条空数据和用户对话1以及设备对话1;第二组历史对话数据:1条空数据和用户对话1-2以及设备对话2;第三组历史对话数据:用户对话1-3以及设备对话3;第四组历史对话数据:用户对话2-4以及设备对话4;……
[0123] 将每组历史对话数据转换成成一组训练数据,具体的,将该历史对话数据中的历史用户输入数据形成的训练向量组作为其中的训练样本,将该历史对话数据中的历史回复数据的标识作为其中的结果标签。由于每组历史对话数据包括3条用户输入数据,且用户输入数据的意图和实体均有5位编码表示,即每条向量的长度为10,训练向量组为3*10的二维数组:
[0124] 第一组历史对话数据的用户对话1的意图为问候,故对应得到第一训练样本X1为其标签为设备对话1的标识Y1为[1],故得到第一组训练数据(X1,Y1);
[0125] 第二组历史对话数据的用户对话2的意图为订餐,故对应得到第二训练样本X2为其标签为设备对话2的标识Y2为[2],故得到第二组训练数据(X2,Y2);
[0126] 第三组历史对话数据的用户对话3无意图,且实体为中餐,故对应得到第三训练样本X3为 其标签为设备对话3的标识Y3为[3],故得到第三组训练数据(X2,Y3);
[0127] 第四组历史对话数据的用户对话4无意图,且实体为川菜,故对应得到第四训练样本X4为 其标签为设备对话4的标识Y4为[4],故得到第四组训练数据(X4,Y4);
[0128] ……
[0129] 以此类推,可得到该历史对话流的多组训练数据。
[0130] 上述训练方法实施例,基于历史对话数据对如深度学习模型、强化学习模型等机器学习模型进行训练得到对话处理模型,例如可选择对流程正确的部分历史对话数据进行迭代训练得到对应对话流程的模型,简化对话流程配置,节约了工程量。其训练得到的深度学习模型能够实现设备与用户之间的灵活性的智能交互。
[0131] 请参阅图5,图5是本申请电子设备一实施例的结构示意图。本实施例中,该电子设备50包括存储器51、处理器52和通信电路53。其中,通信电路53、存储器51分别耦接处理器52。具体地,电子设备50的各个组件可通过总线耦合在一起,或者电子设备50的处理器分别与其他组件一一连接。该电子设备50可以为服务器或者电脑、手机等用户终端。
[0132] 通信电路53用于与如用于与用户人机交互以生成用户输入数据的用户设备等其他设备通信。可以理解的,在其他实施例中,电子设备50也可包括触控显示屏、键盘等人机交互电路,且可采用该人机交互电路获得用户输入数据。当然,电子设备可选择性设置通信电路和人机交互电路,甚至可两者均不设置,在此不做限定。
[0133] 存储器51用于存储处理器52执行的程序指令以及处理器52在处理过程中的数据如至少一个深度学习模型等机器学习模型,其中,该存储器51包括非易失性存储部分,用于存储上述程序指令。
[0134] 处理器52控制电子设备50的操作,处理器52还可以称为CPU(Central Processing Unit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器52可以由多个成电路芯片共同实现。
[0135] 在本实施例中,处理器52通过调用存储器51存储的程序指令,用于执行上述电子设备执行的任一方法实施例方法的步骤。
[0136] 例如,处理器52可用于执行以下至少一个方面:
[0137] 第一方面:电子设备50能够用于对话处理,即该电子设备50可作为对话处理设备。
[0138] 具体地,处理器52用于通过通信电路53、读取存储器51或其他方式获取至少一条用户输入数据;提取所述至少一条用户输入数据的意图和实体;将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据;可通过通信电路53、人机交互电路或其他方式将所述回复数据反馈给用户。
[0139] 在一些实施例,所述对话处理模型可以为基于用于训练的用户输入数据的意图和实体及其对应回复数据对预设机器学习模型进行训练得到的,该预设机器学习模型可以为LSTM模型等深度学习模型。
[0140] 在一些实施例,所述对话处理模型基于由至少一组历史对话数据分别转换得到的至少一组训练数据训练得到的;对于每组所述训练数据,由所述历史对话数据中每条历史用户输入数据的意图和实体组成的训练向量为所述训练数据中的训练样本,所述历史对话数据中的历史回复数据为所述训练样本对应的结果标签。
[0141] 在一些实施例,所述至少一条用户输入数据包括属于同一轮对话流中的当前用户输入数据和至少一条历史用户输入数据。
[0142] 在一些实施例,处理器51执行所述提取所述至少一条用户输入数据的意图和实体,包括:分别提取每条所述用户输入数据的意图和实体,并由每条用户输入数据的意图和实体形成特征数据;处理器51执行所述将所述意图和实体输入至对话处理模型中处理,包括:将所述特征数据输入至对话处理模型中处理。
[0143] 在一些实施例,处理器51执行所述由每条用户输入数据的意图和实体形成特征数据,包括:基于每条所述用户输入数据的意图和实体形成一特征向量,并由每条所述用户输入数据对应得到的特征向量组成所述特征数据。
[0144] 其中,所述特征向量可以为one-hot向量。
[0145] 在一些实施例,在执行所述将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据之前,处理器51还用于:若所述用户输入数据中的当前用户输入数据为用户首次输入的数据,则识别出所述用户输入数据的意图,并从若干个针对不同场景的对话处理模型中选择出与所述意图匹配的对话处理模型,以作为对所述用户输入数据进行处理的对话处理模型;若所述用户输入数据中的当前用户输入数据不为用户首次输入的数据,则选择对用户前次输入的用户输入数据进行回复时所采用的对话处理模型,以作为对所述用户输入数据进行处理的对话处理模型。
[0146] 在一些实施例,处理器51执行所述将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据,包括:将所述意图和实体输入至对话处理模型中处理,得到至少一条预测回复数据及所述预测回复数据的匹配评估结果;选择所述匹配评估结果符合预设要求的所述预测回复数据作为与所述用户输入数据匹配的回复数据。
[0147] 其中,所述匹配评估结果可以为所述预测回复数据的概率,所述预设要求为所述预测回复数据的概率大于预设阈值。
[0148] 在一些实施例,处理器51执行所述将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据时,还可包括:若所述至少一条预测回复数据均不符合所述预设要求,则保存所述对话处理模型的处理记录,并从若干个针对不同场景的对话处理模型中,重新选择与所述用户输入数据的意图匹配的其他对话处理模型,并将所述意图和实体输入至所述重新选择的对话处理模型中处理,以得到与所述用户输入数据匹配的回复数据。
[0149] 第二方面:电子设备50能够用于模型训练,即该电子设备50可作为对话处理模型的训练设备。
[0150] 具体地,处理器52用于通过通信电路53、读取存储器51或其他方式获取至少一组历史对话数据;获取至少一组历史对话数据,其中,每组所述历史对话数据包括至少一条历史用户输入数据;基于所述历史用户输入数据的意图和实体得到训练数据;利用所述训练数据对预设机器学习模型进行训练,建立初始模型;将测试用户输入数据输入到所述初始模型中,得到测试回复数据;利用所述预测回复构建损失函数,通过所述损失函数确定是否对所述初始模型进行再训练,并将训练完成的模型确定为所述对话处理模型。其中,该预设机器学习模型具体可以为LSTM模型等深度学习模型,或为强化学习模型等。
[0151] 在一些实施例,每组所述历史对话数据中包含的历史用户输入数据的条数可决定于所述预设机器学习模型的隐藏节点数,例如,每组所述历史对话数据中包含的历史用户输入数据的条数等于所述预设机器学习模型的隐藏节点数;
[0152] 在一些实施例,每组所述历史对话数据还包括历史回复数据;处理器52执行所述基于所述历史用户输入数据的意图和实体得到训练数据,可包括:基于每组所述历史对话数据中的所述历史用户输入数据的意图和实体形成一组训练向量,将所述一组训练向量作为训练样本,且基于所述历史对话数据中的历史回复数据得到所述训练样本对应的结果标签;由每组所述训练样本及对应的结果标签组成一组所述训练数据。
[0153] 例如,每组所述训练向量包括至少一个训练向量;处理器52执行所述基于每组所述历史对话数据中的所述历史用户输入数据的意图和实体形成一组训练向量,可包括:对于每条历史用户输入数据,提取所述历史输入数据的意图和实体,并由所述提取的意图和实体分别对应的编码信息组成一个所述训练向量。
[0154] 在一些实施例,处理器52执行所述获取至少一组历史对话数据,包括:接收至少一个用户输入的至少一组对话数据;和/或,获取所述电子设备与用户进行交互时产生历史对话数据。
[0155] 请参阅图6,本申请还提供一种存储装置的实施例。本实施例中,该存储装置60存储有处理器可运行的程序指令61,该程序指令61用于执行上述任意实施例中的方法或其组合。
[0156] 该存储装置60具体可以为U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
[0157] 在一些实施例中,存储装置60还可以为如图5所示的存储器。
[0158] 请参阅图7,图7是本申请对话处理装置一实施例的结构示意图。本实施例中,该对话处理装置包括获取模块71、提取模块74、处理模块72和反馈模块73。
[0159] 获取模块71用于获取用户输入数据。
[0160] 提取模块74用于提取所述至少一条用户输入数据的意图和实体。
[0161] 处理模块72用于将所述意图和实体输入至对话处理模型中处理,得到与所述用户输入数据匹配的回复数据。
[0162] 反馈模块73用于将所述回复数据反馈给用户。
[0163] 在一些实施例,所述对话处理模型为基于用于训练的用户输入数据的意图和实体及其对应回复数据对预设机器学习模型训练得到的。所述预设机器学习模型可以为LSTM模型等深度学习模型。
[0164] 在一些实施例,所述对话处理模型基于由至少一组历史对话数据分别转换得到的至少一组训练数据训练得到的;对于每组所述训练数据,由所述历史对话数据中每条历史用户输入数据的意图和实体组成的训练向量为所述训练数据中的训练样本,所述历史对话数据中的历史回复数据为所述训练样本对应的结果标签。
[0165] 在一些实施例,所述至少一条用户输入数据包括属于同一轮对话流中的当前用户输入数据和至少一条历史用户输入数据。
[0166] 在一些实施例,提取模块74具体用于:分别提取每条所述用户输入数据的意图和实体,并由每条用户输入数据的意图和实体形成特征数据。处理模块72具体用于将所述特征数据输入至对话处理模型中处理。
[0167] 在一些实施例,提取模块74具体用于基于每条所述用户输入数据的意图和实体形成一特征向量,并由每条所述用户输入数据对应得到的特征向量组成所述特征数据。
[0168] 其中,所述特征向量可以为one-hot向量。
[0169] 在一些实施例,对话处理装置还包括选择模块,用于:若所述用户输入数据中的当前用户输入数据为用户首次输入的数据,则识别出所述用户输入数据的意图,并从若干个针对不同场景的对话处理模型中选择出与所述意图匹配的对话处理模型,以作为对所述用户输入数据进行处理的对话处理模型;若所述用户输入数据中的当前用户输入数据不为用户首次输入的数据,则选择对用户前次输入的用户输入数据进行回复时所采用的对话处理模型,以作为对所述用户输入数据进行处理的对话处理模型。
[0170] 在一些实施例,处理模块72包括:处理单元,用于将所述意图和实体输入至对话处理模型中处理,得到至少一条预测回复数据及所述预测回复数据的匹配评估结果;匹配单元,用于选择所述匹配评估结果符合预设要求的所述预测回复数据作为与所述用户输入数据匹配的回复数据。
[0171] 其中,所述匹配评估结果可以为所述预测回复数据的概率,所述预设要求为所述预测回复数据的概率大于预设阈值。
[0172] 在一些实施例,处理模块72还包括:重选择单元,用于若所述至少一条预测回复数据均不符合所述预设要求,则保存所述对话处理模型的处理记录,并从若干个针对不同场景的对话处理模型中,重新选择与所述用户输入数据的意图匹配的其他对话处理模型,并将所述意图和实体输入至所述重新选择的对话处理模型中处理,以得到与所述用户输入数据匹配的回复数据。
[0173] 其中,上述对话处理装置各模块具体描述可参阅上述对话处理方法实施例的相关步骤描述。
[0174] 请参阅图8,图8是本申请对话处理模型的训练装置一实施例的结构示意图。本实施例中,该训练装置包括获取模块81、得到模块82、第一训练模块83、测试模块84和第二训练模块85。
[0175] 获取模块81用于获取至少一组历史对话数据;
[0176] 得到模块82用于基于所述历史用户输入数据的意图和实体得到训练数据;
[0177] 第一训练模块83用于利用所述训练数据对预设机器学习模型进行训练,建立初始模型;其中,所述预设机器学习模型具体可以为LSTM模型等深度学习模型,或为强化学习模型等;
[0178] 测试模块84用于将测试用户输入数据输入到所述初始模型中,得到测试回复数据;
[0179] 第二训练模块85用于利用所述预测回复构建损失函数,通过所述损失函数确定是否对所述初始模型进行再训练,并将训练完成的模型确定为所述对话处理模型。
[0180] 在一些实施例,每组所述历史对话数据中包含的历史用户输入数据的条数可决定于所述预设机器学习模型的隐藏节点数,例如,每组所述历史对话数据中包含的历史用户输入数据的条数等于所述预设机器学习模型的隐藏节点数;
[0181] 在一些实施例,每组所述历史对话数据还包括历史回复数据;得到模块82可包括:形成单元,用于基于每组所述历史对话数据中的所述历史用户输入数据的意图和实体形成一组训练向量,将所述一组训练向量作为训练样本,且基于所述历史对话数据中的历史回复数据得到所述训练样本对应的结果标签;组成单元,用于由每组所述训练样本及对应的结果标签组成一组所述训练数据。
[0182] 例如,每组所述训练向量包括至少一个训练向量;形成单元可具体用于:对于每条历史用户输入数据,提取所述历史输入数据的意图和实体,并由所述提取的意图和实体分别对应的编码信息组成一个所述训练向量。
[0183] 在一些实施例,获取模块81具体用于:接收至少一个用户输入的至少一组对话数据;和/或,获取所述电子设备与用户进行交互时产生历史对话数据。
[0184] 其中,上述模型训练装置各模块具体描述可参阅上述模型训练方法实施例的相关步骤描述。
[0185] 可以理解的是,上述装置的各模块可以为不同程序模块或者不同硬件电路部分。
[0186] 上述方案中,通过将用户输入数据的意图和实体输入至对话处理模型进行对话处理,以得到匹配的回复数据,由此可实现设备与用户之间的智能交互,且基于用户输入数据的意图和实体实现该对话处理,能够提高设备对用户输入数据内容的意图识别,进而可得到准确率更高的回复数据,故提高设备与用户交互的准确性。进一步地,该对话处理模型可基于用于训练的的用户输入数据的意图和实体对机器学习模型进行训练得到的,相比于现有基于设定规则的有限状态机实现对话处理,能够提高设备与用户交互的灵活性。进一步地,可采用历史对话数据对预设深度学习模型进行训练即可得到对话处理模型,即只需选取正确流程的部分历史对话数据即可训练出该对话流程的模型,简化了对话流程配置。
[0187] 在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0188] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0189] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0190] 集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。