v4.47(Beta)でアップデート
備考
Yes/No Intents機能はベータ版です。ぜひこの機能をお試しいただき、フィードバックをお寄せください。
Yes/No Intents機能は、機械学習により、通常のIntentマッチングと同様に、yesとnoの確認を決定することができます。そのため、少量の例文で、さまざまな「yes」と「no」の確認フレーズを理解できるモデルを学習させることができ、より流暢な自然言語体験を導入することができます。
以前の確認語機能では、「yes」と「no」のバリエーションは限られており、類義語のリストを手動で追加してカスタマイズする必要がありました。Yes/No Intents機能では、新しい単語を追加できる語彙が事前にインストールされており、バーチャルエージェントがYes/No Intentsのさまざまなバリエーションを認識するのに役立ちます。
Yes/No Intentsの使用前
User: Hello!
Virtual agent: Do you want to play the Star Wars quiz?
User: Certainly
Virtual agent: Not sure I understood this correctly. Try again.
Yes/No Intentsの使用後
User: Hello!
Virtual agent: Do you want to play the Star Wars quiz?
User: Certainly
Virtual agent: Let's start!
Yes/No Intents機能は、Question、Optional Question、および Code Nodes で対応しています。
この機能を設定するには、以下の操作を行います:
- 適切なロケールを選択するか、デフォルトのロケールを使用します。
- 特定のFlowまたはすべての Flowでlocalを使用するかどうかを選択します。
- インタラクションパネルを使用してFlowをテストします。
ロケールの選択
Yes/No Intentsモデルは、プロジェクトに設定されたロケールごとに個別に学習されます。したがって、Yes/No Intentsの学習はロケールごとに別々に設定されます。Universal ロケールには、英語の例文があらかじめインストールされています。
ロケールを設定するには、以下の操作を行います:
- プロジェクトの設定済みロケールを表示するには、[Manage(管理)] > [Localization(ローカライゼーション)]をクリックします。
- ロケールを選択し、縦の三点リーダをクリックしてから、[Edit Yes/No Intents(Yes/No インテントを編集する)]をクリックします。
- [Edit Yes/No Intents(Yes/No インテントを編集する)] パネルで、現在のロケールのインテントを設定できます:
・Yes Intent – デフォルトでは、この設定はオンになっています。設定をオフにすると、Intentはビルドから除外されます。
・No Intent – デフォルトでは、この設定はオンになっています。設定をオフにすると、Intentはビルドから除外されます。
・Reject Intent – デフォルトでは、この設定はオンに設定になっています。手動で例を追加する必要があります。設定をオフにすると、Intentはビルドから除外されます。 - さらに、YesとNoのIntentに対して、ルールを追加できます。
- [Save & Build(保存&ビルド)] をクリックしてモデルをビルドします。設定を編集して保存すると、常にYes/Noモデルがビルドされます。
特定のFlowまたはすべてのFlowにYes/No Intentを使用する
Yes/No Intent機能は、以下の場合に使用できます:
プロジェクトレベル設定
すべてのFlowでYes/No Intentsを使用するには、以下の操作を行います:
- 左側のメニューで、[Manage(管理)] > [Settings(設定)]をクリックします。
- [Settings(設定)]ページで、[NLU Settings(NLU設定)]をクリックします。
- [General Flow Logic]セクションで、[Yes/No Logic] リストから以下のオプションのいずれかを選択します:
・Confirmation Words(確認ワード) – Yes/No Intents機能を無効にします。確認ワードは、Yes/No Intents機能以前と同じように使用されます。このオプションはデフォルトで有効になっています。
・拡張ルール付きYes/No Intents – 標準確認ワードロジックを最初に評価します。標準確認ワードロジックが入力タイプを決定できない場合、Yes/No Intents モデルが評価されます。
・Yes/No Intents – すべてのユーザ入力に対してYes/No Intents ロジックを評価します。標準確認ワードロジックは、Yes/No Intents モデルからの Yes、No、または Reject Intents がトリガーされない場合のフォールバックとしてのみ使用されます。 - 拡張ルール付きYes/No Intentsまたは Yes/No Intentsを選択した場合、Yes/Noしきい値を設定します。信頼度しきい値スライダーは、Yes/No Intentsがトリガーされるために必要な最小スコアを設定します。Yes, No, または Reject Intentは、Intentスコアがこのしきい値以上の場合にのみトリガーされます。この値は、すべてのロケールのYes/No Intentsモデルに適用されます。この値は、特定のFlowに対して変更することができます。
- [Save (保存)]をクリックして設定を適用し、モデルをビルドします。設定を編集して保存すると、常にYes/Noモデルがビルドされます。
プロジェクトレベルで設定を行ったものの、特定のFlowで設定を変更したい場合は、Flowレベル設定に移動してください。
Flowレベル設定
デフォルトでは、すべてのFlowは、プロジェクトレベルの設定からYes/NoロジックとYes/Noしきい値の設定を継承します。特定のFlowに対して、これらの設定を上書きすることができます。
特定のFlowにYes/No Intentsを使用するには、以下の操作を行います:
- 既存のFlowを開きます。
- Flowエディタページの右上隅で、[Settings(設定)]を選択します。
- [Configuration(構成)] タブの[General Flow Logic]で、[Yes/No Logic]設定の近くにあるチェックボックスを有効にします。
- [Yes/No Logic]リストから、以下のオプションのいずれかを選択します:
・Confirmation Words(確認ワード) – 現在のFlowのYes/No Intents機能を無効にします。確認ワードは、Yes/No Intents機能以前と同じように使用されます。このオプションはデフォルトで有効になっています。
・拡張ルール付きYes/No Intents – 標準確認ワードロジックを最初に評価します。標準確認ワードロジックが入力タイプを決定できない場合、Yes/No Intents モデルが評価されます。
・Yes/No Intents – すべてのユーザ入力に対してYes/No Intents ロジックを評価します。標準確認ワードロジックは、Yes/No Intents モデルからの Yes、No、または Reject Intents がトリガーされない場合のフォールバックとしてのみ使用されます。 - 拡張ルール付きYes/No Intentsまたは Yes/No Intentsを選択した場合、Yes/Noしきい値を設定します。信頼度しきい値スライダーは、Yes/No Intentsがトリガーされるために必要な最小スコアを設定します。Yes, No, または Reject Intentは、Intentスコアがこのしきい値以上の場合にのみトリガーされます。この値は、現在のFlow内のすべてのロケールのYes/No Intentsモデルに適用されます。
- [Save (保存)」をクリックして設定を適用し、モデルをビルドします。設定を編集して保存すると、常にYes/Noモデルがビルドされます。
インタラクションパネルを使用してFlowをテストする
ヒント
Cognigy 4.47から、エキスパートモードでYes/No Intentsが対応しました。
インタラクションパネルを使用して、Yes/No Intent機能が正常に機能するかを確認します:
- 既存のFlowで、ページ右上隅にある(interaction-panel)[Chat with your Agent(Agentとチャット)]をクリックして、インタラクションパネルを開きます。
- Flowを実行します。
- [INFO]タブで[Input]を選択し、JSONを表示します。yesNoIntentResultsオブジェクトに、Yes/No Intentsモデル評価結果が表示されます。以下は、結果の例です:
- Yes Intent
- No Intent
- Reject Intent
- Fallback Reject Intent
"nlu": {
"yesNoIntentResults": {
"finalIntentName": "yesIntent",
"finalIntentScore": 0.8887347172756052,
"scores": [
{
"id": "a396391d-3cab-43ab-8b8a-cefd0135041b",
"name": "yesIntent",
"score": 0.8887347172756052
},
{
"id": "fa2ab1d3-b5cd-4021-91c6-8b642ec51dd8",
"name": "noIntent",
"score": 0.32411091251643426
}
]
}
},
"mode": "TextOnly",
"type": "pAnswer"
"nlu": {
"yesNoIntentResults": {
"finalIntentName": "noIntent",
"finalIntentScore": 0.9659235010108965,
"scores": [
{
"id": "fa2ab1d3-b5cd-4021-91c6-8b642ec51dd8",
"name": "noIntent",
"score": 0.9659235010108965
},
{
"id": "a396391d-3cab-43ab-8b8a-cefd0135041b",
"name": "yesIntent",
"score": 0.021069213045105353
},
{
"id": "c646dd2b-f7d2-45d8-8451-cae95142c81f",
"name": "rejectIntent",
"score": 0.0034825030367928644
}
]
}
},
"mode": "TextOnly",
"type": "nAnswer"
"nlu": {
"yesNoIntentResults": {
"finalIntentName": "rejectIntent",
"finalIntentScore": 0.7307951831435443,
"scores": [
{
"id": "c646dd2b-f7d2-45d8-8451-cae95142c81f",
"name": "rejectIntent",
"score": 0.7307951831435443
},
{
"id": "a396391d-3cab-43ab-8b8a-cefd0135041b",
"name": "yesIntent",
"score": 0.03191703050840985
},
{
"id": "fa2ab1d3-b5cd-4021-91c6-8b642ec51dd8",
"name": "noIntent",
"score": 0.007946727310282035
}
]
}
},
"mode": "TextOnly",
"type": "Statement"
"nlu": {
"yesNoIntentResults": {
"finalIntentName": null,
"finalIntentScore": null,
"scores": [
{
"id": null,
"name": "null - Fallback Reject Intent",
"score": 0.7277484634707633
},
{
"id": "a396391d-3cab-43ab-8b8a-cefd0135041b",
"name": "yesIntent",
"score": 0.207322792467384
},
{
"id": "c646dd2b-f7d2-45d8-8451-cae95142c81f",
"name": "rejectIntent",
"score": 0.018095447571065546
}
]
}
},
"mode": "TextOnly",
"type": "Statement"
Yes/No ロジックの設定によっては、Yes/No Intentsモデルが評価されない場合があります。その場合、yesNoIntentResultsにはデフォルト値が設定されます:
"yesNoIntentResults": {
"finalIntentName": null,
"finalIntentScore": null,
"scores": []
}
Yes/No Intentsは通常のIntentとは別に評価され、入力オブジェクトのIntentの既存のフィールドを上書きしません。Yes/No Intentsの評価は、型
と yesNoIntentResults
にのみ反映されます。
FAQ
Q1: Yes/NoロジックがYes/No Intentsに設定されているが、ロケール設定でYes/No Intentsの両方が個別に無効になっている場合はどうなりますか?
A1: 標準確認ワードロジックが使用されます。
Q2: Intent TrainerにYes/No Intentsがありません。なぜですか?
A2: Yes/No IntentsのサポートはIntent Trainerに実装されていません。
Q3: Yes/No Intentsを学習する際、信号色の表示や学習フィードバックが表示されません。なぜですか?
A3: 信号色表示システムは、Yes/No Intentsにはまだ実装されていません。
Q4: Yes/No Intentsは標準的なインテントスコアリングとは関係ないのですか?
A4: はい、Yes/No Intentsは標準的なインテントスコアリング(input.intentScore
やinput.nlu.intentMapperResults
)とは完全に分離しています。具体的には、Flow内でnAnswer
型とyAnswer
型を検出します。これらの型は、Question NodesのYes/Noタイプや、確認ワードと同様のインテントの確認に使用されます。
Q5: Parse Intents(インテントの解析)がオンの場合とオフの場合で、Execute Flow Nodeを使用した場合、Yes/No Intentはどのように評価されますか?
A5: Yes/No Intentのスコアリング動作が異なるのは、2つのFlowでYes/No Intentの設定が異なる場合のみです。
例:
前提条件:
・Flow AにYes/No Intents
があり、Flow Bを実行するExecute Flow Nodeが1つだけあります。
・Flow BにはYes/No Intents
があり、拡張ルール
と1つのSay Nodeがあります。
シナリオ1:
- Flow AのExecute Flow Nodeで、[Parse Intents(インテントの解析)]の設定が無効になっている。
- Flow Aでユーザーが
yes
を送信すると、Flow BでYes Intenがをトリガーされる。 - Flow Bは、Flow AからYes/Noロジックを継承する。
シナリオ2:
- Flow AのExecute Flow Nodeで、[Parse Intents(インテントの解析)]の設定が有効になっている。
- Flow Aでユーザーが
yes
を送信しても、Flow BでYes Intenがトリガーされない。 - Flow Bは独自のYes/Noロジックを使用する。