Análise de Sentimentos para Monitoramento da Opinião Pública em Redes Sociais sobre Serviços Públicos
Este projeto tem como objetivo coletar, processar e analisar postagens de redes sociais (Twitter) para monitorar a opinião pública sobre serviços públicos no Brasil. Através de técnicas de scraping e análise de dados, é possível identificar sentimentos e padrões relevantes nas postagens.
A solução conta com:
- Scraper customizado para extração de dados.
- Pré-processamento e enriquecimento dos dados (ex: categorização e análise de sentimento).
- Armazenamento em banco de dados MongoDB.
- Backend em Java Spring Boot.
- Frontend moderno e responsivo com Angular + PrimeNG v19.
TCC-Analise/
│
├── backend/ # Aplicação Spring Boot (REST API)
├── frontend/ # Aplicação Angular (dashboard e gráficos)
├── data/ # Dados de entrada e saída
│ ├── raw/ # Arquivos CSV originais
│ ├── processed/ # Dados tratados em JSON
│ └── scripts/ # Scripts de processamento (Python)
├── docs/ # Documentação do projeto
└── README.md
- JDK 17 (Java Development Kit)
- Maven
- Node.js (v18+ recomendado)
- Angular CLI
- MongoDB (local ou Atlas)
- MongoDB Database Tools (para importação de dados)
O script localizado em data/scripts é responsável por:
- Leitura do CSV contendo tweet ID, conteúdo, curtidas, retweets e data.
- Limpeza do texto:
- Remove links, hashtags e menções.
- Ignora textos muito curtos (menos de 4 palavras úteis).
- Análise de Sentimento:
- Usa o modelo
lipaoMai/BERT-sentiment-analysis-portugueseda Hugging Face. - Classifica o sentimento como
positivo,negativoouneutro.
- Usa o modelo
- Exportação final:
- Gera um JSON estruturado para importação no MongoDB.
Exemplo de saída:
{
"tweet_id": { "$numberLong": "1909721455" },
"timestamp": { "$date": { "$numberLong": "1744148050000" } },
"content": "Texto do tweet...",
"likes": { "$numberInt": "100" },
"retweets": { "$numberInt": "20" },
"analytics": { "$numberDouble": "1500.0" },
"categoria": "educação",
"sentimento": "positivo"
}git clone https://github.com/J-Mothe/TCC.git
cd TCCcd frontend
npm installnpm install -g @angular/cling serveAcesse: http://localhost:4200
-
Instale os Database Tools:
https://www.mongodb.com/try/download/database-tools -
Adicione a pasta
binnoPATH. -
Importe os dados:
mongoimport --uri="mongodb+srv://usuario:senha@cluster.mongodb.net/TCC-Analise" --collection twitter --file "data/processed/brasilia_educacao_com_sentimento.json" --jsonArrayhttps://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
setx JAVA_HOME "C:\Program Files\Java\jdk-17"
setx PATH "%PATH%;%JAVA_HOME%\bin"https://maven.apache.org/download.cgi
setx MAVEN_HOME "C:\Program Files\Apache\maven"
setx PATH "%PATH%;%MAVEN_HOME%\bin"cd backend
mvn spring-boot:runAPI disponível em: http://localhost:8080/api/tweets
ng generate component components/novo-componenteng generate service services/novo-servicoEste projeto foi desenvolvido por:
- João Victor Mothé Vantil
- Giulia Campelo Bezerra
Este projeto é apenas para fins acadêmicos e não possui fins comerciais.