update.みなさん、メリークリスマス!okajaxです。チャットボットAdventCalendar201625日目の最終日は、チャットボットで使われる自然言語処理の仕組みを解説します!22日目のfullkawaさんの記事では「ユーザに提供するサービス」部分に機械学習を使ったBotの、実践的内容をご紹介していただきました。今回、この記事ではもう一方の「ユーザとボットのやりとり」の部分、つまり機械学習を使ってチャットボットの受け答えをもっと素敵する仕組みについてご紹介します!なお、AIとタイトルをつけていますが、ここでのAIとは「弱いAI」の事です。Cortanaといった便利な音声アシスタントたち!賢いですよね〜。本当に知性があるのではないかと錯覚してしまいます...!さて気になるのは、これら音声アシスタントの中身です。やって、人間がふつうに話す言葉を理解しているのでしょうか?“賢さ”を実現する「自然言語処理」という技術ふつう、機械は人間の言葉を理解できません。「自然言語処理」と呼ばれる技術をつかうことで、人間が使う自然な文章を機械が理解できるよう、構造化されたデータに変換することができます。「はじめまして、岡田と申します。いったAPI/サービスが存在しています。(※1)そして、これら全てのAPI/サービスに共通しているのが「インテント」と「エンティティ」という2つの概念。この2つを使って、機械は、自然な言語を理解しようとするのです!...っと、急に難しそうな横文字が出てきましたね。カテゴリー分けしていく概念です。カテゴリー分けしていく概念です。(※2)音声アシスタントくんの頭の中で、起きている事。この説明だけだと、何が何やらサッパリですね...。判別した「インテント」によって、実行するアクションを分岐させます。そのアクションに必要となる情報を「エンティティ」から呼び出します。この2つの情報がわかって初めて、実際のアクションを実行できます。彼の頭の中のなかでは下記のような事が起こっています。人間の言葉だ!人間の言葉は難しいな......。学習データをもとに、インテントとエンティティに分解してみよう。2この文章は、きっと......『アラームをセットしたい』というインテント(意図)の文章だな!よし、意図はわかったぞ!でも何時にアラームをセットすればいいんだ......?3うーん、エンティティ(意味のある単語)を探してみよう...。「明日」と「7時」という単語だ!4よし、人間が何をしたいかハッキリわかったぞ!「明日」の「7時」に『アラームをセットする』ように、スマホに命令をだそう!と、いった具合!まずインテントを分類して「何をしたいか」を判別します。エンティティを分類していってどれが「“したい事”に関係する、意味ある単語」なのかを判別します。あとは上記のアラームセットの例のように、この2つの情報をプログラムに渡してあげれば、人間の言葉とプログラムを繋ぐ事ができます!(※1実際のLUISの使い方を紹介した記事はこちらからご覧ください!)(※エンティティは直訳では「実体」です。これだと伝わりづらいので、私は「意味のある単語」と意訳しています。ほかにも「固有表現」だったり、ITmediaさんは「固有名詞」と訳していました。ちなみにAmazonLexの日本語ページでは、「インテントを満たすためにユーザーが提供しなければならないデータの断片」でした。うーん、ちょっとまだまだわらりづらいかも。良い訳の案がある方は是非コメントしてください!)さいごにいかがでしたしょうか!チャットボットや音声アシスタントが、どのように“賢さ”を手に入れているのかコンパクトに解説してみました。BITAデジマラボをご覧ください!インテントとエンティティ。今後、「チャットボットのUXを向上させたいよ!」と思っている方は覚えておくとよい概念かもしれませんね!AdventCalendar総合感想チャットボットAdventCalendar2016!ついに終了です!参加してくださった皆さん!本当にありがとうございましたーー!16日目の感想でも書いたのですが、ほんとうに多様な内容が集まった、楽しいAdventCalendarになりました!チャットボットをつくってみたいという方々の助けになれれば嬉しいですね〜ポエム〜さてさて!しかしながら、こうした機械学習の技術を、会話のやり取り面に取り入れたチャットボットって、まだまだ見かけませんよね。いろんな所で使いたいなーー!」と、思うのですが、モデルを学習させるコストもあるし、設計も大変になってくる部分があるかと思います。それを考えると、ホントに現実的・実用的なアプローチなのか??という判断は難しいです。本当はそもそも何のためにやるんだ...?本当にUXが向上するのか...?はたまた、チャットボットという形はやっぱり不便なのでは...?ほんとうに便利...?Slackが無くなったら、盛り上がりも消えてしまう...??などなどのこうした疑問。じつは、私にもあります。「チャットボット」ワードは流行りましたけど、きっと、まだまだ色んな事が確かめられていない分野だと思います。upLoginユーザーは見つかりませんでした。