免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2906 | 回复: 2

新手请教!PageRank!!! [复制链接]

论坛徽章:
0
发表于 2016-05-28 01:47 |显示全部楼层
本帖最后由 t464961268 于 2016-05-28 23:31 编辑

test.txt数据如下:
QQ截图20160528233903.png

想要通过pagerank构建影响力模型,求出最终的pagerank值,并且排名。

请问在不考虑权重的条件下如何实现?

论坛徽章:
0
发表于 2016-05-28 15:19 |显示全部楼层
找到了一个参考代码但是不会改。。。求大神带。。


  1. import networkx as nx
  2. G = nx.MultiGraph()
  3. G.add_edge(1,2,weight=7)
  4. G.add_edge(1,2,weight=10)
  5. G.add_edge(2,3,weight=9)

  6. # make new graph with sum of weights on each edge
  7. H = nx.Graph()
  8. for u,v,d in G.edges(data=True):
  9.     w = d['weight']
  10.     if H.has_edge(u,v):
  11.         H[u][v]['weight'] += w
  12.     else:
  13.         H.add_edge(u,v,weight=w)

  14. print H.edges(data=True)
  15. #[(1, 2, {'weight': 17}), (2, 3, {'weight': 9})]
  16. print nx.pagerank(H)
  17. #{1: 0.32037465332634, 2: 0.4864858243244209, 3: 0.1931395223492388}
复制代码

论坛徽章:
0
发表于 2016-05-28 15:20 |显示全部楼层
需要先遍历文件,我是这样写的,但是往下就不会了。。
  1. import networkx as nx


  2. file=open(r'E:\program\cooperation\network.txt','r')
  3. a = []
  4. for line in file:
  5.     con=line.split(',')
  6.    
  7.     while '' in con:
  8.         con.remove('')
  9.     while '\n' in con:
  10.         con.remove('\n')
  11.     a.append(con[0])
  12.    
  13.    
  14.    
  15.     G = nx.MultiGraph()
  16.     G.add_edge(con[0],con[1],weight=con[2])
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP