人机对话与策略生成方法、设备、系统及存储介质与流程

文档序号:15932242发布日期:2018-11-14 01:49阅读:201来源:国知局

本申请涉及人工智能技术领域,尤其涉及一种人机对话与策略生成方法、设备、系统及存储介质。

背景技术

随着人工智能的发展,出现了人机对话系统,人机对话系统是一种可以和人进行连贯对话的计算机系统。人机对话系统主要包括五个功能部分:语音识别、语言理解、对话管理、语言生成和语音合成。对话管理是人机对话系统的核心功能,其控制着用户和系统的整个对话过程,决定着系统的所有动作,因此对话管理的设计完善程度关系着整个人机对话系统的性能。

在现有技术中,相对简单的人机对话系统一般采用有限状态机实现对话管理,即通过有限状态机表示对话场景中的对话状态以及在这些对话状态之间的转移和动作等行为。结合有限状态机的特点,在使用有限状态机实现对话管理时,可灵活扩展对话状态,但是随着对话任务复杂度的增加,构建有限状态机的难度就越大,这导致有限状态机在复杂对话任务中的应用相对较少。



技术实现要素:

本申请的多个方面提供一种人机对话与策略生成方法、设备、系统及存储介质,用以降低有限状态机在对话场景中的实现难度,提高有限状态机在对话场景中的使用率。

本申请实施例提供一种对话管理策略生成方法,包括:

基于对对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值;

对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对;

根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态;

根据所述多个对话状态和所述多组槽-值对构建有限状态机模型,以利用有限状态机的形式对所述对话场景中的人机对话过程进行对话管理。

本申请实施例还提供一种人机对话方法,包括:

获取对话场景中的人机对话数据;

根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;

根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;

根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

本申请实施例还提供一种人机对话设备,包括:存储器和处理器;

存储器,用于存储计算机程序;

所述处理器,用于执行所述计算机程序,以用于:

基于对对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值;

对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对;

根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态;

根据所述多个对话状态和所述多组槽-值对构建有限状态机模型,以利用有限状态机的形式对所述对话场景中的人机对话过程进行对话管理。

本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:

基于对对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值;

对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对;

根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态;

根据所述多个对话状态和所述多组槽-值对构建有限状态机模型,以利用有限状态机的形式对所述对话场景中的人机对话过程进行对话管理。

本申请实施例还提供一种人机对话设备,包括:存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,用于执行所述计算机程序,以用于:

获取对话场景中的人机对话数据;

根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;

根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;

根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

本申请实施例还提供一种存储计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:

获取对话场景中的人机对话数据;

根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;

根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;

根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

本申请实施例还提供一种人机对话系统,包括:服务器和终端设备;

所述终端设备,用于接收对话场景中用户输入的人机对话数据,将所述人机对话数据发送给所述服务器,以及接收所述服务器返回的所述人机对话数据对应的应答数据并输出给所述用户;

所述服务器,用于接收所述终端设备发送的人机对话数据,根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;根据所述下一对话状态的相关数据,向所述终端设备返回所述人机对话数据的应答数据。

在本申请实施例中,将槽填充与有限状态机相结合,首先以槽填充的形式生成对话场景中具有对话意义的多组槽-值对以及多组槽-值对对应的对话状态,然后基于多组槽-值对和对应的对话状态构建有限状态机模型,在该过程中,利用槽填充实现灵活、简单等优势,可简化对话场景中对话状态的实现,进而可降低有限状态机模型的构建难度,使得最终可以以有限状态机的形式进行对话管理,有利于在各种对话场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一示例性实施例提供的一种人机对话系统的结构示意图;

图2为本申请一示例性实施例提供的一种有限状态机的状态图;

图3为本申请另一示例性实施例提供的一种对话管理策略生成方法的流程示意图;

图4为本申请又一示例性实施例提供的一种人机对话方法的流程示意图;

图5a为本申请又一示例性实施例提供的应用场景1对应的一种家庭陪护机器人聊天系统的结构示意图;

图5b为本申请又一示例性实施例提供的适用于各应用场景的人机对话处理过程的简化示意图;

图5c为本申请又一示例性实施例提供的应用场景1对应的另一种家庭陪护机器人聊天系统的结构示意图;

图5d为本申请又一示例性实施例提供的应用场景2对应的一种银行自助业务系统的结构示意图;

图5e为本申请又一示例性实施例提供的应用场景3对应的一种网络订票系统的结构示意图;

图6a为本申请又一示例性实施例提供的一种对话管理策略生成装置的结构示意图;

图6b为本申请又一示例性实施例提供的一种人机对话设备的结构示意图;

图7a为本申请又一示例性实施例提供的一种人机对话装置的结构示意图;

图7b为本申请又一示例性实施例提供的另一种人机对话设备的结构示意图。

具体实施方式

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

针对现有在对话场景中使用有限状态机进行对话管理所面临问题,在本申请一些实施例中,将槽填充与有限状态机相结合,首先以槽填充的形式生成对话场景中具有对话意义的多组槽-值对以及多组槽-值对对应的对话状态,然后基于多组槽-值对和对应的对话状态构建有限状态机模型,在该过程中,利用槽填充实现灵活、简单等优势,可简化对话场景中对话状态的实现,进而可降低有限状态机模型的构建难度,使得最终可以以有限状态机的形式进行对话管理,有利于在各种对话场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请一示例性实施例提供的一种人机对话系统的结构示意图。如图1所示,该人机对话系统10包括:服务器10a和终端设备10b。图1中所呈现的服务器10a和终端设备10b只是示例性说明,并不对二者的实现形式做限定。

在本实施例中,服务器10a和终端设备10b之间可以是有线或无线网络连接。可选地,服务器10a可以通过移动网络和终端设备10b通信连接,相应地,移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g+(lte+)、wimax等中的任意一种。可选地,服务器10a也可以通过蓝牙、wifi、红外线、互联网等方式和终端设备10b通信连接。

在本实施例中,服务器10a主要负责人机对话过程中的语音识别、语言理解、对话管理、语言生成、语音合成等功能,并配合终端设备10b实现人机对话。服务器10a可以是一台,也可以是多台。本实施例并不限定服务器10a的实现形式。例如,在一些可选实施方式中,服务器10a可以是常规服务器、云服务器、云主机、虚拟中心等服务器设备。其中,服务器10a设备的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。

在本实施例中,终端设备10b是指面向用户的,并可与用户进行语音交互的电子设备。在一些可选实施例中,终端设备10b可以是安装有各种语音交互类应用软件的智能手机、平板电脑、个人电脑、穿戴设备、智能音响等。在另一些可选实施例中,终端设备10b可以是各类语音交互式自助终端、自助服务机,例如医院的自助挂号/缴费机,银行的自助取款机,地铁、车站或机场等场景中的自动取票机等。在又一些应用场景中,终端设备10b可以是一些支持语音交互的智能机器,例如可以是支持语音交互的家庭陪护类机器人、聊天机器人、扫地机器人、导航/跟随机器人、提供点餐服务的机器人等。

不论终端设备10b的物理形态如何,一般来说,终端设备10b通常包括至少一个处理单元和至少一个存储器。处理单元和存储器的数量取决于终端设备10b的配置和类型。存储器可以包括易失性的,例如ram,也可以包括非易失性的,例如只读存储器(read-onlymemory,rom)、闪存等,或者也可以同时包括两种类型的。存储器内通常存储有操作系统(operatingsystem,os)、一个或多个应用软件,例如语音交互类软件,也可以存储有程序数据等。除了处理单元和存储器之外,一些终端设备10b也会包括网卡芯片、io总线、音视频组件等基本配置。可选地,根据终端设备10b的实现形式,终端设备10b也可以包括一些外围设备,例如键盘、鼠标、输入笔、打印机等。这些外围设备在本领域中是众所周知的,在此不做赘述。

在本实施例中,服务器10a和终端设备10b可部署到各种对话场景中,负责完成相应场景中的人机对话过程。例如,服务器10a和终端设备10b可部署到医院场景中,负责实现语音自助挂号过程中的人机对话过程。又例如,服务器10a和终端设备10b可部署到车站、地铁或机场等场景中,负责实现语音自助订票过程中的人机对话过程。又例如,服务器10a和终端设备10b可部署到银行场景中,负责实现语音自助取款过程中的人机对话过程。

无论是在何种对话场景中,基于服务器10a和终端设备10b实现的人机对话的大致过程如下:

用户可以采用自然语言与终端设备10b进行交互,以向终端设备10b表达自己的需求或意图。例如,用户可以向终端设备10b输入“我要取款2000”、“我要订去上海的火车票”、“我要挂儿科王大夫的号”等人机对话数据。其中,人机对话数据可以是用户以自然语言方式输入的语音数据,也可以是文本数据等非语音数据。终端设备10b接收该对话场景中用户输入的人机对话数据,将该人机对话数据发送给服务器10a。服务器10a接收终端设备10b发送的人机对话数据,识别该人机对话数据对应的用户意图,给出与该用户意图对应的应答数据,并将该应答数据返回给终端设备10b。终端设备10b接收服务器10a返回的应答数据,将应答数据输出给用户,至此完成一轮人机对话过程。

可选地,若上述人机对话数据为语音数据,则服务器10a具体可以针对该人机对话数据进行语音识别、语言理解、对话管理、语言生成和语音合成等一系列处理,最终获得该人机对话数据对应的应答数据。其中,语音识别(asr)是指将用户输入的原始语音数据转换为文本数据的过程。语言理解是指将识别出来的文本数据转换为机器可以理解的语义表示的过程。对话管理是指基于对话状态判断应该采取什么动作,给出何种答复数据的过程,简单理解,就是服务器10a需要从语言理解出的语义表示中确定自己应该表达什么意思。语言生成是指将服务器10a需要表达的意思转变成文本数据的过程。语音合成是指将文本数据转换为语音数据的过程。

值得说明的是,若用户输入的人机对话数据是文本数据,则无需进行语音识别。可选地,也可以不进行语音合成。也就是说,语音识别和语音合成是人机对话处理过程中的两个可选操作。

在上述语音识别、语言理解、对话管理、语言生成和语音合成等操作中,对话管理是人机对话系统的核心功能,其控制着用户和人机对话系统10的整个对话过程,决定着人机对话系统10的所有动作,对话管理的设计完善程度关系着整个人机对话系统10的性能。故在本实施例中,重点关注对话管理的实现过程。关于语音识别、语言理解、语言生成和语音合成,服务器10a可以采用各种技术实现,本实施例并不对此做限定。

在本实施例中,服务器10a采用有限状态机实现对话管理,即通过有限状态机来表示对话场景中的对话状态并管理这些对话状态之间的转移和动作等行为。本实施例中的对话场景可能比较简单,也可能比较复杂。如果对话场景比较复杂,例如对话轮次比较多,又或者对话状态比较多,那么采用现有方式构建有限状态机的实现难度会比较大,限制有限状态机的使用。

为了解决有限状态机实现难度较大的问题,在本实施例中,在有限状态机的构建过程中结合槽填充,利用槽填充生成对话场景中具有对话意义的多组槽-值对以及多组槽-值对对应的对话状态,利用槽填充实现灵活、简单等优势,简化对话场景中对话状态的实现,进而可降低有限状态机模型的构建难度。其中,结合槽填充的有限状态机构建过程如下:

首先,基于对对话场景的语义理解,以槽填充的形式确定适用于对话场景的多个语义槽(slot)和多个语义槽对应的候选槽值(value)。语义槽是指将文本数据解析为可被机器理解的语义表示的表达方式。候选槽值是指语义槽可能的取值,每个语义槽可能对应多个不同的候选槽值。

其中,根据对话场景的不同,语义槽和语义槽对应的候选槽值也会有所不同。例如,以“订航班”场景为例,语义槽可以包括“出发城市”、“出发时间”、“目的城市”等,以及语义槽“出发城市”对应的候选槽值可以包括“北京”、“上海”等,语义槽“出发时间”对应的候选槽值可以包括“上午八点”、“下午两点”等,语义槽“目的城市”对应的候选槽值可以包括“哈尔滨”、“武汉”、“深圳”等。又例如,以“取款”场景为例,语义槽可以包括“取款”、“金额”、“介质”等,以及语义槽“取款”对应的候选槽值可以包括“null”、“确认”、“取消”等,语义槽“金额”对应的候选槽值可以包括“两万以下”、“两万以上五万以下”、“五万以上”等,语义槽“介质”对应的候选槽值可以包括“银行卡”、“存折”等。

由于每个语义槽对应的候选槽值可能为多个,将多个语义槽对应的候选槽值进行组合,可以获得具有对话意义的多组槽-值对。其中,一个语义槽与其对应的一个候选槽值可形成一个槽-值对(slot-valuepair)。每组包括多个语义槽各自对应的一个槽-值对,且不同组中的槽-值对中的候选槽值不完全相同。为了便于理解各组槽-值对中“组”的概念,以“取款”场景中的语义槽和候选槽值为例进行说明。假设“取款”场景中的语义槽包括“取款”、“金额”、“介质”,语义槽“取款”对应的候选槽值包括“null”和“确认”,语义槽“金额”对应的候选槽值包括“两万以下”和“两万以上”,语义槽“介质”对应的候选槽值可以包括“银行卡”和“存折”,则对这些语义槽对应的候选槽值进行组合,可得到如下表1所示的具有对话意义的多组槽-值对。

表1

在上述表1中,“取款”、“金额”、“介质”三列对应的每一行表示一组槽-值对。结合表1可知,不同组内的候选槽值不完全相同。而且,从表1中可以看出,每一组槽-值对中的语义槽和语义槽的候选曹植组合起来可以表示明确的语义,且不同组所表达的语义也不同。

基于上述,可根据多组槽-值对各自表示的语义,生成每组槽-值对对应的对话状态,从而获得多个对话状态,且多个对话状态与多组槽-值对之间具有对应关系。如表1所示,最后一列表示各组槽-值对对应的对话状态。由表1可知,对话状态也就是其所对应一组槽-值对所体现的语义的表现形式。

在获得对话场景中的多个对话状态和多组槽-值对之后,可以根据多个对话状态和多组槽-值对构建有限状态机模型,以便利用有限状态机的形式对对话场景中的人机对话过程进行对话管理。这里的有限状态机模型主要用于描述多个对话状态以及多个对话状态之间的转移、转移条件、对应的动作等信息。可选地,有限状态机模型可以是一种静态描述文档,例如可以是有限状态机的配置文件,但不限于此。当然,该有限状态机模型也可以采用其它形式实现形式。

在本实施例中,利用槽填充的方式为有限状态机生成需要管理的对话状态,利用槽填充实现灵活、简单等优势,简化了对话场景中对话状态的实现,进而可降低有限状态机模型的构建难度,便于在各种话场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理。

在一些可选实施方式中,服务器10a将多个对话状态映射为有限状态机模型中的多个状态节点;在多个状态节点中任意两个状态节点之间添加双向边;以及根据任意两个状态节点对应的两组槽-值对之间的差异,生成任意两个状态节点之间转移时的转移条件,以构建有限状态机模型。

可选地,可以通过状态图直观地表示有限状态机模型对应的有限状态机。则以表1所示“取款”场景为例,一种有限状态机模型对应的状态图如图2所示。在图2中,以对话状态由“取款2万以下”转移至“银行卡取款2万以下”为例,则在“取款2万以下至(to)银行卡取款2万以下”的条件下,并且满足“介质”为“银行卡”时会进行对话状态的转移。

进一步,当需要扩展对话状态时,可以生成新的对话状态以及该对话状态对应的一组槽-值对。然后,在有限状态机模型中添加新的状态节点,并在新的状态节点与每个已有状态节点之间添加双向边,并根据新的状态节点与每个已有状态节点对应的两组槽-值对之间的差异,生成新的状态节点与每个已有状态节点之间转移时的转移条件,从而实现对话状态的扩展。

结合图2,在“银行卡取款2万以下”这一对话状态下,若服务器10a针对上一轮对话给出的应答数据为“请到atm自助取款”,此时,用户说“可以去柜台办理吗?”,这是图2中不存在的对话状态。如果采用槽填充方式进行对话管理,这种情况很难再定义某个语义槽,而本申请实施例采用有限状态机进行对话管理,可以在有限状态机模型中增加一个“柜台办理”的对话状态,并适应性地定义触发条件以及相应语料即可。由此可见,基于有限状态机可以灵活地扩展对话状态,而在使用时也只需更新一下有限状态机模型即可。

进一步,在获得有限状态机模型以后,基于该有限状态机模型,服务器10a可以利用有限状态机的形式对对话场景中各个人机对话过程进行对话管理。服务器10a在利用有限状态机的形式对对话场景中的人机对话过程进行对话管理之前,需要对人机对话过程中的人机对话数据进行语言理解,以转换成可被机器识别的语义表示。语言理解一般依赖于对话场景中的语料库。

为了便于服务器10a能够正确地对人机对话数据进行语言理解,本实施例进一步结合槽填充形式形成对话场景中的语料库,以便于对人机对话过程汇总的人机对话数据进行语言理解,为有限状态机提供所需的输入信息。

在本实施例中,基于对话场景中的各槽-值对对应的语料构建语料库。在本实施例中,不仅要获取各槽-值对对应的填槽语料,还需要为各槽-值对增加取消槽语料。这些槽-值对对应的填槽语料和取消槽语料可形成该对话场景的语料库。其中,填槽语料是符合槽-值对要求的,具有肯定意义的语料;而取消槽语料是不符合槽-值对要求的,具有否定意义的语料。传统的槽填充方案只有填槽语料,不具有取消槽语料,在本实施例中,增加取消槽语料,可以使各对话状态之间可以互相转移,从而形成一个全连接的有限状态机模型。

以表1所述“取款”场景为例,该对话场景中各槽-值对以及各槽-值对对应的填槽语料和取消槽语料,如下表2所示:

表2

在表2中,仅是示例性给出了填槽语料和取消槽语料,本领域技术人员可以理解填槽语料和取消槽语料并不限于表2所示。

在本实施例中,从槽-值对的维度管理对话场景中的语料,而不是从各对话状态之间的转移关系来管理对话场景中的语料,语料的管理维度相对少很多,管理上更加简答、易于实现,有利于进一步简化对话管理,降低对话管理的实现成本。

在上述语料库和有限状态机模型的基础上,服务器10a和终端设备10b相配合可以采用有限状态机的形式对人机对话过程进行对话管理。基于有限状态机的人机对话过程如下:

用户向终端设备10b输入人机对话数据。终端设备10b接收用户输入的人机对话数据,将该人机对话数据发送给服务器10a。

服务器10a接收终端设备10b发送的人机对话数据。若该人机对话数据是语音数据,服务器10a通过语音识别技术将该人机对话数据由语音类型转换为文本类型,然后基于对话场景中的语料库,即该对话场景中各槽-值对对应的填槽语料和取消槽语料对该文本类型的人机对话数据进行语言理解,从中获取可触发有限状态机进行对话状态转移的输入信息。若该人机对话数据是文本数据,服务器10a可直接基于对话场景中的语料库,即该对话场景中各槽-值对对应的填槽语料和取消槽语料对该人机对话数据进行语言理解,从中获取可触发有限状态机进行对话状态转移的输入信息。

例如,结合图2所示状态图以及表2所示填槽语料和取消槽语料,假设在“取款2万以下”这一对话状态下,若用户说“三百/一千/…”等语句时,服务器10a会识别到“介质”为“银行卡”,从而获得可触发有限状态机从“取款2万以下”这一对话状态转移到“银行卡取款2万以下”这一对话状态的输入信息。又假设在“取款2万以下”这一对话状态下,若用户说“金额错了/说错了/…”等语句时,服务器10a会识别到“金额”被重置,从而获得可触发有限状态机从“取款2万以下”这一对话状态转移到“取款”这一对话状态的输入信息。其中,语言理解过程可以采用关键词、正则表达式、分类器等方法实现。

在一些可选实施方式中,为了便于基于对话场景中的语料库更加快速、便捷地对人机对话数据进行语言理解。可以预先根据语料库中各槽-值对对应的填槽语料和取消槽语料训练语言理解模型,该语言理解模型用于从人机对话过程中的人机对话数据中获取有限状态机所需的输入信息。

在一种实施方式中,可以根据语料库中各槽-值对对应的填槽语料和取消槽语料训练第一语言理解模型。第一语言理解模型用于提取人机对话数据包含的槽-值对,所提取的槽-值对可作为上述输入信息。相应地,服务器10a可以根基人机对话数据运行第一语言理解模型,从而获得人机对话数据包含的槽-值对作为有限状态机所需的输入信息。在该实施方式中,有限状态机需要将输入信息转换为可识别的转移条件。

在另一种实施方式中,可以根据语料库中各槽-值对对应的填槽语料和取消槽语料以及多组槽-值对与多个对话状态之间的对应关系训练第二语言理解模型。第二语言理解模型用于从人机对话数据中获取一转移条件作为有限状态机所需的输入信息。例如,可以根据多组槽-值对与多个对话状态之间的对应关系,建立各槽-值对对应的填槽语料和取消槽语料与有限状态机中的转移条件之间的对应关系,根据该对应关系进行模型训练,这样可以获得能够直接从人机对话数据中获取有限状态机所需的转移条件的第二语言理解模型。相应地,服务器10a可以根据人机对话数据运行第二语言理解模型,从而有限状态机中的转移条件作为有限状态机所需的输入信息。在该可选实施方式中,无需对输入信息做转换,有限状态机可直接识别。

在获得输入信息之后,服务器10a可根据该输入信息控制有限状态机从当前对话状态跳转到下一对话状态,进而根据该下一对话状态的相关数据确定人机对话数据对应的应答数据,并将该应答数据发送给终端设备10b。

可选地,下一对话状态的相关数据可以包括下一对话状态的状态描述、对应的动作等数据。这些相关数据可表达服务器10a将要进行何种应答,于是基于这些相关数据可以确定与该人机对话数据对应的应答数据。可选地,服务器10a可以从语料库中获取应答数据,或者可以自动生成应答数据。

终端设备10b可接收服务器10a返回的应答数据,将该应答数据输出给用户。可选地,终端设备10b可以通过语音方式将应答数据播放给用户,或者,也可以通过显示屏幕将应答数据显示给用户。

在本实施例中,将槽填充与有限状态机相结合,降低有限状态机模型的构建难度,使得可以以有限状态机的形式进行对话管理,有利于在各种对话场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理。

本申请实施例除了提供上述人机对话系统之外,还提供一些方法实施例。这些方法实施例分别描述了有限状态机模型的生成过程和基于有限状态机的人机对话过程。

图3为本申请另一示例性实施例提供的一种对话管理策略生成方法的流程示意图。如图3所示,该方法包括:

301、基于对对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值。

302、对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对。

303、根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态。

304、根据所述多个对话状态和所述多组槽-值对构建有限状态机模型,以利用有限状态机的形式对所述对话场景中的人机对话过程进行对话管理。

关于步骤301-304的详细描述,可参见上述系统实施例中的描述。

在本实施例中,在有限状态机的构建过程中结合槽填充,利用槽填充生成对话场景中具有对话意义的多组槽-值对以及多组槽-值对对应的对话状态,利用槽填充实现灵活、简单等优势,简化对话场景中对话状态的实现,进而可降低有限状态机模型的构建难度,便于在各种话场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理。

在一些可选实施方式中,上述步骤304的一种实施方式包括:将多个对话状态映射为有限状态机模型中的多个状态节点;在多个状态节点中任意两个状态节点之间添加双向边;以及根据任意两个状态节点对应的两组槽-值对之间的差异,生成任意两个状态节点之间转移时的转移条件,以构建有限状态机模型。

在一些可选实施方式中,在构建有限状态机模型之后,若需要扩展对话状态,则可以生成新的对话状态以及该对话状态对应的一组槽-值对;然后,在有限状态机模型中添加新的状态节点,并在新的状态节点与每个已有状态节点之间添加双向边,并根据新的状态节点与每个已有状态节点对应的两组槽-值对之间的差异,生成新的状态节点与每个已有状态节点之间转移时的转移条件,从而实现对话状态的扩展。由此可见,基于有限状态机可以灵活地扩展对话状态,而在使用时也只需更新一下有限状态机模型即可。

进一步,在获得有限状态机模型以后,基于该有限状态机模型,可以利用有限状态机的形式对对话场景中各个人机对话过程进行对话管理。在利用有限状态机的形式对对话场景中的人机对话过程进行对话管理之前,需要对人机对话过程中的人机对话数据进行语言理解,以转换成可被机器识别的语义表示。语言理解一般依赖于对话场景中的语料库。基于此,还可以获取对话场景中各槽-值对对应的填槽语料和取消槽语料,以形成语料库;根据语料库中各槽-值对对应的填槽语料和取消槽语料训练语言理解模型,该语言理解模型用于从人机对话数据中获取有限状态机所需的输入信息。

在一种实施方式中,可以根据语料库中各槽-值对对应的填槽语料和取消槽语料训练第一语言理解模型。第一语言理解模型用于提取人机对话数据包含的槽-值对,所提取的槽-值对可作为上述输入信息。在该实施方式中,有限状态机需要将输入信息转换为可识别的转移条件。

在另一种实施方式中,可以根据语料库中各槽-值对对应的填槽语料和取消槽语料以及多组槽-值对与多个对话状态之间的对应关系训练第二语言理解模型。第二语言理解模型用于从人机对话数据中获取一转移条件作为有限状态机所需的输入信息。例如,可以根据多组槽-值对与多个对话状态之间的对应关系,建立各槽-值对对应的填槽语料和取消槽语料与有限状态机中的转移条件之间的对应关系,根据该对应关系进行模型训练,这样可以获得能够直接从人机对话数据中获取有限状态机所需的转移条件的第二语言理解模型。

可选地,在采用图3所示方法构建出有限状态机模型之后,可以采用图4所示方法基于有限状态机进行人机对话。需要说明的是,图4所示人机对话过程中的有限状态机可以采用图3所示方式构建,但并不限于图3所示方式。

图4为本申请又一示例性实施例提供的一种人机对话方法的流程示意图。如图4所示,该方法包括:

401、获取对话场景中的人机对话数据。

402、根据对话场景中各槽-值对对应的填槽语料和取消槽语料,从人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息。

403、根据输入信息控制有限状态机从当前对话状态跳转到下一对话状态。

404、根据下一对话状态的相关数据,输出人机对话数据的应答数据。

在一可选实施方式中,上述步骤402的实施方式包括:

根据人机对话数据运行第一语言理解模型,以获取人机对话数据包含的槽-值对作为输入信息;或者

根据人机对话数据运行第二语言理解模型,以获得有限状态机中的转移条件作为输入信息;

其中,第一语言模型或第二语言模型是根据对话场景中各槽-值对对应的填槽语料和取消槽语料预先训练得到的。

在本实施例中,以有限状态机的形式进行对话管理,有利于在各种对话场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理。

值得说明的是,在一些应用场景中,可将图3和图4所示方法逻辑部署在图1所示人机对话系统中的服务器端,由服务器执行,但并不限于此。例如,随着终端技术的发展,终端设备的功能越来越强大,图3和图4所示方法逻辑也可以部署在终端设备端,而无需部署服务器,这有利于简化人机对话系统的实现架构。下面将结合上述两种部署实施方式以及一些具体应用场景对本申请实施例的技术方案进行示例性说明。

应用场景1:

在家庭场景中,可以配置家庭陪护机器人。家庭陪护机器人可以代替成人看护老人或孩子,可以将成人从中解放出来。家庭陪护机器人可以陪老人或孩子游戏、阅读、聊天、提醒老人吃药等。以聊天场景为例,家庭陪护机器人可以作为聊天对象,按照设定的聊天场景与用户聊天。在本实施例中,家庭陪护机器人上部署有聊天场景中负责对话状态管理的有限状态机模型,该有限状态机模型是采用上述实施例中的方法构建的。

当用户需要聊天时,可以通过语音、触控或物理按键等方式将家庭陪护机器人从休眠或待机状态唤醒,然后进入聊天过程。如图5a所示,用户可以对家庭陪护机器人50a说一句话,例如,“最近一周有新电影上映吗”。家庭陪护机器人50a接收用户输入的语音数据,然后按照图5b所示对话处理流程针对用户说的“最近有新电影上映吗”进行人机对话处理,并最终输出答案。其中,图5b所示对话处理过程包括:语音识别、语言理解、对话管理、语言生成和语音合成等几个步骤。其中,在对话管理部分中,基于预先构建的有限状态机模型,利用有限状态机的形式管理对话状态之间的转移和动作。如图5b所示,有限状态机模型中的对话状态可以包括槽填充定义的对话状态以及后期扩展的对话状态。

其中,家庭陪护机器人50a给出的答案可能是与电影相关的近期消息,例如最近上映的几部电影的信息,最近上映且比较火的几部电影的简介、主演等信息,最近上映的国外动作大片的信息,等等。或者,如果用户的问题超出了设定聊天场景的范畴,或者语料不足,家庭陪护机器人50a也可以给出“不知道”、“不清楚”等答案。

可选地,为了简化家庭陪护机器人,可以将图5b所示对话处理功能部署到一台云服务器实现。基于此,可以得到应用场景1对应的另一种人机对话系统,如图5c所示,包括:家庭陪护机器人50c和云服务器50d,在云服务器50d上部署有采用上述实施例中的方法构建出的有限状态机模型。

在图5c所示系统中,当用户需要聊天时,可以通过语音、触控或物理按键等方式将家庭陪护机器人50c从休眠或待机状态唤醒,然后进入聊天过程。陪用户聊天的过程包括:用户说一句话,例如“最近一周有新电影上映吗”。家庭陪护机器人50c可以将这句话发送至云服务器50d。云服务器50d按照图5b所示对话处理流程针对用户说的“最近一周有新电影上映吗”进行人机对话处理,并最终获得答案,例如“最近上映的国外动作大片的信息”,并将答案返回给家庭陪护机器人50c,家庭陪护机器人50c将答案播放给用户。

在有限状态机的构建过程中结合槽填充,使得基于有限状态机的对话管理方案可以应用在机器人陪护场景中,以有限状态机的形式进行对话管理,有利于在机器人陪护场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理,使得机器人陪护效果更理想,进而提高用户感受。

应用场景2:

为了方便用户办理存取款以及进行检查查询等业务,现有各银行都采用自助业务系统,如图5d所示,银行自助业务系统包括银行服务器50e和部署在很多地方的自助存取款机50f、自助查询机50g等。这些自助存取款机50f、自助查询机50g具有人机对话功能,可以与用户交互,进一步结合银行服务器50e提供的对话处理服务,可满足用户存取款、查询等业务需求。银行服务器50e上部署有在银行自助业务场景中负责对话状态管理的有限状态机模型,该有限状态机模型是采用上述实施例中的方法构建的。

在图5d所示银行自助业务系统中,用户可以向自助存取款机50f或自助查询机50g说出自己的业务需求。以取款为例,用户可以向自助存取款机50f说出取款需求,例如“取款”。自助存取款机50f将用户的取款需求“取款”发送给银行服务器50e。银行服务器50e按照图5b所示对话处理流程针对用户说的“取款”进行人机对话处理,并获得答案,例如“请问取款金额是多少”,将答案“请问取款金额是多少”返回给自助存取款机50f。自助存取款机50f将答案“请问取款金额是多少”播放给用户。

用户继续对自助存取款机50f说出取款金额,例如“取三千”;自助存取款机50f将用户的取款金额“取三千”发送给银行服务器50e,银行服务器50e继续按照图5b所示对话处理流程针对用户说的“取三千”进行人机对话处理,并获得答案,例如“请输入取款密码”,将答案“请输入取款密码”返回给自助存取款机50f。整个取款过程可以按照预先构建的有限状态机模型,依次执行,直到取款成功或取款失败。在图5d中,后续部分并未示出。

在有限状态机的构建过程中结合槽填充,使得基于有限状态机的对话管理方案可以应用在银行自助业务场景中,以有限状态机的形式进行对话管理,有利于在银行自助业务场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理,使得银行自助业务的效率更高、人机交互更流畅,有利于提高用户感受。

应用场景3:

随着互联网技术的发展,用户足不出户即可享受各种服务。以网络购票为例,若用户需要出差、旅游或家假日回家探亲,可以直接通过网络订购车票、机票等,可以极大地节省时间。

如图5e所示的网络订票系统包括:用户终端50g和客运系统的订票服务器50h;用户终端50g通过互联网与订票服务器50h建立通信连接。订票服务器50h上部署有在网络购票场景中负责对话管理的有限状态机模型,该有限状态机模型是采用上述实施例中的方法构建的。

用户需要订票时,打开用户终端50g上安装的订票软件;然后,向该订票软件提出自己的订票需求,例如“订张去上海的机票”。可选地,用户可以手动输入自己的订票需求,也可以通过语音方式说出自己的订票需求。该订票软件将用户的订票需求“订张去上海的机票”发送给订票服务器50h。订票服务器50h按照图5b所示对话处理流程针对用户的订票需求“订张去上海的机票”进行人机对话处理,并获得答案,例如“请问定几点的机票”,将答案“请问定几点的机票”返回给订票软件。订票软件将答案“请问定几点的机票”播放或显示给用户。

用户继续对订票软件说出自己的订票时间,例如“明天上午10点的”;订票软件将用户要求的订票时间“明天上午10点的”发送给订票服务器50h。订票服务器50h继续按照图5b所示对话处理流程针对用户要求的订票时间“明天上午10点的”进行人机对话处理,并获得答案,例如“请问出发地点是哪里”,将答案“请问出发地点是哪里”返回给订票软件。订票软件将答案“请问出发地点是哪里”播放或显示给用户。整个订票过程可以按照预先构建的有限状态机模型,依次执行,直到订票成功或订票失败。在图5e中,后续部分并未示出。

在有限状态机的构建过程中结合槽填充,使得基于有限状态机的对话管理方案可以应用在网络购票业务场景中,以有限状态机的形式进行对话管理,有利于在网络购票业务场景中充分发挥有限状态机的优势,实现更加简单、灵活地对话管理,使得网络购票的效率更高、人机交互更流畅,有利于提高用户感受。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤403的执行主体可以为设备a;又比如,步骤401和402的执行主体可以为设备a,步骤403的执行主体可以为设备b;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图6a为本申请又一示例性实施例提供的一种对话管理策略生成装置的结构示意图。如图6a所示,该装置包括:确定模块61、获取模块62、生成模块63和构建模块64。

确定模块61,用于基于对对话场景的语义理解,确定适用于对话场景的多个语义槽和多个语义槽对应的候选槽值;

获取模块62,用于对多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括多个语义槽各自对应的槽-值对;

生成模块63,用于根据多组槽-值各自表示的语义,生成与多组槽-值对对应的多个对话状态;

构建模块64,用于根据多个对话状态和多组槽-值对构建有限状态机模型,以利用有限状态机的形式对对话场景中的人机对话过程进行对话管理。

在一些可选实施方式中,构建模块64在构建有限状态机模型时,具体用于:将多个对话状态映射为有限状态机模型中的多个状态节点;在多个状态节点中任意两个状态节点之间添加双向边;以及根据任意两个状态节点对应的两组槽-值对之间的差异,生成任意两个状态节点之间转移时的转移条件,以构建有限状态机模型。

在一些可选实施方式中,获取模块62还用于:获取对话场景中各槽-值对对应的填槽语料和取消槽语料,以形成语料库;根据语料库中各槽-值对对应的填槽语料和取消槽语料训练语言理解模型,该语言理解模型用于从人机对话数据中获取有限状态机所需的输入信息。

进一步,获取模块62在训练语言理解模型时,具体用于:

根据语料库中各槽-值对对应的填槽语料和取消槽语料训练第一语言理解模型,第一语言理解模型用于提取人机对话数据包含的槽-值对作为输入信息;或者

根据语料库中各槽-值对对应的填槽语料和取消槽语料以及多组槽-值对与多个对话状态之间的对应关系训练第二语言理解模型,第二语言理解模型用于从人机对话数据中获取一转移条件作为输入信息。

在一些可选实施方式中,构建模块64还用于:根据新的对话状态以及新的对话状态对应的一组槽-值对,在有限状态机模型中增加新的状态节点;在新的状态节点与每个已有状态节点之间添加双向边,并根据新的状态节点与每个已有状态节点对应的两组槽-值对之间的差异,生成新的状态节点与每个已有状态节点之间转移时的转移条件。

在一些可选实施方式中,获取模块62还用于:获取所述对话场景中的人机对话数据。相应地,该对话管理策略生成装置还包括:语言理解模块、对话管理模块和语言生成模块。

语言理解模块,用于根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息。

对话管理模块,用于根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态。

语言生成模块,用于根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

进一步,对话管理策略生成装置还可以包括:语音识别模块和语音合成模块。语音识别模块,用于将人机对话数据转换为文本数据,并提供给语言理解模型。语音合成模块,用于将语言生成模块生成的应答数据转换为语音数据。

以上描述了对话管理策略生成装置的内部功能和结构,如图6b所示,实际中,该对话管理生成装置可实现为人机对话设备,包括:存储器601和处理器602。

存储器601,用于存储计算机程序,并可被配置为存储其它各种数据以支持在人机对话设备上的操作。这些数据的示例包括用于在人机对话设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器601可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

处理器602,与存储器601耦合,用于执行存储器601中的计算机程序,以用于:

基于对对话场景的语义理解,确定适用于对话场景的多个语义槽和多个语义槽对应的候选槽值;

对多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括多个语义槽各自对应的槽-值对;

根据多组槽-值各自表示的语义,生成与多组槽-值对对应的多个对话状态;

根据多个对话状态和多组槽-值对构建有限状态机模型,以利用有限状态机的形式对对话场景中的人机对话过程进行对话管理。

在一些可选实施方式中,处理器602在构建有限状态机模型时,具体用于:将多个对话状态映射为有限状态机模型中的多个状态节点;在多个状态节点中任意两个状态节点之间添加双向边;以及根据任意两个状态节点对应的两组槽-值对之间的差异,生成任意两个状态节点之间转移时的转移条件,以构建有限状态机模型。

在一些可选实施方式中,处理器602还用于:获取对话场景中各槽-值对对应的填槽语料和取消槽语料,以形成语料库;根据语料库中各槽-值对对应的填槽语料和取消槽语料训练语言理解模型,该语言理解模型用于从人机对话数据中获取有限状态机所需的输入信息。

进一步,处理器602在训练语言理解模型时,具体用于:

根据语料库中各槽-值对对应的填槽语料和取消槽语料训练第一语言理解模型,第一语言理解模型用于提取人机对话数据包含的槽-值对作为输入信息;或者

根据语料库中各槽-值对对应的填槽语料和取消槽语料以及多组槽-值对与多个对话状态之间的对应关系训练第二语言理解模型,第二语言理解模型用于从人机对话数据中获取一转移条件作为输入信息。

在一些可选实施方式中,处理器602还用于:根据新的对话状态以及新的对话状态对应的一组槽-值对,在有限状态机模型中增加新的状态节点;在新的状态节点与每个已有状态节点之间添加双向边,并根据新的状态节点与每个已有状态节点对应的两组槽-值对之间的差异,生成新的状态节点与每个已有状态节点之间转移时的转移条件。

在一些可选实施方式中,处理器602还用于:获取所述对话场景中的人机对话数据;根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

进一步,处理器602还用于:将人机对话数据转换为文本数据,以及将应答数据转换为语音数据。

进一步,如图6b所示,该人机对话设备还包括:通信组件603、电源组件604等其它组件。图6b中仅示意性给出部分组件,并不意味着人机对话设备只包括图6b所示组件。

在一些应用场景中,图6b所示人机对话设备可以是服务器,例如可以是常规服务器、云服务器、云主机、虚拟中心等服务器设备。

在另一些应用场景中,图6b所示人机对话设备可以是终端设备,例如可以是安装有各种语音交互类应用软件的智能手机、平板电脑、个人电脑、穿戴设备、智能音响等,或者可以是各类语音交互式自助终端、自助服务机,例如医院的自助挂号/缴费机,银行的自助取款机,地铁、车站或机场等场景中的自动取票机等;或者可以是支持语音交互的家庭陪护类机器人、聊天机器人、扫地机器人、导航/跟随机器人、提供点餐服务的机器人等。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当该计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:

基于对对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值;

对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对;

根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态;

根据所述多个对话状态和所述多组槽-值对构建有限状态机模型,以利用有限状态机的形式对所述对话场景中的人机对话过程进行对话管理。

除上述动作之外,一个或多个处理器还可以执行前述其它实施例中可由服务器执行的其它动作。

图7a为本申请又一示例性实施例提供的一种人机对话装置的结构示意图。如图7a所示,该装置包括:获取模块71、语言理解模块72、对话管理模块73和语言合成模块74。

获取模块71,用于获取对话场景中的人机对话数据;

语言理解模块72,用于根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;

对话管理模块73,用于根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;

语言合成模块74,用于根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

在一可选实施方式中,语言理解模块72具体用于:

根据所述人机对话数据运行第一语言理解模型,以获取所述人机对话数据包含的槽-值对作为所述输入信息;或者

根据所述人机对话数据运行第二语言理解模型,以获得所述有限状态机中的转移条件作为所述输入信息;

其中,所述第一语言模型或所述第二语言模型是根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料预先训练得到的。

在一可选实施方式中,该装置还包括:构建模块。该构建模块,用于:

基于对所述对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值;

对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对;

根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态;

根据所述多个对话状态和所述多组槽-值对构建有限状态机模型。

以上描述了人机对话装置的内部功能和结构,如图7b所示,实际中,该人机对话装置可实现为人机对话设备,包括:存储器701和处理器702。

存储器701,用于存储计算机程序,并可被配置为存储其它各种数据以支持在人机对话设备上的操作。这些数据的示例包括用于在人机对话设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器701可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

处理器702,与存储器701耦合,用于执行存储器701中的计算机程序,以用于:

获取对话场景中的人机对话数据;

根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;

根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;

根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

在一可选实施方式中,处理器702具体用于:

根据所述人机对话数据运行第一语言理解模型,以获取所述人机对话数据包含的槽-值对作为所述输入信息;或者

根据所述人机对话数据运行第二语言理解模型,以获得所述有限状态机中的转移条件作为所述输入信息;

其中,所述第一语言模型或所述第二语言模型是根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料预先训练得到的。

在一可选实施方式中,处理器702还用于:

基于对所述对话场景的语义理解,确定适用于所述对话场景的多个语义槽和所述多个语义槽对应的候选槽值;

对所述多个语义槽对应的候选槽值进行组合,以获取具有对话意义的多组槽-值对,每组包括所述多个语义槽各自对应的槽-值对;

根据所述多组槽-值各自表示的语义,生成与所述多组槽-值对对应的多个对话状态;

根据所述多个对话状态和所述多组槽-值对构建有限状态机模型。

进一步,如图7b所示,该人机对话设备还包括:通信组件703、显示器704、电源组件705、音频组件706等其它组件。图7b中仅示意性给出部分组件,并不意味着人机对话设备只包括图7b所示组件。

在一些应用场景中,图7b所示人机对话设备可以是服务器,例如可以是常规服务器、云服务器、云主机、虚拟中心等服务器设备。

在另一些应用场景中,图7b所示人机对话设备可以是终端设备,例如可以是安装有各种语音交互类应用软件的智能手机、平板电脑、个人电脑、穿戴设备、智能音响等,或者可以是各类语音交互式自助终端、自助服务机,例如医院的自助挂号/缴费机,银行的自助取款机,地铁、车站或机场等场景中的自动取票机等;或者可以是支持语音交互的家庭陪护类机器人、聊天机器人、扫地机器人、导航/跟随机器人、提供点餐服务的机器人等。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当该计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:

获取对话场景中的人机对话数据;

根据所述对话场景中各槽-值对对应的填槽语料和取消槽语料,从所述人机对话数据中获取可触发有限状态机进行对话状态转移的输入信息;

根据所述输入信息控制所述有限状态机从当前对话状态跳转到下一对话状态;

根据所述下一对话状态的相关数据,输出所述人机对话数据的应答数据。

除上述动作之外,一个或多个处理器还可以执行前述其它实施例中可由终端设备执行的其它动作。

上述图6b和图7b中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

上述图7b中的显示器包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

上述图6b和图7b中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

上述图7b中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

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

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

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

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

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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