13 Deep Learning Frameworks for Natural Language Processing in Python

Data Monsters
Feb 5, 2018 · 7 min read

by Olga Davydova

In this paper, we discuss the most popular neural network frameworks and libraries that can be utilized for natural language processing (NLP) in the Python programming language. We also look at existing examples of these tools.

A comparative table was specially created. Every cell with a plus sign contains a link to a framework usage example in NLP task and network type perspectives.

A table fragment

Chainer

Deeplearning4j

Deepnl

Dynet

Keras

Nlpnet

OpenNMT

PyTorch

SpaCy

Stanford’s CoreNLP

Tensorflow

TFLearn

Theano

Summary

Resources

2. http://learningsys.org/papers/LearningSys_2015_paper_33.pdf

3. https://deeplearning4j.org/

4. http://www.aclweb.org/anthology/W15-1515

5. https://github.com/attardi/deepnl

6. https://github.com/clab/dynet

7. https://arxiv.org/pdf/1701.03980.pdf

8. https://keras.io/

9. https://github.com/erickrf/nlpnet

10. http://nilc.icmc.usp.br/nlpnet/

11. http://opennmt.net/

12. http://opennmt.net/OpenNMT/applications/

13. http://pytorch.org/about/

14. https://spacy.io/

15. https://stanfordnlp.github.io/CoreNLP/

16. https://www.tensorflow.org/

17. http://tflearn.org/

18. https://github.com/Theano/Theano

19. https://github.com/odashi/chainer_nmt

Additional resources

https://github.com/chainer/chainer/tree/master/examples/word2vec

https://github.com/chainer/chainer/tree/master/examples/sentiment

https://github.com/marevol/cnn-text-classification

https://github.com/butsugiri/chainer-rnn-ner

https://github.com/khanhptnk/seq2seq-chainer

https://github.com/kenkov/seq2seq

https://github.com/chainer/chainer/tree/master/examples/ptb

https://github.com/masashi-y/chainer-parser

https://cs.stanford.edu/~danqi/papers/emnlp2014.pdf

http://learningsys.org/papers/LearningSys_2015_paper_33.pdf

https://arxiv.org/pdf/1611.01604.pdf

https://deeplearning4j.org/nlp

https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/nlp/paragraphvectors/ParagraphVectorsClassifierExample.java

https://deeplearning4j.org/word2vec

https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/recurrent/character/GravesLSTMCharModellingExample.java

http://www.aclweb.org/anthology/W15-1515

https://github.com/attardi/deepnl

https://github.com/attardi/deepnl/blob/master/deepnl/pos_tagger.py

https://github.com/attardi/deepnl/blob/master/deepnl/networkconv.pyx

https://github.com/attardi/deepnl/blob/master/deepnl/ner_tagger.py

https://github.com/attardi/deepnl/blob/master/deepnl/classifier.pyx

https://github.com/attardi/deepnl/blob/master/deepnl/sentiwords.pyx

http://www.aclweb.org/anthology/W15-1515

https://github.com/attardi/deepnl/blob/master/deepnl/embeddings.py

https://github.com/attardi/deepnl/blob/master/deepnl/tagger.pyx

https://github.com/attardi/deepnl/blob/master/deepnl/networkseq.pyx

https://github.com/attardi/deepnl/blob/master/deepnl/extractors.pyx

https://github.com/clab/dynet

https://arxiv.org/pdf/1701.03980.pdf

https://github.com/neubig/lamtram

https://github.com/bplank/bilstm-aux

http://phontron.com/slides/emnlp2016-dynet-tutorial-part1.pdf

https://github.com/toru34/kim_emnlp_2014

https://github.com/roeeaharoni/dynmt-py

http://phontron.com/slides/emnlp2016-dynet-tutorial-part2.pdf

http://dynet.readthedocs.io/en/latest/tutorials_notebooks/RNNs.html

https://github.com/clab/lstm-parser

https://github.com/clab/joint-lstm-parser

https://github.com/neubig/modlm

https://github.com/odashi/nmtkit

https://github.com/lvapeab/nmt-keras

https://chsasank.github.io/spoken-language-understanding.html

https://github.com/igormq/asr-study

https://github.com/llSourcell/How_to_make_a_text_summarizer

https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py

https://github.com/fchollet/keras/blob/master/examples/lstm_text_generation.py

https://github.com/farizrahman4u/seq2seq

https://github.com/fchollet/keras/blob/master/examples/imdb_cnn.py

https://github.com/udibr/headlines

https://github.com/wolet/s2s-dependency-parsers

https://github.com/0xnurl/keras_character_based_ner

https://github.com/fchollet/keras/blob/master/examples/imdb_bidirectional_lstm.py

https://github.com/fchollet/keras/blob/master/examples/reuters_mlp.py

https://github.com/codekansas/keras-language-modeling

https://link.springer.com/content/pdf/10.1186%2Fs13173-014-0020-x.pdf

http://nilc.icmc.sc.usp.br/nlpnet/models.html#word-embeddings-portuguese

http://nilc.icmc.sc.usp.br/nlpnet/models.html#pos-portuguese

http://nilc.icmc.sc.usp.br/nlpnet/models.html#srl-portuguese

http://nilc.icmc.sc.usp.br/nlpnet/models.html#dependency-and-pos-english

https://github.com/erickrf/nlpnet/blob/master/nlpnet/taggers.py

https://github.com/erickrf/nlpnet/blob/master/nlpnet/networkconv.pyx

https://github.com/erickrf/nlpnet/blob/master/nlpnet/networkdependencyconv.pyx

http://www.aclweb.org/anthology/W15-1508

https://github.com/erickrf/nlpnet

http://nilc.icmc.usp.br/nlpnet/

http://opennmt.net/OpenNMT/applications/#machine-translation

http://opennmt.net/OpenNMT/applications/#summarization

http://opennmt.net/OpenNMT/applications/#speech-recognition

http://opennmt.net/OpenNMT/applications/#sequence-tagging

http://opennmt.net/OpenNMT/applications/#language-modelling

http://opennmt.net/OpenNMT/training/embeddings/

https://arxiv.org/pdf/1701.02810.pdf

http://opennmt.net/OpenNMT/applications/

http://pytorch.org/about/

http://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html

http://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html#

http://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html

http://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html

https://github.com/spro/practical-pytorch/blob/master/char-rnn-generation/char-rnn-generation.ipynb

https://github.com/spro/practical-pytorch/blob/master/conditional-char-rnn/conditional-char-rnn.ipynb

https://spacy.io/

https://spacy.io/docs/usage/pos-tagging

https://spacy.io/docs/usage/word-vectors-similarities

https://spacy.io/docs/usage/entity-recognition

https://spacy.io/docs/usage/dependency-parse

https://spacy.io/docs/usage/deep-learning

https://explosion.ai/blog/spacy-deep-learning-keras

https://stanfordnlp.github.io/CoreNLP/

http://apps.cs.utexas.edu/tech_reports/reports/tr/TR-2222.pdf

https://nlp.stanford.edu/projects/mt.shtml

https://github.com/Lynten/stanford-corenlp

https://github.com/stanfordnlp/treelstm

https://arxiv.org/pdf/1609.08409.pdf

https://nlp.stanford.edu/sentiment/

https://www.tensorflow.org/

https://github.com/tensorflow/nmt

https://arxiv.org/pdf/1609.08144.pdf

https://github.com/mrahtz/tensorflow-pos-tagger

https://github.com/pannous/tensorflow-speech-recognition

https://www.tensorflow.org/tutorials/word2vec

https://github.com/monikkinom/ner-lstm

https://github.com/dennybritz/cnn-text-classification-tf

https://research.googleblog.com/2016/08/text-summarization-with-tensorflow.html

https://github.com/tensorflow/models/tree/master/research/textsum

https://www.tensorflow.org/tutorials/recurrent

http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/

http://jrmeyer.github.io/tutorial/2016/02/01/TensorFlow-Tutorial.html

http://tflearn.org/

https://github.com/dhwajraj/NER-RNN

https://github.com/tflearn/tflearn/blob/master/examples/nlp/cnn_sentence_classification.py

https://github.com/tflearn/tflearn/blob/master/examples/nlp/bidirectional_lstm.py

https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm.py

https://github.com/tflearn/tflearn/blob/master/examples/nlp/seq2seq_example.py

https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_shakespeare.py

https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_cityname.py

https://github.com/EdinburghNLP/nematus

https://github.com/ZhangAustin/Deep-Speech

https://github.com/llSourcell/How_to_make_a_text_summarizer

http://deeplearning.net/tutorial/rnnslu.html

https://raberrytv.wordpress.com/2016/12/26/efficient-embeddings-with-theano/

https://github.com/yoonkim/CNN_sentence

https://deeplearning4j.org/convolutionalnets.html

https://deeplearning4j.org/usingrnns

https://github.com/neulab/xnmt

https://github.com/memeda/sequence-labeling-by-nn

https://cs.umd.edu/~miyyer/pubs/2017_acl_dynsp.pdf

http://ben.bolte.cc/blog/2016/language.html

http://pyvideo.org/pydata-carolinas-2016/deep-language-modeling-for-question-answering-using-keras.html

https://github.com/chartbeat-labs/textacy

http://iamaaditya.github.io/2016/04/visual_question_answering_demo_notebook

https://github.com/hans/corenlp-summarizer

https://nlp.stanford.edu/software/relationExtractor.html

https://github.com/spiglerg/RNN_Text_Generation_Tensorflow

https://github.com/paarthneekhara/neural-vqa-tensorflow

https://github.com/DeepRNN/visual_question_answering

https://github.com/llSourcell/How_to_do_Sentiment_Analysis

https://github.com/Lasagne/Recipes/blob/master/examples/lstm_text_generation.py

https://github.com/glample/tagger

https://github.com/Sentimentron/Dracula

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.646.4491&rep=rep1&type=pdf

https://github.com/hiroki13/neural-semantic-role-labeler

https://github.com/carpedm20/hali

https://github.com/saltypaul/Seq2Seq-Chatbot

Data Monsters

Written by

https://datamonsters.com