Die Größe einer invertierten Datei kann durch Komprimierung erheblich
reduziert werden. Im folgenden werden verschiedene Methoden vorgestellt, um
dies zu bewerkstelligen. Betrachten wir zunächst einen typischen Eintrag
aus einer invertierten Datei. Nehmen wir an, der Term Computer tritt
in acht Dokumenten -- diese seien nummeriert als 3, 5, 20, 21, 23, 76, 77, 78
-- einer Sammlung auf, so daß der entsprechende Eintag wie folgt aussieht:
Betrachten wir hierzu die in Abbildung 5 dargestellten
Möglichkeiten vorzeichenlose Integer-Zahlen zu kodieren. Bei dem Unärkode
wird eine Integer-Zahl als eine Folge der Länge
von
gesetzten Bits, gefolgt von einem Nullbit dargestellt. Offensichtlich neigt
dieser Kode dazu, kleine Differenzen in der Kodierung unserer Dokumentenliste
zu bevorzugen, was sich angesichts folgender Überlegungen als vorteilhaft
erweist. Man könnte nämlich davon ausgehen, daß häufige Terme kleine
Differenzen zwischen sich in der Liste haben, sonst wären sie ja nicht
häufig. Genauso werden aber seltene Terme große Differenzen in der
Darstellung zur Folge haben. Obwohl, wenn die Dokumente in ihrer
Eingabereihenfolge gespeichert werden, und diese Eingabereihenfolge eine
chronologische oder logische Bedeutung hat, so kann es sehr wohl sein, daß
seltene Terme zu lokalen Häufungen neigen, und sind nicht gleichmäßig
über die Dokumentensammlung verteilt. Die Praxis zeigt jedoch, daß die
Verwendung des Unärkodes keine Ersparnis mit sich bringt.
Es gibt eine Reihe weiterer Kodes, die eine bessere Speicherplatzersparnis
bieten. Einer ist der -Kode, der eine Zahl
als Unärkode für
gefolgt von einem Binärkode der Länge
Bits, der
darstellt,
kodiert. Der unäre Teil spezifiziert also die Anzahl Bits, die zur Kodierung
von
benötigt werden, und der binäre Teil kodiert
in dieser Anzahl
von Bits. Nehmen wir als Beispiel
, dann ist
, und so wird
im Unärkode als
dargestellt, gefolgt von
dargestellt als die 3-Bit Binärzahl
, welche
aneinandergehängt das Kodewort
ergeben.
Eine weitere Entwicklung ist der -Kode, bei welchem der Präfix zur
Beschreibung der Suffixbits der zuvor beschriebene
-Kode anstatt des
Unärkodes verwendet wird. Für dasselbe
wird der unäre Präfix
durch
, den
-Kode von
ersetzt. Folglich erhalten
wir für
den
-Kode
. Obwohl anhand der Tabelle aus
Abbildung 5 der
-Kode länger ist als der
-Kode, ändert sich dieses Verhalten für große
. So benötigt
der
-Kode 39 Bits für die Darstellung von
, wogegen
der
-Kode mit nur 28 Bits auskommt. Abbildung 6 zeigt
die vorgestellten Methoden im Vergleich, jeweils angewendet bei der Bibel und
bei der TREC-Kollektion.