如何获取SpaCy树中每个项目的等级?

时间:2019-02-01 23:06:29

标签: python nltk spacy

根据本主题: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))也不行。我什么都不来?深度(级别标记)的值似乎还可以,但字段名称不正确。

0 个答案:

没有答案