2012-02-03 40 views

Trả lời

23

Ngắn gọn, trọng lượng lớn tốt hơn cho các nút đến.

PageRank hoạt động trên biểu đồ có trọng số hướng. Nếu trang A có một liên kết đến trang B, thì điểm số cho B tăng lên, tức là đầu vào càng nhiều trang B (nút), điểm càng cao thì điểm của nó càng cao.

Wikipedia article on PageRank để biết thêm chi tiết.

Chỉnh sửa: chúng ta hãy thực hiện một thử nghiệm. Tạo một đồ thị có hướng với 3 nút và hai cạnh được hướng với trọng số bằng nhau.

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} 

Bây giờ, làm tăng trọng lượng của (A, C) cạnh:

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

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

Như bạn thấy, các nút C có điểm số cao hơn với sự gia tăng trọng lượng của cạnh đến.

+0

Tuyệt vời cảm ơn bạn, Max! – Lostsoul

+1

Tôi không chắc "PageRank hoạt động trên biểu đồ có trọng số trực tiếp" là chính xác. Đó là sự hiểu biết của tôi rằng thông thường các cạnh được sử dụng trong PageRank không phải là trọng số, có hoặc là một cạnh giữa các nút hoặc không có. Điều này có ý nghĩa bởi vì bạn không thể có một nửa liên kết giữa hai trang. Mặc dù có vẻ như phương thức pagerank trong networkx không cho phép các cạnh được cân, giống như chúng có thể sử dụng [TextRank] (http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d /Mihalcea-2004-TextRank-Bringing_Order_into_Texts.pdf) (phần 2.2), dựa trên PageRank. – jksnw

+0

Tại sao bạn chỉ định một liên kết trọng lượng hơn? Có phải việc tiếp tục triển khai để tìm ra cách một số liên kết đáng giá hơn? (Giống như các liên kết trong cơ thể so với các liên kết trong các bình luận?) – Xeoncross

Các vấn đề liên quan