• Keine Ergebnisse gefunden

Abbildung 8.8: Aufbau eines Kontexts.

anzahl festgelegt sein, wobei die beiden L¨angen |cpre|,|cpost| auch differieren k¨onnen.

Je ein Dokument wird zum Master- und zum Slave-Dokument gew¨ahlt. Da das Master-Dokument die resultierende Lesereihenfolge bestimmt, sollte bei der OCR-Groundtruth-Alignierung der Originaltext als Master gew¨ahlt wer-den und bei der Alignierung verschiewer-dener OCR-Engines, die in der Block-Segmentierungstechnik ¨uberlegene Engine. Das Kontextfenster wird schrittweise uber das Master-Dokument geschoben und aus dem Slave-Dokument wird dazu¨ der jeweils ¨ahnlichste Kontext gesucht.

8.5.2 Kontextabstandsmaß

Die ¨Ahnlichkeitsbestimmung zweier Kontexte kann mit Hilfe diverser String-Abstandsmaße erfolgen. Ich habe mich f¨ur den Levenshtein-Abstand entschie-den, da er auch an anderen Stellen der Arbeit eingesetzt wird und daher Im-plementierungen dazu vorhanden sind. Der Abstand zweier Kontexte setzt sich aus den Abst¨anden der Pr¨akontexte, der Zentralw¨orter und der Postkontexte zusammen:

d(c1, c2) =ω1·levlength(cpre1 , cpre2 )+ω2·levlength(w1, w2)+ω3·levlength(cpost1 , cpost2 ) Die drei Komponenten sind mit einer Gewichtungωi∈[0,1] versehen. Sind Pr¨ a-bzw. Postkontexte auf Worteben definiert und deren L¨ange >2 W¨orter, wird die String-Konkatenation der beiden Pr¨a- bzw. Postkontexte gebildet und de-ren Gesamtabstand berechnet. Der Abstand wird nicht paarweise zwischen den einzelnen W¨ortern berechnet, da ansonsten Splits und Merges auf Wortebene zu große Abst¨ande bewirken w¨urden. Da verschiedene Kontextabst¨ande auch untereinander vergleichbar bleiben sollen, ist der l¨angensensitiven Levenshtein-Abstand dem klassischen ¨uberlegen. Die Vergleichbarkeit verschiedener Kon-textabst¨ande wird z. B. zur Bestimmung einer oberen Schranke f¨ur die Alignie-rung ben¨otigt. Bedingt durch Wortl¨oschungen der OCR-Engine, o. ¨a. hat nicht jeder Kontext des Master-Dokuments eine Entsprechung im Slave-Dokument.

Fehlalignierungen, die aus dieser Situation entstehen k¨onnen, werden durch ei-ne obere Schranke verhindert.

8.5.3 Naive Implementierung

Um die prinzipielle Machbarkeit zu pr¨ufen, wurde der Algorithmus ad hoc in Java mit folgenden Parameterbelegungen implementiert:

• Die Kontextl¨ange wurde auf Wortebene gebildet. Es wurde|cpre|=|cpost|= 3 gew¨ahlt.

• Die Gewichtung wurde mitω123= 1 gew¨ahlt.

• Zur Beschleunigung wurde ein einfacher Grobfilter eingebaut. Wenn die Zentralw¨orter schon zu stark differieren, wird die Kontext¨ahnlichkeit nicht weiter gepr¨uft. Ein Slave-Kontextcslave wird nicht weiter betrachtet, falls levlength(wmaster, wslave)>2/3. Dieser Grobfilter ist gleichzeitig der ein-zige Test, ob ¨uberhaupt eine Zuordnung stattfindet. Allerdings k¨onnen damit nur L¨oschungen von W¨ortern erkannt werden, die nur einmal im Text auftreten und auch keinen zu ¨ahnlichen Verwechslungspartner im Text besitzen.

F¨ur die Dokumentenr¨ander wurde eine Spezialbehandlung eingebaut, da die Kontexte am Anfang bzw. Ende des Dokuments keinen Pr¨a- bzw. Postkontext haben. Ohne diese Vorkehrung treten Fehlalignierungen an diesen Stellen auf.

Die Implementierung wurde wie in 8.3.3 mit dem l¨angsten Dokument aus dem Korpus auf meinem Arbeitsplatzrechner getestet. Ohne Grobfilter ben¨otigt die Alignierung etwas mehr als eine Minute, mit Grobfilter knapp unter 9 Sekunden.

Der Ergebnisvergleich mit der Minimum-Edit-Distance-Alignierung hat vier Ab-weichungen aufgezeigt. Der naive kontextbasierte Algorithmus hat Probleme mit der korrekten Alignierung von Insertions, Merges und Splits.

8.5.4 Verbesserungspotential

Die Alignierungsprobleme, die OCR-Fehler auf Wortebene betreffen, k¨onnen in der Regel durch partnerlose Kontexte erkannt werden. Master-Kontexte oh-ne Alignierungspartoh-ner ermittelt der Algorithmus ohoh-ne weitere Vorkehrungen.

Markiert man bei jeder Zuordnung den Slave-Kontext, kann man am Ende un-markierte und damit partnerlose Slave-Kontexte bestimmen. Die verschiedenen OCR-Fehlertypen auf Wortebene im Einzelnen:

• Split. Betroffen sind ein Master-Kontext und zwei Slave-Kontexte. Das Resultat des naiven Algorithmus kann vielf¨altig ausfallen, ist aber immer falsch: Zuordnung einer der beiden Slave-Kontexte zum Master-Kontext, keine Zuordnung oder gar Fehlzuordnung. Im ersten Fall ist eine Heilung durch eine Analyse des Pr¨a- und Postkontexts im Slave-Kontext m¨oglich.

Es wird gepr¨uft, ob die Zuordnung des Slave-Zentralworts konkateniert mit dem letzten Wort des Pr¨a- bzw. mit dem ersten Wort des Postkontexts

¨ahnlicher zum Master-Zentralwort ist als das Slave-Zentralwort alleine.

Alternativ kann der gesamte Algorithmus um eine Phase erweitert werden, in der Slave-Kontexte mit zwei Zentralw¨ortern zu den Master-Kontexten

8.5. CONTEXT-MATCH-ALGORITHMUS 125 aligniert werden. Wird sowohl in der einfachen als auch in der erweiterten Phase zu einem Master-Kontext jeweils ein Slave-Kontext zugeordnet, ist eine Konfliktaufl¨osung erforderlich.

• Merge. Betroffen sind zwei Master-Kontexte und ein Slave-Kontext. Der naive Algorithmus liefert wie im Split-Fall diverse falsche Alignierungen:

Zuordnung des Slave-Kontexts zu einem der beiden Master-Kontexte wo-bei der zweite Master-Kontext fehl- oder leeraligniert ist, zwei Leeralignie-rungen, zwei Fehlalignierungen oder eine Leeralignierung und eine Fehlali-gnierung. Analog zum Split-Fall ist im ersten Fall eine Heilung durch eine Analyse des Pr¨a- und Postkontextes des Master-Kontexts m¨oglich. Zus¨ atz-lich muss noch der zweite Master-Kontext aus der Ergebnisliste entfernt werden. Alternativ kann ebenfalls analog zum Split-Fall eine weitere Phase eingef¨uhrt werden, in der Master-Kontexte mit zwei Zentralw¨ortern einfa-chen Slave-Kontexten zugeordnet werden. Auch f¨ur diese zus¨atzliche Phase ist i. Allg. eine Konfliktaufl¨osung f¨ur Mehrfachzuordnungen erforderlich.

• Deletion. Betroffen ist ein Master-Kontext. Der naive Algorithmus be-handelt diesen Fehler-Typ in der Regel richtig. Fehlalignierungen sind durch die Einstellung der Alignierungsschranke zu vermeiden.

• Insertion. Betroffen ist ein Slave-Kontext. Insertions lassen sich leicht auffinden, wenn man den naiven Algorithmus um eine Zuordnungsmarkie-rung erweitert. Am Ende bleibt nur noch das Problem der PositionieZuordnungsmarkie-rung der unmarkierten Slave-Kontexte. Dazu eignet sich am besten ein spezi-ell adaptierter Context-Match-Algorithmus, der nur Pr¨a- und Postkontext ohne Zentralwort aus dem Master-Dokument mit den verbleibenden Slave-Kontexten vergleicht.

Einfache Experimente auf OCR-Dokumenten mit Lesereihenfolgefehlern ha-ben gezeigt, dass die ad hoc Implementierung des Context-Match-Algorithmus im Gegensatz zum Minimum-Edit-Distance-Algorithmus auch diese Art von Do-kumenten einigermaßen alignieren kann (vgl. [44]). Allerdings ist die Zuordnung direkt vor und hinter jeder Sprungstelle der Lesereihenfolge nicht immer erfolg-reich. Hintergrund ist, dass direkt vor der Sprungstelle nur die Pr¨akontexte

¨

ubereinstimmen und direkt nach der Sprungstelle nur die Postkontexte. Eine Verbesserungsidee ist der Einsatz halber Kontexte. Mit folgender Auswahl zwi-schen Pr¨a- und Postkontext bei der Kontext- ¨Ahnlichkeitsbestimmung werden deutlich bessere Ergebnisse erzielt:

d(c1, c2) =ω1·max(levlength(cpre1 , cpre2 ), levlength(cpost1 , cpost2 ))+ω2·levlength(w1, w2) Folgende Beobachtung motiviert eine Optimierungsidee: Aus einer Kontext-zuordnung resultiert in den meisten F¨allen, dass auch die beiden jeweils fol-genden Kontexte zueinander korrespondieren. Dies gilt auch f¨ur Kontexte aus Dokumenten mit Lesereihenfolgevertauschungen. In den meisten F¨allen kann daher eine Suche auf allen Slave-Kontexten vermieden werden. Erst wird der

Folgekontext als Alignierungspartner gepr¨uft und nur wenn der Abstand zum Master-Kontext einen festgelegten Grenzwert ¨ubersteigt, wird die Suche auf das gesamte Slave-Dokument ausgeweitet.

8.5.5 Vergleich und Kombination mit dem Minimum-Edit-Distance-Algorithmus

Vereinfachend lasse ich bei den Komplexit¨atsbetrachtungen die Optimierungen außer Betracht. Zus¨atzlich wird vereinfachend angenommen, dass die ¨ Ahnlich-keitsberechnung zweier Kontexte mit konstantem Aufwand erfolgt. Durch den Vergleich jedes Kontexts des Master-Dokuments mit jedem Kontext des Slave-Dokuments resultiert dieselbe quadratische Zeitkomplexit¨at O(nn0) wie beim Minimum-Edit-Distance-Algorithmus. Die Speicherplatzkomplexit¨at ist hinge-gen linear, da im Speicher immer nur ein aktuell zu alignierender Master-Kontext und dazu alle Slave-Master-Kontexte mit ¨Ahnlichkeitswerten vorhanden sein m¨ussen.

In meiner Arbeit wird der Minimum-Edit-Distance-Algorithmus f¨ur die Ali-gnierungsaufgaben eingesetzt, da er f¨ur Splits, Merges, Deletions und Inser-tions eine saubere konzeptionelle L¨osung ohne Fehlalignierungen bietet. Der Context-Match-Algorithmus hingegen muss f¨ur diese relativ h¨aufigen OCR-Fehlertypen mit Heuristiken angereichert werden. Die Vorteile des Context-Match-Algorithmus gegen¨uber dem Minimum-Edit-Distance-Algorithmus spie-len f¨ur meine Aufgabenstellung eine untergeordnete Rolle:

• Robustheit gegen¨uber Lesereihenfolgefehler. Mein Korpus enth¨alt keine Dokumente, f¨ur die Lesereihenfolgefehler zu erwarten sind.

• Weniger Hauptspeicherplatzbedarf. In 8.3.3 wurde gezeigt, dass der Hauptspeicherbedarf f¨ur die Aufgabenstellung unkritisch ist.

• Skalierbarkeit auf mehrere Dokumente. Die Master-Slave-Anordnung erm¨oglicht eine einfache Erweiterung zur Alignierung von drei oder mehr Dokumenten, indem mehrere Slave-Dokumente eingesetzt werden. Einem Master-Kontext wird aus jedem Slave-Dokument ein Kontext zugeordnet.

Bei der Groundtruth-Zuordnung werden nur zwei Texte aligniert. Die Kombination von OCR-Engines wurde nur mit zwei Engines getestet.

F¨ur weitergehende Anwendungen ist eine Kombination der beiden Algorith-men sinnvoll, die die Vorteile der beiden vereint. Zwei Ans¨atze dazu:

• Als Basis wird der Minimum-Edit-Distance-Algorithmus mit seiner ¨ Uber-gangsmatrix verwendet. Wird beim Trace-Back ein vorgegebener Konfi-denzwert f¨ur den Alignierungsabstand ¨uberschritten, wird angenommen, dass eine Sprungstelle in der Matrix vorliegt, die mit Hilfe eines Maßes bzgl. der Kontextabst¨ande gesucht wird.

• Vorbereitend wird der Context-Match-Algorithmus verwendet und alle si-cheren Kontextzuordnungen im Dokument gesucht. Zwischen diesen

An-8.5. CONTEXT-MATCH-ALGORITHMUS 127