88データサイエンス入門 第4回 ワードクラウドを表示する
データサイエンス入門
AIプログラミングで学ぶデータサイエンス
第4回 ワードクラウドを表示する
ワードクラウドとは、文章やデータ内で多く使われている言葉ほど大きく表示する自然言語処理技術NLP(Natural Language Processing)の一つです。ニュースサイトなどで多く見かけるようになりました。
文章をアップロードするとワードクラウドに加工してくれるwebサイトもありますが、原理を理解してプログラミングにより制作できるようになると様々な応用が可能になります。
前回はワードクラウドの予備知識と事前準備を行いました。文章を分かち書きから形態素解析できたでしょうか。今回は形態素解析結果よりワードクラウドを表示するプログラムを考えます。
〇動画は下記URLよりご視聴ください。
データサイエンス入門 第4回
https://youtu.be/JkHzPz9YhZw
〇スライド形式pdf解説書です。
データサイエンス入門 第4回 ワードクラウド
https://drive.google.com/file/d/1poX0yEPazixo0KEFF3GLjJ0TCF-zO-kk/view?usp=drive_link
〇ワードクラウド表示用サンプル文章です。
kakou_aipy_hajimeni.txt
https://drive.google.com/file/d/1UbHhCbpGoLCRcePoJsBUnraodT3zsw1r/view?usp=drive_link
〇サンプルプログラム
GoogleColaboratoryにアップロードすればすぐに動作を確認できます。実行結果のサンプル付きです。
# -*- coding: utf-8 -*-
#!/usr/bin/python3
import MeCab
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import codecs
import numpy as np
from PIL import Image
from google.colab import drive
drive.mount('/content/drive')
filename = "/content/drive/MyDrive/data_science/kakou_aipy_hajimeni.txt"
jtext=open(filename,"r",encoding="utf-8").read()
#print("jtext:",jtext)
chasen=MeCab.Tagger("Ochasen")
keitaiso=chasen.parse(jtext)
#print("jtext:",jtext)
#print("keitaiso:",keitaiso)
meisi = []
meisi_count=0
for gyou in keitaiso.split("\n"): #1行ごとに\nで分ける
#print("gyou:",gyou)
temp = gyou.split("\t")[0] #\tで区切られた0番目
#print("temp:",temp)
if temp == "EOS":#文末なら終わり
break
else:
temp2 = gyou.split("\t")[1].split(",")[0]#\tで区切った1番目の0番目 スマホ\t名詞,普通名詞・・・名詞を取り出す
#print("temp2:",temp2)
if temp2 == "名詞": #名詞だけ取り出す
meisi.append(temp)
meisi_count +=1
print("meisi:",meisi)
temp =','. join(meisi)
print("temp:",temp)
keyword = temp.replace(',',' ')
print("keyword:",keyword)
stwords=["temp","BLACK","okeru","flag"]
w_mask = np.array(Image.open('/content/drive/MyDrive/data_science/aip_black.png'))
wordcloud = WordCloud(font_path = '/usr/share/fonts/truetype/fonts-japanese-mincho.ttf',
background_color="white",
stopwords=stwords,
mask=w_mask,
width=1600,height=1200).generate(keyword)
plt.figure(figsize=(15,12))
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("word_cloud.png")
第4回_表示する_wordcloud.ipynb
https://drive.google.com/file/d/15OQS-3FWmKQBYSKaqdZD-SrFEyuD4AvJ/view?usp=drive_link
〇補足
公開している動画とPDFは電波新聞社刊行電子工作マガジンに連載された同題名の内容をGoogle NotebookLMにてまとめています
投稿者の人気記事

-
taketea2018
さんが
2026/02/20
に
編集
をしました。
(メッセージ: 初版)
-
taketea2018
さんが
2026/02/20
に
編集
をしました。
-
taketea2018
さんが
2026/02/20
に
編集
をしました。
-
taketea2018
さんが
2026/02/20
に
編集
をしました。
-
taketea2018
さんが
2026/02/22
に
編集
をしました。
ログインしてコメントを投稿する