Sentiment & Theme Tagger
Pricing
from $2.00 / 1,000 item analyzeds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
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
| Field | Type | Notes |
|---|---|---|
texts | array | Text items to analyze. |
inputDatasetId | string | Pull text from another Actor's dataset instead. |
textField | string | Field holding the text (default text). |
aspects | array | Score sentiment separately per topic, e.g. ["price","service","quality"]. |
openaiApiKey | string (secret) | Optional. Enables LLM sentiment + themes + one-line summary. |
model | string | LLM model when a key is set (default gpt-4o-mini). |
concurrency | integer | Parallel 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().


