はじめに
Twitterデータは、さまざまなトピックを調査する開発者、学生、研究者に利用されています。ハッシュタグや一連のキーワードなどを使用して、トピックに関する数日前からの会話を調査することができます。たとえば、週末のサッカーの試合に関するツイートのセンチメントを調査したい場合に、Twitterの新しい検索エンドポイントを使用すると、そのようなユースケースのデータを取得できます。このエンドポイントは、過去7日間のTwitterの会話を提供します。
このガイドでは、以下の項目について説明します。
調査対象の過去の会話を特定する
新しい検索エンドポイントに接続して認証し、ツイートを受信する
過去の会話のデータを分析する
前提条件
- 承認済み開発者アカウントを用意し、新しい開発者ポータルエクスペリエンスをアクティブにしておく必要があります。アクセスには、開発者ポータルで作成されたプロジェクトにアタッチされた開発者アプリのアクティブキーとトークンを使用します。
考慮すべき手順
手順1: 調査対象の過去の会話を特定する
最初に、調査対象の会話のタイプを特定する必要があります。たとえば、ここ数日の気候に関するツイートをすべて調査するとします。そのためには、特定のハッシュタグや単語を持つツイートを探すという方法があります。これらの単語を特定したら、これらの単語をクエリ(ルールやフィルターとも呼ばれます)に変換する必要があります。キーワードや画像などを含める/除外するルールを定義できます。また、特定のアカウント名を指定してツイートを取得することもできます。新しい検索エンドポイントでサポートされている演算子を使用して、必要なデータを取得する方法については、こちらのガイドを確認してください。
手順2: 新しい検索エンドポイントで認証して接続し、ツイートを受信する
必要なデータおよび使用する演算子が決まったら、新しい検索エンドポイントに接続できます。以下の例では、cURLを使って追加する方法を示しています。認証するには、$BEARER_TOKEN
を開発者ポータルのアプリのベアラートークンに置き換え、使用するクエリで$QUERY
を置き換えます。
curl -X GET -H "Authorization: Bearer $BEARER_TOKEN" "https://api.x.com/2/tweets/search?tweet.fields=created_at,author_id,lang&query=$QUERY"
たとえば、ハッシュタグ#Caturday
に関する画像付きのツイートをすべて取得し、リツイートを除外するクエリは以下のようになります。
“#caturday has:images -is:retweet”
よって、cURLの呼び出しは以下のようになります。
curl -X GET -H "Authorization: Bearer $BEARER_TOKEN" "https://api.x.com/labs/2/tweets/search?query=caturday%20has:images%20-is:retweet&tweet.fields=created_at,author_id,lang"
次のコードサンプルのいずれかを使って新しい検索エンドポイントに接続することもできます。
この場合、デフォルトで10個のツイートオブジェクトが返されます。受信する結果の最大数をAPI呼び出しごとに指定することもできます。そのためには、API呼び出しでmax_resultsクエリパラメーターを使用します。その他のツイートを取得するには、ページネーションを処理する必要があります。そのためには、metaというオブジェクトのnext_tokenにアクセスして接続し、使用できるnext_tokenがなくなるまで、次の10ツイート分(max_resultsパラメーターで数値を指定しない場合のデフォルト)だけ戻って追加のTweetオブジェクトを取得する必要があります。
デフォルトでは、各ツイートのIDとテキストが取得されます。ただし、ツイートのペイロードの一部として返される追加のフィールドをカスタマイズできます。クエリにフィールドと拡張を追加することで、これらの追加のフィールドをペイロードに含めることができます。
ターミナルからcURL呼び出しを行う代わりに、PostmanやInsomniaなどのRESTクライアントを使用して、新しい検索エンドポイントからデータを取得できます。Postmanコレクションを使用すると、新しい検索エンドポイントの呼び出しを素早く開始できるため便利です。
手順3: 過去の会話のデータを分析する
Twitter APIを使用すると、履歴データを簡単に調査できます。Twitterデータを使用して行う分析の例として、次のようなものがあります。
位置情報ごとのツイートのマッピング
過去のイベントに関するツイートのセンチメント分析
Twitterのインフルエンサーの特定
PythonやRなどのプログラミング言語には、Twitter APIから取得したデータを分析するためのさまざまなライブラリが用意されています。
Pythonでは、pandasやnumpyなどのライブラリを使用することによって、データ分析やラングリングを行うことができます。さらに、matplotlibのようなライブラリを使用すれば、Twitterデータを可視化することもできます。
Rでは、Tidyverse(データサイエンス用のRパッケージのコレクション)などを使用してデータ分析を行うことができます。Tidyverseの一部であるggplot2を使用すれば、Twitterデータを使ってデータを可視化できます。
上述のライブラリを使用すると、さまざまな可視化が可能です。Twitterデータを使用して構築できる、このような可視化の例を以下に示します。
ツイートのフリークエンシーを表示するためのヒストグラム
位置情報ごとにツイートを表示するためのマップ
トレンドの時系列分析
新しい検索エンドポイントを使用して自分のツイートのセンチメントを分析する方法については、こちらのサンプルアプリを確認してください。
次の手順
- 最新の検索エンドポイントの詳細を確認する。
- クイックスタートガイドを使って構築を開始する。
- APIリファレンスを確認して、利用可能なものを調べる。
- 検索クエリの構築に関する詳細を確認する。
- 他のチュートリアルを読んでアイデアを得る。