Fundamental Meaning is a computational linguistics approach that is built on ChatScript. The model analyzes the structure of a user’s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors.
In this section, we will discuss in detail the following topics to improve the FM engine:
同義語の管理
ユーザーの発話は、同じリクエストでも様々な方法で行われます。
例えば「Create Lead」などのインテントは、「New Lead」、「Make a New Lead」、「Generate a Lead」のような代替案で表される場合があります。
タスクの名前を2〜3語に制限する必要がありながらも、質問される可能性のある代替方法に対応する必要があります。
同義語は、タスク名とタスクフィールド名の両方に定義できます。ユーザーが入力した正しいタスクおよびタスクフィールドを認識する際にNLPインタプリタの精度を最適化するために、タスクおよびタスクフィールドの名前に使用されている単語の同義語を追加することができます。
- Create – 「new」、「build」、「design」、「generate」、「instantiate」、「make」、「produce」など
- Lead – 「sales lead」、「customer lead」、「potential lead」、「qualified lead」など
以下のようなスペルミスも考慮します。
- Create – 「crate」、「creeate」など
- Lead – 「leed」、「led」、「lede」など
単語の同義語を追加すると、それらの同義語は他のBotタスクやタスクフィールドでも使用されます。つまり、タスクに定義された単語の同義語は、別のタスク名の同じ単語にも適用されます。例えば、Create a New Leadタスクのcreateという単語に定義された同義語は、Create Opportunityタスクにも使用されます。
タスクやタスクフィールドの名前付けのベストプラクティスおよびヒントの詳細については、自然言語処理ガイドを参照してください。
Botの同義語への移動
- 同義語を追加したいBotを開きます。
- サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
- 同義語と概念タブをクリックします。
- 同義語ページで、以下のタブのいずれかをクリックします。
- Botの同義語 – Botまたはタスク名の単語の同義語を追加および編集します。
- エンティティの同義語 – ダイアログタスクのエンティティノード名の任意の単語の同義語を追加および編集します。
- フィールド – タスクフィールド名の任意の単語の同義語を追加および編集します。それぞれのタスクをクリックして、そのタスクの単語一覧を展開します。
Botの同義語の追加
同義語ページの自然言語タブで、Botのタスク名の単語の同義語を表示および追加することができます。自然言語タブで定義された同義語は、Bot全体ですべてのタスク名、フィールド名などに適用されます。
デフォルトでは、同義語がリストアップされていますが、これは英語、ドイツ語、スペイン語、フランス語のみに限定されていることにご注意ください。
- 同義語ページのBotの同義語タブで、同義語の追加をクリックします。新しいキーワードと同義語セクションが表示されます。
- キーワードフィールドに、同義語を作成する単語の名前を入力します。
- 同義語の単語フィールドで、キーワードの同義語を1つ以上入力します。それぞれの同義語を入力した後、[ENTER]を押します。
- 保存をクリックして保存し、ダイアログを閉じます。
エンティティの同義語の追加
同義語ページのエンティティの同義語タブでは、それぞれのダイアログタスクのエンティティが、そのエンティティ用に定義された同義語と一緒にリストアップされています。
ダイアログタスクエンティティに同義語を追加する
- 同義語ページでエンティティの同義語タブをクリックします。
- 同義語を追加するダイアログタスクエンティティをクリックします。
- エンティティの同義語を1つ以上入力し、それぞれの同義語を入力した後に[ENTER]を押します。
- 保存をクリックして保存し、ダイアログを閉じます。
フィールドの同義語の追加
同義語ページのフィールドの同義語タブでは、それぞれのタスクがフィールドの数、またはエンティティと一緒にリストアップされています。フィールドの同義語タブで定義された同義語は、選択されたタスクと、そのタスクの指定されたフィールド名にのみ適用されます。
タスクフィールドの同義語を追加する
- 同義語ページでフィールドタブをクリックします。
- タスク名で、同義語を入力するタスクフィールドの名前をクリックします。
- 同義語を1つ以上入力し、それぞれのフィールドを入力した後に[ENTER]を押します。
- 保存をクリックして保存し、ダイアログを閉じます。
フィールドの同義語は、Botの関連するタスクにのみ適用されます。これは同一の単語、例えば、あるタスクにおけるStatusは、別のタスクにおいてStatusと呼ばれる同一フィールドの異なる同義語が存在する場合があるということです。
タスクまたはタスクフィールドに単語の同義語を追加することは、NLPインタプリタが意図したタスクまたはタスクフィールドを選択するのに役立ちますが、タスクまたはタスクフィールドへのユーザー入力にタスク名またはタスクフィールドの単語が含まれていない場合は、どうなるのでしょうか?
例えば、SalesforceのBotの「Create Lead」タスクで、ユーザーが「Create Lead」と同じ意味をもつ「New Account Option」を入力した場合、タスク名の単語や同義語のいずれにも一致しない場合があります。この場合、タスク名またはタスクフィールドに一致する単語のグループに対して、パターンを作成することができます。
Concepts
Concepts are clusters of related and synonymous terms that can be considered as a group identified by a single term.
For example, yes can be expressed as ok or I agree or right etc.
System Concepts
Kore.ai platform provides a list of default concepts that cover the most common scenarios like yes, no, help etc.
カスタム概念
概念は、単一の用語で識別されるグループと見なされる、関連する同義語の集合体です。
例えば、fruitという用語を使って、apple、orange、bananaのいずれかを意味するようにしたい場合などがあります。
カスタム概念の定義
単語を~</ strong>で始めることにより、Botの同義語を定義するのと同じ方法で新しい概念を定義することができます。命名規則の詳細については、こちらを参照してください。
概念は、パターンを定義する際に使用することができます。例えば、buy ~fruitというパターンは、buy orangeやbuy bananaを取得するために使用することができます。]]>
Emoji Support
(introduced in v8.1)
NLP engine can recognize emojis present in the user utterance. You can include these in the concept definition and give a better user experience. For example, a thumbs-up emoticon (:thumbs up:) from the user can be considered as an affirmative, and a frown emoticon (:frowning2:) can be considered as an anger sentiment and appropriate action can be taken.
You can import emojis into your bot’s system concepts so that the bot can conduct the conversations when emojis are present in the user’s utterances. For this, follow the below steps:
- On the left pane, click Natural Language > Training > Synonyms and Concepts.
- Click more/ellipses icon and select Import Emojis into Concepts.
- This adds all the default emojis to the system concepts for the current language. As you can see emojis are updated for the system concepts like ~emohappy, etc.
- After importing, you may choose to review and remove any emojis that you may not want to support.
- If you are trying to reimport the emojis, then the current emojis are retained and any additional emojis are added.
パターンの管理
NLPインタプリタの精度や認識を最適化するために、タスクやタスクフィールドの名前のパターンを作成することができます。
同義語の使用は名前に使用される単語に最適ですが、ユーザーがスラング、比喩、またはその他の慣用表現を使用してタスクを参照する場合があります。
例えば、タスク名はGet Current Weatherとなっていますが、ユーザーがwhat’s happening with today’s rain situationと入力するなどがあります。この場合、タスク名で使用されている単語はいずれも使用されていませんが、入力はGet Current Weatherと同じ意味になります。
こうしたケースでは、パターンを使用することで、NLPインタプリタの精度を向上させることができます。
NLPインタプリタが同義語を1つのタスクまたはフィールドに一致させ、パターンを別のタスクまたはフィールドに一致させた場合、パターンの一致が優先され、同義語の一致よりも肯定的な認識に使用されます。
NLPを最適化するためのベストプラクティスやヒントの詳細については、自然言語処理ガイドを参照してください。
パターンの使用に関する説明については、パターンの使用方法を参照してください。
パターンタブへの移動
- パターンを追加するBotを開きます。
- サイドのナビゲーションパネルにカーソルを合わせ、自然言語とトレーニングをクリックします。
- パターンタブをクリックします。
- パターンページで以下のタブのいずれかをクリックします。
- インテントパターン – ダイアログタスクのユーザーインテントノードのパターンを追加または編集します。
- エンティティパターン – ダイアログタスクのエンティティノードのパターンを追加または編集します。
- フィールドパターン – ユーザー入力として、日付、場所、名前などのタスクフィールドパターンを追加または編集します。このオプションは、Botに1つ以上のアクション、アラート、または情報タスクがある場合にのみ使用できます。
- タスクパターン (このオプションはバージョン6.40リリース後にインテントパターンと統合されました) – 例えば、Get WeatherのようなBotタスクのパターンを追加または編集します。
インテントのパターンを追加する
タスクを表しますが、実際にはタスクの名前に単語が含まれていない文としてパターンを定義することができます。
また、正しいタスクの認識の精度を向上させるために、NLPインタプリタが単語を無視する際のルールを定義することができます。
例えば、「find」という単語の後に任意の数の単語が続き、「testable」という単語が続き、さらに任意の数の単語が続き、最後に「value」という単語が続くような順序で、ユーザー入力内の一連の単語を認識することができるよう、「find* testable* value」のようなパターンを作成することができます。このパターンの場合、ユーザー入力は「Find me any testable integers corresponding to the value」であり、パターンに一致します。
概念を使ってパターンを作成することもできます。例えば、パターンを buy ~fruit と定義することができ、このパターンと一致するユーザー入力は buy orange となります。
インテントパターンセクションでは、ダイアログタスクのパターンを表示、追加、削除することができます。
- パターンページでインテントパターンタブをクリックします。
- インテント名をクリックしてパターンを入力します。
- 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
エンティティのパターンの追加
エンティティのパターンセクションでは、ダイアログタスクのエンティティノード名のパターンを表示、追加、削除することができます。
- パターンページでエンティティパターンタブをクリックします。
- エンティティ名をクリックして、そのエンティティ名のパターンを入力します。
- 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
フィールドへのパターンの追加
フィールドパターンタブで、タスクフィールドのパターンを表示、追加、削除することができます。
注:このオプションは、Botに1つ以上のアクション、アラート、または情報タスクがある場合にのみ使用できます。
フィールドパターンを追加する
- パターンページでフィールドタブをクリックします。
- フィールド名をクリックして、そのフィールド名のパターンを入力します。
- 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
Negative Patterns
On the Kore.ai Bots Platform, a natural language engine attempts to identify a user input and match that user input to a task. You can modify additional advanced settings to enable negative patterns for intent detection.
This is useful in filtering matched-intents that are part of user utterance but should not trigger that intent.
Use Case: For example, a user says I was trying to Book a Flight when I faced an issue. Though the machine identifies the intent as Book a Flight, that is not what the user wants to do. In such a case, defining was trying to as a negative pattern, would ensure that the matched intent is ignored.
Negative patterns are used to eliminate intents detected by the Fundamental Meaning or Machine Learning models.
To enable Negative Patterns, follow the below steps:
- On the left pane, click Natural Language > Training.
- Select Advanced Settings.
- Enable Negative Patterns. By default, this option is disabled.
- You can see the Negative Patterns section added in this section:
- For each of the intent in your bot, you can define negative patterns similar to how you define intent patterns.
- Any intents identified by FM or ML engines, if identified as one of the configured negative patterns, will be ignored and not sent to Ranking & Resolver.
- Once added, these patterns can be reordered, edited, and deleted.
しきい値および設定
トレーニングしてパフォーマンスを向上させるために、FM、KG、MLの3つのNLPエンジンすべてにしきい値および設定を指定することができます。これらの設定は 自然言語 > トレーニング > しきい値および設定からアクセスすることができます。
FMエンジンの設定については、以下の項目で詳しく説明します。
注:お客様のBotが多言語の場合、言語ごとに異なるしきい値を設定することができます。設定されていない場合、すべての言語でデフォルト設定が使用されます。この機能はバージョン7.0以降で利用可能です。
しきい値および設定への移動
- しきい値を設定するBotを開きます。
- サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
- しきい値および設定タブをクリックします。
- ファンダメンタルミーニングセクションでは、FMエンジンのしきい値を設定することができます。
- 確率の高い一致の近接度 – この設定はランキングおよび解決の下に移動しました。詳細はこちらをご覧ください。
- タスク名の単語を使用したインテントの検出(バージョン7.1で導入)は、ユースケースにとって必要な場合には無効にすることができます。これは特に、place order、cancel order、request order、duplicate orderなどの名前のついたタスクが多すぎる場合に便利です。ユーザーの発話に「order」が含まれている場合、これらのタスクはすべてインテントとして一致します。考えられるすべての発話を推測してトレーニングするよりも、このオプションを無効にする方が効果的です。このオプションを無効にしても、パターンを使用したインテント検出には影響しません。また、タスク名の単語を使用した潜在パターンが自動的に追加されます。ユーザー入力が正確なタスク名で始まり終わる場合にのみ、潜在パターンはこのインテントを識別します。デフォルトでは有効になっています。
Suggested Reading
Know more about the guidelines in naming Intents, using Patterns and more, refer here.