import streamlit as st import numpy as np st.markdown( """ """, unsafe_allow_html=True ) def map_to_emotion(spo2, bp, temp): spo2_numeric = float(spo2.split('%')[0]) if spo2_numeric >= 96: spo2_emotion = ["Joy", "Anticipation", "Trust"] elif spo2_numeric == 93 or spo2_numeric == 94: spo2_emotion = ["Fear"] else: spo2_emotion = ["Anger", "Disgust"] if bp == "110/70mmHg": bp_emotion = ["Trust"] elif bp == "122/74 mmHg": bp_emotion = ["Joy"] else: bp_emotion = ["Surprise"] if temp >= "98.7F" and temp <= "99.1F": temp_emotion = ["Joy", "Surprise", "Disgust", "Anticipation"] elif temp < "98.7F": temp_emotion = ["Sadness"] else: temp_emotion = ["Fear", "Anger"] emotions = spo2_emotion + bp_emotion + temp_emotion return emotions def predict_levels(emotions): stress_percentage = np.random.randint(0, 100) anxiety_percentage = np.random.randint(0, 100) depression_percentage = np.random.randint(0, 100) return stress_percentage, anxiety_percentage, depression_percentage def main(): st.title("Emotion Analysis and Mental Health Prediction") st.markdown("### Enter Vital Parameters:") spo2 = st.selectbox("Select Spo2 Level", ["96% or more", "93-94%", "92% or less"]) bp = st.selectbox("Select Blood Pressure Level", ["110/70mmHg", "122/74 mmHg", "Others"]) temp = st.selectbox("Select Body Temperature", ["98.7F-99.1F", "Less than 98.7F", "Greater than 99.1F"]) emotions = map_to_emotion(spo2, bp, temp) st.markdown("### Emotion Analysis Results:") for emotion in emotions: st.write(f"- {emotion}") st.markdown("### Predicted Mental Health Levels:") stress_percentage, anxiety_percentage, depression_percentage = predict_levels(emotions) st.write(f"Stress Percentage (approx): {stress_percentage}%") st.write(f"Anxiety Percentage (approx): {anxiety_percentage}%") st.write(f"Depression Percentage (approx): {depression_percentage}%") if __name__ == "__main__": main()