我正在尝试使用breadth_first 在ParentedTree 中搜索(首先)一个特定的叶词,然后搜索某个标签(NP)。如果已经有一种方法,我真的宁愿不自己实现它。这是我尝试过的(包括我是如何制作树的,以防那是我搞砸的地方):
import nltk
from nltk.util import breadth_first
grammar = nltk.data.load("/path/to/grammar.cfg")
parser = nltk.parse.EarleyChartParser(grammar)
sent = "They are happy people"
parse1 = list(parser.parse(sent.split()))
tree1 = nltk.tree.ParentedTree.convert(parse1[0])
bf = breadth_first(tree1)
Run Code Online (Sandbox Code Playgroud)
这给了我一个生成器对象,但我不确定如何使用它来搜索我想要的东西(代词“他们”)。我尝试做一个简单的“for node in bf: print(node)”,它自己在一行上打印字符串的每个字母,一直重复,直到我不得不关闭窗口。
我已经阅读了文档并且我已经做了很多谷歌搜索,但我找不到它实际用于搜索的例子。我究竟做错了什么?