Matrícula | Nome |
---|---|
20/2046229 | Kallyne Macêdo Passos |
20/0022199 | Leonardo Sobrinho de Aguiar |
Este projeto objetiva explorar o tema de Algoritmos de Busca através da implementação de um "Dicionário Inteligente", uma aplicação web com uma funcionalidade de autocomplete que sugere palavras em tempo real à medida que o usuário digita e, após a seleção da palavra desejada, apresenta o significado dela. Assim, a aplicação recebe as palavras de um arquivo .csv e as insere em uma Árvore AVL, que, a partir da ordenação alfabética, atua como um índice otimizado para encontrar rapidamente todas as palavras que começam com um determinado prefixo.
Linguagem: Python, HTML, CSS e JavaScript
Framework: Flask
Pré-requisitos: Navegador instalado, Python, Flask, Flask_CORS e Pandas presentes no computador; clonar o repositório localmente.
git clone https://github.com/EDAII/Busca_Autocomplete.git
Abra um terminal ou prompt de comando na pasta do projeto e execute:
pip install Flask Flask-CORS pandas
Digite no mesmo terminal:
python app.py
Abra seu navegador web e acesse o seguinte endereço: http://127.0.0.1:5000
Para desenvolver o projeto, foi escolhida a Árvore AVL como a estrutura de dados principal, implementada em Python. Por ser uma árvore de busca binária autobalanceada, após cada inserção de novas palavras do dicionário, a árvore realiza rotações para garantir que a diferença de altura entre as subárvores de qualquer nó seja no máximo um, impedindo, dessa forma, a degeneração da árvore para uma forma de lista ligada e garantindo que a complexidade de tempo para as operações realizadas seja sempre logarítmica, O(log n). Dessa forma, a Árvore AVL se mostrou uma boa escolha em relação às alternativas.
Para adicionar novos itens ao dicionário, é necessário atualizar os dados que servem como a fonte de informação para a análise. Assim, é possível cadastrar um novo termo e seu significado adicionando-os no arquivo dicionario.csv
para que o sistema possa reconhecer, analisar e exibir o novo termo na interface.