Textannotation
Ein vollständiger Leitfaden zur Textannotation: Klassifikation, Mehrfach-Tagging, Bewertung und Freitext, und wie du jede dieser Aufgaben in Potato mit fertigem Config-Code baust.
Textannotation heißt, geschriebene Sprache zu labeln: Dokumente in Kategorien einsortieren, die Themen eines Artikels taggen, einen Abschnitt nach Qualität bewerten oder eine Korrektur schreiben. Es ist die häufigste Annotationsaufgabe im Natural Language Processing, und dafür wurde Potato ursprünglich gebaut. Dieser Leitfaden behandelt Aufgaben auf Dokumentebene; zum Markieren von Bereichen innerhalb eines Textes siehe Span-Annotation.
Die Textaufgaben im Überblick
- Dokumentklassifikation: ein Label für den ganzen Text (Textklassifikation).
- Mehrfach-Tagging: mehrere Labels gleichzeitig, etwa Themen oder Inhaltswarnungen.
- Bewerten und Einstufen: eine Position auf einer Skala, etwa Qualität oder die Intensität eines Sentiments.
- Freitext: eine geschriebene Antwort, Paraphrase oder Korrektur.
Klassifikation: ein Label pro Dokument
Das Arbeitspferd der Textannotation. Nimm radio, wenn sich die Kategorien gegenseitig ausschließen:
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this review?"
labels: [Positive, Negative, Neutral]
sequential_key_binding: truesequential_key_binding legt die Labels auf die Tasten 1, 2, 3, sodass die Annotierenden die Hände auf der Tastatur lassen. Bei Tausenden von Elementen macht das viel aus. Das Design sentiment analysis zeigt es live an einem lauffähigen Beispiel.
Mehrfach-Labels: mehrere Tags auf einmal
Wenn mehr als ein Label passen kann, nimm multiselect. Begrenze die Zahl der Auswahlen passend zu deinen Richtlinien:
annotation_schemes:
- annotation_type: multiselect
name: content_warnings
description: "Select every content warning that applies."
labels: [Violence, Profanity, Sexual content, Self-harm, None]Content-Moderation ist der Klassiker unter den Mehrfach-Label-Aufgaben; das Design toxicity detection verbindet eine Kategorie mit einem markierten Span.
Text auf einer Skala bewerten
Um den Grad statt einer Kategorie zu erfassen, nimm eine Likert-Skala:
annotation_schemes:
- annotation_type: likert
name: helpfulness
description: "How helpful is this answer?"
size: 5
min_label: "Not helpful"
max_label: "Very helpful"Zu den Fallstricken beim Skalenentwurf, etwa Zustimmungstendenz und der Frage, wie viele Punkte sinnvoll sind, siehe Bewertungsskalen.
Freitext und Korrekturen
Manchmal ist das nützlichste Label ein Satz, den die annotierende Person selbst schreibt: eine Begründung, eine Umformulierung oder eine Transkription. Kombiniere ihn mit einer Kategorie und blende ihn nur ein, wenn er gebraucht wird:
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: falseZu konsistenten Textlabels kommen
Text ist mehrdeutig, Konsistenz entsteht also im Prozess drumherum, nicht in der Oberfläche:
- Schreib knappe Annotationsrichtlinien mit einer Option für nicht entscheidbar.
- Lass mehrere Annotierende auf denselben Elementen überlappen.
- Verfolge die Inter-Annotator-Übereinstimmung und kläre Uneinigkeiten.
- Beschleunige große Aufträge mit Vorannotation durch LLMs und prüfe die Vorschläge von Hand nach.
Weiterführende Lektüre
- Span-Annotation, Bereiche innerhalb eines Textes markieren
- Das passende Annotationsschema wählen
- Referenz zu Annotationsschemata