Speakers
Description
Einleitung
Dieser Beitrag präsentiert erste Ergebnisse des Text+ Kooperationsprojekts zur automatischen Extraktion von Tabellendaten aus historischen Zeitschriften. In diesem Projekt soll am Beispiel der historischen Zeitung “Swinemünder Badeanzeiger” eine Software-Pipeline zur automatischen Extraktion von Tabellendaten aus gescannten Zeitungen entwickelt werden. Der Swinemünder Badeanzeiger erschien zwischen 1910 und 1932 zwei- bis sechsmal wöchentlich und informierte Leser im damaligen drittgrößten deutschen Ostseebad auf Usedom darüber, welche Familien und Persönlichkeiten zu Gast waren. So finden sich in den Tabellen beispielsweise Einträge zu Lyonel Feiniger, der am 12. September 1928 zusammen mit seinem Sohn Andreas Feiniger in Wiends Hotel, sowie Prinz Heinrich von Preußen mit weiteren 14 Personen im Gefolge am 5. Juni 1915 im Hotel zum Walfisch zu Besuch waren.
Datenumfang
Insgesamt liegen in der digitalen Bibliothek Greifswald 4227 gescannte Seiten des Swinemünder Badeanzeigers vor. Erste Schätzung haben ergeben, dass sich auf diesen Seiten insgesamt ca. 6600 Tabellen mit jeweils 50-60 Einträgen befinden, wobei ein Eintrag neben dem Namen, der sozialen Stellung und einer Auflistung der Begleitung auch den Herkunftsort und die hiesigen Wohnort enthält. Auf Basis dieser Schätzungen werden Einträge zu mindestens 400.000 dokumentierten Gästen erwartet. Die Einträge sind in Tabellen angegeben, die sich über die verschiedenen Ausgaben hinweg zum Teil deutlich unterscheiden. Während die Ausgaben von 1910 Spalten zu “Nummer”, “Name und Stand”, “Wohnort”, “Wohnung” und “Personenanzahl” enthalten, sind in späteren Ausgaben dieselben Informationen nur noch in zwei Spalten zu persönlichen Informationen und Anzahl unterteilt.
Datenextraktion und Strukturierung
In Vorbereitung der automatischen Extraktion wurden umfangreiche manuelle Annotationsarbeiten auf einer repräsentativen Datenauswahl vorgenommen. So wurden im ersten Schritt die Tabellenrahmen mithilfe des Annotationstools Labelme annotiert. In darauffolgenden Schritten wurden die in den Tabellenzeilen enthaltenen Informationen manuell transkribiert und anschließend strukturiert. Für der Strukturierung wurden die folgenden Kategorien identifiziert: Vorname, Nachname, Titel, Beruf, Sozialer Stand, Begleitung, Wohnort, Wohnung, Personenanzahl. Hintergrund der aufwändigen Annotation ist es, sowohl jeden Schritt der Softwarepipeline einzeln, als auch alle Schritte zusammen (End-to-End) evaluieren zu können, um objektive Aussagen zur erwartbaren Datenqualität treffen zu können.
Basierend auf den annotierten Daten wurden die folgenden Schritte durchgeführt:
- Fine-tuning der Segmentierung der Tabellen durch OCR-D unter Verwendung des Detectron2 Modells
- Frakturtexterkennung unter Verwendung verschiedener OCR Modelle innerhalb von Tesseract
- Korrektur der unterschiedlichen OCR Resultate mittels des Llama 3.1 70B Instruct Large Language Models
- Strukturierung der Einzelinformationen aus den korrigierten Tabelleninhalten in die oben beschriebene Struktur mittels Large Language Model
Vorläufige Ergebnisse
Die Evaluation der Schritte 1-3 wurde durch einen Train-Test Split vorgenommen. Bei der Segmentierung der Tabellen wurde einen Average Precision von 0.98 auf den Testdaten erreicht. Die Frakturtexterkennung der unterschiedlichen OCR-Modelle erreichte Character Error Rates zwischen 0.07 und 0.19, welche durch die LLM-basierte Korrektur auf unter 0.05 reduziert werden konnte. Ergebnisse zur Datenstrukturierung auf der Testmenge liegen noch nicht vor, erste Ergebnisse auf den Trainingsdaten deuten aber sehr gute Ergebnisse an. Zukünftige Schritte beinhalten die End-to-End Evaluation, sowie die Disambiguierung und Verlinkung der extrahierten Informationen.