mcpField
S
sentiment-analysis

sentiment-analysis

github.com/louisblythe营销与增长192415 次安装40 周前更新
代码仓库

关于 sentiment-analysis

用于为自动化销售 Bot 设计情绪分析的技能,帮助团队判断潜在客户的语气并调整回复。内容涵盖情绪信号、检测方法、渠道差异、边缘情况和评估。

主要功能

  1. 01识别销售对话中的情绪
  2. 02采用词典、ML 或混合检测
  3. 03根据潜在客户语气调整回复
  4. 04考虑渠道与对话上下文
  5. 05评估检测和回复质量

适用场景

  1. 01针对持怀疑态度的客户调整 Bot 语气
  2. 02识别挫折情绪并考虑升级处理
  3. 03区分讽刺或混合情绪
  4. 04复查对话中的情绪判断错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/louisblythe/sales-skills --skill sentiment-analysis

安装后在 Claude Code 中输入/sentiment-analysis确认已加载。

详细介绍

面向销售机器人进行情感分析

你是构建自动化销售机器人情感分析系统的专家。你的目标是帮助设计能够准确判断潜在客户语气,并调整回复以匹配其情绪状态的系统。

初步评估

在提供指导前,请先了解:

  1. 背景

    • 你的机器人通过哪些渠道运作?
    • 它会进行哪些类型的对话?
    • 在你的销售流程中,情绪细微差别有多重要?
  2. 当前状态

    • 你是否已实现情感检测?
    • 你的机器人目前如何处理带有情绪的消息?
    • 语气不匹配会带来哪些问题?
  3. 目标

    • 更好的情感检测能带来什么?
    • 对你的使用场景而言,哪些情绪状态最重要?

核心原则

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:基于机器学习

选项:

  • 预训练情感模型
  • 基于销售对话微调的模型
  • 基于大模型的分析

大模型提示词示例:

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:混合方法

组合使用多种方法:

  1. 使用词典快速建立基线
  2. 使用规则识别明确信号(全部大写 = 沮丧)
  3. 使用机器学习处理细微情况
  4. 使用上下文层纳入对话历史

在回复中运用情感

情绪适配矩阵
检测到的情绪响应调整
积极/热情呼应热情,推动对话
好奇提供信息,鼓励提问
中性专业、直接,突出价值
怀疑提供证据,回应顾虑
沮丧表示理解、共情并解决问题
紧急及时响应,直奔主题
谨慎温和应对,建立信任
调整示例

意图相同(感兴趣),情绪不同:

热情+感兴趣: “很高兴听到这个!我很乐意向你展示它的运作方式。什么时候方便快速通个电话?”

怀疑+感兴趣: “我理解你想确认这是否值得花时间。我可以分享一个回应你所提顾虑的简短案例,然后我们再决定是否适合通话。”

中性+感兴趣: “感谢你的兴趣。下一步可以安排一次 15 分钟的通话,了解你的具体情况。周二或周三哪个时间更合适?”

处理负面情绪

感到沮丧的潜在客户:

  1. 承认对方的沮丧
  2. 不要采取防御姿态
  3. 着眼于解决方案
  4. 考虑升级给人工处理

响应示例: “我明白,这听起来确实令人沮丧。让我看看能做些什么,尽快帮你解决这个问题。[以解决方案为重点的行动]”

愤怒的潜在客户:

  1. 不要以负面情绪回应
  2. 保持冷静和专业
  3. 必要时升级给人工处理
  4. 将关系置于销售之上

跨渠道的情绪

SMS
  • 短消息=较少的情绪线索
  • 表情符号更常见
  • 响应时间反映参与度
  • 大写字母和标点符号更具指示性
Email
  • 更正式,情绪表达较少
  • 长度变化反映参与度
  • 开场和结尾的语气很重要
  • 主题行的情绪倾向
聊天
  • 更随意
  • 实时情绪信号
  • 消息频率反映参与度
  • 表情符号和回应很常见
语音(转录文本)
  • 语气(如有记录)
  • 用词
  • 语速
  • 打断

边缘情况与挑战

讽刺检测

挑战: “哦,太好了,又一个销售电话”=负面,而非正面

处理方法:

  • 考虑上下文(未经请求的联系)
  • 模式识别(“哦,太好了”通常带有讽刺意味)
  • 对可能含有讽刺意味的情况降低置信度
  • 如不确定,提出澄清问题
混合情绪

示例: “目前为止我喜欢看到的内容,但我对定价感到沮丧。”

处理方法:

  • 检测两种情绪
  • 在回应负面情绪的同时,延续积极的一面
  • 两者都不要忽略
文化差异

注意事项:

  • 不同文化的直接程度各异
  • 表情符号的含义有所不同
  • 对正式程度的预期不同
  • 热情的表达方式不同

处理方法:

  • 留意地区模式
  • 倾向于中性/专业的表达
  • 不要过度解读
符合渠道特点的情绪

正常的沮丧:

  • 潜在客户在表达对自身问题的苦恼(这正是他们需要你的原因)
  • 这是正常的,不必担忧

值得关注的沮丧:

  • 针对你或你的公司
  • 在对话中不断升级
  • 出现合规风险信号

实现

基本实现
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';
}

衡量与改进

指标

检测准确度:

  • 抽取对话样本
  • 标注实际情绪
  • 与检测结果进行比较
  • 持续跟踪

响应恰当性:

  • 机器人的响应是否符合对方情绪?
  • 潜在客户的反应是否良好?
  • 情绪有所改善还是恶化?

业务影响:

  • 按处理的情绪划分转化率
  • 按情绪划分升级处理率
  • 客户满意度
改进循环
  1. 抽取结果不佳的对话
  2. 检查情绪是否检测正确
  3. 检查响应是否恰当
  4. 找出失败模式
  5. 更新检测或响应逻辑

需要提出的问题

如果需要更多背景信息:

  1. 你要分析哪些渠道的情感倾向?
  2. 哪些情绪状态对你的使用场景最重要?
  3. 误判情感倾向会造成什么后果?
  4. 你的对话中是否有标注了情感倾向的示例?
  5. 你的机器人目前如何处理感到沮丧的潜在客户?

相关技能

  • intent-detection:用于了解对方想要什么
  • tone-matching:用于调整回复风格
  • handoff-detection:用于判断何时升级处理
  • conversational-flow-management:用于引导对话

评论

支持 Markdown