luis 模型和团队对同一句话的不同意图,如何解决?
Posted
技术标签:
【中文标题】luis 模型和团队对同一句话的不同意图,如何解决?【英文标题】:different intent getting on luis model and teams for same sentence , how to solve it? 【发布时间】:2020-04-26 21:17:50 【问题描述】:我已经在 microsoft 团队和使用 luis 的 bot 上部署了 bot,当在 microsoft 团队和 luis model bot 上提出相同的问题时,会给出不同的意图。
on teams
on luis model
句子“我可以在项目中选择旧日期吗?”
它具有“添加”意图和“日期”实体,但
当在 luis 模型上键入该句子时,它会给出正确的添加意图和日期实体,
但是,当被问到部署在团队中的机器人的同一句话给出错误的输出时,为什么会发生这种情况?如何解决?
【问题讨论】:
您确定的目标是同一个 LUIS 端点吗?您是否使用这些话语训练了模型? 是的,我已经训练了模型并发布了它,并在代码中使用了相同的 edpoint url 和应用程序 id,但它仍然给出了不同的句子意图。 【参考方案1】:我想我最近遇到了类似的问题。您能否在您的应用程序中进行调试,并在将其移交给 LUIS 之前查看 Activity.Text 属性。如果您的机器人在团队频道中(而不是直接与机器人进行 1-1 聊天),您需要 @提及机器人以调用它。但是,也将“BotName”字符串添加到 Activity.Text 中,这会影响您对 LUIS 的理解。
您可以通过进入 LUIS 模型、进入顶部菜单上的“构建”部分(在其中定义实体等)然后进入左侧菜单中的“查看端点话语”来检查这一点。在那里你可能会看到机器人“我可以在项目中选择旧日期”和“DemoBot 我可以在项目中选择旧日期吗”。
所以,有两种方法可以解决这个问题(至少我能想到):
-
您可以在“查看端点话语”页面上针对要处理的意图训练 LUIS 模型
您可以在将文本发送到 LUIS 之前编辑机器人中的文本,以删除“”提及,如下所示:
字符串 atMentionBot = $"DemoBot";
if (turnContext.Activity.Text.StartsWith(atMentionBot, StringComparison.OrdinalIgnoreCase)) turnContext.Activity.Text = turnContext.Activity.Text.Substring(atMentionBot.Length);
(我不确定您的机器人使用的是什么语言 - 这当然是 C# 示例)
【讨论】:
很高兴它成功了。你最终采用了哪种方法?以上是关于luis 模型和团队对同一句话的不同意图,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 .wav 音频文件转换为文本并使用 LUIS 识别意图