WID3002 Natural Language Processing Group Assignment
In this assignment, we are required to build an NLP application in order to help in healthcare domain.
- We decided to build a chatbot that will act as a platform for the end user to give feedback about the healthcare they received.
- The platform then includes an admin view for the healthcare personnel to easily identify how the patients feel based on the sentiment of their reviews and in what areas they can improve based on text classification.
- The chatbot then includes two NLP models:
- Sentiment Analysis Model to predict sentiment polarity of the reviews.
- Multi-class Text Classification Model to predict the probable categories of the reviews (a single review can be related to multiple classes).
- The classes we chose for the model to classify are:
- Appointment
- Facilities
- Staff
- Treatment
- Although a rough prototype, the resulting model showed promise and evaluation metrics in the form of precision and recall values were used to determine the best threshold at the time.
- The dataset was collected by scraping selected hospital/clinic reviews from Google Maps reviews.
- They were then manually annotated by the team members in order to form a labeled dataset for the classes and sentiment for each review.
- A pre-trained model by Spacy was used and further tuned with our custom dataset.
- Run the command
pip install -r requirements.txtto install the required modules. - Download the application configuration files (private to the team members)
- Place the
.envfile and the service account file in theappfolder. - Run the following sequence of commands to start the app:
cd app streamlit run app.py
Chatbot View
Positive Review Example
Negative Review Example
Dashboard View