読者です 読者をやめる 読者になる 読者になる

AbyssLukeのガイドライン(Maybe archived)

はてダから移転。多分更新しないかもしれない。

ガーラ湯沢(bot)、更新。

twitter bot PHP 一言

d:id:abyssluke:20090728:1248771807でちらっと触れた、自分のアカウント(@abyssluke)のホームタイムラインをチェックし反応するワードがあれば「○○○と聞いて(ガラッ」と自分のアカウントにpostするbot
「AbyssLuke専用がらったー(テイルズ仕様)」 「テイルズ オブ がらったー」(2010/02/11に名称変更。クライアント名の後にバージョンが入ります。別名:ガーラ湯沢)ですが、実は昨日、今日と弄ってました。

  • 1tweetに複数、反応ワードがあった場合は複数ガラッするように(Ex:「テイルズ、ヴェスペリアと聞いて(ガラッ」)
  • Yahooの日本語形態素解析により、短縮URLなどに反応するワードが含まれていた場合などの誤爆を解消。

様々な問題もありました。日本語形態素解析で「グレイセス」が「グレイ|セス」として解釈されてしまう問題もあったのでそこは何とかしてたりします。あと正しく認識させるために単語を分割させるとか(Ex:「テイルズオブヴェスペリア」のようにスペース無しで来た場合、Yahooに投げる前に「テイルズ オブ ヴェスペリア」のようにスペースを挿入)

動作の仕組み

  1. OAuth認証で@abysslukeのhome_timelineを取得する。
  2. tweetの中に反応ワードがあるかチェックする。ただしストップワードが含まれる場合や自分の発言の場合は次のtweetをチェックする。
  3. Yahoo!の日本語形態素解析にtweetを解析してもらう。
  4. 抽出した名詞リストの中に反応ワードがあるかチェックする。マッチした場合はガラッリストに入れる。
    • "グレイセス"などは2つに分割されてしまうため、例えば"グレイ"と"セス"があった場合に「グレイセス」としてガラッする(「グレイ」が先にマッチしたあとに「セス」がマッチすればOK)。
  5. マッチしている場合はOAuth認証でガラッpostする。
  6. すべてのtweetをチェックするまで2〜5を繰り返す。

プライバシーとか動作環境とかその他

  • マッチしたtweetやガラッpostした事実等をログファイル/データベースに記録していますが、外部からは参照できない場所(wwwフォルダ外)に保存しているため、@abyssluke以外は見られません。
  • さくらのレンタルサーバ上で動作。Mac動作中は5分間隔、それ以外は不定期に動作中です。 GAE-Cronで約3分間隔で動作中です。
  • AbyssLuke専用がらったー(テイルズ仕様) テイルズ オブ がらったーはYahoo! JapanのWebサービスを利用しています。


Web Services by Yahoo! JAPAN