由于要做一个对话系统,必然要涉及到意图识别模块,所以想梳理一个意图识别的思路:
由于本人做的是一个特定领域的事情,假设以教育场景为切入点:
我们设想用户的输入语句:
比如:1.你好! (拟人话语句)
2.浙江语文教材是什么版本的?(问答)
3.我女儿想报一个数学辅导班,有什么推荐的么?(推荐类)
因为我们现在要做语意识别:
目前我的思路是这样做的:
1.搜索常用对话库,如果匹配直接输出,不做分类
2.规则过滤,比较明显的先做一层过滤,直接把通过规则能分类的直接走规则
3.无法通过规则过滤的走机器学习,模型分类
因为拟人语料和问答推荐差异较大,可以定义为两类
所以先把拟人话语句和问答推荐类分开
用的是一个CNN的文本分类方法,代码如下:
https://github.com/dennybritz/cnn-text-classification-tf
4.再把归入问答和推荐类的,分类为问答 或 推荐 两类
首先,我觉得可以先做一个句子相似度的判断,即判断输入句子和已有的句子做一个相似度,
如果相似度在某一阈值之上,则认为用户问题就是语料库中某一问题,直接输出结果。句子相似度是tf-idf和语义相似度的一个加权平均。
如果相似度在某一阈值之下,则二度采用CNN实现的分本分类