PHP Levenshtein ile ilgili kelimeleri bulmak

Google üzerinde arama yaptınız ve Google ilgili ve benzer kelimeleri, sonuç listesinin en başında size önerdi.. İşte bu nasıl mı oluyor? Siz de benzer bir uygulama mı yapmak istiyorsunuz? Hadi bakalım o halde 😉

PHP Levenshtein ile ilgili kelimeleri bulmak

Ziyaretçiler her zaman en doğru kelimeler ile aramaları gerçekleştiremezler. Bu gibi durumlarda onları, en alakalı kelimelere yönlendirmek gerekir. Bu işlemi ise en hızlı ve basit şekilde Levenshtein fonksiyonu ile gerçekleştirebilirsiniz. Üstelik bu fonksiyon 4.0.1 ve üstü tüm PHP sürümlerinde yer alıyor.

Ufak bir örnek 🙂

Hızlıdan örnek satırları paylaşıyorum. Kodlar fonksiyonun anlatım sayfasından alındı ve tarafımdan düzenlendi.

<?php
$aranan = 'hakn';
$kelimeler = array('haktan', 'hakan', 'hakket', 'hasan', 'hayda', 'hakkında');
$shortest = -1;
foreach ($kelimeler as $kelime) {
$lev = levenshtein($aranan, $kelime);
if ($lev == 0) {
$closest = $kelime;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $kelime;
$shortest = $lev;
}
}
echo "Aranan kelime: $aranan\n<br />";
if ($shortest == 0) {
echo "$closest için tam uyan bir kelime bulunamadı.";
} else {
echo "Demek istediğiniz şu kelime mi? : $closest";
}
?>

Gördüğünüz üzere hakn olarak arama yaptırdım. Benzer kelimeler ise dizi değişken içerisinde yer alıyor. Bu kelimeler, web siteniz üzerinde en çok aratılan kelimelerden meydana gelebilir örneğin. Sonrasında ise Levenshtein ile karşılaştırma yaparak en uygun kelimeyi tespit ettik. Böylece hakn ile arama yapılmak istenirse, sistemimiz hakan önerisinde bulunacaktır.