Skip to content

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 :

yaml
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: false

Le 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é.

text
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 :

Pour aller plus loin