首页>参考读物>计算机科学与技术>综合

社交网站的数据挖掘与分析(原书第2版)
作者 : (美) Matthew A. Russell 著
译者 : 苏统华 魏通 赵逸雪 王烁行 刘智月 译
出版日期 : 2015-03-09
ISBN : 978-7-111-48699-2
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 384
开本 : 16
原书名 : Mining the Social Web
原出版社: OReilly Media, Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

社交网站数据如同深埋地下的“金矿”,如何利用这些数据来发现哪些人正通过社交媒介进行联系?他们正在谈论什么?或者他们在哪儿?本书第2版对上一版内容进行了全面更新和修订,它将揭示回答这些问题的方法与技巧。你将学到如何获取、分析和汇总散落于社交网站(包括Facebook、Twitter、LinkedIn、Google+、 GitHub、邮件、网站和博客等)的数据,以及如何通过可视化找到你一直在社交世界中寻找的内容和你闻所未闻的有用信息。
■ 借助IPython Notebook、自然语言工具包、NetworkX和其他科学计算工具挖掘主流社交网站
■ 使用高级文本挖掘技术(如聚类和TF-IDF)来提取人类语言数据中有价值的知识
■ 通过发现GitHub上人、编程语言和代码工程间的亲密性,构建兴趣图谱
■ 利用D3.js进行交互式可视化,充分发挥HTML5和JavaScript工具包的灵活特性
■ 以“问题-解决方案-讨论”的方式详细讲解深入挖掘Twitter数据的实用技术,并提供代码示例
本书的配套代码在公开的GitHub代码库中进行维护,可以通过一站式虚拟机来访问,你只需要使用方便易用的IPython Notebook,即可进入愉快的交互式学习情景。
“不管你是否是程序员,通过API来挖掘见解都是必备的技能。本书展示了大量关键数据源,通过工具,可以令编码变得轻松。”
——Kevin Makice 《Twitter APl: Up and Running》 作者
“本书使用简洁的交互式代码向读者展示了社交网站数据的全新视角。所有的这些都可以在浏览器中呈现。通过学习这些广泛的示例,读者可以将探索算法复杂度、自然语言处理以及物联网前景等计算机科学中艰深概念的过程变成一次奇妙的旅行。”
——Jason Yee Digital Reasoning公司 数据科学家

Matthew A. Russell Digital Reasoning Systems公司首席技术官(CTO)、Zaffra公司负责人。作为一名计算机科学家,他热衷于数据挖掘、开源软件开发和创造技术以扩展人类智能。

图书前言

与其说网络是一项技术创新,不如说它是一项社交创举。
我设计它意在延伸社交性(帮助大家一起工作),而不是为了制造一种高科技玩具。网络的终极目标是支持并改进现实世界的网络化生存。现实世界中,我们会组成家庭、组织协会、组建公司。现实世界中,我们会跨越空间的樊篱建立信任,亦会近在咫尺却心生芥蒂。
——Tim Berners-Lee(万维网之父),《Weaving the Web》 (Harper)
读者必读
本书经过精心设计,为特定的目标受众提供一段难以忘怀的学习体验。那些影响心情的电子邮件、糟糕的书评或者其他误导,可能让你对本书的范围和目的产生不必要的误解。为了避免这些混乱,本前言的余下内容试图帮助你确定你是否是该书的目标受众。作为一位非常繁忙的职场人士,我认为时间是我最宝贵的财富,并且我认为对你也是这样的。尽管我经常遭遇失败,但是当我走出困境时,我真的尽力向我的邻居致敬。本前言是我试图向你(读者)致敬,我的致敬方式是清楚阐释本书能否满足你的期望。
管理你的期望
首先,本书假设你希望学习如何挖掘来自流行社交网络资源中的数据,避免在运行示例代码时遇到技术问题并且在过程中获得很多乐趣。尽管你读这本书仅仅可能是为了了解社交网络挖掘可能做什么事情,但你应该知道本书的写作风格。本书组织成让你可以跟随本书尝试许多练习,并且一旦完成了一些安装开发环境的简单步骤就能进入数据挖掘者的行列。如果你以前编写过一些程序,应该会发现可以轻松运行这些示例代码。即使你以前从未编过程但认为自己的技术领悟能力还可以,我敢说你可以将这本书作为一次难忘旅程的出发点,它将以你从未想象的方式扩展你的思想。
为了充分享受本书及其所提供的内容,你需要对挖掘流行社交网络(如Twitter、Facebook、LinkedIn和Google+)存储数据的广阔可能性很感兴趣,需要主动下载一个虚拟机并且在IPython Notebook上重现本书的示例代码。IPython Notebook是一个奇妙的基于网络的工具,每一章的示例代码都基于它。执行这些代码通常和在键盘上按一些键一样容易,因为所有的代码都是以友好的用户接口呈现的。本书将会教你一些乐于学习的事物,并且在你的工具箱中加入了一些独立的工具,但是可能更加重要的是,它将会告诉你一个故事并且在途中给你带来快乐。这是一个关于与社交网站相关的数据科学的故事,它向你展示这些网站堆积的数据以及一些你能够使用这些数据做到的诱人潜力。
如果从头到尾阅读本书,你会注意到这个故事是按照章节顺序展开的。尽管每一章会大体遵循一个容易理解的模式来介绍一种社交网站、教你如何使用它的API获取数据,并且介绍一些分析数据的技术,该书讲述的内容会越来越广泛,同时也会越来越复杂。本书的前几章花一些时间介绍基本概念,然而后面的章节将会系统地建立在前几章的基础上并且逐渐介绍一系列挖掘社交网络的工具和技术,你可以将其应用到你生活的其他方面。
一些最流行的社交网站最近几年已经从流行转变到主流再转变到家喻户晓,它们改变着我们线上和线下的生活方式,它能够让技术给我们呈现出最好的(有时是最坏的)一面。综合来说,本书的每一章都将社交网站与数据挖掘、分析和可视化技术的内容组织在一起,以探索数据并且回答以下典型的问题:
谁与谁相识,哪些人是他们社交网络中共有的?
某人与其他人交流有多频繁?
哪一个社交网络关系为特定的领域产生了最大的价值?
在网络世界里,地理位置是如何影响你的社会关系的?
谁是某个社交网络里最有影响力的人(最流行的人)?
人们在谈论些什么(这个有价值吗)?
基于人们在数字世界使用的人类语言,人们感兴趣的是什么?
这些基本问题的答案经常会产生一些有价值的见解,并且为企业家、社会科学家以及其他急于理解一个问题空间并且寻找解决方案的实践者展现盈利的机会。从零开始构建一个一站式的杀手级应用程序(killer app)来回答这些问题,探索远远超出经典可视化库的用法以及构建任何最先进的东西等内容不在本书的讨论范围。如果你购买本书是为了做这些事情,那么你真的会非常失望。然而,本书提供了回答这些问题的基本构造单元,并且为你构建杀手级应用程序或进行学术研究提供助力。自己浏览几章看看,本书涵盖了大量的必备知识。
以Python为中心的技术
本书中的所有示例代码特意利用了Python语言的优势。Python直观的语法、迷人的包生态系统,可以最小化API访问和数据操作的复杂性。实际上是JSON(http://bit.ly/1a1kFaF)的核心数据结构使它成为一个出色的教学工具,它不仅强大而且非常容易启动和运行。如果这还不足以让Python既成为一个伟大的教学选择又成为挖掘社交网络的选择,那么可以借助IPython Notebook(http://bit.ly/1a1kFr4)这个强大的、交互式的Python解释器,它在你的Web浏览器中提供了一个类似笔记(notebook)的用户体验,并且结合了代码执行、代码输出、文本、数学排版、绘图以及更多的功能。我们很难想到更好用户体验的学习环境,因为它将提供样例代码的麻烦最小化了,作为读者你可以跟着它一起执行代码而不会遇到任何麻烦。图P-1提供了一个IPython Notebook体验的图示,它显示了书中每一章Notebook的精简展示(dashboard)。图P-2显示了其中一个Notebook的视图。

图P-1:IPython Notebook概览,其中为Notebook的精简展示

图P-2:IPython Notebook概览,其中为“Chapter 1-Mining Twitter”(本书英文版第1章)的Notebook
书中的每一章都对应一个附带示例代码的IPython Notebook。这使得学习代码、修改bug、按照自己的目的自定义成为一种乐趣。如果你编写过一些程序但是却从来没有看到过Python语法,提前浏览几页一定是你需要的。优秀的文档可以在线获得,如果你正在寻找一个权威的Python编程语言的介绍,那么官方的Python教程(http://bit.ly/1a1kDj8)是很好的一个起点。本书的Python源代码使用Python 2.7编写,它是2.x系列的最新发行版。(尽管可能会碰到点问题,但我们不难想象可以使用一些自动化工具向上转换到Python 3。)
IPython Notebook无疑是很好用的,但是如果你刚接触Python编程,那么仅仅建议你跟随网上的说明配置你的开发环境可能会有些适得其反(甚至可能是无理的)。为了使你尽可能愉快地体验这本书,一个一站式的虚拟机可能会更合适,它包含IPython Notebook并预装了你重现本书示例所需的其他所有要求条件。你需要做的就是按部就班,大约15分钟就可以运行了。如果你有编程背景,你将能够配置自己的开发环境,但是我希望你会相信:虚拟机体验是更好的出发点。
注意: 更多关于本书虚拟机体验的详细信息见附录A。附录C同样也值得你注意:它提供了一些IPython Notebook的提示以及本书源代码中使用的常见Python编程惯用法。
无论你是一位Python新手还是高手,本书最新修复bug的源代码以及附带的用于构建虚拟机的脚本可在GitHub(http://bit.ly/1a1kFHM)上获得。GitHub是一个社交Git仓库(http://bit.ly/16mhOep),它始终反映最新可用的示例代码。我们希望社交编程将会增强那些想要一起工作的志同道合者之间的合作,便于他们扩充示例和不断修改感兴趣的问题。希望你会派生(fork)、扩充(extend)和改进(improve)这些源代码,并且可能会在过程中结识一些新朋友。
注意: 官方GitHub库(http://bit.ly/MiningThe SocialWeb2E)包含本书最新、最大程度修复bug的源代码。
第2版的具体改进
当我着手本书第2版的工作时,我完全没有意识到自己将陷入的境地。从一开始就声称的“重大更新”在我认为是对第1版几乎进行了重写。我已经对每一章做了大量更新,高瞻远瞩地增加了新内容,并且我真的相信第2版在各个方面都优于第1版。我真诚希望它比第1版有更广泛的读者。同时希望,通过借助工具、技术以及实战建议并依靠重组和分析社交网站数据来实现我们心中所想,激发广泛的兴趣。如果我成功地达到了这个目标,我们将会看到关于社交网站数据可以做些什么的更广泛的认知以及更多的崭露头角的企业家和热心的爱好者将社交网络数据应用到工作中。
一本书就是一个产品。任何产品的第一个版本都是可以被大大改善的,并不一定是客户想要的。并且如果虚心接受建设性的反馈并用来改进产品,那么会产生巨大的长进。本书也不例外。过去几年中,通过与读者和客户互动获得的针对本书示例代码的反馈和学习体验对于塑造这本书是非常重要的,甚至远远超过了我自己所能创造的。我已经尽可能地纳入这类反馈,它主要可以为读者简化学习体验。
在第2版中简化以不同方式出现。或许,最值得注意的是,本书和上一个版本最大的区别之一在于大大简化了技术工具链,并且我已经通过叫做Vagrant(http://bit.ly/1a1kGeH)的迷人虚拟化技术进行了配置管理。上一个版本涉及许多存储用的数据库、各种可视化工具,并且假定读者能够通过阅读在线说明弄清楚大部分的安装和配置。
相反,本书不遗余力地介绍了尽可能少的不同的技术依赖,并且将它们全部呈现在虚拟机体验中。它会抽象掉软件安装和配置的复杂性,这有时会比最初看起来更具挑战性。从某个角度看,核心工具箱只包括预装在虚拟机上的IPython Notebook和一些第三方依赖包(这些都是受到版本控制的,这样更新开源软件就不会导致代码受到破坏)。内置的可视化甚至被附加到IPython Notebook上,从IPython Notebook本身呈现并且被整合到一个单独的JavaScript工具D3.js(http://d3js.org),它维持了整章视觉上一致的美感。
继续刚才简化的主题,由于花费更少的时间即可介绍完全不同的技术,这就使得有更多的机会在分析方面进行基本练习。第1版中读者经常诟病的一个内容是应该将更多的时间花在分析和讨论练习的意义上(这确实是一个公正的批评)。我希望通过第2版在现存内容留下空白的地方增加补充说明,从而做到与这些美妙的建议匹配。从某种意义上说,第2版用更精炼的内容做更多的事,因此它也会给读者传递更多的价值。
从结构重组的角度看,你可能已经注意到第2版加入了关于GitHub的一章。GitHub令人感兴趣是有各种各样原因的。你可以从这一章的回顾部分看出它并不都是关于“社交编程”的(尽管这是它的主要部分)。GitHub是一个非常社交化的网站,它跨越了国界,正在迅速成为一个通用的协作中枢,并且延伸超出了编码范畴,可以被解释为一个兴趣图谱——一幅将人与吸引他们的事物连接的图谱。兴趣图谱(无论是从GitHub得到的还是从其他地方得到的)是这个逐渐发展的Web传奇故事中的重要概念,并且由于有人对社交网络感兴趣,所以你不想忽略它们。
除了关于GitHub的新的一章外,第1版中关于Twitter的“高级的”两章被重构了,扩展成一些更容易接受的Twitter代码配方(recipe),并组织到第9章。尽管本书第1章缓缓地展开并且介绍了社交网络API和数据挖掘的概念作为预热,但是本书最后一章又回到开始的地方并且带来了不同构造单元,你可以基于它们以不同的方式进行组装从而获得无数可能。最后,之前专门介绍微格式的一章已经被并入现在的第8章,它被设计成一种更具前瞻性的关于“带标记的语义网”的精选的某些有趣话题而不是像之前的章节那样的许多编程练习的集合。
注意: 建设性的反馈总是受欢迎的,我非常喜欢以书评、发给@SocialWebMining(http://bit.ly/1a1kHzq)的推文或发表在本书Facebook涂鸦墙(http://on.fb.me/1a1kHPQ)的评论方式听到你们的反馈。本书的官方网站和博客http://MiningTheSocialWeb.com允许使用更长形式的内容扩展本书。
本书约定
本书使用了以下排版约定:
斜体(Italic)
用于新术语、URL、电子邮件地址、文件名与文件扩展名。
等宽字体(Constant width)
用于表明程序清单,以及在段落中引用的程序中的元素,如变量、函数名、数据库、数据类型、环境变量、语句、关键字等。
等宽粗体(Constant width bold)
用于表明命令,或者需要读者逐字输入的文本内容。
等宽斜体(Constant width italic)
用于表示需要使用用户提供的值或者由上下文决定的值来替代的文本内容。
注意: 表示一个技巧、建议或一般性说明。
警告: 表示一个警告或注意事项。
示例代码的使用
本书最新的示例代码在GitHub的http://bit.ly/MiningTheSocialWeb2E维护,这是本书的官方代码库。我们鼓励你关注这个库以便获得最新的修复bug的代码,以及由作者和其他社交编程社区编写的更多示例。如果你阅读的是纸质版,书中的代码示例很可能不是最新的,但是只要你使用本书的GitHub库,你就会获得最新修复bug的示例代码。如果你利用了本书提供的虚拟机,那么你已经获得了最新的源代码,但是如果你选择使用自己的开发环境,请确保直接从GitHub库下载源代码压缩包。
注意: 请将关于示例代码的问题记录到GitHub库的问题追踪系统而不是O扲eilly目录的勘误追踪系统。GitHub上源代码的问题被解决时会更新到本书的手稿中,然后定期地作为电子书更新提供给读者。
本书提供代码的目的是帮你快速完成工作。一般情况下,你可以在你的程序或文档中使用本书中的代码,而不必取得我们的许可,除非你想复制书中很大一部分代码。例如,你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O扲eilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。
如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“Mining the Social Web, 2nd Edition, by Matthew A. Russell. Copyright 2014 Matthew A. Russell, 978-1-449-36761-9”。
如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们:permissions@oreilly.com。
联系我们
有关本书的任何建议和疑问,可以通过下列方式与我们取得联系:
美国:
O'Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们会在本书的网页中列出勘误表、示例和其他信息。可以通过访问如下网址获得:
http://bit.ly/mining_social_web_2e
任何关于示例代码的勘误可以作为工单(ticket)通过GitHub的问题追踪系统在如下网址提交:
http://github.com/ptwobrussell/Mining-the-Social-Web/issues
读者可以通过GetSatisfaction从作者或出版商处寻求常见帮助,网址如下:
http://getsatisfaction.com/oreilly
要评论或询问本书的技术问题,请发送电子邮件到:
bookquestions@oreilly.com
想了解关于O'Reilly图书、课程、会议和新闻的更多信息,请访问以下网站:
http://www.oreilly.com.cn
http://www.oreilly.com
第2版致谢
我要重申本书第1版说过的话,编写一本书意味着做出很多牺牲。你远离家人和朋友的时间(多数发生在持续很长时间的晚上和周末)是相当宝贵的而且无法倒流的。你真的需要一定的精神支持才能在保持好关系的同时渡过难关。再次感谢对我非常有耐心的朋友和家人,他们真的可以不再容忍我写另一本书,并且可能认为我有某种痴迷于熬夜工作和周末加班的慢性疾病。如果你能找到治疗痴迷写书这一病症的康复诊所,我保证会去给自己做个检查。
每个项目都需要一个伟大的项目经理。我的编辑Mary Treseler让我很佩服,能与她以及她优秀的印刷团队合作出版本书,我很高兴。编写一本技术书籍是一个漫长而充满压力的事业,至少可以说,能与这么多专业人士一起工作是一个了不起的经验。正是在他们的帮助下,你才能顺利通过这个令人筋疲力尽的旅程并出版一部精致打磨的、让你乐于分享于世的作品。Kristen Brown、Rachel Monaghan和Rachel Head真真切切地把我的付出提升到一个全新的专业水准。
从才华出众的编辑人员和技术专家那里收到的详细反馈令我惊叹不已。这些反馈涵盖从非常技术化的建议到软件工程方面的Python最佳实践,再到转换身份从读者角度如何最大程度地满足目标受众。它们远远超出了我曾经的预期。如果不是这些同行给出的宝贵评议意见,你将要阅读的这本书很难达到目前的质量。特别向Abe Music、Nicholas Mayne、Robert P.J. Day、Ram Narasimhan、Jason Yee和Kevin Makice致谢,他们针对草稿给出了非常详细的评议意见。他们的意见大大提升了这本书的质量,而我唯一的遗憾是我们没有机会在这个过程中更密切的合作。还要感谢Tate Eskew向我介绍Vagrant(http://bit.ly/1a1kGeH),这一工具为本书建立了一个易于使用和易于维护的虚拟机体验环境。
我还要感谢许多值得称道的Digital Reasoning同事,我们多年来畅谈有关数据挖掘和计算机科学的主题。与他们的谈话帮助我形成专业思维。我很荣幸成为这样有天分与能力的团队的一员。特别感谢Tim Estes和Rob Metcalf,他们一直支持我从事类似写书这样耗时的项目(在Digital Reasoning公司职责之外)。
最后,感谢每一位读者和本书代码的使用者,他们在本书第1版的整个生命周期里提供了建设性的反馈意见。虽然你们的名字多到无法在此列出,但你们的反馈意见已经在塑造第2版的过程中发挥了不可估量的作用。我希望第2版能符合你们的期望,并可以位列你愿意推荐给朋友或同事的有用书单之中。
第1版致谢
毫不夸张地说,编写一本技术书籍需要做出很多牺牲。在家里,我放弃了与妻子Baseeret和女儿Lindsay Belle相处的很多时间,这比我敢于承认的时间还要多。虽然我的抱负是有朝一日能在一定程度上征服世界(这只是暂时的,坦白地说,我正在尽力摆脱这种状态),但我还是要对她们的爱表示感谢。
我深信你所做的一切决定最终都会影响到你的一生(尤其是你的职业生涯),但是谁也不可能孤独前行,我们要懂得感恩。撰写本书时,我真的很庆幸能与世界上最聪明的一帮人合作,其中包括像Mike Loukides这样聪明的技术编辑,以及O扲eilly这样极富天赋的制作团队,还有帮助我完成本书的很多热心的评审人。我要特别感谢AbeMusic、Pete Warden、Tantek Celik、J. Chris Anderson、Salvatore Sanfilippo、Robert Newson、DJ Patil、Chimezie Ogbuji、Tim Golden、Brian Curtin、Raffi Krikorian、Jeff Hammerbacher、Nick Ducoff和Cameron Marlowe对本书所用材料的评审或者对本书提出的有见地建议,所有这些都帮助提升本书质量。在此我也要感谢Tim O扲eilly的慷慨帮助,他允许我研究他Twitter和Google+上的数据;这些内容必定会为某些章节增趣不少。我不可能一一介绍曾经直接或间接地帮助过我或者帮助过本书出版的人,在此一并表示感谢。
最后,要感谢你考虑阅读本书。如果你在阅读本书,至少你有可能会愿意购买一本。如果你真的购买了本书,虽然我尽了最大努力,但你还是会发现本书存在的一些疏漏之处。然而,我坚信,虽然疏漏在所难免,但本书定会让你觉得值得你花上几个晚上或几周的时间来细细研读,而且最终你也的确会有所收获。

上架指导

计算机\数据挖掘

封底文字

社交网站数据如同深埋地下的“金矿”。如何利用来发现谁和谁建立了联系,他们正在谈论什么以及他们目前何处等“真金”?全新修订后的本书将教会你如何获取、分析和汇总散落于社交网站的数据,涉及Facebook、Twitter、Linkedin、Google+、GitHub、邮件、网站和博客等。

·借助IPython Notebook、自然语言工具包、NetworkX和其他科学计算工具挖掘主流社交网站
·使用高级文本挖掘技术如聚类和TF-IDF来提取人类语言数据中有价值的知识
·通过发现GitHub上人、编程语言和代码工程间的亲密性,构建兴趣图谱
·利用D3.js进行交互式可视化,充分发挥HTML5和JavaScript工具包的灵活特性
·利用几十份Twitter代码方案的优势,深入挖掘O’Reilly公司流行的“问题、解决方案与讨论”实用指南格式

本书的配套代码维护于公开的GitHub代码库。这些代码被设计成便于通过一站式虚拟机来访问,只需使用方便易用的IPython Notebook,即可进入愉快的交互式学习情景。

“不管你是否是程序员,通过API来挖掘见解都是必备的技能。本书展示了大量关键数据源,通过工具,可以令编码变得轻松。”
——Kevin Makice
《Twitter APl: Up and Running》一书作者

“本书使用简洁的交互式代码向读者展示了社交网站数据的全新视角。所有的这些都可以在浏览器中呈现。通过学习这些广泛的示例,读者可以将探索算法复杂度、自然语言处理以及物联网前景等计算机科学中艰深概念的过程变成一次奇妙的旅行。”
——Jason Yee
Digital Reasoning公司数据科学家

作者简介

(美) Matthew A. Russell 著:Matthew A. Russell,Digital Reasoning Systems公司首席技术官(CTO)、Zaffra公司负责人。作为一名计算机科学家,他热衷于数据挖掘、开源软件开发和创造技术以扩展人类智能。

译者简介

苏统华 魏通 赵逸雪 王烁行 刘智月 译:暂无简介

译者序

让你决定捧起这本书的,极可能是这本书的主题。毋庸置疑,社交网络已经深入人心。社交网络引发了交往方式的历史性变化,这是当今时代最大的一次变革。Facebook、Twitter、LinkedIn、Google+、GitHub等社交网站的非凡意义在于改变了互联网的生态,将自发、无序状态的互联网引入到一个有组织、有阶层甚至实名制的社交网络之中。
社交网站数据蕴藏着大量的价值和见解。这些数据随着岁月流逝,会如同醇酒一般越发芳香。社交网络与物联网也在不断融合,大数据为统计学习方法提供了广阔的舞台。随着数据爆炸不断升级,庞杂的大数据中夹杂的噪声有可能被放大。只有利用合适的工具,才能准确而快速地挖掘出感兴趣的或者有意义的知识。
Matthew A. Russell是挖掘社交网络数据的资深专家。他深谙数据挖掘的各种工具和技术,同时他对数据挖掘初学者的所需所求了如指掌。你正在阅读的这本书是在第1版基础上作了“重大更新”的第2版,其中吸收了第1版读者的大量有建设性的意见。如果你对社交网站数据感兴趣,那么本书是帮助你快速入门的法宝。本书体例完备、特色鲜明,从实用的角度出发,对主流的各种社交网站做了较全面覆盖。本书各个章节之间也保持着一定的独立性,如果你只对特定章节的技术感兴趣,也可以直接跳到对应内容阅读。不论你关注的是Facebook、Twitter、LinkedIn、Google+、GitHub、邮箱、网页还是语义网,本书都可以传授给你爬取数据、分析数据以及展示数据的技术。特别值得一提的是,本书配套的代码借助了IPython Notebook,让你可以快速配置自己的开发环境并享受交互式学习的乐趣。强烈建议你配合书中的虚拟机来学习!
本书的翻译由苏统华全程组织。魏通、赵逸雪、王烁行以及刘智月协助苏统华完成了全书的译文初稿。其中本书的前言、前四章的初稿由魏通、王烁行和苏统华共同完成,接着的第5章到第7章的初稿由赵逸雪和苏统华共同翻译,第8章的初稿由刘智月和苏统华完成,第9章的初稿由赵逸雪和苏统华协作完成,最后的附录由王烁行和苏统华共同翻译。在初稿的基础上,翻译团队进行了交叉核对,并最终由苏统华统一定稿。
本书从启动翻译到进入出版流程历时整整一年,在此过程中,得到很多同事、朋友和编辑团队的热心帮助,在此表达我们深深的谢意。另外,本书的翻译还得到了多个项目的资助,在此一并致谢。国家自然科学基金(资助号:61203260)、黑龙江省科研启动基金(资助号:LBH-Q13066)、哈尔滨工业大学科研创新基金(资助号:HITNSRIF2015083)对本书的翻译提供了部分资助。最后,黑龙江省教育厅高等教育教学改革项目(资助号:JG2013010224)、哈尔滨工业大学研究生教育教学改革研究项目(资助号:JCJS-201309)也对本书的翻译提供了大力支持。
本书涉及的技术较广,鉴于译者水平有限,译文中难免存在一些问题,真诚地希望读者朋友将你的意见发到译者邮箱 tonghuasu@gmail.com。
苏统华
哈尔滨工业大学软件学院
2014年10月20日

图书目录

前言 1
第一部分 社交网络导引
序幕 13
第1章 挖掘Twitter:探索热门话题、发现人们的谈论内容等 15
1.1 概述 15
1.2 Twitter风靡一时的原因 16
1.3 探索Twitter API 18
1.4 分析140字的推文 33
1.5 本章小结 47
1.6 推荐练习 48
1.7 在线资源 48
第2章 挖掘Facebook:分析粉丝页面、查看好友关系等 50
2.1 概述 51
2.2 探索Facebook的社交图谱API 51
2.3 分析社交图谱联系 62
2.4 本章小结 85
2.5 推荐练习 86
2.6 在线资源 86
第3章 挖掘LinkedIn:分组职位、聚类同行等 88
3.1 概述 89
3.2 探索LinkedIn API 89
3.3 数据聚类速成 94
3.4 本章小结 124
3.5 推荐练习 125
3.6 在线资源 126
第4章 挖掘Google+:计算文档相似度、提取搭配等 127
4.1 概述 128
4.2 探索Google+ API 128
4.3 TF-IDF简介 138
4.4 用TF-IDF查询人类语言数据 145
4.5 本章小结 164
4.6 推荐练习 165
4.7 在线资源 165
第5章 挖掘网页:使用自然语言处理理解人类语言、总结博客内容等 167
5.1 概述 168
5.2 抓取、解析、爬取网页 168
5.3 通过解码语法来探索语义 174
5.4 以实体为中心的分析:范式转换 192
5.5 人类语言数据处理分析的质量 200
5.6 本章小结 203
5.7 推荐练习 203
5.8 在线资源 204
第6章 挖掘邮箱:分析谁和谁说什么以及说的频率等 206
6.1 概述 207
6.2 获取和处理邮件语料库 207
6.3 分析Enron语料库 225
6.4 探索和可视化时序趋势 241
6.5 分析你自己的邮件数据 244
6.6 本章小结 250
6.7 推荐练习 251
6.8 在线资源 251
第7章 挖掘GitHub:检查软件协同习惯、构建兴趣图谱等 253
7.1 概述 254
7.2 探索GitHub的API 254
7.3 使用属性图为数据建模 260
7.4 分析GitHub兴趣图谱 264
7.5 本章小结 286
7.6 推荐练习 287
7.7 在线资源 287
第8章 挖掘带标记语义网:提取微格式、推断资源描述框架等 289
8.1 概述 290
8.2 微格式:易于实现的元数据 290
8.3 从语义标记过渡到语义网:一个小插曲 304
8.4 语义网:发展中的变革 304
8.5 本章小结 310
8.6 推荐的练习 311
8.7 在线资源 311
第二部分 Twitter实用指南
第9章 Twitter实用指南 317
9.1 访问Twitter的API(开发目的) 318
9.2 使用OAuth访问Twitter的API(产品目的) 319
9.3 探索流行话题 323
9.4 查找推文 324
9.5 构造方便的函数调用 325
9.6 使用文本文件存储JSON数据 326
9.7 使用MongoDB存储和访问JSON数据 327
9.8 使用信息流API对Twitter数据管道抽样 329
9.9 采集时序数据 330
9.10 提取推文实体 332
9.11 特定的推文范围内查找最流行的推文 333
9.12 特定的推文范围内查找最流行的推文实体 335
9.13 对频率分析制表 336
9.14 查找转推了状态的用户 337
9.15 提取转推的属性 339
9.16 创建健壮的Twitter请求 340
9.17 获取用户个人资料信息 343
9.18 从任意的文本中提取推文实体 344
9.19 获得用户所有的好友和关注者 345
9.20 分析用户的好友和关注者 347
9.21 获取用户的推文 348
9.22 爬取好友关系图 350
9.23 分析推文内容 351
9.24 提取链接目标摘要 353
9.25 分析用户收藏的推文 356
9.26 本章小结 357
9.27 推荐练习 358
9.28 在线资源 359
第三部分 附录
附录A 关于本书虚拟机体验的信息 363
附录B OAuth入门 364
附录C Python和IPython Notebook的使用技巧 368

教学资源推荐
作者: 杨佩理 周洪斌
作者: (法)Stephane Mallat 等著 巴黎综合理工大学
作者: (美)Frank R.Giordano  William P.Fox  Steven B. Horton  Maurice D.Weir著
作者: 朱鸣华 等编著
参考读物推荐
作者: Tony Roame
作者: (美)Scott E. Donaldson  Stanley G. Siegel 著
作者: [法]盖伊·安德烈·博伊(Guy André Boy) 著
作者: (美)Maksim Tsvetovat Alexander Kouznetsov 著