项目最佳做法

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

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

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

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

    问:“Microsoft 股价是多少?”

    答:“200 美元”。

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

    “Microsoft 股价价值多少?”

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

    “每股 Microsoft 值多少?”

    “Microsoft 股票市值是多少?”

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

    但是,请注意,系统返回正确响应的置信度分数会因输入查询和原始问答对的不同而不同。

  • 在某些情况下,需要客户添加备选问题。 当某个查询虽然存在于项目中但未返回正确答案时,建议将该查询作为备选问题添加到预期的问答对。

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

  • 用户可以根据自己的情况添加最多 10 个备选问题。 第 10 个以外的备选问题并不是我们的核心 Ranker。 但是,在其他处理层中对它们进行评估,从而获得更好的输出整体。 在预处理步骤中将考虑所有备选问题,以查找完全匹配项。

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

  • 如果超过 10 个问题,投资回报率将开始减少。 即使你要添加 10 个以上的备选问题,也可以尝试将前 10 个问题尽可能设为语义不同的问题,从而通过这 10 个问题来捕获答案的所有意图。 对于上述项目,在第 1 组问答对中,不要求添加备选问题(例如“我如何购买汽车”、“我想买辆车”)。 而增加诸如“如何购买汽车”、“买车有哪些选择?”等备选问题是有用的。

何时将同义词添加到项目

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

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

    MSFT - Microsoft

    ID - 标识

    ETA - 预计推出时间

  • 除首字母缩写外,如果你认为在特定域的上下文中存在相似字词,并且泛型语言模型不会将其归为相似,则最好将它们添加为同义词。 例如,如果制造汽车型号 X 的汽车公司收到“我的汽车的音响不工作”之类的查询,而项目里存在关于“维修汽车 X 音响”的问题,则需将“X”和“汽车”添加为同义词。

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

如果我们收到“Microsoft 股价价值”、“Microsoft 股票价值”、“Microsoft 股票市值”、“股票市值”等用户查询,他们应该可以获取正确答案,即使知识库中本来并不存在这些查询中的词,如“股票”、“价值”和“市值”。

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

自定义问题解答需要考虑到大小写,但系统非常智能,知道何时忽略大小写。 所以即便大小写错误,你应该也不会看到任何可识别的差异。

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

当某个知识库拥有层次结构关系时(手动添加或通过提取添加),且先前回复了与其他问答相关的答案时,对于下一次查询,我们将稍微偏向于按照所有子级问答、同级问答和孙级问答这个顺序来进行回复。 除了任何查询之外,[自定义问题解答 API](https://learn.microsoft.com/rest/api/cognitiveservices/questionanswering/question-answering/get-answers)需要一个“context”对象,该对象具有“previousQnAId”属性(可指示上一个最佳答案)。 根据上面的问答 ID,会提升所有相关问答。

如何处理口音?

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

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

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

后续步骤