之前聊了场景、产品结构、包括发展方向等
今天接着写具体的模块
一次完整的人机交互:用户抛出问题(这也是现在一个大问题,机器人不能主动发问引导用户),理解用户的意图,针对用户意图触发相应的回复,再接着交流下一轮;
由此,引出对话的几种情况:单轮得到答案,几次交互和多轮交互,对应的目前实现的几类方法:QA、意图、多轮对话;
1. QA
一个问题就是一个完整的意图,通过意图匹配(相似度打分)得到置信度最高的结果并给出相应的回复;
这是最简单的情况,单轮问答也可以使用图谱问答来实现并且可以实现更多样的问答;
实际上,在单轮对话间也会有语义继承的情况,
比如:xxx保险的介绍 35岁能不能办?
后者明显需要继承前者的实体【xxx保险】,才能变成一个完整的句子去进行下一轮匹配问答,这在对话中叫【问句补全】;
再比如:xxx保险的介绍? 它有年龄限制吗?
后者的【它】很明显指代了前句中的【xxx保险】,但是机器人是无法理解的,因此需要使用【指代消解】能力进行替换才能方便语义理解;
这只是对话中的两类问题;后面继续完善;
2. 意图
即填槽能力;
用户一次没有完整表述意图,需要追问得到更多信息的交互场景;
如:订机票 这就缺失了出发地、目的地、出发时间必要信息以及航空公司、飞机大小、行李额、是否含餐等等的非必要筛选信息;
3. 多轮对话
有上下文呢要求,需要根据用户的回答决定回答内容的对话场景;
目前多轮对话是发展的主要方向,能适应更多场景和业务需求;
如:办理账单分期,和填槽的区别在于这是个复杂业务,涉及到的用户信息会更多,用户的表述也会更加复杂,因此选择用多轮对话实现;
对对话类型只是做了一些简单的介绍,在介绍完整理概念之后,会开始写对这些内容的思考和想法。
未完待续