Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Definindo as funções necessárias para o processo de INDEXACAO
- import glob, os, codecs, sys
- dic = dict()
- stopwords = []
- nome_arq = 'stopwords.txt'
- arq = codecs.open(nome_arq, "r", "UTF-8")
- linhas = arq.readlines()
- for linha in linhas:
- stopwords.append(linha.replace('\n', '').strip().lower())
- arq.close()
- def indexacao(doc, arq):
- # doc: list | arq: str (nome do arquivo)
- for token in doc:
- if token in dic:
- dic[token].append(arq)
- else:
- dic[token] = [arq]
- def tokenizacao(doc_inicial):
- return doc_inicial.split(' ')
- def substitui_especiais(token):
- return token.replace('á', 'a')
- def remove_pontuacao(token):
- novo_token = ''
- pontuacoes = '!()[]{};:\'\"\,<>.?@#%^&*_~'
- for char in token:
- if char not in pontuacoes:
- novo_token = novo_token + char
- return novo_token
- # como remover pontuações, caracteres especiais, case-sensitive? [normalizacao]
- def normalizacao(lista):
- nova_lista = []
- for token in lista:
- if token == '':
- continue
- token = substitui_especiais(token)
- token = remove_pontuacao(token)
- token = token.lower()
- nova_lista.append(token)
- return nova_lista
- def remove_stopwords(lista):
- nova_lista = []
- for token in lista:
- if token.lower() not in stopwords:
- nova_lista.append(token)
- return nova_lista
- def remove_repetidas(lista):
- return list(set(lista))
- for arq in glob.glob("docs/*.txt"):
- print("[{}]".format(arq))
- docTemporario = ''
- # Abrir arquivo
- f = codecs.open(arq, "r", "UTF-8")
- 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()
- docTemporario = tokenizacao(docTemporario)
- docTemporario = normalizacao(docTemporario)
- docTemporario = remove_stopwords(docTemporario)
- docTemporario = remove_repetidas(docTemporario)
- print(sorted(docTemporario))
- indexacao(docTemporario, arq)
- print()
- print(dic) # apresenta o indice invertido (representado como um dicionario)
- print("BUSCAR PELA PALAVRA 'polícia':")
- print(dic['polícia'])
- print(dic['furadeira'])
- print( set(dic['polícia']) & set(dic['furadeira'])) # busca booleana usando AND
- ########
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement