【问题标题】:LUIS not recognizing all entities even with full confidence intent match即使具有完全置信度的意图匹配,LUIS 也无法识别所有实体
【发布时间】:2018-09-25 19:37:32
【问题描述】:

我有一个特定的表达意图,比如“你昨天睡觉的时候在做什么梦”。标记在那里的实体是什么、做梦、睡觉和昨天。

但是,即使我测试了确切的短语,虽然它对意图充满信心,但它并没有提取所有实体,只是“什么”部分。

实体已正确标记,所以我不明白为什么它无法提取它们。我在这里缺少一些最佳实践吗?

编辑:

我应该补充一点,我有几千个话语被分成几个意图,因为域有很多重叠。我想知道这是否可能是一个问题 - 一个更简单(更少实体)的话语干扰了一个更复杂(更多实体)的相同意图的话语?

编辑 2:

我已使用 LUIS API 设置所有话语,并使用网站来训练和测试它们。

我只使用了一些具有简单含义的意图,例如“事实”、“意见”和“解释”。

只有 15 个实体,它们是简单的组,如“情感”(伤害、爱、恐惧)、“个体”(父亲、母亲、姐妹)和“食物”(汉堡包、三明治)。

在每个意图中,都有几千个示例话语。

以下是来自 LUIS 网站的一些原始表达形式的图像:

以下是使用 LUIS 网站上的“实体视图”的相同话语的图像:

如您所见,实体在话语中的定位有些复杂。同样,由于话语太多,我不知道 LUIS 是否会尝试选择最简单的话语而忽略更复杂的话语(也许这就是它没有提取所有实体的原因?)

忽略其中一个实体名为“intent”,它只是该实体的一个方便名称。

显示使用这些确切话语之一的直接示例。它得到了正确的意图,但只提取了一个实体:

【问题讨论】:

  • 在示例话语中标记实体后,您是否训练您的应用程序?
  • 是的,它是经过训练的。
  • @user9862995 您能否提供更多有关您如何创建实体的详细信息,以便我们尝试重现您的问题并进而寻求解决方案?
  • @Zeryth 我在问题中添加了更多信息,但我不确定我如何创建实体是什么意思。我已经尽力回答了。
  • @user9862995 谢谢。为了澄清,我的意思是问你创建的只是简单的实体吗?列出实体?正则表达式?等

标签: botframework azure-language-understanding


【解决方案1】:

@user9862995

我能够通过执行以下操作提取所有实体:

  1. 创建“意见”意图
  2. 添加了屏幕截图中显示的 4 种话语
  3. 标记话语中的实体 - 都是“简单”实体类型
  4. 火车
  5. 测试我使用“你想不想在这辆旧卡车上骑猎枪”这样的表达方式

结果:话语中的所有 4 个实体都被提取

因此,鉴于您提供给我的信息,我现在可以看到的唯一区别是您添加的话语数量。在您的案例中,很难准确确定实体未被检测到的原因(例如,一个词可能被标记为多个实体,从而混淆了 LUIS 或其他原因)。

你能分享你模型的 JSON 吗?

如果不是,那么根据手头的信息,最好的答案是遵循文档中概述的best practices,特别是迭代构建和测试,而不是一次添加数千个话语——这可能是潜在的导致您看到输出的鸡尾酒行为的几个相互冲突的规则!

此外,请务必访问 LUIS 应用的“查看端点话语”部分,并利用 LUIS 的active learning 来提高您收到的结果的质量。通过主动学习,

LUIS 检查所有端点话语并选择符合以下条件的话语 这是不确定的。您可以标记/训练/发布这些话语 更准确地识别话语。

【讨论】:

  • 嗯,听起来 LUIS 可能不适合这项工作。所有条款和实体都是独一无二的。我显然可以很容易地自己解析出这些意图。所有这些话语都是基于真实的人类问题,因此如果它们使 LUIS 感到困惑,那么它一定不是对话界面的正确工具。
  • 澄清一下,LUIS 绝对能够处理数千个话语,因此每个应用程序的限制是 15,000 个话语。也许我在上面的回答中不清楚,抱歉。仅根据您提供的信息,很难诊断究竟是什么导致了不良行为 - 如果我们查看您的语言模型的 JSON,则更有可能这样做。或者,在构建 LUIS 应用程序时,逐步迭代地构建它,以查看您所做的更改(新话语、模式、新实体等)是否具有预期的效果
  • 我希望能够提供 JSON——但我当然不能在 Stack Overflow 上发布它,因为它是专有信息。我愿意尝试迭代方法,但我真的不明白这对我有什么帮助。一方面,当我不知道哪些新话语会比其他话语“更受欢迎”时,手动调查每个新话语需要做很多工作,而且我也不知道这如何帮助我确定如何确保所有这些话语都是被机器理解。
  • @user9862995 小更新:我已经 ping 过 LUIS 团队,看看您遇到的实际上是错误,还是在添加您直接针对您的应用程序的意图进行测试的话语对于他们来说,专门调试您的问题可能会更加困难,但没有 JSON,但至少可以就构建实践和实体提供更可靠的建议
  • 我这里肯定有些无知......我不明白为什么它不能处理我认为相对于意图限制的少量话语。我总是可以翻转结构并建立更多的意图并以更少的话语为目标,但在这一点上,LUIS 机器学习并没有做这项工作,我是。
【解决方案2】:

MS LUIS...按顺序如下所示...希望这可以给您一些想法。

  • 首先,它会根据用户输入识别所有适用的实体
  • 其次,它会过滤掉所有的意图,但保留那些意图 有匹配的实体
  • 第三,它会进一步过滤出基于其他意图的意图 匹配来自用户输入的单词(不是实体)
  • 最后,它会将置信度分配给意图并让您获得 输出

过多的话语可能会导致您面临的问题。使用符合意图的模式,这将减少所需的话语数量并提高准确性。这里需要有点创意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多