🧪 開発・試作メモ

第8回|感情分析③:“気づき”を引き出すレポートをつくろう

第8回|感情分析③:“気づき”を引き出すレポートをつくろう

🎯 今回のゴール

今回のゴールはズバリ、セッションの感情の波と話題の流れをもとに、AI(GPT)が自動で“気づきレポート”を生成してくれる状態を作ること!

これができると

  • ✅ 感情分析グラフを「見るだけ」で終わらない
  • ✅ 「次にどう活かすか」をAIが文章で教えてくれる
  • ✅ 毎回のセッション振り返りがラク&深まる
  • report.json に保存してポータルに載せられる

つまり、振り返りの質が爆上がりして、継続学習に直結する!

これが今回のゴールです 🚀✨

🧰 準備するもの

今回必要なのは、たったこれだけ!

1️⃣ 感情スコア付きの発言ファイル

ファイル名:session_emotion.json

中身:各発言に

{
  "text": "発言テキスト",
  "score": -1
}

2️⃣ Google Colab 環境

3️⃣ 時間とお茶

  • GPTが発言ごとにタグを付けるので、件数が多いとちょっと時間がかかります。
  • お茶でも飲んでのんびり待ちましょう🍵✨

これだけ準備できれば、あとはステップに沿って実行するだけ!

🏁 はじめに

前回までで、セッションの「感情の波形グラフ」 を作って「どこで気持ちが上がった?下がった?」を可視化できるようになりました。

でも、これだけだと「ふーん、波形が見えたね」で終わっちゃいますよね?

本当に欲しいのは、その先の「じゃあ、次はどう活かす?」 です!

そこで今回は、感情の波形 + 発言の話題タグ をまとめて AI(GPT)に

  • ✅ 今回の学びのポイント
  • ✅ 特に意識すべきこと

150〜300文字の短い一言まとめ で提案してもらいます!

そして、生成した「気づきレポート」はreport.jsoninsight フィールド として保存してポータルに載せるだけ!

つまり今回やることを一言で言うと“感情分析を振り返りに直結させる自動レポート化” です💡

準備ができたら、次は各発言に「話題タグ」を付けように進みましょう!🚀

🗂️ ステップ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.jsoninsight を保存しよう

ステップ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秘書ツール制作シリーズ

💡 迷ったらこちらも

  • この記事を書いた人

SHIRAN

「コードは知らない。でも作れる。」AIとツールで便利を生む非エンジニア。挫折も経験しながら、今は作る楽しさを発信中。詳しくはこちら

-🧪 開発・試作メモ
-, ,