2015-04-02 3 views
2

Предположим, что у меня есть переменная, которая содержит дерево дерева nltk. Есть ли какая-либо функция, например parent() или что-то, что возвращает родительский элемент узла?В дереве nltk, как я могу получить доступ к родительскому элементу из дочернего элемента?

ответ

3

Вам нужна другая структура данных: дерево, узлы которого содержат указатели на родителя. Теперь NLTK предоставляет тип nltk.tree.ParentedTree (как уже указывал @Gerhard). Но корпуса и инструменты NLTK генерируют простые объекты Tree, поэтому вам нужно конвертировать. Если у вас есть переменная, которая содержит mytree свое дерево, преобразовать его так:

from nltk.tree import ParentedTree 
newtree = ParentedTree.convert(mytree) 

узлы нового дерева будет иметь метод parent(), который можно использовать для навигации по дереву.

Смежные вопросы