QnA Maker 对类似问题给出了错误的结果

QnA Maker giving incorrect results to similar questions

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

在当前问题如此相似的情况下,我如何才能从 QnA Maker 获得准确的预测,当我提出诸如什么是 SDG 16、15 之类的问题时,QnA Maker 总是返回什么是 SDG 1 的答案, 14, 等等,即使知识库有完全相同的问题

我并不感到惊讶。只看这些问题的特征,如果您的 QnA 知识库经过训练可以识别 'What is SDG 1' 并且确实做到了,并且具有很高的确定性,那么 'What is SDG 1x' 将仅根据百分比来识别匹配字符。致 QnA 厂商:

'What is SDG 1x' 所有 看起来像 'What is SDG 1'。您需要进入您的 QnA 知识库并对其进行训练,以便像 'What is SDG 19' 这样的问题具有 100% 的确定性。您可以通过查看 'test' 特征的 'inspect' 元素来检查这一点:

正如您从我的图片中看到的那样,'One' 可能是这个问题的答案,但 'One' 是我对 'What is SDG 1' 的答案。 (忽略其他答案,我在这个 KB 上做了很多测试)。如果你像这样进入 inspect,你发现错误的答案是 selected,你可以简单地选择正确的答案,然后重新训练你的知识库。

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

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

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

一个问题 -> 一个答案的想法很好,但是如果所有问题看起来都一样,您将不得不多做一些工作。此外,如果您认为在与客户打交道时会出现这种情况,您可以将 return 前 3 或 5 个答案编码到您的机器人中,然后让您的机器人做一个跟进问题,例如 "I'm not sure I understood, did you mean '1' or '17' or '19'?" , 然后让用户 select 他们指的是哪一个。

问题已通过使用 QnAMakerOptions Class when calling the GetAnswersAsync method 中的参数 "Top" 解决。我将参数 "Top" 的值保持为 20。

如果知识​​库中存在非常相似的问题,Azure 搜索不会在默认结果列表中 return 相关 QnA 对。如果使用参数 "top",这些结果将由最终的 QnA Maker 排名器重新排名。