项目最佳做法

以下 QnA 对列表用于表示在自定义问答中创作时突出显示最佳做法的项目。

问题 答案
我想买辆车。 买辆车有三种选择。
我想购买软件许可证。 软件许可证可以在网上免费购买。
如何获取对 WPA 的访问权限? 可以通过公司门户访问 WPA。
Microsoft 股价是多少? 200 美元。
如何购买 Microsoft 服务? Microsoft 服务可以在线购买。
我想要销售汽车。 请发送汽车照片和文档。
如何获取标识卡? 通过公司门户申领标识卡。
如何使用 WPA? 借助提供的手册可轻松使用 WPA。
WPA 的实用工具是什么? WPA 提供了一种访问公司资源的安全方式。

应何时将备选问题添加到问答?

  • 自定义问题解答使用基于转换器的排名程序,它负责处理在语义上类似于项目中问题的用户查询。 例如,请查看以下问答对:

    问:“Microsoft股票的价格是多少?

    答:“$200”。

    该服务可为语义类似的查询返回预期响应,例如:

    “Microsoft 股价价值多少?”

    “Microsoft 的股票价值是多少?”

    “每股 Microsoft 值多少?”

    “Microsoft 股票市值是多少?”

    “每股 Microsoft 股票的市值是多少?”

    系统的置信度分数取决于输入查询,以及它与原始问答对的匹配程度。 它们之间的更大差异可能导致置信度的变化。

  • 在某些情况下,要求客户添加备用问题。 如果查询不返回正确的答案,尽管它存在于项目中,我们建议将该查询作为备用问题添加到预期的 QnA 对。

对于每个问答,有多少个备选问题最佳?

  • 用户可以根据自己的情况添加最多 10 个备选问题。 超过前 10 个的替代问题不会通过核心排名器进行考虑。 但是,它们在其他处理层中进行评估,从而整体输出更好。 预处理步骤中会考虑所有备用问题,以查找完全匹配项。

  • 自定义问题解答中的语义理解应该能够处理类似的备选问题。

  • 一旦超过 10 个问题,投资回报就会开始下降。 即使要添加超过 10 个备用问题,也尽量使最初的 10 个问题在语义上不同,以便通过这 10 个问题捕获答案的所有意向。 对于 QNA #1 中的项目,添加其他问题,如“我怎么能买车?”,“我想买车”不是必需的。 而增加诸如“如何购买汽车”、“买车有哪些选择?”等备选问题是有用的。

何时将同义词添加到项目

  • 自定义问答提供了在项目级别使用同义词的灵活性。

  • 为获得更好的关联性,客户需要提供最终用户打算交换使用的首字母缩写词列表。 例如,以下列表提供可接受的首字母缩略词:

    • MSFT - Microsoft

    • ID - 身份标识

    • ETA - 预计到达时间

  • 除了首字母缩略词,如果你认为字词在特定域的上下文中相似,泛型语言模型并不认为它们相似,最好将它们添加为同义词。 例如,如果生产汽车型号 X 的汽车公司收到“我的汽车音频不起作用”等查询,并且该项目有关于“修复汽车 X 的音频”的问题,那么我们需要添加“X”和“car”作为同义词。

  • 基于转换器的模型已经处理了大多数常见的同义词案例,例如购买 - 购买、 销售 - 拍卖、 价格 - 价值。 例如,请考虑以下问答对:问:“Microsoft 股价是多少?”答:“200 美元”。

用户应收到“Microsoft股票价值”、“Microsoft股票价值”或“股票价值”等查询的准确答案,即使知识库中不存在“共享”、“价值”或“价值”等术语。

如何处理小写/大写字符?

自定义问答考虑到大小写,但它足够智能,可以理解何时被忽略。 由于大小写错误,不应看到任何可感知的差异。

对于多轮问题,问答的优先级是怎样的?

如果知识库具有分层关系,并且上一个答案与其他 QnA 相关,则系统会稍微偏爱:子 QnAs、同级 QnAs、孙子 QnA 进行下一个查询。 与任何查询一起,[自定义问答 API](https://learn.microsoft.com/rest/api/cognitiveservices/questionanswering/question-answering/get-answers)需要一个包含属性“previousQnAId”的“context”对象,该属性表示上一个顶级回答。 根据上面的问答 ID,会提升所有相关问答。

如何处理口音?

所有主要欧洲语言的口音都受支持。 如果查询的口音不正确,置信度分数可能略有不同,但服务仍返回相关答案,并使用模糊搜索处理轻微错误。

如何处理用户查询中的标点?

在将标点符号发送到排名堆栈之前,在用户查询中会忽略标点符号。 理想情况下,它不应影响相关性分数。 忽略的标点: ,?:;“'(){}[]-+./!*؟

后续步骤