def bracket_parse(files=items): if type(files) is str: files = (files,) for file in files: path = os.path.join(get_basedir(), "ycoe/psd", file + ".psd") s = open(path).read() data = _parse(s) for sent in data: yield tree.bracket_parse(sent)
def demo(): """ A demonstration showing how C{Tree}s and C{Tree}s can be used. This demonstration creates a C{Tree}, and loads a C{Tree} from the L{treebank<nltk.corpus.treebank>} corpus, and shows the results of calling several of their methods. """ from nltk_lite.parse import tree # Demonstrate tree parsing. s = '(S (NP (DT the) (NN cat)) (VP (VBD ate) (NP (DT a) (NN cookie))))' t = tree.bracket_parse(s) print "Convert bracketed string into tree:" print t print "Display tree properties:" print t.node # tree's constituent type print t[0] # tree's first child print t[1] # tree's second child print t.height() print t.leaves() print t[1] print t[1,1] print t[1,1,0] # Demonstrate tree modification. the_cat = t[0] the_cat.insert(1, tree.bracket_parse('(JJ big)')) print "Tree modification:" print t t[1,1,1] = tree.bracket_parse('(NN cake)') print t print # Demonstrate probabilistic trees. pt = tree.ProbabilisticTree('x', ['y', 'z'], prob=0.5) print "Probabilistic Tree:" print pt print # Demonstrate parsing of treebank output format. t = tree.bracket_parse(t.pp_treebank())[0] print "Convert tree to bracketed string and back again:" print t.pp_treebank() print t print # Demonstrate LaTeX output print "LaTeX output:" print t.pp_latex_qtree() print # Demonstrate Productions print "Production output:" print t.productions() print # Demonstrate chunk parsing s = "[ Pierre/NNP Vinken/NNP ] ,/, [ 61/CD years/NNS ] old/JJ ,/, will/MD join/VB [ the/DT board/NN ] ./." from tree import chunk print "Chunk Parsing:" print chunk(s, chunk_node='NP').pp() print s = """ These DT B-NP research NN I-NP protocols NNS I-NP offer VBP B-VP to TO B-PP the DT B-NP patient NN I-NP not RB O only RB O the DT B-NP very RB I-NP best JJS I-NP therapy NN I-NP which WDT B-NP we PRP B-NP have VBP B-VP established VBN I-VP today NN B-NP but CC B-NP also RB I-NP the DT B-NP hope NN I-NP of IN B-PP something NN B-NP still RB B-ADJP better JJR I-ADJP . . O """ print conll_chunk(s, chunk_types=('NP', 'PP', 'VP')).pp()
TreeView(*trees).mainloop() return ##////////////////////////////////////////////////////// ## Demo Code ##////////////////////////////////////////////////////// import random if __name__ == '__main__': def fill(cw): cw['fill'] = '#%06d' % random.randint(0,999999) cf = CanvasFrame(width=550, height=450, closeenough=2) t = tree.bracket_parse(''' (S (NP the very big cat) (VP (Adv sorta) (V saw) (NP (Det the) (N dog))))''') tc = TreeWidget(cf.canvas(), t, draggable=1, node_font=('helvetica', -14, 'bold'), leaf_font=('helvetica', -12, 'italic'), roof_fill='white', roof_color='black', leaf_color='green4', node_color='blue2') cf.add_widget(tc,10,10) def boxit(canvas, text): big = ('helvetica', -16, 'bold') return BoxWidget(canvas, TextWidget(canvas, text, font=big), fill='green') def ovalit(canvas, text): return OvalWidget(canvas, TextWidget(canvas, text),