Amazonの人工知能を使ってSNS等の口コミを感情分析する方法
目次[非表示]
SNSやニュースサイトの口コミ(UGC)を分析する際、投稿量などの口コミの量を定量的に計測する方法と、内容など質を定性的に計測する方法が挙げられます。
今回は口コミの質を分析する手法の一つとして、Amazonが提供する自然言語処理サービス Amazon Comprehendを使って、非エンジニアでもノンプログラミングで口コミ分析してみようという内容です。
下記のように考えている広報・マーケティング担当者も、少なくないのではないでしょうか。
- 感情分析するには高価な分析ツールが必要
- 口コミの投稿数しか把握できていない
- 分析はエンジニアの仕事である
通常、テキストを分析するには、品詞などを細かく分けていく形態素解析が必要です。MecabやJanomeといった自然言語処理向けの形態素解析ライブラリを使った分析が一般的ですが、コードを書く必要がありとても面倒です。
今回ご紹介するAmazon Comprehendは無料から使うことができ、コードを使わずノンプログラミングテキストを分析することができます。
Amazon Comprehendとは
Amazon ComprehendはAmazonの膨大なレビューやテキスト情報を元に作られた自然言語処理 (NLP) サービスで、機械学習の知識なしでテキストを分析することができます。
Twitterの投稿文や、ヤフーニュースのコメント、アマゾンの商品レビューなどをネガティブとポジティブな投稿に自動的に分けて分析するといったことも可能となります。
今回はAmazon Comprehendを利用し、下記ヤフートピックスのニュースに投稿されたコメントを題材に、分析方法を解説してみたいと思います。
ヤフートピックスに投稿されたコメントを分析
このニュースはTOPページにも掲載され、タイトルは「プール用マスク話題 注文殺到」でした。
※当ニュースは、いわゆる最近のヤフーニュースお得意のアクセス数を狙った釣りネタ(タイトルで誤読させるのが最近増えている)と思われますが、誤読ユーザーとその他とのコメント賛否が分かれそうなのでピックアップしてみました。なおこうしたヤフーニュース編集部の近年の暴走は、ニューズウィーク誌が指摘しています。
このヤフーニュースに投稿された、計1,580件のコメントデータを元にテキスト分析をしていきたいと思います。
<今回やること>
ヤフーニュースからコメントを抽出
Amazon Comprehend でテキストを分析
ネガポジ比率をグラフで確認
1.ヤフーニュースからコメントを抽出
スクレイピングツール等を活用してヤフーニュースからコメントを取得、CSVファイル等にまとめておきます。
※具体的なデータ取得方法は下記の記事よりご確認ください。
2.Amazon Comprehendでテキスト解析
Amazon Comprehend:https://aws.amazon.com/jp/comprehend/
Amazon Comprehendを使うには、AWSアカウントへの登録が必要となります。容量に応じてある程度無料でも使うことができ、一定の容量以上から有料となります。
サイトにログインすると、ブラウザ上で1件ずつ分析できる「Real-time analysis」と、データをインポートして分析する「Analysis jobs」の2つのメニューがあります。
一旦下記ヤフーオーサーのコメントをReal-time analysisで分析してみたいと思います。
Amazon Comprehendには、
- Entities(エンティティ認識)
- Key phrases(キーフレーズ抽出)
- Language(言語検出)
- Sentiment(感情分析)
の4つの分析機能があります。
上記はキーフレーズ抽出を行ったところです。キーフレーズとは会話のポイントとなる箇所を検知する機能ということです。
3.ネガポジ比率をグラフで確認
Sentiment(感情分析)では、テキストが肯定的か否定的かをPositive/Neutral/Negative/Mixedと4つの指標のそれぞれの含有率を表示します。
上記コメントを感情分析にかけてみると、下記の結果となりました。
Positive |
Neutral |
Negative |
Mixed |
0.269164 |
0.096484 |
0.016696 |
0.627656 |
この投稿では、Mixed(positiveとnegativeが混同)が0.62と最も高い数値となり、肯定と否定が入り混じっているテキストだという分析結果となりました。
確かに前半は「保護者に朗報」と入り、後半で「製品化には安全性と慎重さが必要」「エスカレートを危惧」と否定で結ばれているので、この結果は正しいことが分かります。
このSentiment分析を抽出した1,580件のコメントにかけてみたいと思います。
複数データを分析する場合は、アマゾンのAPI(boto3ライブラリ)を使う方法と、アマゾンのクラウドサービス(S3)にアップロードして分析する方法があるようです。今回は後者のS3を使って分析してみます。
分析開始から数分で完了となり、下記のような結果となりました。
エクセルなどで色付けすれば直感的にも分かりやすいです。
今回はコメントのgoodとbad数も一緒に抽出し、それぞれのコメントごとにセンチメント分析結果をまとめています。
全体の割合はポジティブ投稿が8.5%に対し、ネガティブ投稿が39.7%という結果となりました。
ちなみにこのヤフーニュースのコメントはほとんどがヤフトピのタイトルだけを読んで、誤読した上ので投稿コメントと思われ、ヤフーニュース住民の狂気とも言える特徴的な傾向が分かる事例といえるでしょう。
量の多い口コミは人工知能に自動分類させよう
日本語は主語や目的語が省略されるケースが多く、AIによる自然言語処理が難しい言語であると言われています。
数件であればネガポジ分類は目視で行ったほうが良いかもしれません。ただし件数が多い場合は、今回のようにAIを活用すると、より効率的に分析できるのではないでしょうか。
▼合わせて読みたい