自然言語理解 (NLU) (NLU) トピックディスカバリーの問題の解決
想定どおりにインテントが選択されていない場合は、NLU 予測エラーのトラブルシューティングを行うことができます。
クイックトラブルシューティングのヒント
- セッション言語に対して NLU が有効になっていますか?
- 仮想エージェント の 自然言語理解 (NLU) (NLU) 設定で言語を有効にします。詳細については、「仮想エージェント設定での NLU 言語の有効化」を参照してください。
- NLU モデルはセッション言語に対してトレーニング済みおよび公開済みですか?
- トピックがモデルに対する最新の変更を使用していない可能性があります。ServiceNow® NLU については、「NLU モデルをトレーニングして試す」および「仮想エージェントトピックを公開する」を参照してください。
- 仮想エージェント トピックは公開済みであり、検出可能であり、セッション言語の公開された NLU モデルとインテントにバインドされていますか?
- トピックは、指定された言語の単一のモデルとインテントにバインドされている必要があります。他のトピックにバインドされた重複インテントがないことを確認します。トピック、モデル、およびインテントが同じドメインにあることを確認してください。詳細については、「仮想エージェントトピックを公開する」を参照してください。
- 仮想エージェントデザイナーの [プロパティ] タブの仮想エージェントトピックにロールまたは条件が指定されていますか?
- トピックが特定のロールまたは特定の条件に対してのみ表示される場合は、トピック検出が妨げられる可能性があります。詳細については、「[トピックのプロパティ] タブ」を参照してください。
- 仮想エージェントがフランス語ではなくスペイン語のトピックを検出したのはなぜですか?
- 次のようないくつかの可能性があります。
- すべての言語がすべての NLU プロバイダーでサポートされているわけではありません。詳細については、「NLU サービスの言語サポート」を参照してください。
- すべてのトピックが言語固有の NLU モデルとインテントにバインドされているわけではありません。たとえば、トピック A は次のようにマッピングされます。
- 英語ではモデル A とインテント A にバインドされる
- スペイン語ではモデル A とインテント A にバインドされる
- フランス語ではモデルまたはインテントにバインドされない
- トピック変数がスロットに入力されなかったのはなぜですか?
- 次の点を確認します。
- トピックのユーザー入力ノードが関連するエンティティで構成されていません。仮想エージェントデザイナーのノードの NLU エンティティプロパティを使用します。
- 予測結果に、設定された信頼度しきい値未満の信頼スコアを持つ NLU エンティティが含まれていました。
- ノードの NLU エンティティ値が無効でした。たとえば、「赤」という単語を日付/時刻エンティティタイプに適用することはできません。
- トピックのユーザー入力ノードが関連するエンティティで構成されていません。仮想エージェントデザイナーのノードの NLU エンティティプロパティを使用します。
- トピックから検出をテストします。
- 次のいずれかの操作を行います。
- [トピック] ページで、[アクティブトピックのテスト] を選択します。発言を入力し、 [ テストフレーズを分析 ] タブを確認します。
- 仮想エージェントデザイナー でトピックを開き、[テスト] を選択します。[テスト] ウィンドウで、[トピックディスカバリーを含める] チェックボックスをオンにします。発言を入力し、 [ テストフレーズを分析 ] タブを確認します。
詳細については、「NLU/キーワードトピックのテスト」を参照してください。トピックディスカバリーの仕組みについては、「仮想エージェント での 自然言語理解 (NLU) トピックディスカバリーロジック」を参照してください。
- 問題のトピックは「セットアップトピック」ですか?
- そうであれば、検出されるように 対話型インターフェース の [チャット設定] で設定する必要があります。詳細については、「仮想エージェントチャットエクスペリエンスを構成する」を参照してください。
- トピックの途中での切り替えに関する質問または問題。
- 仮想エージェント がトピック B に切り替えられた後、会話がトピック A に戻ったのはなぜですか?
- トピックで [トピックの切り替え後にトピックフローを再開 (Resume topic flow after topic switching)] 属性が有効になっています。この切り替えスイッチは、[ プロパティ ] タブの .
- 仮想エージェント がトピック B に切り替えられた後、会話がトピック A に戻らなかったのはなぜですか?
- トピックで [トピックの切り替え後にトピックフローを再開 (Resume topic flow after topic switching)] 属性が無効になっています。この切り替えスイッチは、[ プロパティ ] タブの .
- 仮想エージェントでインテントが見つからない場合、トピックの途中でキーワード検索を使用しますか?
- なし。
- トピック A の変数は、切り替え後にトピック B で使用できますか?
- なし。
- トピック A が再開されたときに、トピック B の変数をトピック A で使用できますか?
- なし。
追加のトラブルシューティングについては、次の表の情報を確認してください。
Open NLU テーブルでの NLU 予測情報の確認
自然言語理解 (NLU) (NLU) を使用したトピックを確認またはデバッグする場合は、さまざまな Open NLU テーブルを使用して、トピックの NLU 予測結果を表示します。たとえば、Open NLU 予測インテントフィードバックテーブルおよび Open NLU 予測エンティティフィードバックテーブルには、NLU 処理に関する詳細情報があり、トピックのインテントとエンティティ (スロット入力) を決定するために、アプリケーション (仮想エージェント など) によって実行されます。
- Open NLU 予測インテントフィードバックテーブル
Open NLU 予測インテントフィードバック [open_nlu_predict_intent_feedback] テーブルには、NLU インテント予測結果に応じてアプリケーション (このケースでは仮想エージェント) が実行するインテント処理が表示されます。仮想エージェント では、予測された NLU インテントを仮想エージェントトピックにマッピングすることが目的です。仮想エージェントがトピックを提案するたびに、予測結果のレコードがこのテーブルに追加されます。仮想エージェントがトピックを見つけられない場合、予測は行われず、Skipped とマークされたレコードがこのテーブルに追加されます。
テーブルを表示するには、[すべて] に移動してから、ナビゲーションフィルターで「open_nlu_predict_intent_feedback.list」と入力します。
表 : 1. Open NLU 予測インテントフィードバックテーブルの主要なフィールド フィールド 説明 アプリケーション NLU を使用するアプリケーション。例:VA (仮想エージェント)。
アプリドキュメント アプリケーションレコードの sys_id。例:sys_cs_topic.sys_id アプリドキュメントテーブル アプリケーションレコードのテーブル。例:sys_cs_topic (トピックテーブル)。 自動選択 システムで予測しきい値を超えるインテントが 1 つだけ検出されたため、アプリケーションで同じインテントに一致するトピックを実行することが選択されたかどうかを示すブール値 (true または false)。 現在のインテント NLU 予測が送信されたときにアプリケーションによって使用された NLU インテント。このフィールドは空 (空白) にすることができます。たとえば、仮想エージェントアプリケーションで使用されたインテントは [Change password] のようになります。
ドメイン インテントのドメイン。たとえば、グローバルまたは ITSM です。 外部モデルの表示名 外部 NLU モデルの名前。たとえば、IBM Watson Assistant NLU アプリケーションの名前などです。
インテント切り替え原因 ユーザーに確認を求める元のトピックの名前。この列の値には、次の 2 つのシナリオが考えられます。 - ユーザーは、発言の最初のインテント一致について確認を求められます ([VA が選択したトピックが正しいかどうかをユーザーに確認します] 切り替えスイッチが [NLU 設定]で有効になっている)。
ユーザーが最初の発言について確認を求められた場合、この値は挨拶トピックである可能性があります。値がemptyの場合、ユーザーは最初の一致について確認を求められていないか、最初に一致したトピックインテントを拒否しています。
- ユーザーは、トピック途中でのインテント切り替えについて確認を求められます ([切り替えられたトピックが正しいかどうかをユーザーに確認します] 切り替えスイッチが [NLU 設定] で有効になっている)。
ユーザーがトピックの途中で切り替えの確認を求められた場合、この値は、切り替え時に表示していたトピックの名前です。
注:システムタスクもここに表示される場合がありますが、無視してかまいません。例:__silent_TerminateGoal_a3817a5f7ca7439b8インテント切り替え原因の現在のタスク ユーザーが切り替える前のタスク (ノード) の名前。 注:システムタスクもここに表示される場合がありますが、無視してかまいません。例:__silent_TerminateGoal_a3817a5f7ca7439b8マップ済み インテントを使用可能なトピックと照合することで、アプリケーション (仮想エージェント) がその予測を使用可能であると判断したかどうかを示すブール値 (true または false)。
モデルの表示名 ServiceNow NLU モデルの名前。
モデル ID その予測が送信された NLU モデルの ID。 モデル名 その予測が送信された NLU モデルの名前。 NLU トピックディスカバリー結果 トピックディスカバリーの一環としての会話内の最初の発言の予測結果: - AI 検索の代替:予測は行われませんでした。AI 検索 は代替として使用されました。
- 正しい (Correct):単一の予測が行われました。トピックが正しいことをユーザーが確認しました。
- 複数の中で正しい:複数の予測が行われました。この結果は、ユーザーがこの予測を選択したことを示しています。その他の予測レコードは、[未分類] としてマークされます。
- 確認なしで終了 (Exited with no confirmation):ユーザーは確認なしで終了します。
- 正しくありません:単一の予測が行われました。トピックが正しくないことをユーザーが確認しました。
- 複数の中で正しくない:複数の予測が行われましたが、ユーザーは提案されたトピックのいずれも選択しませんでした。この結果は、この予測の [予測の信頼性] 値が最も高いことを示しています。他の予測レコードは、[未分類] としてマークされます。
- トピック予測のセットアップ:セットアップトピック関連の予測は、AI 検索 を使用せずに行われました。
- スキップ:予測が行われませんでした。
- 新しい発言でスキップ (Skipped with New Utterance):[トピック] メニューが表示されたときに、ユーザーが新しい発言を入力しました。
- 未分類:上記のいずれの条件も満たされていないか、ユーザーが会話を破棄しました。
NLU モデル言語 予測に使用される NLU モデルの言語。 予測 予測インテントの名前。 予測監査ログ Open NLU 予測ログ [open_nlu_predict_log] テーブルへの参照。 予測の信頼性 予測の信頼性の値。 要求者のセッション言語 動的翻訳 が有効になっている場合の要求者セッション言語の言語コード。 たとえば、ユーザーがフランス語で入力すると、コード fr が保存されます。言語検出が有効になっている場合、ユーザーがデフォルト以外の言語でテキストを入力すると、仮想エージェント はユーザーに言語の確認を求めます。確認すると、検出された言語がセッションのデフォルト値になります。
選択済み 一致するトピックとしてエンドユーザーに表示される複数の予測インテントが実際にエンドユーザーによって選択されたかどうかを示すブール値:true または false。 表示 アプリケーション (仮想エージェント) がエンドユーザー向けの選択肢としてその予測インテントを表示したかどうかを示すブール値 (true または false)。
切り替わったトピック ユーザーが確認を求められた場合のトピックの名前 (ユーザーの選択が「はい」か「いいえ」とは無関係)。 発言 エンドユーザーによって [チャットクライアント] ウィンドウに入力されたフレーズ。 - ユーザーは、発言の最初のインテント一致について確認を求められます ([VA が選択したトピックが正しいかどうかをユーザーに確認します] 切り替えスイッチが [NLU 設定]で有効になっている)。
- Open NLU 予測エンティティフィードバックテーブル
Open NLU 予測エンティティフィードバック [open_nlu_predict_entity_feedback] テーブルには、NLU エンティティ予測結果に応じてアプリケーション (このケースでは仮想エージェント) が実行するエンティティ (スロット入力) 処理が表示されます。たとえば、仮想エージェントでは、予測された NLU エンティティを仮想エージェントトピックの入力変数にマップすることが目的です。
テーブルを表示するには、ナビゲーションフィルターに「open_nlu_predict_entity_feedback.list」と入力します。
表 : 2. Open NLU 予測エンティティフィードバックテーブルの主要なフィールド フィールド 説明 アプリケーション NLU を使用するアプリケーション。例:VA (仮想エージェント)。
アプリドキュメント アプリケーションレコードの sys_id。例:sys_cs_topic.sys_id アプリドキュメントテーブル アプリケーションレコードのテーブル。例:sys_cs_topic 自動選択 アプリケーションがユーザーに通知せずにそのエンティティを使用することを自動的に選択するかどうかを示すブール値 (true または false)。 外部モデルの表示名 外部 NLU モデルの名前。たとえば、IBM Watson Assistant NLU アプリケーションの名前などです。
マップ済み アプリケーション (仮想エージェント) がその予測が使用可能であると判断したかどうかを示すブール値 (true または false)。
マップ先: エンティティがマッピングされたアプリケーション内のアイテム。 モデルの表示名 ServiceNow NLU モデルの名前。
モデル ID その予測が送信された NLU モデルの ID。 モデル名 その予測が送信された NLU モデルの名前。 予測 予測エンティティの名前。 予測監査ログ Open NLU 予測ログ [open_nlu_predict_log] テーブルへの参照。 予測の信頼性 予測の信頼性の値。 選択済み アプリケーションがそのエンティティを使用することを選択したかどうかを示すブール値 (true または false)。 表示 アプリケーションがエンドユーザー向けの選択肢としてその予測エンティティを表示したかどうかを示すブール値 (true または false)。 発言 [チャットクライアント] ウィンドウに入力されたユーザーのフレーズ。 値 予測エンティティの値。 - NLU 予測ログを開く
Open NLU 予測ログ [open_nlu_predict_log] テーブルには、トピックの NLU 予測レコードの統合された概要が表示されます。ログ内の各レコードは、発言や、NLU サービスによって特定された対応するインテント (トピック)およびエンティティを表します。各レコードには、トピックディスカバリー (インテント照合) およびエンティティ抽出中に計算された NLU 予測スコアも含まれます。
注:NLU 予測ノードログは自動的に生成されます。デバッグにノードログを使用しているが、NLU 予測ノードログの自動生成を抑制したい場合は、com.glide.opennlu.predict.node_logging_enabled システムプロパティを追加し、値を false に設定します。Open NLU 予測ログを表示するには、ナビゲーションフィルターに「open_nlu_predict_log.list」と入力します。
表 : 3. Open NLU 予測ログテーブルの主要なフィールド フィールド 説明 非同期 非同期予測処理のインジケーター:true または false。true は、予測が非同期に実行され、仮想エージェントのワーカースレッドの続行を許可していることを示します。
作成日時 NLU 予測レコードが作成された日時です。 期間 インテントとエンティティの値を返す、予測の処理時間の長さです。 言語 NLU 予測要求の言語。 レベル メッセージのタイプ:情報レベル。 メッセージ 返された予測結果:インテント数とエンティティ数。 要求 認識されたインテントに対する発言および NLU モデルを含む NLU 予測パラメーターです。 応答 スコアが 0 (なし) 以上のインテントおよびエンティティを含む NLU 予測結果です。 ソース プロセスまたはエリア:OpenNLU - Predict。 発言 ボットによって認識されるユーザーステートメントです。 NLU モデルで定義されたインテントにマップされます。 注:Open NLU 予測インテントフィードバックテーブルおよび Open NLU 予測エンティティフィードバックテーブルには、詳細なインテントおよびエンティティの結果を表示できます。
Open NLU 連携の HTTP 接続情報の確認
Open NLU ドライバー HTTP 接続 [open_nlu_driver_http_connection] テーブルを使用して、HTTP 資格情報、接続の詳細、および NLU サービスプロバイダーのインテント、エンティティ、NLU モデル、および予測のメソッドをすばやく確認します。
テーブルを表示するには、ナビゲーションフィルターに「open_nlu_driver_http_connection.list」を入力します。