← Back to list
💰

alphaear-sentiment Checked

Analyze finance text sentiment using FinBERT or LLM. Use when the user needs to determine the sen…
💰 Finance & Trading skills By RKiding Version v1.0.0 Added 2026-09-20 Updated 2026-09-20 Source ↗
6.8Overall rating
2Views
5Downloads
3.0kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "alphaear-sentiment" skill by following the instructions at https://skill123.me/install/alphaear-sentiment.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/alphaear-sentiment.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 15 KB
📊 Static rating
6.8/10
Trigger
5.0
Structure
7.3
Workflow
6.4
Content
7.0
Engineering
8.0
Security
8.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Analyze finance text sentiment using FinBERT or LLM. Use when the user needs to determine the sentiment (positive/negative/neutral) and score of financial text markets.

AlphaEar Sentiment Skill

Documentation

Analyze finance text sentiment using FinBERT or LLM. Use when the user needs to determine the sentiment (positive/negative/neutral) and score of financial text markets.

AlphaEar Sentiment Skill

Overview

This skill provides sentiment analysis capabilities tailored for financial texts, supporting both FinBERT (local model) and LLM-based analysis modes.

Capabilities

Capabilities

### 1. Analyze Sentiment (FinBERT / Local)

Use scripts/sentiment_tools.py for high-speed, local sentiment analysis using FinBERT.

**Key Methods:**

  • analyze_sentiment(text): Get sentiment score and label using localized FinBERT model.
  • **Returns**: {'score': float, 'label': str, 'reason': str}.
  • **Score Range**: -1.0 (Negative) to 1.0 (Positive).
  • batch_update_news_sentiment(source, limit): Batch process unanalyzed news in the database (FinBERT only).

### 2. Analyze Sentiment (LLM / Agentic)

For higher accuracy or reasoning capabilities, **YOU (the Agent)** should perform the analysis using the Prompt below, calling the LLM directly, and then update the database if necessary.

#### Sentiment Analysis Prompt

Use this prompt to analyze financial texts if the local tool is insufficient or if reasoning is required.


请分析以下金融/新闻文本的情绪极性。
返回严格的 JSON 格式:
{"score": <float: -1.0到1.0>, "label": "<positive/negative/neutral>", "reason": "<简短理由>"}

文本: {text}

**Scoring Guide:**

  • **Positive (0.1 to 1.0)**: Optimistic news, profit growth, policy support, etc.
  • **Negative (-1.0 to -0.1)**: Losses, sanctions, price drops, pessimism.
  • **Neutral (-0.1 to 0.1)**: Factual reporting, sideways movement, ambiguous impact.

#### Helper Methods

  • update_single_news_sentiment(id, score, reason): Use this to save your manual analysis to the database.

Dependencies

  • torch (for FinBERT)
  • transformers (for FinBERT)
  • sqlite3 (built-in)

Ensure DatabaseManager is initialized correctly.

Score breakdown

Trigger
5.0
What plus explicit 'Use when the user needs to determine sentiment...' clause; no When-Not; no trigger variants; description in English only though the analysis prompt is Chinese.
Structure
7.3
57-line SKILL.md; scripts/ bundles a 581-line shared database_manager and an unused llm/ factory tree; no references/; progressive disclosure minimal.
Workflow
6.4
Dual-path design is sound: deterministic BERT pipeline for speed, agent-executed LLM prompt with a concrete scoring guide (-1..1 bands) and DB write-back helper; local-cache-first model loading with download fallback; batch mode for unanalyzed news rows.
Content
7.0
Mostly clear; duplicated '## Capabilities' heading; no runnable CLI example (API-level usage only); mixed Chinese/English docs.
Engineering
8.0
Valid frontmatter; deps list torch/transformers/sqlite3 but loguru undeclared; modules lack shebangs (importable); referenced paths exist; init test avoids model download via mode='llm' and in-memory DB.
Security
8.0
Manifest: env reads SENTIMENT_MODE/BERT_SENTIMENT_MODEL; network: HuggingFace model download (uer/roberta-base-finetuned-chinanews-chinese) on first use — undeclared in SKILL.md; llm/factory.py carries env-key LLM provider configs (DashScope/z.ai/OpenRouter/DeepSeek) but is not invoked by this skill's tools (dead code); writes only local sqlite db. No hardcoded secrets, no injection, no persistence. Deductions: undeclared HF egress, dead egress-capable code, and FinBERT-vs-actual-model naming mismatch.
Two-mode sentiment skill (local HF pipeline + agentic LLM prompt with scoring guide) with DB persistence and a hermetic init test. Issues: duplicated '## Capabilities' heading; description says 'FinBERT' but the default model is uer/roberta-base-finetuned-chinanews-chinese (a news classifier, not FinBERT); undeclared HuggingFace model download; bundled llm/ factory (DashScope/z.ai/OpenRouter/DeepSeek) is dead code for this skill's entry point.