python版ワードクラウドのフォントファイルの準備方法【3選】

2 min読了の目安(約2000字TECH技術記事

Pythonのワードクラウドで日本語の文章を可視化する場合に使うフォントファイルの準備のしかたをまとめておきます。

ワードクラウドとは

テキストデータをフォントサイズや色で視覚的に表現するツールです。
例えば、私はプログラミングが好きです。プログラミングがあれば、幸せです。という文章を可視化するとこんな感じになります。

プログラミングという単語が2回出てきているため、他の単語よりもやや強調されています。

ちなみに、私の過去のツイートデータを可視化した結果がこちらです。

日本語の場合は、フォントファイルの指定が必要

おそらく多くの人が一度はつまずくと思うのですが、フォントファイルの指定です。

from wordcloud import WordCloud

# 入力テキストの読み込み
text = open('input.txt').read()
wordcloud = WordCloud(
            font_path='/Library/Fonts/Arial Unicode.ttf', # フォントファイルの指定
            background_color="whitesmoke",
            colormap="viridis",
            width=400, 
            height=200
            ).generate(text)

公式のサンプルコードには、フォントファイルの設定は書いていないのですが、日本語の場合、フォントファイルの指定なしで実行すると文字化けしてします。
試しに先程の文章をフォントファイルの指定なしで実行するとこうなります。

では、どのようにフォントファイルを用意すればよいか?
具体的な方法を3つ紹介します。

方法1: PCにあるファイルを使う

PC内にフォントファイルがあるのでそれを使うのが一番手っ取り早いです。

Macの場合は、/Library/Fonts 配下にあるはずです。
私の環境では、以下のファイルがありました。

% ls /Library/Fonts 
Arial Unicode.ttf

Windowsは、あまり詳しくないのですが、C:\Windows\Fonts 配下にあることが一般的なようです。

Linuxの場合は、デフォルトで入っていないケースもあると思うので、外部環境から取得する必要があります。方法2,3を試してみてください。

方法2: ワードクラウドのGitHubから取得する

ワードクラウドのGitHubにもSourceHanSerifK-Light.otfが入っているので、それを使うことができます。

上のフォントで実行する以下のような可視化結果になります。

ちょっとフォントが細いのが難点ですが、あまりこだわりが無ければこれを使うのもありです。

方法3: 外部環境から取得する

フォントにこだわりのある方は、任意のサイトから取得しましょう。
ただし、結構、怪しいサイトも多いので要注意です。

個人的に調べたなかでは、Googleの以下のページからフォントファイルがいろいろ選べるので、そこから取ってくるのがオススメです。
https://www.google.com/get/noto/

ちなみに、Macの場合、brewコマンドを使ってインストールすることもできると思いますが、
それだとシステム全体に反映されてので、それが嫌なら避けたほうがよいでしょう。