ささみろぐ

チラシの裏

天海春香さんと会話したいシリーズ14

重い

18万件も会話コーパスがあるとDBから全部の文章を取り出してmecab分かち書きして数値出してみたいなことをやるとものすごい時間かかる 10分ぐらいかかる

1回の返答に10分かけるとかやってられないので事前に分かち書きしてDBに保存しておくことにする

かなり雑だけどテーブルはこんな設計になった

f:id:sasamijp:20141011130203p:plainf:id:sasamijp:20141011130218p:plain

f:id:sasamijp:20141011130226p:plainf:id:sasamijp:20141011130308p:plain

これに従来のコーパスを放り込める状態に変換して放り込むのに7時間ぐらいかかった 多分やり方が悪かった

文章表現の増幅

細かいニュアンスは違うけど、言いたいことは同じ、みたいな文を検知して正しい返答を返したい

文章中の名詞と助詞を置換可能なものに置換することで、より正確にその文章の言いたいことがわかるようにしたかった

置換可能名詞の推定

日本語 Wordnetという日本語の意味辞書を使う

入力した名詞に対する類義語、上位語、下位語を置換可能な名詞として扱う

「電車」を例にするとこんな感じで置換可能名詞がとれる

f:id:sasamijp:20141011131440p:plain

置換可能助詞の推定

もうマルコフ連鎖みたいな感じで置換可能な助詞とれるんじゃね?みたいなノリだった 甘かった

入力した文章中に含まれる助詞の前後の単語と品詞が一致する助詞をコーパスから検索し置換可能助詞として扱う

よくできた例

f:id:sasamijp:20141011132151p:plain

いい感じに語尾が置換されて表現が増幅されている

悪い例

f:id:sasamijp:20141011132236p:plain

「私は元気です」とは文章の意味自体が違うものが多く出てきている そもそも日本語として成り立ってないものも多い

調べてみると、格パターン分析とかいうことをやらないと置換可能な助詞はちゃんととれないらしい

 

ムビマスBD届いた

BD再生機器ないから本編とシャイニーフェスタ観れないんだけど特典CDが素晴らしかった 生きててよかった

 

天海春香さんと会話したいシリーズ13

戦いは数だよ兄貴

前々回の記事でノイズの少ない会話コーパスを集めるのが大事といった話を書いたが、それにしても会話コーパスの量が3000とかだと会話するには全然足りないと感じた

ノイズの少なさを保ったまま会話コーパスの量を増やすために適当なSSまとめサイトの記事を全部保存するスクリプトを書いてみた

記事のurl全部取得するやつ :

https://gist.github.com/sasamijp/b9c1f8a5f3f554060f1d

記事の内容を会話コーパスに変換して保存するやつ :

https://gist.github.com/sasamijp/c845f4784c050789a434

SSから会話コーパスへの変換をするクラス :

https://gist.github.com/sasamijp/4df8193b80c4007dd185

 

f:id:sasamijp:20140928203714p:plain

会話コーパスのテーブルはこんな感じで用意した

f:id:sasamijp:20140928203812p:plain

以前までは発言者が春香のコーパスのみを集めていたがほかのキャラの会話も色々と使いようがあるので保存しておくことにする

それでも大体18万ぐらいの会話コーパスが集まったので以前より600倍ぐらい強い春香さんができると思う

泣きそう

 大きさ18万のデータとなると今まで適当にループ回して2秒ぐらいで終わった処理に1分ぐらいかかったりするのであらかじめ文を分かち書きしておくなどといった工夫が必要になる

つらい

今日は、このへんに、しときます、それではみなさん、さよなら〜

 

 

天海春香さんと会話したいシリーズ12.5

悲しみ

sa2miのツイッターのアイコンが固定なのがちょっと寂しいので会話の内容に応じて変わるようにしたい

 

ミリマス

アイドルマスターミリオンライブで会話ダイアログに使われる画像を使う

http://livedoor.blogimg.jp/millimas74/imgs/0/6/06496dba.png

 

ベイジアンフィルタ

文章から感情を判定するためにclassifierというgemを使った

cardmagic/classifier · GitHub

f:id:sasamijp:20140808183418p:plain

5種類の表情に分けるために手動で教師データを作る

https://gist.github.com/sasamijp/3a5f0ee3f468282f368c

 

精度

f:id:sasamijp:20140808184904p:plain

結構よくできた感じするけど、夜フクロウ側がたまにアイコンをすぐに読み込まないのですぐに顔が見えずとても悲しい気持ちになった 

 

天海春香さんと会話したいシリーズ12

前回のラブライブ!

ノイズの少ない学習データ(SS)を用意することが一番重要だとわかったのでSS収集をもっとしっかりできるように作ろう

 

ショートストーリーの収集

まとめブログの本文抽出にextractcontentというgemを使っていたのだが精度がよくなくて記事の半分ぐらいまでしか読み込めないので自分で本文抽出を書いた

https://gist.github.com/sasamijp/702cd781aebdc97deae1

 

返答の仕組み

f:id:sasamijp:20140807022928p:plain

与えられた入力と学習データのin_reply_toがある程度一致するとserifが返る

ほとんど従来型と変わらないが名詞と動詞に対して重くスコアを振る感じにしたので「ちょっと来て」という文に対し「ちょっと」という部分に対してしか返答できなかったのが「来て」に対しての返答をしてくれるようになった

https://gist.github.com/sasamijp/67de96c5a246224d7e27

 

いい感じになった

f:id:sasamijp:20140807022239p:plain

学習データ数が3600ぐらいと今までと比べるとだいぶ少ないのでもっと増やしてあげたい

 

 

 

 

ささ海春香さんと英語で話す

SStoAIのちょっと新しいやつができつつあるので試してみる

sasamijp/konbu · GitHub

ai.respond("hoge") みたいな感じで返答が得られるので翻訳API通して英語で会話してみた

実践

 

は?

 

ちょっと何言ってるのよくわかりませんでした

やはり日本語じゃないと会話が通じないっていうかそもそも日本語でもあまり会話が通じてないしそもそも俺英語話せなかった(完)

アイドルマスターによる死

アイマスやりたいんだけどPS3買う金がないのでprocessingでそれっぽいものを作って寂しさを紛らわそうとしたけどやっぱりつらい

f:id:sasamijp:20140422212352p:plain

f:id:sasamijp:20140422211940p:plain

裏で動画が流れて、bmp等を設定するとそれっぽく動くんだけど何がしたいのかよくわからなくなってきたのでもうやめる