
🎯 今回のゴール
今回のゴールはズバリ、セッションの感情の波と話題の流れをもとに、AI(GPT)が自動で“気づきレポート”を生成してくれる状態を作ること!
これができると
- ✅ 感情分析グラフを「見るだけ」で終わらない
- ✅ 「次にどう活かすか」をAIが文章で教えてくれる
- ✅ 毎回のセッション振り返りがラク&深まる
- ✅
report.json
に保存してポータルに載せられる
つまり、振り返りの質が爆上がりして、継続学習に直結する!
これが今回のゴールです 🚀✨
🧰 準備するもの
今回必要なのは、たったこれだけ!
1️⃣ 感情スコア付きの発言ファイル
ファイル名:session_emotion.json
中身:各発言に
{
"text": "発言テキスト",
"score": -1
}
2️⃣ Google Colab 環境
- いつも通り Colab を使います。
┗ 参考:Google Colabってどう使うの? - OpenAI の API キーが設定されていること。
┗ 参考:ChatGPTのAPIキーの取得方法
3️⃣ 時間とお茶
- GPTが発言ごとにタグを付けるので、件数が多いとちょっと時間がかかります。
- お茶でも飲んでのんびり待ちましょう🍵✨
これだけ準備できれば、あとはステップに沿って実行するだけ!
🏁 はじめに
前回までで、セッションの「感情の波形グラフ」 を作って「どこで気持ちが上がった?下がった?」を可視化できるようになりました。
でも、これだけだと「ふーん、波形が見えたね」で終わっちゃいますよね?
本当に欲しいのは、その先の「じゃあ、次はどう活かす?」 です!
そこで今回は、感情の波形 + 発言の話題タグ をまとめて AI(GPT)に
- ✅ 今回の学びのポイント
- ✅ 特に意識すべきこと
を 150〜300文字の短い一言まとめ で提案してもらいます!
そして、生成した「気づきレポート」はreport.json
に insight
フィールド として保存してポータルに載せるだけ!
つまり今回やることを一言で言うと“感情分析を振り返りに直結させる自動レポート化” です💡
準備ができたら、次は各発言に「話題タグ」を付けように進みましょう!🚀
🗂️ ステップ1|各発言に「話題タグ」を付けよう
感情スコアだけでは「この発言って何の話題だったの?」 は分かりません。
そこで今回は、AIに各発言の内容を分析させて、話題タグ を自動で付けます!
🎓 どんなタグを付ける?
例としてはこんな感じ👇
タグ | 意味 |
---|---|
✅ 雑談 | 世間話、余談 |
✅ 学習 | メインの学習内容 |
✅ 振り返り | 進捗や成果の振り返り |
✅ ネガティブ思考 | 不安・言い訳・自己否定など |
これを GPT に判断させるだけでOK!
後で「気づきレポート」を作るときに、このタグが大活躍します。
🗂️ 元データをColabにアップロードしよう
まずは前回作った session_emotion.json
を Colab にアップロード!
from google.colab import files
# アップロードコード
uploaded = files.upload()
ダイアログが出たら、session_emotion.json
を選んでアップロードしてください。
📂 アップロードしたファイルを読み込む
import json
# 読み込む
with open("session_emotion.json", "r") as f:
data = json.load(f)
# 先頭だけ確認
print(data[:2])
🤖 GPTでタグを付けよう
次に、各発言にタグを付ける関数を用意!
from openai import OpenAI
client = OpenAI()
def tag_topic(text):
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "あなたは会話を分析して話題タグを1つだけ返すAIです。例:雑談、学習、振り返り、ネガティブ思考。"
},
{
"role": "user",
"content": f"発言: {text}\n\nタグ:"
}
]
)
return response.choices[0].message.content.strip()
🔁 全発言にタグを付けてみよう
for item in data:
item["tag"] = tag_topic(item["text"])
# 結果確認
print(data[:2])
💾 タグ付きで保存してダウンロードする
最後に、新しいファイル名で保存してダウンロードしておくと便利です。
import json
from google.colab import files
# ✅ JSONを保存
with open("session_emotion_tagged.json", "w") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# ✅ ファイルが出来てからダウンロード
files.download("session_emotion_tagged.json")
✅ ファイルの中身を確認する
タグ付けが終わった session_emotion_tagged.json
は、中身がこうなっているはずです👇
例:
[
{
"text": "この単語が覚えられなくて…",
"score": -0.3,
"tag": "学習"
},
{
"text": "最近忙しくて全然勉強できてないんです…",
"score": -0.5,
"tag": "ネガティブ思考"
},
{
"text": "でも前より発音は良くなった気がします!",
"score": 0.4,
"tag": "振り返り"
}
]
見方はこんな感じ👇
text
→ 元の発言score
→ 感情スコア(前回から)tag
→ 今回 GPT が付けた話題タグ
✅ 今回のタグをつけるポイント
- 1発言にタグは1つ! 複数はつけない。
- タグ名は決めた候補だけにする。
- 保存は上書きでも新規でもOK。
これで、発言+感情スコア+話題タグ の完全セットができました!
次は ✍️ ステップ2 で、「気づきレポート」を GPT にまとめてもらいましょう🚀
✍️ ステップ2|感情の波とタグをまとめて “気づき” を生成!
発言ごとに
- ✅ 感情スコア
- ✅ 話題タグ
がそろったら、いよいよ今回のメイン!
これらを まるっと GPT に渡して、AIに“気づきレポート”を自動生成させます!
🎓 何をやる?
AIにお願いするのは、ズバリこれ
- 今回のセッションで得られた 気づき
- 褒めポイント・ポジティブ要素
- 改善ポイント・次に意識すること
これを 150〜300文字 にまとめて提案してもらいます。
これさえあれば、人間が1から振り返りを書く必要ナシ!
毎回サクッとレポートが完成します。
🗂️ 使うデータは session_emotion_tagged.json
ステップ1で作った、感情スコア+話題タグ付きのファイル を使います!
✅ ① ファイルをColabにアップロード
前と同じやり方で OK👇
from google.colab import files
uploaded = files.upload()
session_emotion_tagged.json
を選んでアップロード!
✅ ② データを読み込む
import json
with open("session_emotion_tagged.json", "r") as f:
data = json.load(f)
print(data[:2]) # 先頭だけ確認
✅ ③ GPT に気づきをまとめさせる
次に、読み込んだデータを GPT に渡して、学びの一言エッセンス150〜300文字の“気づき” を生成します。
from openai import OpenAI
client = OpenAI()
# ショート要約用プロンプト
insight_prompt = """
以下の発言一覧には、各発言の感情スコアと話題タグが含まれています。
これを踏まえて、今回のセッションの「学びのポイント」「特に意識したいこと」だけを
150〜300文字で端的にまとめてください。
詳細は書かず、振り返りのエッセンスだけにしてください。
"""
# 発言概要を簡易で作る
utterance_summary = "\n".join(
[f"{i+1}. {item['text']} (スコア: {item['score']}, タグ: {item['tag']})"
for i, item in enumerate(data)]
)
# GPT呼び出し
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "あなたは学習セッションの要点だけを短く要約するAIです。"
},
{
"role": "user",
"content": f"{insight_prompt}\n\n発言一覧:\n{utterance_summary}"
}
]
)
# 結果
insight = response.choices[0].message.content.strip()
print("生成された短い気づきレポート:\n", insight)
# 文字数確認
print(f"文字数: {len(insight)} 文字")
💡 これで準備完了!
これで、感情の波形と話題タグを活かした“気づきレポート” が、自動で手に入りました!
次はこのレポートを report.json
に保存して、ポータルで使える形に整えます!
💾 ステップ3|report.json
に insight
を保存しよう
ステップ2で、「短くまとめた気づきレポート(insight)」 が完成しました!
これをコーチ用/生徒用の詳細レポートと一緒にreport.json
にまとめて保存しましょう!
🎓 どうしてまとめるの?
- コーチ用レポート → 詳しい内容
- 生徒用レポート → 詳しい内容
- 気づきレポート(insight) → エッセンスだけ!
この3つを1つの report.json
にしておくと、ポータルで一括表示できて超便利です。
✅ ① 既存の .txt
をアップロード
まずは、すでに作ってある
coach_report.txt
student_report.txt
を Colab にアップロードします。
from google.colab import files
uploaded = files.upload()
✅ ② ファイルを読み込む
# コーチレポート
with open("coach_report.txt", "r") as f:
coach_report = f.read()
# 生徒レポート
with open("student_report.txt", "r") as f:
student_report = f.read()
✅ ③ 新しく report.json
を作る
ステップ2で生成した insight
を一緒に入れます!
import json
# 新しい report.json の中身
report = {
"coach_report": coach_report,
"student_report": student_report,
"insight": insight # ← ステップ2で作った短い要約
}
# 保存する
with open("report.json", "w") as f:
json.dump(report, f, ensure_ascii=False, indent=2)
print("✅ report.json 作成完了!")
✅ ④ 必ずPCにダウンロードする
最後に、お約束のバックアップ!
from google.colab import files
files.download("report.json")
📌 これで完成!
coach_report
→ 詳細版(コーチ向け)student_report
→ 詳細版(生徒向け)insight
→ 一言まとめ!
全部ひとまとめにした report.json
をポータルにアップすれば、誰でもすぐに振り返りOK!
🎁 これでできること
今回の「気づきレポート」で、感情分析の結果を “見えるだけ” から“活かせる振り返り” に進化させることができました!
これでできることは👇
- ✅ 感情の波形と話題タグから、学びのエッセンス を一言で確認できる
- ✅ 詳細な coach/student レポートとセットで保存できる
- ✅ ポータルで「何を次回意識すればいいか」が即わかる
- ✅ 毎回の振り返りが自動化されて、書く手間がゼロ!
つまり、「グラフ → 詳細 → 要点」 の3段階セットが完成!
これで、コーチも生徒も、迷わずに次の行動に移せる状態 が自動で作れます✨
📝 おさらいと次回
今回は、感情の波形 と 話題タグ を活かして、AI(GPT)が自動で “気づきレポート(insight)” を短く・わかりやすく まとめてくれる仕組みを作りました!
さらに、
- コーチ用の詳細レポート
- 生徒用の詳細レポート
- そしてエッセンスだけの気づきレポート(insight)
を全部まとめた report.json
を完成させたので、これでポータルに載せれば 「見る→振り返る→行動する」 が超スムーズになります✨
🚀 次回の予告
次回は、「誰がどれくらい話してたか?」 を分析して、コーチと生徒の発話バランス をグラフ化してみます!
お楽しみに!🚀
🔗 関連リンク|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で作ろう
💡 迷ったらこちらも