import streamlit as st import numpy as np import pandas as pd from transformers import pipeline from wordcloud import WordCloud import matplotlib.pyplot as plt import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize nltk.download('punkt') nltk.download('stopwords') from transformers import AutoTokenizer, AutoModelForSequenceClassification def calculate(q1,q2,q3,q4,q5,q6,q7,q8,q9,q10): score = 0 for i in [q4,q5,q7,q8]: if i == 'Very Often': score += 0 elif i == 'Fairly Often': score += 1 elif i == 'Sometimes': score += 2 elif i == 'Almost': score += 3 elif i == 'Never': score += 4 for i in [q1,q2,q3,q6,q9,q10]: if i == 'Very Often': score += 4 elif i == 'Fairly Often': score += 3 elif i == 'Sometimes': score += 2 elif i == 'Almost': score += 1 elif i == 'Never': score += 0 return score def home_page(): st.write("# Mental Health Well Being App! \U0001f64f") st.markdown( """ TBD This is a place for you to check your stress score based on the Perceived Stress Score (PSS)). **👈 Select our offerings from the dropdown on the left** to see how we can help! """ ) def PSS_monthly(): st.write("## Ready to know your score on Perceived Stress Scale (PSS) for this month?") st.markdown("""This tool assess how different situations affect your feelings and your perceived stress. The questions in this scale ask about your feelings and thoughts during the last month.""") st.sidebar.success("Select one of our offerings from above. For better results, follow the sequence") st.sidebar.image("data:image/jpeg;base64,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",use_column_width=True ) with st.form(key='Questionaire_monthly'): question1 = st.selectbox( '1. In the last month, how often have you been upset because of something that happened unexpectedly?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question2 = st.selectbox( '2. In the last month, how often have you felt that you were unable to control the important things in your life?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question3 = st.selectbox( '3. In the last month, how often have you felt nervous and "stressed"?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question4 = st.selectbox( '4. In the last month, how often have you felt confident about your ability to handle your personal problems?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question5 = st.selectbox( '5. In the last month, how often have you felt that things were going your way?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question6 = st.selectbox( '6. In the last month, how often have you found that you could not cope with all the things that you had to do?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question7 = st.selectbox( '7. In the last month, how often have you been able to control irritations in your life?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question8 = st.selectbox( '8. In the last month, how often have you felt that you were on top of things?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question9 = st.selectbox( '9. In the last month, how often have you been angered because of things that were outside of your control?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question10 = st.selectbox( '10. In the last month, how often have you felt difficulties were piling up so high that you could not overcome them?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) submit_button = st.form_submit_button(label='Submit') if submit_button: score = calculate(question1,question2,question3,question4,question5,question6,question7,question8,question9,question10) st.write(f'Your Stress score : {score}/40 ') st.markdown("""**Here is how you progressed in the previous months**""") #Synthetic data created for the given user for 6 days df = pd.DataFrame(np.random.randint(10,40,(8,1)),columns=["Score"]) df['Month'] = ['01/01','02/01','03/01','04/01','05/01','06/01','07/01','08/01'] df.loc[7, 'Score'] = score df = df.set_index('Month') st.bar_chart(df) st.markdown("""---""") st.markdown("""Worried that you are a victim of stress? ***You are not alone*** and we are in a shared space.""") st.markdown("""How other users stand with you in Stress levels""") #Synthetic data created for other users members_scores = pd.DataFrame(np.random.randint(0,40,(40,2)),columns=['score','count']) members_scores = members_scores.groupby(['score'])['count'].agg('sum').reset_index()#.rename(columns={'count':'No. of Users'}) #st.dataframe(members_scores) #if score in members_scores['score']: # members_scores.loc[len(members_scores.index)]= [score,1+members_scores[members_scores['score']==score]['No. of Users']] #else: # members_scores.loc[len(members_scores.index)]= [score,1] #st.dataframe(members_scores) #fig = plt.figure(figsize=(10, 4)) #plt.scatter(members_scores['score'], members_scores['No. of Users'],s=[5*i for i in members_scores['No. of Users']]) #plt.scatter(score,members_scores[members_scores['score']==score]['No. of Users'],marker="*",color='r') #st.balloons() #plt.xlabel('Perceived Stress Scale') #plt.ylabel('No. of Users') #st.pyplot(fig) #st.markdown("""---""") st.vega_lite_chart(members_scores, { 'mark': {'type': 'circle', 'tooltip': True}, 'encoding': { 'x': {'field': 'score', 'type': 'quantitative'}, 'y': {'field': 'count', 'type': 'quantitative'}, 'size': {'field': 'score', 'type': 'quantitative'}, 'color': {'field': 'score', 'type': 'quantitative'}, }, },use_container_width=True) def PSS(): st.write("## Ready to know your score on Perceived Stress Scale (PSS) for this week?") st.markdown("""This tool assess how different situations affect your feelings and your perceived stress. The questions in this scale ask about your feelings and thoughts during the last week.""") st.sidebar.success("Select one of our offerings from above. For better results, follow the sequence") st.sidebar.image("data:image/jpeg;base64,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",use_column_width=True ) with st.form(key='Questionaire'): question1 = st.selectbox( '1. In the last week, how often have you been upset because of something that happened unexpectedly?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question2 = st.selectbox( '2. In the last week, how often have you felt that you were unable to control the important things in your life?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question3 = st.selectbox( '3. In the last week, how often have you felt nervous and "stressed"?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question4 = st.selectbox( '4. In the last week, how often have you felt confident about your ability to handle your personal problems?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question5 = st.selectbox( '5. In the last week, how often have you felt that things were going your way?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question6 = st.selectbox( '6. In the last week, how often have you found that you could not cope with all the things that you had to do?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question7 = st.selectbox( '7. In the last week, how often have you been able to control irritations in your life?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question8 = st.selectbox( '8. In the last week, how often have you felt that you were on top of things?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question9 = st.selectbox( '9. In the last week, how often have you been angered because of things that were outside of your control?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) question10 = st.selectbox( '10. In the last week, how often have you felt difficulties were piling up so high that you could not overcome them?', ('Very Often', 'Fairly Often', 'Sometimes','Almost','Never')) submit_button = st.form_submit_button(label='Submit') if submit_button: score = calculate(question1,question2,question3,question4,question5,question6,question7,question8,question9,question10) st.write(f'Your Stress score : {score}/40 ') def daily_log(): model_path = "cardiffnlp/twitter-xlm-roberta-base-sentiment" sentiment_task = pipeline("sentiment-analysis", model=model_path, tokenizer=model_path) st.markdown("""***Hey there!! 👋 Ready to track your daily progress*** \u270D\uFE0F""") with st.form(key='Sentiment'): prompt = st.text_area('Thought Journal:',value="Hackathon was the best part of today and collaborating with colleagues is icing on the cake. It was challenging though.") submit_button = st.form_submit_button(label='Submit') if submit_button: out = sentiment_task(prompt) if out[0]['label'] =='Positive': score = out[0]['score'] st.write(f'Yay!! You are having a great day and we know that you are worth of it \U0001f60d') elif out[0]['label'] =='Negative': st.write("Sorry you had a bad day but you'll always have an another day to improve \U0001f91d \U0001f917") habit = st.selectbox('Did you stick with the habit?',('Yes', 'No')) history = ["\U0001F612","\U0001F600","\U0001F600","\U0001F612","\U0001F600","\U0001F612"] days = ['Day1', 'Day2', 'Day3', 'Day4', 'Day5', 'Day6'] button = st.button('Track',key='hbt_button') df = pd.DataFrame(list(zip(days, history)), columns =['Days','Emotions']) df = df.set_index('Days') if button: if habit=='Yes': st.write("Well Done, Keep it up!! \u2705") df.loc['Day7'] = ["\U0001F600"] elif habit=='No': st.write("Don't worry, you can catch up again tomorrow") df.loc['Day7'] = ["\U0001F612"] #st.bar_chart(df) #Steps Calculator st.markdown("""---""") no_of_steps = st.text_input('Steps Walked Today', 0) no_of_steps = int(no_of_steps) stp_history = [5000,1250,4850,1890,6000,4500] stp_days = ['Day 1', 'Day 2', 'Day 3', 'Day 4', 'Day 5', 'Day 6'] stp_button = st.button('Track',key='stp_button') stp_df = pd.DataFrame(list(zip(stp_days, stp_history)), columns =['Days','Steps']) stp_df = stp_df.set_index('Days') if stp_button: if no_of_steps>=0: st.write("Well Done, Keep it up!! \u2705") stp_df.loc['Day7'] = [no_of_steps] st.markdown("""---""") # Sleep no_of_hrs = st.text_input('Hours Slept', '0') no_of_hrs = int(no_of_hrs) hrs_history = [7,7.5,8,7.5,6,8] hrs_days = ['Day 1', 'Day 2', 'Day 3', 'Day 4', 'Day 5', 'Day 6'] slp_button = st.button('Track',key='slp_button') slp_df = pd.DataFrame(list(zip(hrs_days, hrs_history)), columns =['Days','Hours slept']) slp_df = slp_df.set_index('Days') if slp_button: if no_of_hrs>=0: st.write("Well Done, Keep it up!! \u2705") slp_df.loc['Day7'] = [no_of_hrs] #slp_df = slp_df.copy(deep=False) #st.dataframe(slp_df) st.markdown("""---""") st.markdown("""**Gratitude Journal**""") st.markdown("""Use the below prompt and reflect on what you are grateful for today. We will provide you our insights \U0001f929 """) gratitude = st.text_area('I am grateful for ....',value='the wonderful family I am gifted with. They are always supportive and encourage to achieve my goals.') grt_button = st.button('Get me things that I love the most',key='grt_button') if grt_button: #Synthetic data grt_text = 'Family Trip Friends Books College Movies friendship friendship Food Gatherings School Rain Nature Discipline Compassionate laugh, joy , excellent, relaxing, food, cakes, chocolates, sweets, festival, Family Family Family hilarious, weekends, Movies friendship, love rainbow, comedy affection vacation beach dance sports attractive optimistic moonlight, bonus ' + gratitude stop_words = set(stopwords.words('english')) word_tokens = word_tokenize(grt_text) filtered_sentence = [w for w in word_tokens if not w.lower() in stop_words] filtered_sentence = [] for w in word_tokens: if w not in stop_words and len(w)>3 : filtered_sentence.append(w) filtered_words = ' '.join(map(str,filtered_sentence)) wordcloud = WordCloud().generate(filtered_words) # Display the generated image: plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() st.set_option('deprecation.showPyplotGlobalUse', False) st.markdown("""**We found these to be your favourites**""" +""" \U0001f60d""") st.pyplot() st.markdown("""**May be you should doing things that makes you grateful**""" +""" \U0001f596""") st.markdown("""\n""") st.markdown("""---""") st.markdown("""**Want to know how you are doing in this week ?**""" +""" \U0001f4c8""") trd_button = st.button('Display Trends',key='trds_button') if trd_button: st.markdown("""**How your emotions varied in this week ?**""" +""" \U0001F612 \U0001F600""") st.bar_chart(df) st.markdown("""---""") st.markdown("""**Track of your step count in this week ?**""" +""" \U0001f45f""") st.line_chart(stp_df) st.markdown("""---""") st.markdown("""**Track of hours you slept in this week ?**""" +""" \U0001f4a4""") st.line_chart(slp_df) st.markdown("""---""") check_box_prb = st.checkbox('I have completed my 7 days of tracking and I am ready to know your recomendation') #st.dataframe(slp_df) if check_box_prb: slp_df = slp_df.copy(deep=False) #if slp_df.shape[0] == 7: #st.write(slp_df.shape[0]) st.write("That's Awesome! Keep the momentum going!") st.markdown("""**Why don't you share what you are going through? This would help us to give a better recommendation**""") classifier = pipeline("zero-shot-classification", model='cross-encoder/nli-distilroberta-base') sent = st.text_area('Brief your problem, we will suggest activities that could help you overcome stress',value="""As I am in college I am up all night all day getting only 5 hours of sleep daily. Eventually after some days I started facing some issues like mood swings and feeling lazy all the time , body ache, puffy eyes and ended up eating at night (one becomes snacky resulting at night) in weight gain.""") prb_button = st.button(label='Submit',key='probsubmit') #slp_df = slp_df.copy(deep=False) #st.dataframe(slp_df) if prb_button: #st.dataframe(slp_df) #slp_df = slp_df.copy(deep=False) candidate_labels = ["Sleep-disorder", "Work-stress", "Peer pressure"] res = classifier(sent, candidate_labels) problem = res['labels'][0] st.write('We feel working on ',problem ,' could improve your overall well-being') st.markdown("""###Not sure where to start?###"""+ """ \U0001f914 """+""" ###Here are our recommendations!!### \U0001f917""") if problem == 'Sleep-disorder': st.write("Try this [Mediatation for Sleep on Headspace](https://www.headspace.com/meditation/sleep)") st.write("Try this [Yammer community for Mindfulness](https://web.yammer.com/main/org/optum.com/groups/eyJfdHlwZSI6Ikdyb3VwIiwiaWQiOiI1NzMxOTMxNzUwNCJ9/new)") elif problem == 'Work-stress': st.write("Try this [Mediatation for Anxiety on Headspace](https://www.headspace.com/meditation/anxiety)") st.write("Try this [Yammer community for Mindfulness](https://web.yammer.com/main/org/optum.com/groups/eyJfdHlwZSI6Ikdyb3VwIiwiaWQiOiI1NzMxOTMxNzUwNCJ9/new)") elif problem == 'Peer pressure': st.write("Try this [Calm Down Meditation](https://www.headspace.com/articles/how-to-calm-down)") st.write("Try this [Yammer community for Mindfulness](https://web.yammer.com/main/org/optum.com/groups/eyJfdHlwZSI6Ikdyb3VwIiwiaWQiOiI1NzMxOTMxNzUwNCJ9/new)") #st.write(type(res['labels'])) #else: # warning = '
Looks like you have not tracked your habits for a week. Instant solutions may not always work. Keep track for atleast 7 days
' #st.markdown(warning, unsafe_allow_html=True) #st.write('Looks like you have not tracked your habits for a week. Instant solutions may not always work. Keep track for atleast 7 days') page_names_to_funcs = { "Home": home_page, "Daily Log": daily_log, "Weekly - Perceived Stress Scale": PSS, "Monthly - Perceived Stress Scale": PSS_monthly } #st.set_page_config(page_title="Mental Well Being", layout="wide") #st.markdown( #""" #