Advertisement
fahadkalil

indexador_071119_final

Nov 7th, 2019
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.49 KB | None | 0 0
  1. import glob, os, codecs, sys
  2.  
  3. # =================================
  4. # Metodos para Indexacao
  5. # =================================
  6.  
  7. def tokenizacao(documento): # retorna list    
  8.     return documento.split(" ")
  9.  
  10. def remover_repetidas(lista_palavras): # retorna list
  11.     return sorted(list(set(lista_palavras)))
  12.  
  13. def remover_stopwords(lista_palavras, stopwords): # retorna list    
  14.     nova_lista = []
  15.  
  16.     for p in lista_palavras:
  17.         if (p.upper() in stopwords) or (p.lower() in stopwords):
  18.             continue
  19.         else:
  20.             nova_lista.append(p)
  21.            
  22.     return nova_lista
  23.    
  24. def normalizacao(lista_palavras): # retorna list
  25.     nova_lista = []
  26.     simbolos = list('.,+/?:;!@#$%')
  27.  
  28.     # transformou palavras para minusculas
  29.     for p in lista_palavras:
  30.         p = p.lower()
  31.  
  32.         # procura e remove caracteres especiais
  33.         for s in simbolos:
  34.             if s in p:
  35.                 p = p.replace(s,'')
  36.         nova_lista.append(p)
  37.        
  38.     return nova_lista
  39.  
  40. def indexar(lista_palavras, arq, dic):
  41.    
  42.     # para cada palavra na lista
  43.        # testa se ela existe no dicionario
  44.           # se existir, obtem a lista de docs e faz append
  45.           # se nao existir, cria uma nova entrada no dicionario
  46.     pass
  47.  
  48.  
  49. # =================================
  50. # FUNCAO PRINCIPAL (inicio do app)
  51. # =================================
  52. def main():
  53.     print("== IMED-EDD | INDEXADOR DOCUMENTOS == ")
  54.    
  55.     dic = dict() # dicionario vazio    
  56.     pasta = "docs/*.txt"
  57.  
  58.     ## Carrega arquivo de stopwords em uma list
  59.     stopwords = []
  60.     nome_arq = 'stopwords.txt'
  61.  
  62.     arq = codecs.open(nome_arq, "r", "UTF-8") # abrir arquivo para leitura
  63.     linhas = arq.readlines()
  64.     for linha in linhas:
  65.         stopwords.append(linha.replace('\n', '').strip().lower())
  66.        
  67.     arq.close() # fechar arquivo
  68.  
  69.     ## PASSA ARQUIVO POR ARQUIVO DE UM DIRETORIO
  70.    
  71.     for arq in glob.glob(pasta):
  72.         print("[{}]".format(arq))
  73.         docTemporario = ''
  74.        
  75.         # Abrir arquivo
  76.         f = codecs.open(arq, "r", "utf-8-sig")
  77.         linhas = f.readlines()
  78.  
  79.         for linha in linhas:
  80.             # remove espaços em branco no inicio e fim de cada linha lida
  81.             docTemporario += linha.strip()
  82.         f.close()
  83.  
  84.         # ETAPAS DA INDEXACAO
  85.         lista_palavras = tokenizacao(docTemporario)
  86.         print(lista_palavras)
  87.  
  88.         lista_palavras = normalizacao(lista_palavras)
  89.  
  90. if __name__ == '__main__':
  91.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement