Reconhecimento de entidades nomeadas - 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á.

Reconhecimento de entidades nomeadas

Para extrair informações de texto não estruturado e classificá-las em categorias predefinidas, use uma tarefa de rotulagem de reconhecimento de entidade (NER) chamada Amazon SageMaker Ground Truth. Tradicionalmente, a NER envolve examinar dados de texto para localizar frases substantivas, chamadas entidades nomeadas e categorizar cada uma com um rótulo, como "pessoa", "organização" ou "marca". Você pode ampliar essa tarefa para rotular longos períodos de texto e categorizar essas sequências com rótulos predefinidos especificados.

Quando encarregados de um trabalho de rotulagem de reconhecimento de entidade nomeada, os operadores aplicam seus rótulos a palavras ou frases específicas dentro de um bloco de texto maior. Eles escolhem um rótulo e o aplicam usando o cursor para realçar a parte do texto à qual o rótulo se aplica. A ferramenta de reconhecimento de entidades nomeadas Ground Truth suporta anotações sobrepostas, seleção de rótulos no contexto e seleção de vários rótulos para um único destaque. Além disso, os operadores podem usar seus teclados para selecionar rótulos rapidamente.

Você pode criar um trabalho de rotulagem de reconhecimento de entidade nomeada usando a seção Ground Truth do SageMaker console da Amazon ou a CreateLabelingJoboperação.

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 reconhecimento de entidade nomeada (console)

Você pode seguir as instruções Criar um trabalho de rotulagem (console) para aprender como criar uma tarefa de rotulagem de reconhecimento de entidade nomeada no SageMaker console. Na Etapa 10, escolha Texto no menu suspenso Categoria da tarefa e selecione Reconhecimento de entidades nomeadas 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 reconhecimento de entidade nomeada (API)

Para criar um trabalho de rotulagem de reconhecimento de entidade nomeada, usando a operação de SageMaker APICreateLabelingJob. 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-NamedEntityRecognition. 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-NamedEntityRecognition. Para encontrar o ARN Lambda de consolidação de anotações para sua região, consulte. AnnotationConsolidationLambdaArn

  • Você deve fornecer o seguinte ARN para HumanTaskUiArn:

    arn:aws:sagemaker:aws-region:394669845002:human-task-ui/NamedEntityRecognition

    Substitua aws-region pela região da AWS na qual você está criando o trabalho de rotulagem. Por exemplo, use us-west-1 se você criar um trabalho de rotulagem no Oeste dos EUA (Norte da Califórnia).

  • Forneça instruções ao operador no arquivo de configuração da categoria de rótulo usando o parâmetro instructions. Você pode usar uma string ou linguagem de marcação HTML em shortInstruction e campos fullInstruction. Para obter mais detalhes, consulte Forneça instruções de trabalho em um Arquivo de configuração de categoria de rótulo.

    "instructions": {"shortInstruction":"<h1>Add header</h1><p>Add Instructions</p>", "fullInstruction":"<p>Add additional instructions.</p>"}

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-ner-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': { 'HumanTaskUiArn': 'arn:aws:sagemaker:us-east-1:394669845002:human-task-ui/NamedEntityRecognition' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition', 'TaskKeywords': [ 'Named entity Recognition', ], 'TaskTitle': 'Named entity Recognition task', 'TaskDescription': 'Apply the labels provided to specific words or phrases within the larger text block.', 'NumberOfHumanWorkersPerDataObject': 1, 'TaskTimeLimitInSeconds': 28800, 'TaskAvailabilityLifetimeInSeconds': 864000, 'MaxConcurrentTaskCount': 1000, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

Forneça instruções de trabalho em um Arquivo de configuração de categoria de rótulo

Você deve fornecer instruções ao operador no arquivo de configuração da categoria de rótulo em que você identifica com o parâmetro LabelCategoryConfigS3Uri no CreateLabelingJob. Você pode usar essas instruções para fornecer detalhes sobre a tarefa que você deseja que os operadores executem e ajudá-los a usar a ferramenta com eficiência.

Você fornece instruções curtas e longas usando shortInstruction e fullInstruction no parâmetro instructions, respectivamente. Para saber mais sobre esses tipos de instrução, consulte Criar páginas de instrução.

Veja a seguir um exemplo de um arquivo de configuração de categoria de rótulo com instruções que podem ser usadas para uma tarefa de rotulagem de reconhecimento de entidade nomeada.

{ "document-version": "2018-11-28", "labels": [ { "label": "label1", "shortDisplayName": "L1" }, { "label": "label2", "shortDisplayName": "L2" }, { "label": "label3", "shortDisplayName": "L3" }, { "label": "label4", "shortDisplayName": "L4" }, { "label": "label5", "shortDisplayName": "L5" } ], "instructions": { "shortInstruction": "<p>Enter description of the labels that workers have to choose from</p><br><p>Add examples to help workers understand the label</p>", "fullInstruction": "<ol> <li><strong>Read</strong> the text carefully.</li> <li><strong>Highlight</strong> words, phrases, or sections of the text.</li> <li><strong>Choose</strong> the label that best matches what you have highlighted.</li> <li>To <strong>change</strong> a label, choose highlighted text and select a new label.</li> <li>To <strong>remove</strong> a label from highlighted text, choose the X next to the abbreviated label name on the highlighted text.</li> <li>You can select all of a previously highlighted text, but not a portion of it.</li> </ol>" } }

Dados de saída de reconhecimento de entidades nomeadas

Depois de criar um trabalho de rotulagem de reconhecimento de entidade nomeada, 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 Localização 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.