Bu difflib.get_close_matches eşleşen/bulanık eşleşen dizeleri için en kolay yol olduğunu buldum. Ama yorumlarda bahsettiğiniz gibi bulanık birkaçz gibi birkaç tane daha gelişmiş kütüphane var. Eğer difflib kullanmak istiyorsanız aşağıdaki gibi
Ama puanı almak için difflib.SequenceMatcher kullanabilirsiniz:
import difflib
my_str = 'apple'
str_list = ['ape' , 'fjsdf', 'aerewtg', 'dgyow', 'paepd']
best_match = difflib.get_close_matches(my_str,str_list,1)[0]
score = difflib.SequenceMatcher(None, my_str, best_match).ratio()
Bu örnekte, 'elma' ve liste arasında en iyi eşleşme 'maymun' olduğunu ve skor 0.75.
Ayrıca listesinde döngü ve tüm puanları hesaplamak kontrol etmek edebilirsiniz: difflib için
score for: apple vs. ape = 0.75
score for: apple vs. fjsdf = 0.0
score for: apple vs. aerewtg = 0.333333333333
score for: apple vs. dgyow = 0.0
score for: apple vs. paepd = 0.4
Belgeler burada bulunabilir:
for word in str_list:
print "score for: " + my_str + " vs. " + word + " = " + str(difflib.SequenceMatcher(None, my_str, word).ratio())
Bu örnek için, aşağıdaki olsun: https://docs.python.org/2/library/difflib.html
2 tel arasında hızlı ve doğru bir şekilde benzerlik gösterebilen harika bir kütüphane bulundu - fuzzywuzzy [link] (https://pypi.python.org/pypi/fuzzywuzzy) – Gil