作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
安东尼·西斯蒂利的头像

Anthony Sistilli

有四年的工作经验, 安东尼是一名工程师和研究员,专门研究机器学习和人工智能.

Previously At

intuit
Share

Big data is everywhere. Period. 在今天这个时代,经营一家成功企业的过程中, 不管你喜不喜欢,你都有可能遇到它.

无论你是一个试图赶上时代的商人还是一个寻找下一个项目的编码天才, 本教程将简要介绍什么是大数据. 你将了解它如何适用于你, 以及如何通过Twitter API和Python快速入门.

蟒蛇阅读推特

What Is Big Data?

Big data 就像听起来的那样——大量的数据. 单独来看,单点数据并不能给你太多的洞察力. 而是tb级的数据, 结合了复杂的数学模型和强大的计算能力, 能创造人类无法创造的洞见吗. 大数据分析为企业提供的价值是无形的,每天都在超越人类的能力.

大数据分析的第一步是收集数据本身. 这就是所谓的“数据挖掘”.“数据可以来自任何地方. 大多数企业都要处理千兆字节的用户、产品和位置数据. 在本教程中,我们将探索如何使用 data mining 收集Twitter数据的技术,这可能比你想象的更有用.

For example, 假设你经营Facebook, 并希望使用Messenger数据来提供如何更好地向受众做广告的见解. Messenger has 1.2 billion 月活跃用户. 在这种情况下,大数据是用户之间的对话. 如果您要单独阅读每个用户的对话, 你就能很好地了解他们喜欢什么, 并能够相应地向他们推荐产品. 使用一种机器学习技术叫做 自然语言处理 (NLP),你可以大规模地这样做,整个过程自动化,留给机器.

这只是机器学习和大数据分析如何为你的公司增加价值的无数例子之一.

Why Twitter data?

Twitter 是数据的金矿吗. 与其他社交平台不同的是,几乎每个用户的推文都是完全公开的、可拉的. 如果你试图获得大量数据来运行分析,这是一个巨大的优势. Twitter的数据也非常具体. Twitter的API允许你这样做 complex queries 比如在过去的20分钟内拉出关于某个主题的每一条推文, 或者拉出某个用户未转发的推文.

一个简单的应用就是分析你的公司在公众中的知名度. 你可以收集最后2个,000条提到你公司的推文(或任何你喜欢的术语), 然后对其进行情感分析算法.

我们还可以针对居住在特定地点的用户, 什么是空间数据. 这种方法的另一个应用是绘制出全球范围内你的公司被提及最多的地区.

正如您所看到的,Twitter数据可以是一个大的入口 公众的见解,以及他们如何接受一个话题. That, 再加上Twitter API的开放性和慷慨的速率限制, 能产生强有力的结果.

Tools Overview

We’ll be using Python 2.这些例子有7个. 理想情况下,您应该有一个IDE来编写这些代码. I will be using PyCharm -社区版.

为了连接到Twitter的API,我们将使用一个Python库 Tweepy,我们稍后会安装它.

Getting Started

Twitter开发者账户

为了使用Twitter的API,我们必须在Twitter上创建一个开发者帐户 Twitter apps site.

  1. 登录或创建一个Twitter账户 http://apps.twitter.com/.
  2. 创建一个新应用(右上方的按钮)
    创建应用程序按钮的位置
  3. 在应用程序创建页面中填写 unique 名称,网站名称(如果没有网站,请使用占位符网站)和项目描述. 接受条款和条件,并进入下一页.
    App creation form
  4. 一旦你的项目已经创建,点击“密钥和访问令牌”选项卡. 现在您应该能够看到您的消费者秘密和消费者密钥.
    Twitter API密钥和秘密的位置
  5. 您还需要一对访问令牌. 向下滚动并请求这些令牌. 页面应该刷新,您现在应该有一个访问令牌和访问令牌秘密.
    显示访问令牌的表单

我们稍后会用到所有这些,所以请确保打开这个选项卡.

Installing Tweepy

Tweepy 是一个很好的支持访问Twitter API的工具吗. 它支持Python 2.6, 2.7, 3.3, 3.4, 3.5, and 3.6. 安装Tweepy有几种不同的方法. 最简单的方法就是使用 pip.

Using Pip

Simply type pip install tweepy into your terminal.

Using GitHub

你可以按照上面的说明去做 Tweepy的GitHub仓库. 基本步骤如下:

Git克隆http://github.com/tweepy/tweepy.git
cd tweepy
python setup.py install

您也可以在那里对任何安装问题进行故障排除.

Authenticating

现在我们已经准备好了必要的工具,我们可以开始编码了! 我们今天要构建的每个应用程序的基线都需要使用Tweepy来创建一个API对象,我们可以用它来调用函数. 为了创建API对象, however, 我们必须首先用我们的开发人员信息验证我们自己.

首先,让我们导入Tweepy并添加我们自己的身份验证信息.

import tweepy
consumer_key = " wxxxxxxxxxxxxxxxxxxxxxxxxxxx1 "
consumer_secret = " qxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "
access_token = " 9xxxxxxxx - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi "
access_token_secret = " kxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxt "

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

#创建认证对象
auth = tweepy.OAuthHandler (consumer_key consumer_secret)
#设置您的访问令牌和秘密
auth.set_access_token (access_token access_token_secret)
#在传递认证信息的同时创建API对象
api = tweepy.API(auth) 

这将是我们构建的每个应用程序的基础,所以请确保不要删除它.

例1:你的时间表

在本例中,我们将从您的Twitter提要中提取最近的10条tweet. 我们将通过使用API对象来做到这一点 home_timeline() function. 然后,我们可以将结果存储在一个变量中,并循环遍历该变量以打印结果.

#使用API对象从您的时间轴中获取tweet, 并将其存储在一个名为public_tweets的变量中
public_tweets = api.home_timeline()
# foreach查看所有推文
对于public_tweets中的tweet:
   #打印存储在tweet对象中的文本
   print tweet.text

结果应该看起来像一堆随机的tweet,后面跟着tweet本身的URL.

在终端上发布Tweet内容和链接

点击推文的链接通常会把你带到推文本身. 点击第一条tweet的链接将得到以下结果:

上一张图片的第一个链接链接到的Tweet

请注意,如果您通过终端而不是像PyCharm这样的IDE运行此程序, 在尝试打印tweet的文本时,您可能会遇到一些格式问题.

结果背后的JSON

在上面的例子中,我们使用 tweet.text. 参考每个tweet对象的具体属性, 我们必须查看Twitter API返回的JSON.

从Twitter API接收到的结果是JSON格式的, 并且附带了相当多的信息. For simplicity, 本教程主要关注每条tweet的“text”属性, 以及关于推特者(创建推文的用户)的信息. 对于上面的示例,您可以看到整个返回的JSON对象 here.

下面让我们快速了解一下推文必须提供的一些属性.

Twitter API返回的一些属性

如果您想查找tweet创建的日期,您可以使用 print tweet.created_at.

您还可以看到每个tweet对象都附带有关tweet者的信息.

Twitter API返回的用户属性

要获取推特者的“名称”和“位置”属性,可以运行 print tweet.user.screen_name and print tweet.user.location.

请注意,如果应用程序依赖于空间数据,这些属性可能非常有用.

示例2:来自特定用户的tweet

在本例中,我们将简单地从我们选择的用户那里提取最近的20条tweet.

首先,我们将检查 Tweepy文档 看看这样的函数是否存在. 经过一些研究,我们发现 user_timeline() 功能是我们要找的.

用户时间轴命令的文档

We can see that the user_timeline() 函数有一些有用的参数,我们可以使用 id (用户的ID)和 count (我们想要拉的推文数量). 请注意,由于以下原因,我们每个查询只能提取有限数量的tweet 推特的速率限制.

让我们试着从推特账户@NyTimes中提取最新的20条推文.

撰写本文时@纽约时报Twitter账户的内容

我们可以创建变量来存储我们想要提取的tweet的数量(count), 我们想要从用户(name)中获取信息. 然后我们可以用这两个参数调用user_timeline函数. 下面是更新后的代码(注意,您应该将身份验证和API对象创建放在代码的顶部).

#在传递认证信息的同时创建API对象
api = tweepy.API(auth)

#我们想要接收的Twitter用户
name = "nytimes"
#要拉的推文数量
tweetCount = 20

#用我们的参数调用user_timeline函数
results = api.user_timeline (id =名字,数= tweetCount)

# foreach查看所有推文
搜索结果中的tweet:
   #打印存储在tweet对象中的文本
   print tweet.text

我们的结果应该是这样的:

@NyTimes的用户时间轴内容

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

  • 运行对特定用户的分析,以及他们如何与外界互动
  • 寻找Twitter上有影响力的人,分析他们的追随者趋势和互动
  • 监视用户关注者的变化

示例3:使用关键字查找tweet

让我们做最后一个示例:获取包含关键字的最新tweet. 如果您想监视Twitter世界中特别提到的主题,这将非常有用, 或者甚至看看你的业务是如何被提及的. 假设我们想看看Twitter是如何提到Toptal的.

在浏览了 Tweepy文档, the search() 函数似乎是实现我们目标的最佳工具.

搜索命令的文档

这里最重要的参数是 q- query参数,即我们要搜索的关键字.

我们还可以设置语言参数,这样我们就不会从不想要的语言中获得任何tweet. 让我们只返回英文(“en”)tweet.

现在我们可以修改代码来反映我们想要做的更改. 我们首先创建变量来存储参数(查询和语言), 然后通过API对象调用该函数. 让我们在循环中打印创建tweet的用户的屏幕名.

#在传递认证信息的同时创建API对象
api = tweepy.API(auth)

#您要查找的搜索词
query = "Toptal"
#语言代码(遵循ISO 639-1标准)
language = "en"

#用我们的参数调用user_timeline函数
results = api.搜索(q =查询,lang =语言)

# foreach查看所有推文
搜索结果中的tweet:
   #打印存储在tweet对象中的文本
   print tweet.user.screen_name”,在“推特”上写道:“推特.text

我们的结果应该是这样的:

查询Toptal时的搜索结果

下面是一些实用的方法,你可以使用这些信息:

  • 创建一个关于你的公司在世界上被提及最多的地方的空间图表
  • 对推文进行情绪分析,看看对你公司的整体看法是积极的还是消极的
  • 创建一个关于你的公司或产品的最受欢迎的用户的社交图表

我们可以在以后的文章中讨论其中的一些主题.

Conclusion

Twitter的API在数据挖掘应用程序中非常有用, 并且可以提供对公众舆论的广泛洞察. 如果你对Twitter API和大数据分析有进一步的兴趣, 我鼓励你们多读一些 the Twitter API, Tweepy, and 推特的速率限制指南.

我们只讨论了基本的访问和拉动. Twitter的API可以用来解决非常复杂的大数据问题, involving people, trends, 社交图谱过于复杂,人类无法单独理解.

了解基本知识

  • 什么是数据挖掘和大数据?

    数据挖掘是从一个数据源提取大量数据并进行存储的任务. 这样的结果就是“大数据”,也就是一个地方的大量数据.

  • Twitter数据为什么有用?

    Twitter的数据是公开的、个人的、广泛的. 通过分析用户的推文和趋势,你可以从用户那里获得很多信息. 您还可以看到人们如何使用关键字和企业名称谈论特定主题.

  • 大数据分析对组织有何用处?

    对于一个组织来说,大数据分析可以提供超越人类能力的见解. 通过计算量大的分析来运行大量数据是数学模型和机器擅长的事情.

就这一主题咨询作者或专家.
Schedule a call
安东尼·西斯蒂利的头像
Anthony Sistilli

Located in Toronto, ON, Canada

Member since April 22, 2017

About the author

有四年的工作经验, 安东尼是一名工程师和研究员,专门研究机器学习和人工智能.

Toptal作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

Previously At

intuit

世界级的文章,每周发一次.

订阅意味着同意我们的 privacy policy

世界级的文章,每周发一次.

订阅意味着同意我们的 privacy policy

Toptal Developers

Join the Toptal® community.