LeitorDicionarios.py
4.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Autor: Erickson Silva
#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>
#LAViD - Laboratório de Aplicações de Vídeo Digital
from os.path import expanduser
import csv
class LeitorDicionarios(object):
#_iInstance = None
#class Singleton:
# def __init__(self):
# self.LeitorDicionarios = None
#def __init__( self ):
# if LeitorDicionarios._iInstance is None:
# LeitorDicionarios._iInstance = LeitorDicionarios.Singleton()
# self._EventHandler_instance = LeitorDicionarios._iInstance
#def __getattr__(self, aAttr):
# return getattr(self._iInstance, aAttr)
#def __setattr__(self, aAttr, aValue):
# return setattr(self._iInstance, aAttr, aValue)
# Define e inicializa os atributos
def __init__(self):
self.__path = expanduser("~") + "/vlibras-translate/data/"
self.__dicInf = {}
self.__dicSin = {}
self.__dicWords = {}
self.__dic2Gen = {}
self.__dicTemVerbs = {}
self.__fileDic = ''
self.carregarVerbosInfinitivos()
self.carregarSinonimos()
self.carregarPalavrasIgnoradas()
self.carregarSubst2Generos()
self.carregarTemposVerbais()
# Abre o self.__fileDic que contem os verbos no infinitivo e preenche o dicionario com os mesmos
def carregarVerbosInfinitivos(self):
try:
self.__fileDic = csv.reader(open(self.__path+"dicPortGlosa.csv"), delimiter=";")
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
print "carregarVerbosInfinitivos"
for row in self.__fileDic:
if row[1] != "":
try:
self.__dicInf[row[0].decode("utf-8")] = row[1].decode("utf-8")
except UnicodeDecodeError:
self.__dicInf[row[0].decode('iso8859-1').encode('utf-8')] = row[1].decode('iso8859-1').encode('utf-8')
# Abre o self.__fileDic que contem os sinonimos e preenche o dicionario com os mesmos
def carregarSinonimos(self):
try:
self.__fileDic = csv.reader(open(self.__path+"portuguesGlosa.csv"), delimiter=";")
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
print "carregarSinonimos"
for row in self.__fileDic:
if row[1] != "":
self.__dicSin[row[0].decode("utf-8")] = row[1].decode("utf-8")
# Abre o self.__fileDic que contem os tempos verbais
def carregarTemposVerbais(self):
try:
self.__fileDic = csv.reader(open(self.__path+"temposVerbais.csv"), delimiter=";")
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
print "carregarTemposVerbais"
for row in self.__fileDic:
self.__dicTemVerbs[row[0].decode("utf-8")] = row[0].decode("utf-8")
# 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
def carregarPalavrasIgnoradas(self):
try:
self.__fileDic = csv.reader(open(self.__path+"hWordsRemove.csv"), delimiter=";")
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
print "carregarPalavrasIgnoradas"
for row in self.__fileDic:
self.__dicWords[row[0].decode("utf-8")] = row[0].decode("utf-8")
# Abre o self.__fileDic que contem os substantivos que sao comuns dos 2 generos e preenche o dicionario com os mesmos
def carregarSubst2Generos(self):
try:
self.__fileDic = csv.reader(open(self.__path+"subs2Generos.csv"), delimiter=";")
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
print "carregarSubst2Generos"
for row in self.__fileDic:
self.__dic2Gen[row[0].decode("utf-8")] = row[0].decode("utf-8")
# Retorna o dicionario dos verbos no infinitivo
def getVerboInfinitivo(self, token):
return self.__dicInf[token]
# Retorna o dicionario dos sinonimos
def getSinonimo(self, token):
return self.__dicSin[token]
# Retorna o dicionario dos artigos e preposicoes a serem removidos pelo simplificador
def getPalavraIgnorada(self, token):
return self.__dicWords[token]
# Retorna o dicionario dos substantivos a serem analisados pelo simplificador
def getSubst2Generos(self, token):
return self.__dic2Gen[token]
# Retorna o dicionario dos tempos verbais
def getTempoVerbal(self, token):
return self.__dicTemVerbs[token]
def hasVerboInfinitivo(self, token):
return self.__dicInf.has_key(token)
def hasSinonimo(self, token):
return self.__dicSin.has_key(token)
def hasPalavraIgnorada(self, token):
return self.__dicWords.has_key(token)
def hasSubst2Genero(self, token):
return self.__dic2Gen.has_key(token)
def hasTempoVerbal(self, token):
return self.__dicTemVerbs.has_key(token)