本記事ではPythonでワードクラウドを作成する方法を紹介します。
ワードクラウドとは何か
ワードクラウドというのは文章やテキストからよく使用される単語を抽出し、単語の出現頻度を資格したものです。出現頻度の高い単語を大きく、出現頻度の低い単語を小さく表示しております。
下記は太宰治の人間失格をワードクラウド化したものです。「自分」という単語が大きく表示されているので出現頻度が高いことがわかります。
事前準備
ワードクラウドを作成するには、対象の文章、ライブラリ、日本語フォントを用意する必要があります。
対象の文章
まずはワードクラウドを作成する対象の文章を作成します。
今回は太宰治の人間失格を使います。下記から取得しました。
太宰治 人間失格
ライブラリ準備
ワードクラウドを作成するには形態素解析ツールとワードクラウドライブラリをインストールする必要があります。下記のコマンドでインストールができます。
pip install mecab-python3 unidic-lite wordcloud
フォント準備
続いて日本語のフォントを下記のURLからダウンロードします。

IPAフォント Ver.00303 | 一般社団法人 文字情報技術促進協議会
実装
こちらのコードでワードクラウドを作成できます。
# ①ファイル読み込み
f = open("人間失格.txt", encoding='utf-8')
raw = f.read()
f.close()
# ②文章から名詞を抽出する
import MeCab
tagger = MeCab.Tagger()
node = tagger.parseToNode(raw)
word_l = []
while node:
if node.feature.split(",")[0] == '名詞':
word_l.append(node.surface)
node = node.next
words_wakati=" ".join(word_l)
# ③ワードクラウドを作成する
from wordcloud import WordCloud
wc = WordCloud(font_path='C:\\Users\\USER\\Documents\\test\\font\\ipag.ttf').generate(words_wakati)
wc.to_file("wc.png")
まずは①で人間失格の文章をファイルから読み込みます。
続いて、②でMeCabを使用して、文章を単語に分割したうえで、名詞だけを抽出します。
最後に③ワードクラウドライブラリを使用してワードクラウドを作成します。その際に、ダウンロードしたフォントを指定します。
結果として、下記のようなワードクラウドが作成されます。

