本文主要介绍一些基于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