Spaces:
Sleeping
Sleeping
| # scripts/fix_crisis_data.py | |
| import json, random | |
| with open("data/crisis.jsonl") as f: | |
| rows = [json.loads(l) for l in f] | |
| safe = [r for r in rows if r["label"] == "safe"] | |
| at_risk = [r for r in rows if r["label"] == "at_risk"] | |
| crisis = [r for r in rows if r["label"] == "crisis"] | |
| print(f"Before — safe: {len(safe)}, at_risk: {len(at_risk)}, crisis: {len(crisis)}") | |
| # Oversample minority classes to match safe count (cap at 2000) | |
| target = min(len(safe), 2000) | |
| safe = random.sample(safe, target) | |
| at_risk = at_risk * (target // max(len(at_risk), 1) + 1) | |
| at_risk = at_risk[:target] | |
| crisis = crisis * (target // max(len(crisis), 1) + 1) | |
| crisis = crisis[:target] | |
| balanced = safe + at_risk + crisis | |
| random.shuffle(balanced) | |
| with open("data/crisis_balanced.jsonl", "w") as f: | |
| for r in balanced: | |
| f.write(json.dumps(r) + "\n") | |
| print(f"After — safe: {len(safe)}, at_risk: {len(at_risk)}, crisis: {len(crisis)}") | |
| print(f"Total: {len(balanced)} rows saved to data/crisis_balanced.jsonl") |