Twitterデータマイニング:Pythonを使用したビッグデータ分析のガイド

公開: 2022-03-11

ビッグデータはいたるところにあります。 限目。 今日の時代にビジネスを成功させる過程で、あなたはそれが好きかどうかにかかわらず、それに遭遇する可能性があります。

あなたが時代に追いつくことを試みているビジネスマンであろうと、彼らの次のプロジェクトを探しているコーディングの天才であろうと、このチュートリアルはあなたにビッグデータが何であるかについての簡単な概要を与えます。 それがどのように自分に適用できるか、そしてTwitterAPIとPythonを使ってすばやく始める方法を学びます。

Twitterを読んでいるPythonヘビ

ビッグデータとは?

ビッグデータはまさにそのように聞こえます—大量のデータです。 単独では、データの単一のポイントはあなたに多くの洞察を与えることができません。 しかし、テラバイトのデータを複雑な数学的モデルと膨大な計算能力と組み合わせると、人間が生成できない洞察を生み出すことができます。 ビッグデータ分析がビジネスに提供する価値は無形であり、毎日人間の能力を超えています。

ビッグデータ分析への最初のステップは、データ自体を収集することです。 これは「データマイニング」として知られています。 データはどこからでも取得できます。 ほとんどの企業は、ギガバイトのユーザー、製品、および場所のデータを扱います。 このチュートリアルでは、データマイニング技術を使用してTwitterデータを収集する方法を探ります。これは、想像以上に役立つ場合があります。

たとえば、Facebookを運営していて、メッセンジャーデータを使用して、オーディエンスにより良い広告を出す方法についての洞察を提供したいとします。 メッセンジャーの月間アクティブユーザー数は12億人です。 この場合、ビッグデータはユーザー間の会話です。 各ユーザーの会話を個別に読むと、ユーザーの好みをよく理解し、それに応じて商品を推薦することができます。 自然言語処理(NLP)と呼ばれる機械学習技術を使用すると、プロセス全体を自動化して機械に任せることで、これを大規模に行うことができます。

これは、機械学習とビッグデータ分析が企業にどのように価値を付加できるかを示す数え切れないほどの例の1つにすぎません。

なぜTwitterデータなのか?

Twitterはデータの宝庫です。 他のソーシャルプラットフォームとは異なり、ほとんどすべてのユーザーのツイートは完全に公開されており、プル可能です。 これは、分析を実行するために大量のデータを取得しようとしている場合に大きなプラスになります。 Twitterのデータもかなり具体的です。 TwitterのAPIを使用すると、過去20分以内に特定のトピックに関するすべてのツイートをプルしたり、特定のユーザーのリツイートされていないツイートをプルしたりするなど、複雑なクエリを実行できます。

これの簡単なアプリケーションは、あなたの会社が一般大衆にどのように受け入れられているかを分析することかもしれません。 あなたの会社(またはあなたが好きな用語)に言及している最後の2,000のツイートを収集し、それに対して感情分析アルゴリズムを実行することができます。

また、空間データと呼ばれる特定の場所に特に住んでいるユーザーをターゲットにすることもできます。 これの別のアプリケーションは、あなたの会社が最も言及されている地球上のエリアをマッピングすることかもしれません。

ご覧のとおり、Twitterデータは、一般の人々の洞察と、彼らがトピックをどのように受け取るかについての大きな扉となる可能性があります。 これは、TwitterのAPIのオープン性と寛大なレート制限と相まって、強力な結果を生み出すことができます。

ツールの概要

これらの例では、Python2.7を使用します。 理想的には、このコードを書き込むためのIDEが必要です。私はPyCharm-CommunityEditionを使用します。

TwitterのAPIに接続するために、TweepyというPythonライブラリを使用します。これを少しインストールします。

入門

Twitter開発者アカウント

TwitterのAPIを使用するには、Twitterアプリサイトで開発者アカウントを作成する必要があります。

  1. ログインするか、https://apps.twitter.com/でTwitterアカウントを作成してください。
  2. 新しいアプリを作成します(右上のボタン)
    アプリを作成するためのボタンの場所
  3. アプリ作成ページに、一意の名前、Webサイト名(プレースホルダーWebサイトがない場合は使用します)、およびプロジェクトの説明を入力します。 利用規約に同意し、次のページに進みます。
    アプリ作成フォーム
  4. プロジェクトが作成されたら、[キーとアクセストークン]タブをクリックします。 これで、コンシューマーシークレットとコンシューマーキーを確認できるはずです。
    TwitterAPIキーとシークレットの場所
  5. また、アクセストークンのペアも必要です。 下にスクロールして、それらのトークンをリクエストします。 ページが更新され、アクセストークンとアクセストークンシークレットが作成されます。
    アクセストークンを示すフォーム

これらはすべて後で必要になるため、このタブを開いたままにしてください。

Tweepyのインストール

Tweepyは、TwitterAPIにアクセスするための優れたサポートツールです。 Python 2.6、2.7、3.3、3.4、3.5、および3.6をサポートします。 Tweepyをインストールするには、いくつかの方法があります。 最も簡単な方法は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オブジェクトを作成します。

 # 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を使用して各ツイートのテキストを印刷しました。 各ツイートオブジェクトの特定の属性を参照するには、TwitterAPIによって返されるJSONを確認する必要があります。

Twitter APIから受け取る結果はJSON形式であり、かなりの量の情報が添付されています。 簡単にするために、このチュートリアルでは、主に各ツイートの「テキスト」属性と、ツイーター(ツイートを作成したユーザー)に関する情報に焦点を当てています。 上記のサンプルでは、​​返されたJSONオブジェクト全体をここで確認できます。

ツイートが提供しなければならないいくつかの属性を簡単に見てみましょう。

TwitterAPIによって返される属性の一部

ツイートが作成された日付を知りたい場合は、 print tweet.created_atを使用してクエリを実行します。

また、各ツイートオブジェクトにはツイーターに関する情報が含まれていることがわかります。

TwitterAPIによって返されるユーザー属性

ツイーターの「名前」と「場所」の属性を取得するには、 print tweet.user.screen_nameprint tweet.user.locationを実行します。

アプリケーションが空間データに依存している場合、これらの属性は非常に役立つ可能性があることに注意してください。

例2:特定のユーザーからのツイート

この例では、選択したユーザーから最新の20件のツイートを取得します。

まず、Tweepyのドキュメントを調べて、そのような関数が存在するかどうかを確認します。 少し調べてみると、 user_timeline()関数が私たちが探しているものであることがわかりました。

ユーザータイムラインコマンドのドキュメント

user_timeline()関数には、使用できるいくつかの便利なパラメーター、具体的にはid (ユーザーのID)とcount (プルしたいツイートの量)があることがわかります。 Twitterのレート制限により、クエリごとに取得できるツイートの数は限られていることに注意してください。

Twitterアカウント@NyTimesから最新の20件のツイートを取得してみましょう。

執筆時点での@NyTimesTwitterアカウントの内容

プルしたいツイートの量(カウント)と、それらをプルしたいユーザー(名前)を格納する変数を作成できます。 次に、これら2つのパラメーターを使用して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:キーワードを使用してツイートを検索する

最後の例を1つ実行してみましょう。キーワードを含む最新のツイートを取得します。 これは、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を掘り下げる