首页 > 解决方案 > 将情报从 LUIS 转移到 QnA

问题描述

LUIS 通常用作具有多个 QnA 的调度程序或与 QnA 并行使用或用作 (If else) 以重定向到 QnA。正如下面的链接中提到的:

查看答案中提到的用例

我想将知识从 LUIS 转移到 QnA:

LUIS: 从话语中提取实体和意图等内容,但在上述大多数场景中,我们传输的只是话语,而不是来自 LUIS 的意图和实体信息。

QnA 元数据: 元数据过滤器(键值对)以增强一些答案,当我们随后查询 qna 库时。

以下是我的问题:

  1. 这种情况是否可以将 session.message 或 utterance 以及实体和意图传输到 QnA 服务?

  2. 使用元数据来实现它,例如意图:某物和实体:一些产品,并从 LUIS 传递意图和实体以与 QnA 服务中的此元数据进行比较,这是否也合理?

  3. 如果上述概念是错误的,那么是否有另一种方法可以将知识从 LUIS 转移到 QnA 服务?据我所知,LUIS 是比 QnA 更智能的服务,QnA 主要用作坚实的 QnA 基础,但如果我们将控制权交给 LUIS,那么甚至可能是具有不同实体或呈现方式但可以映射到相同上下文的问题QnA 数据库中所需的 QnA 对。

  4. 最后有人可以帮我想出如何在node.js中实现这个吗?如果可能的话,您不必从头开始编写代码,只需将意图和实体从 LUIS 传输到 QnA 的元数据即可。当然,如果这个逻辑是可行的。

标签: node.jsbotframeworkazure-language-understandingqnamaker

解决方案


我发现 QnA Maker 在部分重叠的问题上存在很多问题。

例如,与定义问题相同类型的问题:

  • 什么是苹果?告诉我什么是苹果。
  • 什么是梨?告诉我梨是什么。解释一下梨是什么。

QnA Maker 比较笨——它基于搜索引擎,而不是真正理解语言。例如,它无法找出问题的关键概念是什么。

因此,重要的是减少重叠并在问题中具有更多的独特性。

我想出的解决方案是对类似的问题进行聚类并将它们建模为 LUIS 中的意图。然后可以在 QnA Maker 中找到答案。例如DefinitionQuestion,带有实体提取的 LUIS 中的意图:

  • X是什么?告诉我X是什么。解释一下 X 是什么

然后在您的机器人中使用逻辑,您可以将所有定义(而不是整个问题)放入 QnA Maker 并将它们标记为定义。当 LUIS 识别定义意图时,您可以提取 X 实体并使用带有questiontype:definition标记的严格过滤器查询 X 的 QnA Maker。


推荐阅读