深度學習用于文本分類的論文及代碼集錦
這篇文章主要利用CNN基于預訓練好的詞向量中對句子進行分類。作者發現利用微調來學習任務相關的詞向量可以提升模型效果。
網絡結構示例如下

各個資料集統計資訊如下
各模型結果對比如下
a
通道對模型結果影響示例如下
代碼位址
https://github.com/yoonkim/CNN_sentence (Theano)
https://github.com/dennybritz/cnn-text-classification-tf (Tensorflow)
https://github.com/harvardnlp/sent-conv-torch (Torch)
我是分割線
[2] A Convolutional Neural Network for Modelling Sentences
Nal Kalchbrenner
University of Oxford
ACL 2014
http://www.aclweb.org/anthology/P14-1062
這篇文章提出一種動态卷積神經網絡,并将其用于句子中的語義模組化。該網絡中的池化算子為動态k最大池化法,該算子用于線性序列。本文中的網絡可以處理變長的句子,并對句子推理出特征圖,該特征圖不僅可以捕獲短距離關系,也可以捕獲長距離關系。另外,該網絡不依賴解析樹,可以用于任何種類的語言。
寬窄卷積對比如下
整體結構如下
模型結果示例如下
https://github.com/FredericGodin/DynamicCNN (Theano/Lasagne)
[3] Character-level Convolutional Networks for Text Classification
Xiang Zhang et al.
NIPS 2015
https://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification.pdf
這篇文章主要讨論字元級别的卷積神經網絡。
模型結構示例如下
卷積層示例如下
全連接配接層示例如下
資料集統計資訊如下
https://github.com/zhangxiangxiao/Crepe (Torch)
https://github.com/mhjabreel/CharCNN (Tensorflow)
https://github.com/srviest/char-cnn-text-classification-pytorch (PyTorch)
[4] Hierarchical Attention Networks for Document Classification
Zichao Yang et al.
Carnegie Mellon University, Microsoft Research
這篇文章提出分層注意力網絡用于文檔分類。該模型的分層結構可以對應到文檔的分層結構;該網絡的注意力機制包含單詞級别和句子級别的兩種注意力機制,這有助于發現文檔中的重要内容。
分層注意力網絡結構如下
各方法結果對比如下
https://github.com/richliao/textClassifier (keras)
https://github.com/ematvey/hierarchical-attention-networks (Tensorflow)
https://github.com/EdGENetworks/attention-networks-for-classification (Pytorch)
[5] Recurrent Convolutional Neural Networks for Text Classification
Siwei Lai et al.
Chinese Academy of Sciences
這篇文章提出循環卷積神經網絡用于文本分類,無需人工設計特征。循環結構用于捕捉上下文資訊,該結構相對傳統基于視窗的神經網絡方法可以減少噪聲。該文中利用最大值池化法來自動選擇文本中比較重要的詞,使其對文本分類作用較大。
各方法效果對比如下
上下文視窗大小影響示例如下
https://github.com/airalcorn2/Recurrent-Convolutional-Neural-Network-Text-Classifier (Keras)
[6] Very Deep Convolutional Networks for Text Classification
Alexis Conneau et al.
Facebook AI Research
ACL 2017
這篇文章利用VDCNN在字元級别上處理文本,并且卷積和池化算子都比較小,即所依賴的單元數較少。該文中利用了29個卷積層。
樣本及标簽示例如下
網絡結構如下
其中卷積塊結構如下
各卷積塊對應的卷積層數如下
https://github.com/geduo15/Very-Deep-Convolutional-Networks-for-Natural-Language-Processing-in-tensorflow (TensorFlow)
https://github.com/zonetrooper32/VDCNN (TensorFlow keras)
[7] Do Convolutional Networks Need to Be Deep for Text Classification?
Hoa T. Le et al.
LORIA
AAAI 2018
這篇文章讨論了文本分類中卷積網絡的深度的重要性。
淺寬卷積神經網絡示例
字元級别的DenseNet示例如下
Dense Block 示例如下
各模型效果對比如下