Академический Документы
Профессиональный Документы
Культура Документы
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. Актуальность
2. Обзор подходов
2.0. Определения
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].
Правиловые подходы показывают лучшие результаты, но для «настройки»
таких систем на конкретную предметную область необходимо каждый раз
разрабатывать систему правил.
Статистические подходы, в свою очередь, могут применяться для более
широкого круга текстов, однако результаты натренированной системы
будут хуже результатов системы, для которой были разработаны правила.
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. Приложения