Классификатор заболеваний
Patient-intake - модуль, обеспечивающий дистанционное взаимодействие пациента и медицинского учреждения с помощью диалоговых агентов. Реализован на языке Python.
Модуль позволяет предсказывать возможное заболевание пациента на основе введенной им информации, присваивать диагнозу степень срочности приема, а также выводить интерпретацию результатов работы модели. Для обучения модели создан датасет, содержащий информацию о болезнях и их симптомах.
Модуль поддерживает анализ текстов на русском языке.
Применение
Модуль является инструментом для разработки медицинских чат-ботов. Может быть использован для управления потоками пациентов в медицинских учреждениях, а также будет полезен для реализации концепции второго мнения при взаимодействии с пациентом.
Установка модуля
pip install distool
Пример использования
from distool.feature_extraction import SmartSymptomExtractor
from distool.interpretation.explainer import SymptomBasedExplainer
from distool.estimators import DiseaseClassifier
texts = [
"У меня болит живот, но нет температуры",
"У меня температура, но нет недомогания",
"Я завтра иду домой",
]
diseases = ["гастрит", "отит", "-1"]
symptom_vectorizer = SmartSymptomExtractor()
features = symptom_vectorizer.transform(texts)
classifier = DiseaseClassifier()
classifier.fit(features, diseases)
predicted_diseases = classifier.predict(features)
print("Predicted diseases:", predicted_diseases)
# Predicted diseases: ['гастрит' 'отит' '-1']
explainer = SymptomBasedExplainer(symptom_vectorizer, classifier)
print(explainer.explain(features[1]))
# Наблюдается отит с вероятностью 59%.
# Это потому что у вас наблюдаются следующие симптомы: температура
# И отрицаются следующие: недомогание
Разработка
Нужно установить зависимости и подключить pre-commit.g
pip install -r requirements.py
pre-commit install
bash init.sh
Контрибьютинг
Каждый новый функционал должен покрываться документацией и тестом.
Тестирование
Чтобы запустить тесты нужно ввести:
pytest
Pull request
Каждый PR должен быть отревьювен.
История проекта
Работа над Patient-intake проводится в рамках НИР Университета ИТМО №622275 "Разработка модуля для предварительного диагноза: поддержание логистики потоков пациентов и концепции второго мнения при взаимодействии с пациентом через диалоговые системы" (2022-2023)
Участники проекта
Анна Чижик
руководитель проекта
Мичил Егоров
тимлид
Дмитрий погребной
разработчик
Айталина Кривошапкина
разработчик
Мария Якубова
аналитик
Обратная связь
Если у Вас есть какие-то вопросы, можете обращаться к нам по адресу: patientintake@yandex.ru
Release files for distool 1.0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| distool-1.0.2.1.tar.gz | 31.2 kB | Details |
Release files / distool-1.0.2.1.tar.gz
| Download URL | distool-1.0.2.1.tar.gz |
|---|---|
| Size | 31.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
907d4ed0e8fe2c0c823a21b2d847d9b38e79cdd870e4adbeb6728364102918cb
|
|
BLAKE2b-256 checksum How to use checksums |
cde83e3e8d16660f212ef49330ae448762f0a56457fb60c08df57c177bf4da36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.13
|