文本分类的目的和分类的方法
1. 文本分类的目的
回顾之前的流程,我们可以发现文本分类的目的就是为了进行意图识别
在当前我们的项目的下,我们只有两种意图需要被识别出来,所以对应的是2分类的问题
可以想象,如果我们的聊天机器人有多个功能,那么我们需要分类的类别就有多个,这样就是一个多分类的问题。例如,如果希望聊天机器人能够播报当前的时间,那么我们就需要准备关于询问时间的语料,同时其目标值就是一个新的类别。在训练后,通过这个新的模型,判断出用户询问的是当前的时间这个类别,那么就返回当前的时间。
同理,如果还希望聊天机器人能够播报未来某一天的天气,那么这个机器人就还需要增加一个新的进行分类的意图,重新进行训练
2. 机器学习中常见的分类方法
在前面的机器学习的课程中我们学习了朴素贝叶斯,决策树等方法都能够帮助我们进行文本的分类,那么我们具体该怎么做呢?
2.1 步骤
-
特征工程:对文本进行处理,转化为能够被计算的向量来表示。我们可以考虑使用所有词语的出现次数,也可以考虑使用tfidf这种方法来处理
-
对模型进行训练
-
对模型进行评估
2.2 优化
使用机器学习的方法进行文本分类的时候,为了让结果更好,我们经常从两个角度出发
-
特征工程的过程中处理的更加细致,比如文本中类似你,我,他这种词语可以把它剔除;某些词语出现的次数太少,可能并不具有代表意义;某些词语出现的次数太多,可能导致影响的程度过大等等都是我们可以考虑的地方
-
使用不同的算法进行训练,获取不同算法的结果,选择最好的,或者是使用集成学习方法
3. 深度学习实现文本分类
前面我们简单回顾了使用机器学习如何来进行文本分类,那么使用深度学习该如何实现呢?
在深度学习中我们常见的操作就是:
-
对文本进行embedding的操作,转化为向量
-
之后再通过多层的神经网络进行线性和非线性的变化得到结果
-
变换后的结果和目标值进行计算得到损失函数,比如对数似然损失等
-
通过最小化损失函数,去更新原来模型中的参数