def reload(self, prefs): """ Reloads grammar according to prefs file. """ self.analyzer = ECGAnalyzer(prefs) self.grammar = self.analyzer.grammar
def __init__(self, prefs): self.analyzer = ECGAnalyzer(prefs) self.grammar = self.analyzer.grammar self.server = None
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()