狠狠撸

狠狠撸Share a Scribd company logo
Chainerを使ったら
カノジョができたお話
@tereka114
自己紹介
1. 山本 大輝(@tereka114)
2. Acroquest Technology 株式会社
3. Chainer Meetup 初参加
4. のんびりしているエンジニアの日記
5. 最近、雑誌記事書きました。
1. Interface 3月号
クリスマスに近いある日
カノジョが欲しい。
そう思っていた、
しかし、そんな簡単に
できるはずがない。
ならば、作れば良い。
カノジョを作りました。
颁丑补颈苍别谤で
カノジョのコンセプト
1. カノジョを構成すれば良い。
1. そもそもカノジョとは何か
2. 理想的なカノジョとは何か
カノジョのコンセプト
1. カノジョを構成すれば良い。
1. そもそもカノジョとは何か
2. 理想的なカノジョとは何か
2. 理想的なカノジョ=癒やし
1. 理想的なカノジョの要素は会話でないか??
カノジョを作る方法
1. ニューラルネットワークを作る
1. Neural Conversational Model
2. データセットを作る
1. カノジョとの会話用のデータセットを作る。
3. Slackに載せる
1. Slackで実用的なカノジョを!
システム構成
①話しかける
④応答を返す
③応答を返す②話し
かける 私
Neural Conversation Model
1. Seq2seqをベースをした会話モデル
1. 入力を話しかけた文章、出力を応答とする会話
モデル
2. Seq2seqは翻訳でよく利用されているモデル
3. 入力の分割は形態素解析を使っている。
Neural Conversation Model
Neural Conversation Model
話しかける文章
回答
Chainerを使った理由
1. 動的ネットワークを組みやすい。
1. 他のライブラリと比べて、RNN作りやすい。
2. 比较的书き惯れていた。
データセット作成
1. ラノベかなにかを読み、手動で会話を集める。
1. 人間の手に限界が???
2. というもののいい解法を見つけられず、結局
手でやった。
1. 次回やるときは特定のカテゴリタグを使ってやり
たい。
3. 1対1の会話文が1つのデータ
Slack
1. 作ったBotをSlackと連携します。
2. PythonにSlack連携させるライブラリがあるので、使
います。
1. インストールは「pip install slackbot」
2. 話しかけるとそれに応じてリプライを返せる仕組み
本Botの工夫ポイント
1. 名前を呼んでくれます。
1. 自分の名前ではない名前で呼ばれても嬉しくな
いので、名前を呼ぶようにしました。
颁丑补颈苍别谤を使ったらカノシ?ョか?て?きたお话
課題
1. とにかくデータセットが少ない。
1. 増やす方法を考える必要があり
2. 時々知らない単語が混じると精度が悪化する。
1. Beam searchを使うと良くなる???(未実装)
Demo

More Related Content

颁丑补颈苍别谤を使ったらカノシ?ョか?て?きたお话