Programlama dillerini kullanarak hazırladığımız uygulamalarda son kullanıcılar sıklıkla yazım hatası yapabilirler. Yazım hataları ya da benzeri sebeplerle kullanıcının yazdığı bir yazının örneğin bir liste içinde yer almaması durumunda listedeki bu hatalı yazılan kelimeye en benzer kelimeyi bulabilmek için ise aşağıdaki gibi bir yöntem takip edebiliriz.
Python ile difflib modülü içerisinde yer alan get_close_matches fonksiyonu ile bir yazıya (string) en yakın olan yazıları tespit edebiliriz. get_close_matches(word, possibilities, n, cutoff) fonksiyonunun dört parametresi ve anlamları şu şekildedir:
word: en yakın benzeri aranan kelime
possibilities: en benzer yazıların taranacağı liste
n: En fazla kaç benzer yazının döndürülmesinin belirlendiği parametre. Varsayılan değeri 3'tür, opsiyonel bir parametredir ve sıfırdan büyük olmalıdır
cutoff: 0 ile 1 arasında bir değerdir ve benzer kelime tespit olasılığını belirlememizi sağlar. Opsiyonel bir parametredir ve varsayılan değeri 0.6'dır.
Örnek 1:
from difflib import get_close_matches
liste = ['ocak', 'şubat', 'mart', 'nisan', 'mayıs', 'haziran', 'temmuz', 'ağustos', 'eylül', 'ekim', 'kasım', 'aralık']
kelime = 'şbuat'
print(get_close_matches(kelime,liste))
#['şubat']
Örnek 2:
from difflib import get_close_matches
liste = ['rahip', 'rahmet', 'ahmet', 'hamet', 'hamit']
kelime = 'rhaip'
print(get_close_matches(kelime,liste, 4, 0.1))
#['rahip', 'hamit', 'hamet', 'rahmet']
Örnek 3:
from difflib import get_close_matches
liste = ['rahip', 'rahmet', 'ahmet', 'hamet', 'hamit']
kelime = 'rhaip'
print(get_close_matches(kelime,liste, 3, 0.7))
#['rahip']
Editör editi: sitedeki bazı diğer benzer yazılar için;
bkz: Python'da yan yana yazı yazdırmak (çıktı almak)
bkz: Python ile çok satırlı string oluşturmak
bkz: Python ile yazı tura atma uygulaması
bkz: Python ile kullanıcı istediği sürece tekrar zar atan program
bkz: Python ile JSON dosyasını güncellemek
bkz: Python'da Lambda fonksiyonu nedir ve nasıl kullanılır?