Commit 24f6169b685bb8e2ccfbd515447091ba1872f752
Exists in
master
Merge branch 'devel'
Showing
1 changed file
with
36 additions
and
45 deletions
Show diff stats
src/AplicaRegras.py
@@ -33,7 +33,7 @@ class AplicaRegras(object): | @@ -33,7 +33,7 @@ class AplicaRegras(object): | ||
33 | "i":self.verificar_adv_intensidade, "vbi":"zero", "n":self.verificar_vb_muda_negacao, "abmn":"zero", | 33 | "i":self.verificar_adv_intensidade, "vbi":"zero", "n":self.verificar_vb_muda_negacao, "abmn":"zero", |
34 | "adji":"zero","adjn":"zero", "advi":"zero"} | 34 | "adji":"zero","adjn":"zero", "advi":"zero"} |
35 | 35 | ||
36 | - self.__acoes = {"change_vb":self.get_vb_infinitivo, "concate_intens":self.get_token_intensidade} | 36 | + self.__acoes = {"change_vb":self.get_vb_infinitivo} |
37 | 37 | ||
38 | # Gera arvore a partir do arquivos regras.xml | 38 | # Gera arvore a partir do arquivos regras.xml |
39 | def get_root(self): | 39 | def get_root(self): |
@@ -177,6 +177,7 @@ class AplicaRegras(object): | @@ -177,6 +177,7 @@ class AplicaRegras(object): | ||
177 | for classe in rule.iter('class'): | 177 | for classe in rule.iter('class'): |
178 | action = classe.find('action') | 178 | action = classe.find('action') |
179 | newprop = classe.find('newprop') | 179 | newprop = classe.find('newprop') |
180 | + title_text = classe.find('title').text | ||
180 | 181 | ||
181 | self.count += 1 | 182 | self.count += 1 |
182 | 183 | ||
@@ -197,46 +198,35 @@ class AplicaRegras(object): | @@ -197,46 +198,35 @@ class AplicaRegras(object): | ||
197 | node_pai[nodes_positions[self.count]] = aux2 | 198 | node_pai[nodes_positions[self.count]] = aux2 |
198 | node_pai[nodes_positions[self.count+1]] = aux1 | 199 | node_pai[nodes_positions[self.count+1]] = aux1 |
199 | 200 | ||
200 | - ''' | ||
201 | - elif self.__acoes.has_key(action_text): | ||
202 | - leaves = node_pai[nodes_positions[self.count]].leaves() | ||
203 | - token = filter(None, leaves)[0] | ||
204 | - result_action = self.__acoes[action_text](token) | ||
205 | - | ||
206 | - #self.lista_iteracao_regra.append([result_action, tupla[1]]) | ||
207 | - nodes_positions[self.count] = 'TODO' | ||
208 | - | ||
209 | - if action_text == "concate_intens": | ||
210 | - leaves_prev = node_pai[nodes_positions[self.count-1]].leaves() | ||
211 | - token_prev = filter(None, leaves_prev)[0] | ||
212 | - title_text = classe.find('title').text | ||
213 | - if title_text == "ADV-R": | ||
214 | - node_prev = nodes_deleted.pop() | ||
215 | - label_prev = node_prev[0][0].label() | ||
216 | - token_prev = filter(None, node_pai[nodes_positions[count_temp-1]].leaves())[0] | ||
217 | - token = filter(None, node_pai[nodes_positions[count_temp]].leaves())[0] | ||
218 | - token_concate = token_prev + "_" + token | ||
219 | - node_pai[nodes_positions[count_temp-1]][0][0][0] = token_concate | ||
220 | - newprop = "" | ||
221 | - if label_prev[:-2] == "VB": | ||
222 | - newprop = "VBi" | ||
223 | - elif label_prev[:-3] == "ADJ": | ||
224 | - newprop = "ADJi" | ||
225 | - | ||
226 | - # TODO: Verifica qual newprop adicionada e remove o nó corrente | ||
227 | - node_pai[nodes_positions[count_temp-1]][0][0].set_label(newprop) | ||
228 | - pos_del = nodes_positions[self.count] | ||
229 | - node_pai[pos_del] = None | ||
230 | - | ||
231 | - else: | ||
232 | - token_prev = filter(None, nodes_deleted.pop().leaves())[0] | ||
233 | - token = filter(None, node_pai[nodes_positions[count_temp]].leaves())[0] | ||
234 | - token_concate = token + "_" + token_prev | ||
235 | - node_pai[nodes_positions[count_temp]][0][0][0] = token_concate | ||
236 | - | ||
237 | - elif action_text == "concate_neg": | ||
238 | - print "TODO" | ||
239 | - ''' | 201 | + |
202 | + elif action_text == "concate_intens": | ||
203 | + if title_text == "ADV-R": | ||
204 | + node_prev = nodes_deleted.pop() | ||
205 | + label_prev = node_prev[0][0].label() | ||
206 | + token_prev = filter(None, node_prev).leaves()[0] | ||
207 | + token = filter(None, node_pai[nodes_positions[count_temp]].leaves())[0] | ||
208 | + specific = classe.find('specific') | ||
209 | + result_specific = self.get_adv_intensidade(token) | ||
210 | + token_concate = result_specific + "_" + token_prev | ||
211 | + node_pai[nodes_positions[count_temp]][0][0][0] = token_concate | ||
212 | + newprop = "" | ||
213 | + if label_prev[:-2] == "VB": | ||
214 | + newprop = "VBi" | ||
215 | + elif label_prev[:-3] == "ADJ": | ||
216 | + newprop = "ADJi" | ||
217 | + node_pai[nodes_positions[count_temp]][0][0].set_label(newprop) | ||
218 | + | ||
219 | + else: | ||
220 | + token_prev = filter(None, nodes_deleted.pop()).leaves()[0] | ||
221 | + token_prev_specific = self.get_adv_intensidade(token_prev) | ||
222 | + token = filter(None, node_pai[nodes_positions[count_temp]].leaves())[0] | ||
223 | + token_concate = token_prev_specific + "_" + token | ||
224 | + node_pai[nodes_positions[count_temp]][0][0][0] = token_concate | ||
225 | + node_pai[nodes_positions[count_temp]][0][0].set_label(newprop.text) | ||
226 | + | ||
227 | + elif action_text == "concate_neg": | ||
228 | + print "TODO" | ||
229 | + | ||
240 | 230 | ||
241 | if newprop is not None: | 231 | if newprop is not None: |
242 | node_pai[nodes_positions[self.count]].set_label(newprop.text) | 232 | node_pai[nodes_positions[self.count]].set_label(newprop.text) |
@@ -387,8 +377,8 @@ class AplicaRegras(object): | @@ -387,8 +377,8 @@ class AplicaRegras(object): | ||
387 | return self.dicionarios.get_verbo_infinitivo(token) | 377 | return self.dicionarios.get_verbo_infinitivo(token) |
388 | return token | 378 | return token |
389 | 379 | ||
390 | - def get_token_intensidade(self, token): | ||
391 | - print 'TODO' | 380 | + def get_adv_intensidade(self, token): |
381 | + return self.dicionarios.get_adverbio_intensidade(token) | ||
392 | 382 | ||
393 | def simplificar_sentenca(self, lista): | 383 | def simplificar_sentenca(self, lista): |
394 | '''Simplifica a sentença para que possa evitar a ditalogia. | 384 | '''Simplifica a sentença para que possa evitar a ditalogia. |
@@ -410,11 +400,12 @@ class AplicaRegras(object): | @@ -410,11 +400,12 @@ class AplicaRegras(object): | ||
410 | 400 | ||
411 | if num: | 401 | if num: |
412 | try: | 402 | try: |
413 | - return self.converter_extenso(lista_simplificada) | 403 | + lista_simplificada = self.converter_extenso(lista_simplificada) |
414 | except: | 404 | except: |
415 | pass | 405 | pass |
416 | 406 | ||
417 | - return lista_simplificada | 407 | + return " ".join([x[0] for x in lista_simplificada]) |
408 | + | ||
418 | 409 | ||
419 | def analisar_plural(self, token): | 410 | def analisar_plural(self, token): |
420 | '''Altera uma palavra do plural para o singular de acordo com o final da mesma. | 411 | '''Altera uma palavra do plural para o singular de acordo com o final da mesma. |