多轮对话处理方法、装置、电子设备及存储介质与流程

文档序号:22627730发布日期:2020-10-23 19:36阅读:179来源:国知局
多轮对话处理方法、装置、电子设备及存储介质与流程

本发明涉及人工智能技术领域,尤其涉及一种多轮对话处理方法、装置、电子设备及存储介质。



背景技术:

当前自然语言理解技术已经取得了长足的进展,在单轮对话场景也就是针对用户输入的一句对话信息立即作出回应的对话场景,在单轮对话场景下,人工智能能够较准确地对用户的询问做出最优的回应输出。但是,如果用户的单轮输入之间存在某些联系,会形成多轮对话,此时,需要结合用户多次单轮输入的信息来理解用户当前输入的信息。

目前,多轮对话处理的解决方案主要有基于框架的多轮对话系统和基于fsm(有限状态机)的方法。基于框架的多轮对话系统,本质上是一个生成系统,不同类型的输入激发不同的生成规则,用户定义需要提供的信息,系统根据对话状态选择进行何种操作。基于fsm的方法,需要创建一个事件驱动表,表中包括系统当前状态、触发事件、下一个状态以及状态转移函数,这样就可以根据当前状态与触发事件从事件驱动表中检索出相应的状态转移函数与下一个状态,从而执行状态函数,进行状态转换,从而利用上一轮或者几轮的信息,沿规定好的状态转换路径行走直至获取最终对话的输出。

基于框架的多轮对话系统存在的问题是,规则的可配置性不高,缺少灵活性。基于fsm的方法,是把对话过程看成是自动机的状态转移过程,主要工作是设计自动机的状态和状态转移条件,所描述的自动机转移条件过于复杂,所以其可配置性不高,缺少灵活性,状态间的跳转比较混乱,而且其依赖领域意图信息来跳转状态,对单轮语义理解的依赖度很高。

因此,现有的多轮对话处理方法,在配置具体业务场景时,存在配置难、生效慢、灵活性差的缺点,影响用户体验。



技术实现要素:

本发明实施例提供一种多轮对话处理方法、装置、电子设备及存储介质,以解决现有的多轮对话处理方法,在配置具体业务场景时存在配置难、生效慢、灵活性差的问题。

第一方面,本发明一实施例提供了一种多轮对话处理方法,包括:

获取到对话信息和表征所述对话信息归属的标识信息后,确定所述对话信息对应的目标业务场景;

获取所述目标业务场景对应的槽位信息表,其中,所述槽位信息表中包括至少一个槽位项,所述槽位信息表中存储有基于所述目标业务场景的上一次对话信息确定出的所述槽位项对应的槽位值;

根据所述对话信息,更新所述标识信息对应的所述槽位信息表中至少一个槽位项对应的槽位值;

将更新后的所述槽位信息表中的槽位值,确定为所述对话信息的语义解析结果。

可选地,所述根据所述对话信息,更新所述标识信息对应的所述槽位信息表中至少一个槽位项对应的槽位值,包括:

基于所述标识信息对应的所述槽位信息表包含的槽位项,从所述对话信息中提取所述槽位项对应的槽位值;

若所述槽位项中已存在对应的槽位值,使用从所述对话信息中提取的槽位值替换已存在的槽位值;或者若所述槽位项中未存在对应的槽位值,将从所述对话信息中提取的槽位值存入所述槽位项中。

可选地,还包括通过以下至少一种方式获取所述槽位信息表中槽位项对应的槽位值:

对于所述槽位信息表中的任一槽位项,调用所述槽位项预先配置的接口,从第三方服务器获取所述槽位项对应的槽位值;

对于所述槽位信息表中的任一槽位项,从采集到所述对话信息的智能设备上报的信息中,获取所述槽位项对应的槽位值;

对于所述槽位信息表中的任一槽位项,控制智能设备输出问询信息,以询问所述槽位项的槽位值,根据所述智能设备采集到的回复信息,获取所述槽位项的槽位值。

可选地,所述槽位项包括必选槽位和可选槽位,所述将更新后的所述槽位信息表中的槽位值,确定为所述对话信息的语义解析结果之前,还包括:

确定所述槽位信息表中所有必选槽位项的槽位值都不为空。

可选地,还包括:

若满足所述目标业务场景对应的会话终止条件,清空所述目标业务场景对应的槽位信息表中所有槽位项的槽位值。

可选地,根据如下方式确定满足所述目标业务场景对应的会话终止条件:

若所述目标业务场景的触发间隔时长超过所述目标业务场景对应的超时时长阈值,确定满足所述目标业务场景对应的会话终止条件,所述触发间隔时长为当前时刻与所述业务场景最近一次被确定为目标业务场景时的时刻之间的差值;

若接收到会话终止指令,确定满足所述目标业务场景对应的会话终止条件。

可选地,所述确定所述对话信息对应的目标业务场景,包括:

根据预设的触发条件,将所述对话信息满足的触发条件对应的业务场景,确定为目标业务场景。

可选地,若所述对话信息满足多个业务场景的触发条件,所述根据预设的触发条件,将所述对话信息满足的触发条件对应的业务场景,确定为目标业务场景,具体包括:

从所述对话信息所满足的业务场景中,选择所满足的触发条件中优先级最高的触发条件对应的业务场景,确定为所述对话信息对应的目标业务场景;或,

从所述对话信息所满足的业务场景中,选择最近一次被确定为目标业务场景的业务场景,确定为所述对话信息对应的目标业务场景。

可选地,所述触发条件包括以下至少一种:

若所述对话信息与任一业务场景对应的第一文本相同,确定所述对话信息满足所述业务场景的第一触发条件;

计算所述对话信息与任一业务场景对应的第二文本的相似度,若所述相似度高于相似度阈值,确定所述对话信息满足所述业务场景的第二触发条件;

若所述对话信息中包含任一业务场景对应的关键词,确定所述对话信息满足所述业务场景的关键词触发条件;

若任一业务场景对应的领域信息中包含所述对话信息对应的领域信息,确定所述对话信息满足所述业务场景的领域触发条件;

若任一业务场景对应的意图信息中包含所述对话信息对应的意图信息,确定所述对话信息满足所述业务场景的意图触发条件。

可选地,所述确定所述对话信息对应的目标业务场景,包括:

根据所述对话信息对应的标识信息以及每个业务场景的生效范围,从所述标识信息所满足的生效范围对应的业务场景中,选择一个业务场景,确定为所述对话信息对应的目标业务场景。

可选地,所述生效范围包括全局生效范围、企业生效范围或设备生效范围。

可选地,所述标识信息为采集所述对话信息的智能设备的设备标识或发起所述对话信息的用户的用户标识。

第二方面,本发明一实施例提供了一种多轮对话处理装置,包括:

确定模块,用于获取到对话信息和表征所述对话信息归属的标识信息后,确定所述对话信息对应的目标业务场景;

获取模块,用于获取所述目标业务场景对应的槽位信息表,其中,所述槽位信息表中包括至少一个槽位项,所述槽位信息表中存储有基于所述目标业务场景的上一次对话信息确定出的所述槽位项对应的槽位值;

更新模块,用于根据所述对话信息,更新所述标识信息对应的所述槽位信息表中至少一个槽位项对应的槽位值;

解析模块,用于将更新后的所述槽位信息表中的槽位值,确定为所述对话信息的语义解析结果。

可选地,所述更新模块具体用于:

基于所述标识信息对应的所述槽位信息表包含的槽位项,从所述对话信息中提取所述槽位项对应的槽位值;

若所述槽位项中已存在对应的槽位值,使用从所述对话信息中提取的槽位值替换已存在的槽位值;或者若所述槽位项中未存在对应的槽位值,将从所述对话信息中提取的槽位值存入所述槽位项中。

可选地,还包括槽位值获取模块,用于通过以下至少一种方式获取所述槽位信息表中槽位项对应的槽位值:

对于所述槽位信息表中的任一槽位项,调用所述槽位项预先配置的接口,从第三方服务器获取所述槽位项对应的槽位值;

对于所述槽位信息表中的任一槽位项,从采集到所述对话信息的智能设备上报的信息中,获取所述槽位项对应的槽位值;

对于所述槽位信息表中的任一槽位项,控制智能设备输出问询信息,以询问所述槽位项的槽位值,根据所述智能设备采集到的回复信息,获取所述槽位项的槽位值。

可选地,所述槽位项包括必选槽位和可选槽位,所述解析模块具体用于:

在确定所述槽位信息表中所有必选槽位项的槽位值都不为空后,将更新后的所述槽位信息表中的槽位值,确定为所述对话信息的语义解析结果。

可选地,还包括清空模块,用于:

若满足所述目标业务场景对应的会话终止条件,清空所述目标业务场景对应的槽位信息表中所有槽位项的槽位值。

可选地,还包括终止判断模块,用于根据如下方式确定满足所述目标业务场景对应的会话终止条件:

若所述目标业务场景的触发间隔时长超过所述目标业务场景对应的超时时长阈值,确定满足所述目标业务场景对应的会话终止条件,所述触发间隔时长为当前时刻与所述业务场景最近一次被确定为目标业务场景时的时刻之间的差值;

若接收到会话终止指令,确定满足所述目标业务场景对应的会话终止条件。

可选地,所述确定模块具体用于:

根据预设的触发条件,将所述对话信息满足的触发条件对应的业务场景,确定为目标业务场景。

可选地,所述确定模块具体用于:

若所述对话信息满足多个业务场景的触发条件,从所述对话信息所满足的业务场景中,选择所满足的触发条件中优先级最高的触发条件对应的业务场景,确定为所述对话信息对应的目标业务场景;或,

若所述对话信息满足多个业务场景的触发条件,从所述对话信息所满足的业务场景中,选择最近一次被确定为目标业务场景的业务场景,确定为所述对话信息对应的目标业务场景。

可选地,所述触发条件包括以下至少一种:

若所述对话信息与任一业务场景对应的第一文本相同,确定所述对话信息满足所述业务场景的第一触发条件;

计算所述对话信息与任一业务场景对应的第二文本的相似度,若所述相似度高于相似度阈值,确定所述对话信息满足所述业务场景的第二触发条件;

若所述对话信息中包含任一业务场景对应的关键词,确定所述对话信息满足所述业务场景的关键词触发条件;

若任一业务场景对应的领域信息中包含所述对话信息对应的领域信息,确定所述对话信息满足所述业务场景的领域触发条件;

若任一业务场景对应的意图信息中包含所述对话信息对应的意图信息,确定所述对话信息满足所述业务场景的意图触发条件。

可选地,所述确定模块具体用于:

根据所述对话信息对应的标识信息以及每个业务场景的生效范围,从所述标识信息所满足的生效范围对应的业务场景中,选择一个业务场景,确定为所述对话信息对应的目标业务场景。

可选地,所述生效范围包括全局生效范围、企业生效范围或设备生效范围。

可选地,所述标识信息为采集所述对话信息的智能设备的设备标识或发起所述对话信息的用户的用户标识。

第三方面,本发明一实施例提供了一种电子设备,包括收发机、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,收发机用于在处理器的控制下接收和发送数据,处理器执行计算机程序时实现上述任一种方法的步骤。

第四方面,本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。

第五方面,本发明一实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述任一种方法的步骤。

本发明实施例提供的技术方案,采用表结构的方式为每个业务场景配置所需的槽位项,得到每个业务场景对应的槽位信息表;在进行多轮对话的过程中,通过用户输入的对话信息,确定本轮对话对应的业务场景,然后,根据对话信息更新该业务场景对应的槽位信息表中槽位项的槽位值,该槽位信息表可存储基于多轮对话提取到的槽位值,从而基于多轮对话提取到的槽位值,确定出对话信息对应的语义解析结果。基于表结构的槽位填充方式,能够充分融合从多轮历史对话信息中获取的槽位值,从而高效地恢复多轮对话场景,理解用户的真正意图,获得准确的语义解析结果,从而输出用户实际需求或者满意的回应,且基于表结构的槽位配置方式简单、灵活、高效,具备很强的可操作性。

附图说明

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

图1为本发明实施例提供的多轮对话处理方法的应用场景示意图;

图2为本发明一实施例提供的多轮对话处理方法的流程示意图;

图3为本发明一实施例提供的多轮对话处理装置的结构示意图;

图4为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了方便理解,下面对本发明实施例中涉及的名词进行解释:

lru(leastrecentlyused),即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的。对于虚拟页式存储,内外存信息的替换是以页面为单位进行的——当需要一个放在外存的页面时,把它调入内存,同时为了保持原有空间的大小,还要把一个内存中的页面调出至外存,在每次调换时,lru算法找到最近最久未使用的那个页面调出内存。

redis是一个高性能key-value存储系统。和memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。

槽位(slot),是多轮对话过程中将初步用户意图转化为明确用户指令所需要补全的信息。一个槽位与一件事情的处理中所需要获取的一种信息相对应。例如,要想执行查看天气的动作,需要知道地点、时间这些必要的元素,这些必要元素就是槽位。

领域(domain),是包含一系列的相关的意图和词槽组成的语义理解场景。

意图(intent),是通过用户的交互输入识别出的用户所要表达的目的。

附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

在具体实践过程中,基于框架的多轮对话系统存在的问题是,规则的可配置性不高,缺少灵活性。基于fsm的方法,是把对话过程看成是自动机的状态转移过程,主要工作是设计自动机的状态和状态转移条件,所描述的自动机转移条件过于复杂,所以其可配置性不高,缺少灵活性,状态间的跳转比较混乱,而且其依赖领域意图信息来跳转状态,对单轮语义理解的依赖度很高。因此,现有的多轮对话处理方法,在配置具体业务场景时,存在配置难、生效慢、灵活性差的缺点,影响用户体验。

为此,本发明的发明人考虑到,采用表结构的方式为每个业务场景配置所需的槽位项,得到每个业务场景对应的槽位信息表;在进行多轮对话的过程中,通过用户输入的对话信息,确定本轮对话对应的业务场景,然后,根据对话信息更新该业务场景对应的槽位信息表中槽位项的槽位值,该槽位信息表可存储基于多轮对话提取到的槽位值,从而基于多轮对话提取到的槽位值,确定出对话信息对应的语义解析结果。基于表结构的槽位填充方式,能够充分融合从多轮对话中提取的零散信息,从而提高语义解析结果的准确度,以理解用户的真正意图,从而输出用户实际需求或者满意的回应,且基于表结构的槽位配置方式简单、灵活、高效,具备很强的可操作性。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

首先参考图1,其为本发明实施例提供的多轮对话处理方法的应用场景示意图。用户10与智能设备11进行多轮对话的交互过程中,智能设备11将用户10输入的对话信息发送给服务器12,服务器12结合历史对话信息以及当前的对话信息,明确用户下达的指令,并控制智能设备11执行相应的响应,以向用户给出反馈。

这种应用场景下,智能设备11和服务器12之间通过网络进行通信连接,该网络可以为局域网、广域网等。智能设备11可以为智能音箱、机器人等,也可以为便携设备(例如:手机、平板、笔记本电脑等),还可以为个人电脑(pc,personalcomputer),服务器12可以为任何能够提供语音识别服务的服务器设备。

下面结合图1所示的应用场景,对本发明实施例提供的技术方案进行说明。

参考图2,本发明实施例提供一种多轮对话处理方法,包括以下步骤:

s201、获取对话信息以及表征该对话信息归属的标识信息后,确定对话信息对应的目标业务场景。

本发明实施例中,对话信息为本轮对话中用户输入的对话信息,用户输入的对话信息可以是语音信息或文字信息。当用户输入的是语音信息时,需要预先将语音信息转换为文字信息,以方便后续处理。

本发明实施例中,标识信息用于表征对应的对话信息的归属,例如,标识信息可以是采集该对话信息的智能设备的设备标识,标识信息也可以是发起该对话信息的用户的用户标识。当然,标识信息还可以是其它能够表征对话信息归属的标识,本发明实施例不作限定。

具体实施时,预先配置有多个业务场景。具体地,可基于对话信息对应的意图、领域等信息,从预先配置的多个业务场景中,确定出对话信息对应的业务场景,作为目标业务场景。

s202、获取目标业务场景对应的槽位信息表,其中,槽位信息表中包括至少一个槽位项,槽位信息表中存储有基于目标业务场景的上一次对话信息确定出的槽位项对应的槽位值。

具体实施时,每一个业务场景对应的槽位信息表的结构是预先配置的,利用为各个业务场景配置的槽位信息表,来记录各个业务场景下多轮对话的语义识别结果。具体地,一个业务场景的槽位信息表中包括至少一个槽位项,槽位项对应的槽位值为执行动作时所需要的信息,例如,要想执行查看天气的动作,需要知道地点、时间这些必要的信息,这些必要信息就是槽位信息,可通过表结构的形式存储每个业务场景的槽位项以及对应的槽位值,即生成一个槽位信息表。具体地,可采用词典(dict)结构存储槽位信息表中各个槽位值,其中,key值可以是槽位项的名称,value值为对应的槽位值。每个槽位信息表包含其对应的业务场景的场景标识,在确定对话信息对应的目标业务场景后,可通过目标业务场景的场景标识,获取对应的槽位信息表。

作为一种可能的实现方式,针对每个标识信息,存储当前进行的多轮对话(即目标业务场景)对应的槽位信息表。如果根据当前的对话信息确定进入新的业务场景,则删除之前存储的该标识信息对应的槽位信息表,针对该标识信息,存储新的业务场景(即根据当前的对话信息确定的目标业务场景)对应的槽位信息表。如果根据当前的对话信息确定的目标业务场景仍为基于上一次对话信息确定出的目标业务场景,则直接获取存储的槽位信息表,根据当前的对话信息,更新该槽位信息表中槽位项的槽位值。如果根据当前的对话信息确定的目标业务场景不是上一次确定的目标业务场景,则获取根据当前的对话信息确定的目标业务场景对应的槽位信息表,作为该标识信息对应的槽位信息,该槽位信息表中槽位项的槽位值均为空。

s203、根据对话信息,更新标识信息对应的槽位信息表中至少一个槽位项对应的槽位值。

具体地,可利用现有的自然语言理解技术,从对话信息中提取出各类信息,如时间信息、地点信息、人物信息等,再根据目标业务场景对应的槽位信息表中需要填充的槽位项,从对话信息中提取出槽位项对应的信息,用提取出的信息更新槽位信息表中对应槽位项的槽位值。例如,针对“买火车票”的业务场景,可设置至少三个槽位项:日期、出发地和目的地,则业务场景“买火车票”的槽位信息表中存在三个槽位项,分别为“日期”、“出发地”和“目的地”。假设用户输入的对话信息为“1月1日”,并确定对话信息属于“买火车票”这一业务场景,从对话信息提取出日期信息“1月1日”,将槽位信息表中“日期”槽位项的槽位值更新为“1月1日”。

s204、将更新后的槽位信息表中的槽位值,确定为对话信息的语义解析结果。

本发明实施例的多轮对话处理方法,基于表结构的槽位填充方式,能够充分融合从多轮历史对话信息中获取的槽位值,从而高效地恢复多轮对话场景,理解用户的真正意图,获得准确的语义解析结果,从而输出用户实际需求或者满意的回应,且基于表结构的槽位配置方式简单、灵活、高效,具备很强的可操作性。

作为一种可能的实现方式,预先设置一个配置列表,用于存储可供多个智能设备使用的业务场景以及对应的槽位信息表,配置列表中的槽位信息表仅为一个模板,其中槽位项中的槽位值均为空。针对每个智能设备,可通过其对应的历史列表存储该智能设备使用过的槽位信息表,以保存该智能设备在多轮对话过程中获取到的槽位项的槽位值。在获取到对话信息后,根据采集到该对话信息的智能设备的设备标识,获取该智能设备对应的历史列表,优先从该历史列表中获取目标业务场景对应的槽位信息表,若该历史列表中不存在目标业务场景对应的槽位信息表,表明该目标业务场景为首次激活,从配置列表中获取目标业务场景对应的槽位信息表,并添加到该历史列表中。具体地,可通过redis数据库存储并管理各智能设备对应的历史列表。需要说明的是,根据对话信息,更新的是智能设备对应的历史列表中的槽位信息表,而非配置列表中的槽位信息表。

进一步地,在实际应用中,一个智能设备可供多个用户使用,为了区分开各个用户的多轮对话,可按用户对智能设备对应的历史列表中存储的槽位信息表进行分类存储。例如,为使用同一智能设备的每个用户设置一个子列表,用户对应的子列表存储有该用户通过该智能设备使用过的业务场景对应的槽位信息表。具体实施时,确定智能设备采集的对话信息对应的用户标识,根据智能设备的设备标识获取该智能设备对应的历史列表,并从该历史列表中获取与该用户标识对应的子列表,从子列表中获取目标业务场景对应的槽位信息表,若该子列表中不存在目标业务场景对应的槽位信息表,表明该用户首次通过该智能设备激活该目标业务场景,从配置列表中获取目标业务场景对应的槽位信息表,并添加到设备标识对应的历史列表中该用户标识对应的子列表中。

又如,每个已激活的业务场景对应的槽位信息表增加用户标识。具体实施时,确定智能设备采集的对话信息对应的用户标识,根据智能设备的设备标识获取该智能设备对应的历史列表,并从该历史列表中获取与该用户标识对应的槽位信息表,若该历史列表中不存在该用户标识对应的该目标业务场景的槽位信息表,表明该用户首次通过该智能设备激活该目标业务场景,从配置列表中获取目标业务场景对应的槽位信息表,并添加到设备标识对应的历史列表中,并在该槽位信息表中标记该用户标识。

具体地,智能设备可通过用户使用该智能设备时输入的登录信息(如用户名)中获取用户标识,也可通过人脸识别、声纹识别、指纹识别等技术识别用户身份,获取用户对应的用户标识,在智能设备将对话信息发送的服务器时,一并将该对话信息对应的用户标识发送给服务器。智能设备也可以仅将采集用户的人脸图像、语音信息或指纹信息等发送给服务器,由服务器利用人脸识别、声纹识别、指纹识别等技术识别用户身份,获取用户对应的用户标识。

在上述任一实施例的基础上,作为另一种可能的实现方式,步骤s203具体包括:基于槽位信息表包含的槽位项,从对话信息中提取槽位项对应的槽位值;若槽位项中已存在对应的槽位值,使用从对话信息中提取的槽位值替换已存在的槽位值。

该方式下,当目标业务场景对应的槽位信息表中各槽位项的槽位值均为空时,表明开启了该目标业务场景下新的多轮对话,将从对话信息中提取的槽位值存入槽位项中。或者,当目标业务场景对应的槽位信息表中至少有一个槽位项的槽位值不为空,表明该目标业务场景为进行中的多轮对话,此时,若从对话信息中提取的槽位项在槽位信息表中的槽位值为空,则将从对话信息中提取的槽位值存入槽位信息表中该槽位项中,通过当前获取到的对话信息,填充槽位信息表中缺失槽位值的槽位项,以通过多轮对话信息补全槽位信息表中的槽位值,完成对多轮对话的语义解析。

作为一种可能的实现方式,步骤s203具体包括:基于槽位信息表包含的槽位项,从对话信息中提取槽位项对应的槽位值;若槽位项中未存在对应的槽位值,将从对话信息中提取的槽位值存入槽位项中。

该方式下,目标业务场景对应的槽位信息表中已存在槽位值不为空的槽位项,表明该目标业务场景为进行中的多轮对话,此时,若从对话信息中提取的槽位项在槽位信息表中存在对应的槽位值,表明用户可能更新了该槽位项对应的槽位值,针对上述情况,使用从对话信息中提取的槽位值替换已存在的槽位值。例如,用户在之前的对话中表明想买1月1日的车票,因此,日期槽位项中已经存在槽位值“1月1日”,但是用户在当前对话中又表明想要买1月2日的车票,这种情况下,可以用“1月2日”覆盖日期槽位项中已经存在槽位值“1月1日”。基于上述方式,可通过多轮对话中更新槽位信息表中已存在的槽位值,以准确地获取用户想要表达的语义。

进一步地,如果在更新某一槽位项时,发现该槽位项中已存在对应的槽位值,则可以根据预设的策略,选择覆盖该槽位项中已存在的槽位值,或者生成用于询问用户是否更改该槽位项对应的槽位值的问询语,再根据用户的回复确定是保留该槽位项中已存在的槽位值,还是覆盖该槽位项中已存在的槽位值。例如,用户之前想买1月1日的车票,因此,日期槽位项中已经存在槽位值“1月1日”,但是用户在后续对话中又将乘车日期更换为“1月2日”,则可以直接用“1月2日”覆盖日期槽位项中已经存在槽位值“1月1日”,或者询问用户“乘车日期是否修改为1月2日”,若用户回复是,则将日期槽位项中的槽位值更新为“1月2日”,若用户回复否,则保留日期槽位项中原有的“1月1日”。

在上述任一实施例的基础上,本发明实施例的方法还包括通过以下至少一种方式获取槽位信息表中槽位项对应的槽位值:

第一种方式、对于槽位信息表中的任一槽位项,调用槽位项预先配置的接口,从第三方服务器获取槽位项对应的槽位值。

具体实施时,可预先为槽位信息表中的槽位项配置对应的接口,通过配置的接口,从第三方服务器获取到更多的信息,来更新槽位项对应的槽位值。当识别到对话信息对应的目标业务场景后,若无法从对话信息中获取一些槽位项的槽位值,则获取该槽位值对应的接口,通过该接口从相应的第三方服务器中获取该槽位项对应的槽位值。

举例说明,为槽位项配置的接口可以是获取第三方识别服务的接口,若从对话信息中无法识别出槽位项的槽位值,可以调用第三方识别服务的接口,使用第三方的识别服务来识别对话信息中包含的槽位值,例如,本地只能识别出对话信息中的歌手,而无法准确识别出对话信息中的歌曲名称,此时可调用第三方识别服务,识别出对话信息中的歌曲名称,从而提高提取槽位值的准确率。

举例说明,目标业务场景为查询火车票,为余票槽位项配置的接口为12306的余票查询接口,调用余票查询接口从12306的服务器中获取余票信息,将余票信息填充到余票槽位项中,当根据余票槽位项确定还有火车票时,再控制智能设备执行相应的响应,例如,控制智能设备询问用户是否购买火车票。

第二种方式、对于槽位信息表中的任一槽位项,从采集到对话信息的智能设备上报的信息中,获取槽位项对应的槽位值。

具体实施时,智能设备上报的信息可以是智能设备采集的定位信息、时间信息、温度信息等,这类信息是由智能设备主动上报而不必通过交互即可获取到的信息。智能设备在向服务器发送对话信息的同时,还可以将主动获取到的信息一并上报给服务器,在更新槽位信息表时,可从智能设备主动上报的信息中获取更新对应槽位项需要的信息,来填充槽位信息表中对应槽位项的槽位值。例如,目标业务场景为查询天气,对应的槽位信息表中包括地点槽位项,若从对话信息中没有获取地点信息,则从智能设备主动上报的信息中获取到定位信息,根据定位信息确定地点槽位项对应的槽位值。具体实施时,可根据实际需求配置智能设备上报的信息,本发明实施例不作限定。

第三种方式、对于槽位信息表中的任一槽位项,控制智能设备输出问询信息,以询问槽位项的槽位值,根据智能设备采集到的回复信息,获取槽位项的槽位值。

以“买火车票”这一业务场景为例,这一业务场景的包含日期、出发地和目的地这三个槽位项,若出发地和目的地均已经存在对应的槽位值,则可以根据日期槽位项生成问询语,问询语可以是“您想购买哪天的火车票”,再根据用户基于该问询语回复的信息,更新日期槽位项对应的槽位值。

在上述任一实施例的基础上,槽位信息表中的槽位包括必选槽位和可选槽位。

其中,必选槽位是指确定对话信息的语义解析结果所必不可少的槽位项,只有获得所有必选槽位的槽位值,才能获得准确的语义解析结果,从而根据语义解析结果,控制智能设备执行相应的动作指令,实现与用户的交互。可选槽位是指非必要的槽位项,在缺少可选槽位对应的槽位值时,也可以确定出对话信息的语义解析结果,但获取到可选槽位对应的槽位值后,可以获得更加精准的语义解析结果。

以“买火车票”这一业务场景为例,必须要知道的信息包括日期、出发地和目的地,因此必选槽位包括日期槽位项、出发地槽位项和目的地槽位项,而乘坐的火车类型可作为可选槽位,只有在获取到日期槽位项、出发地槽位项和目的地槽位项对应的槽位值后,才能进行火车票的查询,而如果获取到用户想要乘坐高铁,则可以提高查询的精准度。

在实施时,只有获得所有必选槽位的槽位值,才能获得准确的语义解析结果,因此,在步骤s204之前,本发明实施例的方法还包括以下步骤:确定槽位信息表中所有必选槽位项的槽位值都不为空。即,在确定槽位信息表中所有必选槽位项的槽位值都不为空后,将更新后的槽位信息表中的槽位值,确定为对话信息的语义解析结果。

以“买火车票”这一业务场景为例,当检测到“买火车票”这一业务场景的三个必选槽位项日期、出发地和目的地均已存在对应的槽位值,例如,日期为“1月1日”、出发地为“北京”和目的地为“广州”,则可以确定语义解析结果为“购买1月1日从北京到广州的火车票”,可执行火车票的查询动作,并将查询到的车次反馈给用户。如果在必选槽位的槽位值都不为空时,可选槽位“火车类型”的槽位值为“高铁”,可以确定语义解析结果为“购买1月1日从北京到广州的高铁票”,则查询1月1日从北京到广州的高铁的车次,并将查询到的车次展示给用户。

进一步地,本发明实施例的方法还包括以下步骤:若槽位信息表中的任一必选槽位项的槽位值为空,根据必选槽位,控制智能设备输出问询信息,以询问必选槽的槽位值;根据智能设备采集到的回复信息,获取必选槽位项的槽位值。

以“买火车票”这一业务场景为例,这一业务场景的三个必选槽位为日期、出发地和目的地,若出发地和目的地均已存在对应的槽位值,则服务器可以根据日期槽位项生成问询语,问询语可以是“您想购买哪天的火车票”,并控制智能设备输出问询语,以向用户询问乘车日期,智能设备采集到用户的回复信息后发送给服务器,服务器再从回复信息中获取日期槽位项对应的槽位值,从而确定乘车日期。

在上述任一实施例的基础上,本发明实施例的方法还包括以下步骤:若满足目标业务场景对应的会话终止条件,清空目标业务场景对应的槽位信息表中所有槽位项的槽位值。

本发明实施例提供以下两种方式,来确定是否满足目标业务场景对应的会话终止条件:

第一种方式、若目标业务场景的触发间隔时长超过该目标业务场景对应的超时时长阈值,确定满足目标业务场景对应的会话终止条件,触发间隔时长为当前时刻与该业务场景最近一次被确定为目标业务场景时的时刻之间的差值。

实际应用中,为各个业务场景配置的超时时长阈值可根据具体的业务场景自由设置,本发明实施例中不作限定。举例说明,为一个业务场景配置的超时时长阈值为30秒,如果该业务场景被确定为目标业务场景后的30秒内没有被再次确定为目标业务场景,则可以清空该业务场景对应的槽位信息表中所有槽位项的槽位值。这样,当用户长时间不进行该业务场景下的对话时,可自动清除该业务场景对应的槽位信息表中所有槽位项的槽位值,防止槽位信息表中的信息对之后该业务场景下的新的多乱对话形成干扰。

具体实施时,可记录每个业务场景最近一次被确定为目标业务场景的时刻,并利用redis数据库的zset功能,按照各个业务场景最近一次被确定为目标业务场景的时刻的先后顺序,自动对各个业务场景进行排序,这样只需要判断排序靠前的各个业务场景是否存在超时的情况,若检测到超时的业务场景,则满足该业务场景对应的会话终止条件,可清空该业务场景对应的槽位信息表中所有槽位项的槽位值。

第二种方式、若接收到会话终止指令,确定满足目标业务场景对应的会话终止条件。

本发明实施例中,会话终止指令可以是接收到包含终止该目标业务场景下的多轮对话的意图或该目标业务场景对应的动作已执行的信息。

作为一种可能的实现方式,可通过语义识别等方式识别对话信息对应的领域、意图、语义等信息,根据识别的信息确定对话信息是否包含终止对话信息对应的目标业务场景下的多轮对话的意图。若对话信息中包含终止该业务场景下的多轮对话的意图,则表示用户希望结束该多轮对话,此时确定接收到会话终止指令。例如,在“买火车票”的业务场景中,当检测到“买火车票”这一业务场景的三个必选槽位(如日期、出发地和目的地)均填上了相应的槽位值,例如,日期为“1月1日”、出发地为“北京”和目的地为“广州”,则查询1月1日从北京到广州的车次,并将查询到的车次反馈给用户,同时可询问用户“是否购买车票”,当用户回答“不需要”时,则确定接收到包含终止该业务场景下的多轮对话的意图,即接收到会话终止指令,确定满足目标业务场景对应的会话终止条件,此时,可清空“买火车票”这一业务场景对应的槽位信息表中所有槽位项的槽位值。

需要说明的是,当多个用户使用同一智能设备时,通过用户标识管理不同用户激活的业务场景以及槽位信息表。针对使用同一智能设备的每个用户,通过该用户标识管理该用户使用过的业务场景,分别判断该用户标识对应的业务场景是否满足会话终止条件。

作为另一种可能的实现方式,如果确定业务场景对应的动作(action)已经执行,例如,在“买火车票”这一业务场景下已经完成火车票的购买,则可清空该业务场景对应的槽位信息表中所有槽位项的槽位值。具体地,当检测到针对某一业务场景,已经基于语义解析结果控制智能设备执行了对应的动作,表明该业务场景对应的动作已执行,此时生成会话终止指令。具体实施时,各个业务场景还配置有用于表征动作执行后是否清空槽位的字段,例如,当该字段为true时,表示执行完该业务场景对应的动作后,清空该业务场景对应的槽位信息表中所有槽位项的槽位值,否则,即使执行完该业务场景对应的动作被执行,也不清空该业务场景对应的槽位信息表中所有槽位项的槽位值。

在上述任一实施例的基础上,每个业务场景配置有至少一个触发条件。具体地,可通过以下方式确定对话信息对应的目标业务场景:根据预设的触发条件,将对话信息满足的触发条件对应的业务场景,确定为目标业务场景。

本发明实施例中的触发条件包括但不限于以下至少一种:第一触发条件、第二触发条件、关键词触发条件、领域触发条件或意图触发条件。

当触发条件为第一触发条件时,针对每个业务场景可设置一个或多个第一文本,例如,针对“买火车票”这一业务场景,其第一文本可以是“我要买车火票”或“帮我查下火车票”等。在获取到对话信息后,针对任一业务场景,将对话信息与该业务场景对应的第一文本进行比对,若对话信息与任一业务场景对应的第一文本相同,确定对话信息满足该业务场景的第一触发条件,否则,表示该对话信息不满足该业务场景的第一触发条件。

当触发条件为第二触发条件时,针对每个业务场景可设置一个或多个第二文本,例如,针对“买火车票”这一业务场景,其第二文本可以是“我要买火车票”或“帮我查下火车票”等。在获取到对话信息后,针对任一业务场景,计算该对话信息对应的文本信息与该业务场景对应的第二文本的相似度,若相似度高于预先配置的相似度阈值,确定该对话信息满足该业务场景的第二触发条件,否则,确定该对话信息不满足该业务场景的第二触发条件。其中,相似度阈值是可配置的,可根据实际情况设置,本发明实施例不作限定,例如,可根据选择的文本相似度算法的准确度,调整预设阈值。

当触发条件为关键词触发条件时,各个业务场景的关键词可以是“高铁”、“火车”、“电影”、“播放”、“天气”等这类明确指向某一场景的词汇。针对每个业务场景可设置一个或多个关键词。在获取到对话信息后,针对任一业务场景,判断该对话信息对应的文本信息中是否包含该业务场景对应的关键词,若对话信息对应的文本信息中包含该业务场景对应的关键词,确定该对话信息满足该业务场景的关键词触发条件,否则,确定该对话信息不满足该业务场景的关键词触发条件。实际应用中,可配置为:若对话信息对应的文本信息中包含业务场景对应的至少一个关键词,确定该对话信息满足该业务场景的关键词触发条件,否则,确定该对话信息不满足该业务场景的关键词触发条件;或者,若对话信息对应的文本信息中包含业务场景对应的所有关键词,确定该对话信息满足该业务场景的关键词触发条件,否则,确定该对话信息不满足该业务场景的关键词触发条件。

当触发条件为领域(domain)触发条件时,各个业务场景对应的领域信息可以是“列车”、“电影”、“天气”等这类明确指向某一场景的领域信息。在获取到对话信息后,可通过nlp(自然语言处理)算法识别对话信息对应的文本信息对应的领域信息,针对任一业务场景,若该业务场景对应的领域信息中包含对话信息对应的领域信息,确定该对话信息满足该业务场景的领域触发条件,否则,确定该对话信息不满足该业务场景的领域触发条件。实际应用中,针对一个业务场景对应的领域触发条件中可设置一个或多个领域信息,可配置为:多对话信息中包含该业务场景对应的领域触发条件中的至少一个领域信息时,确定对话信息满足该业务场景的领域触发条件。

当触发条件为意图(intent)触发条件时,各个业务场景对应的意图信息可以是“买火车票”、“看电影”、“询问天气”等这类明确指向某一场景的意图信息。在获取到对话信息后,可通过nlp算法识别对话信息对应的文本信息对应的意图信息,针对任一业务场景,若该业务场景对应的意图信息中包含该对话信息对应的意图信息,确定该业务场景满足业务场景的意图触发条件,否则,确定该业务场景不满足业务场景的意图触发条件。实际应用中,一个业务场景对应的意图触发条件中可设置一个或多个意图信息,可配置为:若对话信息中包含该业务场景对应的意图触发条件中的至少一个意图信息时,确定对话信息满足该业务场景的意图触发条件。

进一步地,还可以为不同类型的触发条件设置不同的优先级,具体的优先级顺序可根据实际需求进行设置,本发明实施例不作限定。例如,优先级顺序可以是:第一触发条件>第二触发条件>关键词触发条件>意图触发条件>领域触发条件。

在此基础上,当对话信息满足多个业务场景的触发条件时,可通过以下方式确定对话信息对应的目标业务场景:从对话信息所满足的业务场景中,选择所满足的触发条件中优先级最高的触发条件对应的业务场景,确定为对话信息对应的目标业务场景。

举例说明,假设第一触发条件的优先级为五级,第二触发条件的优先级为四级,关键词触发条件的优先级为三级,意图触发条件的优先级为二级,领域触发条件的优先级为一级。如果对话信息同时满足业务场景a的第一触发条件、第二触发条件以及关键词触发条件,则针对业务场景a,对话信息所满足的触发条件中最高优先级为五级。如果对话信息同时满足业务场景b的标准问题触发条件以及意图触发条件,则针对业务场景b,对话信息所满足的触发条件中最高优先级为四级。可以确定对话信息所满足的触发条件中最高优先级为五级,该优先级最高的触发条件对应业务场景a,确定业务场景a为对话信息对应的目标业务场景。

具体实施时,针对每个业务场景,还可以按照触发条件的优先级从高到低的顺序,将对话信息与该业务场景的触发条件进行逐个匹配,若对话信息满足该业务场景的某一触发条件,则无需匹配该业务场景的其它触发条件。

作为另一种可能的实现方式,当对话信息满足多个业务场景的触发条件时,可通过如下方式确定对话信息对应的目标业务场景:从对话信息所满足的业务场景中,选择最近一次被确定为目标业务场景的业务场景,确定为对话信息对应的目标业务场景。

具体实施时,可通过历史列表来记录各个业务场景最近一次被确定为目标业务场景的时刻,即触发时刻。进一步地,可采用lru算法管理历史列表,使得历史列表中各业务场景能够按照历史列表中记录的触发时刻进行自动换序,从而使最近一次被确定为目标业务场景的业务场景排在历史列表的最前,从而可以快速地从对话信息所满足的业务场景中,确定出选择最近一次被确定为目标业务场景的业务场景。

进一步地,还可以结合上述两种确定对话信息对应的目标业务场景的方法,从对话信息满足的多个业务场景中,确定出目标业务场景。具体地,从对话信息所满足的业务场景中,选出所满足的触发条件中优先级最高的触发条件对应的业务场景,确定为候选业务场景,若仅有一个候选业务场景,则将该候选业务场景确定为对话信息对应的目标业务场景;若存在多个候选业务场景,则从这多个候选业务场景中,选出触发时刻最近的业务场景,确定为对话信息对应的目标业务场景。

当多轮对话一直在同一业务场景下进行时,会匹配到该业务场景对应的槽位信息表,并不断地更新槽位信息表中各个槽位项的槽位值,以便在获取到必要的槽位值后,控制智能设备输出用户实际需求或者满意的回应。当用户输入属于其他业务场景的对话信息时,也能够基于配置的触发条件匹配到新的业务场景,并即时切换到新的业务场景中。例如,上一轮对话属于“买车”业务场景,当用户输入的对话信息为“帮我买张火车票”时,根据各个业务场景配置的触发条件,能够匹配到“买车票”的业务场景,从而顺利地切换到“买车票”的业务场景。

因此,本发明实施例的多轮对话处理方法,能够保证在一个业务场景下,多轮对话的有序进行,以输出用户实际需求或者满意的回应,同时,能够轻松地实现多业务场景的即时切换。此外,本发明实施例的多轮对话处理方法实现起来较为简单,只需要为各个业务场景的配置好触发条件即可,配置方式简单、灵活、高效,具备很强的可操作性。

在上述任一实施例的基础上,每个业务场景还配置有不同层级的生效范围,生效范围规定了有权使用该业务场景的对象。相应地,本发明实施例中的步骤s201具体包括:根据对话信息对应的标识信息以及每个业务场景的生效范围,从该标识信息所满足的生效范围对应的业务场景中,选择一个业务场景,确定为对话信息对应的目标业务场景。

具体实施时,获取到的对话信息携带有对应的标识信息。标识信息可以是用于表示用户唯一身份的用户标识,例如,用户的注册id等。标识信息也可以是企业级的企业标识,即一个企业标识对应一个企业。标识信息还可以是设备级的设备标识,设备标识可用于标识一类设备,例如,智能音箱为一类设备,聊天机器人为一类设备。标识信息还可以是业务级的产品标识,例如,通过同一种应用产品发送的对话信息携带有该应用产品对应的产品标识。本发明实施例中不对标识信息的具体实现进行限定,可根据实际应用场景或需求进行配置。为此,针对每个用户、每个企业、每类设备以及每种产品,可自由配置其专属的业务场景。

具体地,针对各个业务场景,可以设置全局生效范围、企业生效范围、产品生效范围、设备生效范围。当业务场景配置的是全局生效范围时,表示所有的对象(包括不同的用户、企业、设备、产品等)均可以使用该业务场景,在配置全局生效范围时,业务场景对应的生效范围也可以是缺省值,即生效范围未填入任何值时,表示该业务场景在全局范围内生效。当业务场景配置的是企业生效范围时,企业生效范围中记录的是能够使用该业务场景的企业的企业标识,如果对话信息携带的企业标识在业务场景对应的企业生效范围内,则选择该业务场景作为候选业务场景。当业务场景配置的是产品生效范围时,产品生效范围中记录的是能够使用该业务场景的产品的产品标识,如果对话信息携带的产品标识在业务场景对应的企业生效范围内,则选择该业务场景作为候选业务场景。当业务场景配置的是设备生效范围时,设备生效范围中记录的是能够使用该业务场景的智能设备的设备标识,如果对话信息携带的设备标识在业务场景对应的企业生效范围内,则选择该业务场景作为候选业务场景。通过为各业务场景配置生效范围,可实现业务场景在不同层级的生效,如全局生效、产品生效、企业生效、设备级别生效等,可满足用户对该业务场景的个性化定制需求。

在上述任一实施例的基础上,基于步骤s204获得的语义解析结果,可控制智能设备相应的动作。

具体实施时,基于槽位信息表中各槽位项的槽位值,获取执行目标业务场景对应的动作指令所需要的信息,从而控制智能设备执行相应的响应。以“买火车票”这一业务场景为例,假设“买火车票”这一业务场景对应的槽位信息表中,日期槽位项记录了“1月1日”、出发地槽位项记录了“北京”,目的地槽位项记录了“广州”,则可执行以下动作:查询1月1日从北京到广州的火车车次,并将查询到的火车车次反馈给用户。

具体实施时,每个业务场景对应的动作指令可根据具体的场景进行配置,例如,动作指令的类型可以是输出文本、语音播报、播放多媒体、执行技能等。具体地,动作指令可以是输出根据槽位信息表中已填写的槽位值确定的文本信息,可通过智能设备的显示装置显示该文本信息。动作指令可以是语音播报,即将待输出的文本信息转换为语音信息后进行语音播报。动作指令还可以是播放多媒体,即控制智能设备显示图像、播放视频或音频等多媒体,例如,在买车的业务场景下,识别到用户需要购买x品牌x型号的车,可播放介绍x品牌x型号的车的视频。如果用户使用的智能设备具备执特殊技能的技能模块,可预先为业务场景配置好执行指定技能对应的控制指令,例如,智能设备具备唱歌的技能,则可预先为需要触发唱歌技能的业务场景配置控制唱歌技能模块的控制指令,在获取到该业务场景下所需的槽位信息后,将控制指令发送给唱歌技能模块,以控制智能设备执行唱歌这一技能动作。具体实施时,针对一个业务场景可配置至少一个动作指令,当一个业务场景配置有多个动作指令时,可同时执行这多个动作,例如,输出文本的同时,对该文本进行语音播报,如果一个业务场景对应的多个动作指令之间有先后关系时,可为各个动作配置执行的优先级,按优先级顺序依次控制智能设备执行各个动作。本发明实施例的方法,可灵活地为各业务场景配置形式丰富的动作指令,为智能设备提供多模态输出方式,极大地丰富了人机交互体验。

本发明实施例的多轮对话处理方法,可应用于人机交互过程中涉及到的智能终端或服务器。

如图3所示,基于与上述多轮对话处理方法相同的发明构思,本发明实施例还提供了一种多轮对话处理装置30,包括:确定模块301、获取模块302、更新模块303和解析模块304。

确定模块301,用于获取到对话信息和表征该对话信息归属的标识信息后,确定对话信息对应的目标业务场景;

获取模块302,用于获取目标业务场景对应的槽位信息表,其中,槽位信息表中包括至少一个槽位项,槽位信息表中存储有基于目标业务场景的上一次对话信息确定出的槽位项对应的槽位值;

更新模块303,用于根据对话信息,更新标识信息对应的槽位信息表中至少一个槽位项对应的槽位值;

解析模块304,用于将更新后的槽位信息表中的槽位值,确定为对话信息的语义解析结果。

可选地,更新模块303具体用于:基于标识信息对应的槽位信息表包含的槽位项,从对话信息中提取槽位项对应的槽位值;若槽位项中已存在对应的槽位值,使用从对话信息中提取的槽位值替换已存在的槽位值。

可选地,更新模块303具体用于:基于槽位信息表包含的槽位项,从对话信息中提取槽位项对应的槽位值;若槽位项中未存在对应的槽位值,将从对话信息中提取的槽位值存入槽位项中。

可选地,本发明实施例的多轮对话处理装置30还包括槽位值获取模块,用于通过以下至少一种方式获取槽位信息表中槽位项对应的槽位值:

对于槽位信息表中的任一槽位项,调用槽位项预先配置的接口,从第三方服务器获取槽位项对应的槽位值;

对于槽位信息表中的任一槽位项,从采集到对话信息的智能设备上报的信息中,获取槽位项对应的槽位值;

对于槽位信息表中的任一槽位项,控制智能设备输出问询信息,以询问槽位项的槽位值,根据智能设备采集到的回复信息,获取槽位项的槽位值。

可选地,槽位项包括必选槽位和可选槽位。

相应地,解析模块304具体用于:在确定槽位信息表中所有必选槽位项的槽位值都不为空后,将更新后的槽位信息表中的槽位值,确定为对话信息的语义解析结果。

可选地,本发明实施例的多轮对话处理装置30还包括清空模块,用于:若满足目标业务场景对应的会话终止条件,清空目标业务场景对应的槽位信息表中所有槽位项的槽位值。

可选地,本发明实施例的多轮对话处理装置30还包括终止判断模块,用于根据如下方式确定满足目标业务场景对应的会话终止条件:

若目标业务场景的触发间隔时长超过目标业务场景对应的超时时长阈值,确定满足目标业务场景对应的会话终止条件,触发间隔时长为当前时刻与业务场景最近一次被确定为目标业务场景时的时刻之间的差值;

若接收到会话终止指令,确定满足目标业务场景对应的会话终止条件。

可选地,确定模块301具体用于:根据预设的触发条件,将对话信息满足的触发条件对应的业务场景,确定为目标业务场景。

可选地,确定模块301具体用于:若对话信息满足多个业务场景的触发条件,从对话信息所满足的业务场景中,选择所满足的触发条件中优先级最高的触发条件对应的业务场景,确定为对话信息对应的目标业务场景。

可选地,确定模块301具体用于:若对话信息满足多个业务场景的触发条件,从对话信息所满足的业务场景中,选择最近一次被确定为目标业务场景的业务场景,确定为对话信息对应的目标业务场景。

可选地,触发条件包括以下至少一种:

若对话信息与任一业务场景对应的第一文本相同,确定对话信息满足业务场景的第一触发条件;

计算对话信息与任一业务场景对应的第二文本的相似度,若相似度高于相似度阈值,确定对话信息满足业务场景的第二触发条件;

若对话信息中包含任一业务场景对应的关键词,确定对话信息满足业务场景的关键词触发条件;

若任一业务场景对应的领域信息中包含对话信息对应的领域信息,确定对话信息满足业务场景的领域触发条件;

若任一业务场景对应的意图信息中包含对话信息对应的意图信息,确定对话信息满足业务场景的意图触发条件。

可选地,确定模块301具体用于:根据对话信息对应的标识信息以及每个业务场景的生效范围,从标识信息所满足的生效范围对应的业务场景中,选择一个业务场景,确定为对话信息对应的目标业务场景。

可选地,生效范围包括全局生效范围、企业生效范围或设备生效范围。

本发明实施例提的多轮对话处理装置与上述多轮对话处理方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。

基于与上述多轮对话处理方法相同的发明构思,本发明实施例还提供了一种电子设备,该电子设备具体可以为智能设备(如机器人、智能音箱等)内部的控制设备或控制系统,也可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、服务器等。如图4所示,该电子设备40可以包括处理器401、存储器402和收发机403。收发机403用于在处理器401的控制下接收和发送数据。

存储器402可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储多轮对话处理方法的程序。

处理器401可以是cpu(中央处埋器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)处理器通过调用存储器存储的程序指令,按照获得的程序指令实现上述任一实施例中的多轮对话处理方法。

本发明实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述多轮对话处理方法的程序。

上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

基于与多轮对话处理方法相同的发明构思,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述任一实施例中的多轮对话处理方法。

以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

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