【问题标题】:How to resolve text back to specific types with LUIS (Bot Framework)?如何使用 LUIS (Bot Framework) 将文本解析回特定类型?
【发布时间】:2019-11-13 19:16:04
【问题描述】:
我正在使用 Bot Framework 和 LUIS 创建聊天机器人,并尝试将文本解析回特定类型。
例如,如果用户要说:
“我的笔记本电脑屏幕没有打开”将此解决为“屏幕问题”
或
“我的键盘不工作”将此解决为“键盘问题”
或
“我的笔记本电脑上洒了液体,现在它无法开机”到“液体损坏”
我需要相当多的这种方式的分类。我考虑过为每种类型设置不同的意图。即屏幕问题和键盘问题。但是,我认为使用单一意图可能有更好的方法来做到这一点?
【问题讨论】:
标签:
c#
botframework
chatbot
azure-language-understanding
【解决方案1】:
如您所述,一定要使用多个意图。这是正确的方法。
还可以考虑添加尽可能多的话语,因为您的短语非常复杂(超过 12 个单词)。
【解决方案2】:
这取决于您的其他意图/用例以及您想让它变得多复杂。对于您的示例,您似乎将有很多“问题”项目。在这种情况下,我会制定一个“帮助”意图,并使键盘/屏幕/wifi/lan 成为实体列表(也许可以称之为部件)。然后在您的代码中,确定帮助意图后,您可以查找零件。这将节省您的时间,而不必为多个意图重复“我对 {Part} 有问题”和“请帮助解决 {part}”等。唯一需要注意的是,为了使实体列表更准确,我会在每个列表项的“同义词”中输入尽可能多的拼写错误。实体列表很容易使用,任何匹配都会被识别为实体中的一个项目
【解决方案3】:
只有一个意图或数量非常有限的意图意味着您仅将 LUIS 用于“实体”检测 - 这反过来会导致关键字检测,您最终将获得没有 NLP/语义文本分析但付费的解决方案一个。
拥有多个意图似乎很好 - 您可以在一个 Luis 应用程序中拥有 500 意图。
谈到“屏幕问题”和“键盘问题”示例 - 根据我们的经验,我会为一个模板选择一个意图作为答案。无论意图如何,都可以在 Luis 中将诸如“屏幕”或“键盘”之类的关键字检测为一个实体,并且基于它们,您可以在自定义模板中为特定意图填写一些自定义“通配符”。
最后但并非最不重要的一点是,不要忘记在“无”意图中填写与迄今为止定义的意图相似但无效的示例的句子。请参阅“余额中不包含 None 意图。该意图应包含应用中总话语的 10%”here。