Exemple #1
0
 def reload(self, prefs):
     """ Reloads grammar according to prefs file. """
     self.analyzer = ECGAnalyzer(prefs)
     self.grammar = self.analyzer.grammar
Exemple #2
0
 def __init__(self, prefs):
     self.analyzer = ECGAnalyzer(prefs)
     self.grammar = self.analyzer.grammar
     self.server = None
 def __init__(self, prefs):
     self.analyzer = ECGAnalyzer(prefs)
     self.grammar = self.analyzer.grammar
     self.server = None
 def reload(self, prefs):
     """ Reloads grammar according to prefs file. """
     self.analyzer = ECGAnalyzer(prefs)
     self.grammar = self.analyzer.grammar
class Analyzer(object):
    def __init__(self, prefs):
        self.analyzer = ECGAnalyzer(prefs)
        self.grammar = self.analyzer.grammar
        self.server = None


    def get_mappings(self):
        mappings = self.analyzer.getMappings()
        m = dict()
        for entry in mappings.entrySet():
            m[entry.key] = entry.value
        return m

    def get_lexicon(self):
        lexes = self.analyzer.getLexicon()
        return list(lexes)

    def get_parses(self, sentence):
        try:
            return getParses(sentence, self.analyzer)
        except ParserException:
            raise Fault(-1, u'The sentence "%s" has no valid parses.' % sentence)

    def get_mapping(self):
        v = AP.valueOf("MAPPING_PATH")
        return self.analyzer.getPrefs().getSetting(v)

        
    def parse(self, sentence):
        def root(parse):
            return parse.analyses[0].featureStructure.mainRoot
        
        def as_sequence(parse):
            def desc(slot):
                return (slot_type(slot), slot_index(slot), slot_typesystem(slot), slot_value(slot))
            
            slots = dict()
            root_ = root(parse)
            seq = [(parent, role) + desc(slots[s_id]) for parent, role, s_id in dfs('<ROOT>', root_, None, slots) if parent != -1]
            return (-1, '<ROOT>') + desc(root_), seq
        
        return [as_sequence(p) for p in self.get_parses(sentence)]


    def getConstructionSize(self):
        return len(self.analyzer.getGrammar().getAllConstructions())

    def getSchemaSize(self):
        return len(self.analyzer.getGrammar().getAllSchemas())


    def reload(self, prefs):
        """ Reloads grammar according to prefs file. """
        self.analyzer = ECGAnalyzer(prefs)
        self.grammar = self.analyzer.grammar

    def issubtype(self, typesystem, child, parent):
        """Is <child> a child of <parent>?
        """
        _ts = dict(CONSTRUCTION=self.grammar.cxnTypeSystem,
                   SCHEMA=self.grammar.schemaTypeSystem,
                   ONTOLOGY=self.grammar.ontologyTypeSystem)
        ts = _ts[typesystem]
        return ts.subtype(ts.getInternedString(child), ts.getInternedString(parent))

    def close(self):
        self.server.shutdown()