夏の休日、早起きして北海道開発オフに参加してきました。
札幌市内の有志が集まって、二年半前に始めた勉強会もいつの間にか18回。
これまで参加してくれた多くの皆さんありがとうございます。
さて、→Pia-no-jaC←のボットもだいたいイメージした形になったので、今回から違う開発をしてみようと思いました。
「Twitterのステータスや発言から、トレーディングカードのようなものを生成するサービスを作れないか?」
というものです。
既出かもしれませんが勉強目的なのでキニシナイ。
開発オフ中に作ったもの
私の話は長いので結論から。構想を練りながらざっくり作ってみたのがこれです。
公開されているTwitterIDを入力すると、直近200件の発言からそのユーザーの特徴を算出します。
適当にIDを入れて遊んでみてください。今の段階でもけっこう面白いです。
仕様を考えてみる
トレーディングカードというと、こんな特徴があったりします。
- 名前と姿
- レベル
- 属性(枠の色、隅に表示するアイコンに影響する)
- レア度(高いと背景がホログラムだったりする)
- 能力値
- 使える技
Twitterで属性といえばいわゆる「話題」です。
IT関連であったりビジネスであったり、恋愛やスポーツなどもあります。
Twitterで強さといえば「利用頻度」です。
一日のpost数、follow/refollow比、Reply、RTなどあります。
「多いほど強い」と定義するとボットが最強になってしまうので、総合力ってことになります。
レア度は単純にソフトバンクの孫さんなどのような、認証ユーザーやfollow/refollow比が極端な人ですかね。
実際にゲームができればいいですが、あくまでネタなのでそれらしく見せられるだけでも充分楽しそうです。
PEARはいりませんでした
PHP には「Services_Twitter」というパッケージがあります。
Twitter アプリケーションやWebサービスの構築を支援する便利なもので、午前中いっぱい使って使いこなそうとしたのですが、今回私が作ろうとしているものは公開情報でまかなえるので、そもそも認証がいりません。日に何度もアクセスしないと困るようなものでもありません。
なので、結局APIのURLを直接叩く方向で進めることにしました。
話題の傾向をどうするか
今はまだ構想段階なので、直近200postを単純にstrrpos関数で検索し、各クラスタを象徴するようなキーワードが何回ヒットしたかを数えているだけです。キーワードは今後MySQLなどで管理するつもりです。
傾向ごとに集計して、上位の傾向が「属性」ということになります。
@oikaさんからオフ中にもらった意見のように、発言時間帯なども集計できるとまた新しい属性ができそうです。
ボツ・保留など
枠のデザイン
IDをもとに、枠の細かいデザインが変わると楽しいかもしれませんよね。
最初はIDを16進数に変換して枠のカラーコードに…と思ったのですが、処理が難しそうだし、汚い色などが出そうでちょっと嫌です。
技
笑えるネタを考えるのが難しそうなので保留。
post時の感情
最初は簡単な言葉などで「発言の喜怒哀楽」を集計しようとしたのですが、「怒」が少ないのはわかりきってますし、凹みがちの人が「哀」と認定されたらかわいそうです;;
私も凹みがちなので嫌です;;
集計方法
ちゃんと正規表現検索を使った方がいいのかもしれません。
「キーワードがあるかどうか」を調べられればいいわけで、処理が重くならないかがいちばんの心配事です。
キーワードの選定
ビジネスやスポーツなどはわかりやすいのですが、アニメ・ヲタ腐女子・下ネタ・思想系のキーワードってどうすればいいんだ?などと悩んだりします。
ハッシュタグも集計対象にした方がいいな、なとど考えてます。
現時点ではここでタイムアップ。
開発オフだけのテーマのつもりなので実現するかはわかりませんが、久しぶりに仕事がらみ以外で興味を持っているのでいろいろ研究してみます。