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