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