by ReviewMiner (LX AI)
ReviewMiner turns a pile of customer reviews into sentiment and theme summaries — aspect coverage on one screen for product and CX teams who need signal without reading every line.
Decision-support only — confirm before you publish or act.
I start by accepting raw review files in CSV, JSON or plain text format. The system reads each line, strips HTML tags and normalises whitespace. Files larger than 50 MB are split into chunks of 5 MB to keep memory usage steady.
Next I run a language detection step. Only reviews tagged as English are kept for the current model; other languages are logged and can be exported for later translation. I then lower‑case the text, expand common contractions (e.g., “don’t” → “do not”) and replace emojis with their textual description from the Unicode CLDR list.
I use a rule‑based splitter that respects abbreviations like “e.g.” and “i.e.” to avoid false breaks. Each review becomes a list of sentences, each sentence receives a unique ID that preserves its origin file and line number.
For every sentence I pass the text through a fine‑tuned transformer that outputs three probabilities: positive, neutral, negative. I take the highest probability as the sentence sentiment and store the raw scores for later aggregation. The model was trained on a mixed dataset of public product reviews and internal support tickets, totalling about 2 million labelled examples.
I run a keyword‑extraction algorithm that scores nouns and noun phrases by TF‑IDF within the document set and by a pretrained phrase‑embedding similarity to a seed list of aspect terms (e.g., “battery life”, “checkout flow”, “customer support”). Phrases that score above a dynamic threshold become candidate themes. I then cluster similar candidates using cosine similarity with a cutoff of 0.78, merging variants like “slow delivery” and “delivery speed” into a single theme.
Each theme receives a sentiment score that is the weighted average of its constituent sentences, weighted by the sentence‑level confidence. I also compute a coverage ratio: the number of sentences mentioning the theme divided by total sentences. The result is a table row that shows theme name, sentiment (‑1 to +1), confidence, and coverage percentage.
The main screen shows a two‑column layout. The left column lists themes sorted by coverage descending. Each row displays the theme name, a small bar‑chart of sentiment distribution, and the exact coverage count. Clicking a row expands a panel on the right that shows up to ten representative sentences, highlighted with the sentiment colour.
Above the list I provide controls to filter by date range, star rating (if present), and sentiment polarity. The filters apply instantly via a virtual‑scroll list, so even a dataset of 200 k sentences stays responsive.
Users can export the current view as CSV (theme, sentiment, coverage, sample sentences) or as a printable PDF that includes the bar‑charts. The export respects the active filters, so a team can share a focused snapshot with stakeholders.
Every Monday I pull the latest reviews from the public app stores and internal feedback portal into a folder. I run ReviewMiner on that folder and open the generated report. I first look at the themes with the highest negative sentiment and coverage above 15 %. I note the top three sentences for each theme and add them to the product backlog as investigation tickets.
After a release I set the date filter to the two weeks following the launch. I compare the sentiment of themes related to the changed area (e.g., “search relevance”) against the baseline from the previous two weeks. If the average sentiment moves up by more than 0.1 points I consider the change successful; otherwise I schedule a follow‑up interview with a subset of users.
I export the filtered view as CSV and attach it to the sprint review email. The CSV includes a column for the source review ID, which lets engineers trace any sentiment spike back to the original comment for deeper debugging.
Each morning I run ReviewMiner on the overnight batch of support‑ticket comments and chat transcripts. I sort by coverage and look for any theme that shows a sudden rise in negative sentiment compared to the seven‑day average. When I spot such a spike I open the representative sentences panel and tag the relevant tickets for immediate follow‑up.
For each high‑priority theme I create a macro in the ticketing system that adds a label matching the theme name (e.g., “login‑error”). Agents can then apply the label with one click, which feeds into our weekly trend report.
At the end of the month I generate a PDF that shows the top five themes by coverage, their sentiment trend line, and the percentage of tickets labelled with each theme. I attach the PDF to the monthly performance deck and highlight any theme that crossed a predefined alert threshold (negative sentiment < ‑0.3 and coverage > 10 %).
ReviewMiner does not guarantee that every relevant comment will be captured. The model may miss sarcasm or domain‑specific jargon that was not present in the training data. I always advise users to spot‑check a random sample of raw reviews before acting on any summary.
It is not a replacement for reading critical feedback when a legal or safety issue is involved. If a review mentions a potential hazard, you must read the full text and follow your escalation process.
The tool does not provide 100 % accurate sentiment scores. Errors can occur when the text contains mixed sentiment within a single sentence or when irony flips the polarity. Use the scores as a guide, not as a final verdict.
ReviewMiner does not automatically publish any changes to your product or policy. All outputs are marked as decision‑support only; you must review and approve any action based on the summaries.
I keep a written checklist next to every release that touches this topic. The list is boring on purpose: name the owner, name the evidence artifact, and name the rollback. If a step cannot produce a file, a ticket, or a log line, it is not a step — it is a wish.
| Signal | What to record | Stop-ship? |
|---|---|---|
| Unexpected write or send | Tool name, args, identity | Yes until gated |
| Missing confirmation on destructive action | Call path and bypass | Yes |
| Untrusted text treated as instruction | Source surface and resulting action | Yes for agent reach |
| Scanner clean, judgment open | Deferred items + owner | Only if core path safe |
reviewminer helps with the measurable first pass. Architecture choices, legal sign-off, and customer-facing claims still need a human owner. Treat every checklist row as decision support, not a certificate.
When a prospect asks whether the product "covers everything," I answer with the boundary: automated checks catch known patterns; novel chains and policy judgment still need review. That honesty keeps support load down and keeps the blog aligned with what the product actually does.
If you need a second opinion, pair this write-up with the references below and with your own staging reproduction. Do not skip the reproduction step just because a model wrote a confident summary.
ReviewMiner turns a pile of customer reviews into sentiment and theme summaries — aspect coverage on one screen for product and CX teams who need signal without reading every line.
Decision-support only — confirm before you publish or act.
Want to try the product? ReviewMiner
Generated 2026-09-17 · primary sources only · no fabricated traffic metrics