• Python。 大数据无处不在。在时下这个年代,不管你喜欢与否,在运营一个成功的商业的过程中都有可能会遇到它。 本教程将会简要介绍何谓大数据,无论你是尝试抓住时机的商人,抑或是寻找下一个项目的编程高手...

    原文请见Twitter Data Mining: A Guide to Big Data Analytics Using Python

    大数据无处不在。在时下这个年代,不管你喜欢与否,在运营一个成功的商业的过程中都有可能会遇到它。

    本教程将会简要介绍何谓大数据,无论你是尝试抓住时机的商人,抑或是寻找下一个项目的编程高手,你都可以学到它是如何为你所用,以及如何使用Twitter API和Python快速开始。

    何谓大数据?

    大数据就像它看起来那样——有大量的数据。单独而言,你能从单一的数据获取的洞见穷其有限。但是结合复杂数学模型以及强大计算能力的TB级数据,却能创造出人类无法制造的洞见。大数据分析提供给商业的价值是无形的,并且每天都在超越人类的能力。

    大数据分析的第一步就是要收集数据本身,也就是众所周知的“数据挖掘”。数据来自于四面八方。大部分的企业处理着GB级的数据,这些数据有用户数据、产品数据和地理位置数据。在本教程中,我们将会探索如何使用数据挖掘技术收集Twitter的数据,这可能会比你想象中的更有用。

    举个例子,假设你运营着脸书,想使用Messager数据为如何更好地向用户投放广告提供一些见解。而Messager拥有着12亿月活跃用户。在这个案例中,大数据就是用户之间的对话。假设你能逐个阅读每个用户的对话,那么就能清楚知道他们喜欢什么,从而有针对性地向他们推荐相应的产品。使用广为人知的自然语言处理(NLP)这一机器学习技术,你可以大型地实现这一点,并且整个过程自动化,一切交给机器即可。

    这仅仅是机器学习和大数据分析为公司带来价值的无数的示例中的一个。

    为什么选择Twitter数据?

    Twitter是一个数据金矿。不像其他的社交平台,几乎每个Twitter用户的微博都是完全开放并且是可拉取的。如果你想尝试获取大量的数据然后对其进行分析,这是相当有帮助的。同时,Twitter的数据也是非常具体的。它的API接口允许你进行复杂的查询,例如拉取最近20分钟内关于指定某个话题的每一条微博,或者是拉取某个用户非转发的微博。

    这里一个简单的应用就是,分析大众是怎么看待你们公司的。你可以收集提到你们公司(或者其他任何词语)的最近2,000条微博,然后对其运行情感分析算法。

    我们可以圈定具体居住在某个位置的用户,也就是所谓的空间数据。另一个应用可以是,在地球上标志出你们公司提及次数最多的地区。

    如你所见,Twitter数据是通往大众见解的一扇大门,以及他们是如何针对某个主题进行大数据分析的。这些,结合透明度和Twitter API接口慷慨的调用次数,可以产出非凡的结果。

    工具一览

    对于这些示例,我们将使用Python 2.7。理想情况下,你应该有一个编写代码的IDE。我使用的是PyCharm - 社区版

    为了连接Twitter的API接口,将会用到叫做Tweepy的类库,这个类库稍微安装一下就可以了。

    入门指南

    Twitter开发者账号

    为了使用Twitter的API接口,需要先在Twitter应用站点上创建一个开发者账号。

    • 1、登录或者在https://apps.twitter.com/
    • 2、创建一个新的应用(可点击右上角的按钮) 
      • 3、在创建应用的页面填写上唯一的名字,网站名字(如果没有可以使用默认值),和项目描述。接受协议和条款然后进入到下一个页面。
      • 4、一旦创建好了你项目,点击“Keys and Access Tokens”标签页,应该就可以看到你使用的API secret和API key了。
      • 5、你还需要一对访问凭证。可滚到下面并请求这些凭证。这时页面会进行刷新,然后就可以获得access token和access token secret了。

    稍候都要用到这些数据,所以先不要关闭这些标签。

    安装Tweepy

    Tweepy是一个超级棒的工具,它可用于访问Twitter API接口。支持Python 2.6,2.7,3.3,3.4,3.5,,和3.6。安装Tweept有好两种不同的方式,最简单的方式就是使用pip

    使用pip安装

    在你的终端上简单地输入pip install tweepy即可。

    使用Github安装

    可以按照Tweepy在Github仓库上的说明进行操作。基本的步骤如下:

    git clone https://github.com/tweepy/tweepy.git
    cd tweepy
    python setup.py install
    

    你也可以在那解决任何安装的问题。

    认证

    既然必要的工具已准备就绪,那么我们就可以开始写代码了!今天将要构建的每一个应用,其底线都是需要引用Tweepy来创建一个API对象,以便我们可以进行函数的调用。然而,要想创建这些API对象,首先必须先认证我们的开发者信息。

    首先,导入Tweepy,并添加我们自己的认证信息。

    import tweepy
    consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1"
    consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh"
    access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi"
    access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"
    

    现在是时候创建API对象了。

    # 创建认证对象
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    # 设置你的access token和access secret
    auth.set_access_token(access_token, access_token_secret)
    # 传入auth参数,创建API对象
    api = tweepy.API(auth) 
    

    这些代码是构建每一个应用的基础部分,所以确保不要删除。

    示例1:你的时间轴

    在这个示例中,我们将会从你的Twitter动态中拉取最新的微博。通过使用API对象的home_timeline()函数可以做到这一点。随后把这些结果存在某个变量中,并循环打印。

    # 使用API对象获取你的时间轴上的微博,并把结果存在一个叫做public_tweets的变量中
    public_tweets = api.home_timeline()
    # 遍历所拉取的全部微博
    for tweet in public_tweets:
       # 打印存在微博对象中的text字段
       print tweet.text
    

    输出的结果可能看起来像是一堆随机的微博,后台跟着指向微博本身的URL。

    打开指向微博的链接,通常会把你带到对应的微博那。例如,打开上面第一条微博中的链接,会看到以下这样的结果:

    注意,如果你是通过终端而不是通过像PyCharm这样的IDE来运行的话,在打印微博的text内容时有可能会遇到一些格式化的问题。

    结果背后的JSON

    在上面的示例中,我们使用tweet.text打印了每一条微博的text内容。为了参考每一个微博对象有哪些具体的属性,不得不去看一下Twitter API接口返回的JSON数据。

    从Twitter API接口接收到的结果是以JSON格式返回的,并且附有有相当多的信息。为了简单起见,本教程主要关注每一条微博的“text”属性,以及关于博主(即发布微博的用户)的信息。对于上面这个例子,你可以在这里看到整个返回的JSON对象。

    下面快速来看下微博中提供的部分属性。

    如果想找到创建微博的时间,可以使用print tweet.created_at进行查询。

    你还可以看到,每一条微博都带有博主的相关信息。

    要是想获取博主的namelocation属性,可以执行print tweet.user.screen_nameprint tweet.user.location.

    如果你的应用是基于空间数据的话,这些属性将会非常有用。

    示例2:指定某个用户的微博

    在这个示例中,我们将会拉取选中用户的最近20条微博。

    首先,查看Tweepy 文档,看下是否存在一个像这样的函数。稍微调查一番,可以发现user_timeline()函数正是我们想要的。

    可以看到,user_timeline()函数有一些能够用到的重要参数,特别是id(用户的ID)和count(待拉取的微博数量)。注意,由于Twitter的频率限制,每次查询只能拉取一定数量的微博。

    让我们来拉取Twitter账号@NyTimes的最近20条微博。

    我们可以创建变量来存放待拉取的微博数量(即count),以及待拉取的用户(即name)。然后用这两个参数调用user_timeline()函数。下面是更新后的代码(注意,在代码的顶部应该保持认证和API对象的创建)。

    # 传入认证信息,并创建API对象
    api = tweepy.API(auth)
    
    # 待拉取微博的用户
    name = "nytimes"
    # 待拉取的微博数量
    tweetCount = 20
    
    # 使用上面的参数,调用user_timeline函数
    results = api.user_timeline(id=name, count=tweetCount)
    
    # 遍历所拉取的全部微博
    for tweet in results:
       # 打印存在微博对象中的text字段
       print tweet.text
    

    输出的结果看起来像这样:

    这种类型数据的流行应用包括有:

    • 对指定的用户进行分析,分析他们是如何与世界进行互动的
    • 寻找Twitter的影响者并分析他们的粉丝的趋势和互动情况
    • 监控某个用户的粉丝的变化情况

    示例3:使用关键字查找微博

    这是最后一个示例:获取包含某个关键字的最新的微博。如果想在Twitter世界中监控某个话题,或者甚至想看下你的商业被提到的情况,这都是相当有用的。假设现在想看下Twitter谈论Toptal的情况怎样。

    翻阅完Tweept文档search()函数似乎是完成我们目标的最佳工具。

    这里最重要的参数是q——查询参数,即要查找的关键字。

    还可以设置lang参数,这样就只会取到想要的语言的微博。这里只返回英文(“en”)的微博。

    现在可以修改代码,以体现要做的改变。首先创建存放参数(query和language)的变量,然后通过API对象调用相应的函数。最后在循环中也打印了发布微博的用户的终端名称。

    # 传入认证信息,并创建API对象
    api = tweepy.API(auth)
    
    # 你想查找的关键字
    query = "Toptal"
    # 语言代码(遵循ISO 639-1标准)
    language = "en"
    
    # 使用上面的参数,调用user_timeline函数
    results = api.search(q=query, lang=language)
    
    # 遍历所拉取的全部微博
    for tweet in results:
       # 打印存在微博对象中的text字段
       print tweet.user.screen_name,"Tweeted:",tweet.text
    

    最后结果看起来像是这样:

    以下是使用这些信息的一些实用途径:

    • 创建空间图表,查看你们公司在世界哪些地方被提到最多
    • 对微博进行情感分析,看下关于你们公司的整体意见是正面还是负面
    • 创建关于发布你们公司或者产品相关微博中最热门的用户的社交图表

    在后续的文章中,会覆盖到部分这些主题。

    结论

    Twitter的API接口在数据挖掘应用中非常有用,并且关于公众的意见能提供大量的见解。如果Twitter API接口和大数据分析是你未来会感兴趣的东西,建议查看Twitter API接口TweepyTwitter的频率限制指南以获取更多信息。

    在本教程,我们只是简单地讲了基本的访问和拉取。然而,Twitter的API接口还可用来服务于错综复杂的大数据问题,涉及人,趋势,和非常复杂以致单凭人类心智无法掌控的社交图。

    译者注:本翻译旨在分享国外优秀文章,但翻译水平有限,如有不对,敬请指正,谢谢!



    展开全文
  • 互联网创业离不开数据,如果能自己做个数据爬虫,那岂不是一件很美好的事情吗? 其实自己做数据挖掘不是梦,学点Python的基本功能,5步就能让你成为一个爬虫高手!
  • Python数据挖掘实战 2019-08-21 18:43:08
    Python数据挖掘技术系列视频培训教程基于真实数据集进行案例实战,使用Python数据科学库从数据预处理开始一步步进行数据建模。对于每个案例首先进行流程解读与数据分析,建立特征工程,详细解读其中每一步原理与...
  • 不管是数据挖掘、运维、建站还是爬虫都广泛运用。Python和其他编程语言相比,具有语法清晰、开发效率高的特点。 Python往往一行代码可以实现其他语言N行代码的功能(但是某些场景执行效率不如C、Java等)。对于学习...
  •  首先推荐大家通过这两本书来入门数据挖掘这个领域,python数据挖掘这本书较容易,还花了很的篇幅来讲python基础,而python数据挖掘入门与实践则直接从实例讲起,需要读者有一定的python基础。  数据挖掘主要是...
  • 利用 Python 练习数据挖掘 2017-09-12 09:15:09
    覆盖使用Python进行数据...本文介绍那些使用Python数据挖掘实践用于发现和描述结构模式数据的工具。近些年来,Python在开发以数据为中心的应用中被用的越来越多。感谢大型科学计算社区的支持以及大大丰富的数据分析函数
  • Python数据挖掘与分析快速入门,本课程介绍使用Python进行数据分析的第一步,即不同类型的数据获取,内容涉及txt、csv、docx、xlsx、json等不同类型文件内容的读取,列表、字典、集合等在数据分析时常用的Python内置...
  • 只要能解决实际问题,用什么工具来学习数据挖掘都是无所谓,这里首推Python。那该如何利用Python来学习数据挖掘?需要掌握Python中的哪些知识? 1、Pandas库的操作 Panda是数据分析特别重要的一个库,我们要掌握...
  • Python数据分析与挖掘 2020-07-06 15:35:24
    围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: ...
  • Python进行数据挖掘(数据预处理)本博客进行数据预处理的方法总结自kaggle的几道题目: 1.HousePrices 2.Titanic 以及比较不错的几个kernels: 1....
  • 清华学霸.尹成大神.QQ77205077.Python机器学习与数据挖掘day1
  • 1、获取新浪财经实时股票数据 # ===============================================...# 9.1 新浪股票实时数据挖掘实战 by 王宇韬 # ===========================================================================...
  • Python数据挖掘工具总结 2018-03-15 10:56:41
    Python语言之所以很流行,广泛用于机器学习,数据挖掘等领域,因为它有强大的第三方库,下面我们就来做一个简单总结。 Numpy: 提供数组支持,矢量运算,以及高效的处理函数,线性代数处理等。 参考链接:...
  • Python数据挖掘入门与实践 2019-05-27 19:23:50
    本书特色 ...本书使用简单易学且拥有丰富第三方库和良好社区氛围的Python语言,由浅入深,以真实数据作为研究对象,真刀实枪地向读者介绍Python数据挖掘的实现方法。通过本书,读者将迈入数据挖掘的殿堂...
  • 本文结合代码实例待你上手python数据挖掘和机器学习技术。本文包含了五个知识点:1. 数据挖掘与机器学习技术简介 2. Python数据预处理实战 3. 常见分类算法介绍 4. 对鸢尾花进行分类案例实战 5. 分类算法的选择...
  • Python语言的崛起让大家对web、爬虫、数据分析、数据挖掘等...2019年Python数据挖掘就业前景前瞻 数据挖掘基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,高度自动化地分析企业的数据,做出归纳...
  • Python数据挖掘-文本挖掘 2017-09-21 13:27:14
    文本挖掘概要搞什么的? 从大量文本数据中,抽取出有价值的知识,并且利用这些知识更好的组织信息的过程。 目的是什么? 把文本信息转化为人们可利用的知识。 举例来说,下面的图表利用文本挖掘技术对库克iphoneX ...
  • 1、PDF批量下载 步骤: (1)模拟搜索要下载的pdf关键词,得到下载页面的内容 (2)提取出标题、链接、日期;筛选出2018-2019年的 ...这里要注意添加time.sleep()作为等待下载的时间 ...# ===========================...
  • 利用 Python 学习数据挖掘 2016-01-25 18:59:25
    覆盖使用Python进行数据挖掘查找和描述数据结构模式的实践工具。 第一节 介绍 数据挖掘是一个隐式提取以前未知的潜在有用的数据信息提取方式。它使用广泛,并且是众多应用的技术...本文介绍那些使用Python数据挖掘
  • 基于以下三个原因,选择Python作为实现数据挖掘算法的编程语言: (1) Python的语法清晰; (2) 易于操作纯文本文件; (3) 使用广泛,存在大量的开发文档。 Python具有清晰的语法结构,也被称作可执行伪...
1 2 3 4 5 ... 20
收藏数 68,064
精华内容 27,225