wordcloudを使ってPythonでワードクラウドを作る
wordcloudはワードクラウド(タグクラウド)を作成するPythonのパッケージです.
Webサイトや口コミ,小説等から取得したあるテキストから単語の出現頻度をカウントし,よく使われている単語を強調して図示します.
目次
テキストファイルの読み込み
input.txt
を変数text
に格納します.
with open('input.txt', 'r', encoding='utf-8') as f: |
日本語テキストの場合
読み込んだテキストが日本語である場合,スペース区切りになっていませんから,そのままではワードクラウドを作ることができません.
そこで,MeCabを使用してスペース区切りテキストにします.
形態素解析
pip3 install MeCab
により,予めMeCabをインストールしているものとします.
このとき,変数text
のテキストを形態素解析するには
import MeCab |
とします.
いま,変数node
には各単語が文法的な情報とともに入っています.
除去する単語のリスト作成
テキストには,あまり重要でないもの(例えば,「もの」・「こと」や指示代名詞「あれ」・「これ」)があるでしょう.
除去する予定の単語をリストにしておきます.
stop_words = ['もの', 'こと', 'あれ', 'これ'] |
リスト化
変数node
から特定の品詞で,かつ,除去リストstop_words
に含まれないものを抽出します.
word_list = [] |
リストをスペース区切りテキストに変換します.
text = ' '.join(word_list) |
生成
さて,スペース区切りテキストが格納された変数text
から,以下のようにしてワードクラウドを生成します.
フォントへのパスやマスク画像は適当に選択ください.
from wordcloud import WordCloud |
出力
生成したワードクラウドを出力します.
wordcloud.to_file('output.png') |