WeCare: a mental illness identifier
About 1 in 4 college students suffer from a mental illness. The majority of us never seek help or do anything regarding this. I personally know a couple friends that are prescribed medication for there depression and they are the ones that talk about it openly to me. However many people never express what they really feel and hold it in for themselves. They don't want to seek help or talk to others because they think that they will be deemed weak. Here comes WeCare! It is a personalized mental illness identifier.
What it does
In our society, unfortunately, its still a taboo to discuss mental health issues. Even though 1 in 5 adults in a year in US experience mental illness issues, there are only a few people, who seek professional help. Our interactive web app lets the user share her symptoms with our system. We don't have scale ratings, checkboxes or other questions which curtail user's freedom in expressing their feelings but rather we let user input in the form of free flowing text. We then analyse these inputs through two classifiers. The first being IBM Watson's ToneAnalyzer which gives the overall sentiment of the input and our IllnessClassifier which classifies the symptoms into the illness they are closely related. We then use these classifications to find the doctor specialised in treatment of that disease nearest to you using your current location.
How we built it
We began the web app by running a node server in which we get all the users information and to host a simple web app. We then used Python and Django to get JSON data of the doctors available near the patient. Then using the server we send the information to our Django back-end which interacts with our machine learning model.
Our model is trained on Reddit posts marked under particular subreddits which have labels of mental illnesses. The dataset also consists of popular original posts mined from mental illness forums under specific categories where people were already diagnosed by doctors and shared their symptoms with the community. We used TIFID for illness classification.
Challenges we ran into
- Collection and processing of data to train our classifier.
- Training and fine-tuning the classifier model.
- We had initially targeted to integrate an 'audio-to-text' engine to let user speak their symptoms. However, we had to revert to another version as we were facing some issues with 'react.js'.
Accomplishments that we are proud of
Our team went into this hackathon with the intent to create a product that will truly help people that may have mental illnesses. We didn't know a lot about how to detect them or how to go about creating a model to classify the illness. By the end of this hackathon, we created what we originally came in for and got the web app up and running with a few minor bugs. We are also proud of coming up with the idea of crawling through mental illness forums to create our dataset as such a dataset is hard to curate and not publicly available. Also, training a model from scratch on a sparse dataset has its limitations and as a reason we couldn't use word embeddings, but we managed to train a classifier using TIFID which gives an accuracy of 74.3% on test set.
What we learned
We learnt the caveats we have with collecting data, its preprocessing and the issues related to fine tuning of model. None of the team members had prior experience with front end or backend technologies but we pulled it off in a day.
What's next for WeCare
- Better and interactive interface which lets the user input through speaking.
- Better questions (based on some study) to ask so that a better insight is collected.
- More data by mining of forums.
- Better classification models which can extract causal relationships between sentence entities.