Skip to content

Schemi di Annotazione

Definisci cosa e come gli annotatori etichettano i tuoi dati.

Gli schemi di annotazione definiscono le attività di etichettatura per i tuoi annotatori. Potato supporta oltre 30 tipi di annotazione che possono essere combinati per creare attività di annotazione complesse.

Anatomia di uno schema di annotazione — Quattro campi definiscono ogni widget; impila gli schemi per fare più domande per elementoAnatomia di uno schema di annotazione

Struttura Base

Ogni schema è definito nell'array annotation_schemes:

yaml
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    description: "What is the sentiment?"
    labels:
      - Positive
      - Negative
      - Neutral

Campi Obbligatori

CampoDescrizione
annotation_typeTipo di annotazione (radio, multiselect, likert, span, text, number, slider, multirate)
nameIdentificatore interno (senza spazi, usato nell'output)
descriptionIstruzioni mostrate agli annotatori

Tipi di Annotazione Supportati

1. Radio (Scelta Singola)

Seleziona esattamente un'opzione da un elenco:

yaml
- 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: true

2. Scala Likert

Scale di valutazione con endpoint etichettati:

yaml
- 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 values

3. Multiselect (Scelta Multipla)

Seleziona più opzioni da un elenco:

yaml
- 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: true

4. Annotazione di Span

Evidenzia ed etichetta segmenti di testo:

yaml
- 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: true

5. Slider

Intervallo numerico continuo:

yaml
- 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 value

6. Input Testuale

Risposte a testo libero:

yaml
- 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. Input Numerico

Input numerico con vincoli:

yaml
- annotation_type: number
  name: count
  description: "How many entities are mentioned?"
  min: 0
  max: 100
  step: 1

8. Multirate (Valutazione a Matrice)

Valuta più elementi sulla stessa scala:

yaml
- annotation_type: multirate
  name: quality_aspects
  description: "Rate each aspect of the response"
 
  # Randomize item order
 
  # Layout options

Opzioni Comuni

Scorciatoie da Tastiera

Velocizza l'annotazione con associazioni da tastiera:

yaml
# Manual shortcuts
keyboard_shortcuts:
  Positive: "1"
  Negative: "2"
  Neutral: "3"
 
# Or automatic sequential binding
sequential_key_binding: true  # Assigns 1, 2, 3...

Tooltip

Fornisci suggerimenti al passaggio del mouse per le etichette:

yaml
tooltips:
  Positive: "Expresses happiness, approval, or satisfaction"
  Negative: "Expresses sadness, anger, or disappointment"
  Neutral: "No clear emotional content"

Colori delle Etichette

Colori personalizzati per la distinzione visiva:

yaml
label_colors:
  PERSON: "#3b82f6"
  LOCATION: "#10b981"
  ORGANIZATION: "#f59e0b"

Campi Obbligatori

Rendi uno schema obbligatorio prima dell'invio:

yaml
- annotation_type: radio
  name: sentiment
  label_requirement:
    required: true
  labels:
    - Positive
    - Negative

Schemi Multipli

Combina più tipi di annotazione per istanza:

yaml
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: false

Funzionalità Avanzate

Confronto a Coppie

Confronta due elementi:

yaml
- 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: true

Best-Worst Scaling

Classifica gli elementi selezionando il migliore e il peggiore:

yaml
- annotation_type: bws
  name: ranking
  description: "Select the best and worst items"
  # Items come from the data file

Selezione a Tendina

Selezione singola efficiente in termini di spazio:

yaml
- annotation_type: select
  name: category
  description: "Select a category"
  labels:
    - Category A
    - Category B
    - Category C
    - Category D
    - Category E
 
  # Default selection

Riferimento al Formato dei Dati

Input

Gli schemi di annotazione funzionano con il tuo formato di dati:

json
{
  "id": "doc_1",
  "text": "This is the text to annotate."
}

Output

Le annotazioni vengono salvate con i nomi degli schemi come chiavi:

json
{
  "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."
  }
}

Buone Pratiche

1. Etichette Chiare

Usa etichette inequivocabili e distinte:

yaml
# Good
labels:
  - Strongly Positive
  - Somewhat Positive
  - Neutral
  - Somewhat Negative
  - Strongly Negative
 
# Avoid
labels:
  - Good
  - OK
  - Fine
  - Acceptable

2. Tooltip Utili

Aggiungi tooltip per etichette sfumate:

yaml
tooltips:
  Sarcasm: "The text says the opposite of what it means"
  Irony: "A mismatch between expectation and reality"

3. Scorciatoie da Tastiera

Abilita le scorciatoie per attività ad alto volume:

yaml
sequential_key_binding: true

4. Ordine Logico

Ordina le etichette in modo coerente:

  • Le più comuni prima
  • In ordine alfabetico
  • Per intensità (da bassa ad alta)

5. Limita le Opzioni

Troppe scelte rallentano l'annotazione:

  • Radio: 2-7 opzioni
  • Multiselect: 5-15 opzioni
  • Likert: 5-7 punti

6. Testa Prima

Annota tu stesso alcuni esempi prima di distribuire il task per individuare:

  • Etichette ambigue
  • Categorie mancanti
  • Istruzioni poco chiare