CNN用于文本分类本就是一个不完美的解决方案,由于CNN要求输入都是必定长度的,而对于文本分类问题,文本序列是不定长的,RNN能够完美解决序列不定长问题,网络
由于RNN不要求输入是必定长度的。那么对于CNN用于解决文本分类问题而言,能够判断文本的长度范围,例如若是大多数文本长度在100如下,极少数在100以上,那就blog
能够设定文本长度是100,不足100的文本用padding补齐,多于100的文本则截断。具体过程以下图:神经网络
首先把分词以后的句子按照设定的维度展开,这里维度是9,每一个单词都会有一个向量表达,维度是6(word embedding),而后用一个一维卷积核(也能够是多个)对其进行卷积操做,注意,单词的Embedding的长度就是原始输入的通道数,也就是卷积核的通道数;卷积操做以后,再对其进行Pooling操做,有max-pool和average-pool操做两种,注意,这里是对时间维度,也就是句子序列上作Pooling;最后再输入到一个全链接神经网络中,获得分类结果。并行
CNN和RNN用于解决文本分类问题的对比:im