Classificação de texto (com vários rótulos) - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Classificação de texto (com vários rótulos)

Para categorizar artigos e texto em várias categorias predefinidas, use o tipo de tarefa de classificação de texto com vários rótulos. Por exemplo, você pode usar esse tipo de tarefa para identificar mais de uma emoção transmitida no texto.

Ao trabalhar em uma tarefa de classificação de texto com vários rótulos, os operadores devem escolher todos os rótulos aplicáveis, mas devem escolher pelo menos um. Ao criar uma tarefa usando esse tipo de tarefa, você pode fornecer até 50 categorias de rótulo.

O Amazon SageMaker Ground Truth não fornece a categoria “nenhum” para quando nenhum dos rótulos se aplica. Para fornecer essa opção aos operadores, inclua um rótulo semelhante a “none (nenhum)” ou “other (outro)” ao criar um trabalho de classificação de texto com vários rótulos.

Para restringir a escolha dos operadores a um único rótulo para cada seleção de documento ou texto, use o tipo de tarefa Classificação de texto (Rótulo único).

Importante

Se você criar manualmente um arquivo manifesto de entrada, use "source" para identificar o texto que você deseja rotular. Para ter mais informações, consulte Dados de entrada.

Criar um trabalho de rotulagem de classificação de texto com vários rótulos (console)

Você pode seguir as instruções Criar um trabalho de rotulagem (console) para aprender como criar um trabalho de rotulagem de classificação de texto com vários rótulos no SageMaker console da Amazon. Na Etapa 10, escolha Texto no menu suspenso Categoria da tarefa e Classificação de texto (vários rótulos) como o tipo de tarefa.

O Ground Truth fornece uma interface de usuário do operador que se parece com a seguinte para tarefas de rotulagem. Ao criar o trabalho de rotulagem com o console, você especifica instruções para ajudar os operadores a concluírem o trabalho e os rótulos que eles podem escolher.

Criar um trabalho de rotulagem de classificação de texto com vários rótulos (API)

Para criar um trabalho de rotulagem de classificação de texto com vários rótulos, use a operação CreateLabelingJob de SageMaker API. Essa API define essa operação para todos os AWS SDKs. Para ver uma lista de SDKs específicos de idiomas compatíveis com essa operação, revise a seção Ver também do CreateLabelingJob.

Siga as instruções em Criar um trabalho de rotulagem (API) e faça o seguinte enquanto você configura a solicitação:

  • As funções do Lambda de pré-anotação para esse tipo de tarefa terminam com PRE-TextMultiClassMultiLabel. Para encontrar a pré-anotação Lambda ARN para sua região, consulte. PreHumanTaskLambdaArn

  • As funções do Lambda de consolidação de anotações para esse tipo de tarefa terminam com ACS-TextMultiClassMultiLabel. Para encontrar o ARN Lambda de consolidação de anotações para sua região, consulte. AnnotationConsolidationLambdaArn

Veja a seguir um exemplo de uma solicitação do SDK Python (Boto3) da AWS para criar um trabalho de rotulagem de dados automatizada na região Leste dos EUA (Norte da Virgínia). Todos os parâmetros em vermelho devem ser substituídos por suas especificações e recursos.

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' }, ] )

Criar um modelo para classificação de texto com vários rótulos

Se você criar um trabalho de rotulagem usando a API, será necessário fornecer um modelo de tarefas de operador em UiTemplateS3Uri. Copie e modifique o modelo a seguir. Modifique somente short-instructions, full-instructions e header.

Faça upload deste modelo para o S3 e forneça o URI do S3 para este arquivo em UiTemplateS3Uri.

<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>

Para saber como criar um modelo personalizado, consulte Criar fluxos de trabalho de rotulagem personalizados.

Dados de saída de classificação de texto com vários rótulos

Depois de criar um trabalho de rotulagem de classificação de texto de vários rótulos, seus dados de saída serão localizados no bucket do Amazon S3 especificado no parâmetro S3OutputPath ao usar a API ou no campo Local do conjunto de dados de saída da seção Visão geral do trabalho do console.

Para saber mais sobre o arquivo manifesto de saída gerado pelo Ground Truth, e sobre a estrutura do arquivo que o Ground Truth usa para armazenar os dados de saída, consulte Dados de saída.

Para ver um exemplo de arquivos manifesto de saída para o trabalho de rotulagem de classificação de texto com vários rótulos, consulte Saída do trabalho de classificação com vários rótulos.