Neuigkeiten

09.01.2026

Gerade bei doppelseitigen Zeitungen und kleiner Schrift war es für mich schwierig, den gefundenen Suchbegriff auf der Originalseite wiederzufinden. Daher habe ich mir angesehen, wie PDF-Dateien die Layoutinformationen nach der Texterkennung speichern. Für jedes einzelne Wort sowie für erkannte Textboxen werden dabei Koordinaten und Abmessungen hinterlegt.

Bei rund 600.000 Seiten muss jedoch auch der Speicherbedarf berücksichtigt werden. Aus diesem Grund werden bei zukünftigen Importen zusätzlich nur die Textboxen erfasst. Im Inhaltsdialog kann über den Layout-Button entsprechend umgeschaltet werden.

Die Lösung ist nicht perfekt - es gibt viele Darstellungsfehler - jedoch ist sie eine Hilfe und ein guter Kompromiss zwischen Nutzen und Speicherbedarf.

29.12.2025

Ich habe die Weihnachtsferien genutzt, um vieles zu verbessern.

Bildverarbeitung

  • Der Import wurde noch einmal angepasst. In den neueren Zeitungen waren mehr Bilder erhalten, so dass die Objekt-Erkennung (Hough/Konturen) oft einen falschen Drehwinkel für das Ausrichten der Zeitungsseiten ermittelte. So wechselte ich zur "Projektions-Profil-Analyse". Leider ist diese gefühlt viel langsamer, aber dafür trifft sie 99%.
  • Die Rotation wurde bei zweiseitigen Bildern verbessert. Statt linearer Interpolation wird das Bild nun mit Supersampling und Lanczos4-Interpolation gedreht.
  • Nach dem Drehen werden nun Zeilenränder bis auf den Text abgeschnitten und neu hinzugefügt. Das hilft bei der Texterkennung an den Seitenrändern.
  • Es wird geprüft ob sich kurze Textfragmente am linken oder rechten Bildrand mit gewissen Abtand zu den restlichen Textblöcken befinden. Das deutet auf überlappende Seiten hin. Dieser Text wird entfernt.
  • Das Extrahieren der Bilder aus einer PDF wurde jetzt verbessert. Der Befehl pdfimages war zu instabil, bei pdftocairo wurden die Bilder meist nach Vorgabe der Auflösung skaliert. Nun habe ich beide Befehle kombiniert. Mittels pdfimages wird versucht die maximale Auflösung der Bilder zu ermitteln, pdftocairo nutzt diese Auflösung und muss nicht mehr interpolieren, da diese 1:1 mit den Bildern in der PDF übereinstimmt.
  • Der gesamte Prozess wurde umgebaut, teilweise nun mehrstufig um eine bessere Pagesegmentation zu ermöglichen.

Datenverarbeitung

  • Ab und an wurden die Zeitungen so unglücklich eingescannt, dass sich Fragmente der vorherigen Seiten auf einer Seite befinden. Das führt zu Zeilen mit einzelnen Buchstaben oder Zeichen. Diese werden bereinigt.
  • Mehrfach-Leerzeichen werden auf ein Leerzeichen gekürzt.
  • Es werden Leerzeichen am Zeilenanfang und -Ende entfernt.
  • Wenn auf einen Buchstaben direkt eine Zahl folgt, wird ein Leerzeichen dazwischen gesetzt
  • Die Rechtschreibkorrektur wurde verbessert. Alleinstehende Wörter werden via Einstellung als solche betrachtet.
  • Der Seitentrenner bei zweiseitigen Dokumenten wird besser verarbeitet.
  • viele Funktionen wurden robuster gemacht, z.B. meine Zeilentrennungs-Verarbeitung: Aus "Grüt-{Zeilenende}ner" wurd nun "Grüttner", aber "Vor-{Zeilenende}und Nachteile" der die Firmen-{Zeilenende}Veranstaltung bleiben erhalten.
  • Die von der Texterkennung gefundenen Textblöcke werden jetzt in die Datenbank übernommen. Eine rückwirkende Migration ist leider nur partiell möglich.
  • Die Tesseract-Konfiguration (Tool zur Texterkennung) wurde angepasst, dass sich nun kleine Text-Zeilen aber größere Buchstaben besser erkennen lassen.

Tooling

  • Zu groß gewachsene Skripte wurden modularisiert
  • Logausgaben haben nun immer einen Zeitstempel und Kategorie.

Webseite

  • Seit April 2025 wurden bei zweiseitige Zeitungsdokumenten die Seiten einzeln bearbeitet. Im Seiteninhalts-Dialog wird bei diesen nun die linke und rechte Seite separat dargestellt. Bei neueren Dateneingängen werden jetzt auch die Textblöcke dargestellt. Das erleichtert die Orientierung im Original-Dokument.
  • Der Seiteninhalts-Dialog wurde komplett überarbeitet. Er bekam ein schickeres Design und es ist nun möglich, die vorherige und nachfolgende Seite des angezeigten Dokuments einzusehen. Gerade bei Zeitungsartikeln, die sich über mehrere Seiten erstrecken, ist das hilfreich.

24.12.2025

Einbau eines CSRF-Tokens (Cross-Site Request Forgery) um Missbrauch zu vermeiden.

08.12.2025

Ein Fehler bei der Suche nach Phrasen wurde behoben.

Bei der Suche nach Wörtern und in der Profisuche werden die Treffer nun entsprechend dem Suchwort farblich unterschiedlich hervorgehoben. Das macht es einfacher zu erkennen, ob Treffer inhaltlich zusammenhängen.

Eine weitere Erleichterung: Die Suchergebnisse werden jetzt automatisch nach Relevanz sortiert. Je näher Ihre Suchbegriffe in den Ergebnistexten beieinander liegen, desto weiter oben wird der Treffer angezeigt. So finden Sie schneller genau das, was Sie suchen.

Wenn Sie möchten, können Sie weiterhin die frühere Suche nutzen. Wählen Sie dafür im Auswahlfeld unter dem Reset-Knopf einfach „Jahr“ aus.

30.11.2025

Zeilenumbrüche mittels ⸗ Zeichen erschwerten bisher die Suche. Als Beispieltext:
In seiner Villa im großen Saal neben seiner Frau aß Herr Mül⸗
ler ein üppiges Mahl in der Abendzeit, wie immer

Bei der Suche nach „Herr Müller“ konnte der entsprechende Eintrag nicht gefunden werden. Obwohl ich ungern Originaltexte verändere, war es in diesem Fall notwendig, um die Zeitungsartikel optimal durchsuchen zu können.

Nun werden diese Trennzeichen entfernt und der Zeilenumbruch an das Ende des neu zusammengefügten Wortes gesetzt. So würde der Text nun aussehen:
In seiner Villa im großen Saal neben seiner Frau aß Herr Müller
ein üppiges Mahl in der Abendzeit, wie immer

Des Weiteren habe ich den Volltext auf deutsche Stoppwörter umgestellt. Dabei handelt es sich um Wörter, die bei der Suche nicht indiziert werden (z. B. Artikel oder Pronomen). Das sollte die Suche (hoffentlich) etwas beschleunigen.

30.09.2025

Unter Daten wurde die Seite "Bestand" überarbeitet. Die Tabelle kann nun sortiert, gefiltert werden und nutzt Pagination.

05.06.2025

Neues Teilskript für zweiseitige Zeitungen mit folgenden Hauptmerkmalen und Verbesserungen:

  • Intelligente Erkennung des Falzes in der Mitte
  • Schräglagenkorrektur des Bildes anhand des Falzes
  • Teilen des Bildes anhand des Falzes in 2 Bildhälften
  • Grobausrichtung der Bildhälften mittels OSD
  • Feinausrichtung der Bildhälften anhand der Grundlinie des Textes

Das Skript habe ich diesmal nicht selbst programmiert, sondern mit KI erstellen lassen.

18.05.2025

Mein Script , welches besser mit zweiseitigen Scans umgehen kann, befindet sich in der Testphase. Der Hintergrund ist, dass Digitalisate mit zwei eingescannten Seiten oft unterschiedliche Drehungen oder Verzerrungen pro Einzelseite aufweisen. Daher war es nicht möglich, eine Korrektur über den gesamten Scan vorzunehmen.

23.03.2025

Manchmal verschluckt die Texterkennung Leerzeichen. So wurde eine Import-Funktion implementiert, welche vor Großbuchstaben ein Leerzeichen einfügt, wenn es unmittelbar einem Kleinbuchstaben folgte.

28.02.2025

Mit entsprechenden Rechten kann man nun die Texte über die Webseite bearbeiten.

16.02.2025

Mein NAS musste durch Zerstörung des Netzteils wieder flott gemacht werden. Diese Gelegenheit nutzte ich um auch hier den Server für die Texterkennung neu aufzubauen. Statt altem Debian läuft nun auch hier das Betriebssystem Ubuntu 22.04. Dieser Server ist recht langsam aber dafür zuverlässig. Ich nutze diesen für bereits importierte Datensätze, deren Qualität mich nicht überzeugte, neu zu verarbeiten.

12.01.2025

Das Experiment mit dem Raspberry 4 musste ich leider begraben. Diesen kleinen Bastelrechner habe ich an anderer Stelle sehr lieb gewonnen, aber für Texterkennung reicht die Leistung leider nicht aus. Das Tool ocrmypdf brachte immer wieder Fehler. Da bei gleichem Setting und Dokumenten es keinerlei Probleme gab, sind diese wohl auf den etwas klein geratenen Speicher zurückzuführen. Nun wurde ein gebrauchter Mini-Rechner bestellt. Statt 1 GB nun 16 GB Arbeitsspeicher, statt BCM2711 nun der 3-4 mal flottere Intel Core i5-6500T

05.01.2025

Positives

  • Das Texterkennungstool Tesseract wurde von Version 4 auf 5.4 angehoben. Es hat deutlich mehr Performance.
  • Ich habe einige Teile der Skripte parallelisiert. Damit wird die Last auf mehrere Prozessoren verteilt.
  • Alle Tools der Skripte wurden noch ein mal auf Lossless-Verarbeitung geprüft und ggf. die Aufrufe angepasst. Die Erkennungsquote wurde etwas besser.
  • Texterkennungs-Modelle wurden ebenfalls neu untersucht und noch einmal angepasst.
  • ein ausgedienter Raspberry 4 wurde neu aufgesetzt und dient nur als weitere Unterstützung bei der Texterkennung. Der Stromverbrauch pro Jahr liegt bei ca. 20 € unter Last. Da in den Sonnenmonaten das Balkonkraftwerk diesen Strom liefert, reduziert sich das auf 15 €/a. Das ist ein überschaubarer Betrag.

Fehlgeschlagene Versuche

  • OCR-D wurde nach der Anleitung getestet. Beim ersten genannten Demo-Beispiel brachte es aber gleich viele Fehlermeldungen. Da es nicht out of the box funktionierte und ich bereits funktionierende Skripte habe, beließ ich es dabei. Die Installation führten zu einem Performance-Einbruch, so dass ich das System neu aufsetzen musste.
  • Bildbearbeitung wie z.B. Schärfen, Histogramm-Strecken oder gar Hintergrund-Entfernung der Seiten vor der Texterkennung brachten keine Verbesserung.

In Summe konnte ich doch eine bessere Texterkennungsquote erreichen. Einige bereits importierte Datensätze werde ich deshalb erneut der Texterkennung unterziehen.

23.12.2024

Der Anbieter netcup hat zeitnah das Backup zur Verfügung gestellt. 1000 Dank und Lob dafür. Nun läuft die Umwandlung der Daten. Es werden ca. 1 Seite pro Sekunde neu importiert. Das bedeutet hochgerechnet bei 260.000 Seiten mehr als 70 Stunden bis zur vollständigen Umsetzung. Die Suche wurde wieder freigeschalten, auch wenn nur ein Teil der Datensätze durchsucht werden können.

Die Anzeige der Seiten "Letzte Eingänge" und "Bestand" unter dem Menupunkt "Daten" wurde beschleunigt. Statistiken werden nun direkt beim Import berechnet und müssen nicht mehr bei jedem Aufruf ermittelt werden.

22.12.2024

Pleiten, Pech und Pannen

  • eine wichtige Tabelle ist kaputt gegangen, so dass ich den Hoster um Wiederherstellung des Backups der Datenbank bitten musste (steht noch aus)
  • durch fehlende Server-seitige Einstellung zum Zeichensatz wurden Daten sehr seltsam abgelegt. Alles funktionierte - es fiel erst auf, als ich einzelne Zeichen in den Ergebnissen abfragen wollte. Das muss nun korrigiert werden. Die Skripte dazu gibt es. Ich muss auf die Daten-Wiederherstellung warten. Die Umwandlung wird ca. 2 Tage dauern.
  • die Ablage der Texterkennungs-Ergebnisse in Text-Block-Layout erleichterte die Sichtung und Zuordnung, allerdings gingen auch Zusammenhänge in den Texten verloren, wenn mehrere Textblöcke nebeneinander lagen. Bei der Suche spielte das keine Rolle, aber die Darstellung der Ergebnisse war vielleicht doch irritierend. Rückwirkend kann ich das nur leicht umstellen, wenn ich die PDF-Datei noch vorliegen habe. Ich arbeite daran.

Aber es gibt auch Positives zu berichten.

  • Es wurde ein Korrektur-Wörterbuch eingeführt. Bereits beim Import werden bekannte Fehler korrigert.
  • mehrere alleinstehende Zeichen werden zum Wort zusammengefasst, so wird "Ü b e r s i c h t über " "Übersicht über "
  • experimentell baue ich an einer Unschärfe-Suche. Leider habe ich keinen Einfluss auf die Serverumgebung, so dass mir nur eine eigene Umsetzung bleibt. D.h. jedes relevante Wort wird aus den Texten extrahiert und in die Kölner Phonetik überführt und abgelegt. Ich bin am Überlegen, die Kölner Phonetik so anzupassen, dass sie gängige Texterkennungsfehler berücksichtigt. Zumindest soll man künftig bei der Suche nach Grüttner auch Gruttner, Krüttner, Grudner, Grütner usw. finden können.

19.12.2024

Es kann nun nach Markierungen gesucht werden.

09.11.2024

  • ich habe die Karte unter Markierungen umgebaut. Orte wie meine Verwandten lebten werden nun rot (Grüttner) oder gelb (Zobel) markiert.
  • derzeit werden die "Schlesische Zeitung" importiert. Pro Jahrgang dauert das ca. 4 Tage, (auf dem kleinen Rechner gar 10 Tage) da ca. 3000 Seiten zu verarbeiten sind.
  • Korrektur der Breslauer Nachrichten 1805, fehlender Bestand wird demnächst importiert

20.10.2024

Nach meinem schönen Urlaub geht es nun weiter. Inzwischen hat sich auch Opole Digital Library mit folgender Antwort gemeldet.
publications on the Opole Digital Library website that were published at least 70 years after the author's death are in the public domain and can be used without restrictions provided the author is cited.
Das bedeutet, die Copyright-Angabe dieser Seite ist eigentlich keine. Sie ist als Hinweis zu sehen, dass man die Urheber- und Nutzungsrechte selbst prüfen muss. Die Angabe 70 years after the author's death ist nur halbrichtig, da hier auch Erben und andere Inhaber zu prüfen wären. Ich begebe mich hier rechtlich leider in eine Grauzone.

01.10.2024

Ankündigung: ab 4.10.2024 wird der Import für 3 Wochen pausiert.

26.09.2024

Ausgeschlossen wegen Copyright sind bis jetzt Importe von der Opole Digital Library. Es darf bezweifelt werden, dass jedes Copyright rechtmäßig ist und der Urheber oder dessen Erben bekannt sind. Ich habe nachgefragt, wie das Recht begründet ist.

21.09.2024

Bei der Suche wird nun die Groß-und Kleinschreibung nicht mehr beachtet.

09.09.2024

Die Neuen Schlesischen Provinzialblätter unterliegen einem Copyright, so habe diese aus dem öffentlichen Bereich der Webseite entfernt.

Die OCR-Skripte wurden noch einmal stabilisiert. D.h. alle Tools werden auf Fehlercode geprüft, ggf. mit einem Fallback gearbeitet (z.B ocrmypdf ➔ tesseract ➔ PDF-Seite ohne ocr).

02.09.2024

Nummer der Ausgabe bei Wöchentlichen Unterhaltungs-Blättern von Jauer 1856 korrigiert.

10.08.2024

Meine Import-Skripte mussten mehrfach angepasst werden. Vielen Tools fehlte die Robustheit beim Umgang mit "speziellen" PDF-Dateien oder änderten ihre Verhalten.

  • Das Entfernen alter Texte mittels "ghostskript" unterschlug ab und an ganze Seiten.
  • Einige PDFs waren so aufgebaut, dass ocrmypdf Probleme machte.
  • Die Texterkennung von ocrmypdf verschlimmerte sich gravierend, obwohl die Übergabeparameter gleich blieben. Eine Datei, die ich vor Wochen über Texterkennung laufen ließ, zeigten nach neuer Texterkennung ein viel schlechteres Ergebnis. Die Ursache fand noch nicht heraus.
  • Nach Umbau auf Einzelbilder erzeugte das Tool pdftoppm gelegentlich 0-Byte große Bilder.

Das neue Skript extrahiert nun die Seiten einer PDF-Datei als Bilder, nutzt ocrmypdf für die neu erzeugten Einzelseiten, und als Fallback tesseract. Genutzt wird die Mannheimer Fraktura-Trainings-Datei. Jetzt heißt es Daumen drücken, dass nicht wieder etwas schief läuft.

Jetzt muss der Schaden identifiziert und ggf. Bestände nachimportiert werden.

25.07.2024

Verweise von "Der Bote aus dem Riesengebirge" wurden korrigiert