資源配置構成
Terminal
$ tree
├── const.py
└── word_cloud.py
1 directory, 2 files
( 定数定義スクリプト )
stop_wordsの語句リストは、以下を参考にさせていただきました。
const.py
fpath = "/Library/Fonts//ヒラギノ丸ゴ ProN W4.ttc"
stop_words = ['てる', 'いる', 'なる', 'れる','する', 'ある', 'こと', 'これ', 'さん', 'して', 'くれる', 'やる', 'くださる',
'そう', 'せる', 'した', '思う', 'それ', 'ここ', 'ちゃん', 'くん', '', 'て', 'に', 'を', 'は', 'の', 'が',
'た', 'し', 'で', 'ない', 'も', 'な', 'い', 'か', 'ので', 'よう', '']
( 本体スクリプト )
wordcloudの解析対象に選んだテキスト文は、Wikipediaの「アフォガード」の項目から、一部の文章を抜粋しました。
なお、テキストは、カレントディレクトリにあるファイルから読み込むように改めもよい。
const.py
#!python3
import const, MeCab
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 変数の初期定義
colour = "red"
mode = "summer"
# メソッド定義
def create_word_cloud(string_text):
tagger = MeCab.Tagger ("-Owakati")
words_string = tagger.parse (string_text)
if type(words_string) == str:
wordcloud = WordCloud(background_color=colour, colormap=mode,width=900, height=500, font_path=const.fpath, stopwords=set(const.stop_words)).generate(words_string)
return wordcloud
def render_word_cloud(wordcloud):
plt.figure(figsize=(5,5))
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("word_cloud.png")
if __name__ == '__main__':
text = """「affogato」はイタリア語で「溺れた(アイスクリーム)」の意である。かける飲み物はエスプレッソが最もポピュラーであるが、コーヒーや紅茶やリキューなどバリエーションが豊富で、かける飲み物によって『○○○アフォガート』と呼び名が変わる。日本では、バニラアイスクリームにエスプレッソコーヒーをかけたコーヒーアフォガート(イタリア語ではアッフォガート・アル・カッフェ affogato al caffè)がよく知られる。上述のイタリア語表記、またその発音から、『アフォガード』とするのは誤りである。"""
wordcloud = create_word_cloud(text)
render_word_cloud(wordcloud)
( 実行方法 )
Terminal
$ ls
const.py word_cloud.py
$ tree
├── const.py
└── word_cloud.py
$
$ python3 word_cloud.py
$ls
__pycache__ const.py word_cloud.png word_cloud.py
$