GoEmotions - Fine-Grained Emotion Classification
Multi-label emotion classification with 27 emotion categories plus neutral, based on the Google Research GoEmotions dataset (Demszky et al., ACL 2020). Taxonomy covers 12 positive, 11 negative, and 4 ambiguous emotions designed for Reddit comment analysis.
text annotation
Configuration Fileconfig.yaml
# GoEmotions - Fine-Grained Emotion Classification
# Based on Demszky et al., ACL 2020
# Paper: https://aclanthology.org/2020.acl-main.372/
# Dataset: https://github.com/google-research/google-research/tree/master/goemotions
#
# Taxonomy: 27 emotions organized by sentiment:
# - Positive (12): admiration, amusement, approval, caring, desire, excitement,
# gratitude, joy, love, optimism, pride, relief
# - Negative (11): anger, annoyance, disappointment, disapproval, disgust,
# embarrassment, fear, grief, nervousness, remorse, sadness
# - Ambiguous (4): confusion, curiosity, realization, surprise
# - Plus: neutral
#
# Guidelines:
# - Select ALL emotions expressed in the text (multi-label)
# - Focus on emotion expressed by author, not evoked in reader
# - Related emotions differ by intensity (annoyance -> anger)
port: 8000
server_name: localhost
task_name: "GoEmotions: Fine-Grained Emotion Classification"
data_files:
- sample-data.json
id_key: id
text_key: text
output_file: annotations.json
annotation_schemes:
- annotation_type: multiselect
name: emotions
description: "Select ALL emotions expressed in this text (multiple selections allowed)"
labels:
# Positive emotions (12)
- Admiration
- Amusement
- Approval
- Caring
- Desire
- Excitement
- Gratitude
- Joy
- Love
- Optimism
- Pride
- Relief
# Negative emotions (11)
- Anger
- Annoyance
- Disappointment
- Disapproval
- Disgust
- Embarrassment
- Fear
- Grief
- Nervousness
- Remorse
- Sadness
# Ambiguous emotions (4)
- Confusion
- Curiosity
- Realization
- Surprise
keyboard_shortcuts:
Admiration: "1"
Amusement: "2"
Approval: "3"
Caring: "4"
Joy: "5"
Love: "6"
Anger: "7"
Sadness: "8"
Fear: "9"
Surprise: "0"
tooltips:
Admiration: "Finding something impressive or worthy of respect"
Amusement: "Finding something funny or being entertained"
Approval: "Having or expressing a favorable opinion"
Caring: "Displaying kindness and concern for others"
Desire: "A strong feeling of wanting something"
Excitement: "Feeling very enthusiastic and eager"
Gratitude: "Being thankful, ready to show appreciation"
Joy: "A feeling of great pleasure and happiness"
Love: "A strong positive feeling of affection"
Optimism: "Hopefulness and confidence about the future"
Pride: "Pleasure or satisfaction from achievements"
Relief: "Reassurance and relaxation after anxiety"
Anger: "A strong feeling of displeasure or hostility"
Annoyance: "Slight irritation or frustration"
Disappointment: "Sadness caused by unfulfilled expectations"
Disapproval: "Possession or expression of an unfavorable opinion"
Disgust: "A strong feeling of aversion or revulsion"
Embarrassment: "Self-conscious awkwardness or shame"
Fear: "Being afraid or worried about something"
Grief: "Deep sorrow, especially caused by loss"
Nervousness: "Easily agitated or worried"
Remorse: "Deep regret or guilt for wrongdoing"
Sadness: "Feeling or showing sorrow; unhappiness"
Confusion: "Lack of understanding; uncertainty"
Curiosity: "A strong desire to know or learn something"
Realization: "Becoming fully aware of something"
Surprise: "Feeling of astonishment or shock"
- annotation_type: radio
name: is_neutral
description: "Is this text emotionally neutral?"
labels:
- "Contains emotion(s)"
- "Neutral (no emotion)"
keyboard_shortcuts:
"Contains emotion(s)": "e"
"Neutral (no emotion)": "n"
allow_all_users: true
instances_per_annotator: 200
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "goemotions_001",
"text": "This is absolutely incredible! I can't believe how talented you are. Keep up the amazing work!"
},
{
"id": "goemotions_002",
"text": "Ugh, I've been waiting for 3 hours and still nothing. This is so frustrating."
}
]
// ... and 10 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/goemotions potato start config.yaml
Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Dynamic Hate Speech Detection
Hate speech classification with fine-grained type labels based on the Dynamically Generated Hate Speech Dataset (Vidgen et al., ACL 2021). Classify content as hateful or not, then identify hate type (animosity, derogation, dehumanization, threatening, support for hateful entities) and target group.
Social Bias Frames (SBIC)
Annotate social media posts for bias using structured frames. Based on Sap et al., ACL 2020. Identify offensiveness, intent, implied stereotypes, and targeted groups.
Clickbait Detection (Webis Clickbait Corpus)
Classify headlines and social media posts as clickbait or non-clickbait based on the Webis Clickbait Corpus. Identify manipulative content designed to attract clicks through sensationalism, curiosity gaps, or misleading framing.