Commit ebe1e165a2eb9a5269baedf04abc1433db73d899

Authored by Erickson Silva
1 parent ba9507ef
Exists in master and in 1 other branch devel

Remove todos caracteres especiais, com exceção de % e $

src/AplicaRegras.py
@@ -410,8 +410,7 @@ class AplicaRegras(object): @@ -410,8 +410,7 @@ class AplicaRegras(object):
410 lista_simplificada = self.converter_extenso(lista_simplificada) 410 lista_simplificada = self.converter_extenso(lista_simplificada)
411 except: 411 except:
412 pass 412 pass
413 -  
414 - #return " ".join([x[0] for x in lista_simplificada]) 413 +
415 return lista_simplificada 414 return lista_simplificada
416 415
417 416
src/TraduzSentencas.py
@@ -10,6 +10,7 @@ import alexp @@ -10,6 +10,7 @@ import alexp
10 from AplicaRegras import * 10 from AplicaRegras import *
11 import logging 11 import logging
12 import traceback 12 import traceback
  13 +import re, string
13 14
14 class TraduzSentencas(object): 15 class TraduzSentencas(object):
15 '''Realiza a tradução do texto em português para glosa 16 '''Realiza a tradução do texto em português para glosa
@@ -35,7 +36,7 @@ class TraduzSentencas(object): @@ -35,7 +36,7 @@ class TraduzSentencas(object):
35 has_sintatica = False 36 has_sintatica = False
36 37
37 analise_morfologica = alexp.getAnaliseMorfologica() 38 analise_morfologica = alexp.getAnaliseMorfologica()
38 - 39 +
39 if (isinstance(analise_sintatica,type(None))): 40 if (isinstance(analise_sintatica,type(None))):
40 regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica) 41 regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica)
41 else: 42 else:
@@ -46,14 +47,14 @@ class TraduzSentencas(object): @@ -46,14 +47,14 @@ class TraduzSentencas(object):
46 47
47 sentenca_corrigida = self.aplic_regras.simplificar_sentenca(regras_aplicadas) 48 sentenca_corrigida = self.aplic_regras.simplificar_sentenca(regras_aplicadas)
48 glosa = " ".join([x[0] for x in sentenca_corrigida]) 49 glosa = " ".join([x[0] for x in sentenca_corrigida])
49 - glosa_sem_acentos = self.aplic_regras.remover_acento(glosa).upper().encode('utf-8')  
50 50
51 - if glosa_sem_acentos: 51 + if glosa:
52 if taxa: 52 if taxa:
53 taxa_qualidade = self.gerar_metrica_qualidade(sentenca_corrigida) 53 taxa_qualidade = self.gerar_metrica_qualidade(sentenca_corrigida)
54 return {'glosa':glosa_sem_acentos, 'taxa':taxa_qualidade, 'sintatica':has_sintatica} 54 return {'glosa':glosa_sem_acentos, 'taxa':taxa_qualidade, 'sintatica':has_sintatica}
55 - return glosa_sem_acentos  
56 - return "TEXTO ERRADO ESCOLHER OUTRO" 55 + return glosa.upper().encode('utf-8')
  56 + return "TEXTO ERRADO ESCOLHER OUTRO"
  57 +
57 58
58 def salvar_log(self, erro): 59 def salvar_log(self, erro):
59 '''Salva traceback de uma excessão do analisador sintático 60 '''Salva traceback de uma excessão do analisador sintático
@@ -34,7 +34,6 @@ from Aelius.Extras import carrega @@ -34,7 +34,6 @@ from Aelius.Extras import carrega
34 from Aelius import AnotaCorpus 34 from Aelius import AnotaCorpus
35 from unicodedata import normalize 35 from unicodedata import normalize
36 36
37 -  
38 sentenca_anotada="" 37 sentenca_anotada=""
39 sleep_times=[0.1,0.2] 38 sleep_times=[0.1,0.2]
40 39
@@ -46,7 +45,6 @@ def toqueniza(s): @@ -46,7 +45,6 @@ def toqueniza(s):
46 45
47 def getAnaliseMorfologica(): 46 def getAnaliseMorfologica():
48 return sentenca_anotada 47 return sentenca_anotada
49 - #return [list(x) for x in sentenca_anotada]  
50 48
51 def etiquetaSentenca(s): 49 def etiquetaSentenca(s):
52 """Aplica um dos etiquetadores do Aelius na etiquetagem da sentença dada como lista de tokens. 50 """Aplica um dos etiquetadores do Aelius na etiquetagem da sentença dada como lista de tokens.
@@ -56,10 +54,14 @@ def etiquetaSentenca(s): @@ -56,10 +54,14 @@ def etiquetaSentenca(s):
56 while (anotada[0][1] is None): 54 while (anotada[0][1] is None):
57 time.sleep(random.choice(sleep_times)) 55 time.sleep(random.choice(sleep_times))
58 anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0] 56 anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0]
59 - #anotada[0] = (anotada[0][0].lower(), anotada[0][1])  
60 - #return anotada 57 + regex = re.compile('[%s]' % re.escape('!"#&\'()*+,-./:;<=>?@[\\]^_`{|}~'))
61 tag_punctuation = [".",",","QT","("] 58 tag_punctuation = [".",",","QT","("]
62 - return [[x[0].lower(),x[1]] for x in anotada if x[1] not in tag_punctuation] 59 + anotada_corrigida = []
  60 + for x in anotada:
  61 + if x[1] not in tag_punctuation:
  62 + tupla = [regex.sub('',x[0]).lower(),x[1]]
  63 + if tupla[0] != "": anotada_corrigida.append(tupla)
  64 + return anotada_corrigida
63 65
64 def geraEntradasLexicais(lista): 66 def geraEntradasLexicais(lista):
65 """Gera entradas lexicais no formato CFG do NLTK a partir de lista de pares constituídos de tokens e suas etiquetas. 67 """Gera entradas lexicais no formato CFG do NLTK a partir de lista de pares constituídos de tokens e suas etiquetas.