Cognitive Services: 自然言語分類エンジンを LUIS (Language Understanding Intelligent Service) でスピード作成 ~ Prebuild Domain の利用方法


[English Version Available]

Cognitive Services: 自然言語分類サービス Language Understanding Intelligent Service (LUIS)

LUIS は口語などの文章を予め設定した分類に判別できる自然言語解析エンジンを作成でき、文章に含まれるエンティティを合わせて抽出できます。この自然言語解析エンジンは、お好みの分類(Intent と呼ばれます)と抽出したいエンティティ(Entity)を設定、典型的な例文(学習データ)をセットして自由に構成可能です。

2017年5月頃より各ドメインで良く使用される Intent と Entity をセットにした Prebuild Domain を使って、より簡単にエンジンを構成できるようになりました。以下では、この Prebuild Domain を利用して、自然言語解析エンジン (LUIS では App と呼ばれます) を構成する方法をご紹介します。(※ 2017/6 現在、LUIS では日本語を利用可能ですが、Prebuild Domain は英語のみの対応です。)

 

準備するもの

 

手順

LUIS ポータルへのアクセス&新規 LUIS App の作成

LUIS App に Prebuilt Domain & Prebuilt Entity を追加する

LUIS App の学習とテスト

LUIS App の公開とアクセス

 

LUIS ポータルへのアクセス&新規 LUIS App の作成

LUIS は ポータル  (https://www.luis.ai/) から新規作成、設定、管理を行います。[Sign in or Create Account] をクリックして、Microsoft アカウント でサインインします。

My Apps のページで、[New App] をクリックして新規 LUIS App を作成します。

Name (App名) を入力し、Culture (言語: 今回は "English") を選択肢、[Create] をクリックします。

新しい App が作成されると、Overview ページが表示されます。

 

LUIS App に Prebuilt Domain & Prebuilt Entity を追加する

左列のメニューから Prebuild domain をクリックし、Prebuilt Domains を表示します。

"Weather" を探してクリック、[Yes] をクリックして追加します。

Prebuilt Domain に含まれる Intent & Entity は、"Learn More" のリンクをクリックすると確認できます。

LUIS App に追加された Intent & Entity を確認しつつ、prebuilt entity も合わせて追加します。

左列のメニューにある Entities をクリックします。 Weather.Location という Entity が一つ追加されており、文章を解析して場所を抽出できるようになっています。Entities ページのメニューにある [prebuild entities] をクリックして、日付と時間を抽出する Prebuilt Entity を追加します。

datetime を選択して [OK] をクリックします。

今度は Intent を確認します。左列のメニューにある Intents をクリックします。Intent は Weather.GetCondition、Weather.GetForecast、と元々デフォルトで入っている None  の3つが確認できます。この Weather の Prebuilt Domain が追加された App は文章を、天気確認 (Weather.GetCondition)、天気予報 (Weather.GetForecast)、それ以外(none) の3つに分類します。

Intents ページのメニューで Weather.GetForecast をクリックして、utterances (学習データとして利用する例文) を確認します。[labels view] を変更すると、どの単語が Entity として認識されているのか確認できます。

 

 

LUIS App の学習とテスト

LUIS app を学習させます。 左列のメニューにある Train&Test をクリックします。[Train Application] をクリックして学習させます。

学習が終わると、テスト用コンソールが表示されます。文章を入力して、Intent と Entity の認識状況を確認します。

 

LUIS App の公開とアクセス

App を公開すると、API 経由でアクセスできるようになります。公開にはサブスクリプションキーが必要です。

左列のメニューにある Publish をクリックします。Publish App のページで Add new key to your account をクリックしてサブスクリプションキーを保存します。

My Keys のページで [Add a key] をクリック、Key Value にサブスクリプションキーをコピーして保存します。

 

Publish App のページに戻り、Endpoint Key から保存したキーを割り当てます。[Publish] をクリックして App を公開します。

App の公開が完了すると、Endpoint Url が表示されます。URL の末尾、"q=" の後に文章を入れると App で解析できます。

LUIS App の分析結果は、分類した Intent と抽出された Entities を Score (スコア: 信頼度) つきで JSON 形式で取得できます。

Comments (2)

  1. Mich says:

    はじめまして。
    LUIS V2での操作が分かり参考になりました。ありがとうございます。

    QA対応についてCognitiveの利用を検討しています。QnAMakerとLUISの使い分けが分かりません。上手く組み合わせて利用すると自然言語の意図をLUISで汲み取り、QnAMakerで適切に回答ができそうだと思っているのですが、誤りでしょうか。
    お忙しいとは思いますがよろしくお願いします。

    1. a y a k o says:

      Mich さん、ご返答遅くなりました。
      QnA Maker は自然言語解釈を含めて Q&A リストから適切な A (回答)を返しますので、LUISを利用することを前提としていません。
      QnA Maker を Call する前に自然言語解釈をさせるために LUIS を利用する場合は、LUIS の戻り値 (Intent と Entity) を QnA Maker で利用する Q&A リストの Q(質問) に上手くセットするのが良いかと思います。

Skip to main content