会議の文字起こしから、意思決定の質を多角的に評価するWebアプリケーション。
忖度・遠慮の検出、前提確認過多、批判的思考の欠如、意思決定の不明確さを自動で分析します。
| 軸 | 検出するパターン |
|---|---|
| 🛡️ 心理的安全性 | 上位者への忖度、無条件の賛同連鎖、批判・反論の抑圧、発言機会の偏り |
| ⚡ 議論の効率・構造 | 前提確認への過剰な時間、同じ話題の繰り返し、フェーズ遷移の不適切さ |
| 🧠 批判的思考 | 代替案の未検討、根拠のない合意、リスク・デメリットへの言及不足 |
| 🎯 意思決定の明確性 | 担当者未定、期限なし、根拠の未記録、曖昧な合意 |
- レーダーチャート(4軸スコア)
- 参加者別発言回数(役割推定カラー付き)
- 議論フェーズのタイムライン(発言単位 + 参加者別割合)
- 問題発言の引用カード(severity 別色分け)
- 優先度付き改善アドバイス
- 役職の記載不要 — 発言行動パターンからAIが役割を推定(役職を一か所でも記載すると精度が向上)
- Zoom / Teams の文字起こしをそのまま貼り付け可能 — ASR誤字・フィラーワード・ハイコンテクストな発言に対応
- Python 3.10 以上
- Anthropic API キー
git clone https://github.com/noguchi513/meeting-evaluator.git
cd meeting-evaluator
pip install -r requirements.txtcp .env.example .env.env を編集して API キーを記入:
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx
streamlit run app.pyブラウザで http://localhost:8501 が自動的に開きます。
- デモケースを読み込むか、会議の文字起こしを直接貼り付ける
- 会議の目的・議題を入力(省略可)
- 「🔍 分析を開始」 をクリック
- 結果を確認する
話者名: 発言内容
田中部長: 今日はQ4の施策について決めましょう。
山本: えーっと、現状の進捗を報告します。
鈴木: あの件ってどうなりましたっけ。
入力テキスト
│
▼
core/parser.py ── 「話者: テキスト」形式をパース
│
▼
core/structure.py ── LLM: 各発言のラベリング + 参加者役割推定
│
▼
core/stats.py ── ルールベース: 発言統計の集計
│
├─────────────────────────────┐
▼ ▼ (並列実行)
core/evaluators.py ── LLM × 4: 各軸の評価
│
▼
core/synthesis.py ── LLM: 総合評価・アドバイス生成
│
▼
app.py ── Streamlit UI / Plotly 可視化
claude-opus-4-7 (Anthropic)
4軸評価は ThreadPoolExecutor で並列実行し、処理時間を短縮。
meeting-evaluator/
├── app.py # Streamlit アプリ本体
├── requirements.txt
├── .env.example # API キー設定テンプレート
└── core/
├── types.py # データモデル (dataclass)
├── parser.py # 文字起こしパーサー
├── structure.py # 議論構造・役割推定 (LLM)
├── stats.py # 発言統計 (ルールベース)
├── evaluators.py # 4軸評価 (並列 LLM)
└── synthesis.py # 総合評価・アドバイス (LLM)
アプリ内に3つのデモを収録:
| # | シナリオ | 検出される主な問題 |
|---|---|---|
| 1 | 🖥️ システム移行 進捗確認 | 若手の懸念が無視される、スケジュール問題の曖昧化、ハイコンテクスト発言 |
| 2 | 📊 Q4営業戦略 計画レビュー | 強い忖度、根拠なし予算決定、有効な反論が形式的同意で封じられる |
| 3 | 🗺️ プロダクトロードマップ | 前提確認過多、代替案の比較はあるが担当・期限が不明確 |
| パッケージ | 用途 |
|---|---|
streamlit |
Web UI |
anthropic |
Claude API クライアント |
plotly |
レーダーチャート・棒グラフ・タイムライン |
pandas |
フェーズ集計 |
python-dotenv |
.env 読み込み |