WorkCSV.py 3.82 KB
#!/usr/bin/python
# -*- coding: utf-8 -*-

#Autor: Erickson Silva <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>

import os, csv, sys

class WorkCSV(object):
    
   # Define e inicializa os atributos
   def __init__(self):
      self.__path = "vlibras_user/vlibras-core/data/"
      self.__fileInf = ''
      self.__dicInf = {}
      self.__fileSin = ''
      self.__dicSin = {}
      self.__fileWords = ''
      self.__dicWords = {}
      self.__file2Gen = ''
      self.__dic2Gen = {}      
      self.__fileTemVerbs = ''
      self.__dicTemVerbs = {}     
      self.createDicInf()
      self.createDicSin()
      self.createDicWords()
      self.createDic2Gen()
      self.createDicTemVerbs() 

   # Abre o arquivo que contem os verbos no infinitivo e preenche o dicionario com os mesmos
   def createDicInf(self):
      try:
         self.__fileInf = csv.reader(open(self.__path+"dicPortGlosa.csv"), delimiter=";")
      except IOError, (errno, strerror): 
         print "I/O error(%s): %s" % (errno, strerror)
         print "createDicInf"

      for row in self.__fileInf:
         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 arquivo que contem os sinonimos e preenche o dicionario com os mesmos
   def createDicSin(self):
      try:
         self.__fileSin = csv.reader(open(self.__path+"portuguesGlosa.csv"), delimiter=";")
      except IOError, (errno, strerror):
         print "I/O error(%s): %s" % (errno, strerror)
         print "createDicSin"
   
      for row in self.__fileSin:
         if row[1] != "":
            self.__dicSin[row[0].decode("utf-8")] = row[1].decode("utf-8")
    

    # Abre o arquivo que contem os tempos verbais
   def createDicTemVerbs(self):
      try:
         self.__fileTemVerbs = csv.reader(open(self.__path+"temposVerbais.csv"), delimiter=";")
      except IOError, (errno, strerror):
         print "I/O error(%s): %s" % (errno, strerror)
         print "createDicTemVerbs"
   
      for row in self.__fileTemVerbs:
         self.__dicTemVerbs[row[0].decode("utf-8")] = row[0].decode("utf-8")     

   # Abre o arquivo que contem os artigos e preposicoes de acordo com o modelo de idioma passado na chamada e preenche o dicionario com os mesmos
   def createDicWords(self):
      try:
         self.__fileWords = csv.reader(open(self.__path+"hWordsRemove.csv"), delimiter=";")
      except IOError, (errno, strerror):
         print "I/O error(%s): %s" % (errno, strerror)
         print "createDicWords"

      for row in self.__fileWords:
         self.__dicWords[row[0].decode("utf-8")] = row[0].decode("utf-8")
        
   # Abre o arquivo que contem os substantivos que sao comuns dos 2 generos e preenche o dicionario com os mesmos
   def createDic2Gen(self):
      try:
         self.__file2Gen = csv.reader(open(self.__path+"subs2Generos.csv"), delimiter=";")
      except IOError, (errno, strerror):
         print "I/O error(%s): %s" % (errno, strerror)
         print "createDic2Gen" 
           
      for row in self.__file2Gen:
         self.__dic2Gen[row[0].decode("utf-8")] = row[0].decode("utf-8")    

   # Retorna o dicionario dos verbos no infinitivo
   def getDicInf(self):
      return self.__dicInf

   # Retorna o dicionario dos sinonimos
   def getDicSin(self):
      return self.__dicSin

   # Retorna o dicionario dos artigos e preposicoes a serem removidos pelo simplificador
   def getDicWords(self):
      return self.__dicWords

   # Retorna o dicionario dos substantivos a serem analisados pelo simplificador
   def getDic2Gen(self):
      return self.__dic2Gen

   # Retorna o dicionario dos tempos verbais
   def getDicTemVerbs(self):
      return self.__dicTemVerbs