The Active Listening Journal Interaction project. ALJI aims to detect and intervene in mental health crises by analyzing a personal journal entry while maintaining the author's privacy.
Developer Setup:
- Install Python 3.7 and then upgrade pip to 19. Newer versions of software and packages may work, but are not tested.
- Recommended: Install and use virtualenv for easy python package management in projects.
- Easy to setup with:
virtualenv env
Activate with eitherenv/Scripts/activate
Deactivate with:deactivate
- Powershell: You may need to
Set-ExecutionPolicy RemoteSigned
due to this update
- Easy to setup with:
pip install -r requirements.txt
This installs the required for packages for every component of the ALJI project. Some components need some minor additions or configuration (see below). Navigating to and focusing on one component is advisable.
This open-source project uses the LGPLv3 license, but has connections to other projects, each with their own licenses. Please refer and abide by the license agreements of those projects as well as this one.
For pulling journal entries off of the scholastic awards website. Uses:
- Selenium WebDriver for Firefox to automate browser control. (Apache2.0 license)
- Be sure to install Gecko and add it to your PATH. (Mozilla Public Lecense)
- Beautiful Soup 4 to handle html parsing. (MIT license)
- Needs the lxml 4.3 parser. (BSD license)
For the preliminary journal entry analysis (sentiment, negativity, etc...) and model training. Uses:
- Empath to give broad labels to text. (MIT License)
Considered for future use:
- LIWC (Linguistic Inquiry and Word Count)
- ANEW (Affective Norms for English Words)
- VaderSentiment (Valence Aware Dictionary and sEntiment Reasoner)
For enabling experts to label journal texts for language that signals a mental health crisis. Uses:
- PyQt5 to design the GUI. (GPLv3 license)
- PyInstaller to build a single executable. (GPLv2 license)
- Warning: UPX can help compress the executable, but can also break builds if not configured correctly. PyInstaller tries to use UPX by default if available
- (Optional) Make for quicker development process.
- See
LabelHelper\Makefile
for valid commands. Also see: Make for Windows and MinGW
- See
For the training of machine learning models that can predict a mental heath crisis through journal language
For real use of mental health crisis detection of one individual
Archived code that may be useful later. Not functional or tested.