From a52378937baa1fd00d1429ad7e3e6aa9734753e5 Mon Sep 17 00:00:00 2001 From: Erickson Silva Date: Mon, 18 Jan 2016 14:30:44 -0300 Subject: [PATCH] Adiciona tratamento de números ordinais --- src/AplicaRegras.py | 5 ++++- src/AplicaSinonimos.py | 25 +++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/AplicaRegras.py b/src/AplicaRegras.py index 2319fcd..4780e0c 100644 --- a/src/AplicaRegras.py +++ b/src/AplicaRegras.py @@ -404,7 +404,10 @@ class AplicaRegras(object): try: num_romano = roman_to_int(it.get_word().encode('utf-8')) - lista_simplificada[it.get_count()] = [num_romano.decode('utf-8'), 'NUM-R'] + if it.get_prev_ticket()[-2:] == "-F": + lista_simplificada[it.get_count()] = [num_romano+"ª".decode('utf-8'), 'NUM-R'] + else: + lista_simplificada[it.get_count()] = [num_romano+"º".decode('utf-8'), 'NUM-R'] except: pass diff --git a/src/AplicaSinonimos.py b/src/AplicaSinonimos.py index 7805856..22a50eb 100644 --- a/src/AplicaSinonimos.py +++ b/src/AplicaSinonimos.py @@ -16,11 +16,14 @@ from os import environ, path class AplicaSinonimos(object): - '''Aplica sinonimos após aplicação de regras morfológicas/sintáticas. + '''Aplica sinonimos após aplicação de regras morfológicas/sintática ''' def __init__(self): self.dicionarios = LerDicionarios() + self.ordinais = {u'8\xaa': u'oitava', u'3\xba': u'terceiro', u'9\xaa': u'nona', u'5\xba': u'quinto', u'6\xaa': u'sexta', + u'1\xba': u'primeiro', u'7\xaa': u's\xe9tima', u'2\xba': u'segundo', u'8\xba': u'oitavo', u'3\xaa': u'terceira', + u'9\xba': u'nono', u'5\xaa': u'quinta', u'6\xba': u'sexto', u'1\xaa': u'primeira', u'7\xba': u's\xe9timo', u'2\xaa': u'segunda'} # Itera sobre os tokens obtendo os sinonimos def aplicar_sinonimos(self, lista_anotada): @@ -29,6 +32,15 @@ class AplicaSinonimos(object): lista_corrigida = [] for tupla in lista_anotada: sinonimo = self.verificar_sinonimo(tupla[0]) + if tupla[1] == "NUM" or tupla[1] == "NUM-R": + if self.verificar_ordinal(sinonimo): + ordinal = self.get_ordinal_extenso(sinonimo) + lista_corrigida.append(ordinal) + continue + else: + cardinal = self.converter_ordinal_para_cardinal(sinonimo) + lista_corrigida.append(cardinal) + continue lista_corrigida.append(sinonimo) return self.verificar_palavra_composta(lista_corrigida) @@ -59,4 +71,13 @@ class AplicaSinonimos(object): def localizar_arquivo_palavras_compostas(self): if "TRANSLATE_DATA" in environ: return path.join(environ.get("TRANSLATE_DATA"), "palavras_compostas.csv") - return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv' \ No newline at end of file + return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv' + + def get_ordinal_extenso(self, token): + return self.ordinais[token] + + def verificar_ordinal(self, token): + return self.ordinais.has_key(token) + + def converter_ordinal_para_cardinal(self, token): + return token.replace("ª".decode('utf-8'), "").replace("º".decode('utf-8'), "") \ No newline at end of file -- libgit2 0.21.2