Skip to main content

Классификатор заболеваний

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 disease 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for disease 0.1.9
File Size Uploaded
disease-0.1.9.tar.gz 32.0 kB Details

Release files / disease-0.1.9.tar.gz

Download URL disease-0.1.9.tar.gz
Size 32.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0898fabb5098fcb1af627ce4ce4714c4ea7f9fdd208903ca42e2c90947607598
BLAKE2b-256 checksum
How to use checksums
4cb26ad692ea1817669a25d57a2b1858e46f49a1e360f2244e26b410314515ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.9 This release

1 release file

0.1.8.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page