Twitter Search APIとYahooキーフレーズ抽出APIを使って,いまどんなものが買われているのかを調べてみる

  • 投稿日:
  • by
  • カテゴリ:

なにかと話題のTwitter。APIもいろいろ公開されていて,自分もなにか作ってみたいと思っていました。

巷には凝ったサイトがいろいろあるけど,最初からそれを目指すのは無理!ということで,
練習としてTwitter Search APIを使ってTwitterのつぶやきに現れるユーザーが買っているものを抽出して表示するページを作ってみました。
その名も「買ったったー」。
「買ったもの」の抽出にはYahooキーフレーズ抽出APIを利用しています。

手順の概略

1.Twitter Search APIで「買った」「ゲット」「購入」を含んでいるつぶやきを取得

2.正規表現を使ってURLや@id,ハッシュタグなどを除去

3.つぶやきを数個(現在は10個ずつに設定)ずつ結合 (雑音情報の軽減のため)

4.Yahooキーフレーズ抽出APIを使ってキーフレーズを抽出

5.結果を静的HTMLに書き出し

上記の手順をcronを使って定期的に実行

参考ページ
PHPで Twitterの Search APIを使って検索する例|floatingdays

テキスト解析 - キーフレーズ抽出|Yahoo!デベロッパーネットワーク


データの表示形式


データの表示形式について,最初はタグクラウドのように1行に何個も抽出されたキーフレーズが並ぶという形式を考えました。
しかし,実際やってみると,1行に複数並べるよりは,1行に1つずつ表示したほうが見やすいと感じました。
現段階ではキーフレーズに「重み」情報がついているわけでもないので,たくさんの単語が同じ大きさで並ぶというのは視認性があまりよくないのかもしれません。
そこで,キーフレーズごとに改行して表示という形式に改めました。

ただし,その副作用として今度は「ページの右側が大きく空いてとてもさびしい」という状況が発生しました。
もともとデザインにはこだわっていないのですが,それにしてもちょっと殺風景すぎるなあと。

そこで,抽出されたキーフレーズを検索することもあるかもしれない?ということでamazonのサーチウィジェットを貼り付けました。
スクロールとともに移動する仕組みはCALM-WEB.COMのm_script.jsを利用させていただいております。うまく移動しない場合は一度ウィンドウ内のどこかをクリックすると動くようになるようです。

もっとも,amazonでそのまま検索して出てくるようなフレーズはあまり抽出されてこないんですよね(笑)
googleの検索を置いたほうが実用的かも?ただ,文字情報中心なのでメインであるキーフレーズの一覧が目立たなくなってしまうかもしれません。

参考ページ:CALM-WEB.COM


検索語の選定理由


どうして「買った」という言葉に注目したかというと,以前からTwitterの検索機能を使って「買った」とか「食べ(た)」「読んだ」「見た」などの動詞を使って検索するのが面白いと思っていました。
しかし,「食べた」は「パスタなう」など,「なう」で置き換えられてしまいますし,「読んだ」は本だけではなく新聞やWEB上の記事など対象が広がりすぎる傾向があります(それも含めて調べることも意味はあるとは思いますが)。
また,「見た」もテレビなどの視聴は「なう」が使われてしまい,しかも流行っているものほどその傾向が強いように思います。
これらに比べて「買った」は本当に買ったというつぶやきがリストアップされる率が高く,「ゲット」「購入」をカバーすればそれ以外に置き換えられることもあまりないと感じていました。(ただし,「購入」には広告も多いですが)。
そこで,Twitter Search APIを使ったプログラミングの最初の練習として,「買ったもの」を抽出するものを作成することにしました。


感想


テスト段階も含めてまだ2,3日動かしただけですが,その中で感じたこと。

思った以上に結果がかぶらない
正午付近では食べ物に関するフレーズが増えるといったような傾向はあるものの,同じフレーズがヒットすることはあまりない

1度に100個のつぶやきしか取得していないので,その中でかぶらないのは当然な面もあるのですが,時間を置いてみても同じものはあまり出てきません。
(時間が近いと前と同じつぶやきを拾っているらしい挙動でかぶるということはあります。)
現在はログをとっていないですが,ログを記録して週や月単位で集計するとなにかが見えてくるかもしれませんが。
その場合は表記のゆれをどう集約するかなども課題になりそう。
買われているものがTwitter上でバズるというのはとてもハードルの高いのことなのかもしれません。

-->