Dirk Alvermann


Posted by Dirk Alvermann on

Tag Export I

Wenn man sich einmal die Mühe gemacht hat, ein oder mehrere Dokumente zu taggen, hat man verschiedene Möglichkeiten diesen „Mehrwert“ auch außerhalb von Transkribus zu nutzen. Die Tags lassen sich leicht über das Export-Tool von Transkribus als Excel-Tabelle exportieren.

Von hier aus stehen Euch viele Möglichkeiten offen. Wir hatten unser „Tagging-Experiment“ durchgeführt, um zu erfahren, ob das ein guter Weg wäre, um die geographische Verteilung unserer Dokumente zu visualisieren und zugleich über eine Karte den Zugriff auf die digitalisierten Dokumente im Presenter zu ermöglichen.

Unterm Strich sind wir mit dem Ergebnis des Versuches zufrieden. Man kann bestimmte Jahre oder Zeiträume auswählen, nach Orten suchen und über die Punkte auf der Karte zu den Dokumenten gelangen. Hier könnt Ihr euch ansehen, was dabei herausgekommen ist.

Letztendlich hat sich der Aufwand für diese Art der Weiterverwendung des Taggings aber als so hoch erwiesen, dass wir ihn im Rahmen dieses Projektes nicht leisten können. Aber es gibt noch andere Möglichkeiten Tags im Export zu nutzen, über die wir im nächsten Post schreiben.

Posted by Dirk Alvermann on

HTR+ oder Pylaia

Version 1.12.0

Wie ihr sicher schon gesehen habt, gibt es seit dem vergangenen Sommer neben HTR+ eine zweite Technologie für die Handschriftentexterkennung in Transkribus verfügbar – PyLaia.

Wir haben in den vergangenen Wochen mit PyLaia-Modellen experimentiert und möchten hier einige erste Erfahrungen und Eindrücke zu den Unterschieden von HTR+ und PyLaia dokumentieren. Heißt billiger auch schlechter? – Definitiv nein! Hinsichtlich der Accuracy Rate kann PyLaia es ohne weiteres mit HTR+ aufnehmen. Es ist oft sogar etwas besser. Die folgende Grafik vergleicht ein HTR+ und ein PyLaia-Modell, die mit identischem Ground Truth (ca. 600.000 Wörter) unter denselben Voraussetzungen (from the scratch) trainiert wurden. Verglichen wird die Perfomance mit und ohne Language Model.

Der vielleicht auffälligste Unterschied ist, dass die Ergebnisse von PyLaia-Modellen sich mit dem Einsatz eines Language Models nicht ganz so stark verbessern lassen, wie das bei HTR+ der Fall ist. Das ist nicht unbedingt ein Nachteil, sondern spricht eigentlich eher für eine hohe Grundverlässlichkeit dieser Modelle. Anders ausgedrückt: PyLaia braucht nicht unbedingt ein Language Model um sehr gute Ergebnisse zu erzielen.

Es gibt auch ein Gebiet, auf dem PyLaia schlechter abschneidet, als HTR+. PyLaia hat größere Schwierigkeiten „gebogene“ Zeilen korrekt zu lesen. Bei senkrechten Textzeilen ist das Ergebnis sogar noch schlechter.

Im Training ist PyLaia etwas langsamer als HTR+, das heißt, das Training dauert länger. Auf der anderen Seite ist PyLaia sehr viel schneller im „Antritt“. Es benötigt verhältnismäßig wenige Trainingsdurchgänge, um gute Ergebnisse zu erzielen. In den beiden Lernkurven kann man das recht gut erkennen.

Unsere Beobachtungen sind natürlich nicht erschöpfend. Sie beziehen sich bisher nur auf generische Modelle, die mit einem hohen Einsatz von Ground Truth trainiert wurden. Wir haben insgesamt den Eindruck, das PyLaia bei solchen großen generischen Modellen seine Vorzüge voll ausspielen kann.

Posted by Dirk Alvermann on

Wie man PyLaia-Modelle trainiert

Release 1.12.0

Seit der Version 1.12.0 ist es möglich in Transkribus neben den bewährten HTR+ Modellen auch PyLaia Modelle zu trainieren. Wir haben in den letzten Monaten damit einige Erfahrungen gesammelt und sind von der Performance der Modelle recht beeindruckt.

PyLaia Modell können wie HTR oder HTR+ Modelle über das übliche Trainings-Tool trainiert werden. Es gibt aber einige Unterschiede.

Wie bei einem normalen HTR+ Modell müsst Ihr den Namen des Modells, eine Beschreibung und die Sprachen für die das Modell eingesetzt werden kann, angeben. Anders als beim Training von HTR+ Modellen ist die Anzahl der Iterationen (epochs) auf 250 beschränkt. Damit kommt man aber nach unseren Erfahrungen sehr gut zurecht. Man kann auch PyLaia Modelle mit base models trainieren, also längere aufeinander aufbauende Trainingsserien konzipieren. Im Unterschied zum üblichen Training gibt es bei PyLaia eine Einstellung „Early Stopping“. Sie legt fest, wann das Training beendet werden kann, sofern ein gutes Ergebnis erreicht wird. Diesen Wert solltet Ihr zu Beginn eurer Trainingsversuche immer auf dieselbe Anzahl von Iterationen einstellen, die Ihr für das gesamte Training gewählt habt. Wenn Ihr also mit 250 epochs trainiert, sollte der Wert bei „Early Stopping“ genauso hoch sein. Andernfalls riskiert ihr, dass das Training zu früh beendet wird.

Der wichtigste Unterschied ist jedoch, dass im PyLaia Training ausgewählt werden kann, ob Ihr mit den Original-Images oder mit komprimierten Images trainieren möchtet. Hier lautet die Empfehlung ganz klar: trainiert mit komprimierten Images. Das PyLaia Training mit Original-Images kann im schlimmsten Fall (bei entsprechend großer Menge von GT) Wochen dauern. Mit komprimierten Images ist auch ein PyLaia Training innerhalb weniger Stunden oder Tage (wenn ihr bspw. mit etwa 500.000 Wörtern trainiert) beendet.

Tips & Tools
Für ausführlichere Informationen, besonders zur Einstellung spezifischer Trainingsparameter empfehlen wir euch das Tutorial von Annemieke Romein und die Richtlinien der READ Coop.

Posted by Dirk Alvermann on

Unser erstes öffentlich zugängliches Modell für die deutschen Kurrentschriften des 17. Jahrhunderts

Heute präsentieren wir „Acta 17“ als öffentlich zugängliches HTR  Modell.

Das Modell wurde anhand von mehr als 500.000 Wörtern aus Texten von etwa 1000 verschiedenen Schreibern aus der Zeit von 1580-1705 vom Universitätsarchiv Greifswald trainiert. Es kann mit deutschsprachigen, lateinischen und niederdeutschen Texten umgehen und ist in der Lage, einfache deutsche und lateinische Abkürzungen aufzulösen. Neben den üblichen Kanzleischriften enthielt das Trainingsmaterial auch eine Auswahl von Konzeptschriften und Druckschriften der Zeit.

Das gesamte Trainingsmaterial basiert auf Konsulentenanfragen, Prozessschriften und Urteilen aus dem Aktenbestand der Greifswalder Juristenfakultät Die Validierungssets basieren auf einer chronologischen Auswahl der Jahre 1580 – 1705 . GT & Validierungssets wurden von Dirk Alvermann, Elisabeth Heigl, Anna Brandt erstellt.

Aufgrund einiger Probleme bei der Durchführung umfangreicherer Serien von base model Trainings für HTR+ Modelle in den letzten Wochen haben wir beschlossen, ein von Grund auf neu trainiertes HTR+ Modell als öffentliche zugängliches Modell bereit zu stellen.

Es wird von einem PyLaia-Modell begleitet, das auf den gleichen Trainings- und Validierungssets basiert und ebenfalls ohne Nutzung eines Base Modells trainiert wurde.

Für das Validierungsset wählten wir Seiten, die einzelne Jahre des gesamten verfügbaren Materials repräsentieren. Insgesamt waren es  48 ausgewählte Jahre, fünf Seiten pro Jahr.

Wie sich die Modelle in den verschiedenen Zeiträumen des Validierungssets verhalten, könnt ihr im untenstehenden Vergleich sehen. Beide Modelle wurden ohne language model ausgeführt.

Posted by Dirk Alvermann on

Taggen im Text

Wie alles andere, kann man auch das tagging auf sehr unterschiedlichen Niveaus und mit unterschiedlichen Ansprüchen in seine Arbeit integrieren. In Transkribus steht eine große Anzahl Tags für die unterschiedlichsten Anwendungsfälle zur Verfügung, von denen einige hier beschrieben sind.

Wir haben uns für einen Versuch mit lediglich zwei tags, nämlich „person“ und „place“ entschieden, um später eben über diese Tags einen systematischen Zugriff auf die entsprechenden Textstellen zu ermöglichen.

Transkribus übernimmt beim taggen automatisch den Begriff, der unter dem cursor steht als value“ oder „label“ für den konkreten Fall. Wenn ich also, wie im Beispiel unten „Wolgast“ markiere und als „place“ tagge, dann sind schon zwei wesentliche Informationen festgehalten. Genauso verhält es sich mit dem Personennamen etwas weiter unten.

Transkribus bietet die Möglichkeit, jedes getaggte Element mit properties zu versehen, also bpw. den historischen Ortsnamen in der modernen Schreibweise wiederzugeben oder dem Personennamen eine gnd-Nummer zuzuordnen. Man kann auch weitere Properties erzeugen, meinetwegen Geodaten für Orte etc.

Angesichts der Textmenge, die wir verarbeiten, haben wir uns dafür entschieden, unseren Tags keine Properties zuzuweisen. Ledigklich die Ortsnamen werden, so gut es geht, identifiziert. Angestrebt ist dabei, dass wir bei der Präsentation im Viewer der Digitalen Biblitothek M-V die tag-values getrennt nach Personen und Orten neben dem jeweiligen Dokument anzeigen lassen können und dem Benutzer so eine systematische Navigation im Dokument ermöglichen.

Posted by Dirk Alvermann on

Tagging: wozu eigentlich? – wann und warum Tagging Sinn macht

Tagging erlaubt – zusätzlich zur Inhaltserschließung durch HTR – eine systematische Erschließung des Textes durch den späteren Benutzer. Anders als ein HTR-Modell, das seine Arbeit selbständig erledigt, muss das tagging größtenteils mauell erfolgen – ist also mit Aufwand verbunden. Bevor man also weitgreifende Pläne hinsichtlich des Taggings entwickelt, sollte eine realistische Aufwandsanalyse erfolgen.

Aufgrund der Menge des in unserem Projekt verarbeiteten Materials setzen wir das Tagging vorrangig dort ein, wo sie uns in der praktischen Arbeit am Text helfen. Das ist einmal beim Strukturtagging der Fall, wo mit Hilfe des Taggings und des daraus entwickelten P2PaLA die Layoutanalyse verbessert wird und dann natürlich auch beim taggen der textstyles im Falle von Streichungen und Schwärzungen, der Fall. Hier wird tagging also im Grunde „flächendeckend“ von uns eingesetzt. Fester Bestandteil unserer Transkriptionsregeln ist auch die Verwendung des „unclear“-Tags für Passagen, die vom Transcriber nicht korrekt gelesen werden können. Hier dient das Tag also eher der teaminternen Kommunikation.

Für die systematische Aufbereitung der Texte, für die bereits eine HTR durchgeführt wurde, experimentieren wir mit den Tags „person“ und „place“, um zumindest in dieser begrenzten Form eine systematische Erschließung anzubieten.

Posted by Dirk Alvermann on

Anwendungsfall: „Modell Booster“

Release 1.10.1

Unser Beispiel ist die Verbesserung unseres HTR-Modells für die Spruchakten. Das ist ein HTR-Modell, dass Kurrentschriften des 17. Jahrhunderts lesen kann. Auf der Suche nach einem möglichen Base Model findet man in den „public models“ von Transkribus zwei Kandidaten, die in Frage kommen: „German Kurrent M1+“ vom Transkribus Team und „German_Kurrent_XVI-XVIII_M1“ von Tobias Hodel. Beide könnten passen. Der Test auf dem Sample Compare ergibt allerdings, dass „German_Kurrent_XVI-XVIII_M1“ mit einer vorhergesagten mittleren CER von 9,3% auf unserem Sample Set die bessere Performance zeigte.

Für das Training wurde also „German_Kurrent_XVI-XVIII_M1“ als Base Model ausgewählt. Danach wurde der Ground Truth der Spruchakten (108.000 Wörter) und auch das Validation Set unseres alten Modells hinzugefügt. Die durchschnittliche CER unseres HTR-Modells hat sich nach dem Base Model Training erheblich verbessert, von 7,3% auf 6.6%. In der Grafik seht ihr, dass das Base Model auf dem Testset zwar wesentlich schlechter gelesen hat, als das Originalmodell, dass der Hybrid aus beiden aber besser ist als beide einzeln. Die Verbesserung des Modells ist in jedem einzelnen der getesteten Jahre zu beobachten und beträgt bis zu 1%.

Posted by Dirk Alvermann on

Modelle kombinieren

Release 1.10.1

Je länger man selbst HTR-Modelle trainiert, desto mehr beschäftigt man sich auch mit der Möglichkeit Modelle zu kombinieren. Es kann zum Beispiel sein, dass man mehrere Spezialmodelle für einzelne Schreiber oder auch Modelle, die auf besonderen Schriftarten oder Sprachen spezialisiert sind miteinander kombinieren möchte.

Ulm eine Kombination von Modellen zu erreichen gibt es verschiedenen Möglichkeiten. Hier möchte ich eine Technik vorstellen, die vor allem für sehr große generische Modelle aus meiner Erfahrung gut funktioniert – der „Model Booster“.

Dabei startet man ein Base Model Training und verwendet ein möglichst mächtiges fremdes HTR-Model als Base Model und den eigenen Ground Truth als Train Set. Bevor ihr startet aber noch zwei Ratschläge:

a) schaut euch genau die Eigenschaften des verwendeten Base Models an (für welche Zeit ist es Trainiert, für welchen Schriftstil und welche Sprache?) – sie müssen mit denen eures eigenen Materials möglichst übereinstimmen.

b) wenn möglich versucht die Performance des Base Models auf eurem eigenen Material vorherzusagen und entscheidet euch dann für das Base Model mit der besten Performance. Eine solche Vorhersage kann man recht über die Funktion Sample Compare machen. Eine andere Möglichkeit ist, das Basemodel mit dem Andvanced Compare auf dem eigenen Testset zu überprüfen.

Posted by Dirk Alvermann on

Anwendungsfall: Erweiterung und Verbesserung bestehender HTR-Modelle

Release 1.10.1

Im letzten Beitrag haben wir beschrieben, dass ein Base Model alles was es bereits “gelernt” hat, an das neue HTR-Modell weitergeben kann. Mit zusätzlichem Ground Truth kann das neue Modell dann seine Fähigkeiten erweitern und verbessern.

Hier nun ein typischer Anwendungsfall: In unserem Teilprojekt zu den Assessorenvoten des Wismarer Tribunals trainieren wir ein Modell mit acht verschiednene Schreibern. Das Train Set umfasst 150.000 Wörter, die CER lag beim letzten Training bei 4,09 %. Allerdings war die durchschnittliche CER für einzelne Schreiber viel höher als für andere.

Wir entschieden uns also für ein Experiment. Wir fügten 10.000 Wörter neuen GT für zwei der auffälligen Schreiber (Balthasar und Engelbrecht) hinzu und nutzten das Base Model und dessen Trainings- und Validation Set für das neue Training.

Das neue Modell hatte im Ergebnis eine durchschnittliche CER von 3,82 % – es hatte sich also verbessert. Was aber bemerkenswert ist, ist das nicht nur die CER für die beiden Schreiber verbessert wurde, für die wir neuen GT hinzugefügt hatten – in beiden Fällen um bis zu 1%. Auch die Zuverlässigkeit des Modells für die anderen Schreiber hat nicht gelitten, sondern sich im Gegenteil, ebenfalls verbessert.

Posted by Dirk Alvermann on

Auf den Schultern von Giganten: Training mit Basismodellen

Release 1.10.1

Wer generische HTR-Modelle entwickeln möchte, der kommt an der Arbeit mit Base Models nicht vorbei. Beim Training mit Base Models wird jeder Trainingsdurchgang für ein Modell auf der Grundlage eines bereits existierenden Modells, eben eines Base Models, durchgeführt. Das ist in der Regel das letzte HTR-Modell, das man in dem entsprechenden Projekt trainiert hat.

Base Models „erinnern“ sich an das, was sie bereits „gelernt“ haben. Daher verbessert auch jeder neue Trainingsdurchgang die Qualität des Modells (theoretisch). Das neue Modell lernt also von seinem Vorgänger und wird dadurch immer besser. Daher ist das Training mit Base Models auch für große generische Modelle, die über lange Zeit kontinuierlich weiterentwickelt werden, besonders geeignet.

Um ein Training mit Base Model durchzuführen, wählt man im Trainingstool – neben den üblichen Einstellungen – einfach ein bestimmtes Base Model aus. Danach fügt man aus dem Reiter HTR Model Data das Train Set und und das Validation Set (in früheren Transkribus-Versionen als Test Set bezeichnet) des Base Models ein, sowie das neue Trainings und Validation Set. Zusätzlich kann man dann noch weiteren neuen Ground Truth hinzufügen und anschließend das Training starten.