はじめに
この記事は株式会社ナレッジコミュニケーションが運営する Amazon AI by ナレコム Advent Calendar 2020の 10日目にあたる記事です!
Amazon Comprehend
Amazon Comprehend は、機械学習を使用してテキストから洞察を見つける自然言語処理 (NLP) サービスです。 Amazon Comprehend では、キーフレーズ抽出、感情分析、実体認識、トピック形成、言語検出 API を提供し、自然言語処理を簡単にお使いのアプリケーションに統合できます。
引用元:https://aws.amazon.com/jp/comprehend/features/
2019年11月に日本語に対応、2020年2月に東京リージョンに対応しました。
今回やること
先日発表されたApple初のオーバーイヤーへッドホン、「AirPods Max」に関するツイートの感情分析を行います。
手順
手順はざっくりと以下の3つです。
- Twitter APIでツイートの収集
- S3にツイートデータアップロード
- Amazon Comprehendで感情分析
1. Twitter APIでツイートの収集
1-1. Twitter APIの利用申請→APIトークン取得
Developerサイトにて英語で申請→うまくいけば1日で使えるようになります。
申請内容が不十分だと、メールが来て改めてAPIの使用用途を聞かれます。
APIの申請方法、APIキーの取得方法については、以下リンクが参考になるかと思います。
参考リンク:https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/
1-2. Pythonで「AirPods Max」を含むツイートを収集
以下の記事を参考にし、AirPods Max発表時間~12月9日17:00までのAirPods Maxに関連するツイートを約1万件集めました。
参考リンク:https://qiita.com/nomotom/items/de1bc00ef350edc21624
2. S3にアップロード
S3バケットを新規に作成し、用意したデータをアップロードします。
3. Amazon Comprehendで感情分析
3-1. Analysis jobを作成
Amazon Comprehend ダッシュボードにいき[Launch Amazon Comprehend]をクリック。
サイドバーから[Analytics jobs]を選択し、[Create job]をクリック。
ジョブ名入力、入力データや出力データの保存先、出力を許可するロールなど選択し、[Create job]でジョブを作成。
StatusがSubmitted 、In Progress から Completedになるのを待ちます。
目安として、450794文字のデータで8分かかりました。
3-2. 結果を見る
結果は以下のようなjsonで返ります。
{"File": "元データファイル", "Line": 8, "Sentiment": "NEUTRAL", "SentimentScore": {"Mixed": 4.2057734390255064e-05, "Negative": 0.03868779540061951, "Neutral": 0.9604883193969727, "Positive": 0.0007818673038855195}}
全10024件のツイートから、判定されたセンチメントのはそれぞれ以下の数となりました。
センチメント | 数 |
---|---|
Positive | 1348 |
Negative | 1743 |
Mixed | 299 |
Neutral | 6634 |
おわりに
結果から、肯定的なツイートよりも否定的ツイートが少し多いことが分かりました。
次回はエンティティやキーフレーズの抽出もしてみたいです。