IBM Cloud Docs
インテントの作成

クラシック Watson Assistant エクスペリエンスの Documentation が移動しました。 最新バージョンについては、 インテントの作成を参照してください。

インテントの作成

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

インテントの作成方法について詳しくは、以下の 2 分半の動画をご覧ください。

インテントの作成の概要

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

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

  • 作成したインテントについて Watson に学習させます。

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

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

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

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

インテントの作成

  1. ダイアログ・スキルを開きます。 スキルが開いて、**「インテント (Intents)」**ページが表示されます。

  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

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

    アプリケーションがこの Watson 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 回指定したことにはなりません。 Watson Assistant サービスは、その 1 つのインテント例の構文にそれほどの重みは与えません。

インテントのテスト

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

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

    Watson に質問する

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

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

    リトレーニング・メッセージを示す画面キャプチャー

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

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

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

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

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

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

    この処理について詳しくは、無視するトピックについてアシスタントに学習させるを参照してください。

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

  • 認識されないテキストを正しいインテントに例として追加する。
  • 既存の例を、あるインテントから別のインテントに移動する。
  • インテント同士が似すぎていないかどうかを検討し、必要に応じてそれらを定義し直す。

絶対スコアリング

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

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

インテント数の制限

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

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

インテントの編集

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

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

インテント名から各例にタブで移動できます。

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

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

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

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

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

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

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

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

  2. 生成される 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. インテント」ページで、「アップロード」アイコン「アップロード・アイコン」をクリックします。

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

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

  4. **「アップロード」**をクリックします。

    ファイルが検証され、アップロードされると、システムは新しいデータのトレーニングを開始します。

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

インテント競合の解決 プラス以上のプランのみ

この機能は、有料プランのユーザーのみが使用できます。

Watson Assistant アプリケーションで競合が検出されるのは、別々の インテント内の複数のインテント例がよく似ているため、{{site.data.keassistant_classic_shortnshort}} でどのインテントを使用すべきなのか判断できない場合です。

競合を解決するには、以下のようにします。

  1. **「インテント (Intents)」**ページで、競合しているすべてのインテントを確認します。

    競合のあるインテント・リストを表示します

  2. 競合があるインテントをクリックして開きます。 競合の原因になっているユーザー例を見つけて、**「競合の解決 (Resolve conflicts)」**をクリックします。

    いずれかのユーザー例に「競合の解決 (Resolve conflicts)」ボタンがあるユーザー例リストを含むインテントを示します。

  3. その例をインテントから削除するか、または別のインテントに移動するかを選択します。

    インテント競合の詳細ページを表示します

    インテントごとに、類似したユーザー例が表示されます。 これらの例は必ずしも競合しているわけではありません。 これらは、各インテントに定義された他のタイプのユーザー例を簡単に確認できるように表示されます。 これによってコンテキストがわかるので、より詳しい情報に基づいて決定できるようになります。

    それぞれのインテントをできるだけ他のインテントとは異なるもの、かつ 1 つの目標に重点を置いたものにしてください。 重複している複数のユーザー例が含まれた 2 つのインテントがある場合は、2 つのインテントを別々に維持する必要はない可能性があります。 直接は重複しないユーザー例を、削除するか、一方のインテントに移動してから、他方のインテントを削除できます。

  4. ユーザー例を移動するには、**「移動」**をクリックしてから、例の移動先にするインテントをクリックします。

    1 つのインテント・オプションのリストを含む「移動 (Move)」メニューを表示します。

    例の配置先を決定する際は、同義の例またはほぼ同義の例が含まれたインテントを探してください。

    もう一方のインテントでまったく同じ例が既に使用されている場合は、移動アクションは、現在のインテントから例を削除するだけです。 もう一方のインテントに同じ例を 2 回追加することはありません。

  5. 例を移動または削除したら、**「送信 (Submit)」**をクリックして競合を解決します。

    解決済みの競合を表示します

    リセット」は、変更を元に戻します。 変更内容を送信せずにページを閉じるには、x をクリックします。

  6. 前の手順を繰り返して、競合がある他のインテントを解決します。

インテントの削除

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

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

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

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

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

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

      インテントが選択され、削除アイコンがフォーカスされていることを示します