Python

【初心者向け】伸びてるツイートをWordCloudで可視化してみた

はじめに

本記事では、Python初心者がWordCloudを利用してツイッターで伸びていた投稿を1つのファイルにまとめたものを解析し、可視化するまでをご紹介します。

wordcloud_Dark2

動作検証環境

今回の動作検証環境は以下の通りです。

作業エディタ:VSCode
OS:MacOS 11.5
Pythonバージョン:Python3.8.5

※Pythonのバージョンが3.9以降だとなぜかうまく動かなかったです…

Pythonの開発環境が整っていない方はこちら

python開発環境をインストールする
【2021年版】Python開発環境をインストールする【2021年版】Python開発環境をインストールする 本記事では、Pythonの開発環境をMac環境にインストールする方法を説明して...

WordCloudの利用方法

今回は日本語のツイートを形態素解析していきますので、すこ〜しだけ手順が増えます。
では、下記の4つの手順で説明していきます。

  1. Homebrewをインストールする
  2. HomebrewでMeCabと単語辞書をインストールする
  3. Pythonにライブラリをインストールする
  4. MeCabを利用してソースコードを書いていく

形態素解析とは、

自然言語で書かれた文を言語上の最小単位である形態素に分割し、それぞれの品詞や変化などを割り出すこと。 ITの分野ではコンピュータによる自然言語処理の一つとして、かな漢字変換や全文検索、機械翻訳などで用いられる。

今日も僕はPythonで何かを作ります

今日 / も / 僕 / は / Python / で / 何か / を / 作り / ます /

Homebrewをインストールする

まずは、今回利用したいライブラリをインストールするためにHomebrewというツールをインストールしていきます。

Homebrewは、macOSオペレーティングシステム上のパッケージ管理システムです。
Windowsなら簡単にインストールできるけど、MacだとHomebrewのようなパッケージ管理システムがないとダメみたいです。

インストール方法については、Homebrewのインストールが参考になりました。
※著者は、Xcodeのインストールで躓いたのでこちらの「MacOSでCommand line tools for XcodeとHomebrewのインストール」も参考にしました。

HomebrewでMeCabと単語辞書をインストールする

次に、今回利用したいMeCabと単語辞書をターミナルからインストールしていきます。
下記の2つのコマンドを実行してください。
※いつものとは違うbrewコマンドを利用するのでご注意ください。

1. MeCabのインストール
brew install mecab
2. 単語辞書のインストール
brew install mecab-ipadic

Pythonにライブラリをインストールする

最後の準備作業です。
Python環境でMeCabを利用できるようにライブラリをターミナルからいつものpipコマンドでインストールしていきます。

MeCabをインストール
pip install mecab-python3

MeCabを利用してソースコードを書いていく

では、開発環境が整ったので実際にコードを書いていきましょう!

ライブラリのインポート

今回必要なライブラリは以下の3つになります。

import MeCab
from matplotlib import pyplot as plt
from wordcloud import WordCloud

MeCab: オープンソースの形態素解析エンジン、日本語の解析によく利用される。
pyplot: グラフ描画のためのライブラリ。
WordCloud: ワードクラウドのためのライブラリ。

WordCloudに利用する文章を読み込み

今回は、WordCloudで利用する文章をテキストファイルから読み込んで描写するロジックとしましたので、テキストファイルの在処を指定していきます。

# 読み込みファイル
README = './twitter_text_sheet.txt'

文章をリスト化

次に、文章を読み込み、形要素に分けていきます。
ここで、不要な文字列は除外したいので名詞だけを取り出したリストを作成していきます。

# テキストファイルを読み込み
with open(README, mode='rt', encoding='utf-8') as fi:
    source_text = fi.read()

# 名詞を取り出す
word_list = []
while node:
    word_type = node.feature.split(',')[0]
    if word_type == '名詞':
        word_list.append(node.surface)
    node = node.next

最後にサンプルコードも添えておきます。

サンプルコード

import MeCab
from matplotlib import pyplot as plt
from wordcloud import WordCloud

# 読み込みファイル
README = './twitter_text_sheet.txt'
# 環境に合わせてフォントのパスを指定
FPATH = '/Applications/work/Python/WordCloud/IPAMTTC00303/ipam.ttc'

with open(README, mode='rt', encoding='utf-8') as fi:
    source_text = fi.read()

# MeCabの準備
tagger = MeCab.Tagger()
tagger.parse('')
node = tagger.parseToNode(source_text)

# 名詞を取り出す
word_list = []
while node:
    word_type = node.feature.split(',')[0]
    if word_type == '名詞':
        word_list.append(node.surface)
    node = node.next

# リストを文字列に変換
word_chain = ' '.join(word_list)

# ワードクラウド作成
W = WordCloud(
    width=640,
    height=480,
    background_color='white',
    colormap='Dark2',
    font_path=FPATH
    ).generate(word_chain)

plt.imshow(W)
plt.axis('off')
plt.show()

 

動作確認

wordcloud_Dark2

色を変えるとこんな感じにもなります!(colormap=’bone’)

wordcloud実行結果

実行結果からは、「自分」や「私」というワードが一番多かったようなので、やはり自分についての体験談などを発信されているものが共感を生み伸びているツイートが多いのかなと感じました。細かく見ていくと面白いワードもありますね。笑

参考サイト

Homebrewのインストール
MacOSでCommand line tools for XcodeとHomebrewのインストール
PythonでWord Cloudを作ってみた(和文編)
【これ1本でOK】MeCabをインストールしてPythonで形態素解析する方法【Mac】

ツイートのデータ元

まとめ

本記事では、Python初心者がテキストファイルの文章からWordCloudを利用してどんなワードがよく利用されているのかを解析し、可視化するまでをご紹介しました。
だいぶ前に流行ったWordCloudですが、実際に実行結果を見てみるとやっぱり面白かったですね。また機会があれば利用していきたいと思います。




ABOUT ME
lusk
EC歴3年、23歳。 通販カート会社に2018年新卒で入社し、エンジニア、プロジェクトマネージャー、新規事業の立ち上げを経験。 仕事を楽しくするためのツール作成や業務改善の仕組みを作ったりしてます。