Python 如何访问NLTK树中节点的内容?
我正在尝试使用NLTK树搜索基于单词的POS标记 我想在树中找到一个单词(此处:different)(该单词肯定存在于树中),并检查包含该单词的节点的任何子节点是否具有给定的标签(此处:NN)Python 如何访问NLTK树中节点的内容?,python,python-3.x,tree,nltk,Python,Python 3.x,Tree,Nltk,我正在尝试使用NLTK树搜索基于单词的POS标记 我想在树中找到一个单词(此处:different)(该单词肯定存在于树中),并检查包含该单词的节点的任何子节点是否具有给定的标签(此处:NN) 您可以遍历树的所有子树 tree = Tree.fromstring( input_string, read_node=lambda s: '<%s>' % s, read_leaf=lambda s: '%s' % s)
您可以遍历树的所有子树
tree = Tree.fromstring(
input_string,
read_node=lambda s: '<%s>' % s,
read_leaf=lambda s: '%s' % s)
for sub_tree in tree.subtrees():
if sub_tree.label() == '<JJ>' and 'different' in set(sub_tree.leaves()):
print('yes')
tree=tree.fromstring(
输入_字符串,
读取节点=λs:''%s,
read_leaf=lambda s:“%s”%s)
对于树中的子树。子树():
如果集合(sub_tree.leaves())中的sub_tree.label()==''和'different':
打印('是')
虽然这没有给我任何输出,但是感谢集合(sub_tree.leaves())
。我现在可以访问节点的内容。如果您仍然对单词read\u leaf=lambda s:'%s''%s
,它将不会给出任何输出。我删除了引号并将其打印出来Yes
if t.leaves() in ["different"]:
if content_of_t (I don't know how to access that) in ["NN"]:
return "yes"
tree = Tree.fromstring(
input_string,
read_node=lambda s: '<%s>' % s,
read_leaf=lambda s: '%s' % s)
for sub_tree in tree.subtrees():
if sub_tree.label() == '<JJ>' and 'different' in set(sub_tree.leaves()):
print('yes')