Wie schlau ist Google?
Suchmaschinen durchsuchen mit einer wahnsinnigen Geschwindigkeit unglaublich viele Dokumente und liefern Ergebnisse im Bruchteil einer Sekunde. Wie kommen die Inhalte der Webseiten in die Suchmaschine?
Auch wenn „googlen“ mittlerweile als Synonym für „im Internet suchen“ verwendet wird, gibt es noch andere Suchmaschinen.
Grundsätzlich können wir zwischen Suchkatalogen wie Yahoo und Web.de, indexbasierten Suchen wie Google und Bing! und Metasuchmaschinen wie MetaGer und Metacrawler unterscheiden. Kataloge sind (meistens) redaktionell gepflegte und nach Themen sortierte Verzeichnisse, bei indexbasierten Suchen arbeitet (crawl) sich ein Programm (Robot, Spider) durch Webseiten und legt die Inhalte in Indizes ab. Metasuchmaschinen befragen mehrere andere Suchmaschinen und fassen deren Ergebnisse zusammen.
Suchkataloge und indexbasierte Suchen haben auch in der „realen“ Welt ihre Vorbilder: jedes Telefonbuch, Inhaltsverzeichnisse, Sachregister und Schlagwortregister, wie es sie in Karteikastensammlungen z.B. in Bibliotheken gibt. Gerade Letztere waren (sind) manuell gepflegt und man kann nur die Vorkommen der Begriffe finden, die jemand in den Index eingetragen hat.
Aber wie kommen die Inhalte nun in Suchmaschine?
Die Wurzeln der von der Sprachwissenschaft als „keltisch“ bezeichneten Literatur reichen zweifellos bis in die vorchristliche Zeit zurück, doch besteht generell keine Verbindung zwischen dieser in „keltisch“ genannten Sprachen verfassten Literatur zu den archäologischen und historischen Kelten der Antike.
Fangen wir mit zunächst mit einem einfachen Text an: Ein Text wird an den Leerzeichen geteilt und dann Wort für Wort in eine Tabelle (den Index) eingetragen. Klingt undramatisch und ist es auch.
ID | Wort |
1 | Die |
2 | Wurzeln |
3 | der |
4 | von |
… | … |
8 | „keltisch“ |
… | … |
39 | Antike. |
ID | Wort | Zähler |
3 | der | 3 |
1 | die | 2 |
13 | in | 2 |
… | … | … |
9 | Literatur | 2 |
… | … | … |
Um etwas Übersicht in die Tabelle zu bekommen fügen wir nicht mehr jedes Auftreten eines Wortes ein, sondern nur noch einmal das Wort und in einer neuen Spalte wird die Anzahl der Vorkommen eingetragen. Sortiert man die Tabelle nun nach der Häufigkeit der Begriffe, stellt man fest, dass die ersten Plätze von recht allgemeinen Worten vereinnahmt werden: auch, der, diesen, und, um. Um die Größe des Index nicht zu stark ansteigen zu lassen, wird häufig eine „StopWord“-Liste angewandt: Bevor die Worte in die Indextabelle eingetragen werden, wird geschaut ob sie in der StopWord-Liste vorkommen (z.B. der, die das, wieso, und …). Nur wenn sie nicht innerhalb der Liste sind erfolgt die Eintragung.
Bisher haben wird erfasst, was vorkommt und wie häufig. Uns interessiert dann aber vor allem auch, wo es vorkommt, weshalb die Tabelle eine weitere Spalte für die Quelle, also das Dokument, erhält … und damit wäre ein Suchindex in seinen Grundzügen schon fertig.
ID | Wort | Zähler | Quelle |
3 | Literatur | 2 | Dokument A |
1 | Buch | 5 | Dokument B |
5 | Keltische | 3 | Dokument A |
20 | Frankfurt | 6 | Dokument A |
… | … | … | … |
47 | Bericht | 4 | Dokument B |
… | … | … | … |
Schauen wir uns das nun von der Suchseite aus an: Wir geben einen Suchbegriff, die Tabelle wird nach jedem Vorkommen durchsucht und als Antwort erhalten wir alle Dokumente, in denen der Begriff vorkommt. Da wir noch gezählt haben wie oft ein Wort in einem Dokument vorkommt, können wir noch danach sortieren und würden als erstes Ergebnis das Dokument erhalten, in dem der Begriff am häufigsten vorkommt. Datenbanktechnisch würde man die Daten nun noch auf drei Tabellen verteilen (eine für die Worte, eine für die Quellen und eine dritte, in der die Daten verknüpft werden und in der der Zähler (und später eventuell. Noch andere Gewichtungsfaktoren) eingetragen werden) , da gehe ich aber jetzt nicht weiter drauf ein.