Commit 5c76d64acbb574351dd8616f6417928b3b72ca0f

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

Implementa tratamento de plural

Showing 1 changed file with 29 additions and 8 deletions   Show diff stats
tradutor/src/py/Simplificador.py
@@ -18,7 +18,7 @@ class Simplificador(object): @@ -18,7 +18,7 @@ class Simplificador(object):
18 self.__dicWords = {} 18 self.__dicWords = {}
19 self.__dic2Gen = {} 19 self.__dic2Gen = {}
20 self.__dicTemVerbs = {} 20 self.__dicTemVerbs = {}
21 - self.executeWorkCSV() 21 + self.executeWorkCSV()
22 22
23 # retira artigos e preposicoes; passa verbos para infinitivo e verificar se há sinonimos 23 # retira artigos e preposicoes; passa verbos para infinitivo e verificar se há sinonimos
24 def simplificar(self, texto): 24 def simplificar(self, texto):
@@ -36,12 +36,14 @@ class Simplificador(object): @@ -36,12 +36,14 @@ class Simplificador(object):
36 if self.__dicWords.has_key(t) == False: # verifica se nao eh artigo/preposicao 36 if self.__dicWords.has_key(t) == False: # verifica se nao eh artigo/preposicao
37 wu = w.upper() # deixa o token maiusculo 37 wu = w.upper() # deixa o token maiusculo
38 #if t[:2] == "VB": 38 #if t[:2] == "VB":
  39 + if t[-2:] == "-P":
  40 + wu = self.pluralAnalysis(w)
39 if t == "VB-P" or t == "VB-D" or t == "VB-R": 41 if t == "VB-P" or t == "VB-D" or t == "VB-R":
40 self.__verb = True 42 self.__verb = True
41 self.__countVerb += 1 43 self.__countVerb += 1
42 if t[:3] == "ADV": 44 if t[:3] == "ADV":
43 self.__adv = True 45 self.__adv = True
44 - self.__countAdv += 1 46 + self.__countAdv += 1
45 if self.__dicInf.has_key(wu): # verifica se ha um verbo infinitivo desse token 47 if self.__dicInf.has_key(wu): # verifica se ha um verbo infinitivo desse token
46 sAux = self.__dicInf[wu] # se sim, adiciona numa string aux 48 sAux = self.__dicInf[wu] # se sim, adiciona numa string aux
47 if self.__dicSin.has_key(sAux): # verifica se ha um sinonimo para esse verbo infinitivo 49 if self.__dicSin.has_key(sAux): # verifica se ha um sinonimo para esse verbo infinitivo
@@ -78,14 +80,11 @@ class Simplificador(object): @@ -78,14 +80,11 @@ class Simplificador(object):
78 self.__dic2Gen = self.__csv.getDic2Gen() 80 self.__dic2Gen = self.__csv.getDic2Gen()
79 self.__dicTemVerbs = self.__csv.getDicTemVerbs() 81 self.__dicTemVerbs = self.__csv.getDicTemVerbs()
80 82
81 - # converte romano para numero/numero para palavra 83 + # converte romano para numero
82 def auxConvert(self, t): 84 def auxConvert(self, t):
83 try: 85 try:
84 - txt = roman_to_int(t)  
85 - return extenso(txt).decode("utf-8") 86 + return roman_to_int(t)
86 except: 87 except:
87 - #if t.isdigit():  
88 - # return extenso(t).decode("utf-8")  
89 return t 88 return t
90 89
91 90
@@ -137,4 +136,26 @@ class Simplificador(object): @@ -137,4 +136,26 @@ class Simplificador(object):
137 elif (hasPas): 136 elif (hasPas):
138 lv.append(["PASSADO", "TVB"]) 137 lv.append(["PASSADO", "TVB"])
139 self.it.reset() 138 self.it.reset()
140 - return lv  
141 \ No newline at end of file 139 \ No newline at end of file
  140 + return lv
  141 +
  142 +
  143 + def pluralAnalysis(self, word):
  144 +
  145 + if(word[-3:] == "OES" or word[-2:] == "AES" or word[-2:] == "AOS"):
  146 + return word[0:-3]+"AO"
  147 + elif(word[-3:] == "RES" or word[-2:] == "ZES" or word[-2:] == "NES"):
  148 + return word[0:-2]
  149 + elif(word[-3:] == "SES"):
  150 + #TODO: Algumas palavras possuem marcações gráficas na raiz singular. Ex: Gás – Gases
  151 + return word[0:-2]
  152 + elif(word[-2:] == "NS"):
  153 + return word[0:-2]+"M"
  154 + elif(word[-2:] == "IS"):
  155 + #TODO: Substitui por –L se a palavra no singular terminar por –AL, -EL, -OL, -UL
  156 + #Substitui por –IL se a palavra no singular terminar por -IL
  157 + return word[0:-2]
  158 + elif(word[-1] == "S"):
  159 + #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tênis, ônibus, etc
  160 + return word[0:-1]
  161 + else:
  162 + return word
142 \ No newline at end of file 163 \ No newline at end of file