Database - Veritabanı
"Bunu Mu Demek İstediniz?" Olayını Google Nasıl Başarıyor?
"Bunu Mu Demek İstediniz?" Olayını Google Nasıl Başarıyor?
-
birkaç gündür ara ara aklıma geliyor çözüm bulamayınca buraya yazayım dedim.
muhtemelen bilindik birşeydir ama atıyorum "muhtemelen" yerine "muhtenelen" yazıldığında google bunu mu demek istiyorsun deyip kelimenin aslını getiriyor karşımıza. veya yine aynı hesap seslisözlük'de kelimenin bir harfini yanlış yazdığımızda yazdığına yönelik bir çeviri yok buna bakmak ister misindiye bir bölümde yanlış yazılan kelimeye en yakın sonuçlar gösteriliyor.
bana yapılması için tek çözüm var gibi geliyor o da şu ki 'muh%'u sorgulatıp gelen sonuç sayısı fazlaysa 'muht%' sorgusunu tekrar sormak. veya tersten aynı şekilde denemek. olmadı ortadan denemek %hte% gibi. aynı bütün kombinasyonları denemeden de kesin sonuca ulaşamıyoruz ki seslisözlük de google da nokta atışı yapabiliyor. e bütün sonuçları denemek de haliyle işlemci yiyeceğinden başka bir algoritması olması gerekiyor. sizce nasıl bir yapı kullanıyorlardır bu sonuçları getirebilmek için?
-
en benzer olan sözcüğü gösteriyo hocam
bknz: sql - like
-
http://www.google.com.tr/#hl=tr&biw=1280&bih=919&q=bahribat&aq=f&aqi=&aql=&oq=&fp=8d3e838b5df38cb1
Mesala bahribat yazım. Daha önce ona en uygun aranmış kelime Tahribat olarak karşıma çıkarıyor. Algoritması nedir bilmiyorum. :) Yazılımcı biri çıkarır verir sana algoritmayı. -
snnyk bunu yazdı:
-----------------------------
en benzer olan sözcüğü gösteriyo hocam
bknz: sql - like
-----------------------------benim bildiğim ve kullandığım LIKE '%ahri%' dediğimizde getirir tahribat sonucunu like. ama yanlış harf her yerde olabilir hocam, ona göre sorguyu ayarlamak gerekmiyor mu?
-
aradıgın kelimeye en yakın yapılan en fazla arama sorgusuna
sitelerde geçen aradığın kelimeye en yakın anahtar kelimelere
dillerin sözlükleri ( türkçe büyük sözlük ) gibi
kriterlere bakıyordur yüksek ihtimal
-
bence şu şekilde yapıyordur. örneğin ''Batribat'' yazdın o bakıyor bahritat hiç önceden aranmış mı diye bulmamıyor yada çok az oluyor sonra karşılasştırma yapıyor ''.atribat'' ''b.tribat''.... şekilnde deniyor bunları aranma sayılarını sıralıyor ve ön çok aranan (muhtemalen doğru dizilim ''.atribat'') ardından bakıyor ''Aatribat'' ''Batribat'' ''Catribat''... en son Tahribatın en çok arandığını keşfediyor ve budur diyor artık bundan sonra ''catribat'' yazarsan bunları tekrar yapmıyor tak diye olsa osla (önceki tahminlerden yararlanarak) tahribat diyor öyle söylüyordur
-
Buremba bunu yazdı:
-----------------------------
snnyk bunu yazdı:
-----------------------------
en benzer olan sözcüğü gösteriyo hocam
bknz: sql - like
-----------------------------benim bildiğim ve kullandığım LIKE '%ahri%' dediğimizde getirir tahribat sonucunu like. ama yanlış harf her yerde olabilir hocam, ona göre sorguyu ayarlamak gerekmiyor mu?
-----------------------------illaki ama konu google olunca hayal sınırları dışında veri ve algoritma olacağı için
o algoritma içinde illaki like kullanılmıştır
-
bu işini göre bilir
http://www.yazilimgunlugu.com/csharp-ile-soundex-algoritmasibunu-mu-demek-istediniz-makalesi/757.aspxyada googleye soundex algoriitması dersen daha geniş bilgiler bulabilirsin
-
o kadar basit olmamalı beyler, bu iş için sunucuya iki kat yük bindireceklerini düşünmüyorum. az önce bir video izledim tam olarak bunu anlıyor google mühendislerinden biri: http://www.youtube.com/watch?v=syKY8CrHkck#t=22m03s
önceki aramalarda bir kişi bahribat yazdıktan sonra hemen ardından tahribat yazarsa bunları aynı kelime diye arka tarafta eşleştiriyorlarmış. böyle hem kullanıcıya daha kısa sürede geliyor hem de aynı işi defalarca yapmak zorunda kalmıyorlar. zekice.
peki ya seslisözlük?
-
Yazdığın karakterler ile daha önce den yazılmış ve db ye girişi yapılmış karakteri en büyük karakter sayısından en küçüğe karakter sayısına doğru eksilterek karşılaştırıyor ve tutan karakterler ile kendine yeni bir karakter katarı oluşturup en çok aranan ve en çok ziyarhet edilen sonuçların 0.sını sana getiriyor. Bu uygulama sen bir şeyler yazmaya başlarken 3. harften sonra aktif oluyor.
Kendim öyle yaptım
-
Fuzulli bunu yazdı:
-----------------------------
Yazdığın karakterler ile daha önce den yazılmış ve db ye girişi yapılmış karakteri en büyük karakter sayısından en küçüğe karakter sayısına doğru eksilterek karşılaştırıyor ve tutan karakterler ile kendine yeni bir karakter katarı oluşturup en çok aranan ve en çok ziyarhet edilen sonuçların 0.sını sana getiriyor. Bu uygulama sen bir şeyler yazmaya başlarken 3. harften sonra aktif oluyor.
Kendim öyle yaptım
-----------------------------peki ya bir harf fazladan yazmışsa?