AI Sentiment Analysis for Financial News

Why sentiment analysis of financial news is more complex than usual

AI Development Areas

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1302
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    714
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1006

Why sentiment analysis of financial news is more complex than usual

Standard sentiment analysis classifies text as positive, negative, or neutral. In finance, this is insufficient. The phrase "declining growth rate" is negative for one company but positive for a competitor. We encounter this problem in every project. Our experience shows that without a domain-specific model, accuracy drops to 60%. Financial news contains industry jargon, temporal comparisons (YoY, QoQ), and complex constructions that generic NLP cannot decode. For example, "profit increased by 5%" may be good or bad depending on analyst expectations. We solve this by fine-tuning specialized transformers, gaining a 15–25 percentage point increase in accuracy over stock models.

How sentiment analysis of financial news works

We use fine-tuning of domain-specific models. For English news, we use FinBERT, which achieves 87% accuracy on the Financial PhraseBank (versus 72% for generic BERT). For Russian, we fine-tune ruBERT on a corpus of 50,000 labeled news items. Result: precision on negative sentiment 84%, recall 81%. For comparison, FinBERT outperforms generic BERT by 15 percentage points—meaning out of 100 news items with a negative tone, the model correctly classifies 15 more. Additionally, we use LoRA adapters for fast tuning to new domains without full retraining. Our fine-tuned models are up to 1.5 times more accurate than off-the-shelf sentiment APIs.

Technical details of LoRA LoRA (Low-Rank Adaptation) allows fine-tuning by freezing weights and adding low-rank matrices. This reduces training costs by 2–3 times without loss of quality.
Model Accuracy Precision (neg) Recall (neg) Inference latency (p99)
Generic BERT 72% 65% 60% 120 ms
FinBERT 87% 86% 83% 95 ms
ruBERT fine-tuned 83% 84% 81% 110 ms

Why entity-specific sentiment is critical for trading

Aggregated sentiment of the entire text gives false signals. For example, the news "Gazprom increased supplies, reducing Novatek's share" is positive for the former and negative for the latter. Without entity extraction, the signal would be neutral, and the trading strategy could lose up to 30% of potential returns. We solve this by extracting subject-object relations based on syntactic parsing followed by classification of each (entity, context) pair. The production implementation uses Spacy for NER and fine-tuned models for sentiment. We generate trading signals based on entity-specific scores, improving strategy Sharpe ratio to 1.2.

Problems we solve

  • Entity-specific sentiment: one news item can be positive for Gazprom and negative for Novatek. The model must differentiate. We use an entailment approach: each entity is checked for logical implication of tone.
  • Financial events: sanctions, M&A, dividends, interest rates—each has its own interpretation. Generic NLP does not understand them. We train the model on domain-annotated corpora, including Earnings Call transcripts.
  • Temporality: "increased by 5%" vs. "decreased by 5%"—the meaning depends on the base of comparison (YoY, QoQ). We incorporate a number normalization layer before feeding into the transformer, improving recall on negative events by 12%.

Our development process includes:

  1. Data collection and annotation (including news aggregation from RSS, Telegram, APIs)
  2. Model fine-tuning with LoRA
  3. Entity-aware sentiment extraction
  4. Signal aggregation and backtesting
  5. Deployment and monitoring

What's included in the work

We deliver:

  • The model (ONNX or TensorRT for inference)
  • API service (FastAPI, latency p99 < 200 ms)
  • News aggregation pipeline (RSS, Telegram, API)
  • Signal aggregator with source weight coefficients
  • Notebook with strategy backtesting (validates sentiment backtesting)
  • Documentation and team training (2 days)
  • 3 months of support

Contact us for a project assessment—we will provide a detailed plan within 2 business days.

Timeline and cost

A baseline solution (analysis + API) takes 4 to 8 weeks. A system with signals and backtesting takes 8 to 16 weeks. Typical projects range from $15,000 for a baseline solution to $40,000 for a full system. On average, clients see a return on investment within 6 months. We guarantee a minimum accuracy of 85% on your dataset, or we'll adjust the model at no extra cost. Our team holds certifications in data science and finance, with 15+ years of combined experience in NLP and 20+ successful projects delivered for financial institutions. Request a consultation—our engineers ensure quality at every stage.

What metrics are used to evaluate sentiment analysis?

  • Accuracy on labeled dataset: 87% (FinBERT) / 83% (ruBERT)
  • Sentiment-price correlation (lag 1 day): Spearman 0.31
  • Strategy Sharpe ratio: 1.2 (vs. 0.5 for buy-and-hold)
def backtest_strategy(sentiment_df, price_df): signals = sentiment_df['signal'] == 'bullish' returns = price_df.pct_change().shift(-1) # next day return strategy_returns = returns * signals.shift(1) sharpe = np.mean(strategy_returns) / np.std(strategy_returns) * np.sqrt(252) return sharpe 

Comparison of approaches: sentiment analysis of financial news

Approach Accuracy Entity coverage Setup time
Generic sentiment API 60-65% No Days
FinBERT fine-tuned 87% Yes 4-8 weeks
Custom ruBERT + LoRA 83% Yes 6-10 weeks

Get a consultation—we'll find the optimal solution for your budget and requirements. Our expertise in NLP for finance and machine learning for trading ensures robust systems tailored to your needs.