Как пишут в The Huffington Post, 80% данных электронных медицинских карт хранится в неструктурированном виде — так называемом «текстовом пузыре». В текстовом виде хранятся не только данные ЭМК, но и большое количество другой медицинской информации — это научные статьи, клинические рекомендации, описание болезней и жалоб. И даже если данные в них частично структурированы, общепринятых форматов их хранения нет.
Извлечь полезные знания из «текстового пузыря» проблематично — простейшие алгоритмы способны проверить документ на вхождение тех или иных слов или словосочетаний, однако этого оказывается недостаточно: врачу всегда важны подробности. Ему нужно не только знать о том, что у больного температура, но и понимать динамику: к примеру, «температура поднимается по вечерам до 39 и держится уже четвертый день».
Помочь извлечь ценную информацию из медицинских текстов и электронных медкарт способны технологии обработки естественного языка (Natural Language Processing, NLP). Далее мы расскажем, как NLP-технологии упрощают работу врачей: поговорим про распознавание речи и текстов, наполненных медицинскими терминами, и помощь в принятии клинических решений.
«Врачи DOC+ вежливо разберутся с вашей болячкой»
Что такое NLP
Фактически, история NLP началась с первых дней существования современной науки об искусственном интеллекте. Еще Алан Тьюринг в своей работе «Вычислительные машины и разум» в качестве критерия «разумности» машины называет ее умение общаться с человеком — сейчас это важная, но не единственная задача, которую решают разработчики NLP-систем.
NLP объединяет в себе ряд технологий (в том числе очень далеких друг от друга с точки зрения математики), которые позволяют решать алгоритмические задачи, связанные с обработкой естественного человеческого языка:
- Извлечение фактов из текста (от простого поиска стоп-слов до полного синтаксического разбора литературы);
- Распознавание голоса и преобразование голоса в текст;
- Классификация текстов;
- Генерация текста или речи;
- Машинный перевод;
- Анализ тональности текста (в т.ч. Opinion mining);
- И др.
В научной фантастике суперкомпьютер зачастую умеет делать все вышеперечисленное. В культовом фильме «Космическая одиссея 2001 года», HAL 9000 распознавал человеческую речь и зрительные образы, общался на обычном языке. На практике же все эти задачи являются узкоспециализированными, и их решают отдельные алгоритмы.
И эти алгоритмы (и лежащие в их основе технологии) постоянно прогрессируют. Например, самое «близкое» обычным пользователям направление NLP — распознавание голоса — еще несколько лет назад базировалось на скрытых марковских моделях. Они разбивали сказанное человеком на небольшие компоненты, вычленяли фонемы, проводили статистический анализ и выдавали наиболее вероятный результат сказанного в текстовом формате. Сейчас разработчики намного чаще используют нейронные сети — в частности, рекуррентные нейронные сети и их разновидности, например long short-term memory (LSTM).
Сегодня NLP системы используются все чаще и чаще – мы разговариваем с Siri, общаемся с помощником Google (в ОС Android как раз применяется LSTM с CTC) и инфотейнмент-системами автомобилей, нашу почту защищают от спама умные алгоритмы, новостные агрегаторы подбирают статьи, которые будут нам интересны, а поисковики позволяют находить нужную нам информацию по любым запросам.
Какие задачи решает NLP в медицине
Однако NLP-системы полезны не только в работе современных гаджетов и онлайн-приложений. Они внедряются в отдельных госпиталях и медицинских университетах еще с начала 90-х годов.
Первым NLP-приложением, разработанным в Университете Юты в то время, стала система SPRUS (Special Purpose Radiology Understanding System) для клиники Солт-Лейк-Сити. Этот инструмент использовал информацию из экспертной системы, сопоставляющей симптомы с соответствующими диагнозами, и парсил текстовые радиологические отчеты (врачебные протоколы, интерпретирующие рентгеновские снимки).
Программа применяла технику семантического парсинга, основанную на поиске слов в тезаурусе. Тезаурус автоматически пополнялся из базы знаний для решения задач диагностики с помощью специально разработанного компилятора.
С тех пор возможности NLP и машинного обучения в медицине шагнули вперед: сегодня технологиия упрощает работу с электронными медицинскими картами для докторов и снижает частоту клинических ошибок, «ассистируя» в принятии врачебных решений.
Упрощение работы с электронными картами (ЭМК)
Электронные медицинские карты, или ЭМК, — это аналоги привычных нам бумажных карт. Задача электронной карты — упростить документооборот и снизить объемы бумажной работы. Подробнее о том, что такое ЭМК и как они помогают контролировать качество медицинского обслуживания, мы рассказывали в одном из наших прошлых материалов.
Несмотря на то что с внедрением ЭМК врачам стало проще работать с документами, на заполнение карт все равно уходит некоторое время. Согласно исследованию, опубликованному в журнале Computers Informatics Nursing в 2012 году, медсестры в госпиталях США все равно тратят порядка 19% рабочего времени на заполнение электронных карт.
Да, это лишь пятая часть рабочего дня, однако даже эту цифру можно уменьшить и направить освободившиеся ресурсы на заботу о больных. По словам президента Nuance Communications Джо Петро, сделать это позволят технологии NLP.
В 2009 году Nuance узнали мнение тысячи терапевтов США о технологиях обработки естественного языка. По результатам исследования, 94% опрошенных докторов назвали внедрение ЭМК с NLP важным драйвером качества медицинского обслуживания.
Пример реализации этого подхода — сервис, который использует медперсонал Hudson Valley Heart Center в городе Поукипзи. Медсестры больницы с помощью решения от Nuance Communications надиктовывают выписки из истории болезни пациентов, оформляют результаты физического осмотра и фиксируют данные о течении заболевания. Приложение автоматически обновляет записи в системе ЭМК, внедренной в госпитале.
Подобные решения внедряются и в России. Например, в 2016 году «Центр речевых технологий» начал разрабатывать систему Voice2Med для распознавания медицинской речи и сокращения времени на заполнение отчетов и медкарт. Как заявляют в Министерстве труда и социальной защиты РФ, сейчас на это уходит половина рабочего времени доктора.
Наши решения в области NLP
Ключевая задача NLP в медицине — это извлечение данных из текста. Мы в DOC+ фокусируемся именно на ней. В нашей команде, занимающейся разработкой алгоритмов машинного обучения, трудится шесть человек. Из них двое работают исключительно над NLP-технологиями. В DOC+ технология NLP используется для разметки карт, на которых обучается система проверки качества ЭМК (о ней мы писали в предыдущем материале).
На основе этой же системы работает и наш анамнез-бот, оптимизирующий работу при онлайн-консультациях. Бот работает онлайн и просит пациента описать жалобы в свободной форме, затем вычленяет из текста симптомы и сообщает их доктору. Благодаря этому специалист начинает телемедицинскую консультацию с пациентом уже подготовленным (подробнее о работе нашего анамнез-бота мы расскажем в следующих постах).
Особенности разработки NLP-систем
В разработке таких систем есть несколько сложностей. Первая из них заключается в том, что при работе с текстами недостаточно использовать простые широкораспространённые алгоритмы и подходы. Сервисы, просматривающие текст на наличие тех или иных слов и считающие частоту их появления для оценки «важности» в медицине, дают очень ограниченный результат.
При постановке диагноза доктору важно не просто знать, что у человека был тот или иной симптом, но и понимать динамику и параметры этого симптома – локализацию, тип боли, точные значения оцифровываемых показателей и др. Поэтому для работы с медицинским текстами нужны более сложные алгоритмы, выделяющие не просто слова, а комплексные факты о различных жалобах и симптомах.
Из текста: «18 февраля у меня заболела голова с левой стороны, к вечеру поднялась температура до 39. На следующий день область головной боли увеличилась, головокружения не было» система должна выделить структурированную информацию о трех симптомах:
- Головная боль — появилась 18.02; локализация: слева; динамика: 19.02 — увеличение области.
- Температура — 18.02; значение: 39 градусов.
- Головокружение — симптом отсутствовал.
Вторая особенность заключается в том, что инструменты для обработки текста надо дополнительно настраивать под работу с узкоспециализированными материалами. Например, систему проверки правописания нам пришлось дополнительно «подкручивать», так как ни одно из представленных на рынке решений не удовлетворяло нашим требованиям.
Спелл-чекеры исправляли слово «кашель» на «капель», поскольку обучались на текстах без медицинской терминологии. Поэтому мы переобучали систему на корпусе из медицинских статей. И такие небольшие доработки к классическим алгоритмам приходится делать постоянно.
Что умеет наша NLP-система
Сейчас разработанное нами решение распознает 400 терминов — симптомов, диагнозов, названий лекарств и т. п. При этом для большинства симптомов система способна вычленять дополнительные свойства: локализацию (боль в животе справа от пупка), тип (мокрый кашель), цвет (прозрачная мокрота), наличие осложнений и значения измеримых параметров (температура, давление).
Помимо этого, она умеет выделять временные параметры и сопоставлять их с симптомами, исправлять опечатки и работать с различными вариантами описания одних и тех же фактов.
Помощь в принятии клинических решений (CDS)
Системы поддержки принятия клинических решений (clinical decision support, CDS) предоставляют автоматизированную помощь врачам при постановке диагноза, назначении лечения, определении дозировки препаратов и так далее. Получить необходимую для этого медицинскую информацию позволяют NLP-системы — они черпают её из научных работ, результатов анализов, медицинских справочников и даже слов самого больного.
Одно из таких решений разработали в компании IBM. Речь идет о вопросно-ответной системе DeepQA, с которой работает суперкомпьютер IBM Watson. Watson в этом случае выступает в качестве «NLP-поисковика» по большим базам данных: он обрабатывает вопросы докторов и дает на них конкретный ответ, а не просто выдает результаты поиска в интернете. Заложенные в Watson технологии позволили ему выиграть в Jeopardy! (американский прародитель «Своей игры»).
Еще пример применения подобных технологий — NLP-система, созданная командой ученых под руководством доктора Харви Мурффа (Harvey J. Murff) из медицинского центра Университета Вандербильта. Разработчики научили алгоритм анализировать электронные карты пациентов и выявлять заболевания, которые могли бы вызвать осложнения после операции.
NLP-процессор индексировал записи в медкартах с помощью схемы, основанной на систематизированной машинно-обрабатываемой медицинской номенклатуре SNOMED-CT. На выходе система генерировала XML-файл с «размеченной» картой пациента. Проведённые эксперименты показали, что программа верно категоризировала большую часть осложнений, например, почечная недостаточность была корректно отмечена в 82% случаев, а послеоперационный инфаркт миокарда — в 91% случаев.
В DOC+ тоже есть свой аналог CDS — любое действие врача в приложении сопровождается подсказками, но пока они формируются классическими алгоритмами, основанными на правилах, без использования машинного обучения и NLP. Но мы работаем над созданием CDS нового поколения, которая будет читать всю историю болезни пациента на естественном языке и использовать ее для подсказок доктору.
Дальнейшее развитие NLP-систем
NLP-системы позволят работать не только с медицинскими картами, но и с научными статьями и медицинскими стандартами. В сфере медицины накоплен огромный опыт, который обобщен в клинических рекомендациях, научных работах и других текстовых источниках. Логично использовать эти данные для обучения систем искусственного интеллекта наравне с картами реальных пациентов, параллельно создавая структурированную базу данных о медицине, которую смогут использовать не люди, а алгоритмы.
Плюсом подобных NLP-систем является то, что результаты их работы зачастую проще интерпретировать, то есть привязать к конкретным источникам. Вообще вопрос интерпретируемости результатов работы алгоритмов машинного обучения — далеко не тривиальный, и важен как для научного сообщества в целом (на ведущей международной конференции по машинному обучению ICML ему регулярно посвящается отдельный воркшоп), так и для разработчиков, особенно если речь идет о проектах в сфере доказательной медицины. Для нас требование интерепретируемости делает задачу усовершенствования нашей NLP-системы еще сложнее (и интереснее).
NLP — это перспективное направление, которое позволит поднять качество медицинского обслуживания на новый уровень. Мы планируем активно развивать эти технологии и дальше и продолжим рассказывать о своих разработках в нашем блоге.
Дополнительное чтение: полезные статьи из нашего блога «Только спросить»:
Автор: Алина Тестова