根据本主题:How to get the dependency tree with spaCy?我知道如何绘制列表以及选择要打印的属性。
我不知道如何获取每个项目的等级(树上不是必需的,但至少是列表)。我已经从https://github.com/explosion/spaCy/issues/533运行了代码以获取“ CoNLL”格式,但为除级别以外的其他值编制了索引点。
如何设置此迭代器以获取等级? (例如:根是0,叶子是最高级别的数量)
迭代器:
head_idx = word.i-sent[0].i+1
正在尝试不同的检查,例如.children
或.root.ancestors
中的枚举次数,但会引发奇怪的结果。
编辑
找到一些提示,但它不正常工作:
树是:
Tree('conversion:NN:ROOT', ['proposed:VBN:amod', Tree('of:IN:prep', [Tree('dwelling:VBG:pobj', ['existing:VBG:amod', 'two:CD:nummod', 'storey:NNS:amod'])]), Tree('into:NNP:prep', [Tree('1x:NN:pobj', ['1:CD:nummod'])])])
我使用以下方法进行迭代:
for pos in t.treepositions():
print(t[pos][0], len(pos))
但是结果很奇怪:
proposed:VBN:amod 0
p 1
(dwelling:VBG:pobj existing:VBG:amod two:CD:nummod storey:NNS:amod) 1
existing:VBG:amod 2
e 3
t 3
s 3
(1x:NN:pobj 1:CD:nummod) 1
1:CD:nummod 2
1 3
还设置print(t[pos], len(pos))
也不行。我什么都不来?深度(级别标记)的值似乎还可以,但字段名称不正确。