【发布时间】:2020-04-21 01:28:44
【问题描述】:
我遵循tutorial中描述的内容
知道缺少什么吗?
【问题讨论】:
标签: artificial-intelligence azure-language-understanding
我遵循tutorial中描述的内容
知道缺少什么吗?
【问题讨论】:
标签: artificial-intelligence azure-language-understanding
TL;DR:阅读patterns doc 和improve your entity detection。
问题
您在此处发布的示例的问题是 LUIS 未能实际检测到 command_paramsentity,因此它甚至无法与您显示的这 3 种模式中的任何一种匹配。
如Add common pattern template utterance formats to improve predictions中所述:
为了使模式与话语匹配,首先话语中的实体必须匹配模板话语中的实体。这意味着在实体模式成功之前,实体必须在具有高度预测的示例话语中拥有足够多的示例。然而,模板并不能帮助预测实体,只能预测意图。
虽然模式允许您提供更少的示例话语,但如果未检测到实体,则模式不匹配。
因此,您需要构建您的 command_params 实体,以便在使用模式之前使其可检测。
您的实体
我不相信 Pattern.any 是适合您使用的实体类型,因为它是用于可变长度值的实体——例如,它们可能非常长。
我不知道您的实体可以评估什么类型的值,但我怀疑走创建simple entity + phrase list(使用机器学习)的路线可能会更好或list entity 如果实体值是已知集合(精确模式匹配),则取决于您的命令参数值。
更新:还有regex entities,可能对你有用。 (同样,我不知道您的实体值可能是什么,因此很难准确指出要使用的正确实体)
此外,如果您在了解如何改进一般实体检测方面需要帮助,请参阅this StackOverflow answer。
【讨论】:
simple 实体来用于短语列表!我之前用list 实体尝试过这个,但它没有用。简单实体解决了我提取实体的模式性能不佳以及更广泛的同义词问题。很有帮助!
这些模式非常直接。如果短语的部分不完全匹配,则无法识别意图。 (注意:您可以将这些短语直接添加到意图中,而不是在模式中,在这种情况下,它将识别意图而不是实体。如果您有一个对话框来提示用户缺少的实体,这会很有帮助。)
在您的情况下,您编写模式的方式需要编写command create $mytest,它应该能够识别意图以及实体mytest。由于您没有在测试中包含 $ 字符,因此意图和实体均未被识别。
您确实可以通过方括号 [] 将字符标记为 可选,尽管我在这方面取得了不同程度的成功。您的短语足够具体,可能适用于您的情况。因此,您可以制作像 command create [$]command_params 这样的模式,command create $mytest 和 command create mytest 都可以工作并具有正确的实体。请注意,如果有人键入 command create $mytest please 之类的内容,它将选择整个短语 mytest please 作为您的实体。 (如果有人知道如何创建避免这种情况的模式,那就太好了!)。
【讨论】:
Simple 实体(可能通过短语列表增强)可能是满足您要求的更好解决方案。