taketea2018のアイコン画像
taketea2018 2026年02月20日作成 (2026年02月22日更新)
セットアップや使用方法 セットアップや使用方法 閲覧数 88
taketea2018 2026年02月20日作成 (2026年02月22日更新) セットアップや使用方法 セットアップや使用方法 閲覧数 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のアイコン画像
電子工作マガジンにデータサイエンス入門を連載させて頂いていました。終刊してしまい、残念です。掲載内容をリニューアルしたものと、続きを投稿する予定です。一読いただければ幸いです。
ログインしてコメントを投稿する