NLTK のツリー関数についていくつか質問があります。以下のようなツリー構造から特定の単語を抽出しようとしています。
test = Tree.parse('(ROOT(SBARQ(WHADVP(WRB How))(SQ(VBP do)(NP (PRP you))(VP(VB ask)(NP(DT a)(JJ total)(NN stranger))(PRT (RP out))(PP (IN on)(NP (DT a)(NN date)))))))')
print "Input tree: ", test
print test.leaves()
(SBARQ
(WHADVP (WRB How))
(SQ
(VBP do)
(NP (PRP you))
(VP
(VB ask)
(NP (DT a) (JJ total) (NN stranger))
(PRT (RP out))
(PP (IN on) (NP (DT a) (NN date)))))))
['How', 'do', 'you', 'ask', 'a', 'total', 'stranger', 'out', 'on', 'a', 'date']
leaves() 関数を使用して、すべての単語のリストを見つけることができます。特定の葉だけを取得する方法はありますか? 例: NP 句のみから最初/最後の名詞を取得したいですか? 答えは、最初の名詞は「見知らぬ人」、最後の名詞は「日付」です。