Fehlertolerantes Suchen

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
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Hi Community,

gibt es unter python eine art fehlertolerantes Suchverhalten, sprich, der User tippt "Schwewin" ein und er bekommt als Verbesserungsvorschlag "Schwein" angeboten?

Ein Art Wörterbuch mit den verfügbaren Wörtern habe ich bereits.

Vielen Dank für eure Hilfe :)
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Hallo,

für eine ähnliche Aufgabenstellung hatte ich mal das Modul difflib verwendet. Davon ausgehend könntest du dir etwas passendes basteln. Sowas richtig einzustellen bzw. zu trainieren kann aber ziemlich aufwändig werden. Wenn du nur einen relativ geringen "Wortschatz" hast, wäre es vermutlich einfacher, ein Dictionary mit gängigen Tippfehlern und den richtigen Versionen anzulegen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

In der Bioinformatik werden u.a. für solche Probleme Algorithmen entwickelt. Iirc gibt es für Python da einiges an Modulen; evtl. lohnt sich da mal ein Blick drauf zu werfen?
SElsner
User
Beiträge: 15
Registriert: Dienstag 22. Juli 2008, 14:24

Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

anogayales hat geschrieben:Hi Community,

gibt es unter python eine art fehlertolerantes Suchverhalten, sprich, der User tippt "Schwewin" ein und er bekommt als Verbesserungsvorschlag "Schwein" angeboten?
Je nach Geschmack kann man da über die Levenshtein-Distanz oder mit Soundex etwas basteln. Vorgefertigtes gibt es in der Standardbibliothek AFAIK nicht.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

/me hat geschrieben:Vorgefertigtes gibt es in der Standardbibliothek AFAIK nicht.
difflib wurde doch schon erwähnt. Ich habe mit der Funktion get_close_matches aus diesem Modul mal ein Script geschrieben, um eingescannte, deshalb zum Teil fehlerhafte Namen an Hand einer vorgegebenen Namensliste zu korrigieren. Das war ganz einfach und funktionierte recht gut.
MfG
HWK
Antworten