目录
一、Stanza简要介绍
Stanza是一个Python自然语言处理工具包,它是斯坦福自然语言处理工具的升级版。它提供了一系列的自然语言处理工具,包括分词、词性标注、命名实体识别、依存句法分析等。Stanza的主要目标是提供一个易于使用的自然语言处理工具包,同时保持高效和准确性。
二、Stanza使用
2.1 安装方法
安装方法有3种,任意选择一种都可以实现安装Stanza。
- 通过 pip 安装:
pip install stanza
# 注意使用这个命令,默认安装当前Stanza的最高版,如果想要指定安装的版本,则可使用以下命令安装:
pip install stanza==版本号
e.g.,
pip install stanza==1.3.0
- 通过 conda 安装:
conda install -c stanfordnlp stanza
- 下载源码后安装:
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
2.2 使用说明
stanza的使用方法与spacy类似,都是先构造一个 Pipeline,然后将文本输入 Pipeline,输出结果为一个 Document
对象,这个对象可以被用来提取文本中每个句子,句子中每个词语的词性,依存或命名实体信息。
2.2.1 以英文文本说明:
import stanza
# 下载语言支持
print("Downloading English model...")
stanza.download('en')
# 第一步:构造处理管道,pipeline
en_nlp = stanza.Pipeline('en')
# 第二步:将文本送入管道,管道返回 Document 对象
en_doc = en_nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")
print(type(en_doc))
# 第三步:提取分析结果
for i, sent in enumerate(en_doc.sentences):
print("[Sentence {}]".format(i+1))
for word in sent.words:
print("{:12s}\t{:12s}\t{:6s}\t{:d}\t{:12s}".format(\
word.text, word.lemma, word.pos, word.head, word.deprel))
print("")
2.2.2 以中文文本说明:
import stanza
# 下载语言支持
print("Downloading Chinese model...")
stanza.download('zh', verbose=False)
# 第一步:构造处理管道,pipeline
zh_nlp = stanza.Pipeline('zh', processors='tokenize,lemma,pos,depparse', verbose=False, use_gpu=False)
# 第二步:将文本送入管道,管道返回 Document 对象
zh_doc = zh_nlp("达沃斯世界经济论坛是每年全球政商界领袖聚在一起的年度盛事。")
print(type(zh_doc))
# 第三步:提取分析结果
for i, sent in enumerate(zh_doc.sentences):
print("[Sentence {}]".format(i+1))
for word in sent.words:
print("{:12s}\t{:12s}\t{:6s}\t{:d}\t{:12s}".format(\
word.text, word.lemma, word.pos, word.head, word.deprel))
print("")