PROJECT CO-AUTHOR (MSC TEAM PAPER)

MindScan

Trained 15 and deployed 12 classifiers for depression/suicide-risk detection; XLM-RoBERTa reached 0.9993 F1 on binary detection, SVM reached 0.9269 F1 on six-class severity classification.

Tech Stack
PythonXLM-RoBERTascikit-learnSVMXGBoostFlaskHugging Face Spaces

Key Achievements

15 classifiers trained, 12 deployed

XLM-RoBERTa: 0.9993 F1 (binary detection)

SVM: 0.9269 F1 (six-class severity)

Deployed live via Flask on Hugging Face Spaces

Deep Dive

Detecting Risk in Text, Not Just Sentiment

Most mental-health text classifiers stop at binary sentiment — positive or negative. MindScan is a co-authored MSc team project that goes further: distinguishing between general depression indicators and six distinct severity/risk categories, including suicide-risk signals that carry a much higher cost of being missed.

A Parallel Inference Architecture

Rather than betting on one model, the team trained 15 classifiers across two different problem framings — binary depression detection and six-class severity classification — spanning transformer fine-tuning (XLM-RoBERTa) and classical ML (SVM, XGBoost). 12 of the 15 were selected for deployment based on validation performance.

Results

XLM-RoBERTa (fine-tuned) reached 0.9993 F1 on binary depression detection — effectively saturating that task. The harder six-class severity problem, which has to distinguish between adjacent risk levels rather than just “at risk” vs. “not,” saw the best result from a classical SVM model at 0.9269 F1 — a reminder that more parameters don’t automatically win on a harder, more granular label space.

Shipping It

The best-performing models were deployed as a live Flask application on Hugging Face Spaces, so the classification pipeline is a working demo rather than a notebook result.