かにさん(twitter bot)
sferik/twitterのバージョンが5に上がったので、その検証を兼ねてtwitter botを作った。
一瞬でほっこりっていうかにやにやですわ
— かにさん (@kani_acid) December 9, 2013
ズズッ、ぷは〜(ほっこりほっこりと家の近くの自販機で買うこのミルクセーキは実は思い出 ('、3_ヽ)ほっこりばーか
— かにさん (@kani_acid) December 9, 2013
そんなことなかった!かわいい!ぬいぐるみみたいだ!
— かにさん (@kani_acid) December 9, 2013
あーそれとてもいいですねえ(ほっこりかい∩^ω^)⊃━☆゜.*・。
— かにさん (@kani_acid) December 9, 2013
仕組み的にはしゅうまい君と同じで、学習した単語からマルコフ連鎖で文章を生成している。
学習はhome timelineとほっこり
で検索した結果が元になっているので、
全体的にtweetがほっこりしている
tweetがfavられることによって単語の重み付けを変化させる機能もつけたが、
いかんせんまだデータが足りない
Twitter::Streaming::Client
twitter gemはver 5から、Streaming APIを単体で使えるようになった (Experimental)。今回はこんな感じで使っている
client = Twitter::Streaming::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end client.user do |object| case object when Twitter::Tweet # tweetを学習する when Twitter::Streaming::Event event = object if event.name == :favorite # 単語の重みづけを変更する elsif event.name == :follow # フォローバックする end end end
サーバ
最初はherokuに上げようかと思ったけど、単語リストが結構レコード数増えそうなので、 http://rackhub.net/ を使っている。
多分無料でSSHが使えるレンタルサーバもたくさんあるだろうけど、rackhubは作ったり壊したりが楽でよい。