Für auf natürlichem Wege (z.B. durch Zeitungsjournalisten) generierte Zeichenreihen trifft derartiges nicht (notwendigerweise) zu. Aus diesem Grunde eignen sich Experimente zur Kompression natürlichsprachlicher Texte mit relativ hohem Informationsgehalt auch zur Aufweisung der Schranken des in diesem Kapitel verfolgten Ansatzes.
In Zusammenarbeit mit Stefan Heil (Student an der TUM) wurden (und werden gegenwärtig) daher Versuche zur adaptiven Komprimierung deutscher Sprache durchgeführt. Der zugrundeliegende Datensatz bestand aus 25 Zeitungstexten aus der Zeitung `Frankenpost'. Ein Text verfügte über zwischen 3000 und 10000 Zeichen.
Zur Bewertung der Ergebnisse bedienen wir uns des Begriffs des durchschnittlichen Kompressionsfaktors eines Textkompressionsalgorithmus. Darunter versteht man das durchschnittliche Verhältnis zwischen den Längen von Originaltexten und den Längen der entsprechenden komprimierten Texte. Um eine Vorstellung davon zu bekommen, was ein `guter' Textkompressionsalgorithmus ist, sei ein Satz aus [34] zitiert:
`In general, good algorithms can be expected to achieve an average compression ratio of 1.5, while excellent algorithms based upon sophisticated processing techniques will achieve an average compression ratio exceeding 2.0.'
Der wohl am weitesten verbreitete Textkompressionsalgorithmus ist der Lempel-Ziv Algorithmus [158], welcher u.a. auch die Grundlage der compress-Funktion des Betriebssytems UNIX bildet. Der Lempel-Ziv Algorithmus ist in einem gewissen informationstheoretischen Sinne optimal [154]. Sein durchschnittlicher Kompressionsfaktor beträgt für englischen Text etwas mehr als 2.0.
In den Experimenten wurde wie folgt vorgegangen:
Alle Kleinbuchstaben eines jeden Textes wurden
in die entsprechenden Großbuchstaben umgewandelt.
Als Prediktor
der untersten (und bei diesem
Experiment einzigen Stufe) wurde statt einem
rekurrenten Netz der Einfachheit ein azyklisches
BP-Netz und der `Zeitfensteransatz' verwendet.
Dabei versucht
aus je
aufeinanderfolgenden Zeichen das
erste
vorherzusagen. 42 Zeichen eines jeden Textes (Buchstaben,
Interpunktionszeichen und Ziffern) besaßen dabei
jeweils eine eindeutige lokale Eingaberepräsentation als
43-dimensionale Binärvektoren, bei denen jeweils eine
einzige Komponente gleich 1 und alle anderen
Komponenten gleich 0 waren.
Der dreiundvierzigste mögliche Binärvektor der Länge
1 diente zur Repräsentation aller anderen Zeichen.
Der Nullvektor diente zur Repräsentation des `Defaultzeichens' -
jedem Text wurden am Anfang
derartige Defaultzeichen
vorangestellt.
verfügte über
Eingabeknoten,
versteckte
Knoten und 43 Ausgabeknoten. Die Eingabelage war vollständig
mit der `versteckten Lage' vernetzt, die versteckte Lage war vollständig
mit der Ausgabelage vernetzt.
Zur Textverarbeitung wurde das Eingabefenster
sequentiell über den Text geschoben -
erhielt also
zunächst die ersten
Zeichen als Eingabe, daraufhin das zweite
bis zum
ersten Zeichen, und so fort bis zum Textende.
Als deterministische Vorhersage des Prediktors galt jeweils
dasjenige Zeichen, dessen Repräsentation den geringsten
euklidischen Abstand zum rellwertigen Ausgabevektor von
besaß. Während der Textverarbeitung wurde ein komprimiertes File
erzeugt, in das nur die vom Prediktor nicht vorhergesagten Zeichen
sowie eine Repräsentation der Zahl der Zeichen, die seit
dem jeweils letzten unvorhersagbaren Zeichen aufgetreten waren,
geschrieben wurden. Aus dem komprimierten File ließ sich das
Originalfile mit Hilfe des Prediktors durch eine entsprechende inverse
`uncompress'-Funktion also wieder vollständig
rekonstruieren.
20 der 25 Textfiles dienten zum Training, 5 ausschließlich zum
Testen der Performanz.
In andauernden Versuchen sollen
verschiedene Zeitfensterbreiten
getestet werden.
Signifikante Resultate existieren wegen der zeitaufwendigen
Trainingsphase bisher erst für
: Bei einer Lernrate von 0.2 sowie
bei 50 Durchgängen durch die Trainingsfiles lernte
, 60 Prozent
der Buchstaben der Trainingstexte und 47 Prozent der Buchstaben
der Testtexte korrekt vorherzusagen (interessant
ist natürlich vor allem der Wert für die unbekannten Testtexte).
Aufgrund des
zusätzlichen Speicheraufwands für
die Repräsentationen der Zahl der Zeichen, die seit
dem jeweils letzten unvorhersagbaren Zeichen aufgetreten waren,
entsprach dies allerdings nicht einer Kompression auf 53 Prozent
der Originaltextlänge, sondern lediglich einer Verkürzung auf
64 Prozent. Durch anschließendes einfaches `Huffman-Coding'
(siehe z.B. [34])
des komprimierten Files mit Hilfe der UNIX Funktion pack
konnte jedoch für unbekannte Texte ein Kompressionsfaktor
von insgesamt über 2 erreicht werden.
Schon für
schnitt dieses hybride Verfahren damit so gut
oder gar besser ab als der Lempel-Ziv Algorithmus,
welcher bei den Zeitungstexten auf einen Kompressionsfaktor von
durchschnittlich nur knapp 2.0 kam.
Die durch das Netzwerk erzielten Resultate
wurde auch verglichen mit durch Stefan Heil als menschlichem
Testsubjekt erhaltenen Werten. Heil versuchte sich darin, aus
aufeinanderfolgenden zufällig aus dem Datensatz ausgewählten
Buchstaben den
ersten zu prophezeihen.
Er erhielt die folgenden Resultate:
Für
50 Prozent korrekte Vorhersagen,
für
60 Prozent korrekte Vorhersagen,
für
68 Prozent korrekte Vorhersagen.
Für
erreichte
das adaptive Netzwerk also nicht ganz die Performanz
des menschlichen Testers, die Ergebnisse waren jedoch zumindest
vergleichbar. Es besteht die Hoffnung, daß
KNN für
ähnlich gut mit der menschlichen Performanz
mithalten können, was als Nebenprodukt
dieser Untersuchungen ein neuartiges, für praktische
Anwendungen interessantes Textkompressionsverfahren zur Folge
hätte, welches manche Texte wesentlich besser komprimieren könnte
als der Lempel-Ziv Algorithmus.
Obige Experimente zeigen, daß natürlichsprachliche deutsche Texte zwar einen bedeutenden Teil lokal entdeckbarer Redundanz aufweisen, daß die durch Entfernung lokal entdeckbarer Redundanz gewonnenen Kompressionserfolge jedoch erheblich hinter denen mit gewissen einfacheren künstlichen Satzgeneratoren zu erzielenden Resultaten (siehe den vorangegangenen Abschnitt) zurückstehen können. Dieses Ergebnis war zu erwarten: Je mehr algorithmische Information (siehe e.g. [17]) in gewissen Zeichenreihen enthalten ist, desto weniger lassen sie sich durch Geschichtskompression oder irgendein anderes Kompressionsverfahren komprimieren. Das Extrem ist natürlich durch auf rein zufälligem Wege generierte Zeichenreihen gegeben: In diesem Falle lassen sich auf Grund der maximalen algorithmischen Information i.a. überhaupt keine Kompressionserfolge erzielen.
Es bleibt zu untersuchen, welche Domänen der `Echtwelt' sich besonders zur Redundanzreduzierung durch Geschichtskompression eignen. Ein hohes Maß an Redundanz ist beispielsweise in Schwarzweißbildern typischer visueller Szenen (und erst recht in typischen Sequenzen aufeinanderfolgender derartiger Schwarzweißbilder) enthalten. Nach kleineren, auf die Zweidimensionalität von Bilddaten zugeschnittenen Modifikationen des Prinzips der Geschichtskompression könnten sich hier vielversprechende Möglichkeiten ergeben.