Archiv für den Monat: Mai 2015

Wortstämme

Eine reine Suche nach exakten Wörtern ist bei Internet-Suchmaschinen überholt. Heutzutage werden als Ergebnisse auch Wortvarianten angezeigt. Z.B. liefert eine Suche nach „arbeiten agentur“ die Bundesagentur für Arbeit als ersten Treffer, obwohl auf deren Einstiegsseite das Wort „arbeiten“ gar nicht auftaucht. Das liegt daran, dass die Suche nicht auf den exakten Wörtern, sondern auf Wortstämmen stattfindet.
Ein Wort in der Deutschen Sprache lässt sich auf eine Grundform zurückführen. So haben die Wörter „Arbeiter“, „arbeitete“, „Verarbeitung“ alle die Grundform „Arbeit“. Anders gesagt: Wenn in einem Satz eine bestimmt Form eines Worts stehen muss, dann gibt es eine Bildungsregel, die aus der Grundform die gewünschte Form produziert (insofern besitzt jede Sprache auch ein Metamodell). Für die Suche ist das Gegenteil erforderlich: Bei der Analyse einer Webseite werden aus den Wörtern die Grundformen gebildet und in einer Datenbank abgelegt. Bei der Suche wird die Grundform des Suchbegriffes dann mit der Datenbank verglichen (teilweise können Datenbanken, z.B. MongoDB, schon selbst die Wortstämme bilden).

Natürlich gibt es in den Sprachen Ausnahmen: Neben unregelmäßigen Verben können noch die Bildungsregeln in die Irre führen. Wenn „Arbeit“ und „Verarbeitung“ denn gleichen Sinn besitzen, dann führt dieselbe Bildungsregel bei „Verfassung“ in die Irre, denn „Fass“ besitzt eine andere Bedeutung.

Bei der Internet-Suche ist der Vorteil, dass die Grundform der Wörter für den Nutzer nicht sichtbar ist. Deshalb muss gar nicht die linguistische Grundform gebildet werden, sondern es reicht, mit Reduzierungsregeln die Wörter in eine vergleichbare Form zu bringen. Ein verbreiteter Algorithmus dazu ist der Porter-Stemmer [http://snowball.tartarus.org/algorithms/german/stemmer.html]. Für diesen Algorithmus gibt es Portierungen in unterschiedliche Programmiersprachen, deren Ergebnisse sich aber teilweise von dem beschriebenen Algorithmus unterscheiden. Für die deutsche Sprache wird immer eine spezielle Variante der Implementierung benötigt, die dann auch funktioniert. Ich empfehle, mit ein paar Tests die Eignung des Stemmers zu testen, der Diminutiv wird in den meisten Implementierungen nicht beachtet („Schiffchen“ sollte dasselbe Ergebnis wie „Schiff“ haben), auch bei kurzen Wörtern kann es Probleme geben („ein“, „eine“, „einer“ sollten ebenfalls dasselbe Ergebnis produzieren). Eine Herausforderung ist auch, unterschiedliche Wörter nicht auf denselben Stamm zurückzuführen, „Schwer“ und „Schwester“ können hier zu Verwirrungen führen.

Falls Sie mit dem Gedanken spielen, eine eigene Implementierung eines Stemmers für die deutsche Sprache zu versuchen, so können Sie mich kontaktieren, ich kann Testdaten zur Verfügung stellen und habe auch eine eigene Implementierung eines Stemmers. Kontaktdaten unter http://www.modellierung.net/.

Alles in allem ist die Wortstammbildung noch nicht gänzlich von Computern beherrschbar. Vor dem Anwender kann das teilweise verborgen werden, in der Informationsverarbeitung führt das aber zu großen Problemen.