OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

ナレッジグラフトレーニング

Botのトレーニングは、機械学習やファンダメンタルミーニングのエンジンに限定されるものではありません。ナレッジグラフエンジンもトレーニングする必要があります。

ナレッジグラフエンジンは、ナレッジグラフから適切な質問を特定することで、ユーザーインテントに応答します。

ナレッジグラフ

ナレッジグラフから、以下の手順に従って対応するナレッジグラフを構築およびトレーニングします。

  1. それぞれのFAQの質問に含まれるユニークな単語をグループ化して用語を特定します。これらすべてのユニークな単語に基づいて階層を構築します。
  2. それぞれのノードの質問数は、25問を超えないようにします。
  3. 特性を用語に関連付け、検出された複数の結果からFAQをフィルタリングできるようにします。
  4. 階層内のそれぞれの用語/ノードの同義語を定義します。用語を呼び出すためのすべての方法が定義されていることを確認します。
  5. パス内のそれぞれの用語の重要度に応じて、それらの用語を必須または通常の用語としてマークします。
  6. 可能な限りカバーできるよう、それぞれのFAQの代替質問を定義します。
  7. 正確な応答ができるようコンテキストを管理します。
  8. ストップワードは、不要な発話をフィルタリングするために使用することができます。

ナレッジグラフのトレーニングやテストは、効率的なナレッジグラフを構築するのに不可欠です。

トレーニングの前に、タグ、同義語、特性を使用してパフォーマンスを向上させることができます。

用語のタイプ

(バージョン7.2以前は、「使用法の管理」の「用語の使用法」と呼ばれていました)

一致するパスを指定する際の重要性に応じて、デフォルト、必須、オーガナイザーとしてナレッジグラフの用語とタグを指定します。

  • デフォルト:デフォルトの用語は、適格なパスの候補選択において特に考慮すべき点はありません。
  • 必須:用語を必須としてマークすると、ユーザーの発話に必須の用語またはその同義語が含まれている場合にのみ、その用語に関連付けられているすべてのパスがランキング用に絞り込まれます。
  • オーガナイザー:用語は、質問を整理するためにのみ、ナレッジグラフの一部としてマークすることができます(このオプションはタグではなく用語に対してのみ利用可能です)。

タグ

ユーザーの発言フィールドに質問が入力されると、ナレッジグラフは、テキストに基づいてグラフに追加可能なタグを提案します。提案された用語をパスに追加するには、カーソルが用語の追加フィールドにあるときに表示されるドロップダウンリストからタグを選択します。また、用語の追加フィールドにタグを入力してエンターキーを押すことで、カスタムタグを追加することもできます。

タグを追加すると、質問が表示される場所すべてで、質問の下にタグのように表示されるようになります。タグは用語とまったく同じように機能しますが、ナレッジグラフには表示されません。用語と同様に、タグにも同義語や特性を追加することができます。

同義語

ナレッジグラフにそれぞれの用語に対する複数の同義語を追加することができ、これによりさまざまなユーザーの発話に対してパスを検出できるようになります。用語の同義語は設定ウィンドウから追加することができます。

ナレッジグラフに用語の同義語を追加すると、ローカル(パスレベル)またはグローバル(ナレッジグラフ)の同義語として追加することができます。

ローカルの同義語は、特定のパスでのみその用語に適用され、グローバルの同義語は、階層内の他のパスに現れた場合でもその用語に適用されます。

用語の同義語を追加する

  1. Botのナレッジグラフの左上で、同義語を追加したいノード/用語にカーソルを合わせます。
  2. ギアアイコンをクリックして設定ウィンドウを開きます。
  3. 同義語を追加するには、以下を実行します。
    • ローカルの同義語を追加するには、パスレベルの同義語のボックスに入力します。
    • グローバルの同義語を追加するには、ナレッジグラフの同義語編集または新規追加をクリックして入力します。これらのグラフの同義語は、ナレッジグラフページの右上にあるその他のオプションアイコンの下にある同義語の管理オプションからもアクセスすることができます。

      :同義語ボックスにそれぞれの同義語を入力した後に[Enter]キーを押します。それぞれの同義語の入力後に[Enter]キーを押さずに複数の同義語を入力した場合、スペースで区切られていたとしても、同義語はすべて1つのエンティティとみなされます。
    • リリース7.2以降では、KGの用語の識別に Botの同義語 を使用できるようになりました。このオプションは、しきい値および設定、またはナレッジグラフページの右上にあるその他のオプションアイコンの下にある
      同義語の管理オプションから有効にすることができます。

      有効にすると、KGの用語(またはタグ)と一致するBotレベルの同義語は、同義語セクションのBot同義語の見出しの下に自動的に表示され、KGエンジンによって使用されます。Botの同義語は、KGグラフレベルの同義語と同様に、パスの設定と質問の照合に使用されます。ノードがBotの同義語とBotの概念の両方に一致した場合、Botの概念が優先されます。
  4. 子ノードに同義語を追加するには、設定ウィンドウの下部にリスト表示されている子ノードの用語の横にある同義語ボックスに入力します。

タグの同義語を追加する

  1. ナレッジグラフの左上で質問を追加した用語/ノードをクリックします。
  2. 質問パネルの質問一覧から、質問にカーソルを合わせます
  3. 編集アイコンをクリックし、Q&A編集ウィンドウでタグをダブルクリックします。(デフォルトのタグではなくカスタムタグのみでも編集可能)
  4. 開いたタグ設定ウィンドウで、それぞれの同義語を入力し、Enterを押して追加します。
:同義語ボックスにそれぞれの同義語を入力した後に[Enter]キーを押します。それぞれの同義語の入力後に[Enter]キーを押さずに複数の同義語を入力した場合、スペースで区切られていたとしても、同義語はすべて1つのエンティティとみなされます。

特性

:特性はバージョン6.4以前のクラスに置き換わります。

一般的なユーザーの発話から特性を作成し、ナレッジグラフの関連する用語(ノードやタグ)に追加することができます。特性の詳細については、こちらをクリックしてください。

特性を作成する

自然言語セクションから特性を作成した場合、当該特性はBotビルダー全体で共通であり、ここで使用することができます。

  1. ナレッジグラフウィンドウの右上にあるその他のオプションアイコンをクリックして、特性の管理を選択します。
  2. 特性の管理のポップアップウィンドウで新しい特性をクリックします。
  3. 特性タイプおよび特性名フィールドに、特性に関連する名前を入力します。
  4. 特性に含めるすべての発話を発話 ボックスに入力します。Issues特性の例には、it is not workingnot workingis not workingI cannot seeなどがあります。
  5. 保存をクリックします。

特性を作成したら、ナレッジグラフの複数のノードやタグに割り当てることができます。

ノード/用語に特性を追加する

  1. ナレッジグラフの左上で、特性を追加する用語にカーソルを合わせます
  2. ギアアイコンをクリックして設定画面を開きます。
  3. 特性ドロップダウンリストで特性の名前を選択し、保存をクリックします。
:ノードに特性を追加しても、同じ名前の他のノードには追加されません。関連するノードごとに個別に追加する必要があります。
タグに特性を追加する
  1. ナレッジグラフの左上で、質問を追加した用語をクリックします
  2. 質問パネルの質問一覧から質問にカーソルを合わせます
  3. 編集アイコンをクリックし、Q&A編集ウィンドウで用語をダブルクリックします。(デフォルトの用語ではなくカスタム用語のみでも編集可能)
  4. タグ設定ウィンドウの特性ロップダウンリストで、特性の名前を選択して保存をクリックします。

コンテキスト

以下の設定を行うことで、用語やタグのコンテキスト管理を行うことができます。

  • インテントの前提条件 – このノードまたはタグの修飾子として存在すべきコンテキストです。
  • コンテキスト出力 – このタスクの実行を示すために生成されるコンテキストです。

バージョン8.0のプラットフォームリリース後、オーガナイザーノードでもコンテキストを有効にできるようになりました。コンテキスト管理オプションを有効にすると、上記のコンテキスト前提条件とコンテキスト出力を設定することができます。コンテキスト管理のオプションを有効にすると、デフォルトでは用語/ノード名が表示されないことにご注意ください。

コンテキスト管理の詳細については、こちらを参照してください

ストップワード

ユーザー発話に存在するストップワードは、たとえストップワードがノード(またはノードの同義語)を定義するために使用されていたとしても、スコアリングのために削除されます。

ナレッジグラフには、言語固有の事前定義されたストップワードがあります。このリストは、お客様の要件に合わせてカスタマイズすることができます。

ストップワードリストを編集する:

  1. ナレッジグラフページでその他のオプションアイコンをクリックし、ストップワードの管理を選択します。
  2. ストップワードの管理ウィンドウから、ストップワードを削除または追加します。

トレーニング及びテスト

ナレッジグラフの作成/編集が完了したら、ナレッジグラフウィンドウの右上にあるトレーニングボタンをクリックします。これを行うことで、パス、同義語、および質問と回答の組み合わせがすべてグラフDBエンジンに送信されます。

:同義語の用語への追加や用語の名前の編集など、ナレッジグラフに変更を加えるたびに、変更がBotの応答に反映されるようにトレーニングボタンをクリックする必要があります。

1つのノードに100問以上の質問がある場合、トレーニングは失敗します。この制限はバージョン7.3以降導入されたもので、ナレッジグラフの応答速度を向上させて効率化を図るために導入されたものです。このようなエラーが発生した場合には、100問以上の問題があるパスを一覧にしたエラーCSVファイルをダウンロードすることができます。このファイルを使用してナレッジグラフを修正することができます。

ナレッジグラフのテスト

ナレッジグラフの作成とトレーニングが完了したら、Botと対話し、ナレッジグラフに関連する質問を投げかけることをお勧めします。不足している用語、質問、代替質問、同義語、特性を識別できるよう、さまざまな発話を使用してBotの応答をテストします。

注:ナレッジグラフは、公開されるまで設定済みの状態のままです。

FAQの検出手順

以下のFAQ検出手順では、ナレッジグラフ(KG)エンジンがナレッジグラフから質問を絞り込むプロセスの概要について説明します。

  1. ノードの抽出:KGエンジンは、ユーザーの発話を処理して、ナレッジグラフに存在する用語(ノード)を抽出します。さらに、用語に関連付けられた同義語、特性、タグも考慮します。
  2. クエリグラフ:KGエンジンは、抽出されたノードを構成するすべてのパスを取得します。
  3. 絞り込みパス:ユーザーの発話と50%以上一致する用語からなるパスはすべて、その後の処理のために絞り込まれます。例えば、ユーザーの発話でこれらの用語の少なくとも2つが発生した場合、エンジンは、パーソナルバンキング→共同アカウント→追加→アカウントホルダーなどの4つのノードを持つパスを絞り込みます。
    :パスカバレッジの計算ではルートノードは考慮されません。
  4. 特性を使用したフィルタリング:ナレッジグラフに特性を定義すると、上記のステップで絞り込まれたパスは、ユーザーの発話内の分類アルゴリズムの信頼度スコアに基づいて、さらにフィルタリングされます。
  5. ランカーへの送信:KGエンジンは、次にショートリストに含まれるパスをランカープログラムに送信します。
  6. コサイン類似度に基づくスコア:ランカーは、ユーザー定義の同義語、単語のレンマ形、n-gram、ストップワードを使用して、ユーザーの発話と絞り込まれた質問との間のコサイン類似度を計算します。パスはコサイン類似度スコアの高い順にランク付けされます。
  7. 修飾一致:ランカーは、次のようにパスを修飾します。
    • score >= upper_thresholdのパスは、回答として修飾されます(確実に一致)。
    • lower_threshold < score < upper_thresholdのパスは、サジェスト(一致の可能性が高い)としてマークされます。
    • score < lower_thresholdのパスは無視されます。

しきい値および設定

トレーニングやパフォーマンスを向上させるために、FM、KG、MLの3つのNLPエンジンすべてに対して、しきい値および設定を指定することができます。これらの設定は、自然言語 > トレーニング > しきい値および設定からアクセスすることが可能です。

:お客様のBotが多言語の場合、言語ごとに異なるしきい値を設定することができます。設定が行われていない場合は、すべての言語でデフォルト設定が使用されます。この機能はバージョン7.0以降で利用可能です。

ナレッジグラフエンジンの設定については、以下のセクションで詳しく説明します。

しきい値および設定への移動

  1. ナレッジグラフの設定を行うBotを開きます。
  2. サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
  3. しきい値および設定タブをクリックします。
  4. 以下に、このページのナレッジグラフセクションについて詳述しています。

自動補正は、ユーザーが入力した単語を、Botのナレッジグラフドメイン辞書から最も近く一致する単語に修正します。ナレッジグラフドメイン辞書は、ナレッジグラフの質問、代替質問、ノード、および同義語から抽出された単語で構成されています。

Botの同義語(バージョン7.2で導入)により、BotプラットフォームはナレッジグラフでもBotの同義語を使用できるようになります。KGエンジンがインテントを検出するためにBotの同義語を含めるには、トレーニングが必要です。この設定を有効にしてトレーニングを開始するには、プロンプトの表示後「続行」をクリックしてください。

音声の一部を使用したレンマ化(バージョン7.3で導入)により、発話内の単語に関連する言葉の一部を使用して、レンマ化を行うことができます。(詳細は以下を参照

パスカバレッジを使用して、パス内に存在するユーザーの発話に含まれる用語の最小割合を定義し、その後のスコアリングのためにパスを修飾することができます。デフォルトの設定は50%です。つまり、ユーザーの発話の用語の少なくとも半分がノード名および用語に一致している必要があります。

ナレッジグラフインテントの最小レベルおよび確定レベルでは、ナレッジグラフインテントの信頼度を設定することができます。グラフの信頼度の割合は、以下の3つの範囲のいずれかで表示および調整することができます。

  • 確定範囲 – この範囲(緑の領域)の一致が選択され、その他の可能性のある一致はすべて破棄されます。デフォルトでは93〜100%に設定されています。
  • 可能性の高い範囲 – この範囲(ダークグレーの領域)の一致は、再スコアリングおよびランク付けの対象と見なされます。デフォルトでは80~93%に設定されています。
  • 信頼度の低い範囲 – 他のインテントが一致しなかった場合、信頼度の低い一致(オレンジの領域)がエンドユーザーに提示され、インテント確認用に使用されます。デフォルトでは60~80%に設定されています。
  • インテントとの一致なし – ライトグレーの領域は、ナレッジグラフインテントのNLPインタプリタの信頼度が低すぎるため、ナレッジグラフインテントと一致しないことを表しています。デフォルトでは60%に設定されています。

KGの提案数:明確なKGインテントの一致がない場合に表示される、KG/FAQの最大提案数(5つまで)を定義します。デフォルトでは3に設定されています。

提案された一致の近似度:最高スコアの質問と次に提案される質問の間で許容される最大差(最大50%)を定義して、それらを同じように重要な質問と見なします。デフォルトでは5%に設定されています。これは可能性の高い範囲の一致に適用されます。

応答サイズがチャネル固有の制限を超えている場合、長い応答を管理します。応答を省略するか、続きを読むリンクで応答全文を表示するかを選択することができます。「続きを読む」リンクはメッセージの最後に含まれます。このリンクを選択した場合、応答全文がブラウザで開かれます。ウェブブラウザで長い応答を開くためのURLは、プラットフォームによってデフォルトで設定されていますが、カスタムURLを指定することも可能です。

対象となるFAQを回答で検索詳細は以下を参照

コンテキストで利用可能なコンテキストタグを使用して、ナレッジグラフ内のコンテキストパスを修飾します。このオプションを有効にすると、コンテキストからの用語またはタグを使用して、パスを絞り込むことができます。これらのタグは、以前一致したパスやインテント、あるいはカスタム定義済みのタグに由来するものです。

プラットフォームのバージョン8.0では、詳細設定が導入されています。詳細はこちらを参照してください

回答で検索

この機能により、質問との照合のみではなく、回答セクションに対してユーザー入力を検索することでFAQを特定できるようになります。つまり、質問からFAQが特定されなかった場合にのみ、回答セクションでの検索が行われます。

:この機能はすべての言語でサポートされているわけではありません。詳細はこちらを参照してください。

回答で検索」フラグが有効になっている場合は、ナレッジグラフエンジンはインテントを識別するための回答テキストを考慮します。

このオプションを有効にすると、回答が有力な回答であることをエンドユーザーに知らせるかどうかを指定することができます。選択した場合、その旨の標準メッセージが表示され、応答の管理リンクを使用してカスタマイズすることができます。詳細はこちら

応答をレンダリングする方法は3つあります。

  1. 回答全文を表示する:応答全文がユーザーへの回答として送信されます。
  2. 関連する段落のみを表示する:質問が特定された関連する段落のみが応答として送信されます。
  3. 「続きを読む」リンクを含む関連する段落のみを表示する:質問が特定された関連する段落のみが応答として送信されます。
    メッセージの最後に「続きを読む」リンクが追加されます。このリンクを選択すると、ブラウザで回答全文が開かれます。ウェブブラウザで長い応答を開くためのURLは、プラットフォームによってデフォルトで設定されていますが、カスタムURLを適用することも可能です(詳細は以下を参照)。

カスタムURLの設定:

デフォルトでは、Webブラウザで長文の回答を開くURLがプラットフォームによって設定されています。FAQの回答をレンダリングするためのカスタムURLを提供するオプションも選択することができます。

プラットフォームは、関連するメッセージテンプレート(テンプレートID)の詳細およびその他の必要な情報を含むURLを呼び出します。

以下のAPIは、FAQの全情報を提供します。

URL:
https://{{host-name}}/api/1.1/public/users/{{userId}}/faqs/resolvedResponse/{{respId}}

メソッド: get

ヘッダー: {auth : JWT}

サンプルの応答:
{
"response": "You can contact our Branch officials wherein you have submitted your documents.If the documents are in order, the account will be opened within 2 working days.",
"primaryQuestion": "How to check the status of my account opening?"
}

レンマ化

言語学におけるレンマ化とは、単語の屈折形をグループ化して、単語のレンマ形または辞書形式で識別される単一の項目として分析できるようにするプロセスです。レンマ化の過程において、ユーザーの発話からの音声の一部の情報を使用することで、より正確なFAQの識別を向上させることができます。

以下は、音声の一部を使用している場合と使用していない場合のKGエンジンで認識されたフレーズの例です。

ユーザーの発話 POSを不使用 POSを使用
What is my outstanding leave balance outstand outstanding
I am filing for a visa so that I can travel file filing
What happens to my excess annual leave and sick leave hours when I retire? exces, happen excess, happens
OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

Knowledge Graph Training

Training your Bot is not restricted to Machine Learning and Fundamental Meaning engines. You must train the Knowledge Graph engine, too.

Knowledge Graph engine responds to users’ intents by identifying the appropriate questions from the Knowledge Graph.

Knowledge Graph

From the Knowledge Graph, follow these steps to build and train the corresponding Knowledge Graph:

  1. Identify terms by grouping the unique words in each FAQ question. Build a hierarchy based on all such unique words.
  2. Ensure that each node has not more than 25 questions.
  3. Associate traits with terms to enable filtering FAQs from multiple identified results.
  4. Define synonyms for each term/node in the hierarchy. Ensure that all the different ways to call the term are defined.
  5. Depending on the importance of each term in a path, mark them as either mandatory or regular.
  6. Define alternative questions for each FAQ to ensure better coverage.
  7. Manage context for accurate response.
  8. Stop Words are used to filter unwanted utterances.

Training and testing your Knowledge Graph is crucial to building an efficient Knowledge Graph.

Before training, you can improve performance by using tags, synonyms, and traits.

Term Type

Designate the terms and tags in Knowledge Graph as Default, or Mandatory, or Organizer depending on their importance in qualifying matching paths:

  • Default: Default terms do not have any particular considerations in shortlisting qualified paths.
  • Mandatory: When you mark a term as Mandatory, all paths associated with the term are shortlisted for ranking only if the user’s utterance includes the mandatory term or its synonyms.
  • Organizer: Term can be marked as being a part of the Knowledge Graph only for organizing questions (this option is available only for terms, not tags).

Tags

When you type a question in the Intent Name Add Question field, the Knowledge Graph suggests some tags that you can add to the graph based on the text. To include a suggested term to the path, select the tag from the drop-down list that appears when the cursor is in the Add Term field. You can also add custom tags by typing them in the add term field and hitting the enter key.

After you add a tag, it is visible below the question like a tag everywhere the question appears. Tags work exactly like terms but are not displayed in the Knowledge Graph to avoid clutter. You can add synonyms and traits to tags as you do to terms.

Synonyms

You can add multiple synonyms for each term in your Knowledge Graph, making the path discoverable for varied user utterances. You can add synonyms for a term from the Settings window.

When you add a synonym for a term in the Knowledge Graph, you can add them as local (Path Level) or global (Knowledge Graph) synonyms.

Local Synonyms apply to the term only in that particular path, whereas Global Synonyms apply to the term even if it appears on any other path in the hierarchy.

To add synonyms for a term, follow the below steps:

  1. On the top left of the bot’s Knowledge Graph, hover over the node/term for which you want to add synonyms.
  2. Click the gear icon to open the Settings window.
  3. To add synonyms,  do the following:
    • To add local synonyms, type them in the box under Path Level Synonyms.
    • To add Global synonyms, click Edit or Add New under Knowledge Graph Synonyms and enter them.
    • These Graph Synonyms can also be accessed from the Manage Synonyms option under the more options icon on the top-right of the Knowledge Graph page.

      Note: Press Enter after typing each synonym in the Synonyms box. If you type multiple synonyms without pressing Enter after each synonym, all the synonyms are considered as a single entity, even if they are separated by spaces.
    • You can use Bot Synonyms in the identification of KG terms. This option can be enabled either from the Threshold and Configurations or from the Manage Synonyms option under the more options icon on the top-right of the Knowledge Graph page.

      Once enabled, the bot-level synonyms that match with KG terms (or tags) are automatically displayed under the Bot Synonyms heading in the Synonyms section and are used by the KG engine. The Bot Synonyms are used similar to that of KG graph level synonyms, for path qualification and for question matching. When a node matches both with a bot synonym and a bot concept, the bot concept takes priority.
  4. To add synonyms for a child node, enter them in the Synonyms box next to the Child Terms listed at the bottom of the settings window.

To add synonyms for a tag, follow the below steps:

  1. On the top-left side of the Knowledge Graph, click the term/node to which you have added the question.
  2. From the list of questions on the Questions panel, hover over the question.
  3. Click the edit icon and in the Edit Q&A window, double-click the tag. (You can edit custom tags alone not the default ones)
  4. On the Tag Settings window that opens, type each synonym and press Enter to add it.
Note: Press Enter after typing each synonym in the Synonyms box. If you type multiple synonyms, and without pressing Enter, all the synonyms are considered as a single entity, even if they are separated by spaces.

Traits

You can create traits with common user utterances and then add them to the relevant terms (nodes and tags) in your Knowledge Graph. To know more about Traits, click here.

To create a trait, follow the below steps:

Traits are common across the Bot Builder if you have created Traits from the Natural Language section they are available for use here.

  1. On the top-right of the Knowledge Graph window, click the more options icon and then select Manage Traits.
  2. On the Manage Traits window, click New Trait.
  3. In the Trait Type and Trait Name field, enter a relevant name for the trait. For example, Issues.
  4. In the Utterances field, enter all the utterances that you want to include in the trait. Examples of the Issues trait: it is not working, not working, is not working, and I cannot see.
  5. Click Save.

After you create a trait, you can assign it to multiple nodes and tags in the Knowledge Graph.

To add a trait to a node/term, follow the below steps:

  1. On the top-left of your Knowledge Graph, hover over the terms to which you want to add the trait.
  2. Click the gear icon to open the Settings window.
  3. Select the name of a trait from the Trait drop-down list and click Save.
Note: Adding a trait to a node doesn’t add it to other nodes with the same name. You must add traits to each relevant node separately.
To add a trait to a tag, follow the below steps:
  1. On the top left side of your Knowledge Graph, click the term to which you have added the question.
  2. From the list of questions on the Questions panel, hover over the question.
  3. Click the edit icon and in the Edit Q&A window, double-click the term. (You can edit custom terms but not the default ones)
  4. From the Tag Settings window, in the Traits drop-down list, select the name of a trait and then click Save.

Context

You can Manage Context for the terms and tags by setting:

  • Intent Precondition – the context that should be present as a qualifier for this node or tag
  • Context Output – the context that should be populated to signify the execution of this task

Post the release of v8.0 of the platform, context can be enabled for Organizer nodes as well. Enabling the Manage Context option allows you to set the context precondition and context output mentioned above.

Note: Enabling the manage context option will not emit the term/node name by default.

Click here for more on Context Management.

Stop Words

Stop words present in the user utterance are discarded for scoring even if the stop word is used to define a node (or node synonyms).

Knowledge Graph has a language-specific predefined set of stop words. This list can be customized to suit your requirements.

To edit the stop words list, follow the below steps:

  1. From the Knowledge Graph page, click on the more options icon and select Manage Stop Words.
  2. From the Manage Stop Words window, delete or add stop words.

Train & Test

After you complete creating/editing the Knowledge Graph, click the Train button on the top-right of the Knowledge Graph window. When you perform this action, all the paths, synonyms, and question-answer sets are sent to the Graph DB engine.

Note: After every change that you make to the Knowledge Graph such as adding synonyms to a term or editing the name of a term, you must click the Train button for the changes to reflect in the bot responses.

The training fails if any single node has more than 100 questions. This limit was introduced in v7.3 to make Knowledge Graph more efficient by improving the response times. In such failure cases, you can Download Errors CSV file which lists the path with more than 100 questions. You can use this file to rectify your Knowledge Graph.

Test the Knowledge Graph

When you complete creating the Knowledge Graph and training it, we recommend you to interact with the bot and ask questions connected to the Knowledge Graph. Test the bot responses by using a variety of utterances so that you can identify missing terms, questions, alternative questions, synonyms, and traits.

Note: The Knowledge Graph remains in the Configured status until it is published.

FAQ Detection Steps

The following FAQ Detection steps give you an overview of the process in which the Knowledge Graph(KG) engine shortlists the questions from a Knowledge Graph:

  1. Extract Nodes: The KG engine processes the user utterance to extract the term (nodes) present in the Knowledge Graph. It also takes into consideration the synonyms, traits, and tags associated with the terms.
  2. Query Graph: The KG engine fetches all the paths that consist of the extracted nodes.
  3. Shortlist Paths: All the paths consisting of 50% or more matching terms with the user utterance are shortlisted for further processing. For example, the engine shortlists a path with four nodes such as Personal Banking > Joint Account > Add > Account Holder if at least two of these terms occur in the user utterance.
    Note: Path coverage computation does not consider the root node.
  4. Filter with Traits: If you define any traits in the Knowledge Graph, paths shortlisted in the above step are further filtered based on the confidence score of a classification algorithm in user utterance.
  5. Send to Ranker: The KG engine then sends the shortlisted paths to the Ranker Program.
  6. Score based on Cosine Similarity: Ranker makes use of user-defined synonyms, lemma forms of word, n-grams, stop words, to compute the cosine similarity between user utterance and the shortlisted questions. Paths are ranked in non-increasing order of cosine similarity score.
  7. Qualify Matches: The ranker then qualifies the paths as follows:
    • Paths with score >= upper_threshold are qualified as an answer (definitive match).
    • Paths with lower_threshold < score < upper_threshold are marked as suggestion (probable match).
    • Paths with score < lower_threshold are ignored.

Threshold & Configurations

To train and improve the performance, Threshold and Configurations can be specified for all three NLP engines – FM, KG, and ML. You can access these settings from Natural Language > Training > Thresholds & Configurations.

NOTE: If your bot is multilingual, you can set the Thresholds differently for different languages. If not set, the Default Settings will be used for all languages. This feature is available from v7.0 onwards.

The settings for the Knowledge Graph engine are discussed in detail in the following sections.

Navigate to Threshold and Configurations

  1. Open the bot for which you want to configure Knowledge Graph settings.
  2. Hover over the left pane and click Natural Language > Training.
  3. Click the Thresholds & Configurations tab.
  4. Below is a detailed discussion about the Knowledge Graph section on this page.

Auto-Correction will spell correct the words in the user input to the closest matching word from the bot’s Knowledge Graph domain dictionary. Knowledge Graph domain dictionary comprises of the words extracted from Knowledge Graph’s questions, alternate questions, nodes, and synonyms.

Bot Synonyms will enable the Bots platform to use the Bot Synonyms in Knowledge Graph as well. Inclusion of Bot Synonyms for intent detection by the KG engine requires training. Click Proceed when prompted to enable this setting and initiate training.

Lemmatization using Parts of Speech will enable the use of parts of speech associated with the words in the utterance to lemmatize. (see below for more)

Path Coverage can be used to define the minimum percentage of terms in the user’s utterance to be present in a path to qualify it for further scoring. The default setting is 50% i.e. at least half of the terms in the user utterance should match the node names and terms.

Minimum and Definitive Level for Knowledge Graph Intent allows you to set the confidence levels for a Knowledge Graph intent. You can view and adjust the confidence level percentages for the graph in one of three ranges:

  • Definitive Range – Matches in this range (green area) are picked and any other probable matches are discarded, default set to 93-100%.
  • Probable Range – Matches in this range (dark gray area) are considered for rescoring and ranking, by default set to 80-93%
  • Low Confidence Range – If no other intents have matched, low confidence matches (orange area) are presented to end-user for intent confirmation, by default set to 60-80%
  • Not Matching an Intent – The light gray area represents the knowledge graph intent NLP interpreter confidence levels as too low to match the knowledge graph intent, default set to 60%.

KG Suggestions Count: Define the maximum number of KG/FAQ suggestions (up to 5) to be presented when a definite KG intent match is not available. Default set to 3.

Proximity of Suggested Matches: Define the maximum difference (up to 50%) to be allowed between top-scoring and immediate next suggested questions to consider them as equally important. Default set to 5%. This applies to the matches in the probable range.

Manage Long Responses when the response size exceeds channel-specific limitations. You can choose to truncate the response or display the full response with a read more link. Read More link is included at the end of the message. On selecting this link, the full response is opened as an answer in the browser. The URL to open the long response in a web browser is set by default by the platform. But you can provide a custom URL, too.

Search in Answer for the qualifying FAQs (see below for more)

Qualify Contextual Paths in the Knowledge Graph using the context tags available in the context. Enabling this option will ensure that the paths are shortlisted using terms or tags from the context. These tags can come from previous matched paths or intent or custom-defined tags.

The platform also offers some advanced configurations. Refer here for more details.

Search in Answer

This feature enables identifying FAQs by searching the user input against the answer section, instead of only matching with questions. This is a fallback mechanism only i.e. search in the answer section will be done only if no FAQs are identified from questions.

Note: This feature is not supported in all languages, refer here for details.

When the Search in Answer flag is enabled, the Knowledge Graph engine considers the answer text for identifying the intents also.

Once this option is enabled, you can specify whether to Inform the end-user that the answer is a probable answer. If selected a Standard Message to the effect is displayed, which can be customized using the Manage Response link. Know more.

There are three ways in which you can render the response:

  1. Show Complete Response: Full response is sent as the answer to the user.
  2. Show only the Relevant Paragraph: Only the relevant paragraph from which the question was identified is sent as the response.
  3. Show only the Relevant Paragraph with Read More link: Only the relevant paragraph from which the question was identified is sent as the response.
    An additional Read More link is included at the end of the message. On selecting this link, the full response is opened as an answer in the browser. The URL to open the long response in a web browser is set by default by the platform. But you can provide a custom URL (see below for details).

Custom URL Configuration

By default, the URL to open the long response in the web browser is set by the platform. You have an option to provide a custom URL for rendering the FAQ answers.

The platform will call the provided URL with details of the relevant message template (template id) and other necessary information.

The following API gives the full information of the FAQ:

URL:
https://{{host-name}}/api/1.1/public/users/{{userId}}/faqs/resolvedResponse/{{respId}}

Method: get

Headers: {auth : JWT}

Sample Response:
{
"response": "You can contact our Branch officials wherein you have submitted your documents.If the documents are in order, the account will be opened within 2 working days.",
"primaryQuestion": "How to check the status of my account opening?"
}

Lemmatization

Lemmatization in linguistics is the process of grouping together the inflected forms of a word so they can be analyzed as a single item, identified by the word’s lemma, or dictionary form. Using Parts of Speech information from the user utterance in the process of lemmatization can improve identifying a more accurate FAQ.

Following are some examples of the phrases as recognized by the KG engine with and without using parts of speech:

User Utterance not using POS using POS
What is my outstanding leave balance outstand outstanding
I am filing for a visa so that I can travel file filing
What happens to my excess annual leave and sick leave hours when I retire? excess, happen excess happens