intermediatesurvey
Emotion Detection (SemEval-2018 Task 1)
Multi-label emotion classification with intensity ratings based on SemEval-2018 Task 1. Annotate text for emotions (anger, anticipation, disgust, fear, joy, love, optimism, pessimism, sadness, surprise, trust) with intensity scales.
📊
survey annotation
Configuration Fileconfig.yaml
# Emotion Detection (SemEval-style)
# Based on SemEval shared tasks for emotion detection
#
# This configuration supports multi-label emotion classification
# with optional intensity ratings for detected emotions.
#
# Emotion Taxonomy (Ekman's basic emotions):
# - Joy: Happiness, pleasure, contentment, elation
# - Sadness: Grief, sorrow, melancholy, disappointment
# - Fear: Anxiety, worry, terror, apprehension
# - Anger: Frustration, irritation, rage, annoyance
# - Surprise: Astonishment, amazement (can be positive or negative)
# - Disgust: Revulsion, aversion, distaste
#
# Annotation Guidelines:
# 1. Read the entire text before making judgments
# 2. Select ALL emotions that are expressed or evoked
# 3. An emotion is "expressed" if the author conveys feeling it
# 4. An emotion is "evoked" if the text would cause readers to feel it
# 5. Multiple emotions can co-occur (e.g., sad and angry)
# 6. "Neutral" should only be selected if NO emotion is present
# 7. For intensity, consider strength of emotional language
port: 8000
server_name: localhost
task_name: "Emotion Detection"
data_files:
- sample-data.json
id_key: id
text_key: text
output_file: annotations.json
annotation_schemes:
# Step 1: Multi-label emotion classification
- annotation_type: multiselect
name: emotions
description: "Select ALL emotions expressed or evoked by this text (select multiple if applicable)"
labels:
- "Joy"
- "Sadness"
- "Fear"
- "Anger"
- "Surprise"
- "Disgust"
- "Neutral"
label_colors:
"Joy": "#22c55e"
"Sadness": "#3b82f6"
"Fear": "#8b5cf6"
"Anger": "#ef4444"
"Surprise": "#f59e0b"
"Disgust": "#84cc16"
"Neutral": "#9ca3af"
tooltips:
"Joy": "Happiness, pleasure, contentment, elation, amusement, or positive excitement"
"Sadness": "Grief, sorrow, melancholy, disappointment, or loneliness"
"Fear": "Anxiety, worry, terror, apprehension, or nervousness about potential threats"
"Anger": "Frustration, irritation, rage, annoyance, or hostility"
"Surprise": "Astonishment, amazement, or unexpectedness (can be positive or negative)"
"Disgust": "Revulsion, aversion, distaste, or strong disapproval"
"Neutral": "No discernible emotion - factual or emotionally flat content"
min_selections: 1
max_selections: 7
# Step 2: Intensity rating for primary emotion
- annotation_type: likert
name: intensity
description: "How intense is the strongest emotion in this text?"
min_value: 1
max_value: 5
labels:
1: "Very weak"
2: "Weak"
3: "Moderate"
4: "Strong"
5: "Very strong"
tooltips:
1: "Barely perceptible emotion, subtle hints"
2: "Mild emotional content, understated"
3: "Clear but not overwhelming emotion"
4: "Strong emotional language, clearly intense"
5: "Extremely intense, powerful emotional expression"
# Step 3: Confidence in annotation
- annotation_type: likert
name: confidence
description: "How confident are you in your emotion labels?"
min_value: 1
max_value: 5
labels:
1: "Very uncertain"
2: "Somewhat uncertain"
3: "Moderately confident"
4: "Confident"
5: "Very confident"
allow_all_users: true
instances_per_annotator: 100
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "emo_001",
"text": "I just got accepted into my dream university! I can't believe it - I've been waiting for this moment for years and now it's finally happening!"
},
{
"id": "emo_002",
"text": "My grandmother passed away last night. She was the kindest person I've ever known, and I don't know how to go on without her."
}
]
// ... and 8 more itemsGet 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-emotion-detection potato start config.yaml
Details
Annotation Types
multiselectlikert
Domain
NLPAffective Computing
Use Cases
Emotion DetectionSentiment AnalysisSocial Media Analysis
Tags
emotionaffectmulti-labelintensitysemeval2018
Found an issue or want to improve this design?
Open an IssueRelated Designs
Machine Translation Evaluation
Evaluate machine translation quality with adequacy and fluency ratings.
likertmultiselect
Toxicity Detection
Multi-label toxicity classification with severity ratings for content moderation.
multiselectlikert
Empathetic Dialogue Annotation
Annotate emotional situations and empathetic responses in conversations. Based on EmpatheticDialogues (Rashkin et al., ACL 2019). Classify the emotional context and evaluate response empathy.
radiolikert