りんな風 女子高生bot - docomo雑談対話api +α を使って 自分専用botを作る -

33
りんな docomo雑談対話APIを使って 自分専用Botを作る 2016. 11. 14 LINE BOT AWARDS大説明会vol.01 LT Koji Shiraishi @shiraco 女子高生Bot http://connpass.com/event/44724/

Upload: koji-shiraishi

Post on 16-Apr-2017

1.151 views

Category:

Internet


8 download

TRANSCRIPT

Page 1: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

りんな

docomo雑談対話APIを使って自分専用Botを作る

2016. 11. 14 LINE BOT AWARDS大説明会vol.01 LT

Koji Shiraishi @shiraco

女子高生Bot+α

http://connpass.com/event/44724/

Page 2: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

自己紹介

白石 康司

TIS株式会社所属

自然言語処理、対話システム、ロボットアプリ

仕事

専門分野

Tech-Circle techcircle.connpass.com

プログラミング

コミュニティ

対話システムとか、研究開発とか

Python / Ruby / R / Objective-C あたり

Page 3: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

Ourwork

「店舗におけるロボットと人間との接客による顧客体験の向上」

ニュース | TISと奈良先端大が「マルチモーダルインタラクションを用いたパブリックスペースにおける対話処理」を共同研究http://www.tis.co.jp/news/2016/20160112_1.html

ロボットが、視覚・聴覚を含め、複数(マルチ)のコミュニケーションモードを利用して人との対話を実現

奈良先端科学技術大学院大学と「マルチモーダルインタラクションを用いた対話処理に関する研究」を、2015年11月から共同で開始。

https://youtu.be/LmbT4W9odtQ

「マルチモーダルインタラクションを用いたパブリックスペースにおける対話処理」

状況を理解した情報の提供と対話を通じた情報推薦。

Page 4: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

Ourwork⾃然⾔語処理・対話研究会 ハッカソン参加

技術者向けカンファレンス 技術勉強会開催

Wantedly TIS

Page 5: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

本題

Page 6: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

りんな

「マイクロソフトの女子高生AI」

Page 7: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

画像引用元http://rinna.jp/

画像引用元https://twitter.com/ms_rinna

Page 8: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

りんなみたいなボットを自分でもお手軽に作れないか

lりんなの会話はDeepLearning技術を活用し

ていてお手軽とはすこし程遠い

lなんせ、対話データを大量にあつめない

と会話が成立しない

docomo雑談APIで手軽に試してみる

でも、りんなのAPIもあるらしいぞ

Page 9: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

docomo DevelopersupportAPI

l 雑談対話API

– “雑談対話APIは、ユーザの発話テキストを受け付け、その入力に対

して自然な会話となる雑談を提供します。”– docomo Developersupport

l その他のAPI

– 知識Q&AAPI:DBやインターネットの検索結果から質問に回答

– シナリオ対話API:あらかじめ設定していたシナリオに沿って回答

– 発話理解API:文脈を理解し、意図に沿った機能を呼び出す

Page 10: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

つくってみた

Page 11: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

実際の会話

Page 12: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

Point!

l イメージ画像はぱくたそから厳選!

l キャラクターは関西弁キャラに!

l 詳細は以下のQiitaに

http://qiita.com/shiraco/items/58a33b878fa5f1180d75

http://qiita.com/shiraco/items/58a33b878fa5f1180d75

https://www.pakutaso.com/

Page 13: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

今回のボット作成に必要なもの

これだけ!

l Lineアカウント

ldocomo developerアカウント

lHeroku

– AWSなら APIGateway+EC2とかでもOK

– もちろんEC2の代わりにLambdaでもOK

Page 14: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

しくみ

LINE

MyBotAppwebhookユーザ発話

システム発話 結果そのまま

丸投げ

reply

Linna

Page 15: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

システム構成

LINE

docomoMyBotAppLINEBOTAPI webhookユーザ発話

システム発話 結果そのまま

ここだけ作ればOK

AmazonEC2AmazonAPIGateway

環境はAWS

丸投げ

reply

Page 16: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

ただ 雑談APIゆえに

Page 17: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

会話がつまらない!

Page 18: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

システム応答は運任せ!(告白しても振られることもある。)

Page 19: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

対話シナリオ

l(期待通りの反応を返してくれる)対話

シナリオを追加したい!

Page 20: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

りんな

docomo雑談対話APIを使って自分専用Botを作る

2016. 11. 14 LINE BOT AWARDS大説明会vol.01 LT

Koji Shiraishi @shiraco

女子高生Botと、my対話シナリオAPI

http://connpass.com/event/44724/

Page 21: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

対話システムとは

自然言語でコミュニケーションを行い情報を授受することを対話という。

人間と対話する機械またはソフトウェアを対話システムと呼ぶ。-自然言語処理シリーズ 対話システムより

機械学習を使って作る対話システム - Qiita http://qiita.com/Hironsan/items/6425787ccbee75dfae36

対話の例

Page 22: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

対話システムと自然言語処理

l1問1答型の対話の場合

対話システム

新宿駅近くのイタリア料理店を探して

新宿のイタリア料理ですね?

ユーザー

システム

ユーザー発話

システム発話

対話⾏為タイプ:レストラン検索要求エリア: 新宿ジャンル: イタリア料理

⾔語理解 対話管理

⾔語⽣成

対話⾏為タイプ

対話⾏為タイプ

対話⾏為タイプ:属性確認要求エリア: 新宿ジャンル: イタリア料理

Page 23: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

対話シナリオの作成l 一問一答ルールベース– ユーザー発話に対するシステム発話のペアを複数用

意する

l GUIフローベース– GUIでユーザー発話とシステム発話を順にデザインし

ていく(台本を書くように)

<category><pattern>HELLO</pattern><template>Hithere!</template>

</category>

http://www.pandorabots.com/pandora/pics/wallaceaimltutorial.html

https://repl-ai.jpdocomo REPL-AIの例

AIML(ArtificialIntelligenceMarkupLanguage)の例

今回はこっちで

Page 24: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

しくみ2

LINE

MyBotAppwebhookユーザ発話

システム発話 結果そのまま

ヒットしなかった時は丸投げ

reply

こっちを優先

reply

シナリオをあらかじめ定義

Page 25: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

システム構成

LINE

docomo

MyBotAppLINEBOTAPI webhookユーザ発話

システム発話 結果そのままヒットしなかった時だけ

reply

SpreadSheetこっちが優先

reply

スプレッドシートにルールを追加

Page 26: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

対話シナリオの追加

lスプレッドシートでランダム性を強制的

に上書き!

ユーザー発話がpatternにマッチしたら、システム発話としてtemplateを返す!

Page 27: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

対話シナリオのAPI化

lGoogleSpreadSheetの内容はGoogleApps

Scriptで簡単にAPI化できる!

GoogleSpreadSheetのデータを JSON形式で取得する WebAPIをサクッと作る – Qiitahttp://qiita.com/takatama/items/7aa1097aac453fff1d53

SDKを駆使して、セルA1に値があれば〜といった、ExcelVBA的なマクロを書かなくても良い!

Page 28: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

結果DEMO

Page 29: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

まとめ

l docomoの雑談対話APIで簡単にボットが出来上がるが、

それだけで個性的な面白いボットはつくれない

l Googleスプレッドシートを使えば簡単に対話シナリオ

APIが作れて、ボットから呼び出せる

l ドメイン外の対話を拾う手段として、docomoの雑談API

は有効

Page 30: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

[参考]Tech-CircleBOTMashupWorldhttp://techcircle.connpass.com/event/30696/

Page 31: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

31https://botawards.line.me/ja/

Page 32: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

ENJOY BOT!

Page 33: りんな風 女子高生Bot - docomo雑談対話API +α を使って 自分専用Botを作る -

参考資料l 対話システム (自然言語処理シリーズ)– 中野 幹生 他

– http://www.amazon.co.jp/dp/433902757X

l 無料【画像加工サイト】もじまる - MOJIMARU.COM– http://www.mojimaru.com/

l フリー写真素材・無料ダウンロード-ぱくたそ– https://www.pakutaso.com/web_murata.html

l ドコモAPI– https://dev.smt.docomo.ne.jp/

l LINEBOTでりんな風の自分専用女子高生BOTを作ってみた (Python&Heroku)– Qiita– http://qiita.com/shiraco/items/58a33b878fa5f1180d75

l GoogleSpreadSheet のデータを JSON形式で取得する WebAPIをサクッと作る – Qiita– http://qiita.com/takatama/items/7aa1097aac453fff1d53

l 機械学習を使って作る対話システム – Qiita– http://qiita.com/Hironsan/items/6425787ccbee75dfae36

l りんな - マイクロソフト– http://rinna.jp

– https://twitter.com/ms_rinna

l Tech-Circle– http://techcircle.connpass.com/