Commit a52378937baa1fd00d1429ad7e3e6aa9734753e5
1 parent
049dca46
Exists in
master
and in
1 other branch
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,7 +404,10 @@ class AplicaRegras(object): | ||
| 404 | 404 | ||
| 405 | try: | 405 | try: |
| 406 | num_romano = roman_to_int(it.get_word().encode('utf-8')) | 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 | except: | 411 | except: |
| 409 | pass | 412 | pass |
| 410 | 413 |
src/AplicaSinonimos.py
| @@ -16,11 +16,14 @@ from os import environ, path | @@ -16,11 +16,14 @@ from os import environ, path | ||
| 16 | 16 | ||
| 17 | 17 | ||
| 18 | class AplicaSinonimos(object): | 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 | def __init__(self): | 22 | def __init__(self): |
| 23 | self.dicionarios = LerDicionarios() | 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 | # Itera sobre os tokens obtendo os sinonimos | 28 | # Itera sobre os tokens obtendo os sinonimos |
| 26 | def aplicar_sinonimos(self, lista_anotada): | 29 | def aplicar_sinonimos(self, lista_anotada): |
| @@ -29,6 +32,15 @@ class AplicaSinonimos(object): | @@ -29,6 +32,15 @@ class AplicaSinonimos(object): | ||
| 29 | lista_corrigida = [] | 32 | lista_corrigida = [] |
| 30 | for tupla in lista_anotada: | 33 | for tupla in lista_anotada: |
| 31 | sinonimo = self.verificar_sinonimo(tupla[0]) | 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 | lista_corrigida.append(sinonimo) | 44 | lista_corrigida.append(sinonimo) |
| 33 | return self.verificar_palavra_composta(lista_corrigida) | 45 | return self.verificar_palavra_composta(lista_corrigida) |
| 34 | 46 | ||
| @@ -59,4 +71,13 @@ class AplicaSinonimos(object): | @@ -59,4 +71,13 @@ class AplicaSinonimos(object): | ||
| 59 | def localizar_arquivo_palavras_compostas(self): | 71 | def localizar_arquivo_palavras_compostas(self): |
| 60 | if "TRANSLATE_DATA" in environ: | 72 | if "TRANSLATE_DATA" in environ: |
| 61 | return path.join(environ.get("TRANSLATE_DATA"), "palavras_compostas.csv") | 73 | return path.join(environ.get("TRANSLATE_DATA"), "palavras_compostas.csv") |
| 62 | - return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv' | ||
| 63 | \ No newline at end of file | 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 | \ No newline at end of file | 85 | \ No newline at end of file |