2012-02-03 16 views

risposta

23

In breve, i pesi di grandi dimensioni sono migliori per i nodi in ingresso.

PageRank funziona su un grafico ponderato diretto. Se la pagina A ha un link alla pagina B, allora il punteggio per B sale, cioè più input ha la pagina B (nodo), più alto è il suo punteggio.

Wikipedia article on PageRank per ulteriori dettagli.

Modifica: facciamo un esperimento. Crea un grafico diretto con 3 nodi e due bordi diretti con pesi uguali.

import networkx as nx 
D=nx.DiGraph() 
D.add_weighted_edges_from([('A','B',0.5),('A','C',0.5)]) 
print nx.pagerank(D) 

>> {'A': 0.259740259292235, 'C': 0.3701298703538825, 'B': 0.3701298703538825} 

Ora, aumentare il peso del bordo (A, C):

D['A']['C']['weight']=1 
print nx.pagerank(D)  

>> {'A': 0.259740259292235, 'C': 0.40692640737443164, 'B': 0.3333333333333333} 

Come si vede, il nodo C ha ottenuto il punteggio più alto con l'aumento del peso del bordo in arrivo.

+0

Impressionante grazie, Max! – Lostsoul

+1

Non sono sicuro "il PageRank funziona su un grafico ponderato diretto" è corretto. È mia opinione che ordinariamente i bordi usati in PageRank non siano ponderati, che ci sia o meno uno spigolo tra i nodi. Questo ha senso perché non puoi avere mezzo collegamento tra due pagine. Anche se sembra che il metodo pagerank in networkx permetta di pesare i bordi, come possono usare [TextRank] (http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d/Mehalcea-2004-TextRank-Bringing_Order_into_Texts.pdf) (sezione 2.2), che è basato su PageRank. – jksnw

+0

Perché dovresti assegnare un link più pesante? È lasciato alla realizzazione capire come certi link valgono di più? (Come link nel corpo vs link nei commenti?) – Xeoncross