着想
- 「技術交流を盛んにしよう!」という名目で開かれている会社の飲み会イベントがあります
- しかし、実際はただ世間話しながら酒飲んだり飯食ったりするだけで終わることが多い印象です
- 自分から話題を提供できるほど技術トピックに詳しいわけでもないので悩ましい
- そこで参加者に技術雑談の話題を提供するような何かがあれば良いと考えた
- 例えば、ホワイトボードに「最近ホットな技術ワードを並べたワードクラウドを掲示してみる」とかはどうだろう?
- そんな経緯で、「最近ホットな技術ワードをワードクラウド形式で出力する」をやりたくなった
まずはワードクラウドを作る
- 技術雑談を促進する手段としてワードクラウドが適切かどうかはさておき、まずはワードクラウドを作れなければ話にならない
- 軽くググったところ、pythonにそのようなライブラリがあるらしい。とりあえずchat GPTにコードを書かせてみた
依存環境
pip install wordcloud matplotlib
コード
from wordcloud import WordCloud
import matplotlib.pyplot as plt
with open('sample.txt', 'r', encoding='utf-8') as f:
text = f.read()
wordcloud = WordCloud(
width=800,
height=400,
background_color='white'
).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
- chatGPTにもらったコードそのままです
- matplotlibアンマワカンナイですが、適当にサッと作るだけならもはや理解していなくても図の出力は可能
- 学生時代グラフ描画するのに四苦八苦していたアレはなんだったんだ……。
出力結果
使ったデータ
- スティーブジョブズのスピーチを全文ぶっ込みました
- 適当にやった割には、life Apple college dropped 辺りがデカめに出ていて、ジョブズのスピーチらしさが出てるなと思いました
- ソースはこちら https://sakanoue-clinic.jp/diary/jobs_speech_at_Stanford_in_2005.html
雑感など
- 記事書く時間やトラブルシューティング等も含めてここまでで10分もかからず。ちょっとした遊びをしたい時のおもちゃとしても最適なchatGPTくんなのであった
- 飲酒した後の酔ってる頭で、寝る前のちょっとした時間でもこの程度の記事が書けてしまうくらいにはコード生成や調べ物が爆速でできる。良い時代になった
今後の展開
- なお、記事冒頭で示した「技術交流のためのワードクラウドを生成」は全然達成できていない
- 今回はジョブズのスピーチ全文を適当にぶち込んだが、この部分を「最近ホットな技術ワードが含まれた文章」に置き換える必要がある
- 今後の課題は以下のような感じか
- ホットな技術ワードをどうやって収集するか
- 収集したデータから、どうやって「自然な」ワードクラウドを作るか
- 弊社のエンジニアから見て、「ホットな技術ワード群だなぁ」と思わせるほどの精度を実現するにはどうすれば良いか
- 上記の課題に取り組んで「ホットな技術ワードのワードクラウド」を実現するかどうかは今後の私の気分次第です。悪しからず
- 他にも、単語を1個だけ入れて、関連ワードを生成AIに作ってもらって、生成されたワード群からワードクラウドを作る、みたいなウェブアプリを作ってみてもいいかも
- 「webアプリに生成AIを組み込む」の練習にはちょうど良いかも
- ただ既存で似たような機能を提供しているものはありそうな気がする
- 勉強のためと割り切って車輪の再発明でも良いが、何か独自要素を付け加えてオリジナル性を出してみたい感じもある
- 他にも、単語を1個だけ入れて、関連ワードを生成AIに作ってもらって、生成されたワード群からワードクラウドを作る、みたいなウェブアプリを作ってみてもいいかも
寝る前の酔った頭で書き上げた記事ですが、いかがでしたでしょうか。
ワードクラウドを想像以上に手軽に作れて自分としては面白かったです。ChatGPT様様。(最近全ての記事で似たようなこと言ってる気がする)
繰り返しになりますが、記事冒頭で掲げた目標は全然達成できていないので、記事タイトルに(第一歩)と付けさせていただきました。
最後の方はネタのメモ帳みたいになってしまい恐縮ですが、気がむいたらそこに書いたようなことを実践してみようかなぁと思ったり、思わなかったり。