我读了这篇文章《基于LDA模型的新冠疫情微博用户主题聚类图谱及主题传播路径研究》,很有启发。我有个问题:PageRank怎么计算?

而且是要用Python进行编程计算。另外,GooSeeker发布的一系列Jupyter Notebook分析模板对我启发很大,那么在notebook中怎么计算PageRank?


举报 使用道具
| 回复

共 2 个关于本帖的回复 最后回复于 2021-8-16 11:28

内容分析应用 金牌会员 发表于 2021-7-6 11:27:25 | 显示全部楼层
PageRank根据网站的外部链接和内部链接的数量和质量,衡量网站的价值。PageRank隐含的思想就是:每个到页面的链接都是对该页面的一次投票, 被链接的越多,就意味着被其他网站投票越多。一个网页所获得“投票”越多,说明这个网页越重要,它的被访问的概率越大,自然分级排名就越高,那么搜索结果它就越靠前。这就好比是一篇学术论文,论文被引用的次数越多,论文的影响因子越高,自然论文就越权威!

python代码的实现例子(转自知乎:机器学习(二):PageRank算法+Python实现)
  1. import numpy as np
  2. #获取一个关系矩阵,这里测试来用,直接赋值返回
  3. def init_realtion_array():
  4.     a = np.array([[0,0.5,1,0],
  5.                   [0.33333333,0,0,0.5],
  6.                   [0.33333333,0,0,0.5],
  7.                   [0.33333333,0.5,0,0]],
  8.                  dtype=float)
  9.     return a
  10. #初始化最初的pr值
  11. def init_first_pr(length):
  12.     pr = np.zeros((length,1),dtype=float)#构造一个存放pr值的矩阵
  13.     for i in range(length):
  14.         pr[i] = float(1) / length
  15.         return pr
  16. #计算PageRank值
  17. def compute_pagerankX(p,m,v):
  18.     i = 1
  19.     while(True):
  20.         v = p * np.dot(m,v) + (1 - p) * v
  21.         i = i + 1
  22.         if i >= 10:
  23.             break
  24.             return v
  25. if __name__ == '__main__':
  26.     relation_array = init_realtion_array()
  27.     pr = init_first_pr(relation_array.shape[0])
  28.     p = 0.8
  29.     print(compute_pagerankX(p,relation_array,pr))
  30.     print(p,relation_array,pr)
复制代码


举报 使用道具
Fuller 管理员 发表于 2021-8-16 11:28:51 | 显示全部楼层
参看《在Jupyter Notebook中用Python做PageRank算法计算》,介绍了两种PageRank计算方法。该notebook中还引用了一篇知乎专栏文章,那篇文章详细讲解了算法的原理。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-3-29 03:26