りんな風 女子高生bot - docomo雑談対話api +α を使って 自分専用botを作る -
TRANSCRIPT
りんな
docomo雑談対話APIを使って自分専用Botを作る
2016. 11. 14 LINE BOT AWARDS大説明会vol.01 LT
Koji Shiraishi @shiraco
女子高生Bot+α
http://connpass.com/event/44724/
自己紹介
白石 康司
TIS株式会社所属
自然言語処理、対話システム、ロボットアプリ
仕事
専門分野
Tech-Circle techcircle.connpass.com
プログラミング
コミュニティ
対話システムとか、研究開発とか
Python / Ruby / R / Objective-C あたり
Ourwork
「店舗におけるロボットと人間との接客による顧客体験の向上」
ニュース | TISと奈良先端大が「マルチモーダルインタラクションを用いたパブリックスペースにおける対話処理」を共同研究http://www.tis.co.jp/news/2016/20160112_1.html
ロボットが、視覚・聴覚を含め、複数(マルチ)のコミュニケーションモードを利用して人との対話を実現
奈良先端科学技術大学院大学と「マルチモーダルインタラクションを用いた対話処理に関する研究」を、2015年11月から共同で開始。
https://youtu.be/LmbT4W9odtQ
「マルチモーダルインタラクションを用いたパブリックスペースにおける対話処理」
状況を理解した情報の提供と対話を通じた情報推薦。
Ourwork⾃然⾔語処理・対話研究会 ハッカソン参加
技術者向けカンファレンス 技術勉強会開催
Wantedly TIS
本題
りんな
「マイクロソフトの女子高生AI」
画像引用元http://rinna.jp/
画像引用元https://twitter.com/ms_rinna
りんなみたいなボットを自分でもお手軽に作れないか
lりんなの会話はDeepLearning技術を活用し
ていてお手軽とはすこし程遠い
lなんせ、対話データを大量にあつめない
と会話が成立しない
docomo雑談APIで手軽に試してみる
でも、りんなのAPIもあるらしいぞ
docomo DevelopersupportAPI
l 雑談対話API
– “雑談対話APIは、ユーザの発話テキストを受け付け、その入力に対
して自然な会話となる雑談を提供します。”– docomo Developersupport
l その他のAPI
– 知識Q&AAPI:DBやインターネットの検索結果から質問に回答
– シナリオ対話API:あらかじめ設定していたシナリオに沿って回答
– 発話理解API:文脈を理解し、意図に沿った機能を呼び出す
つくってみた
実際の会話
Point!
l イメージ画像はぱくたそから厳選!
l キャラクターは関西弁キャラに!
l 詳細は以下のQiitaに
http://qiita.com/shiraco/items/58a33b878fa5f1180d75
http://qiita.com/shiraco/items/58a33b878fa5f1180d75
https://www.pakutaso.com/
今回のボット作成に必要なもの
これだけ!
l Lineアカウント
ldocomo developerアカウント
lHeroku
– AWSなら APIGateway+EC2とかでもOK
– もちろんEC2の代わりにLambdaでもOK
しくみ
LINE
MyBotAppwebhookユーザ発話
システム発話 結果そのまま
丸投げ
reply
Linna
システム構成
LINE
docomoMyBotAppLINEBOTAPI webhookユーザ発話
システム発話 結果そのまま
ここだけ作ればOK
AmazonEC2AmazonAPIGateway
環境はAWS
丸投げ
reply
ただ 雑談APIゆえに
会話がつまらない!
システム応答は運任せ!(告白しても振られることもある。)
対話シナリオ
l(期待通りの反応を返してくれる)対話
シナリオを追加したい!
りんな
docomo雑談対話APIを使って自分専用Botを作る
2016. 11. 14 LINE BOT AWARDS大説明会vol.01 LT
Koji Shiraishi @shiraco
女子高生Botと、my対話シナリオAPI
http://connpass.com/event/44724/
対話システムとは
自然言語でコミュニケーションを行い情報を授受することを対話という。
人間と対話する機械またはソフトウェアを対話システムと呼ぶ。-自然言語処理シリーズ 対話システムより
機械学習を使って作る対話システム - Qiita http://qiita.com/Hironsan/items/6425787ccbee75dfae36
対話の例
対話システムと自然言語処理
l1問1答型の対話の場合
対話システム
新宿駅近くのイタリア料理店を探して
新宿のイタリア料理ですね?
ユーザー
システム
ユーザー発話
システム発話
対話⾏為タイプ:レストラン検索要求エリア: 新宿ジャンル: イタリア料理
⾔語理解 対話管理
⾔語⽣成
対話⾏為タイプ
対話⾏為タイプ
対話⾏為タイプ:属性確認要求エリア: 新宿ジャンル: イタリア料理
対話シナリオの作成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)の例
今回はこっちで
しくみ2
LINE
MyBotAppwebhookユーザ発話
システム発話 結果そのまま
ヒットしなかった時は丸投げ
reply
こっちを優先
reply
シナリオをあらかじめ定義
システム構成
LINE
docomo
MyBotAppLINEBOTAPI webhookユーザ発話
システム発話 結果そのままヒットしなかった時だけ
reply
SpreadSheetこっちが優先
reply
スプレッドシートにルールを追加
対話シナリオの追加
lスプレッドシートでランダム性を強制的
に上書き!
ユーザー発話がpatternにマッチしたら、システム発話としてtemplateを返す!
対話シナリオのAPI化
lGoogleSpreadSheetの内容はGoogleApps
Scriptで簡単にAPI化できる!
GoogleSpreadSheetのデータを JSON形式で取得する WebAPIをサクッと作る – Qiitahttp://qiita.com/takatama/items/7aa1097aac453fff1d53
SDKを駆使して、セルA1に値があれば〜といった、ExcelVBA的なマクロを書かなくても良い!
結果DEMO
まとめ
l docomoの雑談対話APIで簡単にボットが出来上がるが、
それだけで個性的な面白いボットはつくれない
l Googleスプレッドシートを使えば簡単に対話シナリオ
APIが作れて、ボットから呼び出せる
l ドメイン外の対話を拾う手段として、docomoの雑談API
は有効
[参考]Tech-CircleBOTMashupWorldhttp://techcircle.connpass.com/event/30696/
31https://botawards.line.me/ja/
ENJOY 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/