Build2016 : LUIS による自然言語入力解析

LUIS (Language Understanding Intelligent Service)

Build 2016 で Bot アプリケーション開発の中で紹介されていた LUIS(Language Understanding Intelligent Service) (beta) は、現在どなたでも試用可能になっています。今回の Bot アプリでは、自然言語(話ことばに近い文章) を解析し、返答に必要な要素を認識する役割を担っています。

例えば、ニュース検索を行う Bot アプリを作成する際、入力された文章 ("Tell me news about Microsoft") から返答に必要な要素 (Action: "Get News", Subject: "Microsoft") を返す、という部分を LUIS で実行することができます。

利用するには、Web サイト (https://www.luis.ai/) からマイクロソフトアカウントでログインします。

bluesky_20160404_01

 

新規アプリケーションの作成

新規にアカウント作成すると、チュートリアルが始まります。後でもう一度見たい場合は、[Start Tutorial] から。

[+New App] から新規アプリケーションを作成します。言語は英語を選択しておきます (現在 英語/フランス語/イタリア語/スペイン語/中国語 のみ対応)。

bluesky_20160404_02 bluesky_20160404_03

こちらの管理画面で、入力される文章から判別したいパラメーター、エンティティである"Entity"、リターンアクションとなる "Intent" を作成します。例えば、以下のような入力から識別したい要素 (Entity, Intent) を作成します。

入力 Intent(=アクション) Entity (=パラメーター)
Subject Person ・・・
Tell me news about Microsoft GetNews Microsoft --
Share news on Azure to Annie ShareNews Azure Annie
How can I use you? GetHelp -- --

 

まず、左サイドバーの [Entities] にある (+) をクリックして、Entity から作成します。Entity は入れ子 (Children) を作成できます。(例: "Date" の Child Entity として "StartDate", "EndDate")

次に Intent を作成します。作成の際に入力文章のサンプルを入力します。また、Intent とともに返すパラメーター(戻り値)を設定できます。

  

Intent 作成が完了すると、まず入力サンプルで識別したい Entity の確認画面が表示されます。

この後も [New Utterances] タブから いくつか文章サンプルを入力し、Intent および Entity を学習させる作業を行います。学習させたサンプルは [Review label] から確認できます。

bluesky_20160404_06 bluesky_20160404_08

左下端の [Train] をクリックして、入力サンプルを学習させたら、左サイドバーの [Publish] からサービス公開します。

[Query] に入力値を入力すると、その下に URL が生成されます。クリックすると JSON 形式で結果が返ってくることが確認できます。

 


 

[追記]

アプリケーションの Import/Export, テンプレートの利用

上記で作成を行ったアプリは JSON 形式で Export/Import できます。また、いくつかテンプレートが用意されており、そちらを利用することも可能です。

Definition Channel / HTTP Channel / News Channel / Utility Channel / Stocks Channel / TimeZone Channel / Weather Channel /

Import した後は、Train を忘れずに。