Nasıl benim küçük ağ için PageRank hesaplayabilirsiniz?

2 Cevap php

Benim MySQL veritabanında iki masaya var

tablo1 benim ağ içinde tüm web sayfalarını sahiptir

         | table1: (pages)|
         |----------------|
         | id   | url     |
         |----------------|

table2 bağlantının kaynak sayfa ve bağlantının hedef sayfa olan iki alan vardır

          |---------------------------|
          |table2(links)              |
          |---------------------------|
          |from_page_id   | to_page_id|
          |----------------------------

Benim ağ için page rank nasıl hesaplanır

Ben bu makaleyi here bu PageRank algoritması açıklar buldular ama PHP onların formülünü yazmak çok zordur + Matematikte iyi değilim

Teşekkürler

update:

Ben benim ağ neredeyse 5000 sayfa var

2 Cevap

HI tekrar

Ben bunu nasıl anladım var düşünüyorum ama emin değilim

Benim yolum hesaplamada pagerank doğru olup olmadığını ben sen ve sen yargılayacak kadar

Önce ben "sayfalar" tablosuna yeni bir sütun ekledik o ki sayfadan dışarı gidiyor bağlantıları numarası vardır "outgoinglinks" adı verilen bir

ve ben başka bir iki sütun "pagerank" ve "pagerank2" ekledim

ve "i" olarak adlandırılan başka bir sütun yineleme sayısını

Şimdi programlama hareket sağlar

     $step="pg";
     for($i=0;$i<50;$i++){
         if($step=="pg2"){
             $step="pg";
         }else{
             $step="pg2";
         }
         $totalpages=5000;
         $sql1 = "select id from pages";
         $result1 = $DB->query($sql1);
         while($row1 = $DB->fetch_array($result1)){
             $page_id = $row1["id"];
             $sql = "select * from links where to_page_id = '$page_id'";
             $result = $DB->query($sql);
             $weights_of_links=0;//sum of pageranks/number of outgoing links
             while($row = $DB->fetch_array($result)){
                   $from_page_id = $row["from_page_id"];
                   $row2 = get_record_select("pages","id = '$from_page_id'");
                   $outgoinglinks = $row2["outgoinglinks"];
                   if($step=="pg2"){
                           $from_page_id_pagerank = $row2["pagerank2"];
                   }else{
                           $from_page_id_pagerank = $row2["pagerank"];
                   }

                   $weights_of_links +=($from_page_id_pagerank/$outgoinglinks );
             }

            //final step I tried to write the formula from wikipedia and the paper I have referred to
            $pagerank = .15/$totalpages + .85*($weights_of_links);
            //update the pagerank
           $ii = $i+1;
           if($step=="pg2"){
                 update_record("pages","id='$url_id'","pagerank='$pagerank',i='$ii'");
           }else{
                 update_record("pages","id='$url_id'","pagerank2='$pagerank',i='$ii'");
           }
         }
      }

note:

Emin 1 sayfalardan birinin pagerank (her sayfa) ayarlanır ve 0 ile diğer sayfaları ayrılmak yapmak başlamadan önce

why two pageranks columns?

Ben bu kadar bizim betik, bu iki sütun arasında alternatif olacak doğru bir hesaplama için her tekrarında ayrı gerektiğini düşünüyorum, çünkü her tekrarında page rank sütunlardan biri için işlem yapmak ve diğer pagerank sütuna yeni sonuçlar kurtaracak yaptı

50 kez gibi bir doğru sonuçlar her zaman almak için birçok kez önceki kod döngü olacak bizim sayfalar için gerçek pagerank yakın alacak

my question is, if the sum of all the pageranks in my network should be equal 1! if yes how is google giving every page a rank out of 10?!

herhangi bir fikir?

Teşekkürler

O kendi ağ yoksa, neden tam olarak PageRank gerekiyor? Neden sadece belirli bir sayfa için benzersiz sayfalarından bağlantıların toplam sayısını hesaplamak ve bir sayfa puanı olarak bu numarayı kullanmak için değil mi?