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)