How news sentiment models work
News sentiment models turn headlines and articles into structured scores. This guide explains the main approaches, from word lists to language models, and the limitations every researcher should understand.

Markets react to information, and much of that information arrives as text: news stories, company announcements, earnings call transcripts and regulatory filings. Sentiment models try to convert that text into something measurable, usually a score that describes whether the tone toward a company or topic is positive, negative or neutral.
Understanding how these scores are produced makes it much easier to judge when they are useful and when they are misleading.
General-purpose sentiment tools are trained on product reviews or social media, where words carry everyday meanings. Financial language is different. Words such as “liability,” “tax” or “cost” are routine in accounting and not necessarily negative. “Volatile” can describe an opportunity or a risk. Domain-specific vocabularies and training data matter a great deal.
Financial sentiment is also usually entity-level. An article might be positive for one company and negative for its competitor, so a single document-level score can hide what matters.
The simplest models count positive and negative words from a dictionary. They are transparent, fast and easy to audit, which is why finance-specific word lists remain popular as baselines.
POSITIVE = {"beat", "raised", "growth", "upgrade", "record"}
NEGATIVE = {"miss", "cut", "lawsuit", "downgrade", "recall"}
def lexicon_score(text):
words = [w.strip(".,;:!?").lower() for w in text.split()]
pos = sum(w in POSITIVE for w in words)
neg = sum(w in NEGATIVE for w in words)
total = pos + neg
return 0.0 if total == 0 else (pos - neg) / total
print(lexicon_score("Company cut guidance after product recall")) # -1.0
print(lexicon_score("Analysts did not downgrade the stock")) # -1.0, but the news is not negativeThe second example shows the core weakness: word counting ignores negation, context and sentence structure.
A step up is to train a classifier, such as logistic regression, on labeled examples. The text is converted into features like word and phrase frequencies, and the model learns which features are associated with each label. This captures more patterns than a fixed list, but still struggles with long-range context and depends heavily on the quality of the labels.
Modern transformer-based models read words in context, so they handle negation, comparisons and qualifiers far better. They can be fine-tuned on financial text or prompted to classify passages and explain their reasoning. The trade-offs are cost, latency and reduced transparency. A language model may also be confidently wrong, so its outputs still need evaluation against labeled data.
There are two separate questions. First, does the model classify text correctly? Measure precision and recall on a labeled test set the model never saw. Second, is the resulting score informative for your research question? That requires careful event studies with correct timestamps, realistic delays and transaction costs. A model can be accurate at reading tone and still carry little useful information about subsequent price moves.
Sentiment scores summarize what text says. They are an input to research, not a forecast or a trading signal on their own.
Quantzivo AI is being designed to summarize news and explain sentiment context for research. Explore the planned sentiment analysis and news intelligence capabilities, or learn to build and validate NLP models in the Machine Learning for Financial Data course.
Educational content only. This article explains concepts and methods. It is not investment advice or a recommendation to buy or sell any security. Trading involves risk, including loss of capital. Read the risk disclaimer.
Financial data is noisy, limited and always changing, which makes machine learning models especially easy to overfit. Learn the warning signs, the most common sources of leakage, and practical defenses.
Read articleA backtest is only as honest as its assumptions. Here are seven common mistakes that make historical results look better than they really are, and how to catch each one.
Read articleRaw price files are rarely ready for analysis. This walkthrough shows how to parse, deduplicate, validate and resample OHLCV data in pandas so your research starts from a trustworthy base.
Read article