Haskell でマルコフ連鎖を用いたツイートの自動生成

元ネタ

morishin.hatenablog.com

やったこと

これまでの Twitter 上の発言をもとに,マルコフ連鎖で文章を生成して,それを垂れ流す bot がいるとおもしろいかなと思って作った.しゅうまい君 (@shuumai) みたいなものなのだけど,ソースが特定の人物のものに限定されるという点で異なる.

Twitter からダウンロードできる archive に含まれる tweets.csv を入力として,MeCab形態素解析を行い,マルコフ連鎖で文章を適当に生成して,それを Twitter に投稿する.詳細な実装についてはもりしんの記事を参照のこと.

「おもしろいかな」と思った経緯はまったく覚えてないけど,たぶん inspired by @taketo958 とか @morishin_retro だと思う.

twitter.com

twitter.com

Twitter アカウントはこちら.

twitter.com

リポジトリはこちら.

github.com

感想

ゴールデンウィークということもあり,主にご近所の方々と,3泊4日で鎌倉に開発合宿に行ったので,その課題として作った.もりしんによる既存の実装があったので,1日くらいあれば十分完成するだろうと高をくくっていたが,約17,000のツイートをソースとして与えた結果,数分待っても結果が帰って来ず,実装の大幅な変更を余儀なくされた.連結リストから Data.Map にしたら,1秒以内に結果が返ってくるようになったが,雑にサクッと実装した結果,一般性を失ってしまったので,今後どうにかしたい.あと,逐次的に単語を選択していくのではなくて,先にありうる文章の木をすべて生成してしまってから,ルートからランダムに辿っていくように変更した.遅延評価パラダイムっぽい.

future works としては,テキストソースとして,任意のファイルを与えられるようにしたり,実行環境を Dockerize して,Heroku にシュッとデプロイできるようにしたいなと考えている.あとは,からしちゃん のように,ツッコミ役の bot も用意してほしいと言われたが,差し当たり「要検討」としておきたい.

その他

  • Debian 上にデプロイしようと思ったら,mecab-ipadic-utf8 ではなく mecab-ipadic を apt でインストールしていて,なかなか動かなかった(かなりつらかった).
  • 中目黒から横浜まで30分,横浜から鎌倉までも30分くらいで着くので,近くてよかった.
  • 3泊4日だし,随分時間もあるだろうと思って,本を五六冊持って行ったのに,結局合わせて10ページほどしか読まなかった.
  • 気に入ったら star ください.

関連リンク