nkadoor's picture
Update README.md
daf25f3 verified
---
language: en
tags:
- sentiment-analysis
- text-classification
- roberta
- imdb
- pytorch
- transformers
datasets:
- imdb
metrics:
- accuracy
- f1
model-index:
- name: nkadoor/sentiment-classifier-roberta
results:
- task:
type: text-classification
name: Text Classification
dataset:
name: imdb
type: imdb
metrics:
- type: accuracy
value: 0.9590
- type: f1
value: 0.9791
---
# Fine-tuned Sentiment Classification Model
This model is a fine-tuned version of [roberta-base](https://huggingface.co/roberta-base) for sentiment analysis on movie reviews.
## Model Details
- **Model type:** Text Classification (Sentiment Analysis)
- **Base model:** roberta-base
- **Language:** English
- **Task:** Binary sentiment classification (positive/negative)
- **Training dataset:** IMDB Movie Reviews Dataset
- **Training samples:** 5000 samples
- **Validation samples:** 1000 samples
- **Test samples:** 1000 samples
## Performance
| Metric | Value |
|--------|-------|
| Test Accuracy | 0.9590 |
| Test F1 Score | 0.9791 |
| Test Precision | 1.0000 |
| Test Recall | 0.9590 |
## Training Details
| Parameter | Value |
|-----------|-------|
| Training epochs | 3 |
| Batch size | 16 |
| Learning rate | 5e-05 |
| Warmup steps | 500 |
| Weight decay | 0.01 |
| Max sequence length | 512 |
## Usage
### Quick Start
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
# Using pipeline (recommended for quick inference)
classifier = pipeline("sentiment-analysis",
model="nkadoor/sentiment-classifier-roberta",
tokenizer="nkadoor/sentiment-classifier-roberta")
result = classifier("This movie was amazing!")
print(result) # [{'label': 'POSITIVE', 'score': 0.99}]
```
### Manual Usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained("nkadoor/sentiment-classifier-roberta")
model = AutoModelForSequenceClassification.from_pretrained("nkadoor/sentiment-classifier-roberta")
def predict_sentiment(text):
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs)
predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
predicted_class = torch.argmax(predictions, dim=-1).item()
confidence = predictions[0][predicted_class].item()
sentiment = "positive" if predicted_class == 1 else "negative"
return sentiment, confidence
# Example usage
text = "This movie was absolutely fantastic!"
sentiment, confidence = predict_sentiment(text)
print(f"Sentiment: {sentiment} (Confidence: {confidence:.4f})")
```
## Dataset
The model was trained on the [IMDB Movie Reviews Dataset](https://huggingface.co/datasets/imdb), which contains movie reviews labeled as positive or negative sentiment. The dataset consists of:
- 25,000 training reviews
- 25,000 test reviews
- Balanced distribution of positive and negative sentiments
## Intended Use
This model is intended for sentiment analysis of English movie reviews or similar text. It can be used to:
- Analyze sentiment in movie reviews
- Classify text as positive or negative
- Build sentiment analysis applications
- Research in sentiment analysis
## Limitations
- Trained specifically on movie reviews, may not generalize well to other domains
- Limited to English language
- Binary classification only (positive/negative)
- May reflect biases present in the training data
## Citation
If you use this model, please cite:
```bibtex
@misc{sentiment-classifier-roberta,
title={Fine-tuned RoBERTa for Sentiment Analysis},
author={Narayana Kadoor},
year={2025},
url={https://huggingface.co/nkadoor/sentiment-classifier-roberta}
}
```
## Training Logs
Final training metrics:
- Final training loss: N/A
- Best validation F1: 0.9791
- Total training time: 3.0 epochs completed
---
*Model trained using Transformers library by Hugging Face*