Университет ИТМО

Библиотека анализа медицинских текстов

 

Библиотека решает насущную проблему отсутствия инструментария анализа и структурирования медицинских текстовыфх данных на русском языке, обеспечивает структурирование медицинских текстов (например текстов анамнезов, диагнозов, протоколов операций) с проверкой корректности (выявление опечаток), тематическим структурированием, выделением и формализацией специализированных структур (например, наследственного анамнеза).

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

Библиотека представляет собой многофункциональную программную реализацию связанные функциональных модулей работы с медицинскими текстовыми данными: проверку корректности, выделение отрицаний в тексте, выделение тем (topic modelling), выделение сущностей по классам, выделение специализированных структур (например, наследственного анамнеза) и пр. Функционал библиотеки в настоящее время расширяется. Для интерактивной демонстрации возможностей библиотеки реализован сервис, позволяющий продемонстрировать функционал на примере трех избранных функций (рис. 1): выделение отрицаний, тематическая сегментация, поиск информации о родственниках в тексте.

 

Рисунок 1 – Демонстратор возможностей библиотеки анализа медицинских текстов

 

Модуль автоматического исправления опечаток в медицинских текстах.

Модуль SpellChecker выполняет функцию исправления опечаток для нескольких типов ошибок: орфографические ошибки, пропущенные символы и опечатки, разделение слитно напечатанных слов, исправление сокращений.

Работа модуля состоит из двух основных этапов: 
— Классификация слов на корректные и некорректные;
— Исправление некорректных слов.

Классификатор слов на корректный и некорректный тип работает на основе поиска слов в нормальной в форме в словарях русского языка и медицинской лексики, специфичной для исследуемого корпуса. Если слово есть в словаре – оно считается корректным и не участвует в дальнейшей обработке, в противном случае слово переходит на следующий этап.

Функционал исправления опечаток комбинирует в себе два основных метода. Первый подход - исправление ошибок с помощью поиска ближайших слов на основе расстояния Дамерау-Левенштейна. Данный подход работает эффективно при малом количестве символов в слове, написанных неверно. Второй подход - поиск ближайших слов на основе косинусного расстояния среди векторных представлений, полученных с помощью нейронной сети (FastText, skipgrams). Данный подход позволяет учесть контекст и семантику слов и отыскать слова схожие по смыслу. Оба подхода применяются последовательно. Сначала осуществляется поиск 10-ти ближайших слов по расстоянию Дамерау-Левешнтейна, затем из них выбирается слово близкое по смыслу на основе косинусного расстояния.

В текущей реализации в качестве результата пользователю возвращается исправленный текст со словами, приведенными в нормальную форму. Сейчас продолжается работа по уменьшению уровня ошибок работы модели по каждому типу некорректных написаний слов.

Модуль поиска отрицаний

Для обнаружения отрицаний или утверждений какого-либо диагноза в медицинских текстах строиться классификатор бустинга деревьев решений на корпусе размеченных текстов, так что каждый текст может иметь одну из следующих трёх меток: заболевание отрицается («-1»), заболевание в наличии («1»), заболевание не упоминается («0»). Тексты проходят стандартную обработку: лемматизация слов, удаление редких терм, TF-IDF преобразование мешка слов. В качестве эксперимента было построено пять классификаторов для поиска отрицания инсультов, инфаркта миокарда (ИМ), артериальной гипертензии (АГ), сахарного диабета (СД) и стенокардии. В среднем F-мера для каждого из классификаторов составляет от 0,81 до 0,93. Так как для поиска отрицаний используются тексты, а не только отдельные предложения, это позволяет учитывать контекст и выискивать дополнительные факторы, указывающие на наличие или отсутствия заболевания. Например, классификатор обнаружил, что при наличии стенокардии в прошлом пациент когда-то мог перенести операцию стентирования.

Модуль тематического моделирования

Тематические моделирования и сегментация предназначены для определения тем в наборе текстов и определения тем для каждого из предложений. Был разработан модуль для тематической сегментации на базе библиотеки BigARTM. В качестве эксперимента использовались анамнезы болезни пациентов с острым коронарным синдромом, для которых были обнаружены шесть тем: исследования, результаты ЭКГ и суточного мониторирования, рекомендации, стенокардия и её симптомы, хронические заболевания и информация о родственниках (рис. 2).

 

Рисунок 2 – Демонстратор возможностей модуля тематического моделирования

 

Модуль извлечения наследственных заболеваний

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

Работа модуля состоит из двух основных этапов:

— Бинарная классификация предложений по типу предложений о пациенте и предложений о родственниках

На первом этапе предложения приводятся в форму эмбеддингов с помощью метода Skip Grams (FastText). Затем происходит обучение модели градиентного бустинга над деревьями (xgboost) и предсказание класса предложения. Если предложение относится к типу «о родственниках», оно поступает на следующий этап обработки для определения класса родственника.

— Мульти-классификатор предложений по типу родственников.

На втором этапе предложения приводятся в форму векторного представления с помощью Count Vectorizer. Далее происходит обучение модели XGBoost и предсказание класса предложения. Затем запускается класс визуализации дерева семьи и потенциальных наследственных заболеваний. В качестве результата обработки запроса пользователя модуль возвращает визуализацию генеалогического дерева с наследственными заболеваниями.

 

ДОСТУП К БИБЛИОТЕКЕ
предоставляется по запросу

 

Email для обратной связи: k_balabaeva@itmo.ru, funkner.anastasia@itmo.ru