Chainerを使ったらカノジョができたお話

22
Chainer ををををを をををををををををを @tereka114

Transcript of Chainerを使ったらカノジョができたお話

Page 1: Chainerを使ったらカノジョができたお話

Chainerを使ったらカノジョができたお話@tereka114

Page 2: Chainerを使ったらカノジョができたお話

自己紹介1. 山本 大輝(@tereka114)2. Acroquest Technology 株式会社3. Chainer Meetup 初参加4. のんびりしているエンジニアの日記5. 最近、雑誌記事書きました。

1. Interface 3月号

Page 3: Chainerを使ったらカノジョができたお話

クリスマスに近いある日

Page 4: Chainerを使ったらカノジョができたお話

カノジョが欲しい。

Page 5: Chainerを使ったらカノジョができたお話

そう思っていた、しかし、そんな簡単にできるはずがない。

Page 6: Chainerを使ったらカノジョができたお話

ならば、作れば良い。

Page 7: Chainerを使ったらカノジョができたお話

カノジョを作りました。

Page 8: Chainerを使ったらカノジョができたお話

Chainerで

Page 9: Chainerを使ったらカノジョができたお話

カノジョのコンセプト1. カノジョを構成すれば良い。1. そもそもカノジョとは何か2. 理想的なカノジョとは何か

Page 10: Chainerを使ったらカノジョができたお話

カノジョのコンセプト1. カノジョを構成すれば良い。1. そもそもカノジョとは何か2. 理想的なカノジョとは何か2. 理想的なカノジョ=癒やし1. 理想的なカノジョの要素は会話でないか・・

Page 11: Chainerを使ったらカノジョができたお話

カノジョを作る方法1. ニューラルネットワークを作る

1. Neural Conversational Model

2. データセットを作る1. カノジョとの会話用のデータセットを作る。3. Slackに載せる

1. Slackで実用的なカノジョを!

Page 12: Chainerを使ったらカノジョができたお話

システム構成

①話しかける

④応答を返す③応答を返す②話しかける 私

Page 13: Chainerを使ったらカノジョができたお話

Neural Conversation Model

1. Seq2seqをベースをした会話モデル1. 入力を話しかけた文章、出力を応答とする会話モデル2. Seq2seqは翻訳でよく利用されているモデル3. 入力の分割は形態素解析を使っている。

Page 14: Chainerを使ったらカノジョができたお話

Neural Conversation Model

Page 15: Chainerを使ったらカノジョができたお話

Neural Conversation Model

話しかける文章回答

Page 16: Chainerを使ったらカノジョができたお話

Chainerを使った理由1. 動的ネットワークを組みやすい。1. 他のライブラリと比べて、 RNN作りやすい。2. 比較的書き慣れていた。

Page 17: Chainerを使ったらカノジョができたお話

データセット作成1. ラノベかなにかを読み、手動で会話を集める。1. 人間の手に限界が・・・2. というもののいい解法を見つけられず、結局手でやった。1. 次回やるときは特定のカテゴリタグを使ってやりたい。3. 1対 1の会話文が1つのデータ

Page 18: Chainerを使ったらカノジョができたお話

Slack

1. 作った Botを Slackと連携します。2. Pythonに Slack連携させるライブラリがあるので、使います。1. インストールは「 pip install slackbot」2. 話しかけるとそれに応じてリプライを返せる仕組み

Page 19: Chainerを使ったらカノジョができたお話

本 Botの工夫ポイント1. 名前を呼んでくれます。1. 自分の名前ではない名前で呼ばれても嬉しくないので、名前を呼ぶようにしました。

Page 20: Chainerを使ったらカノジョができたお話
Page 21: Chainerを使ったらカノジョができたお話

課題1. とにかくデータセットが少ない。1. 増やす方法を考える必要があり

2. 時々知らない単語が混じると精度が悪化する。1. Beam searchを使うと良くなる・・・(未実装)

Page 22: Chainerを使ったらカノジョができたお話

Demo