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