Amazon Comprehend
テキストから感情分析、エンティティ抽出、トピックモデリングなどを行うフルマネージドの自然言語処理 (NLP) サービス
概要
Amazon Comprehend は、テキストデータに対して感情分析、エンティティ認識、キーフレーズ抽出、言語検出、トピックモデリングなどの自然言語処理を提供するフルマネージドサービスです。事前学習済みモデルによる即座の分析に加え、カスタム分類器やカスタムエンティティ認識器を独自データで訓練することで、業界固有の用語や分類体系に対応できます。医療分野に特化した Amazon Comprehend Medical では、臨床テキストから医薬品名、疾患名、検査値などの医療エンティティを高精度で抽出します。
事前学習モデルの活用と NLP タスクの使い分け
Comprehend が提供する NLP タスクは大きく 5 つに分類されます。感情分析 (Sentiment Analysis) はテキスト全体の感情を Positive、Negative、Neutral、Mixed の 4 カテゴリで判定し、各カテゴリの信頼度スコアを返します。エンティティ認識は人名、組織名、日付、数量などの固有表現を抽出し、キーフレーズ抽出はテキストの主要な概念を表すフレーズを特定します。言語検出は 100 以上の言語を識別でき、多言語コンテンツの前処理に有用です。トピックモデリングは大量のドキュメント群から潜在的なトピックを自動発見する非同期バッチ処理で、カスタマーレビューの傾向分析やサポートチケットの自動分類に活用されます。これらの API はすべてステートレスで、テキストを送信するだけで結果が返るため、ML の専門知識がなくても即座に利用を開始できます。Azure の Text Analytics (現 Azure AI Language) も同様の NLP 機能を提供していますが、Comprehend はバッチ処理のスループットが高く、S3 に格納した大量ドキュメントの一括分析に強みがあります。
カスタム分類器で業務固有のテキスト分類を構築する
事前学習モデルでは対応できない業務固有の分類要件には、カスタム分類器 (Custom Classifier) が有効です。たとえば、サポートチケットを「請求」「技術的問題」「機能要望」「解約」に分類したい場合、各カテゴリのラベル付きデータを CSV 形式で用意し、Comprehend に訓練を依頼するだけでカスタムモデルが構築されます。訓練データは最低 50 件から開始でき、データ量に応じて精度が向上します。マルチラベル分類にも対応しており、1 つのドキュメントに複数のカテゴリを同時に割り当てることも可能です。カスタムエンティティ認識器も同様の仕組みで、契約書から「契約期間」「違約金条項」「自動更新条件」といった業務固有のエンティティを抽出するモデルを訓練できます。自然言語処理の関連書籍 (Amazon) では、訓練データの設計からモデル評価までの実践的なワークフローが解説されています。訓練済みモデルはエンドポイントとしてデプロイし、リアルタイム推論に使用するか、バッチジョブで大量データを処理するかを選択できます。
Comprehend Medical と実務でのデータパイプライン設計
Amazon Comprehend Medical は、臨床テキストや医療文書に特化した NLP サービスです。電子カルテの自由記述テキストから医薬品名 (投与量、頻度、経路を含む)、疾患名、検査名と検査値、解剖学的部位などの医療エンティティを構造化データとして抽出します。ICD-10-CM (疾病分類) や RxNorm (医薬品コード) へのリンク機能も備えており、抽出したエンティティを標準的な医療コード体系にマッピングできます。HIPAA 適格サービスとして認定されているため、保護対象医療情報 (PHI) を含むデータの処理にも利用可能です。実務でのデータパイプライン設計では、S3 にアップロードされたテキストを EventBridge で検知し、Lambda 経由で Comprehend のバッチジョブを起動、結果を DynamoDB や OpenSearch に格納して検索・分析に活用する構成が一般的です。リアルタイム API は 1 リクエストあたり最大 100KB のテキストを処理でき、レスポンスタイムは数百ミリ秒程度です。大量ドキュメントの処理ではバッチ API を使い、S3 の入出力で非同期に処理することでコストを抑えられます。