千家信息网

Python StandfordNLP库怎么用

发表于:2025-02-10 作者:千家信息网编辑
千家信息网最后更新 2025年02月10日,这篇文章主要讲解了"Python StandfordNLP库怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python StandfordNLP
千家信息网最后更新 2025年02月10日Python StandfordNLP库怎么用

这篇文章主要讲解了"Python StandfordNLP库怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python StandfordNLP库怎么用"吧!

版本特性

新版的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) # 根据配置初始化Piplinedoc = nlp("Van Gogh grandit au sein d'une famille de l'ancienne bourgeoisie.") # 将Pipline运用到句子上doc.sentences[0].print_tokens() # 查看结果

感谢各位的阅读,以上就是"Python StandfordNLP库怎么用"的内容了,经过本文的学习后,相信大家对Python StandfordNLP库怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0