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 import xml.etree.ElementTree as ET
11 11 from os.path import expanduser
12 12 import platform
13   -from LeitorDicionarios import *
  13 +from LerDicionarios import *
14 14 from Iterator import *
15 15 from StringAux import *
16   -from ConversorExtenso import *
  16 +from ConverteExtenso import *
17 17  
18 18 class AplicaRegras(object):
19 19  
... ... @@ -31,7 +31,7 @@ class AplicaRegras(object):
31 31 else:
32 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 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 37 self.pularIteracoes = 0
... ...
src/new/AplicaSinonimos.py
... ... @@ -8,7 +8,7 @@
8 8  
9 9 import os, csv, sys
10 10 from nltk.tree import *
11   -from LeitorDicionarios import *
  11 +from LerDicionarios import *
12 12  
13 13 class AplicaSinonimos(object):
14 14  
... ...
src/new/ConversorExtenso.py
... ... @@ -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 @@
  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   -#!/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 @@
  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   -#!/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 0 \ No newline at end of file
src/new/TraduzSentencas.py 0 → 100644
... ... @@ -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 47 \ No newline at end of file
... ...