• 4.3 树遍历

    4.3 树遍历

    使用递归函数来遍历树是标准的做法。4.2中的内容进行了演示。

    1. def traverse(t):
    2. try:
    3. t.label()
    4. except AttributeError:
    5. print(t, end=" ")
    6. else:
    7. # Now we know that t.node is defined
    8. print('(', t.label(), end=" ")
    9. for child in t:
    10. traverse(child)
    11. print(')', end=" ")
    12. >>> t = nltk.Tree('(S (NP Alice) (VP chased (NP the rabbit)))')
    13. >>> traverse(t)
    14. ( S ( NP Alice ) ( VP chased ( NP the rabbit ) ) )

    注意

    我们已经使用了一种叫做动态类型的技术,检测t是一棵树(如定义了t.label())。