ステップ 3: エンティティ分析出力を Amazon Kendra メタデータとして書式設定する - Amazon Kendra

ステップ 3: エンティティ分析出力を Amazon Kendra メタデータとして書式設定する

Amazon Comprehend によって抽出されたエンティティを Amazon Kendra インデックスに必要なメタデータ形式に変換するには、Python 3 スクリプトを実行します。変換の結果は、Amazon S3 バケット内の metadata フォルダに保存されます。

Amazon Kendra メタデータの形式と構造の詳細については、S3 ドキュメントメタデータを参照してください。

Amazon Comprehend の出力をダウンロードして抽出する

Amazon Comprehend エンティティ分析出力を書式設定するには、まず Amazon Comprehend エンティティ分析 output.tar.gz アーカイブをダウンロードして、エンティティ分析ファイルを抽出する必要があります。

  1. Amazon Comprehend コンソールのナビゲーションペインで、[Analysis jobs] (分析ジョブ) に移動します。

  2. エンティティ分析ジョブ data-entities-analysis を選択します。

  3. [Output] (出力) で、[Output data location] (出力データの場所) の隣に表示されるリンクをクリックします。これにより、S3 バケットの output.tar.gz アーカイブにリダイレクトします。

  4. [Overview] (概要) タブで、[Download] (ダウンロード) を選択します。

    ヒント

    すべての Amazon Comprehend 分析ジョブの出力は同じ名前になります。アーカイブの名前を変更すると、アーカイブの追跡が容易になります。

  5. ダウンロードした Amazon Comprehend ファイルを解凍してデバイスに抽出します。

  1. エンティティ分析ジョブの結果を含む S3 バケット内の Amazon Comprehend 自動生成フォルダの名前にアクセスするには、[describe-entities-detection-job] コマンドを使用します。

    Linux
    aws comprehend describe-entities-detection-job \ --job-id entities-job-id \ --region aws-region

    コードの説明は以下のとおりです。

    macOS
    aws comprehend describe-entities-detection-job \ --job-id entities-job-id \ --region aws-region

    コードの説明は以下のとおりです。

    Windows
    aws comprehend describe-entities-detection-job ^ --job-id entities-job-id ^ --region aws-region

    コードの説明は以下のとおりです。

  2. エンティティのジョブの説明の OutputDataConfig オブジェクトから、テキストエディタで comprehend-S3uri としての S3Uri 値をコピーおよび保存します。

    注記

    S3Uri 値は、s3://amzn-s3-demo-bucket/.../output/output.tar.gz のような形式になります。

  3. エンティティ出力アーカイブをダウンロードするには、[copy] コマンドを使用します。

    Linux
    aws s3 cp s3://amzn-s3-demo-bucket/.../output/output.tar.gz path/output.tar.gz

    コードの説明は以下のとおりです。

    • s3://amzn-s3-demo-bucket/.../output/output.tar.gz は、comprehend-S3uri として保存した S3Uri 値です。

    • path/ は、出力を保存するローカルディレクトリです。

    macOS
    aws s3 cp s3://amzn-s3-demo-bucket/.../output/output.tar.gz path/output.tar.gz

    コードの説明は以下のとおりです。

    • s3://amzn-s3-demo-bucket/.../output/output.tar.gz は、comprehend-S3uri として保存した S3Uri 値です。

    • path/ は、出力を保存するローカルディレクトリです。

    Windows
    aws s3 cp s3://amzn-s3-demo-bucket/.../output/output.tar.gz path/output.tar.gz

    コードの説明は以下のとおりです。

    • s3://amzn-s3-demo-bucket/.../output/output.tar.gz は、comprehend-S3uri として保存した S3Uri 値です。

    • path/ は、出力を保存するローカルディレクトリです。

  4. エンティティ出力を抽出するには、ターミナルウィンドウを開き、以下のコマンドを実行します。

    Linux
    tar -xf path/output.tar.gz -C path/

    コードの説明は以下のとおりです。

    • path/ は、ローカルデバイス上にダウンロードした output.tar.gz アーカイブへのファイルパスです。

    macOS
    tar -xf path/output.tar.gz -C path/

    コードの説明は以下のとおりです。

    • path/ は、ローカルデバイス上にダウンロードした output.tar.gz アーカイブへのファイルパスです。

    Windows
    tar -xf path/output.tar.gz -C path/

    コードの説明は以下のとおりです。

    • path/ は、ローカルデバイス上にダウンロードした output.tar.gz アーカイブへのファイルパスです。

このステップを完了すると、output というファイルと Amazon Comprehend 識別エンティティのリストがデバイス上に作成されます。

S3 バケットに出力をアップロードする

Amazon Comprehend エンティティ分析ファイルをダウンロードして抽出した後、抽出した output ファイルを Amazon S3 バケットにファイルへアップロードします。

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. [Buckets] (バケット) で、バケットの名前をクリックし、その後 [Upload] (アップロード) をクリックします。

  3. [Files and folders] (ファイルとフォルダ) で、[Add files] (ファイルを追加) を選択します。

  4. ダイアログボックスで、デバイスの抽出した output ファイルに移動して選択し、[Open] (開く) をクリックします。

  5. [Destination] (送信先)、[Permissions] (アクセス許可)、および [Properties] (プロパティ) はデフォルト設定のままにしておきます。

  6. [Upload] (アップロード) を選択します。

  1. 抽出したoutput ファイルをバケットにアップロードするには、[copy] コマンドを使用します。

    Linux
    aws s3 cp path/output s3://amzn-s3-demo-bucket/output

    コードの説明は以下のとおりです。

    • path/ は、抽出した output ファイルへのローカルファイルパス、

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    macOS
    aws s3 cp path/output s3://amzn-s3-demo-bucket/output

    コードの説明は以下のとおりです。

    • path/ は、抽出した output ファイルへのローカルファイルパス、

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    Windows
    aws s3 cp path/output s3://amzn-s3-demo-bucket/output

    コードの説明は以下のとおりです。

    • path/ は、抽出した output ファイルへのローカルファイルパス、

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

  2. output ファイルが S3 バケットに正常にアップロードされたことを確認するには、[list] コマンドを使用してその内容をチェックします。

    Linux
    aws s3 ls s3://amzn-s3-demo-bucket/

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    macOS
    aws s3 ls s3://amzn-s3-demo-bucket/

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    Windows
    aws s3 ls s3://amzn-s3-demo-bucket/

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

Amazon Kendra メタデータ形式への出力変換

Amazon Comprehend 出力を Amazon Kendra メタデータに変換するには、Python 3 スクリプトを実行します。コンソールを使用している場合は、このステップで AWS CloudShell を使用します。

  1. デバイス上の converter.py.zip 圧縮ファイルをダウンロードします。

  2. Python 3 ファイル converter.py を抽出します。

  3. [AWS Management Console] ( マネジメントコンソール) にサインインして AWS リージョンが S3 バケットと Amazon Comprehend 分析ジョブと同じリージョンに設定されていることを確認します。

  4. [AWS CloudShell アイコン] を選択するか、上部のナビゲーションバーの [検索] ボックスに「AWS CloudShell」と入力して環境を起動します。

    注記

    AWS CloudShell が新しいブラウザウィンドウで初めて起動すると、ウェルカムパネルが表示され、主要な機能が一覧表示されます。このパネルを閉じて、コマンドプロンプトが表示されると、シェルが対話できる状態になります。

  5. ターミナルの準備が完了したら、ナビゲーションペインで [Actions] (アクション) を選択し、メニューから [Upload file] (ファイルをアップロードする) を選択します。

  6. 開いたダイアログボックスで、[Select file] (ファイルを選択) をクリックし、お使いのデバイスからダウンロードした Python 3 ファイル converter.py を選択します。[Upload] (アップロード) を選択します。

  7. AWS CloudShell 環境で、次のコマンドを入力します。

    python3 converter.py
  8. シェルインターフェイスが [S3 バケットの名前を入力する] プロンプトを表示したら、S3 バケットの名前を入力し、[Enter] キーを押します。

  9. シェルインターフェイスが [Enter the full filepath to your Comprehend output file] (Comprehend 出力ファイルへの完全なファイルパスを入力する) プロンプトを表示したら、output と入力し、[Enter] キーを押します。

  10. シェルインターフェイスが [Enter the full filepath to your metadata folder] (メタデータフォルダへの完全なファイルパスを入力する) プロンプトを表示したら、metadata/ と入力し、[Enter] キーを押します。

重要

メタデータを正しく書式設定するには、ステップ 8~10 の入力値が正確である必要があります。

  1. Python 3 ファイル converter.py をダウンロードするには、ターミナルウィンドウを開き、以下のコマンドを実行します。

    Linux
    curl -o path/converter.py.zip https://docs.aws.amazon.com/kendra/latest/dg/samples/converter.py.zip

    コードの説明は以下のとおりです。

    • path/ は、圧縮フォルダを保存する場所へのファイルパスです。

    macOS
    curl -o path/converter.py.zip https://docs.aws.amazon.com/kendra/latest/dg/samples/converter.py.zip

    コードの説明は以下のとおりです。

    • path/ は、圧縮フォルダを保存する場所へのファイルパスです。

    Windows
    curl -o path/converter.py.zip https://docs.aws.amazon.com/kendra/latest/dg/samples/converter.py.zip

    コードの説明は以下のとおりです。

    • path/ は、圧縮フォルダを保存する場所へのファイルパスです。

  2. Python 3 ファイル を抽出するには、ターミナルウィンドウを開き、以下のコマンドを実行します。

    Linux
    unzip path/converter.py.zip -d path/

    コードの説明は以下のとおりです。

    • path/ は、保存した converter.py.zip へのファイルパスです。

    macOS
    unzip path/converter.py.zip -d path/

    コードの説明は以下のとおりです。

    • path/ は、保存した converter.py.zip へのファイルパスです。

    Windows
    tar -xf path/converter.py.zip -C path/

    コードの説明は以下のとおりです。

    • path/ は、保存した converter.py.zip へのファイルパスです。

  3. 次のコマンドを実行して、Boto3 がお使いのデバイスにインストールされていることを確認します。

    Linux
    pip3 show boto3
    macOS
    pip3 show boto3
    Windows
    pip3 show boto3
    注記

    Boto3 がインストールされていない場合は、pip3 install boto3 を実行してインストールしてください。

  4. Python 3 スクリプトを実行して output ファイルを変換し、次のコマンドを実行します。

    Linux
    python path/converter.py

    コードの説明は以下のとおりです。

    • path/ は、保存した converter.py.zip へのファイルパスです。

    macOS
    python path/converter.py

    コードの説明は以下のとおりです。

    • path/ は、保存した converter.py.zip へのファイルパスです。

    Windows
    python path/converter.py

    コードの説明は以下のとおりです。

    • path/ は、保存した converter.py.zip へのファイルパスです。

  5. AWS CLI が Enter the name of your S3 bucket プロンプトを表示した場合、S3 バケットの名前を入力し、[Enter] キーを押します。

  6. AWS CLI が Enter the full filepath to your Comprehend output file プロンプトを表示した場合、output と入力し、[Enter] キーを押します。

  7. AWS CLI が Enter the full filepath to your metadata folder プロンプトを表示した場合、metadata/ と入力し、[Enter] キーを押します。

重要

メタデータを正しく書式設定するには、ステップ 5~7 の入力値が正確である必要があります。

このステップが完了すると、書式設定されたメタデータは S3 バケット内の metadata フォルダ内に置かれます。

Amazon S3 バケットをクリーンアップする

Amazon Kendra インデックスはバケットに保存されているすべてのファイルを同期するため、検索結果の重複を防ぐため、Amazon S3 バケットをクリーンアップすることをお勧めします。

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. [Buckets] (バケット) で、バケットを選択し、Amazon Comprehend エンティティ分析出力フォルダ、Amazon Comprehend エンティティ分析 .temp ファイル、および抽出された Amazon Comprehend output ファイルを選択します。

  3. [Overview] (概要) タブから [Delete] (削除) を選択します。

  4. [Delete objects] (オブジェクトの削除) で、[Permanently delete objects?] (オブジェクトを完全に削除しますか) を選択し、テキスト入力フィールドに permanently delete を入力します。

  5. [Delete objects] (オブジェクトの削除) を選択します。

  1. S3 バケット内の data ファイルと metadata フォルダをすべて削除するには、AWS CLI で [remove] コマンドを使用します。

    Linux
    aws s3 rm s3://amzn-s3-demo-bucket/ --recursive --exclude "data/*" --exclude "metadata/*"

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    macOS
    aws s3 rm s3://amzn-s3-demo-bucket/ --recursive --exclude "data/*" --exclude "metadata/*"

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    Windows
    aws s3 rm s3://amzn-s3-demo-bucket/ --recursive --exclude "data/*" --exclude "metadata/*"

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

  2. オブジェクトが S3 バケットから正常に削除されたことを確認するには、[list] コマンドを使用してその内容をチェックします。

    Linux
    aws s3 ls s3://amzn-s3-demo-bucket/

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    macOS
    aws s3 ls s3://amzn-s3-demo-bucket/

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

    Windows
    aws s3 ls s3://amzn-s3-demo-bucket/

    コードの説明は以下のとおりです。

    • amzn-s3-demo-bucket は、ご使用の S3 バケットの名前です。

このステップが完了すると、Amazon Comprehend エンティティ分析出力が Amazon Kendra メタデータに変換されます。これで、Amazon Kendra インデックスを作成する準備ができました。