【问题标题】:LUIS: Batch testing returning incorrect results for entitiesLUIS:批量测试返回的实体结果不正确
【发布时间】:2019-08-25 09:26:14
【问题描述】:

我正在训练一个 LUIS 模型,以识别更改数据库中个人的出生日期或预期出生日期的意图。除了 datetimeV2 实体之外,预计还会检测到 number:MemberID 或 number:FamilyID。如果不是,则将以编程方式处理。

示例话语 - https://i.imgur.com/l8W670F.png

我的问题是,在批量测试 LUIS 时,它会将 builtin.number 的 True Positive 结果标记为 False Positives。我不知道这是 LUIS 的错误还是我的模型或批处理文件有问题。我在下面标记了批量训练结果的屏幕截图,并将从批量测试文件中添加一个 sn-p。

我尝试重新训练模型并结合意图,但没有这样的运气。我为每个意图添加了多达 60 个话语,但我最终得到了一个训练过度的模型,但问题比我开始时更多。此外,我添加了模式,但这也无济于事。

批处理结果图 - https://i.imgur.com/0ki5CaV.png

误报 - https://i.imgur.com/q0T82wh.png

[
  {
    "text": "change dob to 09/16/2013 for Charles Patterson in family 53183",
    "intent": "ChangeDOB",
    "entities": [
      {
        "entity": "datetimeV2",
        "startPos": 14,
        "endPos": 24
      },
      {
        "entity": "FirstName",
        "startPos": 29,
        "endPos": 36
      },
      {
        "entity": "LastName",
        "startPos": 37,
        "endPos": 46
      },
      {
        "entity": "number:FamilyID",
        "startPos": 57,
        "endPos": 62
      }
    ]
  },
  {
    "text": "change birth dt for 47224 to 10/22/2015",
    "intent": "ChangeDOB",
    "entities": [
      {
        "entity": "number:MemberID",
        "startPos": 20,
        "endPos": 25
      },
      {
        "entity": "datetimeV2",
        "startPos": 29,
        "endPos": 39
      }
    ]
  },
  {
    "text": "repair birthday to 04/30/2019 in family 84842",
    "intent": "ChangeDOB",
    "entities": [
      {
        "entity": "datetimeV2",
        "startPos": 19,
        "endPos": 29
      },
      {
        "entity": "number:FamliyID",
        "startPos": 40,
        "endPos": 45
      }
    ]
  },
  {
    "text": "alter birthday to 01/18/2004 for Harry Taylor in family 31902",
    "intent": "ChangeDOB",
    "entities": [
      {
        "entity": "datetimeV2",
        "startPos": 18,
        "endPos": 28
      },
      {
        "entity": "FirstName",
        "startPos": 33,
        "endPos": 38
      },
      {
        "entity": "LastName",
        "startPos": 39,
        "endPos": 45
      },
      {
        "entity": "number:FamilyID",
        "startPos": 56,
        "endPos": 61
      }
    ]
  },
  {
    "text": "change date of birth to 11/15/2003 for 87546",
    "intent": "ChangeDOB",
    "entities": [
      {
        "entity": "datetimeV2",
        "startPos": 24,
        "endPos": 34
      },
      {
        "entity": "number:MemberID",
        "startPos": 39,
        "endPos": 44
      }
    ]
  }
]

最终,批处理结果应该显示当前标记为 False Positives 的话语的 True Positives,因为它们确实包含一个可以正确检测到的 number:MemberID。

【问题讨论】:

  • 能否分享您的 LUIS 模型的 JSON,以便我们自己在 LUIS 门户中进行测试?

标签: microsoft-cognitive azure-language-understanding


【解决方案1】:

实际上,您正在使用实体角色功能将number:MemberIDnumber:FamilyID 标记为子类型,对吗?如果是这种情况,那么这就是您的批量测试不起作用的原因。

特别是在LUIS docs on batch testing,它是这样说的:

因此,您似乎无法使用批量测试来测试带有角色的这些类型实体的话语。

您可以通过UserVoice--forum 请求开发此功能,这有助于我们的团队从社区获得反馈,并可能有助于确定我们应该首先开发哪些功能的优先级。

【讨论】:

  • 我认为可能是这样。感谢您证实我的怀疑!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
  • 2012-04-11
  • 2016-02-06
相关资源
最近更新 更多