ГоловнаСтаттіШтучний інтелект у медицині

Класифікація медичних транскрипцій за спеціальністю з використанням TF-IDF та Логістичної Регресії

Як проєкт штучного інтелекту для охорони здоров’я обробляє неструктурований текст клінічних транскрипцій, щоб класифікувати його за медичною спеціалізацією, порівнюючи TF-IDF плюс Логістичну Регресію проти Наївного Байєса як легку NLP базову лінію.

mysimulator teamОновлено — червень 2026≈ 5 хв читання▶ Відкрити симуляцію

Чому неструктурований текст має значення поряд з структурованою клінічною інформацією

Більшість демонстрацій машинного навчання в сфері охорони здоров’я покладаються на структуровані, табличні дані — показники артеріального тиску, лабораторні аналізи, вік, індекс маси тіла — оскільки вони чисті та легко моделюються. Але значна частина реальної клінічної інформації зберігається у неструктурованому тексті: транскрибовані диктанти після консультації, записи про поточний стан захворювання, виписки з лікувальних закладів. Модель, яка обробляє лише числа, не може врахувати все, що лікар написав літературною мовою. У цьому проєкті використовується публічний набір даних, що містить приблизно 5000 медичних транскрипцій, охоплюючи понад 40 спеціальностей, з метою класифікації кожного документу за медичною спеціальністю лише на основі тексту — завдання-проксі, яке демонструє ширкі можливості автоматичного відстеження та маршрутизації неструктурованих клінічних нотаток.

Дослідження тексту перед моделюванням

Перед векторизацією, попередній аналіз зосереджується на тому, як розподілені спеціальності (значно спотворений розподіл – невелика кількість спеціальностей відповідає за непропорційно велику частку записів, тому верхні 15 спеціальностей візуалізуються окремо) та як довгі транскрипції (дуже змінна, від коротких нотаток до розгорнутих з багатопараграфних звітів, що має значення, оскільки дуже довгі документи можуть потребувати обрізання для деяких архітектур моделей). Аналіз частоти слів та хмар слів, створені як для всього корпусу, так і окремо для кожної спеціальності, підтверджують, що кожна спеціальність має розпізнавану різницю у словниковому складі – текст кардіології, наприклад, групується навколо термінів, пов'язаних з серцем, кров’ю та кардіологією, і це основна передумова для роботи класифікатора тексту: якщо кожна спеціальність використовувала б одні й ті самі слова, жоден векторизатор не зміг би їх розділити.

Аналіз біграм та триграмів (розгляд часто використовуваних двох- та трискладових фраз замість окремих слів) виявляє справжню клінічну термінологію, яку пропускають аналізи частоти окремих слів – фрази, такі як конкретні назви процедур або діагностичні терміни, які мають повне значення лише в якості одиниці.

Очищення медичного тексту та вибір цільової спеціальності

Очищення медичного тексту відбувається за допомогою стандартної конвеєрної обробки NLP: переведення в нижній регістр, видалення неалфавітних символів і нормалізація пробілів. Оскільки понад 40 спеціальностей призвело б до того, що більшість класів матиме надто мало прикладів для навчання, цільова спеціальність свідомо звужена до п’яти найчастіших, а будь-який документ довжиною менше 50 символів відкидається як занадто короткий для передачі надійного сигналу класифікації. Цей прагматичний підхід – торг між широтою та достатньою кількістю прикладів для кожного класу – є поширеним і обґрунтованим кроком у реальних проектах NLP в сфері охорони здоров’я, кращим за спробу 40-класової класифікації з безладною, голодною за даними «хвостом».

TF-IDF векторизація та два базових класифікатори

Очищений текст розділено на набори для навчання, валідації та тестування у співвідношенні 70/15/15, з урахуванням стратифікації, щоб кожна спеціальність була представленою пропорційно в кожному наборі. TfidfVectorizer підганяється лише на навчальному наборі – це свідома дисципліна для запобігання витоку даних, оскільки підганяння на повному наборі даних дозволило б інформації про словниковий запас документів валідації або тестування просочитися у векторизатор навчання – з словником із 5000 термінів, одно- та біграмами, а також фільтрами частотності документів (min_df=2, max_df=0,95), які видаляють як рідкісні помилки, так і майже універсальні слова-заповнювачі.

Порівнюються дві родини класифікаторів на основі цих векторів TF-IDF: Логістична Регресія (як стандартна версія, так і оптимізована за допомогою пошуку сітки по силі регуляризації та алгоритму розв’язування) та Мультиноміальний Наївний Байєс. Логістичну Регресію обрано через її швидкість при роботі з рідкісно представленими багатовимірними векторами та її інтерпретованість (коефіцієнти безпосередньо показують, які терміни штовхають документ до або від спеціальності). Мультиновий Наївний Байєс включено конкретно тому, що він значно швидший у навчанні – це законна перевага, коли система потрібно часто перенавчати при надходженні нових розмічених документів – незважаючи на те, що припущення про незалежність між словами є технічно хибним для реальної мови.

Вибір моделі та валідація узагальнення

Моделі порівнюються за допомогою зваженого показника F1, а не просто точності, оскільки це правильно враховує залишок дисбалансу класів між топ-5 спеціальностей. Найкраще працююча модель на валідаційному наборі обирається автоматично, ще раз оцінюється на відібраному тестовому наборі (використовується рівно один раз, щоб отримати упереджене уявлення про узагальнення), і її матриця невідповідностей аналізується, щоб побачити, які спеціальності плутаються – зазвичай ті, що мають дійсно перекриваючий клінічний словниковий запас. Відхил між показниками F1 для тренувального та валідаційного наборів відстежується безпосередньо як контроль за перенавчанням: відхил менше приблизно 0,1 розглядається як здоровий, а більший – сигналізує про те, що модель запам'ятала специфічні особливості тренувального набору замість того, щоб вивчити узагальнені закономірності. Обидва навчені класифікатори та їх векторізатор TF-IDF зберігаються разом, оскільки векторізатор, навчений на різному словниковому запасі, безшумно генерував би беззмістовні ознаки для будь-якого нового документа під час висновування.

Часті запитання

Чому векторізатор TF-IDF повинен бути підготовлений лише на навчальних даних?

Якщо векторізатор підготувати на повному наборі даних перед розділенням, його словник та статистику частот документів вже відображатимуть слова та закономірності з наборів валідації та тестування. Це призводить до витоку інформації, до якої модель не повинна мати доступ під час навчання, що штучно завищує видимий рівень продуктивності та створює оманливе враження щодо того, наскільки добре модель узагальнюватиметься на дійсно нових документах.

Чому було обмежено 40+ медичних спеціальностей лише 5 найпоширенішими?

З 40-та більше класів та приблизно 5000 документів, багато спеціальностей матимуть лише невелику кількість прикладів – занадто мало для будь-якого класифікатора, щоб навчитися надійного шаблону. Зосередження на п’ятьох найчастіших спеціальностях гарантує, що кожен клас матиме достатньо навчальних прикладів для створення значущого та оцінюваного класифікатора, хоч і з певною втратою повної покриваності спеціальностей оригінального набору даних.

Чому використовувати зважений показник F1 замість простої точності для порівняння моделей?

Проста точність може бути оманливою, коли класи незбалансовані – модель, яка завжди передбачає більшість спеціальностей, все ще може отримати високий бал точності, навіть якщо вона марна для меншості. Зважений показник F1 збалансує точність і повноту для кожного класу та потім усереднює їх, зважені за розміром класу, що забезпечує справедливе порівняння між моделями, коли основний розподіл класів не є ідеально рівномірним.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію the simulation

Що ви знайшли?

Додати кроки відтворення (опційно)