Dieser Chatbot ist ein rein wissenschaftliches Projekt. Er sollte nicht als Diagnosemittel für echte Krankheitssymptome verwendet werden.
Kaggle Dataset: https://www.kaggle.com/captaintyping/healthcare-domain-dataset
Folgende Bibliotheken werden benötigt um den Symptom Checker zu starten:
pip install numpy
pip install pandas
pip install nltk
pip install spacy
pip install python-rake
pip install torch
pip install sklearn
pip install flask
Erstellen eines Virtual Environment:
py -3 -m venv venv
venv\Scripts\activate
Um nltk tokenization zu verwenden, muss folgende packages gedownloaded werden:
import nltk
nltk.download('punkt')
nltk.download('wordnet')
nltk.download('omw')
In Python kann nun über Flask das Frontend aufgerufen werden. Sie können den Chatbot nun verwenden.
python -m flask run
Nico Heller (5538521), Lennart Schulz (3300490), Jonah Jäger (9431529), Marcel Winter (5542090), Georgios Paschaloglou (5405319), Laura Struss (4212678)
Ein Chatbot, welcher mit dem Mensch interagiert und einer Symptomatik einem Krankheitsbild zuordnet.
Wahllose Google-Suchen durch fundiertes Wissen ablösen, Alternative zum direkten Arztbesuch, digitale (Zweit-)Meinung.
Chatbot entwickeln, welcher Symptomen mit hoher prozentualen Sicherheit die richtige Diagnose/Krankheit zuordnen kann.
Dokumentation zum Backend ist in den einzelnen Jupyter Notebooks und der app.py zu finden.
Nutzung von medizinischer Datenbank UMLS als Datengrundlage für Intents -> weiteres Datenmanagement aufgrund der Komplexität der Datenbank notwendig -> Für bestmögliche Diagnose sind sehr gute Intents nötig, sowohl qualitativ und quantitativ, daher die Datengrundlage nötig
Weitere Modelle zur Diesease Prediciton verwenden -> Ensemble learning -> Bei Unsicherheit: Rückfragen nach weiteren ausschalggebendend Symptomen
Multiclass Prediciton der Symptome: -> Bei Unsicherheit: User entscheiden lassen, welches Symptom er gemeint hat
Profilerstellung: -> metrische Daten etc speichern können -> Vorerkrankungen im Profil speichern --> regelmäßige Abfrage des Chatbots wie es einem geht, welche Symptome existieren etc (Datenabfrage)
Chatbot soll mit mehreren Symptomen des Users gleichzeitug umgehen können -> Userinput wird dadurch länger (evenetuell Verwendung von POS-Tagging/ Entity Recognition möglich?)
Automatische Rechtschreibprüfung von den eingegebenen Symptomen
Das Frontend arbeitete anfangs mit Vue.js als PWA, wodurch folgende Erfolge erzielt werden:
Das vorgegebene MockUp:
Das in Vue.js erstellte Ergebnis:
Bevor das Frontend fertiggestellt werden konnte, wurde versucht, dies mit dem Backend zu verbinden. Dies hat sich als sehr problematisch herausgestellt, da kein einfacher Weg vorhanden war, Pythonskripte in Vue auszuführen. Deshalb entschied sich das Team dazu, Flask zu verwenden, da dies sowieso benötigt wurde, um das Frontend mit dem Backend zu verbinden.
Nach dem Wechsel zu Flask wurde das Frontend von grundauf neu aufgebaut und das Team kam zu folgendem Ergebnis: