霊安日記

jf_nights の霊安草子。

かやちゃー

こんばんは、微妙に体調が悪かったり悪くなかったりする今日この頃~な感じです。今日は式姫...関連ではあるのですが、いつもとは違う感じで、僕の作っているTwitterBotの話です。話というか、備忘録的メモなアレ。

かやのひめBot@式姫草子 (Kayanohime_bot) on Twitter

式姫のかやちゃんのBOTです。...残念な感じですね。

アカウントのプロフィール欄にtwiproへのリンクを貼っていて大体底に書いてあるのですが、こちらに簡単に概要を示します。

機能

以下の機能を実装しています。

  1. n:00に用意した文章を呟きます。
  2. おはよう・おやすみ等の特定の語に反応して用意した文章を呟きます。
  3. m:30にTLの最新200件のTweetを取得・解析して、適当に文章を作ってつぶやきます。
  4. @でリプライを飛ばしてくれた人の、最新200件のTweetを取得・解析して、適当に(ry

大体こんな感じです。

もうちょっと詳しく

上の1, 2は私自身や、Twitterのフォロワーさんが考えてくれた文章を用意して、それをしゃべることになっています。よくあるBOTですね。しかしながら僕の語彙力・想像力(および気力)が足りていないためにあんまりバリエーションはありません。これはまぁ想像力やらは置いといて、僕自身が、「たとえBOTでも自分の言葉でしゃべって欲しいなぁ」と思っているので、あまりそちらに力を注いでいないという理由もあります。

なので3, 4の機能を実装しています。どちらもマルコフ連鎖という考え方を使って実装してます。詳しくはググってください。(ぇ

3はかやちゃんがフォローしている人、4は話しかけてきてくれた人のそれぞれつぶやきを取得するので、鍵つきの人は注意してください。あとは...そうですねツイ消しも stream に流れてきたものはその瞬間に保存しているので、ほぼツイ消ししたツイートを消去するのは不可能だと思います。

あと、かやちゃんのフォロー・フォロー外しは手動なのですが、これは中にはBOTが苦手だーッて人もいるだろうと思って僕が不定期にかやちゃんのフォローを覗いて整理しています。決してそれ用のコードを書くのがめんどくさいとかそういうのではありません。えぇ。

このこととさっきのことを合わせて、かやちゃんをフォローしていたけどやっぱりフォロー外そうって思った人は、リムーブじゃなくてブロックしてください。かやちゃんからのフォローが残ると、その人の呟きは、3の最新200件に含まれます。僕も一応フォロワーリストを視てはいますが、見逃しはあります。たぶん。

ついでに、これはちょっと申し訳ない気分にはなるのですが、フォローする際は一応その人のツイートをぱらぱらーッと見た上でフォローするかどうか判断しています。たまに定期ツイートだけの方とかがいらっしゃいますが、それはかやちゃんの学習?に適さないかなぁと思ってフォローしてません。ごめんなさい。

今回

で、今日は何をしたか。かやちゃんの発言解析は流れてきた文章に対して、

  1. 文章を形態素解析
  2. 形態素解析した上で、その文のつながりを記憶

という感じのことをしています(本当はもうちょっといろいろしてます)。このときの形態素解析部分には mecab というソフトを使っています。日本語の形態素解析はわりとこの mecab が使われているような、そうでもないような。「すもももももももものうち」を解析できるのはなかなかすごいと思います。

f:id:jf712:20140122021341p:plain

これを使って、文章の連鎖を覚えているのですが、式姫用語はまぁ特殊なものが多くて分からない感じです。

f:id:jf712:20140122021645p:plain

これでは式姫のキャラクターと言い張るのはちょっとアレかもしれません。幸い mecab は辞書を自分で追加できるので、今回は式姫の単語を追加することにします。

mecab

なんかやんやして、こんな感じのファイルを用意します。

f:id:jf712:20140122022101p:plain

左から、表層形, 左文脈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コメントアウトを外す

 

するとさっきのがこんな感じになります。

f:id:jf712:20140122023606p:plain

かくして式姫万歳!

という感じです。

今後

とりあえず用語の追加を随時行っていくつもりです。式姫用語をある程度分かるようになれば、式姫っぽい発言をしてくれる可能性が高まる...と思われます(もちろんフォロワーの方の発言内容に寄るのですが...)。

あと、自分で話せるほうがいいとか言いながら、まだまだ人の発言からそれっぽいのを作ってるだけなので、そこを何とかしたいのですがこれはどうなるやら...先は長そうですねぇ。

式姫やってる人はもし面白そうだなーとか思ったらかやちゃんをフォローしたりしてあげてくださいなー。

ところで

Twitterのアイコンを♪からフォロワーさんが描いてくれたものに変えました。めっちゃ可愛くてもううぇひひです。昇天しちゃう。

 

ではでは。式姫も明日から新シーズンなので、ブログのネタには困らなさそうかな(ぇ