From ebe1e165a2eb9a5269baedf04abc1433db73d899 Mon Sep 17 00:00:00 2001 From: Erickson Silva Date: Mon, 15 Jun 2015 14:09:56 -0300 Subject: [PATCH] Remove todos caracteres especiais, com exceção de % e $ --- src/AplicaRegras.py | 3 +-- src/TraduzSentencas.py | 11 ++++++----- src/alexp.py | 12 +++++++----- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/AplicaRegras.py b/src/AplicaRegras.py index f3be516..8fdf78f 100644 --- a/src/AplicaRegras.py +++ b/src/AplicaRegras.py @@ -410,8 +410,7 @@ class AplicaRegras(object): lista_simplificada = self.converter_extenso(lista_simplificada) except: pass - - #return " ".join([x[0] for x in lista_simplificada]) + return lista_simplificada diff --git a/src/TraduzSentencas.py b/src/TraduzSentencas.py index c9ee32f..c26e553 100644 --- a/src/TraduzSentencas.py +++ b/src/TraduzSentencas.py @@ -10,6 +10,7 @@ import alexp from AplicaRegras import * import logging import traceback +import re, string class TraduzSentencas(object): '''Realiza a tradução do texto em português para glosa @@ -35,7 +36,7 @@ class TraduzSentencas(object): has_sintatica = False analise_morfologica = alexp.getAnaliseMorfologica() - + if (isinstance(analise_sintatica,type(None))): regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica) else: @@ -46,14 +47,14 @@ class TraduzSentencas(object): sentenca_corrigida = self.aplic_regras.simplificar_sentenca(regras_aplicadas) glosa = " ".join([x[0] for x in sentenca_corrigida]) - glosa_sem_acentos = self.aplic_regras.remover_acento(glosa).upper().encode('utf-8') - if glosa_sem_acentos: + if glosa: if taxa: taxa_qualidade = self.gerar_metrica_qualidade(sentenca_corrigida) return {'glosa':glosa_sem_acentos, 'taxa':taxa_qualidade, 'sintatica':has_sintatica} - return glosa_sem_acentos - return "TEXTO ERRADO ESCOLHER OUTRO" + return glosa.upper().encode('utf-8') + return "TEXTO ERRADO ESCOLHER OUTRO" + def salvar_log(self, erro): '''Salva traceback de uma excessão do analisador sintático diff --git a/src/alexp.py b/src/alexp.py index a785a5e..3db1285 100644 --- a/src/alexp.py +++ b/src/alexp.py @@ -34,7 +34,6 @@ from Aelius.Extras import carrega from Aelius import AnotaCorpus from unicodedata import normalize - sentenca_anotada="" sleep_times=[0.1,0.2] @@ -46,7 +45,6 @@ def toqueniza(s): def getAnaliseMorfologica(): return sentenca_anotada - #return [list(x) for x in sentenca_anotada] def etiquetaSentenca(s): """Aplica um dos etiquetadores do Aelius na etiquetagem da sentença dada como lista de tokens. @@ -56,10 +54,14 @@ def etiquetaSentenca(s): while (anotada[0][1] is None): time.sleep(random.choice(sleep_times)) anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0] - #anotada[0] = (anotada[0][0].lower(), anotada[0][1]) - #return anotada + regex = re.compile('[%s]' % re.escape('!"#&\'()*+,-./:;<=>?@[\\]^_`{|}~')) tag_punctuation = [".",",","QT","("] - return [[x[0].lower(),x[1]] for x in anotada if x[1] not in tag_punctuation] + anotada_corrigida = [] + for x in anotada: + if x[1] not in tag_punctuation: + tupla = [regex.sub('',x[0]).lower(),x[1]] + if tupla[0] != "": anotada_corrigida.append(tupla) + return anotada_corrigida def geraEntradasLexicais(lista): """Gera entradas lexicais no formato CFG do NLTK a partir de lista de pares constituídos de tokens e suas etiquetas. -- libgit2 0.21.2