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. | ... | ... |