If you are fine-tuning a model to understand shoppers — a support assistant, a product-Q&A bot, a review summarizer, a comparison engine — there is no better raw material than e-commerce reviews. Reviews contain the exact distribution your model will face in production: real questions, real complaints, hedged praise, sarcasm, regional slang, comparisons to rivals, and the thousand ways people describe a battery dying too fast. Product descriptions teach a model marketing voice; reviews teach it user intent.
But raw reviews are also the messiest commercial text on the web: duplicated across variants and regions, salted with incentivized boilerplate, dense with personally identifiable information, and — increasingly — polluted with AI-generated filler that will quietly poison a fine-tune. This tutorial walks the complete pipeline Actowiz Solutions runs to convert scraped review streams into fine-tuning-grade datasets: collection, cleaning, labeling, instruction-pair generation, and delivery with the documentation modern AI buyers demand.
Everything downstream is easier if collection produces typed records rather than raw HTML. A production review record carries: product ID and category path, rating, title, body, review date, verified-purchase flag, helpful-vote count, language tag, and collection timestamp.
Two collection-time decisions matter enormously:
Expect to discard 35–50% of raw volume, and treat that as a feature: every filtered record raises average training value per token. The core filter stack:
def keep(review):
body = review["body"]
if len(body.split()) < 8: # low-signal fragments
return False
if review["lang"] != target_lang: # language routing
return False
if ai_generated_score(body) > 0.8: # synthetic pollution
return False
if incentive_pattern(body): # "received free in exchange…"
return False
if is_near_duplicate(review["id"], body): # MinHash-LSH near-dup
return False
return True
Notes from production:
Labels follow the model objective. The three schemas we build most often:
| Target Capability | Label Schema | Example |
|---|---|---|
| Aspect-based sentiment | aspect → polarity pairs | battery→negative, fit→positive, price→neutral |
| Q&A grounding | question-type, answerability, evidence span | "does it fit a 15-inch laptop?" → spec-answerable, span cited |
| Comparison reasoning | entities, preferred, dimension, reason span | Model A > Model B on noise cancellation |
Hybrid labeling is the scale answer. Model-assisted pre-labeling handles volume; stratified human QA (by category, rating band, and language) validates it; disagreement-driven re-review concentrates human attention where the pre-labeler is weakest. Two deliverables make the labels trustworthy rather than decorative: inter-annotator agreement statistics (report Cohen's κ per schema — buyers now ask) and a versioned label guide, because "what counts as a battery complaint" drifts unless written down.
Labeled records convert into instruction-tuning pairs. The governing rule: every pair is anchored to real review content — instructions may be templated and varied, but inputs and target outputs derive from actual reviews. Fully synthetic pairs re-import the model-collapse problem you filtered out in Step 2.
{
"instruction": "Summarize the main complaints about this earbuds model based on the reviews provided.",
"input": "[6 real review excerpts, PII-masked, evidence-selected]",
"output": "Reviewers most frequently cite fit problems for smaller ears and inconsistent Bluetooth pairing on Windows devices. Battery life and case build quality are widely praised.",
"meta": {"product_id": "…", "pair_type": "complaint_summary", "label_schema": "aspect_v3", "source": "reviews"}
}
Build the pair taxonomy deliberately, and balance it:
Vary instruction phrasing across templates (models overfit to a single instruction style), and stratify pair counts across categories and rating bands so the tune doesn't learn that all products are electronics and all reviews are angry.
Split at product level. All reviews (and all pairs) of a given product live in exactly one of train/validation/test. Review-level splitting leaks product context and inflates evaluation scores — the bug that makes a fine-tune look great until production.
Version everything. Semantic versions on the dataset, the label schema, and the filter stack; a pair generated under aspect_v3 is not comparable to aspect_v2, and six months later nobody remembers unless it's in the metadata.
Ship a datasheet. Every Actowiz delivery includes: source and language mix, filter-stage retention rates, label agreement statistics, pair-taxonomy distribution, PII audit result, and per-record lineage. Under the EU AI Act's transparency expectations and enterprise procurement norms, the datasheet is no longer optional paperwork — it is part of the product.
| Metric | Value* |
|---|---|
| Raw reviews collected | 12,000,000 |
| Retained after filter stack | 6.4M (53%) |
| AI-generated content removed | 7.2% of raw |
| Instruction pairs generated | 1.8M across 5 pair types |
| Refusal-case share | 8% |
| Label agreement (sampled, aspect schema) | κ = 0.87 |
| Languages | en, hi, hinglish, ar, id |
| PII incidents in post-delivery audit | 0 |
Sample data — illustrative of Actowiz deliverable structure.
The fragile half of this pipeline — resilient multi-platform review collection, edge PII masking, dedup and AI-content filtering at web scale, multilingual coverage — is what we industrialize. Clients receive filtered, labeled, pair-ready corpora (or the structured review layer alone, if labeling stays in-house) as JSONL/Parquet to S3, GCS, or Snowflake, on one-time or refreshing cadences, with the datasheet and lineage pack included. Your team keeps the modeling; the scraping wars stay ours.
Reviews carry the production distribution — real intent, complaint language, comparison reasoning, and noise. Descriptions teach marketing voice; synthetic pairs teach model voice. Anchoring on real reviews is also the collapse-resistant choice.
Task-dependent: aspect-sentiment capabilities show gains from roughly 50–100K quality pairs; broader assistant behavior benefits from several hundred thousand across a balanced taxonomy. Quality and balance beat raw volume consistently.
Identity fields are masked at the edge during collection and never stored; residual PII scans run pre-delivery; the audit result ships in the datasheet. The pipeline is designed so reviewer identity is never part of the dataset at any stage.
Yes — collection, filtering, and labeling run multilingually (Hindi, Hinglish, Arabic, Bahasa, and more), with language-stratified QA so agreement statistics hold per language, not just in aggregate. Contact Actowiz Solutions to scope a pilot corpus for your category.
You can also reach us for all your mobile app scraping, data collection, web scraping , and instant data scraper service requirements!
Our web scraping expertise is relied on by 4,000+ global enterprises including Zomato, Tata Consumer, Subway, and Expedia — helping them turn web data into growth.
Watch how businesses like yours are using Actowiz data to drive growth.
From Zomato to Expedia — see why global leaders trust us with their data.
Backed by automation, data volume, and enterprise-grade scale — we help businesses from startups to Fortune 500s extract competitive insights across the USA, UK, UAE, and beyond.
We partner with agencies, system integrators, and technology platforms to deliver end-to-end solutions across the retail and digital shelf ecosystem.
How brands extract Instagram commerce intelligence -shop listings, Reels product trends, creator collaborations & hashtag commerce data. Guide by Actowiz Solutions.
How Actowiz Solutions built a unified US real estate data API across LoopNet, Redfin & Apartments.com - normalized listings, one schema, delivered as a live feed.
Explore Multi-Market Grocery Price Index - USA/UK/AU/CA for cross-country grocery pricing, inflation trends, and retail insights.
Whether you're a startup or a Fortune 500 — we have the right plan for your data needs.