之前开始做语义理解的时候,笔者采用的是比较粗暴的方法进行匹配。随着语料的积累,语料库的规模变得越来越大,匹配的效率也随着越来越低,对语料进行意图分类的想法也就随着产生。
当用户输入之后,系统首先对输入进行意图分类,然后对分类下的语料进行匹配,从而减轻计算量,提高系统的匹配效率。
本文只是简单的阐述一下意图分析的典型思路和方法,并实现一个基本的意图分类器,而无意系统的探究意图分类。更详细的探讨后文再进行。
本文按照如下流程进行叙述:
- 数据准备
- 特征提取
- 模型准备
- 训练模型
- 使用模型
数据准备
假设有3个场景:吃饭、打招呼、再见。那么三个场景下会有什么样的对话呢?
比如:
- 今天这个菜真好吃!
- 嗨!今天天气不错!
- 今天很开心,明天见!
很明显,人眼一看就能看出对应的句子应该是哪个类别了:
- 今天这个菜真好吃! ->吃饭
- 嗨!今天天气不错! ->打招呼
- 今天很开心,明天见! ->再见
到这里,我们模型需要的数据就有了。可以很清晰的写出下面的代码:
list_sen=['今天这个菜真好吃!','嗨!今天天气不错!','今天很开心,明天见!']
需要的数据就有了,下一步是提取特征。