Skip to content

Fonctions de productivité

Accélérez l'annotation dans Potato grâce aux raccourcis clavier, aux infobulles au survol, à la mise en évidence de mots-clés assistée par IA et aux suggestions d'étiquettes, pour un meilleur débit des annotateurs.

Potato réunit plusieurs fonctions qui aident les annotateurs à travailler plus vite et plus juste : raccourcis clavier, infobulles, mise en évidence de mots-clés et suggestions d'étiquettes.

Raccourcis clavier

Raccourcis séquentiels

Pour les schémas d'annotation comptant au plus 10 options, les raccourcis peuvent être attribués séquentiellement par défaut :

yaml
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    labels: [positive, neutral, negative]
    sequential_key_binding: true

La première option correspond alors à la touche « 1 », la deuxième à « 2 », et ainsi de suite.

Raccourcis personnalisés

Pour un contrôle plus fin, définissez un raccourci sur chaque étiquette :

yaml
annotation_schemes:
  - annotation_type: multiselect
    labels:
      - name: "Option 1"
        key_value: "1"
      - name: "Option 2"
        key_value: "2"
      - name: "Skip"
        key_value: "s"

Mise en évidence de mots-clés définie par l'administrateur

Aidez les annotateurs à repérer les mots et expressions pertinents en colorant le texte correspondant.

Configuration

yaml
keyword_highlights_file: data/keywords.tsv

Format du fichier TSV

Le fichier de mots-clés doit être séparé par des tabulations et comporter trois colonnes :

text
Word	Label	Schema
love	positive	sentiment
hate	negative	sentiment
excel*	positive	sentiment
disappoint*	negative	sentiment
ColonneDescription
WordMot ou expression à mettre en évidence (les jokers * sont acceptés)
LabelÉtiquette d'annotation associée à ce mot-clé
SchemaNom du schéma d'annotation

Règles de correspondance

  • Insensible à la casse : « Love » correspond à « love », « LOVE » et « Love »
  • Limites de mot : « love » correspond à « love » mais pas à « lovely » (sauf avec un joker)
  • Jokers : * permet une correspondance par préfixe ou par suffixe :
    • excel* correspond à « excellent », « excels » et « excel »
    • *happy correspond à « unhappy » et « happy »

Définir les couleurs

Les couleurs se définissent dans la section ui.spans.span_colors :

yaml
ui:
  spans:
    span_colors:
      sentiment:
        positive: "(34, 197, 94)"    # Green
        negative: "(239, 68, 68)"    # Red
        neutral: "(156, 163, 175)"   # Gray

Réglages d'aléatoirisation

Pour les besoins de la recherche, vous pouvez aléatoiriser la mise en évidence des mots-clés afin que les annotateurs ne s'y fient pas aveuglément :

yaml
keyword_highlights_file: data/keywords.tsv
 
keyword_highlight_settings:
  keyword_probability: 1.0       # Show 100% of keywords (0.0-1.0)
  random_word_probability: 0.05  # Highlight 5% random words as distractors
  random_word_label: "distractor"
  random_word_schema: "keyword"

Points clés :

  • Persistance : les mots mis en évidence sont mis en cache par couple utilisateur + instance
  • Aléatoirisation déterministe : la graine est un hachage du nom d'utilisateur et de l'instance_id
  • Suivi comportemental : les mots mis en évidence sont enregistrés

Infobulles

Ajoutez une explication détaillée pour chaque option de réponse :

Infobulles en texte brut

yaml
annotation_schemes:
  - annotation_type: multiselect
    name: "Question"
    labels:
      - name: "Label 1"
        tooltip: "This option means..."

Infobulles HTML

Pour des infobulles mises en forme, pointez vers un fichier HTML :

yaml
annotation_schemes:
  - annotation_type: multiselect
    name: "Question"
    labels:
      - name: "Label 1"
        tooltip_file: "config/tooltips/label1_tooltip.html"

Suggestions d'étiquettes

Affichez des suggestions pour guider les annotateurs, selon deux modes :

  • highlight : met les étiquettes suggérées en couleur
  • prefill : présélectionne automatiquement les étiquettes suggérées

Configuration

yaml
annotation_schemes:
  - annotation_type: multiselect
    name: "sentiment"
    description: "What sentiment does the text express?"
    labels: [positive, neutral, negative]
 
  - annotation_type: text
    name: "explanation"
    description: "Why do you think so?"
    rows: 4
    rows: 2

Format des données

Ajoutez les suggestions à vos éléments de données :

json
{
  "id": "1",
  "text": "Good Job!",
  "label_suggestions": {
    "sentiment": "positive",
    "explanation": "Because I think "
  }
}

Attribution automatique des tâches

Répartissez facilement les tâches d'annotation entre les annotateurs :

yaml
automatic_assignment:
  on: true
  output_filename: "task_assignment.json"
  sampling_strategy: "random"
  labels_per_instance: 10
  instance_per_annotator: 50
  test_question_per_annotator: 2

Intégration avec l'apprentissage actif

Les fonctions de productivité se combinent avec l'apprentissage actif pour donner la priorité aux instances les plus informatives :

yaml
active_learning:
  enabled: true
  schema_names: ["sentiment"]
  min_annotations_per_instance: 2
  min_instances_for_training: 20
  update_frequency: 10

Bonnes pratiques

  1. Utilisez les raccourcis clavier sur les tâches à gros volume - le gain de vitesse est net
  2. Ajoutez des infobulles sur les étiquettes complexes ou ambiguës pour réduire les incohérences
  3. Utilisez la mise en évidence de mots-clés pour attirer l'attention sur le texte pertinent, mais pensez à l'aléatoiriser pour la validité de l'étude
  4. Préremplissez les suggestions avec prudence - trop de préremplissage biaise les annotateurs

Pour aller plus loin

Pour les détails d'implémentation, consultez la documentation source.