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

已发表: 2022-03-11

大数据无处不在。 时期。 在当今时代经营一家成功企业的过程中,无论您喜不喜欢,您都可能会遇到它。

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

Python 蛇读 Twitter

什么是大数据?

大数据正是它听起来的样子——大量数据。 单凭单点数据无法为您提供太多洞察力。 但是,TB 级的数据,加上复杂的数学模型和强大的计算能力,可以创造出人类无法产生的洞察力。 大数据分析为企业提供的价值是无形的,并且每天都在超越人类的能力。

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

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

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

为什么是推特数据?

Twitter 是数据的金矿。 与其他社交平台不同,几乎每个用户的推文都是完全公开且可拉取的。 如果您试图获取大量数据来运行分析,这是一个巨大的优势。 Twitter 数据也非常具体。 Twitter 的 API 允许您执行复杂的查询,例如拉取过去 20 分钟内关于某个主题的每条推文,或者拉取某个用户未转发的推文。

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

我们还可以针对特定居住在某个位置的用户,这就是所谓的空间数据。 另一个应用可能是绘制全球最常提及贵公司的区域。

如您所见,Twitter 数据可以成为了解公众见解以及他们如何接收主题的大门。 这与 Twitter API 的开放性和慷慨的速率限制相结合,可以产生强大的结果。

工具概述

我们将在这些示例中使用 Python 2.7。 理想情况下,您应该有一个 IDE 来编写此代码。我将使用 PyCharm - 社区版。

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

入门

Twitter 开发者帐户

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

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

我们稍后将需要所有这些,因此请确保您保持此选项卡处于打开状态。

安装 Tweepy

Tweepy 是一个非常受支持的用于访问 Twitter API 的工具。 它支持 Python 2.6、2.7、3.3、3.4、3.5 和 3.6。 有几种不同的方法可以安装 Tweepy。 最简单的方法是使用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 对象了。

 # 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 提要中提取 10 条最新的推文。 我们将通过使用 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打印了每条推文的文本。 要引用每个推文对象的特定属性,我们必须查看 Twitter API 返回的 JSON。

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

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

Twitter API 返回的一些属性

如果您想查找推文的创建日期,您可以使用print tweet.created_at进行查询。

您还可以看到每个推文对象都带有关于推文的信息。

Twitter API 返回的用户属性

要获取高音扬声器的“名称”和“位置”属性,您可以运行print tweet.user.screen_nameprint 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 是如何提到 Toptal 的。

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

搜索命令的文档

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

我们还可以设置语言参数,这样我们就不会收到来自不需要的语言的任何推文。 让我们只返回英文(“en”)推文。

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

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The search term you want to find query = "Toptal" # 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

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

查询 Toptal 时的搜索结果

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

  • 创建一个关于您的公司在全球被提及最多的地方的空间图
  • 对推文进行情绪分析,以查看贵公司的整体意见是正面还是负面
  • 创建发布关于您的公司或产品的推文的最受欢迎用户的社交图

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

结论

Twitter 的 API 在数据挖掘应用程序中非常有用,并且可以提供对公众舆论的广泛洞察。 如果您对 Twitter API 和大数据分析有进一步的兴趣,我鼓励您阅读有关 Twitter API、Tweepy 和 Twitter 的速率限制指南的更多信息。

我们只介绍了访问和拉取的基础知识。 Twitter 的 API 可用于处理非常复杂的大数据问题,包括人、趋势和社交图,这些问题过于复杂,以至于人类无法单独掌握。

相关: R 和 Gephi 中的社交网络分析:深入 Twitter