Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
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")