如果有多个答案,QnAMaker 服务是否会按分数对答案进行排序?

Does QnAMaker Service sort the answers by score if there are multiple?

我们正在使用微软的 QnAMaker 服务构建一个常见问题解答机器人。我想知道 如果 api 响应在有多个不同分数的匹配项时对答案进行排序。 api return 分数高的答案在前吗?

我们用样本对其进行了测试,但想确保没有其他因素在此处发挥作用。请告诉我。

谢谢!

您可以在 official docs:

中了解 QnA Maker 如何处理用户查询

  1. 客户端应用程序将用户查询发送到 生成答案 API.
  2. QnA Maker 使用语言检测、拼写器和分词器对用户查询进行预处理。
  3. 进行此预处理是为了改变用户查询以获得最佳搜索结果。
  4. 此更改后的查询被发送到 Azure 认知搜索索引,该索引接收最多的结果。如果这些结果中没有正确答案,请稍微增加 top 的值。通常,top 的值为 10 适用于 90% 的查询。
  5. QnA Maker 使用基于句法和语义的特征化来确定用户查询与获取的 QnA 结果之间的相似性。
  6. machine-learned 排名模型使用来自第 5 步的不同特征来确定置信度分数和新的排名顺序。
  7. 新结果返回给客户端应用程序按排名顺序

使用的特征包括但不限于 word-level 语义、term-level 在语料库中的重要性,以及用于确定两个文本字符串之间相似性和相关性的深度学习语义模型。

Typescript SDK 还在 generateAnswer method 上指定了以下内容:

Returns an array of answers sorted by score with the top scoring answer returned first.

您还应注意,QnA Maker 排名过程涉及多种资源 - Azure Cognitive Search and QnA Maker

认知搜索资源用于存储 QnA 对并在运行时提供 QnA 对的初始排名(排名 #1)。

QnA Maker 资源提供了在运行时对创作和发布 API 以及基于自然语言处理 (NLP) 的 QnA 对的第二排名层(排名 #2)的访问。

第二个排名应用了可以包含元数据和 follow-up 提示的智能过滤器。