【新智元导读】斯坦福团队最新发布一个NLP任务的软件包StanfordNLP,通过Python接口为53种语言提供标记、依存句法分析等NLP任务的重要工具。
今天,斯坦福NLP团队发布一个重磅NLP工具包:StanfordNLP。
StanfordNLP是一个软件包组合,包括斯坦福团队在CoNLL 2018 的通用依存解析(Universal Dependency Parsing)共享任务上使用的软件包,以及斯坦福CoreNLP软件的官方Python接口。
StanfordNLP支持包括阿拉伯语、中文、英语等53种语言(全部语言列表见文末)。
地址:
StanfordNLP | StanfordNLPstanfordnlp.github.io除了从CoreNLP继承的功能外,StanfordNLP还包含将一串文本转换成句子和单词列表,生成这些单词的基本形式、它们的词类和形态学特征的工具,以及超过70种语言的句法结构。
这个软件包采用高准确性的神经网络组件构建,这些组件支持用户使用自己的注释数据进行高效的训练和评估。这些模块构建在PyTorch上。
StanfordNLP具有以下特征:
- 本地Python实现,只需最少的设置工作;
- 用于稳健的文本分析的完整神经网络pipeline,包括tokenization、多词标记(MWT)扩展、外延化、词类(POS)和形态学特征标记,以及依存句法分析(dependency parse);
- 支持73个treebank中53种(人类)语言的预训练神经模型;
- 稳定、官方维护的转到CoreNLP的Python接口。
获取地址:
https://stanfordnlp.github.io/stanfordnlp/index.html
安装与测试
我们强烈建议使用pip安装StanfordNLP,这非常简单
pip install stanfordnlp
要查看StanfordNLP的neural pipeline的运行情况,可以启动Python交互式解释器,并尝试以下命令:
>>>
最后,我们应该能看到示例中第一句的依存句法分析。更多详细指南,请参阅官方入门指南:
Installation & Model Downloadstanfordnlp.github.io除了neural pipeline之外,StanfordNLP还提供了用于访问Java Stanford CoreNLP Server的官方Python包装器。要使用它,首先需要像下面这样设置CoreNLP包:
- 下载你希望使用的语言的Stanford CoreNLP和模型。
- 将模型的jar包放到分发文件夹中
- 告诉Stanford CoreNLP所在的位置:export CORENLP_HOME=/path/to/stanford-corenlp-full-2018-10-05
设置完CoreNLP之后,就可以按照我们的演示脚本进行测试。
演示脚本:
python demo/pipeline_demo.py -l zh
输出应该像下面这样:
---
tokens of first sentence:
達沃斯 達沃斯 PROPN
世界 世界 NOUN
經濟 經濟 NOUN
論壇 論壇 NOUN
是 是 AUX
每年 每年 DET
全球 全球 NOUN
政 政 PART
商界 商界 NOUN
領袖 領袖 NOUN
聚 聚 VERB
在 在 VERB
一起 一起 NOUN
的 的 PART
年度 年度 NOUN
盛事 盛事 NOUN
。 。 PUNCT
---
dependency parse of first sentence:
('達沃斯', '4', 'nmod')
('世界', '4', 'nmod')
('經濟', '4', 'nmod')
('論壇', '16', 'nsubj')
('是', '16', 'cop')
('每年', '10', 'nmod')
('全球', '10', 'nmod')
('政', '9', 'case:pref')
('商界', '10', 'nmod')
('領袖', '11', 'nsubj')
('聚', '16', 'acl:relcl')
('在', '11', 'mark')
('一起', '11', 'obj')
('的', '11', 'mark:relcl')
('年度', '16', 'nmod')
('盛事', '0', 'root')
('。', '16', 'punct')
StanfordNLP支持的所有语言: