如何解决如果有多个,QnAMaker Service是否按分数对答案进行排序?
我们正在使用Microsoft的QnAMaker服务来构建FAQ机器人。我想知道,如果存在多个得分不同的匹配项,则api响应是否具有排序的答案。 api是否会首先返回得分最高的答案?
我们用一个样本对其进行了测试,但希望确保此处没有其他因素在起作用。请让我知道。
谢谢!
解决方法
您可以在official docs中了解有关QnA Maker如何处理用户查询的信息:
- 客户端应用程序将用户查询发送到 GenerateAnswer API。
- QnA Maker使用语言检测,拼写和分词器预处理用户查询。
- 此预处理用于更改用户查询以获得最佳搜索结果。
- 此更改后的查询将发送到Azure认知搜索索引,该索引会接收最多的结果。如果这些结果中没有正确的答案,请稍微增加top的值。通常,在90%的查询中,top的值为10即可。
- QnA Maker使用基于句法和语义的特征来确定用户查询与获取的QnA结果之间的相似性。
- 机器学习的排名模型使用步骤5中的不同功能来确定置信度得分和新的排名顺序。
- 新结果按排序顺序返回到客户端应用程序 。
使用的功能包括但不限于单词级语义,语料库中术语级重要性以及确定两个文本字符串之间相似性和相关性的深入学习的语义模型。
Typescript SDK还在generateAnswer method上指定了以下内容:
返回按得分排序并按得分最高的答案数组 答案首先返回。
您还应该注意,QnA Maker排名过程涉及多个资源-Azure Cognitive Search and QnA Maker。
认知搜索资源用于存储QnA对,并在运行时提供QnA对的初始排名(排名1)。
QnA Maker资源可在运行时提供对创作API和发布API以及QnA对的基于自然语言处理(NLP)的第二排名层(排名2)的访问。
第二个排名应用了智能过滤器,其中可以包括元数据和后续提示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。