Commit ebe1e165a2eb9a5269baedf04abc1433db73d899
1 parent
ba9507ef
Exists in
master
and in
1 other branch
Remove todos caracteres especiais, com exceção de % e $
Showing
3 changed files
with
14 additions
and
12 deletions
Show diff stats
src/AplicaRegras.py
src/TraduzSentencas.py
| ... | ... | @@ -10,6 +10,7 @@ import alexp |
| 10 | 10 | from AplicaRegras import * |
| 11 | 11 | import logging |
| 12 | 12 | import traceback |
| 13 | +import re, string | |
| 13 | 14 | |
| 14 | 15 | class TraduzSentencas(object): |
| 15 | 16 | '''Realiza a tradução do texto em português para glosa |
| ... | ... | @@ -35,7 +36,7 @@ class TraduzSentencas(object): |
| 35 | 36 | has_sintatica = False |
| 36 | 37 | |
| 37 | 38 | analise_morfologica = alexp.getAnaliseMorfologica() |
| 38 | - | |
| 39 | + | |
| 39 | 40 | if (isinstance(analise_sintatica,type(None))): |
| 40 | 41 | regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica) |
| 41 | 42 | else: |
| ... | ... | @@ -46,14 +47,14 @@ class TraduzSentencas(object): |
| 46 | 47 | |
| 47 | 48 | sentenca_corrigida = self.aplic_regras.simplificar_sentenca(regras_aplicadas) |
| 48 | 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 | 52 | if taxa: |
| 53 | 53 | taxa_qualidade = self.gerar_metrica_qualidade(sentenca_corrigida) |
| 54 | 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 | 59 | def salvar_log(self, erro): |
| 59 | 60 | '''Salva traceback de uma excessão do analisador sintático | ... | ... |
src/alexp.py
| ... | ... | @@ -34,7 +34,6 @@ from Aelius.Extras import carrega |
| 34 | 34 | from Aelius import AnotaCorpus |
| 35 | 35 | from unicodedata import normalize |
| 36 | 36 | |
| 37 | - | |
| 38 | 37 | sentenca_anotada="" |
| 39 | 38 | sleep_times=[0.1,0.2] |
| 40 | 39 | |
| ... | ... | @@ -46,7 +45,6 @@ def toqueniza(s): |
| 46 | 45 | |
| 47 | 46 | def getAnaliseMorfologica(): |
| 48 | 47 | return sentenca_anotada |
| 49 | - #return [list(x) for x in sentenca_anotada] | |
| 50 | 48 | |
| 51 | 49 | def etiquetaSentenca(s): |
| 52 | 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 | 54 | while (anotada[0][1] is None): |
| 57 | 55 | time.sleep(random.choice(sleep_times)) |
| 58 | 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 | 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 | 66 | def geraEntradasLexicais(lista): |
| 65 | 67 | """Gera entradas lexicais no formato CFG do NLTK a partir de lista de pares constituídos de tokens e suas etiquetas. | ... | ... |