Skip to content

Span-Annotation

Ein vollständiger Leitfaden zur Span-Annotation: Textstellen markieren, überlappende und verschachtelte Spans, Labelfarben, BIO/IOB-Tagging und der Aufbau von Span-Aufgaben in Potato.

Span-Annotation heißt, einen Bereich innerhalb eines Elements zu markieren, statt das ganze Element zu labeln. Die annotierende Person hebt ein Stück Text (oder einen Ausschnitt einer Audiodatei) hervor und vergibt dafür ein Label. Darauf bauen Named Entity Recognition, Fehlermarkierung, extraktives Question Answering und die Erkennung akustischer Ereignisse auf, alles Span-Aufgaben mit unterschiedlichen Labelmengen.

Ein Span ist eine gelabelte Teilsequenz: eine Startposition, eine Endposition und eine Kategorie. Im Machine Learning wird das üblicherweise als Sequence Labeling formuliert, bei dem jedes Token ein Tag bekommt.

Eine einfache Span-Aufgabe

Definiere die Labels und lass die Annotierenden markieren. Farben und Tooltips machen die Oberfläche schnell und selbsterklärend:

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

Das Design Named Entity Recognition ist genau diese Aufgabe, fertig zum Loslegen.

Überlappende und verschachtelte Spans

Standardmäßig gehört ein Zeichen zu höchstens einem Span. Manche Aufgaben brauchen mehr:

  • Überlappende Spans: Zwei Annotationen decken teilweise denselben Text ab, etwa ein Sentiment-Span über einem Entitäts-Span.
  • Verschachtelte Spans: Ein Span liegt in einem anderen, etwa in [Universität von [Michigan]], wo der Ort in der Organisation steckt.

Setze allow_overlapping: true, wenn deine Richtlinien das verlangen. Entscheide das früh, denn es verändert, wie Annotierende über Grenzen nachdenken.

BIO/IOB-Tagging, so sieht dein Export aus

Für das Training werden Span-Annotationen meist als Token-Tags im BIO-Schema exportiert (auch IOB genannt): B- markiert das erste Token einer Entität, I- die Token darin und O alle Token außerhalb jeder Entität.

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

Potato kann Spans nach CoNLL und in spaCy-Formate exportieren, die dieses Tagging direkt verwenden. Siehe Annotationen für ML exportieren.

Grenzen richtig setzen

Das Schwierigste an Span-Arbeit ist die Einigkeit darüber, wo ein Span anfängt und aufhört. Ein paar Regeln, die helfen:

  • Lege fest, ob umgebende Satzzeichen, Titel (Dr.) und angehängte Genitivformen dazugehören, und schreib es auf.
  • Miss die Übereinstimmung auf Span-Ebene, nicht nur auf Dokumentebene, damit Uneinigkeit über Grenzen sichtbar wird. Siehe Inter-Annotator-Übereinstimmung.
  • Halte die Grenzregel per Tooltip vor Augen.

Span-Aufgaben jenseits von NER

Derselbe Mechanismus trägt viele Aufgaben:

Weiterführende Lektüre