Wortsplitter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lutz
User
Beiträge: 9
Registriert: Mittwoch 2. Mai 2007, 18:49

Hi,

kennt jemand zufällig ein Module, dass zusammengesetzte Wörter in einzelne aufsplitten kann ?

Also z.B. "Lagerhalle" in "Lager" und "halle" ?

Ich benötige es zum Einsatz mit Solr/Lucene. Da Lucene leider nicht über diese Möglichkeit verfügt.

Danke.

Lutz
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

So generell könnte das schwierig werden. Wenn du einfach stumpf auf Wörter aus einem Wörterbuch matcht und dementsprechend aufsplittest, bekommst du so nette Ergebnisse wie "Urinstinkt" -> "Urin stinkt"
joost
gelöscht
Beiträge: 134
Registriert: Sonntag 29. April 2007, 13:28

'Könnte schwierig werden', halte ich noch für eine große Untertreibung. Ein Programm, dass so etwas könnte, könnte natürlich auch dazu gebracht werden, Tageszeitungs- und andere -texte ernsthaft zu 'verstehen'. Das zieht Fäden bis in die KI-Forschung.

Und auf jeden Fall in methodische Probleme, an denen sich Noam Chomsky mit seiner Transaktionsgrammatik seit 30 (oder mehr ?) Jahren erfolglos abarbeitet.

Hab' nie danach gesucht, aber: So'n Modul gibt's ganz bestimmt nicht.
___________________
Schlechte Software ist schlimmer als keine Software
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Joghurt hat geschrieben:"Urin stinkt"
Als obs nicht wahr wäre :roll:

An sich ist das wohl schwerlich eine aufgabe die simpel zu lösen wäre. Das Problem ist, dass du dann eine Logik implementieren müsstest, die die Regeln der Sprache kennt und noch dazu eine Liste von Ausnahmen vorhält. Lucene hat sowas aus gutem Grund nicht, weil es keine optimale Implementation geben kann, gute Implementationen wären schon schwer genug.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Lutz
User
Beiträge: 9
Registriert: Mittwoch 2. Mai 2007, 18:49

Hi,

danke erstmal für die Antworten.

Dass das kein triviales Problem ist war mir schon klar. Das Lucene das nicht kann und dann aber alle Welt behauptet was für ein tolles Stück Software Lucene ist, ist mir ein wenig unverständlich.
Wenn eine Suchmaschine keine Teilworte erfasst, ist das für mich ein nicht akzeptables Verhalten. Ich vermute eher, dass man nicht auf andere Techniken ausweichen möchte.
Das uralt Tool Glimpse hat mit Teilworten kein Problem, verwendet aber wohl eine andere Technik.

Klar, wenn ich im englischen Sprachraum bleibe habe ich das Problem kaum. Aber egal.

Vermutlich bleibt wohl nix anderes übrig als die Zerlegung mittels Wörterbuch. Übrigens muß die nicht über den Sinn entscheiden.

Ein Beispiel wie ich es real vor zu liegen habe:
In einem Produkttext über einen Gabelstapler kommt das Wort "Palettengabelstapler" vor aber nicht das Wort "Gabelstapler". Der Kunde sucht nun nach Gabelstapler AND Palette und der Palettengabelstapler wird nicht gefunden.

Wird aber Palettengabelstapler folgendermaßen zerlegt:
paletten gabelstapler
paletten gabel stapler
palettengabel stapler
ist die Welt in Ordnung.

Also bleibt mir wohl nix übrig als selbst was zu Programmieren.

Was könnte ich als Wörterbuch heran ziehen ?
Genügen das die Daten aus ispell ?

Viele Grüße
Lutz
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Abgesehen davon, dass ich den Begriff Palettengabelstapler für vollkommen überfrachtet halte (was ist denn der Unterschied zu einem "normalen" Gabelstapler?): ist sicher aufgrund des AND nicht ganz sauber, aber das Palettengabelstapler hat den selben Soundex wie Palette.

http://de.wikipedia.org/wiki/Soundex
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Antworten