FS

Financial Sentiment Analysis Model

SageMaker

Sentiment analysis for financial news and commentary on SageMaker

What you get

  • Classify financial news and market commentary as negative, neutral or positive, with a confidence score

  • Runs inside your own AWS account and VPC - text is never sent to a third-party API

  • 85.1 percent accuracy (macro-F1 0.823) on 3,397 held-out examples; about 23 texts per second on ml.m5.large

About this product

Runs inside your own AWS account: your text is processed on a SageMaker endpoint you control, inside your VPC, and is never sent to a third-party API.

This SageMaker model package provides a REST API to analyze the sentiment of financial text such as news headlines, analyst notes, and market commentary.

Each input text is classified as negative, neutral, or positive with a confidence score. The model is fine-tuned on financial news and financial phrase datasets, so it reads market language such as "beat estimates" or "missed guidance" in context rather than as generic positive or negative wording.

Use it to tag news and analyst commentary in a research pipeline, monitor tone around a ticker or sector, or enrich market data feeds before downstream analysis.

The API accepts input as JSON or CSV and supports real-time endpoints and batch transform.

We welcome your feedback at [email protected]

Model and training data The model is a ModernBERT-base (answerdotai/ModernBERT-base) text classifier fine-tuned with PyTorch and Hugging Face Transformers on the public nickmuchi/financial-classification and zeroshot/twitter-financial-news-sentiment datasets. Labels follow each dataset's own definition: negative (bearish), neutral, and positive (bullish). About 63 percent of the examples are neutral, 22 percent positive and 14 percent negative. It runs in network isolation on SageMaker, so no data leaves your account.

Known limitations - English only. Other languages are not supported. - The model was trained on short texts: the longest training example is about 110 tokens and 99 percent are under 64. Input up to 512 tokens is accepted, but accuracy is only characterized for short text; split long documents into sentences before sending. - Precision on the minority classes is lower than on neutral: about 0.73 for negative and 0.75 for positive (recall 0.86 and 0.83), against 0.93 for neutral. Treat low-confidence negative and positive scores with care. - Tuned for short financial text such as headlines and analyst notes. Long filings should be split into sentences first. - Sentiment is about the language used, not a prediction of price movement. Do not use it as investment advice.

Measured performance - Accuracy 85.1 percent, macro-F1 0.823, measured on 3,397 held-out examples from the financial news and phrase datasets. The split is seeded (70/20/10, seed 42) and was not used in training. F1 by class: negative 0.79, neutral 0.89, positive 0.79. - On the same 3,397 examples the public ProsusAI/finbert model scores 77.0 percent accuracy (macro-F1 0.735). FinBERT is ahead on the Financial PhraseBank sentences alone (macro-F1 0.876 against 0.829); this model is ahead on short news and analyst-rating text (0.821 against 0.677), which is the larger part of the test set and of the training data. - Real-time endpoint on ml.m5.large: 284 ms median per request (312 ms p95). - Throughput on the same instance: about 23 texts per second at a batch size of 32.

How it ships

Categories and keywords

Categories
Natural Language ProcessingTextFinancial Services
Keywords
financial-sentimentfinancesentiment-analysisnewstext-classificationnlpapi