Dashboard interativo em Streamlit para explorar e analisar sentimentos de tweets relacionados a companhias aéreas dos EUA. A aplicação permite visualizar a distribuição de sentimentos, localização geográfica dos tweets, comparações entre companhias aéreas e nuvens de palavras por sentimento.
- Sobre o projeto
- Funcionalidades
- Estrutura do projeto
- Base de dados
- Pré-requisitos
- Instalação
- Como executar
- Tema e customização
- Tecnologias utilizadas
- Possíveis melhorias
Este projeto utiliza o dataset Twitter US Airline Sentiment, contendo tweets de usuários sobre as principais companhias aéreas americanas (American, Delta, Southwest, United, US Airways e Virgin America), classificados como positive, neutral ou negative.
A aplicação oferece um painel lateral (sidebar) com diversos filtros e opções de visualização, permitindo que o usuário explore os dados de forma interativa sem precisar escrever código.
O dashboard é composto pelos seguintes recursos, acessíveis pela barra lateral:
- Tweet aleatório por sentimento — exibe um tweet aleatório de acordo com o sentimento selecionado (
positive,neutralounegative). - Número de tweets por sentimento — gráfico de barras ou gráfico de pizza (donut) mostrando a quantidade total de tweets por categoria de sentimento.
- Quando e onde os usuários estão tweetando — mapa interativo com a localização geográfica dos tweets filtrados por hora do dia (0–23h), com opção de exibir os dados brutos.
- Total de tweets por companhia aérea — gráfico de barras horizontal ou gráfico de pizza com o volume de tweets por companhia.
- Detalhamento por companhia e sentimento — histograma comparando múltiplas companhias aéreas selecionadas, separado por sentimento.
- Nuvem de palavras (Word Cloud) — gera uma nuvem de palavras a partir do texto dos tweets filtrados por sentimento (positivo, neutro ou negativo), removendo menções (
@usuário), links (http) e retweets (RT).
.
├── app.py # Código principal da aplicação Streamlit
├── Tweets.csv # Base de dados com os tweets
├── config.toml # Arquivo de tema/configuração visual do Streamlit
└── requirements.txt # Dependências do projeto
Importante: o arquivo
config.tomldeve ficar dentro de uma pasta.streamlit/na raiz do projeto para que o Streamlit aplique o tema automaticamente (veja a seção Tema e customização).
O arquivo Tweets.csv contém, entre outras, as seguintes colunas utilizadas pela aplicação:
| Coluna | Descrição |
|---|---|
tweet_id |
Identificador único do tweet |
airline_sentiment |
Sentimento do tweet (positive, neutral, negative) |
airline_sentiment_confidence |
Grau de confiança da classificação do sentimento |
negativereason |
Motivo do sentimento negativo (quando aplicável) |
airline |
Companhia aérea mencionada |
name |
Nome de usuário do autor do tweet |
retweet_count |
Número de retweets |
text |
Texto do tweet |
tweet_created |
Data e hora de criação do tweet |
latitude / longitude |
Coordenadas geográficas associadas ao tweet |
- Python 3.8 ou superior
- pip
- Clone ou baixe este repositório.
- (Recomendado) Crie um ambiente virtual:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows- Instale as dependências:
pip install -r requirements.txtstreamlit
plotly
wordcloud
matplotlib
Observação:
pandasenumpytambém são utilizados pela aplicação (importados emapp.py). Caso não estejam instalados como dependências destreamlit/plotly, adicione-os manualmente:pip install pandas numpy
Certifique-se de que o arquivo Tweets.csv está no mesmo diretório do app.py (o código carrega os dados a partir de Data_URL = 'Tweets.csv', um caminho relativo).
Execute o comando:
streamlit run app.pyA aplicação abrirá automaticamente no navegador, geralmente em http://localhost:8501.
O arquivo config.toml define a paleta de cores e a fonte utilizadas no dashboard (tons de verde e bege). Para que o Streamlit reconheça essas configurações, mova o arquivo para dentro da pasta .streamlit/:
.streamlit/
└── config.toml
Estrutura final esperada:
.
├── .streamlit/
│ └── config.toml
├── app.py
├── Tweets.csv
└── requirements.txt
- Streamlit — construção do dashboard interativo
- Pandas — manipulação e análise dos dados
- Plotly Express — gráficos interativos (barras, pizza, histograma)
- WordCloud — geração de nuvens de palavras
- Matplotlib — renderização da nuvem de palavras
Projeto baseado no dataset Twitter US Airline Sentiment para fins de estudo e demonstração de dashboards interativos com Streamlit.