我对 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 短语中获取第一个/最后一个名词?第一个名词的答案是“陌生人”,最后一个名词是“日期”。