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()
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
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))