Извлечение родительского и дочернего узла из дерева питонов

Я использую структуру данных дерева nltk. Ниже приведен пример nltk.Tree.

(S
  (S
    (ADVP (RB recently))
    (NP (NN someone))
    (VP
      (VBD mentioned)
      (NP (DT the) (NN word) (NN malaria))
      (PP (TO to) (NP (PRP me)))))
  (, ,)
  (CC and)
  (IN so)
  (S
    (NP
      (NP (CD one) (JJ whole) (NN flood))
      (PP (IN of) (NP (NNS memories))))
    (VP (VBD came) (S (VP (VBG pouring) (ADVP (RB back))))))
  (. .))

Я не осведомлен о структуре данных. Я хочу извлечь родительский и супер родительский узел для каждого конечного узла, например для «недавно» я хочу (ADVP, RB), а для «кого-то» это (NP, NN) Это конечный результат, который я хочу. В предыдущем ответе использовалась функция eval (), которую я хочу избежать.

[('ADVP', 'RB'), ('NP', 'NN'), ('VP', 'VBD'), ('NP', 'DT'), ('NP', 'NN'), ('NP', 'NN'), ('PP', 'TO'), ('NP', 'PRP'), ('S', 'CC'), ('S', 'IN'), ('NP', 'CD'), ('NP', 'JJ'), ('NP', 'NN'), ('PP', 'IN'), ('NP', 'NNS'), ('VP', 'VBD'), ('VP', 'VBG'), ('ADVP', 'RB')]

Ответы на вопрос(1)

Ваш ответ на вопрос