斯坦福大学发布 StanfordNLP,支持多种语言

雷锋网 AI 科技评论按,近日,斯坦福大学发布了一款用于 NLP 的 Python 官方库,这个库可以适用于多种语言,其地址是:https://stanfordnlp.github.io/stanfordnlp/,github 资源如下:

这是 Stanford 官方发布的 NLP 库,详细信息请访问:https://stanfordnlp.github.io/stanfordnlp/

说明

如果在研究中使用了他们的神经管道,可以参考他们的 CoNLL 2018 共享任务系统描述文件:

@inproceedings,

author = ,

booktitle = 2018 Shared Task: Multilingual Parsing from Raw Text to Universal Dependencies},

month = ,

pages = ,

publisher = ,

title = ,

url = ,

year =

}

但是,这个版本和 Stanford 大学的 CoNLL 2018 共享任务系统不一样。在这里,标记解析器、词性还原器、形态学特性和多词术语系统是共享任务代码系统的一个简洁版本,但是作为对比,还使用了 Tim Dozat 的 Tensorflow 版本的标记器和解析器。PyTorch 中大体上对这个版本的代码进行了复制,尽管与原始版本有一些不同。雷锋网

启动

StanfordNLP 支持 Python3.6 及其以上版本。最好的办法是从 PyPI 安装 StanfordNLP,如果已经安装了 pip,那么只需要运行:

pip install stanfordnlp

这也有助于解决 StanfordNLP 的所有依赖,例如对 PyTorch 1.0.0 或者更高版本的依赖。

还有一个办法,是从 github 存储库的源代码安装,这可以使基于 StanfordNLP 的开发和模型训练具有更大的灵活性。雷锋网

cd stanfordnlp

pip install -e .

运行 StanfordNLP

从神经管道开始

要运行第一个 StanfordNLP 管道,只需在 python 交互式解释器中执行以下步骤:

>>> import stanfordnlp

>>> stanfordnlp.download('en') # This downloads the English models for the neural pipeline

>>> nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English

>>> doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")

>>> doc.sentences[0].print_dependencies()

最后一个命令将打印输入字符串(或文档,如 StanfordNLP 所示)中第一个句子中的单词,以及该句子中单词的索引,以及单词之间的依赖关系。输出应如下所示:

('Barack', '4', 'nsubj:pass')

('Obama', '1', 'flat')

('was', '4', 'aux:pass')

('born', '0', 'root')

('in', '6', 'case')

('Hawaii', '4', 'obl')

('.', '4', 'punct')

访问 Java Stanford CoreNLP 服务器

除了神经管道之外,这个项目还包括一个用 Python 代码访问 Java Stanford CaleNLP 服务器的官方类。

有几个初始设置步骤:

下载 Stanford CoreNLP 和需要使用的语言的模型;

将模型原型放在分发文件夹中;

告诉 python 代码 Stanford CoreNLP 的位置:export corenlp_home=/path/to/stanford-corenlp-full-2018-10-05

我们提供了另一个演示脚本,演示如何使用 corenlp 客户机并从中提取各种注释。

神经管道训练模型

目前,CoNLL 2018 共享任务中的所有 treebanks 模型都是公开的,下载和使用这些模型的说明:https://stanfordnlp.github.io/stanfordnlp/installation_download.html#models-for-human-languages

训练你自己的神经管道

这个库中的所有神经模块都可以使用自己的 CoNLL-U 格式数据进行训练。目前,并不支持通过管道接口进行模型训练。因此,如果要训练你自己的模型,你需要克隆这个 git 存储库并从源代码进行设置。

via:https://github.com/stanfordnlp/stanfordnlp

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190211C0DMHG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券