Demo · live hate-speech classifier
Hate-speech classification. 9 protected categories. Distinguishes use from mention.
Nine per-category detectors, one per protected identity (women, LGBTQ+, jews, muslims, black, asian, latino, disabled, migrants). HateCheck adversarial AUROC 0.9339 — beats Detoxify (0.91), Perspective API (~0.87), and HateBERT (0.85-0.88). Distinguishes use ("I hate X", P=0.87) from mention ("Saying I hate X is bigoted", P=0.10) — the failure mode that trips up production classifiers.
How this works
- Nine per-category detectors. A single detector loses category-specific signal — it collapses 9 distinct hate directions into one. Bhala calibrates one detector per identity (women, LGBTQ+, jews, muslims, black, asian, latino, disabled, migrants).
- Aggregator score = max across probes. Fires the top category at its own calibrated 5%-FPR threshold rather than averaging.
- Calibration set. Per-category probes trained on HateCheck + CONAN + CivilComments; 5%-FPR thresholds per identity.
- Use vs mention. The model preserves quotation/sarcasm boundaries that string-matching and Perspective-style classifiers don't.
- Signed receipt. SHA-256 audit record per call. Same head powers the Bluesky labeler at bsky.bhala.ai.