自然言語の理解
適用対象: SDK v4
ボットは、構造化およびガイド付きから自由形式および自由形式まで、さまざまな会話スタイルを使用できます。 ユーザーの言うことに基づいて、ボットは会話フローで次に何を行うかを決定する必要があります。 Azure AI サービスには、このタスクに役立つ機能が含まれています。 これらの機能は、ボットが情報を検索したり、質問したり、ユーザーの意図を解釈したりするのに役立ちます。
ユーザーとボットとの対話は、自由形式であることが多く、ボットは文脈から自然に言語を理解する必要があります。 オープンエンドの会話では、さまざまなユーザー応答が存在する可能性があり、ボットは多かれ少なかれ構造やガイダンスを提供できます。 次の表は、ガイド付き質問と未解決の質問の違いを示しています。
ガイド | オープン |
---|---|
私は旅行ボットです。 次のオプションから 1 つ選択してください: フライトを検索する、ホテルを検索する、レンタカーを検索する。 | 旅行の予約のお手伝いができます。 何がしたいですか? |
他に必要なことはありますか? [はい] または [いいえ] をクリックしてください。 | 他に必要なことはありますか? |
Azure AI サービスには、インテリジェントなアプリ、Web サイト、ボットを構築するための機能が用意されています。 これらの機能をボットに追加すると、ボットがオープンエンドのユーザー入力により適切に応答できるようになります。
この記事では、Azure AI サービスで使用できる一部の機能に対する Bot Framework SDK のサポートについて説明します。
- これらの機能をボットに設計する方法のヒントについては、「 ナレッジ ボットを設計する」を参照してください。
- Azure AI サービスの詳細については、 Azure AI サービスのドキュメントを参照してください。
一般的なガイダンス
Azure AI サービスには、進化するテクノロジが組み込まれています。 Azure AI Language には、以前は個別のサービスとして実装されていたさまざまな機能が統合されています。 この記事では、新しい機能と古い機能とサービスの両方について説明し、それぞれに関する詳細情報を確認する場所について説明します。
シナリオ | ガイダンス |
---|---|
新しいボット開発 | メンバーがスキルと規範を組み合わせたチームをサポートするように設計された Power Virtual Agents の使用を検討してください。 詳細については、「 Power Virtual Agents 」と「 高度な AI 機能を有効にする」を参照してください。 |
既存の Bot Framework SDK ボット用の新しい言語プロジェクト | 会話言語理解 (CLU) や質問への回答など、Azure AI 言語サービスの機能を使用することを検討してください。 |
既存の言語プロジェクトを含む既存のボット | 言語プロジェクトは引き続き機能しますが、Azure AI 言語への移行を検討してください。 詳細については、この記事で後述する 「既存の言語プロジェクトを移行 する」セクションを参照してください。 |
言語の理解
自然言語理解機能を使用すると、カスタム自然言語理解モデルを構築して、ユーザーのメッセージの全体的な意図を予測し、そこから重要な情報を抽出できます。
サービスまたは機能 | 説明 |
---|---|
会話Language Understanding (CLU) | Azure AI Language サービスの機能。 |
Language Understanding (LUIS) | Azure AI サービス。 (CLU は LUIS の更新バージョンです)。) LUIS は 2025 年 10 月 1 日に廃止されます。 |
会話Language Understanding (CLU)
会話言語理解 (CLU) を使用すると、ユーザーはカスタムの自然言語理解モデルを構築して、受信した発話の全体的意図を予測し、そこから重要な情報を抽出することができます。 CLU は、クライアント アプリケーションの入力テキストを理解するためのインテリジェンスのみを提供し、それ自体でアクションを実行しません。
ボットで CLU を使用するには、言語リソースと会話プロジェクトを作成し、言語モデルをトレーニングしてデプロイしてから、要求を CLU API に転送する テレメトリ認識エンジン をボットに実装します。
詳細については、次を参照してください。
- 会話言語理解とは
- C#/.NET または JavaScript/node.js のテレメトリ認識エンジン インターフェイス リファレンス
- .NET 用 Azure Cognitive Language Services 会話クライアント ライブラリ
Language Understanding (LUIS)
注意
Language Understanding (LUIS) は、2025 年 10 月 1 日に廃止される予定です。 2023 年 4 月 1 日から、新しい LUIS リソースを作成することはできません。
LUIS は、ユーザーの会話型の自然言語テキストにカスタム機械学習インテリジェンスを適用して、全体的な意味を予測し、関連する詳細情報を引き出します。
ボットで LUIS を使用するには、LUIS アプリを作成、トレーニング、発行してから、 LUIS 認識エンジン をボットに追加します。
詳細については、次を参照してください。
質問と回答
質問と回答の機能を使用すると、ユーザーの質問に回答するためのナレッジ ベースを構築できます。 ナレッジ ベースは、FAQ、マニュアル、ドキュメントに記載されている半構造化コンテンツを表します。
サービスまたは機能 | 説明 |
---|---|
質問応答 | Azure AI Language サービスの機能。 |
QnA Maker | Azure AI サービス サービス。 (質問応答は、QnA Maker の更新バージョンです)。 Azure AI QnA Maker は、2025 年 3 月 31 日に廃止される予定です。 |
質問応答
質問応答では、データ上に自然な会話レイヤーを作成できるクラウドベースの自然言語処理 (NLP) が提供されます。 これは、任意の入力に対して、カスタム ナレッジ ベースの情報から最も適切な回答を見つける目的で使用されます。
ボットで質問応答を使用するには、質問応答プロジェクトを作成してデプロイし、質問応答 API に要求を転送する QnA Maker クライアント をボットに実装します。
詳細については、次を参照してください。
- 質問応答とは
- C#/.NET または JavaScript/node.js の QnA Maker クライアント インターフェイス リファレンス
- .NET 用 Azure Cognitive Language Services 質問応答クライアント ライブラリ
QnA Maker
注意
Azure AI QnA Maker は、2025 年 3 月 31 日に廃止される予定です。 2022 年 10 月 1 日から、新しい QnA Maker リソースやナレッジ ベースを作成することはできません。
QnA Maker には既存の FAQ サイトから質問と回答を収集する組み込み機能があり、質問と回答の独自のリストを手動で構成することもできます。 QnA Maker は自然言語処理機能を備え、予想と若干異なる言葉遣いの質問に対しても回答を提供できます。 しかし、それは意味言語理解能力を持っていないので、子犬が犬の一種であると判断することはできません。
ボットで QnA Maker を使用するには、QnA Maker サービスを作成し、サポート情報を発行して、QnA Maker オブジェクトをボットに追加します。
詳細については、次を参照してください。
検索
Azure Cognitive Searchは、ボットが、情報をファセットおよびフィルター処理する機能など、豊富な検索エクスペリエンスをユーザーに提供するのに役立ちます。
- Azure Cognitive Searchは、Azure AI 言語内の機能として使用できます。
- Azure Cognitive Search サービスは直接使用できます。
Azure Cognitive Search
Azure Cognitive Searchを使用して、データ ストアの検索、ファセット、フィルター処理に使用する効率的なインデックスを作成できます。
- Azure AI 言語内で Cognitive Search を構成する方法については、「 カスタム質問応答が有効なリソースを構成する」を参照してください。
- Cognitive Search Serviceの詳細については、「Azure Cognitive Searchとは」を参照してください。
複数の機能を一緒に使用する
複数の会話トピックを理解する多目的ボットを構築するには、各関数のサポートを個別に開始し、それらを統合します。 ボットが複数の機能を組み合わせるシナリオには、次のようなものがあります。
- 機能のセットを提供するボット。各機能には独自の言語モデルがあります。
- 複数のナレッジ ベースを検索して、ユーザーの質問に対する回答を検索するボット。
- 言語理解、質問への回答、検索など、さまざまな種類の機能を統合するボット。
この表では、複数の機能を統合するさまざまな方法について説明します。
サービスまたは機能 | 説明 |
---|---|
オーケストレーション ワークフロー | 複数の質問応答、CLU、LUIS プロジェクトを一緒に使用できる Azure AI 言語サービスの機能。 |
Bot Framework Orchestrator | 意図のみの認識エンジン。特定のメッセージを最も適切に処理できる LUIS モデルまたは QnA Maker サポート情報を決定するために使用できます。 |
Custom | 独自のロジックを実装して、ユーザーの要求を処理する最善の方法を決定できます。 |
オーケストレーション ワークフローを使用する
オーケストレーション ワークフローでは、機械学習インテリジェンスを適用して、会話言語理解 (CLU) コンポーネント、質問応答プロジェクト、LUIS アプリケーションを接続するためのオーケストレーション モデルを構築できます。
ボットでオーケストレーション ワークフローを使用するには、オーケストレーション ワークフロー プロジェクトを作成し、スキーマを構築し、モデルをトレーニングしてデプロイしてから、モデル API に対して意図予測のクエリを実行します。
詳細については、次を参照してください。
オーケストレーター
注意
Azure AI QnA Maker は、2025 年 3 月 31 日に廃止される予定です。 2022 年 10 月 1 日から、新しい QnA Maker リソースやナレッジ ベースを作成することはできません。
Language Understanding (LUIS) は、2025 年 10 月 1 日に廃止される予定です。 2023 年 4 月 1 日から、新しい LUIS リソースを作成することはできません。
Bot Framework Orchestrator は、意図のみの認識エンジンです。 Bot Framework CLI には、QnA Maker ナレッジ ベースと LUIS 言語モデルのコレクションから Orchestrator の言語モデルを生成するためのツールが含まれています。 その後、ボットは Orchestrator を使用して、ユーザーの入力に最も適切に応答できるサービスを決定できます。
Bot Framework SDK には、LUIS と QnA Maker の組み込みサポートが用意されています。 これにより、最小限の構成で LUIS と QnA Maker を使用してダイアログをトリガーしたり、質問に自動的に回答したりすることができます。
詳細については、「 Orchestrator で複数の LUIS モデルと QnA モデルを使用する」を参照してください。
カスタム ロジック
独自のロジックを実装するには、次の 2 つのメイン方法があります。
- メッセージごとに、ボットがサポートするすべての関連サービスを呼び出します。 最適な信頼度スコアを持つサービスの結果を使用します。 最適なスコアがあいまいな場合は、必要な応答を選択するようにユーザーに依頼します。
- 各サービスを優先する順序で呼び出します。 十分な信頼度スコアを持つ最初の結果を使用します。
ヒント
異なるサービスまたは機能の種類の組み合わせを実装する場合は、各ツールで入力をテストして、各モデルのしきい値スコアを決定します。 サービスと機能では異なるスコア付け基準が使用されるため、これらのツール全体で生成されるスコアは直接比較できません。
LUIS サービスと QnA Maker サービスはスコアを正規化します。 そのため、1 つのスコアは 1 つの LUIS モデルでは 適切 ですが、別のモデルでは適していません。
既存の言語プロジェクトを移行する
古いサービスから Azure AI 言語へのリソースの移行については、次を参照してください。
- LUIS、QnA Maker、Text Analytics からの移行
- LUIS アプリケーションとの下位互換性
- QnA Maker から質問応答への移行
- QnA Maker からカスタム質問と回答への移行
その他のリソース
特定のプロジェクトまたはリソースを管理するには:
- Azure リソースを管理するには、Azure portalに移動します。
- Azure AI 言語プロジェクトを管理するには、 Language Studio ポータルに移動します。
- LUIS アプリを管理するには、Language Understanding (LUIS) ポータルに移動します。
- QnA Maker ナレッジ ベースを管理するには、 QnA Maker ポータルに移動します。
特定の機能またはサービスに関するドキュメントの場合: