sentiment-analysis について
自動営業ボットの感情分析を設計するスキルで、見込み客の口調を読み取り、応答を調整する方法を扱います。感情の手掛かり、検出手法、チャネル差、例外、評価を取り上げます。
主な機能
- 01営業会話の感情を分類
- 02辞書・ML・ハイブリッド検出
- 03見込み客の口調に応じた応答
- 04チャネルと会話コンテキストの考慮
- 05検出と応答品質の測定
活用シーン
- 01懐疑的な見込み客に合わせたボットの口調調整
- 02不満の検出とエスカレーションの検討
- 03皮肉や複合的な感情の識別
- 04会話での感情判定ミスの検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ louisblythe/ sales-skills --skill sentiment-analysisインストール後、Claude Code で/sentiment-analysisを入力して読み込まれたか確認します。
詳細
セールスボットのセンチメント分析
自動化されたセールスボット向けのセンチメント分析システム構築の専門家です。見込み客のトーンを正確に把握し、その感情状態に合わせて応答を調整するシステムの設計を支援します。
初期評価
アドバイスを提供する前に、以下を把握してください。
-
コンテキスト
- ボットはどのチャネルで動作しますか?
- どのような会話を行いますか?
- セールスプロセスにおいて、感情のニュアンスはどれほど重要ですか?
-
現状
- センチメント検出を導入していますか?
- ボットは現在、感情的なメッセージにどのように対応していますか?
- トーンの不一致によって、どのような問題が生じていますか?
-
目標
- センチメント検出の精度が向上すると、何が可能になりますか?
- ユースケースにおいて、どの感情状態が最も重要ですか?
基本原則
1. センチメントを対応方針に反映する
- 同じメッセージでも、トーンによって適切な応答は異なります
- ポジティブなセンチメント=次の段階に進む機会です
- ネガティブなセンチメント=懸念に対処する必要があります
2. センチメントに過度に振り回されない
- センチメントはコンテキストであり、指示ではありません
- 全体像を把握するには、インテントと組み合わせます
- ネガティブなセンチメントも、反論などではよくあることです
3. 相手に合わせる。ただし、相手の態度をそのまま真似しない
- 適切なエネルギーで応答します
- 不満を抱えている見込み客に、過度に熱意を示さないでください
- 期待に胸を膨らませている見込み客に、淡々と応答しないでください
4. 判断に迷ったら、ニュートラルに
- 根拠のない熱意は、逆効果になることがあります
- 安全でプロフェッショナルなトーンなら、常に問題ありません
- 利益を逃すほうが、相手の気分を害するよりも得策です
センチメントのカテゴリ
主なセンチメント
ポジティブ:
- 関心がある、熱意がある、親しみやすい
- 会話に前向き
- 感謝を表している
ネガティブ:
- 不満を抱えている、いら立っている、怒っている
- 懐疑的、否定的
- 不快感を表している
ニュートラル:
- 事実に即した、ビジネスライク
- 親しみや冷淡さを示さない
- 情報に重点を置いている
セールスに特化したセンチメント
好奇心:
- 質問をしている
- もっと知りたいと思っている
- 前向きだが、まだ決断していない
懐疑的:
- 主張を疑っている
- 発言に異議を唱えている
- 証拠を必要としている
不満:
- 過去の経験
- 現在の問題による苦痛
- プロセスへの不満
切迫感:
- 時間的なプレッシャー
- すぐに必要としている
- 迅速な対応を望んでいる
親しみ:
- フレンドリーなトーン
- 信頼関係を築いている
- 好意的な態度
警戒心:
- 短い返答
- はっきりとした意思を示さない
- 自分を守ろうとしている
センチメントのシグナル
テキストのシグナル
ポジティブな兆候:
- 感嘆符(皮肉ではなく、本心を示すもの)
- 絵文字(😊、👍など)
- 「素晴らしい」「大好き」「楽しみ」「完璧」などの言葉
- 関心を示す質問
- 内容が長く、積極的に応答しているメッセージ
ネガティブな兆候:
- すべて大文字
- 複数の疑問符や感嘆符(不満を示す)
- 「不満」「がっかり」「いら立つ」「ひどい」などの言葉
- 短く、そっけない返答
- 皮肉を示す表現
ニュートラルな兆候:
- 率直な言葉遣い
- 情報を尋ねるだけの内容
- 感情を表す言葉がない
- 標準的な句読点
コンテキストのシグナル
以下を考慮してください:
- スレッド内の以前のメッセージ
- 会話の段階
- 前回の連絡からの経過時間
- 返信までの時間
- メッセージの長さの変化
センチメント検出の構築
アプローチ 1:辞書ベース
仕組み:
- 単語をポジティブ、ネガティブ、ニュートラルとしてスコア化します
- メッセージ全体のスコアを合計します
- 否定表現や強調表現を考慮します
辞書の例:
POSITIVE: {
"great": +2, "good": +1, "love": +3,
"excited": +2, "perfect": +2, "thanks": +1
}
NEGATIVE: {
"terrible": -3, "frustrated": -2, "annoyed": -2,
"disappointed": -2, "bad": -1, "hate": -3
}
INTENSIFIERS: {
"very": 1.5, "really": 1.5, "extremely": 2
}
NEGATORS: ["not", "never", "no", "don't", "won't"]
メリット:
- 実装が簡単です
- 仕組みが明確です
- 更新が容易です
デメリット:
- 皮肉を見逃します
- コンテキストを考慮できません
- ニュアンスの扱いに限界があります
アプローチ 2:ML ベース
選択肢:
- 事前学習済みのセンチメントモデル
- セールス会話でファインチューニングしたモデル
- LLM ベースの分析
LLM 用のプロンプト例:
Analyze the sentiment of this sales prospect response.
Categorize as: positive, negative, neutral, or mixed.
Also identify specific emotions: curious, frustrated, skeptical, warm, urgent.
Provide confidence score 0-1.
Message: "[prospect message]"
メリット:
- ニュアンスをより適切に扱えます
- コンテキストを考慮します
- 複雑な感情を検出します
デメリット:
- コストが高くなります
- レイテンシを考慮する必要があります
- 予測可能性が低くなります
アプローチ 3:ハイブリッド
各アプローチを組み合わせます:
- 迅速なベースラインとして辞書を使用
- 明確なシグナルにはルールを適用(すべて大文字=不満)
- ニュアンスのあるケースには ML を使用
- 会話履歴のためのコンテキストレイヤーを追加
応答でのセンチメントの活用
感情に応じた応答の調整マトリクス
| 検出された感情 | 応答の調整 |
|---|---|
| 前向き/温かい | 熱意に合わせ、会話を進めます |
| 好奇心がある | 情報を提供し、質問を促します |
| 中立 | プロフェッショナルに、率直に、価値を重視して対応します |
| 懐疑的 | 根拠を示し、懸念を認めます |
| 不満を感じている | 気持ちを認め、共感し、解決します |
| 緊急 | 迅速に対応し、要点を伝えます |
| 警戒している | 柔らかく対応し、信頼を築きます |
調整の例
同じ意図(関心がある)でも、感情は異なります:
温かく、関心がある場合: 「それはうれしいですね!ぜひ、どのように機能するかご紹介したいです。短いお電話をするなら、ご都合のよい時間はいつでしょうか?」
懐疑的だが、関心がある場合: 「時間をかける価値があるか、確かめたいというお気持ちはよくわかります。まず、先ほどおっしゃった懸念に関する事例を簡単にご紹介します。そのうえで、お電話するのがよいか一緒に判断しましょう。」
中立で、関心がある場合: 「ご関心をお寄せいただき、ありがとうございます。次のステップとして、お客様の具体的な状況を把握するために、15分ほどお電話でお話しできればと思います。火曜日と水曜日では、どちらがご都合よいでしょうか?」
否定的な感情への対処
不満を感じている見込み客:
- 不満を認めます
- 防御的にならないようにします
- 解決に集中します
- 担当者へのエスカレーションを検討します
応答例: 「それは大変でしたね。ご不便を解消できるよう、すぐにできることを確認します。[解決に向けた対応]」
怒っている見込み客:
- 否定的な態度に合わせないようにします
- 冷静かつプロフェッショナルな対応を保ちます
- 必要に応じて担当者にエスカレーションします
- 販売よりも関係性を優先します
チャネルごとの感情
SMS
- 短いメッセージでは、得られる手がかりが少なくなります
- 絵文字がより一般的です
- 応答時間から関心度を把握できます
- 大文字や句読点がより重要な手がかりになります
メール
- より形式的で、感情表現は控えめです
- 文章の長さの変化から関心度を把握できます
- 書き出しと締めくくりのトーンが重要です
- 件名の感情表現
チャット
- よりカジュアルです
- リアルタイムの感情的なシグナルがあります
- メッセージの頻度から関心度を把握できます
- 絵文字やリアクションが一般的です
音声(文字起こし済み)
- 声のトーン(記録されている場合)
- 言葉の選び方
- 話す速さ
- 会話への割り込み
エッジケースと課題
皮肉の検出
課題: 「いいですね、また営業電話ですか」=肯定的ではなく、否定的です
アプローチ:
- 文脈を考慮します(依頼されていない連絡)
- パターンを認識します(「いいですね」は皮肉で使われることがよくあります)
- 皮肉の可能性がある場合は、信頼度を下げます
- 判断に迷う場合は、確認の質問をします
混在する感情
例: 「今まで見たものは気に入っていますが、価格には不満があります。」
アプローチ:
- 両方の感情を検出します
- 肯定的な面を活かしつつ、否定的な面に対処します
- どちらも無視しません
文化の違い
考慮事項:
- 率直さは文化によって異なります
- 絵文字の意味は異なります
- 求められる形式度
- 熱意の表し方
アプローチ:
- 地域ごとの傾向を意識します
- 中立的かつプロフェッショナルな対応を優先します
- 過剰に解釈しないようにします
チャネルに適した感情表現
通常の不満:
- 見込み客が自身の課題について苦労を伝えている(それが、あなたを必要とする理由です)
- これは健全な反応であり、懸念すべきものではありません
懸念すべき不満:
- あなたやあなたの会社に向けられている
- 会話の進行とともに強まっている
- コンプライアンスリスクを示すシグナル
実装
基本的な実装
function analyzeSentiment(message, context) {
// Quick lexicon check
let baseScore = lexiconScore(message);
// Rule-based adjustments
if (hasAllCaps(message)) baseScore -= 0.3;
if (hasPositiveEmoji(message)) baseScore += 0.2;
if (hasNegativeEmoji(message)) baseScore -= 0.2;
// Context adjustments
if (context.previousSentiment === 'negative' && baseScore === 0) {
baseScore = -0.1; // Carry forward
}
// Categorize
if (baseScore > 0.3) return { sentiment: 'positive', score: baseScore };
if (baseScore < -0.3) return { sentiment: 'negative', score: baseScore };
return { sentiment: 'neutral', score: baseScore };
}
応答の選択
function selectResponseTone(intent, sentiment) {
const toneMap = {
'positive': 'enthusiastic',
'negative': 'empathetic',
'neutral': 'professional',
'skeptical': 'proof-focused',
'frustrated': 'solution-focused'
};
return toneMap[sentiment] || 'professional';
}
測定と改善
指標
検出精度:
- 会話をサンプリングします
- 実際の感情をラベル付けします
- 検出結果と比較します
- 経時的に追跡します
応答の適切さ:
- ボットの応答は感情に合っていましたか?
- 見込み客はよい反応を示しましたか?
- 感情は改善しましたか、それとも悪化しましたか?
ビジネスへの影響:
- 対応した感情ごとのコンバージョン
- 感情ごとのエスカレーション率
- 顧客満足度
改善ループ
- 結果がよくなかった会話をサンプリングします
- 感情を正しく検出できていたか確認します
- 応答が適切だったか確認します
- 失敗に見られるパターンを特定します
- 検出ロジックまたは応答ロジックを更新します
尋ねるべき質問
さらに詳しい情報が必要な場合:
- どのチャネルの感情を分析していますか?
- ユースケースで最も重要な感情状態は何ですか?
- 感情を誤って読み取ると、どのようなことが起こりますか?
- 会話における感情にラベル付けした例はありますか?
- 現在、ボットは不満を抱えた見込み客にどのように対応していますか?
関連スキル
- intent-detection:相手の要望を理解するため
- tone-matching:応答のスタイルを調整するため
- handoff-detection:エスカレーションが必要なタイミングを判断するため
- conversational-flow-management:会話を進行させるため