Annotation de dialogues
Annotez des conversations et du texte multi-éléments avec des options d'affichage spéciales.
Annotation de dialogues et de listes
Potato prend en charge l'annotation de données multi-éléments où chaque instance contient une liste d'éléments textuels. Ceci est couramment utilisé pour :
- Annotation de dialogues : Conversations à plusieurs tours
- Comparaison par paires : Comparaison de deux ou plusieurs variantes de texte
- Tâches multi-documents : Évaluation ou étiquetage de plusieurs textes liés
Format de données
Données d'entrée
Les données multi-éléments sont représentées comme une liste de chaînes dans le champ text :
{"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!"]}Chaque chaîne de la liste représente un élément (par exemple, un tour de dialogue, une variante de document).
Configuration
Configuration de base
# 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
- negativeOptions d'affichage
La configuration list_as_text contrôle l'affichage des éléments de liste :
list_as_text:
text_list_prefix_type: alphabet # Prefix type for items
horizontal: false # Layout direction
alternating_shading: false # Shade alternate turnsTypes de préfixes
| Option | Exemple | Idéal pour |
|---|---|---|
alphabet | A. B. C. | Comparaisons par paires, options |
number | 1. 2. 3. | Tours séquentiels, listes ordonnées |
bullet | . . . | Éléments non ordonnés |
none | (pas de préfixe) | Dialogues avec noms de locuteurs dans le texte |
Options de mise en page
| Option | Description |
|---|---|
horizontal: false | Mise en page verticale (défaut) - éléments empilés |
horizontal: true | Mise en page côte à côte - pour la comparaison par paires |
alternating_shading: true | Ombre les tours alternés pour les dialogues |
Exemples de configuration
Annotation de dialogues
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: trueComparaison de textes par paires
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
- EqualExemple fonctionnel
Un exemple fonctionnel complet est disponible dans project-hub/dialogue_analysis/ :
python potato/flask_server.py start project-hub/dialogue_analysis/configs/dialogue-analysis.yaml -p 8000Format de données exemple :
{"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!"]}Conseils
-
Noms de locuteurs : Incluez les noms de locuteurs dans le texte (par ex. "Tom: Bonjour") lorsque vous utilisez
text_list_prefix_type: nonepour les dialogues -
Annotation de segments : Lors de l'utilisation de l'annotation de segments avec des données de dialogue, les annotateurs peuvent surligner du texte dans n'importe quel tour affiché
-
Choix du préfixe :
- Utilisez
nonepour les dialogues où les noms de locuteurs sont intégrés dans le texte - Utilisez
numberquand l'ordre séquentiel est important - Utilisez
alphabetpour les tâches de comparaison par paires
- Utilisez
-
Lisibilité : Activez
alternating_shadingpour les longs dialogues afin d'aider les annotateurs à suivre quel tour ils lisent -
Tâches de comparaison : Utilisez
horizontal: trueavec les préfixesalphabetpour la comparaison côte à côte
Pour aller plus loin
- Comparaison par paires - Annotation de comparaison côte à côte
- Annotation de segments - Surlignage de texte dans les tours de dialogue
- Radio et sélection multiple - Classification des conversations
Pour les détails d'implémentation, voir la documentation source.