def demo():
    """
    A demonstration showing how each tree transform can be used.
    """  
      
    from nltk_lite.draw.tree import draw_trees
    from nltk_lite.parse import bracket_parse
    from copy import deepcopy
    
    # original tree from WSJ bracketed text
    sentence = "(TOP (S (S (VP (VBN Turned) (ADVP (RB loose)) (PP (IN in) (NP (NP (NNP Shane) (NNP Longman) (POS 's)) (NN trading) (NN room))))) (, ,) (NP (DT the) (NN yuppie) (NNS dealers)) (VP (AUX do) (NP (NP (RB little)) (ADJP (RB right)))) (. .)))"
    tree = bracket_parse(sentence)
    
    # collapse subtrees with only one child
    collapsedTree = deepcopy(tree)
    collapseUnary(collapsedTree)
    
    # convert the tree to CNF
    cnfTree = deepcopy(collapsedTree)
    chomskyNormalForm(cnfTree)
    
    # convert the tree to CNF with parent annotation (one level) and horizontal smoothing of order two
    parentTree = deepcopy(collapsedTree)
    chomskyNormalForm(parentTree, horzMarkov = 2, vertMarkov = 1)
    
    # convert the tree back to its original form (used to make CYK results comparable)
    original = deepcopy(parentTree)
    unChomskyNormalForm(original)
    
    # convert tree back to bracketed text
    sentence2 = toTreebank(original)
    print "Sentences the same? ", sentence == sentence2
    
    draw_trees(tree, collapsedTree, cnfTree, parentTree, original)
예제 #2
0
from nltk_lite.parse import bracket_parse
from pprint import pprint
sent = '(S (NP Lee)(VP (V saw)(NP the dog)))'
tree =  bracket_parse(sent)
pprint(tree.pp())
#tree.draw()