/CNN-for-Sentence-Classification-in-Keras

Convolutional Neural Networks for Sentence Classification in Keras

Primary LanguagePythonMIT LicenseMIT

Convolutional Neural Networks for Sentence Classification

Train convolutional network for sentiment analysis. Based on "Convolutional Neural Networks for Sentence Classification" by Yoon Kim, link. Inspired by Denny Britz article "Implementing a CNN for Text Classification in TensorFlow", link. For "CNN-rand" and "CNN-non-static" gets to 88-90%, and "CNN-static" - 85%

Some difference from original article:

  • larger IMDB corpus, longer sentences; sentence length is very important, just like data size
  • smaller embedding dimension, 20 instead of 300
  • 2 filter sizes instead of original 3
  • much fewer filters; experiments show that 3-10 is enough; original work uses 100
  • random initialization is no worse than word2vec init on IMDB corpus
  • sliding Max Pooling instead of original Global Pooling

Dependencies

  • The Keras Deep Learning library and most recent Theano backend should be installed. You can use pip for that. Not tested with TensorFlow, but should work.