Dialogue Relation Extraction (DialogRE)
Extract relations between entities in dialogue. Based on Yu et al., ACL 2020. Identify 36 relation types between speakers and entities mentioned in conversations.
text annotation
Configuration Fileconfig.yaml
# Dialogue Relation Extraction (DialogRE)
# Based on Yu et al., ACL 2020
# Paper: https://aclanthology.org/2020.acl-main.444/
# Dataset: https://github.com/nlpdata/dialogre
#
# DialogRE extracts relations between entities mentioned in dialogue.
# Unlike sentence-level RE, dialogue requires understanding:
# - Cross-turn references
# - Pronoun resolution
# - Implicit relationships
#
# 36 Relation Types include:
# Personal: per:spouse, per:children, per:parents, per:siblings
# Professional: per:employee_of, per:title, per:colleagues
# Social: per:friends, per:roommate, per:neighbor
# Other: per:age, per:origin, per:residence, per:schools_attended
#
# Key Challenges:
# - 96% of relations span multiple sentences
# - 66% involve arguments in different turns
# - High pronoun frequency in dialogue
#
# Annotation Guidelines:
# 1. Read the entire dialogue first
# 2. Identify all person and organization entities
# 3. For each entity pair, determine if a relation exists
# 4. Mark supporting text that evidences the relation
# 5. Relations can be inferred, not just explicitly stated
port: 8000
server_name: localhost
task_name: "Dialogue Relation Extraction"
data_files:
- sample-data.json
id_key: id
text_key: dialogue
output_file: annotations.json
annotation_schemes:
# Step 1: Mark entities
- annotation_type: span
name: entities
description: "Highlight all person and organization entities"
labels:
- "Person"
- "Organization"
label_colors:
"Person": "#3b82f6"
"Organization": "#22c55e"
tooltips:
"Person": "Names of people, including nicknames and references"
"Organization": "Companies, institutions, groups"
allow_overlapping: false
# Step 2: Relation type
- annotation_type: radio
name: relation_type
description: "What is the relationship between the two most recently marked entities?"
labels:
- "per:spouse"
- "per:children"
- "per:parents"
- "per:siblings"
- "per:friends"
- "per:colleagues"
- "per:employee_of"
- "per:boss"
- "per:roommate"
- "per:neighbor"
- "per:schools_attended"
- "Other relation"
- "No relation"
tooltips:
"per:spouse": "Married or romantic partners"
"per:children": "Parent-child relationship (first entity is parent)"
"per:parents": "Parent-child relationship (first entity is child)"
"per:siblings": "Brothers, sisters"
"per:friends": "Friends"
"per:colleagues": "Work together"
"per:employee_of": "Works for (person-organization)"
"per:boss": "Manager/supervisor relationship"
"per:roommate": "Live together"
"per:neighbor": "Live near each other"
"per:schools_attended": "Person attended school/university"
"Other relation": "Another type of relationship"
"No relation": "No clear relationship between entities"
# Step 3: Mark evidence
- annotation_type: span
name: evidence
description: "Highlight the text that supports this relation"
labels:
- "Evidence"
label_colors:
"Evidence": "#f59e0b"
tooltips:
"Evidence": "Text that indicates or proves the relationship"
allow_overlapping: true
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "dre_001",
"dialogue": "Speaker 1: Hey, have you met my sister Rachel?\nSpeaker 2: No, I don't think so. Is she the one who works at the museum?\nSpeaker 1: That's right! She just got promoted to curator last month.\nSpeaker 2: That's great! Tell her congratulations from me."
},
{
"id": "dre_002",
"dialogue": "Speaker 1: I ran into your old college roommate yesterday.\nSpeaker 2: Oh, you mean Tom? How's he doing?\nSpeaker 1: Pretty good. He's working at Google now.\nSpeaker 2: Wow, I haven't talked to him since we graduated from Stanford."
}
]
// ... and 4 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/dialogue-relation-extraction potato start config.yaml
Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Emotion Cause Extraction (RECCON)
Extract emotion causes from conversational text based on RECCON (Poria et al., EMNLP 2020). Identify which utterances and specific spans caused an emotion expressed in dialogue.
Event Argument Extraction (MAVEN-Arg)
Document-level event argument extraction based on MAVEN-Arg (Wang et al., ACL 2024). Annotates event triggers with their argument roles including Agent, Patient, Location, Time, Instrument, and more. Supports both entity and non-entity arguments across document context.
Coreference Resolution (OntoNotes)
Link pronouns and noun phrases to the entities they refer to in text. Based on the OntoNotes coreference annotation guidelines and CoNLL shared tasks. Identify mention spans and cluster coreferent mentions together.