Case study · Machine learning · NLP

Can a model spot an AI-written review?

We trained detectors on 8,036 short reviews, half written by people and half by nine chat models from Gemini 1.5 to GPT‑5.2, then tested them the way fake reviews really arrive: from models they had never seen.

Machine learningNLPTrust and safetyModel evaluationExplainable AI
Independent project on public dataCode and data publishedUpdated 1 November 2026
0.99
ROC AUC across five-fold cross-validation, with human and AI reviews matched on length and tone
86%
of AI-written reviews caught while wrongly flagging only 1% of genuine reviews
1%
of today's AI reviews caught by a detector trained on 2019-era GPT-2 fakes
29–37%
caught for the three newest models when the detector had never seen them

01The question

Chat models can write a convincing product review in a second, for free, in any voice. Anyone who runs a marketplace, an app store, a booking site or a brand's review page now has to ask how much of what they publish was written by a machine.

Regulators are asking too. Since October 2024 the US Federal Trade Commission's rule on fake reviews has covered AI-generated ones, and in the UK the Digital Markets, Competition and Consumers Act has banned fake reviews since April 2025. UK law expects businesses that publish reviews to take reasonable steps to prevent and remove them.

Plenty of tools claim to detect AI text. We wanted to know three things a buyer of those tools should ask: how accurate can a detector be on short reviews, what gives AI reviews away, and, most importantly, does a detector keep working when a new model comes out?

02The data

  • Human reviews: the original Amazon reviews in the open dataset of Salminen and colleagues (2022), covering ten product categories from books to pet supplies. They were written before 2019, so before any modern chatbot existed.
  • Modern AI reviews: the CRSD dataset (Infinitode, 2026): about 10,100 reviews from nine chat models, including GPT‑4o mini, GPT‑5 mini, GPT‑5.2 Instant, Gemini 1.5, 2.0 and 3 Flash, Grok 4.1 Fast, Llama 3 and Mixtral.
  • Older AI reviews: the 20,216 GPT‑2 reviews from the Salminen dataset, the kind of fake that detectors were built for in 2019–2022.

We kept reviews of 3 to 50 words, the length of most real reviews. After cleaning and removing duplicates that left 11,380 human, 7,475 modern AI and 12,698 GPT‑2 reviews.

03The approach

The easy way to build an impressive detector is to let it cheat. We closed off the shortcuts first.

  1. Remove typographic fingerprints

    Some models put two spaces after a full stop or use curly quotes. We normalised spacing and quotation marks so a model has to learn the language, not the typing.

  2. Match like with like

    AI reviews in the data are more often negative and shorter. We paired human and AI reviews cell by cell on sentiment (from star ratings) and length, giving 4,018 of each. Length and tone carry no signal.

  3. Build three detectors

    A full model on word and character patterns; a style-only model that sees 24 features such as punctuation, sentence length and informal spelling but no vocabulary at all; and a compact 6,000-term model small enough to run in a web browser.

  4. Stress-test them like an attacker would

    Five-fold cross-validation; leave-one-generator-out (train on eight chat models, test on the ninth); a 2019-style detector trained on GPT‑2 and tested on today's models; and every result read at a 1% false-flag rate, because accusing real customers is expensive.

  5. Explain and ship

    We translated the model's signals into plain-English tells and ported the compact model to JavaScript. Its scores match Python's to within 0.00002 on 200 test reviews.

04What we found

When it has seen the model, detection is very accurate

DetectorROC AUCAccuracyCaught at 1% false flagsCaught at 5% false flags
Word and character patterns (full)0.99095.3%86%95%
Compact model (runs in the browser)0.98694.2%81%93%
Style only, no vocabulary0.96088.9%60%80%

Five-fold cross-validation on the 8,036 matched reviews. Even the style-only model, which never sees a single word, separates the two groups well: the difference is in how AI writes, not only what it writes about.

A detector built for yesterday's fakes is blind to today's

Bar chart: a detector trained on GPT-2 fakes catches 77% of GPT-2 reviews but 1% of modern chat-model reviews; a detector trained on modern models catches 80% of modern reviews but 2% of GPT-2 reviews.
Figure 1. Each detector is excellent on the kind of fake it was trained on and almost useless on the other. All four results use the same unseen human reviews and a threshold that wrongly flags 1% of them.

Detectors learn the quirks of the generator they were trained on. A tool can score 98% on its own benchmark and catch almost nothing in production.

The newest models are the hardest to catch

Dot plot by chat model of the share of reviews caught at a 1% false-flag rate when the model was in training and when it was held out. Held out: Llama 3 87%, Gemini 1.5 Flash 86%, Gemini 2.0 Flash-Lite 80%, Mixtral 74%, Grok 4.1 Fast 73%, GPT-4o mini 63%, Gemini 3 Flash 37%, GPT-5 mini 35%, GPT-5.2 Instant 29%.
Figure 2. We trained on eight models and tested on the ninth, nine times over. Older and smaller models stay easy to catch even when new to the detector. GPT‑5.2 Instant, GPT‑5 mini and Gemini 3 Flash, the three newest, drop to 29–37%.

Every new model release is a new attack. A detector needs fresh examples, retraining and monitoring, not a one-off purchase.

What gives AI away

Dot plot of telltale signs. AI reviews open with The or This 70% of the time versus 10% for humans. Humans more often skip the final full stop (18% vs 1%), use a number (12% vs 1%), use not (13% vs 2%) and use great, good or nice (34% vs 13%).
Figure 3. AI reviews read like tidy, complete sentences ("The blender was..."). People write in fragments, skip full stops, quote numbers, hedge with "not", stretch words ("sooo") and reach for plain praise like "great" and "nice".

05Try the detector

AI-written review detector LIVE

This is the compact model from the table above, running entirely in your browser. Nothing you type is sent anywhere.

Start typing to see the score update.

A demonstration model trained on short English product reviews. It will be wrong on some reviews and is not evidence that any particular person used AI. Please do not use it to accuse anyone.

06What it means for a business

Triage, not verdicts

At a 1% false-flag rate the model sends most AI reviews to a moderation queue and leaves 99% of genuine customers alone. People make the final call.

Set the threshold by cost

The right cut-off depends on what a wrongly removed review costs you against a fake that stays up. We read every result at 1% and 5% for that reason.

Budget for retraining

The share caught fell from 90% to 35% when GPT‑5 mini was new to the detector. Plan quarterly retraining on fresh labelled examples and watch the score distribution for drift.

Text is one signal of several

Combine it with account age, purchase verification and posting bursts. A fraudster can edit the text; it is much harder to fake the behaviour.

07Limits

Read the numbers as a best case for simple fakes

  • The modern AI reviews came from generic prompts ("write a positive review for a product, be descriptive and human-like"). A fraudster who prompts for a specific product, adds typos or edits the output will be harder to catch.
  • The AI reviews cover products, films and venues, while the human reviews are all Amazon products, so some words such as "movie" or "event" help the full model for the wrong reason. The style-only model, which uses no vocabulary, still reaches 0.96 AUC, so topic is not the main signal.
  • English only, reviews of 50 words or fewer, and human reviews from one platform written before 2019.
  • Some models have few reviews after matching (110 for Llama 3, 134 for GPT‑5.2 Instant). Figure 2 shows 95% intervals.

08How we would do this for you

Week 1

Measure the problem

Label a sample of your reviews or user content, estimate how much is machine-written, and agree what a false flag costs.

Weeks 2–3

Build and stress-test

Train on your data plus the newest public models, add behavioural signals, and test on generators held out from training.

Week 4

Deploy and monitor

Batch scoring or an API, a drift dashboard, and a retraining playbook your team can run.

09Reproduce it

The analysis script downloads both public datasets, rebuilds the matched set and reruns every test. A full run takes about a minute on a laptop.

Python 3scikit-learnpandasNumPySciPymatplotlibJavaScript

Data: Salminen, J. et al. (2022), “Creating and detecting fake reviews of online products”, Journal of Retailing and Consumer Services 64; CRSD, Customer Review Sentiment Dataset (Infinitode, 2026), MIT-style licence.

This is an independent project built on public data to show how we work. It is not client work, and no client data was used. Figures are reproducible from the published code.

Worried about fake reviews, spam or AI-generated content on your platform?

We can measure how much of it you have, build a detector on your own data, and set the threshold by what a false accusation costs you.

More case studies

Simulation · Financial modelling
1.4–30+years for buying to beat renting, depending on place and prices

Is renting really “dead money”? A decision model tested against 21 years of history

A month-by-month simulation of a six-figure decision, a 2005–2026 backtest, sensitivity to rates and prices, and a calculator anyone can use.

SimulationFinancial modellingBacktestingSensitivity analysisPython and R
Read the case study
Causal inference · Econometrics
r = 0.01correlation between AI exposure and job change, 2019–2025

Is AI taking jobs? Testing the claim on 722 occupations

Linking AI usage data to employment, controlling for confounders, and a placebo test that shows the headline “effect” was there before ChatGPT.

Causal inferenceRegressionPlacebo testData linkageLabour market
Read the case study