トップ «前の日(11-19) 最新 次の日(11-21)» 追記

kaztomo日記


2017/11/20

_ [Python]Twitterデータを可視化してみたい

「今、世の中の動きがどういう方向に進んでいるのかを知りたい」という欲求から、 自分が親しんでいる 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)

@cnet_japan 2017/11