只能聊设定好的固定主题。若用户用无关领域挑战机器人,机器人用安全话术回复或结束对话。
用户不需要有明确的目的或意图。
通过检索知识库来回答问题,仅取决知识库的内容。
KBQA系统。问答的来源是一个知识库,知识库可能是图数据库、RDF三元组、Mysql等。问题的答案是通过知识库推理得来的。
阅读理解任务。根据用户问题,从文档中自动检索答案返回。
语料库中保存大量的问题和答案组,用户的问题在给定的问答集中,将答案返回。
答案的来源是人工编写的模板,根据用户的问题,通过一系列算法找到对应的答案模板,返回给用户。
通过NLG技术(自然语言生成模板)生成。专业程度不高,适合自动生成。
一问一答,多轮对话之间没有特定关系。
多轮交互式,以最终完成某个任务为对话结束,每轮交互与上文有关系,整个问答流程类似一个软件流程图。
聊天多为兴趣爱好等闲聊。
从用户输入到系统输入作为一个整体去训练,希望训练一个从用户端自然语言输入到机器端自然语言输出的整体映射关系。
输入——自言语言理解(NLU)——对话状态追踪(DST)——对话策略学习(DPL)——自然语言生成(NLG)——输出。
利用搜索来预测
通过问题——答案的匹配算法对候选答案进行打分及排序,选出分值最高的回答作为最终回复。
将用户问题与问答库中的句板模板进行匹配。若匹配成功,则根据句型模板提取用户问句中的语义信息,生成相应的答案
类型:用户提问的事实性问题。
基于知识图谱的具体问答流程:
(1) 句型判断
判断用户提问时闲聊还是问答。
如:北京的面积是多少?——判断是问答。
(2) 句子实体抽取
将用户提问的实体抽取出来。
如:实体是北京
(3) 实体匹配
确认提取实体的具体语义、类别
北京是地名
(4) 相似度匹配
使用词向量、模糊匹配对用户提问的属性进行匹配
“是多少”对应的是“面积”
(5) 查询图谱
得到用户提问的答案,即:北京的面积
(6) 进行回答
将查询图谱得到的答案用事先准备的回答模板处理后,返回给用户。
初步获取用户意图后,需要更多轮次的对话获取必要的信息以最终得到明确的用户指令的方式。
定义:是一个决策过程,需要机器在对话过程中不断根据当前的状态决策下一步应该采取的最优动作(如:提供结果、询问特定限制条件、澄清或确认需求等),从而能够最有效地辅助用户完成信息或服务获取的任务。
核心模块:自然语言理解模块(NLU)、对话管理模块(DM)、自然语言生成模块(NLG)。
❃ 槽:多轮对话过程中,将初步用户意图转化为明确用户指令所需要补全的信息对话管理模块。
❃ 【一个槽】对应【一件事情的处理中所需要获取的一种信息】
- 词槽:利用用户话中关键词来填写的槽。
- 接口槽:利用用户画像及其他场景信息填写的槽。
❃ 澄清话术:希望获取某种信息时所使用的问句。如买衣服,需要知道东西的价格、颜色等属性。
❃当接收到用户问句后,对未填充完成的必填槽组依次进行澄清。
对话管理DM:控制人机对话的进程,通过对NLU输出的处理来进行和用户的交互和反应。
通过该过程,带有明确意图的用户不断完善/修正自己的需求,且需求不够具体时明确/澄清用户需求。
对话状态追踪DST:持续对话的各种信息。根据上一时刻状态、用户状态、系统状态更新当前的对话状态。
对话策略学习DPL:对该场景下缺失槽位的反问策略。根据当前时刻的对话状态和系统状态,决定下一步的系统行为。
基于模板、基于语法、模型等。
话题切换:从一个多轮过程切换至另一个多轮过程,一个任务型多轮对话有多个不同的场景。
数据层:提供数据存储访问服务。如数据库、缓存、文件、搜索引擎。
算法层:意图识别、对话生成、排序。
服务层:为应用层提供服务支持,如对话流程管理、用户权限管理、对话内容管理
应用层:负责具体的对话业务视图展示,如对话内容显示等。
标准文案更新但没有及时更新机器人回复话术。产品上线时回复话术A,但是过一段时间,修改回复话术为B,没有同步修改机器人。
修改方法:对系统标准文案进入后台管理系统进行管理,回复不当的文案有一个反馈机制。
注意不要高并发访问数据库
需要考虑系统的性能。
生产环境不可被当测试环境使用。
参考文献:
刘宇, 崔燕红, 郭师光等.聊天机器人:入门 进阶与实战[M].机械工业出版社,2019:212.
对话机器人概述:https://zhuanlan.zhihu.com/p/331791105