Schémas d'annotation
Définissez quoi et comment les annotateurs étiquetteront vos données.
Les schémas d'annotation définissent les tâches d'étiquetage pour vos annotateurs. Potato prend en charge plus de 30 types d'annotation qui peuvent être combinés pour créer des tâches d'annotation complexes.
Anatomie d'un schéma d'annotation
Structure de base
Chaque schéma est défini dans le tableau annotation_schemes :
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment?"
labels:
- Positive
- Negative
- NeutralChamps obligatoires
| Champ | Description |
|---|---|
annotation_type | Type d'annotation (radio, multiselect, likert, span, text, number, slider, multirate) |
name | Identifiant interne (sans espaces, utilisé dans la sortie) |
description | Instructions affichées aux annotateurs |
Types d'annotation supportés
1. Radio (choix unique)
Sélectionnez exactement une option dans une liste :
- annotation_type: radio
name: sentiment
description: "What is the sentiment of this text?"
labels:
- Positive
- Negative
- Neutral
# Optional features
sequential_key_binding:
Positive: "1"
Negative: "2"
Neutral: "3"
# Or use sequential binding (1, 2, 3... automatically)
sequential_key_binding: true
# Horizontal layout instead of vertical
horizontal: true2. Échelle de Likert
Échelles d'évaluation avec des extrémités étiquetées :
- annotation_type: likert
name: agreement
description: "How much do you agree with this statement?"
size: 5 # Number of scale points
min_label: "Strongly Disagree"
max_label: "Strongly Agree"
# Optional mid-point label
# Show numeric values3. Sélection multiple (choix multiples)
Sélectionnez plusieurs options dans une liste :
- annotation_type: multiselect
name: topics
description: "Select all relevant topics"
labels:
- Politics
- Technology
- Sports
- Entertainment
- Science
# Selection constraints
# Allow free text response
has_free_response: true4. Annotation de segments
Surlignez et étiquetez des segments de texte :
- annotation_type: span
name: entities
description: "Highlight named entities in the text"
labels:
- PERSON
- ORGANIZATION
- LOCATION
- DATE
# Visual customization
# Allow overlapping spans
allow_discontinuous: false
# Keyboard shortcuts for labels
sequential_key_binding: true5. Curseur
Plage numérique continue :
- annotation_type: slider
name: confidence
description: "How confident are you in your answer?"
min_value: 0
max_value: 100
step: 1
# Endpoint labels
# Show current value6. Saisie de texte
Réponses textuelles libres :
- annotation_type: text
name: explanation
description: "Explain your reasoning"
# Multi-line input
rows: 4
# Character limits
# Placeholder text
placeholder: "Enter your explanation here..."
# Disable paste (for transcription tasks)7. Saisie numérique
Entrée numérique avec contraintes :
- annotation_type: number
name: count
description: "How many entities are mentioned?"
min: 0
max: 100
step: 18. Évaluation multiple (évaluation matricielle)
Évaluez plusieurs éléments sur la même échelle :
- annotation_type: multirate
name: quality_aspects
description: "Rate each aspect of the response"
# Randomize item order
# Layout optionsOptions communes
Raccourcis clavier
Accélérez l'annotation avec des raccourcis clavier :
# Manual shortcuts
keyboard_shortcuts:
Positive: "1"
Negative: "2"
Neutral: "3"
# Or automatic sequential binding
sequential_key_binding: true # Assigns 1, 2, 3...Info-bulles
Fournissez des indices au survol pour les étiquettes :
tooltips:
Positive: "Expresses happiness, approval, or satisfaction"
Negative: "Expresses sadness, anger, or disappointment"
Neutral: "No clear emotional content"Couleurs des étiquettes
Couleurs personnalisées pour la distinction visuelle :
label_colors:
PERSON: "#3b82f6"
LOCATION: "#10b981"
ORGANIZATION: "#f59e0b"Champs obligatoires
Rendez un schéma obligatoire avant la soumission :
- annotation_type: radio
name: sentiment
label_requirement:
required: true
labels:
- Positive
- NegativeSchémas multiples
Combinez plusieurs types d'annotation par instance :
annotation_schemes:
# Primary classification
- annotation_type: radio
name: sentiment
description: "Overall sentiment"
labels:
- Positive
- Negative
- Neutral
label_requirement:
required: true
sequential_key_binding: true
# Confidence rating
- annotation_type: likert
name: confidence
description: "How confident are you?"
size: 5
min_label: "Guessing"
max_label: "Certain"
# Topic tags
- annotation_type: multiselect
name: topics
description: "Select all relevant topics"
labels:
- Politics
- Technology
- Sports
- Entertainment
has_free_response: true
# Notes
- annotation_type: text
name: notes
description: "Any additional observations?"
rows: 4
label_requirement:
required: falseFonctionnalités avancées
Comparaison par paires
Comparez deux éléments :
- annotation_type: pairwise
name: preference
description: "Which response is better?"
labels:
- label: "Response A"
value: "A"
- label: "Response B"
value: "B"
- label: "Equal"
value: "tie"
# Allow tie selection
allow_tie: trueClassement Best-Worst
Classez les éléments en sélectionnant le meilleur et le pire :
- annotation_type: bws
name: ranking
description: "Select the best and worst items"
# Items come from the data fileSélection par menu déroulant
Sélection unique économe en espace :
- annotation_type: select
name: category
description: "Select a category"
labels:
- Category A
- Category B
- Category C
- Category D
- Category E
# Default selectionRéférence du format de données
Entrée
Les schémas d'annotation fonctionnent avec votre format de données :
{
"id": "doc_1",
"text": "This is the text to annotate."
}Sortie
Les annotations sont sauvegardées avec les noms de schémas comme clés :
{
"id": "doc_1",
"annotations": {
"sentiment": "Positive",
"confidence": 4,
"topics": ["Technology", "Science"],
"entities": [
{"start": 0, "end": 4, "label": "ORGANIZATION", "text": "This"}
],
"notes": "Clear positive sentiment about technology."
}
}Bonnes pratiques
1. Étiquettes claires
Utilisez des étiquettes non ambiguës et distinctes :
# Good
labels:
- Strongly Positive
- Somewhat Positive
- Neutral
- Somewhat Negative
- Strongly Negative
# Avoid
labels:
- Good
- OK
- Fine
- Acceptable2. Info-bulles utiles
Ajoutez des info-bulles pour les étiquettes nuancées :
tooltips:
Sarcasm: "The text says the opposite of what it means"
Irony: "A mismatch between expectation and reality"3. Raccourcis clavier
Activez les raccourcis pour les tâches à grand volume :
sequential_key_binding: true4. Ordre logique
Ordonnez les étiquettes de manière cohérente :
- Les plus courantes en premier
- Alphabétiquement
- Par intensité (faible à élevée)
5. Limiter les options
Trop de choix ralentit l'annotation :
- Radio : 2 à 7 options
- Sélection multiple : 5 à 15 options
- Likert : 5 à 7 points
6. Tester d'abord
Annotez plusieurs exemples vous-même avant le déploiement pour détecter :
- Les étiquettes ambiguës
- Les catégories manquantes
- Les instructions peu claires