Skip to content

SanVic009/sentiment-dashboard

Repository files navigation

πŸ“Š Sentiment Analysis Dashboard Suite

A comprehensive data visualization platform for analyzing sentiment patterns across multiple dimensions using interactive dashboards built with Streamlit and Plotly.

🌟 Features

🏠 5 Specialized Dashboards

  1. 🌍 GeoSentiment Map Explorer

    • Interactive global sentiment mapping
    • Time-series analysis with sliders
    • Location-based sentiment patterns
    • Country and city-level insights
  2. 🎯 Topic & Hashtag Sentiment Radar

    • Radar charts for hashtag sentiment comparison
    • Word clouds by sentiment categories
    • Hashtag trend analysis over time
    • Topic performance metrics
  3. ⏰ Temporal Emotion Evolution Dashboard

    • Weekday vs Hour sentiment heatmaps
    • Circular 24-hour emotion wheels
    • Daily sentiment evolution charts
    • Emotion distribution over time
  4. 🌟 Influencer Impact Visualizer

    • Bubble charts: followers vs sentiment vs engagement
    • Network graphs showing influence relationships
    • User clustering analysis (K-means)
    • Influencer performance rankings
  5. πŸ“± Device & Language Bias Dashboard

    • Sankey diagrams: Language β†’ Sentiment β†’ Device flow
    • Statistical bias detection
    • Cross-platform sentiment analysis
    • Language sentiment profiling

🎯 Key Highlights

  • Interactive Visualizations: 15+ chart types including radar, Sankey, network graphs, heatmaps
  • Real-time Filtering: Date ranges, devices, languages, user types
  • Statistical Analysis: Bias detection, correlation matrices, clustering
  • Rich Dataset: 10,000+ synthetic social media records
  • Export Capabilities: Download filtered data as CSV
  • Responsive Design: Works on desktop and mobile

πŸš€ Quick Start

Prerequisites

Python 3.7+

Installation

# Clone the repository
cd sentiment-dashboard

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\\Scripts\\activate

# Install dependencies
pip install -r requirements.txt

# Generate sample data
python utils/data_generator.py

Run the Application

streamlit run app.py

The application will open in your browser at http://localhost:8501

πŸ“ Project Structure

sentiment-dashboard/
β”œβ”€β”€ app.py                          # Main Streamlit application
β”œβ”€β”€ requirements.txt                # Python dependencies
β”œβ”€β”€ README.md                       # This file
β”œβ”€β”€ data/
β”‚   └── sentiment_data.csv         # Generated dataset
β”œβ”€β”€ dashboards/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ geo_sentiment_map.py       # Geographic analysis
β”‚   β”œβ”€β”€ hashtag_sentiment_radar.py # Topic & hashtag analysis
β”‚   β”œβ”€β”€ temporal_emotion_dashboard.py # Time-based analysis
β”‚   β”œβ”€β”€ influencer_impact_dashboard.py # Influence network analysis
β”‚   └── device_language_bias_dashboard.py # Platform bias analysis
└── utils/
    └── data_generator.py          # Synthetic data generation

πŸ“Š Dataset Features

The synthetic dataset includes:

  • Temporal: Timestamps, weekdays, hours
  • Geographic: Cities, countries, coordinates (12 locations)
  • Linguistic: 10 languages with realistic distributions
  • Technical: 5 device types (iPhone, Android, Web, etc.)
  • Social: Follower counts, verification status, engagement metrics
  • Content: Hashtags, sentiment scores, emotion labels

πŸ› οΈ Technologies Used

  • Frontend: Streamlit (Interactive web interface)
  • Visualization: Plotly (Interactive charts)
  • Data Processing: Pandas, NumPy
  • Machine Learning: Scikit-learn (Clustering)
  • Network Analysis: NetworkX
  • Text Processing: WordCloud, TextBlob
  • Statistical Analysis: Custom bias detection algorithms

🎨 Visualization Types

  • Geographic: Scatter maps, choropleth maps
  • Network: Force-directed graphs, node-link diagrams
  • Temporal: Heatmaps, time series, circular plots
  • Statistical: Radar charts, correlation matrices, bubble charts
  • Flow: Sankey diagrams
  • Text: Word clouds
  • Clustering: 3D scatter plots

πŸ“ˆ Use Cases

  • Social Media Analytics: Understand sentiment patterns across platforms
  • Brand Monitoring: Track sentiment by geography and demographics
  • Content Strategy: Optimize posting times and hashtag usage
  • Bias Detection: Identify platform or language-specific sentiment biases
  • Influence Analysis: Understand how different user types affect sentiment
  • Academic Research: Study sentiment patterns in social data

πŸ”§ Customization

Adding New Dashboards

  1. Create a new Python file in dashboards/
  2. Implement a main() function
  3. Add import to app.py
  4. Add navigation option

Modifying Data

  • Edit utils/data_generator.py to change dataset characteristics
  • Update CSV file path in dashboard modules
  • Adjust date ranges and filters as needed

πŸ“Š Performance

  • Handles 10,000+ records smoothly
  • Interactive filtering without page reloads
  • Optimized aggregations and memory usage
  • Responsive design for various screen sizes

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is open source and available under the MIT License.

πŸ™ Acknowledgments

  • Streamlit - For the amazing web app framework
  • Plotly - For interactive visualizations
  • OpenStreetMap - For map data
  • Community - For inspiration and feedback

πŸ“§ Contact

For questions, suggestions, or collaboration:

  • Create an issue on GitHub
  • Contribute to the discussion

Built with ❀️ for data visualization enthusiasts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages