c# - luis 模型和团队对同一句话的不同意图,如何解决?
问题描述
我已经使用 luis 在 microsoft 团队和 bot 上部署了 bot,当在 microsoft 团队和 luis model bot 上提出相同的问题时,会给出不同的意图。
句子“我可以在项目中选择旧日期吗?”
它具有“添加”意图和“日期”实体,但
当在 luis 模型上键入该句子时,它会给出适当的添加意图和日期实体,
但是,当向部署在团队中的机器人询问相同的句子时,会给出错误的输出,为什么会发生这种情况?如何解决?
解决方案
我想我最近也遇到了类似的问题。您能否在您的应用程序中进行调试,并在将其移交给 LUIS 之前查看 Activity.Text 属性。如果您的机器人在团队频道中(而不是直接与机器人进行 1-1 聊天),您需要@提及机器人才能调用它。但是,这也会将“BotName”字符串添加到 Activity.Text 中,并且会影响您对 LUIS 的理解。
您可以通过进入 LUIS 模型、转到顶部菜单上的“构建”部分(在其中定义实体等)然后转到左侧菜单以“查看端点话语”来检查这一点。在那里你可能会看到机器人“我可以在项目中选择旧日期”和“DemoBot 我可以在项目中选择旧日期吗”。
所以,有两种方法可以解决这个问题(至少我能想到):
- 您可以在“查看端点话语”页面上针对要处理的意图训练 LUIS 模型
您可以在将文本发送到 LUIS 之前编辑机器人中的文本,以删除“”提及,如下所示:
string atMentionBot = $"DemoBot";
if (turnContext.Activity.Text.StartsWith(atMentionBot, StringComparison.OrdinalIgnoreCase)) turnContext.Activity.Text = turnContext.Activity.Text.Substring(atMentionBot.Length);
(我不确定你的机器人使用的是什么语言——这当然是一个 C# 示例)
推荐阅读
- javascript - 输入值将保存在哪里?
- angular - 在选择下拉菜单时启用输入字段
- apache-camel - Apache Camel jms 面包屑 ID
- python - 读取 .txt 并将内容输入到文本框中
- android - onLocationChanged 数据从活动发送到片段
- mysql - MySQL 分面搜索/导航分面计数
- javascript - 将两个对象数组与键进行比较,如果没有找到,则将其添加到数组中
- sql-server - 如何使用具有集成安全性的 SQL Server 连接和来自同一 MVC EF 应用程序的 SQL 登录?
- wso2esb - 如何使用文件连接器在 wso2 esb 中实现追加操作?
- javascript - 每个表格列按钮的单击操作按钮