AmanSengar's picture
Update README.md
706d11b verified
# 🧠 SentimentClassifier-RoBERTa-UserReviews
A RoBERTa-based sentiment analysis model fine-tuned on user review data. This model classifies reviews as **Positive** or **Negative**, making it ideal for analyzing product feedback, customer reviews, and other short user-generated content.
---
## ✨ Model Highlights
πŸ“Œ Based on `cardiffnlp/twitter-roberta-base-sentiment` (from Cardiff NLP)
πŸ” Fine-tuned on binary-labeled user reviews (positive vs. negative)
⚑ Supports prediction of 2 classes: Positive, Negative
🧠 Built using Hugging Face πŸ€— Transformers and PyTorch
---
## 🧠 Intended Uses
- βœ… Customer review sentiment classification
- βœ… E-commerce product feedback analysis
- βœ… App review categorization
---
## 🚫 Limitations
- ❌ Not optimized for multi-class sentiment (Neutral, Sarcasm, etc.)
- 🌍 Trained primarily on English-language reviews
- πŸ“ Performance may degrade for texts >128 tokens (due to max length truncation)
- πŸ€” Not designed for domain-specific jargon (e.g., legal or medical texts)
---
## πŸ‹οΈβ€β™‚οΈ Training Details
| Attribute | Value |
|-------------------|----------------------------------------|
| Base Model | cardiffnlp/twitter-roberta-base-sentiment |
| Dataset | Filtered user reviews (binary labeled) |
| Labels | Positive (1), Negative (0) |
| Max Token Length | 128 |
| Epochs | 3 |
| Batch Size | 8 |
| Optimizer | AdamW |
| Loss Function | CrossEntropyLoss |
| Framework | PyTorch + Hugging Face Transformers |
| Hardware | CUDA-enabled GPU |
---
## πŸ“Š Evaluation Metrics
| Metric | Score |
|------------|--------|
| Accuracy | 0.97 |
| Precision | 0.96 |
| Recall | 1.00 |
| F1 Score | 0.98 |
> πŸ“Œ Replace with your final values after complete training if these were updated.
---
## πŸ”Ž Label Mapping
| Label ID | Sentiment |
|----------|-----------|
| 0 | Negative |
| 1 | Positive |
---
## πŸš€ Usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import torch.nn.functional as F
model_name = "your-username/sentiment-roberta-user-reviews"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
model.eval()
def predict(text):
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=128)
with torch.no_grad():
outputs = model(**inputs)
probs = F.softmax(outputs.logits, dim=1)
pred = torch.argmax(probs, dim=1).item()
label_map = {0: "Negative", 1: "Positive"}
return f"Sentiment: {label_map[pred]} (Confidence: {probs[0][pred]:.2f})"
# Example
print(predict("I really love this product, works great!"))
πŸ“ Repository Structure
python
Copy
Edit
.
β”œβ”€β”€ model/ # Contains fine-tuned model files
β”œβ”€β”€ tokenizer/ # Tokenizer config and vocab
β”œβ”€β”€ config.json # Model configuration
β”œβ”€β”€ pytorch_model.bin # Fine-tuned model weights
β”œβ”€β”€ README.md # Model card
🀝 Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request if you have suggestions or improvements.