1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WordCloudで可視化してみた

Last updated at Posted at 2022-12-20

はじめに

今回はWordCloudで好きな文章やテキストファイル、CSV、JSONファイルなどを可視化します。
文章はそもそも可視化されてるんじゃないかとツッコまれるかもしれませんが、最終的にはTwitterのAPIを使ってTweetを抽出してそれを可視化することを目的としているためこのように表現します。
WordCloudでは使われている文字の頻度によって表示される文字の大きさがかわるため何を伝えたいかなどがわかりやすくなります。

環境

macOS Ventura 13.0.1
Google Colaboratory

構成

Google Colaboratoryで使うPythonファイルと同じディレクトリにテキストファイルを事前に用意しておきます。

.
├── WordCloud.ipynb
└──  BigBen.txt

ゴール

今回のゴールはテキストファイルを読み込んでそれを画像表示することです。

WordCloudに使うテキストの資料

今回WordCloudに使うテキストは私個人が好きなスポーツのNFLから抜粋しています。
私の大好きな選手が今年引退をしてその時のコメントを下記のページからテキストファイルにまとめました。

このまとめたテキストファイルを "BigBen.txt" とファイルに名前を付けています。
ここはお好きなテキストファイルをお好きな名前で使って下さい。

コード

①〜④はコードブロックを分けて作成したため番号を振っています。
一つのブロックで実行しようとしたらエラーが出てたので分けて実行をすると動かすことができました。


from google.colab import drive
drive.mount('/content/drive')

cd drive/My Drive

cd WordCloud

from wordcloud import WordCloud
from matplotlib import pyplot as plt

with open("BigBen.txt", "r", encoding="utf-8")as f:
     text=f.read()

# ワードクラウドの作成
wordcloud =WordCloud( 
    background_color="white").generate(text)

plt.imshow(wordcloud)

GoogleDriveのimport

ここはGoogle Colaboratoryを使う方は同様にして下さい。
今回使うテキストファイルをGoogleDriveに入れる場合に必要です。

from google.colab import drive
drive.mount('/content/drive')

GoogleDriveをimportしようとすると、下記の画像のように承認を求められますので、問題なければそのまま進んでください。

スクリーンショット 2022-12-18 23.42.58.png

スクリーンショット 2022-12-18 23.43.47.png

スクリーンショット 2022-12-18 23.44.29.png

マウントが無事に完了するとコードの実行結果でマウントができたことがわかります。

スクリーンショット 2022-12-18 23.45.43.png

あくまでGoogleDriveからファイルを読み込める状態にしただけですので、ディレクトリを変えたい方は変更をお願いします。

ディレクトリの変更

上記のコードはGoogleDriveをimportしただけでディレクトリの移動を行っていないためディレクトリの変更を行います。

cd drive/My Drive
cd WordCloud

import

WordCloudライブラリを使うためのインポートと、実行結果をノートブック上で確認できるようにするためにmatplotlibをインポートします。
実行結果をノートブック上で確認せずに、画像ファイルとして保存する場合であればmatplotlibのインポートは必要ありません。

from wordcloud import WordCloud
from matplotlib import pyplot as plt

テキストファイルの読み込み

with openメソッドでテキストファイルを指定して読み込みを行っています。
open()の引数modeを"r"とすると読み込み用ファイルとして開かれます。
デフォルト値が"r"なのでそのまま使用します。

with open("BigBen.txt", "r", encoding="utf-8")as f:
     text=f.read()

WordCloudの作成

作成したいWordCloudの設定をここに書き込みます。
今回は背景色だけ指定しました。
細かく設定することも可能ですので色々試してみると面白いかもしれません。

wordcloud =WordCloud( 
    background_color="white").generate(text)

ノートブック上での描画

最後の1行でノートブック上での描画をしています。

plt.imshow(wordcloud)

実行結果

qiita_wordcloud .png

Pittsburgh Steelersというチーム名の選手なのですが、
love, football, organization, thankなどアメフトや組織に対する感謝や愛を伝えているのかなと感じられるのではないでしょうか。

画像として保存したい場合

例えばノートブック上での表示だけでなく画像として保存したい場合は、

wordcloud.to_file('wc.png')

()内はファイル名になりますので好きなファイル名を指定して下さい。

WordCloudの設定を色々した場合

wordcloud =WordCloud( 
    # 背景色の指定
    background_color="gray",
    # 横幅の指定 
    width=480,
    # 高さの指定
    height=320,
    # マスクの輪郭を描画する時の幅
    contour_width=5, 
    # 輪郭を描画する色
    contour_color='blue').generate(text)

実行結果は下記です。
qiita_wordcloud2.png

まとめ

WordCloudは実行結果が毎回かわるのも面白みの一つだと思います。
今回は英文をそのまま使っているので「said」などの動詞もたくさん使われているからWordCloudの結果内で大きくなってしまいます。
動詞を取り除く処理の追加が今後必要ですね。
また日本語をWordCloudを使って可視化したい場合はMeCabというライブラリを使うことによって日本語を分解してつかうことができますので、そちらもやってみたいですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?