--- title: Sentiment Analysis docker emoji: 📊 colorFrom: gray colorTo: gray sdk: gradio sdk_version: "5.34.1" app_file: app.py pinned: false license: mit --- short\_description: sentiment-analysis \# 🎬 AI Movie Sentiment Analyzer A sophisticated sentiment analysis application for movie reviews using advanced deep learning techniques with BERT, LIME, and SHAP explanations. \## Features \- \*\*Fast Sentiment Analysis\*\*: Quick movie review sentiment classification \- \*\*Advanced Explanations\*\*: LIME and SHAP-based word importance analysis \- \*\*Batch Processing\*\*: Analyze multiple reviews simultaneously \- \*\*Interactive Visualizations\*\*: Charts, gauges, word clouds, and heatmaps \- \*\*History Tracking\*\*: Keep track of all analyses with trend visualization \- \*\*Data Export\*\*: Export results in CSV and JSON formats \- \*\*File Upload Support\*\*: Process CSV and text files \- \*\*Multiple Themes\*\*: Customizable color themes for visualizations \## Project Structure ``` sentiment\\\_analyzer/ ├── config.py # Configuration management ├── models.py # Model loading and management ├── analyzer.py # Core sentiment analysis logic ├── visualizer.py # Visualization components ├── utils.py # Utility functions and data handling ├── app.py # Gradio interface and main application ├── requirements.txt # Python dependencies ├── Dockerfile # Docker container configuration ├── docker-compose.yml # Docker Compose setup └── README.md # Project documentation ``` \## Installation \### Local Installation 1\. \*\*Clone the repository\*\*   ```bash   git clone   cd sentiment\_analyzer   ``` 2\. \*\*Create virtual environment\*\*   ```bash   python -m venv venv   source venv/bin/activate # On Windows: venv\\Scripts\\activate   ``` 3\. \*\*Install dependencies\*\*   ```bash   pip install -r requirements.txt   ``` 4\. \*\*Run the application\*\*   ```bash   python app.py   ``` \### Docker Installation 1\. \*\*Using Docker Compose (Recommended)\*\*   ```bash   docker-compose up --build   ``` 2\. \*\*Using Docker directly\*\*   ```bash   docker build -t sentiment-analyzer .   docker run -p 7860:7860 sentiment-analyzer   ``` \## Usage \### Web Interface 1\. Open your browser and navigate to `http://localhost:7860` 2\. Choose from three main tabs:   - \*\*Quick Analysis\*\*: Fast sentiment analysis with basic visualizations   - \*\*Advanced Analysis\*\*: Deep analysis with LIME/SHAP explanations   - \*\*Batch Analysis\*\*: Process multiple reviews at once \### API Usage The application can be extended to provide API endpoints for programmatic access. \## Configuration Modify `config.py` to customize: \- \*\*Model Settings\*\*: Batch sizes, text length limits \- \*\*Visualization\*\*: Figure sizes, color themes \- \*\*Processing\*\*: Cache sizes, stop words \- \*\*History\*\*: Maximum history size \## Model Information \- \*\*Base Model\*\*: BERT (entropy25/sentimentanalysis) \- \*\*Classes\*\*: Positive, Negative \- \*\*Explanation Methods\*\*: LIME, SHAP \- \*\*Supported Languages\*\*: English \## Features Detail \### Quick Analysis \- Fast sentiment classification \- Confidence scoring \- Probability visualization \- Word cloud generation \### Advanced Analysis \- LIME-based word importance \- SHAP value calculation \- Interactive heatmap visualization \- Detailed explanations \### Batch Processing \- CSV/TXT file upload \- Bulk sentiment analysis \- Comprehensive result visualization \- Progress tracking \### History \& Export \- Analysis history tracking \- Trend visualization \- CSV/JSON export \- Data persistence \## Performance \- \*\*GPU Support\*\*: Automatic CUDA detection \- \*\*Memory Management\*\*: Efficient batch processing \- \*\*Caching\*\*: LRU cache for text processing \- \*\*Resource Optimization\*\*: Context managers for memory cleanup \## Dependencies \### Core Dependencies \- `torch`: Deep learning framework \- `transformers`: BERT model implementation \- `gradio`: Web interface framework \### Analysis \& Visualization \- `lime`: Local interpretable model explanations \- `shap`: Shapley additive explanations \- `matplotlib`: Plotting and visualization \- `wordcloud`: Word cloud generation \### Data Processing \- `pandas`: Data manipulation \- `numpy`: Numerical computing \## Development \### Adding New Features 1\. \*\*New Analyzers\*\*: Add to `analyzer.py` 2\. \*\*Visualizations\*\*: Extend `visualizer.py` 3\. \*\*UI Components\*\*: Modify `app.py` 4\. \*\*Configuration\*\*: Update `config.py` \### Testing ```bash \\# Run tests (if implemented) python -m pytest tests/ \\# Manual testing python -c "from analyzer import SentimentEngine; engine = SentimentEngine(); print(engine.analyze\\\_single\\\_fast('Great movie!'))" ``` \## Deployment \### Production Deployment 1\. \*\*Environment Variables\*\*   ```bash   export GRADIO\_SERVER\_NAME=0.0.0.0   export GRADIO\_SERVER\_PORT=7860   ``` 2\. \*\*Resource Requirements\*\*   - CPU: 2+ cores recommended   - RAM: 4GB+ recommended   - GPU: Optional (CUDA support) 3\. \*\*Monitoring\*\*   - Health checks included in Docker setup   - Logging configured for production use \## Troubleshooting \### Common Issues 1\. \*\*CUDA Out of Memory\*\*   - Reduce `BATCH\\\_PROCESSING\\\_SIZE` in config   - Use CPU-only mode 2\. \*\*Model Loading Errors\*\*   - Check internet connection   - Verify Hugging Face model availability 3\. \*\*File Processing Issues\*\*   - Ensure proper file encoding (UTF-8 recommended)   - Check CSV format and column structure \### Performance Optimization \- Use GPU if available \- Adjust batch sizes based on available memory \- Enable caching for repeated analyses \- Use Docker for consistent performance \## 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 licensed under the MIT License - see the LICENSE file for details. \## Acknowledgments \- Hugging Face for BERT model hosting \- LIME and SHAP libraries for explainable AI \- Gradio for the intuitive web interface \- The open-source community for various dependencies \## Support For issues and questions: 1\. Check the troubleshooting section 2\. Review existing GitHub issues 3\. Create a new issue with detailed information \## Changelog \### v1.0.0 \- Initial release with core functionality \- BERT-based sentiment analysis \- LIME and SHAP explanations \- Gradio web interface \- Docker support