2012年1月29日日曜日

メカウーサー(twitter bot)誕生秘話(1)

秘話というほどではないのですが、メカウーサー自体のいきさつとかを解説したページって、そういえばないなぁ、、、と思ったので、これから2回くらいに分けてメカウーサーの誕生のいきさつと、歴代のバージョンについての簡単な技術解説をしたいと思います。

第1回目はメカウーサー誕生のいきさつです。

皆さんは多分メカウーサーを知っていると思いますので、「うーさーのその日暮らし   http://www.saturn.dti.ne.jp/~wooser/」というサイトはもうご存知だと思いますが、自分はかつて(そして今でも)そのサイトのにわかファンでしてw このサイト、宵越しのログは持たない方針でログが無いので自分で毎回ちまちまと更新ごとにフォルダに保存、フォルダに保存、しておりました。

そんなある日(恐らく2007年の12月頃)うーさーさんがサイトで

 「誰かこの子に暖かい毛布とボットを」

的な発言をされて、ボット欲しいとおっしゃっていたのを目にして、

 「じゃぁ2週間くらいでサクっと作ってみよう」

と自分のところにあるログをかき集めて文章の生成系を作成したのが1月から2月
くらいでしょうか。それが初代のメカウーサーになります。
ただ、その時は軽い遊びのノリでそのまま公開しちゃえばいいやと思っていました。

うーさーさんから大変興味深いとのメールを頂きました。
ただ、まだimproveできる余地があるとのことで、3月の始めの公開まで次の改善を行いました。具体的にはkimrinがプログラムを変えて生成ログをうーさーさんにお渡しし、うーさーさんが改善点を指摘する、kimrinが直すというスタイルでした。

 ・コーパス(言語資料)はうーさーさんが新たに書き下ろす(!)
 ・読点のバランスや文の長さについて見直す(主にうーさーさんの観点から)
 ・文章生成系を改良する(kimrin)

その結果、晴れて2008年3月3日に最初のツイートをすることができました!
(実際には3月2日の18時から3時間ごとに更新を掛けるように設定しました)

実はこの時ライバルとして目指していたのは今はR.I.P.されているkyoujinさんでした。
更新頻度などはうーさーさんと相談して、3時間ごとに、とこの時決めました。

結果としてうーさーさんには多大なるコーパス書き直し作業が発生しました。
作者としては嬉しい反面心配する毎日でした。
最終的には追加したtwitterログなど含め、約1MBのテキストコーパスが完成しました。
これが現在のメカウーサーを支えるメカウーサーコーパスとなります。
(うーさーさん、多謝です!)

開発はWindows上でPythonを使って行いました。
MeCabを使い形態素解析をして言語統計情報を作る部分を作成して、
そこから得られる情報を基に3時間に一回ツイートをする部分を作成しました。
ただWindows上で定期ジョブの管理をするのがやや難しいなどの点から、
その後はMac Mini上で運用するようになりました。


多分メカウーサーを知っている方は「うーさーさんがログをぽーんと渡して、kimrinさんがエンジン繋げただけで出来あがったのでは」とお思いになるかもしれませんが、
実際はうーさーさんとkimrinの共同作業がそれなりの量あったことを忘れないでいただけたらと思います。

その後もメカウーサーは改良を続け、現在ではCS5というバージョンを運用しています。
次回はその文章生成エンジンについて、簡単にお話したいと思います(文責:kimrin)。



0 件のコメント:

コメントを投稿