Source-typed
Each narrative is tagged customer complaint, dealer RO or field log — driving a by-source Pareto and per-stream extraction emphasis. Regex + gazetteers, zero model download.
Free-text warranty claims and field notes in. Structured failure trends and overcycle-anomaly classes out — so the next 5-Why / 8D starts from data, not a spreadsheet search.
In commercial-vehicle field quality, the slowest step of root-cause analysis is reading thousands of free-text warranty claims, field-service narratives and equipment logs to figure out what is actually failing, and how often.
A large share of those returns are overcycle anomalies — repeated abnormal device cycling (soft resets, cloud-sync failures, power cycles) — that look like hardware faults but aren't. Telling them apart by hand is slow and inconsistent.
Each narrative is tagged customer complaint, dealer RO or field log — driving a by-source Pareto and per-stream extraction emphasis. Regex + gazetteers, zero model download.
TF-IDF + balanced logistic regression over a locked 5-label taxonomy, reproducible (seed 42); low-confidence (<0.55) flagged needs_review.
Dominant trend becomes a QualityMind-ready 8D / 5-Why payload, POSTed through an SSRF-guarded client — narrative to corrective action.
| Class | Precision | Recall | F1 |
|---|---|---|---|
| Soft Reset | 0.83 | 0.84 | 0.83 |
| Cloud Sync | 0.91 | 0.87 | 0.89 |
| Connectivity Loss | 0.88 | 0.95 | 0.91 |
| Power Cycle | 0.96 | 0.94 | 0.95 |
| No Fault Found | 0.90 | 0.88 | 0.89 |
| macro avg | 0.90 | 0.90 | 0.90 |
Stratified 75/25 split, produced by evaluate.py — which also writes a confusion matrix, per-label recall and an overcycle-recall summary to metrics.json. The synthetic corpus mirrors published automotive-warranty theme frequencies (infotainment / OTA / cloud-sync dominant, with battery-range and key-fob / USB edge cases) and injects ~18% ambiguous / blended hard cases on purpose, so the score reflects real field-note messiness — not a separable toy set.