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:
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: falseDas 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.
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:
- Fehler-Spans: Fehler in einer Übersetzung oder einer Modellausgabe markieren, im Stil von MQM. Siehe Halluzinationen erkennen.
- Extraktives QA: die Antwort auf eine Frage in einem Textabschnitt hervorheben.
- Erkennung akustischer Ereignisse: markieren, wann ein Geräusch in einer Wellenform auftritt. Siehe Audio-Annotation.
- Relationen und Koreferenz: Spans miteinander verknüpfen. Siehe Relations- und Ereignisextraktion und Koreferenzauflösung.