Este projeto implementa um assistente virtual inteligente que utiliza Processamento de Linguagem Natural (PLN) para interpretar comandos em linguagem natural e modificar uma interface web em tempo real. O sistema combina embeddings de palavras (Word2Vec e Transformer BERT), uma rede neural MLP com backpropagation e similaridade cosseno para decisões híbridas.
- Interpretação de Comandos: Reconhece comandos como "mude a cor do fundo para azul" ou "vá para a página sobre".
- Modificação de Interface: Altera cores, tamanho de fonte, posição de componentes (menu, header) e navegação entre páginas.
- Modelos de Embedding: Suporte a Word2Vec e Transformer (BERT) para geração de vetores.
- Classificação MLP: Rede neural treinada com backpropagation para predição de ações.
- Sistema Híbrido: Combina MLP, similaridade cosseno e validação semântica para decisões inteligentes.
- Correção Ortográfica: Usa distância de Levenshtein para corrigir erros comuns.
- Comparação de Modelos: Interface para comparar predições entre Word2Vec e Transformer.
- Backend: Python 3.8+, Flask
- ML/PLN: Gensim (Word2Vec), Transformers (BERT), NumPy
- Frontend: HTML, CSS, JavaScript (Vanilla)
- Outros: JSON para dados de treinamento
-
Clone o repositório:
git clone https://github.com/api-javali/PLN.git
-
Instale as dependências:
pip install -r requirements.txt
-
Execute o servidor:
python app.py
-
Acesse: Abra
http://localhost:5000no navegador.
- Digite comandos no chat, como "mude o fundo para vermelho" ou "aumente a fonte".
- Use os botões de exemplo para testar.
- Alterne entre modelos (Word2Vec/Transformer) no seletor.
- Compare modelos digitando uma frase no campo de comparação.
- "mude a cor do fundo para azul"
- "aumente o tamanho da fonte"
- "vá para a página sobre"
- "mova o menu para a esquerda"
- "redefinir layout"
.
├── app.py # Servidor Flask principal
├── assistente/
│ ├── virtual_assistant.py # Lógica do assistente
│ ├── word2vec.py # Embedding Word2Vec
│ ├── transformer_embedding.py # Embedding Transformer
│ ├── classifier.py # MLP com backpropagation
│ └── model_comparison.py # Comparação de modelos
├── static/
│ ├── index.js # JavaScript frontend
│ └── styles.css # Estilos CSS
├── templates/
│ └── index.html # Template HTML
├── training_data.json # Dados de treinamento
├── requirements.txt # Dependências Python
└── README.md # Este arquivo
- Pré-processamento: Texto é tokenizado, limpo e corrigido ortograficamente.
- Embeddings: Palavras são convertidas em vetores (Word2Vec ou BERT).
- Classificação: MLP prevê a ação baseada nos vetores.
- Decisão Híbrida: Combina MLP, similaridade e validação para executar ações.
- Execução: Interface é atualizada via JavaScript.