def buildElement(self, token): element = None # arg, arg_mod, ncmod, det, xmod(vp, ap), xcomp (np, vp) if token.relation == 'aux': element = Element(sintax = 'AUX', element = "AUX[%s]" % (token.word), argument = 'AUXILIARY', relevance = 1) elif token.relation.endswith('subj'): element = Element(sintax = 'SUBJ', element = 'SUBJ', argument = 'SUBJECT', relevance = 1) elif token.relation in ['dobj', 'obj2', 'obj']: element = Element(sintax = 'NP', element = 'NP', argument = 'DIRECT.OBJECT', relevance = 1) elif token.relation in ['iobj', 'pcomp', 'pmod']: element = Element(sintax = 'PP', element = "PP[%s]"% (token.word), argument = 'INDIRECT.OBJECT', relevance = 1) elif token.morpho.startswith('R'): element = Element(sintax = 'ADVP', element = "ADVP", argument = 'ADJUNCT.ADVERBIAL', relevance = 1) elif token.morpho.startswith('J'): element = Element(sintax = 'ADJP', element = "ADJP", argument = 'ADJP', relevance = 1) elif token.morpho.startswith('M') or token.morpho.startswith('N') or token.morpho.startswith('P'): element = Element(sintax = 'NP', element = "NP", argument = 'NP', relevance = 1) elif token.morpho.startswith('V'): element = Element(sintax = 'VP', element = "VP", argument = 'SINF', relevance = 1) #else: #element = Element(sintax = token.relation, element = token.relation+"["+token.word+"]" , argument = token.relation, relevance = 1) if not element: return element element.position = token.id raw, begin, end = token.getPhrasalCore() element.begin = begin element.end = end element.raw = raw return element
def buildElement(self, argument): element = None sintax = argument.sintax if not sintax: return None if sintax.startswith('SUBJECT'): element = Element(argument = sintax.replace('SUBJECT', 'SUJ'), relevance = 1) elif sintax.startswith('REFLEXIVE.OBJECT'): element = Element(argument = sintax.replace('REFLEXIVE.OBJECT', 'REFL'), relevance = 3) elif sintax.startswith('DIRECT.OBJECT'): element = Element(argument = sintax.replace('DIRECT.OBJECT', 'OD'), relevance = 2) elif sintax.startswith('INDIRECT.OBJECT'): element = Element(argument = sintax.replace('INDIRECT.OBJECT', 'OI'), relevance = 4) elif sintax.startswith('ADJUNCT.ADVERBIAL'): element = Element(argument = sintax.replace('ADJUNCT.ADVERBIAL', 'AADV'), relevance = 5) elif sintax.startswith('PRONOMINAL.INDIRECT.OBJECT'): element = Element(argument = sintax.replace('PRONOMINAL.INDIRECT.OBJECT', 'OIP'), relevance = 2) elif sintax.startswith('CLAUSAL.DIRECT.OBJECT'): element = Element(argument = sintax.replace('CLAUSAL.DIRECT.OBJECT', 'ODO'), relevance = 2) elif sintax.startswith('PREDICATIVE'): element = Element(argument = sintax.replace('PREDICATIVE', 'PRED'), relevance = 2) elif sintax.startswith('PASSIVE.AGENT'): element = Element(argument = sintax.replace('PASSIVE.AGENT', 'AP'), relevance = 2) elif sintax == 'N' or sintax == 'NUM': element = Element(argument = sintax, relevance = 6) elif sintax == 'ADJ': element = Element(argument = sintax, relevance = 6) elif sintax == 'V': element = Element(argument = sintax, relevance = 7) if not element: return element element.semantic = argument.semantic element.position = argument.position return element
def buildElement(self, token): element = None if token.function in ["SUBJ", "ICL-SUBJ", "FS-SUBJ"]: element = Element(sintax = 'SUBJ', element = 'SUBJ[NP]', argument = 'SUBJECT', relevance = 1) elif "ACC-PASS" in token.function or 'refl' in token.semantics: element = Element(sintax = 'REFL', element = 'REFL', argument = 'REFLEXIVE.OBJECT', relevance = 2) elif "ACC" == token.function: element = Element(sintax = 'NP', element = 'NP', argument = 'DIRECT.OBJECT', relevance = 3) elif token.function in ['PIV', 'SA', 'PASS']: element = Element(sintax = 'PP', element = "PP[%s]" % (token.lemma), argument = 'INDIRECT.OBJECT', relevance = 4) if token.function == 'PASS': element.argument = 'PASSIVE.AGENT' elif "ADVL" == token.function and not "ADV" in token.morphos: element = Element(sintax = 'PP', element = "PP[%s]" % (token.lemma), argument = 'ADVERBIAL.ADJUNCT', relevance = 4) elif "DAT" == token.function: element = Element(sintax = 'DAT', element = "DAT", argument = 'PRONOMINAL.INDIRECT.OBJECT', relevance = 2) elif token.function in ["FS-ACC", 'ICL-ACC']: element = Element(sintax = 'OCL', element = "OCL", argument = 'CLAUSAL.DIRECT.OBJECT', relevance = 3) elif token.function in ["SC", 'ICL-SC', 'FS-SC', 'OC', 'ICL-OC', 'FS-OC']: element = Element(sintax = 'PR', element = "PR", argument = 'PREDICATIVE', relevance = 4) if "PRP" in token.morphos: element.element = "PR[%s]" % (token.lemma) elif token.morphos and token.morphos[0]: if 'N' in token.morphos or 'NUM' in token.morphos: element = Element(sintax = 'NP', element = "NP", argument = None, relevance = 3) elif "ADJ" in token.morphos: element = Element(sintax = 'ADJP', element = "ADJP", argument = None, relevance = 5) elif "V" in token.morphos: element = Element(sintax = 'SINF', element = "SINF", argument = None, relevance = 5) if not element: return element element.position = token.id raw, begin, end = token.getPhrasalCore() element.begin = begin element.end = end element.raw = raw return element