Ich arbeite an einer OCR-Anwendung, bei der ich eine Option basierend auf der Benutzereingabe auswählen muss.
Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]
Input: kava
Output: java
Input: ruby
Output: ruby
Input: clujuro
Output: clojure
etc..
Meine Anwendung basiert auf Python. Gibt es bereits einen Algorithmus, um dieses Problem zu lösen?
python
algorithms
strings
Shiv Deepak
quelle
quelle
Antworten:
Dies erfolgt durch Algorithmen der Kategorie " Approximate String Matching ". Ein gängiges Maß für den Vergleich zweier Zeichenfolgen ist der Levenshtein-Abstand . Es gibt eine Python - Implementierung zur Verfügung hier .
Sie vergleichen den Eingang grundsätzlich mit den möglichen Ausgängen und wählen den mit dem geringsten Abstand zum gewünschten Ausgang.
Der Wikipedia-Artikel erwähnt auch verschiedene andere Algorithmen, die Sie ausprobieren können, falls Sie etwas Spezifischeres benötigen.
quelle
Sie könnten Googles "Meinten Sie?" API ...
http://pygoogle.sourceforge.net/dist/doc/public/google-module.html#doSpellingSuggestion
quelle