Commit 28dd7772cd094362c397c42da3e97990df006634

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

Adiciona conversão de número por extenso para numeral

Showing 2 changed files with 48 additions and 5 deletions   Show diff stats
src/new/AplicaRegras.py
@@ -9,6 +9,8 @@ @@ -9,6 +9,8 @@
9 from LeitorDicionarios import * 9 from LeitorDicionarios import *
10 from Iterator import * 10 from Iterator import *
11 from StringAux import * 11 from StringAux import *
  12 +from ConversorExtenso import *
  13 +from collections import deque
12 14
13 class AplicaRegras(object): 15 class AplicaRegras(object):
14 16
@@ -23,6 +25,7 @@ class AplicaRegras(object): @@ -23,6 +25,7 @@ class AplicaRegras(object):
23 self.__ts = [] 25 self.__ts = []
24 self.__verb = False 26 self.__verb = False
25 self.__adv = False 27 self.__adv = False
  28 + self.__num = False
26 self.__plural = False 29 self.__plural = False
27 self.__countVerb = 0 30 self.__countVerb = 0
28 self.__countAdv = 0 31 self.__countAdv = 0
@@ -33,6 +36,9 @@ class AplicaRegras(object): @@ -33,6 +36,9 @@ class AplicaRegras(object):
33 36
34 if self.__dicionarios.hasPalavraIgnorada(tag) == False: # verifica se nao eh artigo/preposicao 37 if self.__dicionarios.hasPalavraIgnorada(tag) == False: # verifica se nao eh artigo/preposicao
35 38
  39 + if tag == "NUM":
  40 + self.__num = True
  41 +
36 if tag[-2:] == "-P": 42 if tag[-2:] == "-P":
37 self.__plural = True 43 self.__plural = True
38 44
@@ -75,7 +81,11 @@ class AplicaRegras(object): @@ -75,7 +81,11 @@ class AplicaRegras(object):
75 self.__ts = self.verbalAnalysis(self.__ts) 81 self.__ts = self.verbalAnalysis(self.__ts)
76 82
77 #VERIFICA SE É PLURAL 83 #VERIFICA SE É PLURAL
78 - if self.__plural: return self.hasPlural(self.__ts) 84 + if self.__plural:
  85 + self.__ts = self.hasPlural(self.__ts)
  86 +
  87 + #CONVERTE EXTENSO PARA NUMERO
  88 + if self.__num: return self.converteExtenso(self.__ts)
79 89
80 return self.__ts 90 return self.__ts
81 91
@@ -138,7 +148,7 @@ class AplicaRegras(object): @@ -138,7 +148,7 @@ class AplicaRegras(object):
138 tmp = lista 148 tmp = lista
139 for e in tmp: 149 for e in tmp:
140 if e[1][-2:] == "-P": 150 if e[1][-2:] == "-P":
141 - e[0] = analisarPlural(e[0]) 151 + e[0] = self.analisarPlural(e[0])
142 152
143 return tmp 153 return tmp
144 154
@@ -165,4 +175,37 @@ class AplicaRegras(object): @@ -165,4 +175,37 @@ class AplicaRegras(object):
165 #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tagênis, ônibus, etc 175 #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tagênis, ônibus, etc
166 return word[0:-1] 176 return word[0:-1]
167 else: 177 else:
168 - return word  
169 \ No newline at end of file 178 \ No newline at end of file
  179 + return word
  180 +
  181 +
  182 + def converteExtenso(self, lista):
  183 +
  184 + listAux = []
  185 + indexDel = []
  186 + count = 0
  187 + isRunning = False
  188 +
  189 + for i in range(0, len(lista)):
  190 + token = lista[i][0]
  191 + tag = lista[i][1]
  192 + if (tag == "NUM"):
  193 + if (isRunning == False and len(listAux) == count):
  194 + listAux.append([i,[token]])
  195 + isRunning = True
  196 + else:
  197 + listAux[count][1].append(token)
  198 + indexDel.append(i)
  199 + elif (isRunning == True):
  200 + if ((lista[i-1][1] == "NUM") and (lista[i+1][1] == "NUM") and (tag == "CONJ")):
  201 + indexDel.append(i)
  202 + else:
  203 + isRunning = False
  204 + count += 1
  205 +
  206 + for i in listAux:
  207 + ext = extenso(' '.join(i[1]))
  208 + lista[i[0]] = [ext, "NUM"]
  209 +
  210 + deque((list.pop(lista, i) for i in sorted(indexDel, reverse=True)), maxlen=0)
  211 +
  212 + return lista
src/new/Tradutor.py
@@ -18,7 +18,7 @@ def iniciarTraducao(texto): @@ -18,7 +18,7 @@ def iniciarTraducao(texto):
18 textoDividido = texto.split(".") 18 textoDividido = texto.split(".")
19 for w in textoDividido: 19 for w in textoDividido:
20 if len(w) > 0: 20 if len(w) > 0:
21 - gerarAnalise(w) 21 + return gerarAnalise(w)
22 22
23 def gerarAnalise(sentenca): 23 def gerarAnalise(sentenca):
24 '''tokens = alexp.toqueniza(sentenca) 24 '''tokens = alexp.toqueniza(sentenca)
@@ -30,7 +30,7 @@ def gerarAnalise(sentenca): @@ -30,7 +30,7 @@ def gerarAnalise(sentenca):
30 30
31 if (isinstance(analise,type(None))): 31 if (isinstance(analise,type(None))):
32 analise = alexp.getAnaliseMorfologica() 32 analise = alexp.getAnaliseMorfologica()
33 - print analiseMorfologica(analise) 33 + return analiseMorfologica(analise)
34 else: 34 else:
35 print analiseSintatica(analise) 35 print analiseSintatica(analise)
36 36