百科问答小站 logo
百科问答小站 font logo



有哪些网站用爬虫爬取能得到很有价值的数据? 第1页

  

user avatar   FavorMylikes 网友的相关建议: 
      

有时候有了数据就想分析一下,跟大家分享一下我的实验。

这是我去年十一回来遍开始计划的实验,重装系统之后将QQ存储文件的文件夹放到了我的备份盘里, QQ会把你的聊天记录和图片分开存储,而且群组和好友也是分开存放在两个文件夹里的,好友G:Tencent file<your qq number>ImageC2C,群组G:Tencent file<your qq number>ImageGroup。尽量保证电脑长时间开机,并且保证QQ一直在线,这样,每当QQ群里接受到消息之后,图片就被保存在了你的本地硬盘上。所以有人在群里爆了照再撤回其实是可以找到的,偷笑偷笑,只要找到Group文件夹里最新的照片就好了。

随着图片越来越多,QQ会把近期缓存的图片整理到一个新的文件夹里去,每到4000张图的时候就整理一次。我加了90多个QQ群,一半以上是千人群,6个月之后我的文件夹就变成了这个样子。


缓存了将近7个G的图片,一共十万五千张。


这次不讨论聚合和图片分类的问题,我们简单的统计一下直接从图片文件所携带的信息。这些图片一共有三种主要的格式, JPEG,PNG,GIF,通常就是,照片,截图,表情包~~

比例如下:


除了简单的类型统计呢,我们还可以根据图片的创建时间来统计信息,当然在登录QQ的一开始,也会因为大量的接受图片而导致一个时间序列上图片数量出现极值。

时间序列尺度在周,分钟,和天的变化情况就显而易见了。

哦,周末人们在网上竟然比平时少活跃了一半,可能是活跃的人少了,也可能是活跃的时间少了,但是我认为,大家在家睡到12点的可能性更大一点,谁叫我加的都是工科群,23333.

在看每天的数据,天哪,竟然到了1点多才算全睡觉,本宝宝突然觉得好心塞,这个行业是怎么了。然后第二天6点多陆续起床,12点又开始去吃饭去了。等等等等,图上都显示的清清楚楚。

再看一年中的数据,唔~~~,好像周期性很强烈, 一到周末大家就睡觉了嘛?哎,二月五号左右我们在干吗?怎么那么低?原来是在过年,大家都在家里浪着呢。怎么有两天是0?好吧,我在往返的火车上,好心塞。

等等,如果PNG代表截图,那可能表示大家在讨论问题。如果GIF多一些,可能表示大家在斗图水群啊!我好像找到了你们不工作偷懒的秘密!让我们来分别看一下三种图片的动态变化。

看到了吧,过年的时候大家拍了好多照片分享到群里!

那么周的呢?

左侧是总数,右侧是百分比,大家在周末,更少讨论工作,也很少斗图,竟然都出去玩拍照片去了!让我很是诧异,只有我一个人会自然醒么?

对了我们还有图片的宽高信息:

加了对数之后的分布情况,呃,貌似看不出什么,那直接用散点吧


几点线若隐若现的样子,连起来看看好了

这下知道那些线是什么了,是手机屏幕大小和电脑屏幕大小。斜线就是屏幕的长宽比啦。也很容易看出那些屏幕占了市场的主流。那1:1的?有这种屏幕??应该是截图的时候截的图长宽比在1左右浮动吧,看到条线也是最粗的。

顺便看了一下那些图是最常用的。腾讯为了减少图片在网络流上的浪费,对于md5一样的图片,他们在聊天记录里的名字是一样的!值得一提的是,一张gif动图的第一帧如果和某个静态的jpge图片一样的话,那么他们的名字也是一样的,基于这个原理,统计了一下29个文件夹下出现次数最多的图片前三名,竟然是这个:

果然还是表情包~~~~,最容易反应大家当时的心情么23333,帧数最多的是~~~~~


贪吃蛇~~,你们是有多无聊。

对了,本宝宝滤了一套表情包出来,哈哈哈


好了,就这样,这次不讨论过多的模式识别和监督学习之类的东西,希望大家也能在想不到的地方得到想不到的结果,希望能对各位有所启发。看完后希望你们也能给个这样的表情。

再分享一篇之前的建模~~

假如现代的 1 万人穿越到智人时代,大约多久能重建现代文明? - 最爱麦丽素的回答

欢迎各类奇葩怪咖加微信FavorMylikes,嘻~~~


user avatar   zhao-che 网友的相关建议: 
      

其实上个月就看到这个问题下有对知乎的数据分析,拿了好多赞。我虽然也想分享我们做的东西,但苦于原材料全是英文,style也比较严肃,调整起来比较烦。终于拖到现在,完成了整个内容的转述,并且加入了一些新的思考。

本项目的源起其实要感谢

@苏莉安

,当初就是因为看到他在专栏上发的两篇知乎数据分析的文章,觉得知乎非常有分析的价值,于是在一个Course Project里提出了这个题目。正如文中已提到的,这个小项目其实远远没达到令人满意的程度,挖得太浅,实际处理的数据量也很小,我其实是还想继续做下去的。如有任何问题敬请指正,如有知友想要在此基础上继续做点啥的也请让我知道。

本文的简书版链接:

知乎社交网络分析(上):基本统计 知乎社交网络分析(下):关注网络

------------------------------------------------------上篇-基本统计--------------------------------------------------------

1.0 简介

本文源自我在2015年Social Computing课程中参与的一个小组项目,主要语言为Python。项目的原始材料为英文撰写,内容包括了从爬取知乎数据一直到结果分析的整个过程。在本文中我打算略去数据爬取和数据库I/O的部分,重点在分享一些有趣的结论。分析过程若有不周之处,还望指正。

为保证可读性,本文将分为上下两篇,一篇只涉及数据介绍及基本的统计分析,另一篇是基于用户关注网络和关注话题进行的分析


如果对这个小项目的全貌感兴趣,甚至想要自己fork过来玩玩,这里是项目的Github传送门。数据的压缩包可以在这里下载(使用请注明来源为本答案页面)。(由于时间精力有限,想要做的远远比已经做了的多,数据量也很不让人满意,如果有童鞋感兴趣咱一起继续啊~)



1.1 数据

(自带吐槽模式开启)


虽说不讲数据爬取,但要说清楚我们所使用的数据到底是啥,还是得简单提一下的。2015年10月,我们使用了本人的知乎账号作为种子,先获得了所有我关注的用户的数据,再获得了这些用户所关注的用户的数据,所以算上种子的话一共是3层的广度遍历(注意其实这个数据可能是存在严重bias的,毕竟seed是一个逗逼,逗逼关注的人呢...咦怎么感觉脖子一凉)。这里的用户数据包括:用户的回答数,用户获得的赞同数、感谢数,用户关注的人和关注用户的人,用户回答过的问题以及每个问题的话题标签。这里给出数据的简要统计信息:


  • 数据库文件: 688 MB(SQLite)
  • 数据包含:2.6万名用户, 461万条关注连接, 72万个问题

这里是一张数据全貌的图示:


下面将着重介绍我们所做的分析。



1.2 玩的不是同一个知乎:均值、中位数与标准差

要告诉别人我们在知乎上混得怎样,最基础的几个指标是什么呢?一定是关注、回答、赞同、感谢。所以我们首先对用户的关注数(followee)关注者数(follower,粉丝数)回答数(answer)收到赞同数(agree)收到感谢数(thanks)的平均数、中位数以及标准差进行了计算,结果如下表:



这里其实就有许多有趣的结论了。


首先我们看平均值,哇,平均每个人有三千多粉丝,三千多赞同,再看看可怜的我,306个粉和837个赞,而且他们回答的问题也并不多啊,却有那么多赞和粉丝,还让不让人玩知乎了?再看看中位数,顿时心里好受一些了,原来我混得挺不错嘛,五个指标都是我比较大,真开心(你是不是傻)。


究竟是什么原因造成平均值和中位数差异这么大呢,也许我们能从标准差看出来一些端倪——太大了,粉丝数和赞同数的标准差甚至超过了两万。


这意味着什么呢?我们知道,标准差其实衡量了数据个体之间的离散程度,也可以解释为大部分的数值和其平均值之间的差异。因此这么大的标准差可以说明知乎用户之间的差距可能略大于整个银河系(雾),同时也说明绝大部分用户的数值和平均值有很大的差距,要么大得离谱(比如),要么小得可怜(比如我)。


有人可能会不服气,说标准差严重依赖于数据本身的scale,不能充分说明问题。那么这里使用标准离差率(标准差除以平均值)来算算赞同数,21951.4/3858.4 = 568.9%。我~就~问~你~服~不~服~


以上现象还可以导出一个猜测,那就是知乎用户的这五个指标的值分布,都不大可能是正态分布及其近似。让我们回想正态分布的样子:



(图片来源:

zh.wikipedia.org/zh-cn/

如果是正态分布,中位数(最中间的值)、众数(最多的值)以及平均值三者至少应该是非常接近的,然而我们这里却是地月距离(怎么一下缩水那么多)。



1.3 当雪球滚到最后:长尾和幂律分布

为了进一步验证1.2的猜测,我们绘制了五个指标的分布图(Distribution Graph)。

这里说明一下这五张分布图的含义,横轴表示指标的具体数值,纵轴表示有多少用户具有该指标值。需要注意的是横轴值和纵轴值都取了以10为底的log,这是研究中一种常见的处理办法,能够使图所表达的信息更清晰。以感谢数分布图为例,那个最左上方的点表示在这两万多知乎用户里面,有大于10的三次方也就是1000的人没有获得一个感谢(摸摸大);而最下面那一排点则是说,感谢数是x1,x2,..., xn (反正都不小)的用户,都只有一个人——注意仅这一排点并不能形成什么有效的结论,因为可能感谢数100的只有一个人,101的就有好多人了,这一定程度上大概是因为数据量小,采样不足。但是如果把下面几排点放到一起考虑,也许会更有启发一些。


顺便提一句,其实关注数和粉丝数的分布图分别还有另外一个名字,它们其实是知乎用户关注网络的出度(out-degree)分布图和入度(in-degree)分布图,这点在下篇中还会有所提到。


如果是对这种分布图比较熟悉的童鞋,应该一眼就能看出,这绝壁不是正态分布,而极有可能是幂律(power law)分布(不过因为懒我们并没有做拟合去验证),这种分布在许多有人参与其中的网络中都会出现。此外,仔细比较这五条曲线的整体形状,有没有觉得有两条与另外三条略有不同?一条是关注数,一条是答案数,这两条曲线向外的弯曲程度似乎更明显,也就是说随着横轴值的增大,纵轴值减小的趋势相对较慢,而恰好五个指标里只有这两个是某个用户自己可以控制的,而其他三个指标则是由其他用户形成的群体所控制,这是很奇妙的一点,我觉得其实还有深挖的可能性。


现在让我们以感谢数为例,再画另外一种分布图。横轴表示每个用户的index也就是0,1, 2, 3...,顺序由感谢数大小决定,纵轴则是该用户收到感谢数的具体数值:

看到那个突破天际的点了吗,二十七八万的感谢(其实这个点在前面那张感谢数分布图中也出现了,你还认得仅在几个自然段以外的它吗)!再看看下面那条长长的尾巴,人艰莫拆。再来看一个更夸张的,赞同数:

其他三个指标的图的形状也基本如此。


苏莉安曾使用远大于我们的数据量做了类似的分析,结论是一致的。总结一下就是:大多数人小得可怜,却有极少数人大得可怕,一点也不正(可)态(爱)。前几年不是有本书很火吗,叫做《长尾理论》?所谓长尾,指的就是这样一种现象(附送我对该现象的一些解释:什么是「长尾效应」 ? - 赵澈的回答


到这里不由得让人提到另外一个东西:马太效应。所谓穷的人越来越穷,富的人越来越富,感觉上其实就是长尾效应的动态解释(最近打算看看有没有相关的文献)。富的人掌握大量资源,因此更可能攫取更多资源,而穷的人则相反;大V因为有名而得到更多关注,同时因此变得更加有名;玩游戏carry从而得到更多钱,有了钱买装备又更可能carry。这是典型的正(滚)反(雪)馈(球)。最后造成的结果,就是长尾现象。



1.4 论如何滚成人生赢家:赞同与关注

这一节可以算是对上一节结论的一个支撑。下面这张图同时包含了用户的赞同数和粉丝数两个指标:


!密集恐惧症高能预警!


我想不需要我们再做个回归什么的了,一看就是赤裸裸的正相关啊。这也为我等如何冷启动逆袭成为知乎大V提供了理论支持——要么你就有本事回答出几个赞数突破天际的答案,要么你一开始就很有名,没写啥答案也能吸粉...(说的都是屁话...)


------------------------------------------------------下篇-关注网络---------------------------------------------------------

2.0 社交网络是什么?

在上篇所述的基本的统计分析之后,我们已经对知乎用户的赞答谢关四个方面的总体情况有了一些了解。现在,让我们先来考虑这样一个问题:我们平常所说的社交网络或者说社会网络,到底是什么意思?也许你会讲,这还不简单,只要一个事情有多人参与,自然就会具有社交的性质,从而产生社交网络。那么让我们思考思考,维基百科算不算具有社交性质?

维基百科确实有很多人参与编辑词条啊,但是这些人之间有没有更直接的互动呢?假设编辑者们通过QQ、微博之类进行互动,那产生出的社交性质算不算是维基百科本身所具有的社交属性呢?即使维基百科提供评论区之类的功能,可以使编辑者之间直接互动,这些互动仍然是基于某个词条的,只要这个词条没什么大问题了,互动基本上也就随着编辑的停止而停止了。我认为这种临时建立起来的关系,并无法得到一个较为稳定的社交网络。


让我们再来思考一个例子。我们知道,一门科学源自跨越时代的许多人的共同贡献,那么这许多人,能够构成社交网络吗?当然不能。所谓牛顿和爱因斯坦的对话只是一种修辞,一篇已经发出的论文,如何能引用一篇未来的论文?但是当我们考虑到同一时代的同一学科,情况就有所不同,学者之间确实存在着各种交流合作的可能,因此我们可以认为学术领域的共同作者关系(Co-authorship)形成的网络其实是带有社交性质的。


从以上粗略的思考中我们或许可以总结形成社交网络的几个条件:多主体的直接互动、互动的长期性、互动的近同时性


现在让我们重新回到知乎上面来。赞同、感谢、回答、关注,哪一种用户行为最满足以上三个条件?回答是基于问题的,知乎的产品设计并不突出是谁提出了某个问题,并且一个问题可以被不同的人进行编辑(类似维基百科的权限设计),也就是说回答者一般不大在意是谁提出了问题,所以回答连互动都称不上;赞同、感谢以及我们之前没有提到的评论,相对来说互动得稍微直接一点,但是鼠标一点了事,不具有长期性;只有关注关系,同时满足了三个条件。这里可能会有一个疑问,关注也只是鼠标那么一点,这能算长期的吗?不要忘记知乎的时间线(Timeline)机制,这使得关注者有更大的概率看到被关注者的活动并与之进行互动,并且只要关注不取消,这种对时间线的影响就是长期的。


到此,我们可以认为,如果想要对知乎从社交网络的角度上进行分析,首先就可以考虑知乎用户之间的关注关系。接下来开始介绍我们对此进行的具体分析。



2.1 分析对象和分析方法

首先来了解一些网络的基本知识:


一个网络可以被表示为一种图(graph),其中包含点(vertex / node)与边(edge / link)两种基本要素。边可以具有方向性,也就是说对于一个点来说,可以有外连边(out-link)和内连边(in-link)两种边。如果边是具有方向性的,那么这种图称为有向图(directed graph),反之称为无向图(undirected graph)。图反映了点与点之间的某种相关关系,这种关系由边表现。


回到知乎上,我们知道关注和被关注实际上是一件事情的两个角度。A关注了B,等价于B被A关注。在我们所爬取的数据中(见1.1中的数据全貌图),我们知道这2.6万用户中的每个人都关注了哪些人。也就是说,我们知道了2.6万用户点的所有外连边。从另一个角度想,我们其实也知道在这2.6万用户之间谁关注了谁(蓝圈以内的部分),加上他们关注了其他什么人(蓝圈以外的部分)。因此我们只能分析这2.6万用户(红色实心圆),因为我们并不知道其他的人(红色空心圆)的所有连接,这是由我们的广度优先爬取机制所导致的,不爬完知乎整站,不会有真正完整的数据(那些没人关注的账号应该可以忽略)。


此外,即使剔除了蓝圈以外的部分,涉及的连边数仍然具有很大的量级,计算量会是一个问题,所以在这个项目中,我们仅仅选取了这2.6万用户的两个有趣的子集进行分析:获得赞同数大于1万的用户(共1895人)、获得赞同数大于5万的用户(共375人)。方便起见,我们将他们分别命名为Net10kNet50k,其实可以说就是两个不同级别的知乎大V群体了。


接下来讲讲分析方法。一个网络图,别看里面只有点和边两种东西,其实可以包含复杂到极点的各种现象与性质。网络分析,或者进一步说复杂网络领域之中,存在大量人们为了描述网络的现象而定义的概念、以及为了量化网络的特征而设计的指标。后文将要涉及的分析建立在其中最基本的一些概念和指标上,如果对它们逐个详细介绍,那么本文篇幅会大大加长,而且会多出不少数学公式,这不符合我对本文的写作预期。因此我打算尽量从直觉(intuition)上来解释它们分别表达了什么的含义,即使给出定义也不求严格(数学公式才可带来最清晰严格的定义),重点仍在对分析的思考。此外,由于我们所讨论的知乎关注网络是有向图,后面所有的指标和算法都只讨论有向图的。当然,如果读者已有一定的基础,可以直接跳过相关的段落。



2.2 抱团的大V们:网络总体特征

一直以来知乎就给人一种印象,那就是大V们喜欢抱团。你关注我、我关注他、他又关注你,形成了紧密的圈子。那么我们怎样来量化这种特征?


假设有A、B、C三个用户组成的关注网络,其中唯一的边是A->B,那么你觉得这个网络是否紧密?我们可以这样想,三个人之间最多可以有6条边,那么我们可以用1除以6来表示这个网络的紧密程度。如果6条边都存在,那么紧密程度是1,都不存在则为0。这就是所谓图的密度(density)。Net10k和Net50k的密度分别是0.064和0.195,到这我们可以猜测,获得赞同更多的大V之间,关注关系也更为紧密。


接下来我们从另一个角度考虑这个猜测,先补充几个定义:


  • 点的度(degree):与一个点通过边相连的其他点的数量和,被称为这个点的度。有向图中一个点存在出度和入度两个度,一个只看它能到达哪个点,一个只看哪些点能到达它。对于知乎的关注关系而言,我们很容易就能看到出度就是你关注的人数,入度就是关注你的人数;

  • 点与点之间的路径(path):假如从点A出发,经过一条或更多条边,到达了点B,那么我们称这些边按顺序相连形成了一条A与B之间的路径。两点间的路径数量一定是大于等于0的。假设每条边的长度相等,那么包含边数最少的路径,便是所谓最短路径(shortest path),最短路径的长度一般被认为是两点之间的距离(distance);

  • 图的平均最短路径长度(average shortest path length):对于一个网络而言,将所有点两两之间的最短路径长度进行算术平均,得到的就是所谓平均最短路径,可以用来衡量网络中点之间的平均距离。传说中的六度分隔(Six Degree Seperation),其实指的就是一个网络的平均最短路径长度为6(这里大家可以想想边、度和路径三者间的联系);

  • 点的偏心率(eccentricity):对于图中的任意一点P,算出它与其他各个点的最短路径长度(距离),其中最大的距离称作点P的偏心率。

  • 图的半径(radius)直径(diameter):图的半径、直径分别是图中最小的、最大的点偏心率。注意图的直径不必然是半径的两倍。

  • 图的强连通子图(strongly connected subgraph):设想一个网络图G的一个子图G'(意味着G'中的点和边都只能从G中挑),其中每一个点都能通过某条路径到达另一个点,则我们说G'具备强连通性,而且是G的一个强连通子图。这里注意,单独一个点我们也认为是强连通子图,虽然单个点并没有值得研究的;

  • 图的强连通分量(strongly connected component):G的一个极大的强连通子图G''(意味着再往G''加任何G中剩下的点,都会破坏其强连通性)被称为G的一个强连通分量。这里需要注意,极大并不代表很大;

字好多看烦了吧,终于可以上图啦,下面分别是Net10k和Net50k的强连通分量示意图:

其中每一个红色圆圈都代表一个强连通分量,每条线(其实是很抽象的箭头orz)代表一条路径。光看这个我们还不清楚情况,我们来看二者对应的一些指标数据:

总结一下我们知道了什么:

  1. 基本上Net10k和Net50k这两个图就是强连通的,别说抱团了,这已经根本就是挤成一坨(好吧,一个圈子)。
  2. 除了一个巨大的圈子,群体里就剩几个特立独行的高冷大V(都是只包含一个点的强连通分量),他们受到了其他大V的关注,但却没有任何回粉。在网络中,这种点也被称为悬挂点(dangling nodes)

现在我们重点分析两个最大的强连通分量,连通倒是连通,但是如果A要经过100个人才能到B,那估计光凭关注关系,他们是没有缘分了。将Net10k和Net50k的最大强连通分量分别命名为Net10k-CNet50k-C,以下是两者对应的指标数据:

如果你就是Net50k-C中的一个大V,还不认识其中的另一个大V?没关系,你关注的关注的关注...总会有他,所以你们总有机会看到彼此。强连通保证了总会有一条路径,平均最短路径向你保证平均来讲这条路径很短,只有2左右。直径和半径则告诉你在最坏情况下(你们碰巧是整个圈子里相距最远的两位),这条面基道路的长度在2到5(4)之间。What a small world,喜鹊们(雾)如是说。


再来对比Net10k-C和Net50k-C的平均最短路径长度和直径,后者都比前者要小,从另一个角度说明后者的关注圈子更紧密。而且注意一点,这些大V是来自各个不同的专业领域,但都紧抱在一起,这也是很有趣的现象,有进一步分析的价值。


2.3 给大V排个位:网络连接分析

上节侧重于对知乎大V关注网络的整体进行分析,这固然很有趣;但或许更有趣的是这个整体之中的每个个体,同样是赞同数很高的大V,他们彼此之间是否能一较高下呢?他们在关注这种社交行为上是否具有差异,如何衡量这种差异?这是本节涉及的问题。


让我们先来设想一个简单的关注网络,其中只有A、B、C三个人。A关注了B,B关注了A,A、B同时关注了C,而C谁也不关注,如下图所示:



那么你觉得光凭关注关系来看,A,B,C谁更“牛”?从直觉上来说当然是C,因为C在三人之中得到了最多的关注。但是否只要粉丝更多就能说明更“牛”呢?下面我们在这个网络的基础上,来考虑几种很有趣的情况:

  1. 多了10个自己粉丝数为0的用户,同时关注A
  2. 多了10个用户,他们彼此全部互相关注,除此之外都没有其他粉丝
  3. 多了10个自己粉丝数为1的用户,同时关注A,并且每个人还分别关注了10000个其他用户

那我们能说1里的A,或者2里的10个用户比C更牛吗?前两种情况明显不合道理,可以说是较为典型的作弊行为。作弊利用了单纯粉丝数排序的漏洞:没有考虑到每个关注连接的质量差异。第三种情况算是一种正常现象,但是你会觉得,这些用户一个是只有1个粉丝,几乎等于0,另一个是他们关注了那么多用户,那么他们关注A,真是因为A很重要吗?


既然发现了漏洞,那么假如不考虑赞同数等其他因素,我们是否有可能通过关注网络本身来予以解决呢?从直觉上来说,我们可以想到的是,用粉丝自己的粉丝的质量来衡量这个粉丝的质量,但粉丝的粉丝的质量又需要粉丝的粉丝的粉丝的质量来衡量...那么到底最后是个什么情况?到这里我们看到了日常语言结构所能承载的思维深度之浅薄,当一个问题到达这个复杂度,语言已然苍白无力,不得不将它托付给数学。


PageRank算法(其与Google的关系我就不赘述了)就是一个数学上非常优美的答案,不仅考虑到前述的连接质量问题,还解决了所有特殊情况——无论关注网络是什么样子的,都保证能得到一个满意的用户重要程度排序。


下面是我们对Net10k和Net50k分别计算PageRank值,注意这里只考虑大V们内部的连接,此外圈子里所有大V的PageRank值相加等于1。最后得到排名前五的知乎大V用户如下:

这些便是站在知乎大V巅峰的大V们了,是否觉得有一定道理呢?注意比较Net10k和Net50k前五用户的PageRank值,前者比后者小,这主要是因为总和为1的PageRank资源被更多的大V们分掉了。


下面让我们再考虑一点,所谓的“重要”,其实要看我们的目的是什么。假如我们是要看更多的好答案或者想要找人出书约稿,那么直接找到好答案的答主就好,而这些答主往往吸引了最多的关注,所以我们仅仅需要知道谁受到的关注最强(比如下图中的C)。


但是光是通过关注,我们会漏掉那些暂时没有得到太强关注的好答主(可能是刚刚加入知乎的大V潜力股),然而我们又不可能自己去一个一个挖掘这些好答主,如何是好?简单,假如你能找到几个类似牵线人的用户(比如下图中的D)你相信只要是他们关注的用户,质量都不会差,都合你口味,事情就简单了。你只需要不时看看他们都关注了谁,就能发现更大的世界。这其实也算是一种用户推荐系统的可行思路,这里就不展开了。



HITS算法便能做到只使用关注网络,通过权威度(Authority)枢纽度(Hub)为我们分别挑出好的答主,和好的牵线人。


上面的基于直觉的分析是否说得通呢?让我们看看Net10k和Net50k的权威度和枢纽度前五名:


Auth(好答主)方面,我相信大家应该能认同这样的结果名单。值得一提的是在两个大V群体之中,@张佳玮(顺便提一下,张佳玮张公子就是上篇中那个在各条曲线中高高在上的闪亮极点)和@梁边妖调换了位置,很有趣。另外在Net50k中,@采铜 老师一跃进入前五,@马伯庸 马亲王(祥瑞御免)上升一名,黄继新则掉了出去。这些现象或许反映了不同大V群体的一种喜好倾向的差异


Hub(牵线人)方面,说实话我个人只认识@徐湘楠一个人,其中还有一位目前处于账号停用状态,这里便不做过多分析。只有一点比较有趣,作为大V,粉丝数很大很正常,然而这些用户关注的人数也算是很多的,好几个甚至达到了几千,不可不谓之具有某种交际花属性。另外提一下,Net10k Hub的第五名,叫干脆面的用户,我已经无法知道是谁了,原来的用户ID是wang-wang-wang-08-18,现在改掉了,总觉得跟徐湘楠(ID:miaomiaomiao)之间存在着某种联系...


综合来看,HITS和PageRank有不少相同的用户入榜,这是为什么呢?我给一个直觉上我认为对的解释,其实PageRank的值是Hub值和Authority值的一种叠加(其实感觉更像是乘的关系)后的结果,这样Hub或Auth中的一种很强,另一种也不弱时,PageRank便相应比较高,这样两种算法得到部分相同的结果便很正常了。@黄继新是一个典型的例子,他的Auth值和Hub值在Net10k和Net50k中虽然都不是最高,但都排到前20名,而他的PageRank则是第一。既有内容,又能充当渠道。



2.4 不均衡中的均衡:Closeness和Betweenness中心度

到此先让我们总结一下,如果要衡量一个用户在关注网络中的“重要程度”,我们可以利用这几种指标:

  • 该用户的粉丝数,即入度(In-degree)
  • 该用户的PageRank值
  • 该用户的HITS值

它们在网络分析中也可被归为同一类指标:点的中心度(Centrality)。但我们发现,其实三种指标所表达的“重要”,其含义是不完全一样的,同一个网络,同一个节点,可能不同的中心度排名会有不小的差距。接下来请允许我介绍本项目中涉及到的最后两种点的中心度:

  • 点的近性中心度(Closeness Centrality):一个点的近性中心度较高,说明该点到网络中其他各点的距离总体来说较近,反之则较远。假如一个物流仓库网络需要选某个仓库作为核心中转站,需要它到其他仓库的距离总体来说最近,那么一种方法就是找到近性中心度最高的那个仓库。

  • 点的介性中心度(Betweenness Centrality):一个点的介性中心度较高,说明其他点之间的最短路径很多甚至全部都必须经过它中转。假如这个点消失了,那么其他点之间的交流会变得困难,甚至可能断开(因为原来的最短路径断开了)。因此假如要hack一个网络的话,对哪个结点下手你懂的。从另一个角度想,这些点简直就像是等在丝绸之路上必经关口的强盗。不留下买路钱?让你无路可走,生意就别做了。

这两种中心度我目前并未找到很公认的中文翻译,姑且自己翻译了。另外同PageRank和HITS一样,由于指标的计算稍显复杂,这里就不详细叙述了。但是我们都使用的是网络分析库Networkx中的算法实现,对详细算法有兴趣的读者可自行查阅其文档。


本项目中我们分别计算了Net10k和Net10k的近性中心度和介性中心度,并画出了分布图。由于我们当时考虑欠周,算出的近性中心度是基于外连接而不是内连接的,我认为意义不大(你总是可以让自己关注更多人,从而得到更大的近性中心度),所以本文决定略过。下面主要说一下介性中心度,其于Net10k和Net50k的分布图分别如下:

我们又得到了两条长长的尾巴。图中横坐标表示每一个特定的大V,纵坐标是大V相应的介性中心度。长长的尾巴表明大部分大V的介性中心度接近0,即使长尾以外有少数几个人远超其他人,但介性中心度的值依然很小。这说明什么?说明这些大V即使退出知乎,也几乎不会影响其他大V之间建立关注关系。没了你,我还有许多其他最短路径到达另外一个大V。这进一步说明什么?说明大V的关注网络是如此健壮,健壮到即使失去许多结点,对整个圈子的连通几乎毫无影响。


再横向比较一下Net50k和Net10k,可以看到这种随着圈子增大,幂律变得更强,除了少数点,大部分的人介性中心度都更趋近于0,人数的增加进一步稀释了大多数人的“独特性”,直觉上我相信继续扩大这个圈子,到Net5k、Net1k甚至知乎全体用户,这种健壮性只会越来越强,虽然人与人相比存在指数级的差异,但对整个网络本身而言,每个人几乎同等重要,也同等不重要。这或许可以称之为知乎关注网络所具有的一种不均衡中的均衡吧。



2.5 大V都在关注什么:热门话题分析

最后,我们尝试了一种获得知乎上热门话题的办法(本项目中唯一涉及内容的分析),先取得Net10k和Net50k的支配集(Dominant set,这里由于我认为实际上不用这个子集结果也不会有显著区别,所以就不解释这个概念了),然后统计集合中所有用户的回答所对应的问题标签,最后对各个话题标签按出现次数排序。以下分别是二者的前20名:


Top 20 from Net10k:
调查类问题 3792, 生活 3096, 历史 1713, 恋爱 1464, 心理学 1432
电影 1419, 人际交往 1404, 社会 1332, 互联网 1214, 情感 1197
政治 1028, 两性关系 994, 教育 897, 中国 823, 人生 815
游戏 805, 文学 772, 知乎 772, 法律 750, 音乐 738
爱情 699, 文化 659,创业 628, 大学 621, 程序员 619
心理 617, 你如何评价 X 609, 女性 604, 编程 585, X 是种怎样的体验 582


Top 20 from Net50k:
生活 1435, 调查类问题 1365, 政治 1285, 历史 1204, 电影 1084
健康 996, 社会 984, 医学 941, 恋爱 717, 中国 695
两性关系 688, 英语 678, 人际交往 640, 心理学 634, 互联网 595
法律 587, 微软(Microsoft) 555, 美国 552, 健身 538, 编程 511


我个人认为大V们回答的问题所对应的话题,能够从一定程度上反映了知乎这个平台总体的话题领域热门程度。另外,我觉得排在最前的一些热门话题也在一定程度上解释了为什么不同领域的大V会抱团,因为不论处于什么专业领域,人们对于生活、历史、电影等人文和泛娱乐话题总是会感兴趣的,一旦都感兴趣,又都有不错的见解和分享,自然更容易惺惺相惜。


到此,本文终于可以画上句号了,欢迎交流、讨论与点赞(最后一个才是你发自内心的呐喊吧喂)。在此还要感谢和我一起参与本项目的其他三个小伙伴,四个人一起才得以在短短时间内做到这种程度(项目report里有我们的详细分工)。感谢@egrcc的zhihu-python,帮我们省去了一部分爬虫编写的时间。


最后再重复一遍,如果有想要和我一起,在这些工作的基础上继续做一些有趣的分析的童鞋,请一定联系我!


user avatar   zao-xiao-shu 网友的相关建议: 
       造数 -今天教你用爬虫采集知乎的粉丝情况!

知乎

知乎上面的数据很多,可以用爬虫来分析分析。

例如,造数君用爬虫来分析关注造数君的粉丝们。

先来看看结果是怎样的。




分为两步,获取数据和分析数据。

首先,使用造数爬取所有关注者的信息。操作就是“点点点”


然后就拿到数据了


分析采用BDP和Jupyter Notebook

粉丝数排行



可以看到除了个别超级大V外,多数人粉丝还是挺少的,图片上只显示了前面的数据。如果画出函数图像来,应该是减函数吧。

回答与发文量



凭直观感觉来说,一个人的回答数与发文量应该是成正比的。看图说话,趋势图说明人们还是更偏爱去回答问题,按常理来说也说得通,知乎毕竟是一个问答平台

一个真实的网络问答社区,帮助你寻找答案,分享知识。

关注者与发文量



发现关注数与发文量并不是成正比关系,发文量为0的关注者仍然有很多,这还是和知乎有关系,毕竟主打问答社区,而不像简书是一个创作社区。

知乎开放写文章功能在一年前,发展速度的还是快的,详情看 每个人都可以在知乎写文章了,同时我们还发布了更强大的专栏


下面是Jupyter制作的图云。

关注者昵称



排在前面的是:wang、先生、世界、大大、zhang、Chen、leo、土豆、星星等等。

为什么“wang”出现频率如此之高



个人介绍图云

排在前面的是:学生、程序员、软件工程师、银行基层、管理者、IT咨询师、自由职业等等,看来大家喜欢在介绍里写明自己的职业。不过知乎上学生真的好多啊。



最后,你也可以对自己的关注者和关注的人做一个小分析,看看他们喜欢什么。不会代码也没关系,使用造数爬取信息,BDP来数据可视化。

赶紧试试吧!


造数 - 最简单的爬虫,就在这里!

user avatar   sgai 网友的相关建议: 
      

谢邀。

赛前和朋友闲聊,一致的观点是:巴萨全队如果不觉得这是两场共180分钟的比赛,战略上就已经陷于被动。现在的巴萨依旧拥有无敌MSN,但三中场禁不起冲击,拉基蒂奇连续比赛之后竞技状态下滑、小白和小马哥多伤,图兰和安德烈-戈麦斯没有获得充分的信任,也没有找到自己在队中的位置,这个弱点只要被抓住,就会遭遇失败。

这场比赛再次论证了“拳怕少壮”的政治正确。巴萨中后卫乌姆迪迪的确应该背锅,但让他付全部责任,那就是不客观的评价,乌姆迪迪身前从来没有过像样(先不说有效,只说是否像样)的防守屏障,面对大巴黎从本方三十米区域到对方三十米区域的纯动态进攻方式,巴萨的防线一直处于两难当中。

如果中场压上太快,三条线的间距过大,迪马利亚和德拉克斯勒依靠绝对的有球能力突破三中场之后,能在后卫线身前觅得大片开阔地。

如果三条线保持紧凑,为了保证给予MSN更多的进攻资源支持,后防线势必要往上提,大巴黎的反击同样能在巴萨防线身后觅得大片开阔地。


埃梅里抓住了第一种可能。开场就祭出了长达65分钟的一波流:

第2分钟,前场多达6人围抢布教授,仅过了30秒,拉比奥特又在左路铲翻内马尔,3分半的时候,维拉蒂中圈附近两次铲抢,策动三人反击直扑巴萨身后的开阔地,第6分钟,迪玛利亚斜线传球,卡瓦尼左路插上,射门被挡——仅仅6分钟的试探,就赌对了巴萨的最大命门:

奔跑能力太差。

其次,才是主教练的应对。6分钟就被埃梅里看穿,被大巴黎首发11人都穿,而恩里克自己,却没发现比赛的走势一开始就变了。联赛六球大胜阿拉维斯,几乎有90%的可能意味着国王杯冠军唾手可得,三天以后面对气势汹汹的大巴黎,劈头盖脸长达60分钟的逼抢一波流,战术陌生感大到无以复加,球员的心理落差肯定会有,但是球员想不明白,难道主教练也想不明白吗?


很多人说,有了MSN组合,巴萨教练席栓条狗也能夺冠,现在呢?

并不是站在指挥区当个吉祥物,看着MSN潇潇洒洒地刷数据,就能自诩为球队领袖的。

大巴黎对防守的专注,夸张到什么程度:

比赛前65分钟,马基尼奥斯、金彭贝身前始终有维拉蒂和拉比奥特两人,前卫线和后卫线的间距非常小,4-5-1的防守阵型将禁区弧顶一带封得水泄不通;

得益于维拉蒂和拉比奥特迅速的横向、斜线移动协防,迪马利亚、马图伊迪、德拉克斯勒在前场实施高位逼抢,在中圈、在本方三十米区域主要围抢小白和布教授,逼迫皮球向边路转移;

球到了内马尔或者罗伯托脚下,更成为重点压迫对象,绝大多数时间内,罗伯托要承受来自德拉克斯勒和马图伊迪的压力,甚至卡瓦尼也会不时跑来显露一下存在感。


大巴黎逼抢的重要棋子是马图伊迪和拉比奥特,充分发挥了两个人奔跑好、拼抢能力强的优势。区别在于,马图伊迪的逼抢范围几乎覆盖了巴萨前场,高位逼抢、中圈压迫的时候,布教授或小白在哪里,他就在哪里,这样的奔跑强度非常恐怖;而本队回归阵地战态势下,他主要盯防的人只有:

梅老板。

拉比奥特则是纵向回追、对有球人员的贴身逼抢,减轻了维拉蒂的负担,也给了迪玛利亚和德拉克斯勒足够的回防时间,这五个人位置一站稳,巴萨想要变节奏就千难万难。


大巴黎火力全开的进攻,建立在不惜体能的前60分钟高强度奔跑、高强度防守之上。相比乌姆迪迪,临时被调上一线队的金彭贝身前都是队友,幸福感爆表,一战打出了前所未有的个人高水准。包厢里的蒂亚戈-席尔瓦赛前主动示弱、猛夸梅西,比赛中镜头给到他的时候,一脸严肃——

没了我球队“还能”打得这么好?这……那……我真的要去广州恒大淘宝和斯科拉里会师了?


埃梅里执教阿尔梅里亚、瓦伦西亚、塞维利亚时期内,没少和巴萨交手,就是因为执教的西甲球队多,对巴萨的认识比别人更为深刻。本场比赛一开始就脱离了巴萨的控制范围,重点之一,还是大巴黎上上下下的奔跑,将90分钟的比赛变成了毫无悬念的65分钟。这个时间段内,从局部到整体,基本没有巴萨的节奏,弱点一览无遗。


巴萨关键位置上缺了两个人。马斯切拉诺和拉基蒂奇不首发,巴萨中后场的跑动能力、防守强度、协防成功率,直接下降不止一个档次,梅西不回撤的时候,这两人还能很好地串联前场,梳理进攻方向,平衡攻防投入的资源配比,说难听点,至少让巴萨少输两个,回到主场还有翻盘的可能。

这两人的缺席,直接让布斯克茨防守薄弱、逼抢能力不足的天花板摆在摄像机镜头里,呈献给无数熬夜的球迷。如果第二个球主要是梅西中场丢球的话,那么第三个丢球,布斯克茨中路的防守缺失是最主要的责任。


梅西作为球队核心,整场比赛跑动太少,也不兴奋。只不过,球场上的现实非常残酷,他在前场没有持球空间,是因为队友拉不开纵深,和他也很难形成呼应;回到后场来持球,被三个人扑上来围抢,布教授在哪?在身后十几米以外的地方和后防线站在一起。

宇宙队不是没有机会,机会一开场就出现了。拉比奥特兴奋过头铲翻内马尔直接吃了黄牌,随后他居然平平安安地打完全场,竟然没有一名巴萨的进攻球员对他进行诱杀。15分30秒,内马尔被踩伤了以后,咬牙坚持,巴萨唯一的提速点也消失了。

大巴黎的双翼活动范围之大,第一个进球就能体现出来。德拉克斯勒从左肋直接横跑到右肋,接迪玛利亚的斜线传球,突然变向突破。乌姆迪迪对此毫无办法,布斯克茨不回收,他只能独自面对德国人的正面进攻。不犯规就突进去了,犯规就送了任意球让迪玛利亚开斋。

在紧随而至的定位球防守方面,巴萨又遭遇了大巴黎凶狠的拆墙战术。

走了伊布奉先,卡瓦尼获得了更多的进攻资源倾斜,解放的不仅仅是他的活动面积(这厮的体能真是一个怪物),还有持球选择。卡瓦尼的威胁在于,他的无球牵制比有球牵制更大,特别是压迫整条巴萨防线后退,在这条防线身前呈现出的5-7米空间内舒舒服服地站着迪玛利亚、拉比奥特、马图伊迪、德拉克斯勒当中的1-2人,还拥有丰富的进攻选项,才能凸显出一名特点欧化的乌拉圭中锋(有球在脚下的时候他甚至能错失单刀)的战术价值。

巴萨两条线之间的空当太过于明显,维拉蒂、迪玛利亚、拉比奥特先后做出尝试,直线和斜线的传球总能找到位于小白和布教授身后的接应点。就算没有第一时间形成决定性的突破,大巴黎的持球队员也能通过很高的奔跑到位率,从容组织传递,不断拉扯巴萨的防线,直到出现更好的机会。

上面两张图,是卡瓦尼回撤接维拉蒂直传球的过程。乌拉圭中分随后将球回传给马图伊迪,进行分边再组织,但巴萨的中场已经回撤,对主队的压迫威胁就会变小。多次这样的纵深穿插,足以确保大巴黎的整体推进。

因为有奔跑能力,才有了这5-7米的空间,体现出客队前卫线防守的薄弱,让主队具备向前的足够纵深。迪玛利亚也好、维拉蒂也罢,每一次直线和斜线的策动,都把战火烧向巴萨半场——推进10米,巴萨的中场就要多跑10米;跑不快,空当就会出现;空当出现,就被反击;被反击,就有丢球的风险。

就算巴萨通过边路传递获得进攻的突破口,大巴黎无论在禁区内外,都有足够的人数优势,压缩对手的进攻空间。

转入防守态势,大巴黎通常是拉比奥特担任单后腰,主要保护有球侧,缺乏更大的覆盖面。这是主队极少极少露出的空隙,巴萨也没能转化为进球。

梅西很少能在弧顶一带获得皮球,也就是说,除了穆尼耶专注于对付内马尔,马尔基尼奥、金彭贝、库扎瓦根本无需等到梅西脚热,才去领教他的威力。巴萨的进攻能把大巴黎的两条防线压扁,可是也只做到了到这一步。

在第二个进球的反击态势下,边后卫阿尔巴上前过深,小白在对方发起反击时,没有第一时间战术犯规,布斯克茨只能补到中后卫的位置上,维持正面防守人数。后卫线面前是完全没有保护的,德拉克斯勒甚至没有任何的突破,攻门得手。

下半场开场,维拉蒂发现巴萨的防守问题依旧,这时已经两球在手,他反而不着急了,更为淡定地梳理全队的进攻。加上开场10分钟,巴萨的奔跑强度没有明显改善,甚至让主队在面对高位逼抢的时候,打出了匪夷所思的绝妙反击。

对巴萨奔跑强度的测试,下面两张图可以证明。

埃梅里站在指挥区,看着弟子逼抢内马尔,一副志在必得的样子。除了后方的小白,内马尔身边的队友,几乎都有大巴黎的球员跟着。

甚至在梅西持球的时候,只有内马尔是很好的接应点。阿尔巴不见上来,巴萨三前锋、三中场彻底远离了后卫线。

此时的大巴黎还没有力竭啊。第三个球基本就是遛猴一样的传跑表演啊。

库扎瓦果断前插之前,巴萨的确是通过高位逼抢把拉比奥特往边路压,只不过这个时候,巴萨的三条线严重脱节,紧跟马图伊迪的是布教授,他身后10米之内,竟然没有一名巴萨球员,也就是说,如果安德烈-戈麦斯、布斯克茨、罗伯托三个人形成的包围圈能成功断球,在他们的旁边,没人能迅速接球转移,并向前场的小白输送直线。

布教授为了盯防马图伊迪,被带离了中路,突然插上的库扎瓦不仅获得了良好的控球视野,还为这次反逼抢提供了一个有效的、无人防守的出球点。简直棒呆!

库扎瓦持球推进了至少35米,回防的是安德烈-戈麦斯,而不是布斯克茨。迪玛利亚极为聪明地在推进当中突然停下,拉开了和巴萨后卫线的距离,得以从容控球,选择进攻内容。

小白已经做出了犯规的动作(背后非常小的伸脚动作),但迪玛利亚并没有摔倒,而是摆脱之后稍作调整,突然选择弧线球远射。此时大巴黎又是两翼展开,巴萨的防线就像一张破网。

只输两个球的话,以MSN的能力,在诺坎普扳回来实非难事。输四个球,恩里克这口锅,可就躲不掉了。长长三年时间,巴萨沉浸在MSN打遍天下无敌手的光环里,没有找到第二个马斯切拉诺,也没有找到第二个小白,今天这场失利,输得一点儿不冤。


user avatar   ding_yao 网友的相关建议: 
      

我个人并不是很看好。

html5,js以及类似的技术替代原生大家喊了很久了,就是大热的react native目前看来也依然很不完善。微信的应用应该都是运行在腾讯浏览器的X5内核里,这东西怎么样大家心里也都有数。我感觉还是只能做一些低交互的应用,大概也就是比网页快捷方式高一级别,要利用os的炫酷特性,原生还是跑不掉,而且目前原生开发很成熟了,框架库很多,门槛也很低。

对于不用下app省空间我不是很理解,只不过是把app浪费的空间挪动到微信里而已。

微信所倡导的用完即走的理念也只有腾讯有资本装b才会这么说,其它公司无论如果始终还是会想办法更多的占用用户的时间。

腾讯现在原本就掌握了渠道,现在连app的审核等生杀大权也都掌握,你说苹果恶心,但他起码还勉强算公平,而腾讯可以随便打着为了用户(和你妈说为了你好)进行系统抖动,非腾讯系全都会抖,想怎么搞你怎么搞你。


结局都是类似的,中小型公司都很激动,以为有了小应用他们就有了腾讯爸爸的几亿用户,这种幻觉很美好,但他们可能会面临更加惨烈的竞争,变成临时解决用户欲望的千斤顶,以及腾讯渠道那可怕的推广分成费用。大公司肯定都很不情愿的跟进,又没办法,估计会简单开发一些应用,然而尽可能的往自己原生的app上导入,心态很微妙,不过短期内肯定会先爆发一波星座血型算命起名你的前世今生颜值计算能活多少岁等一些QQ空间喜闻乐见的低质量辣鸡应用,目前也不知道腾讯审核时是否会做一些限制。

微信也许已经不是聊天软件了,我朋友偶尔用了一下QQ,惊叹的说,QQ真好用呀,聊天记录都能自动存下来! 微信当初也许吸引大家的是我们只想要一个广聊天的QQ,现在已经要变成微信os了,是不是以后也要走和当年QQ一样的路?整个腾讯系全压在这款app中? 我不知道,在集团利益,业绩增长的车轮下,什么张小龙王小龙,什么鬼的用户体验,什么产品经理说不的坚持,有多少碾碎多少。

仅是个人一点感悟和粗浅看法,不太对请见谅




  

相关话题

  专科,学软件开发怎么找工作? 
  似乎很多新手程序员不待见goto语句,认为它是"不好的"。所以我想听听大家对goto语句的看法。? 
  985 本硕(上海交大)想走社招转行当程序员,为何频频被拒? 
  在菜鸟教程工作是什么体验? 
  同事一点都不在乎程序性能,该怎么沟通? 
  为什么对编程或软件工程感兴趣的女性极少呢? 
  计算机中为何不直接使用 UTF-8 编码进行存储而要使用 Unicode 再转换成 UTF-8 ? 
  现在填报计算机专业是否是一个正确的选择? 
  你在读程序的过程中见到过哪些令人难忘的变量命名或者函数函数命名? 
  程序员如何有效、愉快的使用 GitHub? 

前一个讨论
曾经觉得很不值得崇拜的人后来很崇拜是怎样一种体验?
下一个讨论
曾经崇拜的人后来认为他/她并不值得崇拜是怎样的体验?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利