2 dizeyi alan bir algoritma arıyorum ve bana "benzerlik katsayısı" vereceğim.İki dizginin ne kadar olduğunu bulma
Temel olarak, yazım yanlış yazılmış, harflerle çevrilmiş vb. Olabilecek bir girdim olacak ve sahip olduğum olası değerler listesinde en yakın eşleşmeleri bulmam gerekiyor.
Veritabanında arama yapmak için değil. Karşılaşmak için 500 veya daha fazla dizenin bir bellek içi listesi olacak, 30 karakterin altında, bu yüzden nispeten yavaş olabilir.
Bunu biliyorum, daha önce görmüştüm ama adını hatırlayamıyorum.
Düzenleme: Levenshtein ve Hamming'i işaretlediğiniz için teşekkür ederiz. Şimdi hangisini uygulamalıyım? Temel olarak farklı şeyler ölçüyorlar, her ikisi de istediklerim için kullanılabilir, ancak hangisinin daha uygun olduğundan emin değilim.
Algoritmalarımı okudum Hamming daha hızlı görünüyor. Ne tür bir yanlışlık olacağına inandığım iki karakterin (yani, Jordan ve Jodran) ne olduğunu tespit edemediğimden, ne istediğim için daha doğru olacak? Birisi bana takaslardan biraz bahsedebilir mi?
Aslında bir kd ağacının dayalı en yakın komşu arama çeşit uygulanan üçüncü seçeneğin bir uygulama düşünmeni istiyorum .Bu, Hamming mesafesinin * hassas bir şekilde toplanacağı tipik tipik hatalardan biridir - herhangi bir tek karakterli ekleme veya silme işlemi size hemen hemen büyük farklılıklar verecektir. Levenshtein'ı kullan. –