原文链接:
人工智能博客微信公众号:aibbtcom
本文主要介绍一些基于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是一个快速灵活的神经网络框架,具有一种势在必行的架势。它在tape-based自体移植系统上搭建神经网络,并提供具有超强GPU加速度的tensor computation。递归神经网络主要用于机器翻译、分类、文本生成、标记和其他NLP任务。