GoEmotions · 28 classes · RoBERTa

Understand the emotion
behind any text

Multi-label emotion detection across 28 fine-grained emotions, powered by a RoBERTa model fine-tuned on Google's GoEmotions dataset.

0 / 2000
// try an example
TEXT A
TEXT B
About EmoSense
28Emotion Classes
54KTraining Samples
0.52+Macro F1
RoBERTaBackbone

EmoSense is a multi-label emotion classifier trained on Google's GoEmotions dataset — 58,000 Reddit comments annotated across 28 fine-grained emotion categories by human raters.

Unlike binary sentiment (positive/negative), GoEmotions captures the full nuance of human emotional expression: the difference between admiration and love, between disappointment and grief.

Model Architecture

Backbone: RoBERTa-base (domain-adapted on GoEmotions) → Classification head with LayerNorm, Dropout, 2-layer MLP with GELU activation.

Training: Focal BCE loss with label smoothing (0.05), cosine annealing scheduler, per-class threshold tuning on validation set, early stopping.

Improvement over Assignment 1: Upgraded from vanilla RoBERTa-base (Macro F1: 0.5245) to a domain-adapted backbone with improved loss function and training recipe.

Assignment 1 vs 2 Results
MODEL MACRO F1 MICRO F1
BiGRU (A1)0.43140.5008
BiLSTM (A1)0.42660.5041
BERT-base (A1)0.51440.5930
RoBERTa-base (A1)0.52450.5844
RoBERTa-GoEmotions (A2)0.58+0.64+