楼主: Shazam
2240 9

用R进行微博分析的初步尝试 [推广有奖]

  • 0关注
  • 2粉丝

硕士生

40%

还不是VIP/贵宾

-

TA的文库  其他...

C++

Culture(文化学)

C#(Newoccidental)

威望
0
论坛币
1847 个
通用积分
2.0750
学术水平
6 点
热心指数
6 点
信用等级
5 点
经验
1118 点
帖子
144
精华
0
在线时间
4 小时
注册时间
2006-5-10
最后登录
2016-12-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
新浪微博如火如荼,基于微博的各种应用也层出不穷。有一种共识似乎是:微博数据蕴含着丰富的信息,加以适当的挖掘,能够实现众多商业应用。恰好社会网络分析也是我之前有所了解并持续学习的一个领域,因此我做了微博数据分析方面的一些尝试。这些尝试是比较初步的,属于探索性的阶段,当然不能跟微博分析家这样比较成熟的应用相提并论。并且我的分析基本上都出于想当然的直觉感受,没有具体的理论支撑,这方面需要试着找点书籍来阅读一下,貌似有蛮多可以参考的。
        一、用R登录并发布微博
        之所以仍然选择用R来做这个登录和发布的工作,是考虑到分析过程的连续性,毕竟能够在同一个平台下面完成所有的工作,还是很令人身心愉悦的。这里借助了一款命令行浏览器cURL,这个浏览器在R中可以用RCurl实现,简单的介绍建议参考medo的《R不务正业之RCurl》。由于我对HTTP这些东西都属于初级未入门水平,没能实现直接的登录,只好利用了cookie实现间接登录。但是最终结果还是蛮稳定的。编写这个登录和发布微博的函数,目的之一是为后续的数据采集做准备,但同时也能够实现同步更新不同平台信息的功能,例如写一条语句就能够把人人状态、新浪微博、飞信签名等等同步更新,还是很有趣的。只是人人状态和飞信签名貌似不是很稳定,偶尔能用偶尔报错,我稍微测试了一下,可能是cookie的问题,目前没有深入探索。
        (更新:目前已经实现了直接登录,这样或许可以绕过cookie的问题。)
        总地来说这个功能的效果就是这个样子。
        
                        二、采集关注信息,制作粉丝及关注人的地区分布
                        在登录之后,就可以用一些循环语句来采集关注者与被关注者的ID等信息(不知道这算不算是某种爬虫)。为了描述地区分布,只需要采集用户的地区信息就OK了。然后借助maptools包,可以比较方便地画出简单的用户分布图。这里没办法画海外人士,见谅。
        
                        我的粉丝的分布:

        
        我关注的人的分布:
        
        可以看得出来,不论是关注还是被关注,用户的分布都算是比较集中。这个很可以理解,因为我是小网虫一只,没啥广泛的人气,哈哈。但是显然地,某省ID的频数很高,令人欣慰。
                        三、采集关注信息,制作关注关系的网络图
                        这个工作目前尚未完成,主要是遇到了技术性的障碍:矩阵太大,我的计算机算不动。事实上,采集数据的过程跟上述的地理位置的采集没有本质区别,都是一些循环的计算,最终得到的结果是这个样子:
                        
                        前两列是我关注的用户以及他们的ID,后两列是前两列所关注的用户及ID。这个数据集目前有22446行,涉及到15868个用户ID,如果要画网络图,似乎对计算机的性能有比较高的要求。所以我只好暂时选择了一种无奈的办法:抽样。得到的结果大概是这样:
               
                        换一种抽样的逻辑,减少对象个数,可以做出相对清晰一点的网络。像是这样:
               
        
                                                虽然作图遇到了一定的障碍,但是在做的过程中我还是有所体会:follow的信息比fans的信息更干净一点。因为我都是以我的ID为中心出发来进行数据的采集,所以本质上得到的网络都是个体网。而fans的关系往往不能说明什么问题,因为我的很多fans都是不知所云的fans。我揣测,这些fans,要么是所谓的僵尸ID,要么是所谓的广告ID,要么就是一些新用户随便添加的关注。这些关注关系并不是我所关心的关系,虽然他在某种程度上体现着我的某种中心度。因此我在后面把关心的重点集中在我的follow上,因为由我出发的这条follow关注链是比较纯粹的:要么是感兴趣的人,要么是有感情的人,总之都是具有确实意义的关注关系。
        
        
                        四、基于follow关系的一种用户推荐
                        意识到follow关系的纯粹性之后,我就开始试图针对follow关系做一些分析。最先想到的就是用户的推荐。
                        我没有具体研究新浪微博目前使用的用户推荐的方式,感觉是有两种:根据个人资料推荐,根据个人标签推荐。
                        我的直观理解,推荐系统的一个逻辑问题是:用户会接受怎样的推荐。或者换句话说,用户是为什么而去关注他人的。因此我就觉得,基于个人资料的推荐可能并不是那么靠谱,尤其是新浪微博持续不断地向我推荐”浙江大学“的用户。且不说里面有很多是”浙江大学城市学院“之类的漏网之鱼,关键是我为什么仅仅因为他跟我同一所大学毕业就要去关注他呢?我觉得基本上没有道理。除非在大学的基础上还能够进行其他判断,精确地推断出他跟我可能是本科室友,那我就比较感谢新浪微博了哈哈。至于根据个人标签来进行推荐,我觉得对我来说相对还算靠谱,因为我主要还是根据兴趣爱好来进行关注的。但是仅仅根据个人的标签来做推荐,又有点单调与片面,我觉得加入”关注对象的标签“可能会更完善一点。这种考虑的来源是:我关注的那些人都是我确实感兴趣的那些人,他们可能会拥有一些类似的标签,而这些标签是我没有给自己加的,这要么是因为懒,要么是因为没有意识到。于是我采集了我follow的那些用户的个人标签,然后做了简单的频数统计,得到了下面的结果,这个结果基本上算是一目了然。
                
                        另外一种可能靠谱的推荐是直接从关注关系出发进行推荐。这种考虑的来源是:我关注的那些人都是我确实感兴趣的那些人,他们可能会拥有一些共同的关注对象,而这些对象是我还没有关注的,这要么是因为懒,要么是因为没有意识到。于是我画了这样的图:
               
                        在这个图里面标出了一些用户,横轴表示我关注的人当中有多少人正在关注这个用户,纵轴表示这个用户本身的粉丝数量。横轴这个数值越大,说明我关注的人当中有很大一部分正在关注这个用户,例如李开复老师,于是我就很可能对李开复老师是感兴趣的。之所以要考虑纵轴(用户本身的粉丝数量),是因为有一些用户的粉丝本身就很多,例如潘石屹等人,他们是某种明星人物,因此我关注的人当中有很多都关注这个用户,是一种很正常的追星现象,未必能够很好地体现这种关注兴趣的集中性与传递性。基于这种考虑,我设置了一个明星阈值:粉丝数量大于10000的,认为是某种明星,暂时不考虑作为推荐(或许可以在某种topN的推荐中出现)。这样处理的结果是:
               
        
                        可以看出来,这种做法的本质是把原图的左下角放大了。
        
                        另一种策略是将上面原图的横轴和纵轴数据做整合,用横轴除以纵轴,构造一个比例:我关注的人在他全部粉丝中的占比。可以很直观地理解,如果一个用户的粉丝本身就不多,而其中就有好多是我所关注的人,那么这个用户很可能也是我会感兴趣的用户。
                
        
                        这个图做得有点粗糙,其实横轴可以把”来自我关注的人“加进去,但似乎也不很影响结果的直观性,就懒得重新画了。
        
                        还有一种比较类似的思路:已关注我 & 我未关注 & 我关注的人当中有人已关注他。于是
                
                        基本就是这样,这是我对微博分析的一些初步尝试,应该会继续学习下去。


資料來源: Internet
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Internet follow Cookie 社会网络分析 Intern 新浪微博 分析家 领域 书籍 网络

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
我的素质低 + 100 + 40 + 5 + 5 + 5 精彩帖子
LIXUANHANK + 20 + 1 + 1 精彩帖子

总评分: 经验 + 100  论坛币 + 60  学术水平 + 6  热心指数 + 6  信用等级 + 5   查看全部评分

本帖被以下文库推荐

沙发
LIXUANHANK 学生认证  发表于 2014-8-14 21:22:41 |只看作者 |坛友微信交流群
受启发了!!

使用道具

藤椅
日新少年 学生认证  发表于 2014-8-15 07:02:53 |只看作者 |坛友微信交流群
这都行? 表示涨姿势了,赞!!

使用道具

板凳
ReneeD 发表于 2014-8-15 12:57:34 |只看作者 |坛友微信交流群
蛮有意思的

使用道具

报纸
凤凰天马 发表于 2014-8-15 13:33:29 |只看作者 |坛友微信交流群
楼主强悍

使用道具

地板
凤凰天马 发表于 2014-8-15 13:34:30 |只看作者 |坛友微信交流群
楼主强悍

使用道具

7
NewOccidental 发表于 2014-8-16 00:49:46 |只看作者 |坛友微信交流群

使用道具

8
lbnous 发表于 2014-8-25 23:58:05 |只看作者 |坛友微信交流群
好方法啊。可以挖掘这么多数据。

使用道具

9
jacky陈2183 在职认证  学生认证  发表于 2015-1-24 23:28:40 |只看作者 |坛友微信交流群
有意思

使用道具

10
RiverSide 发表于 2015-2-17 20:12:46 |只看作者 |坛友微信交流群
sdddddddddddddddddd

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 23:12