文本分类A C-LSTM Neural Network for Text Classification

Posted 征途黯然.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本分类A C-LSTM Neural Network for Text Classification相关的知识,希望对你有一定的参考价值。

·摘要:
  本文作者将CNN和RNN(LSTM)结合使用,应用到了NLP的文本分类任务中。
·参考文献:
  [1] A C-LSTM Neural Network for Text Classification 论文链接:https://arxiv.org/abs/1511.08630

[1] 摘要

  · 论文结合CNN和RNN(LSTM)模型提出了C-LSTM模型,应用于文本分类。

  · C-LSTM利用CNN提取抽象的高级特征,并将其送入长短期记忆递归神经网络(LSTM)中得到句子表示。最终通过全连接层来做分类任务。

  · C-LSTM既能捕捉短语的局部特征(CNN),也能捕捉句子的序列信息(LSTM)。

[2] 介绍

  2.1、NLP中CNN与RNN的优缺点:
  CNN能够从时间或空间数据中学习局部响应,但缺乏学习序列相关性的能力;另一方面,RNN专门用于序列建模,但不能并行提取特征。

  2.2、C-LSTM核心思想:

CNNLSTMC-LSTM
嵌入层嵌入层嵌入层
卷积层LSTM层卷积层
池化层全连接层LSTM层
全连接层全连接层

  C-LSTM模型将CNN卷出来的窗口特征,组织成序列化窗口特征作为LSTM的输入。通过这种方式,不是直接从输入的句子构建LSTM,而是首先将每个句子转换为连续的窗口(n-gram)特征。

在网络结构中的全连接层之前,所做的工作都是在寻找一种最好的文本向量化表示方法。

  2.3、C-LSTM模型图:
  官方图:

  如上图,设有一个batch中的一个文本[“The”,“movie”,“is”,“awesome”,"!"]。卷积核边长为3 x 4,卷积通道为4。那么对于初始的文本向量,会产生出4通道的3 x 1维feature map。然后再把多通道的feature map中对应位置提取在一起,作为LSTM的输入。

  池化层会破坏卷积后的序列性,所以模型中没有池化。

【注一】这里卷积核宽度为embedding层维度,这样卷积后的一个通道的size为n行一列,转置一下就是个一维数组了。
【注二】 在torchtext中,如果想把卷积层的输出作为LSTM层的输入的话,需要设置LSTM层的input_size等于卷积层的filter_num(卷积通道数)。

[3] 疑问?

  1、CNN中卷积核的长宽设置问题,宽不等于embedding_dims时,时什么情况?
  2、如何比较不同模型之间的精度?同一模型每次运行的精度都不一样。

[4] 获取本项目的源代码

如果需要本项目的源代码,请扫描关注我的公众号,回复“论文源码”。

以上是关于文本分类A C-LSTM Neural Network for Text Classification的主要内容,如果未能解决你的问题,请参考以下文章

文本分类Recurrent Convolutional Neural Networks for Text Classification

文本分类Recurrent Convolutional Neural Networks for Text Classification

多标签文本分类Initializing neural networks for hierarchical multi-label text classification

文本分类Deep Pyramid Convolutional Neural Networks for Text Categorization

多标签文本分类Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text

多标签文本分类Improved Neural Network-based Multi-label Classification with Better Initialization ……