我是nltk的新手,发现很难处理nltk树。给定一个来自Penn treebank的nltk解析树,我希望能够从下到上递归地计算每个节点的跨度。叶节点的跨度为1.非终端节点的跨度是其子节点的总和。有人可以告诉我该怎么做吗?
谢谢。
答案 0 :(得分:0)
如果t
是nltk.Tree
中的任何树或子树,则其叶数由len(t.leaves())
给出。
>>> t = Tree.fromstring('(S (NP (D the) (N dog)) (VP (V chased) (NP (D the) (N cat))))')
>>> t[1,1]
Tree('NP', [Tree('D', ['the']), Tree('N', ['cat'])])
>>> len(t[1,1].leaves())
2