Análise de Sentimentos – Brasil Participativo
Projeto
Nosso projeto visa desenvolver uma ferramenta robusta e intuitiva para coletar e analisar os sentimentos expressos nos comentários da plataforma Brasil Participativo. O objetivo principal é transformar grandes volumes de dados textuais em insights acionáveis, ajudando gestores públicos e cidadãos a compreenderem de forma mais clara e objetiva a opinião pública sobre as propostas e discussões.
Através da análise de sentimentos (positivo, neutro ou negativo), a ferramenta permitirá uma visualização acessível e dinâmica dos dados, facilitando a identificação de tendências, pontos de apoio e áreas de crítica, contribuindo assim para um processo decisório mais informado e participativo.
Tecnologias
Para garantir a eficiência e escalabilidade da nossa solução, optamos por um conjunto de tecnologias modernas e amplamente utilizadas no mercado:
- Python + Django: Utilizado no backend para a construção de uma API robusta e para a orquestração da coleta de dados e do processamento de Machine Learning. Django oferece um framework seguro e com rápido desenvolvimento.
- GraphQL: Interface de comunicação com a plataforma Brasil Participativo, permitindo uma coleta de dados eficiente e flexível, solicitando apenas o que é necessário.
- Jekyll + GitHub Pages: Escolhido para o frontend e o blog do projeto, proporcionando um site estático rápido, seguro e de fácil manutenção, hospedado gratuitamente no GitHub Pages.
- Machine Learning (Análise de Sentimentos): O sistema emprega um modelo BERT multilíngue pré-treinado e ajustado (fine-tuned) para classificação de sentimento, capaz de processar texto em vários idiomas, incluindo Português. Especificamente, utilizamos a variante
cardiffnlp/twitter-xlm-roberta-base-sentiment
, que atribui de 1 a 5 estrelas a cada comentário. No nosso fluxo, mapeamos:- 1–2 estrelas → Comentário Negativo
- 4–5 estrelas → Comentário Positivo
- Comentários de 3 estrelas → Comentário Neutro (não exibidos).
Grupo
Este projeto está sendo desenvolvido com dedicação e expertise pela Squad 08, composta por estudantes de Engenharia de Software da Universidade de Brasília (UnB Gama). Nossa equipe multidisciplinar combina diferentes habilidades para entregar uma solução completa e de alta qualidade.
Ambiente
O desenvolvimento do projeto é centralizado no GitHub, utilizando um fluxo de trabalho colaborativo e versionamento de código. O deploy do frontend é realizado de forma contínua no GitHub Pages, garantindo que a versão mais recente do site esteja sempre acessível. Para o desenvolvimento local, incentivamos o uso de ambientes virtuais para isolar as dependências do projeto e garantir a reprodutibilidade.
Arquitetura
A arquitetura da nossa ferramenta é modular e bem definida, dividida em três componentes principais para otimizar o desenvolvimento e a manutenção:
- Frontend (Jekyll): Responsável pela interface do usuário, apresentação dos resultados da análise de sentimentos (dashboard, gráficos, filtros) e informações gerais sobre o projeto.
- Backend (Django): Gerencia a comunicação com a API GraphQL do Brasil Participativo para coleta de dados e integra o modelo de Machine Learning para a análise de sentimentos.
- Modelo de ML (BERT/DistilBERT): Componente dedicado à inteligência artificial, responsável por processar os comentários e classificá-los em positivo, neutro ou negativo.
Documentação
1. Introdução
1.1 Objetivo
Apresentar a ferramenta de Análise de Sentimentos - Brasil Participativo, desenvolvida na disciplina de Métodos e Desenvolvimento de Software (MDS) da Universidade de Brasília - FGA.
O sistema classifica sentimentos em comentários públicos da plataforma oficial, apoiando gestores e cidadãos com dados úteis.
1.2 Escopo
- Coletar comentários via API GraphQL
- Classificá-los com modelo BERT
- Apresentar resultados visualmente no blog
- Oferecer filtros e busca por sentimentos, palavras-chave e período
1.3 Tecnologias Utilizadas
- Frontend: HTML, CSS, Jekyll
- Backend: Python, Django
- API: GraphQL
- ML: BERT via HuggingFace
- Prototipação: Figma
- Versionamento: Git + GitHub
2. Descrição
2.1 Visão Geral
O sistema é dividido em 3 camadas: coleta, análise e visualização. O blog permite navegação entre os módulos.
2.2 Objetivos do Usuário
- Identificar rapidamente a opinião pública
- Explorar sentimentos por tema ou palavra-chave
- Acessar visualizações gráficas e filtros
3. Requisitos Funcionais
- Coletar e classificar comentários via GraphQL e ML
- Interface amigável e responsiva com Jekyll
- Buscar por termos, aplicar filtros por sentimentos
4. Requisitos Não-Funcionais
- Desempenho: rápida resposta
- Segurança: sem expor credenciais
- Compatibilidade: acessível por dispositivos variados
- Acessibilidade: contraste e legibilidade
- Manutenção: modular e bem organizado
5. Execução Local
- Rodar o blog:
sudo apt install ruby-full build-essential zlib1g-dev sudo gem install jekyll bundler git clone https://github.com/unb-mds/2025_1-Jakebot.git cd 2025_1-Jakebot bundle install bundle exec jekyll serve
- Rodar o backend:
cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python manage.py runserver
6. Links Úteis
Protótipos
Para visualizar a experiência do usuário e o design da interface antes da implementação completa, desenvolvemos protótipos interativos no Figma. Eles servem como um guia visual para o desenvolvimento do frontend.
Acesse os protótipo de alta e baixa fidelidade no Figma: https://www.figma.com/design/R3l1XIVdDhJXnQedtGVrkX/Prot%C3%B3tipo-de-Alta-Fidelidade?node-id=70-5&t=dcpIxJR9aki5W7wJ-1
Colaboradores
Agradecemos a dedicação e o trabalho árduo de cada membro da Squad 08, que tornam este projeto possível:
(Blog e documentação)
(Bot e Backend)
(Blog e Documentação)
(Bot e Backend)
(Pipeline e front)
(Design)