2012-02-03 10 views

Odpowiedz

23

Krótko mówiąc, duże wagi są lepsze dla węzłów przychodzących.

PageRank działa na ukierunkowanym wykresie ważonym. Jeżeli strona A ma link do strony B, to wynik dla B rośnie, tj. Im więcej danych wejściowych ma strona B (węzeł), tym wyższy jest jej wynik.

Wikipedia article on PageRank w celu uzyskania dalszych szczegółów.

Edytuj: zróbmy eksperyment. Utwórz ukierunkowany wykres z 3 węzłami i dwoma skierowanymi krawędziami o równej wadze.

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} 

Teraz zwiększyć masę (A, C) krawędzi:

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

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

Jak widać, węzeł C dostał wyższą ocenę ze wzrostem wagi krawędzi przychodzącej.

+0

Niesamowite dzięki, Max! – Lostsoul

+1

Nie jestem pewien, czy "PageRank działa na ukierunkowanym wykresie ważonym" jest poprawny. Rozumiem, że zwykle krawędzie stosowane w PageRank nie są ważone, istnieje albo krawędź między węzłami, albo nie ma. Ma to sens, ponieważ nie można mieć połowy łącza między dwiema stronami. Chociaż wygląda na to, że metoda pagerank w networkx pozwala na ważenie krawędzi, tak jak mogą używać [TextRank] (http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d /Mihalcea-2004-TextRank-Bringing_Order_into_Texts.pdf) (sekcja 2.2), który opiera się na PageRank. – jksnw

+0

Dlaczego przypisujesz link większej wadze? Czy od wdrożenia zależy, w jaki sposób niektóre linki są warte więcej? (Jak linki w ciele a linki w komentarzach?) – Xeoncross

Powiązane problemy