SentimentAnalysis / README.md
GaneshArihanth's picture
Create README.md
82b0ab4 verified
|
Raw
History Blame
4.29 kB
---
license: mit
datasets:
- fancyzhx/amazon_polarity
language:
- en
base_model:
- google-bert/bert-base-uncased
pipeline_tag: text-classification
tags:
- sentiment-analysis
- amazon-reviews
- bert
- huggingface
- fine-tuned-model
---
# BERT Sentiment Analysis on Amazon Polarity:
This model fine-tunes the `bert-base-uncased` model from Google on the [Amazon Polarity](https://huggingface.co/datasets/fancyzhx/amazon_polarity) dataset to classify customer reviews into **positive** or **negative** sentiment.
---
## Model Details:-
### Model Description:
- **Developed by:** Ganesh Arihanth
- **Finetuned from model:** `google-bert/bert-base-uncased`
- **Language(s):** English
- **License:** MIT
- **Model type:** Transformer-based sentiment classifier
- **Dataset used:** `fancyzhx/amazon_polarity`
- **Pipeline type:** `text-classification`
### Model Sources:
- **Repository:** [GitHub Repo](https://github.com/yourusername/sentiment-analysis-bert-amazon)
- **Dataset:** [Amazon Polarity](https://huggingface.co/datasets/fancyzhx/amazon_polarity)
- **Base model:** [BERT base uncased](https://huggingface.co/bert-base-uncased)
### Results:
| Metric | Value |
|------------|----------|
| Accuracy | 96.5% |
| F1 Score | 96.36% |
| Precision | ~96.3% |
| Recall | ~96.4% |
---
## Uses:-
### Direct Use:
- Binary sentiment classification (positive/negative) of product reviews
- Customer feedback analysis
- E-commerce analytics dashboards
### Downstream Use:
- Chatbots or virtual assistants for feedback and understanding
- Review filtering systems
- Business intelligence tools for automated sentiment insights
### Out-of-Scope Use:
- Not suitable for non-English text without re-training
- Not suitable for detecting sarcasm or highly nuanced sentiment
- Not trained for offensive content detection
---
## Bias, Risks, and Limitations:-
- Trained only on Amazon product reviews; may not generalise well to other domains
- Risk of overfitting to Amazon-specific language
- May perform poorly on concise, ambiguous, or sarcastic reviews
## Recommendations:-
- Evaluate on your domain-specific test set before deployment
- Retrain or fine-tune further if accuracy is low on your data
---
## How to Use:-
```python
import torch
from transformers import BertTokenizerFast, BertForSequenceClassification
# Set the device (use GPU if available)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")
# Load the saved model and tokenizer
model_path = "GaneshArihanth/bert-amazon-sentiment" # Change to your actual HF repo path
tokenizer = BertTokenizerFast.from_pretrained(model_path)
model = BertForSequenceClassification.from_pretrained(model_path)
model.to(device)
model.eval()
# Function to predict sentiment
def predict_sentiment(text):
inputs = tokenizer(
text,
padding="max_length",
truncation=True,
max_length=128,
return_tensors="pt"
)
input_ids = inputs["input_ids"].to(device)
attention_mask = inputs["attention_mask"].to(device)
with torch.no_grad():
outputs = model(input_ids, attention_mask=attention_mask)
logits = outputs.logits
prediction = torch.argmax(logits, dim=-1).item()
sentiment = "Positive 😊" if prediction == 1 else "Negative 😖"
return sentiment
# Example usage
while True:
user_input = input("Enter a review (or 'exit' to quit): ")
if user_input.lower() == "exit":
break
result = predict_sentiment(user_input)
print(f"Predicted Sentiment: {result}")
```
---
## Training Procedure:-
- **Hardware:** NVIDIA RTX 3060 (12GB VRAM)
- **Batch Size:** 64
- **Epochs:** 2
- **Optimizer:** AdamW
- **Learning Rate:** 2e-5
- **Max Sequence Length:** 512
- **Mixed Precision:** Enabled (FP16)
- **Framework:** PyTorch + Hugging Face Transformers
---
## Technical Specifications:-
### Model Architecture
- **Model:** BERT (base, uncased)
- **Parameters:** 110M
- **Layers:** 12
- **Heads:** 12
- **Hidden Size:** 768
- **Task Objective:** Binary classification using [CLS] token
### Infrastructure
- **Environment:** Python 3.10+, PyTorch, Hugging Face Transformers
- **Device:** RTX 3060 with CUDA
---