Case study/2026/group project · nlp · deep learning

SentinelDrift, when star ratings are too late.

A group project for detecting product-review sentiment drift at the aspect level. The system extracts smartphone-specific sentiment signals, aggregates them into monthly time series, and compares deep-learning and statistical drift detectors without pretending the deep model won everywhere.

Role
Group project. End-to-end pipeline, evaluation, dashboard, and presentation.
Module
WM9B7 AI & Deep Learning · Warwick, 2026
Stack
pythonpyabsatf-idflstm-aecusumreact
Context
Amazon Reviews 2023 · smartphone subset
312k Clean review rows
0.883 PyABSA CV macro F1
9 Product aspects
3 Drift detectors compared

01The problem

Star ratings tell a company that something has gone wrong. They rarely explain what changed, when it changed, or which product aspect caused the shift.

SentinelDrift was built around a practical product question: if customers start complaining about battery life, charging, audio, or software updates, can a manufacturer see that drift early enough to act? A single overall rating hides too much. Two products can both sit at four stars while one has a rising battery issue and the other has a camera problem.

The project used Amazon Reviews 2023 smartphone data and treated the problem as an aspect-level monitoring system: extract sentiment for specific product aspects, aggregate those signals over time, and then detect whether the time series has drifted.

02The approach

We built the pipeline in four main stages. First, we cleaned and filtered smartphone review data into an analysis-ready corpus. Then the ABSA layer detected mentions of nine product aspects, such as battery, display, software, charging, audio, and performance, and classified the sentiment around each mention.

Those aspect-sentiment predictions became monthly product-level time series. Sparse months were handled carefully with shrinkage and robust normalisation rather than pretending every product-month-aspect cell had equal evidence. Finally, the drift layer compared a lightweight LSTM autoencoder against CUSUM and PELT baselines.

The dashboard wrapped the output into an analyst workflow: portfolio alerts, product pulse, root-cause evidence, and system-health views. The best version of this project is not just a notebook result. It is a monitoring product concept.

SentinelDrift pipeline from ingest to extraction, aggregation, changepoint detection, and explanation
Pipeline overview: raw reviews become aspect-level sentiment signals, then time-series drift alerts with explanation evidence.

03Key decisions

ABSA first
Detect the aspect before detecting the drift. A star-rating series can say sentiment dropped. ABSA can say battery sentiment dropped while camera sentiment stayed stable. That is the difference between a generic alert and an actionable one.
Sentence context
Long reviews needed a narrower, cleaner input window. Passing full review text into a transformer risks silent truncation and noisy sentiment from unrelated sentences. Sentence-level context keeps the model closer to the aspect being classified.
Baseline honesty
The deep detector was not allowed to win by default. CUSUM, PELT, and the LSTM autoencoder were compared directly. CUSUM was stronger on recall, while the LSTM autoencoder's value was faster warning when it fired and reconstruction-error localisation.

04Results

ComponentResultWhat it means
PyABSA APC 0.883 CV macro F1 Deep learning clearly helped for aspect-aware sentiment extraction.
TF-IDF + Logistic Regression 0.275 CV macro F1 A useful baseline, but weak at linking sentiment to a specific aspect.
CUSUM best recall The statistical monitor was better for persistent drift in sparse monthly signals.
LSTM autoencoder faster when it fired Useful as an early-warning signal, not a replacement for the statistical baseline.
Model comparison showing CUSUM with higher recall than LSTM autoencoder and faster LSTM autoencoder detection when it fires
Model comparison: CUSUM had stronger recall; the LSTM autoencoder's edge was earlier detection when it caught an event.

The strongest part of the project is that the result is not over-polished into a fake victory lap. Deep learning earned its place in ABSA. It did not dominate drift detection. That makes the project more credible, not less.

05What we would do differently

We would make the gold-label process stronger. The ABSA evaluation depends on a small labelled set, so the next version should use double-labelling, inter-annotator agreement, and a larger sample across weaker aspects like build, connectivity, and software.

We would also test a domain-tuned ABSA model on smartphone reviews instead of relying on a model trained mostly outside this domain. PyABSA performed well, but missed aspects are still a blind spot, and aspect-detection recall matters as much as polarity classification.

For the product side, we would add competitor and category baselines. If software sentiment drops across every phone in the same month, that is probably an ecosystem event, not a defect in one product. A real monitoring tool needs that distinction before it asks a team to investigate.