在前面课程当中,我们完成了意图识别和命名实体识别,两个模型的训练,并且把知识数据导入到了数据库当中。到目前为止,才算真正的把准备工作做完了,接下来就正式进入用户问题解析,和答案匹配的环节。

流程解析

按正常的交流习惯,用户在正式问诊之前,可能会问一些闲聊类的问题,比如:你好、你是真人吗,这类问题。

但是,在意图识别的模型中,并没有这些分类,而且这类问题也不应该放到模型当中,分类越多,模型出错的几率越大。所以,进入模型之前,我们可以先做一个简单的过滤,如果是打招呼之类的闲聊信息,就不用进模型,直接返回一些固定的回复就可以了。

用户提交问题 -> 闲聊目的 -> 判断意图(打招呼、问身份)-> 返回数据
           -> 问诊目的 -> 意图识别、实体识别 -> 匹配模板 -> 查询CQL -> 返回数据

根据这个流程,我们就先来做第一步,判断用户问题是不是闲聊的目的。

闲聊意图分类

greet:你好、hi、有人吗
isbot:你是谁、你是机器人吗、怎么称呼
goodbye:再见、bey、拜拜
deny:不是、不对、错了
accept:是、对的、没错

前面三个场景很好理解,都是日常对话的内容,deny和accept这两个分类,看上去有点奇怪,其实这两个分类,是为后面的问诊环节留的口子

在问诊环节,是用模型去判断用户意图的,在模型不是特别确定的时候,就可以发起一个追问,比如:你是想问感冒的症状吗?用户就可能回复是或者不是,对应的就是accept和deny这两个分类。

可能大家也注意到了,这个闲聊意图并不是纯粹的闲聊,还有可能是用户确认的信息,所以,后面课程中,统一以下措词,把这个环节叫做“初始意图”。

这节课,虽然没有具体的代码,但非常重要,给大家留点时间,消化一下这个流程,也可以想一想,如果让你做一个问诊的对话系统,这个流程你会怎么设计。

本文链接:http://www.ichenhua.cn/edu/note/636

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!