Language Understanding (LUIS) とはWhat is Language Understanding (LUIS)?

Language Understanding (LUIS) は、カスタム機械学習をユーザーの自然言語での会話に適用して、全体の意味を予測し、関連性のある詳細な情報を引き出すクラウド ベースのサービスです。Language Understanding (LUIS) is a cloud-based service that applies custom machine-learning to a user's conversational, natural language text to predict overall meaning, and pull out relevant, detailed information.

LUIS のクライアント アプリケーションは、ユーザーと自然言語でコミュニケーションを行ってタスクを完了する会話型アプリケーションであれば、どれでもかまいません。A client application for LUIS can be any conversational application that communicates with a user in natural language to complete a task. クライアント アプリケーションの例として、ソーシャル メディア アプリ、チャットボット、音声対応デスクトップ アプリケーションがあります。Examples of client applications include social media apps, chatbots, and speech-enabled desktop applications.

LUIS に情報を供給する 3 つのアプリケーションの概念図

LUIS アプリとは何かWhat is a LUIS app?

LUIS アプリには、自分で設計した特定の領域 (ドメイン) に固有の自然言語モデルが含まれます。A LUIS app contains a domain-specific natural language model you design. LUIS アプリは、構築済みのドメイン モデル、独自に構築したモデル、または構築済みのドメインの一部と独自の情報と一体化させたモデルで開始できます。You can start your LUIS app with a prebuilt domain model, build your own, or blend pieces of a prebuilt domain with your own custom information.

構築済みのドメイン モデルには、必要なものがすべて含まれているため、LUIS の使用をすぐに開始できる優れた方法です。Prebuilt domain models include all these pieces for you and are a great way to start using LUIS quickly.

LUIS アプリには、統合設定、コラボレーター、およびバージョンも含まれます。The LUIS app also contains integration settings, collaborators, and versions.

LUIS アプリの使用Using a LUIS app

LUIS アプリが発行されたら、クライアント アプリケーションは、LUIS エンドポイント API に発話を送信し、予測結果を JSON 応答として受信します。Once your LUIS app is published, your client application sends utterances to the LUIS endpoint API and receives the prediction results as JSON responses.

次の図では、最初に、何をしたいかをユーザーが自然言語で表現した発話のテキストがチャットボットによって HTTP 要求の形で LUIS に送信されます (1)。In the following diagram, first your client chatbot sends user text of what a person wants in their own words to LUIS in an HTTP request. 次に、LUIS が、学習済みのモデルを自然言語に適用して、ユーザーの入力を意味のあるものにし、JSON (JavaScript Object Notation) 形式の応答を返します (2)。Second, LUIS applies your learned model to the natural language to make sense of the user input and returns a JavaScript Object Notation (JSON) format response. その後、クライアント チャットボットが、JSON 応答を使用して、ユーザーの要求に対応します (3)。Third, your client chatbot uses the JSON response to fulfill the user's requests.

チャットボットと連携する LUIS の概念図

JSON エンドポイント応答の例Example of JSON endpoint response

JSON エンドポイント応答には、少なくとも、クエリの発話と上位スコアの意図が含まれます。The JSON endpoint response, at a minimum contains the query utterance, and the top scoring intent.

{
  "query": "I want to call my HR rep.",
  "topScoringIntent": {
    "intent": "HRContact",
    "score": 0.921233
  },
  "entities": [
    {
      "entity": "call",
      "type": "Contact Type",
      "startIndex": 10,
      "endIndex": 13,
      "score": 0.7615982
    }
  ]
}

自然言語モデルとは何かWhat is a natural language model?

モデルは、"航空券を予約する" や "ヘルプデスクに問い合わせる" などの一般的なユーザーの目的 ("意図" と呼ばれます) の一覧から始まります。A model begins with a list of general user intentions, called intents, such as "Book Flight" or "Contact Help Desk." この意図に対応するユーザーのサンプル テキスト ("発話例" と呼ばれます) を用意します。You provide user's example text, called example utterances for the intents. 次に、発話内の重要な単語またはフレーズ ("エンティティ" と呼ばれます) をマークします。Then mark significant words or phrases in the utterance, called entities.

モデルには、以下が含まれます。A model includes:

  • 意図: ユーザーの目的のカテゴリ (目的のアクションや結果)intents: categories of user intentions (intended action or result)
  • エンティティ: 数字、電子メール、名前などの発話内の特定の種類のデータentities: specific types of data in utterances such as number, email, or name
  • 発話例: ユーザーがクライアント アプリケーションに入力するテキストの例example utterances: example text a user enters in the client application

意図Intents

intention の短縮形である intent (意図) は、航空券の予約、請求書の支払い、ニュース記事の検索などの、ユーザーの発話によって伝達される目的や目標です。An intent, short for intention, is a purpose or goal expressed in a user's utterance, such as booking a flight, paying a bill, or finding a news article. 各アクションの意図を作成します。You create an intent for each action. LUIS 旅行アプリでは、"BookFlight" という名前の意図を定義できます。A LUIS travel app may define an intent named "BookFlight." クライアント アプリケーションでは、上位スコアの意図を使用して、アクションをトリガーできます。Your client application can use the top scoring intent to trigger an action. たとえば、LUIS から "BookFlight" という意図が返された場合、クライアント アプリケーションは、航空券を予約する外部サービスへの API 呼び出しをトリガーできます。For example, when "BookFlight" intent is returned from LUIS, your client application could trigger an API call to an external service for booking a plane ticket.

エンティティEntities

エンティティは、発話内で検出されたユーザーの要求に関連する詳細な情報を表します。An entity represents detailed information found within the utterance that is relevant to the user's request. たとえば、"パリ行きのチケットを 1 枚予約して" という発話では、要求しているのは 1 枚のチケットであり、場所は "パリ" であることを指示しています。For example, in the utterance "Book a ticket to Paris", a single ticket is requested, and "Paris" is a location. 1 枚のチケットを示す "チケットを 1 枚" と目的地を示す "パリ" という 2 つのエンティティが検出されます。Two entities are found "a ticket" indicating a single ticket and "Paris" indicating the destination.

LUIS によってユーザーの発話内で検出されたエンティティが返された後、クライアント アプリケーションは、エンティティの一覧を、アクションをトリガーするためのパラメーターとして使用できます。After LUIS returns the entities found in the user’s utterance, the client application can use the list of entities as parameters to trigger an action. たとえば、航空券の予約には、行先、日付、航空会社などのエンティティが必要です。For example, booking a flight requires entities like the travel destination, date, and airline.

LUIS には、エンティティを識別して分類するさまざまな方法が用意されています。LUIS provides several ways to identify and categorize entities.

  • 構築済みのエンティティ: LUIS には、意図、発話、および構築済みのエンティティを含む構築済みのドメイン モデルが多数あります。Prebuilt Entities LUIS has many prebuilt domain models including intents, utterances, and prebuilt entities. 構築済みのモデルの意図と発話を使用せずに、構築済みのエンティティを使用できます。You can use the prebuilt entities without having to use the intents and utterances of the prebuilt model. 構築済みのエンティティによって時間を節約できます。The prebuilt entities save you time.

  • カスタム エンティティ: LUIS では、さまざまな方法で、独自のカスタム エンティティ (機械学習によるエンティティ、具体的で逐語的なエンティティ、および機械学習によるエンティティと逐語的なエンティティの組み合わせなど) を識別する方法が用意されています。Custom Entities LUIS gives you several ways to identify your own custom entities including machine-learned entities, specific or literal entities, and a combination of machine-learned and literal.

発話の例Example utterances

発話例は、クライアント アプリケーションが理解する必要があるユーザーからのテキスト入力です。An example utterance is text input from the user that the client application needs to understand. "パリ行きのチケットを予約して" のような文の場合も、"予約" や "パリ便" のような文の一部の場合もあります。It may be a sentence, like "Book a ticket to Paris", or a fragment of a sentence, like "Booking" or "Paris flight." 発話は、常に整っているわけではなく、特定の意図を表す発話のバリエーションは多数あります。Utterances aren't always well-formed, and there can be many utterance variations for a particular intent. 意図ごとに 10 から 20 の発話例を追加し、すべての発話内のエンティティをマークします。Add 10 to 20 example utterances to each intent and mark entities in every utterance.

ユーザーの発話例Example user utterance 意図Intent エンティティEntities
"Book a flight to Seattle?" (シアトル行きの便を予約できる?)"Book a flight to Seattle?" BookFlightBookFlight シアトルSeattle
"When does your store open?" (お店は何時に開店しますか?)"When does your store open?" StoreHoursAndLocationStoreHoursAndLocation open (開店)open
"Schedule a meeting at 1pm with Bob in Distribution" (ディストリビューションのボブと午後 1 時にミーティング)"Schedule a meeting at 1pm with Bob in Distribution" ScheduleMeetingScheduleMeeting 1pm、Bob (午後 1 時、Bob)1pm, Bob

予測精度の改善Improve prediction accuracy

LUIS アプリが発行され、ユーザーの実際の発話を受信した後、LUIS はさまざまな方法で予測精度を改善できます (アクティブ ラーニングドメインの単語を含むフレーズ リスト、および必要な発話の数を減少させるパターン)。After your LUIS app is published and receives real user utterances, LUIS provides several methods to improve prediction accuracy: active learning of endpoint utterances, phrase lists for domain word inclusion, and patterns to reduce the number of utterances needed.

アクティブ ラーニングActive learning

アクティブ ラーニング プロセスでは、レビューを行うエンドポイントで LUIS アプリが受け取った発話を選択することで、現実の世界の発話にアプリを順応させることができます。In the active learning process, LUIS allows you to adapt your LUIS app to real-world utterances by selecting utterances it received at the endpoint for your review. エンドポイントでの予測の承認、修正、再トレーニング、および再発行を実行できます。You can accept or correct the endpoint prediction, retrain, and republish. この反復処理によって、LUIS の学習は、最小限の時間と労力ですばやく実行されます。LUIS learns quickly with this iterative process, taking the minimum amount of your time and effort.

フレーズ リストPhrase lists

LUIS では、重要な単語またはフレーズをドメイン モデルに指示できるように、フレーズ リストが用意されます。LUIS provides phrases lists so you can indicate important words or phrases to your model domain. LUIS は、これらのリストを使用して、それ以外の方法ではモデル内で検出されない単語またはフレーズに意味を追加します。LUIS uses these lists to add additional significance to those words and phrases that would otherwise not be found in the model.

パターンPatterns

パターンを使用して、単語の選択と単語の順序を含む共通テンプレートに意図の発話を集めることを単純化できます。Patterns allow you to simplify an intent's utterance collection into common templates of word choice and word order. これにより、必要な意図の発話例が少なくなることで、LUIS の高速での学習が可能になります。This allows LUIS to learn quicker by needing fewer example utterances for the intents. パターンは、正規表現と機械学習による表現のハイブリッド システムです。Patterns are a hybrid system of regular expressions and machine-learned expressions.

LUIS のオーサリングとアクセスAuthoring and accessing LUIS

LUIS アプリのビルドは、LUIS Web サイトから行うか、オーサリング API を使用してプログラムで行います。または、オーサリングの必要に応じて、両方を使用します。Build your LUIS app from the LUIS website or programmatically with the authoring APIs, or use both depending on the authoring need. 発行された LUIS アプリへのアクセスは、クエリ エンドポイントによって行ないます。Access your published LUIS app by the query endpoint.

LUIS Web サイトは、オーサリング リージョンに応じて、世界中で 3 つ用意されています。LUIS provides three websites around the world, depending on your authoring region. オーサリング リージョンは、LUIS アプリを発行できる Azure リージョンを決定します。The authoring region determines the Azure region where you can publish your LUIS app.

オーサリング リージョンと発行リージョンの詳細については、こちらをご覧ください。Learn more about authoring and publishing regions.

LUIS と連携するテクノロジWhat technologies work with LUIS?

Microsoft のさまざまなテクノロジが LUIS と連携しています。Several Microsoft technologies work with LUIS:

  • Bing Spell Check API は、予測を行う前にテキストを修正します。Bing Spell Check API provides text correction before prediction.
  • Bot Framework は、チャットボットがテキスト入力を介してユーザーと対話できるようにします。Bot Framework allows a chatbot to talk with a user via text input. ボット エクスペリエンスを完了するには、3.x または 4.x SDK を選択します。Select 3.x or 4.x SDK for a complete bot experience.
  • QnA Maker は、多種多様なテキストを質問と回答のナレッジ ベースに統合できるようにします。QnA Maker allows several types of text to combine into a question and answer knowledge base.
  • Speech は、話し言葉による要求をテキストに変換します。Speech converts spoken language requests into text. 要求は、テキストに変換された後、LUIS によって処理されます。Once converted to text, LUIS processes the requests. 詳細については、Speech SDK を参照してください。See Speech SDK for more information.
  • Text Analytics は、感情分析とキー フレーズ データ抽出を行います。Text Analytics provides sentiment analysis and key phrase data extraction.

次の手順Next steps

構築済みまたはカスタム ドメインを使用して、新しい LUIS アプリを作成します。Create a new LUIS app with a prebuilt or custom domain.