---
title: 'GoEmotions: Fine-Grained Emotion Dataset'
url: https://www.emergentmind.com/topics/goemotions
type: topic
---

# GoEmotions: Fine-Grained Emotion Dataset

Searching arXiv for the original GoEmotions paper and recent follow-up work to support the encyclopedia entry.
GoEmotions is a large-scale dataset for fine-grained emotion classification in English Reddit text, introduced to move affective NLP beyond coarse sentiment labels and toward a richer, multi-label taxonomy of 27 emotion categories plus Neutral [2005.00547]. It consists of 58k manually annotated Reddit comments and was designed both as a benchmark for multi-label emotion detection and as a transferable resource for downstream tasks and alternative taxonomies [2005.00547]. Subsequent work has treated GoEmotions not only as a supervised benchmark, but also as a source taxonomy, a pretraining corpus, a transfer-learning substrate, and a basis for derived resources such as intensity-annotated emotion corpora, cross-domain emotion recognizers, and application-specific datasets [2411.06160].

## 1. Corpus scope and taxonomic design

GoEmotions is built from English Reddit comments and provides annotations for 27 discrete emotions plus a Neutral label in a multi-label setting [2005.00547]. The label inventory includes social and relational emotions such as admiration, approval, caring, gratitude, and love, as well as cognitively tinged categories such as confusion, curiosity, and realization, alongside more conventional negative emotions such as anger, disgust, fear, grief, remorse, and sadness [2005.00547]. This taxonomy was motivated by high-dimensional emotion research and was intended to capture distinctions that are usually collapsed in basic-emotion or polarity-based schemes [2005.00547].

A concise summary of the dataset properties most commonly reported in later work is given below.

| Aspect | Description | Source |
|---|---|---|
| Domain | English Reddit comments | [2005.00547] |
| Scale | 58k manually annotated comments | [2005.00547] |
| Labels | 27 emotion categories + Neutral | [2005.00547] |
| Task type | Multi-label emotion classification | [2005.00547] |
| Official BERT baseline | Average F1-score of .46 across the taxonomy | [2005.00547] |

Although GoEmotions is multi-label, it is structurally sparse. One later analysis reports that in the training set of 43,410 samples, 36,308, or 84%, are single-label; in the test set of 5,427 samples, 4,590 are single-label, 774 have two labels, 61 have three labels, and 2 have four labels [2411.06160]. This sparsity is one of the central empirical facts about the dataset: GoEmotions permits mixed affect, but most instances still present as a single dominant label.

## 2. Annotation procedure and reliability

The original corpus was crowd-annotated, with each comment receiving annotations from three crowdworkers, and the authors framed annotation quality as a central contribution of the dataset [2005.00547]. GoEmotions permits annotators to assign one or more emotions, or Neutral when no substantial emotion is expressed, which makes the task substantially different from single-label sentiment classification [2005.00547]. The dataset was explicitly positioned as a reader-perception resource: labels reflect what readers perceive in the text, not necessarily the writer’s internal state [2109.01900].

Annotation quality was analyzed using Principal Preserved Component Analysis, which the original paper used to argue that the label space contains reproducible latent structure rather than arbitrary annotator noise [2005.00547]. Later work emphasizing the distinction between reader and writer emotion sharpened the interpretation of this design choice. In a benchmark contrasting GoEmotions with Vent, GoEmotions is treated as a reader-annotated dataset, and the broader conclusion is that predicting writer-intended emotions is systematically harder than predicting reader-perceived emotions [2109.01900]. A common misconception is therefore that GoEmotions directly encodes authorial affect. It does not; it encodes perceived emotion under a controlled annotation protocol [2109.01900].

This reader-centered design has methodological consequences. It makes GoEmotions especially suitable for tasks such as moderation, audience-facing affect analysis, or systems that must respond to perceived user emotion, while making it less direct as a proxy for latent psychological state [2109.01900]. It also explains why some later application papers use GoEmotions as an emotion sensor for externally observable affect rather than as a clinical truth label.

## 3. Formal task structure and baseline modeling

GoEmotions is canonically formulated as a multi-label classification problem over a 28-dimensional binary target vector [2005.00547]. Standard implementations use one sigmoid-activated output per label and optimize binary cross-entropy:
$$
\hat{y}_k = \sigma(z_k)
$$
$$
\mathcal{L} = - \sum_{k=1}^{K} \left[ y_k \log(\hat{y}_k) + (1-y_k)\log(1-\hat{y}_k) \right]
$$
with $K = 28$ when Neutral is included [2005.00547].

The original paper reported a BERT-based model with an average F1-score of .46 across the proposed taxonomy, explicitly leaving substantial headroom for improvement [2005.00547]. Later benchmarks have shown that the dataset is unusual in that simple lexical models remain strong on frequent emotions, while contextual models are more beneficial on rare or ambiguous labels. A 2026 comparison across classical ML, BiLSTM, and BERT on the official split found that TF-IDF logistic regression attained the highest Micro-F1 of 0.51, whereas BERT achieved the best overall balance with Macro-F1 0.49, Hamming Loss 0.036, and Subset Accuracy 0.36 [2601.18162]. This suggests that many frequent emotions are recoverable from surface lexical cues, but rare labels and ambiguous examples require contextual modeling [2601.18162].

Another line of work improved on the original GoEmotions BERT baseline by changing how token representations are pooled. A BERT + Bi-LSTM pooling model reached Macro-F1 0.47 and Micro-F1 0.57 on GoEmotions, compared with the original GoEmotions BERT baseline at Macro-F1 0.46 and Micro-F1 0.51 [2109.01900]. This is a notable result because the improvement came from a relatively simple architectural change rather than a new pretraining regime.

The benchmark has also been used to study more interpretable feature integration. A RoBERTa-based system augmented with General Inquirer features via token-level early fusion achieved 55.85 ± 0.50 macro-F1 in that paper’s reporting scale, compared with a 52.75 SOTA baseline and a 49.67 reproduced BERT baseline [2603.20222]. That work is important less for the absolute number than for the demonstration that explicit lexical-semantic cues can complement transformer representations on fine-grained emotions [2603.20222].

## 4. Empirical difficulties: imbalance, sparsity, ambiguity, and zero-shot failure modes

Class imbalance is one of the defining properties of GoEmotions. The original paper already emphasized skewed label frequencies and weaker performance on rare categories such as grief, pride, embarrassment, nervousness, relief, and remorse [2005.00547]. Later analyses made the long-tail problem more explicit. One augmentation study notes that in the training split, grief has only 39 examples, while many majority labels have far larger support, and shows that minority-focused augmentation is materially more effective than indiscriminate augmentation [2403.06108].

The strongest result in that study is that targeted augmentation of four minority labels—grief, pride, nervousness, and relief—improves macro-F1 from 0.490 to 0.517 with ProtAugment, whereas fully augmenting the entire training set degrades macro-F1 from 0.49 to 0.44 because it preserves or worsens the original imbalance [2403.06108]. A separate balancing study built a new balanced training set by combining original GoEmotions data, RoBERTa-labeled Sentiment140 tweets, and GPT-4 mini-generated texts; in that setup, training with balancing plus attention increased Macro-F1 from 0.164 to 0.250 and Micro-F1 from 0.431 to 0.485 relative to the unbalanced counterpart [2511.14073]. These results jointly indicate that the main obstacle is not simply data quantity, but the distribution of emotion labels.

A second difficulty is conceptual overlap among fine-grained emotions. Labels such as annoyance versus anger, disappointment versus sadness, or joy versus amusement are often lexically adjacent and weakly separated in short Reddit comments [2601.18162]. Later work using linguistic signatures found that explicit cues such as Hostile\_GI are highly diagnostic for anger, Virtue\_GI for admiration, and Need\_GI for desire, but other categories remain more context-sensitive and less lexically anchored [2603.20222]. This suggests that some parts of the taxonomy are lexically stereotyped whereas others are discourse-dependent.

A third difficulty is methodological: GoEmotions remains challenging for zero-shot LLM classification. In one study, GPT-4 used zero-shot on 1,000 GoEmotions examples achieved Accuracy 34.91%, Macro-Precision 10.17%, Macro-Recall 16.90%, and Macro-F1 12.54%, far below fine-tuned encoders [2403.06108]. Another paper reports LLaMA 3.2 zero-shot Macro-F1 0.23 and one-shot Macro-F1 9.52 on GoEmotions, again far below supervised RoBERTa variants [2603.20222]. These findings counter the assumption that contemporary generative models trivially subsume fine-grained supervised emotion classification.

## 5. Reinterpretations of the label space: micro-emotions, intensity, and transfer

Later work has increasingly treated GoEmotions not only as a static label set but as a substrate for richer affective structure. A prominent example is the Emotion Quantization Network, which recasts GoEmotions as a multi-output regression problem over all labels and assigns continuous energy scores in \([0,10]\) to each emotion for each instance [2411.06160]. In that framework, manually annotated labels are initialized at 10 and unannotated labels at 0, then a regression model predicts dense energy vectors, enabling the discovery of additional low-energy “micro-emotions” beyond the original sparse labels [2411.06160]. On the GoEmotions test set, this framework improved macro-average F1 from 0.46 for the Google baseline to 0.52, with precision increasing from 0.40 to 0.56 and F1 improving in 21 out of 28 categories [2411.06160].

This line of work is significant because it challenges the implicit assumption that GoEmotions is exhaustively categorical. The original dataset contains only binary present/absent labels, but later reinterpretations suggest that many comments plausibly encode more graded emotional structure than the sparse annotations capture [2411.06160]. The same paper reports that for single-label test samples, the hit rate rises from 0.5264 under TOP1 to 0.6922 under TOP2 and 0.7795 under TOP3, which the authors interpret as evidence that many comments plausibly contain additional secondary emotions beyond the

Source: https://www.emergentmind.com/topics/goemotions