Commit 24f6169b685bb8e2ccfbd515447091ba1872f752

Authored by Erickson Silva
2 parents eff29b7c 10a5a33c
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 33 "i":self.verificar_adv_intensidade, "vbi":"zero", "n":self.verificar_vb_muda_negacao, "abmn":"zero",
34 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 38 # Gera arvore a partir do arquivos regras.xml
39 39 def get_root(self):
... ... @@ -177,6 +177,7 @@ class AplicaRegras(object):
177 177 for classe in rule.iter('class'):
178 178 action = classe.find('action')
179 179 newprop = classe.find('newprop')
  180 + title_text = classe.find('title').text
180 181  
181 182 self.count += 1
182 183  
... ... @@ -197,46 +198,35 @@ class AplicaRegras(object):
197 198 node_pai[nodes_positions[self.count]] = aux2
198 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 231 if newprop is not None:
242 232 node_pai[nodes_positions[self.count]].set_label(newprop.text)
... ... @@ -387,8 +377,8 @@ class AplicaRegras(object):
387 377 return self.dicionarios.get_verbo_infinitivo(token)
388 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 383 def simplificar_sentenca(self, lista):
394 384 '''Simplifica a sentença para que possa evitar a ditalogia.
... ... @@ -410,11 +400,12 @@ class AplicaRegras(object):
410 400  
411 401 if num:
412 402 try:
413   - return self.converter_extenso(lista_simplificada)
  403 + lista_simplificada = self.converter_extenso(lista_simplificada)
414 404 except:
415 405 pass
416 406  
417   - return lista_simplificada
  407 + return " ".join([x[0] for x in lista_simplificada])
  408 +
418 409  
419 410 def analisar_plural(self, token):
420 411 '''Altera uma palavra do plural para o singular de acordo com o final da mesma.
... ...