sentiment-analyzer3 / README.md
entropy25's picture
Update README.md
2527a17 verified
---
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