使用 spaCy 包构建句子依存句法分析图和句法分析树
使用 spaCy 包构建句子的依存句法分析图和句法分析树的步骤如下:
- 安装 spaCy 包并下载相应的语言模型,例如英文语言模型:
!pip install spacy
!python -m spacy download en_core_web_sm
- 导入 spaCy 包和语言模型:
import spacy
nlp = spacy.load('en_core_web_sm')
- 构建句子对象并进行句法分析:
doc = nlp('The quick brown fox jumps over the lazy dog.')
for token in doc:
print(token.text, token.pos_, token.dep_)
输出结果为:
The DET det
quick ADJ amod
brown ADJ amod
fox NOUN nsubj
jumps VERB ROOT
over ADP prep
the DET det
lazy ADJ amod
dog NOUN pobj
. PUNCT punct
其中,每个 token 代表句子中的一个单词,pos_ 表示单词的词性,dep_ 表示单词在句子中的依存关系。
- 构建依存句法分析图:
from spacy import displacy
displacy.render(doc, style='dep', jupyter=True)
输出结果为:

其中,每个节点代表句子中的一个单词,边表示单词之间的依存关系,箭头表示依存关系的方向。
- 构建句法分析树:
from nltk.tree import Tree
def to_nltk_tree(node):
if node.n_lefts + node.n_rights > 0:
return Tree(node.orth_, [to_nltk_tree(child) for child in node.children])
else:
return node.orth_
[to_nltk_tree(sent.root).pretty_print() for sent in doc.sents]
输出结果为:
jumps
____|_________
| | over
| | |
| | dog
| | |
| fox lazy
| | |
| quick brown
| | |
The . the
其中,每个节点代表句子中的一个单词,节点之间的关系表示单词之间的句法关系。
原文地址: https://www.cveoy.top/t/topic/jYKD 著作权归作者所有。请勿转载和采集!