美文网首页程序员
No.5 使用 PageRank 找到关系网中的牛人

No.5 使用 PageRank 找到关系网中的牛人

作者: 2453cf172ab4 | 来源:发表于2017-09-11 20:23 被阅读197次

0x00 前言

社交关系数据已经准备就绪,PageRank算法的原理和实现我们也已经大致掌握,下面就可以在此基础上做一些有意思的事情了。

本篇会在前面抓取的500w简书的粉丝数据上,使用 PageRank 找到其中的排名靠前的用户。

0x01 前期准备

1. 数据准备

数据的存储格式如下,这也是我们在生产环境中经常使用的数据格式,因此在爬虫获取的阶段已经处理完毕。这份数据是一个有向图,左边为用户,右边为他的粉丝。

备注: 这里面用的是简书生成的用户的ID,根据这个ID可以很方便地拼出来用户的主页。

2. 程序准备

这里还是要鄙视一下自己的程序,我没用自己的写的Demo程序,而用了一个Python包:NetworkX。懂了原理之后,用一些开源的实现,总是比自己靠谱一点。

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

NetworkX用起来很方便,总的来讲三步就搞定:

  1. 引入NetworkX包
  2. 初始化一个图
  3. 计算PageRank值

0x02 实现和效果

实现

使用NetworkX包的话就很简单了,本来想用Matplotlib画一下关系图呢,但是数据量太大,后续到数据可是化的时候用Gephi或者Tableau玩一下。 下面是一个简单的代码,求取PageRank值。

对于最终结果,我们可以排一个序,然后打印出来PageRank值在前十的用户。如下图:

效果

效果的话,没什么好说的,自己跑一下数据然后取top的用户就会发现,排名考前的用户,大部分都是粉丝非常多的用户,相应的他们的博客的数量以及阅读量也都很多。

由于整个关系网是以我为入口爬取,因此在排名考前的一些用户中主要是三种类型:

  1. 数据相关的从业者(我关注的人以及我的粉丝大部分都会是类似的用户)
  2. 鸡汤类作家(简书的主旋律)
  3. 经常画画的简书用户(之前画过一些简笔画,因此有不少类似的关系)

0xFF 总结

做这一步只是为了好玩,然后顺便加深一下对PageRank算法的理解。 跑完程序之后感觉还是有不少收获的,也打开了不少的思路。

首先是观察到了一个非常有趣的现象:刚开始数据比较少的时候(20万左右)我就运行了一下程序,发现了有一个排名很靠前的用户,大概排名第七,但是他只有一个粉丝,看了一下他的粉丝,这个粉丝排名在第二,相应地把他拉到了第七的位置,这就验证了上一篇文章中提到的:如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高

然后数据量大起来后再运行了程序,在结果集中过滤掉鸡汤类用户之后,会发现很多之前没关注的博主,他们的博客都非常高。如果按照这种方式,简书或者CSDN这种博客网站,是不是可以将PageRank值作为推荐的一个权重,用于推荐系统中?不太清楚他们的推荐是怎么做的,不过没听说过哪个公司用PageRank作为推荐的一个权重,应该是有其局限性。

PageRank算法的原理的实现以及一个基本场景大致过了一遍,后续会来搞一下社区分区,然后再分别实现这些算法的MapReduce程序,以及在MapReduce程序中如何进行工程上的优化。


作者:dantezhao |简书 | CSDN | GITHUB

个人主页:http://dantezhao.com
文章可以转载, 但必须以超链接形式标明文章原始出处和作者信息

相关文章

  • No.5 使用 PageRank 找到关系网中的牛人

    0x00 前言 社交关系数据已经准备就绪,PageRank算法的原理和实现我们也已经大致掌握,下面就可以在此基础上...

  • 常用图算法实现--Spark

    使用Spark实现PageRank,强连通分量等图算法 PageRank 数据准备 边: 网页: 将这两个文件放入...

  • Rank

    soure code 一:Pagerank:PageRank是Google用于衡量特定网页相对于搜索引擎索引中的其...

  • 大数据Hadoop生态圈技术之浅析PageRank计算原理

    一、什么是PageRank? —— PageRank是Google提出的算法,用于衡量特定网页相对于搜索引擎索引中...

  • Pagerank算法

    一. Pagerank介绍PageRank算法以前就是Google的网页排序算法。PageRank算法,对每个目标...

  • 常用图算法实现--Hadoop

    PageRank 数据准备 边: 网页: 将这两个文件放入HDFS: 编写程序 PageRank PageRank...

  • Arxiv网络科学论文摘要8篇(2020-02-14)

    使用Newcomb-Benford定律检验中国2019冠状病毒的测试案例数; 使用PageRank和持续同调的图相...

  • 输入太多,消化不良

    最近处在一个很难得的状态,完全的放空自己,沉浸在学习中,方法也很简单,找到认可的牛人,把所有能找到的,牛人分享出来...

  • JZBigData - PageRank

    网页搜索系统:根据数量和质量假设,使用Pagerank算法实现网页搜索项目 传统方法 Originally Use...

  • 网新关键词4-6章

    互联网精神 开放、平等、协作、快速、分享 google pagerank PageRank,网页排名,又称网页级别...

网友评论

    本文标题:No.5 使用 PageRank 找到关系网中的牛人

    本文链接:https://www.haomeiwen.com/subject/atafsxtx.html