見出し画像

seabornで見てみる「ぼっちゃん」(お遊びpythonシリーズ)

またまた昨日の記事の続き。昨日は夏目漱石の「ぼっちゃん」をメカブを使って形態素解析をしてWord Cloudに読み込ませてみたが、今日は頻出名詞をカウントしてグラフにしてみるテスト。

Pythonでグラフを描くのはseabornというライブラリが有名みたいで、これを使ってみる。一緒に文字数をカウントするためにコンテナデータ型とか言う標準ライブラリのcollectionsも使う。

サンプルコードは以下の通り。昨日はstop_wordsで要らない単語を使わない様にしたけど、今回はcollectionsに入ってるのでそれをdelで削除。most_commonというメソッドで頻出上位30位までの単語をグラフ描画に使う。

あっという間にタイトル画像の様なナイスなグラフが完成。めちゃくちゃ簡単。Python素敵。seabornは他にも色んなグラフが描けるみたいで、ちょっといじってみたいなー。仕事でも使えるグラフを書いて見ようっと。

import MeCab
import collections
import seaborn as sns
import matplotlib.pyplot as plt


f = open('sample.txt',encoding='utf-8')
text = f.read()  
f.close()

m = MeCab.Tagger ('-Ochasen')

node = m.parseToNode(text)
words=[]
while node:
   #print (node.feature)
   hinshi = node.feature.split(",")[0]
   hinshi2 = node.feature.split(",")[1]
   if hinshi in ["名詞"]:
       if hinshi2 in ['一般']:
           origin = node.feature.split(",")[6]
           words.append(origin)    
   node = node.next


c = collections.Counter(words)
del c['*']

sns.set(context="paper")
fig = plt.subplots(figsize=(8, 8))

sns.countplot(y=words,order=[i[0] for i in c.most_common(30)])
plt.show()

ちなみにフルサイズのグラフは以下。赤シャツだけで175回くらい出てきてるんだな。

画像1


この記事が参加している募集

おうち時間を工夫で楽しく

この記事が気に入ったらサポートをしてみませんか?