PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Suchen (und finden) mit PHP - Teil 3: Die Basics der Schlagwortsuche

In Teil 1 meiner Arikelserie zum Suchen mit PHP hab ich einen kurzen Rundumschlag über alle Suchmethoden zum Besten gegeben. Teil 2 hat sich mit der direkten Suche durch LIKE und MATCH beschäftigt. Ladies und Gentlemen, jetzt kommen wir zur Schlagwortsuche.

Die Schlagwortsuche wird häufig von Verzeichnissen jeglicher Art, Bildagenturen und Bibliotheken im großen Stil eingesetzt. Das Problem der Verschlagwortung ist, das es dafür einen eigenen Studiengang mit Diplom (”Informations- und Wissensmanagement“) gibt. Mit anderen Worten: Es ist ein schier unerschöpfliches Thema.

Es wird darauf hinauslaufen, das allein die Schlagwortsuche in meiner Artikelserie 2 Artikel in Anspruch nehmen wird, um würdig abgehandelt zu werden. Wir beginnen erst mal mit den Basics der Schlagwortsuche, um dann im nächsten Teil konkreter auf die Implementierung mit PHP und MySQL einzugehen.

Grundsätzlich gilt es die Hirarchiestufen der Schlagwortsuche zu bestimmen:

  • “Flache” Verschlagwortung:
    Die Schlagworte sind einander nicht untergeordnet
  • Schlagwortbäume:
    Die Schlagworte sind nach Überbegriffen und Unterbegriffen in einer Hirarchie angeordnet
  • Synonyme-Verschlagwortung:
    Den Schlagworten sind Synonyme zugeordnet, um die Suchbegriff-Bandbreite zu erhöhen

Danach muss festgelegt werden, ob man nach einem Schlagwort-Katalog arbeitet oder sich für die freie Verschlagwortung entscheidet:

  • Schlagwortkatalog:
    In einem Schlagwortkatalog werden die für die Verschlagwortung zu benutzenden Worte vorgegeben. Solche Kataloge werden zentral geführt und Ergänzungsvorschläge müssen zur Aufnahme eingereicht werden. Der Vorteil liegt ganz klar in der Eindeutigkeit der Schlagworte, diese sind bewusst ausgesucht und unterstützen maßgeblich durch Präzision. Der Detailgrad der Verschlagwortung wird hauptsächlich durch die Anzahl der zugeordneten Schlagworte bestimmt.
  • Freie Verschlagwortung:
    Im Gegensatz zu einem Katalog lässt die freie Verschlagwortung viele Freiheiten bei der Wahl der Schlagworte zu. Das ist Fluch und Segen zugleich: Für technische Objekte bestens geeignet, weil die Einstufung der Objekt komplett individuell sein kann. Zur Katastrophe wird die freie Verschlagwortung, wenn wild mit Synonymen, Rechtschreibfehlern und Präzisionsgraden um sich geworfen wird. Bei der freien Verschlagwortung sind viel Kompetenz, Konventionen und Motivation gefragt, um ein gutes Ergebnis hinzubekommen. Der Detailgrad wird hier maßgeblich durch sehr präzise Schlagworte bestimmt.

Doch das größte Übel der Verschlagwortung ist, das sie nur dann würdig genutzt wird, wenn die User die Schlagworte kennen. Bei Speziellen Archiven (z.B. Bibliotheken) ist das kein Problem - diese werden nur von versierten Benutzern genutzt, die über entsprechendes Fachwissen verfügen. In diesem Fall kann man sogar soweit gehen und Kürzel zur Verschlagwortung verwenden.

Bei öffentlichen Projekten (Im Internet etwa) ist der Fall etwas anders gelagert: Die Zielgruppen sind oft nicht eindeutig definierbar, die Verschlagwortung wird deshalb wackelig. Ein kleines Beispiel, um verständlich zu machen, was ich meine: Ein Bio-Professor wird in einer Freitextsuche mit dem wissenschaftlichen Namen nach einer Pflanze suchen - ein normalsterblicher Gartenbesitzer verwendet sehr wahrscheinlich die umgangssprachliche Bezeichnung. Beide haben jedoch das selbe Ziel, und sollen es auf möglichst wenig Umwegen erreichen.

Wie kriegt man dieses Problem in den Griff? Ganz klar: Man kann dem Benutzer die möglichen Schlagworte vorschlagen (Photocase macht das zum Beispiel seit Längerem so) oder man macht es wie Google und schlägt dem Benutzer bei wenigen Ergebnissen ähnliche Suchbegriffe vor - man kann es aber auch wie Getty machen, und fragt doppeldeutige Suchbegriffe ab.

Ein anderer Kniff ist, von der Schlagwortsuche auf die Volltextsuche umzuschalten, wenn zu wenige (oder gar keine) Elemente gefunden werden. Einen entsprechenden Volltext-Datenbestand vorausgesetzt.

Man kann also sagen, die Schlagworte sind nur dann gut gewählt, wenn sie auch von den Benutzern als Suchbegriffe verwendet werden. Auf jeden Fall lohnt die Protokollierung der verwendeten Suchbegriffe mit Ergebnis-Notation. Das bedeutet, man notiert die Anzahl der gefundenen Einträge je Suchbegriff. So sollte man schnell auf eine mangelhafte (oder positiver ausgedrückt: verbesserungswürdige) Verschlagwortung aufmerksam werden.

Um eine Schlagwortsuche effizienter zu gestalten, sollte man unbedingt die Schlagworte an ein festgelegtes Schema anpassen. Man einigt sich z.B. nur den Singular (Einzahl) eines Wortes zu verwenden. Technisch bedeutet das, eine Übersetzungstabelle zu verwenden.

Noch einen Schritt weiter gehen kann man, in dem man Mehrfachfolgen von Buchstaben ausfiltert: Aus “Willkommen” würde dann “Wilkomen”. Das Gleiche gilt für andere Schriftzeichen wie Umlaute und der gleichen (ö = o, ß = s, é = e, usw.). Mit einer phonetischen Suche erhält man dasselbe Ergebnis wie vorher, weil sich an der Aussprache nicht viel ändert.

Wenn bei der Suche die Suchbegriffe auf die selbe Art und Weise angepasst werden wie die Schlagworte, erhält man eine wesentlich fehlertolerantere Suche. Allerdings werden dann auch Suchergebnisse freizügiger platziert. Die phonetische Suche in MySQL wurde übrigens für die amerikanische Sprache entwickelt. Das bedeutet aber keine wesentliche Einschränkung für deutsche Suchbegriffe - Hauptsache, sie werden einheitlich ausgesprochen (ob das ein Deutscher oder ein Amerikaner macht, ist wurscht).

Natürlich bedeuten alle Veränderungen des Ursprungswortes einen Spagat zwischen Fehlertoleranz und Genauigkeit. Wenn man das zu weit treibt und folgende Regel verwendet, erhält man schnell verfälschte Ergebnisse:

  • ö = o
  • sch = s
  • ch = k
  • ck = k
  • en = e

Die Worte “Löschen” und “Lösen” werden dann beide zu “Losen”, das ist bestimmt nicht im Sinne des Erfinders. Auch die Worte ”Lochen” und “Locken” würden zu Loken. Sinnvoll sind meiner Meinung nach folgende Regeln:

  • Doppelte Buchstaben raus (ss = s, mm = m)
  • ck = k (Locken = Loken)
  • sch = s (Flaschen = Flasen)
  • ch bleibt wie es ist
  • Umlaute als Vokal + e (ä = ae)

Jemand der jetzt ausversehen nach “Gogle” sucht, findet trotzdem “Google”…

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • del.icio.us
  • Technorati
  • Digg
  • Slashdot
  • YahooMyWeb
  • Furl
  • Ma.gnolia
  • Spurl
  • Netscape
  • StumbleUpon
  • MyShare
  • blogmarks

Schreib Deine Meinung