13个用Python解决自然语言处理问题的深度学习框架

Posted 景略集智

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13个用Python解决自然语言处理问题的深度学习框架相关的知识,希望对你有一定的参考价值。



在本文中,我们会分享 Python 编程语言中可用于自然语言处理(NLP)的最流行的神经网络框架和库,也会举一些使用这些工具的现有例子。


专门创建的比较表中,每个带有加号的单元格都包含一个链接,它关联至 NLP 任务和网络类型透视图中的框架使用示例。


Chainer

https://chainer.org/

Chainer 由 2014 年成立的日本公司 Preferred Networks 开发,是一种功能强大,灵活且直观的基于 Python 的神经网络框架。它存储的是计算历史,而非编程逻辑。Chainer 支持 CUDA 计算和多 GPU。该框架在 MIT 许可证下发布,已经应用于情感分析,机器翻译,语音识别,问题回答等诸多领域,这些领域的项目使用不同类型的神经网络,如卷积网络,递归网络和序列模型。


Deeplearning4j

https://deeplearning4j.org/

Deeplearning4j 是一个深度学习的 Java 编程库,但它也有后面我们会提到的的 Python API,Keras。它的主要特点是分布式 CPU 和 GPU,通过迭代缩减进行并行训练以及微服务架构适应。向量空间建模使该工具能够解决文本挖掘问题。工具文档中主要讲了词性(PoS)标记,依赖关系解析和用于创建词嵌入的 word2vec(https://deeplearning4j.org/nlp)。


Deepnl

https://github.com/attardi/deepnl

Deepnl 是另一个神经网络 Python 库,特别为 Giuseppe Attardi 自然语言处理而创建的。它提供了用于词性标注,实体识别命名,语义角色标注(使用卷积神经网络)和嵌入词创建的工具。


Dynet

https://github.com/clab/dynet

Dynet 是由卡内基梅隆大学和其他许多公司开发的工具。它支持 C++ 和 Python 语言,可以在 CPU 或 GPU 上运行。Dynet 基于网络结构的动态声明,可用于为 NLP 问题创建出色的系统,能够解决句法分析,机器翻译,形态变形等等 NLP 问题。


Keras

https://keras.io/

Keras 是一种基于高级神经网络的 Python API,可以在 CPU 或 GPU 上运行。它支持卷积神经网络和循环神经网络,可以在 TensorFlow,CNTK 或 Theano 上运行。它的重点是让用户快速进行实验。Keras 可以有很多用途:分类,文本生成和摘要,标记,解析,机器翻译,语音识别等。


Nlpnet

https://github.com/erickrf/nlpnet

Erick Rocha Fonseca 的 nlpnet 也是一个基于神经网络处理 NLP 任务的 Python 库。卷积网络使用户能够进行词性标注,语义角色标注和依赖性分析。大多数架构都是独立于语言的。


OpenNMT

http://opennmt.net/

OpenNMT 是一种 Python 机器翻译工具,基于 MIT 许可证运行,并依赖于 PyTorch 库。该系统演示高效并且具有最先进的准确翻译,被许多翻译供应商采用。它还包含文本摘要,语音识别和图像到文本转换等模块。


PyTorch

http://pytorch.org/

PyTorch 是一种快速灵活的神经网络框架,并含有一个必带的范例。它在基于磁带的 autograd 系统上构建神经网络,并通过强大的 GPU 加速提供张量计算。递归神经网络主要用于 PyTorch 中,用于机器翻译,分类,文本生成,标记和其他 NLP 任务。


SpaCy

https://spacy.io/

开发人员称spaCy是世界上速度最快的系统。他们还坚称 SpaCy 是准备深度学习文本的最佳方式。Spacy 对于像 gensim,Keras,TensorFlow 和 scikit-learn 等知名的 Python 库应用非常出色。该程序库作者 Matthew Honnibal 说,spaCy 的使命是让前沿的 NLP 实用且通用,可用于文本分类,实体识别命名,词类标注,依赖性分析等。


斯坦福的 CoreNLP

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

斯坦福大学的 CoreNLP 是一种灵活、快速、现代的语法分析工具,它可以为大多数常见编程语言(包括 Python)提供 API。它还具有为简单 Web 服务运行的功能。正如它的官网上所说,该框架包含词性(POS)标记器,命名实体识别器(NER),解析器,共情解析系统,情感分析,引导式模式学习和开放式信息抽取工具。


Tensorflow

https://www.tensorflow.org/

Google Brain 团队开发了 TensorFlow 并出于研究目的在 2015 年将其发布。现在很多公司如空客,英特尔,IBM,Twitter 和其他公司都在规模生产上使用 TensorFlow。Tensorflow 系统架构灵活,因此可以在 CPU 或 GPU 上执行计算。它的主要概念是流程图的使用。图的节点反映数学运算,而边代表在它们之间通信的多维数据阵列(张量)。TensorFlow 最著名的 NLP 应用之一是谷歌翻译。其他应用包括文本分类和总结,语音识别,标记等。


TFLearn

http://tflearn.org/

由于 Tensorflow 是一个低级 API,所以创建了许多高级 API 以在其上运行,让用户体验更快,更易于理解。TFLearn 可以在 CPU 或 GPU 上运行。它有一个特殊的图形可视化工具,包含有关权重,渐变,激活等详细信息。该库已用于情感分析,文本生成和实体识别命名。它可以让用户使用卷积神经网络和递归神经网络(LSTM)。


Theano

https://github.com/Theano/Theano

Theano 是一种数值计算 Python 库,它使用户可以创建自己的机器学习模型。很多类似 Keras 这样的框架都建立在 Theano 之上的。该库已应用于机器翻译,语音识别,文字嵌入和文本分类等。在表中查看 Theano 的应用程序。


小结

在本文,我们分享了支持用神经网络解决自然语言处理问题的 Python 工具,包括 Chainer,Deeplearning4j,Deepnl,Dynet,Keras,Nlpnet,OpenNMT,PyTorch,SpaCy,斯坦福大学的 CoreNLP,TensorFlow,TFLearn 和 Theano。


参考资料:
https://medium.com/@datamonsters/13-deep-learning-frameworks-for-natural-language-processing-in-python-2b84a6b6cd98





官方微博:@景略集智




商务合作:chenyang@jizhi.im

投稿转载:kexiyang@jizhi.im


景略集智-业界领先的人工智能教育、求职平台







以上是关于13个用Python解决自然语言处理问题的深度学习框架的主要内容,如果未能解决你的问题,请参考以下文章

车万翔《基于深度学习的自然语言处理》中英文PDF+涂铭《Python自然语言处理实战核心技术与算法》PDF及代码

13.深度学习(词嵌入)与自然语言处理

13.深度学习(词嵌入)与自然语言处理--HanLP实现

用深度学习解决自然语言处理中的7大问题,文本分类语言建模机器翻译

《基于深度学习的自然语言处理》中文PDF+英文PDF+学习分析

python深度学习进阶(自然语言处理)-自然语言和单词的分布式表示