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

转载 2018年04月16日 10:45:05

访问flyai.club,一键创建你的人工智能项目。

来源 | 景略集智


在本文中,我们会分享 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。


 End 

一文助你解决90%的自然语言处理问题(附代码)

作者:Emmanuel Ameisen来源:机器之心本文约5000字,建议阅读9分钟。本文为大家解析了人工智能领域中的自然语言如何处理。自然语言处理(NLP)与计算机视觉(CV)一样,是目前人工智能领...
  • tMb8Z9Vdm66wH68VX1
  • tMb8Z9Vdm66wH68VX1
  • 2018年02月04日 00:00
  • 397

【NPL】如何解决90%的自然语言处理问题:分步指南奉上

选自InsightDataScience作者:Emmanuel Ameisen机器之心编译参与:白悦、李泽南自然语言处理(NLP)与计算机视觉(CV)一样,是目前人工智能领域里最为重要的两个方向。如何...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2018年03月03日 00:00
  • 371

Python自然语言处理 6 学习分类文本

回答下列问题: (1)怎样才能识别出语言数据中明显用于分类的特征? (2)怎样才能构建用于自动执行语言处理任务的语言模型? (3)从这些模型中我们可以学到哪些关于语言的知识? 决策树,朴素贝叶斯分类器...
  • QFire
  • QFire
  • 2017年11月24日 17:48
  • 422

机器学习/深度学习/自然语言处理学习路线

原文地址:http://www.cnblogs.com/cyruszhu/p/5496913.html 1 基础 l  Andrew NG 的 Machine Learning视频...
  • huang1024rui
  • huang1024rui
  • 2016年05月17日 20:25
  • 839

机器学习、深度学习与自然语言处理领域推荐的书籍列表

机器学习、深度学习与自然语言处理领域推荐的书籍列表 是笔者 Awesome Reference 系列的一部分;对于其他的资料、文章、视频教程、工具实践请参考面向程序猿的数据科学与机器学习知识体系及...
  • whywhom
  • whywhom
  • 2017年03月07日 16:14
  • 461

主流深度学习框架对比

深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、DeepLearning4...
  • u012017783
  • u012017783
  • 2017年02月20日 20:20
  • 25052

深度学习(15):Inference

推理
  • liujiandu101
  • liujiandu101
  • 2017年03月06日 21:43
  • 597

手把手教你解决90%的自然语言处理问题

无论你是成熟的公司,还是想要推出一个新服务,都可以利用文本数据来验证、改进和扩展产品的功能。科学的从文本数据中提取语义并学习是自然语言处理(NLP)研究的一个课题。NLP每天都会产生新的令人兴奋的结果...
  • MIcF435p6D221sSdLd2
  • MIcF435p6D221sSdLd2
  • 2018年02月10日 00:00
  • 121

MIT自然语言处理第三讲:概率语言模型(第一、二、三部分)

MIT自然语言处理第三讲:概率语言模型(第一部分) 自然语言处理:概率语言模型 Natural Language Processing: Probabilistic Lan...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年03月10日 12:56
  • 1062

python 自然语言分析第六周作业

"""写一个程序按长度对词排序。定义一个辅助函数 cmp_len,它在词长上使用 cmp 比较函数""" def cmp_len(a,b): if len(a)>=len(b): ...
  • qq_26948675
  • qq_26948675
  • 2017年04月23日 15:16
  • 584
收藏助手
不良信息举报
您举报文章:13个用Python解决自然语言处理问题的深度学习框架
举报原因:
原因补充:

(最多只允许输入30个字)