インテントの作成

スキルにインテントを作成するステップを次に示します。

インテントを作成するには:
  1. 左側のナビゲーション・バーで「インテント」これは「インテント」アイコンのイメージです。をクリックします。
  2. インテントがすでにCSVファイルで定義されている場合は、「インテントのインポート」をクリックします。CSVファイルからのインテントのインポートで、このファイルのフォーマットについて説明しています。そうでない場合は、「インテントの追加」をクリックします。スキルには少なくとも2つのインテントが必要です。
  3. これは「編集」アイコンのイメージですをクリックして、「会話名」フィールドにインテントのわかりやすい名前またはフレーズを入力します。たとえば、インテント名がcallAgentの場合、会話名を顧客担当者に相談するのようにします。When the skill can't resolve a message to an intent, it outputs the user-friendly names and phrases that you enter into the Conversation Name field as the options that are listed in the Do you want to disambiguation messages described in How Confidence Win Margin Works and Configure the Intent and Q&A Routing.
  4. 「名前」フィールドにインテント名を追加します。会話名を入力しない場合は、かわりに「名前」フィールドの値が使用されます。末尾に句点がない短い名前の場合は、ユーザー・エクスペリエンスが向上しない可能性があることに注意してください。インテント名は、「会話名」フィールドに表示され、旧バージョンのデジタル・アシスタントで作成されたスキルに使用されます。
    ノート

    インテントの命名では、system.を接頭辞として使用しないでください。system.は、提供されるインテント用に予約されているネームスペースです。この接頭辞を持つインテントは、Trainer Tmによって異なる方法で処理されるため、使用するとインテントが予期しない方法で解決される可能性があります。
  5. 目的の説明を追加します。このインテントを一意にしている内容と、インテントで実行されるタスクまたはアクションに重点を置いた説明にする必要があります。
  6. これが answer intentの場合は、「Answer」フィールドに短い応答を追加します。
  7. オプションで、「注釈」フィールドに、インテントのタグを1つ以上追加して、役に立つ方法で分類します。選択した任意の単語を使用できます。

    ヒント:

    「インテント」ページでは、インテントの表示を注釈でフィルタできます。
  8. インテントの裏にある意味を示す発話例を追加して、トレーニング・コーパスの作成を開始します。最適なインテント解決を確実にするには、個々のインテントに固有の用語、文言および言い回しを使用します。理想的には、トレーニング・データを実際のフレーズに基づいて設定する必要があります。[Enter]をクリックするか入力フィールドの外側をクリックすると、発話を保存できます。トレーニング・セットを管理するには、行を選択して編集(これは「編集」ボタンのイメージです。)機能および削除(これは削除機能のイメージです。)機能にアクセスします。
    スキルで複数のネイティブ言語がサポートされている場合は、セカンダリ言語のフレーズを使用してトレーニング・セットを補強し、このネイティブ言語およびスキルでサポートされている他のすべてのネイティブ言語でのモデルの精度を強化します。
    select_additional_language.pngの説明が続きます

    効果的なトレーニング・コーパスの作成に関するヒントは、トレーニング・コーパスの作成を参照してください。
    スキルでインテントを明確に識別できるようにするには、不適切なユーザー入力やあいまいさを解決するインテントを作成します。
    既存インテントへの発話の追加は手動またはCSVのインポートによって行うことができますが、データ製造ジョブインサイト・リトレーナを使用して発話をインテントに割り当てることもできます。
  9. 「オートコンプリートの提案」フィールドに、ユーザーが適切に表現されたリクエストを入力できるように、推奨されるフレーズのセットを入力します。トレーニング・データのセット全体を追加しないでください。かわりに、理想的なユーザー・リクエストを表すフレーズのセットを追加します。大きすぎる発話のセットを追加すると、ユーザーを混乱させるだけでなく、予期しない動作になる場合があります。
    このステップはオプションです。この機能は、Oracle Webチャネルでのみサポートされます。
  10. ユーザー入力を解決するためにインテントにエンティティが必要な場合は、これを追加します。方法の詳細は、インテントへのエンティティの追加を参照してください。
  11. これまでに指定した発話のセットを使用してユーザー入力を理解する方法をスキルに指示するには、「トレイン」をクリックし、モデルを選択してから「送信」をクリックします。
    使用するトレーニング・モデルで説明されているように、コーパスから学習する2つのモデル(Trainer HtおよびTrainer Tm)が提供されています。それぞれ異なるアルゴリズムを使用して、ユーザー入力をインテントと照合します。Trainer Htではパターン一致が使用されますが、Trainer Tmでは単語ベクトルを使用する機械学習アルゴリズムが使用されます。デジタル・アシスタントのネイティブ言語サポートを使用するスキルと回答インテントを含むスキルの両方で、トレーナTMが必要です。
    通常は、次のプロセスに従います:
    1. 初期トレーニング・コーパスを作成します。

    2. Trainer Htを使用してトレーニングします。Trainer Htでは大規模な発話のセットが必要ないため、こちらから始めるようにします。インテントのあいまい性を解消するための十分な発話があれば、スキルでユーザー入力を解決できるようになります。

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

    3. コーパスを調整し、Trainer Htで再トレーニングします。必要に応じて繰り返します。トレーニングは反復プロセスです。

    4. Trainer Tmを使用してトレーニングします。このトレーナは、堅牢なインテント・セットが蓄積されている場合に使用します。

    「要トレーニング」は、インテントを追加したときや、発話を追加、変更または削除してインテントを更新したときに、常に表示されます。トレーニングを最新にするには、トレーニング・モデルを選択して「トレイン」をクリックします。モデルにトレーニングが必要な場合は常に感嘆符が表示されます。トレーニングが最新の場合は、チェック・マークが表示されます。

  12. 「発話のテスト」(左上)をクリックして、発話テスターを開きます。ターゲット言語を選択し、トレーニング・セットの発話に類似した発話を入力します。発話テスターから、この発話の信頼度レベルが返されます。また、発話テスターを使用して、発話をインテントに割り当てたり、テスト・ケースとして追加したりできます。
    インテントのテスト結果を記録するには、会話のインテント・ロギングを有効にします(「設定」→「一般」→「インサイトの有効化」)。
  13. 「検証」をクリックし、検証メッセージで、発話が少なすぎるなどのエラーやunresolvedIntentインテントの追加などベスト・プラクティスの適用に関するガイダンスを確認します。

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

いくつかのインテントでは、ダイアログ・フロー内でアクションを実行したり、バックエンドAPIに対するRESTコールを実行するために、エンティティ(組込みおよびカスタムの両方)が必要です。このようなエンティティ(インテント・エンティティと呼ばれる)は、これらに関連するインテントを実行するためにのみ使用されます。「新規エンティティの追加」をクリックし、カスタム(これは「カスタム」アイコンのイメージです。)または組込み(これは「システム」アイコンのイメージです。)エンティティを選択すると、インテントにエンティティを関連付けることができます。組込みエンティティを割り当てる場合、特定のエンティティ値がインテント分類に考慮されない(通常はそうである)場合は、「値に依存しない」を有効(デフォルト)のままにします。インテントに特定のエンティティ値が必要な場合は、この機能をオフに切り替えます
ノート

値に依存しないは、組込みエンティティにのみ適用されます。カスタム・エンティティには適用できません。

choose_req_entity.pngの説明が続きます

または、「新規エンティティ」をクリックして、インテント固有のエンティティを追加できます。
create_intent_entity.pngの説明が続きます

ヒント:

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

値に依存しないインテント・エンティティ

値に依存しない機能を使用すると、エンティティ値がインテント分類にどのように影響するかを調整できます。この機能を有効にすると、関連付けられた組込みエンティティの特定の値がインテント分類に関係しません。ただし、この機能を無効にすると、入力の解決においてエンティティ値が重要な役割を果たすことが許可されます。

通常、特定のエンティティ値がインテント分類に考慮されることはほとんどないため、この機能はデフォルト設定(有効化)のままにできます。たとえば、勘定科目残高インテントのトレーニング発話には特定の日付(10月5日の残高はいくらでしたか?)を含めることができますが、これらの値は入力をインテントに解決する際の決定要素ではありません。「Value Agnostic」を有効にしたままにすると、ほとんどの場合、値が信頼度スコアに影響を与えたり、意図しないインテントを示すことさえできないため、インテント解決が向上します。ただし、インテント解決で特定の値が重要な役割を果たす場合は常に、この機能をオフに切り替える必要があります。たとえば、過去の休暇残数をチェックする目的と将来の休暇残数をチェックする目的を区別するためにDATEの値が中心である場合、この機能を無効にします。これらのインテントが日付に依存しない場合、モデルは過去と現在を無視し、入力を正しく解決しません。
インテントの例 関連エンティティ トレーニングの発話 値に依存しない?
勘定残高 DATE
  • 昨日の口座残高を教えてください。
  • チェックにいくらお金がありますか。
  • 10月5日の残高はどうでしたか
  • 先週のクレジット・カード残高はいくらでしたか。
  • 今日の銀行残高はいくらですか。
  • 普通預金口座残高はいくらでしたか 5/3?
はい- 特定の日付値はインテントを示すものではありません。ユーザーが任意の日にアカウント残高を要求できるため、これらの発話の様々な日付値は無視できます。
休日店舗営業時間 DATE
  • 1月1日にオープンしていますか?
  • 感謝祭にオープンしていますか?
  • 「元旦」の時間数
  • 7月4日の店舗時間はどのくらいですか。
  • 休みの日はいつですか。
  • クリスマスにオープンしますか。
いいえ – インテント分類は特定の(および限定された)値セットに基づいており、ユーザーは休日について問い合せています。
  • 過去の休暇残数の確認
  • 将来の休暇残数の確認
DATE
  • 過去の休暇残数の確認
    • 先月の休暇を取得しましたか。
  • 将来の休暇残数の確認
    • 翌月の計画休暇はありますか。
いいえ – 両方のインテントに対して値に依存しないを無効にします。この場合、非依存のDATE値は、モデルが値を過去または将来とみなさないことを意味します。過去の休暇残数の確認インテントを示す「先月」の値は無視されます。結果として、「翌月は休みをとりましたか」のような単語入力も、この意図に対して正しく解決されない可能性があります。

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

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

CSVファイルには、ネイティブ・サポート言語モードを使用するスキルでは6つの列、使用しないスキルでは5つの列があります。列名とその意味を次に示します:

  • query: 発話例。
  • topIntent: 発話が一致する必要があるインテント。
  • conversationName: インテントの会話名。
  • answer: 回答インテントの場合、インテントの静的回答。
  • enabled: trueの場合、インテントがスキルで有効になります。
  • nativeLanguageTag: (ネイティブ言語サポートのスキルのみ)発話の言語。値としては、2文字の言語タグ(frenなど)を使用します。
    • デジタル・アシスタントのネイティブ言語サポートのスキルでは、この列は必須です。
    • ネイティブ言語サポートなしのスキルの場合、この列を含むCSVはインポートできません。

次に示すのは、ネイティブ言語サポートなしで回答インテントを使用するスキルのCSVファイルの抜粋です。

query,topIntent,conversationName,answer,enabled
I want to order a pizza,OrderPizza,Order a Pizza.,,true
I want a pizza,OrderPizza,Order a Pizza.,,true
I want a pizaa,OrderPizza,Order a Pizza.,,true
I want a pizzaz,OrderPizza,Order a Pizza.,,true
I'm hungry,OrderPizza,Order a Pizza.,,true
Make me a pizza,OrderPizza,Order a Pizza.,,true
I feel like eating a pizza,OrderPizza,Order a Pizza.,,true
Gimme a pie,OrderPizza,Order a Pizza.,,true
Give me a pizza,OrderPizza,Order a Pizza.,,true
pizza I want,OrderPizza,Order a Pizza.,,true
I do not want to order a pizza,CancelPizza,Cancel your order.,,true
I do not want this,CancelPizza,Cancel your order.,,true
I don't want to order this pizza,CancelPizza,Cancel your order.,,true
Cancel this order,CancelPizza,Cancel your order.,,true
Can I cancel this order?,CancelPizza,Cancel your order.,,true
Cancel my pizza,CancelPizza,Cancel your order.,,true
Cancel my pizaa,CancelPizza,Cancel your order.,,true
Cancel my pizzaz,CancelPizza,Cancel your order.,,true
I'm not hungry anymore,CancelPizza,Cancel your order.,,true
don't cancel my pizza,unresolvedIntent,unresolvedIntent,,true
Why is a cheese pizza called Margherita,unresolvedIntent,unresolvedIntent,,true

次に示すのは、回答インテントを使用するネイティブ言語サポート対応スキルのCSVファイルの抜粋です。

query,topIntent,conversationName,answer,enabled,nativeLanguageTag
Do you sell pasta,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Vendez-vous des salades,Products,Our Products,Nous ne vendons que des pizzas. Pas de salades. Pas de pâtes. Pas de hamburgers. Seulement pizza,fr
do you sell burgers,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Do you sell salads,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Vendez des hamburgers,Products,Our Products,Nous ne vendons que des pizzas. Pas de salades. Pas de pâtes. Pas de hamburgers. Seulement pizza,true,fr

CSVファイルをインポートするには:

  1. 左側のナビゲーション・バーで「インテント」(これは「インテント」アイコンのイメージです。)をクリックします。

  2. 「詳細」をクリックし、「インテントのインポート」を選択します。
    import_intents.pngの説明が続きます

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

  4. スキルをトレーニングします。

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

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

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

  2. 「詳細」をクリックし、「インテントのエクスポート」を選択します。
    export_corpus.pngの説明が続きます

  3. ファイルを保存します。このファイルには次の列があります。これらについては、CSVファイルからのインテントのインポートで説明しています:
    query, topIntent, conversationName, answer, enabled, nativeLanguageTag

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

スキルの認識を形成するトレーニング・モデルが2つ(Trainer TmおよびTrainer Ht)用意されています。これらのモデルのいずれかを使用することができ、各モデルでは機械学習に対して異なるアプローチが使用されます。一般に、Trainer Tmでトレーニングしてから、スキルを本番環境に移行します。トレーニング時間がより短いため、プロトタイピングまたはスキルにはHtを使用できます。
ノート

回答インテントを使用するスキル、ネイティブ言語サポートを使用するスキル、または多数のインテントを含むスキルでは、Trainer Htは使用できません。これらのスキルにはTrainer Tmを使用します。
デフォルトのモデルはTrainer Htですが、「設定」→「一般」をクリックし、リストから別のモデルを選択することでこれを変更できます。デフォルトのモデルは、スキル・カタログのタイルに表示されます。

Trainer Tm

Trainer Tm (Tm)は、数百または数千のインテントを持つスキルでも非常に正確なインテント分類を実現します。これらの大規模なデータ・セット内のインテントは、多くの場合密接に関連しており、場合によっては発話量の「不均衡」ですが、Tmはそれらを区別できます。通常、Tmを適用してから、スキルを本番環境に移行します。
ノート

Trainer Tmでトレーニングする場合は、類似発話レポートを使用することもできます。

大/小文字の区別に対応する発話(たとえば、TmではBlacK FridayをBlack Fridayとして認識)、句読点、類似する動詞および名詞、またはスペルミスでトレーニング・データを増大させる必要はありません。後者の場合、Trainer Tmでは、ユーザーがキーワードを不正確に入力した場合でも、コンテキストを使用してフレーズを解決します。このモデルを使用してスキルを開発する場合のトレーニング・コーパスを作成するための一般的なガイドラインを次に示します。

Trainer Tmでは、次によってスキルの認識を強化します
  • 無関係なコンテンツの認識。I'm really excited about the coming Black Friday deals, and can't wait for the deals.Can you tell me what's going to be on sale for Black Friday?の場合、Trainer Tmでは:
    • 無関係なコンテンツ(I'm really excited about the coming Black Friday deals...)を破棄します。
    • 関連するコンテンツ(Can you tell me what's going to be on sale for Black Friday?)をインテントに解決します。この場合は、Black Friday Dealsと呼ばれるインテントです。
    Trainer Tmでは、無関係なコンテンツがインテントに解決される可能性がある場合でも、メッセージ内の関連するコンテンツと無関係なコンテンツを区別することもできます。私は新しい80インチTVをブラック・フライデーで$2200で購入しましたが、同じセットがオンラインで$2100で入手できることがわかりました。Do you offer price match?の場合は、Black Friday Dealsインテントや、このメッセージに適したPrice Matchingインテントに一致させることができます。この場合、Trainer Tmでは:
    • I bought the new 80 inch TV on Black Friday for $2200, but now I see that the same set is available online for $2100を無関係なコンテンツと認識します。
    • Do you offer price match?を解決します。
  • 単一の単語または名前がエンティティと一致する場合のインテントの解決。たとえば、Trainer TmではBlack Fridayのみで構成されるメッセージをBlack Fridayのエンティティに関連付けられたインテントに解決できます。
  • 類似する発話(Cancel my orderWhy did you cancel my order?)の区別。
  • ピザのオーダーのみを履行するためのスキルの、Show me pizza recipesHow many calories in a Meat Feastなど、スコープ外の発話の認識。
  • ピザのオーダー・スキルの、What's the weather like todayなど、ドメイン外の発話の認識。

    ヒント:

    Trainer Tmでは、ユーザー・メッセージがトレーニング・データと明確に異なるため、分類できない場合は簡単に区別できますが、スキルのインテントに解決しないようにするフレーズを表す発話を使用してunresolvedIntentを定義することもできます。このようなフレーズは、スキルのドメイン内にある可能性がありますが、トレーニング・データと同じ単語の一部を共有していてもスコープに含まれません。たとえば、ピザ・スキルのI want to order a carです。これは、I want to order a pizzaによるトレーニングも受けています。
  • 類似するエンティティの区別 – たとえば、Tmでは、Sign Up for Email Dealsと呼ばれるインテントのコンテキストで、郵便物は電子メールと同じではないと認識します。regular mailと呼ばれるエンティティはスコープに含まれないと認識されるため、I want to sign up for deals through regular mailというフレーズはI want to sign up for email dealsの場合よりも低い信頼度で解決されます。

Trainer Ht

Trainer Htはデフォルトのトレーニング・モデルです。必要なトレーニング・コーパスは少量であるため、エンティティ、インテントおよびトレーニング・コーパスを開発する際に使用します。テストで正確性の高いインテント解決が示されるレベルまでトレーニング・コーパスが豊富になったら、Trainer Tmのトレーニングによってスキルの認識をさらに深められる状態になります。

Trainer Htがトレーニング・コーパス自体のみからインテントを解決する方法を全般的に理解できます。品詞とエンティティ(カスタムと組込みの両方)にタグを付け、インテントのコンテキスト内で同じ意味を持つ単語を検出することによって、サンプル文から一致ルールを形成します。たとえば、SendMoneyというインテントに、母に$500を送金するCleoに$500を支払うの両方が含まれる場合、Trainer Htは支払う送金するに相当するものとして解釈します。トレーニング後、Trainer Htのタグ付けにより、これらの文はユーザー入力に適用されるテンプレート(personにCurrencyを送金するpersonにCurrencyを支払う)にまとめられます。

Trainer Htでは入力された文が利用されるため、その動作を予測できます。つまり、トレーニング・コーパスを構成する文と類似した文(ルールに従ったユーザー入力)でテストすると非常に正確になりますが、難解なユーザー入力に直面すると、うまくいかない可能性があります。

トレーニング・コーパスの作成

インテントを定義する場合は、まずユーザー・アクションを示す名前をインテントに指定し、続いて実際のユーザー文または発話のセットを集めます。インテントとそれに属する発話の集まりで、トレーニング・コーパスが構成されます。コーパスという用語は、「このスキルを賢くするために考え出したすべてのインテントおよびサンプル・フレーズ」を簡単に述べた言葉です。コーパスは、スキルのインテリジェンスの鍵となります。コーパスを使用してモデルをトレーニングすることで、実質的にそのモデルは、ユーザー入力を単一のインテントに解決するための参照ツールに変わります。最終的にトレーニング・コーパスは、スキルと人間の会話がたどるルートを決定するうえで重要な役割を果たすため、トレーニング・コーパスを作成する際には慎重に単語を選択する必要があります。

一般に、大規模で多様なサンプル・フレーズのセットがあると、インテントを正確に解決するモデルの能力が高まります。ただし、堅牢なトレーニング・コーパスの作成は、単に十分に練られたサンプル・フレーズから始めるのではなく、実際には明確に記述されたインテントから始めます。使用例を明確に反映しているのみでなく、サンプル文との関係も同様に明確になっている必要があります。サンプル文がどこに属すのかがわかっていないと、インテントは互いに区別されません。

インテントの作成時にはおそらくサンプル発話を考慮すると思いますが、次のガイドラインを使用することでそれらを拡張できます

Trainer Tmのガイドライン

  • 本番環境に移行するスキルには、最小信頼度しきい値0.7を使用します。
  • インテント名に適切な命名規則を使用して、関連するインテントを簡単に確認できるようにします。
  • 一般的に、各インテントに対して少なくとも80から100の発話を作成します。コーパスのサイズおよびシェイプのガイドラインに従って、インテントの最小(推奨されない)発話数は2です。トレーニング・セット内の発話の合計数は25,000を超えないようにしてください。
  • 可能な場合は、次を含む変更されていない実際のフレーズを使用します:
    • 俗語
    • ユーザーが入力する可能性がある標準的な略語(opportunityの"opty"など)
    • 製品名などの非標準的な名
    • スペルのバリアント("check"や"cheque"など)
    実際のデータがない場合は、これらを独自のトレーニング・データに組み込みます。次にヒントをいくつか示します:
    • アクションとアクションが実行されるエンティティの両方を示す完全に形成されたセンテンスを作成します。
    • 発話の長さを3語から30語の間に保つようにしてください。発話が短すぎてコンテキストがないと、モデルが予測不可能な方法で一般化する可能性があります。発話が長すぎると、モデルが関連する単語やフレーズを識別できない場合があります。ただし、一般的に使用されるフレーズの場合、1語または2語の発話には例外があります。エンティティとアクションの両方を指定する2単語のメッセージ(order statusprice checkmembership infoship internationallyなど)が想定される場合、それらをトレーニング・データに追加します。サンプル・フレーズにアクションとエンティティの両方があることを確認します。
    • 具体的にします。たとえば、What is your store phone number?は、Trainer Tmで電話番号を店舗に関連付けることができるため、What is your phone number?より適しています。この学習の結果、What's your mom's phone number?は低い信頼度スコアに解決されます。
    • Trainer Tmはスコープ外の発話を検出する一方で、ドメイン内にあるのにスキルのインテントのスコープに含まれない発話に対してunresolvedIntentを作成することで、信頼度と精度を向上させることができます。これにより、Trainer Tmはドメイン・インテントの境界を学習できます。スキルのインテントに解決しないフレーズには、unresolvedIntentを定義できます。unresolvedIntentを定義するのは、ユーザー・メッセージがスキルのインテントに適用されていない場合でも、それらに解決されている場合のみです。
    • 重要なコンテンツを囲む単語およびフレーズをできるだけ変更します。たとえば、"I'd like a pizza、please"、"Can you get me a pizza?"、"A pizza, please"などです。
    • 回避するプラクティスをいくつか示します:
      • 単一の単語またはフレーズを特定のインテントに関連付けないでください(その単語またはフレーズがインテントを示している場合を除きます)。フレーズを繰り返すと、インテント解決がスキューされる可能性があります。たとえば、各OrderPizza発話を"I want to …"で始め、各ShowMenuインテントを"Can you help me to …"で始めると、OrderPizzaでは"Can you help me to"で始まり、ShowMenuでは"I want to"で始まるユーザー入力をモデルが解決する確率が高くなることがあります。
      • インテント内での1単語の発話の高い出現頻度。1単語の発話は例外です。使用する場合は、慎重に使用してください。
      • 他のドメインまたはドメイン外トピックに簡単に適用できる制約のない発話。
      • コーパスでは、大/小文字が異なる同じ発話、または同じ題目を持つ異なる単語形式の同じ発話を繰り返す必要はありません。たとえば、Trainer Tmではmanage、managesおよびmanagerを区別できるため、"Who does Sam manage?"と"Who manages Sam?"を区別するだけでなく、これらの単語が相互に関連していることも理解します。
        ノート

        単語のスペルミスを追加する場合があります。ただし、その前に、発話テスターでこれらのスペルミスを使用して、モデルで認識されるかどうかを確認します。それらがどれだけうまく処理されているかに驚かれるかもしれません。また、スペルミスを追加しないと、予期しない方法でモデルをスキューするリスクが少なくなります。
  • テスト・ケースを作成して、インテント解決の整合性を確認します。
  • スキル品質の概要レポートを実行して、バランスのとれたトレーニング・セットを保守します。異常レポートを実行し、誤分類または異常な発話をチェックします。
  • スキルをデプロイする場合、次によってトレーニング・データを継続的に改善できます:
    • 会話ログ(指定した期間に発生したすべての会話のサマリー)を確認します。「設定」で「インサイトの有効化」をオンに切り替えてロギングを有効にします。
    • スキル品質レポートの実行およびインサイト・リトレーナを使用したインテントへの実際のユーザー・メッセージの割当て(または再割当て。これらのレポートで、unresolvedIntentのドメイン・インテント内に誤って分類された発話が多いことが判明した場合:
      • スコープ内の発話をunresolvedIntentからドメイン・インテントに移動します。
      • スコープ外の発話をドメイン・インテントからunresolvedIntentに移動します。

Trainer Htのガイドライン

可能な場合は、インテントごとに12から24個のサンプル・フレーズを作成します。次を含む変更されていない実際のフレーズを使用します:
  • 俗語
  • 一般的なスペルミス
  • ユーザーが入力する可能性がある標準的な略語("opportunity"の"opty"など)
  • 製品名などの非標準的な名
  • スペルのバリアント("check"や"cheque"など)
実際のデータがない場合は、これらを独自のトレーニング・データに組み込みます。次にヒントをいくつか示します:
  • 次を使用した1つまたは2つの入替えによって、これらの初期フレーズのボキャブラリと文の構造を変更します:
    • 俗語(お金を意味する単語としてmoolah、lucre、dough)

    • ユーザーが入力する可能性がある標準的な略語(opportunityの"opty"など)
    • 製品名などの非標準的な名
    • 一般的な表現(AccountBalanceというインテントに対してお金がないですか?)

    • 別の言い回し(Send cash to savingsSend funds to savingsSend money to savingsTransfer cash to savings。)

    • 異なるカテゴリのオブジェクト(ピザをオーダーしたい食べ物をオーダーしたい)。

    • 代替のスペル(check、cheque)

    • よくあるスペルミス(businessに対して"buisness")

    • 普段使用しない語順(当座預金へ、$20送金)

  • お腹が空いたピザを作ってほしいなど、別の概念を使用して同じインテントを表します
  • 単一の単語またはフレーズを特定のインテントに関連付けないでください(その単語またはフレーズがインテントを示している場合を除きます)。フレーズを繰り返すと、インテント解決がスキューされる可能性があります。たとえば、各OrderPizza発話を"I want to …"で始め、各ShowMenuインテントを"Can you help me to …"で始めると、OrderPizzaでは"I want to"で始まり、ShowMenuでは"Can you help me to"で始まるユーザー入力をモデルが解決する確率が高くなることがあります。
  • 文の一部や単一の単語を使用しません。かわりに、アクションおよびエンティティを含む完全な文(255文字以内)を使用します。単一のキーワード例を使用する必要がある場合は、慎重に選択してください。

  • テスト・ケースを作成して、インテント解決のテストの整合性を確認します。新しいインテント例を追加するとリグレッションが生じる可能性があるため、最後にはいくつかのテスト・フレーズを追加してインテント解決動作を安定させることになる可能性があります。

トレーニング・データのシェイプおよびサイズの制限

トレーニング・データおよびシェイプについては、インテントおよび発話の数に対する制限を次に示します。

インテント:

  • スキル当たりの最小インテント数: 2
  • スキル当たりのインテントの最大数: 2,500

発話:

  • スキルごとの最大発話数: 25,000
  • インテント当たりの最小発話数: 2
  • 発話単語の長さ: 3から30語の間。Trainer Tmのガイドラインに従って、一般的に使用される場合に1語または2語の発話が適切である例外があります。
ノート

これらは技術的な制限であり、推奨事項ではありません。スキルを形成し、堅牢なトレーニング・データを提供するための実用的な推奨事項は、トレーナーTmのガイドラインを参照してください。

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

会話をログに記録するには、インテントをテストする前に、「設定」→「一般」「インサイトの有効化」を有効にします。

スキルのデータをエクスポートするには:
  1. サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、「開発」→「スキル」を選択します。
  2. スキルのタイルで、「オプション」メニューを開くアイコンをクリックし、「会話のエクスポート」を選択します。
  3. 「インテント会話ログ」を選択し、ロギング期間を設定して「エクスポート」をクリックします。
  4. スプレッドシート・プログラムでCSVファイルを開いて、ユーザー入力を確認します。