斯坦福-StanfordNLP
==================
适用于多种人类语言的 Python NLP 库
https://github.com/stanfordnlp/stanfordnlp
|Travis Status| |PyPI version|
斯坦福 NLP 集团的官方 Python NLP 库。 它包含用于运行 CoNLL 2018
共享任务的最新完全神经管道以及访问 Java Stanford CoreNLP
服务器的软件包。
有关详细信息,请访问我们的\ `官方网站 `__.
参考
----
如果您使用我们的神经管道,包括标记器,多字令牌扩展模型,解释器,POS
/形态特征标记器或您研究中的依赖解析器,请引用我们的 CoNLL 2018
共享任务\ `系统描述文件 `__:
.. code:: bibtex
@inproceedings{qi2018universal,
address = {Brussels, Belgium},
author = {Qi, Peng and Dozat, Timothy and Zhang, Yuhao and Manning, Christopher D.},
booktitle = {Proceedings of the {CoNLL} 2018 Shared Task: Multilingual Parsing from Raw Text to Universal Dependencies},
month = {October},
pages = {160--170},
publisher = {Association for Computational Linguistics},
title = {Universal Dependency Parsing from Scratch},
url = {https://nlp.stanford.edu/pubs/qi2018universal.pdf},
year = {2018}
}
PyTorch 在这个存储库中实现神经管道的原因是\ `Peng
Qi `__\ 和\ `Yuhao
Zhang `__\ ,在\ `Tim
Dozat `__\ 的帮助下和\ `Jason
Bolton `__\ 。
此版本与斯坦福大学的 CoNLL 2018 共享任务系统不同。
标记器,变形器,形态特征和多字词系统是共享任务代码的清理版本,但在竞争中我们使用\ `Tensorflow
版本 `__ )\ `Tim
Dozat `__\ 的标记器和解析器,已在
PyTorch 中大致复制(尽管与原始版本有一些偏差)。
如果您使用 CoreNLP 服务器,请引用 CoreNLP
软件包和相应模块\ `如此处 `__\ (“引用斯坦福大学”
CoreNLP 在论文中“)。 CoreNLP 客户端主要由\ `Arun
Chaganty `__\ 撰写,\ `Jason
Bolton `__\ 率先将这两个项目合并在一起。
问题和使用问答
--------------
请使用以下渠道提问和发布报告。
+-----------------------------------+-----------------------------------+
| 目的 | 渠道 |
+===================================+===================================+
| 用法问答 | `Google |
| | Group `__ |
+-----------------------------------+-----------------------------------+
| 错误报告和功能请求 | `GitHub Issue |
| | Tracker `__ |
+-----------------------------------+-----------------------------------+
安装
----
StanfordNLP 支持 Python 3.6 或更高版本。我们强烈建议您从 PyPI 安装
StanfordNLP。
如果你已经安装了\ `pip `__,
简单地跑
.. code:: bash
pip install stanfordnlp
这也应该有助于解决 StanfordNLP
的所有依赖关系,例如\ `PyTorch `__ 1.0.0
或更高版本。
或者,您也可以从这个 git
存储库的源代码安装,这将为您提供更大的灵活性,可以在 StanfordNLP
之上进行开发并培训您自己的模型。 对于此选项,请运行
.. code:: bash
git clone git@github.com:stanfordnlp/stanfordnlp.git
cd stanfordnlp
pip install -e .
运行 StanfordNLP
----------------
神经管道入门
~~~~~~~~~~~~
要运行您的第一个 StanfordNLP 管道,只需在 Python
交互式解释器中执行这些步骤即可:
.. code:: 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()
最后一个命令将打印出输入字符串中第一个句子中的单词(或“Document”,因为它在
StanfordNLP 中表示),以及在该句子的 Universal Dependencies
解析中管理它的单词的索引(它的“头”),以及单词之间的依赖关系。
输出应该是这样的:
::
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
**Note:** 如果你遇到像’OSError:[Errno
22]无效的参数`这样的问题,你很可能会受到\ `已知 Python
问题 `__\ 的影响,我们建议使用
Python 3.6.8 或更高版本以及 Python 3.7.2 或更高版本。
我们还提供了一个多语言\ `演示脚本 `__\ ,演示了如何使用除英语之外的其他语言的
StanfordNLP,例如中文(传统)
.. code:: bash
python demo/pipeline_demo.py -l zh
有关详细信息,请参阅\ `我们的入门指南 `__\ 。
访问 Java Stanford CoreNLP 服务器
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
除了神经管道,该项目还包括一个官方包装器,用于使用 Python 代码访问 Java
Stanford CoreNLP 服务器。
有一些初始设置步骤。
- Download `Stanford
CoreNLP `__ and models for
the language you wish to use.
- 将模型罐放入分发文件夹中
- 告诉 Stanford CoreNLP 所在的 python 代码:
``export CORENLP_HOME=/path/to/stanford-corenlp-full-2018-10-05``
We provide another `demo
script `__
that shows how one can use the CoreNLP client and extract various
annotations from it.
神经管道的训练模型
~~~~~~~~~~~~~~~~~~
我们目前为 CoNLL 2018 共享任务中的所有树库提供模型。
你可以找到下载和使用这些模型的说明\ `这里 `__.
批量管理以最大化管道速度
~~~~~~~~~~~~~~~~~~~~~~~~
要最大限度地提高速度性能,必须在批量文档上运行管道。
一次在一个句子上运行 for 循环将非常缓慢。
此时最好的方法是将文档连接在一起,每个文档用空行分隔(即两个换行符\ ``\n\n\n``)。
标记器将空行识别为句子中断。 我们正在积极致力于改进多文档处理。
训练自己的神经管道
------------------
该库中的所有神经模块,包括标记器,多字令牌(MWT)扩展器,POS
/形态特征标记器,变形器和依赖解析器,都可以使用您自己的`CoNLL-U `__\ 格式数据进行训练。
目前,我们不支持通过\ ``Pipeline``\ 界面进行模型培训。
因此,要训练自己的模型,您需要克隆此 git 存储库并从源设置。
有关如何培训和评估您自己的模型的详细分步指导,请访问我们的\ `培训文档 `__.
执照
----
StanfordNLP 是在 Apache License 2.0 版下发布的。
有关详细信息,请参阅\ `LICENSE `__\ 文件。
.. |Travis Status| image:: https://travis-ci.com/stanfordnlp/stanfordnlp.svg?token=RPNzRzNDQRoq2x3J2juj&branch=master
:target: https://travis-ci.com/stanfordnlp/stanfordnlp
.. |PyPI version| image:: https://img.shields.io/pypi/v/stanfordnlp.svg?colorB=blue
:target: https://pypi.org/project/stanfordnlp/