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及代码
用深度学习解决自然语言处理中的7大问题,文本分类语言建模机器翻译