Oracle Cloud Infrastructureドキュメント

目的

インテントによって、スキルはユーザーが望む内容を理解できます。 インテントは、スキルが実行するタスクやアクション別に、典型的なユーザー・リクエストを分類します。 PizzaBotのOrderPizzaインテント。たとえば、ダイレクト・リクエストであるピザをオーダーしたいというラベルを、リクエストであるピザを食べたい気分だを示す別のリクエストとともにラベルに付けます。

インテントは、一般的なユーザー・リクエストと文の組合せで構成されます。これらは発話とも呼ばれます。 「インテントの作成」に記述されているように、特定のアクションの発話のコンパイルを命名して、インテントを作成できます。 スキルの認識はこれらのインテントから導出されるため、各インテントは堅牢(1から2ダースまでの発話)なデータ・セットから作成されて変化するため、スキルによってあいまいなユーザー入力が解釈されます。 発話の豊富なセットにより、このオーダーを忘れた場合!や配信の取消!のようなメッセージを受信した場合に、スキルでユーザーが望むことを理解できます。また、メッセージは同じことで表現されることもあります。 サンプル・ユーザー入力によってスキルの学習がどのように許可されているかを調べるには、「インテント・トレーニングおよびテスト」を参照してください。
ノート

インテントおよびカスタム・エンティティは、自動翻訳サービスを最初に構成せずに、英語および簡体字中国語で定義できます。
他の言語の場合は、自動翻訳サービスを構成する必要があります。

インテントの作成

インテントを作成するには:
  1. 左側のナビゲーション・バーで、「インテント」 (これはインテント・アイコンのイメージです。)をクリックします。
  2. CSVファイルにすでにトレーニング・データが定義されている場合は、「インテントのインポート」をクリックします。 「CSVファイルからインテントをインポート」では、このファイル・フォーマットについて説明しています。 それ以外の場合は、インテントの追加をクリックします。 スキルは少なくとも2つのインテントを必要とします。
  3. 「会話名」フィールドにインテントのわかりやすい名前またはフレーズを入力します。 たとえば、インテント名が残高の場合、会話名は口座残高の確認になります。 スキルでインテントにメッセージを解決できない場合は、「信頼度ウィン・マージンの仕組み」および「インテントおよびQ&Aルーティングの構成」に説明されている実行しますか対応付けメッセージにリストされるオプションとして、会話名フィールドに入力したわかりやすい名前とフレーズが出力されます。
  4. インテント名を「名前」フィールドに追加します。 会話名を入力しない場合は、名前のフィールド値がかわりに使用されます。 エンド句読点を持たない短い名前は、ユーザー・エクスペリエンスに関与しない場合があることに注意してください。 インテント名は、Digital Assistantの前のバージョンで作成されたスキルの会話名フィールドに表示されます。
  5. オプションのステップとして、インテントの説明を追加します。 ここで説明する内容は、で実行されるタスクやアクションに重点を置いている必要があります。
  6. インテントの背後の意味を説明する発話を追加して、トレーニング・コーパスの構築を開始します。 最適なインテント解決を確実にするには、個々のインテントに固有の用語、表現およびフレーズを使用します。 理想的には、トレーニング・データは現実のフレーズを基にしてください。ただし、設定していない場合は、各インテントに1対多の発話を目標とします。 ここで言うと、Trainer Htを使用してスキルをトレーニングする場合、そのスキルを上げて、それよりも少ない(3から5)で実行できます。 入力フィールドの外側をクリックすると、発話を保存できます。 トレーニング・セットを管理するには、編集 (これは編集ボタンのイメージです。)および削除 (これは削除機能のイメージです。)機能にアクセスする行を選択します。
    または、「CSVファイルからのインポート」によって、インテントのセット全体とそれぞれの発話を追加することもできます。
    スペル・ミスの多い単語や誤用の単語を含む発話を追加することによって、スキルをより回復可能にします。 「トレーニング・コーパスのビルド」を参照してください。
    スキルでインテントを明確に区別できるように、不適切なユーザー入力または要旨を解決するインテントを作成します。
  7. インテントでユーザー入力を解決するためにエンティティを追加する必要がある場合は、エンティティを追加します。 その方法については、「インテントへのエンティティの追加」を参照してください。
  8. 現在までに提供した発話のセットを使用してユーザー入力を指導するには、「トレーニング」をクリックし、モデルを選択してから送信をクリックします。
    「使用するトレーニング・モデル」で説明しているように、コーパスから学習する2つのモデルを提供: Trainer HtおよびTrainer Tm。 それぞれ、異なるアルゴリズムを使用して、インテントに対するユーザー入力が調整されます。 Trainer Htは、単語ベクトルを使用する機械学習アルゴリズムであるTrainer Tmで、パターン一致を使用します。 通常は、次のプロセスに従います:
    1. 初期トレーニング・コーパスを作成します。

    2. Trainer Htを使用してトレーニングします。 大きい発話のセットは必要ないため、Trainer Htを起動する必要があります。 インテントを明確にするには十分な発話があるかぎり、スキルでユーザー入力を解決できます。

      スキルをトレーニングしようとするときに問題が発生しましたメッセージが表示される場合、トレーニングをサポートする十分な数の発話を追加していない可能性があります。 最初に、少なくとも2つ(以上)の発話を持つインテントが2つ以上あることを確認します。 十分な発話を追加していない場合は、いくつか追加してからスキルをトレーニングしてください。

    3. コーパスを改良して、Trainer Htを再学習してください。 必要なトレーニングを繰り返すことは、反復プロセスです。

    4. Trainer Tmを使用したトレーニング。 堅牢なインテントのセットを累積した場合は、このトレーナを使用します。

    トレーニングボタン(これは)は、インテントを追加するたびに、またはインテントの更新時に、その発話の追加、変更または削除によってアクティブになります。 トレーニングを最新にするには、トレーニング・モデルを選択してからトレーニングをクリックします。 モデルは、トレーニングが必要なときは常に感嘆符を表示します。 トレーニングが最新の場合は、チェック・マークが表示されます。

  9. 「試してみましょう。」>インテントをクリックします(選択されていない場合)。 次に、テスト・セットと同様のフレーズをいくつか入力します。
    インテント・テスト結果を記録するには、会話インテント・ロギング(設定>一般>インサイトの有効化)を有効にします。 「履歴レポートの実行」では、このデータの使用方法について説明しています。 スキルが本番環境である場合は、必ずこの(およびすべての)ロギング・オプションをオフにしてください。

インテントへのエンティティの追加

いくつかのインテントでは、ダイアログ・フロー内でアクションを実行したり、バックエンドAPIに対するRESTコールを実行するために、エンティティ(組込みおよびカスタムの両方)が必要となります。 システムで使用されるのは、インテント・エンティティと呼ばれ、それに関連付けられたインテントを実行します。 新規エンティティの追加をクリックし、カスタム(これはカスタム・アイコンのイメージです。)または組込み(これはシステム・アイコンのイメージです。)エンティティから選択するときに、エンティティをインテントに関連付けることができます。

または、新規エンティティをクリックしてインテント固有のエンティティを追加できます。

ヒント:

JSONペイロードに含まれているインテント・エンティティのみ、コンポーネント・サービスに送信され、コンポーネントによって返されます。 インテントと関連付けられていないインテントは、ユーザー入力を認識することでインテント解決に関与していても含められません。 カスタム・コンポーネントがエンティティに一致することによってアクセスする場合、そのエンティティをインテントに追加してください。

CSVファイルからのインテントのインポート

インテントは、手動で追加したり、CSVファイルからインポートできます。 このファイルは、別のスキルからインテントとエンティティをエクスポートするか、スプレッドシート・プログラムまたはテキスト・ファイルで最初から作成することによって作成できます。

CSVファイルには3つの列があります : querytopIntentおよびconversationName :
query,topIntent,conversationName
I want to order a pizza,OrderPizza,Order a Pizza.
I want a pizza,OrderPizza,Order a Pizza.
I want a pizaa,OrderPizza,Order a Pizza.
I want a pizzaz,OrderPizza,Order a Pizza.
I'm hungry,OrderPizza,Order a Pizza.
Make me a pizza,OrderPizza,Order a Pizza.
I feel like eating a pizza,OrderPizza,Order a Pizza.
Gimme a pie,OrderPizza,Order a Pizza.
Give me a pizza,OrderPizza,Order a Pizza.
pizza I want,OrderPizza,Order a Pizza.
I do not want to order a pizza,CancelPizza,Cancel your order.
I do not want this,CancelPizza,Cancel your order.
I don't want to order this pizza,CancelPizza,Cancel your order.
Cancel this order,CancelPizza,Cancel your order.
Can I cancel this order?,CancelPizza,Cancel your order.
Cancel my pizza,CancelPizza,Cancel your order.
Cancel my pizaa,CancelPizza,Cancel your order.
Cancel my pizzaz,CancelPizza,Cancel your order.
I'm not hungry anymore,CancelPizza,Cancel your order.
don't cancel my pizza,unresolvedIntent,unresolvedIntent
Why is a cheese pizza called Margherita,unresolvedIntent,unresolvedIntent
CSVファイルをインポートするには:
  1. 左側のナビゲーション・バーで、インテント (これはインテント・アイコンのイメージです。)をクリックします。

  2. 詳細をクリックし、インテントのインポートを選択します。
    import_intents.pngの説明は以下のとおりです
    図import_intents.pngの説明

  3. .csvファイルを選択し、開くをクリックします。
    ノート

    以前のバージョンのDigital AssistantからCSV生成をインポートできます。
    Digital Assistantにより、 topIntentエントリを使用して会話名が移入されます。
  4. スキルをトレーニングします。

CSVファイルへのインテントのエクスポート

トレーニング・コーパスは、CSVにエクスポートすることで再利用できます。 その後、このファイルを別のボットにimportできます。

インテントとその発話をエクスポートするには:
  1. 左側のナビゲーション・バーで、インテント (これはインテント・アイコンのイメージです。)をクリックします。

  2. 詳細をクリックし、エクスポートのインテントを選択します。
    export_corpus.pngの説明は以下のとおりです
    図export_corpus.pngの説明

  3. ファイルを保存します。

使用するトレーニング・モデル

スキルの認識を固めるトレーニング・モデルの2つを提供します。 これらのモデルのいずれかまたは両方を使用でき、それぞれで機械学習に異なるアプローチを使用します。 いずれかのモデルでトレーニングが完了した後、データ品質レポートを実行します。

Trainer Ht

Trainer Htはデフォルトのトレーニング・モデルです。 これには小さいトレーニング・コーパスのみが必要なため、エンティティ、インテントおよびトレーニング・コーパスを開発するときに使用します。 トレーニング・コーパスが、テストにより非常に正確なインテント解決が判明した時点に達すると、トレーニングTrainer Tmにより、ボットのコン・クラスにさらに深くディメンションを追加できます。

Trainer Htがトレーニング・コーパス自体からのみインテントを解決する方法に関する一般的な理解を得られます。 これは、品詞およびエンティティの一部(カスタムと組込みの両方)をタグ付けすることによって、一致するルールをサンプル・ステートメントから形成します。また、同じ意味を持つ単語をインテントのコンテキスト内で検出することもできます。 たとえば、SendMoneyというインテントに$ 500をMomに送信支払係$ 500の両方がある場合、Trainer Htは支払と同等の送信と解釈します。 トレーニング後、Trainer Htのタグ付けにより、ユーザー入力に適用されるテンプレート(通貨を個人に送信支払個人通貨)に対する文が削減されます。

Trainer Htでは提供される文の図が示されるため、その動作を予測できます: トレーニング・コーパスを構成する文(ルールに準拠するユーザー入力)に類似した文でテストすると非常に正確になりますが、問合せのユーザー入力との競合が発生すると、より適切になります。
ノート

Trainer Htはデフォルトのモデルですが、設定>一般をクリックしてリストから別のモデルを選択すると、このモデルを変更できます。
デフォルトのモデルは、ボット・カタログのタイルに表示されます。

Trainer Tm

Trainer Tmは、ベクトルや他のテキストベースの機能に基づく機械学習を使用します。 一致ルールには、Trainer Htほど重くはフォーカスしません。 かわりに、Trainer Tmがハイパーパラメータ・テストを実行します。

Trainer TMは、英語のボキャブラリを対象としており、頻繁に使用される単語の意味を理解しています。 Out of Vocabulary (OOV)単語のサポートにより、英語で共通で使用される外国語を認識できますが、非英語発話のセマンティック整合性は維持されません。

unresolvedIntentを使用したTrainer TMのインテント分類の改善

Trainer Tmの発話分類を改善するには、どのインテントにも属さない各種の発話を認識できるようにトレーニングする必要があります。 これを行うには、コーパスの外側にあるフレーズを表すunresolvedIntentという名前のインテントを作成し、そのスキルをTrainer Tmでトレーニングします。

たとえば、OrderPizzaとCancelPizzaの2つのインテントを持つスキルをトレーニングする場合、Trainer Tmはピザ・オーダーを取り消しませんをCancelPizzaのインテントに分類します。 unresolvedIntentがない場合、ピザ・オーダーを取り消しませんをCancelPizzaの発話外に置いても、このインテントに対するTrainer Tmリソースは変わりません。

未解決の自動インテント検出

未分類入力を表す発話を使用してunresolvedIntentをトレーニングできますが、不必要な入力をすべて入力することはできません。 Trainer Tmがこれらのメッセージを誤って分類しないようにするには、未解決のインテントの検出 (設定一般の順にクリックしてアクセス)を切り替えます。 このオプションは、デフォルトのトレーナとしてTrainer Tmを選択した場合に使用可能で、各着信問合せと既存のトレーニング・データを比較します。 問合せとトレーニング・データが大幅に異なる場合は、その問合せをunresolvedIntentとして分類します。

トレーニング・コーパスのビルド

インテントを定義する場合は、まず一部のユーザー・アクションを示す名前を付け、一連の実際のユーザー文または発話をコンパイルすることでフォロー・アップします。 インテントとそれに属する発話をまとめて、トレーニング・コーパスを構成します。 コーパスという用語は、このスキルをスマートにするために使用したすべてのインテントおよびサンプル・フレーズをすばやく表現する方法です。 コーパスは、スキルのインテリジェンスの鍵です。 コーパスによるモデルをトレーニングすることで、実質的には、そのモデルを参照ツールに変換して、単一のインテントへのユーザー入力を解決します。 トレーニング・コーパスは、最終的には、会話のマスキングを決める際の重要なロールを果たすため、会話をビルドする際は慎重に単語を選択する必要があります。

一般に、大規模で様々なサンプル・フレーズ・セットにより、インテントを正確に解決するモデルの能力が高まります。 しかし、堅牢なトレーニング・コーパスの構築は、整形式のサンプル・フレーズで始まるだけでなく、実際は明確に表現されたインテントで始まります。 使用例が明確に示されているだけでなく、その使用例と同じセンテンスとの関係が明確に明らかになります。 サンプル・センテンスがどこに属しているかわからない場合、インテントは相互に区別されません。

インテントを作成する際に、サンプルの発話がある可能性がありますが、次のガイドラインを使用すると拡張できます:
  • 可能な場合は、インテントごとに12から24サンプル・フレーズを作成します。 スペルの間違いやスペル・エラーを含む、変更されていない現実語のフレーズを使用します。 追加する例が多いほど、スキルが回復可能性が高くなります。

  • 現実世界のフレーズがない場合は、独自のサンプル・フレーズを作成します。 ボットをデプロイするときは、対話ログを使用してコーパスを改善できます。 スタータ発話の場合は、次のものを使用して、用語と文の構造を1つまたは2つの組合せで変更します:
    • スラング単語 (moolar, lucr, dough)

    • 共通の式(AccountBalanceと呼ばれるインテントのための監視)

    • 代替語(現金を貯蓄に送信資金を貯蓄に送信貯蓄に金額を送信現金を貯蓄に転送)。

    • 各種オブジェクト・カテゴリ(ピザをオーダーしたいなにか食べ物をオーダーしたい)。

    • スペルの代替(小切手、小切手)

    • 一般的なスペル・ミス("business"に"buisness")

    • 一般的でない単語の順序(当座口座へ、$20送信)

    • インテントをスキップするためのパラレル・サンプル・フレーズを作成します。 CancelPizzaOrderPizzaなどのインテントに対しては、ピザをオーダーしたいピザをオーダーしたくないなどの対照的な文を定義します。

    • 特定の単語またはフレーズが特定のインテントを示す場合、正確な一致の確率を上げるには、トレーニング・データをその単語やフレーズ自体のみでなく、シノニムやバリエーションも使用してください。 たとえば、OrderPizzaインテントのトレーニング・コーパスには、ピザをオーダーしたいオーダーを出したいなにか食べ物をオーダーしたいなどの"I want to"フレーズの濃度が高くなるでしょう。 同様に、このピザを取消したいこのオーダーを止めたい他にオーダーをしたいなどのサンプル・フレーズを持つCancelPizzaインテントなど、自由に使用しすぎるとトレーニングが歪んでしまう可能性があるため(たとえば、)、他のインテントには慎重に使用してください。 インテントのトレーニング・セット内で出現する一意の語句が多い場合は、最初のセンテンスを修正するか、他のインテントにも同じ上書きを使用する必要があります。

      私は空腹ですピザにしますなど、同じインテントを表す様々なコンセプトを使用します。

  • 文の一部と単一の単語は使用しないでください。 かわりに、完全な文(最大255文字)を使用してください。 1つのキーワード例を使用する必要がある場合は、慎重に選択してください。

  • 大文字小文字の区別の監視: エンティティを適切な名詞(Susan、Texasなど)を抽出し、その他のすべての場所では小文字を使用する場合、大文字を使用します。

  • 適切なインテントに一致しない文を追加して、コーパスを持ち上げます。

  • テスト・コーパスをCSVファイルのまま維持し、詳細インテントのエクスポートの順にクリックしてバッチ・テストのインテント解決を実行します。 新しいインテント例を追加するとパフォーマンスが低下する可能性があるため、いくつかのテスト・フレーズを追加してインテント解決動作を安定させることができます。

インテント・トレーニングおよびテスト

トレーニング・コーパスにモデルをトレーニングすると、ボットによって、どのユーザーが何を述べたかを識別できます(または、場合によっては、そうなることもあります)。

インテント・テストおよびインテント・トレーニングのラウンドによって、認識したアサーションを改善できます。 トレーニングはインテント定義のみで制御します。スキルはユーザー・チャットから独立して知ることはできません。

テスト・セット

スキルのテストおよび残りの80%でスキルのトレーニングを行うために、コーパスの20%を確保しておくことをお薦めします。 これら2つのセットを別々に保持して、テスト・セットがスキルに対して不明のままになるようにします。

80/20分割を各インテントのデータ・セットに適用します。 この分割を行う前に発話をランダム化して、トレーニング・モデルで発話内の条件およびパターンを均等に加重できるようにします。

インテント・テスター

インテント・テスターは、スキルの認識につながるウィンドウです。 トレーニング・コーパスの一部ではないフレーズ(テスト・セットで保守した発話)を入力することで、ランキングおよび返されたJSONにより、インテントおよびエンティティの作成状況を確認できます。 このランキングは、ユーザー入力を解決するための最良の候補者に対するスキルの推定で、現在の時間でのおけることを意味します。

インテント・テスト
インテントおよびエンティティの動作を確認するには:
  1. Try It Out!(右側)をクリックします。
    「Try It Out!」オプションのイメージです。
  2. トレーニング・セットに含まれないテキストの文字列を入力してください。
  3. 「送信」をクリックして、ランキングを確認します。

  4. JSONウィンドウを展開して、スキルがインテントをランク付けする方法を確認し、入力と一致したエンティティを確認します。

    スキルの上位ランクの候補が期待していたものと異なる場合は、次のいずれかまたは両方を実行した後にインテントを再トレーニングする必要があります:
    • 入力したばかりの入力テキストで、候補者のコーパスを更新する-適切なインテントを選択して、例の追加をクリックします。

      注意:

      テスト・フレーズを追加する前に、トレーニング・データへの影響を考慮します。 テスト・フレーズを追加すると、再トレーニング後に、そのような発話が分類される方法を変更できます。 さらに、テスト・フレーズを追加するとテストが無効になります。テスト・フレーズがトレーニング・セットに組み込まれるため、テストが成功することが保証されます。
    • 編集 (これは編集ボタンのイメージです。)関数および削除 (これは削除機能のイメージです。)関数を使用してコーパスを編集し、システムを修正します。 たとえば、FAQインテントは、その構成の発話のスコープとフレーズが原因で、上位ランクを受け取る場合があります。 ユーザーが一般的な質問を尋ねたときにFAQを取得できないようにする場合は、コーパスを改訂する必要があります。

    発話を追加、変更または削除するたびに、インテントを再取得する必要があります。 使用済トレーニングアイコン(これは)は、トレーニングが期限切れになる時期を示します。 再トレーニングが完了したら、リセット (これはリセット・ボタンのイメージです。)をクリックし、テスト・フレーズを再度送信します。

インテント・テスト履歴

トレーニング・データをCSVファイルにエクスポートし、インテントがトレーニングされた方法を確認できます。

これらのログをMicrosoft Excelなどのテキスト・エディタまたはスプレッドシート・プログラムで確認すると、各ユーザー・リクエストとボットの応答を表示できます。 これらのログをソートして、ボットが適切なインテントでのユーザー・リクエストに一致したかどうかを確認できます。

インテント・データのエクスポート

ログのすべてのインテント・テスト・データを取得するには、インテントをテストする前に、設定>一般インテント会話を有効化してください。

データをエクスポートするには:
  1. ボット・カタログで、タイルのメニューを開いて「会話ログのエクスポート」をクリックします。

  2. 「インテント会話ログ」を選択し、ロギング期間を設定してからエクスポートをクリックします。

  3. スプレッドシート・プログラムでCSVファイルを開き、レビューしてください。 キーワードで行をフィルタすることで、モデルがインテントと一致しているかどうかを確認できます。
バッチ・テスト・インテント

スキルの新しい反復に関してエクスポートしたインテント・テスト・データを使用して、そのインテント検出の正確性を測定できます。

そのテスト・データを使用するには:
  1. Try It Out!をクリックして、バッチに切り替えます。

  2. 「ロード」をクリックしてから、インテント・ログ(CSVファイル)を参照して選択します。
    load_batch_dialog.pngの説明が続きます
    「図load_batch_dialog.pngの説明」
  3. パラレルで実行するテストの数を選択します。 同時テストの数を増やすと、テストは高速になりますが、システムの負荷が高くなる場合があります。
  4. 「テスト」をクリックします。
    結果がテスト・ウィンドウに表示されます。
    batch_test_results1.pngの説明が続きます
    「図batch_test_results1.pngの説明」
  5. ドリルダウン・アイコンのイメージです。をドリルダウンすると、テスト結果とバッチ・データの比較方法が表示されます。
    batch_test_details.pngの説明が続きます
    図batch_test_details.pngの説明

ダイアログ・フロー内の参照インテント

ダイアログ・フロー内で、PizzaBotのintent状態に示すように、インテントはactionsプロパティを定義できます。
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        OrderPizza: "resolvesize"
        CancelPizza: "cancelorder"
        unresolvedIntent: "unresolved"

公開前のインテント解決のチューニング

スキルのバージョンを公開する前に(したがってそのバージョンを凍結する)、それを徹底的にテストし、必要に応じて設定を調整して、インテント解決を微調整する必要があります。

これらの設定は、System.Intentコンポーネントでスキルのインテントを解決する際に役立ちます。

  • 信頼度しきい値:スキルはこのプロパティを使用して、解決済インテントの信頼度レベル別に会話を送ります。 インテントに一致させるのに必要な最小信頼度レベルを設定します。 レベルがこの最小値を下回ると、コンポーネントによりそのunresolvedIntentアクションがトリガーされます。

  • 信頼度ウィン・マージン:スキルが特定のインテントを判別できない場合、可能性のあるインテントのリストが表示され、ユーザーに選択を求めるプロンプトが表示されます。 このプロパティにより、スキルによってリストに含まれるインテントが決まります。 上位インテントのそれぞれの信頼度レベル間のデルタに使用する最大レベルを設定します。 リストには、このデルタ以上で、信頼度しきい値に設定されている値を超えるインテントが含まれます。

これらの設定にアクセスするには:

  • サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、開発>スキルを選択してボットを開きます。

  • スキルの左ナビゲーションで、これは設定アイコンのイメージです。をクリックし、構成タブを選択します。

ノート

デジタル・アシスタントにスキルを追加すると、デジタル・アシスタントのコンテキストでのインテント解決をより適切に処理するために、設定の範囲を広げることが必要になる場合があります。
「ルーティング動作の調整」も参照してください。

信頼度しきい値の動作

信頼度しきい値プロパティ(設定 > 構成からアクセス)を使用すると、解決されたインテントの信頼度レベルで会話を調整できます。これは、NLP結果変数に保持されています(サンプル・スキルにはiResultとして記載)。

インテントのランキングが信頼度しきい値プロパティ(デフォルトは40%)を超える場合は、そのインテントに対して定義されているアクションがトリガーされ、ダイアログ・エンジンのパスが設定されます。 反対の状況では、信頼度しきい値プロパティの値セットが解決済のインテントのランキングより大きい場合、ダイアログ・エンジンはSystem.IntentunresolvedIntentアクションに定義されている状態に移動します。 「インテント・テスター」も参照してください。

PizzaBotを例にして、ピザをオーダーしたいでそのインテントをテストすると、100%に解決されます。 ただし、テスターのインテント・タブで同じフレーズを入力すると、ボットは実在でレスポンスし、不適切なレスポンスと思われます。 ただし、PizzaBotダイアログ・フロー定義のコンテキスト内で、これはランキング(100%)が信頼度しきい値(40%)を超えるインテントの予測されるレスポンスです。 18を入力すると、checkage状態のallow: "crust"アクションによって、ダイアログ・エンジンがcrust状態に送信されます。 (最初のユーザー入力から抽出するエンティティがなかったため、ダイアログ・エンジンはresolveSizeおよびresolveCrustの状態をバイパスし、順番を完了するかわりに、ここで年齢確認の後に終了しました。)

車を購入したいなどのPizzaBotに完全に不適切なフレーズを入力した場合、インテント・テスト・ウィンドウは25%で上位のインテントのみをランク付けし、その結果、40%のしきい値未満となります。 OrderPizzaまたはCancelPizzaのインテントはいずれもユーザー入力満足度を解決できないため、ダイアログ・エンジンはunresolvedIntentアクション(unresolvedIntent: "unresolved")に定義された状態に移動します。 その結果、ボット次のように応答します"I don't understand, what do you want to do?"
  unresolved:
    component: "System.Output"
    properties:
      text: "I don't understand. What do you want to do?"
    transitions:
      return: "unresolved"

信頼度ウィン・マージンの仕組み

信頼度ウィン・マージンプロパティ(設定 > 構成からアクセス)を使用すると、スキルを使用可能にして、複数のインテントの信頼度スコアが近い場合にユーザーにインテントを要求できます。 たとえば、ユーザーがFinancialBotに対して、残高の確認または金額の送信を求めた場合、スキルは、上位のインテントに残高の確認と金額の送信という選択リストを付けて応答します。

win_margin_list.pngの説明が続きます