sentiment-analyzer3 / README.md
entropy25's picture
Update README.md
2527a17 verified

A newer version of the Gradio SDK is available: 6.9.0

Upgrade
metadata
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


\\# 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