用R进行微博分析的初步尝试
来源:互联网 发布:汽车零部件数据库 编辑:程序博客网 时间:2024/05/16 14:43
新浪微博如火如荼,基于微博的各种应用也层出不穷。有一种共识似乎是:微博数据蕴含着丰富的信息,加以适当的挖掘,能够实现众多商业应用。恰好社会网络分析也是我之前有所了解并持续学习的一个领域,因此我做了微博数据分析方面的一些尝试。这些尝试是比较初步的,属于探索性的阶段,当然不能跟微博分析家这样比较成熟的应用相提并论。并且我的分析基本上都出于想当然的直觉感受,没有具体的理论支撑,这方面需要试着找点书籍来阅读一下,貌似有蛮多可以参考的。
一、用R登录并发布微博
之所以仍然选择用R来做这个登录和发布的工作,是考虑到分析过程的连续性,毕竟能够在同一个平台下面完成所有的工作,还是很令人身心愉悦的。这里借助了一款命令行浏览器cURL,这个浏览器在R中可以用RCurl实现,简单的介绍建议参考medo的《R不务正业之RCurl》。由于我对HTTP这些东西都属于初级未入门水平,没能实现直接的登录,只好利用了cookie实现间接登录。但是最终结果还是蛮稳定的。编写这个登录和发布微博的函数,目的之一是为后续的数据采集做准备,但同时也能够实现同步更新不同平台信息的功能,例如写一条语句就能够把人人状态、新浪微博、飞信签名等等同步更新,还是很有趣的。只是人人状态和飞信签名貌似不是很稳定,偶尔能用偶尔报错,我稍微测试了一下,可能是cookie的问题,目前没有深入探索。
(更新:目前已经实现了直接登录,这样或许可以绕过cookie的问题。)
总地来说这个功能的效果就是这个样子。
前两列是我关注的用户以及他们的ID,后两列是前两列所关注的用户及ID。这个数据集目前有22446行,涉及到15868个用户ID,如果要画网络图,似乎对计算机的性能有比较高的要求。所以我只好暂时选择了一种无奈的办法:抽样。得到的结果大概是这样:
换一种抽样的逻辑,减少对象个数,可以做出相对清晰一点的网络。像是这样:
另外一种可能靠谱的推荐是直接从关注关系出发进行推荐。这种考虑的来源是:我关注的那些人都是我确实感兴趣的那些人,他们可能会拥有一些共同的关注对象,而这些对象是我还没有关注的,这要么是因为懒,要么是因为没有意识到。于是我画了这样的图:
在这个图里面标出了一些用户,横轴表示我关注的人当中有多少人正在关注这个用户,纵轴表示这个用户本身的粉丝数量。横轴这个数值越大,说明我关注的人当中有很大一部分正在关注这个用户,例如李开复老师,于是我就很可能对李开复老师是感兴趣的。之所以要考虑纵轴(用户本身的粉丝数量),是因为有一些用户的粉丝本身就很多,例如潘石屹等人,他们是某种明星人物,因此我关注的人当中有很多都关注这个用户,是一种很正常的追星现象,未必能够很好地体现这种关注兴趣的集中性与传递性。基于这种考虑,我设置了一个明星阈值:粉丝数量大于10000的,认为是某种明星,暂时不考虑作为推荐(或许可以在某种topN的推荐中出现)。这样处理的结果是:
基本就是这样,这是我对微博分析的一些初步尝试,应该会继续学习下去。
前两列是我关注的用户以及他们的ID,后两列是前两列所关注的用户及ID。这个数据集目前有22446行,涉及到15868个用户ID,如果要画网络图,似乎对计算机的性能有比较高的要求。所以我只好暂时选择了一种无奈的办法:抽样。得到的结果大概是这样:
换一种抽样的逻辑,减少对象个数,可以做出相对清晰一点的网络。像是这样:
另外一种可能靠谱的推荐是直接从关注关系出发进行推荐。这种考虑的来源是:我关注的那些人都是我确实感兴趣的那些人,他们可能会拥有一些共同的关注对象,而这些对象是我还没有关注的,这要么是因为懒,要么是因为没有意识到。于是我画了这样的图:
在这个图里面标出了一些用户,横轴表示我关注的人当中有多少人正在关注这个用户,纵轴表示这个用户本身的粉丝数量。横轴这个数值越大,说明我关注的人当中有很大一部分正在关注这个用户,例如李开复老师,于是我就很可能对李开复老师是感兴趣的。之所以要考虑纵轴(用户本身的粉丝数量),是因为有一些用户的粉丝本身就很多,例如潘石屹等人,他们是某种明星人物,因此我关注的人当中有很多都关注这个用户,是一种很正常的追星现象,未必能够很好地体现这种关注兴趣的集中性与传递性。基于这种考虑,我设置了一个明星阈值:粉丝数量大于10000的,认为是某种明星,暂时不考虑作为推荐(或许可以在某种topN的推荐中出现)。这样处理的结果是:
基本就是这样,这是我对微博分析的一些初步尝试,应该会继续学习下去。
- 用R进行微博分析的初步尝试
- Spark 的初步尝试
- Ajax的初步尝试
- 线程的优先级初步尝试
- Image Loader的初步尝试
- 贪吃蛇的初步尝试
- 用Python进行网络爬虫和数据分析的初次尝试(一)
- 用R语言进行关联分析
- 用R语言进行关联分析
- 用R来进行股票分析
- 用R语言进行回归分析
- 用R语言进行数据分析
- Hadoop及RHadoop的初步尝试
- 基于R进行相关性分析
- 【R的网络提取】用R进行CSDN任意博主的信息提取
- 用R做中文文本分析--用R进行文本挖掘与分析:分词、画词云
- 金万维外网不能访问可以用如下的方法进行尝试
- 用R进行文本挖掘与分析:分词、画词云【2】
- UVa 1531 - Problem Bee
- Request的getParameter和getAttribute方法的区别
- nyist 小M的因子和 (A^B的因子和)
- javaEE java web 区别
- 数据结构 成绩表的ADT
- 用R进行微博分析的初步尝试
- 软件测试培训笔记
- stm32 USART 串口通信[操作寄存器+库函数]
- 最长递增和递减子序列详解(longest increasing subsequence)
- 简单的数学分析题
- vim插件使用 c.vim
- 似然函数likelihood function
- TTL电平、CMOS电平、RS232电平的区别
- iOS8开发~UI布局(三)深入理解autolayout