Erkennung von Dokumentstrukturen

Rolf Brugger
rolf.brugger@unifr.ch

1. EINLEITUNG

Die Erkennung der logischen Stuktur gedruckter Dokumente ist ein Teilproblem des Projektes CIDRE. Das Ziel ist die Implementierung eines Moduls, das in Zusammenarbeit mit anderen Modulen wie Zeichenerkennung, Fonterkennung, Wörterbüchern, syntaktischen Verifizierern usw. die logische Struktur von eingescannten Dokumenten zu erkennen versucht und in ein geeignetes Format (SGML, LaTeX oder ODA) übersetzt.

Es hat sich gezeigt, dass klassische Ansätze der Strukturerkennung sich nur schwer mit den Anforderungen der CIDRE-Architektur vereinigen lassen. Insbesondere das interaktive und inkrementelle Erlernen der Struktur von Dokumentklassen und ebenso die nicht-sequentielle Architektur von CIDRE bereiten erhebliche Probleme. Aus diesen Gründen sollen alternative Ansätze gesucht und evaluiert werden.

Ich möchte hier in aller Kürze die Grundideen eines ersten Alternativansatzes vorstellen. Um ihn vorläufig bewerten zu können, wurde auch ein kleiner Prototyp implementiert.

2. LERNEN LOGISCHER STRUKTUREN

In der hier vorgestellten Methode wird davon ausgegangen, dass zunächst einige Lernsamples dem System zur Verfügung stehen. Ein Lernsample ist eine Baumstruktur, die die logische Stuktur eines Dokumentausschnittes repräsentiert. Die Knoten in dieser Baumstruktur stehen für logische Entitäten wie "Titel", "Absatz", "Fussnote", "Kapitel" usw. Für jede präsentierte logische Entität wird der Kontext und der Inhalt analysiert. Der Kontext sagt beispielsweise aus, dass sich ein Titel in einem Kapitel befindet oder dass auf einen Absatz ein weiterer Absatz folgt, der Inhalt hingegen besagt z.B. dass ein Kapitel Titel und Absätze enthält. Die so gewonnenen Daten werden statistisch aufbereitet und in generischen Entitäten abgelegt. So sollte demnach beispielsweise die generische Entität "Titel" möglichst genau und trotzdem allgemein alle möglichen konkreten Titel beschreiben, indem die normalerweise angetroffenen Nachbarschaftsbeziehungen eines Titels beschrieben werden.

3. ERKENNEN LOGISCHER STRUKTUREN

Die Erkennung läuft so ab, dass einige Module wie z.B. Font- und Zeichenerkennung Vorschläge über den Inhalt eines eingescannten Dokumentes machen. Das Strukturerkennungsmodul versucht diese Zwischenresultate in eine Baumstruktur zu integrieren, die die logische Dokumentenstruktur darstellt. Die Knoten in diesem Baum sind Instanzen der generischen Entitäten, die aus dem Lernvorgang stammen. Für einen so erzeugten Baum lässt sich eine Spannung oder Energie berechnen, die ein Mass für seine Kohärenz ist. Eine hohe Spannung zwischen zwei benachbarten Knoten ergibt sich, wenn die Häufigkeit dieser Nachbarschaft in den Lenrsamples klein war (Diese Häufigkeit lässt sich ja aus den Nachbarschaftsbeschreibungen der generischen Entitäten ablesen). Es gilt also einen Baum für die logische Struktur zu finden, dessen Spannung minimal ist und der nicht im Widerspruch steht zu den Randbedingungen - also den Zwischenergebnissen aus z.B. Font- und Zeichenerkennung.

Sollte sich in einem Baum eine Spannung in einer Gruppe benachbarter Knoten nicht auflösen lassen, so gibt es zwei Möglichkeiten darauf zu reagieren. Einerseits könnte die Wissensbasis, die durch die generischen Entitäten repräsentiert wird unvollständig sein, und der Benutzer muss für einen weiteren Lerndurchgang konsultiert werden. Andererseits sind möglicherweise die Randbedingungen nicht korrekt und das System könnte z.B. von der Fonterkennung einen Alternativvorschlag für den Font eines speziellen Wortes anfordern. Beide Reaktionen stehen im Einklang mit wichtigen Prämissen von CIDRE: Interaktivität, Fehlertoleranz und nicht-sequentielle Architektur.

4. DISKUSSION

Da die genaue Spezifizierung des hier vorgestellten Ansatzes erst angefangen hat und erst wenige Testergebnisse vom Prototypen vorliegen, ist eine eingehende Diskussion verfrüht. Dennoch lassen sich einige nicht weiter belegbare Aussagen machen:

Bibliographie