Zum Inhalt springen
EN DE
Zurück zu Wissen
ErkenntnisseVeröffentlicht

OCR zu XML—Parsing ist erst die erste Prüfung

  • Python
  • XML
  • data-quality
  • research

Drei Arten von Korrektheit

Zu meiner Forschungsarbeit an der Universität Münster gehörte die Verarbeitung und Validierung von über 1.700 Seiten OCR-Ergebnissen zu konformem XML. Interessant war dabei nicht nur XML zu erzeugen, sondern zu wissen, was die jeweilige Prüfung wirklich belegt. Dafür hilft die Trennung in drei Prüfungen:

  1. Wohlgeformtheit: Kann ein XML-Parser das Dokument lesen?
  2. Konformität: Erfüllt das Dokument das geforderte Schema und die Projektregeln?
  3. Quelltreue: Gibt der Text das Ausgangsmaterial weiterhin korrekt wieder?

Die erste Prüfung zu bestehen bedeutet nicht, dass auch die anderen beiden bestanden sind.

XML-Escaping dem Serializer überlassen

Beim Zusammensetzen von XML-Strings werden Zeichen wie & und < leicht falsch behandelt. Ein Serializer übernimmt ihre Darstellung in XML-Textknoten.

Dieses eigenständige Beispiel nutzt die Python-Standardbibliothek; es stammt nicht aus dem Universitätsprojekt:

from xml.etree.ElementTree import Element, SubElement, tostring

document = Element("document")
page = SubElement(document, "page", {"number": "1"})
page.text = "Forschung & Archive <Katalog>"

xml_bytes = tostring(
    document,
    encoding="utf-8",
    xml_declaration=True,
)
print(xml_bytes.decode("utf-8"))

ElementTree bietet Parsing und Serialisierung, ist aber kein XSD-Validator. Wenn ein Projekt Schema-Validierung verlangt, ist dafür eine zusätzliche passende Prüfung erforderlich.

Herkunft nachvollziehbar halten

Eine stabile Verbindung zwischen Ausgabedokument und Quellseite erhalten. Transformationen dokumentieren, die den Text wesentlich ändern. Mehrdeutige OCR-Korrekturen überprüfbar machen, statt still zu raten.

Ein syntaktisch gültiges Datum kann beispielsweise trotzdem falsch sein, weil OCR ein Zeichen verwechselt hat. Strukturprüfung definiert die erlaubte Form; der Vergleich mit der Quelle beantwortet eine andere Frage.

Datenprüfung und Veröffentlichung trennen

Bei Forschungs-Publishing unterscheidet Quarto zwischen Rendering und Ausführung von Berechnungen. Mit freeze lassen sich frühere Ergebnisse wiederverwenden. Ein erfolgreicher Website-Build belegt deshalb nicht automatisch, dass Quelldaten erneut verarbeitet oder validiert wurden.

Explizit festhalten, welcher Schritt validiert, welcher rendert und welche Artefakte wiederverwendet werden. So wird nachvollziehbar, was ein erfolgreicher Build tatsächlich nachweist. Bei Forschungssoftware ist der sicherere Workflow einer, in dem Strukturprüfung und Quelltreue als getrennte Verantwortlichkeiten sichtbar bleiben.

Quellen

Technische Quellen am 13. September 2026 geprüft.