对话管理
最后更新于
这有帮助吗?
对话管理模型框架如下所示,包括输入理解、对话管理和响应生成三个模块。本系统的对话管理模块额外囊括了输入预处理与响应检查两个部分,涵盖敏感词过滤、用户识别、问句类型判断、问答回复检查等功能,对系统的对话逻辑进行优化,使得所生成回复尽可能满足用户所需,提升用户体验度。下面针对系统从接受用户问句到生成响应输出的对话管理全流程进行简要介绍。
输入理解模块首先对输入问句进行敏感词过滤,并进行用户识别,随后从数据库中取出该用户的对话历史信息,并将其传递至对话管理模块;对话管理模块是对话系统的核心组成部分,其需要根据输入的对话历史信息,对用户的对话意图进行判断,即进行意图识别,并根据识别出的意图调用对应的对话子模生成相应的回复,意图识别子任务的性能对于系统能否生成合理回复而言至关重要;在生成回复后,响应检查模块将对系统产生的回复进行正确性和礼貌性两方面的检查,对于无法满足要求的响应,系统将不予显示给用户。另外,对话管理模块还将对用户反馈进行收集,以此更新对话状态,并作为下一轮次时意图识别的依据之一。
对话管理模块能够对用户的意图进行识别(包括但不限于闲聊、知识查询、查询天气等意图),并针对不同意图调用相应的对话子模块进行回复。系统识别用户多种意图并进行响应的对话实例如下图所示。在该段对话中,用户意图由无目的闲聊,转为查询天气的特定任务,再到询问开放领域的特定知识,系统均可以正确识别并分别调用了闲聊问答、任务问答和知识问答子模块产生相应回复。
对话管理模块能够对多轮对话进行管理,即从历史信息中抽取信息、对当前问句的语义进行补全,最后生成响应。体现支持多轮对话的对话实例如下图所示。用户询问的“有哪些旅游景点”实际上省略了上一轮对话中的“北京”,系统在多轮对话管理的赋能下可以成功补全信息并生成合理回复。
对话管理模块利用数据库技术保存所有使用者的对话信息,并保证对不同用户的对话状态进行独立管理,从而支持多用户同时进行可定制化的对话流程。
当系统生成的响应涉及以下情形,对话管理模块将对该响应进行过滤从而不予显示给用户:
触发敏感词:如言语辱骂、政治敏感等词语。
检测到常识性错误:如针对知识问答进行检查,如“刘翔的身高是多少-78公斤“问答对的结果将被丢弃。