def calculate_distress(emotions, suicide_risk=0.0): distress_weights = { "fear": 1.0, "anger": 0.9, "disgust": 0.8, "sadness": 0.85, "nervousness": 0.7, "disappointment": 0.6, "remorse": 0.5, "annoyance": 0.6, "confusion": 0.6, "disapproval": 0.4, "embarrassment": 0.7, "grief": 1.0, "desire": 0.4, "joy": 0.2, "love": 0.3, "admiration": 0.2, "optimism": 0.3, "relief": 0.2, "pride": 0.3, "gratitude": 0.2, "amusement": 0.2, "excitement": 0.3, "surprise": 0.4, "neutral": 0.1 } if not emotions: distress = 0.0 else: distress = sum( distress_weights.get(label, 0) * score for label, score in emotions.items() ) # Boost distress with suicidal risk distress += suicide_risk * 1.5 return round(min(distress, 1.0), 2) # Cap at 1.0