Sidharthan's picture
Update README.md
46de3a4 verified
metadata
library_name: transformers
tags:
  - conversation
  - empathetic
  - roberta-base
license: apache-2.0
datasets:
  - facebook/empathetic_dialogues
language:
  - en
metrics:
  - accuracy
  - f1
  - precision
  - recall
base_model:
  - FacebookAI/roberta-base
pipeline_tag: text-classification

Model Card: RoBERTa Fine-Tuned on Empathetic Dialogues

Model Description

This is a RoBERTa-based model fine-tuned on the Empathetic Dialogues dataset for conversational emotion classification. The model leverages the powerful RoBERTa architecture to understand and classify emotional contexts in conversational text.

Emotion Classes

The model is trained to classify conversations into the following emotional categories:

  • Surprised
  • Angry
  • Sad
  • Joyful
  • Anxious
  • Hopeful
  • Confident
  • Disappointed

Model Details

  • Base Model: roberta-base
  • Task: Emotion Classification in Conversations
  • Dataset: Empathetic Dialogues
  • Training Approach: Full Fine-Tuning
  • Number of Emotion Classes: 8

Model Performance

Metric Score
Test Loss 0.8107
Test Accuracy 73.01%
Test F1 Score 72.96%
Runtime 10.99 seconds
Samples per Second 61.68
Steps per Second 1.001

Usage

Hugging Face Transformers Pipeline

from transformers import pipeline

# Initialize the emotion classification pipeline
classifier = pipeline(
    "text-classification", 
    model="Sidharthan/roberta-base-conv-emotion"
)

# Classify emotion in a conversation
text = "I'm feeling really frustrated with work lately."
result = classifier(text)
print(result)

Direct Model Loading

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

# Load the model and tokenizer
model_name = "Sidharthan/roberta-base-conv-emotion"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Prepare input
text = "I'm feeling really frustrated with work lately."
inputs = tokenizer(text, return_tensors="pt")

# Predict
with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.softmax(outputs.logits, dim=1)
    predicted_class = torch.argmax(predictions, dim=1)

Limitations

  • Performance may vary with out-of-domain conversational contexts
  • Emotion classification limited to the 8 specified emotional categories
  • Relies on the specific emotional nuances in the Empathetic Dialogues dataset
  • Requires careful interpretation in real-world applications

Ethical Considerations

  • Emotion classification can be subjective
  • Potential for bias based on training data
  • Should not be used for making critical decisions about individuals

License

Apache 2.0

Citations

@misc{roberta-base-conv-emotion,
  title={RoBERTa Fine-Tuned on Empathetic Dialogues},
  author={Sidharthan},
  year={2024},
  publisher={Hugging Face}
}

Contact

For more information, please contact the model's author.