diff --git a/data/regras.xml b/data/regras.xml
index 49cc401..fcb9e70 100644
--- a/data/regras.xml
+++ b/data/regras.xml
@@ -267,6 +267,15 @@
remove
+
+ true
+ 1
+
+ SR-P
+ change_vb
+ SR
+
+
true
1
@@ -391,14 +400,14 @@
-
+
true
2
invert
-
+
true
2
diff --git a/src/new/TraduzSentencas.py b/src/new/TraduzSentencas.py
index 6ffe51c..fc74f4c 100644
--- a/src/new/TraduzSentencas.py
+++ b/src/new/TraduzSentencas.py
@@ -10,6 +10,7 @@ from threading import Thread
import alexp
from AplicaSinonimos import *
from AplicaRegras import *
+import logging
class TraduzSentencas(Thread):
@@ -19,20 +20,33 @@ class TraduzSentencas(Thread):
self.glosa = ""
self.aplic_sinonimos = AplicaSinonimos()
self.aplic_regras = AplicaRegras()
+ logging.basicConfig(filename='translate.log',
+ format='%(asctime)s - %(levelname)s:\n%(message)s\n\n\n##############################################\n\n',
+ level=logging.ERROR)
+
def run(self):
- analise_sintatica = alexp.run(self.sentenca)
+ try:
+ analise_sintatica = alexp.run(self.sentenca)
+ except Exception as ex:
+ self.salvar_log(str(ex))
+ analise_sintatica = None
+
analise_morfologica = alexp.getAnaliseMorfologica()
-
+
if (isinstance(analise_sintatica,type(None))):
+ print "# ANÁLISE MORFÓLIGCA"
regras_aplicadas = self.aplic_regras.aplicar_regras_morfo(analise_morfologica)
else:
+ print "# ANÁLISE SINTÁTICA"
regras_aplicadas = self.aplic_regras.aplicar_regras_sint(analise_morfologica, analise_sintatica)
- # separar tokens quando tem um newtoken
- self.aplic_regras.separar_new_tokens(regras_aplicadas)
- sinonimos_aplicados = self.aplic_sinonimos.aplicar_sinonimos(regras_aplicadas)
+ sentenca_corrigida = self.aplic_regras.simplificar_sentenca(regras_aplicadas)
+ sinonimos_aplicados = self.aplic_sinonimos.aplicar_sinonimos(sentenca_corrigida)
self.glosa = sinonimos_aplicados.encode('utf-8')
def obter_glosa(self):
- return self.glosa
\ No newline at end of file
+ return self.glosa
+
+ def salvar_log(self, erro):
+ logging.error(erro)
\ No newline at end of file
diff --git a/src/new/alexp.py b/src/new/alexp.py
index 0cc7885..2d8d4a3 100644
--- a/src/new/alexp.py
+++ b/src/new/alexp.py
@@ -29,6 +29,7 @@
"""
import re,nltk,platform, time, random
from os.path import expanduser
+from os import environ
from Aelius.Extras import carrega
from Aelius import AnotaCorpus
from unicodedata import normalize
@@ -51,11 +52,10 @@ def etiquetaSentenca(s):
"""
etiquetador = carrega("AeliusHunPos")
anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0]
- while (len(anotada) is 0):
+ while (anotada[0][1] is None):
time.sleep(random.choice(sleep_times))
anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0]
- anotada[0] = (anotada[0][0].lower(), anotada[0][1])
- return anotada
+ return [[x[0].upper(), x[1]] for x in anotada]
def geraEntradasLexicais(lista):
"""Gera entradas lexicais no formato CFG do NLTK a partir de lista de pares constituídos de tokens e suas etiquetas.
@@ -83,7 +83,7 @@ def encontraArquivo():
"""
so = platform.system()
if so == 'Windows':
- return expanduser("~") + "\\vlibras-translate\data\cfg.syn.nltk"
+ return os.environ.get("HOMEDRIVE") + "\\vlibras-libs\\vlibras-translate\data\cfg.syn.nltk"
else:
return expanduser("~") + "/vlibras-translate/data/cfg.syn.nltk"
--
libgit2 0.21.2