朋友,千萬不能錯過!13個自然語言處理的深度學習框架

本文主要介紹一些基於Python,用於自然語言處理( NLP )的常用的神經網路框架和庫。原文鏈接:medium.com/@datamonster

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. chainer.org/

2. learningsys.org/papers/

3. deeplearning4j.org/

4. aclweb.org/anthology/W1

5. github.com/attardi/deep

6. github.com/clab/dynet

7. arxiv.org/pdf/1701.0398

8. keras.io/

9. github.com/erickrf/nlpn

10. nilc.icmc.usp.br/nlpnet

11. opennmt.net/

12. opennmt.net/OpenNMT/app

13. pytorch.org/about/

14. spacy.io/

15. stanfordnlp.github.io/C

16. tensorflow.org/

17. tflearn.org/

18. github.com/Theano/Thean

19. github.com/odashi/chain

往期精彩內容推薦

千萬不要錯過!ICLR-2018精品論文解析

歷史最全GAN網路及其各種變體整理(附論文及代碼實現)

斯坦福大學2017年春季_基於卷積神經網路的視覺識別課程視頻教程及ppt分享

深度學習傑出人物專訪系列(Andrew Ng)分享(一)

深度學習與NLP 深度學習|機器學習|人工智慧 精品視頻教程合集分享

純乾貨15 48個深度學習相關的平台和開源工具包,一定有很多你不知道的!!!

純乾貨14 2017年-李宏毅-最新深度學習/機器學習中文視頻教程分享_後篇

模型匯總19 強化學習(Reinforcement Learning)演算法基礎及分類

模型匯總17 基於Depthwise Separable Convolutions的Seq2Seq模型_SliceNet原理解析

11純乾貨7 Domain Adaptation視頻教程(附PPT)及經典論文分享

深度學習模型-13 遷移學習(Transfer Learning)技術概述

推薦閱讀:

TAG:深度學習DeepLearning | 自然語言處理 | 機器學習 |