名前付きエンティティ認識を使用してテキスト情報を抽出する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

名前付きエンティティ認識を使用してテキスト情報を抽出する

非構造化テキストから情報を抽出し、事前定義されたカテゴリに分類するには、エンティティ認識 (NER) という名前の Amazon SageMaker Ground Truth ラベル付けタスクを使用します。従来、 NERでは、テキストデータをふるい分けして、名前付きエンティティ と呼ばれる名詞フレーズを見つけ、それぞれを「人」、「組織」、「ブランド」などのラベルで分類します。このタスクの対象をテキストのより長いスパンのラベル付けまで広げて、指定した定義済みのラベルでそれらのシーケンスを分類できます。Amazon SageMaker コンソールの Ground Truth セクションまたは CreateLabelingJobオペレーションを使用して、名前付きエンティティ認識ラベル付けジョブを作成できます。

固有表現認識のラベル付けジョブを使用すると、ワーカーは大きなテキストブロック内の特定の単語やフレーズにラベルを適用します。ラベルを選択し、カーソルを使用してラベルの適用先のテキストの部分を強調表示することで、ラベルを適用します。Ground Truth の固有表現認識ツールは、単一のハイライトに対して、重複する注釈、コンテキスト内ラベル選択、マルチラベル選択をサポートします。また、ワーカーはキーボードを使用してラベルをすばやく選択できます。

重要

入力マニフェストファイルを手動で作成する場合は、"source" を使用してラベル付けするテキストを指定します。詳細については、「入力データ」を参照してください。

固有表現認識ラベル付けジョブの作成 (コンソール)

指示に従ってラベル付けジョブの作成 (コンソール)、 SageMaker コンソールで名前付きエンティティ認識ラベル付けジョブを作成する方法について説明します。ステップ 10 で、 [Task category] (タスクカテゴリ) ドロップダウンメニューから [Text] (テキスト) を選択し、[Named entity recognition] (固有表現認識) タスクタイプを指定します。

Ground Truth には、ラベル付けタスク用の次のようなワーカー UI が用意されています。コンソールでラベル付けジョブを作成するときは、ワーカーがジョブを実行できる手順と、ワーカーが選択できるラベルを指定します。

SageMaker コンソールで名前付きエンティティ認識ラベル付けジョブを作成する方法を示す Gif。

名前付きエンティティ認識ラベル付けジョブを作成する (API)

オペレーション を使用して、名前付きエンティティ認識ラベル SageMaker API付けジョブを作成するにはCreateLabelingJob。これにより、すべての に対してこのオペレーションAPIが定義されます AWS SDKs。このオペレーションでSDKsサポートされている言語固有のリストを確認するには、「」の「」セクションを参照してくださいCreateLabelingJob

リクエストを設定する際には、「ラベル付けジョブを作成 (API)」の指示に従ったうえで、以下のことを実行してください。

  • このタスクタイプの注釈前 Lambda 関数は PRE-NamedEntityRecognition で終わります。リージョンの注釈前 Lambda PreHumanTaskLambdaArn を確認するには、ARN「」を参照してください。

  • このタスクタイプの注釈統合 Lambda 関数は ACS-NamedEntityRecognition で終わります。リージョンの注釈統合 Lambda を検索するには、ARN「」を参照してくださいAnnotationConsolidationLambdaArn

  • ARN には、以下を指定する必要がありますHumanTaskUiArn

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

    をラベル付けジョブの作成に使用するAWSリージョンaws-regionに置き換えます。例えば、ラベル付けジョブを米国西部 (北カリフォルニア) で作成する場合は、us-west-1 を使用します。

  • instructions パラメータを使用して、ラベルカテゴリの設定ファイルにワーカー向け指示書を指定します。shortInstruction および fullInstructionフィールドでは、文字列またはHTMLマークアップ言語を使用できます。詳細については、「ラベルカテゴリ設定ファイルにワーカー向け指示書を指定する」を参照してください。

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

以下は、米国東部 AWS SDK (バージニア北部) リージョンでラベル付けジョブを作成する 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': { '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' }, ] )

ラベルカテゴリ設定ファイルにワーカー向け指示書を指定する

CreateLabelingJobLabelCategoryConfigS3Uri パラメータで特定するラベルカテゴリ設定ファイルで、ワーカー向け指示書を指定する必要があります。これらの指示を使用して、ワーカーが実行するタスクの詳細を提示し、ツールを効率的に使用できるようにします。

instructions パラメータの shortInstructionfullInstruction をそれぞれ使用して、短い指示書と長い指示書を指定します。これらの指示書タイプの詳細については、「指示ページの作成」を参照してください。

以下は、固有表現認識ラベル付けジョブに使用できる指示を含むラベルカテゴリ設定ファイルの例です。

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

固有表現認識出力データ

名前付きエンティティ認識ラベル付けジョブを作成すると、 コンソールの ジョブ概要セクションの APIまたは 出力データセットの場所フィールドを使用するときに、 S3OutputPathパラメータで指定された Amazon S3 バケットに出力データが配置されます。

Ground Truth によって生成される出力マニフェストファイルと、Ground Truth が出力データを保存するために使用するファイル構造の詳細については、「ジョブ出力データのラベル付け」を参照してください。