Chatbot Overview
Conversational Bots
Intents & Entities
Intelligent Bots
Kore.ai's Approach
Kore.ai Conversational Platform
Bot Concepts and Terminology
Natural Language Processing (NLP)
Bot Types
Bot Tasks
Starting with Kore.ai Platform
How to Access Bot Builder
Working with Kore.ai Bot Builder
Building your first Bot
Getting Started with Building Bots
Using the Dialog Builder Tool
Creating a Simple Bot
Release Notes
Latest Updates
Older Releases
Deprecations
Bot Builder
Creating a Bot
Design
Develop
Storyboard
Dialog Task
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Time Zones
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Managing Dialogs
User Prompts
Alert Tasks
Alert Tasks
Ignore Words and Field Memory
Digital Forms
Digital Views
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Small Talk
Action & Information Task
Action Tasks
Information Tasks
Establishing Flows
Natural Language
Overview
Machine Learning
ML Model
Fundamental Meaning
NLP Settings and Guidelines
Knowledge Graph Training
Traits
Ranking and Resolver
NLP Detection
Advanced NLP Configurations
Bot Intelligence
Overview
Context Management
Session and Context Variables
Context Object
Dialog Management
Sub-Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Default Conversations
Default Standard Responses
Channel Enablement
Test & Debug
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Publishing your Bot
Analyzing your Bot
Overview
Dashboard
Custom Dashboard
Conversation Flows
Bot Metrics
Advanced Topics
Bot Authorization
Language Management
Collaborative Development
IVR Integration
Data Table
Universal Bots
Defining
Creating
Training
Customizing
Enabling Languages
Smart Bots
Defining
Sample Bots
Github
Asana
Travel Planning
Flight Search
Event Based Bot Actions
koreUtil Libraries
Bot Settings
Bot Functions
General Settings
PII Settings
Customizing Error Messages
Manage Sessions
Bot Management
Bot Versioning
Using Bot Variables
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
Bot Administration
Bots Admin Console
Dashboard
User Management
Managing Users
Managing Groups
Managing Role
Bots Management
Enrollment
Inviting Users
Bulk Invites
Importing Users
Synchronizing Users from AD
Security & Compliance
Using Single Sign-On
Security Settings
Cloud Connector
Analytics
Billing
How Tos
Creating a Simple Bot
Creating a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure Digital 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
  1. Home
  2. Docs
  3. Bots
  4. Natural Language
  5. ファンダメンタルミーニング

ファンダメンタルミーニング

ファンダメンタルミーニングとは、ChatScriptをベースにした計算言語学的アプローチです。このモデルでは、ユーザーの発話の構造を分析し、意味、位置、活用、大文字、複数形などの要素から各単語を識別します。

このセクションでは、FMエンジンを改善できるよう、以下のようなトピックについて詳しく解説していきます。

  • 同義語および概念の管理(詳細
  • パターンおよびルールの管理(詳細
  • しきい値の設定(詳細
  • ネガティブパターン(詳細

同義語の管理

ユーザーの発話は、同じリクエストでも様々な方法で行われます。

例えば「Create Lead」などのインテントは、「New Lead」、「Make a New Lead」、「Generate a Lead」のような代替案で表される場合があります。

タスクの名前を2〜3語に制限する必要がありながらも、質問される可能性のある代替方法に対応する必要があります。

同義語は、タスク名とタスクフィールド名の両方に定義できます。ユーザーが入力した正しいタスクおよびタスクフィールドを認識する際にNLPインタプリタの精度を最適化するために、タスクおよびタスクフィールドの名前に使用されている単語の同義語を追加することができます。

  • Create – 「new」、「build」、「design」、「generate」、「instantiate」、「make」、「produce」など
  • Lead – 「sales lead」、「customer lead」、「potential lead」、「qualified lead」など

以下のようなスペルミスも考慮します。

  • Create – 「crate」、「creeate」など
  • Lead – 「leed」、「led」、「lede」など

単語の同義語を追加すると、それらの同義語は他のBotタスクやタスクフィールドでも使用されます。つまり、タスクに定義された単語の同義語は、別のタスク名の同じ単語にも適用されます。例えば、Create a New Leadタスクのcreateという単語に定義された同義語は、Create Opportunityタスクにも使用されます。

タスクやタスクフィールドの名前付けのベストプラクティスおよびヒントの詳細については、自然言語処理ガイドを参照してください。

Botの同義語への移動

  1. 同義語を追加したいBotを開きます。
  2. サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
  3. 同義語と概念タブをクリックします。
  4. 同義語ページで、以下のタブのいずれかをクリックします。
    • Botの同義語  – Botまたはタスク名の単語の同義語を追加および編集します。
    • エンティティの同義語  – ダイアログタスクのエンティティノード名の任意の単語の同義語を追加および編集します。
    • フィールド – タスクフィールド名の任意の単語の同義語を追加および編集します。それぞれのタスクをクリックして、そのタスクの単語一覧を展開します。

Botの同義語の追加

同義語ページの自然言語タブで、Botのタスク名の単語の同義語を表示および追加することができます。自然言語タブで定義された同義語は、Bot全体ですべてのタスク名、フィールド名などに適用されます。

デフォルトでは、同義語がリストアップされていますが、これは英語、ドイツ語、スペイン語、フランス語のみに限定されていることにご注意ください。



Botの同義語を追加する

  1. 同義語ページのBotの同義語タブで、同義語の追加をクリックします。新しいキーワードと同義語セクションが表示されます。
  2. キーワードフィールドに、同義語を作成する単語の名前を入力します。
  3. 同義語の単語フィールドで、キーワードの同義語を1つ以上入力します。それぞれの同義語を入力した後、[ENTER]を押します。
  4. 保存をクリックして保存し、ダイアログを閉じます。

エンティティの同義語の追加

同義語ページのエンティティの同義語タブでは、それぞれのダイアログタスクのエンティティが、そのエンティティ用に定義された同義語と一緒にリストアップされています。


ダイアログタスクエンティティに同義語を追加する

  1. 同義語ページでエンティティの同義語タブをクリックします。
  2. 同義語を追加するダイアログタスクエンティティをクリックします。
  3. エンティティの同義語を1つ以上入力し、それぞれの同義語を入力した後に[ENTER]を押します。
  4. 保存をクリックして保存し、ダイアログを閉じます。

フィールドの同義語の追加

同義語ページのフィールドの同義語タブでは、それぞれのタスクがフィールドの数、またはエンティティと一緒にリストアップされています。フィールドの同義語タブで定義された同義語は、選択されたタスクと、そのタスクの指定されたフィールド名にのみ適用されます。


タスクフィールドの同義語を追加する

  1. 同義語ページでフィールドタブをクリックします。
  2. タスク名で、同義語を入力するタスクフィールドの名前をクリックします。
  3. 同義語を1つ以上入力し、それぞれのフィールドを入力した後に[ENTER]を押します。
  4. 保存をクリックして保存し、ダイアログを閉じます。

フィールドの同義語は、Botの関連するタスクにのみ適用されます。これは同一の単語、例えば、あるタスクにおけるStatusは、別のタスクにおいてStatusと呼ばれる同一フィールドの異なる同義語が存在する場合があるということです。

タスクまたはタスクフィールドに単語の同義語を追加することは、NLPインタプリタが意図したタスクまたはタスクフィールドを選択するのに役立ちますが、タスクまたはタスクフィールドへのユーザー入力にタスク名またはタスクフィールドの単語が含まれていない場合は、どうなるのでしょうか?

例えば、SalesforceのBotの「Create Lead」タスクで、ユーザーが「Create Lead」と同じ意味をもつ「New Account Option」を入力した場合、タスク名の単語や同義語のいずれにも一致しない場合があります。この場合、タスク名またはタスクフィールドに一致する単語のグループに対して、パターンを作成することができます。

カスタム概念

概念は、単一の用語で識別されるグループと見なされる、関連する同義語の集合体です。

例えば、fruitという用語を使って、appleorangebananaのいずれかを意味するようにしたい場合などがあります。

カスタム概念の定義

単語を~</ strong>で始めることにより、Botの同義語を定義するのと同じ方法で新しい概念を定義することができます。命名規則の詳細については、こちらを参照してください。

概念は、パターンを定義する際に使用することができます。例えば、buy ~fruitというパターンは、buy orangebuy bananaを取得するために使用することができます。]]>

絵文字のサポート

(バージョン8.1で導入)

NLPエンジンは、ユーザーの発話内に存在する絵文字を認識することができます。お客様はこれらを概念の定義に含め、ユーザー体験を向上させることができます。例えば、ユーザーからの「いいね絵文字(:thumbsup:)」は肯定的と見なされ、「しかめっ面絵文字(:frowning2:)」は怒りの感情と見なされ、これにより適切なアクションを取ることができます。

Botのシステム概念に絵文字をインポートすることで、ユーザーの発話に絵文字が含まれている場合にもBotは会話を行うことができます。そのためには、以下の手順に従ってください。

  1. 自然言語 > トレーニング > 同義語と概念へ移動します。
  2. 展開/省略アイコンをクリックして、絵文字を概念にインポートを選択します。
  3. これにより、現在の言語のシステム概念にすべてのデフォルトの絵文字が追加されます。ご覧のように、〜emohappyなどのシステム概念の絵文字が更新されています。
  4. インポート後、サポートしたくない絵文字は確認して削除することができます。
  5. 絵文字を再度インポートしようとしている場合は、現在の絵文字は保持され、追加の絵文字が追加されます。

パターンの管理

NLPインタプリタの精度や認識を最適化するために、タスクやタスクフィールドの名前のパターンを作成することができます。

同義語の使用は名前に使用される単語に最適ですが、ユーザーがスラング、比喩、またはその他の慣用表現を使用してタスクを参照する場合があります。

例えば、タスク名はGet Current Weatherとなっていますが、ユーザーがwhat’s happening with today’s rain situationと入力するなどがあります。この場合、タスク名で使用されている単語はいずれも使用されていませんが、入力はGet Current Weatherと同じ意味になります。

こうしたケースでは、パターンを使用することで、NLPインタプリタの精度を向上させることができます。

NLPインタプリタが同義語を1つのタスクまたはフィールドに一致させ、パターンを別のタスクまたはフィールドに一致させた場合、パターンの一致が優先され、同義語の一致よりも肯定的な認識に使用されます。

NLPを最適化するためのベストプラクティスやヒントの詳細については、自然言語処理ガイドを参照してください。

パターンの使用に関する説明については、パターンの使用方法を参照してください。

パターンタブへの移動

  1. パターンを追加するBotを開きます。
  2. サイドのナビゲーションパネルにカーソルを合わせ、自然言語とトレーニングをクリックします。
  3. パターンタブをクリックします。
  4. パターンページで以下のタブのいずれかをクリックします。
    1. インテントパターン – ダイアログタスクのユーザーインテントノードのパターンを追加または編集します。
    2. エンティティパターン – ダイアログタスクのエンティティノードのパターンを追加または編集します。
    3. フィールドパターン – ユーザー入力として、日付、場所、名前などのタスクフィールドパターンを追加または編集します。このオプションは、Botに1つ以上のアクション、アラート、または情報タスクがある場合にのみ使用できます。
    4. タスクパターン (このオプションはバージョン6.40リリース後にインテントパターンと統合されました) – 例えば、Get WeatherのようなBotタスクのパターンを追加または編集します。
インテントのパターンを追加する

タスクを表しますが、実際にはタスクの名前に単語が含まれていない文としてパターンを定義することができます。

また、正しいタスクの認識の精度を向上させるために、NLPインタプリタが単語を無視する際のルールを定義することができます。

例えば、「find」という単語の後に任意の数の単語が続き、「testable」という単語が続き、さらに任意の数の単語が続き、最後に「value」という単語が続くような順序で、ユーザー入力内の一連の単語を認識することができるよう、「find* testable* value」のようなパターンを作成することができます。このパターンの場合、ユーザー入力は「Find me any testable integers corresponding to the value」であり、パターンに一致します。

概念を使ってパターンを作成することもできます。例えば、パターンを buy ~fruit と定義することができ、このパターンと一致するユーザー入力は buy orange となります。

インテントパターンセクションでは、ダイアログタスクのパターンを表示、追加、削除することができます。



インテントパターンを追加する

  1. パターンページでインテントパターンタブをクリックします。
  2. インテント名をクリックしてパターンを入力します。
  3. 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
  4. 適切なアイコンを使用して、パターンを並べ替え編集、または削除することができます。
エンティティのパターンの追加

エンティティのパターンセクションでは、ダイアログタスクのエンティティノード名のパターンを表示、追加、削除することができます。



エンティティパターンを追加する

  1. パターンページでエンティティパターンタブをクリックします。
  2. エンティティ名をクリックして、そのエンティティ名のパターンを入力します。
  3. 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
  4. 適切なアイコンを使用して、パターンを並べ替え編集、または削除することができます。
フィールドへのパターンの追加

フィールドパターンタブで、タスクフィールドのパターンを表示、追加、削除することができます。

:このオプションは、Botに1つ以上のアクション、アラート、または情報タスクがある場合にのみ使用できます。


フィールドパターンを追加する

  1. パターンページでフィールドタブをクリックします。
  2. フィールド名をクリックして、そのフィールド名のパターンを入力します。
  3. 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
  4. 適切なアイコンを使用して、パターンを並べ替え編集、または削除することができます。

ルールの追加

:この機能はバージョン7.0で追加されました。

特性やコンテキストタグを使用して、より良質なインテント検出を行えるようインテント識別ルールを定義することができます。ANDおよびOR演算子を使用して、特性やコンテキストタグ、条件付きルールを追加することができます。

特性特性の相関ルールコンテキストタグの詳細についてはこちらを参照してください。

ネガティブパターン

Kore.ai Botプラットフォームでは、自然言語エンジンがユーザー入力を識別し、そのユーザー入力をタスクに一致させようとします。インテント検出のネガティブパターンを有効にするために、追加の詳細設定を変更することができます。

これは、ユーザーの発話の一部ではあるもののそのインテントをトリガーするべきではない、一致したインテントをフィルタリングするのに便利です。

ユースケース:例えば、ユーザーが「I was trying to Book a Flight when I faced an issue」と言ったとします。機械はそのインテントを「Book a Flight」と識別しますが、それはユーザーが望んでいることではありません。このような場合、「was trying to *」をネガティブパターンとして定義すると、一致したインテントを無視することができます。

ネガティブパターンは、ファンダメンタルミーニングモデルや機械学習モデルで検出されたインテントを排除するために使用することができます。

ネガティブパターンを有効にする

  1. 自然言語 > トレーニングへ移動します。
  2. 詳細設定を選択します。
  3. ネガティブパターンを有効にします。このオプションはデフォルトでは無効に設定されています。
  4. ネガティブパターンのセクションが追加されました。

    1. インテントパターンを定義する方法と同様に、Botのそれぞれのインテントに対してネガティブパターンを定義することができます。
    2. 設定されたネガティブパターンの一つとして識別された場合、FMエンジンやMLエンジンによって識別されたインテントは無視され、「ランキング及び解決」には送信されません。
    3. これらのパターンは、一度追加すると、順序を変えたり、編集したり、削除したりすることができるようになります。

しきい値および設定

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

FMエンジンの設定については、以下の項目で詳しく説明します。

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

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

  1. しきい値を設定するBotを開きます。
  2. サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
  3. しきい値および設定タブをクリックします。
  4. ファンダメンタルミーニングセクションでは、FMエンジンのしきい値を設定することができます。
    • 確率の高い一致の近接度 – この設定はランキングおよび解決の下に移動しました。詳細はこちらをご覧ください
    • タスク名の単語を使用したインテントの検出(バージョン7.1で導入)は、ユースケースにとって必要な場合には無効にすることができます。これは特に、place ordercancel orderrequest orderduplicate orderなどの名前のついたタスクが多すぎる場合に便利です。ユーザーの発話に「order」が含まれている場合、これらのタスクはすべてインテントとして一致します。考えられるすべての発話を推測してトレーニングするよりも、このオプションを無効にする方が効果的です。このオプションを無効にしても、パターンを使用したインテント検出には影響しません。また、タスク名の単語を使用した潜在パターンが自動的に追加されます。ユーザー入力が正確なタスク名で始まり終わる場合にのみ、潜在パターンはこのインテントを識別します。デフォルトでは有効になっています。
Chatbot Overview
Conversational Bots
Intents & Entities
Intelligent Bots
Kore.ai's Approach
Kore.ai Conversational Platform
Bot Concepts and Terminology
Natural Language Processing (NLP)
Bot Types
Bot Tasks
Starting with Kore.ai Platform
How to Access Bot Builder
Working with Kore.ai Bot Builder
Building your first Bot
Getting Started with Building Bots
Using the Dialog Builder Tool
Creating a Simple Bot
Release Notes
Latest Updates
Older Releases
Deprecations
Bot Builder
Creating a Bot
Design
Develop
Storyboard
Dialog Task
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Time Zones
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Managing Dialogs
User Prompts
Alert Tasks
Alert Tasks
Ignore Words and Field Memory
Digital Forms
Digital Views
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Small Talk
Action & Information Task
Action Tasks
Information Tasks
Establishing Flows
Natural Language
Overview
Machine Learning
ML Model
Fundamental Meaning
NLP Settings and Guidelines
Knowledge Graph Training
Traits
Ranking and Resolver
NLP Detection
Advanced NLP Configurations
Bot Intelligence
Overview
Context Management
Session and Context Variables
Context Object
Dialog Management
Sub-Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Default Conversations
Default Standard Responses
Channel Enablement
Test & Debug
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Publishing your Bot
Analyzing your Bot
Overview
Dashboard
Custom Dashboard
Conversation Flows
Bot Metrics
Advanced Topics
Bot Authorization
Language Management
Collaborative Development
IVR Integration
Data Table
Universal Bots
Defining
Creating
Training
Customizing
Enabling Languages
Smart Bots
Defining
Sample Bots
Github
Asana
Travel Planning
Flight Search
Event Based Bot Actions
koreUtil Libraries
Bot Settings
Bot Functions
General Settings
PII Settings
Customizing Error Messages
Manage Sessions
Bot Management
Bot Versioning
Using Bot Variables
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
Bot Administration
Bots Admin Console
Dashboard
User Management
Managing Users
Managing Groups
Managing Role
Bots Management
Enrollment
Inviting Users
Bulk Invites
Importing Users
Synchronizing Users from AD
Security & Compliance
Using Single Sign-On
Security Settings
Cloud Connector
Analytics
Billing
How Tos
Creating a Simple Bot
Creating a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure Digital 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
  1. Home
  2. Docs
  3. Bots
  4. Natural Language
  5. Fundamental Meaning

Fundamental Meaning

Fundamental Meaning is a computational linguistics approach that’s built on ChatScript. The model analyzes the structure of a user’s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors.

In this section we will discuss in details the following topics to improve the FM engine:

  • Managing Synonyms & Concepts more…
  • Managing Patterns & Rules more
  • Setting Thresholds more…
  • Negative Patterns more…

Managing Synonyms

Users utter the same request in varied ways.

For example, an intent like Create Lead could be expressed with alternatives such as “New Lead,” “Make a New Lead,” or “Generate a Lead.”

As a developer, you should limit the name of a task to only two or three words, yet accommodate the alternative ways in which it could be asked.

Synonyms can be defined for both the task name and a task field name. To optimize the NLP interpreter accuracy in recognizing the correct task and task field provided by the user, you can add synonyms for words used in the names of your tasks and task fields.

  • Create – new, build, design, generate, instantiate, make, produce, and so forth.
  • Lead – sales lead, customer lead, potential lead, qualified lead, and so forth.

Also consider misspellings, such as:

  • Create – crate, creeate, etc.
  • Lead – leed, led, and lede.

When you add synonyms for a word, those synonyms are also used for other bot tasks or task fields. In other words, synonyms for a word defined for a task are also applicable to the same word in another task name, for example, synonyms defined for the word create in the Create a New Lead task are also used for the Create Opportunity task.

For more information about best practices and tips for naming tasks and task fields, see the Natural Language Processing Guide.

Navigating to the Bot Synonyms

  1. Open the bot for which you want to add synonyms.
  2. Hover over the side navigation panel and then click Natural Language -> Training.
  3. Click the Synonyms and Concepts tab.
  4. On the Synonyms page, click one of the following tabs:
    • Bot Synonyms – Add and edit synonyms for the words in the bot or task names.
    • Entity Synonyms – Add and edit synonyms for any words in your dialog task Entity node names.
    • Field – Add and edit synonyms for any words in your task field names. Click each task to expand the word list for that task.

Adding Bot Synonyms

On the Synonyms page, on the Natural Language tab, you can view and add synonyms for words in bot task names. Synonyms defined on the Natural Language tab apply bot-wide to all task names, field names, and so forth.

Note that by default, synonyms are listed, this is limited to English, German, Spanish, and French languages alone.



To add a bot synonym

  1. On the Synonyms page, on the Bot Synonyms tab, click Add Synonym. The New Keyword and Synonyms section is displayed.
  2. In the Keyword field, enter the name of the word that you want to create synonyms for.
  3. In the Synonym Words field, enter one or more synonyms for the Keyword. Press ENTER after entering each synonym.
  4. Click Save to save and close the dialog.

Adding Entity Synonyms

On the Synonyms page, on the Entity Synonyms tab, each dialog task entity is listed with any defined synonyms for that entity.


To add synonyms for a dialog task entity

  1. On the Synonyms page, click the Entity Synonyms tab.
  2. Click the dialog task entity that you want to add synonyms for.
  3. Enter one or more synonyms for the entity and then press ENTER after entering each synonym.
  4. Click Save to save and close the dialog.

Adding Field Synonyms

On the Synonyms page, on the Field Synonyms tab, each task is listed along with the number of fields, or entities. Synonyms defined on the Field Synonyms tab apply only to the selected task, and the specified field name for that task.


To add synonyms for task fields

  1. On the Synonyms page, click the Field tab.
  2. Under a task name, click the name of the task field for which you want to enter the synonyms.
  3. Enter one or more synonyms and then press ENTER after entering each field.
  4. Click Save to save and close the dialog.

Field synonyms are only applicable to the associated task for the bot. This means that the same word, for example, Status in one task can have different synonyms for the same field called Status in a different task.

While adding synonyms for the words in a task or task field can help the NLP interpreter select the intended task or task field, what if the user input for the task or task field does not contain any of the words in the task name or task field name?

For example, for the Create Lead task for the Salesforce bot, if the user inputs New Account Option, which means the same as Create Lead, but does not match any of the words or synonyms for the task name. In this case, you can create patterns for groups of words that match the task name or task field.

Custom Concepts

Concepts are clusters of related and synonymous terms that you want to be considered as a group identified by a single term.

For example, you might want to use the term fruit to imply either apple or orange or banana.

Defining Custom Concepts

You can define a new concept the same way as you would define a Bot Synonym by starting the word with a ~. For more details on the naming convention refer here.

You can also use emojis to define custom concepts and the platform can process the information, for example use :wave: for hello or :thumbsdown as a no and :thumbsup as a confirmation.

Concepts can be used in defining patterns. For example, the pattern buy ~fruit can be used to capture buy orange or buy banana.

Managing Patterns

To optimize accuracy and recognition of the NLP interpreter, you can create patterns for names for tasks and task fields.

While using synonyms is great for words used in the name, sometimes, users may refer to a task using slang, metaphors, or other idiomatic expressions.

For example, a task name might be Get Current Weather, but the user inputs, what’s happening with today’s rain situation. In this case, none of the words used in the task name are used, yet the input has the same meaning as Get Current Weather.

In these cases, using patterns can help to improve NLP interpreter accuracy.

When the NLP interpreter matches a synonym to one task or field, and a pattern to a different task or field, the pattern match is prioritized and used for positive recognition over the synonym match.

To learn more about best practices and tips for optimizing NLP, see the Natural Language Processing Guide.

For a quick guide towards the usage of patterns, see How to use Patterns.

Navigating to the Patterns Tab

  1. Open the bot for which you want to add patterns.
  2. Hover over the side navigation panel and then click Natural Language > Training.
  3. Click the Patterns tab.
  4. On the Patterns page, click one of the following tabs:
    1. Intent Patterns – Add or edit patterns for dialog task User Intent nodes.
    2. Entity Patterns – Add or edit patterns for dialog task Entity nodes.
    3. Field Patterns – Add or edit task field patterns, for example, Date, Location, or Name as user input. This option is available only if the bot has one or more action, alert or information tasks.
    4. Task Patterns (this option has been merged with Intent Patterns post v6.40 release) – Add or edit patterns for any bot tasks, for example, Get Weather.
Adding Patterns for Intents

You can define a pattern as a sentence that represents the task but does not actually contain any of the words in the name of the task.

Also, you can define where words should be ignored by the NLP interpreter to improve accuracy for recognizing the correct task.

For example, you can build a pattern like find* testable* value to recognize in the user input a sequence of words in order where the word find is followed by any number of words, followed by the word testable, and again followed by any number of words, which are finally followed by the word value. For this pattern, the user input can be Find me any testable integers corresponding to the value, which would match the pattern.

You can also use concepts to build patterns. For example, the pattern can be defined as buy ~fruit and the user input that would match this pattern would be buy orange.

In the Intents Patterns section, you can view, add, and delete patterns for dialog tasks.



To add an intent pattern

  1. On the Patterns page, click the Intent Patterns tab,
  2. Click an intent name to enter the patterns for it.
  3. In the Type and Enter to add patterns field, enter one or more sentence patterns, and press ENTER between patterns.
  4. You can reorder, edit or delete patterns using the appropriate icons.
Adding Patterns for Entities

In the Entity Patterns section, you can view, add, and delete patterns for dialog task Entity node names.



To add an entity pattern

  1. On the Patterns page, click the Entity Patterns tab,
  2. Click an entity name to enter the patterns for it.
  3. In the Type and Enter to add patterns field, enter one or more sentence patterns, and press ENTER between patterns.
  4. You can reorder, edit or delete patterns using the appropriate icons.
Adding Patterns for Fields

You can view, add, and delete patterns for task fields in the Field Patterns tab.

Note: This option is available only if the bot has one or more action, alert or information tasks.


To add a field pattern

  1. On the Patterns page, click the Field tab,
  2. Click a field name to enter the patterns for it.
  3. In the Type and Enter to add patterns field, enter one or more sentence patterns, and press ENTER between patterns.
  4. You can reorder, edit or delete patterns using the appropriate icons.

Adding Rules

Note: This feature has been added in ver7.0

You can use traits or context tags to define intent identification rules for better intent detection. You can add Traits or Context Tags and conditional rules using AND, OR operators.

Refer here to know more about Traits and Trait Association Rules and Context Tags.

Negative Patterns

On the Kore.ai Bots Platform, natural language engine attempts to identify a user input and match that user input to a task. You can modify additional advanced settings to enable negative patterns for intent detection.

This will be useful in filtering matched-intents which are part of user utterance but should not trigger that intent.

Use Case: For example, a user says “I was trying to Book a Flight when I faced an issue“. Though the machine identifies the intent as “Book a Flight“, that is not what the user wants to do. In such a case, defining “was trying to *” as a negative pattern, would ensure that the matched intent is ignored.

Negative patterns can be used to eliminate intents detected by the Fundamental Meaning or Machine Learning models.

To enable Negative Patterns:

  1. Go to Natural Language > Training
  2. Select Advanced Settings
  3. Enable Negative Patterns, by default this option is disabled.
  4. You will see Negative Patterns section added, in this section:

    1. For each of the intent in your Bot you can define negative patterns similar to how you define intent patterns.
    2. Any intents identified by FM or ML engines, if identified as one of the configured negative patterns, will be ignored and not sent to Ranking & Resolver.
    3. Once added, these patterns can be reordered, edited, and deleted.

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 under Natural Language > Training > Thresholds & Configurations.

The settings for FM engine is discussed in detail in the following sections.

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 ver 7.0 onwards.

Navigating to Thresholds & Configurations

  1. Open the bot for which you want to configure thresholds.
  2. Hover over the side navigation panel and then click Natural Language -> Training.
  3. Click the Thresholds & Configurations tab.
  4. Fundamental Meaning section allows you to set the threshold for FM engine:
    • Proximity of Probable Matches – this setting has been moved to under Ranking & Resolver, see here for details.
    • Intent Detection using Task Name Words (introduced in ver 7.1) can be disabled in case your use case requires it. This is particularly useful if you have too many tasks named – place order, cancel order, request order, duplicate order. All these tasks will be matched as intent if the user utterance has ‘order‘ in it. Instead of trying guess and train for all possible utterances, disabling this option would do the trick. Disabling it will not affect the intent detection using patterns, though. Also, an implicit pattern using the words in the Task Name will be automatically added. The implicit pattern will identify this intent only when the user input starts and ends with the exact task name. By default, it is enabled.

Suggested Reading
Know more about the guidelines in naming Intents, using Patterns and more, refer here.

Menu