LoginSignup
0
1

More than 3 years have passed since last update.

Python3でwordcloudを行うスクリプトファイル一式

Last updated at Posted at 2020-11-14

資源配置構成

Terminal
$ tree
├── const.py
└── word_cloud.py

1 directory, 2 files

( 定数定義スクリプト )

stop_wordsの語句リストは、以下を参考にさせていただきました。

PythonでWordCloudを作成してみました

const.py
fpath = "/Library/Fonts//ヒラギノ丸ゴ ProN W4.ttc"
stop_words = ['てる', 'いる', 'なる', 'れる','する', 'ある', 'こと', 'これ', 'さん', 'して', 'くれる', 'やる', 'くださる',
              'そう', 'せる', 'した', '思う', 'それ', 'ここ', 'ちゃん', 'くん', '', 'て', 'に', 'を', 'は', 'の', 'が',
              'た', 'し', 'で', 'ない', 'も', 'な', 'い', 'か', 'ので', 'よう', '']

( 本体スクリプト )

wordcloudの解析対象に選んだテキスト文は、Wikipediaの「アフォガード」の項目から、一部の文章を抜粋しました。

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
$

word_cloud.png

スクリーンショット 2020-11-14 21.56.38.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1