2012-02-03 22 views

Respuesta

23

En breve, los pesos grandes son mejores para los nodos entrantes.

PageRank trabaja en un gráfico ponderado dirigido. Si la página A tiene un enlace a la página B, entonces la puntuación para B aumenta, es decir, mientras más entrada tenga la página B (nodo), mayor será su puntaje.

Wikipedia article on PageRank para más detalles.

Editar: hagamos un experimento. Crea un gráfico dirigido con 3 nodos y dos bordes dirigidos con pesos iguales.

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} 

Ahora, aumentar el peso de la arista (A, C):

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

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

Como se ve, el nodo C tiene la puntuación más alta al aumentar el peso del borde entrante.

+0

Awesome thank you, Max! – Lostsoul

+1

No estoy seguro de si "PageRank funciona en un gráfico ponderado dirigido" es correcto. Tengo entendido que normalmente los bordes utilizados en el PageRank no son ponderados, hay un borde entre los nodos o no lo hay. Esto tiene sentido porque no puede tener medio enlace entre dos páginas. Aunque parece que el método de pagerank en networkx permite ponderar los bordes, como pueden estar utilizando [TextRank] (http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d /Mihalcea-2004-TextRank-Bringing_Order_into_Texts.pdf) (sección 2.2), que se basa en PageRank. – jksnw

+0

¿Por qué asignarías un enlace con más peso? ¿Depende de la implementación descubrir cómo ciertos enlaces valen más? (¿Como enlaces en el cuerpo versus enlaces en los comentarios?) – Xeoncross

Cuestiones relacionadas