Skip to content

Files

Latest commit

 

History

History

AmazonComprehend_tutorial

Amazon Comprehend テキスト分析チュートリアル

前提条件

本コンテンツはAWS上でシステム開発経験のある方を対象としています。Amazon Comprehendの機能をAPI経由で呼び出し、テキストデータの分析を行います。APIを呼び出す環境としてAmazon SageMaker Notebookインスタンス、開発言語はPythonを利用します。Amazon SageMaker、Jupyter Notebook、Python自体の説明については本コンテンツの対象外となります。また、今回はPythonを利用しますが、本コンテンツで実行している処理はAWS CLIや、他の開発言語でも実行可能です。

review_text ='ハワイアンの心和む音楽の中、ちょっとシリアスなドラマが展開していきます。音楽の力ってすごいな、って思いました。'

# Entity抽出
result = client.detect_entities(Text=review_text, LanguageCode='ja')
entities = result['Entities']
for entity in entities:
    print('Entity', entity)

# Entity {'Score': 0.9531810283660889, 'Type': 'OTHER', 'Text': 'ハワイアン', 'BeginOffset': 0, 'EndOffset': 5}

# KeyPhrase抽出
result = client.detect_key_phrases(Text=review_text, LanguageCode='ja')
keyPhrases = result['KeyPhrases']
for keyPhrase in keyPhrases:
    print('KeyPhrase', keyPhrase)

# KeyPhrase {'Score': 0.9969016909599304, 'Text': 'ハワイアンの心', 'BeginOffset': 0, 'EndOffset': 7}
# KeyPhrase {'Score': 0.9962161183357239, 'Text': '音楽の中', 'BeginOffset': 9, 'EndOffset': 13}
# KeyPhrase {'Score': 0.9926095604896545, 'Text': 'ドラマ', 'BeginOffset': 23, 'EndOffset': 26}
# KeyPhrase {'Score': 0.9999393820762634, 'Text': '音楽の力', 'BeginOffset': 36, 'EndOffset': 40}

# Sentiment分析
result = client.detect_sentiment(Text=review_text, LanguageCode='ja')
sentimentScores = result['SentimentScore']
for sentiment in sentimentScores:
    print(sentiment, sentimentScores[sentiment])

# Positive 0.9588087201118469
# Negative 0.0004567811847664416
# Neutral 0.040275391191244125
# Mixed 0.0004591413598973304

事前準備

まずはAWSマネジメントコンソールを開きます。
ブラウザから https://console.aws.amazon.com/ にアクセスし、マネジメントコンソールにログインしてください。 最初にAmazon SageMakerのノートブックインスタンスの作成を行います。
ノートブックインスタンスは起動中は課金対象となりますので、終了後に停止・削除してください。
マネジメントコンソールが表示されたら、「サービスを検索する」の部分のテキストボックスに sagemakerと入力し、ドロップダウンにAmazon SageMakerと表示されたら、クリックします。

Image 1

画面左の「ノートブックインスタンス」をクリックします。 Image 2

「ノートブックインスタンスの作成」をクリックします。 Image 3

「ノートブックインスタンス名」に任意の名前を入力します。 Image 4

アクセス許可と暗号化 のセクションでは、IAMロールのドロップダウンから「新しいロールの作成」を選択します。 Image 5

「ロールの作成」をクリックします。 Image 6

「成功! IAMロールを作成しました」の下のIAMロール名のリンクをクリックします。 Image 7

作成したIAMロールの管理画面が表示されます。

  • ここからは作成したIAMロールに対して、チュートリアルに必要な権限設定を行います。ここでは実施を簡単にするためにSageMakerの実行ロールに対して必要な権限を与えていきますが、実運用時には必要最小限の権限を持つIAMロールを作成して利用するようにしてください。

「ポリシーをアタッチします」をクリックします。 Image 8

ComprehendFullAceessをアタッチします。 Image 9

インラインポリシーを追加します。 Image 10

「JSON」タブを開いてポリシーを記入します。 Image 11

下記のポリシーを入力します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "comprehend.amazonaws.com"
                }
            }
        }
    ]
}

Image 12

「ポリシーの確認」をクリックします。 Image 13

任意のポリシー名を入力し「ポリシーの作成」をクリック後、作成したポリシーをアタッチします。 Image 14

「信頼関係」タブをクリックします。 Image 15

「信頼関係の編集」をクリックします。 Image 16

入力済の値がありますが、下記の内容で上書きし、「信頼ポリシーの更新」をクリックします。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "comprehend.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Image 17

信頼されたエンティティにComprehendが追加されます Image 18

Amazon SageMakerのノートブックインスタンス作成画面に戻り、「ノートブックインスタンス作成」をクリックします。 Image 19

ステータスが InService になるのを待ちます。 Image 20

ステータスが InService になったら「Jupyter を開く」をクリックします Image 21

Jupyter Notebookの画面が開きます。
Jupyter Notebookの画面の「Upload」をクリックし、AmazonComprehend-Text-Analysis.ipynb をアップロードします(このリポジトリをクローンするでも構いません)。 Image 22

「Upload」をクリックします。 Image 23

AmazonComprehend-Text-Analysis.ipynbのリンクをクリックして、ノートブックを開きます。 Image 24

ノートブックが起動した後はノートブックに記載されている手順に従ってください。 Image 25