如何通过nltk python中的标签获取树中的节点?


问题内容

我有一棵树:

(S  
    (WH-QUERY Which)  
    (FLIGHT-NP   
        (FLIGHT-CNP  
            (FLIGHT-CNP (FLIGHT-N flight))  
            (FLIGHT-DEST to (CITY-NP (CITY-NAME Hue) (CITY-N city)))))  
    (FLIGHT-VP  
        (FLIGHT-V arrives)  
        (FLIGHT-TIME (P-TIME at) (TIME-MOD 20:00HR))))

我想通过nltk中的标签获取特定的节点。例如,我具有标签“ CITY-NAME”,并且我想要获取节点(CITY-NAM Hue)。我该如何实现?


问题答案:

一种方法是遍历树搜索匹配的节点:

for subtree in tree.subtrees():
     if subtree.label() == 'CITY-NAME':
          print subtree.leaves()