• 03-05-2014, 21:28:48
    #1
    Formdan bir metin geliyor. Bu metni cümlelere bölerek bu cümleleri veritabanımda aratıyorum ve benzerliklerini kontrol ediyorum. Eğer benzerlik değeri %50nin üzerindeyse o cümle kalın olsun istiyorum. Ve metni en son çıktı olarak vermek istiyorum. Yani son çıktıyı verirken, %50'den fazla benzerlik olan cümle kalın yazılsın istemekteyim.

    Mantığı kuramadım. Yardımlarınızı bekliyorum.

    <meta charset="utf-8" /><form action="" method="post">
    <textarea rows="20" cols="80" name="text">Sosyal medya devi Twitter'ın yeni tasarıma geçmesiyle birlikte yeni bir bomba özelliği hayata geçirmeye hazırlandığı ortaya çıktı. Twitter'da kullanıcılar takip etmek istedikleri kişileri 'Takip Et' butonu ile takip etmeye başlıyor ve takip edilen kullanıcının her yazdığı tweet ardı ardına ekrana düşüyordu. Eğer atılan tweet'lerden rahatsız olan kullanıcı olursa, kullanıcı takip etmeyi bırakmak durumunda kalıyordu. Ancak Twitter'ın henüz üzerinde çalıştığı 'Mute' yani 'Sessize al' uygulaması kullanıcıları bu anlamda oldukça rahatlatacak gibi görünüyor. Bu butona tıklayan kullanıcılar söz konusu kişinin attığı tweet'leri artık görmeyecek. İstendiği zamanda 'Mute' özelliğini pasif konuma getirerek söz konusu kullanıcının tweet'leri alınmaya devam edecek. Twitter'ın bunu yapmasındaki en önemli etken ise şu: Kullanıcılar üst üste bir kullanıcının tweet'lerini görüp ekranın dolmasından şikayetçi olduğunda kullanıcıyı engellemek durumunda kalıyordu. Ancak bu kez öyle bir zorunluluk gerekmiyor ve takip edilen kişinin haberi dahi olmadan attığı tweet'lerin gizlenmesi sağlanabiliyor.</textarea>
    <input type="submit" value="Kontrol" />
    </form>
    <?php
    if($_POST){
        $words = stripslashes($_POST['text']); // formdan post edilen metin
        $explo = explode('<span class="st">', $login);
        // print_r($explo);
        $count = count($explo);
        $split = explode('.', $words);
        foreach($split as $p){
            foreach($explo as $first){
                $parca = explode('</span>', $first);
                $conte = preg_replace('#(.*?) saat önce#si', '', $parca[0]);
                $conte = str_replace(' ... ', '', $conte);
                $conte = str_replace('<b>...</b>', '', $conte);
                $conte = str_replace(array('<br />', '<br>', '<br/>', '<b>', '</b>'), array(''), $conte);
                similar_text($conte, $words, $percent);
                $perce = number_format($percent, 0);
                if($perce > 50){
                    // eğer % değeri 50'nin üzerindeyse ilk metinde bu cümleyi kalın yapmak istiyorum.
                }
            }
        }
    }
    ?>
  • 03-05-2014, 22:11:37
    #2
    Üyeliği durduruldu
    bol miktarda contains ve true değerleri sayacak bir kaç döngüye ihtiyaç var sanırım..
    konu php den çok sql ile alakalı..
    kullanacağınız alanın string değerinin uzunluğu sorguya şekil verecek.
    başlıklarda mı daha uzun metinlerdemi bu işlevi yapmak istiyorsunuz. ona göre kafa yorsak daha iyi olur.

    ihtiyaç fazla değilse yapılmamasını tavsiye ederim. sisteme ciddi yük getirecektir.
  • 03-05-2014, 22:18:25
    #3
    gallisene adlı üyeden alıntı: mesajı görüntüle
    bol miktarda contains ve true değerleri sayacak bir kaç döngüye ihtiyaç var sanırım..
    konu php den çok sql ile alakalı..
    kullanacağınız alanın string değerinin uzunluğu sorguya şekil verecek.
    başlıklarda mı daha uzun metinlerdemi bu işlevi yapmak istiyorsunuz. ona göre kafa yorsak daha iyi olur.

    ihtiyaç fazla değilse yapılmamasını tavsiye ederim. sisteme ciddi yük getirecektir.
    Hocam veritabanı örnek verdim. Başka sitelerdeki veri ilede karşılaştırma yapabilirim. Formdan gelen metni cümlelere bölüyorum.

    Herhangi bir yerde bu cümleyi aratıyorum. Arattığım yerde bu cümle mevcutsa kalın yapıyorum. Ve orjinal metinde kalın stilde bu cümleyi gösteriyorum.

    Yapmak istediğim tam olarak bu
  • 03-05-2014, 22:23:48
    #4
    Üyeliği durduruldu
    şöyle bir senaryo için şöyle birşey olabilir
    1 adet veritabanı
    1 adet farklı bir yerden gelen cümle
    çok boyutlu bir dizi oluşturup veritabanından çektiğin verilerin idlerini kaydedip aynı zamanda bir döngü ile sırayla metnin kelimelerini veritabanından gelen cümlelerle contains kullanarak kontrol edip true değer verenler için +1 yaparak diziye kaydedebilir ve metnin kelime sayısını 2 ye bölüp dizideki true değer sayısı bu rakamdan büyük olan değer varsa kalın yapabilirsin. sözlü mantığı buolabilir. php bilmem pek.