Walid-Ahmed's picture
Update README.md
622a2c6 verified
---
title: Advanced Sentiment Classifier
emoji: πŸƒ
colorFrom: green
colorTo: green
sdk: gradio
sdk_version: 4.36.1
app_file: app.py
pinned: false
license: apache-2.0
---
# Sentiment Analyzer
This project provides a web-based tool to analyze the sentiment of reviews using a pre-trained model from Hugging Face's `transformers` library. Users can upload a text file containing reviews, and the tool will display a DataFrame with the sentiment analysis results and a pie chart visualizing the sentiment distribution.
## Features
- **Sentiment Analysis**: Uses a pre-trained model to classify the sentiment of each review as positive or negative.
- **File Upload**: Allows users to upload a text file containing reviews.
- **DataFrame Display**: Shows a DataFrame with the original reviews, sentiment labels, and confidence scores.
- **Pie Chart Visualization**: Displays a pie chart showing the percentage of positive and negative reviews.
## Requirements
- Python 3.6 or higher
- `transformers` library
- `pandas` library
- `matplotlib` library
- `gradio` library
## Installation
1. Clone the repository:
```bash
git clone https://github.com/your-username/sentiment-analyzer.git
cd sentiment-analyzer
```
2. Install the required libraries:
```bash
pip install transformers pandas matplotlib gradio
```
## Usage
1. Save your reviews in a text file named `reviews.txt`, with each review on a new line.
2. Run the script:
```bash
python app.py
```
3. Open your web browser and go to the local server URL provided by Gradio (usually `http://127.0.0.1:7860`).
4. Upload the `reviews.txt` file.
5. The tool will display a DataFrame with the sentiment analysis results and a pie chart visualizing the sentiment distribution.
## Code Explanation
- **read_reviews_to_dataframe**: Reads reviews from a text file and converts them into a pandas DataFrame.
- **analyzer**: Applies sentiment analysis to a given text and returns the label and score.
- **evaluate_reviews**: Adds sentiment evaluation to each review in the DataFrame and splits it into 'Sentiment' and 'Score' columns.
- **create_pie_chart**: Creates and saves a pie chart showing the distribution of sentiments.
- **process_reviews**: Processes the uploaded file, evaluates reviews, and generates the pie chart.
- **gradio_interface**: Function for Gradio interface that processes the file and returns the DataFrame and chart path.
## Example
1. Prepare a text file `reviews.txt` with the following content:
```
The product quality is excellent!
The battery life is awful.
Very satisfied with the purchase.
Will not buy again, very disappointed.
```
2. Run the script:
```bash
python app.py
```
3. Upload `reviews.txt` via the Gradio interface.
4. View the DataFrame and pie chart displaying the sentiment analysis results.
## License
This project is licensed under the MIT License.
## Author
This tool was created by **Walid Ahmed**.