September 20, 2012

Google ile bir arama yaptığınızda, Google size aslında şöyle mi demek istediniz diye soruyor. Bunun çalışma mantığı şu şekildeymiş:

  • Google'a yanlış yazılmış bir kelime girersiniz.
  • Aradığınızı bulamazsınız (sonuçların hiçbirine tıklamazsınız)
  • Kelimeyi hatalı yazdığınızı farkedersiniz ve arama bölümüne tekrar doğrusunu yazarsınız
  • Aradığınızı bulursunuz (ilk çıkan sonuca tıklarsınız)

Google bunu kaydeder :-)

Aslında basit görünen bir uygulama. Ama gene de makine tabanlı öğrenme konusunda ilginç bir örnek.

Birisi bunun bir örneğini D ile yazmış:

http://leonardo-m.livejournal.com/59589.html

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 20, 2012

Ben de bir zamanlar şöyle çalıştığını zannediyorum... :-p

Alıntı (Salih Dinçer):

>

Google;

  • Önce varsayılan yazım dilinin sözlüğüne bakarak en yakın sözcük ile karşılaştırır,
    ** Bunu anlayabiliriz çünkü sözcük doğru olsa bile, onun sözlüğünde yer almadığı için başka bir sözcük önerir...
    ** Ayrıca arama sonucu çıkmaması durumunda ilerleyen maddeler (yakın olasılıklar) ile ilintili sonuç üretmeye çalışabilir!
    '(Google ve Yandex gibi motorların boş sonuç döndürmeme prensibi ki sanırım Yandex daha başarılı!)'
  • Eğer varsayılan dil belli değilse bunu çeşitli yollarla (herhalde en az 3 teknik vardır!) tespit etmeye çalışır!
  • Arama sonucu fazla değilse ve/veya o şekilde kişileselleştirilmişse İngilizce karşılığını listeler,
    ** Bu belki çok seçimli olabilir, bilemiyorum ama varsayılan dil haricinde bir de en tepede İngilzce (global language) var
    ** Belki diğer seçimler bölgesel diller, yakın lehçeler ve/veya yazı harfine benzer diğer dillerin sözlüğü de olabilir
  • En son madde belki de hiç bir tespit yapamadığı boş sonuç gönderdiği an olmalı...:)

Hatta en en yukarıya almamamızın gerekli olduğu bir madde daha olabilir: Özellikle Yandex'in yoğun olarak kullandığı "yerel gündem" sözlüğü ile eşleşenlere öncelik tanıması olabilir. Tabi bir de reklam verenlerin/PR'si fazla olanların üst sıralara ötelenmesi (sıklıkla değişen algoritma!) var.

Yerel gündem örnek olarak; bayram günleri, önemli yıl dönümleri ya da Google sosyal uygulaması (yardım, seçim uygulamaları vb.) gibi şeyler ile ilişkili sözcükler en tepede (dinamik olarak!) olacağını zannediyorum. Neden mi?

Çünkü Google gibi arama motorlarının öncelikli hedef, sahip olduğu ve sürekli geliştirilen algoritmalar bütünüyle en hızlı sonucu üretmek. Eğer kullanıcılar sık sık şöyle yazıyorsa "bayram tatil kurban 2012", bu veri tabanını çok çok meşgul edeceğinden sözlüklerin de üstünde yer alabilecek ve kestirme sonucu döndürecek "yerel gündem" sözlüğü almalı.

'Not: Yukarıdaki yorumlar yazarına aittir ve gerçeği yansıtmayabilir. Bazı tespitler kötü bir tahminden öteye geçmeyebilir; yanına yaklaşsa bile çok çok fazla ayrıntıya sahip olabilir. Arama ve bulma işi çocuk oyuncağı değildir...:)'

Yukarıdakiler belki basit bir şekilde tahmin edilebilecekler. İşin içine girildiğinde eminim bizi çok şaşırtacak pratik algoritmalar vardır. Beni en çok şaşırtan da (belki de basittir!) bir cümle aradığınızda içerdiği sözcükleri hem sıralı hem sırasız eşleştirmesi ve en yukarıya en çok eşleşen sözcüğü, hemen altındaki gruba tek eşleşmeyen sözcüğü, sonraki sonuçlarda ise daha az eşleşen ve cümlenin (hatta sayfanın!) farklı yerlerinde eşleşen sözcükleri listeleyebilmesi!

Sanırım hemen yukarıdaki paragrafda bahsettiğim, iki metnin karşılaştırması algoritmasına benziyor. Elbette Erdem'in bahsettiği arama ve bulma yöntemlerinden farklı. Bilemiyorum, bu ve benzeri algoritmalardan faydalanarak belki bir gün kendi arama motorumuzu yazabiliriz. Çünkü Yandex gibi bir firma bizi pilot bölge seçip Google'a kafa tutabiliyorsa demek ki artık arama ve bulma sadece basit bir eşleştirmeden öte bir şey. Hepsinden öte dil gibi yaşayan bir şey. Halkın nabzına göre kendini uyarlabilmeli ve en çok seveceği sonuçları gösterebilmeli...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]