Python入門③人気者のTwitterを画像化!インフルエンサーとは?

Python入門③人気者のTwitterを画像化!インフルエンサーとは?

Pythonの勉強/Word Cloudで可視化。
インフルエンサーのTwitterからツイートを収集して分析。【Pythonでできること】

この記事の内容

前回は、PythonTwitter APIを使って、有名インフルエンサーの方のツイートをスクレイピングし、そのデータを”janome”ライブラリを用いて形態素解析するところまで、やりました。

rubirubi.hateblo.jp

 

今回は、前回のつづきで、Pythonを使って、抽出したツイートデータを可視化(見える化)したいと思います。

以降のPythonのコードを使うための準備はこちらの「必要なプログラムをインストールする」を参照いただき、「Pythonのインストール」「pipのインストール」までを済ませてください。

課題、というか’やりたいこと’としては、

  • データの精度を上げる
  • Word Cloudを導入して見える化した画像を作成する

です。

 

Word Cloud を導入する

「Word Cloud」とは、文章中で使われる数が多い単語をその頻度に応じた大きさで図に示す手法のことです。

オバマwordcloud


Pythonにはwordcloudというその名どおりのPythonでWord Cloudを作成できるようになるライブラリがあります。

まず、wordcloudの導入から。こちらの記事を参考にさせていただきました。

qiita.com

 

git プログラム のインストール

まず、コマンドプロンプト(Macだとターミナル)からgitコマンドでwordcloudライブラリのクローンを入手します。gitコマンドを使うには、gitプログラムのインストールが必要です。

Windowsでのインストールは、こちらの記事を参照なさってください。
WindowsにGitをインストールする方法 | サービス | プロエンジニア

注)手順のうち「Adjusting your PATH environment(環境変数PATHの設定)」の部分で[Use Git Bash only] を選択すると、コマンドプロンプトからはgitコマンドが使えません。

Macだと、最初からgitがインストールされているものもあります。こちらを参考になさってください。
MacでGitをインストールする方法を解説!アップデート/アンインストール/おすすめクライアント紹介 | Aprico

 

gitのインストールが完了したら、コマンドプロンプト(Macだとターミナル)を起動し、「git clone」でgitからソースコードをクローン(複製)して入手します

> git clone https://github.com/amueller/word_cloud 

 

コマンドを実行したフォルダにクローンしたソースコードの圧縮ファイルがダウンロードされます。解凍すると、「word_cloud」というフォルダが作成されますので、「cd」コマンドでカレントフォルダをword_cloudフォルダに移動します。

> cd word_cloud

 

Word Cloudのセットアップをするため、pythonコマンドで「python setup.py install」と実行したところでわたしの環境ではエラーが出ました。

> python setup.py install
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/ 

 

Microsoft Visual C++ビルドツール のインストール

エラーメッセージによると「MicrosoftのVisual C++ 14.0が必要なのでMicrosoft Visual C ++ビルドツールを入手してください」、とのことです。

エラーメッセージに従い、メッセージに記載のあるマイクロソフト社のダウンロードページ(https://visualstudio.microsoft.com/downloads/)にアクセスし、から 「Visual Studio 2019」というアプリをインストールしたのですが・・。
またもや、同じメッセージが出てエラーに。うーーん・・。ググってみました。

キーワード「Microsoft V isual C++ Build Tools」でそのまま検索すると、このような記事がみつかりました。やはり、同様の現象が起きているようです。

pg.kdtk.net

 

この記事にリンクの記載があり、そこから直接インストーラーが入手できました。
以下のURLは マイクロソフト社への直リンクですが、ここからインストーラーをダウンロードできます。https://download.microsoft.com/download/5/F/7/5F7ACAEB-8363-451F-9425-68A90F98B238/visualcppbuildtools_full.exe

 

また、その際に「Microsoft .NET Framework 4.5.1以上がインストールされていないとエラーになるようですので、そちらのリンクも貼っておきますね。

www.microsoft.com

 

Microsoft Visual C++ビルドツールをインストールしたあと、再度「python setup.py install」を実行すると、今度は無事、Word Cloudライブラリのインストールに成功しました!

 

matplotlib のインストール

matplotlibは、グラフなどを描画できるようになるPythonライブラリです。wordcloudライブラリは、matplotlibの機能を利用してWord Cloudを描画しています。そのため、wordcloudの実行前にmatplotlibをインストールしておく必要があります

> pip install matplotlib

 

Word Cloud の実行

さっそく画像化できるか、やってみましょう。wordcloudは、コマンドラインで実行できます。
※わたしはWindowsユーザーなので、コマンドプロンプト(マックでいうターミナル)の操作で進めます。

コマンドプロンプトのショートカット
エクスプローラでフォルダを開いた状態で、アドレスバーに「cmd」と入力して[Enter]キーを押すと、エクスプローラで開いているフォルダがカレントフォルダとなってコマンドプロンプトが起動します。

前回、形態素解析したテキストファイルのあるフォルダでコマンドプロンプトを開き、以下のコマンドを打ちます。

> wordcloud_cli --text result.txt --width 500 --height 500 --imagefile wordcloud.png

 

wordcloud_cli - Word Cloud 実行コマンド

  • -- text - 「result.txt」の部分が、前回作成したテキストファイル部分にあたります。
  • -- width - 画像の幅(ピクセル)
  • -- height - 画像の高さ(ピクセル)
  • -- imagefile - 作成する画像ファイル名。プログラムの実行後、「wordcloud.png」というPNGファイルが保存されます。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

 

お馴染み、エラーです…笑。

 

utf-8のコーデックうんぬん、と言っているので形態素解析したテキストファイル(result.txt)を一度開き、文字コードをutf-8に指定して保存し直して、もう一度コマンド(wordcloud_cli…)を実行してみます。

 

 

 

可視化したツイートを(ふんわり)分析

Python入門③人気者のTwitterを画像化!インフルエンサーとは? - ハテブカスタム

 

おお、やりました!意外とすんなりいけた!!と思ったのもつかの間。おそらく日本語と思われる部分が、あらら「四角□」に変わってしまっています・・。
またもググっていろいろ探すと、やはり同様の事例が書いてあり、解決方法まで記載のある記事が見つかりました。
Twitterのツイートをwordcloudで可視化したい【後編】 - uepon日々の備忘録

 

日本語を画像化する場合、フォントを指定していないとダメなようです。なので、コマンドに「--fontfile C:\Windows\Fonts\HGRGM.TTC」とフォントのフルパス指定を追加しました。

$ wordcloud_cli --text result.txt --fontfile C:\Windows\Fonts\HGRGM.TTC --width 500 --height 500 --imagefile wordcloud.png

 

もう一度、実行してみます。…今度は、うまくいきました!

Python入門③人気者のTwitterを画像化!インフルエンサーとは? - ハテブカスタム

 

ちなみに元データのテキストファイル(result.txt)は、はじめしゃちょーさんの直近200ツイートを形態素解析した結果の頻出上位100ワードです。httpや記号などは手動で除いています。
比較のため、落合陽一さんのを出してみます。

Python入門③人気者のTwitterを画像化!インフルエンサーとは? - ハテブカスタム

 

さすが、インテリエンサー(勝手な造語)だけあって、はじめしゃちょーと比べると漢字とかオシャレなワードが多いですね。クールです。(*^_^*)
予想どおり、と言うか、前回メンバーに選抜させていただいて正解でした。「測候所」なんて言葉も、初めて知りました。これだけで落合さんのポスターみたいです。

自分の名前が一番多いのは、書籍出版やメディア出演などの告知で、ご自身の名前を冠したものが多いのかもしれませんね。

逆にはじめしゃちょーさんは人気YouTuberとのことなので、小さなお子さんにも伝わりやすい表現を意図的に多用してるかもしれません。

なんか、面白くなってきました。ほかの6名の方のは、まとめてみました。どれがどなたのだか、分かりますか?(^.^)/

Python入門③人気者のTwitterを画像化!インフルエンサーとは? - ハテブカスタム

 

上段左から横に藤田ニコルさん、ホリエモンさん、孫正義さん、
下段左から東海オンエアてつやさん、丸山穂高さん、有吉弘行さん。

と、並んでます。

わたし的に目にとまったのは・・藤田さんはZOZOTOWNイベント、堀江さんは自分流儀、孫さんは決算中継、てつやさんは今日動画、丸山さんは議員ワロタ、有吉さんは今日田中、でしょうか。分かりやすく個性が出てますね。

ふんわりですが、、分析?します。

  • 藤田さんはファンのみんな、撮影収録イベントテレビの仕事明日ニコル見て♡
  • 堀江さんと落合さんはザ・セルフプロデューサー
  • 孫さんは経営者人生
  • ユーチューバーはユーチューバー。
  • 丸山さんはワードは意外とマトモ。並べ方の問題?
  • 有吉さんはラジオと好きな芸人いじり

 

と、いう訳で。今日はここまでにします。課題としてもっとデータ量を増やすとか、解析の精度を上げるなどできたらなぁ、って思います。
「sleep」と「STOPWORDS」、アニメーションやマスク画像も気になる・・。

では。ここまで読んでいただき、ありがとうございました。(^。^)
どなたかの、お役にたてますように♪

よろしければ、つづきの投稿もごらんください↓

rubirubi.hateblo.jp