<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 ![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 ![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 ![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
⬑──────────────────┘
---
## 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: > 16.000 Zeilen (1843-1911)
- Antiqua: > 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}]"}