保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2

In 第1部 このシリーズでは、インテリジェント ドキュメント処理 (IDP) について説明し、IDP が保険業界で請求処理のユース ケースを加速する方法について説明しました。 AWS AI サービスを使用して請求書類をサポート書類とともに正確に分類する方法について説明しました。 また、フォーム、表、または請求書、領収書、ID ドキュメントなどの特殊なドキュメントなど、保険金請求パッケージ内のさまざまな種類のドキュメントを抽出する方法についても説明しました。 時間がかかり、エラーが発生しやすく、費用がかかり、大規模な処理が困難な従来のドキュメント プロセスの課題と、AWS AI サービスを使用して IDP パイプラインの実装を支援する方法を調べました。

この投稿では、ドキュメントの抽出、クエリ、強化のための高度な IDP 機能について説明します。 また、請求データから抽出された構造化された情報をさらに使用して、AWS Analytics と視覚化サービスを使用して洞察を得る方法についても検討します。 AWS Analytics サービスを使用して、IDP から抽出された構造化データが不正請求に対してどのように役立つかを強調します。

ソリューションの概要

次の図は、AWS AI サービスを使用した IDP のフェーズを示しています。 パート 1 では、IDP ワークフローの最初の XNUMX つのフェーズについて説明しました。 この投稿では、IDP と AWS Analytics サービスの統合を含む、抽出ステップと残りのフェーズについて詳しく説明します。

これらの分析サービスを使用して、さらなる洞察と視覚化を行い、IDP からの構造化され正規化されたデータを使用して不正請求を検出します。 次の図は、ソリューション アーキテクチャを示しています。

IDP アーキテクチャ図

この投稿で説明するフェーズでは、次の主要なサービスを使用します。

  • アマゾンコンプリヘンドメディカル HIPAA 対応の自然言語処理 (NLP) サービスであり、事前にトレーニングされた機械学習 (ML) モデルを使用して、処方箋、手順、診断などの医療テキストから健康データを理解して抽出します。
  • AWSグルー は AWS Analytics サービス スタックの一部であり、分析、ML、およびアプリケーション開発のためのデータの検出、準備、結合を容易にするサーバーレス データ統合サービスです。
  • Amazonレッドシフト Analytics スタックの別のサービスです。 Amazon Redshift は、クラウド内の完全マネージド型のペタバイト規模のデータ ウェアハウス サービスです。

前提条件

始める前に、以下を参照してください。 第1部 IDP を使用した保険のユース ケースの概要と、データの取得と分類の段階に関する詳細については、 を参照してください。

コード サンプルの詳細については、 GitHubレポ。

抽出段階

パート 1 では、Amazon Textract API を使用してドキュメントからフォームやテーブルなどの情報を抽出する方法と、請求書や ID ドキュメントを分析する方法について説明しました。 この投稿では、Amazon Comprehend を使用して抽出フェーズを強化し、カスタム ユース ケースに固有のデフォルト エンティティとカスタム エンティティを抽出します。

保険会社は、患者の退院を要約した手紙など、保険金請求アプリケーションで密度の高いテキストに遭遇することがよくあります (次の例の画像を参照)。 このような明確な構造のないドキュメントから情報を自動的に抽出することは困難な場合があります。 これに対処するために、次の方法を使用して、ドキュメントから重要なビジネス情報を抽出できます。

退院概要のサンプル

Amazon Comprehend DetectEntities API を使用してデフォルトのエンティティを抽出する

サンプルの医療転写ドキュメントで次のコードを実行します。

comprehend = boto3.client('comprehend') 

response = comprehend.detect_entities( Text=text, LanguageCode='en')

#print enitities from the response JSON

for entity in response['Entities']:
    print(f'{entity["Type"]} : {entity["Text"]}')

次のスクリーンショットは、入力テキストで識別されたエンティティのコレクションを示しています。 この記事の目的のために、出力は短縮されています。 を参照してください。 GitHubレポ エンティティの詳細なリストについては。

保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

Amazon Comprehend カスタム エンティティ認識を使用してカスタム エンティティを抽出する

からの応答 DetectEntities API にはデフォルトのエンティティが含まれています。 ただし、患者の名前などの特定のエンティティ値を知ることに関心があります (既定のエンティティによって示されます PERSON)、または患者の ID (デフォルトのエンティティで示される) OTHER)。 これらのカスタム エンティティを認識するために、Amazon Comprehend カスタム エンティティ認識モデルをトレーニングします。 でカスタム エンティティ認識モデルをトレーニングおよびデプロイする方法に関する包括的な手順に従うことをお勧めします。 GitHubレポ。

カスタム モデルをデプロイしたら、ヘルパー関数を使用できます get_entities() のようなカスタム エンティティを取得する PATIENT_NAME & PATIENT_D API 応答から:

def get_entities(text):
try:
    #detect entities
    entities_custom = comprehend.detect_entities(LanguageCode="en",
                      Text=text, EndpointArn=ER_ENDPOINT_ARN) 
    df_custom = pd.DataFrame(entities_custom["Entities"], columns = ['Text',  
                'Type', 'Score'])
    df_custom = df_custom.drop_duplicates(subset=['Text']).reset_index()
    return df_custom
except Exception as e:
    print(e)

# call the get_entities() function 
response = get_entities(text) 
#print the response from the get_entities() function
print(response)

次のスクリーンショットは、結果を示しています。

保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

濃縮段階

ドキュメント エンリッチメント フェーズでは、医療関連のドキュメントに対してエンリッチメント機能を実行して、貴重な洞察を引き出します。 次のタイプのエンリッチメントを調べます。

  • ドメイン固有の言語を抽出する – Amazon Comprehend Medical を使用して、ICD-10-CM、RxNorm、SNOMED CT などの医療固有のオントロジーを抽出します
  • 機密情報の秘匿化 – Amazon Comprehend を使用して個人を特定できる情報 (PII) を編集し、Amazon Comprehend Medical を使用して保護された医療情報 (PHI) を編集します

構造化されていない医療テキストから医療情報を抽出する

医療提供者のメモや臨床試験のレポートなどのドキュメントには、高密度の医療テキストが含まれています。 保険金請求会社は、この高密度テキストから抽出された健康情報間の関係を特定し、それらを ICD-10-CM、RxNorm、SNOMED CT コードなどの医療オントロジーにリンクする必要があります。 これは、保険会社が請求処理を加速および簡素化するために、請求の取得、検証、承認のワークフローを自動化するのに非常に役立ちます。 Amazon Comprehend Medical の使用方法を見てみましょう InferICD10CM 可能性のある病状をエンティティとして検出し、それらをコードにリンクする API:

cm_json_data = comprehend_med.infer_icd10_cm(Text=text)

print("nMedical codingn========")

for entity in cm_json_data["Entities"]:
      for icd in entity["ICD10CMConcepts"]:
           description = icd['Description']
           code = icd["Code"]
           print(f'{description}: {code}')

Amazon Textract から渡すことができる入力テキストの場合 DetectDocumentText API、 InferICD10CM API は次の出力を返します (出力は簡潔にするために省略されています)。

構造化されていない医療テキストから医療情報を抽出する

同様に、Amazon Comprehend Medical を使用できます。 InferRxNorm 医薬品を識別するための API と InferSNOMEDCT 医療関連の保険ドキュメント内の医療エンティティを検出するための API。

PII および PHI リダクションを実行する

保険金請求パッケージには、PII データと PHI データの両方が含まれているため、多くのプライバシー コンプライアンスと規制が必要です。 保険会社は、証券番号や患者の名前などの情報を編集することで、コンプライアンスのリスクを軽減できます。

患者の退院概要の例を見てみましょう。 Amazon Comprehend を使用します DetectPiiEntities ドキュメント内の PII エンティティを検出し、これらのエンティティを編集して患者のプライバシーを保護するための API:

resp = call_textract(input_document = f's3://{data_bucket}/idp/textract/dr-note-sample.png')
text = get_string(textract_json=resp, output_type=[Textract_Pretty_Print.LINES])

# call Amazon Comprehend Detect PII Entities API
entity_resp = comprehend.detect_pii_entities(Text=text, LanguageCode="en") 

pii = []
for entity in entity_resp['Entities']:
      pii_entity={}
      pii_entity['Type'] = entity['Type']
      pii_entity['Text'] = text[entity['BeginOffset']:entity['EndOffset']]
      pii.append(pii_entity)
print(pii)

からの応答で次の PII エンティティを取得します。 detect_pii_entities() API:

detect_pii_entities() API からの応答

次に、ドキュメントのエンティティの境界ボックス ジオメトリを利用して、ドキュメントから検出された PII エンティティを編集できます。 そのために、私たちはと呼ばれるヘルパーツールを使用します amazon-textract-overlayer。 詳細については、を参照してください。 Textract-オーバーレイヤー. 次のスクリーンショットは、編集前後のドキュメントを比較しています。

保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

Amazon Comprehend に似ている DetectPiiEntities API、また使用することができます DetectPHI 検査中の臨床テキストの PHI データを検出するための API。 詳細については、次を参照してください。 PHI を検出します。

レビューと検証フェーズ

ドキュメントのレビューと検証の段階では、以前の段階でパッケージ内のドキュメントから収集されたすべての情報があるため、請求パッケージがビジネスの要件を満たしているかどうかを確認できます。 これは、パッケージをダウンストリーム アプリケーションに送信する前に、すべてのフィールドを確認して検証できる人間をループに導入するか、低額の請求の自動承認プロセスを導入することで実現できます。 使用できます Amazon拡張AI (Amazon A2I) を使用して、保険金請求処理のための人によるレビュー プロセスを自動化します。

保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

IDP の AI サービスを使用して請求処理から必要なすべてのデータを抽出して正規化したので、ソリューションを拡張して AWS Glue や Amazon Redshift などの AWS Analytics サービスと統合し、追加のユースケースを解決し、さらなる分析と視覚化を提供できます。

不正な保険金請求の検出

この投稿では、抽出および処理されたデータがデータ レイクに保存され、ML を使用して不正な保険請求を検出するために使用されるサーバーレス アーキテクチャを実装します。 を使用しております Amazon シンプル ストレージ サービス (Amazon S3) に処理されたデータを保存します。 次に、使用できます AWSグルー or アマゾンEMR データをクレンジングし、追加のフィールドを追加して、レポートと ML で使用できるようにします。 その後、使用します Amazon Redshift ML 不正検出 ML モデルを構築します。 最後に、次を使用してレポートを作成します。 アマゾンクイックサイト データへの洞察を得るために。

Amazon Redshift 外部スキーマのセットアップ

この例では、 サンプルデータセット ETL (抽出、変換、ロード) プロセスの出力をエミュレートし、AWS Glue データカタログをメタデータカタログとして使用します。 まず、という名前のデータベースを作成します。 idp_demo Data Catalog で、Amazon Redshift で呼び出される外部スキーマ idp_insurance_demo (次のコードを参照)。 私たちは AWS IDおよびアクセス管理 Amazon S3 にアクセスするためのアクセス許可を Amazon Redshift クラスターに付与する (IAM) ロール アマゾンセージメーカー. この IAM ロールを最小限の権限で設定する方法の詳細については、次を参照してください。 Amazon Redshift ML 管理のためのクラスター化と設定のセットアップ.

CREATE EXTERNAL SCHEMA idp_insurance_demo
FROM DATA CATALOG
DATABASE 'idp_demo' 
IAM_ROLE '<<>>'
CREATE EXTERNAL DATABASE IF NOT EXISTS;

Amazon Redshift 外部テーブルを作成する

次のステップは、ファイルが配置されている S3 の場所を参照する外部テーブルを Amazon Redshift に作成することです。 この場合、ファイルはカンマ区切りのテキスト ファイルです。 また、テーブル プロパティ セクションで設定できるファイルからヘッダー行をスキップしたいと考えています。 次のコードを参照してください。

create external table idp_insurance_demo.claims(id INTEGER,
date_of_service date,
patients_address_city VARCHAR,
patients_address_state VARCHAR,
patients_address_zip VARCHAR,
patient_status VARCHAR,
insured_address_state VARCHAR,
insured_address_zip VARCHAR,
insured_date_of_birth date,
insurance_plan_name VARCHAR,
total_charges DECIMAL(14,4),
fraud VARCHAR,
duplicate varchar,
invalid_claim VARCHAR
)
row format delimited
fields terminated by ','
stored as textfile
location '<<>>'
table properties ( 'skip.header.line.count'='1');

トレーニング データセットとテスト データセットを作成する

外部テーブルを作成したら、ML 用のデータセットをトレーニング セットとテスト セットに分割して準備します。 という名前の新しい外部テーブルを作成します claim_trainこれは、クレーム テーブルの ID <= 85000 のすべてのレコードで構成されます。 これは、ML モデルをトレーニングするトレーニング セットです。

CREATE EXTERNAL TABLE
idp_insurance_demo.claims_train
row format delimited
fields terminated by ','
stored as textfile
location '<<>>/train'
table properties ( 'skip.header.line.count'='1')
AS select * from idp_insurance_demo.claims where id <= 850000

という別の外部テーブルを作成します claim_test ID が 85000 を超えるすべてのレコードで構成され、ML モデルをテストするテスト セットになります。

CREATE EXTERNAL TABLE
idp_insurance_demo.claims_test
row format delimited
fields terminated by ','
stored as textfile
location '<<>>/test'
table properties ( 'skip.header.line.count'='1')
AS select * from idp_insurance_demo.claims where id > 850000

Amazon Redshift ML で ML モデルを作成する

を使用してモデルを作成します。 モデルを作成 コマンド (次のコードを参照)。 から関連する列を選択します claims_train 不正な取引を判断できるテーブル。 このモデルの目標は、 fraud 桁; したがって、 fraud 予測対象として追加されます。 モデルがトレーニングされると、次の名前の関数が作成されます。 insurance_fraud_model. この関数は、SQL ステートメントの実行中に推論に使用され、 fraud 新しいレコードの列。

CREATE MODEL idp_insurance_demo.insurance_fraud_model
FROM (SELECT 
total_charges ,
fraud ,
duplicate,
invalid_claim
FROM idp_insurance_demo.claims_train
)
TARGET fraud
FUNCTION insurance_fraud_model
IAM_ROLE '<<>>'
SETTINGS (
S3_BUCKET '<<>>'
);

ML モデルの指標を評価する

モデルを作成したら、クエリを実行してモデルの精度を確認できます。 私たちは、 insurance_fraud_model の値を予測する関数 fraud 新しいレコードの列。 で次のクエリを実行します。 claims_test 混同行列を作成するテーブル:

SELECT 
fraud,
idp_insurance_demo.insurance_fraud_model (total_charges ,duplicate,invalid_claim ) as fraud_calculcated,
count(1)
FROM idp_insurance_demo.claims_test
GROUP BY fraud , fraud_calculcated;

ML モデルを使用して不正行為を検出する

新しいモデルを作成した後、新しい請求データがデータ ウェアハウスまたはデータ レイクに挿入されると、 insurance_fraud_model 不正取引を計算する関数。 これを行うには、最初に新しいデータを一時テーブルにロードします。 次に、 insurance_fraud_model を計算する関数 fraud 新しいトランザクションごとにフラグを設定し、データをフラグとともに最終テーブルに挿入します。 claims 列で番号の横にあるXをクリックします。

請求データを視覚化する

データが Amazon Redshift で利用可能になったら、QuickSight を使用して視覚化を作成できます。 その後、QuickSight ダッシュボードをビジネス ユーザーやアナリストと共有できます。 QuickSight ダッシュボードを作成するには、まず QuickSight で Amazon Redshift データセットを作成する必要があります。 手順については、を参照してください。 データベースからのデータセットの作成.

データセットを作成したら、そのデータセットを使用して QuickSight で新しい分析を作成できます。 以下は、作成したサンプル レポートの一部です。

  • でグループ化された、州別の請求の総数 fraud フィールド – このグラフは、特定の州でのトランザクションの総数と比較した不正なトランザクションの割合を示しています。
  • によってグループ化された、請求の合計ドル価値の合計 fraud フィールド – このグラフは、特定の州での取引の合計金額と比較した、不正な取引の金額の割合を示しています。
  • 保険会社ごとにグループ化されたトランザクションの合計数 fraud フィールド – このグラフは、保険会社ごとに提出された請求の数と、そのうちの何件が不正であるかを示しています。

• 不正分野別にグループ化された、保険会社ごとのトランザクションの総数

  • 米国の地図に表示された州ごとの不正取引の合計額 – このグラフは、不正な取引のみを示しており、それらの取引の合計料金を州ごとに地図上に表示しています。 青の濃い色合いは、合計料金が高いことを示します。 これをその州内の都市ごとにさらに分析し、その都市の郵便番号を分析して、傾向をよりよく理解することができます。

保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

クリーンアップ

今後 AWS アカウントに料金が発生しないようにするには、セットアップでプロビジョニングしたリソースを削除します。 クリーンアップセクション 私たちのレポで。

まとめ

この 2 部構成のシリーズでは、ML の経験がほとんどまたはまったくなくても、エンドツーエンドの IDP パイプラインを構築する方法を見てきました。 保険業界での請求処理のユースケースと、IDP が Amazon Textract、Amazon Comprehend、Amazon Comprehend Medical、Amazon A1I などのサービスを使用してこのユースケースを自動化する方法を調べました。 パート 2 では、AWS AI サービスを使用してドキュメントを抽出する方法を示しました。 パート XNUMX では、抽出フェーズを拡張し、データ エンリッチメントを実行しました。 最後に、さらなる分析のために IDP から抽出した構造化データを拡張し、AWS Analytics サービスを使用して不正請求を検出するための視覚化を作成しました。

のセキュリティ セクションを確認することをお勧めします。 アマゾンテキストラック, Amazon Comprehend, アマゾンA2I ドキュメンテーションおよび提供されたガイドラインに従うこと。 ソリューションの価格について詳しくは、次の価格の詳細を確認してください。 アマゾンテキストラック, Amazon Comprehend, アマゾンA2I.


著者について

著者チンマイ・レーン アマゾン ウェブ サービスの AI/ML スペシャリスト ソリューション アーキテクトです。 彼女は応用数学と機械学習に情熱を注いでいます。 彼女は、AWS の顧客向けのインテリジェントなドキュメント処理ソリューションの設計に重点を置いています。 仕事以外では、サルサとバチャータ ダンスを楽しんでいます。


保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。
ウダイナラヤナン
AWS の分析スペシャリスト ソリューション アーキテクトです。 彼は、顧客が複雑なビジネス上の課題に対する革新的なソリューションを見つける手助けをすることを楽しんでいます。 彼の主な重点分野は、データ分析、ビッグデータ システム、および機械学習です。 余暇には、スポーツをしたり、テレビ番組をどんちゃん騒ぎしたり、旅行を楽しんでいます。


保険業界における AWS AI および分析サービスを使用したインテリジェントなドキュメント処理: パート 2 PlatoBlockchain Data Intelligence。 垂直検索。 あい。
ソナリ・サフ
アマゾン ウェブ サービスのインテリジェント ドキュメント処理 AI/ML ソリューション アーキテクト チームを率いています。 彼女は情熱的な技術愛好家であり、イノベーションを使用して複雑な問題を解決するために顧客と協力することを楽しんでいます。 彼女の主な専門分野は、インテリジェントなドキュメント処理のための人工知能と機械学習です。

タイムスタンプ:

より多くの AWS機械学習