Inspiration

One of our teammate's friends suffered from depression and had suicidal thoughts and many of their feelings were expressed through their Reddit posts. We did not know until much later until he finally disclosed that to us. Especially in the COVID-19 pandemic, many that suffer from mental instability are able to converse closely with friends. With several problems, such as health issues, employment issues, etc. Where we live, doctors have seen more deaths from suicides than COVID-19 itself during quarantine, according to ABC News.

Facebook and other companies have created algorithms to detect posts with suicidal sentiment. However, these solutions are insufficient because people are not helped well by robots which provide generic advice and resources, and 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.

Reddit is a better platform for people to share personal feelings because it has a higher level of anonymity and posts there have a more long-form format.

However, 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 cues signaling that their friend is struggling. Additionally, early detection is highly important. We filled this critical hole through AI and ML, which can find the intricate details and differences in these messages based on comprehensive datasets that take from real posts made by people.

Additionally, especially after the death of a famous Indian actor named Sushant Singh Rajput, we have seen many of his fans, who were living on the edge, follow suit. Finding such depressive posts can help ensure that we know who the most vulnerable or depressive are, so if their idol commits suicide, they don't also. This is why we added an ** emailing feature ** to make sure that people that need to know about this get to know.

What it does

SuicideWatch 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 (using Fast.ai) that classifies a phrase someone says as representing suicidal tendencies, depression, or neither. Users can input a reddit username to get a quick dashboard of all of the data from the user, or they can put both their username and their email to get daily emails for each username they input. This is done by using the Python SMTP API along with mail.com.

Through extensive research, we were able to find a dataset from Medium which web-scraped Reddit for thousands of posts from “r/depression", “r/SuicideWatch”, and "r/RandomThoughts". We managed, trained, and improved our model on Google Colab. The model was small and portable enough that it could be run on a CPU, so we did not need a seperate server. We deployed our model using localhost, but it could be deployed on heroku.

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 that allow people to see signs, our Python algorithm gives quick and easy recommendations to help struggling people find therapists.

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, online forums are a way to cope with loneliness and provide a great opportunity for tools to be able to intervene.

How we built it

After numerous hours of wireframing, conceptualizing key features, and outlining tasks, we divided the challenge amongst ourselves by assigning Marty to developing and designing the UI/UX and the backend, Vijay to building the NLP model and adding features to the backend.

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 app was done through Flask.

Challenges we ran into

The primary challenge that arose for us was training and deploying of our model. When we trained the model, we were dealing with very low levels of accuracy. However, by changing the training rate and changing hyperparameters, we are able to get higher accuracy to ensure that we are not either sending false alarms or ignoring important information.

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 that serves a very important real life purpose. We are extremely proud of developing a solution that has not been previously considered in this setting and putting it into an easy to use form.

What we learned

My partner and I 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 work.

From a software perspective, learning NLP was our main focus during this hackathon, as it was our next step in our journey to improve in machine learning. We learned how to effectively build NLP models and deploy them as python web apps using flask. We grew our web development skills and built our nicest UI so far in our application, which comes across to users as very professional.

What is next for SuicideWatch

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. Additionally, we aim to integrate SuicideWatch with school systems to allow counselors to help their students, especially when they can't see them from day to day. We also want to collect more data from other forums and possibly find a dataset from more people to improve our classifier.

Share this project:

Updates