栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

NLTK树数据结构,查找一个节点,它是父节点还是子节点

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NLTK树数据结构,查找一个节点,它是父节点还是子节点

对于NLTK 3.0,您想使用ParentedTree子类。

http://www.nltk.org/api/nltk.html#nltk.tree.ParentedTree

使用给定的示例树,创建ParentedTree并搜索所需的节点:

from nltk.tree import ParentedTreeptree = ParentedTree.fromstring('(ROOT (S (NP (PRP It))         (VP (VBZ is) (ADJP (RB so) (JJ nice))) (. .)))')leaf_values = ptree.leaves()if 'nice' in leaf_values:    leaf_index = leaf_values.index('nice')    tree_location = ptree.leaf_treeposition(leaf_index)    print tree_location    print ptree[tree_location]

您可以直接遍历树以获取子树。parent()方法用于查找给定子树的父树。

这是一个为子代和父代使用更深树的示例:

from nltk.tree import ParentedTreeptree = ParentedTree.fromstring('(ROOT (S (NP (JJ Congressional)     (NNS representatives)) (VP (VBP are) (VP (VBN motivated)     (PP (IN by) (NP (NP (ADJ shiny) (NNS money))))))) (. .))')def traverse(t):    try:        t.label()    except AttributeError:        return    else:        if t.height() == 2:   #child nodes print t.parent() return        for child in t: traverse(child)traverse(ptree)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号