命名实体识别 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

命名实体识别

要从非结构化文本中提取信息并将其分类为预定义类别,请使用 Amazon SageMaker Ground Truth 命名实体识别 (NER) 标记任务。传统上,NER 涉及筛选文本数据来定位名词短语(称为命名实体),并使用标签对每个短语进行分类,例如,“人”、“组织”或“品牌”。您可以扩展此任务以标记更长的文本跨度,并使用您指定的预定义标签对这些序列进行分类。

当负责命名实体识别标签作业时,工作人员会将标签应用于较大文本块中的特定单词或短语。他们选择一个标签,然后通过使用光标突出显示标签所应用的文本部分来应用该标签。工作人员不能对同一文本应用多个标签,标签也不能重叠。

您可以使用 Ground Truth 控制台的 Amazon SageMaker 部分或 CreateLabelingJob 操作创建命名实体识别标记作业。

重要

如果您手动创建输入清单文件,请使用 "source" 标识要标记的文本。有关更多信息,请参阅输入数据

创建命名实体识别标记作业(控制台)

您可以按照 创建标记作业(控制台)中的说明了解如何在 SageMaker 控制台中创建命名实体识别标记作业。在步骤 10 中,从任务类别下拉菜单中选择文本,然后选择命名实体识别作为任务类型。

Ground Truth 为标记任务提供类似于以下内容的工作人员 UI。使用控制台创建标记作业时,需要指定说明,以帮助工作人员完成工作人员可以从中选择的作业和标签。

创建命名实体识别标记作业 (API)

使用 SageMaker API 操作 CreateLabelingJob 创建命名实体识别标记作业。该 API 为所有 AWS 开发工具包定义了该操作。要查看此操作支持的语言特定SDKs的列表,请查看 的请参阅部分CreateLabelingJob

请按照创建标记作业 (API)中的说明进行操作,并在配置请求时执行以下操作:

  • 此任务类型的注释前 Lambda 函数以 PRE-NamedEntityRecognition 结尾。要查找您的区域的注释前 Lambda ARN,请参阅 PreHumanTaskLambdaArn

  • 此任务类型的注释合并 Lambda 函数以 ACS-NamedEntityRecognition 结尾。要查找您所在区域的注释合并 Lambda ARN,请参阅 AnnotationConsolidationLambdaArn

以下是在 区域中创建标记作业的 AWS Python 开发工具包 (Boto3 请求美国东部(弗吉尼亚北部)的示例。所有红色参数都应替换为您的规范和资源。

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': { 'UiTemplateS3Uri': 's3://bucket/path/worker-task-template.html' }, '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': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

为命名实体识别标记作业提供模板

如果要使用 API 创建标记作业,必须在 UiTemplateS3Uri 中提供工作人员任务模板。复制并修改以下模板。仅修改 short-instructions full-instructions header

将此模板上传到 S3,并在 UiTemplateS3Uri 中为此文件提供 S3 URI。

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-entity-annotation name="crowd-entity-annotation" header="please classify" labels="{{ task.input.labels | to_json | escape }}" text="{{ task.input.taskObject }}" > <full-instructions header="Named entity recognition instructions"> <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> </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-entity-annotation>

命名实体识别输出数据

创建命名实体识别标记作业后,当您使用 API 时,输出数据将位于 Amazon S3 参数中指定的 S3OutputPath 存储桶中,或者位于 控制台的 Job overview (作业概述) 部分的 Output dataset location (输出数据集位置) 字段中。

要详细了解 Ground Truth 生成的输出清单文件以及 Ground Truth 用于存储输出数据的文件结构,请参阅输出数据