2017-06-06 16 views
-1

私はnltkが新しく、nltkツリーを扱うのが難しいと感じました。 Penn treebankからnltkの解析木が与えられたので、各ノードのスパンを下から上に再帰的に数えたいと思っています。リーフノードのスパンは1です。非終端ノードのスパンは、その子のスパンの合計です。誰かが私にこれを行う方法を教えてもらえますか?NLTKツリー内の各ノードのスパンを見つける

ありがとうございます。

+0

あなた自身の努力、つまりコードを共有すると、回答が得られやすくなります。 – MERose

答えて

0

tnltk.Treeの任意のツリーまたはサブツリーである場合、そのリーフの数はlen(t.leaves())で与えられます。

>>> t = Tree.fromstring('(S (NP (D the) (N dog)) (VP (V chased) (NP (D the) (N cat))))') 
>>> t[1,1] 
Tree('NP', [Tree('D', ['the']), Tree('N', ['cat'])]) 
>>> len(t[1,1].leaves()) 
2 
関連する問題