Spaces:
Sleeping
Sleeping
| 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 <repository-url> | |
| 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 | |