ボットのテスト
ボットのテストとは、簡単に言うと、ボットがユーザーの発話に対して最も適切なタスクで応答できるかどうかをチェックすることです。言語の柔軟性から見ると、ユーザーは同じインテントを表現するためにさまざまなフレーズを使用します。例として、“サンフランシスコ発ロサンゼルス着の1月1日便のチケットを変更したい”というフレーズを“旅行日を変更してくださいと言い換えることができます。1月1日の便はできません。”そのトリックは、この両方の発話を同じインテントでマッピングするためにボットをトレーニングするか、あるいは予約の変更タスクを実行することです。そこで、ボットのテストを開始するための最初のステップは、ボットレスポンスをテストするためのユーザーの発話の代表的なサンプルを特定することです。サポートチャットのログ、オンラインコミュニティ、関連ポータルサイトのFAQページなど、実際の言語の使用状況を反映しているデータソースを探します。
テスト結果のタイプ
ボットに対するユーザーの発話をテストする際は、NLPエンジンがインテントに一致するボットタスクを発見しようとします。NLPエンジンは、機械学習、ファンダメンタルミーニング、ナレッジグラフ(ボットにある場合)の3つのモデルを用いたハイブリッドなアプローチで、一致するインテントの関連性をスコアリングします。このモデルでは、ユーザーの発話を一致の可能性と完全一致のいずれかに分類します。
完全一致は高い信頼度のスコアを取得し、ユーザーの発話と完全に一致すると考えられます。公開済みボットでは、ユーザー入力が単一の完全一致であった場合、ボットが直接タスクを実行します。発話に複数の完全一致がある場合は、オプションとして、エンドユーザーが1つを選択して送信します。他方、一致の可能性 は、ユーザー入力に対してかなり良いスコアを出すインテントですが、完全一致と呼ばれるほどの信頼度は得られません。システムの中ではさらに、一致の可能性を、そのスコアに基づいて「良い一致」と「不確かな一致」に分類します。エンドユーザーの発話が、公開済みボットの中で一致の可能性を生成していた場合、ボットはこれらの一致をエンドユーザーに 「そう言う意味でしたか?」 という参考意見を送信します。以下は、ユーザーの発話テストで可能性のある結果です。
-
- 単一の一致(一致の可能性、または完全一致):NLPエンジンは、ユーザーの発話が単一のインテントやタスクに一致するものを見つけます。インテントは、「ユーザー発話」フィールドの下に表示されます。正しく一致していれば、次の発話のテストに移ることができ、あるいはスコアを向上させるためにタスクをさらにトレーニングすることもできます。不適切な一致の場合は、不正確とマークして、適切なインテントを選択することができます。
- 複数の一致(一致の可能性、または完全一致、または両方):NLPエンジンは、ユーザー発話に一致する複数のインテントを識別します。その結果から、一致タスクのラジオボタンを選択し、トレーニングを行います。
エンティティの一致
ボットのテスト中に、一致したエンティティが表示されます。発話のエンティティは、最初にNERとパターンエンティティ、次に残りのエンティティという順で処理されます。rel8.0以降のプラットフォームでは、エンティティがどのような一致であったのか、また、どのような自信のあるスコアであったのかを含めて、詳細が表示されます。詳細には以下が含まれます。
- 識別エンジン – 機械学習またはファンダメンタルミーニング。
- トレーニングタイプ – NER、パターントレーニング、エンティティ名、システムコンセプトなどから一致できます。パターンが一致した場合、その行をクリックすると同じ行の詳細が表示されます。
- NERトレーニングを使用する機械学習エンジンで識別される信頼度スコア(「条件付きランダム」フィールドがNERモデルとして選択されている場合のみ)
テスト結果の分析
ユーザーの発話をテストすると、一致したインテントに加えて、NLP分析ボックスが表示され、ショートリストされたインテント、ショートリストされたNLPモデル、対応するスコア、そして最終的な勝者の概要が表示されます。“ファンダメンタルミーニング”タブでは、ショートリストされていなくても、すべてのインテントのスコアを見ることができます。 前述したように、Kore.aiのNLPエンジンは、機械学習、ファンダメンタルミーニング、およびナレッジグラフ(存在する場合)のモデルを使用して、インテントを照合します。NLPエンジンが、基礎となるモデルの1つを通して単一の完全一致を発見した場合、そのタスクが一致のインテントとして表示されます。テストの結果、複数の完全一致があった場合は、正しいインテントを選択するためのオプションとして、それらを受け取ることができます。これらのモデルによって複数の一致の可能性と判断された場合、最終的な勝者を決定するために、 ファンダメンタルミーニングモデルを使用して、 ランキングおよび解決 によってすべてのショートリストされたインテントが再スコアリングされます。場合によっては、複数の一致の可能性が再スコアリング後も同じスコアを確保していることがあり、その場合は複数の一致として表示され、開発者は1つを選択することになります。NLP分析ボックス内の学習モデル名のタブをクリックすると、インテントスコアが表示されます。
各モデルのダイアログでは、右上のアイコンをクリックすると、対応するエンジンに定めれられている設定としきい値が表示されます。
機械学習モデル
機械学習モデルは、ユーザー入力とタスクラベルおよび各タスクのトレーニング発話の一致を試みます。ユーザー入力が複数の文から成り立っている場合は、それぞれの文はタスク名およびタスク発話に対して別々に実行されます。機械学習モデルのボタンをクリックすると、NLP分析の[機械学習モデル]セクションが表示されます。ここには、プラスのスコアを確保したタスクの名前だけが表示されています。一般的に、タスクに追加するトレーニング発話の数が多くなればなるほど、発見の可能性がますます高まります。詳細情報ついては、機械学習をお読みください。
FMモデル
ボットの各タスクは、機械学習モデルとは別に、タスク名、同義語、パターンのさまざまな組み合わせを含む総合カスタムNLPアルゴリズムを用いて、ユーザー入力に対してスコアリングします。ファンダメンタルミーニングモデルのタブでは、ボットにおけるすべてのインテントに対して分析結果が表示されます。タブをクリックすると、各タスクのスコアが表示されます。処理済み発話をクリックすると、ユーザー発話がどのように分析および処理されたかが表示されます。rel 7.2以降では、FMエンジンは、ボットの言語に対応して、2種類の方法でモデル生成を行っています。アプローチ1:ドイツ語およびフランス語に対してサポート済み。原語、普遍的な品詞、従属関係詞、関連語にかかわる単語分析 要素を詳しく説明しています。次に、各処理済みインテントのスコアの内訳が表示されます。スコアリング済みのインテント(一致または除外)を選択すると、各単語に対するスコアリング詳細が表示されます。これには、発話からの単語と、係り受け解析に基づいてそれぞれに割り当てられたスコアが含まれます。
アプローチ2:上記以外の言語に対してもサポート済み。オリジナルの単語、文中の役割、処理済み単語(スペル修正の場合)に関連する単語分析要素が詳しく説明されています。次に、各処理済みインテントのスコアの内訳が表示されます。スコアリング済みのインテント(一致または除外)を選択すると、各単語に対するスコアリング詳細が表示されます。詳細な内訳は以下のとおりです。
- 一致した単語:ユーザー入力の中で、タスク名の単語やタスク用のトレーニング発話において一致した単語の数に対して与えられるスコア。
- 単語の範囲:タスク名、分野名、発話、同義語などを含むタスクにおける単語全体の比率と、一致する単語の比率に与えられるスコア。
- 正確な単語:同義語ではなく、正確に一致した単語の数に対して与えられるスコア。
- ボーナス
- 文の構造:ユーザー入力に文の構造が一致した場合のボーナス。
- 単語の位置:文の中で単語の位置をベースに与えられるスコア。 文の最初に位置する単語にはより高い優先度。文頭に近い位置に単語がある場合は、追加のクレジット。
- オーダーボーナス:タスクのラベルと同じ順番の単語の数でボーナス。
- 役割ボーナス:プライマリ役割とセカンダリ役割(主語/動詞/目的語)が一致した数にボーナス。
- スプレッドボーナス:パターンの中で最初に一致した単語と最後に一致した単語の位置の差にボーナス。その差が大きければ大きいほど、スコアも大きくなります。
- ペナルティ:タスク名の前に複数のフレーズがある場合、またはタスクラベルの中央に接続詞がある場合はペナルティ。
ナレッジグラフ
ボットがナレッジグラフから成り立つ場合は、ユーザー発話を処理して用語を抽出し、ナレッジグラフにマッピングして関連パスを取得します。事前設定されたしきい値より大きい用語数を含むパスはすべて、さらなるスクリーニングのためにショートリストに登録されます。100%の用語がカバーされているパスで、パスの中に類似するFAQがある場合は、完全に一致していると考えられます。発話がダイアログをトリガーする場合(ナレッジグラフにおけるダイアログの実行オプションによる)、同一のものが “一致したインテント”および“一致した発話”として表示されます。さらに、機械学習エンジンやFMエンジンのインテントと同じように、ボットのトレーニングを行うことができます( 以下のトレーニングセクションをご参照ください)。ナレッジグラフトレーニングの詳細は、こちらからご覧ください。
ランキングおよび解決
ランキングおよび解決によって、NLP計算全体の最終勝者が決定されます。機械学習モデルとナレッジグラフのどちらかが完全に一致した場合、ランキングと解決はインテントの再スコアリングを行わず、一致したインテントとして提示します。複数の完全一致があったとしても、開発者には選択できるオプションとして提示されます。ランキングおよび解決は、3つのモデルで特定された他のすべての正確・不正確な一致を、ファンダメンタルミーニングモデルを用いて再スコアリングします。再スコアリングの結果、あるインテントの最終スコアがあるしきい値を超えれば、そのインテントも一致していると見なされます。ランキングおよび解決のタブを選択すると、詳細が示されます。 一致した発話を選択することにより、各一致のランキングと詳細を見ることができます。
ボット言語により、スコアリングモデルは以下のようになります。
- 単語の役割、文と単語の位置関係、および単語の順序の組み合わせに基づく、または
- 係り受け解析に基づく(ドイツ語、フランス語向けにサポート)
3つのエンジンが異なる完全一致/一致の可能性を返す場合のランキング・解決によるインテントの排除の根拠は、以下のとおりです。
- 機械学習モデルによって、日付や数字などのエンティティ値をベースに照合されたインテントは排除されます。
- 3つのエンジンのいずれかによって特定されたすべての一致の可能性は、完全一致が発見された場合は、排除されます。
- ユーザーの発話の中で、これより前に別の完全一致が発見されていた場合、完全一致は排除されます – ユーザーの発話に2つのインテントが含まれるケース。例として、「フライトを予約して、次にタクシーを予約する」では、「フライトを予約」と「タクシーを予約」に一致しますが、「フライトを予約」よりも「タクシーを予約」の方が排除されます。
- 完全なインテントの一致に続くインテントのパターンの一致は、排除されます。例として、「メールを送信するタスクを作成する」というユーザーの発話は、「タスクを作成する」と「メールを送信する」というインテントと一致する可能性があります。このような場合、「メールを送信する」は「タスクを作成する」というインテントに従うため、削除されます。
- 「しきい値と設定」セクションにおいて設定された最小値を下回るスコアのインテントは、排除されます。
- ネガティブパターンに一致する完全一致。
- 前提条件(定義されている場合)が満たされていないインテントは、排除されます。
- 完全一致が回答における検索によってナレッジグラフエンジンから得られた場合は、別の一致したインテントが存在します。
ボットのトレーニング
トレーニングとは、ユーザー入力に基づいて、あるボットのタスクやユーザーインテントを他のものよりも優先させるために、NLPエンジンのパフォーマンスを高めることです。可能性のあるすべてのユーザーの発話および入力に対してボットをテストし、必要に応じてトレーニングを行う必要があります。
ボットのトレーニング
- ユーザーの発話を入力後、テストの結果に従って、トレーニングオプションを開くために、以下のうち1つを実行します。
- 不一致のインテントには:インテントの選択ドロップダウンリストから、ユーザーの発話に一致させたいと思うインテントを選択します。
- 複数の一致したインテントには:照合したいインテントのラジオボタンを選択します。
- 単一の一致したインテントには:一致したインテントの名前をクリックします。
- 入力したユーザー発話は、機械学習発話セクションの下のフィールドに表示されます。インテントに発話を追加するには、保存をクリックします。次々と好きなだけ発話を追加することができます。詳細情報は、機械学習をお読みください。
- インテント同義語セクションでは、タスク名における各単語は個別の行アイテムとして表示されます。正しいタスクを認識するためのNLPインタプリターの精度を最適化するには、単語の同義語を入力します。詳細情報については、同義語の管理をお読みください。
- インテントパターンセクションで、インテントのタスクパターンを入力します。詳細情報については、パターンの管理をお読みください。
- 関連するトレーニングエントリの作成が完了したら、 発話の再実行をクリックして、信頼度の高いスコアを得るためにインテントを改善できたかどうかを確かめます。
FAQでトレーニング
FAQによるユーザーの発話に対してボットが応答するようにしたい場合、2つの方法があります。
- FAQページから用語や用語構成やクラスを設定し、さらにナレッジグラフのトレーニングおよび発話の再テストを実行します。
- ナレッジグラフのページから選択したFAQに対して、代わりの質問として発話を追加し、さらにナレッジグラフのトレーニングしおよび発話の再テストを実行します。
ナレッジグラフトレーニングの詳細については、こちらからご覧ください。
不正確な一致をマーク
ユーザー入力が不正確なタスクに一致した場合、次のようにして正しいインテントに一致させます。
- 一致したインテント名の上にある不正確な一致としてマークリンクをクリックします。
- 一致したインテントのドロップダウンリストが表示され、別のインテントを選択することができます。
- ユーザー入力に対応するインテントを選択して、ボットをトレーニングします。