问题
I have a tree:
(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))))
I want to get a specific node by its label in nltk. For example, I have label "CITY-NAME", and I want to get the node (CITY-NAM Hue). How can I achieve this?
回答1:
One way to do it is to walk the tree searching for nodes that match:
for subtree in tree.subtrees():
if subtree.label() == 'CITY-NAME':
print subtree.leaves()
回答2:
Look at the _get_node method in the function.
http://www.nltk.org/_modules/nltk/tree.html
来源:https://stackoverflow.com/questions/37521009/how-to-get-a-node-in-a-tree-by-its-label-in-nltk-python