tweets_analyzerを使用したツイート分析入門|セキュリティごった煮ブログ

ネットエージェント
セキュリティごった煮ブログ

 コース:あっさり

tweets_analyzerを使用したツイート分析入門

インターネット太郎

こんにちは〜、夏休みが終わってほしくないインターネット太郎です。

SNSでは「夏休みにどこへ行った」「夏休み何をした」というポストが多くあり、
自分は何もしないままただ漠然と時間だけが過ぎ、夏休みが終焉を迎えようとしていることに焦燥感を覚えています。

そこで今回はSNSをただ漠然と眺めているのもつまらないので、夏の終りに他人のツイートの傾向を分析してどういう生活を送っているのかを推測していこうという回です。

注意:本投稿で記述した手法を用いてトラブルなどが発生した場合、当社は一切の責任を負いかねます。本情報の悪用はしないでください。

使用するツールは「tweets_analyzer」というツールです。

https://github.com/x0rz/tweets_analyzer

READMEにも書かれていますが、このツールはユーザのツイートからそのユーザのTwitterプロファイルを分析することが出来るツールです。
以下の事項を確認する事ができます。

  • 時間/曜日ごとの平均ツイート活動
  • Twitterに設定されたTimeZoneと言語
  • 投稿ソース(モバイルアプリケーション、Webブラウザなど)
  • 位置情報
  • 最も使用されているハッシュタグ、リツイートされたユーザー、言及されたユーザー
  • 最もツイートしている時間帯/リプライを送るユーザ

インストールは以下です。

$ git clone https://github.com/x0rz/tweets_analyzer
$ pip install -r requirements.txt

※ここでtweepyの3.6.0バージョンをrequirementsされていますが、私の実行環境では3.6.0ではエラーになったので最新版の3.8.0を使用しています。

「secrets.py」にてTwitter APIの設定をします。
Twitter APIの取得に関してはよしなに行ってください。

環境が整ったら-hでオプションの確認をしましょう。

$ python tweets_analyzer.py -h 
usage: tweets_analyzer.py -n <screen_name> [options]

Simple Twitter Profile Analyzer (https://github.com/x0rz/tweets_analyzer)
version 0.2-dev

optional arguments:
  -h, --help            show this help message and exit
  -l N, --limit N       limit the number of tweets to retreive (default=1000)
  -n screen_name, --name screen_name
                        target screen_name
  -f FILTER, --filter FILTER
                        filter by source (ex. -f android will get android
                        tweets only)
  --no-timezone         removes the timezone auto-adjustment (default is UTC)
  --utc-offset UTC_OFFSET
                        manually apply a timezone offset (in seconds)
  --friends             will perform quick friends analysis based on lang and
                        timezone (rate limit = 15 requests)
  -e path/to/file, --export path/to/file
                        exports results to file
  -j, --json            outputs json
  -s, --save            saves tweets to tweets/{twitter_handle}/{yyyy-mm-
                        dd_HH-MM-SS}.json
  --no-color            disables colored output
  --no-retweets         does not evaluate retweets

とりあえず試しに@netaget_jpのアカウントを解析してみましょう(フォローしてね☆)

https://twitter.com/netagent_jp

ここで注意するのが、このツールはデフォルトではUTCの時間を表示するのでこれをJSTに変更します。
JSTはUTC+9時間なので、その秒「32400」を--utc-offsetで指定します。

$ python tweets_analyzer.py -n netagent_jp --utc-offset +32400

スクリプトを実行すると様々な解析情報が出てきます。

「Dialy activity distribution (per hour)」では1日のアクティビティの分布が1時間毎にヒストグラムで表示されます。

@netagent_jpでは分かりづらいですが、この分布でユーザのTwitterでの主な活動時間を推測することが出来ます。
そこから生活リズムの推定をすることが可能です。

次に「Weekly activity distribution(per day)」の項目では、曜日ごとのアクティビティの分布がヒストグラムで表示されます。

@netagent_jpの場合は、木曜にブログ更新のツイートをしている為か木曜が一番活動しているようです。
この分布で、曜日毎のツイート数の量が分かる上に内容を確認することでユーザの休日が何曜日かというのを推測することも可能だと考えられます。

残りの項目は、言語の情報、位置情報、使用しているハッシュタグのTOP10、最もRTしているユーザTOP5、最もリプライをしているユーザTOP5、最もツイートしているドメイン(from URL)の情報が含まれます。

これらの項目でユーザの発言の傾向などを見ることが出来るでしょう。
最もリプライを送っているユーザのTOP5は、このユーザがTwitter上で仲の良いであろうと推測が出来るので、どういった関係性なのかをそのリプライを見ることで分かるかもしれません。

この情報に加え、Twitterの検索機能で「to:[screen_name]」や「from:[screen_name]でどのユーザからどのユーザへのリプライなどを検索すると捗ります。

今回は、tweets_analyzerを使用してツイート解析をしてみました。
会社ブログの記事の為、一般ユーザの具体例を挙げることが出来ないのであまり深堀りが出来ませんでしたが、このツールを使用して特定のユーザの「生活パターン」を推測することが出来ます。

SNSで「生活パターンを他人に知られたくない!」という方々は、このようなツールで自分の意図していない活動の傾向があるかなど把握すると良いと思います。

メルマガ読者募集 採用情報 2020年卒向けインターンシップ

月別