Cloud Service
Amazon Comprehend
テキストから感情・キーフレーズ・固有表現などを抽出するフルマネージドな自然言語処理(NLP)サービス。
- 1.文章を機械学習で解析し、感情・キーフレーズ・固有表現などを抽出する。
- 2.管理サーバー不要のフルマネージド。API 呼び出しだけで NLP を利用できる。
- 3.標準では足りない分類や抽出はカスタムモデルで自分の用途に合わせられる。
解決する課題
問い合わせメール、レビュー、SNS 投稿、契約書などの大量のテキストを人手で読んで分類・要点抽出するのは時間がかかり、品質も一定しません。Amazon Comprehend を使うと、文章を機械学習で自動的に解析できます。
- レビューや問い合わせが肯定的か否定的かを判定(感情分析)
- 文章の主題となる語句や人名・地名・組織名などを自動抽出
- 大量の文書をトピックごとに分類したり、独自カテゴリで振り分けたりする
NLP モデルの学習やインフラ運用を自分で抱えずに、API 呼び出しだけで利用できる点が中心的な価値です。
主要概念と用語
- NLP(自然言語処理): 人間の言語をコンピュータで解析・理解する技術。Comprehend の中核
- 感情分析(センチメント): テキストが肯定的・否定的・中立・混在のいずれかを判定する機能
- キーフレーズ抽出: 文章の中で主題となる名詞句などの重要な語句を取り出す機能
- エンティティ認識(固有表現抽出): 人名・地名・組織・日付・数量などの固有表現を識別する機能
- 言語判定: 入力テキストがどの言語で書かれているかを推定する機能
- 構文解析: 単語ごとの品詞(名詞・動詞など)を判別する機能
- トピックモデリング: 大量の文書集合から共通する話題(トピック)を教師なしで抽出する機能
- カスタム分類: 自分のラベル付きデータで学習し、独自カテゴリへ文書を分類するモデル
- カスタムエンティティ認識: 標準では扱えない独自の固有表現を学習して抽出するモデル
- 同期 API とバッチ/非同期ジョブ: 短いテキストを即時解析する同期呼び出しと、大量文書をまとめて処理する非同期ジョブの二方式
仕様・制限・クォータ
- 複数の言語に対応し、機能によって対応言語の範囲が異なる
- 同期 API は1回の呼び出しで扱えるテキストのサイズ上限があり、長文は分割して渡す
- 大量文書は入力を S3 に置き、結果も S3 などへ出力する非同期ジョブで処理する
- 出力は感情ラベルや抽出語句と、それぞれの信頼度スコアを含む構造化データ(JSON)として得られる
- 同時実行数やジョブ数などにアカウント単位のクォータがあり、引き上げ申請が可能
- 医療向けのテキストから医療エンティティや個人健康情報を抽出する特化機能(Comprehend Medical)もある
具体的な対応言語・サイズ上限・クォータ値は更新されるため、最新の公式ドキュメントで確認してください。
内部の仕組み
利用者から見ると、テキストを渡すと AWS 側のマネージドな機械学習モデルが推論を行い、解析結果を返すブラックボックスとして扱えます。
- 同期(リアルタイム): 短いテキストを API に渡すと、感情・キーフレーズ・エンティティなどの結果が即座に返る
- 非同期(バッチ): 入力文書を S3 から読み込んでジョブとして処理し、完了をポーリングまたは通知で受け取り、出力先から結果を取得する
- カスタムモデル: ラベル付きデータやアノテーションを与えて学習させ、独自カテゴリの分類や独自エンティティの抽出に対応する。学習したモデルはエンドポイントとしてデプロイし、リアルタイム推論にも利用できる
モデルの学習基盤やスケーリング、ハードウェアの管理はすべて AWS 側が担います。
設計パターン / ベストプラクティス
- 非同期パイプライン化: S3 への文書アップロードをトリガに Lambda でジョブを起動し、完了通知(EventBridge など)で後続処理へ流す疎結合構成
- 方式を用途で選ぶ: 1件ずつの即時応答が要る用途は同期 API、夜間の大量解析は非同期ジョブ
- まず組み込み機能から: 感情・キーフレーズ・エンティティなどの標準機能で要件を満たせるか確認し、足りない場合のみカスタムモデルを検討する
- 他サービスとの連携: Amazon Transcribe で文字起こしした通話を Comprehend で感情分析する、といった音声からテキスト解析へのパイプラインが代表的
独自カテゴリが必要に見えても、標準のエンティティ認識やキーフレーズ抽出で十分なことが多いです。カスタムモデルの学習に進む前に、組み込み機能で要件を満たせるか確認しましょう。
運用・監視
- API 呼び出しやジョブの状態は CloudWatch のメトリクス・ログで監視する
- 非同期ジョブの状態遷移(完了・失敗)を EventBridge で受け取り、後続処理や通知を自動化する
- API 操作の監査証跡は CloudTrail に記録される
- 失敗ジョブはエラー理由(非対応言語、サイズ超過、権限不足など)を確認し、入力データと IAM 設定を見直す
- カスタムモデルのエンドポイントは利用状況に応じて見直し、不要なら削除して費用を抑える
大量文書のバッチ解析は即時に終わりません。結果を同期的に待つ作りにせず、通知やポーリングで完了を待つ非同期設計にしてください。
コスト
- 課金は基本的に解析したテキスト量に応じた従量制で、サーバーの常時起動費用は発生しない
- 機能(感情分析・エンティティ認識など)ごとに単価が設定される傾向がある
- カスタムモデルは学習と、デプロイした推論エンドポイントの稼働時間に費用が伴う
具体的な単価は変動するため、料金は公式の料金ページで確認してください。カスタムモデルのエンドポイントは起動している間課金されるため、使わないときは削除するのが安全です。
セキュリティ
- アクセス制御は IAM で行い、入出力に使う S3 バケットへの最小権限のみを付与する
- 保存データは S3 側の暗号化(KMS 管理鍵を含む)、転送は TLS で保護する
- 機密文書を扱う場合は、入出力バケットのアクセスポリシーを限定する
- VPC 内のリソースからプライベートに到達したい場合は VPC エンドポイント経由のアクセスを検討する
ジョブ用の IAM ロールに広すぎる S3 権限を与えると、想定外のデータへアクセスできてしまいます。対象バケット・プレフィックスに絞った最小権限にしてください。
Well-Architected の観点
- 運用上の優秀性: マネージドサービスにより運用負荷を下げ、S3・Lambda・EventBridge と組み合わせて解析パイプラインを自動化・可観測化できる
- セキュリティ: IAM の最小権限、保存・転送時の暗号化で機密文書を保護する
- コスト最適化: 従量課金のため、不要な解析を避け、使わないカスタムモデルのエンドポイントは削除する
- 信頼性: 非同期・疎結合な構成にし、ジョブ失敗時の再試行や通知を組み込む
試験で問われるポイント
- 「テキストから感情やキーフレーズ、固有表現を抽出する AWS サービスは?」→ Amazon Comprehend
- 「レビューが肯定的か否定的か判定したい」→ 感情分析(センチメント)
- 「人名・地名・組織名を取り出したい」→ エンティティ認識(固有表現抽出)
- 「独自カテゴリで文書を分類したい」→ カスタム分類モデル
- 音声を文字起こしする Amazon Transcribe と組み合わせ、通話テキストを Comprehend で解析する構成
関連サービス・比較
音声をテキスト化する Amazon Transcribe とは処理する入力が異なり、組み合わせて使うことが多いため比較します。
| 観点 | Amazon Comprehend | Amazon Transcribe |
|---|---|---|
| 扱う入力 | テキスト | 音声 |
| 主な役割 | テキストの意味解析(NLP) | 音声をテキスト化(音声認識) |
| 代表的な出力 | 感情・キーフレーズ・固有表現 | 文字起こしテキスト |
| 組み合わせ | Transcribe の出力を解析する後段 | Comprehend へ渡す前段 |
ハンズオン / CLI例
# 1件のテキストの感情を即時に判定(同期 API)
aws comprehend detect-sentiment \
--language-code ja \
--text "この商品はとても使いやすくて満足しています。"
# 同じテキストからキーフレーズを抽出
aws comprehend detect-key-phrases \
--language-code ja \
--text "この商品はとても使いやすくて満足しています。" \
--query "KeyPhrases[].Text"
AWS Service
Amazon Comprehendを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
AI / 機械学習
比較で見る軸
クラウド: AWS / カテゴリ: AI / 機械学習 / 難易度: basic
導入後に効く点
管理サーバー不要のフルマネージド。API 呼び出しだけで NLP を利用できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- AI / 機械学習
- 難易度
- basic
- 関連資格
- AIF-C01
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「AI / 機械学習 / operational」に近いか確認する。
- 強みである「文章を機械学習で解析し、感情・キーフレーズ・固有表現などを抽出する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。