gpt4 book ai didi

python - 如何正确导航 NLTK 解析树?

转载 作者:行者123 更新时间:2023-12-01 04:43:20 24 4
gpt4 key购买 nike

NLTK 又让我抓狂了。

如何正确浏览 NLTK 树(或 ParentedTree)?我想用父节点“VBZ”来识别某个叶子,然后我想从那里向上移动到树上并向左移动以识别 NP 节点。

我该怎么做? NLTK的树类好像没有想通……或者我太笨了……

感谢您的帮助!

Tree

最佳答案

根据您想要执行的操作,这应该可行。它会首先给你最接近的左 NP 节点,然后是第二个最接近的,依此类推。所以,如果你有一棵 (S (NP1) (VP (NP2) (VBZ))) 的树,你的np_trees列表将有 [ParentedTree(NP2), ParentedTree(NP1)]

from nltk.tree import *

np_trees = []

def traverse(t):
try:
t.label()
except AttributeError:
return

if t.label() == "VBZ":
current = t
while current.parent() is not None:

while current.left_sibling() is not None:

if current.left_sibling().label() == "NP":
np_trees.append(current.left_sibling())

current = current.left_sibling()

current = current.parent()

for child in t:
traverse(child)

tree = ParentedTree.fromstring("(S (NP (NNP)) (VP (VBZ) (NP (NNP))))")
traverse(tree)
print np_trees # [ParentedTree('NP', [ParentedTree('NNP', [])])]

关于python - 如何正确导航 NLTK 解析树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30057440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com