IBM Cloud Docs
インテントの作成

インテントの作成

インテント は、質問への回答や請求書の支払いの処理など、顧客の入力で表される目的または目標です。 顧客の入力で表現されたインテントを認識することによって、watsonx Assistant サービスは、そのインテントに応答するための正しいダイアログ・フローを選択することができます。

インテントの作成の概要

  • ご使用のアプリケーション向けにインテントを計画します。

    お客様が何をしたいのかを検討するとともに、ご使用のアプリケーションでお客様の代わりに何を処理したいのかを検討してください。 例えば、アプリケーションによってお客様の購入を支援しようとしているとします。 その場合は、#buy_something というインテントを追加できます (インテント名の接頭部として追加された # は、これがインテントであるという目印となります)。

  • インテントについて watsonx Assistant に学習させます。

    顧客のためにアプリケーションで処理するビジネス要求を決定したら、それらについて watsonx Assistant に教える必要があります。 ビジネス目標 (#buy_something など) ごとに、お客様が自分の目標を示すために一般的に使用する発話の例を少なくとも 5 件提供する必要があります。 例: I want to make a purchase.

    既存のビジネス・プロセスから抽出できる実際のユーザー発話例を見つけることが理想的です。 特定のビジネスに合わせてユーザー例を調整します。 例えば、保険会社の場合は、I want to buy a new XYZ insurance plan. (新しい XYZ 保険プランの購入を希望しています。) というユーザー例が考えられます。

    アシスタントは、提供された例を使用して、同じタイプの発話や類似したタイプの発話を認識し、それらを適切なインテントにマップできる機械学習モデルを作成します。

最初は少数のインテントを使用して、アプリケーションの範囲を反復的に拡張しながら、それらのインテントをテストしてください。

インテントの作成

  1. 「インテント」 をクリックします。

  2. **「インテントの作成 (Create intent)」**を選択します。

  3. **「インテント名 (Intent name)」**フィールドに、インテントの名前を入力します。

    • インテント名には、文字 (ユニコード)、数字、下線、ハイフン、およびピリオドを使用できます。
    • この名前は、.. またピリオドだけの他のストリングから構成することはできません。
    • インテント名にスペースを含めることはできず、128 文字を超えてはなりません。 次にインテント名の例を示します。
      • #weather_conditions
      • #pay_bill
      • #escalate_to_agent

    用語をインテントとして識別しやすくするために、番号記号 # 接頭部がインテント名に自動的に組み込まれます。 それを手動で追加する必要はありません。

    「試行する (Try it out)」ペインと会話ログで読みやすくするために、名前はできるだけ短くしてください。

    オプションで**「説明」**フィールドにインテントの説明を追加します。

  4. **「インテントの作成 (Create intent)」**を選択してインテント名を保存します。

    新しいインテント定義
    新しいインテント
    を示す画面キャプチャー

  5. **「ユーザーの例 (User example)」**フィールドに、インテント用のユーザーの例のテキストを入力します。 例は、長さが 1,024 文字までの任意のストリングにできます。 次の発話は、#pay_bill インテントの例を示しています。

    • I need to pay my bill.
    • Pay my account balance
    • make a payment

    エンティティー参照をユーザー例に含めることによる影響について詳しくは、エンティティー参照の処理方法を参照してください。

    アプリケーションが watsonx Assistantと対話するときに、インテント名とサンプル・テキストを URL に表示できます。 これらの成果物に機密情報または個人情報を含めないでください。

  6. **「例の追加 (Add example)」**をクリックして、ユーザー例を保存します。

    インテントへのユーザー例の追加を示す画面キャプチャー
    ユーザー例の追加

  7. 同じプロセスを繰り返して、さらに例を追加します。

    インテントごとに少なくとも 5 つの例を提供してください。

  8. 例の追加が完了したら、閉じる矢印 「閉じる」矢印 をクリックして、インテントの作成を終了します。

システムは、追加されたインテントとユーザー例について自動的にトレーニングします。

重要:

  • インテントの例のデータは、ユーザーが提供するであろうデータの代表的かつ典型的なものにする必要があります。 例は、実際のユーザー・データから収集することも、特定の分野の専門家から収集することもできます。 データが代表的で正確なものであることは重要です。
  • トレーニング・データとテスト・データ (評価用) の両方が、実際の使用法におけるインテントの分布を反映している必要があります。 一般に、頻度の高いインテントほど例が比較的多くなり、応答の範囲が広がります。
  • 自然に出現する場合は、例のテキストに句読点を含めることができます。 インテントを表現するときに、句読点を含む例を用いるユーザーもいれば、そうでないユーザーもいると思われる場合は、両方のバージョンを含めてください。 一般に、各種のパターンの範囲が広がるほど、応答が改善されます。

エンティティー参照の処理方法

エンティティーへの言及をユーザー例に含めた場合、機械学習モデルでは、以下のシナリオでそれぞれ異なる方法でその情報が使用されます。

注釈付きの言及

エンティティーを定義する際に、既存のインテントのユーザー例から直接そのエンティティーの言及に注釈を付けることができます。 インテントとエンティティーの間でこのようにして指定する関係は、インテントの分類モデルによって使用されません。 ただし、言及をエンティティーに追加すると、その言及はそのエンティティーに新しい値としても追加されます。 また、既存のエンティティー値にメンションを追加すると、そのメンションは新しい同義語としてそのエンティティー値にも追加されます。 インテントの分類では、インテントのユーザー例内のこれらのタイプのディクショナリー参照が使用されて、インテントとエンティティーの間の弱参照が確立されます。

インテントの例でのエンティティー名の直接参照

このアプローチは高度です。 使用する場合は、一貫性のある仕方で使用する必要があります。

インテントの例内で、エンティティーを直接参照することを選択できます。 例えば、@PhoneModelNameというエンティティーがあり、ギャラクシー S8Moto Z2LG G6 (LG)、および Google ピクセル 2 という値が含まれているとします。 インテント (例えば、#order_phone) を作成するときに、以下のようにトレーニング・データを指定できます。

  • @PhoneModelName を購入したいのですが。 (Can I get a @PhoneModelName?)
  • @PhoneModelName の注文をお願いします。(Help me order a @PhoneModelName.)
  • @PhoneModelName は在庫がありますか? (Is the @PhoneModelName in stock?)
  • @PhoneModelName を注文に追加します。(Add a @PhoneModelName to my order.)

インテント定義
インテント定義
を示す画面キャプチャー

現時点では、自分で定義する同義語エンティティーのみを直接参照できます (パターン値は無視されます)。 システム・エンティティーは使用できません。

トレーニング・データ内の@PhoneModelNameある箇所* で、インテントの例としてのエンティティー (例えば、*) を参照する場合、直接参照 (例えば、Galaxy S8) を使用する値は、他の箇所のインテント例では無効にされます。 その場合は、すべてのインテントでは「インテントの例としてのエンティティー」のアプローチが使用されます。 このアプローチを特定のインテント専用として適用することはできません。

これが実際に意味することは、インテントの大部分を以前に直接参照 (Galaxy S8) に基づいてトレーニング済みの場合に、ある 1 つのインテントのみに対してエンティティー参照 (@PhoneModelName) を使用すると、その変更が以前のトレーニングに影響を与えるということです。 @Entity 参照を使用することを選択する場合は、以前のすべての直接参照を @Entity 参照に置き換える必要があります。

10 個の値が定義された @Entity を使用して 1 つのインテント例を定義しても、そのインテント例を 10 回指定したことにはなりません。 watsonx Assistant サービスは、その 1 つのインテント例の構文にそれほどの重みは与えません。

インテントのテスト

新しいインテントの作成が完了したら、システムをテストして、インテントが予期したとおりに認識されるかどうかを確認できます。

  1. **「試行する (Try it)」**をクリックします。

  2. 「試行する (Try it out)」ペインで、質問または他のテキスト・ストリングを入力し、Enter キーを押してどのインテントが認識されるかを確認します。 間違ったインテントが認識された場合、このテキストを正しいインテントに例として追加することにより、モデルを改善できます。

    スキルに最近変更を加えた場合、システムがまだリトレーニング中であることを示すメッセージが表示されることがあります。 このメッセージが表示された場合は、トレーニングが完了するまで待機し、完了後にテストを行います。

    応答には、入力から認識されたインテントが示されます。

    テスト・インテントの画面キャプチャー
    テスト・インテント

  3. システムが正しいインテントを認識しない場合、そのインテントを修正することができます。 認識されたインテントを修正するには、表示されたインテントを選択した後、リストから正しいインテントを選択します。 修正が送信されると、システムはこの新規データを取り込むためにシステム自体を自動的にリトレーニングします。

    認識されたインテントの修正の画面キャプチャー
    インテントの修正

  4. 入力がアプリケーション内のどのインテントとも無関係の場合は、表示されているインテントを選択して**「無関係とマークを付ける (Mark as irrelevant)」**をクリックすることで、アシスタントに学習させることができます。

    「無関係としてマーク」画面キャプチャー
    「無関係としてマーク」

インテントが正しく認識されない場合は、次のような変更を行うことを検討してください。

  • 認識されないテキストを正しいインテントに例として追加する。
  • 既存の例を、あるインテントから別のインテントに移動する。
  • インテントがあまりにも類似していないかどうかを検討し、それらを再定義してください。

絶対スコアリング

watsonx Assistant サービスでは、各インテントの信頼度スコアは、他のインテントと関係付けてではなく、独立して計算されます。 このアプローチにより、単一のユーザー入力内で複数のインテントを検出できるという柔軟性が付加されます。 また、システムがインテントをまったく返さない場合があることも意味しています。 上位インテントの信頼度スコアが低い場合は (0.2 未満)、上位インテントは、API によって返されるインテント配列に含まれますが、そのインテントを条件とするどのノードもトリガーされません。 良好な信頼度スコアのインテントが検出されなかったケースを検出するには、irrelevant という特殊条件をダイアログ・ノードで使用します。

インテントの信頼度スコアが変化した場合、ダイアログの再構築が必要になることがあります。 例えば、あるダイアログ・ノードの条件で使用されているインテントの信頼度スコアが一貫して 0.2 未満に下落し始めた場合は、そのダイアログ・ノードは処理されなくなります。 信頼度スコアが変化した場合は、このダイアログの動作も変化する可能性があります。

インテント数の制限

作成できるインテントと例の数は、watsonx Assistant プランのタイプによって異なります。

計画の詳細
プラン 1 スキルあたりのインテントの数 1 スキルあたりの例の数
Enterprise 2,000 25,000
プレミアム (レガシー) 2,000 25,000
プラス 2,000 25,000
トライアル 100 25,000
ライト 100 25,000

インテントの編集

リスト内の任意のインテントをクリックして、編集のために開くことができます。 次の変更を行うことができます。

  • インテントの名前変更
  • インテントの削除
  • 例の追加、編集、または削除
  • 別のインテントへの例の移動

例を移動または削除するには、その例に関連付けられたチェック・ボックスをクリックしてから、**「移動 (Move)」または「削除 (Delete)」**をクリックします。

例を移動または削除する方法を示す画面キャプチャー
移動または削除の例

インテントのダウンロード

複数のインテントを CSV ファイルにダウンロードできるため、それらをアップロードして別の watsonx Assistant アプリケーションで再利用することができます。

  1. **「インテント」**ページに移動します。
  • すべてのインテント (つまり、このページと追加ページにリストされているインテント) をダウンロードする場合は、個別のインテントを選択しないでください。 代わりに、 「すべてのインテントをダウンロード」 アイコン 「すべてのインテントをダウンロード」アイコン をクリックします。

  • 現在のページにリストされているインテントのみをダウンロードするには、ヘッダーのチェック・ボックスを選択します。 このアクションにより、現在のページのすべてのインテントが選択されます。 次に、 「ダウンロード」 ボタンをクリックします。

  • 1 つ以上の特定のインテントをダウンロードするには、ダウンロードするインテントを選択し、 「ダウンロード」 ボタンをクリックします。

  1. 生成される CSV ファイルを保管する名前と場所を指定し、「保存」をクリックします。

インテントと例のアップロード

多数のインテントと例がある場合は、それらを 1 つずつ定義するよりも、コンマ区切り値 (CSV) ファイルからアップロードする方が簡単です。 ファイルに含めるユーザー例から必ず個人データを削除してください。

  1. インテントと例を CSV ファイルに収集するか、またはそれらをスプレッドシートから CSV ファイルにエクスポートします。 ファイルの各行のフォーマットは、以下のようにする必要があります。

    <example>,<intent>
    

    ここで、<example> はユーザー例のテキストであり、<intent> は例で突き合わせるインテントの名前です。 以下に例を示します。

    Tell me the current weather conditions.,weather_conditions
    Is it raining?,weather_conditions
    What's the temperature?,weather_conditions
    Where is your nearest location?,find_location
    Do you have a store in Raleigh?,find_location
    

    重要: CSV ファイルは、UTF-8 エンコード方式で、バイト・オーダー・マーク (BOM) なしで保存してください。

  2. 「インテント (Intents)」 ページで、 「インテントのアップロード (Upload intents)」 アイコン 「アップロード(Upload)」アイコン をクリックします。

  3. ファイルをドラッグするか、コンピューターからファイルを参照して選択します。

    重要: CSV ファイルの最大サイズは 10 MB です。 CSV ファイルが大きい場合は、複数のファイルに分割して個別にアップロードすることを検討してください。

  4. 「インテントのアップロード」 をクリックします。

    ファイルが検証されてアップロードされ、システムによって新しいデータが自動的にトレーニングされます。

インテント」タブで、アップロードされたインテントと対応する例を確認できます。 新しいインテントと例を表示するためにページの最新表示が必要になる場合があります。

インテントの削除

多数のインテントを削除のために選択することができます。

インテントを削除すると、関連付けられているすべての例も削除されます。これらの項目は後で取得することはできません。 削除したインテントを参照するダイアログ・ノードはすべて、削除されたコンテンツを今後参照しないように手動で更新する必要があります。

  1. **「インテント (Intents)」**ページに移動します。

    • すべてのインテント (つまり、このページと追加ページにリストされているインテント) を削除する場合は、個別のインテントを選択しないでください。 代わりに、「すべてのインテントを削除」アイコンをクリックします。 削除オプション

    • 現在のページにリストされているインテントのみを削除するには、ヘッダーのチェック・ボックスを選択します。 このアクションにより、現在のページに表示されているすべてのインテントが選択されます。 **「削除」**をクリックします。

    • 1 つ以上の特定のインテントを削除するには、削除するインテントを選択してから、**「削除」**をクリックします。