TextCNN简介与应用

1.基本原理介绍

     TextCNN常用来做短文本的分类问题,其基本网络结构如下图所示:

TextCNN简介与应用

从上图不难看出,TextCNN主要包括嵌入层、卷积层、池化层和全联接softmax层:

  • Embedding:这一层是图中最左边的7乘5的句子矩阵,高为句子中单词的个数,宽为词向量的纬度,这个可以类比为图像中的原始像素点。
  • Convolution:这一层经过 kernel_sizes=(2,3,4) 的一维卷积层,每个kernel_size 有两个输出 channel。
  • MaxPolling:第三层是一个1-max pooling层,这样不同长度句子经过pooling层之后都能变成定长的表示。
  • FullConnection and Softmax:最后接一层全连接的 softmax 层,输出每个类别的概率。

大致过程是:来了一个句子,先根据词向量得到一个二维句子矩阵,然后选择不同的过滤器(大小为filter_size * embedding_len)进行卷积操作得到多个feature map, 对每个feature map进行最大池化操作,进而将其拼接起来,最后经过softmax全联接层进行分类。

 

2.应用实践

代码下载:基于tensorflow 实现的用textcnn方法做情感分析

(1)核心代码解析

Tensorflow版TextCNN主要代码解析

(2)运行出现的错误:

ModuleNotFoundError: No module named 'word2vec'

FLAGS._parse_flags()报错AttributeError:_parse_flags

 

参考

TextCNN模型原理和实现

深度学习:TextCNN