CN113468303A - 对话交互处理方法及计算机可读存储介质 - Google Patents
对话交互处理方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113468303A CN113468303A CN202110713705.8A CN202110713705A CN113468303A CN 113468303 A CN113468303 A CN 113468303A CN 202110713705 A CN202110713705 A CN 202110713705A CN 113468303 A CN113468303 A CN 113468303A
- Authority
- CN
- China
- Prior art keywords
- user
- dialogue
- node
- conversation
- agent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
Abstract
本发明提供对话交互处理方法及计算机可读存储介质,其中单任务型对话交互处理方法包括:接收用户输入的对话交互数据;对用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位;根据用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作;以及生成应答反馈数据,并将应答反馈数据返回至用户。本发明所提供的对话交互处理方法可以支持在保证对话业务逻辑准确性的同时提供灵活的对话管理能力,改善用户体验,并且可以减少对话任务构建、更新、维护的成本。
Description
技术领域
本发明涉及计算机的人机交互领域,特别涉及单任务型和多任务型对话交互处理方法及计算机可读存储介质。
背景技术
近年来,随着任务型对话交互研究成果的不断推出,任务型对话交互系统也越来越多的被应用到实际的场景中。现有的任务型对话管理系统主要分为数据驱动(Data-driven)的方法、人工设计 (Hand-crafted)的方法。
其中数据驱动的方法又分为端到端(End to End)的方法以及管道(Pipeline)的方法。端到端的方法使用循环神经网络,记忆网络,神经图灵机等进行多轮对话模型的训练。管道的方法将对话模型分为状态追踪(State tracking)和对话策略(Policy)两个部分,状态追踪使用带有记忆功能的网络对对话上下文槽位信息的变化进行建模,对话策略部分根据槽位追踪结果使用决策网络生成相关的对话动作。
人工设计的方法分为状态驱动的方法、基于有限状态机(Finite State Machine,简称FSM或Fsm)的方法、基于Frame(Frame-Based) 的方法、基于目标的方法等。状态驱动的方法跟管道的方法一样,只不过是使用人工规则实现的。基于有限状态机的方法使用流程拓扑图来表示多轮对话,运行时根据实际场景执行流程图的响应或跳转。基于Frame的方法又被称为槽位填充方法,是目前主流的商用对话系统采用的方案。基于目标的方法在对话过程中,系统使用焦点转移算法根据识别到的槽位自顶向下地遍历进程树,依次更新进程表。
数据驱动的方法标注成本非常高,而且不同的业务逻辑间无法进行迁移,这限制了其在实际业务场景中的应用。基于有限状态机的方法在对话内容复杂时,其构建、维护成本将会变得不可接受。基于Frame 的方法相对于状态机缺少了对复杂业务逻辑建模的能力,难以支持复杂对话语句对话。状态驱动的方法和基于目标的方法存在难以显式地对复杂业务逻辑进行建模的缺点。
需要说明的是,以上背景技术部分所公开的信息仅用于增强对本发明背景的理解,因此其可能包含不构成对本领域技术人员已知的现有技术的信息。
发明内容
为了至少在一定程度上解决现有技术中存在的上述问题之一,本发明的第一个目的在于提供一种单任务型对话交互处理方法及其装置,解决单任务对话交互管理的灵活性与业务逻辑准确性之间的冲突问题。本发明的第二个目的在于还提供一种多任务型对话交互处理方法及其装置,其解决如何有效管理多任务对话交互过程对话主题的切换问题。本发明的其他目的在于提供一种计算机设备、计算机可读存储介质和计算机程序产品。
为达到上述目的,根据本发明一实施例,本发明第一方面提供一种单任务型对话交互处理方法,其包括:接收用户输入的对话交互数据;对用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位;根据用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作;以及生成应答反馈数据,并将应答反馈数据返回至用户。
上述单任务型对话交互处理方法中,可以使用有限状态机通过设置状态节点进行业务逻辑建模,所述状态节点可以包括:用户节点,机器人节点,功能节点,切换节点,槽位节点,以及主题节点。
上述用户节点用于接收用户意图和收集对话槽位,当用户意图与该用户节点负责解析的意图一致时,该用户节点激活。上述机器人节点用于返回对话管理器执行结果,并引导用户进行对话。上述功能节点用于执行预置的功能性脚本或调用第三方应用程序接口。上述切换节点用于根据对话中收集到的槽位、全局变量、函数执行结果,进行对话逻辑分支的切换。上述槽位节点用于机器端主导的槽位收集,并支持槽位的澄清、修改。上述主题节点用于调用指定主题,并管理该主题的触发和结果返回。
上述单任务型对话交互处理方法中,根据用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作的步骤可以包括:利用识别的用户意图和/或解析的槽位,更新状态分布;有限状态机根据当前状态分布和即时约束列表决定对话状态是否转移,并更新对话轨迹和即时约束;检查当前对话是否存在槽位否定或约束修改;如果存在槽位否定或约束修改,则根据回溯列表定位回溯位置,有限状态机根据更新后的状态决定转移方向,并根据转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑;以及如果不存在槽位否定和约束修改,则根据当前的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑。
上述执行有限状态机建模的业务逻辑可以包括:在该业务逻辑的下一节点为机器人节点的情况下,执行有限状态机的节点配置话术;或者在该业务逻辑的下一节点不是机器人节点的情况下,执行基于对话动作的对话策略话术。
根据本发明一实施例,本发明还提供一种单任务型对话交互处理装置,其包括:接收模块,其被配置为,接收用户输入的对话交互数据;解析模块,其被配置为,对用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位;对话逻辑处理模块,其被配置为,根据用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作;以及输出模块,其被配置为,生成应答反馈数据,并将应答反馈数据返回至用户。
上述对话逻辑处理模块可以使用有限状态机通过设置状态节点进行业务逻辑建模,所述状态节点可以包括:用户节点,机器人节点,功能节点,切换节点,槽位节点,以及主题节点。
上述用户节点用于接收用户意图和收集对话槽位,当用户意图与该用户节点负责解析的意图一致时,该用户节点激活。上述机器人节点用于返回对话管理器执行结果,并引导用户进行对话。上述功能节点用于执行预置的功能性脚本或调用第三方应用程序接口。上述切换节点用于根据对话中收集到的槽位、全局变量、函数执行结果,进行对话逻辑分支的切换。上述槽位节点用于机器端主导的槽位收集,并支持槽位的澄清、修改。上述主题节点用于调用指定主题,并管理该主题的触发和结果返回。
上述对话逻辑处理模块还可以被配置成:利用解析模块识别的用户意图和/或解析的槽位,更新状态分布;有限状态机根据当前状态分布和即时约束列表决定对话状态是否转移,并更新对话轨迹和即时约束;检查当前对话是否存在槽位否定或约束修改;如果存在槽位否定或约束修改,则根据回溯列表定位回溯位置,有限状态机根据更新后的状态决定转移方向,并根据转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑;以及如果不存在槽位否定和约束修改,则根据当前的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑。
上述对话逻辑处理模块还可以被配置成;在该业务逻辑的下一节点为机器人节点的情况下,执行有限状态机的节点配置话术;或者在该业务逻辑的下一节点不是机器人节点的情况下,执行基于对话动作的对话策略话术。
为达到上述目的,根据本发明一实施例,本发明第二方面提供一种多任务型对话交互处理方法,包括:接收用户输入的对话交互数据;对用户输入的对话交互数据进行自然语言理解,识别用户对话主题;根据用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理;被选择的代理按照上述单任务型对话交互处理方法进行单任务型对话交互处理;其余未被选择的代理按照代理优先级队列进行重置;以及,接收下一轮用户输入的对话交互数据,重复以上所述对用户输入的对话交互数据进行自然语言理解,识别用户对话主题的步骤至所述其余未被选择的代理按照代理优先级队列进行重置的步骤,直至多轮对话交互结束。
上述代理优先级队列可以通过以下方式进行设置:为对话过程中产生的各种事件注册对应的处理函数,所述事件可以包括用户输入事件、用户终止事件、主题业务逻辑完成、异步调用触发、异步调用完成、输入意图与当前代理不匹配中的至少一个;针对接收到的事件调用相应的处理函数;以及调用的处理函数对代理优先级队列进行操作,更新队列中代理的优先级。
上述代理优先级队列可以包括:就绪队列,休眠队列,阻滞队列,以及放弃队列。
上述就绪队列中的代理对话状态处于初始状态,能够开始一个主题下的对话,并且能够根据对话运行时的优先级参与下一轮对话代理的排序。上述休眠队列中的代理对话状态处于进行中,再次激活时从中断的位置继续对话,并且能够根据对话运行时的优先级参与下一轮对话代理的排序。上述阻滞队列中的代理异步任务已完成,能够根据任务优先等级参与下一轮对话的排序。上述放弃队列中的代理因调用异步任务而中断,能够等待异步任务完成后转移到阻滞队列。
上述多任务型对话交互处理方法中,可以保存全部代理的状态追踪内容,并且在每次切换活跃代理时,将失活的代理状态追踪内容同步到全局状态追踪中,并将全局状态追踪内容同步到新激活的代理中。
根据本发明一实施例,本发明还提供一种多任务型对话交互处理装置,包括:接收模块,其被配置为,接收用户输入的多轮对话交互数据;识别模块,其被配置为,对用户输入的每轮对话交互数据进行自然语言理解,识别用户对话主题;代理控制模块,其被配置为,根据用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理,并且对其余未被选择的代理按照代理优先级队列进行重置;单任务型对话交互处理模块,其被配置为,按照上述单任务型对话交互处理方法进行单任务型对话交互处理;以及输出模块,其被配置为,生成应答反馈数据,并将应答反馈数据返回至用户。
上述代理控制模块可以被配置为,通过以下方式对代理优先级队列进行设置:为对话过程中产生的各种事件注册对应的处理函数,所述事件可以包括用户输入事件、用户终止事件、主题业务逻辑完成、异步调用触发、异步调用完成、输入意图与当前代理不匹配中的至少一个;针对接收到的事件调用相应的处理函数;以及调用的处理函数对代理优先级队列进行操作,更新队列中代理的优先级。
上述代理控制模块中设置的代理优先级队列可以包括:就绪队列,休眠队列,阻滞队列,以及放弃队列。
上述就绪队列中的代理对话状态处于初始状态,能够开始一个主题下的对话,并且能够根据对话运行时的优先级参与下一轮对话代理的排序。上述休眠队列中的代理对话状态处于进行中,再次激活时从中断的位置继续对话,并且能够根据对话运行时的优先级参与下一轮对话代理的排序。上述阻滞队列中的代理异步任务已完成,能够根据任务优先等级参与下一轮对话的排序。上述放弃队列中的代理因调用异步任务而中断,能够等待异步任务完成后转移到阻滞队列。
上述代理控制模块可以被配置为,保存全部代理的状态追踪内容,并且在每次切换活跃代理时,将失活的代理状态追踪内容同步到全局状态追踪中,并将全局状态追踪内容同步到新激活的代理中。
为达到上述目的,根据本发明一实施例,本发明第三方面提供一种计算机设备,包括:处理器;存储装置;以及存储在存储装置上并可在处理器上运行的计算机程序,当处理器执行计算机程序时,实现上述单任务型或多任务型对话交互处理方法的步骤。
为达到上述目的,根据本发明一实施例,本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述单任务型或多任务型对话交互处理方法的步骤。
为达到上述目的,根据本发明一实施例,本发明第五方面提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述单任务型或多任务型对话交互处理方法的步骤。
本发明所提供的单任务型对话交互处理方法及装置可以支持在保证对话业务逻辑准确性的同时提供灵活的对话管理能力,多任务型对话交互处理方法及装置有效支持对话交互过程中的主题切换,改善用户体验,并且可以减少对话任务构建、更新、维护的成本。
附图说明
以下将详细参考附图示出的特定示例性实施例,对本发明的上述和其他特征进行说明,所述示例性实施例在下文中仅以说明的方式给出,因此并不限制本发明,其中:
图1示出可适用本发明单任务型和多任务型对话交互处理方法的一个具体实施方式的示例性系统架构。
图2示出根据本发明一实施例的单任务型对话交互处理方法的流程图。
图3示出图2所示流程图中按照有限状态机建模的业务逻辑用对话轨迹追踪回溯和槽位约束执行对话逻辑处理的流程图。
图4示出根据本发明一实施例的有限状态机执行逻辑的流程图。
图5示出根据本发明一实施例的对话轨迹追踪与回溯逻辑的流程图。
图6示出图3中根据当前或转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑的流程图。
图7示出根据本发明一实施例的单任务型对话交互处理装置的示意框图。
图8示出根据本发明一实施例的实现单任务型对话交互处理装置功能的代理的一种具体工程实现方式的架构示意图。
图9示出根据本发明一实施例的多任务型对话交互处理方法的流程图。
图10示出根据本发明一实施例的多任务型对话交互处理装置的示意框图。
图11示出根据本发明一实施例的实现多任务型对话交互处理装置功能的代理管理器的一种具体工程实现方式的架构示意图。
图12示出根据本发明一实施例可以用来实现本发明实施例的设备的一个计算机系统的结构示意图。
图13示出根据本发明一实施例出行场景下人机交互的一个示例。
具体实施方式
以下通过具体实施例对本发明进行详细描述,以使本领域普通技术人员能够容易地根据本说明书公开的内容实施本发明。以下所描述的实施例仅是本发明的一部分实施例,而非全部。基于本说明书所描述的实施例,本领域普通技术人员在不付出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。需要说明的是,在不发生冲突的情况下,本说明书中的实施例及实施例中的特征可以相互组合。
任务型对话管理中,基于有限状态机的方法使用流程拓扑图来表示多轮对话,状态节点表示一次对话事件,边表示状态转移条件,从而将对话设计和对话管理分离,领域逻辑由对话交互设计师使用图形化创作工具来设计,导出表示状态图的数据结构或脚本,然后由对话管理模块进行加载,运行时根据实际场景执行流程图的响应或跳转。基于Frame的方法又被称为槽位填充方法,它使用一个信息表维护对话任务中没有顺序依赖的信息,信息表包含完成对话任务需要的槽位,一旦所有的槽位填充完成后,就会执行预设的对话响应,对话槽位的填充顺序不会增加对话管理的复杂度。基于Frame的方法是目前主流的商用对话系统采用的方案,如IBM Watson facebook的Dataframe。基于目标的方法假设任务型对话结构可以按照意图/目标划分成多个相互关联的片段(segment),每个片段表示一个目标,片段中可以嵌套更小的片段表示更小一级的目标,从而将对话任务构建成一个树形结构,同时使用进程(agenda)的数据结构维护片段的需要的数据,父片段包含子片段的进程数据,在对话过程中,系统使用焦点转移(foucs-shift) 算法根据识别到的槽位自顶向下地遍历进程树,依次更新进程表。
基于有限状态机的方法可以精准地对业务逻辑建模,但是对于对话多样性的支持不足,为了支持用户可能的各种对话场景,它需要对每一种可能的对话路径进行构建,当对话内容复杂时,对话在多个主题间切换时,其构图复杂程度会呈指数增长,其构建、维护成本将会变得不可接受。基于Frame的方法将处理对话多样性的逻辑隐含在引导用户填写槽位表的过程中,但相对于状态机则缺少了对复杂业务逻辑建模的能力,而且其对对话的建模以意图为中心,每轮只能处理单意图,难以支持复杂对话语句对话。状态驱动的方法是在DataFrame 的基础上进行改进的方法,它对对话状态和对话动作策略进行分离建模,并将对话从意图为中心转换为以对话动作为中心,大大提升了对复杂对话语句的处理能力,但还是存在难以显式地对复杂业务逻辑进行建模的缺点。基于目标的方法是在DataFrame的基础上引入树形层级结构,对业务有层次关系的对话主题进行管理,从而实现对话主题的自由切换,但是这种切换能力是隐藏在树形数据结构切换focus-shift 算法内的,难以显式地对业务逻辑进行建模。
为了直观理解多任务型对话交互的过程和本发明的思想,可以参照图13所示的一个出行场景下的人机交互的示例,对多任务型(多轮) 对话交互和本发明的基本概念和相关定义进行说明。
图13所示的对话交互示例中出现了4个对话任务:选择任务、订机票、询问天气和订酒店。从该示例中对话过程可以看出,多任务型对话交互具有以下特性:
1.对话嵌套:即一个多轮对话内部,包含了具有明确目的的另一个多轮对话,从而形成了嵌套结构。例如,对话任务2“订机票”包含了对话任务3“查天气”。
2.对话分支:根据用户回复的内容不同,对话走向不同的业务逻辑分支。
3.对话循环:即一些多轮对话因为用户对对话信息的修正可以反复循环,直到用户对话目标完成。
4.无限轮次:任务型对话可以进行无限的轮次,直到用户对话目标完成。
5.主题隔离:对于任何一个父级的对话,它可以不关心子对话的过程,不关心嵌套了多少级,只需要关心子对话的结果,从而专注于自己的对话流程即可。
根据以上这些特性,本申请文件中对以下概念加以定义,作为多任务型对话交互建模的基础:首先,本申请将一个具有阶段性对话目标的对话段落定义为一个对话片段(Segment)。其次,一个或多个在业务逻辑上存在依赖关系的对话片段组成一个任务(Task),每个任务内的对话具有一个独立的对话主题。再次,每个对话主题具有一个独立的上下文,在工程建模上定义一个状态追踪器(State Tracker)数据结构,进行该主题下的对话状态追踪。最后,多轮对话的主题嵌套结构,被划分为依赖嵌套和非依赖嵌套,这两种嵌套的触发,都会导致对话主题的切换,其中:依赖嵌套是指嵌套的主题与当前的主题之间有业务依赖关系,嵌套的主题结束后还要继续执行当前主题的对话逻辑,这种嵌套的主题切换可以使用栈式结构进行管理,实现主题的递归式调用和恢复;非依赖的嵌套是指嵌套的主题与当前的主题之间没有业务依赖关系,嵌套主题完成后不必须恢复当前的对话主题,这种嵌套关系的主题切换可以使用优先级队列的结构进行管理,主题之间根据对话过程中的动态优先级进行切换。
另外,如本领所通常理解的,在多轮对话过程中,系统为完成任务而需要获取的关键信息我们称之为“槽位(Slot)”,上面的例子中“订机票”这个意图所包含的槽位就是[目的地]和[出发时间];而槽位内的信息我们称之为“槽值”(本领域也有称之为实体或槽位参数),上面的例子中,[目的地]这一槽位内的槽值就是“上海”;而系统把“上海”这两个字填充到[目的地]这个槽位的过程,则被称之为“填槽(Slot filling)”。
根据以上明确的多轮对话交互相关的特性和概念,本申请将多任务型对话的管理抽象为双层结构:主题管理层和对话逻辑管理层。主题管理层负责多任务型对话交互过程中多个主题的切换,以及不同主题之间的信息共享等功能。对话逻辑管理层负责单个主题下(单任务型)对话交互的管理,主要包括对话的业务逻辑管理、基础对话能力的实现,其中业务逻辑管理用于保证对话符合预设的业务相关的逻辑并达成指定的业务目标,基础对话能力是指与业务无关的对话交互能力,例如槽位的收集、澄清、修改,支持用户按任意顺序提供对话信息的能力。
以下将依次按照从单任务型对话交互到更为复杂的多任务型对话交互的顺序,也就是从对话逻辑管理层到更为复杂的主题管理层的顺序,详细介绍本发明的单任务型和多任务型对话交互处理方法及其装置。
如图1示意性所示,其示出了既可以适用本发明单任务型对话交互处理方法,也可以适用本发明多任务型对话交互处理方法的一个具体实施方式的示例性系统架构100。系统架构100可以包括终端设备 101、102、103,以及网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信,其可以包括各种连接类型,例如有线、无线通信或者光纤电缆等。
用户可以使用终端设备101、102、103通过网络104与服务器105 实现交互。终端设备101、102、103上可以安装有各种通信客户端应用,例如图像及视频拍摄应用、文本输入应用、网页浏览器应用、专业领域应用软件、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
在具体实施中,终端设备101、102、103可以根据实际需要实现为硬件,也可以实现为软件。当终端设备101、102、103实现为硬件时,可以是具有(触摸)显示屏并且支持语音、文本等输入的各种电子设备,包括但不限于个人电脑(包括笔记本计算机和台式计算机)、平板电脑、智能手机、电子书阅读器、视频播放器等等。当终端设备 101、102、103实现为软件时,可以安装在合适的电子设备中,实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。应当理解,图1中及以上描述的终端设备101、102、103实例在此仅作为示例,而不应被理解为具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、 102、103输入的语音或文本提供支持的后台服务器。后台服务器可以对接收到的语音或目标文本等数据进行分析等处理,并将处理结果通过网络104反馈给终端设备101、102、103。
在具体实施中,服务器105可以根据实际需要实现为硬件,也可以实现为软件。当服务器105实现为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105 实现为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。应当理解,图1中及以上描述的服务器105实例在此仅作为示例,而不应被理解为具体限定。
需要说明的是,本申请实施例所提供的单任务型或多任务型对话交互处理方法可以由终端设备101、102、103执行,也可以由服务器 105执行,也可以由终端设备101、102、103与服务器105共同配合执行。相应地,用于单任务型或多任务型对话交互处理方法的装置可以设置于终端设备101、102、103中,也可以设置于服务器105中,也可以设置于终端设备101、102、103和服务器105中。
可以理解的是,当本申请实施例所提供的单任务型或多任务型对话交互处理方法由终端设备101、102、103执行时,上述系统架构100 可以不包括网络104和服务器105。
应当理解,图1中的终端设备、网络和服务器的数目及种类仅仅是示意性的。在具体实施中,根据实际需要,可以具有任意数目和种类的终端设备、网络和服务器。
如图2所示,根据本发明一实施例的一种单任务型对话交互处理方法包括以下步骤:接收用户输入的对话交互数据的步骤S201;对所述用户输入的对话交互数据进行自然语言理解(NLU),识别用户意图并解析槽位的步骤S202;根据所述用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作的步骤S203;以及生成应答反馈数据,并将所述应答反馈数据返回至用户的步骤S204。
如图3所示,在图2所示的步骤S203中,可以首先在步骤S301 利用图2所示步骤S202中识别的用户意图和/或解析的槽位,更新状态分布。然后在步骤S302中,有限状态机根据当前状态分布和即时约束列表,决定对话状态是否转移,并更新对话轨迹和即时约束。在步骤 S303中,检查当前对话是否存在槽位否定或约束修改。如果存在槽位否定或约束修改,则在步骤S304中根据回溯列表定位回溯位置,有限状态机根据更新后的状态决定转移方向,并根据转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑;如果既不存在槽位否定,也不存在约束修改,则在步骤S305中根据当前的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑。
此外,在图2所示的步骤S203中,使用有限状态机通过设置以下基础状态节点进行业务逻辑建模:用户节点(User Node):该节点负责接收解析用户询问(query)意图,只有用户询问与该节点负责的解析的意图一致,才会激活该节点,同时该节点兼有对话槽位收集功能,在该节点可以指定收集多个节点,支持槽位的澄清、修改,用户可以按照任意顺序告知槽位信息。机器人节点(Bot Node):该节点负责将对话管理器(DM)的执行结果告知用户,同时兼有对话逻辑引导的功能,通过发出预置的引导语,引导用户按照期望的逻辑进行对话。功能节点(Function Node,或FUNC Node):该节点可以执行预置的功能性脚本或调用第三方应用程序接口(API),使用对话过程中收集到的信息执行一些与对话无关的功能。切换节点(Switch Node):该节点带有分支转发功能,一般用于根据对话中收集到的槽位、全局变量、函数执行结果甚至意图,进行对话逻辑分支的切换。槽位节点(Slot Node):该节点通常用于机器端主导的槽位收集,在该节点可以指定收集多个节点,支持槽位的澄清、修改,用户可以按照任意顺序告知槽位信息。主题节点(Sub Node):该节点封装了调用指定主题的功能,它负责管理该主题的触发和结果返回。它实现了主题之间有依赖的嵌套。它负责对话逻辑的复用,可以将通用的对话逻辑封装成一个独立的主题,任何使用该对话逻辑的主题都可以通过主题节点复用该对话逻辑。
现参考图4,对根据本发明一实施例的有限状态机执行逻辑进行详细说明。首先,在步骤S401中,有限状态机检查当前节点是否为功能节点或切换节点。如果检查结果为是,即当前节点为功能节点或切换节点二者之一,则在步骤S402处继续检查当前节点是否为功能节点;如果在步骤S401处检查的结果为否,即当前节点既非功能节点、亦非切换节点,则在步骤S403处继续检查是否满足向下一节点进行转移的条件。如果在步骤S402处检查的结果为否,即当前节点为切换节点,则在步骤S405处依据切换节点当前上下文槽位/变量,选择满足条件的下游节点分支进行切换;如果在步骤S402处检查的结果为是,即当前节点为功能节点,则在步骤S404处执行预置的功能性脚本或执行对应 API,并且在步骤S405处依据功能节点执行功能性脚本或对应API的返回结果,选择满足条件的下游节点分支进行切换,然后在步骤S408 处进行有限状态机的轨迹更新。如果在步骤S403处检查的结果为是,则在步骤S406处转移到下一节点并执行对应操作,然后在步骤S408 处进行有限状态机的轨迹更新;否则在步骤S407处中止。
图5示出了根据本发明一实施例的对话轨迹追踪与回溯逻辑的流程图。图5所示的流程图始于步骤S501,该步骤与图4所示的步骤S408 重合,二者皆为有限状态机的轨迹更新步骤,也就是说,可以认为图5 的起始步骤即为图4的最终步骤。需要说明的是,本申请之所以将有限状态机的轨迹更新步骤分别示于图5的步骤S501和图4的步骤S408 中,并非意欲表示图4和图5所示流程图分属不同的逻辑而可以独立执行,相反,这种表示方法仅出于便于表述和理解的原因,图4和图5 所示的流程图二者密不可分,二者实际上为整个单任务型对话交互处理逻辑的上下游关系,也可以认为二者同时执行。
如图5所示,在步骤S501处进行有限状态机的轨迹更新后,在步骤S502处检查是否处于“回溯”状态。如果处于回溯状态,则在步骤 S503处检查在回溯状态中是否产生新的节点分支;否则在步骤S504 处将当前节点放入FSM的backward_dic末尾,并随后在步骤S509处结束。如果在步骤S503处检查的结果为是,则在步骤S505处放弃FSM 中backward_dic被改变路径的节点及之后的所有节点,并在步骤S507 处将新节点放入FSM的backward_dic末尾,然后在步骤S508处停止回溯状态,随后在步骤S509处结束;如果在步骤S503处检查的结果为否,则在步骤S506处检查是否已经完成整条路径回溯。如果在步骤 S506处检查的结果为是,则在步骤S508处停止回溯状态,随后在步骤 S509处结束;如果在步骤S506处检查的结果为否,则直接在步骤S509 处结束。
图6示出图3中根据当前或转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑的流程图。如图6所示,根据上述图3以及图4-图5所示流程图执行有限状态机业务逻辑后,在步骤S601 处,判断有限状态机业务逻辑的下一节点是否为机器人(Bot)节点,如果判断结果为是,则在步骤S602处执行有限状态机的节点配置话术;否则在步骤S603处执行基于对话动作的对话策略话术。
图7示出根据本发明一实施例的单任务型对话交互处理装置700 的示意框图,该装置700具体可以应用于各种电子设备。如图7所示,根据本发明一实施例的单任务型对话交互处理装置700包括:接收模块701,其接收用户输入的对话交互数据;解析模块702,其对用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位;对话逻辑处理模块703,其根据识别的用户意图和/或解析的槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作;以及输出模块704,其生成应答反馈数据,并将所述应答反馈数据返回至用户。
上述对话逻辑处理模块703可以使用有限状态机通过设置如上所述的用户节点、机器人节点、功能节点、切换节点、槽位节点以及主题节点等基础状态节点进行业务逻辑建模。
上述对话逻辑处理模块703可以被配置成,利用所述解析模块识别的用户意图和/或解析的槽位,更新状态追踪的概率分布;有限状态机根据当前状态分布和即时约束列表决定对话状态是否转移,并更新对话轨迹和即时约束;检查当前对话是否存在槽位否定或约束修改;如果存在槽位否定或约束修改,则根据回溯列表定位回溯位置,有限状态机根据更新后的状态决定转移方向,并根据转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑;以及如果不存在槽位否定和约束修改,则根据当前的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑。
上述对话逻辑处理模块703还可以被配置成,在执行有限状态机建模的业务逻辑时判断该业务逻辑的下一节点是否为机器人节点,如果下一节点是机器人节点,则执行有限状态机的节点配置话术;如果下一节点不是机器人节点,则执行基于对话动作的对话策略话术。
图8示出了申请人在工程实现方面将单任务型对话交互处理装置相关功能封装在被称为代理(Agent)的对象中而实现的一种具体工程实现方式的架构示意图。本申请所述的代理内包含了负责单个对话主题下(单任务)对话追踪的状态追踪器(State Tracker)类,管理该对话主题下业务逻辑的有限状态机(任务FSM)类,以及生成当前对话主题下回复内容的对话策略(Policy)类。本申请所述的代理负责单个对话主题下的对话交互能力,如上所述,为了保持灵活的交互能力的同时,保证对话符合指定的业务逻辑,申请人将对话交互管理功能进行拆分以及封装,其中对话策略组件Policy在状态追踪器配合下提供对对话灵活性的支持,而状态机组件FSM则专门负责对对话主题下的对话业务逻辑进行建模。
如上所述,为了高效的支持复杂业务逻辑建模,申请人通过总结业务逻辑的共性需求定义了用户节点、功能节点机器人节点、功能节点、切换节点、槽位节点和主题节点共六种节点作为构建状态机构建业务逻辑图的基础状态节点。用户可以利用现有公知的多种工具在前端主图编辑工具中通过拖拽连接上面的各个节点,实现复杂的业务逻辑图,后端会自动加载生成的业务逻辑图生成对应的状态机,驱动主题下的对话按照业务逻辑进行。
为了同时支持对对话灵活性的管理以及复杂业务逻辑建模的能力,申请人还选用了状态驱动方式与有限状态机相结合的方式来构建对话主题内的对话逻辑。状态驱动的方式使用概率化的状态追踪与基于对话动作的对话策略来管理单个对话主题下的对话逻辑,首先根据用户的对话动作来更新状态追踪中的各个槽位和对话目标的概率分布,然后根据更新后的各个槽位和对话目标的概率分布来执行对话策略,生成对话回复内容。因此,每一轮对话同时对所有的槽位进行处理,无法显式地定义复杂业务逻辑。
为了支持显式地对业务逻辑进行建模,申请人对状态驱动方式做出了改进:将对话主题进行虚拟化切分,每个切分后的虚拟子主题对应于相应的业务逻辑状态,这样就可以通过有限状态机的方式,实现对这些虚拟子主题之间的业务逻辑进行建模。但是,使用虚拟化切分后随之带来的问题是,如何处理虚拟子主题的状态追踪,以及跨子主题间的槽位修改。因为对于用户来说,虚拟子主题是不可见的,用户可以感知到的只是在对话主题级别。但是在实际对话中,有可能会出现用户跨越多个子主题修改槽位的情况,而因为对话的主题切换是严格依照业务逻辑进行的,改变槽位信息可能会导致对话生成新的对话逻辑,这就需要一种对话回溯和约束机制,来实现精确定位因为对话修改而产生影响的第一个子主题,然后根据这种影响决定新的对话业务路径。
为了实现这种功能,申请人创造性地引入了对话轨迹追踪回溯和即时槽位约束的机制。对话轨迹追踪回溯机制会在对话过程中记录当前对话主题下的状态机状态轨迹(trace),并同时记录下当前状态节点的即时槽位约束列表,即时槽位列表包含了当前状态节点负责收集的槽位信息,只有当这些信息满足后,才会允许状态机离开该节点并根据业务逻辑向下转移。当用户修改了槽位信息之后,就会触发回溯功能,回溯功能逻辑会沿着对话轨迹,根据临时约束列表来找到槽位修改信息,修改影响到的第一个业务逻辑状态,然后更新槽位,然后再根据业务逻辑约束判断向下转移路径。
状态机的转移根据意图来进行业务逻辑转移,而状态驱动的对话管理方式以对话动作为中心,输入的是对话动作序列。为兼容这两种管理方式,申请人通过将对话意图降级为一个对话动作,该动作的参数就是意图名称,这样就可以实现使用统一的输入方式。
在工程实现上,申请人将对话意图内的对话管理划分为三个模块, 分别是:状态追踪(State Tracker)模块、业务逻辑状态机(任务FSM, Task FSM)模块、对话策略(DialogPolicy)模块。其中状态追踪模块是在状态驱动的方法的概率化状态追踪的基础上,添加了状态节点约束追踪、回溯轨迹追踪、功能节点历史信息记录等功能,以方便控制对话按照状态机建模的业务逻辑进行。如上所述,代理内整个对话交互流程为:
1.对话管理代理接收NLU解析后的对话动作序列,更新状态追踪的概率分布;
2.状态机根据当前状态分布以及即时约束列表决定对话状态转移,并更新对话轨迹和即时约束;
3.对话策略模块根据当前状态以及状态机位置来进行对话决策,判断是否回溯;
4.如果回溯,则根据回溯列表定位回溯位置,状态机根据更新后的状态决定转移方向,继续执行第3步;以及
5.如果不回溯,则对话策略模块根据当前的状态和状态机的节点位置,输出回复的对话动作列表。
如图9所示,根据本发明一实施例的多任务型对话交互处理方法包括以下步骤:接收用户输入的对话交互数据的步骤S901;对所述用户输入的对话交互数据进行自然语言理解,识别用户对话主题的步骤 S902;根据所述用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理的步骤S903;被选择的代理按照上述的单任务型对话交互处理方法进行单任务型对话交互处理的步骤S904;其余未被选择的代理按照代理优先级队列进行重置的步骤S905;以及接收下一轮用户输入的对话交互数据的步骤S906,本发明的多任务型对话交互处理方法可以在步骤S906之后重复步骤S902至步骤S905,当然,也可以理解成如图9所示继续执行与步骤S902至步骤S905相对应的步骤S902’至步骤905’,直至多轮对话交互结束。需要特别说明的是,上述步骤中,上述步骤S905与步骤S904的执行先后次序并不不受图中所示的约束,即步骤S905可以先于步骤S904执行,二者也可以同时执行。
图9所示的多任务型对话交互处理方法中,所述代理优先级队列通过以下方式进行设置:为对话过程中产生的各种事件注册对应的处理函数,所述各种事件可以包括但不限于:用户输入事件、用户终止事件、主题业务逻辑完成、异步调用触发、异步调用完成、输入意图与当前代理不匹配等;针对接收到的事件调用相应的处理函数;以及调用的处理函数对代理优先级队列进行操作,更新队列中代理的优先级。所述代理优先级队列可以包括:就绪队列(Ready List),其对话状态处于初始状态的代理,其可以从新进行一个主题下的对话,并且会根据对话运行时的优先级参与下一轮对话代理的排序(竞争)。休眠队列(Sleep List),其对话状态处于进行中的代理,其再次激活时会从中断的位置继续对话,并且会根据对话运行时的优先级参与下一轮对话代理的排序(竞争)。阻滞队列(BlockList):即异步任务完成的代理,其会根据任务优先等级参与下一轮对话的排序(竞争)。放弃队列(Yield List),即因为调用异步任务而中断的代理,其会等待异步任务完成后转移到阻滞队列中。
图9所示的多任务型对话交互处理方法中,可以保存全部代理的状态追踪内容,在每次切换活跃代理时,可以将失活的代理状态追踪内容同步到全局状态追踪中,并将全局状态追踪内容同步到新激活的代理中。
图10示出根据本发明一实施例的多任务型对话交互处理装置 1000的示意框图,该装置1000具体可以应用于各种电子设备。图10 所示,根据本发明一实施例的单任务型对话交互处理装置1000包括:接收模块1001,其接收用户输入的对话交互数据;识别模块1002,其对用户输入的对话交互数据进行自然语言理解,识别用户对话主题;代理控制模块1003,其根据所述用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理,并且对其余未被选择的代理按照代理优先级队列进行重置;单任务型对话交互处理模块1004,其按照上述的单任务型对话交互处理方法进行对话交互处理;以及输出模块 1005,其生成应答反馈数据,并将所述应答反馈数据返回至用户。
上述代理控制模块1003可以通过以下方式对代理优先级队列进行设置:为对话过程中产生的各种事件注册对应的处理函数,所述事件可以包括但不限于:用户输入事件、用户终止事件、主题业务逻辑完成、异步调用触发、异步调用完成、输入意图与当前代理不匹配等;针对接收到的事件调用相应的处理函数;以及调用的处理函数对代理优先级队列进行操作,更新队列中代理的优先级。
上述代理控制模块1003中的优先级队列可以包括如上所述的就绪队列、休眠队列、阻滞队列和放弃队列。代理控制模块1003还可以保存全部代理的状态追踪内容,并且在每次切换活跃代理时,将失活的代理状态追踪内容同步到全局状态追踪中,并将全局状态追踪内容同步到新激活的代理中。
图11示出了申请人在工程实现方面实现多任务型对话交互处理装置功能的被称为代理管理器(Agent Manager)的架构图,该代理管理器应用于对话主题管理层,负责管理各个对话主题的代理,从而实现对话交互过程中的主题管理。代理管理器负责在多任务型(多轮)对话交互过程中,管理因为用户对话目标改变而造成的对话主题的切换。根据对话交互过程主题独立的原则,可以将每个对话主题看做一个独立的具有封闭上下文的可执行的任务。如上所述,申请人使用代理控制块(Agent control block,简称ACB)来描述对话主题对应的代理,使用多个优先级队列来管理处于不同状态的代理,并通过一个事件管理器来接收对话过程中产生的各种事件,比如:用户输入事件、用户终止事件、主题业务逻辑完成、异步调用触发、异步调用完成、输入意图与当前代理不匹配等。事件管理器中为各个事件注册了相关的处理函数,每接收到一个事件就会调用相应的注册函数,该函数会操作代理管理器中的各个优先级队列,根据事件和询问匹配程度来更新各个队列中代理的优先级,选出最匹配当前轮对话的代理,作为当前激活代理来进行对话处理,而将不符合的代理按照事件类型和对话状态决定是否重置,然后放到相应的队列中。
代理管理器中可以包含如上所述的就绪队列、休眠队列、阻滞队列和放弃队列。代理管理器为了保证对话交互的一致性,还可以保存一份全部代理的状态追踪内容,每次切换活跃代理时,都会将失活的代理内容同步到全局状态追踪中,并将全局状态追踪内容同步到新激活的代理中。图11所示代理管理器中的“运行中代理”的架构可以采用图8所示的代理架构。
参考图12,其示出了可以用来实现本发明实施例的设备的一个计算机系统的结构示意图。需要说明的是,图12示出的设备仅仅是一个示例,不应理解为对本申请的实施例有任何限制作用。图12所示的计算机系统包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的程序,执行各种适当的动作和处理。在RAM 1203 中,还存储有计算机系统操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口 1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标、麦克风、触摸屏幕等的输入单元1206;包括诸如液晶显示器、发光二极管显示器等的显示屏幕、扬声器等的输出单元1207;包括硬盘存储器等的存储单元1208;以及包括诸如WAN/LAN卡、调制解调器等的网络接口卡的通信单元1209。通信单元1209经由诸如因特网、局域网等的网络执行通信处理。驱动器1210也可以根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储单元1208。
特别地,以上参考附图中的流程图描述的实施例可以被实现为计算机软件程序。例如,本申请说明书公开的实施例包括一种计算机程序产品,该计算机程序产品包含用于执行附图中各流程图所示的本发明的单任务型和/或多任务型对话交互处理方法的程序指令或代码。在这样的实施例中,该计算机程序可以通过通信单元1209从网络上下载和安装,以及/或者从可拆卸介质1211安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的方法。
需要说明的是,本申请所描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、闪存、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等,或者上述的任意合适的组合。
可以通过一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用互联网服务提供商来通过互联网连接)。
附图中的流程图和框图,示例性示出了按照本申请各实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。应当注意,在有些可作为替换的实施方式中,方框中所标注的功能也可以以不同于附图中所示的顺序发生。例如,两个依次表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。还要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。上述单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器,其包括接收模块、解析模块、对话逻辑处理模块以及输出模块。这些单元或模块的名称在某些情况下并不构成对该单元或模块本身的限定,例如,对话逻辑处理模块还可以被描述为“处理对话逻辑的模块”。
另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收用户输入的对话交互数据;对用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位;根据用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作;以及生成应答反馈数据,并将应答反馈数据返回至用户。或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收用户输入的对话交互数据;对用户输入的对话交互数据进行自然语言理解,识别用户对话主题;根据用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理;被选择的代理按照上述的单任务型对话交互处理方法进行对话交互处理;其余未被选择的代理按照代理优先级队列进行重置;以及接收下一轮用户输入的对话交互数据,重复步骤二至步骤五,直至多轮对话交互结束。
在本说明书中提及的所有文献都在本申请中引用作为参考,就如同每一篇文献被完整引用至本说明书作为参考。
此外应理解,在阅读了本发明的上述说明内容之后,本领域技术人员可以对本发明做出各种改动或修改,这些等同形式同样落入本发明的保护范围。
Claims (10)
1.一种单任务型对话交互处理方法,其特征在于,包括:
接收用户输入的对话交互数据;
对所述用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位;
根据所述用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作;以及
生成应答反馈数据,并将所述应答反馈数据返回至用户。
2.根据权利要求1所述的单任务型对话交互处理方法,其特征在于,在所述根据所述用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作的步骤中,使用有限状态机通过设置状态节点进行业务逻辑建模,所述状态节点包括:用户节点,机器人节点,功能节点,切换节点,槽位节点,以及主题节点。
3.根据权利要求1所述的单任务型对话交互处理方法,其特征在于,所述根据所述用户意图和/或槽位,按照用有限状态机建模的业务逻辑,结合状态驱动方式,利用对话轨迹追踪回溯和槽位约束机制执行操作的步骤包括:
利用在所述对用户输入的对话交互数据进行自然语言理解,识别用户意图并解析槽位的步骤中识别的用户意图和/或解析的槽位,更新状态分布;
有限状态机根据当前状态分布和即时约束列表决定对话状态是否转移,并更新对话轨迹和即时约束;
检查当前对话是否存在槽位否定或约束修改;
如果存在槽位否定或约束修改,则根据回溯列表定位回溯位置,有限状态机根据更新后的状态决定转移方向,并根据转移后的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑;以及
如果不存在槽位否定和约束修改,则根据当前的状态和有限状态机的节点位置执行有限状态机建模的业务逻辑。
4.根据权利要求3所述的单任务型对话交互处理方法,其特征在于,所述执行有限状态机建模的业务逻辑包括:
在该业务逻辑的下一节点为机器人节点的情况下,执行有限状态机的节点配置话术;或者
在该业务逻辑的下一节点不是机器人节点的情况下,执行基于对话动作的对话策略话术。
5.一种多任务型对话交互处理方法,其特征在于,包括:
接收用户输入的对话交互数据;
对所述用户输入的对话交互数据进行自然语言理解,识别用户对话主题;
根据所述用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理;
被选择的代理按照权利要求1-4中任一项所述的单任务型对话交互处理方法进行单任务型对话交互处理;
其余未被选择的代理按照代理优先级队列进行重置;以及
接收下一轮用户输入的对话交互数据,重复所述对用户输入的对话交互数据进行自然语言理解,识别用户对话主题的步骤至所述其余未被选择的代理按照代理优先级队列进行重置的步骤,直至多轮对话交互结束。
6.根据权利要求5所述的多任务型对话交互处理方法,其特征在于,在所述根据所述用户对话主题,按照代理优先级队列选择与用户对话主题最匹配的代理的步骤中,代理优先级队列通过以下方式进行设置:
为对话过程中产生的各种事件注册对应的处理函数;
针对接收到的事件调用相应的处理函数;以及
调用的所述处理函数对代理优先级队列进行操作,更新队列中代理的优先级。
7.根据权利要求6所述的多任务型对话交互处理方法,其特征在于,所述代理优先级队列包括:就绪队列,休眠队列,阻滞队列,以及放弃队列。
8.根据权利要求5所述的多任务型对话交互处理方法,其特征在于,所述方法还包括:保存全部代理的状态追踪内容,并且在每次切换活跃代理时,将失活的代理状态追踪内容同步到全局状态追踪中,并将全局状态追踪内容同步到新激活的代理中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1-8中任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713705.8A CN113468303B (zh) | 2021-06-25 | 2021-06-25 | 对话交互处理方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713705.8A CN113468303B (zh) | 2021-06-25 | 2021-06-25 | 对话交互处理方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468303A true CN113468303A (zh) | 2021-10-01 |
CN113468303B CN113468303B (zh) | 2022-05-17 |
Family
ID=77873121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110713705.8A Active CN113468303B (zh) | 2021-06-25 | 2021-06-25 | 对话交互处理方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468303B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721577A (zh) * | 2021-11-02 | 2021-11-30 | 西安热工研究院有限公司 | 面向多任务周期的数据交互方法和系统、设备及存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042404A1 (en) * | 2004-01-09 | 2010-02-18 | At&T Corp. | Method for building a natural language understanding model for a spoken dialog system |
US20120022872A1 (en) * | 2010-01-18 | 2012-01-26 | Apple Inc. | Automatically Adapting User Interfaces For Hands-Free Interaction |
US8346563B1 (en) * | 2012-04-10 | 2013-01-01 | Artificial Solutions Ltd. | System and methods for delivering advanced natural language interaction applications |
US20130042186A1 (en) * | 2011-08-11 | 2013-02-14 | Speakyourtongue, Inc | Real-time web-based debate platform |
US20130275164A1 (en) * | 2010-01-18 | 2013-10-17 | Apple Inc. | Intelligent Automated Assistant |
CN105589848A (zh) * | 2015-12-28 | 2016-05-18 | 百度在线网络技术(北京)有限公司 | 对话管理方法和装置 |
US20180357221A1 (en) * | 2017-05-10 | 2018-12-13 | Oracle International Corporation | Utilizing discourse structure of noisy user-generated content for chatbot learning |
CN109597607A (zh) * | 2018-10-31 | 2019-04-09 | 拓科(武汉)智能技术股份有限公司 | 任务型人机对话系统及其实现方法、装置与电子设备 |
CN109858019A (zh) * | 2018-12-28 | 2019-06-07 | 北京百度网讯科技有限公司 | 对话状态跟踪方法及装置、存储介质及语义识别系统 |
CN110148403A (zh) * | 2019-05-21 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 解码网络生成方法、语音识别方法、装置、设备及介质 |
US20190272323A1 (en) * | 2017-05-10 | 2019-09-05 | Oracle International Corporation | Enabling chatbots by validating argumentation |
CN110472030A (zh) * | 2019-08-08 | 2019-11-19 | 网易(杭州)网络有限公司 | 人机交互方法、装置和电子设备 |
CN110704594A (zh) * | 2019-09-27 | 2020-01-17 | 北京百度网讯科技有限公司 | 基于人工智能的任务型对话交互处理方法、装置 |
CN111078844A (zh) * | 2018-10-18 | 2020-04-28 | 上海交通大学 | 软件众包的任务型对话系统及方法 |
CN111241236A (zh) * | 2019-12-30 | 2020-06-05 | 新大陆数字技术股份有限公司 | 任务导向性问答方法、系统、电子设备、可读存储介质 |
CN111402872A (zh) * | 2020-02-11 | 2020-07-10 | 升智信息科技(南京)有限公司 | 用于智能语音对话系统的语音数据处理方法及装置 |
CN111611357A (zh) * | 2019-02-25 | 2020-09-01 | 北京嘀嘀无限科技发展有限公司 | 人机对话系统的配置方法、多轮对话配置平台及电子设备 |
CN112613534A (zh) * | 2020-12-07 | 2021-04-06 | 北京理工大学 | 一种多模态信息处理及交互系统 |
-
2021
- 2021-06-25 CN CN202110713705.8A patent/CN113468303B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042404A1 (en) * | 2004-01-09 | 2010-02-18 | At&T Corp. | Method for building a natural language understanding model for a spoken dialog system |
US20120022872A1 (en) * | 2010-01-18 | 2012-01-26 | Apple Inc. | Automatically Adapting User Interfaces For Hands-Free Interaction |
US20130275164A1 (en) * | 2010-01-18 | 2013-10-17 | Apple Inc. | Intelligent Automated Assistant |
US20130042186A1 (en) * | 2011-08-11 | 2013-02-14 | Speakyourtongue, Inc | Real-time web-based debate platform |
US8346563B1 (en) * | 2012-04-10 | 2013-01-01 | Artificial Solutions Ltd. | System and methods for delivering advanced natural language interaction applications |
CN105589848A (zh) * | 2015-12-28 | 2016-05-18 | 百度在线网络技术(北京)有限公司 | 对话管理方法和装置 |
US20190272323A1 (en) * | 2017-05-10 | 2019-09-05 | Oracle International Corporation | Enabling chatbots by validating argumentation |
US20180357221A1 (en) * | 2017-05-10 | 2018-12-13 | Oracle International Corporation | Utilizing discourse structure of noisy user-generated content for chatbot learning |
CN111078844A (zh) * | 2018-10-18 | 2020-04-28 | 上海交通大学 | 软件众包的任务型对话系统及方法 |
CN109597607A (zh) * | 2018-10-31 | 2019-04-09 | 拓科(武汉)智能技术股份有限公司 | 任务型人机对话系统及其实现方法、装置与电子设备 |
CN109858019A (zh) * | 2018-12-28 | 2019-06-07 | 北京百度网讯科技有限公司 | 对话状态跟踪方法及装置、存储介质及语义识别系统 |
CN111611357A (zh) * | 2019-02-25 | 2020-09-01 | 北京嘀嘀无限科技发展有限公司 | 人机对话系统的配置方法、多轮对话配置平台及电子设备 |
CN110148403A (zh) * | 2019-05-21 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 解码网络生成方法、语音识别方法、装置、设备及介质 |
CN110472030A (zh) * | 2019-08-08 | 2019-11-19 | 网易(杭州)网络有限公司 | 人机交互方法、装置和电子设备 |
CN110704594A (zh) * | 2019-09-27 | 2020-01-17 | 北京百度网讯科技有限公司 | 基于人工智能的任务型对话交互处理方法、装置 |
CN111241236A (zh) * | 2019-12-30 | 2020-06-05 | 新大陆数字技术股份有限公司 | 任务导向性问答方法、系统、电子设备、可读存储介质 |
CN111402872A (zh) * | 2020-02-11 | 2020-07-10 | 升智信息科技(南京)有限公司 | 用于智能语音对话系统的语音数据处理方法及装置 |
CN112613534A (zh) * | 2020-12-07 | 2021-04-06 | 北京理工大学 | 一种多模态信息处理及交互系统 |
Non-Patent Citations (2)
Title |
---|
XIAO-JUN WU 等: ""A HYBRID DIALOGUE MANAGEMENT APPROACH"", 《PROCEEDINGS OF THE FIRST INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND CYBERNETICS》 * |
黄民烈 等: ""对话管理中基于槽特征有限状态自动机的方法研究"", 《计算机学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721577A (zh) * | 2021-11-02 | 2021-11-30 | 西安热工研究院有限公司 | 面向多任务周期的数据交互方法和系统、设备及存储介质 |
CN113721577B (zh) * | 2021-11-02 | 2022-02-11 | 西安热工研究院有限公司 | 面向多任务周期的数据交互方法和系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113468303B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10466885B2 (en) | Transactional conversation-based computing system | |
CN109313667B (zh) | 构建特定于状态的多轮上下文语言理解系统的系统和方法 | |
US11056107B2 (en) | Conversational framework | |
US20190362252A1 (en) | Learning user preferences in a conversational system | |
US9172747B2 (en) | System and methods for virtual assistant networks | |
US11658925B2 (en) | Configuring a chatbot with remote language processing | |
US20170018271A1 (en) | Delayed binding in response selection during input understanding processing | |
CN109033223A (zh) | 用于跨类型对话的方法、装置、设备以及计算机可读存储介质 | |
WO2018039049A1 (en) | Multi-turn cross-domain natural language understanding systems, building platforms, and methods | |
US11468881B2 (en) | Method and system for semantic intelligent task learning and adaptive execution | |
JP7141482B2 (ja) | 複数ターン会話におけるパブリックシナリオ会話のバックトラッキング方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
US10474439B2 (en) | Systems and methods for building conversational understanding systems | |
US10621976B2 (en) | Intent classification from multiple sources when building a conversational system | |
CN111145745B (zh) | 对话流程定制方法及装置 | |
CN113468303B (zh) | 对话交互处理方法及计算机可读存储介质 | |
CN109857502A (zh) | 实现业务逻辑与显示分离的方法及业务逻辑与显示分离的系统架构 | |
US20220075960A1 (en) | Interactive Communication System with Natural Language Adaptive Components | |
US20220343901A1 (en) | Systems and methods of implementing platforms for bot interfaces within an intelligent development platform | |
US11380306B2 (en) | Iterative intent building utilizing dynamic scheduling of batch utterance expansion methods | |
CN115879469B (zh) | 文本数据处理方法、模型训练方法、装置及介质 | |
US11949635B2 (en) | Proactive and reactive directing of conversational bot-human interactions | |
US20220180865A1 (en) | Runtime topic change analyses in spoken dialog contexts | |
US20230169354A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics to Support Distributed Lineage Tracking | |
US20230168923A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics | |
CN112466292A (zh) | 语言模型的训练方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220207 Address after: 100085 Floor 101 102-1, No. 35 Building, No. 2 Hospital, Xierqi West Road, Haidian District, Beijing Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd. Address before: 101300 room 24, 62 Farm Road, Erjie village, Yangzhen Town, Shunyi District, Beijing Applicant before: Beijing fangjianghu Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |