斯坦福NLP团队发布最新自然语言处理Python库

【导读】斯坦福NLP团队,于1月29日发布了新版的自然语言处理Python库:StandfordNLP,不同于以前java系的CoreNLP, 这次的项目是一个全新Python库,内部基于PyTorch 1.0。小编刚刷完文档,个人觉得,这是目前最值得学习的自然语言处理算法库了!现在分享给大家。


【版本特性】

新版的StandfordNLP包含以下特性:

  • 纯python库,没有什么设置项,pip install后直接可用

  • 拥有自然语言处理所需的几乎所有方法

  • 包含预训练模型,支持73个树库中的53种语言

  • 与斯坦福CoreNLP无缝联动

  • 斯坦福NLP团队出品,质量有保证


【安装】

pip install stanfordnlp

【使用】

>>> import stanfordnlp
>>> stanfordnlp.download('en')   # 这会下载英语的神经网络模型
>>> nlp = stanfordnlp.Pipeline() # 获取一个默认的英语语言处理流程
>>> doc = nlp("Barack Obama was born in Hawaii.  He was elected president in 2008.")
>>> doc.sentences[0].print_dependencies()
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')

【中文demo】

>>> import stanfordnlp
>>> stanfordnlp.download('zh')   # 下载中文模型
>>> nlp = stanfordnlp.Pipeline(lang=
'zh') # 中文语言处理流程
>>> doc = nlp("達沃斯世界經濟論壇是每年全球政商界領袖聚在一起的年度盛事。")
>>>
doc.sentences[0].print_tokens() # 打印token
達沃斯	達沃斯	PROPN
世界	世界	NOUN
經濟	經濟	NOUN
論壇	論壇	NOUN
是	是	AUX
每年	每年	DET
全球	全球	NOUN
政	政	PART
商界	商界	NOUN
領袖	領袖	NOUN
聚	聚	VERB
在	在	VERB
一起	一起	NOUN
的	的	PART
年度	年度	NOUN
盛事	盛事	NOUN
。	。	PUNCT
>>> doc.sentences[0].print_dependencies() # 打印依存分析树
('達沃斯', '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')

【Pipeline的配置】

在StandfordNLP里,Pipline配置了StandfordNLP怎么处理数据,比如英文的默认是Token,Lemma等,而中文的是分词,Token等。完整的Pipline配置见下图:

import stanfordnlpconfig = {
'processors': 'tokenize,mwt,pos,lemma,depparse', # 配置调用该Pipline需要用到的模型
,
lang'
: 'fr', # 配置该Pipline所处理的目标语言

# 配置用到的模型,及其模型路径,注意,这里的模型都是PyTorch的
# 你也可以自己训练自己的模型
'tokenize_model_path': './fr_gsd_models/fr_gsd_tokenizer.pt',
'mwt_model_path': './fr_gsd_models/fr_gsd_mwt_expander.pt',
'pos_model_path': './fr_gsd_models/fr_gsd_tagger.pt',
'pos_pretrain_path': './fr_gsd_models/fr_gsd.pretrain.pt',
'lemma_model_path': './fr_gsd_models/fr_gsd_lemmatizer.pt',
'depparse_model_path': './fr_gsd_models/fr_gsd_parser.pt',
'depparse_pretrain_path': './fr_gsd_models/fr_gsd.pretrain.pt'
}

nlp = stanfordnlp.Pipeline(**config) # 根据配置初始化Pipline
doc = nlp("Van Gogh grandit au sein d'une famille de l'ancienne bourgeoisie.") # 将Pipline运用到句子上

doc.sentences[0].print_tokens() # 查看结果

更多信息,请访问该库的github地址:

https://github.com/stanfordnlp/stanfordnlp

-END-

专 · 知

专知《深度学习:算法到实战》课程全部完成!470+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!


请加专知小助手微信(扫一扫如下二维码添加),咨询《深度学习:算法到实战》参团限时优惠报名~

欢迎微信扫一扫加入专知人工智能知识星球群,获取专业知识教程视频资料和与专家交流咨询!

请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!

点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程

展开全文
Top
微信扫码咨询专知VIP会员