2016-05-30 1 views
2

私は木を持っている: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)を取得したいとします。どうすればこれを達成できますか?

答えて

2

それを行うための1つの方法は、一致するノードのツリー検索を歩くことである:

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

この関数の_get_nodeメソッドを見てください。

http://www.nltk.org/_modules/nltk/tree.html

+0

'_get_node()は' 'ラベル()'に置き換えられました、そしてそれはあなたに伝えます木のラベルそのラベルによって木が見つかりません。 – rmalouf

関連する問題