Kullanıcı metnine göre listeden en olası seçenek nasıl seçilir Giriş


11

Kullanıcı metin girişine dayalı bir seçenek seçmem gereken bir OCR Uygulaması üzerinde çalışıyorum.

Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]

Input: kava
Output: java

Input: ruby
Output: ruby

Input: clujuro
Output: clojure

etc.. 

benim uygulama python tabanlı, bu sorunu çözmek için zaten bir algoritma var mı.


1
Şimdi düzeltmeye değmeyebilir, ancak IMO daha uygun bir başlık "dizeler arasındaki mesafeyi (farkı) belirleme" olacaktır
Jeff Welling

3
@Jeff: ve sonra bu soruyu asla bulamazdım, çünkü ihtiyacım olan şeyin "mesafe farkı" olarak adlandırılabileceği hakkında hiçbir fikrim olmazdı ... Ve ihtiyacınız olan çözümü soru. İnsanları gerçekte yaşadığınız soruna alternatif çözümler önermekten alıkoyabilir. Durumda: yüksek sesle cevap.
Marjan Venema

1
Demek istediğim artık, oldu yapmak anlamına gelir "nasıl bir en muhtemel ... seçmek için" ama kim "dizeleri arasındaki mesafe" tanıyacağını bilmiyorum insanlardan yanıtlar çekmeye yardımcı olabilecek daha doğru bir başlık kullanarak, biliyorum ama herkesinki kendine. Bu sadece bir öneriydi. Ne demek istediğini bilmiyordum ve neredeyse her şey yüzünden soruna tıklamamıştım.
Jeff Welling

Yanıtlar:


10

Bu, " yaklaşık dize eşleme " kategorisinin algoritmalarıyla yapılır . İki dizeyi karşılaştırmak için yaygın bir önlem Levenshtein mesafesi olarak adlandırılır . Burada bir python uygulaması var .

Temel olarak girişi olası çıkışlarla karşılaştırır ve istenen çıkışa en kısa mesafeyi seçersiniz.

Wikipedia makalesinde ayrıca daha spesifik bir şeye ihtiyacınız olması durumunda deneyebileceğiniz çeşitli diğer algoritmalardan bahsedilmektedir.


Ruby'de benzer bir sorun yaşadım ve tam da bu şekilde çözdüm.
Jeff Welling

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.