Ähnlichkeitsvergleich von Strings

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.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ähnlichkeitsvergleich von Strings

Beitragvon HWK » Freitag 1. Dezember 2006, 14:12

Gibt es in Python ein Modul, um ähnliche Strings zu vergleichen? Oder kennt zumindest jemand Artikel, die Algorithmen dazu beschreiben?
Ich möchte per Hand eingegebene und somit möglicherweise falsch geschriebene Namen mit Namen aus einer Liste automatisch korrigieren lassen.
Danke
HWK
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Freitag 1. Dezember 2006, 14:44

Ah!
Ich habe etwas mit dem Namen 'Levenshtein distance' gefunden. Könnte das dafür geeignet sein? Auch 'spell checker' wären vielleicht eine Möglichkeit. Habe dafür aber noch keine Python-Implementierung gefunden.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Freitag 1. Dezember 2006, 15:14

Auf der Seite mit dem ersten Google hit: http://www.hetland.org/python/distance.py

Aber der Algorithmus ist so einfach, da ist es leicht Variationen darauf selber zu programmieren.
Und ja, geeignet mag das schon sein ... kommt halt darauf an, was Du genau machen willst.

HTH
Christian
BlackJack

Beitragvon BlackJack » Freitag 1. Dezember 2006, 16:46

Ich wäre mit automatischer Korrektur vorsichtig, die kann auch mal "falsch" Korrigieren. Fehlerhafte Eingaben gehören IMHO dem Benutzer um die Ohren gehauen anstatt still und leise korrigiert. Benutzer sollten sich gar nicht erst daran gewöhnen das sie schlampig sein dürfen.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Samstag 2. Dezember 2006, 00:45

Es funktioniert genau so, wie ich mir das vorgestellt habe.
BlackJack hat aber natürlich recht: Bei ähnlichen Namen kann schon mal der falsche ausgewählt werden.
Danke
HWK
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Sonntag 18. Februar 2007, 16:29

Manchmal muss man gar nicht so weit weg suchen:
Die Methode get_close_matches() im Python-Standardmodul difflib macht ebenfalls genau das, was ich brauche.
Naja, jetzt bin ich wenigstens um ein paar Erfahrungen über die Erweiterung von Python-Scripts mit C-Funktionen reicher.
MfG
HWK

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder