Skip to content
intermediatesurvey

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.

About this dataset

EmpatheticDialogues is a conversation dataset built to train and evaluate models that respond with empathy. Rashkin and colleagues introduced it at ACL 2019.

Each conversation is grounded in a specific feeling. A crowdworker 'speaker' was given one of 32 emotion labels, wrote a short personal situation about feeling that way, then chatted about it with a 'listener' who responded.

The dataset has about 25,000 such conversations, spread evenly across the 32 emotions from proud and grateful to anxious and devastated. The grounding in a named emotion and a real situation is what separates it from generic chit-chat data.

The Potato config below reproduces the annotation with a radio for the grounding emotion, a Likert scale for how empathetic a response is, and a radio for response strategy. Use it to label emotional support in your own dialogues or to extend the emotion set.

Released
ACL 2019
Conversations
~25,000
Emotion labels
32 (evenly distributed)
Grounding
one emotion + a self-written situation
Roles
speaker + empathetic listener
Domain
open-domain, multi-turn
Q1: Rate your experience12345Q2: Primary use case?ResearchIndustryEducationQ3: Additional feedback

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
# Empathetic Dialogue Annotation
# Based on Rashkin et al., ACL 2019
# Paper: https://aclanthology.org/P19-1534/
# Dataset: https://github.com/facebookresearch/EmpatheticDialogues
#
# This task annotates emotional situations and evaluates empathetic responses.
# The goal is to train conversational agents that respond appropriately to
# users' emotional states.
#
# Emotion Categories (32 situations grouped):
# Positive: Joyful, Excited, Proud, Hopeful, Grateful, Content, Confident, Trusting
# Negative: Sad, Anxious, Angry, Afraid, Disgusted, Guilty, Lonely, Embarrassed
# Surprise: Surprised, Impressed, Curious
# Other: Nostalgic, Sentimental, Anticipating, Jealous, Devastated, Disappointed
#
# Empathy Components:
# - Emotional Reactions: Expressing appropriate emotions in response
# - Interpretations: Showing understanding of the situation
# - Explorations: Asking questions to understand better
#
# Annotation Guidelines:
# 1. Identify the emotional situation the speaker describes
# 2. Evaluate if the response acknowledges the emotion
# 3. Rate the response's empathy level
# 4. Consider: Does the response make the speaker feel heard?

annotation_task_name: "Empathetic Dialogue Annotation"
task_dir: "."

data_files:
  - sample-data.json
item_properties:
  id_key: "id"
  text_key: "dialogue"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

annotation_schemes:
  # Step 1: Emotional situation classification
  - annotation_type: radio
    name: emotion
    description: "What emotion is the speaker experiencing in this situation?"
    labels:
      # Positive emotions
      - "Joyful"
      - "Excited"
      - "Proud"
      - "Grateful"
      - "Hopeful"
      - "Content"
      # Negative emotions
      - "Sad"
      - "Anxious"
      - "Angry"
      - "Afraid"
      - "Lonely"
      - "Embarrassed"
      - "Disappointed"
      - "Devastated"
      # Other
      - "Surprised"
      - "Nostalgic"
      - "Jealous"
    tooltips:
      "Joyful": "Feeling happy, delighted, or cheerful"
      "Excited": "Feeling enthusiastic, eager, or thrilled"
      "Proud": "Feeling accomplished or pleased with achievements"
      "Grateful": "Feeling thankful or appreciative"
      "Hopeful": "Feeling optimistic about the future"
      "Content": "Feeling satisfied and at peace"
      "Sad": "Feeling unhappy, sorrowful, or down"
      "Anxious": "Feeling worried, nervous, or uneasy"
      "Angry": "Feeling frustrated, irritated, or mad"
      "Afraid": "Feeling scared, fearful, or terrified"
      "Lonely": "Feeling isolated, alone, or disconnected"
      "Embarrassed": "Feeling self-conscious, ashamed, or awkward"
      "Disappointed": "Feeling let down when expectations weren't met"
      "Devastated": "Feeling extremely upset or heartbroken"
      "Surprised": "Feeling astonished or caught off guard"
      "Nostalgic": "Feeling wistful about the past"
      "Jealous": "Feeling envious of others"

  # Step 2: Empathy rating
  - annotation_type: likert
    name: empathy_level
    description: "How empathetic is the RESPONSE to the speaker's emotional situation?"
    min_value: 1
    max_value: 5
    labels:
      1: "Not empathetic"
      2: "Slightly empathetic"
      3: "Moderately empathetic"
      4: "Very empathetic"
      5: "Extremely empathetic"
    tooltips:
      1: "Response ignores or dismisses the emotion"
      2: "Response shows minimal acknowledgment"
      3: "Response acknowledges the emotion appropriately"
      4: "Response shows genuine understanding and care"
      5: "Response is deeply understanding and supportive"

  # Step 3: Empathy type
  - annotation_type: radio
    name: empathy_type
    description: "What type of empathetic response is this?"
    labels:
      - "Emotional Reaction"
      - "Interpretation"
      - "Exploration"
      - "Mixed"
      - "Not Empathetic"
    tooltips:
      "Emotional Reaction": "Expresses emotions in response (e.g., 'That's wonderful!' or 'I'm so sorry')"
      "Interpretation": "Shows understanding of the situation (e.g., 'That must have been hard')"
      "Exploration": "Asks questions to understand better (e.g., 'What happened next?')"
      "Mixed": "Combines multiple empathy strategies"
      "Not Empathetic": "Response doesn't demonstrate empathy"

allow_all_users: true
instances_per_annotator: 100
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "emp_001",
    "dialogue": "Speaker: I just found out I got the scholarship I applied for! I've been working so hard for this.\nResponse: That's amazing news! You must be so proud of yourself. All that hard work really paid off!"
  },
  {
    "id": "emp_002",
    "dialogue": "Speaker: My dog passed away yesterday. We had her for 14 years.\nResponse: I'm so sorry for your loss. Losing a pet is incredibly hard - they really become part of the family."
  }
]

// ... and 8 more items

Try it live — no install

Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.

▶ Run live in your browser

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/text/emotion-sentiment/empathetic-dialogues
potato start config.yaml

Dataset & paper

Rashkin et al., ACL 2019

Citation (BibTeX)

bibtex
@inproceedings{rashkin-etal-2019-towards,
    title = "Towards Empathetic Open-domain Conversation Models: A New Benchmark and Dataset",
    author = "Rashkin, Hannah  and Smith, Eric Michael  and Li, Margaret  and Boureau, Y-Lan",
    booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
    month = jul,
    year = "2019",
    address = "Florence, Italy",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/P19-1534",
    pages = "5370--5381"
}

Details

Annotation Types

radiolikert

Domain

NLPDialogueAffective Computing

Use Cases

Conversational AIEmpathy DetectionChatbot Development

Tags

empathydialogueemotionconversationacl2019chatbot

Found an issue or want to improve this design?

Open an Issue