Skip to content

Annotazione di testo

Guida completa all'annotazione di testo: classificazione, tagging multietichetta, valutazione su scala e testo libero, e come costruire in Potato ogni tipo di task testuale con configurazioni pronte da copiare.

Annotare testo significa etichettare lingua scritta: smistare documenti in categorie, taggare gli argomenti di un articolo, valutare la qualità di un brano o scriverne una correzione. È il task di annotazione più diffuso nell'elaborazione del linguaggio naturale, ed è ciò per cui Potato è nato. Questa guida copre i task che riguardano il documento intero; per marcare porzioni interne al testo vedi Annotazione di span.

I task testuali in breve

  • Classificazione di documenti: un'etichetta per l'intero testo (classificazione del testo).
  • Tagging multietichetta: più etichette insieme, per esempio argomenti o avvertenze sui contenuti.
  • Valutazione e punteggi: una posizione su una scala, per esempio la qualità o l'intensità del sentiment.
  • Testo libero: una risposta scritta, una parafrasi o una correzione.

Classificazione: un'etichetta per documento

Il cavallo di battaglia dell'annotazione testuale. Usa radio quando le categorie si escludono a vicenda:

yaml
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    description: "What is the overall sentiment of this review?"
    labels: [Positive, Negative, Neutral]
    sequential_key_binding: true

sequential_key_binding associa le etichette ai tasti 1, 2, 3, così gli annotatori tengono le mani sulla tastiera. Su un lavoro da migliaia di elementi il guadagno di velocità è notevole. Per un esempio funzionante guarda il design sentiment analysis.

Multietichetta: più tag insieme

Quando può valere più di un'etichetta, usa multiselect. Limita il numero di selezioni in modo che corrisponda alle tue linee guida:

yaml
annotation_schemes:
  - annotation_type: multiselect
    name: content_warnings
    description: "Select every content warning that applies."
    labels: [Violence, Profanity, Sexual content, Self-harm, None]

La moderazione dei contenuti è un classico task testuale multietichetta; il design toxicity detection combina una categoria con uno span evidenziato.

Valutare il testo su una scala

Per cogliere il grado invece della categoria, usa una scala Likert:

yaml
annotation_schemes:
  - annotation_type: likert
    name: helpfulness
    description: "How helpful is this answer?"
    size: 5
    min_label: "Not helpful"
    max_label: "Very helpful"

Vedi Scale di valutazione per le insidie di progettazione, come il bias di acquiescenza e la scelta del numero di punti.

Testo libero e correzioni

A volte l'etichetta più utile è una frase scritta dall'annotatore, una motivazione, una riscrittura o una trascrizione. Combinala con una categoria e mostrala solo quando serve:

yaml
annotation_schemes:
  - annotation_type: radio
    name: factuality
    description: "Is the claim supported by the source?"
    labels: [Supported, Contradicted, Not enough info]
  - annotation_type: text
    name: evidence
    description: "Quote the sentence that supports your choice."
    label_requirement:
      required: false

Ottenere etichette testuali coerenti

Il testo è ambiguo, quindi la coerenza arriva dal processo intorno, non dall'interfaccia:

  1. Scrivi linee guida strette, con un'opzione «non si può dire».
  2. Fai lavorare più annotatori in sovrapposizione sugli stessi elementi.
  3. Monitora l'accordo tra annotatori e risolvi i disaccordi.
  4. Accelera i lavori grandi con la pre-annotazione con LLM e verifica a mano i suggerimenti.

Approfondimenti