こんばんは、微妙に体調が悪かったり悪くなかったりする今日この頃~な感じです。今日は式姫...関連ではあるのですが、いつもとは違う感じで、僕の作っているTwitterBotの話です。話というか、備忘録的メモなアレ。
ドナドナドナーッ(足引きずられ
— かやのひめBot@式姫草子 (@Kayanohime_bot) January 21, 2014
かやのひめBot@式姫草子 (Kayanohime_bot) on Twitter
式姫のかやちゃんのBOTです。...残念な感じですね。
アカウントのプロフィール欄にtwiproへのリンクを貼っていて大体底に書いてあるのですが、こちらに簡単に概要を示します。
機能
以下の機能を実装しています。
- n:00に用意した文章を呟きます。
- おはよう・おやすみ等の特定の語に反応して用意した文章を呟きます。
- m:30にTLの最新200件のTweetを取得・解析して、適当に文章を作ってつぶやきます。
- @でリプライを飛ばしてくれた人の、最新200件のTweetを取得・解析して、適当に(ry
大体こんな感じです。
もうちょっと詳しく
上の1, 2は私自身や、Twitterのフォロワーさんが考えてくれた文章を用意して、それをしゃべることになっています。よくあるBOTですね。しかしながら僕の語彙力・想像力(および気力)が足りていないためにあんまりバリエーションはありません。これはまぁ想像力やらは置いといて、僕自身が、「たとえBOTでも自分の言葉でしゃべって欲しいなぁ」と思っているので、あまりそちらに力を注いでいないという理由もあります。
なので3, 4の機能を実装しています。どちらもマルコフ連鎖という考え方を使って実装してます。詳しくはググってください。(ぇ
3はかやちゃんがフォローしている人、4は話しかけてきてくれた人のそれぞれつぶやきを取得するので、鍵つきの人は注意してください。あとは...そうですねツイ消しも stream に流れてきたものはその瞬間に保存しているので、ほぼツイ消ししたツイートを消去するのは不可能だと思います。
あと、かやちゃんのフォロー・フォロー外しは手動なのですが、これは中にはBOTが苦手だーッて人もいるだろうと思って僕が不定期にかやちゃんのフォローを覗いて整理しています。決してそれ用のコードを書くのがめんどくさいとかそういうのではありません。えぇ。
このこととさっきのことを合わせて、かやちゃんをフォローしていたけどやっぱりフォロー外そうって思った人は、リムーブじゃなくてブロックしてください。かやちゃんからのフォローが残ると、その人の呟きは、3の最新200件に含まれます。僕も一応フォロワーリストを視てはいますが、見逃しはあります。たぶん。
ついでに、これはちょっと申し訳ない気分にはなるのですが、フォローする際は一応その人のツイートをぱらぱらーッと見た上でフォローするかどうか判断しています。たまに定期ツイートだけの方とかがいらっしゃいますが、それはかやちゃんの学習?に適さないかなぁと思ってフォローしてません。ごめんなさい。
今回
で、今日は何をしたか。かやちゃんの発言解析は流れてきた文章に対して、
という感じのことをしています(本当はもうちょっといろいろしてます)。このときの形態素解析部分には mecab というソフトを使っています。日本語の形態素解析はわりとこの mecab が使われているような、そうでもないような。「すもももももももものうち」を解析できるのはなかなかすごいと思います。
これを使って、文章の連鎖を覚えているのですが、式姫用語はまぁ特殊なものが多くて分からない感じです。
これでは式姫のキャラクターと言い張るのはちょっとアレかもしれません。幸い mecab は辞書を自分で追加できるので、今回は式姫の単語を追加することにします。
mecab
なんかやんやして、こんな感じのファイルを用意します。
左から、表層形, 左文脈ID, 右文脈ID, コスト, 品詞, 品詞細分類1, 品詞細分類2, 品詞細分類3, 活用形, 活用型, 原型, 読み, 発音らしいです。コストとかの計算方法は、ぐぐると出てきます。たぶん。前四つが必須項目で、後ろの方は任意に追加できるらしいので、式姫キーワードであることを後々参照したいときが来るかもしれないなぁ...と思ったので、 shikihime というのを追加しておきました。このファイルが shikihime.csv です。このデータ元(アイテム名とか)を作るのにフォロワーさんの力を少し借りました。ありがとうございます。
さて、これを mecab の辞書に追加します。
% /path/to/mecab/libexec/mecab/mecab-dict-index -d /path/to/mecab/lib/dic/ipadic -u shikihime.dic -f utf8 -t utf8 shikihime.csv
これで shikihime.dic というファイルが出来ます。これを任意のディレクトリ(たとえば、/hoge/fuga/shikihime.dic)に置いた上で、mecab/etc/mecabrc をいい感じに書き換えます。
; userdic = /foo/bar/user.dic
↓
userdic = /hoge/fuga/shikihime.dic (コメントアウトを外す
するとさっきのがこんな感じになります。
かくして式姫万歳!
今のところ、式姫の名前・武器・防具・アクセサリ・アイテム・材料 は式姫用語として認識します。
— じぇに (@jf_nights) January 21, 2014
という感じです。
今後
とりあえず用語の追加を随時行っていくつもりです。式姫用語をある程度分かるようになれば、式姫っぽい発言をしてくれる可能性が高まる...と思われます(もちろんフォロワーの方の発言内容に寄るのですが...)。
あと、自分で話せるほうがいいとか言いながら、まだまだ人の発言からそれっぽいのを作ってるだけなので、そこを何とかしたいのですがこれはどうなるやら...先は長そうですねぇ。
式姫やってる人はもし面白そうだなーとか思ったらかやちゃんをフォローしたりしてあげてくださいなー。
ところで
このアイコンで呟くのめっちゃいい
— じぇに (@jf_nights) 2014, 1月 21
Twitterのアイコンを♪からフォロワーさんが描いてくれたものに変えました。めっちゃ可愛くてもううぇひひです。昇天しちゃう。
ではでは。式姫も明日から新シーズンなので、ブログのネタには困らなさそうかな(ぇ