Вы находитесь на странице: 1из 8

Оглавление

1. Актуальность..........................................................................................1
1.1. Необходимость анализа медицинских данных.........................1
1.2. Информатизация в медицине: текущее состояние...................2
1.3. Исходные данные........................................................................2
2. Обзор подходов......................................................................................2
2.0. Определения................................................................................2
2.0.1. Понятие термина..............................................................2
2.0.2. Этапы извлечения.............................................................3
2.0.2. Проблемы ATR...................................................................3
2.1. Этапы предварительной обработки текста...............................3
2.1.1. Нормализация...................................................................4
2.1.2. Токенизация......................................................................4
2.1.3. POS-разметка....................................................................4
2.2. Специфические для алгоритма этапы.......................................5
2.2.1. Извлечение терминов.......................................................5
2.2.2. Фильтрация нерелевантных терминов............................5
2.2.3. Классификация полученных терминов...........................6
3. Реализация.............................................................................................6
3.1. Модули.........................................................................................6
3.1.1. Нормализация...................................................................7
3.1.2. Токенизация......................................................................7
4. Оценка....................................................................................................8
5. Приложения...........................................................................................8
5.1. Приложение 1. Тексты заключений..........................................8
5.2. Приложение 2. Конечный автомат для токенизации...............8

1. Актуальность

1.1. Необходимость анализа медицинских данных


Как показано в [Курочкина] многофакторный анализ структурированных
медицинских данных позволяет выявить различные типы течения болезни
и на основе этого предлагать более эффективный план лечения. Для
такого анализа нужны две вещи:
• многоуровневый словарь предметной области
• структурированные данные исследований больного
Ручное построение таких словарей возможно, но, во-первых, требует
больших временных затрат специалистов по данной области, а во-вторых,
такой способ не претендует на объективность, в отличие от
автоматических подходов, дающих усредненную картину.
В данной работе предложен подход автоматического построения словаря
предметной области из множества медицинских заключений.
1.2. Информатизация в медицине: текущее состояние
На данный момент в большинстве российских государственных
медицинских учреждений нет или только внедряются медико-
информационные системы (электронные карты пациента), позволяющие
хранить данные о пациенте в структурированном виде. Большая часть
информации о пациенте хранится в виде неструктурированного текста,
частично цифрового. В основном, в цифровом виде хранятся заключения
исследований. Их и представляется правильным анализировать, потому
как, во-первых, их легко отсортировать по предметной области и, во-
вторых, в других текстах, осмотрах, выписках и пр. содержится большое
количество нерелевантной информации.

1.3. Исходные данные


В качестве исходных данных использовались заключения МРТ брюшной
полости, сделанные врачами института хирургии им. А.В. Вишневского.
Предварительный анализ заключений выявил:
• размер: около 200-250 слов
• лексика: основная доля — термины и аббревиатуры
• структура предложений: простой синтаксис, сложноподчиненных
предложений нет или очень мало.
• пунктуация и специальные символы: неоднородность и большое
количество «грязи» — предложения, начинающиеся с маленькой
буквы, отсутствие пробелов после тире, etc.
Нестандартная лексика и неаккуратная пунктуация в первую очередь
отличают тексты заключений от других текстов, это накладывает
ограничения на выбор методов анализа.

2. Обзор подходов

2.0. Определения

2.0.1. Понятие термина


Под терминами в данной работе, вслед за [Ananiadou, Nenadic]
понимается в общем случае группа слов, определяющая некоторый
концепт, специфичный для предметной области. Также под это
определение попадают аббревиатуры, так как они являются
сокращениями таких групп слов.
Группа терминов образуют терминологическую систему — набор
терминов, упорядоченных с помощью определенных на этом множестве
отношений (часть-целое, общее-специфичное, etc.). В развивающихся
научных областях, к которым можно отнести и медицину, задача
автоматического извлечения терминов и составления терминологических
систем стоит особенно остро, так как скорость появления новых терминов
может превышать скорость составления словарей с ними.
2.0.2. Этапы извлечения
Процесс извлечения терминов из текста делится на несколько различных
задач:
1. Извлечение данных — Automatic Term Recognition (ATR)
2. Классификация данных — Automatic Term Structuring (ATS)
3. Представление и управление данными — Intelligent Term
Management (ITM)
На первом этапе происходит извлечение неупорядоченного списка
терминов, на втором этот список организуется в структуру, а на третьем
создается система для хранения и доступа для полученной информации.

2.0.2. Проблемы ATR


При автоматическом извлечении терминов возникает ряд проблем:
1. Синонимия. Одно и то же понятие может быть выражено по-
разному: токены «МР-сигнал», «Мр-сигнал» и «МР сигнал»
соответствуют одному и тому же понятию; «операция»,
«оперативное вмешательство» хоть и означают несколько разные
вещи (во время операции может быть сделано несколько
оперативных вмешательств), не говоря уже об аббревиатурах,
распознавание которых представляет собой отдельную задачу.
Таким образом, после извлечения терминов должен быть этап
слияния терминов, обозначающих одни и те же понятия.
2. Неоднозначность классификации. Одно и то же абстрактное
понятие может относиться к нескольким пунктам иерархической
структуры, что затрудняет выявление отношений часть-целое между
ними.

2.1. Этапы предварительной обработки текста


Перед тем, как может быть выполнена любая задача извлечения
информации (information extraction), необходимо привести текст к
пригодной для анализа форме. Обычно это означает разделение текста на
отрезки с определенными свойствами. Чаще всего присутствуют
следующие этапы:
1. Нормализация — удаление лишних фрагментов из текста (теги,
изображения, etc.).
2. Токенизация / сегментация — деление текста на примитивы: слова,
предложения и специальные сегменты.
3. POS-теггинг — определение части речи для каждого слова.
4. Морфологический анализ — определение грамматических
характеристик для каждого слова.
5. Синтаксический анализ — определение синтаксических связей слов
и словосочетаний.
Учитывая специфику текста, для того, чтобы применить алгоритмы
извлечения терминов, достаточно первых трех пунктов, т.е. алгоритму
достаточно иметь информацию о границах сегментов и о том, какие части
речи им соответствуют.

2.1.1. Нормализация
Нормализация — это процесс подготовки нужных этапов сплошного
текста. Поскольку текст редко представляет из себя однородную
структуру, в первую очередь необходимо выделить из текста нужные
сплошные фрагменты и удалить из них неоднородости: изображения,
заголовки, теги, если мы имеем дело с HTML-кодом, например. В
зависимости от задачи нормализация может включать в себя множество
этапов.
Исходные тексты заключений имеют одинаковую общую структуру (см.
приложение 1):
1. (Изображение с логотипом института)
2. (Номера телефонов отделений)
3. Заголовок
4. Протокол исследования
5. Заключение
6. Дата исследования
7. Фамилии и подписи врачей
Интерес представляют протокол и заключение. Протокол нельзя никак
выделить самостоятельно, но можно выделить заголовок,
присутствующий всегда и содержащий слово «протокол». Заключение
нетрудно выделить, потому что оно предваряется словом «заключение».
Таким образом, необходимые фрагменты текста можно получить с
помощью механизма регулярных выражений.

2.1.2. Токенизация
Токенизация — это процесс деления текста на лексические единицы
(tokens). На этом этапе может происходить деление текста на слова,
предложения и выделение named entities — последовательностей
символов определенного формата, таких как дата, инициалы, размеры и
аббревиатуры.
Согласно [Ananiadou, McNaught] типичные решения представляют собой
набор регулярных выражений, однако есть решения, использующие
алгоритмы машинного обучения (например, нейронные сети [Palmer,
Hearst] или деревья решений [Arens]).

2.1.3. POS-разметка
Большинство терминов представляют собой именные группы
[Krauthammer, Nenadić], поэтому частеречная разметка выделенных на
предыдущем этапе токенов, не попадающих в специальные категории
(дата, инициалы и пр.) позволит повысить эффективность извлечения
терминов.
Существует большое количество подходов к этой задаче. Условно их
можно разделить на две большие категории: подходы, основанные на
правилах, и статистические подходы [Ananiadou, McNaught].
Правиловые подходы показывают лучшие результаты, но для «настройки»
таких систем на конкретную предметную область необходимо каждый раз
разрабатывать систему правил.
Статистические подходы, в свою очередь, могут применяться для более
широкого круга текстов, однако результаты натренированной системы
будут хуже результатов системы, для которой были разработаны правила.

2.2. Специфические для алгоритма этапы


Процесс извлечения террминов из текста

2.2.1. Извлечение терминов


Подходы к задаче автоматического извлечения терминов (ATR)
подразделяются на четыре основные группы [Krauthammer, Nenadić]:
1. Словарные методы
2. Правиловые методы
3. Статистические и методы, основанные на машинном обучении
4. Гибридные методы
Отдельно классифицируются методы распознавания аббревиатур.
Лучшие результаты показывают правиловые методы (точность до 94,7%,
полнота до 98,8% в системе извлечения названий протеинов статей по
биологии [Fukuda, Tamura, Tsunoda, Takagi]), но такие системы
показывают хорошие результаты только в очень узкоспециализированных
задачах, попытки расширить систему правил приводят к резкому
ухудшению качества работы таких систем.
Процесс извлечения требует на вход текст в виде токенов, предоставляя
на выходе список фрагментов текста, которые могли бы быть терминами.

2.2.2. Фильтрация нерелевантных терминов


После получения списка терминов, необходимо отфильтровать этот
список, выявляя, во-первых, дубликаты, а, во-вторых, нерелевантные
термины, попавшие по ошибке.
Если первая задача относится к области извлечения и классификации
терминов, то вторая задача ближе к задаче классификацирования текстов
— необходимо выделить наименее близкие к данной предметной области
словосочетания.
К задаче объединения терминов в один синтерм (кластер синонимичных
терминов) существует несколько подходов:
1. Выделение общей основы — самый простой и не очень аккуратный
метод.
2. «Корпусные» методы — определение эквивалентности с помощью
больших лингвистических ресурсов.
3. Правиловые — работают на составленных правилах вариативности.
Некоторые подходы представлены в [Ananiadou, Nenadic].
Вторую задачу можно решать многими способами. Обзор методов можно
найти, например, в [Yang, Liu 1999].

2.2.3. Классификация полученных терминов


Задача классификации — наиболее сложная из представленных выше
задач. Различные подходы делятся на два больших класса: классификация
с помощью дополнительных текстов и классификация на основе
отношений внутри данного текста. Подробный обзор методов первого
класса можно найти в [Mack, Hehenberg, 2002] и [Shatkay, Feldman, 2003].
Методы, принадлежащие ко второму классу, различаются по способам
определения отношений внутри текста. Можно выделить:
1. Методы, определяющие родство терминов по их совместному
появлению в контекстах (можно определить саму связь, однако
невозможно определить природу связи) [Jenssen, 2001].
2. Анализ текста на конкретные конструкции (в т. ч. и методы,
выделяющие такие конструкции с помощью машинного обучения)
[66, 73].
3. Гибридные методы, сочетающие в себе различные подходы [Koike et
al.].

3. Реализация
В силу хорошей делимости задачи на этапы и слабой предсказуемости
поведения алгоритмов на исходных данных (другой язык и не очень
длинные тексты низкого качества) было принято решение максимально
разделить модули, приняв схему черных ящиков: модули связываются с
помощью единого протокола передачи информации, запускаясь
поочередно и независимо друг от друга, для того, чтобы была
возможность заменить плохо работающий модуль на более эффективной
без ущерба остальной системе.
Был сформулирован список требований к модулю:
1. Модуль не имеют графического интерфейса и запускаются с
набором параметров (параметры описаны для каждого модуля
отдельно).
2. В качестве протокола обмена данными используются XML-файлы.
3. Все настройки модулей должны храниться снаружи модулей в
конфигурационных файлах, позволяя при необходимости
производить гибкую подстройку под конкретную задачу.
При соблюдении всех этих требований достигается независимость всей
системы от конкретного языка разработки и появляется возможность
использовать сторонние системы обработки ЕЯ.

3.1. Модули
На данный момент реализован модуль нормализации и модуль
токенизации, что позволяет получать предварительные
неотфильтрованные списки терминов.

3.1.1. Нормализация
Модуль нормализации принимает на вход файл настроек, имена входного
и выходного файлов. Результатом его работы является XML-файл с
текстом заключений без лишних элементов.
Он требует для своей работы интерпретатор языке Python3 и вызывается
следующим образом:
normalize.py <config> <src> <dst>
Также есть batch-скрипт, вызывающий normalize.py для каждого файла в
директории. Его синтаксис такой:
normalize.bat <config> <src_dir> <dst_dir>
Параметры модуля:
1. header_word: слово-признак заголовка
2. footer_word: слово-признак заключения
3. split_paragraphs: флаг — объединять абзацы или нет

3.1.2. Токенизация
Токенизация в данном модуле реализована в виде недетерминированного
конечного автомата, вычисляющего наиболее вероятный путь.
Модуль токенизации принимает на вход файл настроек токенизации,
имена входного и выходного файлов. Результатом его работы является
XML-файл с текстом, раздеденным на предложения и токены: слова и
специальные объекты.
Он требует для своей работы интерпретатор языке Python3 и вызывается
следующим образом:
tokenize.py <config_file> <input_file> <output_file>
Файл конфигурации использует следующий синтаксис:
1. Строки, начинающиеся с символа «;» — комментарии
2. Файл состоит из нескольких разделов, каждый раздел начинается со
строки вида
[имя_раздела]
3. Разделы:
1. sClass — классы символов; синтаксис: на каждой строке новый
класс вида
имя_класса: <набор символов без пробелов>
2. order — порядок следования классов символов в таблице через
произвольное количество табуляций
3. table — таблица переходов, строки которой — состояния, а
столбцы — классы символов. На их пересечении находится
список состояний, в которые может перейти автомат при такой
паре состояние / символ, вида
{состояние1[:вероятн1],состояние2[:вероятн2],...}
При единственном варианте фигурные скобки можно опустить. Если
такая пара состояние / символ недопустима, то в строке таблицы должен
стоять символ «0». Вероятность может не указываться. Если она не
указывается, то рассчитывается из расчета
100 / кол-во состояний
Обязательные строки таблицы:
1. begin — начальное состояние
2. eos — конец предложения
3. eow — конец слова
4. groups — группы, элементы которых следует объединить после
конца переходов. Синтаксис:
<тип результ. токена> = <тип токена> + <тип токена> + … + <тип
токена>
Элементы алгоритма работы автомата:
1. Для каждого символа текста производятся переходы в соответствии
с таблицей.
2. История состояний автомата сохраняется в виде Decision Tree —
каждый раз, когда автомат попадает в неопределенное состояние,
для каждого из вариантов создается ответвление, и для каждого из
ответвлений автомат проходит путь до конечного состояния / конца
текста.
3. После прохода автомата до конца текста копируются все пути, не
попавшие в конечное состояние.
4. Для каждого из таких путей объединяются символы одного
состояния и символы, состояния которых находятся в одной группе.
5. Определяется наиболее вероятный разбор.
6. Он записывается в выходной файл.

4. Оценка

5. Приложения

5.1. Приложение 1. Тексты заключений


см. файлы 1.doc, 2.doc и 3.doc

5.2. Приложение 2. Конечный автомат для токенизации


см. файл automata_table.txt