Category Archives

67 Articles

Posted by Elisabeth Heigl on

Abbreviaturen

Release 1.9.1

Mittelalterliche und frühneuzeitliche Handschriften weisen in der Regel Abbreviaturen auf, also Abkürzungen in jeglicher Form. Das können sowohl Kontraktionen (Auslassung im Wort) und Suspensionen (Auslassung am Wortende) sein als auch die unterschiedlichsten Sonderzeichen. Sobald wir also alte Handschriften transkribieren wollen, müssen wir uns überlegen, wie wir die Abbreviaturen wiedergeben möchten: Geben wir alles so wieder, wie es im Text erscheint, oder lösen wir alles auf – oder passen wir uns den Kapazitäten der HTR an?

Für den Umgang mit Abbreviaturen in Transkribus gibt es grob gesehen drei verschiedene Möglichkeiten:

– Ihr könnt versuchen Abbreviaturzeichen als Unicode-Zeichen wiederzugeben. Viele der in lateinischen und deutschen Handschriften des 15. und 16. Jahrhunderts gebräuchlichen Abbreviaturzeichen findet ihr im Unicode block „Latin Extended-D“. Solche Unicode-Lösungen für Sonderzeichen in mittelalterlichen lateinischen Texten findet ihr bei der Medieval Unicode Font Initiative. Ob und wann dieser Weg sinnvoll ist, muss man aufgrund der Ziele des eigenen Projektes entscheiden. Auf jeden Fall ist dieser Weg recht aufwendig.

– Wenn ihr nicht mit Unicode-Zeichen arbeiten möchtet, könntet ihr auch den im Abbreviaturzeichen erkannten „Grundbuchstaben“ aus dem regulären Alphabet nutzen. Das wäre dann praktische wie eine litterale Transskription. So ein „Platzhalter“ kann dann mit einem textual tag versehen werden, der das Wort als Abbreviatur auszeichnet („abbrev“). Die Auflösung der so getaggten Abbreviatur kann dem tag als Eigenschaft unter „expansion“ eingegeben werden.

Die Auflösung der Abbreviatur wird also Bestandteil der Metadaten. Dieser Weg bietet die meisten Möglichkeiten für die Nachnutzung des Materials. Aber auch er ist mühsam, denn es muss wirklich jede Abbreviatur getaggt werden.

– Oder ihr löst die Abbreviaturen einfach auf. Wenn man – wie wir – große Mengen Volltext durchsuchbar bereitstellen möchte, macht eine konsequente Auflösung der Abbreviaturen Sinn, weil sie die Suche erleichtert. Wer sucht schon nach „pfessores“ statt nach „professores“?

Wir haben die Erfahrung gemacht, dass die HTR mit Abbreviaturen recht gut umgehen kann. Sowohl die klassischen lateinischen und deutschen Abbreviaturen, als auch Währungszeichen oder andere Sonderzeichen. Daher lösen wir die meisten Abbreviaturen schon während der Transskription auf und benutzen sie als Bestandteil des Ground Truth im HTR-Training.

Die von uns trainierten Modell haben einige Abbreviaturen sehr gut erlernt. Die in den Handschriften häufig verwendeten Verkürzungen, wie die auslaufende en-Endung können von einem HTR-Modell aufgelöst werden, wenn es ihm konsequent beigebracht wurde.

Komplexere Abbreviaturen – vor allem die Kontraktionen – bereiten der HTR dagegen Schwierigkeiten. In unserem Projekt haben wir uns daher dafür entschieden, solche Abbreviaturen nur literal wiederzugeben.

Welche Abbreviaturen uns in unserem Material aus dem 16. Bis 18. Jahrhunderts begegnen und wie wir (und später die HTR-Modelle) sie auflösen, seht ihr in unserer Abbreviaturensammlung, die von uns – work in progress! – stets erweitert wird.

Posted by Dirk Alvermann on

Wörterbücher

Release 1.7.1

HTR benötigt keine Wörterbücher. Dennoch gibt es sie auch hier und sie können wahlweise zugeschaltet werden, wenn man eine Volltexterkennung durchführt.

Bei jedem HTR-Training, kann aus dem GT im Trainingsset ein Wörterbuch generiert werden, in dem auch die Häufigkeit, mit der ein Wort vorkam, hinterlegt ist. Es ist also möglich, ein passendes Wörterbuch für jedes Modell bzw. für die Textart mit der man arbeitet zu erzeugen.

Insgesamt werden Wörterbücher in Transkribus aber selten benutzt. In unserem Projekt werden sie nur zu Beginn der Arbeit an neuen Modellen eingesetzt. So lange das Modell, das verbessert werden soll noch eine CER von mehr als 8% aufweist, ist nämlich das Korrigieren der von der HTR erkannten Texte sehr aufwendig. Setzt man an dieser Stelle ein Wörterbuch ein, lässt sich die CER manchmal bis auf 5% senken. Hat das Modell bereits eine CER unter 8%, ist der Einsatz von Wörterbüchern kontraproduktiv, weil sich das Leseergebnis dann häufig wieder verschlechtert. Die HTR ersetzt dann manchmal „wider besseres Wissen“ ihr eigenes Leseergebnis gegen eine Empfehlung, die sich aus dem Wörterbuch ergibt.

Wir setzen Wörterbücher nur zur Unterstützung von sehr schwachen Modellen ein. Und wir tun das auch eher, um den Transcriber bei besonders schwierigen Schriften eine Hilfestellung zu geben. So haben wir ein Wörterbuch bei der Erstellung des GT für die wirklich kaum lesbaren Konzeptschriften eingesetzt. Die Ergebnisse mussten natürlich in jedem Fall korrigiert werden. Aber die „Leseempfehlungen“ die aufgrund der HTR mit Wörterbuch entstanden, waren eine gute Hilfe. Sobald unser Modell in der Lage war, auch Konzeptschriften mit unter 8% CER zu erkennen, haben wir auf den Einsatz des Wörterbuches verzichtet.

Posted by Dirk Alvermann on

Sprachen

Release 1.7.1

HTR benötigt keine Wörterbücher und funktioniert auch unabhängig von der Sprache in der ein Text verfasst ist – solange nur das Zeichensystem verwendet wird, auf das das benutzte Modell trainiert ist.

Für die Trainingsstrategie in unserem Projekt bedeutet das, dass wir zwischen lateinischen und deutschen Texten oder niederdeutschen und hochdeutschen Texten bei der Auswahl des Trainingsmaterials nicht unterscheiden. Wir konnten bisher in der Qualität der HTR-Ergebnisse keine gravierenden Unterschiede zwischen Texten in beiden Sprachen feststellen.

Für historische Handschriften aus dem deutschen Sprachraum ist diese Beobachtung wichtig. Denn üblicherweise ändert sich mit der verwendeten Sprache innerhalb eines Dokuments hier auch die Schrift. Die meisten Schreiber des 16. bis 18. Jahrhunderts wechseln, wenn sie vom Deutschen zum Lateinischen übergehen, mitten im Text von der Kurrentschrift zur lateinischne Schreibschrift (Antiqua). Das ist – in den Augen der Maschine – ein anderes Zeichensystem. Anders als bei der OCR, wo die gemischte Verwendung von Fraktur und Antiqua in neuzeitlichen Drucken große Schwierigkeiten bereitet, hat die HTR – sofern sie darauf traniert ist – mit diesem Wechsel kein Problem.

Ein typisches Beispiel aus unserem Material, das hier mit einem Vergleich der Textversionen von HTR-Ergebnis und GT, versehen ist, kann das verdeutlichen. Die Fehlerquote in dem sich sprachlich unterscheidenden Textabschnitten der Seite ist durchaus vergleichbar. Zum Einsatz kam das Modell Spruchakten M 2-8 sowie M 3-1. Während das erstere ein Gesamtmodell ist, ist das zweite für Schriften von 1583 bis 1627 trainiert.

Posted by Anna Brandt on

Layout-Reiter

Release 1.7.1

Wenn ihr die Layoutanalyse korrigiert, könnt ihr dies einmal im Image direkt machen oder ihr navigiert über den Layout-Reiter auf der linken Seite. Dort werden alle Formen, wie die Textregions und die Baselines, mit ihrer Position im Image und ihren Strukturtags angezeigt. Es ist möglich Formen zu löschen oder zu verschieben. Im Image seht ihr dabei immer, wo ihr euch gerade befindet, welches Element gerade markiert ist und was ihr also verändert könnt.

Wenn ihr zwei Baselines zusammenfügen möchtet, könnt ihr sie im Layout-Reiter markieren statt im Image zu versuchen die schmale Linie zu treffen.

Die Navigation im Reiter ist vor allem dann praktisch, wenn ihr das Image im rechten Fenster dabei komplett sehen wollt. Ihr behaltet so einen besseren Überblick, da alles im Image und im Reiter gleichzeitig geändert wird.

Tipps & Tools
Die Reading Order der Baselines könnt ihr entweder verändern indem ihr die Lines im Layoutreiter verschiebt oder durch anklicken und ändern der Zahl in der Spalte „Reading Order“.

Posted by Dirk Alvermann on

Mixed Layouts

Release 1.7.1

Die CITlab Advanced Layout Analysis kommt mit den meisten „ordentlichen“ Layouts in über 90% der Fälle gut zurecht. Reden wir hier also über die anderen 10%.

Wie man vorgeht, um sich Ärger mit der Reading Order zu ersparen, hatten wir schon besprochen. Aber was passiert, wenn wir es mit wirklich gemischten – verrückten – Layouts zu tun bekommen, z. B. bei Konzepten?

Bei komplizierten Layouts werdet ihr schnell merken, dass die manuell gezogenen TRs sich überlappen. Das ist nicht gut – denn in solchen überlappenden Textregionen funktioniert die automatische Line Detection nicht zuverlässig. Auch dieses Problem lässt sich leicht beheben, denn TRs müssen nicht nur viereckig sein. Sie können als Vielecke (Polygons) gezogen werden und sind dadurch leicht voneinander abzugrenzen.

Es ist sinnvoll, dass ihr diese vielen Textregionen mit strukturellen Tags verseht, um sie besser auseinanderhalten zu können und um sie bei der späteren Weiterverarbeitung evtl. bestimmten Verarbeitungsroutinen zuzuweisen. Das ist ein kleiner Aufwand mit großem Nutzen, denn das Strukturtagging ist nicht aufwendiger, als das Tagging im Kontext.

Tipps & Tools
Eine echte Herausforderung kann hier die automatische Line Detection sein. Abschnitte, bei denen Ihr schon (mit ein wenig Erfahrung) vorhersehen könnt, dass das nichts wird, bearbeitet ihr am besten manuell. Bei der automatischen Line Detection sollte CITlab Advanced so konfiguriert werden, dass die Default Einstellung gegen „Heterogeneous“ getauscht wird. Die LA wird jetzt sowohl waagerechte als auch senkrechte oder schiefe und schräge Zeilen berücksichtigen. Das dauert zwar etwas länger, aber dafür ist das Ergebnis auch besser.

Sollten solche komplizierten Layouts ein durchgängiges Merkmal eures Materials sein, dann lohnt es sich ein P2PaLA-Training zu konzipieren. Damit schafft ihr Euch ein eigenes Layout-Analyse-Modell, das für die spezifischen Herausforderungen eures Materials zugeschnitten ist. Für ein solches Training ist das Strukturtagging übrigens die Grundvoraussetzung.

Posted by Elisabeth Heigl on

Gesamtmodell oder Spezialmodell

Ist dir in dem Diagramm zur Modellentwicklung aufgefallen, dass die Zeichenfehlerquote (CER) des letzten Modells wieder etwas schlechter wurde? Und das, obwohl wir den GT-Input deutlich gesteigert hatten? Wir hatten rund 43.000 mehr Wörter im Training aber eine Verschlechterung der durchschnittlichen CER von 2,79 auf 3,43 %. Erklären konnten wir uns das nicht so richtig.

An dieser Stelle kamen wir mit immer mehr GT doch nicht so richtig weiter. Wir mussten also unsere Trainings-Strategie ändern. Bisher hatten wir Gesamtmodelle trainiert, mit Schriften aus einem Gesamtzeitraum von 70 Jahren und von über 500 Schreibern.

Unser erster Verdacht fiel auf die Konzeptschriften, von denen wir schon wussten, dass die Maschine (LA und HTR) – wie wir auch – damit ihre Probleme hat. Beim nächsten Training schlossen wir deshalb diese Konzeptschriften aus und trainierten also nur mit „sauberen“ Kanzleischriften. Eine auffällige Verbesserung brachte das aber nicht: die Test Set-CER sank von 3,43 auf gerade einmal 3,31 %.

Im den darauf folgenden Trainings setzten wir dann zusätzlich auf eine chronologische Sequenzierung der Modelle. Wir teilten unser Material und erstellten zwei verschiedene Modelle: Spruchakten_M_3-1 (Spruchakten 1583-1627) und Spruchakten_M_4-1 (Spruchakten 1627-1653).

Mit den neuen Spezialmodellen erreichten wir tatsächlich wieder eine Verbesserung der HTR – wo das Gesamtmodell nicht mehr ausgereicht hatte. In den Testsets wiesen jetzt etliche Seiten eine Fehlerquote von unter 2 % auf. Im Fall des M_4-1er Modells blieben viele Seiten-CERs unter 1 % und zwei Seiten sogar fehlerfrei mit 0 %.

Ob ein Gesamt- oder Spezialmodell weiterhilft und die besseren Ergebnisse bringt, hängt natürlich sehr vom Umfang und der Zusammenstellung des Materials ab. Am Anfang, wenn du noch „Masse machen“ willst (viel hilft viel) lohnt sich ein Gesamtmodell. Wenn das aber an seine Grenzen kommt, solltest du die HTR nicht weiter „überfordern“ sondern stattdessen deine Modelle spezialisieren.

Posted by Dirk Alvermann on

Warum Testsets wichtig sind und wie man sie anlegt, #2

Release 1.7.1

Wie geht man nun praktisch vor, um Testsets anzulegen?

Da kann letztlich jeder seinen eigenen Weg finden. In unserem Projekt werden die Seiten für die Testsets bereits während der Erstellung des GT ausgewählt. Sie erhalten einen besonderen edit status (Final) und werden später in separaten Dokumenten zusammengefasst. So ist gesichert, dass sie nicht aus Versehen ins Training geraten. Immer wenn neuer GT für das künftige Training erstellt wird, wird also auch zugleich das Material für das Testset erweitert. Beide Sets wachsen also „organisch“ und proportional.

Für das systematische Training erstellen wir mehrere Documents, die wir als „Testsets“ bezeichnen und die jeweils auf eine Spruchakte (einen Jahrgang) bezogen sind. Zum Beispiel erstellen wir für das Document der Spruchakte 1594 also ein „Testset 1594“. Hierein legen wir repräsentativ ausgewählte Images, die möglichst die Schreibervielfalt abbilden sollen. Im „Mutter-Dokument“ markieren wir die für das Testset ausgewählten Seiten als „Final“, um sicher zu gehen, dass sie dort auch weiterhin nicht bearbeitet werden. Wir haben nicht für jedes Jahr ein eigenes Testet erstellt, sondern sind in Abhängigkeit des Materials in Fünfjahresschritten vorgegangen.

Da ein Modell häufig über viele Durchgänge trainiert wird, hat dieses Vorgehen auch den Vorteil, dass das Testset immer repräsentativ bleibt. Die CERs der unterschiedlichen Versionen eines Modells lassen sich also stets vergleichen und in der Entwicklung beobachten, weil der Test immer auf demselben (oder erweiterten) Set ausgeführt wird. So ist es leichter die Fortschritte eines Modells zu beurteilen und die weitere Trainingsstrategie sinnvoll anzupassen.

Im Übrigen wird in Transkribus nach jedem Training das dafür verwendete Testset in der betroffenen Kollektion selbständig gespeichert. Man kann also immer wieder darauf zurückgreifen.

Es gibt auch die Möglichkeit, ein Testset erst kurz vor der Durchführung des Trainigs auszuwählen und einfach aus dem Trainingsmaterial einzelne Seiten der Dokumente dem Testset zuzuordnen. Das mag für den Einzelfall eine schnelle und pragmatische Lösung sein, ist für den planmäßigen Aufbau mächtiger Modelle aber nicht geeignet.

Posted by Dirk Alvermann on

Warum Testsets wichtig sind und wie man sie anlegt, #1

Release 1.7.1

Wenn wir überprüfen wollen, wieviel ein Modell im Training gelernt hat, müssen wir es auf die Probe stellen. Das tun wir mit Hilfe von möglichst genau definierten Testsets. Testsets enthalten – wie das Trainingsset – ausschließlich GT. Allerdings stellen wir sicher, dass dieser GT niemals für das Training des Modells verwendet wurde. Das Modell „kennt“ dieses Material also nicht. Das ist die wichtigste Eigenschaft von Testsets. Denn eine Textseite, die schon einmal als Trainingsmaterial diente, wird vom Modell immer besser gelesen werden, als eine, mit der es noch nicht „vertraut“ ist. Das kann man experimentell leicht überprüfen. Will man also valide Aussagen über die CER und WER erhalten, benötigt man „nicht korrumpierte“ Testsets.

Fast genauso wichtig ist, dass ein Testset repräsentativ ist. Solange man ein HTR-Modell für einen einzigen Schreiber oder eine individuelle Handschrift trainiert, ist das nicht schwer – es ist ja schließlich immer dieselbe Hand. Sobald mehrere Schreiber im Spiel sind, muss darauf geachtet werden, dass möglichst alle individuellen Handschriften die im Trainingsmaterial verwendet werden, auch im Testset enthalten sind. Je mehr unterschiedliche Handschriften in einem Modell trainiert werden desto größer werden die Testsets.

Der Umfang des Testsets ist ein weiterer Faktor, der die Repräsentativität beeinflusst. In der Regel sollte ein Testset 5-10% des Umfangs des Trainingsmaterials enthalten. Diese Faustregel sollte aber immer an die spezifischen Anforderungen des Materials und der Trainingsziele angepasst werden.

Um das einmal an zwei Beispielen zu erläutern: Unser Modell für die Spruchakten von 1580 bis 1627 wurde mit einem Trainingsset von fast 200.000 Wörtern trainiert. Das Testset beinhaltet 44.000 Wörter. Das ist natürlich ein sehr hoher Anteil von fast 20%. Er ist darauf zurückzuführen, dass in diesem Modell etwa 300 unterschiedliche Schreiberhände trainiert wurden, die im Testset auch repräsentiert sein müssen. – In unserem Modell für die Assessorenvoten des Wismarer Tribunals sind etwa 46.000 Wörter im Trainingsset enthalten, das Testset umfasst lediglich 2.500 Wörter, also ein Anteil von etwa 5%. Wir haben es hier allerdings auch nur mit 5 verschiedenen Schreiberhänden zu tun. Für die Repräsentativität des Testsets genügt das Material also.

Posted by Dirk Alvermann on

Word Error Rate & Character Error Rate – woran sich ein Modell messen lässt

Release 1.7.1

Die Word Error Rate (WER) und Character Error Rate (CER) zeigen an, wie hoch der Textanteil einer Handschrift ist, den das angewendete HTR-Modell nicht korrket gelesen hat. Eine CER von 10% bedeutet also, dass jedes zehnte Zeichen (und das sind nicht nur Buchstaben, sondern auch Interpunktionen, Leerzeichen etc.) nicht richtig erkannt wurde. Die Accuracy Rate läge demnach bei 90 %. Von einem guten HTR-Modell kann man sprechen, wenn 95% einer Handschrift korrekt erkannt wurde, die CER also nicht über 5% liegt. Das ist in etwa auch der Wert, den man heute mit „schmutziger“ OCR bei Frakturschriften erziehlt. Im Übrigen entspricht eine Accuracy Rate von 95% auch den Erwartungen, die in den DFG-Praxisregeln Digitalisierung formuliert sind.

Selbst bei einer guten CER kann die Word Error Rate hoch sein. Die WER zeigt, wie gut die wortgenaue Wiedergabe des Textes ist. In Aller Regel liegt die WER um das drei bis vierfache höher als die CER und verhält sich proportional zu ihr. Der Wert der WER ist nicht besonders aussagekräftig für die Qualität des Modells, denn anders als Zeichen, sind Wörter unterschiedlich lang und gestatten keine gleichermaßen eindeutigen Vergleich (ein Wort ist schon falsch erkannt, wenn ein Buchstabe darin falsch ist). Darum wird sie auch seltener benutzt, um den Wert eines Modells zu charakterisieren.

Die WER gibt aber Hinweise auf einen wichtigen Aspekt. Denn wenn ich eine Texterkennung mit dem Ziel durchführe, später eine Volltextsuche in meinem Dokuemnt durchzuführen, dann zeigt mir die WER genau die Erfolgsquote, mit der ich bei meiner Suche rechnen kann. Gesucht wird ja nach Worten oder Wortteilen. Egal also wie gut meine CER ist: bei einer WER von 10% kann potentiell jeder zehnte Suchbegriff nicht gefunden werden.

 

Tipps & Tools
Am einfachsten lässt sich die CER und WER mithilfe der Compare Funktion unter Tools anzeigen. Hier könnt ihr bei einer oder mehreren Seiten eine Ground Truth Version mit einem HTR-Text vergleichen und so die Qualität des Modells einschätzen.

Posted by Elisabeth Heigl on

Viel hilft viel – wie komme ich an immer mehr GT?

Release 1.7.1

Damit das Modell die Vorlagen möglichst genau wiedergeben kann, braucht es zum Lernen möglichst viel Ground Truth; viel hilft viel. Aber wie kommt man an möglichst viel GT?

Es ist ganz schön zeitaufwändig viel GT zu produzieren. Als wir am Anfang unseres Projektes und des Modelltrainings standen, haben wir in einer Stunde gerade einmal 1 bis 2 Seiten geschafft. Das sind durchschnittlich 150 bis 350 Wörter pro Stunde.

Fünf Monate später hatten wir aber schon knapp 250.000 Wörter im Training. Wir hatten weder eine Heerschar von Transcribern noch musste einer Tag und Nacht GT schreiben. Alleine die exponentielle Verbesserung der Modelle selbst ermöglichte es uns immer mehr GT zu produzieren:

Je mehr GT du investierst, desto besser wird dein Modell. Je besser dein Modell liest, desto leichter wird das Schreiben von GT. Du musst jetzt nämlich nicht mehr selbst schreiben, sondern lediglich die HTR korrigieren. Mit Modellen die eine durchschnittliche Fehlerquote unter 8 % aufweisen, haben wir ca. 6 Seiten pro Stunde geschafft.

Je besser das Modell liest, desto mehr GT kann produziert werden und je mehr GT vorhanden ist, desto besser wird das Modell. Was ist das Gegenteil von einem Teufelskreis?