Annotation de segments
Un guide complet de l'annotation de segments : surligner des régions de texte, segments chevauchants et imbriqués, couleurs des étiquettes, étiquetage BIO/IOB et création de tâches de segments dans Potato.
L'annotation de segments consiste à marquer une région à l'intérieur d'un élément plutôt qu'à étiqueter l'élément entier. L'annotateur surligne une portion de texte (ou un segment audio) et lui attribue une étiquette. C'est le fondement de la reconnaissance d'entités nommées, du marquage d'erreurs, des questions-réponses extractives et de la détection d'événements audio : autant de tâches de segments qui ne diffèrent que par leurs ensembles d'étiquettes.
Un segment est une sous-séquence étiquetée : une position de début, une position de fin et une catégorie. En apprentissage automatique, on le formule généralement comme de l'étiquetage de séquence, où chaque token reçoit une étiquette.
Une tâche de segments de base
Définissez les étiquettes et laissez les annotateurs surligner. Les couleurs et les infobulles rendent l'interface rapide et explicite :
annotation_schemes:
- annotation_type: span
name: entities
description: "Highlight each named entity and choose its type."
labels: [PERSON, ORGANIZATION, LOCATION, DATE, MISC]
label_colors:
PERSON: "#3b82f6"
ORGANIZATION: "#10b981"
LOCATION: "#f59e0b"
DATE: "#8b5cf6"
MISC: "#6b7280"
sequential_key_binding: true
allow_overlapping: falseLe modèle de reconnaissance d'entités nommées correspond exactement à cette tâche, prêt à l'emploi.
Segments chevauchants et imbriqués
Par défaut, un caractère appartient à un segment au plus. Certaines tâches en demandent davantage :
- Segments chevauchants : deux annotations couvrent une partie du même texte, par exemple un segment de sentiment posé sur un segment d'entité.
- Segments imbriqués : un segment se trouve à l'intérieur d'un autre, par exemple « [University of [Michigan]] » où le lieu est imbriqué dans l'organisation.
Activez allow_overlapping: true lorsque vos consignes l'exigent. Décidez-le tôt, car cela change la façon dont les annotateurs envisagent les frontières.
Étiquetage BIO/IOB : à quoi ressemble votre export
Les annotations de segments sont généralement exportées pour l'entraînement sous forme d'étiquettes de token dans le schéma BIO (aussi appelé IOB) : B- marque le premier token d'une entité, I- marque les tokens situés à l'intérieur, et O marque les tokens hors de toute entité.
Barack B-PERSON
Obama I-PERSON
visited O
Paris B-LOCATION
Potato peut exporter les segments aux formats CoNLL et spaCy, qui utilisent directement cet étiquetage. Voir Exporter les annotations pour le ML.
Bien fixer les frontières
Le plus difficile dans le travail sur les segments est de s'accorder sur le début et la fin d'un segment. Quelques règles qui aident :
- Décidez s'il faut inclure la ponctuation environnante, les titres (« Dr. ») et les possessifs en fin de mot, et consignez-le par écrit.
- Mesurez l'accord au niveau du segment, et pas seulement au niveau du document, afin que les désaccords sur les frontières apparaissent. Voir L'accord inter-annotateurs.
- Utilisez les infobulles pour garder la règle des frontières sous les yeux de l'annotateur.
Des tâches de segments au-delà du NER
Le même mécanisme alimente de nombreuses tâches :
- Segments d'erreur : marquer les fautes dans une traduction ou une sortie de modèle, à la manière MQM. Voir Détecter les hallucinations.
- QA extractif : surligner la réponse à une question dans un passage.
- Détection d'événements audio : marquer quand un son survient sur une forme d'onde. Voir Annotation audio.
- Relations et coréférence : relier des segments entre eux. Voir Extraction de relations et d'événements et Résolution de coréférence.