文本分类(多标签) - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

文本分类(多标签)

要将文章和文本分类为多个预定义类别,请使用多标签文本分类任务类型。例如,您可以使用此任务类型来识别在文本中传达的多种情感。

在处理多标签文本分类任务时,工作人员应选择所有适用的标签,且必须至少选择一个标签。使用此任务类型创建作业时,您最多可提供 50 个标签类别。

Amazon SageMaker Ground Truth在没有任何标签适用时, 不会提供“无”类别。要向工作人员提供此选项,请在创建多标签文本分类作业时,包含类似于“无”或“其他”的标签。

若要限制工作人员为每个文档或文本选择单个标签,请使用 文本分类(单标签) 任务类型。

重要

如果您手动创建输入清单文件,请使用 "source" 标识要标记的文本。有关更多信息,请参阅输入数据

创建多标签文本分类标记作业(控制台)

您可以按照 创建标记作业(控制台)中的说明进行操作,以了解如何在 Amazon SageMaker 控制台中创建多标签文本分类标记作业。在步骤 10 中,从 Task category (任务类别) 下拉菜单中选择 Text (文本),然后选择 Text Classification (Multi-label) (文本分类(多标签)) 作为任务类型。

Ground Truth 为标记任务提供类似于以下内容的工作人员 UI。使用控制台创建标记作业时,需要指定说明,以帮助工作人员完成工作人员可以从中选择的作业和标签。

创建多标签文本分类标记作业 (API)

要创建多标签文本分类标记作业,请使用 SageMaker API 操作 CreateLabelingJob。该 API 为所有 AWS 开发工具包定义了该操作。要查看此操作支持的语言特定的SDKs列表,请查看 的请参阅部分CreateLabelingJob

请按照创建标记作业 (API)中的说明进行操作,并在配置请求时执行以下操作:

  • 此任务类型的注释前 Lambda 函数以 PRE-TextMultiClassMultiLabel 结尾。要查找您的区域的注释前 Lambda ARN,请参阅 PreHumanTaskLambdaArn

  • 此任务类型的注释合并 Lambda 函数以 ACS-TextMultiClassMultiLabel 结尾。要查找您所在区域的注释合并 Lambda ARN,请参阅 AnnotationConsolidationLambdaArn

以下是在 区域中创建标记作业的 AWS Python 开发工具包 (Boto3 请求美国东部(弗吉尼亚北部)的示例。所有红色参数都应替换为您的规范和资源。

response = client.create_labeling_job( LabelingJobName='example-multi-label-text-classification-labeling-job, LabelAttributeName='label', InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json' } }, 'DataAttributes': { 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/file-to-store-output-data', 'KmsKeyId': 'string' }, RoleArn='arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json', StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': 'arn:aws:sagemaker:region:*:workteam/private-crowd/*', 'UiConfig': { 'UiTemplateS3Uri': 's3://bucket/path/custom-worker-task-template.html' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda::function:PRE-TextMultiClassMultiLabel, 'TaskKeywords': [ 'Text Classification', ], 'TaskTitle': 'Multi-label text classification task', 'TaskDescription': 'Select all labels that apply to the text shown', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClassMultiLabel' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

为多标签文本分类创建模板

如果要使用 API 创建标记作业,必须在 UiTemplateS3Uri 中提供工作人员任务模板。复制并修改以下模板。仅修改 short-instructions full-instructions header

将此模板上传到 S3,并在 UiTemplateS3Uri 中为此文件提供 S3 URI。

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-classifier-multi-select name="crowd-classifier-multi-select" categories="{{ task.input.labels | to_json | escape }}" header="Please identify all classes in the below text" > <classification-target style="white-space: pre-wrap"> {{ task.input.taskObject }} </classification-target> <full-instructions header="Classifier instructions"> <ol><li><strong>Read</strong> the text carefully.</li> <li><strong>Read</strong> the examples to understand more about the options.</li> <li><strong>Choose</strong> the appropriate labels that best suit the text.</li></ol> </full-instructions> <short-instructions> <p>Enter description of the labels that workers have to choose from</p> <p><br></p> <p><br></p><p>Add examples to help workers understand the label</p> <p><br></p><p><br></p><p><br></p><p><br></p><p><br></p> </short-instructions> </crowd-classifier-multi-select> </crowd-form>

要了解如何创建自定义模板,请参阅 创建自定义标记工作流

多标签文本分类输出数据

在创建多标签文本分类标记作业后,您的输出数据将位于使用 API 时在 Amazon S3 参数中指定的 S3OutputPath 存储桶中,或者位于 控制台的 Job overview (作业概述) 部分的 Output dataset location (输出数据集位置) 字段中。

要详细了解 Ground Truth 生成的输出清单文件以及 Ground Truth 用于存储输出数据的文件结构,请参阅输出数据

要查看多标签文本分类标记作业的输出清单文件示例,请参阅多标签分类作业输出