编辑推荐
暂无
内容简介
社交网站数据如同深埋地下的“金矿”,如何利用这些数据来发现哪些人正通过社交媒介进行联系?他们正在谈论什么?或者他们在哪儿?
《社交网站的数据挖掘与分析(原书第2版)》第2版对上一版内容进行了全面更新和修订,它将揭示回答这些问题的方法与技巧。你将学到如何获取、分析和汇总散落于社交网站(包括Facebook、Twitter、LinkedIn、Google+、 GitHub、邮件、网站和博客等)的数据,以及如何通过可视化找到你一直在社交世界中寻找的内容和你闻所未闻的有用信息。
■ 借助IPython Notebook、自然语言工具包、NetworkX和其他科学计算工具挖掘主流社交网站
■ 使用高级文本挖掘技术(如聚类和TF-IDF)来提取人类语言数据中有价值的知识
■ 通过发现GitHub上人、编程语言和代码工程间的亲密性,构建兴趣图谱
■ 利用D3.js进行交互式可视化,充分发挥HTML5和JavaScript工具包的灵活特性
■ 以“问题-解决方案-讨论”的方式详细讲解深入挖掘Twitter数据的实用技术,并提供代码示例
作者简介
Matthew A. Russell Digital Reasoning Systems公司首席技术官(CTO)、Zaffra公司负责人。作为一名计算机科学家,他热衷于数据挖掘、开源软件开发和创造技术以扩展人类智能。
译者简介
苏统华 博士,硕士生导师,CUDA研究中心以及教学中心负责人。主要研究方向包括:物联网大数据智能信息处理、大规模并行计算、模式识别、智能媒体交互与计算等。作为自然手写中文文本识别的开拓者,四年内代表工作被同行大篇幅他引约300次;他所建立的HIT-MW库为全世界100多家科研院所采用;目前负责国家自然科学基金项目2项。2013年,他领导的研究组在文档分析和识别国际会议(ICDAR’2013)上获得手写汉字识别竞赛的双料冠军;2014年,两项手写文字识别核心技术授权给某高新技术公司,正在为超过200万终端用户提供技术服务。著有英文专著《Chinese Handwriting Recognition: An Algorithmic Perspective》(德国施普林格出版社),出版5本大数据分析方面的译作(机械工业出版社)。
目录
前言
第一部分 社交网络导引
序幕
第1章 挖掘Twitter:探索热门话题、发现人们的谈论内容等
1.1 概述
1.2 Twitter风靡一时的原因
1.3 探索Twitt
1.4 分析140字的推文
1.5 本章小结
1.6 推荐练习
1.7 在线资源
第2章 挖掘Facebook:分析粉丝页面、查看好友关系等
2.1 概述
2.2 探索Facebook的社交图谱
前沿
与其说网络是一项技术创新,不如说它是一项社交创举。
我设计它意在延伸社交性(帮助大家一起工作),而不是为了制造一种高科技玩具。网络的终极目标是支持并改进现实世界的网络化生存。现实世界中,我们会组成家庭、组织协会、组建公司。现实世界中,我们会跨越空间的樊篱建立信任,亦会近在咫尺却心生芥蒂。
——TimBerners-Lee(万维网之父),《WeavingtheWeb》(Harper)
读者必读
本书经过精心设计,为特定的目标受众提供一段难以忘怀的学习体验。那些影响心情的电子邮件、糟糕的书评或者其他误导,可能让你对本书的范围和目的产生不必要的误解。为了避免这些混乱,本前言的余下内容试图帮助你确定你是否是该书的目标受众。作为一位非常繁忙的职场人士,我认为时间是我最宝贵的财富,并且我认为对你也是这样的。尽管我经常遭遇失败,但是当我走出困境时,我真的尽力向我的邻居致敬。本前言是我试图向你(读者)致敬,我的致敬方式是清楚阐释本书能否满足你的期望。
管理你的期望
首先,本书假设你希望学习如何挖掘来自流行社交网络资源中的数据,避免在运行示例代码时遇到技术问题并且在过程中获得很多乐趣。尽管你读这本书仅仅可能是为了了解社交网络挖掘可能做什么事情,但你应该知道本书的写作风格。本书组织成让你可以跟随本书尝试许多练习,并且一旦完成了一些安装开发环境的简单步骤就能进入数据挖掘者的行列。如果你以前编写过一些程序,应该会发现可以轻松运行这些示例代码。即使你以前从未编过程但认为自己的技术领悟能力还可以,我敢说你可以将这本书作为一次难忘旅程的出发点,它将以你从未想象的方式扩展你的思想。
为了充分享受本书及其所提供的内容,你需要对挖掘流行社交网络(如Twitter、Facebook、LinkedIn和Google+)存储数据的广阔可能性很感兴趣,需要主动下载一个虚拟机并且在IPythonNotebook上重现本书的示例代码。IPythonNotebook是一个奇妙的基于网络的工具,每一章的示例代码都基于它。执行这些代码通常和在键盘上按一些键一样容易,因为所有的代码都是以友好的用户接口呈现的。本书将会教你一些乐于学习的事物,并且在你的工具箱中加入了一些独立的工具,但是可能更加重要的是,它将会告诉你一个故事并且在途中给你带来快乐。这是一个关于与社交网站相关的数据科学的故事,它向你展示这些网站堆积的数据以及一些你能够使用这些数据做到的诱人潜力。
如果从头到尾阅读本书,你会注意到这个故事是按照章节顺序展开的。尽管每一章会大体遵循一个容易理解的模式来介绍一种社交网站、教你如何使用它的API获取数据,并且介绍一些分析数据的技术,该书讲述的内容会越来越广泛,同时也会越来越复杂。本书的前几章花一些时间介绍基本概念,然而后面的章节将会系统地建立在前几章的基础上并且逐渐介绍一系列挖掘社交网络的工具和技术,你可以将其应用到你生活的其他方面。
一些最流行的社交网站最近几年已经从流行转变到主流再转变到家喻户晓,它们改变着我们线上和线下的生活方式,它能够让技术给我们呈现出最好的(有时是最坏的)一面。综合来说,本书的每一章都将社交网站与数据挖掘、分析和可视化技术的内容组织在一起,以探索数据并且回答以下典型的问题:
谁与谁相识,哪些人是他们社交网络中共有的?
某人与其他人交流有多频繁?
哪一个社交网络关系为特定的领域产生了最大的价值?
在网络世界里,地理位置是如何影响你的社会关系的?
谁是某个社交网络里最有影响力的人(最流行的人)?
人们在谈论些什么(这个有价值吗)?
基于人们在数字世界使用的人类语言,人们感兴趣的是什么?
这些基本问题的答案经常会产生一些有价值的见解,并且为企业家、社会科学家以及其他急于理解一个问题空间并且寻找解决方案的实践者展现盈利的机会。从零开始构建一个一站式的杀手级应用程序(killerapp)来回答这些问题,探索远远超出经典可视化库的用法以及构建任何最先进的东西等内容不在本书的讨论范围。如果你购买本书是为了做这些事情,那么你真的会非常失望。然而,本书提供了回答这些问题的基本构造单元,并且为你构建杀手级应用程序或进行学术研究提供助力。自己浏览几章看看,本书涵盖了大量的必备知识。
以Python为中心的技术
本书中的所有示例代码特意利用了Python语言的优势。Python直观的语法、迷人的包生态系统,可以最小化API访问和数据操作的复杂性。实际上是JSON(的核心数据结构使它成为一个出色的教学工具,它不仅强大而且非常容易启动和运行。如果这还不足以让Python既成为一个伟大的教学选择又成为挖掘社交网络的选择,那么可以借助IPythonNotebook()这个强大的、交互式的Python解释器,它在你的Web浏览器中提供了一个类似笔记(notebook)的用户体验,并且结合了代码执行、代码输出、文本、数学排版、绘图以及更多的功能。我们很难想到更好用户体验的学习环境,因为它将提供样例代码的麻烦最小化了,作为读者你可以跟着它一起执行代码而不会遇到任何麻烦。图P-1提供了一个IPythonNotebook体验的图示,它显示了书中每一章Notebook的精简展示(dashboard)。图P-2显示了其中一个Notebook的视图。
图P-1:IPythonNotebook概览,其中为Notebook的精简展示
图P-2:IPythonNotebook概览,其中为“Chapter1-MiningTwitter”(本书英文版第1章)的Notebook
书中的每一章都对应一个附带示例代码的IPythonNotebook。这使得学习代码、修改bug、按照自己的目的自定义成为一种乐趣。如果你编写过一些程序但是却从来没有看到过Python语法,提前浏览几页一定是你需要的。优秀的文档可以在线获得,如果你正在寻找一个权威的Python编程语言的介绍,那么官方的Python教程是很好的一个起点。本书的Python源代码使用Python2.7编写,它是2.x系列的最新发行版。(尽管可能会碰到点问题,但我们不难想象可以使用一些自动化工具向上转换到Python3。)
IPythonNotebook无疑是很好用的,但是如果你刚接触Python编程,那么仅仅建议你跟随网上的说明配置你的开发环境可能会有些适得其反(甚至可能是无理的)。为了使你尽可能愉快地体验这本书,一个一站式的虚拟机可能会更合适,它包含IPythonNotebook并预装了你重现本书示例所需的其他所有要求条件。你需要做的就是按部就班,大约15分钟就可以运行了。如果你有编程背景,你将能够配置自己的开发环境,但是我希望你会相信:虚拟机体验是更好的出发点。
注意:更多关于本书虚拟机体验的详细信息见附录A。附录C同样也值得你注意:它提供了一些IPythonNotebook的提示以及本书源代码中使用的常见Python编程惯用法。
无论你是一位Python新手还是高手,本书最新修复bug的源代码以及附带的用于构建虚拟机的脚本可在GitHub(上获得。GitHub是一个社交Git仓库它始终反映最新可用的示例代码。我们希望社交编程将会增强那些想要一起工作的志同道合者之间的合作,便于他们扩充示例和不断修改感兴趣的问题。希望你会派生(fork)、扩充(extend)和改进(improve)这些源代码,并且可能会在过程中结识一些新朋友。
注意:官方GitHub库(SocialWeb2E)包含本书最新、最大程度修复bug的源代码。
第2版的具体改进
当我着手本书第2版的工作时,我完全没有意识到自己将陷入的境地。从一开始就声称的“重大更新”在我认为是对第1版几乎进行了重写。我已经对每一章做了大量更新,高瞻远瞩地增加了新内容,并且我真的相信第2版在各个方面都优于第1版。我真诚希望它比第1版有更广泛的读者。同时希望,通过借助工具、技术以及实战建议并依靠重组和分析社交网站数据来实现我们心中所想,激发广泛的兴趣。如果我成功地达到了这个目标,我们将会看到关于社交网站数据可以做些什么的更广泛的认知以及更多的崭露头角的企业家和热心的爱好者将社交网络数据应用到工作中。
一本书就是一个产品。任何产品的第一个版本都是可以被大大改善的,并不一定是客户想要的。并且如果虚心接受建设性的反馈并用来改进产品,那么会产生巨大的长进。本书也不例外。过去几年中,通过与读者和客户互动获得的针对本书示例代码的反馈和学习体验对于塑造这本书是非常重要的,甚至远远超过了我自己所能创造的。我已经尽可能地纳入这类反馈,它主要可以为读者简化学习体验。
在第2版中简化以不同方式出现。或许,最值得注意的是,本书和上一个版本最大的区别之一在于大大简化了技术工具链,并且我已经通过叫做Vagrant的迷人虚拟化技术进行了配置管理。上一个版本涉及许多存储用的数据库、各种可视化工具,并且假定读者能够通过阅读在线说明弄清楚大部分的安装和配置。
相反,本书不遗余力地介绍了尽可能少的不同的技术依赖,并且将它们全部呈现在虚拟机体验中。它会抽象掉软件安装和配置的复杂性,这有时会比最初看起来更具挑战性。从某个角度看,核心工具箱只包括预装在虚拟机上的IPythonNotebook和一些第三方依赖包(这些都是受到版本控制的,这样更新开源软件就不会导致代码受到破坏)。内置的可视化甚至被附加到IPythonNotebook上,从IPythonNotebook本身呈现并且被整合到一个单独的JavaScript工具D3.js它维持了整章视觉上一致的美感。
继续刚才简化的主题,由于花费更少的时间即可介绍完全不同的技术,这就使得有更多的机会在分析方面进行基本练习。第1版中读者经常诟病的一个内容是应该将更多的时间花在分析和讨论练习的意义上(这确实是一个公正的批评)。我希望通过第2版在现存内容留下空白的地方增加补充说明,从而做到与这些美妙的建议匹配。从某种意义上说,第2版用更精炼的内容做更多的事,因此它也会给读者传递更多的价值。
从结构重组的角度看,你可能已经注意到第2版加入了关于GitHub的一章。GitHub令人感兴趣是有各种各样原因的。你可以从这一章的回顾部分看出它并不都是关于“社交编程”的(尽管这是它的主要部分)。GitHub是一个非常社交化的网站,它跨越了国界,正在迅速成为一个通用的协作中枢,并且延伸超出了编码范畴,可以被解释为一个兴趣图谱——一幅将人与吸引他们的事物连接的图谱。兴趣图谱(无论是从GitHub得到的还是从其他地方得到的)是这个逐渐发展的Web传奇故事中的重要概念,并且由于有人对社交网络感兴趣,所以你不想忽略它们。
除了关于GitHub的新的一章外,第1版中关于Twitter的“高级的”两章被重构了,扩展成一些更容易接受的Twitter代码配方(recipe),并组织到第9章。尽管本书第1章缓缓地展开并且介绍了社交网络API和数据挖掘的概念作为预热,但是本书最后一章又回到开始的地方并且带来了不同构造单元,你可以基于它们以不同的方式进行组装从而获得无数可能。最后,之前专门介绍微格式的一章已经被并入现在的第8章,它被设计成一种更具前瞻性的关于“带标记的语义网”的精选的某些有趣话题而不是像之前的章节那样的许多编程练习的集合。
注意:建设性的反馈总是受欢迎的,我非常喜欢以书评、发给@SocialWebMining的推文或发表在本书Facebook涂鸦墙的评论方式听到你们的反馈。本书的官方网站和博客允许使用更长形式的内容扩展本书。
本书约定
本书使用了以下排版约定:
斜体(Italic)
用于新术语、URL、电子邮件地址、文件名与文件扩展名。
等宽字体(Constantwidth)
用于表明程序清单,以及在段落中引用的程序中的元素,如变量、函数名、数据库、数据类型、环境变量、语句、关键字等。
等宽粗体(Constantwidthbold)
用于表明命令,或者需要读者逐字输入的文本内容。
等宽斜体(Constantwidthitalic)
用于表示需要使用用户提供的值或者由上下文决定的值来替代的文本内容。
注意:表示一个技巧、建议或一般性说明。
警告:表示一个警告或注意事项。
示例代码的使用
本书最新的示例代码在GitHub的维护,这是本书的官方代码库。我们鼓励你关注这个库以便获得最新的修复bug的代码,以及由作者和其他社交编程社区编写的更多示例。如果你阅读的是纸质版,书中的代码示例很可能不是最新的,但是只要你使用本书的GitHub库,你就会获得最新修复bug的示例代码。如果你利用了本书提供的虚拟机,那么你已经获得了最新的源代码,但是如果你选择使用自己的开发环境,请确保直接从GitHub库下载源代码压缩包。
注意:请将关于示例代码的问题记录到GitHub库的问题追踪系统而不是O扲eilly目录的勘误追踪系统。GitHub上源代码的问题被解决时会更新到本书的手稿中,然后定期地作为电子书更新提供给读者。
本书提供代码的目的是帮你快速完成工作。一般情况下,你可以在你的程序或文档中使用本书中的代码,而不必取得我们的许可,除非你想复制书中很大一部分代码。例如,你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O扲eilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。
如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“MiningtheSocialWeb,2ndEdition,byMatthewA.Russell.Copyright2014MatthewA.Russell,978-1-449-36761-9”。
如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们
……
免费在线读
第1章
挖掘Twitter:探索热门话题、发现人们的谈论内容等
本章,我们将从Twitter开始揭开挖掘社交网络的序幕。Twitter是社交数据的丰富来源,它对公共消费固有的开放性、简洁且文档完备的API、丰富的开发者工具以及对各行各业用户广泛的吸引力,使它成为进行社交网络挖掘的理想起跑线。Twitter的数据是非常有趣的,因为推文(tweet)可以以最快的速度把想法发布出去,它们几乎是实时的,并且它的多样性代表了国际范围内最广泛的社会阶层。通过简短的对话(通常是有意义的)、将人与其关注事物相连的兴趣图谱(interestgraph)以及推文和Twitter的“关注”(following)机制将人们以不同的方式联系到一起。
由于这是本书的第1章,我们将会花些时间让你逐步适应社交网络挖掘的旅程。不过,考虑到Twitter数据很容易得到并且接受公众的审查,第9章以问答的形式提供了一系列既短小精悍又具有普遍性的代码配方,从而进一步阐述了大量数据挖掘的可能性。你也可以将随后章节中的概念应用到Twitter数据中。
注意:一定要从在线获得本章(和其他每一章)最新的错误修正版本的源代码。此外,请务必利用好本书附录A中描述的虚拟机体验,从而最大化地享用示例代码。
1.1概述
在这一章,我们将会开始配置最基本的(但是却非常高效的)Python开发环境、研究TwitterAPI,并使用频率分析从推文中提取一些分析性结论。这一章里你将了解的主题包括:
Twitter开发者平台以及如何发起API请求。
推文元数据以及如何使用它。
从推文中提取实体,例如:提及的用户、主题标签和URL。
使用Python进行频率分析的相关技术。
使用IPythonNotebook绘制Twitter数据的直方图。
1.2Twitter风靡一时的原因
大多数的章节并不会从发人深省的讨论开始,但是由于这是全书的第1章并要引入一个往往会被人误解的社交网站,因此从根本的层面审视Twitter似乎更为合适。
社交网站的数据挖掘与分析(原书第2版)(老鼠书,第1版曾获2011年Jolt生产效率大奖) pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版