如何为我的 LUISDialog 设置一个最小阈值以转到 .NET 中的 None Intent?
How can I set a minimum threshold for my LUISDialog to go to None Intent in .NET?
我有一个 LuisDialog
这样的:
[LuisModel("...", "...", domain: "...")]
[Serializable]
public class MainLUISDialog : LuisDialog<object>
{
[LuisIntent("None")]
public async Task Default(IDialogContext context, LuisResult result)
{
await context.PostAsync("Não percebi, podes ser mais claro se faz favor?");
context.Wait(MessageReceived);
}
[LuisIntent("Service.Cancel")]
public async Task CancelService(IDialogContext context, LuisResult result)
{
await context.PostAsync("Queres cancelar um serviço.");
await context.PostAsync("Entities:");
foreach (var entity in result.Entities)
{
await context.PostAsync($"{entity.Type}: {entity.Entity}");
}
context.Wait(MessageReceived);
}
...
我想知道如何设置,例如所有意向分数低于 0.7 的话语都将转到 None
意向,有没有办法以编程方式在我的代码中添加此阈值?我似乎无法找到任何方法来使用我的代码。
一种方法是从 LuisDialog
继承并覆盖以下函数之一:
在任何这些函数中,您应该能够按照自己的逻辑丢弃检测到的意图并将其替换为 None。
如果这只是 1-2 个意图,那么可能不值得进行覆盖,相反,您可以在所有意图方法中检查它,如下所示:
if (result.TopScoringIntent.Score < threshold)
{
return Default(context, result);
}
我有一个 LuisDialog
这样的:
[LuisModel("...", "...", domain: "...")]
[Serializable]
public class MainLUISDialog : LuisDialog<object>
{
[LuisIntent("None")]
public async Task Default(IDialogContext context, LuisResult result)
{
await context.PostAsync("Não percebi, podes ser mais claro se faz favor?");
context.Wait(MessageReceived);
}
[LuisIntent("Service.Cancel")]
public async Task CancelService(IDialogContext context, LuisResult result)
{
await context.PostAsync("Queres cancelar um serviço.");
await context.PostAsync("Entities:");
foreach (var entity in result.Entities)
{
await context.PostAsync($"{entity.Type}: {entity.Entity}");
}
context.Wait(MessageReceived);
}
...
我想知道如何设置,例如所有意向分数低于 0.7 的话语都将转到 None
意向,有没有办法以编程方式在我的代码中添加此阈值?我似乎无法找到任何方法来使用我的代码。
一种方法是从 LuisDialog
继承并覆盖以下函数之一:
在任何这些函数中,您应该能够按照自己的逻辑丢弃检测到的意图并将其替换为 None。
如果这只是 1-2 个意图,那么可能不值得进行覆盖,相反,您可以在所有意图方法中检查它,如下所示:
if (result.TopScoringIntent.Score < threshold)
{
return Default(context, result);
}