演習:NLPカスタマーサポート改善計画を設計しよう
「理論は十分だ。ここからは手を動かしてフレームワークを形にしてほしい。」
田中VPoEがあなたにノートPCを渡す。
「NetShop社の状況を整理し、NLP導入の分析計画を立ててくれ。経営会議で使えるレベルのものを頼む。」
ミッション概要
NetShop社のカスタマーサポート改善に対して、NLP導入の分析フレームワークを設計する演習である。課題の定量化から技術選定、ロードマップ策定までを一貫して行う。
Mission 1: 課題の定量化(10分)
NetShop社のカスタマーサポートデータから、改善すべき指標を算出せよ。
データ:
- 月間問い合わせ: 5,000件
- サポート担当者: 15人(月給35万円)
- 手動分類の正確性: 72%(担当者間一致率)
- 平均初回応答時間: 48時間
- 顧客満足度(CSAT): 3.2 / 5.0
- エスカレーション漏れ: 月20件(クレーム対応遅延)
タスク:
- 手動分類の年間コスト(工数・金額)を算出する
- 分類ミスによる影響を定量化する(再分類の追加工数など)
- エスカレーション漏れの潜在損失を見積もる
- 改善目標のKPIを3つ以上設定する
解答例
# 課題の定量化
monthly_inquiries = 5000
classification_time_min = 5
misclassification_rate = 1 - 0.72 # 28%
reclassification_time_min = 10 # 再分類にかかる時間
# 分類の年間コスト
annual_classification_hours = monthly_inquiries * classification_time_min / 60 * 12
print(f"年間分類工数: {annual_classification_hours:,.0f}時間")
# 出力: 年間分類工数: 5,000時間
# 分類ミスの追加工数
misclassified = monthly_inquiries * misclassification_rate
reclassification_hours = misclassified * reclassification_time_min / 60 * 12
print(f"年間再分類工数: {reclassification_hours:,.0f}時間")
# 出力: 年間再分類工数: 2,800時間
# エスカレーション漏れの損失(1件あたり顧客離反リスク50%、LTV10万円として)
escalation_loss = 20 * 12 * 0.5 * 100000
print(f"エスカレーション漏れの年間潜在損失: ¥{escalation_loss:,.0f}")
# 出力: エスカレーション漏れの年間潜在損失: ¥12,000,000
# 改善目標KPI
print("""
改善目標KPI:
1. 分類精度: 72% → 90%以上
2. 平均初回応答時間: 48h → 4h以内
3. CSAT: 3.2 → 4.0以上
4. エスカレーション漏れ: 月20件 → 月2件以下
""")
Mission 2: 技術選定マトリクスの作成(10分)
NetShop社の要件に基づいて、NLP技術の比較マトリクスを作成せよ。
タスク:
- 「ルールベース」「統計ML」「BERT」「LLM」の4手法を比較する
- 比較軸として「精度」「速度」「コスト」「導入期間」「メンテナンス性」を設定する
- NetShop社の制約(予算500万円、3ヶ月以内の導入、エンジニア2名)を考慮する
- 推奨する導入戦略を提案する
解答例
技術選定マトリクス(NetShop社向け)
| 手法 | 精度 | 速度 | 月額コスト | 導入期間 | メンテナンス |
|------|------|------|-----------|---------|------------|
| ルールベース | C (70%) | A | ¥0 | 1ヶ月 | D(高負荷) |
| 統計ML | B (85%) | A | ¥5万 | 1ヶ月 | B |
| BERT | A (92%) | B | ¥10万 | 2ヶ月 | A |
| LLM API | A (90%) | C | ¥50万 | 0.5ヶ月 | A |
制約を考慮した推奨戦略:
Phase 1(月1): 統計ML(NB/SVM)でベースライン構築
→ 低コスト・短期間でまず動くものを作る
Phase 2(月2): BERT Fine-tuningで精度向上
→ 分類精度90%超を目指す
Phase 3(月3): LLMで回答生成を追加
→ 分類結果に基づく自動回答生成
理由: 予算500万円の範囲内で、段階的にROIを実証しながら導入できる
Mission 3: Kaggleデータセットの調査(10分)
本プロジェクトで使用するKaggleデータセットを調査し、NetShop社の課題にどう適用できるかを整理せよ。
対象データセット:
- Natural Language Processing with Disaster Tweets
- Toxic Comment Classification
タスク:
- 各データセットの特徴(件数、カラム、ラベル)を整理する
- NetShop社の課題との対応関係を明確にする
- データセットの制約と追加で必要な前処理を洗い出す
- 評価指標を選定し、その理由を述べる
解答例
データセット分析
1. Disaster Tweets(二値分類)
- 件数: 約10,000ツイート
- カラム: text, target (0/1)
- 特徴: 短文テキストの分類
- NetShop適用: 緊急度判定(緊急/通常)のプロトタイプ
2. Toxic Comment Classification(多ラベル分類)
- 件数: 約160,000コメント
- カラム: comment_text, toxic, severe_toxic, obscene, ...
- 特徴: 多ラベル分類、クラス不均衡
- NetShop適用: クレーム検出、エスカレーション判定のモデル
制約と前処理:
- 英語テキストのため、日本語対応は別途検討が必要
- Disaster Tweetsはクラス不均衡あり(サンプリング調整必要)
- Toxic Commentは多ラベルのため、マルチラベル分類手法が必要
評価指標:
- F1-Score: クラス不均衡に対応(精度と再現率のバランス)
- AUC-ROC: 閾値に依存しない全体的な識別能力
- Precision@K: 上位K件の分類精度(実運用で重要)
達成度チェック
- カスタマーサポートの課題を定量化できた
- 4つのNLP手法を比較マトリクスで評価できた
- 制約を考慮した導入戦略を提案できた
- Kaggleデータセットの特徴を整理できた
- 評価指標を選定し理由を述べられた
推定所要時間: 30分