Commit 5c76d64acbb574351dd8616f6417928b3b72ca0f
1 parent
bfb31dae
Exists in
master
and in
1 other branch
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 |