2017/11/20 [長年日記]
「今、世の中の動きがどういう方向に進んでいるのかを知りたい」という欲求から、 自分が親しんでいる Twitter を使いつつ、出来れば Python 使って俺の欲求を実現出来ないものかと ググってみた。
そうすると、時々目の当たりにする「単語の出現率によって文字の大きさを変えて表示する」ヤツが 見つかった。wordcloud って言うそうだ。
見つけたサイト を元に、自分も早速試してみた。(^o^)/
自分の環境[ FreeBSD-10.3R + Python2.7 ] には存在していない janome と wordcloud を pip でインストール。
pip install janome pip install wordcloud #ついでに、Python3.5 向けにもインストール pip3 install janome pip3 install wordcloud
サイト のコードを jupyter notebook にコピペしつつ自分の環境にあわせて下記コードを編集。
# ログファイルから、一文ずつ texts 配列に格納
with open('twitter.log', 'r') as f:
    reader = csv.reader(f, delimiter='\t')
    texts = []
    for _row in reader:
        if len(_row) == 0:
            continue
        text = re.sub("http.*", "", _row[0].decode('utf-8'))
        #print text
        texts.append(text)
# counter 関数を使って一文ずつ格納されたtexts配列から名詞を抽出し、
# 「単語、出現数」ペアとなる辞書型変数と、「単語だけ」変数を取得する。
words_count, words = counter(texts)
# 取得した「単語だけ」配列を使い、1行に変換する。
text = ' '.join(words)
# word cloud で描画
fpath = u'/usr/local/share/fonts/TTF/kochi-gothic-subst.ttf'
wordcloud = WordCloud(background_color="white", font_path=fpath, width=900, height=500).generate(text)

[ツッコミを入れる]