你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何准备数据和定义文本分类架构

若要创建自定义文本分类模型,需要使用质量数据对其进行训练。 本文介绍应如何选择和准备数据,以及如何定义架构。 定义架构是项目开发生命周期的第一步,它定义需要模型在运行时将文本分类到的类。

架构设计

架构定义在运行时需要模型将文本分类到的类。

  • 查看和确定:查看数据集中的文档以熟悉其结构和内容,然后确定要如何对数据进行分类。

    例如,如果你要分类支持票证,你可能需要以下类:登录问题、硬件问题、连接问题和新的设备请求。

  • 避免类中的多义性:指定的类彼此之间具有相似的含义时,会产生不明确的含义。 架构越不明确,用于区分不同的类所需的标记数据可能就越多。

    例如,如果要对食物食谱进行分类,它们可能类似于范围。 若要区分甜品食谱和主食食谱,你可能需要标记更多示例以帮助模型区分这两个类。 避免多义性会节省时间,并获得更好的结果。

  • 超出范围数据:在生产环境中使用模型时,如果希望文档不属于任何类,请考虑向架构中添加超出范围的类。 然后,将一些文档添加到要标记为“超出范围”的数据集中。 该模型可以学习如何识别无关文档,并相应地预测标记。

数据选择

训练模型的数据质量会极大地影响模型性能。

  • 使用反映域问题空间的真实数据可以有效地训练模型。 可以使用合成数据来加速初始模型训练过程,但它可能与真实数据不同,并且会使模型在使用时效率降低。

  • 尽可能平衡数据分布,尽量不会与现实生活分布偏离甚远。

  • 尽可能使用不同的数据,以避免过度拟合模型。 训练数据的多样性较低可能会导致模型学习真实数据中可能不存在的虚假关联。

  • 避免数据中出现重复文档。 重复数据会对训练过程、模型指标和模型性能产生负面影响。

  • 考虑数据来源。 如果从一个人、一个部门或部分场景收集数据,则很可能缺少多样性,而这对模型学习而言非常重要。

注意

如果文档采用多种语言,请在项目创建过程中选择“多语言”选项,并将“语言”选项设置为大多数文档的语言。

数据准备

作为创建自定义文本分类项目的先决条件,需要将定型数据上传到存储帐户中的 blob 容器。 可使用 Azure 存储资源管理器工具或直接从 Azure 创建和上传训练文档。 使用 Azure 存储资源管理器工具可以快速上传更多数据。

只能使用 .txt 自定义文本的文档。 如果数据采用其他格式,则可使用 CLUtils 分析命令更改文件格式。

可以上传带批注的数据集,也可以上传未批注的数据集,然后在 Language Studio 中标记数据

测试集

定义测试集时,请确保包含训练集中不存在的示例文档。 定义测试集是计算模型性能的重要步骤。 此外,请确保测试集包含代表项目中使用的所有类的文档。

后续步骤

如果尚未这样做,请创建一个自定义文本分类项目。 如果是第一次使用自定义文本分类,请考虑按照快速入门创建一个示例项目。 你还可以查看项目要求,以获取有关创建项目所需内容的更多详细信息。