基于社交网络的情绪化分析I

标签: 社交网络 情绪 分析 | 发表时间:2015-06-26 17:29 | 作者:whiterbear
出处:http://blog.csdn.net

基于社交网络的情绪化分析I

By 白熊花田( http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢。

之前说要进行微博的数据抓取并进行相关的分析,这里就是了。


题目来源

这是我的毕设题目,题目来源: 汪顺平博客。在开始毕设时,我联系过这位博主,当时他是已经下载完数据准备分析了,后面一直没有联系了,参考了他数据下载的代码。我从三月末开始毕设,六月初结束,共两个月多点时间。这里将按数据的下载,数据处理,数据的情感分析的顺序来简要记录下我的毕设。

意义

使用数据分析的方法,从数学的角度去研究在社交网络上人们表达情绪的倾向。

数据的采集

这一部分是前期的重点,没有数据如何进行数据分析?

数据对象的选择

数据对象的选择,人人网已经没落,而且非好友无法访问,放弃;微信朋友圈也是无法访问非好友的数据,它是私密性的,放弃;新浪微博,公开访问,网上教程众多,选择。在确定数据对象为新浪微博后,选择了学校这个群体。这个群体有着很多优势:

  • 大学学生多半都使用微博
  • 大学学生的微博多半不是广告

基于此,我选择了五所高校,分别是大连理工大学,清华大学,北京大学,南京大学,华东政法大学,这五所学校南北有别,文理也有差异。

数据采集的思路和流程

数据采集的思路是,先手动给定几个一个学校入口的微博账号,通过这些微博账号下载他们的关注列表,之后下载关注列表里的该学校的微博用户的关注列表,以此循环,最后如果数据足够了,则停止下载,转而下载另一个学校的数据。

数据采集的流程是:第一步,选择入口用户id并存储到对应的学校表中。第二步,下载学校表中用户的关注列表,获取到的用户存储在用户表中。第三步,下载用户表中用户的教育信息,如果是刚刚五个学校的则存储到对应的学校表中。第四步,判断对应的学校表的用户数是否大于等于2000,如果不满足,则重复2到4。第五步,下载对应学校微博用户表里面用户的微博,并存储在对应的学校微博表中。

流程图为:

这里写图片描述

实现

使用给定cookie值的新浪微博访问方式(详细请参照: 填入cookie登录微博),访问新浪微博手机页面下载数据。

  • 个人基本信息界面: http://weibo.cn/1873***652/info

  • 微博界面: http://weibo.cn/u/1873***652?page=1

  • 关注列表界面: http://weibo.cn/1873***652/follow

最好不要试图通过爬虫抓取PC端的微博数据,PC端界面数据量比较庞大,而且数据分析处理也比较麻烦。一般知道了以上几个界面,而又做过爬虫的话,应该都知道怎么抓取数据了,要注意的是,使用这种cookie值的方式,在抓取一段时间后会失效,微博会短时间内的封号,这时需要多获取几个同学的微博号,使用一些时间函数进行伪随机访问。

使用的模块或技术有:beautifulsoup,re,requests,ConfigParser,threading等。
我用了五六个同学的微博账号,用时两个星期,最终的数据采集的结果为:5个学校*每个学校2000个用户*每个用户30条微博约等于25万条微博。

  #总流程的伪码实现
while True:
    entrance_weiboids = 从数据库中随机选择20条微博ID作为入口用户
    # 下载入口ID的关注列表
    followers = download_followers(entrance_weiboids) 
    # 下载被关注用户的基本信息
    download_followers_profile(followers) 
    # 下载被关注用户的教育信息
    download_followers_education(followers) 
    # 下载被关注用户的工作信息
    download_followers_company(followers)
    # 下载被关注用户的标签信息
    download_followers_taginfo(followers) 
    # 从数据库中将教育信息为选定学校的转移到对应的学校信息表中
    convey_followers_to_school()
    # 如果学校用户大于2000人了,退出循环
    if get_school_users() > 2000:
        break
#下载这2000个人的微博
download_weibo()

相关代码链接:

总结

  • 不过早的设计

    在进行数据库设计时,我在不是很了解整体数据特征的时候,设计了整个的数据库表,而到随着数据采集的深入,很多的表的字段觉得多余了,同样也有很多的字段需要修改,这样的操作都是非常复杂的。所有后面,不得不重新建立了一个数据库重新进行数据表的设计。 得到的教训是,在不了解数据之间的逻辑时,先不要急着追求大而全的设计,因为总有很多因素是当时设计时所考虑不到的,所以可以先设计出比较简单的,能够有效解决当前问题的方案,这样后期即使想添加修改也比较方便

  • 抓取问题的核心

    在进行数据抓取时,我先是希望将获取的所有的数据都保存起来,比如微博用户的工作信息,标签信息,基本信息(性取向,性别,简介,地址,达人等等)。我希望能够有一个完整庞大的程序可以完美下载到所有的数据,然后还能智能地判断哪个cookie失效了等等。后来发现构建这样的程序只是个童话。所需要的只是微博数据而已,最后我只使用了获取关注列表模块,获取教育信息模块,已经获取原创无图微博模块。发现删减后,整个程序的思路变得清晰了。所以, 在解决问题时,先关注问题的核心,想办法简化问题,解决主要问题。如果一件事你觉得太复杂,你可能没有弄明白它,如果你设计了复杂的设计,你极有可能半途而废

联系方式

whiterbear@qq.com

如果你想要微博数据,或者想要包含中间处理pickle数据的代码,可以发邮件给我。

下一篇, 数据的处理

作者:whiterbear 发表于2015/6/26 17:29:43 原文链接
阅读:76 评论:0 查看评论

相关 [社交网络 情绪 分析] 推荐:

基于社交网络的情绪化分析I

- - CSDN博客编程语言推荐文章
基于社交网络的情绪化分析I. By 白熊花田( http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢. 之前说要进行微博的数据抓取并进行相关的分析,这里就是了. 这是我的毕设题目,题目来源: 汪顺平博客. 在开始毕设时,我联系过这位博主,当时他是已经下载完数据准备分析了,后面一直没有联系了,参考了他数据下载的代码.

基于社交网络的情绪化分析II

- - CSDN博客推荐文章
基于社交网络的情绪化分析II. By 白熊花田( http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢. 上一篇进行了微博数据的抓取,这一篇进行数据的处理介绍. 观察发现微博中有很多的微博是用户参与某些活动而转发的微博,比如:“SmashHit,作者:MediocreAB.

社交网络分析:大伙如何看待新 iPad?

- - 爱范儿 · Beats of Bits
大数据分析渐渐流行起来,那么人们对于这次的苹果新品发布会又有什么看法呢. 《财富》汇集了两家公司基于 Twitter 给出的分析,目前看来过半评论是积极的. 第一个分析是 Crimson Hexagon 给出的,这家来自哈佛大学的公司分析了与新 iPad 有关的近两百万条 Twitter 消息,提炼出下列内容:.

X-RIME: 基于Hadoop的开源大规模社交网络分析工具

- - 并行实验室 | Parallel Labs
文 / 陈冠诚,史巨伟,杨博(IBM中国研究院),杨寅(人民搜索). 随着互联网的快速发展,涌现出了一大批以Facebook,Twitter,人人,微博等为代表的新型社交网站. 这些网站用户数量的迅速增长使得海量的用户数据不断被产生出来,而如何有效地对这些海量的用户数据进行社交网络分析(Social Network Analysis)正成为一个越来越热门的问题.

社交网络决定树

- changlei - 爱范儿 · Beats of Bits
Guy Kawasaki 是 Alltop.com 网站的联合创始人,也是 Garage Technology Ventures 的创建合伙人. 当然,他更为人们所熟知的角色是苹果前首席布道官,在推广 Macintosh 的过程中上立下不少功劳. Guy Kawasaki 在社交网络上非常活跃,无论 Facebook、Twitter,还是最近推出的 Google+ ,他的信息更新都很频繁.

社交网络的“悖论”

- Felix - 月光博客
  编者按:Nina Khosla,作为一个设计师,同时也是Teethie创始人. Teethie是一个社会化博客形式的创业项目,致力于构建基于兴趣的社区.   近几年来,我们与朋友们在网上聊天的方式发生了根本性的变化. 过去,无论线上线下,我们都只看到一小撮朋友在线进行交流. 曾经似乎让人提心吊胆的互联网世界虽然布满了陌生人,但我们可以与他们一到去探索这个未知的世界.

社交网络崛起

- - 《商业价值》杂志
2009的8月28日,当由新浪CEO曹国伟亲自主导的神秘项目微博开始内测的时候,更多还是被看作与饭否、嘀咕、滔滔相似的国内众多类Twitter产品之一,不过事情的发展出乎了不少人的意料:新浪成就了一个不同于美国Twitter的、中国本地化的微博产品,并引发了之后3年中国社交网络的一场风暴. 于新浪而言,微博业务的崛起让这家上市10年的老互联网公司重新焕发生机,于中国的社交网络而言,微博是一个无法被忽视的里程碑意义的产品,而微博成功背后更值得玩味的则是:一个最不像Facebook思路做出的产品反而引爆了过去3年的社交网络浪潮.

解析社交网络Tumblr

- - Solidot
网络科学家都在分析Twitter和Facebook的数据,而遗忘了另一个社交网站:雅虎的轻博客Tumblr. 雅虎实验室的Yi Chang和同事弥补上这一空缺. Tumblr有1.6亿用户,发表了700亿帖子,它的帖子没有字符限制,支持图片、视频和音频. Chang和同事分析了去年8到9月之间发表的6亿帖子(预印本),发现90%以上的帖子由图像或文字构成.

社交网络 vs 社会化媒体

- 华子 - It Talks--上海魏武挥的博客
Twitter最近发布了一个名为“新闻编辑中心”的服务,专供网站上各路记者收集整理信息使用. 国内新浪微博也是出了名的媒体人扎堆之地,可见国外国内都一样:它首先是一个媒体,其次才是一个社交网络. 长久以来,这两个词是有些混用的,因为象Facebook这样的网站,它当然是一个社交网络(Social network),但又通过share和like两个按钮,网络中不断地流动着各种各样的信息,这个网络,事实上已经成为很多人获取信息的首要媒体渠道(Social media).

社交网络的那些事

- Steven Wu - 爱范儿 · Beats of Bits
在过去的一段时间里,社交网络发生很多事. 先是之前一直被看好的 Color 并不被用户接受,后来Google+ 的亮相更是吸引了无数的眼球. 在 Google+ 亮相后一天,曾经的社交网络霸主 Myspace 被新闻集团以 3500 万美元价格给卖了. 在人们对 Myspace 一片惋惜中,Google+ 不断传来好消息:.