def run(self, hogwash_job): print >>sys.stderr, "Loading grammar", self.grammar grammar = HierGrammar(self.grammar) print >>sys.stderr, "Done" print >>sys.stderr, "Parse options:" print >>sys.stderr, self.parseOpts self.parseOpts["grammar"] = grammar parser = Parser(**self.parseOpts) print >>sys.stderr, "Parsing:", self.sentence try: final = parser.parse(self.sentence) res = treeToStr(normalizeTree(final.tree())) except (ParseError, TypeError): #if psyco is active, throwing a parse error will fail #because psyco doesn't realize that exceptions can be #newstyle classes, because it's *old* #so we get a type error final = parser.parseFail(self.sentence) res = treeToStr(normalizeTree(final.tree())) print res return res
def run(self, hogwash_job): print >>sys.stderr, "Loading grammar", self.grammar grammar = HierGrammar(self.grammar) print >>sys.stderr, "Done" print >>sys.stderr, "Parse options:" print >>sys.stderr, self.parseOpts self.parseOpts["grammar"] = grammar if self.parserType == "standard": parser = Parser(**self.parseOpts) elif self.parserType == "ctf": parser = CTFParser(**self.parseOpts) else: raise TypeError("Don't know parser type %s" % self.parserType) print >>sys.stderr, "Parsing:", self.sentence try: final = parser.parse(self.sentence) except (ParseError, TypeError): #if psyco is active, throwing a parse error will fail #because psyco doesn't realize that exceptions can be #newstyle classes, because it's *old* #so we get a type error final = parser.parseFail(self.sentence) print treeToStr(normalizeTree(final.tree())) return final.tree()
from DBGrammar import DBGrammar if __name__ == "__main__": inf = sys.argv[1] print >>sys.stderr, "loading grammar", inf grammar = DBGrammar(inf) print >>sys.stderr, "done" debug = ["index", "pop", "push", "threshold"] parser = Parser(grammar, top="ROOT_0", mode="lex", queueLimit=5e5, verbose=["index"]) sent = "The stocks fell ." # sent = "Members of the House Ways and Means Committee introduced legislation that would restrict how the new savings-and-loan bailout agency can raise capital , creating another potential obstacle to the government 's sale of sick thrifts ." # sent = "The government 's plan" # sent = "John Smith and Mary Roe are friends ." #import cProfile #final = cProfile.run('parser.parse(sent.split())', 'profile-out4') final = parser.parse(sent.split()) print final print list(final.derivation()) print treeToStr(final.tree()) print treeToStr(normalizeTree(final.tree())) print treeToStr(final.tree(True))
verbose=["index", "level", tpar], gammas=[1e-11, 1e-10, 1e-9, 1e-8], deltas=[1e-5, 1e-5, 1e-5], stepExpansionLimit=100, ) # sent = "The stocks fell ." # sent = "John Smith and Mary Roe are friends ." sent = "Food prices are expected to be unchanged , but energy costs jumped as much as 4 % , said Gary Ciminero , economist at Fleet\/Norstar Financial Group ." final = parser.parse(sent.split()) print final print list(final.derivation()) print treeToStr(final.tree()) print treeToStr(normalizeTree(final.tree())) print treeToStr(final.tree(True)) level = 0 while final.subLevelHeap: level += 1 final = final.subLevelHeap[0] print print print "Level", level print final print list(final.derivation()) print treeToStr(final.tree()) print treeToStr(normalizeTree(final.tree(), stripSub=False)) print treeToStr(final.tree(True))
from Hogwash import Session #main hogwash class from Hogwash.Results import ResultsFile #type for file created by hw job from Hogwash.Action import Action #supertype for runnable objects from Hogwash.Errors import BadExitCode #error if the program crashed from waterworks.Processes import bettersystem #run an external command import sys from path import path import os from shutil import copy from iterextras import batch from StringIO import StringIO #store output of process from distributedParser import Parse from topdownParser import Parser, Grammar, treeToStr, normalizeTree if __name__ == "__main__": session = Session(sys.argv[1], read_only=True, verbose=0) p = Parser(Grammar({})) for job in session[:100]: if job.status != "finished": sent = job.args[0].sentence fail = p.parseFail(sent) print treeToStr(normalizeTree(fail.tree(), unbinarize=True)) else: print treeToStr(normalizeTree(job.results, unbinarize=False), epsilonSym="EPSILON")