English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Algoritmi di ranking delle pagine e loro implementazione in Python

L'algoritmo PageRank è adatto ai siti web. I siti web sono grafici diretti, sappiamo che le due componenti di un grafico direzionato sono i nodi e i collegamenti. La pagina è un nodo, l'hyperlink è un collegamento, ossia la connessione tra due nodi.

Possiamo trovare l'importanza di ogni pagina tramite PageRank, ed è accurato. Il valore di PageRank è una probabilità tra 0 e 1.

Il valore di PageRank di un singolo nodo nell'immagine dipende dai valori di PageRank di tutti i nodi connessi, e questi nodi si connettono periodicamente ai nodi ai quali vogliamo assegnare un ranking, utilizziamo il metodo di iterazione di convergenza per assegnare i valori a PageRank.

Esempio di codice di esempio

import numpy as np
import scipy as sc
import pandas as pd
from fractions import Fraction
   def display_format(my_vector, my_decimal):
      return np.round((my_vector).astype(np.float), decimals=my_decimal)
      my_dp = Fraction(1,3)
      Mat = np.matrix([[0,0,1],
      [Fraction(1,2),0,0],
      [Fraction(1,2),1,0]])
      Ex = np.zeros((3,3))
      Ex[:] = my_dp
      beta = 0.7
      Al = beta * Mat + ((1-beta) * Ex)
      r = np.matrix([my_dp, my_dp, my_dp])
      r = np.transpose(r)
      previous_r = r
   for i in range(1,100):
      r = Al * r
      print (display_format(r,3))
if (previous_r==r).all():
   break
previous_r = r
print ("Final:\n", display_format(r,3))
print ("sum", np.sum(r))

Risultato di output

[[0.333]
[0.217]
[0.45
[[0.415]
[0.217]
[0.368]
[[0.358]
[0.245]
[0.397]
[[0.378]
[0.225]
[0.397]
[[0.378]
[0.232]
[0.39
[[0.373]
[0.232]
[0.395]
[[0.376]
[0.231]
[0.393]
[[0.375]
[0.232]
[0.393]
[[0.375]
[0.231]
[0.394]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
[[0.375]
[0.231]
[0.393]
Final:
[[0.375]
[0.231]
[0.393]
sum 0.9999999999999951