Skip to content

Annotazione di span

Guida completa all'annotazione di span: evidenziare porzioni di testo, span sovrapposti e annidati, colori delle etichette, tagging BIO/IOB e costruzione di task a span in Potato.

Annotare span significa marcare una porzione interna a un elemento invece di etichettare l'elemento intero. L'annotatore evidenzia un tratto di testo (o un segmento audio) e gli assegna un'etichetta. È la base del riconoscimento di entità nominate, della marcatura degli errori, del question answering estrattivo e del rilevamento di eventi sonori, sono tutti task a span con insiemi di etichette diversi.

Uno span è una sottosequenza etichettata: una posizione di inizio, una di fine e una categoria. Nel machine learning il problema viene di solito formulato come sequence labeling, dove ogni token riceve un tag.

Un task a span di base

Definisci le etichette e lascia che gli annotatori evidenzino. Colori e tooltip rendono l'interfaccia rapida e comprensibile da sé:

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight each named entity and choose its type."
    labels: [PERSON, ORGANIZATION, LOCATION, DATE, MISC]
    sequential_key_binding: true
    allow_discontinuous: false

Il design named entity recognition è esattamente questo task, già pronto da eseguire.

Span sovrapposti e annidati

Per impostazione predefinita un carattere appartiene al massimo a uno span. Alcuni task richiedono di più:

  • Span sovrapposti: due annotazioni coprono in parte lo stesso testo, per esempio uno span di sentiment sopra uno span di entità.
  • Span annidati: uno span sta dentro un altro, per esempio «[University of [Michigan]]», dove il luogo è annidato nell'organizzazione.

Imposta allow_overlapping: true quando le tue linee guida lo richiedono. Decidilo presto, perché cambia il modo in cui gli annotatori ragionano sui confini.

Tagging BIO/IOB, che aspetto ha l'export

Le annotazioni a span vengono di solito esportate per l'addestramento come tag sui token nello schema BIO (chiamato anche IOB): B- marca il primo token di un'entità, I- marca i token interni e O marca i token fuori da ogni entità.

text
Barack    B-PERSON
Obama     I-PERSON
visited   O
Paris     B-LOCATION

Potato può esportare gli span nei formati CoNLL e spaCy, che usano direttamente questo tagging. Vedi Esportare le annotazioni per il machine learning.

Azzeccare i confini

La parte più difficile del lavoro sugli span è mettersi d'accordo su dove uno span inizia e finisce. Qualche regola che aiuta:

  • Decidi se includere la punteggiatura circostante, i titoli («Dott.») e i possessivi finali, e mettilo per iscritto.
  • Misura l'accordo a livello di span, non solo a livello di documento, così i disaccordi sui confini vengono a galla. Vedi Accordo tra annotatori.
  • Usa i tooltip per tenere la regola sui confini sotto gli occhi dell'annotatore.

Task a span oltre il NER

Lo stesso meccanismo alimenta molti task:

Approfondimenti