个性化阅读
专注于IT技术分析

Twitter数据挖掘:使用Python进行大数据分析的指南

本文概述

大数据无处不在。期。在当今时代经营成功的过程中, 无论你是否喜欢, 你都可能会涉足该业务。

无论你是要赶上时代的商人, 还是要寻找下一个项目的编码专家, 本教程都将为你简要概述什么是大数据。你将了解它如何适用于你, 以及如何通过Twitter API和Python快速入门。

Python阅读Twitter

什么是大数据?

大数据正好听起来像是大量数据。单单一个数据点并不能给你太多洞察力。但是, 数TB的数据与复杂的数学模型和强大的计算能力结合在一起, 可以创造出人类无法产生的见解。大数据分析为企业提供的价值是无形的, 并且每天都超过人类的能力。

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

例如, 假设你经营Facebook, 并希望使用Messenger数据来提供有关如何更好地向受众进行广告宣传的见解。 Messenger每月有12亿活跃用户。在这种情况下, 大数据就是用户之间的对话。如果你要单独阅读每个用户的对话, 则可以很好地了解他们的喜好, 并可以向他们推荐产品。使用称为自然语言处理(NLP)的机器学习技术, 你可以大规模地完成此过程, 整个过程可以自动化并由机器决定。

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

为什么使用Twitter数据?

Twitter是数据的金矿。与其他社交平台不同, 几乎每个用户的推文都是完全公开且可拖动的。如果你要获取大量数据以进行分析, 那么这是一个巨大的优势。 Twitter数据也很具体。 Twitter的API允许你执行复杂的查询, 例如在过去二十分钟内拉出有关某个主题的每条推文, 或拉出某位用户的未转发的推文。

一个简单的应用可能是分析你的公司如何在公众中受到欢迎。你可以收集提及你公司(或你喜欢的任何术语)的最后2, 000条推文, 然后对它运行情绪分析算法。

我们还可以定位专门居住在某个位置的用户, 这就是空间数据。此方法的另一个应用程序是绘制全球范围内最常提及你的公司的区域。

如你所见, Twitter数据可以为通向广大公众的见解以及他们如何获得话题提供很大的门户。结合Twitter API的开放性和慷慨的速率限制, 可以产生有力的结果。

工具概述

这些示例将使用Python 2.7。理想情况下, 你应该具有IDE来编写此代码。我将使用PyCharm-Community Edition。

要连接到Twitter的API, 我们将使用一个名为Tweepy的Python库, 稍后将进行安装。

入门

Twitter开发人员帐户

为了使用Twitter的API, 我们必须在Twitter应用程序网站上创建一个开发人员帐户。

  1. 登录或在https://apps.twitter.com/上创建一个Twitter帐户。
  2. 创建一个新应用(右上角的按钮)
  3. 在应用程序创建页面上填写唯一名称, 网站名称(如果没有, 请使用占位符网站)和项目说明。接受条款和条件并进入下一页。
  4. 创建项目后, 单击”密钥和访问令牌”选项卡。现在, 你应该能够看到你的消费者秘密和消费者密钥。
  5. 你还需要一对访问令牌。向下滚动并请求这些令牌。页面应该刷新, 并且你现在应该具有访问令牌和访问令牌密钥。

稍后我们将需要所有这些, 因此请确保将此标签保持打开状态。

安装Tweepy

Tweepy是访问Twitter API的出色工具。它支持Python 2.6、2.7、3.3、3.4、3.5和3.6。有两种不同的方法来安装Tweepy。最简单的方法是使用点子。

使用点

只需在终端中输入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对象了。

# Creating the authentication object
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
# Setting your access token and secret
auth.set_access_token(access_token, access_token_secret)
# Creating the API object while passing in auth information
api = tweepy.API(auth) 

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

示例1:你的时间轴

在此示例中, 我们将从你的Twitter feed中获取十条最新的推文。我们将使用API​​对象的home_timeline()函数来完成此操作。然后, 我们可以将结果存储在变量中, 并循环遍历以打印结果。

# Using the API object to get tweets from your timeline, and storing it in a variable called public_tweets
public_tweets = api.home_timeline()
# foreach through all tweets pulled
for tweet in public_tweets:
   # printing the text stored inside the tweet object
   print tweet.text

结果应该看起来像一堆随机的推文, 其后是该推文本身的URL。

在终端上鸣叫内容和链接

跟随推文链接通常会带你进入推文本身。遵循第一条推文中的链接将为我们带来以下结果:

鸣叫上一张图片的第一个链接链接到

请注意, 如果你是通过终端而不是PyCharm之类的IDE运行此程序, 则在尝试打印推文文本时可能会遇到一些格式问题。

结果背后的JSON

在上面的示例中, 我们使用tweet.text从每个tweet打印了文本。要引用每个tweet对象的特定属性, 我们必须查看Twitter API返回的JSON。

你从Twitter API收到的结果为JSON格式, 并附带了大量信息。为简单起见, 本教程主要关注每个推特的”文本”属性, 以及有关推特(创建推特的用户)的信息。对于上面的示例, 你可以在此处看到整个返回的JSON对象。

快速浏览一下推文必须提供的一些属性。

Twitter API返回的一些属性

如果要查找创建鸣叫的日期, 则可以使用打印tweet.created_at进行查询。

你还可以看到每个tweet对象都带有有关高音扬声器的信息。

Twitter API返回的用户属性

要获取高音扬声器的”名称”和”位置”属性, 可以运行print tweet.user.screen_name和print tweet.user.location。

请注意, 如果你的应用程序依赖于空间数据, 这些属性将非常有用。

示例2:来自特定用户的推文

在此示例中, 我们仅从我们选择的用户那里获取最新的20条推文。

首先, 我们将检查Tweepy文档, 以了解是否存在类似的功能。经过一些研究, 我们发现user_timeline()函数正是我们想要的。

用户时间轴命令的文档

我们可以看到user_timeline()函数具有一些可以使用的有用参数, 特别是id(用户的ID)和count(我们要提取的推文数量)。请注意, 由于Twitter的速率限制, 每个查询我们只能拉出有限数量的推文。

让我们尝试从Twitter帐户@NyTimes提取最新的20条推文。

撰写本文时,@ NyTimes Twitter帐户的内容

我们可以创建变量来存储我们要提取的推文数量(计数), 以及我们要从(名称)提取推文的用户。然后, 我们可以使用这两个参数调用user_timeline函数。以下是更新后的代码(请注意, 你应该将身份验证和API对象创建放在代码的顶部)。

# Creating the API object while passing in auth information
api = tweepy.API(auth)

# The Twitter user who we want to get tweets from
name = "nytimes"
# Number of tweets to pull
tweetCount = 20

# Calling the user_timeline function with our parameters
results = api.user_timeline(id=name, count=tweetCount)

# foreach through all tweets pulled
for tweet in results:
   # printing the text stored inside the tweet object
   print tweet.text

我们的结果应如下所示:

@NyTimes的用户时间线的内容

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

  • 对特定用户进行运行分析, 以及他们如何与世界互动
  • 查找Twitter影响者并分析其关注者趋势和互动
  • 监视用户关注者中的更改

示例3:使用关键字查找推文

让我们做最后一个例子:获取包含关键字的最新推文。如果你想监视Twitter世界中特别提到的主题, 甚至想知道你的公司如何被提及, 这可能非常有用。假设我们想看看Twitter如何提及srcmini。

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

搜索命令的文档

这里最重要的参数是q-查询参数, 这是我们要搜索的关键字。

我们还可以设置language参数, 这样就不会从不需要的语言中获得任何推文。我们只返回英语(” en”)推文。

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

# Creating the API object while passing in auth information
api = tweepy.API(auth)

# The search term you want to find
query = "srcmini"
# Language code (follows ISO 639-1 standards)
language = "en"

# Calling the user_timeline function with our parameters
results = api.search(q=query, lang=language)

# foreach through all tweets pulled
for tweet in results:
   # printing the text stored inside the tweet object
   print tweet.user.screen_name, "Tweeted:", tweet.text

我们的结果应如下所示:

查询srcmini时的搜索结果

以下是一些可以使用此信息的实用方法:

  • 创建一个空间图, 以了解你的公司在全球最受关注的地方
  • 对推文进行情绪分析, 以了解贵公司的总体看法是正面还是负面
  • 创建推特有关你的公司或产品的最受欢迎用户的社交图

我们可以在以后的文章中介绍其中一些主题。

总结

Twitter的API在数据挖掘应用程序中非常有用, 并且可以提供广泛的见解。如果你对Twitter API和大数据分析感兴趣, 那么我建议你阅读有关Twitter API, Tweepy和Twitter的限速指南的更多信息。

我们仅介绍了访问和提取的基础知识。 Twitter的API可用于处理非常复杂的大数据问题, 涉及人, 趋势和社交图谱, 这些问题太过复杂, 以至于人类的思维无法单独掌握。

赞(0)
未经允许不得转载:srcmini » Twitter数据挖掘:使用Python进行大数据分析的指南

评论 抢沙发

评论前必须登录!