Python x データ分析 | ワードクラウドを用いたデータ可視化

Python x データ分析 | ワードクラウドを用いたデータ可視化

みなさん、こんにちは!

今回は「ワードクラウド」を用いたデータ分析を紹介します。

手順

今回はPythonの「wordcloud」を用います。

あらかじめ読み込みたいtextデータは「text_data.txt」とし、Pythonプログラムと同じ階層に配置しています。

サンプルコードは以下の通りです。

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# ワードクラウドに表示するテキストデータを用意します
with open('text_data.txt', 'r', encoding='utf-8') as file:
    text = file.read()

# WordCloudオブジェクトを作成します
wordcloud = WordCloud(width=800, height=400,background_color='white').generate(text)

# ワードクラウドを描画します
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

例)オバマ大統領 広島演説

少し前になりますが、アメリカのオバマ大統領が来日したい際の演説を可視化してみます。

データ元: https://www.nikkei.com/article/DGXMZO02903620X20C16A5FF1000/

結果は以下の通りになりました。

「war:戦争」「Hiroshima:広島」など、関連するワードを強く訴えていることが分かりました。

日本語を可視化するには?

では次に日本語をワードクラウド化してみます。

オバマ大統領の就任演説(日本語訳)を可視化します。

データ元:https://americancenterjapan.com/aboutusa/translations/4096/#jplist

結果は以下の通り、文字化けします。

フォントの設定

日本語対応のフォントを設定しないと文字化けが置きます。

プログラムを以下のように修正します。

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# ワードクラウドに表示するテキストデータを用意します
with open('text_data.txt', 'r', encoding='utf-8') as file:
    text = file.read()

# 使用するフォントのパスを指定します
font_path = 'C:/Windows/Fonts/meiryo.ttc'

# WordCloudオブジェクトを作成します
wordcloud = WordCloud(width=800, height=400,font_path=font_path,background_color='white').generate(text)

# ワードクラウドを描画します
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

フォントは「C:/Windows/Fonts/」内にあります。

メイリオの場合は「meiryo.ttc」となります。

再度プログラムを実行した結果が以下になります。

とりあえず、日本語は対応するようになりました。

ただ内容を見た感じ、接続詞が多く協調されてしまって、うまく可視化ができていません。

日本語を動詞、名詞、接続詞などを正しく分解する必要がありそうです。

そのためには「形態素分析」を実施する必要があります。

こちらは次回の課題とします。今回は以上です!

ではまた。

エラー: データの取得に失敗しました。