読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

PythonでWordCloudを利用してTwitterアカウントを可視化する

Python MeCab

f:id:mochizuki_p:20161001231853p:plain WordCloudをご存知でしょうか?

自然言語処理をやったことがある人ならばこのようなグラフをみたことがあるはずです。これはコーパス中で出現頻度の高い文字を大きく、頻度の低い文字を小さくすることでコーパス中の語彙の分布をわかりやすくした図です。これを一般的にワードクラウド(WordCloud)と呼びます。実はPythonのライブラリを利用すると簡単に作成することができるのです。

1.Wordcloudをインストールする。

最初にpipWordcloudパッケージをインストールします。

公式

https://github.com/amueller/word_cloud

pip3 install wordcloud

これはPython用の画像処理ライブラリpillowに依存していますのでそれもダウンロードします。

pip3 install pillow

これが済んだら準備は完了です。

word_cloud.py

#!/usr/bin/env python
from wordcloud import WordCloud


def wordcloud(text):

      wordcloud = WordCloud(background_color="white", font_path="/System/Library/Fonts/ヒラギノ明朝 ProN W3.otf",width=1024,height=674).generate(text)

      wordcloud.to_file("./test1.png")

大事なのはWordCloudで指定するオプションの中身です。 詳細は

パラメーター 説明
font_path フォント(OTFかTTF)を指定する
width 画像の幅を指定
height 画像の高さを指定
ranks_only 数ではなく単語のランクを利用する
prefer_horizontal
mask マスクを設定する
scale スケールを指定する
max_words 表示する単語の最大数を指定
stopwords ストップワードを集合で指定
background_color 背景色を指定
max_font_size 最大のフォントサイズを指定

ここで大事なのはfont_pathで日本語のフォントを指定しないと文字化けが発生してしまうという点です。Macの場合は/System/Library/Fonts/フォルダにシステムフォントが設置されていますので適当な日本語フォントを指定してください。

ここではヒラギノ明朝 ProN W3.otfを指定してください。

また背景色はデフォルトで黒になっているので見やすいように(ここは主観ですが)ホワイトを指定しました。

最後に作成したWordCloudをファイルに書き出すにはto_file()を利用します。引数には出力先のフォルダとファイル名のパスを指定してください。

この例では作業ディレクトリにtest.pngとして書き出すようにしています。

さて準備が済んだので実際に実行してみます。

ここで利用するデータはTwitter APIを利用して津田大介さん

twitter.com

の過去ツィートから取得した3000件分のコーパスです。詳しいコードは割愛しますが、引数には半角スペース区切りの単語のリストを与えます。MeCabなどを利用して作成すると簡単だと思います。

python3 word_cloud.py

f:id:mochizuki_p:20161001231845p:plain

うまくいきました!