{"id":18123,"date":"2019-02-12T09:36:14","date_gmt":"2019-02-12T09:36:14","guid":{"rendered":"\/docs\/bots\/bot-builder\/fundamental-meaning\/"},"modified":"2023-11-06T09:56:32","modified_gmt":"2023-11-06T09:56:32","slug":"fundamental-meaning","status":"publish","type":"post","link":"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/","title":{"rendered":"Fundamental Meaning"},"content":{"rendered":"<p><strong>Fundamental Meaning <\/strong><span style=\"font-weight: 400;\">is a computational linguistics approach that is built on ChatScript. The model analyzes the structure of a user\u2019s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors.<\/span><\/p>\n<h1><span class=\"ez-toc-section\" id=\"FM_Engine_Overview\"><span style=\"font-weight: 400;\">FM Engine Overview<\/span><\/span><\/h1>\n<p><span style=\"font-weight: 400;\">The Fundamental Meaning model is a deterministic model that uses semantic rules and language context to determine the intent match. This engine can be trained using synonyms, built-in and custom concepts, and patterns.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The FM model scores user utterances using various semantic rules, which include:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Grammar;<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Parts of speech;<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Word Match, Word Coverage across the sentence, Word Position;<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Sentence structure.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"The_FM_Process\">The FM Process<\/span><\/h2>\n<p>The FM model uses the following processes in training.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tokenization\">Tokenization<\/span><\/h3>\n<p>Also known as word segmentation, this process breaks up the given text into units called tokens. The hyphenated words are retained (might be subjected to spell correction later); digits with a hyphen are split. For example, <b><i>2-3<\/i><\/b> becomes <b><i>2 &#8211; 3<\/i><\/b>. Tokenization is not done for known concepts like Dates, Currency, etc.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Substitution\">Substitution<\/span><\/h3>\n<p>This process expands interjections, abbreviations, misspellings, texting shorthand, and contractions using system concepts. Like <code>~emohello<\/code> for all greeting-related expressions, <code>~yes<\/code> for confirmation, <code>~no<\/code> for rejection, and more. A <b>Bot Substitution<\/b> or replacement of words happens immediately after tokenization.<\/p>\n<p>This feature allows bot developers to add substitutions specific to their domain and vocabulary. For example, <b><i>Chevy<\/i><\/b> is replaced by <b><i>Chevrolet<\/i><\/b> by a car serving bot,<\/p>\n<p>Another use of this feature is on voice channels where ideally, mis-transcriptions should be corrected by the ASR software, but that isn\u2019t always possible. In these cases, the substitution functionality allows bot developers to correct transcription errors. For example, <b><i>our d<\/i><\/b> is corrected to <b><i>Audi<\/i><\/b> by a car serving bot. <a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/#Bot_Substitutions\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Merging\">Merging<\/span><\/h3>\n<p>This process combines a sequence of single words, numbers, or dates. For example, \u201ccredit card\u201d or \u201ctwenty five\u201d or \u201ctwenty-five\u201d merged into a single word.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Spell_Check\">Spell Check<\/span><\/h3>\n<p>This process replaces unknown words with known words (if any) which involves case conversion. The Platform refers to WordNet and VA Defined Terms for spell check. E.g. \u201cI wantt\u00a0 to pai for my booking\u201d \u00a0 becomes \u201cI want to pay for my booking\u201d<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lemmatization\">Lemmatization<\/span><\/h3>\n<p>The XO Platform uses the WordNet database to look up word lemmas in a given text.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Gleaning\">Gleaning<\/span><\/h3>\n<p>This process helps identify sections of utterances and mark them as special. This includes the following:<\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Marking polite phrases and treating them as noise, like \u201ccan you please\u2026.\u201d.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Language constructs that indicate multiple intents, like \u201cand then\u201d, \u201cand after that\u201d, \u201cbut first\u201d cause the sentence to be split into two and do multiple intent detection.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Identifying and normalizing numbers and from other related entities: e.g. \u201cseven one three triple five double zero eighty four\u201d =&gt; 7135550084, which is probably a phone number.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Identifying System entities like Percentages \u2013 \u201csixty six percent\u201d; Units of measurement \u2013 \u201cfive sq km\u201d, \u201c12 stone 7 pounds\u201d; Currencies \u2013 \u201ctwenty bucks\u201d, \u201csix lakh rupees\u201d; Dates and times \u2013 \u201clast day of next month\u201d, \u201c10 o\u2019clock tonight\u201d.<\/span><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Parts_of_Speech_POS_tagging\">Parts of Speech (POS) tagging<\/span><\/h3>\n<p>This process marks up a word in a corpus to the corresponding part-of-speech tag based on the context and definition. Part-of-speech tags are useful in building parse trees which are used to extract the relationship between words. <b>POS Tagging<\/b> is also essential for building lemmatizers to reduce a word to its root form.\u00a0 Each word is assigned a part of the speech tag, and possibly a role (subject\/verb\/object) from VA definition data.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Marking\">Marking<\/span><\/h3>\n<p>This process of assigns a concept to each word. <b>POS tagging<\/b> and <b>Parsing<\/b> are abstract and deal with nouns and verbs. Alternatively, <b>Marking<\/b> applies a meaning to the word. For example, for the utterance \u201cbook a flight\u201d \u2013 <code>book<\/code> can be a noun or verb. However, in this context, it is marked as a verb.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Key_Components\"><span style=\"font-weight: 400;\">Key Components<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Synonyms, Concepts &amp; Patterns are the cornerstones of the FM engine. These are used in intent detection and also by Ranking &amp; Resolver when trying to choose among the multiple possible intents.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><strong>Synonyms<\/strong><span style=\"font-weight: 400;\"> need to be used when the words used to identify an intent\/entity can be used interchangeably like. The Platform comes with a built-in library, it can be augmented by adding domain words that will be used to build a dictionary for your assistant.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Concepts<\/strong><span style=\"font-weight: 400;\"> are a predefined set of choices that are defined once and used in multiple places. The Platform has a large set of inbuilt concepts that developers can use to define a pattern like ~world_country, ~asian_country. You can create your own custom concepts which are applicable to your use case, you can also create hierarchical concepts.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Patterns<\/strong><span style=\"font-weight: 400;\"> used mainly for intent detection in the FM engine. Can be used to define metaphors or other idiomatic expressions for task names. Concepts can be used in defining patterns.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"FM_Output\"><span style=\"font-weight: 400;\">FM Output<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The FM Engine collects information on a word in a given user input depending on:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><strong>Position <\/strong><span style=\"font-weight: 400;\">of the matching word in the sentence,<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Whether the matching word is a <\/span><strong>Noun<\/strong><span style=\"font-weight: 400;\"> or <\/span><strong>verb<\/strong><span style=\"font-weight: 400;\">,<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Role of the matching word \u2013 <\/span><strong>Main Subject<\/strong><span style=\"font-weight: 400;\">, <\/span><strong>Main Verb<\/strong><span style=\"font-weight: 400;\">, <\/span><strong>Main Object<\/strong><span style=\"font-weight: 400;\">,<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Exact word match <\/strong><span style=\"font-weight: 400;\">or <\/span><strong>Synonym<\/strong><span style=\"font-weight: 400;\">,<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Tense of the matching word \u2013 <\/span><strong>present\/future\/past<\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A series of individual scores are calculated from the set of matched words.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The goal is to prefer tasks that match the most likely words in the earliest sentence in the input.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Preference is given to words when they are close together, towards the start of the sentence, and in the same order as the task label.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">It is undesirable to have several phrases before the task name or a conjunction in the middle of the task label.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Preference is given to tasks in phrases in the present or future tense.<\/span><\/p>\n<h1><span class=\"ez-toc-section\" id=\"Training_the_FM_Engine\"><span style=\"font-weight: 400;\">Training the FM Engine<\/span><\/span><\/h1>\n<p><span style=\"font-weight: 400;\">Training the FM Engine involves the following:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Synonyms and Concepts management,<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Managing Patterns and Rules,<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Negative Patterns.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Thresholds configuration,<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Let us discuss these topics in detail, below.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Manage_Synonyms\">Manage Synonyms<\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"How_Synonyms_Work\"><span style=\"font-weight: 400;\">How Synonyms Work<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Users utter the same request in varied ways.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, an intent like <\/span><em><span style=\"font-weight: 400;\">Make a Booking<\/span><\/em><span style=\"font-weight: 400;\">\u00a0 could be expressed with alternatives such as <\/span><em><span style=\"font-weight: 400;\">Create a Booking <\/span><\/em><span style=\"font-weight: 400;\">or <\/span><em><span style=\"font-weight: 400;\">Make a Reservation. <\/span><\/em><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><strong>Synonyms<\/strong><span style=\"font-weight: 400;\"> 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.<\/span><\/p>\n<p><strong>Make <\/strong><span style=\"font-weight: 400;\">&#8211; add, create, generate, etc.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Booking &#8211; reservation, ticket, trip, etc.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Also consider misspellings, such as:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><strong>Create<\/strong><span style=\"font-weight: 400;\"> \u2013 crate, creeate, etc.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Booking <\/strong><span style=\"font-weight: 400;\">&#8211; boking, bookin, etc.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">When you add synonyms for a word, those synonyms are also used for other 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 <\/span><em><span style=\"font-weight: 400;\">make<\/span><\/em><span style=\"font-weight: 400;\"> in the Make a Booking\u00a0 task are also used for the Make a Payment task.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For more information about best practices and tips for naming tasks and task fields, see the <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/additional-notes-nlp-settings-guidelines\/\"><span style=\"font-weight: 400;\">Natural Language Processing Guide<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Add_Synonyms\"><span style=\"font-weight: 400;\">Add Synonyms<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The Platform provides a set of default synonyms, pre-listed within the dedicated section (<strong>Training &gt; Synonyms<\/strong>). These are only available in English, German, Spanish, French; Traditional and Simplified Chinese.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Adding Synonyms involves using the Natural Language Training section of the XO Platform, where you can add synonyms for VA, task and entity node names.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The following sections show you how to add these synonyms.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Navigate to Synonyms<\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Open the VA for which you want to add synonyms and select the <\/span><strong>Build<\/strong><span style=\"font-weight: 400;\"> tab from the top menu.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">From the left navigation menu and click <\/span><strong>Natural Language -&gt; Training.<\/strong><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, click one of the following tabs:<\/span>\n<ol>\n<li style=\"font-weight: 400;\"><strong>Bot Synonyms <\/strong><span style=\"font-weight: 400;\">\u2013 Add and edit synonyms for the words in the bot or task names.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Entities <\/strong><span style=\"font-weight: 400;\">\u2013 Add and edit synonyms for any words in your dialog task Entity node names.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4><span style=\"font-weight: 400;\">Add Bot Synonyms<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page under the <\/span><strong>Bot Synonyms<\/strong><span style=\"font-weight: 400;\"> tab, you can view and add synonyms for words in task names. Synonyms defined on the <\/span><strong>Bot Synonym<\/strong><span style=\"font-weight: 400;\"> tab apply bot-wide to all task names, field names, and so forth.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To add a bot synonym, follow the below steps:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, select the <\/span><strong>Bot Synonyms<\/strong><span style=\"font-weight: 400;\"> tab.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140738\/add-bot-synonym.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46325\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140738\/add-bot-synonym-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140738\/add-bot-synonym-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140738\/add-bot-synonym-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140738\/add-bot-synonym.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Click <\/span><strong>New Synonym<\/strong><span style=\"font-weight: 400;\"> or use the edit icon against an existing synonym, to open the synonym page.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the <\/span><strong>Name<\/strong><span style=\"font-weight: 400;\"> field, enter the name of the word (keyword) for which you want to create synonyms.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the <\/span><strong>Synonyms <\/strong><span style=\"font-weight: 400;\">field, enter one or more synonyms for the keyword. Press <\/span><strong>Enter\/Return<\/strong><span style=\"font-weight: 400;\"> after entering each synonym.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Added Synonyms are automatically saved once you press <\/span><em><span style=\"font-weight: 400;\">Enter\/Return<\/span><\/em><span style=\"font-weight: 400;\">.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140838\/synonym-added-successfully.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46361\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140838\/synonym-added-successfully-1024x323.png\" alt=\"\" width=\"640\" height=\"202\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140838\/synonym-added-successfully-1024x323.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140838\/synonym-added-successfully-300x95.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140838\/synonym-added-successfully.png 1568w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\n<\/span><\/li>\n<\/ol>\n<h4><span style=\"font-weight: 400;\">Add Entity Synonyms<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, on the <\/span><strong>Entities<\/strong><span style=\"font-weight: 400;\"> tab, each dialog task entity is listed with any defined synonyms for that entity name.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140814\/entity-synonyms-list.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46349\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140814\/entity-synonyms-list-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140814\/entity-synonyms-list-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140814\/entity-synonyms-list-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140814\/entity-synonyms-list.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">To add synonyms for a dialog task entity, follow the below steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, select the <\/span><strong>Entities<\/strong><span style=\"font-weight: 400;\"> tab.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Click the <\/span><strong>Edit icon <\/strong><span style=\"font-weight: 400;\">against the entity for which you want to add synonyms.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Enter one or more synonyms for the entity and then press <\/span><strong>Enter<\/strong><span style=\"font-weight: 400;\"> after entering each synonym. They will be saved automatically.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140745\/add-entity-synonym.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46331\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140745\/add-entity-synonym-1024x432.png\" alt=\"\" width=\"640\" height=\"270\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140745\/add-entity-synonym-1024x432.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140745\/add-entity-synonym-300x126.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140745\/add-entity-synonym.png 1559w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\n<\/span><\/li>\n<\/ol>\n<h4><span style=\"font-weight: 400;\">Use Patterns Instead of Synonyms<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Adding synonyms can help the NLP interpreter select the intended task. But what if the user input does not contain any of the words we used as synonyms?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, for a Make a Booking task in a Travel Assistant , if the user inputs <\/span><em><span style=\"font-weight: 400;\">Get me a ticket<\/span><\/em><span style=\"font-weight: 400;\"> , which means the same as <\/span><em><span style=\"font-weight: 400;\">Make a Booking <\/span><\/em><span style=\"font-weight: 400;\">, but does not match any of the words or synonyms for the task name. In this case, you can <\/span><strong>create patterns<\/strong><span style=\"font-weight: 400;\"> for a group of words that have the same meaning.\u00a0<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Parallel_Editing_for_Synonyms\">Parallel Editing for Synonyms<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In the previous versions of the XO Platform, whenever a user added and saved a new bot synonym, the server added it to the database and updated the entire synonym list. Concurrent usage caused data conflicts when multiple users worked parallelly on the same bot. This also prevented team members from collaborating during bot training.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s consider the following scenario as an example:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Two users are trying to add synonyms to the same bot.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">User 1 adds <\/span><i><span style=\"font-weight: 400;\">Synonym 1<\/span><\/i><span style=\"font-weight: 400;\"> and hits save.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">User 2 adds\u00a0 <\/span><i><span style=\"font-weight: 400;\">Synonym 2 <\/span><\/i><span style=\"font-weight: 400;\">and hits save.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">User 1 refreshes the page and looks for\u00a0 <\/span><i><span style=\"font-weight: 400;\">Synonym 1<\/span><\/i><span style=\"font-weight: 400;\">, which is overwritten by User 2\u2019s changes in the database.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Similarly, when User 1 and User 2 simultaneously delete their synonyms, respectively, the system deletes User 2\u2019s synonym from the list but retains User 1\u2019s synonym when they refresh the page.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We\u2019ve introduced a workaround for this issue discussed below. This design flow provides a mutually exclusive way of retaining the relevant synonyms list for all the users.<\/span><\/p>\n<h4>Workaround with Parallel Editing<\/h4>\n<p><span style=\"font-weight: 400;\">The XO Platform now supports <\/span><b>Parallel Editing<\/b><span style=\"font-weight: 400;\">, where more than one user can add or delete a synonym for the same bot without losing or overwriting data during bot training. <\/span><span style=\"font-weight: 400;\">When a user updates an existing synonyms list, the system tracks whether it\u2019s an add or delete operation and does the following:<\/span><\/p>\n<p><b>Add a Synonym<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Whenever a user adds and saves a new synonym, the system only updates the database with the new synonym and does not overwrite the existing synonym list.<\/span><\/p>\n<p><b>Delete a Synonym<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Whenever a user deletes an existing synonym, the system removes only the concerned synonym from the existing synonyms list without overwriting the complete list. <\/span><span style=\"font-weight: 400;\">During concurrent usage, the system prompts the user to refresh the page to make the latest information available.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Manage_Concepts\"><span style=\"font-weight: 400;\">Manage Concepts<\/span><\/span><\/h2>\n<p><strong>Concepts<\/strong><span style=\"font-weight: 400;\"> are clusters of related and synonymous terms that can be considered as a group identified by a single term.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, <\/span><em><span style=\"font-weight: 400;\">yes<\/span><\/em><span style=\"font-weight: 400;\"> can be expressed as <\/span><em><span style=\"font-weight: 400;\">ok,<\/span><\/em> <em><span style=\"font-weight: 400;\">I agree<\/span><\/em><span style=\"font-weight: 400;\"> or <\/span><em><span style=\"font-weight: 400;\">all right<\/span><\/em><span style=\"font-weight: 400;\"> etc.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition, Concepts can be very useful when you want to categorize terms. For example, you might have <\/span><em><span style=\"font-weight: 400;\">fruit<\/span><\/em><span style=\"font-weight: 400;\"> as a concept, under which you can classify terms such as <\/span><em><span style=\"font-weight: 400;\">\u00a0apple, orange, banana, etc.<\/span><\/em><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Concept_Types\"><span style=\"font-weight: 400;\">Concept Types<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">There are two types of Concepts within the XO Platform:<\/span><\/p>\n<ul>\n<li><strong>System Concepts <\/strong><span style=\"font-weight: 400;\">The Kore.ai platform provides a list of default concepts that cover the most common scenarios like yes, no, help etc.<\/span><\/li>\n<li><strong>Custom Concepts: <\/strong><span style=\"font-weight: 400;\">You might want to define concepts catering to your business requirements. For example, you might want to use the term <\/span><em><span style=\"font-weight: 400;\">fruit<\/span><\/em><span style=\"font-weight: 400;\"> to imply either <\/span><em><span style=\"font-weight: 400;\">apple<\/span><\/em><span style=\"font-weight: 400;\"> or <\/span><em><span style=\"font-weight: 400;\">orange<\/span><\/em><span style=\"font-weight: 400;\"> or <\/span><em><span style=\"font-weight: 400;\">banana<\/span><\/em><span style=\"font-weight: 400;\">. 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.<\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Define_Custom_Concepts\"><span style=\"font-weight: 400;\">Define Custom Concepts<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">You can define a new concept the same way as you would define a Bot Synonym, but you need to start the word with a <\/span><strong>~<\/strong><span style=\"font-weight: 400;\">. For more details on the naming convention, <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/additional-notes-nlp-settings-guidelines\/#Concepts\"><span style=\"font-weight: 400;\">refer here<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can also define custom concepts using emojis.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Concepts are used to define patterns. For example, the pattern <\/span><em><span style=\"font-weight: 400;\">buy ~fruit<\/span><\/em><span style=\"font-weight: 400;\"> is used to capture <\/span><em><span style=\"font-weight: 400;\">buy orange<\/span><\/em><span style=\"font-weight: 400;\"> or <\/span><em><span style=\"font-weight: 400;\">buy banana<\/span><\/em><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140803\/concepts-list.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46343\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140803\/concepts-list-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140803\/concepts-list-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140803\/concepts-list-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140803\/concepts-list.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><\/p>\n<p><b>Note<\/b><span style=\"font-weight: 400;\">: Add the <\/span><b>~disable_help <\/b><span style=\"font-weight: 400;\">concept key and train the VA to disable the system help. You can<\/span><span style=\"font-weight: 400;\"> train the virtual assistant (VA) to use the <\/span><b>custom_help<\/b> <span style=\"font-weight: 400;\">group in Smalltalk to trigger the customized help messages<\/span><span style=\"font-weight: 400;\">. <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/bot-builder-tool\/small-talk\/#Add_Groups\"><span style=\"font-weight: 400;\">Learn more<\/span><\/a>.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20231106095442\/custom_help2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-60033\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20231106095442\/custom_help2.png\" alt=\"\" width=\"600\" height=\"404\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Parallel_Editing_for_Concepts\">Parallel Editing for Concepts<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Parallel Editing works the same for Concepts and Synonyms. Please click <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/#Parallel_Editing_for_Synonyms\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a><span style=\"font-weight: 400;\"> to learn more.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bot_Substitutions\">Bot Substitutions<\/span><\/h3>\n<p>The NLP engine can recognize Bot substitutions present in the user utterance using a custom concept definition called <code>~bot_substitutions<\/code> for bot substitution.<\/p>\n<p>You can define this concept based on the following syntax:<\/p>\n<ul>\n<li>Each item in the concept consists of two parts separated by a <code><b>|<\/b><\/code> symbol.<\/li>\n<li>The part before the <code><b>|<\/b><\/code> symbol is the text in the original utterance to replace. It is case insensitive.<\/li>\n<li>The part after the <code><b>|<\/b><\/code> symbol is the replacement text. It is case-sensitive.<\/li>\n<\/ul>\n<p>To define this concept, follow the steps below:<\/p>\n<ol>\n<li>On the left menu of the Bot Builder, navigate to <b>Natural Language<\/b> &gt; <b>Training<\/b>.<\/li>\n<li>Click the <b>Concepts<\/b> tab.<\/li>\n<li>Click the <b>New Concept<\/b> button.<\/li>\n<li>In the <b>New Concept<\/b> panel, enter the value for <b>Concept Name<\/b>.<\/li>\n<li>Enter the Concept Name as <code>~bot_substitutions<\/code>.<\/li>\n<li>Enter the word in the utterance to be replaced, followed by the <code><b>|<\/b><\/code> symbol and the substitution word.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228075252\/BS-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-50006\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228075252\/BS-1.png\" alt=\"\" width=\"500\" height=\"300\" \/><\/a><\/li>\n<\/ol>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #fffbea;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><strong>Note<\/strong><span style=\"font-weight: 400;\">: When there is no replacement text after the <b>|<\/b> symbol, the text to be replaced is removed from the utterance.<\/span><\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Other Replacement Syntaxes<\/b><\/p>\n<p>Bot substitution is used to support the following patterns for user utterances:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><code>?_word<\/code> matches a number followed by the word, e.g. <code>?_km|kilometers<\/code> will change <i>5 km<\/i> to <i>5 kilometers<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #fffbea;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><strong>Note<\/strong><span style=\"font-weight: 400;\">: The substitution happens even if there is no space between the number and the measurement unit. Thus, <b>5 km<\/b> is replaced by <b>5 kilometers<\/b>.<\/span><\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li><code>&lt; word<\/code> will match the first word in a sentence, e.g., <code>&lt; new Chevy|Chevrolet<\/code> will change <i>new Chevy car<\/i> to <i>Chevrolet car<\/i>, but it will not change <i>I want to know about the new Chevy car<\/i>.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Bot_word_Aliases\">Bot word Aliases<\/span><\/h3>\n<p>The Bots on the Kore.ai XO Platform can now be trained during the NL process to identify aliases or alternative spellings in utterances (during Speech-to-Text (STT) transcriptions).<\/p>\n<p>Alias is based on <b><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/#Marking\" target=\"_blank\" rel=\"noopener noreferrer\">Marking<\/a><\/b>, the chat script-specific process of linking concepts to words to match patterns based on those concepts.<\/p>\n<p>For example, a user might say Alfa Romeo on a voice channel, but the STT transcribes that as <code>Alpha Romeo<\/code> (a known and valid word). This is because the Bot uses the custom concept defined for Bot Word Aliases, matches the custom entity, and returns <code>Alfa Romeo<\/code>.<\/p>\n<p>The <b>Bot Word Aliases<\/b> scheme uses a technique where Individual words like <code>alpha_romeo<\/code> are members of a word\/concept like <code>Alfa_Romeo<\/code>, and concepts are members of other concepts like <code>~car_brands<\/code>.<\/p>\n<p><b>Bot word Aliases<\/b> are used for entities like <i>City<\/i> and <i>Company<\/i> on the Platform. For example, <i>Big Apple<\/i> is identified as the alias of <i>New York<\/i> and mapped to the <i>City<\/i> entity. However, the actual city name is set to <i>New York<\/i> internally.<br \/>\nSynonym words with a <code><b>+<\/b><\/code> prefix are treated as aliases to train word synonyms in ML and as task label synonyms for FM.<\/p>\n<p><b>Define a Bot Alias<\/b><br \/>\nTo treat a Bot Synonym word as an Alias in an utterance, you must define a custom concept with the steps below:<\/p>\n<ol>\n<li>On the left menu of the Bot Builder, navigate to <b>Natural Language<\/b> &gt; <b>Training<\/b>.<\/li>\n<li>Click the <b>Bot Synonyms<\/b> tab.<\/li>\n<li>Click the <b>New Synonym<\/b> button.<\/li>\n<li>In the <b>New Synonym<\/b> panel, enter the value for <b>Synonym Name<\/b>.<\/li>\n<li>Enter the value(s) for <b>Synonyms<\/b> by prefixing the name with a <code><b>+<\/b><\/code> icon as shown below:<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228091316\/BA-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-50018\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228091316\/BA-1.png\" alt=\"\" width=\"300\" height=\"200\" \/><\/a><\/li>\n<\/ol>\n<p><b>Note<\/b>: Aliases do not change the original utterance like Substitutions or influence POS tagging like Homophones. However, they do the following:<\/p>\n<ul>\n<li>Return the normalized value for the <b>Custom Concept<\/b> entity.<\/li>\n<li>Link concepts to new words (Marking). <a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/#Marking\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<\/a>.<\/li>\n<\/ul>\n<p><b>Alias Patterns<\/b><\/p>\n<p>The <b>Custom Concept Entity<\/b> on the Platform allows the selective marking of aliases using patterns.<br \/>\nIn the example below, the system marks <code>Aston<\/code> as an alias for <code>Aston Martin<\/code> only if it is not followed by the word <code>Martin<\/code> according to the <b>Synonyms<\/b> pattern.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228091517\/BA-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-50021\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228091517\/BA-2.png\" alt=\"\" width=\"300\" height=\"200\" \/><\/a><br \/>\nSimilarly, in the example below, the system marks <code>Kelly<\/code> as the alias for <code>TeleHealth<\/code> only if it is followed by the word <code>health<\/code> (the underscore limits the marking to one word) according to the <b>Synonyms<\/b> pattern.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228091631\/BA-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-50024\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228091631\/BA-3.png\" alt=\"\" width=\"300\" height=\"200\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bot_Homophones\">Bot Homophones<\/span><\/h3>\n<p>The Kore.ai XO Platform now supports <b>Bot Homophones<\/b> or Homonyms to identify the relevant word when two or more words are pronounced the same but have different spellings. Homonyms are a challenge on voice channels because while processing and adjusting an utterance on the Natural Language (NL) Pipeline, the Speech-to-Text (STT) engine can easily transcribe the wrong word. For example, <code>Write an email<\/code> can be wrongly transcribed to <code>Right an email<\/code>.<\/p>\n<p>With Bot Homophones, the system considers all the alternative homophones to check for a better, or equally valid, word choice during the NL pipeline and <a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/#Parts_of_Speech_POS_tagging\" target=\"_blank\" rel=\"noopener noreferrer\">POS tagging<\/a> processes.<\/p>\n<p><b>How it Works<\/b><\/p>\n<ol>\n<li>The final POS tagging depends on the potential POS tags for each word in the utterance.<\/li>\n<li>That processing can be influenced by including the potential POS tags for any homonyms.<\/li>\n<li>If the homophone is a better choice for being a more suitable POS tag, it gets replaced in the utterance, and the original word is left as a mark. For example, the homophone <code>higher<\/code> (an adjective\/adverb) is replaced with the word <code>hire<\/code> (verb) in the utterance <code>higher a car<\/code> because a verb is a better and more logical POS choice.<\/li>\n<li>If the homophone is an equally good choice for the potential POS tag, the system marks the current word as the homophone. For example, in the utterance <code>clear the cash<\/code>, the word <code>cache<\/code> is also an ideal word choice since it is a noun. However, the system marks <code>cash<\/code> as the homophone.<\/li>\n<\/ol>\n<p><b>Define a Bot Homophone<\/b><\/p>\n<p>To treat a Bot Synonym word as a Homophone\/Homonym in an utterance, you must define a custom concept with the steps below:<\/p>\n<ol>\n<li>On the left menu of the Bot Builder, navigate to <b>Natural Language<\/b> &gt; <b>Training<\/b>.<\/li>\n<li>Click the <b>Concepts<\/b> tab.<\/li>\n<li>Click the <b>New Concept<\/b> button.<\/li>\n<li>In the <b>New Concept<\/b> panel, enter the value for <b>Concept Name<\/b>.<\/li>\n<li>Enter the value(s) for <b>Synonyms<\/b> in the following syntax, where the concept members are homophones separated by a <code>|<\/code> icon.<code>original word in the utterance | homonym1 | homonym2 | homonymN<\/code><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228094935\/HP-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-50032\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20221228094935\/HP-1.png\" alt=\"\" width=\"350\" height=\"250\" \/><\/a><\/li>\n<\/ol>\n<p><b>Note<\/b>: Both homonyms do not change the original utterance like Substitutions or return the normalized value for the Custom Concept entity. However, they do the following:<\/p>\n<ul>\n<li>Influence POS Tagging.<\/li>\n<li>Link concepts to new words (marking). <a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/fundamental-meaning\/#Marking\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<\/a>.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Emoji_Support\"><span style=\"font-weight: 400;\">Emoji Support<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The 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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can import emojis into your VA\u2019s system concepts so that it can conduct the conversations when emojis are present in the user\u2019s utterances. For this, follow the below steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Under the <\/span><strong>Build<\/strong><span style=\"font-weight: 400;\"> top menu option, from the left menu, click <\/span><strong>Natural Language -&gt; Training<\/strong><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Intents<\/strong><span style=\"font-weight: 400;\"> tab, click the more\/ellipses icon and select <\/span><strong>Import Emojis into Concepts<\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">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 this: ~<\/span><em><span style=\"font-weight: 400;\">emohappy<\/span><\/em><span style=\"font-weight: 400;\">, ~<\/span><em><span style=\"font-weight: 400;\">emohello<\/span><\/em><span style=\"font-weight: 400;\">, etc.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140821\/import-emoji.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46352\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140821\/import-emoji-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140821\/import-emoji-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140821\/import-emoji-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140821\/import-emoji.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a> <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">After importing, you may choose to review and remove any emojis that you may not want to support.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">If you are trying to re-import the emojis, then the current emojis are retained and any additional emojis are added.<\/span><\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Manage_Patterns_and_Rules\"><span style=\"font-weight: 400;\">Manage Patterns and Rules<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To optimize the accuracy and recognition of the NLP interpreter, you can create patterns for task names and task fields.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Using synonyms is great for words used in the name. Sometimes; however, users may refer to a task using slang, metaphors, or other idiomatic expressions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, a task name is <\/span><em><span style=\"font-weight: 400;\">Get Current Weather<\/span><\/em><span style=\"font-weight: 400;\">, but the user inputs, <\/span><em><span style=\"font-weight: 400;\">what\u2019s happening with today\u2019s rain situation<\/span><\/em><span style=\"font-weight: 400;\">. In this case, none of the words used in the task name are used, yet the input has the same meaning as <\/span><em><span style=\"font-weight: 400;\">Get Current Weather<\/span><\/em><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In these cases, using patterns can help to improve NLP interpreter accuracy.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To learn more about best practices and tips for optimizing NLP, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/additional-notes-nlp-settings-guidelines\/\"><span style=\"font-weight: 400;\">Natural Language Processing Guide<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For a quick guide towards the usage of patterns, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/how-tos\/how-to-use-patterns-for-intents-entities\/\"><span style=\"font-weight: 400;\">How to use Patterns<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Navigate_to_the_Patterns_Tab\"><span style=\"font-weight: 400;\">Navigate to the Patterns Tab<\/span><\/span><\/h3>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Open the VA for which you want to add patterns and select the <\/span><strong>Build<\/strong><span style=\"font-weight: 400;\"> tab from the top menu.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">From the left menu click <\/span><strong>Natural Language -&gt;<\/strong> <strong>Training<\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Training <\/strong><span style=\"font-weight: 400;\">page, click one of the following tabs:<\/span>\n<ol>\n<li style=\"font-weight: 400;\"><strong>Intents <\/strong><span style=\"font-weight: 400;\">\u2013 Add or edit patterns or rules for dialog task User Intent nodes.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Entities <\/strong><span style=\"font-weight: 400;\">\u2013 Add or edit patterns for dialog task Entity nodes.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Add_Patterns_for_Intents\"><span style=\"font-weight: 400;\">Add Patterns for Intents<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Also, you can define where words must be ignored by the NLP interpreter to improve accuracy for recognizing the correct task.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, you can build a pattern like <\/span><em><span style=\"font-weight: 400;\">find *testable* value<\/span><\/em><span style=\"font-weight: 400;\"> to recognize in the user input a sequence of words in order, where the word <\/span><em><span style=\"font-weight: 400;\">find<\/span><\/em><span style=\"font-weight: 400;\"> is followed by any number of words, followed by the word <\/span><em><span style=\"font-weight: 400;\">testable<\/span><\/em><span style=\"font-weight: 400;\">, and again followed by any number of words, which are finally followed by the word <\/span><em><span style=\"font-weight: 400;\">value<\/span><\/em><span style=\"font-weight: 400;\">. For this pattern, the user input can be <\/span><em><span style=\"font-weight: 400;\">Find me any testable integers corresponding to the value<\/span><\/em><span style=\"font-weight: 400;\">, which can match the pattern.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can also use concepts to build patterns. For example, the pattern is defined as <\/span><em><span style=\"font-weight: 400;\">buy ~fruit<\/span><\/em><span style=\"font-weight: 400;\"> and the user input that matches this pattern can be <\/span><em><span style=\"font-weight: 400;\">buy orange.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">In the <\/span><strong>Intents <\/strong><span style=\"font-weight: 400;\">section, you can view, add, and delete patterns for dialog tasks.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140828\/intent-patterns.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46355\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140828\/intent-patterns-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140828\/intent-patterns-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140828\/intent-patterns-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140828\/intent-patterns.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">To add an intent pattern, follow the below steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, click the <\/span><strong>Patterns\/+Pattern<\/strong><span style=\"font-weight: 400;\"> against the intent name you want to enter the patterns for.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the <\/span><strong>Intent<\/strong><span style=\"font-weight: 400;\"> pane, enter one or more sentence patterns, and press <\/span><strong>Enter<\/strong><span style=\"font-weight: 400;\"> between patterns.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">You can <\/span><strong>reorder, edit <\/strong><span style=\"font-weight: 400;\">or <\/span><strong>delete<\/strong><span style=\"font-weight: 400;\"> patterns using the appropriate icons.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140753\/add-pattern.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46337\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140753\/add-pattern-1024x377.png\" alt=\"\" width=\"640\" height=\"236\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140753\/add-pattern-1024x377.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140753\/add-pattern-300x111.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140753\/add-pattern.png 1639w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\n<\/span><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Add_Rules_for_Intents\"><span style=\"font-weight: 400;\">Add Rules fo<\/span><span style=\"font-weight: 400;\">r Intents<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140834\/intent-rule.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46358\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140834\/intent-rule-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140834\/intent-rule-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140834\/intent-rule-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140834\/intent-rule.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">To add an intent rule, follow the below steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, click the <\/span><strong>Rules\/+Rule<\/strong><span style=\"font-weight: 400;\"> against the intent name you want to enter the patterns for.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the <\/span><strong>Intent<\/strong><span style=\"font-weight: 400;\"> pane, enter one or more traits\/context tags as conditional rules using AND OR operators, and press <\/span><strong>Enter<\/strong><span style=\"font-weight: 400;\"> between traits\/tags.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Refer here to know more about <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/traits\/\"><span style=\"font-weight: 400;\">Traits<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/traits\/#Trait_Association_Rules\"><span style=\"font-weight: 400;\">Trait Association Rules<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/bot-intelligence\/context-management\/\"><span style=\"font-weight: 400;\">Context Tags<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140757\/add-rule.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46340\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140757\/add-rule-1024x353.png\" alt=\"\" width=\"640\" height=\"221\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140757\/add-rule-1024x353.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140757\/add-rule-300x103.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140757\/add-rule.png 1612w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Add_Patterns_for_Entities\"><span style=\"font-weight: 400;\">Add Patterns for Entities<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In the <\/span><strong>Entities <\/strong><span style=\"font-weight: 400;\">section of the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, you can view, add, and delete patterns for dialog task entity node names.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To add an entity pattern, follow the below steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">On the <\/span><strong>Training<\/strong><span style=\"font-weight: 400;\"> page, click the <\/span><strong>Entities <\/strong><span style=\"font-weight: 400;\">tab.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Click the edit icon against the entity to enter the patterns to it.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the <\/span><strong>Entity Training<\/strong><span style=\"font-weight: 400;\"> page, select the <\/span><strong>Patterns<\/strong><span style=\"font-weight: 400;\"> tab.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Enter one or more sentence patterns, and press ENTER between patterns.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">You can <\/span><strong>reorder, edit <\/strong><span style=\"font-weight: 400;\">or <\/span><strong>delete<\/strong><span style=\"font-weight: 400;\"> patterns using the appropriate icons.<br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140741\/add-entity-pattern.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46328\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140741\/add-entity-pattern.png\" alt=\"\" width=\"640\" height=\"398\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140741\/add-entity-pattern.png 697w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140741\/add-entity-pattern-300x186.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Negative_Patterns\"><span style=\"font-weight: 400;\">Negative Patterns<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">On the Kore.ai XO Platform, a natural language engine attempts to identify the user&#8217;s input and match it to a task.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">During this process, you may want the NLP engine to identify and filter the matched intents, but not trigger them.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, when a user says <\/span><em><span style=\"font-weight: 400;\">I was trying to Book a Flight when I faced an issue<\/span><\/em><span style=\"font-weight: 400;\">, though the machine identifies the intent as <\/span><em><span style=\"font-weight: 400;\">Book a Flight<\/span><\/em><span style=\"font-weight: 400;\">, that is not what the user wants to do. The user is looking for a resolution to not being able to book a flight. In such a case, the Platform lets you define <\/span>&#8220;<em><span style=\"font-weight: 400;\">was trying to<\/span><\/em>&#8220;<span style=\"font-weight: 400;\"> as a negative pattern to ensure that booking a flight (the matched intent) is ignored.<\/span><\/p>\n<p>The <b>Negative Patterns<\/b> feature helps filter matched intents that are a part of the user utterance without triggering the intent. In other words, <strong>Negative patterns<\/strong><span style=\"font-weight: 400;\"> are used to eliminate the intents detected by the Fundamental Meaning or Machine Learning models that don&#8217;t serve the required purpose before ranking and resolving the definitive intents.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To activate Negative Patterns, follow the steps below:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Click the <\/span><strong>Build<\/strong><span style=\"font-weight: 400;\"> top menu option.<\/span><\/li>\n<li>Navigate to <strong>Natural Language<\/strong> -&gt; <strong>Thresholds &amp; Configurations<\/strong> -&gt; <strong>Ranking and Resolver Engine<\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Enable <\/span><strong>Negative Patterns<\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20230626080705\/negative-patterns-1-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-57503\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20230626080705\/negative-patterns-1-1.png\" alt=\"\" width=\"800\" height=\"600\" \/><\/a><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For each of the intents in your VA, you can define negative patterns similar to how you define intent patterns.\u00a0<\/span>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Go to <\/span><strong>Natural Language<\/strong> &gt; <b>Training<\/b> &gt; <b>Intents<\/b> and select the Intent <span style=\"font-weight: 400;\"> to which you want to add the Negative Pattern.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the Intent training window, select the <\/span><strong>Negative Patterns<\/strong><span style=\"font-weight: 400;\"> tab.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Add negative patterns in the <\/span><strong>Add a Pattern<\/strong><span style=\"font-weight: 400;\"> field, then press <\/span><strong>Enter\/Return<\/strong><span style=\"font-weight: 400;\">. Your new patterns are automatically saved.<\/span><\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400;\">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 &amp; Resolver.<\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Once added, these patterns can be reordered, edited, and deleted.<\/span><span style=\"font-weight: 400;\"><br \/>\n<a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140748\/add-negative-pattern.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46334\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140748\/add-negative-pattern-1024x217.png\" alt=\"\" width=\"640\" height=\"136\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140748\/add-negative-pattern-1024x217.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140748\/add-negative-pattern-300x64.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140748\/add-negative-pattern.png 1604w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/span><\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Thresholds_Configurations\"><span style=\"font-weight: 400;\">Thresholds &amp; Configurations<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To train and improve the performance, Threshold and Configurations can be specified for all three NLP engines \u2013 FM, KG, and ML. You can access these settings under <\/span><strong>Build -&gt; Natural Language <\/strong><span style=\"font-weight: 400;\">&gt; <\/span><strong>Thresholds &amp; Configurations.<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">The settings for the FM engine are discussed in detail in the following sections.<\/span><\/p>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #fffbea;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><strong>Note<\/strong><span style=\"font-weight: 400;\">: If your assistant 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.<\/span><\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">To set up Thresholds and Configurations for the FM Engine, please follow the steps below:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Open the assistant for which you want to configure thresholds.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Select the <\/span><strong>Build <\/strong><span style=\"font-weight: 400;\">tab from the top menu.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">From the left menu, click <\/span><strong>Natural Language -&gt; Thresholds &amp; Configurations<\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The<\/span><strong> Fundamental Meaning <\/strong><span style=\"font-weight: 400;\">section allows you to set the threshold for the FM engine:<\/span>\n<ol>\n<li style=\"font-weight: 400;\"><strong>Intent Detection using Task Name Words<\/strong><span style=\"font-weight: 400;\"> can be disabled in case your use case requires it. This is particularly useful if you have too many tasks named \u2013 <\/span><em><span style=\"font-weight: 400;\">place order<\/span><\/em><span style=\"font-weight: 400;\">, <\/span><em><span style=\"font-weight: 400;\">cancel order<\/span><\/em><span style=\"font-weight: 400;\">, <\/span><em><span style=\"font-weight: 400;\">request order<\/span><\/em><span style=\"font-weight: 400;\">, <\/span><em><span style=\"font-weight: 400;\">duplicate order<\/span><\/em><span style=\"font-weight: 400;\">. All these tasks will be matched as intents if the user utterance has the word \u201c<\/span><em><span style=\"font-weight: 400;\">order\u201d <\/span><\/em><span style=\"font-weight: 400;\">in it. Instead of <\/span><em><span style=\"font-weight: 400;\">trying<\/span><\/em><span style=\"font-weight: 400;\">, <\/span><em><span style=\"font-weight: 400;\">guessing<\/span><\/em><span style=\"font-weight: 400;\">, and training 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.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>FM Threshold<\/strong><span style=\"font-weight: 400;\"> can be used to limit the number of results sent from the FM Engine to Ranking and Resolver, so as to reduce the possibility of presenting a low confidence match to the end-user. Enable this configuration and choose the <\/span><em><span style=\"font-weight: 400;\">threshold percentage<\/span><\/em><span style=\"font-weight: 400;\"> 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.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a ref=\"magnificPopup\" href=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140845\/thresholds-and-config.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-46364\" src=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140845\/thresholds-and-config-1024x434.png\" alt=\"\" width=\"640\" height=\"271\" srcset=\"https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140845\/thresholds-and-config-1024x434.png 1024w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140845\/thresholds-and-config-300x127.png 300w, https:\/\/kore-wordpress.s3.us-east-2.amazonaws.com\/developer.kore.ai\/v10-1\/wp-content\/uploads\/sites\/35\/20220929140845\/thresholds-and-config.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<div class=\"w-separator size_small with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Suggested_Reading\"><span style=\"font-weight: 400;\">Suggested Reading<\/span><\/span><\/h1>\n<p><span style=\"font-weight: 400;\">Know more about the guidelines in naming Intents, using Patterns and more, <\/span><a href=\"https:\/\/developer.kore.ai\/v10-1\/docs\/bots\/nlp\/additional-notes-nlp-settings-guidelines\/\"><span style=\"font-weight: 400;\">refer here<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><br \/>\n<div class=\"w-separator size_small with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>[vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJ3LXBvc3QtZWxtJTIwcG9zdF9uYXZpZ2F0aW9uJTIwbGF5b3V0X3NpbXBsZSUyMGludl9mYWxzZSUyMiUzRSUwQSUwOSUzQ2ElMjBjbGFzcyUzRCUyMnBvc3RfbmF2aWdhdGlvbi1pdGVtJTIwb3JkZXJfZmlyc3QlMjB0b19wcmV2JTIyJTIwaHJlZiUzRCUyMiUyRmRvY3MlMkZib3RzJTJGbmxwJTJGdXNlci11dHRlcmFuY2VzJTJGJTIyJTNFJTNDJTJGcCUzRSUwQSUzQ2RpdiUyMGNsYXNzJTNEJTIycG9zdF9uYXZpZ2F0aW9uLWl0ZW0tYXJyb3clMjIlM0UlM0MlMkZkaXYlM0UlMEElM0NkaXYlMjBjbGFzcyUzRCUyMnBvc3RfbmF2aWdhdGlvbi1pdGVtLW1ldGElMjIlM0VQcmV2aW91cyUzQyUyRmRpdiUzRSUwQSUzQ2RpdiUyMGNsYXNzJTNEJTIycG9zdF9uYXZpZ2F0aW9uLWl0ZW0tdGl0bGUlMjIlM0UlM0NzcGFuJTNFTWFjaGluZSUyMExlYXJuaW5nJTNDJTJGc3BhbiUzRSUzQyUyRmRpdiUzRSUwQSUzQ3AlM0UlM0MlMkZhJTNFJTNDYnIlMjAlMkYlM0UlMEElM0NhJTIwY2xhc3MlM0QlMjJwb3N0X25hdmlnYXRpb24taXRlbSUyMG9yZGVyX3NlY29uZCUyMHRvX25leHQlMjIlMjBocmVmJTNEJTIyJTJGZG9jcyUyRmJvdHMlMkZubHAlMkZrbm93bGVkZ2UtZ3JhcGglMkYlMjIlM0UlM0MlMkZwJTNFJTBBJTNDZGl2JTIwY2xhc3MlM0QlMjJwb3N0X25hdmlnYXRpb24taXRlbS1hcnJvdyUyMiUzRSUzQyUyRmRpdiUzRSUwQSUzQ2RpdiUyMGNsYXNzJTNEJTIycG9zdF9uYXZpZ2F0aW9uLWl0ZW0tbWV0YSUyMiUzRU5leHQlM0MlMkZkaXYlM0UlMEElM0NkaXYlMjBjbGFzcyUzRCUyMnBvc3RfbmF2aWdhdGlvbi1pdGVtLXRpdGxlJTIyJTNFJTNDc3BhbiUzRUtub3dsZWRnZSUyMEdyYXBoJTIwVHJhaW5pbmclM0MlMkZzcGFuJTNFJTNDJTJGZGl2JTNFJTBBJTNDcCUzRSUzQyUyRmElM0UlM0MlMkZkaXYlM0U=[\/vc_raw_html]<div class=\"w-separator size_small with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>[\/vc_column][\/vc_row]\n","protected":false},"excerpt":{"rendered":"<p>Fundamental Meaning is a computational linguistics approach that is built on ChatScript. The model analyzes the structure of a user\u2019s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors. FM Engine Overview The Fundamental Meaning model is a deterministic model that uses semantic rules and language context to determine the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-18123","post","type-post","status-publish","format-standard","hentry","category-nlp"],"_links":{"self":[{"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/posts\/18123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/comments?post=18123"}],"version-history":[{"count":84,"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/posts\/18123\/revisions"}],"predecessor-version":[{"id":60036,"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/posts\/18123\/revisions\/60036"}],"wp:attachment":[{"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/media?parent=18123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/categories?post=18123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-1\/wp-json\/wp\/v2\/tags?post=18123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}