aws

Amazon Comprehendとは?できること・料金・使い方・活用事例を解説

本記事は、AWS(Amazon Web Services)の自然言語処理サービス「Amazon Comprehend(アマゾン コンプリヘンド)」の解説です。英単語「comprehend(理解する)」の意味や読み方をお探しの場合は、辞書サイトをご参照ください。ここでは、Amazon Comprehendでできること、料金体系、Python(Boto3)を使った使い方、ビジネスでの活用事例までを順に説明します。

Amazon Comprehendとは、機械学習を使ってテキストから感情・固有名詞・重要なフレーズなどの情報を自動で抽出できる、フルマネージドの自然言語処理(NLP)サービスです。専門的な機械学習の知識がなくても、APIを呼び出すだけでテキスト分析を行えるのが大きな特徴です。

※本記事の機能・料金は執筆時点の情報です。仕様や料金は変更されることがあるため、利用前にAWS公式のドキュメント・料金ページで最新情報をご確認ください。

まとめ

Amazon Comprehendの要点を整理します。

  • Amazon Comprehendは、AWSが提供する自然言語処理(NLP)サービス
  • 感情分析・エンティティ認識・キーフレーズ抽出・言語検出に加え、PII検出・カスタムモデル・毒性検出などが可能
  • 料金は従量課金(100文字=1ユニット、1リクエスト最低3ユニットから)。12か月の無料利用枠もある
  • Python(Boto3)などからAPIを呼び出すだけで手軽に利用できる(日本語対応)
  • 画像はTextract、文章生成はBedrockなど、目的に応じてサービスを使い分ける
  • 仕様・料金は変わるため、最新はAWS公式で確認を

専門知識がなくてもテキスト分析を始められる便利なサービスです。まずは無料利用枠で感情分析やエンティティ認識を試し、自社のデータでどんなインサイトが得られるかを確かめてみるとよいでしょう。

Amazon Comprehendとは

Amazon Comprehendは、構造化されていないテキスト(顧客レビュー、問い合わせ、SNSの投稿、契約書など)を解析し、ビジネスに役立つインサイトを引き出すためのAWSのサービスです。たとえば大量の顧客レビューから全体の感情がポジティブかネガティブかを判定したり、ニュース記事から企業名や人名を抽出したりといった処理を、サーバーの構築なしに実現できます。

分析はAWSが管理する学習済みモデルが行うため、利用者はテキストをAPIに渡すだけで結果を受け取れます。S3やLambdaなど他のAWSサービスとも連携しやすく、既存システムに組み込んでリアルタイムに分析することも可能です。日本語にも対応しており(2019年11月から対応)、日本語テキストの分析にも利用できます。日本語の自然言語処理を自前で行う場合はMeCabのような形態素解析ツールを使う方法もありますが、Comprehendはこうした処理をマネージドサービスとして手軽に利用できる点が異なります。

Amazon Comprehendでできること(主な機能)

Amazon Comprehendには、学習済みモデルをそのまま使える「標準機能」と、自社データで独自モデルを作る「カスタム機能」があります。標準機能はAPIを呼び出すだけで利用でき、主に次のような分析が行えます。

  • 感情分析:テキストが「ポジティブ」「ネガティブ」「ニュートラル」「混合(Mixed)」のどれかを判定します。レビューやアンケートの全体的なトーンの把握に役立ちます。
  • エンティティ認識:人名・組織名・地名・日付・数量などの固有表現を抽出し、種類ごとに分類します。
  • キーフレーズ抽出:文書中の重要な名詞句を抽出し、主要なテーマを把握できます。
  • 言語検出:入力テキストが何語かを判別します(100以上の言語に対応)。
  • 構文解析:単語の品詞(名詞・動詞など)を判定します。
  • トピックモデリング:大量の文書から共通するトピックを抽出してグループ化します。
  • PII(個人識別情報)検出:氏名・住所・電話番号などの位置を特定し、マスキングした文書を生成できます。
  • 信頼と安全:2024年に追加された機能で、有害コンテンツの検出(毒性検出)や、生成AIへの不適切な入力プロンプトの検出ができます。

エンティティ認識で抽出できる主な種類は次のとおりです。

エンティティ 内容
PERSON 人名 山田太郎
LOCATION 場所 東京
ORGANIZATION 組織名 アマゾン
DATE 日付・時間 2026年6月
QUANTITY 数量 100円・50%
COMMERCIAL_ITEM 製品名 Amazon EC2

カスタム機能では、自社のデータでモデルを学習させ、独自の分類(カスタム分類)や業界特有の固有表現抽出(カスタムエンティティ認識)を行えます。標準機能だけでは対応できない、専門分野や社内固有の用途に向いています。

Amazon Comprehendと他のAWSサービスの違い

AWSにはテキストを扱うサービスが複数あり、役割が異なります。Amazon Comprehendは「テキストの意味を解析する」サービスである点が特徴です。代表的なサービスとの違いを整理します。

サービス 主な役割 入力 出力
Comprehend 意味の解析(NLP) テキスト 感情・エンティティ等
Textract 文字抽出(OCR) 画像・PDF テキスト・表
Translate 翻訳 テキスト 翻訳テキスト
Transcribe 音声認識 音声 テキスト
Bedrock 生成AI(文章生成) プロンプト 生成テキスト

たとえば画像化された文書を分析したいときは、Amazon Textractで文字を抽出してからComprehendで意味を解析する、という連携がよく使われます。文章を「生成」したい場合はComprehendではなくAmazon Bedrockなどの生成AIが適しており、両者は役割が異なります(後述のFAQも参照)。

Amazon Comprehendの料金

Amazon Comprehendは従量課金制で、初期費用は不要です。標準の自然言語処理(感情分析・エンティティ認識・キーフレーズ抽出・言語検出・PII検出など)は100文字を1ユニットとして計算し、1回のリクエストにつき最低3ユニット(300文字)から課金されます。たとえば550文字のテキストを1回解析すると6ユニット分の料金がかかります。

料金は処理量が増えるほど単価が下がる段階制です。東京リージョンの主要機能(感情分析・エンティティ認識・キーフレーズ抽出・言語検出)の単価は次のとおりです。

月間の処理量 1ユニット単価
最初の1,000万ユニット 0.0001 USD
次の4,000万ユニット(〜5,000万) 0.00005 USD
5,000万ユニット超 0.000025 USD

PII(個人識別情報)検出もほぼ同じ段階制ですが、1億ユニットを超える区分でさらに単価が下がります。各機能の最新単価はAWS公式の料金ページでご確認ください。

カスタムモデルを使う場合は、上記に加えて学習・管理・推論の料金が発生します。

項目 料金
モデル学習 3 USD/時
モデル管理 0.50 USD/月
非同期推論 0.0005 USD/ユニット

また、Amazon Comprehendには無料利用枠があります。対象APIごとに月50,000ユニット(500万文字)までを、初回リクエストから12か月間無料で利用できます(トピックモデリングは最大5ジョブ、カスタムモデル関連は対象外)。小規模に試す分には無料で始められます。具体的な単価は機能・リージョン・使用量で変わるため、正確な金額はAWS公式の料金ページと料金見積りツールで確認してください。

Amazon Comprehendの使い方(Python / Boto3)

使い方は大きく2通りあります。手軽に試すならAWSマネジメントコンソールの「リアルタイム分析」で、分析したいテキストを貼り付けるだけで感情やエンティティの結果を確認できます。システムに組み込むならAPIやSDKを利用します。ここではAWS SDK for Python(Boto3)での基本的な使い方を紹介します。利用にはAWSアカウントと、適切な権限を持つ認証情報の設定が必要です。

まず、Boto3をインストールします。

pip install boto3

次に、感情分析を実行する例です。detect_sentiment を呼び出すと、テキストの感情が判定されます。

import boto3

# Comprehendクライアントを作成(リージョンは適宜変更)
comprehend = boto3.client('comprehend', region_name='ap-northeast-1')

text = "I am so happy and excited to use Amazon Comprehend."

# 感情分析の実行
response = comprehend.detect_sentiment(Text=text, LanguageCode='en')

print(response['Sentiment'])  # Positive / Negative / Neutral / Mixed のいずれか

エンティティ認識も同様に、detect_entities を呼び出すだけです。

text = "Amazon Web Services (AWS) is a subsidiary of Amazon."

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

for entity in response['Entities']:
    print(entity['Text'], entity['Type'], entity['Score'])

このように、抽出したいインサイトに応じてAPI(detect_key_phrasesdetect_dominant_language など)を呼び分けるだけでテキスト分析を実装できます。日本語を解析する場合は LanguageCode'ja' に指定します。テキストファイルを扱う場合は文字コードをUTF-8にすると文字化けを防げます。分析結果には信頼度スコアが含まれるため、重要な判断に使うときはスコアを参考に、必要に応じて人による確認を併用すると安全です。

処理方法は、1件ずつ即座に結果を得るリアルタイム(同期)分析と、S3に置いた大量の文書をまとめて処理する非同期の分析ジョブ(バッチ処理)の2通りがあります。少量のテキストを即時に分析したいときは detect_sentiment のような同期APIを、数万件規模の文書をコスト効率よく処理したいときは start_sentiment_detection_job などの非同期ジョブを使う、と使い分けます。なお同期APIには1リクエストあたりの文字数上限(リアルタイム分析は最大5,000バイト)があるため、長文や大量データはジョブ方式が適しています。

Amazon Comprehendの活用事例

Amazon Comprehendは、さまざまな業務で活用されています。代表的な例を挙げます。

  • 顧客の声(VoC)分析:レビューやアンケートの自由記述を感情分析・キーフレーズ抽出にかけ、改善点や評価点をデータで把握します。
  • ブランドモニタリング:SNS投稿を感情分析し、評判の変化やいわゆる炎上の火種をリアルタイムで検知します。
  • 問い合わせの自動振り分け:カスタム分類で問い合わせ内容を自動分類し、適切な部署へルーティングします。
  • コンプライアンス対応:PII検出で個人情報を含む文書を特定・マスキングし、情報漏えいリスクを下げます。
  • 契約書・文書のレビュー:カスタムエンティティ認識で、重要な条項や専門用語を契約書から抽出します。

PDFなど画像化された文書を扱う場合は、Amazon Textractでテキストを抽出してからComprehendに渡す連携がよく使われます。分析結果をAmazon QuickSightなどと組み合わせれば、ダッシュボードで共有することも可能です。

Amazon Comprehend Medical(医療分野向け)

医療・ライフサイエンス分野には、専用サービス「Amazon Comprehend Medical」があります。医学用語に最適化されており、電子カルテや治験文書などのテキストから、病状・投薬量・検査値・解剖学的な部位といった医療エンティティを高精度で抽出できます。さらに「この薬剤がこの症状に処方された」といった関係性の識別も可能です。創薬研究や臨床開発で、膨大な文献・記録から必要情報を抽出する用途に向いています。

標準のComprehendとは対象データと料金体系が異なるため、医療用途で検討する場合は機能と料金をAWS公式で確認してください。

Amazon Comprehendのメリットと注意点

主なメリットは、第一に機械学習の専門知識が不要なことです。学習済みモデルをAPIで呼び出すだけで高度なテキスト分析ができます。第二にスケーラビリティで、大量のテキストもAWSのインフラ上で処理できます。第三に他のAWSサービスとの連携のしやすさで、既存のワークフローに組み込みやすい点が挙げられます。

一方で注意点もあります。大量のテキストを頻繁に解析するとコストがかさむため、AWS Cost ExplorerやAWS Budgetsで使用量を監視すると安心です。カスタムモデルの同期推論エンドポイントは、起動している間はリクエストがなくても課金が続くため、使わないときは停止・削除します。また分析精度には限界があり、皮肉や専門用語、文脈に依存する表現は誤判定が起こりえます。さらに、機密情報を含むテキストをクラウドで処理する際は、暗号化やアクセス制御などのデータの取り扱いに配慮が必要です。

よくある質問(FAQ)

Q. Amazon Comprehendの読み方は?
A.「アマゾン コンプリヘンド」と読みます。AWSが提供する自然言語処理サービスの名称です。

Q. Amazon Comprehendは日本語に対応していますか?
A. 対応しています(2019年11月から日本語対応)。LanguageCode'ja' を指定して利用します。ただし機能によって対応状況が異なる場合があるため、利用したい機能の最新状況は公式でご確認ください。

Q. 料金はどのくらいかかりますか?
A. 従量課金で、100文字を1ユニットとして計算し、1リクエストにつき最低3ユニット(300文字)から課金されます。月50,000ユニット(500万文字)までの無料利用枠もあります。正確な単価はAWS公式の料金ページで確認してください。

Q. 機械学習の知識がなくても使えますか?
A. 使えます。標準機能はAWSの学習済みモデルを利用するため、APIを呼び出すだけ、あるいはコンソール上の操作だけでテキスト分析ができます。独自のモデルを作りたい場合はカスタム分類・カスタムエンティティ機能を利用します。

Q. Amazon ComprehendとAmazon Textractの違いは?
A. Textractは画像やPDFから「文字を抽出」するOCRサービス、Comprehendは抽出済みテキストの「意味を解析」するNLPサービスです。スキャンした文書を分析したい場合は、Textractで抽出してからComprehendに渡すという連携がよく使われます。

Q. Amazon Comprehendと生成AIはどう違いますか?
A. Comprehendは感情分析やエンティティ抽出など「テキストから決まった情報を抽出する」ことに特化したサービスです。文章生成を行う生成AI(Amazon Bedrockなど)とは役割が異なり、生成AIの前処理(不適切な入力の検出など)と組み合わせて使うこともできます。

関連記事

資料請求

RELATED POSTS 関連記事