[英]Insert child node in nltk tree
假设我可以使用以下代码读取和编辑所有树的叶子标签:
for leaf in t.treepositions('leaves'):
t[leaf] = new_value
如何添加新叶子作为实际叶子t [leaf]的子元素? 可能是一个愚蠢的问题,但是我对nltk经验不足。
您是否必须使用treepositions方法? 如果不; 如果仅遍历树的所有子树(如果需要,则循环递归),则可以在任何点插入某些内容(nltk树实际上是“仅”一个列表表示形式)。
这是一个向VP添加修饰符的示例(没有明显的原因:):
import nltk
t = nltk.tree.Tree.fromstring("(S (NP I) (VP (V saw) (NP him)))")
print(t)
for index, st in enumerate(t.subtrees()):
if st.label() == 'VP':
st.insert(index, nltk.tree.Tree('ADV', ['yesterday']))
print(t)
输出:
(S (NP I) (VP (V saw) (NP him)))
(S (NP I) (VP (V saw) (NP him) (ADV yesterday)))
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.