天海春香さんと会話したいシリーズ13
戦いは数だよ兄貴
前々回の記事でノイズの少ない会話コーパスを集めるのが大事といった話を書いたが、それにしても会話コーパスの量が3000とかだと会話するには全然足りないと感じた
ノイズの少なさを保ったまま会話コーパスの量を増やすために適当なSSまとめサイトの記事を全部保存するスクリプトを書いてみた
記事のurl全部取得するやつ :
https://gist.github.com/sasamijp/b9c1f8a5f3f554060f1d
記事の内容を会話コーパスに変換して保存するやつ :
https://gist.github.com/sasamijp/c845f4784c050789a434
SSから会話コーパスへの変換をするクラス :
https://gist.github.com/sasamijp/4df8193b80c4007dd185
会話コーパスのテーブルはこんな感じで用意した
以前までは発言者が春香のコーパスのみを集めていたがほかのキャラの会話も色々と使いようがあるので保存しておくことにする
それでも大体18万ぐらいの会話コーパスが集まったので以前より600倍ぐらい強い春香さんができると思う
泣きそう
大きさ18万のデータとなると今まで適当にループ回して2秒ぐらいで終わった処理に1分ぐらいかかったりするのであらかじめ文を分かち書きしておくなどといった工夫が必要になる
つらい
今日は、このへんに、しときます、それではみなさん、さよなら〜
天海春香さんと会話したいシリーズ12.5
悲しみ
sa2miのツイッターのアイコンが固定なのがちょっと寂しいので会話の内容に応じて変わるようにしたい
ミリマス
アイドルマスターミリオンライブで会話ダイアログに使われる画像を使う
ベイジアンフィルター
文章から感情を判定するためにclassifierというgemを使った
5種類の表情に分けるために手動で教師データを作る
https://gist.github.com/sasamijp/3a5f0ee3f468282f368c
精度
結構よくできた感じするけど、夜フクロウ側がたまにアイコンをすぐに読み込まないのですぐに顔が見えずとても悲しい気持ちになった
天海春香さんと会話したいシリーズ12
前回のラブライブ!
ノイズの少ない学習データ(SS)を用意することが一番重要だとわかったのでSS収集をもっとしっかりできるように作ろう
ショートストーリーの収集
まとめブログの本文抽出にextractcontentというgemを使っていたのだが精度がよくなくて記事の半分ぐらいまでしか読み込めないので自分で本文抽出を書いた
https://gist.github.com/sasamijp/702cd781aebdc97deae1
返答の仕組み
与えられた入力と学習データのin_reply_toがある程度一致するとserifが返る
ほとんど従来型と変わらないが名詞と動詞に対して重くスコアを振る感じにしたので「ちょっと来て」という文に対し「ちょっと」という部分に対してしか返答できなかったのが「来て」に対しての返答をしてくれるようになった
https://gist.github.com/sasamijp/67de96c5a246224d7e27
いい感じになった
学習データ数が3600ぐらいと今までと比べるとだいぶ少ないのでもっと増やしてあげたい
オーストラリアにきた
「こんにちWAR〜!」と元気に話しかけられるが、そこから一歩でも近づいたら戦争が始まるぞという意味である
ささ海春香さんと英語で話す
SStoAIのちょっと新しいやつができつつあるので試してみる
ai.respond("hoge") みたいな感じで返答が得られるので翻訳API通して英語で会話してみた
実践
@sa2mi Hello?
— コンスタンティノープロブレム (@sasamijp) 2014, 6月 29
@sasamijp Dog day?, what?
— 天海春香 (@sa2mi) 2014, 6月 29
は?
@sa2mi are you OK?
— コンスタンティノープロブレム (@sasamijp) 2014, 6月 29
@sasamijp Infringements prohibited! producer I'm sure it is finally closed!
— 天海春香 (@sa2mi) 2014, 6月 29
ちょっと何言ってるのよくわかりませんでした
やはり日本語じゃないと会話が通じないっていうかそもそも日本語でもあまり会話が通じてないしそもそも俺英語話せなかった(完)
おちんちんは考える
String.chimpo
— ikr7 (@rfc4627) 2014, 3月 31
やるしかない
文字列に対しての勃起率を出すために何から手をつければいいのかわからないのでベイズの定理っぽいものを使って入力された文字列がエロいワードである確率を出してみるものを書いてみる
エロいSSとエロくないSSをそれぞれ2000行ぐらい用意してサンプルデータにするけどこれ全然だめだなって書いてて思った
https://gist.github.com/sasamijp/9913369
文章に対してのスコア
下ネタワードが出てくると高めのスコアが出る
ページのエロさを算出してみる
ページ内の全ての文章に対してスコアを出して平均をとる
エロいページの場合
ttp://ssmatomesokuho.com/thread/read?id=180064
{"score"=>0.2415852892504532}
ttp://ssmatomesokuho.com/thread/read?id=213234
{"score"=>0.18451274890425745}
エロくないページ
ttp://invariant0.blog130.fc2.com/blog-entry-6034.html
{"score"=>0.21386080011166048}
全然ダメでした!!!!
おちんちんもよくできてるなあと思った