Amazon Web Services ブログ

Amazon Comprehend Medical のバッチモード処理の導入

AWS re:Invent 2018 でローンチした Amazon Comprehend Medical は HIPAA に対応した自然言語処理サービスで、機械学習を使用して構造化されていないテキストから関連する医療情報の抽出を簡単に行うことができます。

たとえば、ロシュ・ダイアグノスティックスFred Hutchinson Cancer Research Center などの顧客企業は Amazon Comprehend Medical を使って、医師のメモ、臨床試験報告書、患者の健康記録といったさまざまな情報源から病状、投薬、投与量、含量、頻度などの情報を迅速​​かつ正確に抽出しています。また、これらのドキュメント内に存在する保護された医療情報 (PHI) を識別し、データ交換の前に匿名化することもできます。

以前のブログ投稿で、Amazon Comprehend Medical API を使って、単一のドキュメントでエンティティを抽出し、PHI を検出する方法をご紹介しました。本日は、この API が Amazon Simple Storage Service (S3) バケットに保存されたドキュメントのバッチ処理が可能になったことをお知らせします。それでは、デモを始めましょう。

バッチモード API の導入
まず最初にデータを取得して、バッチモードをテストする必要があります。MT Samples は匿名化された本物の医療記録をコレクションしたもので、無料での使用と配布が可能です。いくつかのトランスクリプトを選択し、それらを Amazon Comprehend Medical が期待するシンプルな JSON 形式に変換しました。本番ワークフローでは、アプリケーションコードや などの分析サービスのいずれかを使って、ドキュメントを簡単にこの形式に変換できます。

{"Text": " VITAL SIGNS: The patient was afebrile.He is slightly tachycardic, 105,
but stable blood pressure and respiratory rate.GENERAL: The patient is in no distress.
Sitting quietly on the gurney.HEENT: Unremarkable.His oral mucosa is moist and well
hydrated.Lips and tongue look normal.Posterior pharynx is clear.NECK: Supple.His
trachea is midline.There is no stridor.LUNGS: Very clear with good breath sounds in
all fields.There is no wheezing.Good air movement in all lung fields.
CARDIAC: Without murmur.Slight tachycardia.ABDOMEN: Soft, nontender.
SKIN: Notable for a confluence erythematous, blanching rash on the torso as well
as more of a blotchy papular, macular rash on the upper arms.He noted some on his
buttocks as well.Remaining of the exam is unremarkable.}

次に、サンプルをサービスと同じリージョンにある Amazon S3 バケットにアップロードします。そうです、「esophagogastroduodenoscopy」は単語です (食道胃十二指腸内視鏡検査の意味)。

それでは AWS コンソールに移動して、エンティティ検出ジョブを作成してみましょう。残りのプロセスは PHI でも同様です。


サンプルは「input/」というプレフィックスの下に保存され、結果は「output/」というプレフィックスの下に示されるはずです。もちろん、ご希望であれば、別のバケットを使うこともできます。オプションで、AWS Key Management Service (KMS) を使用して、出力結果を暗号化することも可能です。簡潔にするために、ここでは KMS を設定しませんが、本番のワークフローでは考慮することをお勧めします。

また、AWS Identity and Access Management (IAM) でデータアクセスロールを提供し、関連する S3 バケットに Amazon Comprehend Medical がアクセスできるようにする必要があります。以前に AWS Identity and Access Management (IAM) で設定したロールを使用するか、Amazon Comprehend Medical コンソールのウィザードを使用してください。アクセス許可の詳細については、こちらのドキュメントをご参照ください。

次に、バッチジョブを作成し、完了するまで待ちます。数分でジョブは完了します。

結果は出力先にあります。入力ごとに 1 つの出力があり、エンティティとその関係について JSON 形式の説明が含まれています。

マニフェストには、処理されたドキュメントの数、データの総量などのグローバルな情報も含まれています。明確にするため、パスを編集しています。

{
"Summary" : {
    "Status" : "COMPLETED",
    "JobType" : "EntitiesDetection",
    "InputDataConfiguration" : {
        "Bucket" : "jsimon-comprehend-medical-uswest2",
        "Path" : "input/"
    },
    "OutputDataConfiguration" : {
        "Bucket" : "jsimon-comprehend-medical-uswest2",
        "Path" : ...
    },
    "InputFileCount" : 4,
    "TotalMeteredCharacters" : 3636,
    "UnprocessedFilesCount" : 0,
    "SuccessfulFilesCount" : 4,
    "TotalDurationSeconds" : 366,
    "SuccessfulFilesListLocation" : ... ,
    "UnprocessedFilesListLocation" : ...
}
}

S3 から「rash.json.out」オブジェクトを取得した後、JSON エディタを使ってそのコンテンツを表示できます。以下は、検出したエンティティの一部です。

もちろん、このデータは人間が読むためのものではありません。本番ワークフローでは、Amazon Comprehend Medical API が自動的に処理します。その後、結果は AWS バックエンドに保存され、ビジネスアプリケーションを通じて医療従事者が利用できるようになります。

今すぐご利用いただけます!
ご覧のように、Amazon Comprehend Medical は、極めて大規模なバッチモードでも非常に簡単に使用可能です。機械学習やインフラストラクチャの作業についての知識は、全く必要ありません。

このサービスは現在、次の AWS リージョンでご利用可能です。

  • 米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、
  • カナダ (中部)
  • 欧州 (アイルランド)、欧州 (ロンドン)、
  • アジアパシフィック (シドニー)

無料利用枠は、エンティティの抽出か PHI 検出のいずれかのサービスの使用を開始した最初の 3 か月間、25,000 単位のテキスト (250 万アルファベット文字) を対象としています。

いつものように、皆さまからののフィードバックをお待ちしています。Amazon Comprehend の AWS フォーラムに投稿するか、通常の AWS 連絡先に送信ください。

Julien