Reconnaissance d'entités nommées (NER) - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Reconnaissance d'entités nommées (NER)

Pour extraire des informations d'un texte non structuré et le classer dans des catégories prédéfinies, utilisez une tâche d'étiquetage Amazon SageMaker Ground Truth nommée entity recognition (NER). Traditionnellement, il NER s'agit de passer au crible les données textuelles pour trouver des phrases nominales, appelées entités nommées, et de les classer par une étiquette, telle que « personne », « organisation » ou « marque ». Vous pouvez élargir cette tâche pour étiqueter des étendues de texte plus longues et catégoriser ces séquences avec des étiquettes prédéfinies que vous spécifiez.

Lorsqu'ils sont chargés d'une tâche d'étiquetage de reconnaissance d'entité nommée, les employés appliquent vos étiquettes à des mots ou expressions spécifiques au sein d'un bloc de texte plus grand. Ils choisissent une étiquette, puis l'appliquent à l'aide du curseur pour mettre en surbrillance la partie du texte à laquelle l'étiquette s'applique. L'outil de reconnaissance des entités nommées Ground Truth prend en charge les annotations qui se chevauchent, la sélection d'étiquettes en contexte et la sélection de plusieurs étiquettes pour une seule mise en évidence. En outre, les employés peuvent utiliser leurs claviers pour sélectionner rapidement des étiquettes.

Vous pouvez créer une tâche d'étiquetage par reconnaissance d'entités nommées à l'aide de la section Ground Truth de la SageMaker console Amazon ou de l'CreateLabelingJobopération.

Important

Si vous créez manuellement un fichier manifeste source, utilisez "source" pour identifier le texte à étiqueter. Pour de plus amples informations, veuillez consulter Données d'entrée.

Créer une tâche d'étiquetage de reconnaissance d'entité nommée (Console)

Vous pouvez suivre les instructions Création d'une tâche d'étiquetage (Console) pour savoir comment créer une tâche d'étiquetage de reconnaissance d'entités nommées dans la SageMaker console. À l'étape 10, choisissez Texte dans le menu déroulant Catégorie de tâche puis choisissez Reconnaissance d'entité nommée comme type de tâche.

Ground Truth fournit une interface utilisateur employé similaire à la suivante pour l'étiquetage des tâches. Lorsque vous créez la tâche d'étiquetage avec la console, vous spécifiez des instructions pour aider les collaborateurs à terminer la tâche et des étiquettes parmi lesquelles ceux-ci peuvent faire leur choix.

Gif montrant comment créer une tâche d'étiquetage de reconnaissance d'entités nommées dans la SageMaker console.

Créer une tâche d'étiquetage par reconnaissance d'entités nommées (API)

Pour créer une tâche d'étiquetage par reconnaissance d'entités nommées, à l'aide de l' SageMaker APIopérationCreateLabelingJob. Cela API définit cette opération pour tous AWS SDKs. Pour consulter la liste des langues spécifiques prises SDKs en charge pour cette opération, consultez la section Voir aussi de. CreateLabelingJob

Suivez les instructions présentées dans Création d'une tâche d'étiquetage (API) et procédez comme suit pour configurer votre demande :

  • Les fonctions Lambda de pré-annotation pour ce type de tâche se terminent par PRE-NamedEntityRecognition. Pour trouver le ARN Lambda de pré-annotation pour votre région, consultez. PreHumanTaskLambdaArn

  • Les fonctions Lambda de consolidation des annotations pour ce type de tâche se terminent par ACS-NamedEntityRecognition. Pour trouver le Lambda de consolidation des annotations ARN pour votre région, consultez. AnnotationConsolidationLambdaArn

  • Vous devez fournir les informations suivantes ARN pour HumanTaskUiArn :

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

    Remplacez aws-region par la AWS région que vous avez utilisée pour créer la tâche d'étiquetage. Par exemple, utilisez us-west-1 si vous créez une tâche d'étiquetage dans la région USA Ouest (Californie du Nord).

  • Fournissez des instructions de travail dans le fichier de configuration de catégorie d'étiquettes à l'aide du paramètre instructions. Vous pouvez utiliser une chaîne ou un langage de HTML balisage dans les fullInstruction champs shortInstruction et. Pour en savoir plus, consultez Fournir des instructions aux employés dans un fichier de configuration de catégorie d'étiquette.

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

Voici un exemple de demande AWS Python SDK (Boto3) pour créer une tâche d'étiquetage dans la région USA Est (Virginie du Nord). Tous les paramètres en rouge doivent être remplacés par vos spécifications et ressources.

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

Fournir des instructions aux employés dans un fichier de configuration de catégorie d'étiquette

Vous devez fournir des instructions aux employés dans le fichier de configuration de catégorie d'étiquette que vous identifiez avec le paramètre LabelCategoryConfigS3Uri dans CreateLabelingJob. Vous pouvez utiliser ces instructions pour fournir des détails sur la tâche que vous souhaitez que les employés effectuent et les aider à utiliser l'outil efficacement.

Fournissez des instructions courtes et longues en utilisant shortInstruction et fullInstruction dans le paramètre instructions, respectivement. Pour en savoir plus sur ces types d'instruction, veuillez consulter Création de pages d'instructions.

Voici un exemple de fichier de configuration de catégorie d'étiquettes avec des instructions pouvant être utilisées pour une tâche d'étiquetage de reconnaissance des entités nommées.

{ "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>" } }

Données de sortie de reconnaissance d'entité nommée

Une fois que vous avez créé une tâche d'étiquetage par reconnaissance d'entité nommée, vos données de sortie seront situées dans le compartiment Amazon S3 spécifié dans le S3OutputPath paramètre lors de l'utilisation du API ou dans le champ Emplacement du jeu de données de sortie de la section Vue d'ensemble des tâches de la console.

Pour en savoir plus sur le fichier manifeste de sortie généré par Ground Truth et sur la structure de fichier que ce dernier utilise pour stocker vos données de sortie, veuillez consulter Données de sortie.