CNN 文本分类
下面就列举了几篇运用CNN进行文本分类的论文作为总结。
1 yoon kim 的《Convolutional Neural Networks for Sentence Classification》。(2014 Emnlp会议)
他用的结构比较简单,就是使用长度不同的 filter 对文本矩阵进行卷积,filter的宽度等于词向量的长度,然后使用max-pooling 对每一filter提取的向量进行操作,最后每一个filter对应一个数字,把这些filter拼接起来,就得到了一个表征该句子的向量。最后的预测都是基于该句子的。该模型作为一个经典的模型,作为很多其他改领域论文里实验参照。
2 《A Convolutional Neural Network for Modelling Sentences》(2014 ACL会议)
这个模型看起来就相对复杂一些,不过其基础也是基于卷积的。每一层的卷积操作之后同样会跟上一个max pooling操作。整个模型操作相对于上面的那个模型比较繁琐,同时我有以下几个比较质疑的地方:
1 倒数第二到倒数第三层使用了k-max 的pooling操作,也就是说第三层中相邻的词语对应于原来的句子可能不再是相邻的,而且它们只有相对的先后关系保存了下来。倒数第三层中不同卷积平面对应的词语在原句子中可能处于不同的位置,甚至是不同的词语,因此倒数第三道倒数第四之间的卷积是没有意义的。
2 关于这里的folding操作。把同一个词语向量的不用维度之间进行加法操作,这样原文里是这样解释的“With a folding layer, a feature detector of the i-th order depends now on two rows of feature values in the lower maps of order i -1.”。但是这样的操作有意义吗??从来没有见人提到用过,也许我们未来可以探索一下这样是否能够提高卷积器的性能。
3《A C-LSTM Neural Network for Text Classification》(arXiv preprint arXiv)
其实这篇论文里只是用cnn对原文的词向量以某一长度的filter进行卷积抽象,这样原来的纯粹词向量序列就变成了经过卷积的抽象含义序列。最后对原句子的encoder还是使用lstm,由于使用了抽象的含义向量,因此其分类效果将优于传统的lstm,这里的cnn可以理解为起到了特征提取的作用。
4 《Recurrent Convolutional Neural Networks for Text Classification》(2015 AAAi会议)
正如标题所说的,把lstm和cnn结合起来了,不过这个结合的方式和上面的不一样。举例来说对于词序列: A B C D E F来说,在形成C词的向量化表示的时候,使用的不再仅仅是C的word embedding,而是C左边的内容构成的向量和C以及C右边内容构成的向量的拼接形式。由于使用到了左右两边的内容故使用的是双向的Lstm。然后如图中所示使用1-d convolution的方式得到一系列的y,最后经过max-pooling的方式得到整个句子的向量化表示,最后的预测也是基于该句子的。
5 《Learning text representation using recurrent convolutional neural network with highway layers》(arXiv preprint arXiv)
这个模型几乎就是稍微的更改了一下4中的模型,只不过在C向量拼接完毕将要进行卷积操作之前经过了一个highway而已。(本人对于仅仅加了一个highway就能提高模型准确率的做法感到十分怀疑,毕竟这个网络的层数并不深)
CNN 文本分类的更多相关文章
- CNN文本分类
CNN用于文本分类本就是一个不完美的解决方案,因为CNN要求输入都是一定长度的,而对于文本分类问题,文本序列是不定长的,RNN可以完美解决序列不定长问题, 因为RNN不要求输入是一定长度的.那么对于C ...
- pytorch -- CNN 文本分类 -- 《 Convolutional Neural Networks for Sentence Classification》
论文 < Convolutional Neural Networks for Sentence Classification>通过CNN实现了文本分类. 论文地址: 666666 模型图 ...
- CNN 文本分类模型优化经验——关键点:加卷积层和FC可以提高精度,在FC前加BN可以加快收敛,有时候可以提高精度,FC后加dropout,conv_1d的input维度加大可以提高精度,但是到256会出现OOM。
network = tflearn.input_data(shape=[None, max_len], name='input') network = tflearn.embedding(networ ...
- CNN tensorflow text classification CNN文本分类的例子
from:http://deeplearning.lipingyang.org/tensorflow-examples-text/ TensorFlow examples (text-based) T ...
- 文本分类:Keras+RNN vs传统机器学习
摘要:本文通过Keras实现了一个RNN文本分类学习的案例,并详细介绍了循环神经网络原理知识及与机器学习对比. 本文分享自华为云社区<基于Keras+RNN的文本分类vs基于传统机器学习的文本分 ...
- 文本分类需要CNN?No!fastText完美解决你的需求(后篇)
http://blog.csdn.net/weixin_36604953/article/details/78324834 想必通过前一篇的介绍,各位小主已经对word2vec以及CBOW和Skip- ...
- 文本分类需要CNN?No!fastText完美解决你的需求(前篇)
http://blog.csdn.net/weixin_36604953/article/details/78195462?locationNum=8&fps=1 文本分类需要CNN?No!f ...
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
https://zhuanlan.zhihu.com/p/25928551 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类 ...
- [转] 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
转自知乎上看到的一篇很棒的文章:用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文 ...
随机推荐
- 给tableView设置背景图片
经常遇到要给tableView设置背景图片的问题,但如果直接设置背景 backgroundView的话,背景图不会显示,原因是 tableView上的cell默认是不透明的颜色,所以解决方法是 让 ...
- C# Excel添加超链接
操作当前单元格(关键代码就两行) Range range = (Range)ExSheet.Cells[i + 2, j + 1]; ...
- kubernetes之configmap,深度解析mountPath,subPath,key,path的关系和作用
参考:https://www.cnblogs.com/breezey/p/6582082.html 我们知道,在几乎所有的应用开发中,都会涉及到配置文件的变更,比如说在web的程序中,需要连接数据库, ...
- python 优先队列
python 优先队列 from queue import PriorityQueue q = PriorityQueue() q.put((2, 'code')) q.put((1, 'eat')) ...
- MySQL存储过程定义中的特性(characteristic)的含义
MySQL的存储过程蛮啰嗦的,与MSSQL或者Oracle的存储过程相比,如果没有显式指定,他会隐含地指定一系列特性(characteristic)的默认值来创建存储过程 通常在使用图形界面工具进行存 ...
- Python常用字符编码
字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一 ...
- SpringCloud-day02-服务消费者项目建立
4.4microservice-ticket-consumer-80服务消费者项目建立 我们新建一个服务器提供者module子模块,类似前面建的common公共模块,名称是 microservice- ...
- 使用JavaMail发送邮件-从FTP读取图片并添加到邮件正文发送
业务分析: 最近工作需要,需要从FTP读取图片内容,添加到邮件正文发送.发送邮件正文,添加附件采用Spring的MimeMessageHelper对象来完成,添加图片也将采用MimeMessageHe ...
- gcc 与 g++的区别
原文: http://www.cnblogs.com/wb118115/p/5969775.html ------------------------------------------------- ...
- c++ 面试题(网络类)
1,若服务器方单独终止之后,客户端继续发数据会怎么样? https://blog.csdn.net/Nick_666/article/details/78342442 https://www.zhih ...