Skip to content

Extractive QA

Oberflächen für Question Answering im SQuAD-Stil in Potato bauen, für die spanbasierte Extraktion von Antworten, Aufgaben zum Leseverständnis und das Markieren von Textstellen in Passagen.

Das Annotationsschema Extractive QA bietet eine Oberfläche für Question Answering, in der Annotatoren die Antwortspanne direkt in einer Textpassage markieren. Das Schema eignet sich für den Aufbau von Datensätzen zum Leseverständnis, für QA-Annotation im SQuAD-Stil, für Faktenprüfung und für jede Aufgabe, bei der Antworten wörtlich aus dem Quelltext entnommen werden.

Potato-Oberfläche für Extractive QA mit markierter Antwortspanne in einer PassageExtractive QA in Potato

Überblick

Das Schema Extractive QA zeigt:

  • Eine Frage, gut sichtbar über der Passage
  • Eine Textpassage, in der Annotatoren die Antwortspanne durch Markieren auswählen
  • Farbige Markierungen für den ausgewählten Antworttext
  • Eine Option für unbeantwortbar, falls sich die Frage aus der Passage nicht beantworten lässt

Schnelleinstieg

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

Konfigurationsoptionen

FeldTypStandardBeschreibung
annotation_typestringPflichtmuss "extractive_qa" sein
namestringPflichteindeutige Kennung dieses Schemas
descriptionstringPflichtAnweisungen, die Annotatoren angezeigt werden
question_fieldstring"question"Feld im Daten-JSON mit dem Fragetext
passage_fieldstring""Feld im Daten-JSON mit dem Passagentext (bei leerem String wird das Standard-Textfeld verwendet)
allow_unanswerablebooleantruezeigt ein Kontrollkästchen, um Fragen als unbeantwortbar zu markieren
highlight_colorstring"#FFEB3B"CSS-Farbe für die Markierung der Antwort

Beispiele

QA im SQuAD-Stil

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"

Mit Beispieldaten:

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."
}

Faktenprüfung

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"

Antwortextraktion ohne Option für unbeantwortbar

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"

Ausgabeformat

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

Markiert der Annotator eine Frage als unbeantwortbar:

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

Bewährte Vorgehensweisen

  1. Annotatoren zu minimalen Spannen anhalten - der kürzeste Text, der die Frage vollständig beantwortet, ergibt saubere Trainingsdaten
  2. allow_unanswerable für realistische Aufgaben nutzen - in der Praxis enthält QA häufig unbeantwortbare Fragen; wer die Option abschaltet, zwingt Annotatoren zum Raten
  3. Gut lesbare Markierungsfarben wählen - die Markierungsfarbe sollte genug Kontrast zum Text haben, damit dieser lesbar bleibt
  4. Passagen in vernünftiger Länge halten - 100 bis 500 Wörter je Passage funktionieren gut; sehr lange Passagen machen die Auswahl der Spanne mühsam
  5. Fragen klar formulieren - gut formulierte, eindeutige Fragen verringern Unsicherheit bei den Annotatoren

Weiterführende Literatur

Implementierungsdetails stehen in der Quelldokumentation.