Botframework LUIS不承认所有实体,即使完全信任意图匹配

Botframework LUIS不承认所有实体,即使完全信任意图匹配,botframework,azure-language-understanding,Botframework,Azure Language Understanding,我有一个明确的意图,比如“你昨天睡觉的时候做了什么梦”。标记为存在的实体是什么,梦,睡,和昨天 然而,即使当我测试确切的短语时,虽然它给意图以充分的信心,但它并没有提取出所有的实体,只是“什么”部分 实体标记正确,所以我不明白为什么它不能提取它们。这里有没有我错过的最佳实践 编辑: 我应该补充的是,我有几千条话语被分成了几个意图,因为这个领域有很多重叠。我想知道这是否会成为一个问题——一个更简单(更少的实体)的话语会干扰一个更复杂(更多实体)的话语吗 编辑2: 我已经使用LuisAPI设置了所有

我有一个明确的意图,比如“你昨天睡觉的时候做了什么梦”。标记为存在的实体是什么,梦,睡,和昨天

然而,即使当我测试确切的短语时,虽然它给意图以充分的信心,但它并没有提取出所有的实体,只是“什么”部分

实体标记正确,所以我不明白为什么它不能提取它们。这里有没有我错过的最佳实践

编辑:

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

编辑2:

我已经使用LuisAPI设置了所有的话语,并通过网站对它们进行了培训和测试

我只是使用了一些简单的意图,比如“事实”、“观点”和“解释”

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

在每一个意图中,都有几千个示例语句

以下是LUIS网站上一些原始形式的话语图像:

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

正如你所见,实体在话语中的位置有些复杂。同样,因为有这么多的话语,我不知道LUIS是否会尝试选择最简单的一个,而忽略更复杂的一个(也许这就是为什么它没有提取所有的实体?)

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

这是一个直接的例子,展示了如何使用这些确切的话语之一。它获得正确的意图,但仅提取单个实体: @user9862995

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

  • 创造“意见”意图
  • 添加了屏幕截图中显示的4个语句
  • 话语中的实体都是“简单”实体类型
  • 训练
  • 测试我用“你想不想坐这辆旧卡车上的猎枪”
  • 结果:提取了话语中的4个实体

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

    您可以共享您模型的JSON吗?

    如果没有,那么根据手头的信息,最好的答案是遵循文档中概述的方法,特别是迭代构建和测试,而不是一次添加数千条语句——可能是几个相互冲突的规则导致了您看到的鸡尾酒行为

    此外,请务必访问LUIS应用程序的“查看端点话语”部分,并利用LUIS的功能提高您收到的结果的质量。积极学习,

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


    路易斯女士。。。下面的工作顺序如下…希望这可以给你一些想法

    • 首先,它将从用户输入中识别所有适用的实体
    • 第二,它将过滤掉所有意图,但保留 有匹配的实体
    • 第三,它将根据其他信息进一步过滤出意图 从用户输入匹配单词(非实体)
    • 最后,它将为意向分配信心级别,并让您 输出

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

    在您的示例发言中标记实体后,您是否对应用程序进行了培训?是的,它经过了培训。@user9862995您能否提供有关如何创建实体的更多详细信息,以便我们可以尝试重新处理您的问题,进而寻求解决方案?@Zeryth我已为问题添加了更多信息,但我不确定你所说的我是如何创建实体的。我已经尽力回答了。@user9862995谢谢。为了澄清这一点,我想问的是,你是否只创建了简单的实体?列表实体?正则表达式?等等,嗯,听起来路易斯可能是这个工作的错误工具。所有术语和实体都是唯一的。我自己显然可以很容易地解析出这些意图。所有这些话语都是基于真实的人类问题,因此,如果它们混淆了LUIS,那么它肯定不是对话界面的正确工具。澄清一下,LUIS肯定能够处理数千次话语,因此每个应用程序的限制为15000次。也许我在上面的回答中不清楚,道歉。只考虑到您提供的信息,很难诊断到底是什么导致了不期望的行为——如果我们查看一下您的语言模型的JSON,就更有可能这样做。或者,在构建LUIS应用程序时,一步一步迭代地构建它,以查看您所做的更改(新的话语、模式、新的实体等)是否具有所需的效果我希望能够提供JSON——但我当然不能在堆栈溢出上发布它,因为它是专有信息。我愿意尝试迭代的方法,但我不知道