Skip to content
Showcase/Text-Based Emotion Detection
intermediatetext

Text-Based Emotion Detection

Text-based emotion detection task requiring annotators to classify the primary emotion in text and identify expression characteristics such as explicitness, sarcasm, and mixed emotions. Based on SemEval-2025 Task 11.

Select all that apply:

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# Text-Based Emotion Detection
# Based on Muhammad et al., SemEval-2025 Task 11: Bridging the Gap in Text-Based Emotion Detection
# Paper: https://aclanthology.org/2025.semeval-1.327/
# Dataset: https://github.com/emotion-analysis-project/SemEval2025-Task11
#
# This task asks annotators to identify the primary emotion expressed
# in a text and to characterize how the emotion is conveyed (explicitly,
# implicitly, sarcastically, or as a mixture of emotions).

annotation_task_name: "Text-Based Emotion Detection"
task_dir: "."

data_files:
  - sample-data.json

item_properties:
  id_key: "id"
  text_key: "text"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

port: 8000
server_name: localhost

annotation_schemes:
  - annotation_type: radio
    name: primary_emotion
    description: "What is the primary emotion expressed in this text?"
    labels:
      - "Joy"
      - "Sadness"
      - "Anger"
      - "Fear"
      - "Surprise"
      - "Disgust"
      - "Neutral"
    keyboard_shortcuts:
      "Joy": "1"
      "Sadness": "2"
      "Anger": "3"
      "Fear": "4"
      "Surprise": "5"
      "Disgust": "6"
      "Neutral": "7"
    tooltips:
      "Joy": "Happiness, delight, excitement, or positive emotion"
      "Sadness": "Grief, sorrow, melancholy, or loss"
      "Anger": "Irritation, frustration, rage, or hostility"
      "Fear": "Anxiety, worry, dread, or apprehension"
      "Surprise": "Astonishment, shock, or unexpectedness"
      "Disgust": "Revulsion, contempt, or strong disapproval"
      "Neutral": "No clear emotion or purely informational"

  - annotation_type: multiselect
    name: expression_type
    description: "How is the emotion expressed? Select all that apply."
    labels:
      - "Explicit"
      - "Implicit"
      - "Sarcastic"
      - "Mixed Emotion"
    tooltips:
      "Explicit": "The emotion is directly stated using emotion words"
      "Implicit": "The emotion is conveyed indirectly through context or description"
      "Sarcastic": "The text uses sarcasm or irony to convey emotion"
      "Mixed Emotion": "Multiple emotions are present simultaneously"

annotation_instructions: |
  You will be shown a text passage. Your task is to:
  1. Read the text carefully.
  2. Identify the primary emotion expressed in the text.
  3. Select how the emotion is expressed (explicit, implicit, sarcastic, or mixed).

html_layout: |
  <div style="padding: 15px; max-width: 800px; margin: auto;">
    <div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
      <strong style="color: #0369a1;">Text:</strong>
      <p style="font-size: 16px; line-height: 1.7; margin: 8px 0 0 0;">{{text}}</p>
    </div>
    <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 12px;">
      <strong style="color: #166534;">Language:</strong> <span>{{language}}</span>
    </div>
  </div>

allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "emo_001",
    "text": "I just got accepted into my dream university! I can't believe it, I've been working towards this for years and it finally happened!",
    "language": "English"
  },
  {
    "id": "emo_002",
    "text": "My grandmother passed away last night. She was the kindest person I ever knew and the house feels so empty without her.",
    "language": "English"
  }
]

// ... and 8 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/semeval/2025/task11-emotion-detection
potato start config.yaml

Dataset & paper

Muhammad et al., SemEval-2025 Task 11: Bridging the Gap in Text-Based Emotion Detection, SemEval-2025

Citation (BibTeX)

bibtex
@inproceedings{muhammad-etal-2025-semeval,
    title = "{S}em{E}val-2025 Task 11: Bridging the Gap in Text-Based Emotion Detection",
    author = "Muhammad, Shamsuddeen Hassan and Ousidhoum, Nedjma and Abdulmumin, Idris and Yimam, Seid Muhie and Wahle, Jan Philip and Lima Ruas, Terry and Beloucif, Meriem and De Kock, Christine and Belay, Tadesse Destaw and Ahmad, Ibrahim Said and Surange, Nirmal and Teodorescu, Daniela and Adelani, David Ifeoluwa and Aji, Alham Fikri and Ali, Felermino Dario Mario and Araujo, Vladimir and Ayele, Abinew Ali and Ignat, Oana and Panchenko, Alexander and Zhou, Yi and Mohammad, Saif",
    booktitle = "Proceedings of the 19th International Workshop on Semantic Evaluation (SemEval-2025)",
    month = jul,
    year = "2025",
    address = "Vienna, Austria",
    publisher = "Association for Computational Linguistics",
    pages = "2558--2569"
}

Details

Annotation Types

radiomultiselect

Domain

SemEvalNLPEmotion DetectionMultilingual

Use Cases

Emotion ClassificationSentiment AnalysisAffective Computing

Tags

semevalsemeval-2025shared-taskemotiondetectionmultilingual

Found an issue or want to improve this design?

Open an Issue