About the project
[BRIEF]
NeuroJournal has been working on a stress detection application which incorporates users’ brainwaves (EEG).The user journals a stressful event, which is siphoned through natural language processing (NLP). After associating the waveform with the experience of stress, this can be used to suggest a remedy or further involve a professional. Currently, the app can collect user input (text), determine stress level and make relevant suggestions to the user.
[CODE ARCHITECTURE]
We mostly programmed in VS Code while utilizing Python as the main language. PyQt5 boilerplates were used to record EEG data from Muse and openBCI hardware, which was further processed using the EEGrunt library. Our web app was built on Streamlit. It includes a journaling (user input) page, an About Us page, and an embedded Chatterbot. The libraries used for NLP were tensorflow, pandas, numpy, sklearn, nltk, tensorflow-bert, matplotlib, seaborn, Re, string, logging. We trained the BERT sentiment analysis model using logistic regression, SVM, random forest and neural networks techniques on the Dreaddit dataset. To train the model in BERT, we predicted 15% of the tokens in the training data, which were randomly picked.
[PRODUCT]
Seed funding will be used towards:
Research and Commercialization: We hope to turn this into a research initiative by collecting more EEG datasets and working with startups and clinicians to design healthcare plans for those who have high anxiety/stress.
Community: This could be used as a mental health service or a way to build a community to share experiences of other individual’s journals.
Inspiration
The biggest barrier to crisis response is feeling helpless even if you open up and say something it's not going to do anything. The person on the other side might not say anything and actually, help you because they don’t understand you. If an individual is under stress, it is harder to communicate with words. However, if we have brain wave data that indicates stress, we can have healthcare professionals make a prognosis or diagnosis early on and this could be done using the muse to check for elevated stress.
What it does?
NeuroJournal has been working on an AI chatbot to detect stress while collecting patient brainwaves. So even when they are not talking, we have a nonverbal way of telling the waveform that is associated with stress and can further Incorporate clinician or therapist expertise. The individual would journal a stressful event and natural language processing would be used to detect the words and assign them a rating score.
Challenges we ran into
The biggest challenge at first was to get the boilerplates working and to learn new programming languages like python as a teammate only knew about javascript. Finding a way to use multiple forms of measurements to supplement EEG recordings was tricky as well as doing preprocessing of that EEG data so that we could account for noise, power lines, and blinking. Also, we were not able to find our threshold value for stress during our brain wave recordings and will uncover this in future projects.
Accomplishments that we're proud of
- Proud of getting the boilerplates connected as well as EEG grunt and getting our various libraries working for machine learning.
- Proud of training the chatbot as well as our machine learning model.
- Initially, the sentiment model with TDIR gave an accuracy of 73% and then used the BERT model to increase to 80% accuracy.
What we learned
- Learned about how to connect boilerplates, clean and preprocess EEG data, NLP using spacy and BERT
- How to create an effective pitch deck and become presentation ready for a 3min presentation
What's next for Neuro Journal
- Find stress thresholds that can be used to predict stress non verbally
- Use the cardiology setting on the Muse to link the Neuroscience data and heart rate data and find correlations
- Establish a community online like a blog where users can vent about their experiences and share strategies to manage their stress
Built With
- brainflow
- chatterbot
- muse-lsl
- pyqt5
- python
- sklearn
- streamlit
- tensorflow
- tensorflow-bert


Log in or sign up for Devpost to join the conversation.