keep-calm-models / README.md
elchief84's picture
Upload README.md with huggingface_hub
d692808 verified
|
Raw
History Blame Contribute Delete
4.15 kB
---
language:
- en
- it
license: apache-2.0
tags:
- communication
- tone-detection
- sentiment-analysis
- text-classification
- privacy
datasets:
- elchief84/keep-calm-dataset
metrics:
- accuracy
- f1
- mae
- pearson-r
model-index:
- name: keep-calm
results:
- task:
type: text-classification
dataset:
name: Keep Calm test set
type: workplace-chat
metrics:
- name: Risk MAE
type: mae
value: 0.100
- name: Risk Pearson r
type: pearson-r
value: 0.700
- name: Risk Level Accuracy
type: accuracy
value: 0.906
- task:
type: multi-label-classification
dataset:
name: Keep Calm test set
type: workplace-chat
metrics:
- name: Tone Macro F1
type: f1
value: 0.677
- task:
type: text-classification
dataset:
name: Keep Calm test set
type: workplace-chat
metrics:
- name: Intent Accuracy
type: accuracy
value: 0.706
---
# Keep Calm — Communication Risk Analyzer
A privacy-first, on-device model for pre-send communication analysis.
Detects tone, intent, and communication risk in English and Italian text.
## Model description
Three independent single-task models sharing a `distilbert-base-multilingual-cased` backbone:
- **Risk model**: regression head predicting continuous 0–1 communication risk
- **Tone model**: multi-label classification across 5 tones
- **Intent model**: multi-class classification across 4 intents
### Tone labels
`neutral` · `frustrated` · `hostile` · `sarcastic` · `positive`
### Intent labels
`constructive` · `critical` · `personal` · `informational`
## Intended use
Pre-send analysis of workplace text communication. The user writes a message, invokes Keep Calm, sees the analysis, and decides whether to send, revise, or discard.
**Not** intended as a moderation or censorship tool. The model estimates perception, not objective truth.
## Out-of-scope use
- Automated content moderation
- Post-hoc message flagging
- Surveillance or monitoring without consent
- Analyzing messages in domains other than workplace chat
- Languages other than English and Italian
## Training data
13,329 annotated examples (English + Italian), workplace chat domain. Sources: YouTube comments, GitHub PRs/issues, LLM-synthesized samples. All labeled by 3+ culturally diverse annotators.
## Bias, risks, and limitations
- **Direct communication penalty**: users from direct-communication cultures (German, Dutch) may receive higher risk scores
- **Sarcasm is hard**: the model's weakest tone (F1 = 0.515); low-confidence predictions are surfaced
- **Single domain**: trained only on workplace chat; cross-domain performance unmeasured
- **Context-blind**: no conversation history, relationship context, or cultural cues
- **Subjective ground truth**: annotator agreement reflects the inherent subjectivity of communication perception
- **Intent classification**: the weakest task at 70.6% accuracy
## Evaluation results
| Task | Metric | Score |
|---|---|---|
| Risk | MAE | 0.100 |
| Risk | Pearson r | 0.700 |
| Risk | Level accuracy | **90.6%** |
| Tone | Macro F1 | **0.677** |
| Intent | Accuracy | **70.6%** |
**Latency**: 12.3ms per message on Apple M1 (CPU-only).
**Bias audit FP rate**: 15.7% (51 curated probes across 9 categories).
## Hardware
- **Inference**: CPU-only, ~400MB RAM, ~12ms per message
- **Training**: single 16GB GPU (reference: RTX 5060 Ti)
## How to use
```python
from keep_calm import KeepCalmAnalyzer
analyzer = KeepCalmAnalyzer()
result = analyzer.analyze("Your message here")
print(result.communication_risk) # 0.72
print(result.risk_level) # RiskLevel.HIGH
print(result.explanation) # human-readable
```
## Citation
```bibtex
@software{keep_calm,
title = {Keep Calm: Pre-send Communication Risk Analysis},
year = {2026},
url = {https://github.com/elchief84/keep-calm}
}
```
## License
Apache 2.0