自分のブログをWordCloudでざっくり分析してみた件

このブログってなんなの?

今、この「模索する俺たち」というブログをリニューアルしようとしています。

なぜリニューアルするのかというと、はじめにちょっと適当にブログを作り始めたのでデザイン(htmlというかcssというか)的にちょっと無理しているところがあったりするので、その辺をすっきりさせたいとかが理由です。

それによりちょっと見た目が変わるようなところがあるのですけど、ついでに各記事のカテゴリーの分け方も変えたいと思っています。

というのも、カテゴリーも適当に作ったので「雑記」が300件あって、「kindle」が5件とかアンバランスになったりしているのを是正したいです。

それではどういうカテゴリーにしたらいいのかなと思ったのですけど、考えてみたらこのブログって主に何書いてんのかわかんないなと思いました。

日々、好きなことを適当に書いているためです。

で、どうにか分析しようと思ったのですけど、いろいろ調べていたら「WordCloud」というのがあって、それでよく使う単語などをわかりやすく図示できるようです。
これができるとおもしろそうだなと思いました。

できあがり

で、結論をいうとこれです。

今までの各記事のタイトルでWordCloudを作ったらこうなりました。

おお、かっこいいし、おもしろい……。

出てくる単語の数で文字の大きさが変わるのですけど(色はランダム)、割とくっきりしましたね。

大きいのを見ると、

  1. メモ
    →メモ(雑記)としていろいろ書いたから多いですね。
  2. スマホ
    →特に初期のころはスマホとかガラケーの話を書きまくっていたので多いですね。
  3. 引っ越し
    →確かに、このブログ始めてからなぜか3回も引っ越したので多くなりましたね。
  4. ゲーム
    →好きだからそうなりますね。
  5. Switch
    →好きだからそうなりますね。

っていうか、なんか丸見えで恥ずかしい気もしないでもありません。

というわけで、このWordCloudの図を新カテゴリーの参考に……しようかと思いましたが、すでに「引っ越し」とかもそれっぽいカテゴリーあるし……、やっぱり別途自分で考えることにします。

WordCloudさん、ありがとうございました。

WordCloudの使い方、作り方についてのメモ

というわけで、ここからは話題を変えて、今回作ったWordCloudの作り方をメモしておきたいと思います。

ちょっと大変でしたけどできたら見た目のかっこよさもあって達成感がありました。

以下、ほぼ個人的なメモとしてわかったふりして書いていますが、詳しいことはよくわかっていませんのでよろしくお願いします。

用意したもの

1.Windows10で動くUbuntu(WSL環境)

先日、インストールしたやつを使いました。↓

2.WordCloudにするデータ

ブログの記事のタイトルを入れたテキストファイル(改行区切り)を用意しました。(普通の文章だったら別に改行入れずに続けて書いてもよさそう)

Linux(Ubuntu)で使うので、「サクラエディタ」で文字コードUTF-8、改行コードLFにして保存しました。

3.日本語フォント

WordCloudに使う日本語フォントが必要です。

何やら拡張子が.otfのフォントファイルが必要みたいです。(たぶん)

今回は「やさしさアンチック」を使わせていただきました。

フリーフォントやさしさアンチック(漫画用書体・セリフフォント)のダウンロード
やさしさアンチックはどんなフリーフォント? フリーフォントのやさしさアンチックは、自由にダウンロードし、商用・非商用問わず使用できます。 「アンチック体」とは、ゴシック体...

パソコンに最初から入っているフォントを使うと、ネットで公開するにあたってはライセンス的に怒られる場合があるので、権利関係が大丈夫なフォントを見つけて使った方がいいですね。

WordCloudを使えるようにする

基本的な流れはこちらを参考にさせていただきました。

wordcloud を Windows で Anaconda / Jupyter で使う(Tips) - Qiita
WindowsのAnaconda(Jupyter)環境で wordcloud を使う。シンプルにシンプルに手順だけ。ほぼ自分のメモ用。※ こういうときは gist を使うか悩みますが、誰かがみて…

ただし、私は今回WSL環境というのでやろうとしていてちょっと環境が違うので、以下の通りちょこちょこ改変しながらいきました。

まず、適当なフォルダに、上記のテキストデータとフォントファイルを入れて、Shift押しながらフォルダ内の空いているところを右クックしてLinuxシェルを開きます。

python3

と打ってみて、Pythonのバージョン3が起動することを確認したらPythonを

exit()

で終了。

続いて、以下でpip、wordcloud、janomeをインストールする。

sudo apt-get install python3-pip
python3 -m pip install wordcloud
python3 -m pip install janome

※Python3では上記の形のコマンドが必要でした。こちらを参考にしました。

Python3 > pipのインストール / numpyのインストール - Qiita
GeForce GTX 1070 (8GB)ASRock Z170M Pro4S Ubuntu 14.04 LTS desktop amd64Tensor…

うまくインストールされていないと、後で

ModuleNotFoundError: No module named 'wordcloud'

みたいなエラーが出ます。(出ました)

作る

ここまでで環境の準備は完了です。

後は実際に作ります。

辞書のファイルを作っておく

janomeというプログラム?が日本語の文章をうまいこと単語などに分割してくれるのですけど、たまにうまくいかないときがあります。

私は「スマホ」が「スマ」と「ホ」に分かれてしまったので、最初はでっかく「スマ」と書かれた画像が生成されまして何事かと思いました。

というわけで、微妙な単語については、こうですよと教えてあげる必要があります。

※詳しくはこちら。

404 NOT FOUND | doop
There is always an easier way to do it...

で、私は最終的にはこういう感じで辞書のファイルを作っていくつか登録しました。
(さっきと同じフォルダにuserdict.csvという名前でUTF-8、LFで作成)

実際には、まずWordCloudの画像を作ってみて、おかしいのがあればこのファイルに書き足してもう一度作ってみる……みたいな流れになります。

WordCloudを作るスクリプトファイルを作る

後はPythonのスクリプトを作っておきます。(ベースは最初のサイトよりいただきました。)

ファイル名は適当にwc.pyとしてUTF-8のLFで同じフォルダに保存しました。

なお、テキストファイル(title.txt)からデータを読み込むためこちらを参考にしました。

Python: テキストファイルの読み込み – read()、readlines()、readline()メソッド
以下の読み込み用テキストファイルを用いて、text.txtIt is meaningless only to think my long further aims idly.It is important to set my aims bu

▼wc.py ここから▼

## 分かち書き
## pip install janome
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer("userdict.csv", udic_type="simpledic", udic_enc="utf8")

text = ''

f = open('title.txt')
line = f.read()
f.close()

stop_words = [ u'ため', u'やつ', u'こと', u'か月', u'amp', u'とき', u'ところ', u'みたい', u'週間', u'kg',
 u'もの', u'さん', u'よう', u'そう', u'がい', u'ほう']

tokens = tokenizer.tokenize(line)
for token in tokens:
	parts = token.part_of_speech.split(',')
	if (parts[0] == '名詞'):
	text = text + ' ' + token.surface

print(text)

## 引き続きWordCloud
from wordcloud import WordCloud

wordcloud = WordCloud(background_color="white", font_path="./07YasashisaAntique.otf",
 width=1200,height=800,stopwords=set(stop_words), colormap='Dark2').generate(text)
wordcloud.to_file("./test.png")

▲ここまで▲

このスクリプトの最後の方の、font_pathにフォントのファイル名を指定します。

あと、中盤のstop_wordsというのが調整が必要なところで、表示する必要がない言葉をここに書き連ねておきます。

一度WordCloudを作ってみると、表示する必要のない文字が出てくると思うのでそれを見てここを修正して、再作成という流れになります。

ここまでのファイルの準備がうまくいっていれば、Linuxシェル上で

python3 wc.py

とやると処理が走って、フォルダに”test.png”というファイルが出来上がっているはず。

調整していく

一度出来上がるとかなり楽しくなってきます。

後は、うまくいっていない単語を辞書ファイルに登録したり、不要な単語をstop_wordsに追加したり。

場合によっては元のデータを開いてうまくいかないところを置換して修正したり。(「Toy-Con」を「ToyCon」に置換してしまったり、「Nintendo Labo」と「ニンテンドーラボ」といった表記ゆれを統一したり)

あと、色のパターンを変えたり…。

※色の変え方はこちらを参考にしました。

pythonでのwordcloudをカラフルにしたいです
pythonでwordcloudを作成しているのですが、ネットで見る画像に比べ、配色がとても地味です。 パラメータを見ても分からなかったので・・、カラフルな配色にする方法があればご教示頂きたいです。

作成するたびに配置や配色が変わったりするのでなかなか面白いものがあります。

私はこの調整の工程で1時間ほど遊んでしまいました。(それでもまだ変な文字列が出ているところもありますが)

まとめ

というわけで、後半やはり個人的なメモになってしまいましたが、とにかくWordCloudってのが面白かったということだけお伝えしたかったです。

おわり。

コメント

タイトルとURLをコピーしました