Dialogannotation
Gespräche und mehrteilige Texte mit speziellen Anzeigeoptionen annotieren.
Dialog- und Listenannotation
Potato unterstützt die Annotation von mehrteiligen Daten, bei denen jede Instanz eine Liste von Textelementen enthält. Dies wird häufig verwendet für:
- Dialogannotation: Gespräche mit mehreren Gesprächszügen
- Paarweiser Vergleich: Vergleich von zwei oder mehr Textvarianten
- Mehrdokument-Aufgaben: Bewertung oder Beschriftung mehrerer verwandter Texte
Datenformat
Eingabedaten
Mehrteilige Daten werden als Liste von Zeichenketten im Feld text dargestellt:
{"id": "conv_001", "text": ["Tom: Isn't this awesome?!", "Sam: Yes! I like you!", "Tom: Great!", "Sam: Awesome! Let's party!"]}
{"id": "conv_002", "text": ["Tom: I am so sorry for that", "Sam: No worries", "Tom: Thanks for your understanding!"]}Jede Zeichenkette in der Liste repräsentiert ein Element (z. B. einen Gesprächszug, eine Dokumentvariante).
Konfiguration
Grundlegende Einrichtung
# Data configuration
data_files:
- data/dialogues.json
item_properties:
id_key: id
text_key: text
# Configure list display
list_as_text:
text_list_prefix_type: none # No prefix since speaker names are in text
alternating_shading: true # Shade every other turn for readability
# Annotation schemes
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this conversation?"
labels:
- positive
- neutral
- negativeAnzeigeoptionen
Die list_as_text-Konfiguration steuert, wie Listenelemente angezeigt werden:
list_as_text:
text_list_prefix_type: alphabet # Prefix type for items
horizontal: false # Layout direction
alternating_shading: false # Shade alternate turnsPräfixtypen
| Option | Beispiel | Am besten geeignet für |
|---|---|---|
alphabet | A. B. C. | Paarweise Vergleiche, Optionen |
number | 1. 2. 3. | Sequenzielle Züge, geordnete Listen |
bullet | • • • | Ungeordnete Elemente |
none | (kein Präfix) | Dialog mit Sprechernamen im Text |
Layout-Optionen
| Option | Beschreibung |
|---|---|
horizontal: false | Vertikales Layout (Standard) - Elemente übereinander |
horizontal: true | Nebeneinander-Layout - für paarweisen Vergleich |
alternating_shading: true | Jeden zweiten Zug für Dialog schattieren |
Beispielkonfigurationen
Dialogannotation
annotation_task_name: Dialogue Analysis
data_files:
- data/dialogues.json
item_properties:
id_key: id
text_key: text
list_as_text:
text_list_prefix_type: none
alternating_shading: true
annotation_schemes:
- annotation_type: span
name: certainty
description: Highlight phrases expressing certainty or uncertainty
labels:
- certain
- uncertain
sequential_key_binding: true
- annotation_type: radio
name: sentiment
description: What sentiment does the conversation hold?
labels:
- positive
- neutral
- negative
sequential_key_binding: truePaarweiser Textvergleich
annotation_task_name: Text Comparison
data_files:
- data/pairs.json
item_properties:
id_key: id
text_key: text
list_as_text:
text_list_prefix_type: alphabet
horizontal: true
annotation_schemes:
- annotation_type: radio
name: preference
description: Which text is better?
labels:
- A is better
- B is better
- EqualFunktionierendes Beispiel
Ein vollständiges funktionierendes Beispiel ist unter project-hub/dialogue_analysis/ verfügbar:
python potato/flask_server.py start project-hub/dialogue_analysis/configs/dialogue-analysis.yaml -p 8000Beispiel-Datenformat:
{"id":"1","text":["Tom: Isn't this awesome?!", "Sam: Yes! I like you!", "Tom: great!", "Sam: Awesome! Let's party!"]}
{"id":"2","text":["Tom: I am so sorry for that", "Sam: No worries", "Tom: thanks for your understanding!"]}Tipps
-
Sprechernamen: Sprechernamen im Text einschließen (z. B. „Tom: Hallo"), wenn
text_list_prefix_type: nonefür Dialog verwendet wird -
Spannen-Annotation: Bei Verwendung von Spannen-Annotation mit Dialogdaten können Annotatoren Text in jedem der angezeigten Züge hervorheben
-
Präfixauswahl:
nonefür Dialog verwenden, wenn Sprechernamen im Text eingebettet sindnumberverwenden, wenn die Reihenfolge wichtig istalphabetfür paarweise/Vergleichsaufgaben verwenden
-
Lesbarkeit:
alternating_shadingfür lange Dialoge aktivieren, um Annotatoren zu helfen, den aktuellen Zug zu verfolgen -
Vergleichsaufgaben:
horizontal: truemitalphabet-Präfixen für nebeneinander liegende Vergleiche verwenden
Weiterführende Lektüre
- Paarweiser Vergleich - Nebeneinander-Vergleichsannotation
- Spannen-Annotation - Text in Dialogzügen hervorheben
- Radio & Mehrfachauswahl - Klassifizierung von Gesprächen
Implementierungsdetails sind in der Quelldokumentation zu finden.