İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Bunumu aramıştınız ?

Ozcan

0
İyinet Üyesi
Katılım
12 Mayıs 2007
Mesajlar
3,749
Reaction score
61
Konum
Antalya
arama sonuçlarında bazen kelimeler yalnış yazıldığı için sonuç çıkmıyor acaba bu aramalarda geçen kelimeleri nasıl bunumu aramıştınız derim. Mesela iynet yazdı araken boş sonuç çıktı altındada iyinet bunumu aramıştınız nasıl çıkartabilirim yada yiinet yazdı diyelim.
 

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
Bunu sen değil GOOGLE ayarlar. Kafasında DOĞRU olarak belirlediği sözcük veya sözcük gruplarını (Türkçeye / Dile uygunluk açısından veya Arama hacmine göre) sana sunar ...

ilgili sözcük dilde yoksa onu google'a doğru kabul ettirmek için oldukça yüksek bi arama hacmi sağlaman gerekir.
 

Ozcan

0
İyinet Üyesi
Katılım
12 Mayıs 2007
Mesajlar
3,749
Reaction score
61
Konum
Antalya
Bunu sen değil GOOGLE ayarlar. Kafasında DOĞRU olarak belirlediği sözcük veya sözcük gruplarını (Türkçeye / Dile uygunluk açısından veya Arama hacmine göre) sana sunar ...

ilgili sözcük dilde yoksa onu google'a doğru kabul ettirmek için oldukça yüksek bi arama hacmi sağlaman gerekir.

ben bunu kendi arama sonuçlarımda göstermek istiyorum yani kendi sitemde mysql de aratırken aynı harflerden oluşan aramaları mesela yiinet yazınca iyinet i bulmasını yada ivinet yazıncada iyinet i bulmasını istiyorum :) php de bu şekilde bir yaklaşık sonuç kodu yokmu yada karışık harfleri bir kelimede arama ?
 

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
ben bunu kendi arama sonuçlarımda göstermek istiyorum yani kendi sitemde mysql de aratırken aynı harflerden oluşan aramaları mesela yiinet yazınca iyinet i bulmasını yada ivinet yazıncada iyinet i bulmasını istiyorum :) php de bu şekilde bir yaklaşık sonuç kodu yokmu yada karışık harfleri bir kelimede arama ?

Evet yanlış anlaşılmış :)

Bu durumda aranan sözcükleri birer harf eksilterek Veritabanındaki sözcüklerle kademe kademe kontrol ettirebilirsin. Veya daha kısa yoldan yakın kombinasyonlara uygun verileri ortaya dökecek bir sistem vardır muhakkak.

ASP de buna örnek kod biraz araştırıp oluşturabilirim sanırım ama PHP...

Kolay gelsin.
 

raincu

0
İyinet Üyesi
Katılım
12 Mart 2008
Mesajlar
1,005
Reaction score
1
Konum
Anadolu
www.php.net/levenshtein
üstteki adresteki fonksiyon tamda senin dediğin olayı yapıyor.

PHP:
<?php
// input misspelled word
$input = 'atples';

// array of words to check against
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// no shortest distance found, yet
$shortest = -1;

// loop through words to find the closest
foreach ($words as $word) {

    // calculate the distance between the input word,
    // and the current word
    $lev = levenshtein($input, $word);

    // check for an exact match
    if ($lev == 0) {

        // closest word is this one (exact match)
        $closest = $word;
        $shortest = 0;

        // break out of the loop; we've found an exact match
        break;
    }

    // if this distance is less than the next found shortest
    // distance, OR if a next shortest word has not yet been found
    if ($lev <= $shortest || $shortest < 0) {
        // set the closest match, and shortest distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Input word: $input\n";
if ($shortest == 0) {
    echo "Exact match found: <b>$closest</b>\n";
} else {
    echo "Did you mean: <b>$closest?</b>\n";
}

?>

yukarıdaki fonksiyon test edilip onaylanmıştır. yukarıdaki haliyle kodun verdiği çıktı aşığıdaki gibidir.

Input word: atples Did you mean: apple?
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst