PageRank mittels PHP berechnen

Hinter PageRank  steht ein verfahren, um verlinkte Dokumente (z.B. Webseiten) anhand der Linkstruktur zu bewerten und zu gewichten. Entwickelt wurde der Algorithmus von Larry Page und Sergei Brin, den Gründern von Google, und der Algorithmus brachte den großen Erfolg für Google. Erstmals konnte man anhand von Verweisen zwischen Webseiten analysieren, welche Webseiten (und deren Unterseiten) häufig verlinkt sind und damit potentiell wichtig sind.

Um diese Linkstruktur zwischen Webseiten zu erfassen, liest ein Crawler das HTML der Webseite aus und analysiert, welche Hyperlinks vorhanden sind inklusive deren Linkziele. Dabei müssen natürlich auch Follow- bzw. NoFollow-Angaben (Fachbeitrag zu diesem Thema) berücksichtigt werden.

In diesem Artikel möchte ich euch zeigen, wie ihr in PHP vergleichsweise den PageRank für einen kleinen Linkgraphen berechnen könnt. So lässt sich beispielsweise die wichtigen Seiten einer (kleineren) Website herausfinden.

 

Der PageRank Algorithmus

Hinter dem Algorithmus steckt folgende Formel:

 

Für die genauen mathematischen Details möchte ich auf den entsprechenden Wikipedia-Artikel verweisen: PageRank

 

Anschaulich funktioniert wie PageRank wie folgt (Bildquelle):

Für jeden Knoten (z.B. Webseite) in meinem Graphen habe ich eingehende und ausgehende Verbindungen, diese entsprechen meine eingehenden Links und meine ausgehenden Links.

Ein Knoten wird als wichtig erachtet, wenn dieser viele eingehende Verbindungen hat, sprich, wenn viele Webseiten auf den Knoten verlinken. Dabei zählen Verbindungen unterschiedlich viel: Verlinkt eine Website mit hohem PageRank, so ist dies positiver als wenn viele unwichtige Webseiten auf ein Ziel verlinken würden. Sprich, der PageRank ist ein rekursives Verfahren, der PageRank einer Seite ist umso höher, je mehr Seiten mit hohem PageRank auf die Seite verweisen.

In der Praxis wird der PageRank in mehreren Runden berechnet. Zu Beginn bekommt jeder Knoten den gleichen PageRank. Danach wird der PageRank für jede Seite aktualisiert mit den ursprünglichen, gleichen PageRanks aller Seiten. Da sich der PageRank der Seiten geändert hat, ändert sich auch wie viel PageRank sie an andere Seiten weitergeben. Also wird der PageRank mit den aktualisierten Werten erneut berechnet. Dies wird entweder für eine gewisse Anzahl an Runden durchgeführt, oder bis es nur noch minimale Änderungen in den PageRank Werten gibt.

PageRank in PHP Berechnen

Die Berechnung von PageRank ist leider nicht ganz einfach. Aber zum Glück gibt es bereits Programmcode, der PageRank für einen Graphen für uns berechnen kann: paslandau/pagerank

Die Installation und Nutzung ist leider nicht ganz einfach. Zuerst empfiehlt es sich, Composer zu installieren. Composer ist der Standard-Packetmanager für PHP und macht das Installieren von Abhängigkeiten recht einfach.

 

Nachdem ihr Composer installiert habt, erstellt ihr eine neuen Ordner eine composer.json Datei mit folgendem Inhalt:

 

Ist diese Datei erstellt, steuert ihr mit der Kommandozeile in den entsprechenden Ordner und führt den Befehl

aus. Dieser lädt die notwendigen Programmdateien herunter.

 

Anschließend könnt ihr den PageRank für eine Beispielseite wie folgt berechnen:

 

Die Ausgabe von dem Script sieht wie folgt aus:

 

Im ersten Teil des Scripts erstellt ihr zuerst Knoten (Nodes) für alle Seiten einer Website. Anschließend fügt ihr Verbindungen (Edges) hinzu, z.B. die Verlinkungen zwischen euren Seiten. Im Anschluss wird der PageRank berechnet und die Seiten mit dem höchsten PageRank werden

 

 

Autor:
Zurück zur Übersicht aller Beiträge