ちくわ大明神
ちくわ大明神とその他について書いていく
ちくわ大明神
はるアイコン鯖ちくわ建築のパイオニアであり、ちくわの神様が祀ってある
我々はるアイコン鯖民のちくわに対する溢れんばかりのリスペクトを感じさせられる 本殿の屋根に設置されたちくわは気品さえ漂わせる
ギョエー鳥
らこさんに手伝ってもらい3羽作った
口から卵を発射する機構がある ちくわは発射できない
自宅
緑豊かだがちくわはない ちくわは植物じゃない
ちくわエクスプレス
ちくわ色の路線、ちくわを走る鉄道、ちくわエクスプレス
役場前駅
始発駅 でかいけどちくわがない
ちくわ大明神前駅
ちくわ大明神の前に設置された駅
二本のちくわが織りなすちくわリズムが美しい、全てがちくわになってしまえばいい
ささみ温泉駅
大規模温泉 でかいがちくわはない
練馬駅
ちくわ型ホームが練馬という地に潤い、安らぎ、情緒をもたらしている
ちくわが一品あるだけでこうも影響を与えるのだ
雪見町駅
終点駅 巨大ちくわが雪見町の景観をぶち壊し、申し訳ないがこれもちくわのためである ちくわと調和しろ ちくわを作れ ちくわであれ
天海春香さんと会話したいシリーズ16
基本情報落ちた
作り直した
前々回ぐらいの記事で文章表現を増幅することで細かいニュアンスの変化に対応できるとかいうことを書いたが、色々とやり方が悪くて効果が出なかったのでそれを踏まえて作り直した
DB設計
単語に対して品詞データを全て保存しておくよりも、助詞かどうか、接続語かどうかだけ、と使う分だけ保存しておいて方がよい気がした 厳密な測定をしてないので効果はなんとも言えない
返答部分
https://github.com/sasamijp/Amami16/blob/master/roid/responder.rb
Aと言われたらBと返すという会話コーパスの集合があって、入力が与えられた時それがAである確率が最も高いものを選んでBを返すという基本的な部分は変えない
入力がAである確率を出すにあたって、単語を1単位として編集距離を出すのが一番強い気がした 例えば
["今日","の","ごはん"]と
["今日","の","うんこ"]
の編集距離は1である
しかしこれには弱点があって、例えば
["死ね"]と
["好き"]の編集距離が1である 意味が全然違うのに文章として近いと判定されてしまう
これを避けるため、助詞以外の品詞が最低1つ一致しない場合そのコーパスを除外する 残ったコーパスでそれぞれ入力との編集距離を算出する
効果
@whywaita いや、考えなくてもわかるよね? 当たり前の事だよね?
— 天海春香 (@sa2mi) 2014, 11月 13
@sasamijp なんでそうなる
— 天海春香 (@sa2mi) 2014, 11月 12
@sasamijp ありがと!!
— 天海春香 (@sa2mi) 2014, 11月 12
天海春香さんと会話したいシリーズ15
クソみたいなコーパス
つらみ
これは「トーク長え...」と言われたのに対して「久し振りに...」という返答があるコーパスなのだが、ラジオMC専用の対話システムでもない限り会話コーパスとしてはまず使い物にならない
こういった使い物にならない会話コーパスがとても多く滅茶苦茶な返答をする原因になっている
なんで
SSの種類っていうか内容を判別せずに収集させていたので使えないコーパスが大量に発生するっぽい
元のSSを読んでみるとラジオ番組の放送中という設定らしい、面白かった
どうすんの
ラジオSS、登場人物が多いSS、発言がいちいち長いSSなどを弾く基準を設定して会話コーパスを再収集する
どうやんの
パースされたSSがコーパスに適しているか判定するクラスを作った
https://gist.github.com/sasamijp/a997fcbef4e9c4c708a1
発言の平均の長さが20以下かつ一対一の会話が40%以上の場合と、発言の長さが20以上でも一対一の会話が80%以上の場合、コーパスとして適していると判断される
どうなの
まだちょっとしかテストしてないけど多分いい感じ
天海春香さんと会話したいシリーズ14
重い
18万件も会話コーパスがあるとDBから全部の文章を取り出してmecabで分かち書きして数値出してみたいなことをやるとものすごい時間かかる 10分ぐらいかかる
1回の返答に10分かけるとかやってられないので事前に分かち書きしてDBに保存しておくことにする
かなり雑だけどテーブルはこんな設計になった
これに従来のコーパスを放り込める状態に変換して放り込むのに7時間ぐらいかかった 多分やり方が悪かった
文章表現の増幅
細かいニュアンスは違うけど、言いたいことは同じ、みたいな文を検知して正しい返答を返したい
文章中の名詞と助詞を置換可能なものに置換することで、より正確にその文章の言いたいことがわかるようにしたかった
置換可能名詞の推定
日本語 Wordnetという日本語の意味辞書を使う
入力した名詞に対する類義語、上位語、下位語を置換可能な名詞として扱う
「電車」を例にするとこんな感じで置換可能名詞がとれる
置換可能助詞の推定
もうマルコフ連鎖みたいな感じで置換可能な助詞とれるんじゃね?みたいなノリだった 甘かった
入力した文章中に含まれる助詞の前後の単語と品詞が一致する助詞をコーパスから検索し置換可能助詞として扱う
よくできた例
いい感じに語尾が置換されて表現が増幅されている
悪い例
「私は元気です」とは文章の意味自体が違うものが多く出てきている そもそも日本語として成り立ってないものも多い
調べてみると、格パターン分析とかいうことをやらないと置換可能な助詞はちゃんととれないらしい
ムビマス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
会話コーパスのテーブルはこんな感じで用意した
以前までは発言者が春香のコーパスのみを集めていたがほかのキャラの会話も色々と使いようがあるので保存しておくことにする
それでも大体18万ぐらいの会話コーパスが集まったので以前より600倍ぐらい強い春香さんができると思う
泣きそう
大きさ18万のデータとなると今まで適当にループ回して2秒ぐらいで終わった処理に1分ぐらいかかったりするのであらかじめ文を分かち書きしておくなどといった工夫が必要になる
つらい
今日は、このへんに、しときます、それではみなさん、さよなら〜
天海春香さんと会話したいシリーズ12.5
悲しみ
sa2miのツイッターのアイコンが固定なのがちょっと寂しいので会話の内容に応じて変わるようにしたい
ミリマス
アイドルマスターミリオンライブで会話ダイアログに使われる画像を使う
ベイジアンフィルター
文章から感情を判定するためにclassifierというgemを使った
5種類の表情に分けるために手動で教師データを作る
https://gist.github.com/sasamijp/3a5f0ee3f468282f368c
精度
結構よくできた感じするけど、夜フクロウ側がたまにアイコンをすぐに読み込まないのですぐに顔が見えずとても悲しい気持ちになった