Sentiment & Theme Tagger avatar

Sentiment & Theme Tagger

Pricing

from $2.00 / 1,000 item analyzeds

Go to Apify Store
Sentiment & Theme Tagger

Sentiment & Theme Tagger

Turn any pile of reviews, comments, or posts into decisions. Tags each item with sentiment, extracts themes/keywords, and scores sentiment per aspect (price, service, quality...). Lexicon-based out of the box, with optional LLM enrichment. Feed it a list or another Actor's dataset.

Pricing

from $2.00 / 1,000 item analyzeds

Rating

0.0

(0)

Developer

Scott Holmes

Scott Holmes

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Share

Turn any pile of reviews, comments, or posts into decisions. For each item it returns a sentiment (positive / negative / neutral + score), the top themes/keywords, and optional per-aspect sentiment (how people feel about price vs service vs quality, separately). The run also rolls up an overall sentiment split and the top themes across everything.

Transformation Actor — it doesn't scrape. Feed it a text list or another Actor's datasetId. No anti-bot maintenance, near-zero run cost, and it plugs on top of every review, comment, and social scraper on the platform (TripAdvisor Reviews, Reddit, Facebook/TikTok/YouTube comments, Trustpilot…).

Input

FieldTypeNotes
textsarrayText items to analyze.
inputDatasetIdstringPull text from another Actor's dataset instead.
textFieldstringField holding the text (default text).
aspectsarrayScore sentiment separately per topic, e.g. ["price","service","quality"].
openaiApiKeystring (secret)Optional. Enables LLM sentiment + themes + one-line summary.
modelstringLLM model when a key is set (default gpt-4o-mini).
concurrencyintegerParallel items.

Output (per item)

{
"text": "The food was amazing but the service was painfully slow and overpriced.",
"sentiment": "neutral",
"sentimentScore": 0,
"themes": ["food", "food amazing", "service"],
"aspects": {
"price": { "sentiment": "negative", "score": -0.667 },
"service": { "sentiment": "negative", "score": -0.667 }
},
"summary": null,
"method": "lexicon"
}

(A mixed review nets to neutral overall — the value is in the per-aspect split: price and service both flagged negative. Aspects with no mention, like quality here, are simply omitted. LLM mode produces a cleaner overall score plus a one-line summary.)

The run's OUTPUT holds the rollup: totals, positive %, and the top 15 themes across all items.

Two modes

  • Lexicon (default, no key, no cost): built-in AFINN-style sentiment with negation + intensifier handling, keyword/bigram theme extraction, and aspect scoring by sentence. Deterministic and cheap.
  • LLM (optional): supply an OpenAI key for higher-accuracy sentiment, cleaner themes, and a one-line summary per item. Falls back to the lexicon automatically on any API error.

Monetization (pay-per-event)

Charges one item-analyzed event per item. Because it consumes other Actors' datasets, its customers are the users of every review/comment scraper — position it as the "so what does it all mean?" layer they already need.

Extending

The lexicon lives in src/lexicon.js — add domain words (e.g. product or hospitality vocabulary) to sharpen scores. For production-grade accuracy on nuanced text, run in LLM mode; the code is structured so you could swap in any provider by editing analyzeLlm().