mcpField
A
algo-social-sentiment

algo-social-sentiment

github.com/asgard-ai-platform数据与数据库24339 次安装21 周前更新
代码仓库

关于 algo-social-sentiment

algo-social-sentiment 是面向社交媒体文本的 VADER 情感分析技能,适用于需要快速评分且不训练模型的分析者。它用词典和规则处理俚语、表情符号、大小写及标点,并输出情感分数与极性分类。

主要功能

  1. 01基于词典与规则的情感分析
  2. 02处理俚语、表情符号和强调格式
  3. 03计算复合情感分数及正负中性比例
  4. 04按阈值标记情感极性
  5. 05提供结果抽查与边界情况说明

适用场景

  1. 01分析社交媒体帖子、推文或评论
  2. 02无需训练模型,快速评估文本情感
  3. 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.md
references/
model-comparison.md
vader-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:核心算法
  1. 在 VADER 词典中查找每个词元(包含 7,500 多个带有情感评分的词条)
  2. 应用语法规则:否定(“not good” = 负面)、程度修饰语(“very good” > “good”)、大写增强、标点符号增强
  3. 计算正面、负面和中性占比的原始效价分数
  4. 计算复合得分:使用公式对所有效价分数之和进行归一化: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