botframework - QnA Maker 对类似问题给出错误结果

标签 botframework qnamaker

我构建了一个聊天机器人,可以使用 QnA Maker 服务回答与可持续发展目标 (SDG) 相关的问题。作为其中的一部分,机器人的主要功能是回答不同的 SDG,例如什么是 SDG 1,什么是 SDG 2……什么是 SDG 17。

在这种问题与当前如此相似的情况下,我如何从 QnA Maker 获得准确预测,当我问什么是 SDG 16、15、14 等问题时​​,QnA Maker 总是会返回关于什么是 SDG 1 的答案虽然知识库有完全相同的问题

最佳答案

我不惊讶。仅查看这些问题的特征,如果您的 QnA KB 接受过训练以识别“什么是 SDG 1”并且能够识别出高度的确定性,那么“什么是 SDG 1x”将仅基于匹配字符的百分比。致 QnA 制造商:

'什么是 SDG 1x' 所有 看起来像“什么是 SDG 1”。您需要进入 QnA 知识库并对其进行训练,以便 100% 确定诸如“什么是 SDG 19”之类的问题。您可以通过查看“测试”功能的“检查”元素来检查这一点:

QnA Maker Identical Questions

正如您从我的图片中看到的,“一个”可能是这个问题的答案,但“一个”是我对“什么是可持续发展目标 1”的回答。 (忽略其他答案,我对此 KB 进行了大量测试)。如果您像这样进行检查,并且发现选择了错误的答案,您只需选择正确的答案,然后重新训练您的知识库。

我这样做了,重复选择错误的答案,然后重新训练,直到我得到我的知识库(尽管已经有了完美的答案),以 100% 的确定性回答错误的答案(如下所示):

Forced retrain to wrong answer in KB

你将不得不做类似的事情,但答案是正确的。

It's just not only that question, but there are also many other similar questions like what is the agenda of sdg 11, what is the mandate of sdg 11 etc. for each sdg which are currently predicted as sdg 1 by QnA Maker



一个问题 -> 一个答案是一个很好的想法,但如果所有问题看起来都一样,你将不得不多做一点工作。此外,如果您认为在与客户合作时会出现这种情况,您可以在您的机器人中编写代码以返回前 3 或 5 个答案,并让您的机器人执行后续问题,例如“我不确定我是否理解,你的意思是'1'还是'17'或'19'?”,然后让用户选择他们的意思。

关于botframework - QnA Maker 对类似问题给出错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668765/

相关文章:

botframework - Cortana 技能仅适用于创建它的开发者帐户

c# - 如何使用单一 API 从 QnA Maker V4.0 获取所有问答?

botframework - 如何在 C# - CoreBot 中构建 QnA Maker 实例类?

c# - MIcrosoft Bot Framework 上的 session Bot 可能吗?

botframework - 在QnA Maker的App Insights中寻找唯一的 "Conversation ID"

c# - 根据 QnAMaker 中的输入对结果进行排名

c# - 如何在 Microsoft BotFramework 中使用 FormFlow 结果?

botframework - 从 Bot 在 MS Teams 中键入指示器

c# - Microsoft Bot Framework - Teams 和 Skype for Business 不支持自适应卡版本

azure - 使用Powershell脚本创建Web App Bot服务