Chatbot Overview
Conversational Bots
Intents & Entities
Intelligent Bots
Kore.ai's Approach
Kore.ai Conversational Platform
Bot Concepts and Terminology
Natural Language Processing (NLP)
Bot Types
Bot Tasks
Starting with Kore.ai Platform
How to Access Bot Builder
Working with Kore.ai Bot Builder
Building your first Bot
Getting Started with Building Bots
Using the Dialog Builder Tool
Creating a Simple Bot
Release Notes
Latest Updates
Older Releases
Deprecations
Bot Builder
Creating a Bot
Design
Develop
Storyboard
Dialog Task
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Time Zones
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Managing Dialogs
User Prompts
Alert Tasks
Alert Tasks
Ignore Words and Field Memory
Digital Forms
Digital Views
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Small Talk
Action & Information Task
Action Tasks
Information Tasks
Establishing Flows
Natural Language
Overview
Machine Learning
ML Model
Fundamental Meaning
NLP Settings and Guidelines
Knowledge Graph Training
Traits
Ranking and Resolver
NLP Detection
Advanced NLP Configurations
Bot Intelligence
Overview
Context Management
Session and Context Variables
Context Object
Dialog Management
Sub-Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Default Conversations
Default Standard Responses
Channel Enablement
Test & Debug
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Publishing your Bot
Analyzing your Bot
Overview
Dashboard
Custom Dashboard
Conversation Flows
Bot Metrics
Advanced Topics
Bot Authorization
Language Management
Collaborative Development
IVR Integration
Data Table
Universal Bots
Defining
Creating
Training
Customizing
Enabling Languages
Smart Bots
Defining
Sample Bots
Github
Asana
Travel Planning
Flight Search
Event Based Bot Actions
koreUtil Libraries
Bot Settings
Bot Functions
General Settings
PII Settings
Customizing Error Messages
Manage Sessions
Bot Management
Bot Versioning
Using Bot Variables
API Guide
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
Bot Administration
Bots Admin Console
Dashboard
User Management
Managing Users
Managing Groups
Managing Role
Bots Management
Enrollment
Inviting Users
Bulk Invites
Importing Users
Synchronizing Users from AD
Security & Compliance
Using Single Sign-On
Security Settings
Cloud Connector
Analytics
Billing
How Tos
Creating a Simple Bot
Creating a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure Digital Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
  1. Home
  2. Docs
  3. Bots
  4. Chatbot Overview
  5. 自然言語処理(NLP)

自然言語処理(NLP)

会話Botが人間のやり取りを理解するための鍵は、ユーザーインテントを識別し、ユーザーの発話から有用な情報を抽出し、関連するアクションやタスクにマッピングする能力にあります。NLP(自然言語処理)は、自然な会話から意図(インテント)や関連情報(エンティティ)を推測する科学です。

NLPアプローチ

Kore.ai Botプラットフォームは、自然言語に対する多方面からのアプローチを採用しており、最適な結果を得るために以下の2つのモデルを組み合わせています。

  • ファンダメンタルミーニング:ChatScriptをベースに構築された数理言語学的アプローチです。このモデルは、ユーザの発話の構造を分析し、意味、位置、活用、大文字、複数形などから各単語を識別します。
  • カスタム機械学習(ML):Kore.aiは機械学習のために最先端のNLPアルゴリズムとモデルを使用しています。
  • オントロジーベースのナレッジグラフエンジン(KG):Kore.aiのナレッジグラフは、お客様の静的なFAQテキストをインテリジェントでパーソナライズされた会話体験に変えるのに役立ちます。

3つのアプローチにより、Kore.ai Botプラットフォームはお客様が言語トレーニングなしで会話の70%に応答できる会話型Botを即座に構築できるようにします。すべての組み込みBotおよびカスタムBotに自動でNLP機能を有効化し、チャットBotのコミュニケーション、理解、ユーザーのリクエストへの応答を強化します。

Kore.aiチームは、サードパーティベンダーのサービスなしでハイブリッドNLP戦略を開発しました。この戦略は、タスク(ファンダメンタルミーニング)を検出して実行することに加えて、静的な応答を返すFAQ Botを構築する機能を与えます。

このプラットフォームでは、ナレッジグラフベースのモデルを使用して、ユーザーインテント(この場合、最も適切な質問)を特定する際に、主要なドメイン用語やその関係を示すのに必要なインテリジェンスを提供します。

機械学習モデルは、正しいナレッジクエリに達することができるよう、ナレッジグラフを追加します。

すべてのエンジンがスコアおよび推奨事項を返すと、Kore.aiはランキング及び解決エンジンによって、ユーザーの発話に基づいて適したインテントを決定します。

Kore.aiアプローチの利点

ほとんどの商品では、自然言語処理に機械学習(ML)のみを使用しています。MLのみのアプローチで高い成功率を得るには、Botの大規模なトレーニングが必要です。トレーニングが不十分な場合、不正確な結果に繋がる可能性があります。トレーニングデータとして、チャットBotの意図した目的と一致するまとまった文(発話)を提供し、最終的には一致しない文も提供する必要があります。BotがMLを使用する場合、Botは入力された文を理解しません。その代わりに、入力されたデータと、与えられたトレーニングデータとの類似性を測定します。

当社のアプローチは、ファンダメンタルミーニング(FM)、機械学習(ML)、ナレッジグラフ(KG)を組み合わせたもので、Botに提供されるトレーニングの範囲に関係なく、自然言語対応のチャットBotを簡単に構築することができます。エンタープライズの開発者は、これらのアプローチ固有の利点を活用し、個々の欠点を排除することで、実世界の力学を解決することができます。

インテント検出

チャットBotのタスクは、ATMを探すイベントを作成するアイテムを検索するアラートを送信する資金を移動するなどの動詞と名詞で表される、ユーザーが意図する行動を説明する言葉を少なくしています。
Kore.aiのNLPエンジンは、ユーザーの発話の構造を分析し、意味、位置、活用、大文字、複数形、その他の要素から各単語を識別します。この分析は、チャットBotは一般的な動作を表す単語を正しく解釈し、理解するのに役立ちます。

インテント認識の目標は、単に発話とタスクを一致させることではなく、発話と正しく意図されたタスクを一致させることです。これを行うには、動詞と名詞をできるだけ多くの明白な同義語や明白でない同義語と照合します。そうすることで、エンタープライズの開発者は実世界の力学を解決し、それぞれの手法の欠点を取り除きつつ、MLとFM両方のアプローチの利点を得ることができます。

機械学習モデルのトレーニング

開発者は、機械学習モデルをトレーニングするためにBotが識別すべきそれぞれのインテント(タスク)に対して、発話のサンプルを提供する必要があります。プラットフォームのMLエンジンは、ユーザの発話をBotのインテントの1つにマッピングしようとするモデルを構築します。

Kore.aiのBotプラットフォームは、完全に教師なし機械学習を可能にし、人間が介入せずとも常にチャットBotの言語能力を拡張することができます。Kore.aiのBotプラットフォームは、チャットBotが必要な入力と不要な入力両方から学習するその他の教師なしモデルとは違い、チャットBotがインテントを認識して人間がタスクを完了するために要求した内容を抽出することに成功した場合にのみ、それらが自動的に語彙を増やすことができるようになっています。

ただし、Botのパフォーマンスを監視し、必要に応じて手動で調整するために、教師あり学習を有効にすることをお勧めします。Botプラットフォームを使用することで、開発者はより良い会話の実現に向けて、すべてのインタラクションログを評価し、失敗したシナリオのNL設定を簡単に変更し、Botを再度トレーニングするために学習を使用することができます。発話の追加についてはこちらを参照してください。

ファンダメンタルミーニングモデルのトレーニング

ファンダメンタルミーニングモデルは、ユーザーの発話内の各単語の標準バージョンを含む入力フォームを作成します。次のように変換します。

  • 動詞を不定詞に
  • 名詞を単数形に
  • 数字を桁に

インテント認識プロセスは、その後マッチングにこの標準フォームを使用します。元の入力フォームは引き続き利用可能であり、標準フォームがない固有名詞などの特定のエンティティに対して参照されます。
ファンダメンタルミーニングモデルでは、音声の一部と本質的な概念を考慮して、ユーザーの発話の各単語を識別し、Botが実行可能なインテントと関連付けることができます。スコアリングは、一致した単語の数、単語の総数などに基づいて行われます。

プラットフォームは、ファンダメンタルミーニングエンジンをトレーニングするための以下のツールを提供します。

  • パターン:パターンを使うと、タスク名のスラング、比喩、その他の慣用表現を定義することができます。パターンとその例の詳細についてはこちらを参照してください。
  • 同義語:プラットフォームには、一般的な用語の同義語ライブラリが組み込まれています。開発者は、Bot名、タスク名やタスクフィールドの名前に使用される単語、ダイアログタスクのエンティティノードに関連する単語の同義語を追加することで、NLPエンジンの精度をさらに最適化することができます。プラットフォームは、特別にトレーニングされている場合を除いて、パラセタモール、IVRなどのドメイン語を自動補正します。同義語とその例の詳細についてはこちらを参照してください。

このプラットフォームでは、ユーザーの発話からインテントを特定できなかった場合に自動的に開始されるデフォルトのダイアログオプションも用意されています。開発者は、Botの要件に基づいてダイアログを変更することができます。当社はさらに、人間のレビュアー(開発者、顧客、サポート担当者など)が受動的にユーザーの発話をレビューし、さらなるトレーニングを必要とする発話をマークする機能も提供しています。一度トレーニングされると、Botは新たにトレーニングされたモデルに基づいて発話を認識します。

エンティティの検出

ユーザーの発話からインテントが検出されると、Botはタスクをトリガーするために追加の情報を必要とします。この追加情報をエンティティと呼びます。

エンティティとは、日付、時刻、人物、場所、アイテムや商品の説明、その他のタスクをチャットBotが完了させるために必要な、開発者が指定するフィールド、データ、または単語です。Kore.aiのNLPエンジンを介して、Botはユーザーの発話から単語を識別し、一致したタスクのフィールドを識別したり、必要に応じて追加のフィールドデータを収集したりします。
エンティティ抽出の目的は、不要な詳細を無視しつつ、不足を補ってタスクを完了させることです。これは、ユーザーが一度に提供するか、チャットBotとのガイド付きの会話を通じて提供するかに関係なく、必要な情報を取得するための減算プロセスです。このプラットフォームは、20以上のシステムエンティティの識別と抽出をサポートしています。エンティティについての詳細はこちらを参照してください。

以下の2つのアプローチにより、ユーザーの発話に含まれるエンティティを識別できるようBotをトレーニングすることができます。

  1. 機械学習に基づく、名前付きエンティティ認識(NER)
  2. エンティティパターンの定義と同義語。

エンティティのトレーニングは任意で、トレーニングをしなくともKore.aiはエンティティを抽出することが可能です。ただし、トレーニングは入力のどこを調べるかについてエンジンをガイドするのに役立ちます。Kore.aiは検出した値を検証し、その単語が適切でない場合は別の場所に移動します。例えば、数字のエンティティパターンが*人のためにであったが、ユーザーが良い人のためにと言った場合、Botは良いが数字ではないことを理解し、検索を継続します。 詳細についてはこちらを参照してください。

ナレッジグラフ

Kore.aiのナレッジグラフは、FAQを一律の質問と回答の組み合わせ形式で収集するという一般的な慣習を超えたものです。代わりに、ナレッジグラフでは主要なドメイン用語の階層構造を作成し、それらをコンテキスト固有の質問やその代替、同義語、機械学習対応の階層と関連付けることができます。

ナレッジグラフは、トレーニングをあまり必要とせず、必須としてマークされた用語の誤検知を減らして単語の重要性を高めることができます。

以下の画像は、銀行のFAQサンプルのナレッジグラフの概要です。詳細はこちらをクリックしてください

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

Natural Language Processing (NLP)

The key for a conversational bot to understand human interactions lies in its ability to identify the intention of the user, extract useful information from their utterance, and map them to relevant actions or tasks. NLP (Natural Language Processing) is the science of deducing the intention (Intent) and related information (Entity) from natural conversations.

NLP Approach

The Kore.ai Bots platform employs a multi-pronged approach to natural language, which combines the following two models for optimal outcomes:

  • Fundamental Meaning: 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.
  • Custom Machine Learning (ML): Kore.ai uses state-of-the-art NLP algorithms and models for machine learning.
  • Ontology-based Knowledge Graph Engine (KG): Kore.ai Knowledge Graph helps you turn your static FAQ text into an intelligent and personalized conversational experience.

With its three-fold approach, the Kore.ai Bots platform enables you to instantly build conversational bots that can respond to 70% of conversations with no language training to get started. It automatically enables the NLP capabilities to all built-in and custom bots, and powers the way chatbots communicate, understand, and respond to a user request.

Kore.ai team developed a hybrid NLP strategy, without third-party vendors’ services. This strategy in addition to detecting and performing tasks (Fundamental Meaning) provides an ability to build FAQ bots that return static responses.

The platform uses a Knowledge Graph-based model that provides the intelligence required to represent the key domain terms and their relationships in identifying the user’s intent (in this case the most appropriate question).

Machine Learning models append the Knowledge Graph to further arrive at the right knowledge query.

Once all the engines return scores and recommendations, Kore.ai has a Ranking and Resolver engine that determines the winning intent based on the user utterance.

Advantages of Kore.ai Approach

Most products only use machine learning (ML) for natural language processing. An ML-only approach requires extensive training of the bot for high success rates. Inadequate training can cause inaccurate results. As training data, one must provide a collection of sentences (utterances) that match a chatbot’s intended goal and eventually a group of sentences that do not. When the bot uses ML, it does not understand an input sentence. Instead, it measures the similarity of data input to the training data imparted to it.

Our approach combines Fundamental Meaning (FM), Machine Learning (ML), and Knowledge Graph (KG) making it easy to build natural language capable chatbots, irrespective of the extensiveness of training provided to the bot. Enterprise developers can solve real-world dynamics by leveraging the inherent benefits of these approaches and eliminating their individual shortcomings.

Intent Detection

Chatbot tasks are broken down to fewer words that describe what a user intends to do, usually a verb and a noun such as Find an ATM, Create an event, Search for an item, Send an alert, or Transfer fund.
Kore.ai’s NLP engine analyzes the structure of a user’s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors. This analysis helps the chatbot to correctly interpret and understand the common action words.

The goal of intent recognition is not just to match an utterance with a task, it is to match an utterance with its correctly intended task. We do this by matching verbs and nouns with as many obvious and non-obvious synonyms as possible. In doing so, enterprise developers can solve real-world dynamics and gain the inherent benefits of both ML and FM approaches, while eliminating the shortcomings of the individual methods.

Machine Learning Model Training

Developers need to provide sample utterances for each intent (task) the bot needs to identify to train the machine learning model. The platform ML engine builds a model that tries to map a user utterance to one of the bot intents.

Kore.ai’s Bots platform allows fully unsupervised machine learning to constantly expand the language capabilities of your chatbot without human intervention. Unlike the other unsupervised models in which chatbots learn from any good or bad input, the Kore.ai Bots platform enables chatbots to automatically increase their vocabulary only when the chatbot successfully recognizes the intent and extracts the entities of a human’s request to complete a task.

However, we recommend supervised learning enabled to monitor the bot performance and manually tune when required. Using the bots platform, developers can evaluate all interaction logs, easily change NL settings for failed scenarios, and use the learnings to retrain the bot for better conversations. Learn more about adding utterances.

Fundamental Meaning Model Training

The fundamental meaning model creates a form of the input with the canonical version of each word in the user utterance. It converts

  • verbs into their infinitive
  • nouns are made singular
  • numbers become digits

The intent recognition process then uses this canonical form for matching. The original input form is still available and is referenced for certain entities like proper names where there isn’t a canonical form.
The Fundamental Meaning model considers parts of speech and inbuilt concepts to identify each word in the user utterance and relate it with the intents the bot can perform. The scoring is based on the number of words matched, total word coverage, and more.

The platform provides the following tools to train the Fundamental Meaning engine:

  • Patterns: Using Patterns you can define slang, metaphors, or other idiomatic expressions for task names. Learn more about patterns along with examples.
  • Synonyms: The Platform includes a built-in synonym library for common terms. Developers can further optimize the accuracy of the NLP engine by adding synonyms for bot names, words used in the names of your tasks and task fields, and any words associated with your dialog task entity node. The platform auto-corrects domain words unless they are specially trained. For example, Paracetamol, IVR. Learn more about synonyms along with examples.

The platform also facilitates a default dialog option which is initiated automatically if the platform fails to identify an intent from a user utterance. Developers can modify the dialog based on the bot requirement. We also provide the ability for a human reviewer (developer, customer, support personnel, and more) to passively review user utterances and mark the ones that need further training. Once trained, the bot recognizes the utterances based on the newly trained model.

Entity Detection

Once the intent is detected from a user utterance, the bot needs additional information to trigger the task. This additional information is termed as entities.

Entities are fields, data, or words the developer designates necessary for the chatbot to complete a task like a date, time, person, location, description of an item or a product, or any number of other designations. Through the Kore.ai NLP engine, the bot identifies words from a user’s utterance to ensure the availability of fields for the matched task or collects additional field data if needed.
The goal of entity extraction is to fill the gaps to complete the task while ignoring unnecessary details. It is a subtractive process to get the necessary info, whether the user provides all at once or through a guided conversation with the chatbot. The platform supports the identification and extraction of 20+ system entities out of the box. Read more about entities.

You can use the following two approaches to train the bot to identify entities in the user utterance:

  1. Named Entity Recognition (NER) based on Machine Learning.
  2. Entity pattern definition and synonyms.

The entity training is optional, and without it, Kore.ai can still extract entities. But the training helps to guide the engine as to where to look in the input. Kore.ai still validates the value found and moves on to another location if those words are not suitable. For example, if a Number entity pattern was for * people but the user says for nice people, the bot understands that nice is not a number and will continue searching. Know more from here.

Knowledge Graph

Kore.ai Knowledge Graph goes beyond the usual practice of capturing FAQs in the form of flat question-answer pairs. Instead, the Knowledge Graph enables you to create a hierarchical structure of key domain terms and associate them with context-specific questions and their alternatives, synonyms, and machine learning-enabled classes.

The Knowledge Graph requires less training and enables word importance with lesser false positives for terms marked as mandatory.

The following image provides an overview of a Knowledge Graph for sample FAQs of a bank. Click here to learn more.

Menu