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 18 self.__dicWords = {}
19 19 self.__dic2Gen = {}
20 20 self.__dicTemVerbs = {}
21   - self.executeWorkCSV()
  21 + self.executeWorkCSV()
22 22  
23 23 # retira artigos e preposicoes; passa verbos para infinitivo e verificar se há sinonimos
24 24 def simplificar(self, texto):
... ... @@ -36,12 +36,14 @@ class Simplificador(object):
36 36 if self.__dicWords.has_key(t) == False: # verifica se nao eh artigo/preposicao
37 37 wu = w.upper() # deixa o token maiusculo
38 38 #if t[:2] == "VB":
  39 + if t[-2:] == "-P":
  40 + wu = self.pluralAnalysis(w)
39 41 if t == "VB-P" or t == "VB-D" or t == "VB-R":
40 42 self.__verb = True
41 43 self.__countVerb += 1
42 44 if t[:3] == "ADV":
43 45 self.__adv = True
44   - self.__countAdv += 1
  46 + self.__countAdv += 1
45 47 if self.__dicInf.has_key(wu): # verifica se ha um verbo infinitivo desse token
46 48 sAux = self.__dicInf[wu] # se sim, adiciona numa string aux
47 49 if self.__dicSin.has_key(sAux): # verifica se ha um sinonimo para esse verbo infinitivo
... ... @@ -78,14 +80,11 @@ class Simplificador(object):
78 80 self.__dic2Gen = self.__csv.getDic2Gen()
79 81 self.__dicTemVerbs = self.__csv.getDicTemVerbs()
80 82  
81   - # converte romano para numero/numero para palavra
  83 + # converte romano para numero
82 84 def auxConvert(self, t):
83 85 try:
84   - txt = roman_to_int(t)
85   - return extenso(txt).decode("utf-8")
  86 + return roman_to_int(t)
86 87 except:
87   - #if t.isdigit():
88   - # return extenso(t).decode("utf-8")
89 88 return t
90 89  
91 90  
... ... @@ -137,4 +136,26 @@ class Simplificador(object):
137 136 elif (hasPas):
138 137 lv.append(["PASSADO", "TVB"])
139 138 self.it.reset()
140   - return lv
141 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 163 \ No newline at end of file
... ...