Commit 571e562c03d2394ffc8ce44bec76ad17805788f7

Authored by Erickson Silva
1 parent 9ba27f83
Exists in master and in 1 other branch devel

Renomeia as classes 'ConversorExtenso', 'LeitorDicionarios' e 'Tradutor'

src/new/AplicaRegras.py
@@ -10,10 +10,10 @@ from collections import deque @@ -10,10 +10,10 @@ from collections import deque
10 import xml.etree.ElementTree as ET 10 import xml.etree.ElementTree as ET
11 from os.path import expanduser 11 from os.path import expanduser
12 import platform 12 import platform
13 -from LeitorDicionarios import * 13 +from LerDicionarios import *
14 from Iterator import * 14 from Iterator import *
15 from StringAux import * 15 from StringAux import *
16 -from ConversorExtenso import * 16 +from ConverteExtenso import *
17 17
18 class AplicaRegras(object): 18 class AplicaRegras(object):
19 19
@@ -31,7 +31,7 @@ class AplicaRegras(object): @@ -31,7 +31,7 @@ class AplicaRegras(object):
31 else: 31 else:
32 return ET.parse(expanduser("~")+'/vlibras-translate/data/regras.xml').getroot() 32 return ET.parse(expanduser("~")+'/vlibras-translate/data/regras.xml').getroot()
33 33
34 - def aplicarRegrasMorpho(self, lista): 34 + def aplicarRegrasMorfo(self, lista):
35 35
36 self.__especificos = {"advt" : self.verificarAdvTempo, "v" : self.verificarVbInfinitivo, "x" : self.verificarPrepos, "c" : self.verificarSubs2Generos, "a" : self.verificarArtigo, "l" : self.verificarVbLigacao, "i": self.verificarAdvIntensidade, "vbi":"zero", "n":"zero", "abmn":"zero", "adji":"zero", "adjn":"zero", "advi":"zero"} 36 self.__especificos = {"advt" : self.verificarAdvTempo, "v" : self.verificarVbInfinitivo, "x" : self.verificarPrepos, "c" : self.verificarSubs2Generos, "a" : self.verificarArtigo, "l" : self.verificarVbLigacao, "i": self.verificarAdvIntensidade, "vbi":"zero", "n":"zero", "abmn":"zero", "adji":"zero", "adjn":"zero", "advi":"zero"}
37 self.pularIteracoes = 0 37 self.pularIteracoes = 0
src/new/AplicaSinonimos.py
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 import os, csv, sys 9 import os, csv, sys
10 from nltk.tree import * 10 from nltk.tree import *
11 -from LeitorDicionarios import * 11 +from LerDicionarios import *
12 12
13 class AplicaSinonimos(object): 13 class AplicaSinonimos(object):
14 14
src/new/ConversorExtenso.py
@@ -1,150 +0,0 @@ @@ -1,150 +0,0 @@
1 -#!/usr/bin/python  
2 -# -*- coding: utf-8 -*-  
3 -  
4 -#Autor: Erickson Silva  
5 -#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>  
6 -  
7 -#LAViD - Laboratório de Aplicações de Vídeo Digital  
8 -  
9 -import sys  
10 -from unicodedata import normalize  
11 -from Iterator import *  
12 -  
13 -num = {"zero":0, "um":1, "dois":2, "tres":3, "quatro":4, "cinco":5, "seis":6,  
14 -"sete":7, "oito":8, "nove":9}  
15 -  
16 -und = {"mil":1000, "milhao":1000000, "bilhao":1000000000, "trilhao":1000000000000}  
17 -  
18 -ext = [{"um":"1", "dois":"2", "tres":"3", "quatro":"4", "cinco":"5", "seis":"6",  
19 -"sete":"7", "oito":"8", "nove":"9", "dez":"10", "onze":"11", "doze":"12",  
20 -"treze":"13", "quatorze":"14", "quinze":"15", "dezesseis":"16",  
21 -"dezessete":"17", "dezoito":"18", "dezenove":"19"}, {"vinte":"2", "trinta":"3",  
22 -"quarenta":"4", "cinquenta":"5", "sessenta":"6", "setenta":"7", "oitenta":"8",  
23 -"noventa":"9"}, {"cento":"1", "cem":"1", "duzentos":"2", "trezentos":"3",  
24 -"quatrocentos":"4", "quinhentos":"5", "seissentos":"6", "setessentos":"7",  
25 -"oitocentos":"8", "novecentos":"9"}]  
26 -  
27 -unds = {"mil":"000", "milhao":"000000","milhoes":"000000", "bilhao":"000000000","bilhoes":"000000000", "trilhao":"000000000000", "trilhoes":"000000000000"}  
28 -  
29 -  
30 -  
31 -def oneDigit(x):  
32 - return ext[0][x]  
33 -  
34 -def twoDigit(x):  
35 - try:  
36 - return ext[1][x[0]]+ext[0][x[1]]  
37 - except:  
38 - return ext[1][x[0]]+"0"  
39 -  
40 -def threeDigit(x):  
41 - return ext[2][x[0]]+ext[1][x[1]]+ext[0][x[2]]  
42 -  
43 -def extenso2(n):  
44 - sn = n.split(",")  
45 - size = len(sn)  
46 - firstWord = sn[0]  
47 - endWord = ""  
48 - numExt = ""  
49 -  
50 - if(unds.has_key(sn[size-1])):  
51 - size -= 1  
52 - endWord = sn[size]  
53 - del sn[size]  
54 -  
55 - if(ext[0].has_key(firstWord)):  
56 - numExt = oneDigit(firstWord)  
57 -  
58 - elif (ext[1].has_key(firstWord)):  
59 - numExt = twoDigit(sn)  
60 -  
61 - elif (ext[2].has_key(firstWord)):  
62 - if(size == 1):  
63 - numExt = ext[2][firstWord]+"00"  
64 - elif (size == 2):  
65 - if(sn[1] == "dez"):  
66 - numExt = ext[2][firstWord]+oneDigit(sn[1])  
67 - try:  
68 - numExt = ext[2][firstWord]+"0"+oneDigit(sn[1])  
69 - except:  
70 - numExt = ext[2][firstWord]+twoDigit([sn[1]])  
71 - else:  
72 - numExt = threeDigit(sn)  
73 -  
74 - if(endWord != ""):  
75 - numExt = numExt+unds[endWord]  
76 -  
77 - return numExt  
78 -  
79 -def extenso(extenso):  
80 - global newToken, auxToken  
81 - extensoQuebrado = extenso.lower().split(" ")  
82 - nums = []  
83 - it = Iterator()  
84 - it.load(extensoQuebrado)  
85 - while(it.hasNext()):  
86 - token = simplifica(it.getToken())  
87 - tokenAnterior = simplifica(it.getToken(-1))  
88 - if (und.has_key(token)):  
89 - #print "cond1"  
90 - if(it.getCount() == 0):  
91 - #print "cond2"  
92 - nums.append(und[token])  
93 - else:  
94 - #print "cond3"  
95 - newToken = und[token] * int(nums[-1])  
96 - nums[-1] = newToken  
97 - else:  
98 - #print "cond4"  
99 - if (num.has_key(token)):  
100 - #print "cond5"  
101 - auxToken = num[token]  
102 - elif (not und.has_key(token)):  
103 - #print "cond6"  
104 - auxToken = extenso2(token)  
105 -  
106 - if((not und.has_key(tokenAnterior)) and it.getCount() > 0):  
107 - #print "cond7"  
108 - newToken = int(auxToken) + int(nums[-1])  
109 - nums[-1] = newToken  
110 - else:  
111 - #print "cond8"  
112 - nums.append(auxToken)  
113 -  
114 - return soma(nums)  
115 -  
116 -def soma(lista):  
117 - soma = 0  
118 - for i in lista:  
119 - soma += int(i)  
120 - return soma  
121 -  
122 -def simplifica(txt):  
123 -  
124 - newToken = ""  
125 - try:  
126 - newToken = normalize('NFKD', txt.decode('utf-8')).encode('ASCII','ignore')  
127 - except:  
128 - newToken = normalize('NFKD', txt.decode('iso-8859-1')).encode('ASCII','ignore')  
129 -  
130 - if(newToken[-3:] == "oes"): return newToken[:-3] + "ao"  
131 - return newToken  
132 -  
133 -'''  
134 -if __name__ == '__main__':  
135 - n = sys.argv[1]  
136 - return extenso(n)  
137 - arquivoExts = open('exts', 'r')  
138 - listaExts = arquivoExts.readlines()  
139 - arquivoNums = open('nums', 'r')  
140 - listaNums = arquivoNums.readlines()  
141 - for i in range(0,500):  
142 - n = listaNums[i].replace("\n","")  
143 - e = listaExts[i].replace("\n","")  
144 - numNew = extenso(e)  
145 - if (str(numNew) != n):  
146 - print n + " != " + str(numNew)  
147 - #else:  
148 - # print "OK: " + n + " == " + str(numNew)  
149 -'''  
150 -  
src/new/ConverteExtenso.py 0 → 100644
@@ -0,0 +1,150 @@ @@ -0,0 +1,150 @@
  1 +#!/usr/bin/python
  2 +# -*- coding: utf-8 -*-
  3 +
  4 +#Autor: Erickson Silva
  5 +#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>
  6 +
  7 +#LAViD - Laboratório de Aplicações de Vídeo Digital
  8 +
  9 +import sys
  10 +from unicodedata import normalize
  11 +from Iterator import *
  12 +
  13 +num = {"zero":0, "um":1, "dois":2, "tres":3, "quatro":4, "cinco":5, "seis":6,
  14 +"sete":7, "oito":8, "nove":9}
  15 +
  16 +und = {"mil":1000, "milhao":1000000, "bilhao":1000000000, "trilhao":1000000000000}
  17 +
  18 +ext = [{"um":"1", "dois":"2", "tres":"3", "quatro":"4", "cinco":"5", "seis":"6",
  19 +"sete":"7", "oito":"8", "nove":"9", "dez":"10", "onze":"11", "doze":"12",
  20 +"treze":"13", "quatorze":"14", "quinze":"15", "dezesseis":"16",
  21 +"dezessete":"17", "dezoito":"18", "dezenove":"19"}, {"vinte":"2", "trinta":"3",
  22 +"quarenta":"4", "cinquenta":"5", "sessenta":"6", "setenta":"7", "oitenta":"8",
  23 +"noventa":"9"}, {"cento":"1", "cem":"1", "duzentos":"2", "trezentos":"3",
  24 +"quatrocentos":"4", "quinhentos":"5", "seissentos":"6", "setessentos":"7",
  25 +"oitocentos":"8", "novecentos":"9"}]
  26 +
  27 +unds = {"mil":"000", "milhao":"000000","milhoes":"000000", "bilhao":"000000000","bilhoes":"000000000", "trilhao":"000000000000", "trilhoes":"000000000000"}
  28 +
  29 +
  30 +
  31 +def oneDigit(x):
  32 + return ext[0][x]
  33 +
  34 +def twoDigit(x):
  35 + try:
  36 + return ext[1][x[0]]+ext[0][x[1]]
  37 + except:
  38 + return ext[1][x[0]]+"0"
  39 +
  40 +def threeDigit(x):
  41 + return ext[2][x[0]]+ext[1][x[1]]+ext[0][x[2]]
  42 +
  43 +def extenso2(n):
  44 + sn = n.split(",")
  45 + size = len(sn)
  46 + firstWord = sn[0]
  47 + endWord = ""
  48 + numExt = ""
  49 +
  50 + if(unds.has_key(sn[size-1])):
  51 + size -= 1
  52 + endWord = sn[size]
  53 + del sn[size]
  54 +
  55 + if(ext[0].has_key(firstWord)):
  56 + numExt = oneDigit(firstWord)
  57 +
  58 + elif (ext[1].has_key(firstWord)):
  59 + numExt = twoDigit(sn)
  60 +
  61 + elif (ext[2].has_key(firstWord)):
  62 + if(size == 1):
  63 + numExt = ext[2][firstWord]+"00"
  64 + elif (size == 2):
  65 + if(sn[1] == "dez"):
  66 + numExt = ext[2][firstWord]+oneDigit(sn[1])
  67 + try:
  68 + numExt = ext[2][firstWord]+"0"+oneDigit(sn[1])
  69 + except:
  70 + numExt = ext[2][firstWord]+twoDigit([sn[1]])
  71 + else:
  72 + numExt = threeDigit(sn)
  73 +
  74 + if(endWord != ""):
  75 + numExt = numExt+unds[endWord]
  76 +
  77 + return numExt
  78 +
  79 +def extenso(extenso):
  80 + global newToken, auxToken
  81 + extensoQuebrado = extenso.lower().split(" ")
  82 + nums = []
  83 + it = Iterator()
  84 + it.load(extensoQuebrado)
  85 + while(it.hasNext()):
  86 + token = simplifica(it.getToken())
  87 + tokenAnterior = simplifica(it.getToken(-1))
  88 + if (und.has_key(token)):
  89 + #print "cond1"
  90 + if(it.getCount() == 0):
  91 + #print "cond2"
  92 + nums.append(und[token])
  93 + else:
  94 + #print "cond3"
  95 + newToken = und[token] * int(nums[-1])
  96 + nums[-1] = newToken
  97 + else:
  98 + #print "cond4"
  99 + if (num.has_key(token)):
  100 + #print "cond5"
  101 + auxToken = num[token]
  102 + elif (not und.has_key(token)):
  103 + #print "cond6"
  104 + auxToken = extenso2(token)
  105 +
  106 + if((not und.has_key(tokenAnterior)) and it.getCount() > 0):
  107 + #print "cond7"
  108 + newToken = int(auxToken) + int(nums[-1])
  109 + nums[-1] = newToken
  110 + else:
  111 + #print "cond8"
  112 + nums.append(auxToken)
  113 +
  114 + return soma(nums)
  115 +
  116 +def soma(lista):
  117 + soma = 0
  118 + for i in lista:
  119 + soma += int(i)
  120 + return soma
  121 +
  122 +def simplifica(txt):
  123 +
  124 + newToken = ""
  125 + try:
  126 + newToken = normalize('NFKD', txt.decode('utf-8')).encode('ASCII','ignore')
  127 + except:
  128 + newToken = normalize('NFKD', txt.decode('iso-8859-1')).encode('ASCII','ignore')
  129 +
  130 + if(newToken[-3:] == "oes"): return newToken[:-3] + "ao"
  131 + return newToken
  132 +
  133 +'''
  134 +if __name__ == '__main__':
  135 + n = sys.argv[1]
  136 + return extenso(n)
  137 + arquivoExts = open('exts', 'r')
  138 + listaExts = arquivoExts.readlines()
  139 + arquivoNums = open('nums', 'r')
  140 + listaNums = arquivoNums.readlines()
  141 + for i in range(0,500):
  142 + n = listaNums[i].replace("\n","")
  143 + e = listaExts[i].replace("\n","")
  144 + numNew = extenso(e)
  145 + if (str(numNew) != n):
  146 + print n + " != " + str(numNew)
  147 + #else:
  148 + # print "OK: " + n + " == " + str(numNew)
  149 +'''
  150 +
src/new/LeitorDicionarios.py
@@ -1,146 +0,0 @@ @@ -1,146 +0,0 @@
1 -#!/usr/bin/python  
2 -# -*- coding: utf-8 -*-  
3 -  
4 -#Autor: Erickson Silva  
5 -#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>  
6 -  
7 -#LAViD - Laboratório de Aplicações de Vídeo Digital  
8 -  
9 -from os.path import expanduser  
10 -import csv, platform  
11 -  
12 -class LeitorDicionarios(object):  
13 - #_iInstance = None  
14 -  
15 - #class Singleton:  
16 - # def __init__(self):  
17 - # self.LeitorDicionarios = None  
18 -  
19 - #def __init__( self ):  
20 - # if LeitorDicionarios._iInstance is None:  
21 - # LeitorDicionarios._iInstance = LeitorDicionarios.Singleton()  
22 -  
23 - # self._EventHandler_instance = LeitorDicionarios._iInstance  
24 -  
25 - #def __getattr__(self, aAttr):  
26 - # return getattr(self._iInstance, aAttr)  
27 -  
28 - #def __setattr__(self, aAttr, aValue):  
29 - # return setattr(self._iInstance, aAttr, aValue)  
30 -  
31 - # Define e inicializa os atributos  
32 - def __init__(self):  
33 -  
34 - so = platform.system()  
35 - if so == 'Windows':  
36 - self.__path = expanduser("~") + "\\vlibras-translate\data\\"  
37 - else:  
38 - self.__path = expanduser("~") + "/vlibras-translate/data/"  
39 -  
40 - self.__dicInf = {}  
41 - self.__dicSin = {}  
42 - self.__dicWords = {}  
43 - self.__dic2Gen = {}  
44 - self.__dicTemVerbs = {}  
45 - self.__fileDic = ''  
46 - self.carregarVerbosInfinitivos()  
47 - self.carregarSinonimos()  
48 - self.carregarPalavrasIgnoradas()  
49 - self.carregarSubst2Generos()  
50 - self.carregarTemposVerbais()  
51 -  
52 - # Abre o self.__fileDic que contem os verbos no infinitivo e preenche o dicionario com os mesmos  
53 - def carregarVerbosInfinitivos(self):  
54 - try:  
55 - self.__fileDic = csv.reader(open(self.__path+"dicPortGlosa.csv"), delimiter=";")  
56 - except IOError, (errno, strerror):  
57 - print "I/O error(%s): %s" % (errno, strerror)  
58 - print "carregarVerbosInfinitivos"  
59 -  
60 - for row in self.__fileDic:  
61 - if row[1] != "":  
62 - try:  
63 - self.__dicInf[row[0].decode("utf-8")] = row[1].decode("utf-8")  
64 - except UnicodeDecodeError:  
65 - self.__dicInf[row[0].decode('iso8859-1').encode('utf-8')] = row[1].decode('iso8859-1').encode('utf-8')  
66 -  
67 - # Abre o self.__fileDic que contem os sinonimos e preenche o dicionario com os mesmos  
68 - def carregarSinonimos(self):  
69 - try:  
70 - self.__fileDic = csv.reader(open(self.__path+"portuguesGlosa.csv"), delimiter=";")  
71 - except IOError, (errno, strerror):  
72 - print "I/O error(%s): %s" % (errno, strerror)  
73 - print "carregarSinonimos"  
74 -  
75 - for row in self.__fileDic:  
76 - if row[1] != "":  
77 - self.__dicSin[row[0].decode("utf-8")] = row[1].decode("utf-8")  
78 -  
79 -  
80 - # Abre o self.__fileDic que contem os tempos verbais  
81 - def carregarTemposVerbais(self):  
82 - try:  
83 - self.__fileDic = csv.reader(open(self.__path+"temposVerbais.csv"), delimiter=";")  
84 - except IOError, (errno, strerror):  
85 - print "I/O error(%s): %s" % (errno, strerror)  
86 - print "carregarTemposVerbais"  
87 -  
88 - for row in self.__fileDic:  
89 - self.__dicTemVerbs[row[0].decode("utf-8")] = row[0].decode("utf-8")  
90 -  
91 - # Abre o self.__fileDic que contem os artigos e preposicoes de acordo com o modelo de idioma passado na chamada e preenche o dicionario com os mesmos  
92 - def carregarPalavrasIgnoradas(self):  
93 - try:  
94 - self.__fileDic = csv.reader(open(self.__path+"hWordsRemove.csv"), delimiter=";")  
95 - except IOError, (errno, strerror):  
96 - print "I/O error(%s): %s" % (errno, strerror)  
97 - print "carregarPalavrasIgnoradas"  
98 -  
99 - for row in self.__fileDic:  
100 - self.__dicWords[row[0].decode("utf-8")] = row[0].decode("utf-8")  
101 -  
102 - # Abre o self.__fileDic que contem os substantivos que sao comuns dos 2 generos e preenche o dicionario com os mesmos  
103 - def carregarSubst2Generos(self):  
104 - try:  
105 - self.__fileDic = csv.reader(open(self.__path+"subs2Generos.csv"), delimiter=";")  
106 - except IOError, (errno, strerror):  
107 - print "I/O error(%s): %s" % (errno, strerror)  
108 - print "carregarSubst2Generos"  
109 -  
110 - for row in self.__fileDic:  
111 - self.__dic2Gen[row[0].decode("utf-8")] = row[0].decode("utf-8")  
112 -  
113 - # Retorna o dicionario dos verbos no infinitivo  
114 - def getVerboInfinitivo(self, token):  
115 - return self.__dicInf[token]  
116 -  
117 - # Retorna o dicionario dos sinonimos  
118 - def getSinonimo(self, token):  
119 - return self.__dicSin[token]  
120 -  
121 - # Retorna o dicionario dos artigos e preposicoes a serem removidos pelo simplificador  
122 - def getPalavraIgnorada(self, token):  
123 - return self.__dicWords[token]  
124 -  
125 - # Retorna o dicionario dos substantivos a serem analisados pelo simplificador  
126 - def getSubst2Generos(self, token):  
127 - return self.__dic2Gen[token]  
128 -  
129 - # Retorna o dicionario dos tempos verbais  
130 - def getTempoVerbal(self, token):  
131 - return self.__dicTemVerbs[token]  
132 -  
133 - def hasVerboInfinitivo(self, token):  
134 - return self.__dicInf.has_key(token)  
135 -  
136 - def hasSinonimo(self, token):  
137 - return self.__dicSin.has_key(token)  
138 -  
139 - def hasPalavraIgnorada(self, token):  
140 - return self.__dicWords.has_key(token)  
141 -  
142 - def hasSubst2Genero(self, token):  
143 - return self.__dic2Gen.has_key(token)  
144 -  
145 - def hasTempoVerbal(self, token):  
146 - return self.__dicTemVerbs.has_key(token)  
src/new/LerDicionarios.py 0 → 100644
@@ -0,0 +1,146 @@ @@ -0,0 +1,146 @@
  1 +#!/usr/bin/python
  2 +# -*- coding: utf-8 -*-
  3 +
  4 +#Autor: Erickson Silva
  5 +#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>
  6 +
  7 +#LAViD - Laboratório de Aplicações de Vídeo Digital
  8 +
  9 +from os.path import expanduser
  10 +import csv, platform
  11 +
  12 +class LeitorDicionarios(object):
  13 + #_iInstance = None
  14 +
  15 + #class Singleton:
  16 + # def __init__(self):
  17 + # self.LeitorDicionarios = None
  18 +
  19 + #def __init__( self ):
  20 + # if LeitorDicionarios._iInstance is None:
  21 + # LeitorDicionarios._iInstance = LeitorDicionarios.Singleton()
  22 +
  23 + # self._EventHandler_instance = LeitorDicionarios._iInstance
  24 +
  25 + #def __getattr__(self, aAttr):
  26 + # return getattr(self._iInstance, aAttr)
  27 +
  28 + #def __setattr__(self, aAttr, aValue):
  29 + # return setattr(self._iInstance, aAttr, aValue)
  30 +
  31 + # Define e inicializa os atributos
  32 + def __init__(self):
  33 +
  34 + so = platform.system()
  35 + if so == 'Windows':
  36 + self.__path = expanduser("~") + "\\vlibras-translate\data\\"
  37 + else:
  38 + self.__path = expanduser("~") + "/vlibras-translate/data/"
  39 +
  40 + self.__dicInf = {}
  41 + self.__dicSin = {}
  42 + self.__dicWords = {}
  43 + self.__dic2Gen = {}
  44 + self.__dicTemVerbs = {}
  45 + self.__fileDic = ''
  46 + self.carregarVerbosInfinitivos()
  47 + self.carregarSinonimos()
  48 + self.carregarPalavrasIgnoradas()
  49 + self.carregarSubst2Generos()
  50 + self.carregarTemposVerbais()
  51 +
  52 + # Abre o self.__fileDic que contem os verbos no infinitivo e preenche o dicionario com os mesmos
  53 + def carregarVerbosInfinitivos(self):
  54 + try:
  55 + self.__fileDic = csv.reader(open(self.__path+"dicPortGlosa.csv"), delimiter=";")
  56 + except IOError, (errno, strerror):
  57 + print "I/O error(%s): %s" % (errno, strerror)
  58 + print "carregarVerbosInfinitivos"
  59 +
  60 + for row in self.__fileDic:
  61 + if row[1] != "":
  62 + try:
  63 + self.__dicInf[row[0].decode("utf-8")] = row[1].decode("utf-8")
  64 + except UnicodeDecodeError:
  65 + self.__dicInf[row[0].decode('iso8859-1').encode('utf-8')] = row[1].decode('iso8859-1').encode('utf-8')
  66 +
  67 + # Abre o self.__fileDic que contem os sinonimos e preenche o dicionario com os mesmos
  68 + def carregarSinonimos(self):
  69 + try:
  70 + self.__fileDic = csv.reader(open(self.__path+"portuguesGlosa.csv"), delimiter=";")
  71 + except IOError, (errno, strerror):
  72 + print "I/O error(%s): %s" % (errno, strerror)
  73 + print "carregarSinonimos"
  74 +
  75 + for row in self.__fileDic:
  76 + if row[1] != "":
  77 + self.__dicSin[row[0].decode("utf-8")] = row[1].decode("utf-8")
  78 +
  79 +
  80 + # Abre o self.__fileDic que contem os tempos verbais
  81 + def carregarTemposVerbais(self):
  82 + try:
  83 + self.__fileDic = csv.reader(open(self.__path+"temposVerbais.csv"), delimiter=";")
  84 + except IOError, (errno, strerror):
  85 + print "I/O error(%s): %s" % (errno, strerror)
  86 + print "carregarTemposVerbais"
  87 +
  88 + for row in self.__fileDic:
  89 + self.__dicTemVerbs[row[0].decode("utf-8")] = row[0].decode("utf-8")
  90 +
  91 + # Abre o self.__fileDic que contem os artigos e preposicoes de acordo com o modelo de idioma passado na chamada e preenche o dicionario com os mesmos
  92 + def carregarPalavrasIgnoradas(self):
  93 + try:
  94 + self.__fileDic = csv.reader(open(self.__path+"hWordsRemove.csv"), delimiter=";")
  95 + except IOError, (errno, strerror):
  96 + print "I/O error(%s): %s" % (errno, strerror)
  97 + print "carregarPalavrasIgnoradas"
  98 +
  99 + for row in self.__fileDic:
  100 + self.__dicWords[row[0].decode("utf-8")] = row[0].decode("utf-8")
  101 +
  102 + # Abre o self.__fileDic que contem os substantivos que sao comuns dos 2 generos e preenche o dicionario com os mesmos
  103 + def carregarSubst2Generos(self):
  104 + try:
  105 + self.__fileDic = csv.reader(open(self.__path+"subs2Generos.csv"), delimiter=";")
  106 + except IOError, (errno, strerror):
  107 + print "I/O error(%s): %s" % (errno, strerror)
  108 + print "carregarSubst2Generos"
  109 +
  110 + for row in self.__fileDic:
  111 + self.__dic2Gen[row[0].decode("utf-8")] = row[0].decode("utf-8")
  112 +
  113 + # Retorna o dicionario dos verbos no infinitivo
  114 + def getVerboInfinitivo(self, token):
  115 + return self.__dicInf[token]
  116 +
  117 + # Retorna o dicionario dos sinonimos
  118 + def getSinonimo(self, token):
  119 + return self.__dicSin[token]
  120 +
  121 + # Retorna o dicionario dos artigos e preposicoes a serem removidos pelo simplificador
  122 + def getPalavraIgnorada(self, token):
  123 + return self.__dicWords[token]
  124 +
  125 + # Retorna o dicionario dos substantivos a serem analisados pelo simplificador
  126 + def getSubst2Generos(self, token):
  127 + return self.__dic2Gen[token]
  128 +
  129 + # Retorna o dicionario dos tempos verbais
  130 + def getTempoVerbal(self, token):
  131 + return self.__dicTemVerbs[token]
  132 +
  133 + def hasVerboInfinitivo(self, token):
  134 + return self.__dicInf.has_key(token)
  135 +
  136 + def hasSinonimo(self, token):
  137 + return self.__dicSin.has_key(token)
  138 +
  139 + def hasPalavraIgnorada(self, token):
  140 + return self.__dicWords.has_key(token)
  141 +
  142 + def hasSubst2Genero(self, token):
  143 + return self.__dic2Gen.has_key(token)
  144 +
  145 + def hasTempoVerbal(self, token):
  146 + return self.__dicTemVerbs.has_key(token)
src/new/Tradutor.py
@@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
1 -#!/usr/bin/python  
2 -# -*- coding: utf-8 -*-  
3 -  
4 -#Autor: Erickson Silva  
5 -#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>  
6 -  
7 -#LAViD - Laboratório de Aplicações de Vídeo Digital  
8 -  
9 -import alexp  
10 -from AplicaSinonimos import *  
11 -from AplicaRegras import *  
12 -  
13 -aplicaSinonimos = AplicaSinonimos()  
14 -aplicaRegras = AplicaRegras()  
15 -  
16 -  
17 -def iniciarTraducao(texto):  
18 - textoDividido = texto.split(".")  
19 - for w in textoDividido:  
20 - if len(w) > 0 and w != " ":  
21 - return gerarAnalise(w)  
22 -  
23 -  
24 -def gerarAnalise(sentenca):  
25 - '''tokens = alexp.toqueniza(sentenca)  
26 - etiquetadas = alexp.etiquetaSentenca(tokens)  
27 - analiseMorf = analiseMorfologica(etiquetadas)  
28 - print analiseMorf'''  
29 -  
30 - sintatica = alexp.run(sentenca)  
31 - morfologica = alexp.getAnaliseMorfologica()  
32 -  
33 - if (isinstance(sintatica,type(None))):  
34 - return analiseMorfologica(morfologica)  
35 - else:  
36 - print analiseSintatica(sintatica, morfologica)  
37 -  
38 -  
39 -def analiseMorfologica(listaMorfologica):  
40 - proc = aplicaRegras.aplicarRegrasMorfo(listaMorfologica)  
41 - return aplicaSinonimos.sinonimosMorfologico(proc)  
42 -  
43 -  
44 -def analiseSintatica(arvoreSintatica, listaMorfologica):  
45 - proc = aplicaRegras.aplicarRegrasSint(arvoreSintatica, listaMorfologica)  
46 - return aplicaSinonimos.sinonimosSintatico(proc)  
47 \ No newline at end of file 0 \ No newline at end of file
src/new/TraduzSentencas.py 0 → 100644
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
  1 +#!/usr/bin/python
  2 +# -*- coding: utf-8 -*-
  3 +
  4 +#Autor: Erickson Silva
  5 +#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>
  6 +
  7 +#LAViD - Laboratório de Aplicações de Vídeo Digital
  8 +
  9 +import alexp
  10 +from AplicaSinonimos import *
  11 +from AplicaRegras import *
  12 +
  13 +aplicaSinonimos = AplicaSinonimos()
  14 +aplicaRegras = AplicaRegras()
  15 +
  16 +
  17 +def iniciarTraducao(texto):
  18 + textoDividido = texto.split(".")
  19 + for w in textoDividido:
  20 + if len(w) > 0 and w != " ":
  21 + return gerarAnalise(w)
  22 +
  23 +
  24 +def gerarAnalise(sentenca):
  25 + '''tokens = alexp.toqueniza(sentenca)
  26 + etiquetadas = alexp.etiquetaSentenca(tokens)
  27 + analiseMorf = analiseMorfologica(etiquetadas)
  28 + print analiseMorf'''
  29 +
  30 + sintatica = alexp.run(sentenca)
  31 + morfologica = alexp.getAnaliseMorfologica()
  32 +
  33 + if (isinstance(sintatica,type(None))):
  34 + return analiseMorfologica(morfologica)
  35 + else:
  36 + print analiseSintatica(sintatica, morfologica)
  37 +
  38 +
  39 +def analiseMorfologica(listaMorfologica):
  40 + proc = aplicaRegras.aplicarRegrasMorfo(listaMorfologica)
  41 + return aplicaSinonimos.sinonimosMorfologico(proc)
  42 +
  43 +
  44 +def analiseSintatica(arvoreSintatica, listaMorfologica):
  45 + proc = aplicaRegras.aplicarRegrasSint(arvoreSintatica, listaMorfologica)
  46 + return aplicaSinonimos.sinonimosSintatico(proc)
0 \ No newline at end of file 47 \ No newline at end of file