我正在使用QnA Maker服务,并且还通过显式反馈进行主动学习,其工作方式如下:查询QnA Maker,查找模棱两可的问题/答案对,通过从每个QnA对(QnAMakerResult)中选择第一个问题来创建英雄卡,并将其发送给用户。
由于我使用的是这种逻辑,因此我想在QnA对中提出一个看起来最好的第一个问题。但是我发现,当我在QnA Maker门户中单击“保存并训练”时,它将覆盖我在qna对中的替代问题的顺序,这完全破坏了主动学习的体验,因为qna对中的某些问题不是那么用户友好,例如仅特定于关键字等
有什么方法可以为此目的标记一些替代问题(例如标记最用户友好的问题)或在QnA Maker中禁用此自动排序?
由于您尚未指定语言,因此我的回答是针对C#SDK,但是这些概念应该可以转移到其他SDK。
我相信您也许能够以环形路口和某种手动方式来实现所需的功能:
disambiguation-question
,而值则是您要用于消除歧义的问题。这里提供一个示例。例如disambiguation-question
:My question that I want to use to disambiguate
。Metadata
的QueryResult
类的属性Metadata
。GetAnswersAsync method which is how you query your QnA Maker endpoint, will return an array of
QueryResult对象。Value
元数据对象中的来在卡中显示以消除歧义。还有就是如何做到这一点的例子在这里。此处还概述了QnA Maker答案排名系统的工作原理,目前它的工作方式如下:
| Step | Purpose |
| --- | --- |
| 1 | The client application sends the user query to the GenerateAnswer API |
| 2 | QnA Maker preprocesses the user query with language detection, spellers, and word breakers. |
| 3 | This preprocessing is taken to alter the user query for the best search results. |
| 4 | This altered query is sent to an Azure Cognitive Search Index, which receives the top number of results. If the correct answer isn't in these results, increase the value of top slightly. Generally, a value of 10 for top works in 90% of queries. |
| 5 | QnA Maker uses syntactic and semantic based featurization to determine the similarity between the user query and the fetched QnA results. |
| 6 | The machine-learned ranker model uses the different features, from step 5, to determine the confidence scores and the new ranking order. |
| 7 | The new results are returned to the client application in ranked order. |
Features used include but aren't limited to word-level semantics, term-level importance in a corpus, and deep learned semantic models to determine similarity and relevance between two text strings.
我希望这有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句