anupama-api / scripts /fix_crisis_data.py
srujangowda14's picture
committing backend files
a8c4bc6
Raw
History Blame Contribute Delete
1.01 kB
# 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")