bert-Gomotions / README.md
codewithdark's picture
Update README.md
ca155e5 verified
---
tags:
- text-classification
- multi-label
- go-emotions
- transformers
- huggingface
license: apache-2.0
library_name: transformers
language:
- en
metrics:
- accuracy
- f1
base_model:
- google-bert/bert-base-uncased
pipeline_tag: text-classification
---
# πŸ”₯ Fine-Tuned BERT on GoEmotions Dataset
## πŸ“– Model Overview
This model is a **fine-tuned version of BERT** (`bert-base-uncased`) on the **GoEmotions** dataset for **multi-label emotion classification**. It can predict multiple emotions per input text.
## πŸ“Š Performance
| Metric | Score |
|----------------|-------|
| **Accuracy** | 46.57% |
| **F1 Score** | 56.41% |
| **Hamming Loss** | 3.39% |
## πŸ“‚ Model Usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# Load model and tokenizer
model_name = "codewithdark/bert-Gomotions"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
# Emotion labels (adjust based on your dataset)
emotion_labels = [
"Admiration", "Amusement", "Anger", "Annoyance", "Approval", "Caring", "Confusion",
"Curiosity", "Desire", "Disappointment", "Disapproval", "Disgust", "Embarrassment",
"Excitement", "Fear", "Gratitude", "Grief", "Joy", "Love", "Nervousness", "Optimism",
"Pride", "Realization", "Relief", "Remorse", "Sadness", "Surprise", "Neutral"
]
# Example text
text = "I'm so happy today!"
inputs = tokenizer(text, return_tensors="pt")
# Predict
with torch.no_grad():
outputs = model(**inputs)
probs = torch.sigmoid(outputs.logits).squeeze(0) # Convert logits to probabilities
# Get top 5 predictions
top5_indices = torch.argsort(probs, descending=True)[:5] # Get indices of top 5 labels
top5_labels = [emotion_labels[i] for i in top5_indices]
top5_probs = [probs[i].item() for i in top5_indices]
# Print results
print("Top 5 Predicted Emotions:")
for label, prob in zip(top5_labels, top5_probs):
print(f"{label}: {prob:.4f}")
'''
output:
Top 5 Predicted Emotions:
Joy: 0.9478
Love: 0.7854
Optimism: 0.6342
Admiration: 0.5678
Excitement: 0.5231
'''
```
## πŸ‹οΈβ€β™‚οΈ Training Details
- **Model:** `bert-base-uncased`
- **Dataset:** [GoEmotions](https://huggingface.co/datasets/go_emotions)
- **Optimizer:** AdamW
- **Loss Function:** BCEWithLogitsLoss (Binary Cross-Entropy for multi-label classification)
- **Batch Size:** 16
- **Epochs:** 3
- **Evaluation Metrics:** Accuracy, F1 Score, Hamming Loss
## πŸ“Œ How to Use in Hugging Face
```python
from transformers import pipeline
classifier = pipeline("text-classification", model="codewithdark/bert-Gomotions", top_k=None)
classifier("I'm so excited about the trip!")
```
## πŸ› οΈ Citation
If you use this model, please cite:
```bibtex
@misc{your_model,
author = {codewithdark},
title = {Fine-tuned BERT on GoEmotions},
year = {2025},
url = {https://huggingface.co/codewithdark/bert-Gomotions}
}
```