[英]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.