GETTING STARTED
Kore.ai XO Platform
Virtual Assistants Overview
Natural Language Processing (NLP)
Concepts and Terminology
Quick Start Guide
Accessing the Platform
Working with the Builder
Building a Virtual Assistant
Using Workspaces
Release Notes
Current Version
Previous Versions
Deprecations

CONCEPTS
Design
Storyboard
Dialog Tasks
Overview
Dialog Builder
Node Types
Intent Node
Dialog Node
Entity Node
Form Node
Confirmation Node
Message Nodes
Logic Node
Bot Action Node
Service Node
Webhook Node
Script Node
Group Node
Agent Transfer
User Prompts
Voice Call Properties
Dialog Task Management
Connections & Transitions
Component Transition
Context Object
Event Handlers
Knowledge Graph
Introduction
Knowledge Extraction
Build Knowledge Graph
Add Knowledge Graph to Bot
Create the Graph
Build Knowledge Graph
Add FAQs
Run a Task
Build FAQs from an Existing Source
Traits, Synonyms, and Stop Words
Manage Variable Namespaces
Update
Move Question and Answers Between Nodes
Edit and Delete Terms
Edit Questions and Responses
Knowledge Graph Training
Knowledge Graph Analysis
Knowledge Graph Import and Export
Importing Knowledge Graph
Exporting Knowledge Graph
Creating a Knowledge Graph
From a CSV File
From a JSON file
Auto-Generate Knowledge Graph
Alert Tasks
Small Talk
Digital Skills
Digital Forms
Views
Introduction
Panels
Widgets
Feedback Survey
Train
Introduction
ML Engine
Introduction
Model Validation
FM Engine
KG Engine
Traits Engine
Ranking and Resolver
NLP Configurations
NLP Guidelines
Intelligence
Introduction
Contextual Memory
Contextual Intents
Interruption Management
Multi-intent Detection
Amending Entities
Default Conversations
Sentinment Management
Tone Analysis
Test & Debug
Talk to Bot
Utterence Testing
Batch Testing
Conversation Testing
Deploy
Channels
Publish
Analyze
Introduction
Conversations Dashboard
Performance Dashboard
Custom Dashboards
Introduction
Meta Tags
Dashboards and Widgets
Conversations History
Conversation Flows
Feedback Analytics
NLP Metrics
Containment Metrics
Usage Metrics
Smart Bots
Universal Bots
Introduction
Universal Bot Definition
Universal Bot Creation
Training a Universal Bot
Universal Bot Customizations
Enabling Languages
Store
Manage Assistant
Plan & Usage
Overview
Usage Plans
Support Plans
Invoices
Authorization
Multilingual Virtual Assistants
Masking PII Details
Variables
IVR Settings
General Settings
Assistant Management
Data Table
Table Views
App Definitions
Sharing Data Tables or Views

HOW TOs
Build a Flight Status Assistant
Design Conversation Skills
Create a Sample Banking Assistant
Create a Transfer Funds Task
Create a Update Balance Task
Create a Knowledge Graph
Set Up a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Add Data to Data Tables
Update Data in Data Tables
Add Data from Digital Forms
Train the Assistant
Use Traits
Use Patterns for Intents & Entities
Manage Context Switching
Deploy the Assistant
Configure an Agent Transfer
Use Assistant Functions
Use Content Variables
Use Global Variables
Web SDK Tutorial
Widget SDK Tutorial
Analyze the Assistant
Create a Custom Dashboard
Use Custom Meta Tags in Filters

APIs & SDKs
API Reference
API Introduction
API List
API Collection
koreUtil Libraries
SDK Reference
SDK Introduction
SDK Security
SDK Registration
Web Socket Connect and RTM
Using the BotKit SDK
BotKit SDK Tutorial - Blue Prism

ADMINISTRATION
Introduction
Assistant Admin Console
Administration Dashboard
User Management
Add Users
Manage Groups
Manage Roles
Assistant Management
Enrollment
Invite Users
Send Bulk Invites
Import User Data
Synchronize Users from AD
Security & Compliance
Using Single-Sign On
Security Settings
Cloud Connector
Analytics
Billing
  1. Home
  2. Docs
  3. Virtual Assistants
  4. Natural Language
  5. Fundamental Meaning14 min read

Fundamental Meaning14 min read

Fundamental Meaning is a computational linguistics approach that is 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 detail the following topics to improve the FM engine:

Manage 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 must limit the name of a task to only two or three words, yet accommodate the alternative ways in which it could be asked.

Synonyms are 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 terms, 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.

Navigate to the Bot Synonyms

  1. Open the bot for which you want to add synonyms and select the Build tab from the top menu.
  2. From the left navigation menu and click Natural Language -> Training.
  3. On the Training page, click one of the following tabs:
    • Bot Synonyms – Add and edit synonyms for the words in the bot or task names.
    • Entities – Add and edit synonyms for any words in your dialog task Entity node names.
    • Fields – Add and edit synonyms for any words in your task field names. Click each task to expand the word list for that task.

Add Bot Synonyms

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

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

 

To add a bot synonym, follow the below steps:

  1. On the Training page, select the Bot Synonyms tab.
  2. Click New Synonym or use the edit icon against an existing synonym, to open the synonym page.
  3. In the Name field, enter the name of the word (keyword) for which you want to create synonyms.
  4. In the Synonyms field, enter one or more synonyms for the keyword. Press Enter after entering each synonym.
  5. Click Add to save the synonym list.

Add Entity Synonyms

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

To add synonyms for a dialog task entity, follow the below steps:

  1. On the Training page, select the Entities tab.
  2. Click the edit icon against the entity for which you want to add synonyms.
  3. Enter one or more synonyms for the entity and then press Enter after entering each synonym

Add Field Synonyms

On the Training page, on the Fields 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, follow the below steps:

  1. On the Training page, click the Fields tab.
  2. Under a task name, click edit icon against 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 a group of words that match the task name or task field.

Concepts

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

For example, yes can be expressed as ok or I agree or right etc.

System Concepts

Kore.ai platform provides a list of default concepts that cover the most common scenarios like yes, no, help etc.

Custom Concepts

You might want to define concepts catering to your business requirements.

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

If you want to add to the list of default words, you are advised to create a new concept and add words there before mapping the pattern, instead of adding more words to the default concepts like ~emogoodbye or ~emohello.

Define 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 define custom concepts using emojis.

Concepts are used to define patterns. For example, the pattern buy ~fruit is used to capture buy orange or buy banana.

Emoji Support

NLP engine can recognize emojis present in the user utterance. You can include these in the concept definition and give a better user experience. For example, a thumbs-up emoticon (:thumbs up:) from the user can be considered as an affirmative, and a frown emoticon (:frowning2:) can be considered as an anger sentiment and appropriate action can be taken.

You can import emojis into your bot’s system concepts so that the bot can conduct the conversations when emojis are present in the user’s utterances. For this, follow the below steps:

  1. Under the Build top menu option, from the left menu, click Natural Language -> Training
  2. On the Intents tab, click the more/ellipses icon and select Import Emojis into Concepts.
  3. This adds all the default emojis to the system concepts for the current language. As you can see emojis are updated for the system concepts like ~emohappy, etc.
  4. After importing, you may choose to review and remove any emojis that you may not want to support.
  5. If you are trying to reimport the emojis, then the current emojis are retained and any additional emojis are added.

Manage Patterns and Rules

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

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 is 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, refer to Natural Language Processing Guide.

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

Navigate to the Patterns Tab

  1. Open the bot for which you want to add patterns and select the Build tab from the top menu.
  2. From the left menu click Natural Language -> Training.
  3. On the Training page, click one of the following tabs:
    • Intents – Add or edit patterns or rules for dialog task User Intent nodes.
    • Entities – Add or edit patterns for dialog task Entity nodes.
    • Fields – 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.
Add 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 must 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 can match the pattern.

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

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

To add an intent pattern, follow the below steps:

  1. On the Traning page, click the Patterns/+Pattern against the intent name you want to enter the patterns for.
  2. In the Intent pane, enter one or more sentence patterns, and press Enter between patterns.
  3. You can reorder, edit or delete patterns using the appropriate icons.
Add Rules for Intents

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.

To add an intent rule, follow the below steps:

  1. On the Traning page, click the Rules/+Rule against the intent name you want to enter the patterns for.
  2. In the Intent pane, enter one or more traits/context tags as conditional rules using AND OR operators, and press Enter between traits/tags.

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

Add Patterns for Entities

In the Entities section of the Training page, you can view, add, and delete patterns for dialog task entity node names.

To add an entity pattern, follow the below steps:

  1. On the Training page, click the Entities tab.
  2. Click the edit icon against the entity to enter the patterns to it.
  3. In the Entity Training page, select the Patterns tab.
  4. Enter one or more sentence patterns, and press ENTER between patterns.
  5. You can reorder, edit or delete patterns using the appropriate icons.
Add Patterns for Fields

In the Entities section of the Training page, you can view, add, and delete patterns for dialog task entity node names.

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

To add an entity pattern, follow the below steps:

  1. On the Training page, click the Fields tab.
  2. Click the edit icon against the entity to enter the patterns to it.
  3. In the Fields Training page, select the Patterns tab.
  4. Enter one or more sentence patterns and press ENTER between patterns.
  5. You can reorder, edit or delete patterns using the appropriate icons.

Negative Patterns

On the Kore.ai Bots Platform, a 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 is useful in filtering matched intents that 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 are used to eliminate intents detected by the Fundamental Meaning or Machine Learning models.

To enable Negative Patterns, follow the below steps:

  1. Under the Build tab of the menu option, from the left menu, click Natural Language -> Advanced Settings.
  2. Enable Negative Patterns. By default, this option is disabled.
  3. You can see the Negative Patterns section added in this section.

    • For each of the intent in your bot, you can define negative patterns similar to how you define intent patterns.
    • 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.
    • 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 Build -> Natural Language > Thresholds & Configurations.

The settings for the FM engine are 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 v7.0.

Navigate to Thresholds & Configurations

  1. Open the bot for which you want to configure thresholds.
  2. Select the Build tab from the top menu.
  3. From the left menu, click Natural Language -> Thresholds & Configurations.
  4. The Fundamental Meaning section allows you to set the threshold for the FM engine:
    • Intent Detection using Task Name Words 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 does the trick. Disabling it will not affect the intent detection using patterns. Also, an implicit pattern using the words in the Task Name will be automatically added. The implicit pattern identifies this intent only when the user input starts and ends with the exact task name. By default, it is enabled.
    • FM Threshold can be used to limit the number of results sent from the FM Engine to R&R so as to reduce the possibility of presenting a low confidence match to the end-user. Enable this configuration and choose the threshold percentage as a value between 0% and 20%. Default is 2%. Only the intent matches within the set % of the top-scoring intent will be considered and all other intents will be eliminated. This configuration is available only for English, Spanish, French and German languages.

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

Menu