Commit 7b76db41f6c160168ce399bb2370d28eb81651a4

Authored by Erickson Silva
1 parent 39dc2b34
Exists in master and in 1 other branch devel

Adiciona conversão de números romanos

src/AplicaRegras.py
... ... @@ -38,12 +38,12 @@ class AplicaRegras(object):
38 38 # Gera arvore a partir do arquivos regras.xml
39 39 def get_root(self):
40 40 '''Verifica qual o SO e gera o path de onde se encontra o diretório data.
41   - '''
42   - if "TRANSLATE_DATA" in environ:
  41 + '''
  42 + if "TRANSLATE_DATA" in environ:
43 43 arq_regras = path.join(environ.get("TRANSLATE_DATA"), "regras.xml")
44 44 return ET.parse(arq_regras).getroot()
45   - elif platform.system() == 'Windows':
46   - return ET.parse(environ.get("HOMEDRIVE")+'\\vlibras-libs\\vlibras-translate\data\\regras.xml').getroot()
  45 + elif platform.system() == "Windows":
  46 + return ET.parse(environ.get("HOMEDRIVE")+'\\vlibras-libs\\vlibras-translate\\data\\regras.xml').getroot()
47 47 return ET.parse(expanduser("~")+'/vlibras-translate/data/regras.xml').getroot()
48 48  
49 49 # Aplica regras morfológicas apartir do arquivo regras.xml
... ... @@ -399,9 +399,11 @@ class AplicaRegras(object):
399 399 tag = it.get_ticket()
400 400  
401 401 if tag == "NUM":
  402 + num_romano = roman_to_int(it.get_word())
  403 + lista_simplificada[it.get_count()] = [num_romano.decode('utf-8'), 'NUM-R']
402 404 num = True
403 405  
404   - if tag[-2:] == "-P" and self.verificar_excecao_plural(it.get_word()):
  406 + if tag[-2:] == "-P" or tag[-2:] == "_P" and self.verificar_excecao_plural(it.get_word()):
405 407 singular = self.analisar_plural(it.get_word())
406 408 lista_simplificada[it.get_count()][0] = singular
407 409  
... ... @@ -438,7 +440,7 @@ class AplicaRegras(object):
438 440 return token[:-2]+"l"
439 441 return token
440 442 elif(token[-1] == "s"):
441   - #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tagênis, ônibus, etc
  443 + #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tagênis, ônibus, etc
442 444 return token[:-1]
443 445 else:
444 446 return token
... ...
src/ConverteExtenso.py
... ... @@ -25,7 +25,28 @@ ext = [{"um":"1", "dois":"2", "tres":"3", "quatro":"4", "cinco":"5", "seis":"6",
25 25 und = {"mil":1000, "milhao":1000000, "bilhao":1000000000, "trilhao":1000000000000}
26 26 unds = {"mil":"000", "milhao":"000000","milhoes":"000000", "bilhao":"000000000","bilhoes":"000000000", "trilhao":"000000000000", "trilhoes":"000000000000"}
27 27  
28   -
  28 +numeral_map = zip(
  29 + (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1),
  30 + ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')
  31 +)
  32 +
  33 +def int_to_roman(i):
  34 + result = []
  35 + for integer, numeral in numeral_map:
  36 + count = int(i / integer)
  37 + result.append(numeral * count)
  38 + i -= integer * count
  39 + return ''.join(result)
  40 +
  41 +def roman_to_int(n):
  42 + n = unicode(n).upper()
  43 +
  44 + i = result = 0
  45 + for integer, numeral in numeral_map:
  46 + while n[i:i + len(numeral)] == numeral:
  47 + result += integer
  48 + i += len(numeral)
  49 + return str(result)
29 50  
30 51 def oneDigit(x):
31 52 return ext[0][x]
... ...
src/alexp.py
... ... @@ -98,10 +98,9 @@ def corrigeAnotacao(lista):
98 98 def encontraArquivo():
99 99 """Encontra arquivo na pasta vlibras-translate.
100 100 """
101   - so = platform.system()
102 101 if "TRANSLATE_DATA" in environ:
103 102 return path.join(environ.get("TRANSLATE_DATA"), "cfg.syn.nltk")
104   - elif so == 'Windows':
  103 + elif platform.system() == 'Windows':
105 104 return environ.get("HOMEDRIVE") + "\\vlibras-libs\\vlibras-translate\data\cfg.syn.nltk"
106 105 return expanduser("~") + "/vlibras-translate/data/cfg.syn.nltk"
107 106  
... ...