使用一组示例话语进行批处理测试

重要

LUIS 将于 2025 年 10 月 1 日停用,从 2023 年 4 月 1 日开始,你将无法创建新的 LUIS 资源。 建议将 LUIS 应用程序迁移对话语言理解,以便从持续的产品支持和多语言功能中受益。

批处理测试会验证活动训练版本,以判断其预测准确性。 批量测试可帮助你查看活动版本中每个意向和实体的准确性。 查看批处理测试结果以采取适当的措施来提高准确性,例如,如果应用经常无法识别正确的意向或在话语中标记实体,则向意向添加更多示例话语。

批处理测试的组数据

对于 LUIS 来说,用于批处理测试的表达必须是全新,这一点很重要。 如果有话语数据集,请将话语划分为三个集:添加到意向的示例话语、从已发布的终结点接收的话语,以及在训练 LUIS 后用于对其进行批处理测试的话语。

你使用的批处理 JSON 文件中的言语应包含机器学习的带有标签的顶级实体(包括开始和结束位置)。 言语不应是已包含在应用中的示例的一部分。 它们应该是你要在其中积极预测意向和实体的言语。

可以按意向和/或实体划分测试,或者将所有测试(最多 1000 个言语)包含在同一文件中。

导入批处理文件的常见错误

如果在将批处理文件上传到 LUIS 时遇到错误,请检查是否存在以下常见问题:

  • 批处理文件中的言语多于 1,000 条
  • 不具有实体属性的话语 JSON 对象。 此属性可以是空数组。
  • 在多个实体中标记的字词
  • 实体标签以空格开头或结尾。

修复批处理错误

如果在批处理测试中出现错误,可以向意向添加更多表达,和/或在实体中标记更多表达,以帮助 LUIS 在意向间进行区分。 如果你已添加了表达,且对其进行了标记,但在批处理测试中仍收到预测错误,请考虑添加短语列表功能,其中包含特定于域的词汇,以帮助 LUIS 更快地理解。

使用 LUIS 门户进行批量测试

导入并训练示例应用

导入提取披萨订单的应用,例如 1 pepperoni pizza on thin crust

  1. 下载并保存应用 JSON 文件

  2. 登录到 LUIS 门户,选择“订阅”和“创作资源”以查看分配给该创作资源的应用。

  3. 选择“新建应用”旁边的箭头,并单击“以 JSON 格式导入”,以便将 JSON 导入到一个新应用。 将应用命名为 Pizza app

  4. 选择导航栏右上角的“训练”以训练该应用。

批处理测试中的角色

注意

批处理测试中不支持实体角色。

批量测试文件

示例 JSON 包含一个言语(该言语包含一个带标签的实体)用于演示测试文件的外观。 你自己的测试中应该包含多个言语,这些言语标记了正确的意向和机器学习实体。

  1. 在文本编辑器中创建 pizza-with-machine-learned-entity-test.json下载它。

  2. 在 JSON 格式的批处理文件中,添加要在测试中预测的言语和意向

[
    {
        "text": "I want to pick up 1 cheese pizza",
        "intent": "ModifyOrder",
        "entities": [
            {
                "entity": "Order",
                "startPos": 18,
                "endPos": 31
            },
            {
                "entity": "ToppingList",
                "startPos": 20,
                "endPos": 25
            }
        ]
    }
]

运行批处理

  1. 选择顶部导航栏的“测试”。

  2. 选择右侧面板中的“批处理测试面板”。

    Batch Testing Link

  3. 选择“导入” 。 在出现的对话框中,选择“选择文件”并找到具有正确 JSON 格式的 JSON 文件,该文件包含不超过 1,000 条待测试的言语。

    浏览器顶部的红色通知栏中将报告导入错误。 导入出现错误时,不会创建任何数据集。 有关详细信息,请参阅常见错误

  4. 选择 pizza-with-machine-learned-entity-test.json 文件的文件位置。

  5. 命名数据集 pizza test,然后选择“完成”。

  6. 选择“运行”按钮。

  7. 批处理测试完成后,可以看到以下各列:

    说明
    状态 测试的状态。 “查看结果”仅在测试完成后可见。
    名称 为测试提供的名称。
    大小 此批处理测试文件中的测试数。
    上次运行时间 此批处理测试文件的上次运行日期。
    上次结果 测试中成功的预测数。
  8. 若要查看测试的详细结果,请选择“查看结果”。

    提示

    • 选择“下载”会下载你上传的同一文件。
    • 如果你看到批量测试失败,则至少一个言语意向与预测不匹配。

查看意向的批处理结果

若要查看批处理测试结果,请选择“查看结果”。 测试结果以图形显示如何针对活动版本预测测试言语。

批处理图表将结果显示在四个象限中。 在图表右侧是一个筛选器。 筛选器包含意向和实体。 选择图表的一个部分或图表中的一个点时,关联的话语显示在图表下方。

鼠标悬停在图表上时,鼠标滚轮可以放大或缩小图表中的显示。 当图表上有许多点紧密地聚集在一起时,这是非常有用的。

图表分为四个象限,其中两个部分以红色显示。

  1. 在筛选器列表中选择“ModifyOrder”意向。 言语预测为“漏报”,这意味着,该言语已成功匹配其在批处理文件中列出的正面预测结果。

    Utterance successfully matched its positive prediction

    筛选器列表中的绿色勾选标记也指示每个意向的测试成功。 所有其他意向列出了 1/1 正面评分,因为言语是针对每个意向测试的,而任何意向的负面测试不会列在批处理测试中。

  2. 选择“Confirmation”意向。 此意向未在批处理测试中列出,因此,这是批处理测试中列出的言语的负面测试。

    Utterance successfully predicted negative for unlisted intent in batch file

    根据筛选器和网格中的绿色文本所示,负面测试成功。

查看实体的批处理测试结果

ModifyOrder 实体(包含子实体的机器实体)显示顶级实体是否匹配,并显示子实体是如何预测的。

  1. 在筛选器列表中选择“ModifyOrder”实体,然后选择网格中的圆圈。

  2. 实体预测结果显示在图表下方。 显示的内容包括符合预期的预测对应的实线,以及不符合预期的预测对应的虚线。

    Entity parent successfully predicted in batch file

筛选图表结果

若要按特定意向或实体筛选图表,请在右侧筛选面板中选择意向或实体。 图中的数据点及其分布会根据不同的选择而相应更新。

Visualized Batch Test Result

图表结果示例

对于 LUIS 门户中的图表,你可以执行以下操作:

查看单点陈述数据

在图表中,将鼠标悬停在某个数据点上可查看其预测结果的确定性分数。 选择数据点可在页面底部的陈述列表中检索出相应的陈述。

Selected utterance

查看分区数据

在此四分区图表中,选择分区名称,例如在图表右上角的“误报”。 该分区中的所有陈述都会显示在该图表下方的列表中。

Selected utterances by section

在上图中,陈述 switch on 被标记为 TurnAllOn 意向,但接收的预测意向为 None。 这表示 TurnAllOn 意向需要更多示例陈述才能做出预期预测。

该图表中红色的两个分区表示与预期预测不匹配的陈述。 它们表示需要更多 LUIS 训练的陈述。

该图表中绿色的两个分区与预期预测相匹配。

后续步骤

如果测试表明 LUIS 应用未正确识别意向和实体,则可以通过标记更多陈述或添加功能来提高 LUIS 应用的性能。