word2vec+textcnn文本分类简述及代码(包含中文文本分类实战)

  首先看一张图,这是来自炼数成金的讲师Ben关于深度学习框架tensorflow课程中的一张图,这就是textcnn的结构,这张图更加的言简意赅,一般理解了这张图就基本掌握了nlp的深度学习分类的方法;

  word2vec+textcnn文本分类简述及代码(包含中文文本分类实战)_第1张图片

 简单总结一下:

  首先我对这些矩阵数据从0-17做了标号,方便后续的说明;其中0为输入数据“I like this movie very much !”,nlp中首先会将要处理的一句话转换为矩阵的表示,通常使用word2vec的方式转为矩阵向量,上图中word2vec的矩阵维度d=5,用5个0-1的浮点数组表示一个词的向量;1、2、3、4、5、6为6个不同卷积核,其中卷积核的宽度d必须为5,(1、2),(3、4),(5、6)的维度两两相同;卷积核1从上向下与0相乘,首先是0的前四列(I like this movie)与1相乘,得到7的第一行(就一个值),然后0的第二列到第五列(like this movie very)与1相乘,得到7的第二行...依次类推,我们就得到了7、8、9、10、11、12的卷积结果,再经过max pooling,取7最大的值及8中最大的值组成13,取9、10中各自最大的值组成14,取11、12中各自最大的值组成15,最后将13、14、15拼接成16,整个卷积、池化这些特征提取的工作就完成了,最后在16和17之间加上一层全连接,17表示网络的输出为2,到这里整个分类工程基本搭建好了。

代码实现

这里我们参考google brain的工程师在github上的cnn-text-classification-tf代码

上面链接下载解压之后可直接运行,代码逻辑也较清晰;之后有时间会把训练及测试数据改为中文


如果想要实现word2vec+textcnn中文文本分类,请点击这个text-cnn代码链接,或者去github上查找你所想要的工程代码。

上面的代码我已验证过,可以实现,效果还是很好的;同样你也可以查找下目前较流行的bert文本分类的实现方法。

 

 

目录:

  1. tensorflow简介、目录
  2. tensorflow中的图(02-1)
  3. tensorflow变量的使用(02-2)
  4. tensorflow中的Fetch、Feed(02-3)
  5. tensorflow版helloworld---拟合线性函数的k和b(02-4)
  6. tensorflow非线性回归(03-1)
  7. MNIST手写数字分类simple版(03-2)
  8. 二次代价函数、交叉熵(cross-entropy)、对数似然代价函数(log-likelihood cost)(04-1)
  9. 多层网络通过防止过拟合,增加模型的准确率(04-2)
  10. 修改优化器进一步提升准确率(04-3)
  11. 手写数字识别-卷积神经网络cnn(06-2)
  12. 循环神经网络rnn与长短时记忆神经网络简述(07-2)
  13. 循环神经网络lstm代码实现(07-3)
  14. tensorflow模型保存和使用08
  15. 下载inception v3  google训练好的模型并解压08-3
  16. 使用inception v3做各种图像分类识别08-4
  17. word2vec模型训练简单案例
  18. word2vec+textcnn文本分类简述及代码

你可能感兴趣的:(word2vec+textcnn文本分类简述及代码(包含中文文本分类实战))