Amazon Comprehend を利用して、Twitter からエゴサーチ #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ども、藤本です。

AWS re:Invent 2017 にて自然言語処理(Natural Language Processing)サービスの Amazon Comprehend がリリースされました。Amazon Comprehend に関しては下記エントリにまとめてみました。

自然言語処理サービスの Amazon Comprehend についてまとめてみた #reinvent

使ってみて何かスゴいな、という印象は受けるのですが、じゃあ実際に何ができるのでしょうか?ユースケースを考えてみて実装してみました。

概要

Amazon Coprehend はドキュメントから様々な情報を検出することができます。その一つの検出機能に感情の検出があります。感情の検出はPositiveNegativeNeutralMixedという 4つの指標からドキュメントに含まれる感情の検出、およびスコアリングを行ってくれます。この感情の検出を利用して、Twitter のツイートからエゴサーチしてみましょう。

ハッシュタグ#reinventで検索した直近10,000件のツイートを抽出し、それぞれ感情の検出を行い、トータルの件数、パーセンテージの算出、および最もポジティブ、ネガティブと判断されたツイートを抽出します。

簡単に図示すると↓のようなイメージ。

エゴサーチしてみた

環境

  • 端末:Macbook
  • 言語:Python
  • Python:3.6.1
  • Boto3:1.4.8
  • Botocore:1.8.6
  • Twitter SDK:python-twitter

ソースコード

ササッと書いたソースコードを Gist に添付しました。ブログ最下部にソースコードを張り付けています。

実行

2017/12/02 23:20頃の結果です。

$ time ./sentiment.py
Positive :  993件 : 14.0%
Negative :   22件 : 2.0%
Mixed    :    7件 : 1.0%
Neutral  : 8021件 : 84.0%
Most positive tweet is "#reInvent 2017 was an amazingly marvelous experience!! A huge thank you to @awscloud for all the awesomeness!!"
Most negative tweet is "xxxxxxxxxxxxxxxxxxxxxxx"
./sentiment.py  7.02s user 0.62s system 3% cpu 3:42.37 total

Neutral が多いのはしょうがないですが、うん、Negative に比べて、Positive なツイートが圧倒的に多いですね!re:Invent 素晴らしい!行ったことないけど。最も Positive なツイートは限りなく Positive ですね!実装しておいてなんですが、最も Negative なツイートはマスキング。

まとめ

いかがでしたでしょうか? Twitter API も簡単ですし、Amazon Comprehend の API も前回のエントリでまとめた通り簡単に扱うことができ、簡単に実装することができました。是非、日本語対応した際には弊社のブログや、会社名でエゴサーチしてみたいですね笑

ソースコード