一个基于pytorch的开源nlp研究库。

allennlp的Python项目详细描述


生成状态codecov

apache 2.0上构建的nlp研究库, 在各种各样的语言任务中发展最先进的深度学习模式。

快速链接

软件包概述

<表>allennlp一个基于pytorch的开源nlp研究库allennlp.commandscli和web服务的功能allennlp.data一种数据处理模块,用于加载数据集并将字符串编码为整数,以便在矩阵中表示< >所有型号一组最先进的模型所有低压模块用于文本的pytorch模块集合allennlp.nn张量实用函数,作为初始值设定项和激活函数进行搜索allennlp.服务可以为您的模型提供演示的Web服务器allennlp.培训培训模型的功能<表>

安装

只有nlp需要python 3.6.1或更高版本。安装allennlp的首选方法是通过pip。只要在python环境中运行pip install allennlp,就可以了!

如果您需要有关设置适当的python环境的指针,或者希望使用其他方法安装allennlp,请参阅下面的内容。

Windows目前不受官方支持,但我们会在问题容易解决时尝试解决这些问题。

通过PIP安装

设置虚拟环境

conda可以使用 allennlp所需的python版本。如果您已经有了python 3.6或3.7 要使用的环境,可以跳到"通过PIP安装"部分。

  1. 下载并安装conda

  2. 使用python 3.6创建conda环境 啊!

  3. 激活conda环境。您需要在要使用allennlp的每个终端中激活conda环境。

    啊!

安装库和依赖项

安装库和依赖项很简单ngpip

pip install allennlp

就这样!你现在可以建立和训练allennlp模型了。 allennlp在安装python包时安装脚本,这意味着您可以通过在终端中键入allennlp来运行allennlp命令。

现在可以使用allennlp test install来测试安装

pip当前仅为cuda 9安装pytorch(或不安装gpu)。如果你需要旧版本, 请访问https://pytorch.org/" rel="nofollow">https://pytorch.org/并安装相关的pytorch二进制文件。

使用Docker安装

Docker为虚拟机提供了运行AllenNLP的所有设置-- 无论你是利用一个GPU还是仅仅运行在一个CPU上。Docker提供更多 隔离性和一致性,还可以使您的 环境到计算群集。

一旦您安装了docker 只需运行以下命令,即可获得一个在CPU或GPU上运行的环境。

mkdir -p $HOME/.allennlp/
docker run --rm -v $HOME/.allennlp:/root/.allennlp allennlp/allennlp:v0.8.5

您可以使用docker run--rm-v$home/.allennlp:/root/.allennlp allennlp/allennlp:v0.8.5 test install来测试docker环境

从源安装

您还可以通过克隆我们的git存储库来安装allennlp:

git clone https://github.com/allenai/allennlp.git

创建一个python 3.6虚拟环境,并在editable模式下通过运行安装allennlp:

pip install --editable .

这将使allennlp在您的系统上可用,但它将使用来自本地克隆的源 您创建了源代码存储库。

您可以使用allennlp test install来测试您的安装。 完整的开发环境还需要jvm和perl, 必须单独安装。/scripts/verify.py将运行 我们的持续构建环境使用的全套测试。

运行allennlp

一旦安装了allennlp,就可以运行命令行界面 使用allennlp命令(如果通过pip安装)或allennlp(如果通过source安装)。

$ allennlp
Run AllenNLP

optional arguments:
  -h, --help    show this help message and exit
  --version     show program's version number and exit

Commands:

    configure   Run the configuration wizard.
    train       Train a model.
    evaluate    Evaluate the specified model + dataset.
    predict     Use a trained model to make predictions.
    make-vocab  Create a vocabulary.
    elmo        Create word vectors using a pretrained ELMo model.
    fine-tune   Continue training a model on a new dataset.
    dry-run     Create a vocabulary, compute dataset statistics and other
                training utilities.
    test-install
                Run the unit tests.
    find-lr     Find a learning rate range.

Docker图像

allennlp为每个版本将docker映像发布到docker hub。有关如何运行这些版本的信息,请参见使用Docker安装

创建Docker图像

出于各种原因,您可能需要创建自己的allennlp docker映像。 同一个图像可以与CPU或GPU一起使用。

首先,您需要安装docker。 然后运行以下命令 (这需要一些时间,因为它完全建立了 运行allennlp所需的环境。)

docker build -f Dockerfile.pip --tag allennlp/allennlp:latest .

现在您应该可以通过运行Docker Images allenNLP

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
allennlp/allennlp            latest              b66aee6cb593        5 minutes ago       2.38GB

运行Docker映像

您可以使用docker run--rm-it allennlp/allennlp:latest运行映像。--rm标志在退出时清除图像,而-it标志使会话交互,因此您可以使用Docker图像启动时的bash shell。

您可以通过运行allennlp test install来测试安装

问题

欢迎大家使用功能请求、错误报告或一般问题来提交问题。作为一个有自己内部目标的小团队,如果一个及时的解决方案不符合我们的路线图,我们可能会要求做出贡献。我们允许用户在两周的时间内跟踪问题,之后我们将关闭问题。如果有进一步的讨论,可以重新打开它们。

贡献

ai2的allennlp团队(@allenai)欢迎来自更大的allennlp社区的贡献,而且,如果您想更改库,这可能是最快的方法。如果你愿意为了提供一个更大的特性,我们建议首先创建一个带有建议设计的问题以供讨论。这将防止您花费大量时间在一个有技术限制的实现上,有人可能早就指出了这一点。小额捐款可以直接在拉取请求中进行。

拉取请求(prs)在合并之前必须有一个批准的审阅,并且没有请求的更改。由于allennlp主要由ai2(@allenai)驱动,我们保留拒绝或退回我们认为不适合添加的稿件的权利。

引用

如果您在研究中使用allennlp,请引用allennlp:a deep-semantic-natural-language-processing-platform

conda create -n allennlp python=3.6
0

团队

allennlp是一个开源项目,由艾伦人工智能研究所(allen institute for artificial intelligence,ai2)支持。 AI2是一个非营利性机构,其使命是通过高影响力的人工智能研究和工程为人类做出贡献。 要了解谁对此代码库做出了具体贡献,请参见我们的贡献者页面。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何用java表示这个数学函数的算法   Java/Stream帮助:仅使用streams将嵌套的映射列表转换为映射   使用Selenium连接到数据库时发生java未知主机异常   java如何了解jvm内存使用:“堆内存”和“堆外内存”   java Oracle BI报告导入模板   java如何使用Spring将xml转换为bean?   java线程。join()以保证执行顺序   java从THINGSPEAK到ANDROID应用程序获取JSON数据   使用Java的stanford库中的异常   java正确使用来自其他类文件的方法   如果集合中的元素类型为接口类型,如何填充集合?(爪哇)   记录java。util。记录器创建的文件超过了应有的数量   类Java对象uniq值   尝试调用无法应用于()的方法时出现java错误