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

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

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

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

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

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

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

日々、好きなことを適当に書いているので、私もよくわかっていません。

で、どうにか分析しようと思ったのですけど、いろいろ調べていたら「WordCloud」というので図示したらおもしろそうだなと思ったのです。

できあがり

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

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

 

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

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

大きいのを見ると、

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

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

 

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

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

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

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

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

 

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

用意したもの

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

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

Windows10で気軽にLinuxが使えるようになっていたのでC言語やってみた件
たまに使いたくなるLinux私は普段Windowsのパソコン使っていますけど、たまには趣味的な感じでLinuxを使ってみたくなります。で、その前回のブームは約2年前でして、その時にWindowsのパソコン上でLinuxを動かすことができ...

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 amd64 TensorFlow v0.11 c...

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

ModuleNotFoundError: No module named 'wordcloud'

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

作る

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

後は実際に作ります。

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

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

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

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

※詳しくはこちら。

Janomeで形態素解析してみる – doop
前回に引き続きPythonネタ。 最近始めた業務でちょぃちょぃ話題になるのが「テキストマイニング」やら「自然言語解析」。 話には聞いて事あるし、理屈はわかっているつもりだけど、 実際にはどうやるんだろ?と思い、試してみた。 元々興味もあったしね。 やろうとしたこと

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

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

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

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

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

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

Python: テキストファイルの読み込み - read()、readlines()、readline()メソッド | Yukun's Blog
| Python: テキストファイルの読み込み - read()、readlines()、readline()メソッド

▼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をカラフルにしたいです|teratail
pythonでwordcloudを作成しているのですが、ネットで見る画像に比べ、配色がとても地味です。パラメータを見ても分からなかったので・・、カラフルな配色にする方法があればご教示頂きたいです。よろしくお願いします!↓↓今回作成した画像↓↓今回使用のソースコード # coding: utf-8#

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

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

まとめ

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

おわり。

テキストマイニング入門: ExcelとKH Coderでわかるデータ分析

テキストマイニング入門: ExcelとKH Coderでわかるデータ分析

  • 作者: 末吉美喜
  • 出版社/メーカー: オーム社
  • 発売日: 2019/02/26
  • メディア: 単行本(ソフトカバー)

コメント

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