Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chainerを使ったらカノジョができたお話
Search
tereka114
March 16, 2022
Programming
0
170
Chainerを使ったらカノジョができたお話
tereka114
March 16, 2022
Tweet
Share
More Decks by tereka114
See All by tereka114
トラブルがあったコンペに学ぶデータ分析
tereka114
2
1.5k
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.6k
KDD2023学会参加報告
tereka114
2
570
Prompting Large Language Models with Answer Heuristics for Knowledge-based Visual Question Answering
tereka114
0
390
Mobile-Former: Bridging MobileNet and Transformer
tereka114
0
1.1k
DER: Dynamically Expandable Representation for Class Incremental Learning
tereka114
0
200
Jupyter Notebookを納品した話
tereka114
0
440
Multi Scale Recognition with DAG-CNNs
tereka114
0
130
How to use scikit-image for data augmentation
tereka114
0
250
Other Decks in Programming
See All in Programming
Unlock the Potential of Swift Code Generation
rockname
0
270
State of Namespace
tagomoris
4
1.9k
Ruby's Line Breaks
yui_knk
2
1.5k
Make Parsers Compatible Using Automata Learning
makenowjust
2
5.5k
趣味全開のAITuber開発
kokushin
0
200
PHP で学ぶ OAuth 入門
azuki
1
210
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
1.1k
Optimizing JRuby 10
headius
0
470
AI時代の開発者評価について
ayumuu
0
200
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
170
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
170
Youtube Lofier - Chrome拡張開発
ninikoko
0
2.5k
Featured
See All Featured
Building an army of robots
kneath
304
45k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Side Projects
sachag
453
42k
The Language of Interfaces
destraynor
157
25k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Designing Experiences People Love
moore
141
24k
Facilitating Awesome Meetings
lara
54
6.3k
Docker and Python
trallard
44
3.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Transcript
Chainerを使ったら カノジョができたお話 @tereka114
自己紹介 1. 山本 大輝(@tereka114) 2. Acroquest Technology 株式会社 3. Chainer
Meetup 初参加 4. のんびりしているエンジニアの日記 5. 最近、雑誌記事書きました。 1. Interface 3月号
クリスマスに近いある日
カノジョが欲しい。
そう思っていた、 しかし、そんな簡単に できるはずがない。
ならば、作れば良い。
カノジョを作りました。
Chainerで
カノジョのコンセプト 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. 自分の名前ではない名前で呼ばれても嬉しくな いので、名前を呼ぶようにしました。
None
課題 1. とにかくデータセットが少ない。 1. 増やす方法を考える必要があり 2. 時々知らない単語が混じると精度が悪化する。 1. Beam searchを使うと良くなる・・・(未実装)
Demo