これで無理なら諦めて!世界一やさしいデータ分析教室

オーブンソースデータなどWeb上から入手できるデータを用いて、RとPython両方使って分析した結果を書いていきます

RからTwitter APIを叩くための基礎講座 ~認証からツイート取得まで~

テキストマイニングを気軽にやってみたい!という方は多いと思います。
そんな時に便利なのが、SNSの投稿データ。

今回はTwitter APIをRから使用して、ツイートデータを取得してみます。
本記事を踏まえて、テキストマイニングにどんどんチャレンジしていきましょう!

注意点として、ちょくちょく公式の手順が変わったりするので、もし本記事の通りやってみてうまくいかない場合は、ググってみて最新の手順を調べてください。
そしてそれをコメントやツイッターなどで教えてくれると助かります。

なお、Twitter APIの使用方法やテキストマイニングの作法については、以下の本がかなり参考になりました。
良書です!

Rによるテキストマイニング入門

Rによるテキストマイニング入門

APIを使用するためのKey等を取得

まず、Twitter APIを使うためには、

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

という4つの情報が必要なので、以下の手順で取得してください。
なお、この4つはPythonなど他の言語からAPIを叩く場合も必須です。

Twitterにログインしている状態で、https://apps.twitter.com/にアクセスしましょう。
すると、以下のような画面が出るので、「Create New App」ボタンを押してください。
f:id:Np-Ur:20170919220616p:plain

APIを使用するために、「どんなアプリに使うのー?」的なことを聞かれるので、以下みたいに入力して「Create your Twitter application」をクリックしましょう。
f:id:Np-Ur:20170919221225p:plain
一つ注意点ですが、ツイッターアカウントに電話番号を登録していないと、ここでエラーが出ます。
事前に電話番号登録しておきましょう。

その後、アプリの設定画面に飛ぶので、

  • Permissions タブをクリックして、権限を「Read, write, and direct messages」にしましょう。

f:id:Np-Ur:20170919222455p:plain

  • Key and access tokenタブをクリックして、画面下の 「Create access token」ボタンをクリックしましょう。

そうすると、先ほどの

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

4つが生成されるので、コピーしてどっかに保存しておくなどして、後から使えるようにしておきましょう。

RからTwitter APIを使用するためのライブラリをインストール

Rには、twitteR というライブラリがあるので、これを使います。

関係するパッケージもまとめて、インストールしておきましょう。

install.packages(c("twitteR", "bit64", "rjson", "DBI", "httr", "base64enc"), dependencies =  TRUE)

ライブラリの使用例

さて、必要な情報が手に入ったところで、実際にライブラリを使ってみましょう。

library(twitteR)

CONSUMERKEY = "xxxxxxxxxxxxxxxxxx"
CONSUMERSECRET = "xxxxxxxxxxxxxxxxxx"
ACCESSTOKEN = "xxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxx"
ACCESSSECRET = "xxxxxxxxxxxxxxxxxx"

options(httr_oauth_cache = TRUE)
setup_twitter_oauth(CONSUMERKEY, CONSUMERSECRET, ACCESSTOKEN, ACCESSSECRET)

上のコードを実行すると、お使いのR環境からTwitter APIを利用する準備ができました。

では、わたくしのTwitter アカウントNp-Ur (@Np_Ur_) | Twitterのツイートを取得してみましょう。

tweet_npur = userTimeline("Np_Ur_", n = 10)

はい、これで最近10件のツイートが取得できました!簡単ですね!
取得できたツイートは以下のように展開できます。

> tweet_npur
[[1]]
[1] "Np_Ur_: 気付いたら100フォロワーだ…\nアカウント作ってから3カ月でやっと100……"

[[2]]
[1] "Np_Ur_: はてブ新着のったぽい\n皆様あざます"

[[3]]
[1] "Np_Ur_: バギングとランダムフォレストについて、学校のクラスを例に説明してみました。次回実践編では、決定木、バギング、ランダムフォレストの精度比較をしてみたいと思いますのでご期待くださいませ!!\nhttps://t.co/hutmaTtCbc"

[[4]]
[1] "Np_Ur_: データ回したかったが、飲みながらやろう"

[[5]]
[1] "Np_Ur_: 体が熱燗を求めている\n本当か?僕の体よ\nこの暑い夜に本当に熱燗を飲みたいのかね"

[[6]]
[1] "Np_Ur_: Google アナリティクスで、APIからセグメントを作ることってできないのかなー…軽く調べる限り情報出てこない\nアクセス解析自動化してくれるよりも、色々使い勝手良いセグメントを自動で作ってくれたほうがありがたいかもね"

今回は、特定のユーザーを指定してツイート取得するという簡単なものでしたが、トレンドを取得したり色々できるので、興味ある方は公式サイトを見てみてください!
https://cran.r-project.org/web/packages/twitteR/twitteR.pdf

まとめ

ということで、テキストマイニングを気軽に実行するためのTwitter取得をRからやってみました。

Rから、と言っても前半のAPI Keyを取得するあたりは、どの言語でも共通です。
後半の実際に取得するあたりは、それぞれの言語で恐らく有名なライブラリがあるはずなので、「言語名 twitter api」とかで検索してみてください。

それでは皆さん!素敵なテキストマイニングライフを!!!