Commit a52378937baa1fd00d1429ad7e3e6aa9734753e5

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

Adiciona tratamento de números ordinais

Showing 2 changed files with 27 additions and 3 deletions   Show diff stats
src/AplicaRegras.py
... ... @@ -404,7 +404,10 @@ class AplicaRegras(object):
404 404  
405 405 try:
406 406 num_romano = roman_to_int(it.get_word().encode('utf-8'))
407   - lista_simplificada[it.get_count()] = [num_romano.decode('utf-8'), 'NUM-R']
  407 + if it.get_prev_ticket()[-2:] == "-F":
  408 + lista_simplificada[it.get_count()] = [num_romano+"ª".decode('utf-8'), 'NUM-R']
  409 + else:
  410 + lista_simplificada[it.get_count()] = [num_romano+"º".decode('utf-8'), 'NUM-R']
408 411 except:
409 412 pass
410 413  
... ...
src/AplicaSinonimos.py
... ... @@ -16,11 +16,14 @@ from os import environ, path
16 16  
17 17  
18 18 class AplicaSinonimos(object):
19   - '''Aplica sinonimos após aplicação de regras morfológicas/sintáticas.
  19 + '''Aplica sinonimos após aplicação de regras morfológicas/sintática
20 20 '''
21 21  
22 22 def __init__(self):
23 23 self.dicionarios = LerDicionarios()
  24 + self.ordinais = {u'8\xaa': u'oitava', u'3\xba': u'terceiro', u'9\xaa': u'nona', u'5\xba': u'quinto', u'6\xaa': u'sexta',
  25 + u'1\xba': u'primeiro', u'7\xaa': u's\xe9tima', u'2\xba': u'segundo', u'8\xba': u'oitavo', u'3\xaa': u'terceira',
  26 + u'9\xba': u'nono', u'5\xaa': u'quinta', u'6\xba': u'sexto', u'1\xaa': u'primeira', u'7\xba': u's\xe9timo', u'2\xaa': u'segunda'}
24 27  
25 28 # Itera sobre os tokens obtendo os sinonimos
26 29 def aplicar_sinonimos(self, lista_anotada):
... ... @@ -29,6 +32,15 @@ class AplicaSinonimos(object):
29 32 lista_corrigida = []
30 33 for tupla in lista_anotada:
31 34 sinonimo = self.verificar_sinonimo(tupla[0])
  35 + if tupla[1] == "NUM" or tupla[1] == "NUM-R":
  36 + if self.verificar_ordinal(sinonimo):
  37 + ordinal = self.get_ordinal_extenso(sinonimo)
  38 + lista_corrigida.append(ordinal)
  39 + continue
  40 + else:
  41 + cardinal = self.converter_ordinal_para_cardinal(sinonimo)
  42 + lista_corrigida.append(cardinal)
  43 + continue
32 44 lista_corrigida.append(sinonimo)
33 45 return self.verificar_palavra_composta(lista_corrigida)
34 46  
... ... @@ -59,4 +71,13 @@ class AplicaSinonimos(object):
59 71 def localizar_arquivo_palavras_compostas(self):
60 72 if "TRANSLATE_DATA" in environ:
61 73 return path.join(environ.get("TRANSLATE_DATA"), "palavras_compostas.csv")
62   - return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv'
63 74 \ No newline at end of file
  75 + return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv'
  76 +
  77 + def get_ordinal_extenso(self, token):
  78 + return self.ordinais[token]
  79 +
  80 + def verificar_ordinal(self, token):
  81 + return self.ordinais.has_key(token)
  82 +
  83 + def converter_ordinal_para_cardinal(self, token):
  84 + return token.replace("ª".decode('utf-8'), "").replace("º".decode('utf-8'), "")
64 85 \ No newline at end of file
... ...