口语对话管理综述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31214097/article/details/84521763

口语对话管理综述

作者:王菁华

对话系统的基本流程

1 语音识别(将用户输入的声音转化成文本)命令行输入时可不用(ASR)

2自然语言分析(NLU) 对ASR输出的文本进行分析,建立语义表示。

3对话管理 核心部分,根据NLU分析出的用户语义控制整个对话的进行

4后台数据库 进行查询数据

5自然语言生成 将文本结构合成声音(NLG)

核心部分:

从NLU服务器接收分析出来的结果,根据保存的对话状态和对历史判断对话流程,组织回答发送给NLG,若查询条件满足则组织进行后台数据库的查询。

对话管理系统应当根据对话历史建立上下文信息,并根据上下文正确理解用户输入。

现流行的是用户与系统主导的对话系统,用户可以提出问题,系统根据查询条件是否满足回馈用户,若查询条件满足,则进行查询数据库组织语言返回,若不满足,则对用户进行提问来查找缺少的查询条件。

对话管理设计方法介绍

1 基于状态图的结构

利用有限状态机来控制对话的进行,类似于RNN,s表示状态,x表示用户输入,y表示系统输出。s(t+1) = r(s(t),x(t)) 这表示一状态,y(t) = u(s(t),x(t)),表示系统输出,即下一状态由当前状态和系统输入决定,输出由当前状态和用户输入决定。个人感觉类似于RNN

缺点:需要考虑到用户提问的全部情况,小对话时可使用 例如提问bye thank you这种,当需要查询条件多时无法满足。灵活性较差。但响应较快。

2 填充槽结构

采用多维特征向量来表示对话的情况。可以在对话的过程中不断修改向量的值,对于操作的顺序没有严格限制,根据现在状态进行响应,随后根据用户的回答或系统的反应修改特征向量。

缺点:也需要列出所有可能状态。

3 基于任务的结构

任务是指用户为达到某一 目的采取的一系列操作或对话。可以采用树进行表示

电影服务是根节点,随后以下各个节点表示为解决该任务所需要的信息,要素之间的关系可通过与或者 “或” 进行表示,系统首先判断是什么任务,建立任务树,随后提问用户所需要的查询信息,根据用户回答来填充树。

4 基于逻辑表达式的结构

将上述任务树转换成逻辑表达式与的结构。

根任务表达成各个自信息元素的集合。是对任务树的一种抽象,信息要素之间的关系表达更为简单明了。

买飞机票的任务树转换成逻辑表达式

5状态图和逻辑表达式混合使用

对于简单的提问 例如谢谢 再见等可用有限状态机来进行表示,而对于复杂的提问。可建立对应的任务树或者逻辑表达式进行信息条件填充,查询和应答。

猜你喜欢

转载自blog.csdn.net/qq_31214097/article/details/84521763