本文重点
本文中我们将学习使用文本分类模型TextCNN来完成文本的分类任务,TextCNN是应用卷积神经网络对文本数据进行分类的模型。卷积神经网络的和心思想是捕捉局部特征,对于文本来说,局部特征就是由若干单词组成的滑动窗口,类似于N-gram。卷积神经网络的优势在于能够自动地对N-gram特征进行组合和筛选,获得不同抽象层次的语义信息。
模型的简单介绍
如上所示,我们先将文本以矩阵的形式进行表示,矩阵的每一行是一个词,每个词使用词向量表示(可以是word2vec,可以是Glove等等形式),此时的矩阵为一个通道的,虽然画了很多通道,然后经过不同大小卷积核进行从上到下的卷积,从而输出一个向量,需要注意的是不同大小卷积核卷积出来的向量长度是不一致的,为了一致,我们可以使用池化操作,这样每一个向量都可以池化为一个点,然后所有点结合起来就又构成了一个向量,此时这个向量就表示了原始的矩阵,然后我们对这个向量使用全连接层进行映射,然后使用softmax进行分类。
如果我们把这个过程展开,我们可以得到下面的模型表示:
如上所示就很清晰了,一个文本矩阵,经过不同大小的卷积核卷积(卷积核大小2,3,4),然后卷积完成之后直接池话,然后拼接为一个向量,最终映射到两个节点的全连接层,那么最终可以使用softmax完成二分类问题。
textCNN 的流程
为了解释的再清楚一些,我们分步骤来演示:
(1)构建词向量
(2)卷积操作
(3)最大池化层
(4)softmax k