Skip to content

andrekwr/search_engine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uma máquina de busca para fins didáticos.

André Weber

Matheus Pellizzon

Conceitos atigindos

  • Limpeza dos dados
  • Normalização. Obs: Apenas aplicada no index e nas queries de busca para manter os tweets em sua forma original.
    • Stemming dos termos e das palavras dos documentos.
    • Lowercase em todas palavras.
  • Queries booleanas
    • Arquivo: query.py parse_raw_query_or, parse_raw_query, parse_json_query, build_query
    • Parseamento de query user-friendly para mais baixo nível. Ex.: "not and safe" ["and", ["term", "not"], ["term", "safe"]]
  • Retrieval booleano
    • Arquivo: query.py método Evaluate das classes.
  • Ranking tf-idf
    • Arquivo: rank.py rank_documents, score_document_tf_idf, score_document
    • Classe Index utilizada para evitar erros no caso de não localizar uma palavra no index.
  • Avançado: Enriquecimento de queries
    • Arquivo: query.py parse_raw_query_or, parse_raw_query
    • A partir da query passada foi gerada uma nova com os sinônimos de cada termo. Ex.: "not and safe" ["and", [or, ["term", "non"], ["term", not]], [or, ["term", "saf"], ["term", "good"]]]

Instruções

  • Faça um fork deste repositório para poder receber atualizações eventuais. Para saber como fazer um fork, veja https://docs.github.com/en/github/getting-started-with-github/fork-a-repo.

  • Abra um terminal e vá para o diretório deste repositório.

  • Rode config.bat (no Windows) ou config.sh (Linux/Mac) para colocar este diretório no PYTHONPATH.

  • Abra seu ambiente de desenvolvimento (seu editor favorito, ou jupyter notebook, etc) a partir deste terminal para fazer uso da variável de ambiente PYTHONPATH atualizada.

Para gerar o corpo de documentos a partir do banco de dados utilizamos o comando:

python scripts/make_archive_from_elon_tweets.py data/elon.csv data/archive.json

Para gerar os índices de cada palavra:

python scripts/make_index_from_archive.py data/archive.json data/index.json

Para prosseguir com a procura dos termos nos documentos:

python scripts/search.py data/archive.json data/index.json queryDesejada

Referência do banco de dados utilizado:

Tweets obtidos de https://www.kaggle.com/ayhmrba/elon-musk-tweets-2010-2021

About

Uma máquina de busca para fins didáticos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.3%
  • Other 0.7%