<style> /* reduce from default 48px: */ .reveal { font-size: 24px; text-align: left; } .reveal .slides { text-align: left; } /* change from default gray-on-black: */ .hljs { color: #005; background: #fff; } /* prevent invisible fragments from occupying space: */ .fragment.visible:not(.current-fragment) { display: none; height:0px; line-height: 0px; font-size: 0px; } /* increase font size in diagrams: */ .label { font-size: 24px; font-weight: bold; } /* increase maximum width of code blocks: */ .reveal pre code { max-width: 1000px; max-height: 1000px; } /* remove black border from images: */ .reveal section img { border: 0; } .reveal pre.mermaid { width: 100% !important; } .reveal svg { max-height: 600px; } .reveal h1, .reveal h2 { text-transform: none; } .reveal h1 { font-size: 42px; } .reveal .scaled-flowchart-td pre.mermaid { width: 100% !important; /* why? float: left; */ } .reveal .scaled-flowchart-td svg { max-width: 100% !important; } .reveal .scaled-flowchart-td svg g.node, .reveal .scaled-flowchart-td svg g.label, .reveal .scaled-flowchart-td svg foreignObject { width: 100% !important; } .reveal .scaled-flowchart-td p { clear:both; } .reveal .siblue { background-color: #006ab2; } .reveal .centered { text-align: center } .reveal .width75 { max-width: 75%; } /* remove black border from images: */ .reveal section img { border: 0; box-shadow: none; } .col-container { display: grid; grid-auto-flow: column; } .col50 { flex: 50%; } .col40 { flex: 40%; } .col60 { flex: 60%; } .col30 { flex: 30%; } .col70 { flex: 70%; } .col20 { flex: 20%; } .col80 { flex: 80%; } </style> # Erstellung wissenschaftlich nachnutzbarer Volltexte <br/>für Präsentation und Analyse <br/>am Beispiel obersorbischer Drucke ### Wito Böhmak   &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;![si-logo](https://www.serbski-institut.de/wp-content/themes/serbski_2021/img/si_logo_weiss.svg =200x) <!-- .element: style="background-color: #006ab2" --> ### Robert Sachunsky     &nbsp;  &nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;![slub-logo](https://www.slub-dresden.de/typo3conf/ext/slub_template/Resources/Public/Images/slublogo.svg =150x)![slub-logo](https://web.archive.org/web/20040523122611im_/http://www.tu-dresden.de/slub/_images/iTitle_Header.gif =x30) ### Kay-Michael Würzner &nbsp;&nbsp;&nbsp;&nbsp;![slub-logo](https://www.slub-dresden.de/typo3conf/ext/slub_template/Resources/Public/Images/slublogo.svg =150x)![slub-logo](https://web.archive.org/web/20040523122611im_/http://www.tu-dresden.de/slub/_images/iTitle_Header.gif =x30) _8. Bibliothekskongress Leipzig, 1.6.2022_ : https://hackmd.io/@bertsky/bibkon22-hsb-si-slub --- <!-- .slide: data-visibility="hidden" --> ## Themen/Todo Veröffentlichung hsb-Modelle für Antiqua/Fraktur plus GT - Calamari2-Training auf Cluster - Calamari1-Training - Evaluierung: - Prüfstichprobe aus GT (*.gt.txt) - PAGE-XML Khronika (OCRD-Wrapper) OCR-Alignierung (Tesseract:Diplopie) Artikelseparierung METS/ENMAP - Nowa-Doba-Beispiel läßt sich nicht in Structify öffnen (braucht ALTO v1) ... Input-Downgrading? - [ENMAP-Examples](https://dokuwiki.digital-innsbruck.at/structify_archive/enmap_examples.zip) lassen sich öffnen (Artikel: `contentUnit`) - wo ist definitives Profil (als Schema)? - [ENMAP-Beschreibung als Europeana-Deliverable](http://www.europeana-newspapers.eu/wp-content/uploads/2015/05/D5.3_Final_release_ENMAP_1.0.pdf) - Frage an SLUB-Kollegen: was ist aus CCS-Angebot geworden? ([vorgestellt](https://slub.qucosa.de/api/qucosa%3A16574/attachment/ATT-0/) auf [IFLA2017](https://slub.qucosa.de/api/qucosa%3A16341/attachment/ATT-0/) – [Testbetrieb mit docWorks](https://intranet.slub-dresden.de/display/GOOBI/OCR-Tests+Zeutschel+-+CCS) … und dann?) - Frage an DDB/Zeitungsportal: wird ENMAP weiterentwickelt? - Dummy-Tool als OCRD-Prozessor, dann später mit etwas Heuristik - mit Structify nach systematischen Fehlern suchen? <!-- ![slub-logo](https://web.archive.org/web/20040523122735im_/http://www.tu-dresden.de/slub/slub_r~1.gif =70x)![slub-logo](https://web.archive.org/web/20040523122611im_/http://www.tu-dresden.de/slub/_images/iTitle_Header.gif =x40) --> --- ## Wissenschaftlich nachnutzbare Volltexte <!-- Für wen? --> - strukturierter Volltext mit digitaler Präsentation - u.a. für Wissenschaftler, Heimatforscher, Journalisten, breiten Bildungsbereich - u.a. für Search/Retrieval, Textkorpora, hist. Wörterbücher - Belieferung mit Forschungsdatenrepos (Ground-Truth) und Sprachressourcen (Modelle) <!-- GT: manuell erfasster Text (idealerweise fehlerfrei), mit -Text-Zuordnung --> <!-- Minderheitensprache/ressourcenknappe Sprache --> <!-- Synergien zwischen Zwecken und Rollen der Beitragenden --> --- ## Ein Beispiel: Serbske Nowiny 23.3.1878 <br/>(überwiegend Fraktur) <table> <tr> <td> <img src="https://i.imgur.com/jPcGYZz.png" width="400px"/> </td> <td> <img src="https://i.imgur.com/ZTrMzQ3.png" width="600px"/> </td> </tr> </table> ```xml <head><lb/>Ze Serbow.</head> <p> <lb/> S Budyſchina. Jene nowiny w tychle dnjach žortniwje <lb/> měnjachu, ſo je ſapocžatk nalěcźa lětſa tak hubjeny był, ſo to ani <lb/> najſtarſche žaby pomnicź njemóža, a ſo drje ßu ſchkórzy hwiſdali, <lb/> ale to najſkerje teho dla, ſo bychu ßo trochu ſhrěli... </p> ``` --- ## Ausgangssituation - Digitalisierungen am SI seit 15 Jahren - Landesdigitalisierungsprogramm (LDP) Sachsen, koordiniert am Dresdner Digitalisierungszentrum der SLUB - 2016-2017 im Rahmen des LDP Digitalisierung historischen Schrifttums: + Antiqua – ungenügende Volltext-Qualität + Fraktur – keine Volltext-Erzeugung - besonderes Problem **Fraktur Sorbisch**: - slawische Diakritika, bisher keine verlässliche automatische Texterkennung (OCR) - mehrere Schreibweisen, Übergänge <!-- oder: bisher ohne spezifisches OCR-Modell? / ohne Sprachunterstützung? --> --- ## Sorbische Druckzeichen Antiqua/Fraktur ![](https://i.imgur.com/wcWyYml.jpg =700x) *Jan Arnošt Smoler: Mały Sserb aby Serske a Njemske Rosmłowenja atd. = Wendisch-Deutsche Gespräche nebst einem wendisch-deutschen und deutsch-wendischen Wörterbuche, sowie einem Verzeichnisse von Ortsnamen, einer Darlegung der Aussprache und Orthographie und Zugabe der gebräuchlichen Eidesnormen, Bautzen 1841* <!-- .element: style="font-size: 20px" --> --- ## Wo noch? – Fraktur und Antiqua Tschechisch ![](https://i.imgur.com/wpZz2ky.png) *Alphabete orientalischer und occidentalischer Sprachen, zsgest. von Friedrich Ballhorn, 8., verb. Aufl., Leipzig 1859* <!-- .element: style="font-size: 20px" --> --- ## Erste Studie zu Ground-Truth / Trainingsmodell in 2019 OCR für ressourcenarme Sprachen am Beispiel des Obersorbischen (Kay-Michael Würzner & Wito Böhmak, Abstract zum Dt. Bibtag 2020 + DFG-Antrag): - Bericht über manuelle (und iterative) Erstellung von **GT** für Fraktur-Obersorbisch und **Training** eines Tesseract-Modells per Finetuning von `Fraktur` - Untersuchung mit ABBYY Recognition Server und Tesseract auf ihre **Eignung** für die Erzeugung wissenschaftlich nachnutzbarer Volltexte - sowohl ABBYY Recognition Server mit dem Modell `Altdeutsch/Gothic` als auch Tesseract mit dem sprachunabhängigen Modell `Fraktur` erzielten **schlechte** Genauigkeit - Erstellung von GT und eigenem Trainingsmodell `hsb_frak` mit einfachem Workflow: **Machbarkeit** | | ABBYY | Tesseract | Tesseract (nachtrainiert) | | --- | --- | --- | --- | | Zeichenfehlerrate: | 12-17% | 8-11% | 0,5-3,7% | <!-- also: "Lösungsansatz" --> --- ## Entwicklung seit 2020 <!-- oder "Fortschritt"? --> **Verstetigung** in anderen Projektkontexten <!-- Verstetigung der Projektidee durch andere Förderinstrumente --> - SI: Retrodigitalisierung und Präsentation auf Basis von Kitodo - SLUB: Beteiligung bei… + Entwicklung [Kitodo](https://www.kitodo.org/) und [DFG-Viewer](http://dfg-viewer.de/) + DFG-Förderinitiative [OCR-D](https://ocr-d.de) + DDB [Zeitungsportal](https://pro.deutsche-digitale-bibliothek.de/deutsches-zeitungsportal) <!-- Machbarkeit im Gesamtsystem --> **Einsetzbarkeit** im produktiven Betrieb mit komplexem Workflow <!-- Reading Order zu Blockreihenfolge, Images zu Scans, LogicStruc = Struktur (manu oder auto), DFG-Viewer zu KITODO.PRES / DFG-Viewer, OCRD zu OCR-D, PROZESSOR zu docstruct, PAGEXML zu PAGE, TEI-XML zu TEI --> ![](https://i.imgur.com/VyNdEKM.png) --- ## Was macht eine hochqualitative Texterkennung aus? - *gute Segmentierung*: Ist der Text richtig lokalisiert worden? (kein Text verloren, kein Nicht-Text verwechselt) + scheinbare/fehlende Wörter oder Zeilen + überlappende/abgeschnittene Zeichen - *gute OCR*: Sind die Zeichen an sich richtig erkannt worden? - *gute Strukturerkennung*: Sind die Blöcke und Zeilen in der richtigen Reihenfolge? Wurden Überschriften markiert? Wurden Kapitel/Artikel separiert? - *weitere Analyse*: Schriftauszeichnung, Textnormalisierung <!-- → **OCR-Workflow** --> <!-- 2. Kasten zu "Zeilensegmentierung", 3. Kasten zu "Struktur + Reihenfolge", Artikelerkennung zu "Artikelseparierung" außerdem: 2. Kasten vor dem 1. Kasten --> ![](https://i.imgur.com/6sjl9Yo.png) <!-- Ende WB --> --- ## Maßnahmen zur Verbesserung der Textqualität für Obersorbisch | | OLR | OCR | AS | | | --- | --- | --- | --- | --- | | Bereitstellung von Daten | | ✅ | | SI | | Entwicklung von Werkzeugen | ✅ | ✅ | ✅ | SLUB / OCR-D | | Entwicklung von Modellen | | ✅ | | SI / SLUB | | Erarbeitung von Workflows | ✅ | ✅ | ✅ | SI / SLUB | OLR: Optische Layouterkennung (Segmentierung) OCR: Optische Zeichenerkennung AS: Artikelseparierung (Strukturerkennung) --- ## Vorgehen bei Segmentierung - Nutzung der Prozessoren aus OCR-D (hier [`eynollah`](https://github.com/qurator-spk/eynollah) und [`ocrd_segment`](https://github.com/OCR-D/ocrd_segment)) - Erkennung von: + Seitenrändern + Linien und Ornamentierung + Blocksegmentierung und Lesereihenfolge + Zeilensegmentierung - Adäquate Evaluierung: für Aussage über Gesamtqualität der Texterkennung ist **Anteil des Segmentierungsfehlers** mit zu betrachten! --- ## Vorgehen bei Zeichenerkennung - Nutzung der Werkzeuge und Workflows von OCR-D - Nutzung von Multi-OCR-Alignierung zur weiteren Verbesserung der OCR-Qualität (z.B. Diplopie-Problem bei Tesseract) - [Training von eigenen Modellen für Obersorbisch](https://github.com/bertsky/hsbcala) (Fraktur + Antiqua), aufbauend auf Community-Modellen (Tesseract / Calamari OCR) - Erstellung von GT-Material (eigenes Repository für `hsb`) - [Transkription mit Aletheia](https://i.imgur.com/2kSDu1y.jpg) - [Transkription mit Larex](http://ocr.slub-dresden.de/Larex) - iteratives Vorgehen Prozessierung – GT-Erstellung – Training &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ⬑──────────────────┘ --- ## Iteratives Vorgehen 1. Verbesserung der OCR-D-Werkzeuge und Workflows (z.B. Binarisierung SBB) 2. Nutzung existierender Modelle für die OCR 3. Transkription von GT-Material (Level 2 nach [Richtlinien OCR-D / DFG](https://ocr-d.de/en/gt-guidelines/trans/)) - neue Seiten - Finden und Beseitigen von Transkriptionsfehlern 4. Neutrainieren der OCR-Modelle, 5. Wiederholung und stetige Evaluierung an ausgewähltem GT-Material <!-- Vorgehen iterativ: GT-Erzeugung auf Basis von Trainingsmodellen vorangegangener GT-Erzeugung --> --- ## Training und Evaluierung <!-- Messungen --> - Umfang der GT-Daten - Fraktur: &gt; 16.000 Zeilen (1843-1911) - Antiqua: &gt; 16.000 Zeilen (1880-1934, 1950-) - [Training von Modellen](https://github.com/bertsky/hsbcala) für Tesseract / Calamari … - Zeichenfehlerraten (CER) auf Test-GT: |CER OCR|Abbyy Srv14* | Tesseract | hsb (Tess) | hsb (Cala) | hsb (multi) | ---------- | ---------- | -------- | ------------- |-------- |-------- | |Fraktur** | 14,72% | 9,01% |0.56% | 0.45% | 0.37% | |Antiqua | *** | 2.17% | 0.89% | 0.52% | 0.48% | `*` Abbyy repräsentiert `ſ` als `s` (ca. 50-80% Fehleranteil) `**` v.a. Überpunkt vs. Akut `***` Stichproben mit Abbyy: bei Korrektur von ĕ (e breve) nach ě (e caron): < 1% <!-- eventuell zweite Folie nur für Antiqua! --> <!-- Ende RS--> --- ## Herausforderungen bei GT-Erstellung - Lücken in Transkriptionsrichtlinien z.B. **"** vs. **“** oder **—** vs. **–** oder **⸗** vs. **-** <!-- Zeichensetzung, auch Leerzeichen! --> - zu wenige Beispiele für große Fonts und für spezifische Zeichen - Wandel historischer Schreibweisen z.B. am Übergang von Überpunkt zu Akut – Erkennung ob - "Druckschwäche": ![](https://i.imgur.com/I1lloVk.png =500x) - "gewollt" oder "beschränkter Drucksatz": ![](https://i.imgur.com/uH5DbMC.png =300x) ![](https://i.imgur.com/1Y3o6Ig.png =300x) --- ## Strukturerkennung – warum? **Ziel ist Artikelseparierung** - Erstellung einer qual. hochwertigen Präsentation - Artikelextraktion (in TEI) für Textkorpora - siehe [Masterplan Zeitungsdigitalisierung](https://zeitschriftendatenbank.de//fileadmin/user_upload/ZDB/z/Masterplan.pdf), Stufe 3a Artikelseparierung <!-- und wie machen wir das? --> **Unser Workflow:** <!-- und jetzt sind wir endlich hier hinten --> ![](https://i.imgur.com/pdnExJN.png) <!-- Ende WB --> --- ## Strukturerkennung – was? <!-- Basis ist Blockreihenfolge aus OCR-D --> - Seitenstruktur (Segmentierung + Reihenfolge): PAGE oder ALTO - Dokumentstruktur (Titel, Kapitel, Abschnitt, Legende, Seitenzahl, Artikel): Repräsentation… + nach **DFG-Anwendungsprofil** für METS/ALTO: `mets:div/@LABEL` + `mets:structLink` (mit ALTO-fileGrp) → ganze Seiten <!-- oft auch: max. 1 Eintrag pro Seite --> + nach **Europeana-Profil** für METS/ALTO: `mets:div/mets:fptr` (ALTO-fileID) `./mets:area` (ALTO-IDREF) → 1..n Segmente unterhalb+oberhalb von Seiten Anwendungsbeispiel: [Serbske Nowiny 23.3.1878 (DFG-Viewer)](http://digital.serbski-institut.de/ska-sn23031878_3u4) --- ## Strukturerkennung – wie? <div class="col-container"> <div class="col80"> - automatische Strukturerkennung: + [regelbasiert](https://github.com/OCR-D/ocrd_segment): vorherige seitenweise Textblock-Lesereihenfolge + heuristische (visuell-textuelle) Artikelseparierung + [datengetrieben](https://github.com/CITlabRostock/citlab-article-separation-new): neuronale Netze mit visuell-textueller Eingabe <!-- Ende RS --> - Unterstützung durch Präsentation: + Kitodo/DFG-Viewer: bisher nur `mets:structLink` + [TEI-Konvertierung](https://github.com/slub/mets-mods2tei): bisher nur `mets:structLink` + kommerzielle Systeme: `mets:area` / beides + [DDB-Zeitungsportal](https://www.fiz-karlsruhe.de/de/forschung/ddb-zeitungsportal-v-20#projektdaten): noch offen </div> <div class="col20"> <img src="https://i.imgur.com/fG2Vvdf.jpg" width="200"/> (Bsp.: <a href="https://dokuwiki.digital-innsbruck.at/structify_archive">Structify</a>) </div> </div> --- ## Fragen? Vielen Dank für Ihre Aufmerksamkeit! - wito.bejmak [[at]] serbski-institut.de - robert.sachunsky [[at]] slub-dresden.de https://hackmd.io/@bertsky/bibkon22-hsb-si-slub --- <!-- .slide: data-visibility="hidden" --> Aus Abstract: *Workflow umfasst:* 1. die manuelle Erstellung von Ground Truth (GT) 2. das systematische Training entsprechender OCR-Modelle 3. die automatische Prozessierung von Digitalisaten zu Volltext 4. die Generierung von ALTO-XML zur digitalen Präsentation und 5. von TEI-XML z.B. für digitale Editionen und korpuslinguistische Auswertungen Fokus ist die stetige Qualitätsverbesserung (d.h. Minderung der durchschnittlichen Fehlerrate ebenso wie systematischer Schwächen) - durch iterative Erweiterung des GT um zusätzliches Material und - Optimierung der extrahierten im Training benutzten Zeilenbilder. - Als Werkzeuge werden vorrangig Open-Source-Systeme eingesetzt: die OCR-D-Softwaresuite (mit dem PAGE-XML-Format als Träger der Bild-Text-Zuordnung) für automatische Workflows, die Programme Aletheia und LAREX für manuelle Transkription und Kitodo für die Bereitstellung der digitalen Objekte. Im Vortrag: - erläutern unserer Vorgehensweise zur Qualitätssteigerung der Obersorbisch-OCR und - diskutieren anhand von Referenzbeispielen die Möglichkeiten und Grenzen des Workflows. - Ergänzend thematisieren wir Erfahrungen mit der OCR zweisprachiger Drucke und deren Übertragbarkeit auf weitere slawische Sprachen.
{"metaMigratedAt":"2023-06-16T23:58:46.454Z","metaMigratedFrom":"YAML","title":"Bibliothekskongreß 2022","breaks":true,"description":"Erstellung wissenschaftlich nachnutzbarer Volltexte für Präsentation und Analyse am Beispiel obersorbischer Drucke","slideOptions":"{\"theme\":\"white\",\"slideNumber\":true}","contributors":"[{\"id\":\"c62f1b15-791a-47e1-8e4c-ab2ed00c04bc\",\"add\":16436,\"del\":6101},{\"id\":\"3b0c59dc-64f1-43a8-8138-16a1c3dee534\",\"add\":21712,\"del\":14902}]"}
    842 views