Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die PHP-Implementierung von PageRank

Beispiel für die PHP-Implementierung von PageRank

不言
不言Original
2018-07-05 16:24:021551Durchsuche

Dieser Artikel stellt hauptsächlich Beispiele für die Implementierung von PageRank in PHP vor. Jetzt kann ich ihn mit Ihnen teilen.

PHP implementiert einfach den PageRank-Algorithmus >

使用的web site模型

<?php
header("Content-type:text/html; charset=utf-8");
class PageRank{
    public $map = [];    
    public $rank = [];    
    public $inputList = []; // example web &#39;a&#39; (has input link): web &#39;b&#39;

    public $size;    
    public $keyValue = 0.85;    
    public function __construct(array $map) {
        $this->map = $map;        
        $this->size = count($this->map);
    }    //init rank score and transform &#39;map&#39; format to &#39;inputList&#39; format
    public function init()
    {
        $size = $this->size;        
        foreach ($this->map as $key => $value) {            
        $this->inputList[$key] = [];
        }        foreach ($this->map as $key => $value) {            
        $this->rank[$key] = 1/$size;            
        foreach ($value as $v) {                
        if (empty($this->inputList[$v])) {                    
        $this->inputList[$v][] = $key;
                } else {
                    array_push($this->inputList[$v], $key);
                }
            }

        }
    }    public function caculate()
    {
        $tmp = $this->rank;        
        $keyValue = $this->keyValue;        
        $size = $this->size;        
        foreach ($this->inputList as $key => $value) {            
        $score = (1 - $keyValue)/$size;            
        foreach ($value as $v) {                
        $cc = count($this->map[$v]);                
        if ($cc) {                    
        $score += ($keyValue*(1/$cc * $this->rank[$v]));
                }
            }            $tmp[$key] = $score;
        }        $this->rank = $tmp;
    }


}$map = [        &#39;a&#39; => [&#39;b&#39;, &#39;c&#39;, &#39;d&#39;],// web &#39;a&#39; (has out link): web &#39;b&#39;, web &#39;c&#39;, web &#39;d&#39;
        &#39;b&#39; => [&#39;a&#39;, &#39;d&#39;],        &#39;c&#39; => [&#39;b&#39;],        &#39;d&#39; => [&#39;b&#39;, &#39;c&#39;],
];$example = new PageRank($map);
$example->init();
echo &#39;<pre class="brush:php;toolbar:false">&#39;;for ($i = 0; $i < 10; $i++) {    
$example->caculate();
    var_dump($example->rank);
}

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

php Vervollständigen Sie die Funktion des Excel-Downloads über ein HTML-Tabellenformular

php ID-Kartenerkennung ORC Die Methode implementiert

Das obige ist der detaillierte Inhalt vonBeispiel für die PHP-Implementierung von PageRank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn