
🏄 はじめに
前回の記事で、コーチングセッションの会話をひとことずつAIに読ませて、
「この発言はポジティブ?ネガティブ?それともニュートラル?」を数値で付けてもらいました。
無事に session_emotion.json
という、感情スコア付きのファイルも作れましたね。
でも!
数字だけだと、いまいちピンと来ない…
どのあたりで気持ちが上がって、どこで下がってるのか、流れで見たいじゃないですか。
というわけで今回は、このスコアをグラフにして「気持ちの波」を丸見えにします!
やることはシンプル
棒グラフと折れ線グラフの2種類を作ってPNGで保存するだけ。
これでWebポータルに埋め込めば、あとから見返してニヤニヤできます。
さあ、感情の波サーフィンに出発しましょう!🌊
🗂 用意するもの
今回使う道具はとってもシンプルです。
1️⃣ session_emotion.json
前回(第6回)で作った「発言ごとの感情スコア入りのJSONファイル」です。
忘れた方は前回の記事を復習して、PCやGoogle Driveに用意しておいてください。
✅ 2️⃣ Google Colab
いつもの作業場所です。
まだColabの基本が不安な方はこちらの記事をどうぞ👇
🔗 Colabの使い方まとめ
✅ 3️⃣ やってみる勇気と好奇心!
これが一番大事です。失敗してもJSONがあれば何度でもやり直せます。
準備ができたら、いよいよグラフを作っていきましょう!
📈 感情の波グラフを作ってみよう!
準備ができたら、さっそく session_emotion.json
を使って、感情スコアをグラフにしてみましょう!
今回は「棒グラフ」と「推移グラフ」の2種類を作って、会話の気持ちの動きをパッと見で分かるようにします✨
ステップ1:Colabで環境準備
まずは Google Colab を開いて、新しいノートブックを作りましょう。
今回のグラフでは、日本語が豆腐(□)にならないようにjapanize-matplotlib
を使います!
これがあれば面倒なフォント設定は一発で解決です。
以下のコードを、最初のセルにコピペして実行してください👇
# 日本語フォントを入れておく(念のため)
!apt-get -y install fonts-noto-cjk
# 日本語グラフを簡単にする便利パッケージ
!pip install japanize-matplotlib
# 必要なライブラリ
import json
import matplotlib.pyplot as plt
import japanize_matplotlib # ← これがポイント!
これで準備OK!
次は、前回作った session_emotion.json
を読み込んでいきます。
ステップ2:JSONを読み込む
japanize-matplotlib
の準備ができたら、前回作った session_emotion.json
を Colab にアップロードして読み込みます。
以下のコードを新しいセルにコピペして実行してください👇
from google.colab import files
import json
# ファイルをアップロードする
uploaded = files.upload()
# アップロードしたファイル名を取得
filename = list(uploaded.keys())[0]
# JSONを読み込む
with open(filename, 'r', encoding='utf-8') as f:
data = json.load(f)
# スコアだけ取り出す
scores = [item['score'] for item in data]
# 確認
print("スコア一覧:", scores)
アップロード画面が出てくるので、session_emotion.json
を選んでポイッと入れればOKです。
スコアのリストが表示されたら準備完了!
次はグラフ用のデータを整形していきましょう✨
ステップ3:データを整形
アップロードした JSON から感情スコアだけを取り出したので、次はグラフ用の X軸(発言番号) と Y軸(スコア) を準備します。
以下のコードを新しいセルにコピペして実行してください👇
# X軸:発言番号(1から順番)
x = list(range(1, len(scores) + 1))
# Y軸:感情スコア(すでに取り出したやつ)
y = scores
# 確認
print("発言番号:", x)
print("スコア:", y)
これで発言順とスコアのペアが完成です!
あとはこのデータをグラフに流し込むだけ 🎉
次は、いよいよ棒グラフを作っていきましょう!
ステップ4:棒グラフを作る
整形したデータを使って、まずは 発言ごとの感情スコアを棒グラフに してみましょう!
どの発言がポジティブ・ネガティブなのか、一目でわかります✨
以下のコードを新しいセルにコピペして実行してください👇
# 棒グラフを作る
plt.figure(figsize=(12, 6))
plt.bar(x, y)
plt.xlabel('発言番号')
plt.ylabel('感情スコア')
plt.title('発言ごとの感情スコア(棒グラフ)')
plt.grid(axis='y')
# 画像として保存
plt.savefig('graph_bar.png')
plt.show()
これで棒グラフが表示され、同時に graph_bar.png
という画像ファイルが保存されます。
棒グラフで発言ごとの感情の強さをチェックしたら、次は会話全体の「感情の波」を折れ線グラフで見ていきましょう🌊
ステップ5:推移グラフを作る
棒グラフで発言ごとの感情スコアをチェックしたら、次は会話全体の 「気持ちの波」を折れ線グラフで可視化 してみましょう!
今回は 累積なし で、発言ごとのスコアの上下をそのままつないで、感情のうねりをリアルに見ます。
以下のコードを新しいセルにコピペして実行してください👇
# 累積なし、スコアそのままの推移グラフ
plt.figure(figsize=(12, 6))
plt.plot(x, scores, marker='o')
plt.xlabel('発言番号')
plt.ylabel('感情スコア')
plt.title('感情の波(スコア推移グラフ)')
plt.grid()
plt.savefig('graph_wave_raw.png')
plt.show()
# 画像として保存
plt.savefig('graph_wave.png')
plt.show()
これで スコア推移グラフ が表示され、同時に graph_wave_raw.png
という画像ファイルが保存されます。
ステップ6:グラフの画像をダウンロードする
以下のコードを実行すればパソコンにダウンロードできます。👇(折れ線グラフと棒グラフ)
from google.colab import files
# 棒グラフの画像をダウンロード
files.download('graph_bar.png')
# 波形グラフの画像をダウンロード
files.download('graph_wave.png')
最後、レポートを表示する時に使うので、分かりやすい場所に保存しておいてください。
🗒 おさらいと次回
今回は、前回作った session_emotion.json
を使って、
✅ 発言ごとの感情スコアを棒グラフ にして、どの発言がポジティブかネガティブかを一目でチェック!
✅ 感情スコアの波を折れ線グラフ にして、会話の流れの中で気持ちのアップダウンを丸見えに!
✅ どちらのグラフも PNG画像として保存 しておいたので、あとからいつでもWebポータルに埋め込んで表示できます✨
これで「感情の波をデータで眺める準備」は完了!
次回はさらに一歩進んで、この感情の流れや話題の傾向から、GPTに“気づき”を引き出してもらいます!
🚀 次回のテーマ
- 各発言に 「話題タグ」 を自動で付ける
(例:雑談/学習/振り返り/ネガティブ思考 など) - 感情の波と話題の流れをもとに、
GPTに 「今回の気づき・感想・次に意識したいこと」 を文章化してもらう - 出来上がった“気づきレポート”を
report.json
のinsight
フィールド に保存 - ポータルで 300〜500文字程度のまとまった形で表示できるようにする
🧩 次回のアウトプット
「気づきレポート」が自動生成され、ポータルに載せられる!
これで「感情を可視化するだけ」で終わらず、次のアクションにつながる“学び”まで自動化できます。
お楽しみに!🚀✨
🔗 関連リンク|AI秘書ツール制作シリーズ
- 1️⃣ 第1回|文字起こし①:Whisperを動かす準備だけしよう!
- 2️⃣ 第2回|文字起こし②:録音ファイルをポイッと、Whisperで文字起こし!
- 3️⃣ 第3回|要点抽出①:ChatGPTで要点だけ抜き出してみた!
- 4️⃣ 第4回|要点抽出②:抽出結果をToDo形式に整えてみた
- 5️⃣ 第5回|要点抽出③:提出用レポートに仕上げてみよう!
- 6️⃣ 第6回|感情分析①:発言ごとの感情をAIで数値化してみた!
- 7️⃣ 第7回|感情分析②:感情の波をグラフで見える化してみた!←(今ここ)
- 8️⃣ 第8回|感情分析③:“気づき”を引き出すレポートをつくろう
- 9️⃣ 第9回|感情分析④:発話のバランスから見えてくること(比率分析編)
- 🔟 第10回|感情分析⑤:感情のゆらぎから“気づき”を拾ってみよう!
- 🏁 【第11回|完結】これが完成形!ポータルに載せる「report.json」をColabで作ろう
💡 迷ったらこちらも