Google’ın kullandığı bunu mu demek istediniz algortiması gibi bir algoritma yapmak isterseniz levensthein algoritmasını kullanmanız gerekecek. Bu algoritmanın amacı iki farklı kelime veya cümleyi birbirine eşitlemek için(bir harf çıkarma, bir harf ekleme, harflerin yerini değiştirme, yan yana olan iki harfin sırasını değiştirme) yapılacak en az işlem sayısını bulmaktır.
Bu algoritma birçok programlama ve script dilinde kendi adıyla fonksiyon olarak kullanılmaktadır. Algoritmayı bulan Vladimir Levenshtein’ın adıyla anılmaktadır. Bu algoritmaları bulan bilim adamlarına fazlasıyla saygı duyuyorum.
Şimdi, Google gibi, yanlış yazılan kelimelere karşı doğru kelimeleri nasıl önerebileceğimize kısaca bakalım.

PHP’de Levenshtein fonksiyonu iki kelime arasındaki karakter farkı kadar değer döndürür.  Örneğin Masa ve Musa kelimeleri arasında ki karakter farkı sadece 2.harflerinde ki farklılık olduğundan dolayı(a≠u)
Levenshtein fonksiyonu bizlere 1 değerini döndürecektir.

Şimdi bir örnekle bu öğrendiklerimizi pekiştirelim: Yukarıda ki kodların kısaca anlamı şudur:Masa kelimesinde yapılacak 1 işlem sonucu Musa kelimesi elde edilebilir. Aradığınız şey tam olarak böyle bir değer olmayabilir fakat bu değer yardımıyla kullanıcılara “did you mean” olarak sonuç bir kelime gösterebileceğiz. Fakat aranan kelime ile karşılaştırma yapabileceğimiz elimizde başka kelimeler olmalı. Kelimeleri şimdi bir dizi içinde tuttuğumuzu varsayarak örnek kodlarımızı yazalım: Kodlarımız bu kadar, hoşçakalın…

Yazar Hakkında

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu HTML kodlarını kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Close