APITube Help Center

How accurate is the sentiment analysis?

What APITube's sentiment scoring can and cannot tell you, and how to get more reliable results

Tasha Tatum

Written by Tasha Tatum

July 4, 2026

Open this example in the API Playground ↗

How accurate is the sentiment analysis?

APITube scores sentiment with a fast dictionary-based method — it adds up the sentiment values of the individual words it recognizes in the text and returns a score from -1 to 1 with a positive, negative or neutral label. That approach is strong for reading the overall direction of tone across many articles, and weaker on nuance that depends on how words combine — sarcasm, irony, and negation. Treat the score as a reliable signal at scale, not as a verdict on a single sentence.

APITube does not publish an accuracy percentage, and the response gives you a score and a polarity but no confidence value. So the honest answer to “how accurate is it?” is: accurate enough to sort, filter, and trend millions of articles by tone, but not a substitute for reading a specific article when the exact framing matters.

What method does APITube use to score sentiment?

Sentiment is computed once when an article is ingested, then stored — the News API reads back the stored value and never re-analyzes text at query time. The scorer works at the word level: it tokenizes the text, looks each word up in a per-language sentiment dictionary, and sums the matched word scores. That total is divided by the number of tokens to produce the comparative score you see, on the -1 to 1 scale. The article-level overall value is the average of the separate title and body scores.

Because only recognized dictionary words contribute, two things follow directly: text with few charged words trends toward zero, and meaning carried by sentence structure (rather than by single words) is not modeled. This is the classic trade-off of a lexicon scorer — it is fast, transparent, and consistent, but it reads words, not arguments. For the full mechanics, see how sentiment analysis works.

How accurate is it, and where does it fall short?

The scorer is dependable for the coarse question — is coverage of this topic leaning positive or negative? — especially when you aggregate across many articles. It is less dependable for the fine question — is this one headline genuinely sarcastic? Known limitations of a word-list approach:

  • Sarcasm and irony — “Great, another delay” is positive word-by-word but negative in intent; the scorer reads the words.
  • Negation and context — meaning that flips across a phrase is not reliably captured, because scores come from individual words rather than sentence grammar.
  • Domain tone — a word that is negative in general English may be neutral in a financial or medical context, and vice versa.
  • No confidence signal — the API returns the score and polarity only. A 0.62 and a 0.08 are both “positive,” but the API does not tell you how sure it is; use the score magnitude as your own strength band.

Why do so many articles come back neutral?

Neutral is the default outcome, so a lot of factual reporting lands there. Two mechanics drive this. First, the score is divided by the total token count, so a long, mostly factual article with only a few charged words averages close to zero. Second, values close to zero are labeled neutral by design. On top of that, an article whose sentiment could not be scored comes back with an empty polarity and a score of 0 — so treat an empty polarity as “not scored,” not as a confident neutral.

A third cause is language coverage. Dictionaries are per language, and if an article’s language has no dictionary loaded, the scorer falls back to the English dictionary — which matches few of that article’s words, pushing the result toward neutral. Filtering to languages with strong dictionary coverage avoids this.

How do I get more reliable sentiment results?

You cannot change how a stored score was computed, but you can query it more carefully:

  • Filter by language first so the score you read was produced with the right dictionary. See how to filter news by language.
  • Use score bands, not exact floats. Ask for clearly-charged articles instead of trusting tiny differences near zero:
curl "https://api.apitube.io/v1/news/everything?sentiment.overall.score.min=0.3&language.code=en&api_key=YOUR_API_KEY"
  • Read title and body separately. They are scored independently, so a dramatic headline can diverge from a flat body. Surface that gap with sentiment_gap.min (a 0-to-2 scale) or sentiment.mixed=1:
curl "https://api.apitube.io/v1/news/everything?sentiment_gap.min=0.5&language.code=en&api_key=YOUR_API_KEY"
  • Prefer entity-level sentiment for “how is X framed.” Instead of the whole-article tone, APITube scores the text windows around each mention of a company or person, which is far more targeted than the overall value — see how to get sentiment toward a company or person.
  • Aggregate. For a trend, count polarities across hundreds of articles rather than trusting any single reading.

Common Questions

Does APITube give a confidence score for sentiment?

No. Each sentiment reading is a score (from -1 to 1) and a polarity label; entity-level readings add a mentions breakdown counting positive, neutral and negative mentions. There is no separate confidence or accuracy field in the response. Use the absolute value of the score as a rough strength indicator: readings near ±1 are strongly charged, readings near 0 are weakly charged or neutral. For the exact field shapes, see the official response structure reference.

Is sentiment accuracy the same across languages?

Not necessarily. Sentiment dictionaries are maintained per language, so accuracy tracks how well-covered that language’s dictionary is. When an article’s language has no dictionary available, the scorer falls back to the English dictionary, which will match few of the article’s words and skew the result toward neutral. If sentiment quality matters for your use case, filter to the languages you care about with language.code and validate on a sample.

Can it understand sarcasm or negation?

Not reliably. The scorer reads sentiment word by word from a dictionary rather than parsing sentence structure, so tone that depends on how words combine — sarcasm, irony, or a negation that flips a phrase — can be missed. This is inherent to a lexicon-based method. Where intent is subtle, use the score as a filter to shortlist candidates and confirm the framing by reading the article.

Why do the title and body sometimes disagree?

Because the headline and the body are scored separately, and the article-level overall value is the average of the two. A charged headline over a flat body — or the reverse — produces title and body polarities that differ, and that gap is itself a useful signal. Filter for it with sentiment.mixed=1 (title polarity differs from body) or sentiment_gap.min, and read more in how to filter news by sentiment.


Related Articles