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

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

使用文字分類將文字分類 (多標籤)

若要將文章和文字分類成多種預先定義的類別,請使用多表千文字分類任務類型。例如,您可以使用此工作類型來識別一種以上以文字傳達的情緒。下列各節提供如何從主控台和 建立多標籤文字分類任務的相關資訊API。

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

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

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

重要

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

建立多標籤文字分類標籤工作 (主控台)

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

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

Gif 顯示如何在 Amazon SageMaker 主控台中建立多標籤文字分類標籤任務。

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

若要建立多標籤文字分類標籤工作,請使用 SageMaker API操作 CreateLabelingJob。這會為所有 API定義此操作 AWS SDKs。若要查看此操作SDKs支援的特定語言清單,請檢閱 的另請參閱 一節CreateLabelingJob

設定請求時,請遵循建立標記任務 (API)上的指示並執行下列動作:

  • 此任務類型的註釋前 Lambda 函式會以 PRE-TextMultiClassMultiLabel 結尾。若要尋找ARN您 區域的預先註釋 Lambda,請參閱 PreHumanTaskLambdaArn

  • 此任務類型的註釋合併 Lambda 函式會以 ACS-TextMultiClassMultiLabel 結尾。若要尋找ARN您 區域的註釋合併 Lambda,請參閱 AnnotationConsolidationLambdaArn

以下是在美國東部 AWS SDK(維吉尼亞北部) 區域中建立標籤工作的 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,並在 中提供此檔案URI的 S3UiTemplateS3Uri

<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 用來儲存輸出資料的檔案結構,請參閱標記任務輸出資料

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