同義語の管理
ユーザーの発話は、同じリクエストでも様々な方法で行われます。
例えば「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」を入力した場合、タスク名の単語や同義語のいずれにも一致しない場合があります。この場合、タスク名またはタスクフィールドに一致する単語のグループに対して、パターンを作成することができます。
カスタム概念
概念は、単一の用語で識別されるグループと見なされる、関連する同義語の集合体です。
例えば、fruitという用語を使って、apple、orange、bananaのいずれかを意味するようにしたい場合などがあります。
カスタム概念の定義
単語を~</ strong>で始めることにより、Botの同義語を定義するのと同じ方法で新しい概念を定義することができます。命名規則の詳細については、こちらを参照してください。
概念は、パターンを定義する際に使用することができます。例えば、buy ~fruitというパターンは、buy orangeやbuy bananaを取得するために使用することができます。]]>
絵文字のサポート
(バージョン8.1で導入)
NLPエンジンは、ユーザーの発話内に存在する絵文字を認識することができます。お客様はこれらを概念の定義に含め、ユーザー体験を向上させることができます。例えば、ユーザーからの「いいね絵文字(:thumbsup:)」は肯定的と見なされ、「しかめっ面絵文字(:frowning2:)」は怒りの感情と見なされ、これにより適切なアクションを取ることができます。
Botのシステム概念に絵文字をインポートすることで、ユーザーの発話に絵文字が含まれている場合にもBotは会話を行うことができます。そのためには、以下の手順に従ってください。
パターンの管理
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]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
ネガティブパターン
Kore.ai Botプラットフォームでは、自然言語エンジンがユーザー入力を識別し、そのユーザー入力をタスクに一致させようとします。インテント検出のネガティブパターンを有効にするために、追加の詳細設定を変更することができます。
これは、ユーザーの発話の一部ではあるもののそのインテントをトリガーするべきではない、一致したインテントをフィルタリングするのに便利です。
ユースケース:例えば、ユーザーが「I was trying to Book a Flight when I faced an issue」と言ったとします。機械はそのインテントを「Book a Flight」と識別しますが、それはユーザーが望んでいることではありません。このような場合、「was trying to *」をネガティブパターンとして定義すると、一致したインテントを無視することができます。
ネガティブパターンは、ファンダメンタルミーニングモデルや機械学習モデルで検出されたインテントを排除するために使用することができます。
ネガティブパターンを有効にする
- 自然言語 > トレーニングへ移動します。
- 詳細設定を選択します。
- ネガティブパターンを有効にします。このオプションはデフォルトでは無効に設定されています。
- ネガティブパターンのセクションが追加されました。
- インテントパターンを定義する方法と同様に、Botのそれぞれのインテントに対してネガティブパターンを定義することができます。
- 設定されたネガティブパターンの一つとして識別された場合、FMエンジンやMLエンジンによって識別されたインテントは無視され、「ランキング及び解決」には送信されません。
- これらのパターンは、一度追加すると、順序を変えたり、編集したり、削除したりすることができるようになります。
しきい値および設定
トレーニングしてパフォーマンスを向上させるために、FM、KG、MLの3つのNLPエンジンすべてにしきい値および設定を指定することができます。これらの設定は 自然言語 > トレーニング > しきい値および設定からアクセスすることができます。
FMエンジンの設定については、以下の項目で詳しく説明します。
注:お客様のBotが多言語の場合、言語ごとに異なるしきい値を設定することができます。設定されていない場合、すべての言語でデフォルト設定が使用されます。この機能はバージョン7.0以降で利用可能です。
しきい値および設定への移動
- しきい値を設定するBotを開きます。
- サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
- しきい値および設定タブをクリックします。
- ファンダメンタルミーニングセクションでは、FMエンジンのしきい値を設定することができます。
- 確率の高い一致の近接度 – この設定はランキングおよび解決の下に移動しました。詳細はこちらをご覧ください。
- タスク名の単語を使用したインテントの検出(バージョン7.1で導入)は、ユースケースにとって必要な場合には無効にすることができます。これは特に、place order、cancel order、request order、duplicate orderなどの名前のついたタスクが多すぎる場合に便利です。ユーザーの発話に「order」が含まれている場合、これらのタスクはすべてインテントとして一致します。考えられるすべての発話を推測してトレーニングするよりも、このオプションを無効にする方が効果的です。このオプションを無効にしても、パターンを使用したインテント検出には影響しません。また、タスク名の単語を使用した潜在パターンが自動的に追加されます。ユーザー入力が正確なタスク名で始まり終わる場合にのみ、潜在パターンはこのインテントを識別します。デフォルトでは有効になっています。
- [FM しきい値] (v8.1 で導入) で、FM エンジンからR&R (ランキングおよび解決) に送信される結果の数を制限し、信頼度の低い一致をエンドユーザーに提示する機会を削減できます。この設定を有効にして、しきい値のパーセンテージを 0% から 20% の間で選択します。デフォルトは 2% になっています。トップスコアのインテントのうち設定したパーセンテージ以内で一致したインテントのみが考慮され、その他のインテントはすべて排除されます。この設定は英語、スペイン語、フランス語、ドイツ語でのみ利用できます。