いぷし開発記1日目

下準備
形態素解析器「MeCab」インストール
庭には二羽にわとりがいる
って文章を
庭・に・は・二・羽・にわとり・が・いる
てな感じに単語に分解してくれるプログラム。
品詞の区別もしてくれる。
何をするにせよ必要に成ると思われるので前もってインストール。
・Skype4COMダウンロード
こいつを使うとプログラムからSkypeの操作ができる。
Skypeに寄生するBOTなので必要不可欠。
Skypeログ収集
C:\Users\ユーザー名\AppData\Roaming\Skype\アカウント名
の中にあるmain.dbっていうファイルを持ってくる。
Skype起動中はコピーできないのでSkypeを一旦切らないといけない。めんどい。
中身はSQlite3とかいう奴のデータベースらしいのでそれっぽいソフトDLしてきておもむろに開いてテキストファイルにコピペする。
いぷしの初期学習用データに使えればいいのでコピーしてくるだけ。
後々SQLも勉強しないといけないんだろうけどね…


本体制作
とりあえずSkypeのチャット一覧を表示する機能を作る。
で選択したチャットに文章を書き込む機能を作る。
ボタンを押すと「(・ε・)<ん?」とか言ってる。
発言に反応して応答を返さないといけないので、
チャットから更新通知を受け取った時に発言をするようにする。
ここで問題発生。
更新通知→いぷし発言→いぷし発言の更新通知→いぷし発言→無限ループ
何百件もの「(・ε・)<ん?」がチャットを覆う。そのチャットの方にはご迷惑をおかけしました。サーセン。
まあ適当に直して、やっと人工無脳の脳(?)部分へ。
文章生成部はめんどくさかったのでとりあえずログのランダムな1行を丸々コピペすることに。
この状態でとりあえず会話はできるようになった。会話じゃなくて独白だけど。
現在の状態だと、こちらの発言の直後にいぷしが発言して心が疲れるので、発言から何秒か後に発言をするように調整する。適当にランダムで。
まあそれっぽくなったけどいぷしはぜんぜん空気読まない。
てなわけで最新機能「空気を読む機能」
MeCabで発言を切り分けて、名詞だけ取り出す。
出てきた名詞の最新10件分をキーワードとして覚えておいて、文章生成のときに使う。
文章生成は、
ランダムで1行持ってくる→キーワードを含んでいるかチェック→含んでいなければ最初に戻ってやりなおし、たまに含んでいなくてもそのまま発言してしまう
こんな方法を採用。適当さ半端ない。
その後でキーワードに起動してから発言された回数の多い名詞トップ10を追加して、キーワードに1文字の名詞が含まれないようにする。
これで大体昨日やったことは終わり。
会話ログを載せようかとおもったけどまだまだなのでやめることにした。