Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Bot ServiceとLUISとちょっとだけIoTの話

Azure Bot ServiceとLUISとちょっとだけIoTの話

2017/12にGAしたAzure Bot ServiceとLUISの解説から、ChatBot作成の勘所とIoTでの利用シナリオなどについてお話ししました。
文中に登場する主な要素技術
・Azure Bot Service
・Microsoft Bot Framework
・Web App Bot
・Bot Channels Registration
・Functions Bot
・Cognitive Services Language Understanding Intelligent Service

motoriderse

March 27, 2018
Tweet

More Decks by motoriderse

Other Decks in Programming

Transcript

  1. Botとは Wikiにこう書いてあります。  https://ja.wikipedia.org/wiki/Bot Bot(ボット)は、robot(ロボット)の短縮形・略称。転じて、 コンピュータやインターネットの分野においては、作業を自動 化するプログラムの総称。  クローラ、インターネットボット -

    WWWにおいては、ウェブ サーバとのやりとりを自動的に行うプログラム。  ボットネット - コンピュータウイルスなどにより自動化されたコ ンピューターのネットワークで、スパムなどに利用される。  ボット (ゲーム) - オンラインゲームなどで使われるAIのプレイ ヤー。
  2. 人工知能と人口無能(無脳)  人工知能(AI)とは(理想論含む)  人間の思考そのものをコンピュータ上で再現が目的。  例えば、会話の文脈や意味を理解。  Siriに「こないだのあれどうしたっけ」と夫婦のように聞いても答えられない。 

    いわゆる空気を読む、ということ。  言ったもん勝ち的なとこもある。  厳密にはAIじゃないけど開発者がAIって言っちゃうと認知されちゃう。  人口無能とは  基本的には「しゃべる」⇒「マッチする文章を返す」という仕組み  考える、ではなくあらかじめ用意した答えを返す。  AIに対しKYである。
  3. 人工知能の定義  以下の2分類に分けられる。  特化型  特定の役割や機能に特化したもの。  囲碁のAIは車を運転できないし、自動運転AIは医療的な診断は出来ない。 

    車の運転が上手になるように関連するデータをたくさん入れれば上手くなるかもしれないが 囲碁や将棋は覚えられない。  ほとんどはパターン認識。  膨大なパターンから最適解を瞬時に判断。  つまり経験してないことは知らない。(ある意味応用がきかない)  汎用型  誰もが納得する定義はまだ存在しない。  基本的には特化型の逆で応用が利きなんなら勝手に学習してくれる。  データにないものも閃き的な対応をするとか。  未だ実現は出来ていないらしい。  Watsonなんかは実は特化型を寄せ集めたAPI群。
  4. 賢さを実現するには  自然言語処理  形態素解析  日本語は「分かち書き」されない This is a

    pen. これはペンです。 ⇒ これ は ペン です。  構文解析と曖昧性の解消  美しい パン屋の レジの 子 美しいのはパン屋?レジ?レジの子?  照応解析  日本語は主語や色々が省略されがち 母ちゃん、夕飯は? 誰の?いつの?
  5. 作り方  大きく分けると4タイプ  メッセージングアプリAPI  特定のメッセージングアプリでチャットボットを作る場合、プラットフォームが提供する しているAPIを利用。  Facebook、LINE

     Bot開発フレームワーク  botkit(Slack、Facebookメッセンジャーに対応)  Microsoft Bot Framework(Skype、Slack、Facebookメッセンジャー等に対応)  Amazon Lex(Facebookメッセンジャー、LINE等に対応)  クラウドAIサービス  Watson、Wit  チャットボット作成サービス  非エンジニアでもブラウザ上でチャットボットを作成することが可能  Repl-AI、ChatFuelSss
  6. Azure Bot Service とは  デバイスの種類を問わず複数のチャネルへ接続可能なchatbotの開発とホ スティングのためのスケーラブルな統合環境を提供。  テキスト、音声、カード、画像などのさまざまな形式のインターフェイス。 

    Cortana、Facebook Messenger、Skype など  開発用にBot builder SDK、チャネルに接続するためのBot Frameworkな ど、作成に必要なコアコンポーネントを提供。  オンラインエディターもある。
  7. Azure Bot Service とは  Azureポータルからは以下が作成可能  Web App Bot

    Web App とボット用のチャネル登録を統合したサービス  Bot Channels Registration 既にボット用 API がある場合に使う、チャネル登録サービス  Functions Bot Azure Functionsとチャネル登録を統合したサービス
  8. Azureポータルからリソースを作成する  AI + Cognitive Services ⇒ Web App Bot

     無料から使える。  Functions Botで作成する場 合は従量課金かApp Serviceプランのどちらかを 選ぶ。
  9. 4つのテンプレート  言語はC#かNode.jsを選択  Basic  ユーザー入力をエコー バックするダイアログが 1 つあるボット。

     Form  FormFlow を使用したガイド付き会話を使用してユーザーからの入力を収集する。  Nodeの場合はウォーターフォール関数。  Language understanding  Cognitive Services の LUIS API を使用して自然言語を処理。  Question and Answer  ナビゲーションが簡単な会話形式の回答を生成。
  10. LUISとは  正式にはCognitive Services Language Understanding Intelligent Service  自然言語の分析、判定を行うエンジン(分析モデル)作成

     3つの概念で構成  インテント  ユーザーが実行したいアクションのこと。  これらのアクションに対応するインテントを定義して名前を付けます。  発言  ユーザーからのテキストまたは音声入力。  エンティティ  関連する詳細な情報を表します。  ユーザーの発言に記載されているエンティティを認識してラベルを付けることで、ユー ザーの要求に答えるための特定のアクションを選択するのに役立ちます。
  11. 参考リンク https://ja.wikipedia.org/wiki/Bot https://sitest.jp/blog/?p=5592 https://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%84%A1%E8%84%B3 http://www.rogerschank.com/fraudulent-claims-made-by-IBM-about-Watson-and-AI https://hitobo.io/blog/overview-of-the-chatbot/ https://ja.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A 6%E7%90%86 https://azure.microsoft.com/ja-jp/services/bot-service/ https://blogs.msdn.microsoft.com/bluesky/2017/12/14/cognitive-services-luis-azure-bot-service-

    ga-ja/ https://blogs.technet.microsoft.com/jpitpro/2017/12/26/conversational-bots-deep-dive-what-s- new-with-the-general-availability-of-azure-bot-service-and-language-understanding/ https://blogs.msdn.microsoft.com/kenakamu/2017/12/23/bot-service-and-luis-ga-whats-new/ https://docs.microsoft.com/en-us/bot-framework/bot-service-scenario-internet-things https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-csharp-node-direct-methods