Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import glob, os, codecs, sys
- # =================================
- # Metodos para Indexacao
- # =================================
- def tokenizacao(documento): # retorna list
- return documento.split(" ")
- def remover_repetidas(lista_palavras): # retorna list
- return sorted(filter(None,list(set(lista_palavras))))
- def remover_stopwords(lista_palavras, stopwords): # retorna list
- nova_lista = []
- for p in lista_palavras:
- if (p.upper() in stopwords) or (p.lower() in stopwords):
- continue
- else:
- nova_lista.append(p)
- return nova_lista
- def normalizacao(lista_palavras): # retorna list
- nova_lista = []
- simbolos = list('.,+?;!@#')
- # transformou palavras para minusculas
- for p in lista_palavras:
- p = p.lower()
- # procura e remove caracteres especiais
- for s in simbolos:
- if s in p:
- p = p.replace(s,'')
- nova_lista.append(p)
- return nova_lista
- def indexar(lista_palavras, arq, dic):
- # para cada palavra na lista
- # testa se ela existe no dicionario
- # se existir, obtem a lista de docs e faz append
- # se nao existir, cria uma nova entrada no dicionario
- pass
- # =================================
- # FUNCAO PRINCIPAL (inicio do app)
- # =================================
- def main():
- print("== IMED-EDD | INDEXADOR DOCUMENTOS == ")
- dic = dict() # dicionario vazio
- pasta = "docs/*.txt"
- ## Carrega arquivo de stopwords em uma list
- stopwords = []
- nome_arq = 'stopwords.txt'
- arq = codecs.open(nome_arq, "r", "UTF-8") # abrir arquivo para leitura
- linhas = arq.readlines()
- for linha in linhas:
- stopwords.append(linha.replace('\n', '').strip().lower())
- arq.close() # fechar arquivo
- ###
- ### AQUI TEM QUE TER UM MENU PARA O USUARIO!
- ###
- ## PASSA ARQUIVO POR ARQUIVO DE UM DIRETORIO
- for arq in glob.glob(pasta):
- print("[{}]".format(arq))
- docTemporario = ''
- # Abrir arquivo
- f = codecs.open(arq, "r", "utf-8-sig")
- linhas = f.readlines()
- for linha in linhas:
- # remove espaços em branco no inicio e fim de cada linha lida
- docTemporario += linha.replace('\r\n', ' ')
- f.close()
- print(docTemporario)
- # ETAPAS DA INDEXACAO
- lista_palavras = tokenizacao(docTemporario)
- lista_palavras = normalizacao(lista_palavras)
- lista_palavras = remover_repetidas(lista_palavras)
- lista_palavras = remover_stopwords(lista_palavras, stopwords)
- ## criar indexacao
- ## indexar(lista_palavras, arq, dic)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement