風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

いまさらながらStreaming APIをちょっと試してみた

Tweepyで簡単に試せるみたい

PythonだとTweepyがStreaming APIをサポートしていることに気づき、試してみた。

streamig.py使用例

tweepy · GitHub

習作

とりあえず、サイコロを振ってくれるbot「Diceだよ!」を作ってみた。*1
余談だが、こういうメンションに反応してリプライを返す系のbotの場合、新デザインの「固定されたツイート」として簡単なマニュアルを貼り付けておけばいいかも。


ただ、こういう応答を返すbotだと、どうしても1000ツイート/日までという制限がネックになるよな。まぁ、このbotの場合はそこまで使われるわけもないが。

他に試してみたかったことなど

リマインダー

時刻を指定してメンションとかDMしておけば、その時刻になったときに応答を返してくれるようなbotを作ってみたかった。
ネックは、1000ツイート/日。個人用としてなら十分なのだけれど、公開して使ってもらおうとすると足りなくなるのは目に見えているしな…。

  • 受信はひとつで、応答用に複数のbotを使いまわす→botの乱立は睨まれるし、(特にDMを使うような場合)フォロー関連の処理等がややこしいことになりそう。
  • アプリ連携させてその人のタイムラインにツイート→自分宛のリプライは通知してくれないので気づかなさそう。
特定キーワードを含むツイートの地域分布の調査

例えば、「ゆれ」「揺れ」等をキーワードに地震が発生した地域の調査とか、「インフルエンザ」等をキーワードに流行地域の調査とか。
ただ、これ、ツイートするときに位置情報が付加されていないと意味がないんだよね…位置情報付きのツイートって、どのくらいあるんだろう…?と思って、簡単にだけれど調べてみたところ…。
Streaming APIのstatuses/sampleを使用して、300,000件のツイートを調査。

■結果
※300,000件時(約2時間経過)

全ツイート数 日本語ツイート数 日本語の割合
300,000件 86,738件 28.913%
全ツイート数 位置情報含 割合
300,000件 5,191件 1.730%
日本語ツイート数 位置情報含 割合
86,738件 409件 0.472%

※3,000,000件時(約16時間経過)

全ツイート数 日本語ツイート数 日本語の割合
3,000,000件 532,158件 17.739%
全ツイート数 位置情報含 割合
3,000,000件 58,183件 1.939%
日本語ツイート数 位置情報含 割合
532,158件 2,237件 0.420%

※約24時間経過時

全ツイート数 日本語ツイート数 日本語の割合
4,308,000件 809,078件 18.781%
全ツイート数 位置情報含 割合
4,308,000件 83,992件 1.950%
日本語ツイート数 位置情報含 割合
809,078件 3,648件 0.451%

やはりというか、位置情報を含むツイートは少ないので、地域分布のデータとして有効なものが取れるかというと、微妙なところだろう。

*1:アイコンはフリー素材: サイコロの背景画像 2・透過pngアイコン - Kappaa CG Galleryに置かれていたフリー素材を使用させていただいた。