2015-04-20 3 views
1

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

  1. можно дифференцировать в одном дереве (предложение) первого, второго, ... поддерева?
  2. Как я могу работать с тегами в листьях поддерева?

Следующий код работает хорошо,

  for subtree in tree.subtrees(filter=lambda t: t.node == 'NP'): 
      for attributes in subtree.leaves(): 
       print attributes 

но он возвращает список со словами и ярлыками:

('noun', 'NN') 
('verb', VBZ) 

и так далее: мне нужно различать между различными типами слова в поддереве. Файл поддерева() не существует.

Что-то вроде:

  for subtree in tree.subtrees(filter=lambda t: t.node == 'NP'): 
      for attributes in subtree.leaves(): 
       if subtree.labels() == 'NN': 
        # do something with the nouns... 

Спасибо за подсказку

ответ

0

Так что я сделал это с питоном. Во всяком случае, если у кого-то есть лучшая идея ...

  for subtree in tree.subtrees(filter=lambda t: t.node == 'NP' or t.node == 'NNS'): 
      for attributes in subtree.leaves(): 
       (expression, tag) = attributes 
       if tag == 'NN': 
        # do something with the nouns