我读了这篇文章《基于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中还引用了一篇知乎专栏文章,那篇文章详细讲解了算法的原理。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • LDA主题分析模型到底是什么?
  • top2vec话题发现原理和使用方法
  • 将文本聚类和LDA分析模块安装在数据盘上的
  • GooSeeker分词软件的tf-idf算法和特征词选
  • 边表格式和矩阵格式的共词矩阵表有什么区别

热门用户

GMT+8, 2026-4-9 00:06