LUIS:向意图添加模式没有任何效果

LUIS: Adding patterns to intents is not taking any effect

我遵循了 tutorial

中描述的内容

知道缺少什么吗?

这些图案非常写实。如果短语的部分不完全匹配,则不会识别意图。 (注意:您可以将这些短语直接添加到意图中,而不是在模式中,在这种情况下,它会识别意图而不是实体。如果您有一个对话框提示用户缺少实体,这会很有帮助。)

在您的情况下,您编写模式的方式需要编写 command create $mytest,它应该识别意图和实体 mytest。由于您没有在测试中包含 $ 字符,因此既没有识别出意图也没有识别出实体。

您确实可以通过方括号 [] 将字符标记为 可选 ,尽管我在这方面取得了不同程度的成功。您的短语足够具体,可能适用于您的情况。因此,您可以制作类似 command create [$]command_params 的模式,其中 command create $mytestcommand create mytest 都可以工作并具有正确的实体。请注意,如果有人键入 command create $mytest please 之类的内容,它将选择整个短语 mytest please 作为您的实体。 (如果有人知道如何创建避免这种情况的模式,那就太棒了!)。

TL;DR:阅读patterns doc and improve your entity detection


问题

您在此处发布的示例的问题在于 LUIS 未能实际检测到 command_params 实体,因此它甚至无法与您显示的这 3 种模式中的任何一种相匹配。

Add common pattern template utterance formats to improve predictions所述:

In order for a pattern to be matched to an utterance, first the entities within the utterance have to match the entities in the template utterance. This means the entities have to have enough examples in example utterances with a high degree of prediction before patterns with entities are successful. However, the template doesn't help predict entities, only intents.

While patterns allow you to provide fewer example utterances, if the entities are not detected, the pattern does not match.

因此,您需要努力构建 command_params 实体,使其在使用模式之前可被检测到。


您的实体

我不相信 Pattern.any 是适合您使用的正确实体类型,因为它是用于可变长度值的实体——例如,它们可能非常长。

我不知道您的实体可以评估哪种类型的值,但我怀疑如果实体值是 创建 (uses machine-learning) or a list entity 的路线可能会更好已知集(精确模式匹配),具体取决于您的命令参数值。

更新:还有 regex entities,可能对您有用。 (同样,我不知道您的实体值可能是什么,因此很难准确指向要使用的正确实体)

此外,如果您在了解如何改进实体检测方面需要帮助,请参阅 this Whosebug answer