Skip to content

Questions-réponses extractives

Construisez dans Potato des interfaces de questions-réponses façon SQuAD pour l'extraction de réponses par empans, les tâches de compréhension de texte et l'annotation par surlignage de passages.

Le schéma d'annotation de questions-réponses extractives fournit une interface de questions-réponses où les annotateurs surlignent les empans de réponse directement dans un passage de texte. Ce schéma convient à la création de jeux de données de compréhension de texte, à l'annotation de questions-réponses façon SQuAD, à la vérification de faits, et à toute tâche où la réponse est extraite telle quelle du texte source.

Interface de questions-réponses extractives de Potato surlignant un empan de réponse dans un passageLes questions-réponses extractives dans Potato

Vue d'ensemble

Le schéma de questions-réponses extractives présente :

  • Une question, affichée bien en vue au-dessus du passage
  • Un passage de texte, dans lequel les annotateurs sélectionnent les empans de réponse par surlignage
  • Des surlignages en couleur, qui marquent le texte de réponse sélectionné
  • Une option « sans réponse », pour les questions auxquelles le passage ne permet pas de répondre

Démarrage rapide

yaml
annotation_schemes:
  - annotation_type: extractive_qa
    name: answer_span
    description: Highlight the answer to the question in the passage below.
    question_field: question
    passage_field: passage
    allow_unanswerable: true

Options de configuration

ChampTypeDéfautDescription
annotation_typestringObligatoireDoit valoir "extractive_qa"
namestringObligatoireIdentifiant unique de ce schéma
descriptionstringObligatoireConsignes affichées aux annotateurs
question_fieldstring"question"Champ du JSON de données contenant le texte de la question
passage_fieldstring""Champ du JSON de données contenant le texte du passage (une chaîne vide utilise le champ de texte par défaut)
allow_unanswerablebooleantrueAffiche une case à cocher pour marquer une question comme sans réponse
highlight_colorstring"#FFEB3B"Couleur CSS du surlignage de la réponse

Exemples

Questions-réponses façon SQuAD

yaml
annotation_schemes:
  - annotation_type: extractive_qa
    name: squad_answer
    description: >
      Select the shortest span in the passage that answers the question.
      If the question cannot be answered from the passage, mark it as unanswerable.
    question_field: question
    passage_field: context
    allow_unanswerable: true
    highlight_color: "#FFEB3B"

Avec ces données d'exemple :

json
{
  "id": "q001",
  "question": "When was the university founded?",
  "context": "The University of Michigan was founded in 1817 in Detroit and moved to Ann Arbor in 1837. It is one of the oldest public universities in the United States."
}

Vérification de faits

yaml
annotation_schemes:
  - annotation_type: extractive_qa
    name: evidence_span
    description: >
      Highlight the evidence in the passage that supports or refutes the claim.
      Mark as unanswerable if the passage contains no relevant evidence.
    question_field: claim
    passage_field: document
    allow_unanswerable: true
    highlight_color: "#81C784"

Extraction de réponse sans option « sans réponse »

yaml
annotation_schemes:
  - annotation_type: extractive_qa
    name: definition_extraction
    description: >
      Highlight the definition of the term in the passage.
      Every passage contains a definition — select the most precise span.
    question_field: term
    passage_field: text
    allow_unanswerable: false
    highlight_color: "#64B5F6"

Format de sortie

json
{
  "answer_span": {
    "labels": {
      "answer_start": 45,
      "answer_end": 49,
      "answer_text": "1817",
      "unanswerable": false
    }
  }
}

Quand l'annotateur marque une question comme sans réponse :

json
{
  "answer_span": {
    "labels": {
      "unanswerable": true
    }
  }
}

Bonnes pratiques

  1. Demandez aux annotateurs de sélectionner des empans minimaux - le texte le plus court qui répond entièrement à la question donne des données d'entraînement plus propres
  2. Utilisez allow_unanswerable pour les tâches réalistes - en pratique, les questions-réponses comportent souvent des questions sans réponse ; désactiver cette option force les annotateurs à deviner
  3. Choisissez des couleurs de surlignage lisibles - vérifiez que la couleur contraste assez avec le texte pour rester confortable à lire
  4. Gardez des passages de longueur raisonnable - de 100 à 500 mots par passage fonctionne bien ; les passages très longs rendent la sélection d'empans fastidieuse
  5. Soignez la formulation des questions - des questions bien formées et sans ambiguïté réduisent les hésitations des annotateurs

Pour aller plus loin

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