欢迎来到天天文库
浏览记录
ID:48015683
大小:3.09 MB
页数:18页
时间:2019-07-13
《使用Python分析社交网络数据.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2015年6月21日使用Python分析社交网络数据ArchiveAlbum使用Python分析社交网络数据AUG,032014Python简介数据抓取一、直接抓取数据二、模拟浏览器抓取数据三、基于API接口抓取数据数据预处理可视化数据分析节点属性网络属性传播属性扩散深度扩散速度空间分布结语参考文献在线社交网站为人们提供了一个构建社会关系网络和互动的平台。每一个人和组织都可以通过社交网站互动、获取信息并发出自己的声音,因而吸引了众多的使用者。作为一个复杂的社会系统,在线社交网站真实地记录了社会网络的增长以及
2、人类传播行为演化。通过抓取并分析在线社交网站的数据,研究者可以迅速地把握人类社交网络行为背后所隐藏的规律、机制乃至一般性的法则。然而在线社交网络数据的获取方法有别于线下社会数据的获取(如普查、社会调查、实验、内容分析等)、数据的规模往往非常大(称之为“大数据”并不为过)、跨越的时间范围也相对较长(与社会调查中的横截面数据相比),常规的数据分析方法并不完全适用。例如传统的社会调查的数据往往样本量有限,而在线社交网络中的样本量可以达到千万甚至更多。因而,研究者迫切得需要寻找新的数据获取、预处理和分析的方法。本章
3、的内容具体包括数据的抓取、数据预处理、数据可视化和数据分析部分。Python简介本章将简要介绍使用python分析社交网络数据的方法。Python是一种广泛使用的高级编程语言,具有可读性强、编写容易、类库丰富等特点。作为一种“胶水语言”,它可以将使用其他语言编写的各种模块(尤其是C/C++)轻松地联结在一起。自从1991年推出第一个正式版本,因其使用方便,Python社区迅速发展,越来越多的程序员开始使用Python编写程序并贡献了各种功能强大的类库。它被TIOBE编程语言排行榜评为“2010年度编程语言”
4、。除了免费、功能强大、使用者众多之外,与R和MATLAB相比,Python是一门更易学、更严谨的程序设计语言。如同其它编程语言一样,Python语言的基础知识包括:类型、列表(list)和元组(tuple)、字典(dictionary)、条件、循环、异常处理等。关于这些,初阶读者可以阅读《BeginningPython》一书(Hetland,2005)。作为一个相对非常完善的编程语言,使用Python编写的脚本更易于理解和维护。另外,Python中包含了丰富的类库。众多开源的科学计算软件包都提供了Pytho
5、n的调用接口,例如著名的计算机视觉库OpenCV。Python本身的科学计算类库发展也十分完善,例如NumPy、SciPy和matplotlib等。就社会网络分析而言,igraph,networkx,graph-tool,Snap.py等类库提供了丰富的网络分析工具。读者可以根据个人电脑的操作系统安装相应的Python版本。目前最新的Python版本为3.0,但是通常使用者会选择使用更稳定的2.7版本。虽然使用者也可以使用文本编辑器编写代码,但是使用体验不如使用好的编译器。编译器是编写程序的重要工具。目前,
6、免费的Python编译器http://computational-thinking.farbox.com/blog/2014-08-03-study-osn-using-python#toc_21/182015年6月21日使用Python分析社交网络数据有Spyder、PyCharm(免费社区版)、Ipython、Vim、Emacs、Eclipse(加上PyDev插件)。对于使用Windows操作系统的用户,推荐使用Winpython。Winpython内置了Spyder为编译器,与Python(x,y)相
7、比大小适中;免安装,下载后解压即可用;安装类库很方便,并且内置了NumPy、SciPy等类库。数据抓取目前社交网站的公开数据很多,为研究者检验自己的理论模型提供了很多便利。例如斯坦福的社会网络分析项目就分享了很多相关的数据集。社交网站为了自身的发展,往往也通过各种合作项目(例如腾讯的“犀牛鸟项目”)和竞赛(例如Facebook通过Kaggle竞赛公布部分数据)向研究者分享数据。但是,有时候研究者还是被迫需要自己收集数据。受限于网站本身对于信息的保护和研究者自身的编程水平,互联网数据的抓取过程依然存在众多问题
8、。以下,我们将从三个方面着手简要介绍使用Python进行数据抓取的问题:直接抓取数据、模拟登录抓取数据、基于API接口抓取数据。一、直接抓取数据通常的数据抓取遵循可见即可得的规律,即可以观察到的,就可以被抓取。对于网页内容的抓取,可以是把整个网页都存下来,回头再清洗。这样做比较简单有效,但是还是回避不了之后的从html文件中进行的数据提取工作。在下面的例子当中,我们将尝试抓取百度新闻页面(http://news.
此文档下载收益归作者所有