Pracuję nad aplikacją OCR, w której muszę wybrać opcję opartą na wprowadzaniu tekstu przez użytkownika.
Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]
Input: kava
Output: java
Input: ruby
Output: ruby
Input: clujuro
Output: clojure
etc..
moja aplikacja jest oparta na pythonie, czy istnieje już algorytm do rozwiązania tego problemu.
python
algorithms
strings
Shiv Deepak
źródło
źródło
Odpowiedzi:
Odbywa się to za pomocą algorytmów kategorii „ przybliżone dopasowanie ciągu ”. Częstą miarą do porównywania dwóch łańcuchów jest odległość Levenshteina . Jest to implementacja Pythona dostępny tutaj .
Zasadniczo porównujesz dane wejściowe z możliwymi wyjściami i wybierasz ten o najmniejszej odległości do pożądanego wyniku.
Artykuł w Wikipedii wymienia także różne inne algorytmy, które możesz wypróbować, jeśli potrzebujesz czegoś bardziej szczegółowego.
źródło
Mógłbyś użyć „Google miałeś na myśli?” API ...
http://pygoogle.sourceforge.net/dist/doc/public/google-module.html#doSpellingSuggestion
źródło