自然言語理解のベスト プラクティス

このページでは、自然言語理解(NLU)のベスト プラクティスと、高品質のアクションを作成するための推奨事項について説明します。

全般

  • 会話や口頭でのやり取りにはさまざまな形態があり、早期にユーザーデータを取得することで、アクションをより便利で効果的、かつ楽しいものにできます。
  • エラーと警告に注意してください。アクションが正常に動作していても、将来的に問題が発生する可能性があります。その場合は、問題の調査により多くの時間をかけることになります。

インテント

  • インテントは、可能な限りシーン間で再利用します。マッチング可能なインテントが複数あると、ユーザーが求めているインテントをマッチングすることが困難になり、Google アシスタントがユーザー入力に基づいて適切なインテントを選ぶことがさらに困難になります。
  • アクションで最も一般的なリクエストまたはインタラクション フローから始めて、インテント トレーニング フレーズを作成します。
  • トレーニング フレーズの極端な例(最短および最長の許容クエリなど)について考えてみます。
  • インテントに追加するトレーニング フレーズの数は、インテントで期待される内容の複雑さと幅によって異なります。つまり、単純な理解では 5 つのフレーズだけで済みますが("yes""no")、より複雑な言語モデルでは数百個のトレーニング フレーズを追加できます。
  • ユーザー入力が変化する可能性がある複雑なインテントでは、想定されるすべてのユーザー応答を網羅するために、必要な数のトレーニング フレーズを指定します。
  • ユーザーから特定のデータを収集する必要がある場合は、スロットフィル機能を使用します。
  • 自由形式のインテント パラメータのみを含むインテントは作成しないでください。ユーザー入力をすべて一致させる必要がある場合は、スロットフィルまたは NO_MATCH システム インテントを使用します。

  • タイプの同義語が、曲名や食品など、複数の単語で構成されている場合は、ファジー一致を有効にすることを検討してください。このアプローチにより、ユーザーは重要でない単語を省略したり、入力の想定される順序を変更したりできます。
  • 可能な限り、類義語を追加して [不明な値を受け入れる] を使用しないようにします。
  • タイプに応じて [不明な値を受け入れる] オプションを使用する場合は、さまざまなトレーニング フレーズを指定して、アシスタントが正しい情報を識別できるようにします。たとえば、タイプ message が [不明な値を受け入れる] に設定されている場合、トレーニング フレーズは次のようになります。

    • Send $message
    • Send $message to Tim
    • Send mom $message
  • ID や他の構造化入力を一致させる必要がある場合は、正規表現の使用を検討してください。

  • [自由形式テキスト] オプションの使用は控えめにしてください。このオプションは、空でない入力と一致するため、言語プロセッサがデータを効果的にトレーニングして照合するのが難しくなります。ユーザーが何を言うかを予測できない場合の最後の手段として使用してください。