AlphaEar Sentiment Skill 是一个专为金融文本设计的情绪分析技能,提供两种分析模式:FinBERT(本地模型)和基于 LLM 的分析。
用途 该技能用于判断金融/新闻文本的情绪极性,输出正面、负面或中性标签,并给出 -1.0 到 1.0 的情绪分数以及简短理由。适用于需要评估财经资讯、公告、新闻等文本情绪倾向的场景。
主要能力
- 情绪分析(FinBERT / 本地):通过 scripts/sentiment_tools.py 使用本地 FinBERT 模型进行高速情绪分析。核心方法 analyze_sentiment(text) 返回 {'score': float, 'label': str, 'reason': str},分数范围为 -1.0(负面)到 1.0(正面)。另有 batch_update_news_sentiment(source, limit) 用于批量处理数据库中尚未分析的新闻(仅限 FinBERT)。
- 情绪分析(LLM / Agentic):当本地工具不足或需要推理能力时,由 Agent 直接调用 LLM 执行分析,并可选择将结果更新到数据库。技能提供了情绪分析提示词,要求返回严格 JSON 格式:{"score": <float: -1.0到1.0>, "label": "<positive/negative/neutral>", "reason": "<简短理由>"}。
评分指南
- 正面(0.1 到 1.0):乐观新闻、利润增长、政策支持等。
- 负面(-1.0 到 -0.1):亏损、制裁、价格下跌、悲观情绪。
- 中性(-0.1 到 0.1):事实性报道、横盘走势、影响不明确。
使用方式
- 本地分析:调用 scripts/sentiment_tools.py 中的 analyze_sentiment(text) 获取分数与标签;使用 batch_update_news_sentiment(source, limit) 批量处理数据库中的未分析新闻。
- LLM 分析:由 Agent 使用提供的提示词直接调用 LLM 进行分析,然后通过辅助方法 update_single_news_sentiment(id, score, reason) 将手动分析结果保存到数据库。
依赖
- torch(用于 FinBERT)
- transformers(用于 FinBERT)
- sqlite3(内置) 需确保 DatabaseManager 正确初始化。
适用场景与限制 适用于金融文本的情绪判定与批量新闻情绪更新。本地模式依赖 FinBERT 模型与 torch、transformers 环境;LLM 模式需要 Agent 具备调用 LLM 的能力。批量处理仅支持 FinBERT。关于具体安装命令、收费、价格、平台支持等信息,资料中暂未提供。