Note for the demo: if anything happens to glitch, reloading should be able to solve the issue.
Inspiration
While our team has been fortunate to adjust well to COVID lifestyle, those suffering from mental instability have not been as lucky. With health problems, employment issues, and social isolation stacked on top of their already fractured mental health, the problem of suicide has been ignored and hardly addressed, increasingly maginalizing those struggling with mental health. Specifically in the Bay Area, where we live, doctors have seen more deaths from suicides than COVID-19 itself during quarantine(ABC News).
Our team decided that we couldn’t ignore the struggles of those suffering from insurmountable mental stress during quarantine. Thus, we took a unique approach to the COVID-19 theme. Instead of solving a direct issue stemming from the pandemic, we looked to solve an indirect issue, one with an even larger magnitude: Mental Health. Direct problems created by COVID such as mass unemployment and gaps in education have received much attention, but the implications COVID has on mental health has been ignored.
Facebook and other companies have created algorithms to detect posts with suicidal sentiment. However, these solutions are insufficient because: 1) people are deterred by robots which provide generic advice and resources, and 2) they are less likely to publicize their feelings on social media as opposed to privately speaking to their friends in-person or over text. Support and assistance from a friend instead of robots is far more ideal.
The problem is that humans are unable to accurately detect these cryptic phrases that can be considered “suicidal”, let alone distinguish them from less severe depressive sentiment. Due to quarantine, it is hard for friends to pick up on non-verbal cues signaling that their friend is struggling, making detecting mental instability even more difficult. Additionally, early detection is key especially during the COVID crisis as the longer a person is struggling and alone, the more likely they are to commit self-harm. We filled this critical hole through AI and ML, which can find the intricate details and differences in these messages based on comprehensive datasets.
What it does
SuiSense is a unique progressive web application that allows concerned family and friends to determine whether their struggling loved one is on the path to suicide. The core of our project is a Natural Language Processing model (Sci-Kit-Learn) that classifies a phrase someone says as representing suicidal tendencies, depression, or neither. Users can input text from their messaging conversations, memory of their in-person conversations, letters, diary entries, or screenshots (powered by TessaractOCR). Classifying between suicide and depression is critical because the implications and methods for support are completely different, but determining the difference is a precise task that is best dealt with through ML.
Through extensive research, we were able to find a dataset from Medium which web-scraped Reddit for thousands of posts from “r/depression” and “r/SuicideWatch”. The phrasing of the posts in each dataset are very similar, and thus it requires more than just 1 single sentence to make an accurate prediction. We managed, trained, and improved our model using automations from UIPath AI-Fabric. We also created a web-scraper to periodically collect data from the subreddits to increase our training sets and thus improve our classifier. We documented all our progress and thoughts in our Jupyter Notebook, so we recommend reading the notebooks. We deployed all our models using Google Cloud and PythonAnywhere.
After our model determines a primary classification, we then feed data into our progression model, which also uses NLP. Psychologist Jesse Bering discovered six stages on the path from depression to suicide, and our model accurately assesses what stage a patient is at and the severity of their depression. We trained this model on metadata specific to COVID, including employment status, health problems, how the person was affected by COVID, and more. During COVID, the progression of these stages happens at a much faster rate, meaning detecting which stage a patient is at is urgent.
Next, our framework allows friends and family to find the best therapists to address their specific needs. Given that COVID has taken away in-person interactions and other forms of meeting therapists, our Javascript algorithm gives quick and easy recommendations to help struggling people find therapists. We store all user data and classifications in Firebase from Google Cloud. We also have local therapists and support centers displayed on a Map, powered by the Google Maps API.
Lastly, we have a support page that allows therapists and patients to post on a forum, similar to a blog, creating a safe community for those who feel lonely and isolated. Since COVID has forced people online, creating online forums is a redesigned way to cope with loneliness and provide a great opportunity for regular people to communicate with certified therapists about different problems.
How we built it
After numerous hours of wireframing, conceptualizing key features, and outlining tasks, we divided the challenge amongst ourselves by assigning Adithya and Ishaan to developing and designing the UI/UX, Ayaan to building the NLP model and web server, and Viraaj to integrating Google Cloud functions, TessaractOCR, and our python webapp.
We coded the entire app in 4 languages: HTML, CSS, Javascript, and Python(Python3 /iPython). Developing and optimizing our NLP model and creating our python web was done through Jupyter Notebook, PythonAnywhere, and Google Cloud. We used Javascript to create our pairings algorithm, and used Google Cloud to store our data for the 3 algorithms and the support forum. We hosted our website through Netlify and Github.
Challenges we ran into
The primary challenge that arose for us was training and deploying of our model. Since this was our first NLP project, we struggled to train and make predictions with NLP models as our model utilized too much data and was too large to store on PythonAnywhere. Fortunately, after reading documentation, we were able to learn how to prune our model weights, and we learned how to properly deploy our models on their own webserver and embed it into our primary site.
Accomplishments we are proud of
We are incredibly proud of how our team found a distinctive yet viable solution to those who are struggling with mental instability due to COVID-19. We feel accomplished because of how efficiently we built off our specific research from various sources and applied them in a technological context to build one fully functional product. We are extremely proud of developing a solution that has not been previously considered in this setting and putting it into functional form.
What we learned
Our team found it incredibly fulfilling to use our Machine Learning knowledge in a way that could effectively assist people struggling with their mental health, especially during such a strenuous time where their existing difficulties are amplified. Seeing how we could use our software engineering skills to impact people who are often ignored and stigmatized in society was the highlight of our weekend.
From a software perspective, learning NLP was our main focus this weekend, as it was our next step in our ML journey. We learned how to effectively build NLP models and deploy them as python web apps. We grew our web development skills and built our nicest UI so far.
What is next for SuiSense
Since our application is free and all over the web, our project can be scaled and implemented anywhere and with many other programs, such as the National Suicide Prevention Lifeline. Our project is very scalable because we have already integrated a userbase foundation in Firebase, and since our product is free of charge and infinitely reproducible, it can be grown at an extremely high rate. With the possibility of a second wave for COVID, it is imperative that people have access to resources that can improve and stabilize their mental health and prevent suicides. Additionally, we aim to integrate SuiSense in schools and workplaces. These are high-pressure environments where people’s mental health is gradually deteriorating; we feel that our software will allow compassionate friends to accurately recognize their peers’ struggles and provide them with personalized and trustworthy support. Lastly, we want to collect more data from other forums and possibly find a dataset of notes from suicide victims to improve our classifier.
Built With
- ai
- automation
- css3
- firebase
- google-cloud
- google-hosting
- google-maps
- html5
- ipython
- javascript
- jupyter-notebook
- ml
- natural-language-processing
- python
- pythonanywhere
- tessaract
- uipath
Log in or sign up for Devpost to join the conversation.