The objective of this project is to build two NLP models and showcase them using a simple web app. The first model classifies a drug’s route of administration (oral, topical, etc.) based on its label’s dosage and administration text. The second model is unsupervised and extracts topics from the dosage and administration text. The two models are then compared. This project uses the OpenFDA API as its data source.
You can view the deployed web app here.
├── README.md <- The top-level README for developers using this project.
|
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering)
│ and a short `-` delimited description, e.g.
│ `1.0-get-raw-data.ipynb`.
|
├── cleaning.py <- Module of helper functions for data cleaning.
|
├── models <- Trained and serialized models.
|
├── app.py <- Streamlit application
│
├── assets <- Static assets for the dash app.
|
├── requirements.txt <- The requirements file for Heroku deployment.
Project organization based on the cookiecutter data science project template. #cookiecutterdatascience
Some of this project's code was borrowed from the following sources:
Albrecht, J., Ramachandran, S., & Winkler, C. (2020). Blueprints for text analytics using Python. O'Reilly.
Chandler, J. ADS 509: topic modeling [Computer software]. GitHub. https://github.com/37chandler/ads-tm-topic-modeling
Chandler, J. Naive bayes assignment [Computer software]. GitHub. https://github.com/37chandler/tm-nb-conventions
Chandler, J. Tokenization, normalization, and descriptive statistics [Computer software]. GitHub. https://github.com/37chandler/ads-tm-token-norm