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 | 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. | ... | ... |