关于 algo-social-sentiment
algo-social-sentiment 是面向社交媒体文本的 VADER 情感分析技能,适用于需要快速评分且不训练模型的分析者。它用词典和规则处理俚语、表情符号、大小写及标点,并输出情感分数与极性分类。
主要功能
- 01基于词典与规则的情感分析
- 02处理俚语、表情符号和强调格式
- 03计算复合情感分数及正负中性比例
- 04按阈值标记情感极性
- 05提供结果抽查与边界情况说明
适用场景
- 01分析社交媒体帖子、推文或评论
- 02无需训练模型,快速评估文本情感
- 03汇总多条文本的情感类别分布
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ asgard-ai-platform/ skills --skill algo-social-sentiment安装后在 Claude Code 中输入/algo-social-sentiment确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/sample_scenario.mdreferences/model-comparison.mdvader-rules.md详细介绍
VADER 情感分析
概述
VADER(Valence Aware Dictionary and sEntiment Reasoner)是一款针对社交媒体优化的词典和基于规则的情感分析工具。它会返回 [-1, +1] 范围内的复合得分,该得分综合了正面、负面和中性文本的占比。每段文本的运行时间为 O(n),其中 n = 词数。无需训练。
适用场景
触发条件:
- 分析社交媒体帖子、推文或评论中的情感
- 无需训练机器学习模型即可快速进行情感评分
- 处理包含俚语、表情符号和非正式用语的文本
不适用场景:
- 正式或学术文本(VADER 针对社交媒体调优)
- 需要关注特定领域的情感时(例如金融情感——请使用 FinBERT)
- 讽刺检测至关重要时(VADER 无法检测讽刺)
算法
IRON LAW: VADER Is Designed for SOCIAL MEDIA Text
It handles slang, emoticons, capitalization, and punctuation as
sentiment modifiers. Applying it to formal documents (legal, academic,
medical) produces unreliable scores. For domain-specific text, use
domain-trained models instead.
阶段 1:输入验证
对文本进行分词。保留:大小写(全大写 = 强调)、标点符号(! 表示增强语气)、表情符号/emoji。 **检查点:**文本非空,且编码已正确处理。
阶段 2:核心算法
- 在 VADER 词典中查找每个词元(包含 7,500 多个带有情感评分的词条)
- 应用语法规则:否定(“not good” = 负面)、程度修饰语(“very good” > “good”)、大写增强、标点符号增强
- 计算正面、负面和中性占比的原始效价分数
- 计算复合得分:使用公式对所有效价分数之和进行归一化:compound = sum / √(sum² + α),其中 α = 15
阶段 3:验证
分类:compound ≥ 0.05 → 正面,≤ -0.05 → 负面,否则为中性。抽查样本结果。 **检查点:**分类结果通过对 10-20 个示例的人工抽查。
阶段 4:输出
针对每段文本,返回复合得分和情感极性分类。
输出格式
{
"results": [{"text": "...", "compound": 0.76, "pos": 0.45, "neu": 0.55, "neg": 0.0, "label": "positive"}],
"metadata": {"texts_analyzed": 500, "distribution": {"positive": 0.45, "neutral": 0.35, "negative": 0.20}}
}
示例
输入/输出示例
输入:“This product is AMAZING!!! 😍” **预期结果:**compound ≈ 0.87(正面)。增强因素:全大写、!!!、😍 emoji。
边缘情况
| 输入 | 预期结果 | 原因 |
|---|---|---|
| “Not bad at all” | 略微正面(~0.2) | 可部分处理双重否定 |
| “😂😂😂” | 正面 | 词典中包含对应的 emoji |
| 空字符串 | Compound = 0,中性 | 没有可供评分的词元 |
注意事项
- 无法识别讽刺:“Oh great, another meeting”会被判断为正面。VADER 不具备讽刺检测能力。
- 否定词作用范围:VADER 会在 3 个词的范围内应用否定规则。“I do not think this is bad”可能会错误解析否定关系。
- Emoji 覆盖范围:VADER 的 emoji 词典可能未涵盖较新的 emoji。请根据需要更新或补充。
- 语言限制:VADER 仅支持英语。对于中文/日语,请使用特定语言的工具(例如用于中文的 SnowNLP)。
- 复合得分阈值的敏感性:0.05 这一界限是任意设定的。请根据具体用例和对误报的容忍度调整阈值。
参考资料
- 有关 VADER 词典和规则的文档,请参阅
references/vader-rules.md - 有关与基于 Transformer 的情感模型进行比较的信息,请参阅
references/model-comparison.md
评论
支持 Markdown