文字分類 (多標籤) - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

文字分類 (多標籤)

若要將文章和文字分類成多種預先定義的類別,請使用多表千文字分類任務類型。例如,您可以使用此工作類型來識別一種以上以文字傳達的情緒。

處理多標籤文字分類任務時,工作者應該選擇所有適用的標籤,但必須至少選擇一個標籤。使用此任務類型建立工作時,最多可提供 50 個標籤類別。

當沒有任何標籤適用時,Amazon SageMaker Ground Truth 不提供「無」類別。若要將此選項提供給工作者,請在建立多標籤文字分類任務時,包括類似「無」或「其他」的標籤。

若要限制工作者為每個文件或文字選擇單一標籤,請使用 文字分類 (單一標籤) 作業類型。

重要

如果您手動建立輸入資訊清單檔案,請使用 "source" 來識別要標記的文字。如需詳細資訊,請參閱 輸入資料

建立多標籤文字分類標記任務 (主控台)

您可以按照說明建立標記任務 (主控台)進行操作,了解如何在 Amazon SageMaker 主控台中建立多標籤文字分類標籤任務。在步驟 10 中,從任務類別下拉式清單中選擇文字,然後選擇文字分類 (多標籤)做為任務類型。

Ground Truth 提供類似下列標記任務的工作者 UI。使用主控台建立標記任務時,您可以指定指示以協助工作者完成任務,以及工作者可以選擇的標籤。

建立多標籤文字分類標記任務 (API)

若要建立多標籤文字分類標籤工作,請使用 SageMaker API 作業CreateLabelingJob。此 API 為所有 AWS SDK 定義此操作。若要查看這項操作支援的特定語言 SDK 清單,請參閱 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-instructionsfull-instructionsheader

將此範本上傳至 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 時在 S3OutputPath 參數中指定的 Amazon S3 儲存貯體中,或在主控台標記任務區段的輸出資料集位置中。

若要進一步了解 Ground Truth 產生的輸出資訊清單檔案,以及 Ground Truth 用來儲存輸出資料的檔案結構,請參閱 輸出資料

若要檢視多標籤文字分類標記任務的輸出資訊清單檔案範例,請參閱 多標籤分類任務輸出