cnn在自然语言处理的应用-textcnn实战

时间:2020-04-07 09:29:16   收藏:0   阅读:80

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

  技术分享图片

 简单总结一下:

  首先我对这些矩阵数据从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代码

原文:https://www.cnblogs.com/go-ahead-wsg/p/12650693.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!