プロポーザル
これは応募されたプロポーザルです。聞きたいと思うプロポーザルを各ページの下部にあるSNSのボタンで拡散しましょう。拡散された投稿をプロポーザルへの投票としてカウントし、選考時に参考にさせていただきます。
talk
カノジョのつくり方に学ぶSlack Bot開発(ja)
スピーカー
Yamamoto Hiroki
対象レベル:
中級
カテゴリ:
Science
説明
カノジョのつくり方、すなわち、人と対話をするBotの開発方法をご紹介します。
対話Botを作成するには多くの壁や工夫ポイントがあります。
今回はデータが少ないことが1つの壁でした。
オリジナルのBotを作成するには、どのような手順が必要か、
Deep Learningと自然言語処理を組み合わせてどうするか、カノジョ特有の工夫点を
Slack Bot作成を通じて、ご紹介します。
目的
特にサンプルコードを動かしたけど次に何をしたいのかわからない人を対象としております。
例えば、ChainerでMNISTは動かしたけど、次は?、
機械学習のスクリプトをかいてみたけど、他にどのようなことができるのでしょうか?、
また、実際にどう使えば面白いことができますか?と考えている人です。
その他、以下のことが本発表から得られます。
①自然言語処理やDeep Learningを使ったBot構築の方法
②Botを作成する上での工夫ポイントや挑戦したことの共有
③Slack Botの作成方法
④自然言語処理を用いた対話Bot作成の方法
概要
# カノジョのつくり方に学ぶSlack Bot開発
##本発表の概要
カノジョの作り方、その手順並びに工夫したポイントをご紹介します。
## 本発表の詳細
カノジョとは何かを定義した上で、カノジョ作成の意義を紹介します。
その上で、Slackを組み合わせる時に全体のシステム構成や処理の流れ
といった概要を説明し、最後にSlack Bot作成の具体的な方法をご紹介します。
### カノジョとは
カノジョとは何か、なぜこのシステムを作ったかを語ります。
具体的には理想のカノジョとは何かを定義し、どのような要素が重要か。
また、カノジョがいなくて寂しい人に対する
1つのソリューションとしての意義を説明します。
### カノジョ作成の概要
本カノジョ作成の概要です。システム全体の構成図や
Bot開発では、どのような処理をしているかを簡潔に説明します。
### カノジョ作成の詳細
####データ取得
データ取得では、本を利用しました。
本を用いてどのように学習データを構築したかの紹介を行います。
####データ加工
データ加工部では、データ取得で得たデータを加工します。
基本的な形態素解析を用いた前処理の他に、カノジョBotならではの
工夫ポイントを実施しています。
例えば、カノジョが設定した名前を呼んでくれるような対応を行っています。
また、本カノジョBotでは、データ取得方法の都合上、十分なデータを得ることができませんでした。
そのような工夫・対応方法をご紹介します。
####Neural Conversation Modelの構築
「A Neural Conversational Model」(https://arxiv.org/pdf/1506.05869.pdf)を参考に、Deep Learningフレームワーク Chainerで実装します。本項目中で、そのモデルのご紹介をします。
####Neural Conversation Modelの学習・保存
Chainerを用いたNeural Conversational Modelの学習コードと学習モデル保存方法のご紹介です。
####学習済みNeural Conversation ModelをSlack Bot組み込み
これまでの処理で得られたモデルをSlack Botに組み込みます。組み込み方と同時にSlack Botの作り方をご紹介します。