#!/usr/bin/python # -*- coding: utf-8 -*- #Autor: Erickson Silva #Email: #LAViD - Laboratório de Aplicações de Vídeo Digital import alexp from AplicaRegras import * import logging import traceback class TraduzSentencas(object): '''Realiza a tradução do texto em português para glosa ''' def __init__(self): '''Instancia os aplicadores de regras e sinônimos. ''' self.aplic_regras = AplicaRegras() logging.basicConfig(filename='translate.log', format='%(asctime)s - %(levelname)s:\n\n%(message)s\n\n\n##############################################\n\n', level=logging.ERROR) def iniciar_traducao(self, sentenca): '''Metódo responsável por executar todos componentes necessários para a geração da glosa. ''' try: analise_sintatica = alexp.run(sentenca) except Exception as ex: #self.salvar_log(str(traceback.format_exc())) analise_sintatica = None analise_morfologica = alexp.getAnaliseMorfologica() if (isinstance(analise_sintatica,type(None))): #print "# ANÁLISE MORFOLÓGICA" regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica) else: #print "# ANÁLISE SINTÁTICA" try: regras_aplicadas = self.aplic_regras.aplicar_regras_sint(analise_morfologica, analise_sintatica) except: regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica) sentenca_corrigida = self.aplic_regras.simplificar_sentenca(regras_aplicadas) sentenca_sem_acentos = self.aplic_regras.remover_acento(sentenca_corrigida) if sentenca_sem_acentos: return sentenca_sem_acentos.upper().encode('utf-8') return "TEXTO ERRADO ESCOLHER OUTRO" def salvar_log(self, erro): '''Salva traceback de uma excessão do analisador sintático ''' logging.error(erro)