本文主要介紹一些基於Python,用於自然語言處理( NLP )的常用的神經網路框架和庫。
Chainer
Chainer是由日本公司Preferrence Networks於2014年建立的,是一個功能強大、靈活、直觀的基於Python語言的神經網路框架,採用一種“define-by-run”方案[ 1 )。它儲存計算的歷史而不是程式設計邏輯。Chainer支援CUDA計算和multi-GPU計算。該框架是在達到MIT許可條件下釋出,並且已經應用於情感分析、機器翻譯、語音識別、問答等,使用不同型別的神經網路,例如摺積網路、遞迴網路和序列到序列的模型。
Deeplearning4j
Deep learning 4j是一個由Java語言編寫深度學習程式設計庫,但也有一個Python API,Keras,下麵將對此進行介紹。分散式CPU和GPU、迭代約簡(iterative reduce)的並行訓練和微服務體系結構自適應(micro-service architecture adaptation)是其主要特點。向量空間建模(Vector space modeling)使該工具能夠解決文字挖掘問題,用於詞性( PoS )標記、依存性解析和word2vec用於訓練詞向量。
Deepnl
Deepnl是由Giusppe Attardi開發的一款為自然語言處理而專門建立的神經網路Python庫。它提供了用於詞性標註、命名物體識別、語意角色標註(使用摺積神經網路)和詞向量訓練的工具。
Dynet
Dynet是卡內基梅隆大學和很多其他許多大學聯合開發的工具。它支援c++和Python語言,可以在CPU或GPU上執行。dynet是基於網路結構的dynamic declaration。該工具用於為NLP問題建立優秀的系統,包括句法分析、機器翻譯、形態變化(morphological inflection)等。
Keras
Keras是一個基於高階神經網路的Python API,執行在CPU或GPU上。它支援摺積和遞迴網路,並且可以在Tensorflow、CNTK或Theano之上執行。主要關註點是使使用者能夠快速進行實驗。實際中有許多Keras用法的示例:分類、文字生成和摘要、標記、解析、機器翻譯、語音識別等。
Nlpnet
Erick Rocha Fonseca的nlpnet也是一個基於神經網路的用於NLP任務的Python庫。摺積網路使使用者能夠進行詞性標註、語意角色標註和依賴性解析。大多數架構都是語言獨立的。
OpenNMT
Openmt是一個基於Python的機器翻譯工具,符合MIT license,並依賴PyTorch庫。該系統展示了效率和最先進的翻譯準確性,並被許多翻譯提供商所使用。它還可以用於文字摘要生成、語音識別和影象到文字轉換等。
PyTorch
PyTorch是一個快速靈活的神經網路框架,具有一種勢在必行的架勢。它在tape-based自體移植系統上搭建神經網路,並提供具有超強GPU加速度的tensor computation。遞迴神經網路主要用於機器翻譯、分類、文字生成、標記和其他NLP任務。
SpaCy
開發人員稱SpaCy是世界上最快的系統。他們還稱SpaCy是為深度學習準備文字語料的最佳方式。SpaCy在gensim、Keras、TensorFlow和scikit – learning等知名Python庫上執行良好。其作者馬修·洪尼巴爾說,SpaCy的使命是使最先進的自然語言處理技術實用化,並得到廣泛應用,比如用於文字分類、命名物體識別、詞性標註、依存句法分析等。
Stanford’s CoreNLP
斯坦福大學的CoreNLP是一個靈活、快速、現代化的語法分析工具,為包括Python在內的大多數常見程式語言提供了APIs。它還可以為簡單web應用提供服務。正如官方網站上提到的,該框架具有詞性( POS )標記器、命名物體識別器( NER )、解析器、coreference resolution system、情感分析、自舉樣式學習和開放資訊提取工具。
Tensorflow
谷歌大腦團隊開發了TensorFlow,並於2015年釋出,主要用於研究。現在許多公司如Airbus、英特爾、IBM、Twitter等都在工業生成中都使用Tensorflow。系統架構靈活,因此可以在CPU或GPU上高效執行。主要概念是流圖(flow graph)。圖的節點反映數學運算次數,而邊表示結點之間通訊的多維資料陣(張量)。TensorFlow最著名的NLP應用程式之一是谷歌翻譯。其他應用包括文字分類和摘要生成、語音識別、標註等。
TFLearn
由於是Tensorflow的一個低階API,因此建立了許多高階API來執行在它上面,以使使用者體驗更快、更容易理解。TFLearn是在CPU和GPU上執行的主要工具之一。它有一個特殊的圖形視覺化工具,詳細展示了權重,梯度,啟用等模型訓練情況。該庫已經用於情感分析、文字生成和命名物體識別。它允許使用者使用摺積神經網路和遞迴神經網路( LSTM )。
Theano
Theano是一個數字計算Python庫,使用者可以建立自己的機器學習模型。像Keras這樣的許多框架都是建立在Theano之上。用於機器翻譯、語音識別、詞向量計算和文字分類的工具。
Summary
在本文中,我們介紹了基於Python編寫的,用於進行自然語言處理的主流的神經網路庫。這些工具是Chainer、Deeplearning 4j、Deepnl、Dynet、Keras、Nlpnet、Openmt、PyTorch、SpaCy、斯坦福大學的CoreNLP、Tensorflow、TFLearn和Theano。
相關資源
1. https://chainer.org/
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
往期精彩內容推薦
斯坦福大學2017年春季_基於摺積神經網路的視覺識別課程影片教程及ppt分享
深度學習與NLP 深度學習|機器學習|人工智慧 精品影片教程合集分享
純乾貨15 48個深度學習相關的平臺和開源工具包,一定有很多你不知道的!!!
純乾貨14 2017年-李宏毅-最新深度學習/機器學習中文影片教程分享_後篇
模型彙總19 強化學習(Reinforcement Learning)演演算法基礎及分類
模型彙總17 基於Depthwise Separable Convolutions的Seq2Seq模型_SliceNet原理解析
DeepLearning_NLP
深度學習與NLP
商務合作請聯絡微訊號:lqfarmerlq