LUIS:批量测试为实体返回不正确的结果
LUIS: Batch testing returning incorrect results for entities
我正在训练 LUIS 模型来识别更改数据库中个人的出生日期或预期出生日期的意图。除了 datetimeV2 实体之外,预计还会检测到 number:MemberID 或 number:FamilyID。如果不是,将以编程方式处理。
示例话语 - https://i.imgur.com/l8W670F.png
我的问题是,当批量测试 LUIS 时,它将 builtin.number 的真阳性结果标记为假阳性。我不知道这是 LUIS 的错误还是我的模型或批处理文件有问题。我在下面标记了批量训练结果的屏幕截图,并将添加来自批量测试文件的片段。
我曾尝试重新训练模型并结合意图,但没有成功。我为每个意图添加了多达 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
}
]
}
]
最终,批处理结果应该显示当前被标记为误报的话语的真阳性,因为它们确实包含它正确检测到的number:MemberID。
实际上,您正在使用实体角色功能将 number:MemberID
和 number:FamilyID
标记为子类型,对吗?如果是这种情况,那么这就是您的批量测试不起作用的原因。
特别是在 LUIS docs on batch testing 中,它是这样说的:
看来您不能使用批量测试来测试这些类型的具有角色的实体的话语。
您可以通过 UserVoice 论坛请求开发此功能,该论坛可帮助我们的团队从社区获得反馈,并可能帮助确定我们应该首先开发的功能的优先级。
我正在训练 LUIS 模型来识别更改数据库中个人的出生日期或预期出生日期的意图。除了 datetimeV2 实体之外,预计还会检测到 number:MemberID 或 number:FamilyID。如果不是,将以编程方式处理。
示例话语 - https://i.imgur.com/l8W670F.png
我的问题是,当批量测试 LUIS 时,它将 builtin.number 的真阳性结果标记为假阳性。我不知道这是 LUIS 的错误还是我的模型或批处理文件有问题。我在下面标记了批量训练结果的屏幕截图,并将添加来自批量测试文件的片段。
我曾尝试重新训练模型并结合意图,但没有成功。我为每个意图添加了多达 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
}
]
}
]
最终,批处理结果应该显示当前被标记为误报的话语的真阳性,因为它们确实包含它正确检测到的number:MemberID。
实际上,您正在使用实体角色功能将 number:MemberID
和 number:FamilyID
标记为子类型,对吗?如果是这种情况,那么这就是您的批量测试不起作用的原因。
特别是在 LUIS docs on batch testing 中,它是这样说的:
看来您不能使用批量测试来测试这些类型的具有角色的实体的话语。
您可以通过 UserVoice 论坛请求开发此功能,该论坛可帮助我们的团队从社区获得反馈,并可能帮助确定我们应该首先开发的功能的优先级。