WordCloudの可視化の方法を基本から書式設定まで解説!

WordCloudで可視化

パパ
今回はWordCloudを使って文章の可視化をしていくよ
あこ
きれいだけど作るの難しそう…
パパ
実はWordCloudっていうライブラリをインストールしちゃえば簡単に作れちゃうんだ!
目次目次[閉じる]

事前準備

今回は「WordCloud」というライブラリを使って文章を可視化していきます!

ターミナルで「pip install WordCloud」を実行し、インストールしましょう!

もし、インストールしない場合は、Google Colaboratoryを使えばインストールせずに利用可能です。

基本的コード

一番最小限の使い方は以下の2点を押さえればOKです。 - テキストを用意する - WordCloudで可視化する

パパ
例を見てみましょう
text = 'Red Green Blue Orange Purple Brown Black White'
wordcloud = WordCloud().generate(text)

WordCloudのサンプルその1

まずはテキストは単語ごとにスペースで区切られた文字列を用意します。

通常は長い文章を形態素解析によって単語に分ける作業があるのですが、ここでは説明しません。

用意したテキストを.generate()のカッコの中に入れれば完了です。

WordCloudでは発生頻度の多い単語ほど大きく表示されることになります。 (以下ではYellowの単語に多くしたものです)

WordCloudのサンプルその2

しかし、このままでは

  • デザインが微妙
  • 日本語が文字化けする

などの欠点があるので、少し細かい設定をしてきます。

応用的な設定

先ほどの画像から以下の点を修正します。

  • 画像の大きさ
  • フォント
  • カラーマップの指定
  • 背景色の変更

これらの変更の仕方は以下の画像の通りです。

WordCloudの書式設定説明

それでは実際に詳細な設定をしてみましょう!

text = '緑色 赤色 紫色 白色 黒色 青色 茶色 黄色'`
wordcloud = WordCloud(
    width=900,
    height=500,
    font_path= 'RictyDiminished-Bold.ttf',
    collocations = False,
    background_color="white",
    colormap ="summer",
    ).generate(text)

書式は以下のように設定しています。

  • 画像サイズ:900 × 500
  • フォント: RictyDiminished-Bold.ttf
  • 背景色:白
  • カラーマップ:summer

カラーマップはmatplotlibで使えるものが選べます。

詳しくはこちらのサイトを参照してください!

カラーパレットで色をいろいろ変えてみる

最後にカラーマップをいろんなパターンで作成してみます。

  • 背景色:白か黒
  • 文字の色:「Set2」「Set3」「summer」「terrain」

上記の2×4の8パターンでやってみましょう。

For文を使って、色のパターンを変えていきます。

text = '緑色 赤色 紫色 白色 黒色 青色 茶色 黄色'
back_col = ['white','black']
col_pallete = ['summer','Set2','terrain','Set3']

for i,bc in enumerate(back_col):
  for cp in col_pallete:
    wordcloud = WordCloud(
        width=900,
        height=500,
        font_path= '/content/RictyDiminished-Bold.ttf',
        collocations = False,
        background_color=bc,
        colormap = cp,
        ).generate(text)

    file_name = '0' + str(i) + '_' + bc + '_' + cp + '.png'
    wordcloud.to_file('/content/img/' + file_name)

最後は.to_fileでファイルを保存していきます。_

以下のように8パターンの画像ができました!

様々なカラーマップで作成したWordCloud

最後に

パパ
あこちゃんどうだった?
あこ
コードはシンプルなんだね。
パパ
そうそう、書式設定のために少しオプションがあるけど、基本的にはシンプルなんだ

いかがでしたでしょうか?

よく使われる言葉が大きく表示されるので直感的にわかっていいですよね。

ぜひみなさんも試してみてください!