|
|
- bir kelimeden fonetik bir string yaratıp iki kelime arasındaki benzerliği tespit etmek için kullanılan bir algoritma. bir çok database sisteminde default olarak bulunan bu özellik, maalesef türkçe karakterleri hiç bir yerine takmamaktadır.
- algoritma, yapısı gereği kendine bismillah noktası olarak kelimenin ilk harfini alır, diğer harflere ise benzerlik oranlarına göre puanlama yapar. bu saf haliyle örneğin sözlükte bulunamayan başlıklar için benzerini bulma sisteminde kullanılamayacağı aşikardır, zira sözlük hem türkçe karakterlerin karşılaştırılmasını gerektirmekte hem de diğer sık kullanılan imla kurallarına, eksik bırakılan artikellere (the, a, an, der, die, das, les, los, le etc.) ilk harfi yanlış yazılmış kelimelere karşı duyarlı olması gereken bir yapıdadır.
bu sebeple oturulup içinde bol bol soundex içeren, kelimenin tersini düzünü almayı da içeren a4 kağıdı boyunda query'ler yaratılır. ama her şey gibi bu da arada hatalı sonuçlar çıkarmaktan geri kalmaz.
ps: ibneliğine tüm algoritmayı vermiyorum çok daha fazlası var.
- türkçe hazırlanan sistemlerde sayfalarca algoritma fonksiyonu kastıran eski bir fonetik algoritması. benzer şeyler yapabilen farklı algoritmaların da bulunmasıyla birlikte, en ünlülerinden biri olan soundex daha fazla ayrıntıya sahip olmasına karşılık temel olarak şu şekildedir: [php2 kullanmıyorsanız php için soundex() fonksiyonu da var]
- soundex kodu hazırlanacak olan metnin ilk harfini alın, kodun ilk karakteri bu olacak.
- sesli harfleri (a, e, i, o, u), "h, w, y" harflerini ve boşluk karakterleri gibi içeriği etkilemeyecek olanları metinden kaldırın. (ingiliz alfabesinde olmayan karakterleri de görmezden gelebilirsiniz muntazaman)
- kodun sonuna eklenecek üç tam sayı değeri için şu numaralandırmaları uygulayın, üçten fazlası gereksiz zaten:
* b, f, p, v = 1
* c, g, j, k, q, s, x, z = 2
* d, t = 3
* l = 4
* m, n = 5
* r = 6
- aynı gruptan iki harf yan yanaysa tek harf gibi almayı unutmayın.
hatta ve hatta (bkz: http://tr.wikipedia.org/...)
- (bkz: metaphone)
|