Разработка AI-системы медицинского NLP (извлечение данных из историй болезни)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Разработка AI-системы медицинского NLP (извлечение данных из историй болезни)
Сложный
~2-4 недели
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1197
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Разработка AI-системы медицинского NLP (извлечение данных из историй болезни)

Медицинская история болезни содержит богатые клинические данные в неструктурированном тексте: симптомы, диагнозы, назначения, лабораторные показатели. AI-NLP превращает эти тексты в структурированные данные для аналитики, поддержки клинических решений и автоматизации документооборота.

Клинические NLP-задачи

Clinical NER: извлечение медицинских сущностей

  • DISEASE: «артериальная гипертензия», «сахарный диабет 2 типа»
  • DRUG: «Метформин», «Лизиноприл»
  • DOSAGE: «500 мг», «2 раза в день»
  • PROCEDURE: «ЭКГ», «коронарография»
  • LAB_VALUE: «глюкоза 7.8 ммоль/л», «HbA1c 8.2%»
  • ANATOMY: «левый желудочек», «аорта»

Assertion detection: контекст сущности

  • present: диагноз установлен
  • absent: «болей в груди нет»
  • uncertain: «возможно, стенокардия»
  • history: «в анамнезе инфаркт»
  • family_history: «у отца гипертоническая болезнь»

Temporal reasoning: хронология событий — когда началось, когда выявлено, когда лечили.

Стек для русскоязычного медицинского NLP

Готовые инструменты для медицинского NLP на русском языке ограничены — это нишевая область. Варианты:

BERT fine-tuning на медицинских данных: DeepPavlov/rubert-base-cased + размеченный медицинский корпус. Требует 2000–5000 аннотированных предложений на тип сущности.

BiomedBERT / PubMedBERT (для английского): затем cross-lingual transfer или перевод.

LLM с медицинским промптингом: GPT-4o / Claude с few-shot медицинскими примерами. Хорошее качество без обучения, но:

  • On-premise обязателен для соблюдения медицинской тайны
  • Возможны галлюцинации при редких терминах

medspaCy / scispaCy (английский): специализированные spaCy модели для биомедицинских текстов. Интеграция с UMLS (Unified Medical Language System) для нормализации терминов.

Нормализация медицинских терминов

Одно понятие — множество написаний: «сахарный диабет 2 типа», «СД2», «Diabetes mellitus type 2», «T2DM». Нормализация к UMLS CUI (Concept Unique Identifier) или МКБ-10 коду (E11 для СД2) позволяет агрегировать данные.

from quickumls import QuickUMLS

matcher = QuickUMLS(QUICKUMLS_FP, overlapping_criteria="score", threshold=0.7)

def normalize_medical_term(term: str) -> list[dict]:
    matches = matcher.get_matches([[{"token": t} for t in term.split()]])
    return [{"cui": m["cui"], "name": m["preferred_name"], "score": m["similarity"]}
            for m in matches[0] if m["similarity"] > 0.7]

Privacy и соответствие законодательству

Медицинские данные — особая категория персональных данных (ст. 10 152-ФЗ). Требования:

  • Обработка только с явного согласия или на законном основании (лечение)
  • Деперсонализация для аналитики и обучения моделей
  • Хранение только на российской инфраструктуре
  • Шифрование in-transit и at-rest (AES-256)
  • Специальная лицензия на медицинскую деятельность при определённых применениях

LLM: только on-premise (Llama, Mistral) или российские облака без передачи данных за рубеж.

Применение в клинической практике

Поддержка принятия клинических решений (CDSS): система предупреждает врача о потенциальных взаимодействиях лекарств, противопоказаниях на основе диагнозов из истории болезни.

Автоматическое кодирование диагнозов: МКБ-10 코드 по тексту диагноза (отдельный сервис).

Популяционная аналитика: агрегация de-identified данных для исследования распространённости заболеваний, эффективности лечения.

Клиническое резюме: автоматическая выписка для направлений, структурированный Summary по госпитализации.

Оценка качества

  • Entity-level F1 по каждому типу сущностей
  • Assertion detection accuracy (особенно critical: отличить «присутствует» от «отсутствует»)
  • Drug-dosage linkage accuracy: правильная связь «препарат → доза»

Для safety-critical применений: human validation > 95% F1 обязателен перед production.

Сроки реализации

Месяц 1–2: Сбор и разметка медицинского корпуса, обучение базового NER

Месяц 3–4: Assertion detection, нормализация к МКБ/УМЛС, деперсонализация

Месяц 5–6: Интеграция с МИС, валидация на клинических данных, пилот

Месяц 7–8: CDSS модуль, аналитический дашборд, промышленное внедрение