Научная статья на тему 'Модуль графематического анализа в системе обработки русскоязычных текстов'

Модуль графематического анализа в системе обработки русскоязычных текстов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
720
361
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Первушин А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Модуль графематического анализа в системе обработки русскоязычных текстов»

Модуль графематического анализа в системе обработки русскоязычных текстов

Первушин А. МИЭМ, каф. ИТАС

Введение

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

Графематический анализ

Графематический анализ — начальный этап обработки текста, в процессе которого выявляются элементы грамматической структуры. Задачами графематического анализа являются:

• разбиение текста на графемы;

• выделение в исходном тексте абзацев, заголовков, примечаний;

• определение в тексте границ предложений;

• выделение слов, разделителей и т. д.;

• распознавание сокращений, устойчивых оборотов и т.д.;

• сборка слов, написанных в разрядку.

Входными данными для модуля графематического анализа является плоский файл (1x1). Большой объём файлов (до нескольких гигабайт) накладывает некоторые ограничения:

• невозможность чтения всего файла в оперативную память и, как следствие, необходимость посимвольного или буферизованного чтения;

• отсутствие возможности поверхностного анализа всего текста (например, для определения разметки абзацев, параграфов и т. д.)

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

Выделение структурных элементов

Выделение в тексте таких структурных элементов, как абзацы, производится путем анализа достаточно большого буфера текста (3000 символов) следующим способом:

1. подсчет количества встречаемости последовательностей символов, которые могут определять новый абзац:

• перевод строки и следующий за ним символ табуляции,

• перевод строки и следующие за ним два или более символов пробелов,

• перевод строки, не удовлетворяющий предыдущим условиям. Символ перевода каретки при этом игнорируется.

2. Подсчет отношения количества каждой последовательности в текстовом буфере к его размеру.

Опытным путём было установлено следующее:

1. Признаком нового абзаца является символ перевода строки и следующий за ним символ табуляции или два и более символа пробела, если количество таких последовательностей превышает 0,2% от общего количества символов.

2. Признаком нового абзаца можно считать символ перевода строки, если частота его встречаемости не превышает 1%.

Определение в тексте границ предложений

Задача распознавания в тексте границ предложений во многом зависит от задачи поиска сокращений и имён собственных. Рассмотрим следующий отрывок текста: «Петрозаводск был основан в 1703 г. Петром I.» В данном примере «г.» является сокращением от слова «год». Если следовать простому правилу, означающему, что точка является концом предложения, то мы получим множественные ошибки при обработке.

Словарь сокращений

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

• текст сокращения,

• информацию о регистре букв в тексте сокращения,

• текст полного слова или словосочетания,

• морфологические характеристики, соответствующие полному слову или словосочетанию.

Объём словаря составил около 20000 символов. Для организации быстрого поиска слова в словаре сокращений необходимо выбрать оптимальную структуру для хранения. Были рассмотрены следующие варианты:

• бинарное дерево поиска,

• тернарное дерево поиска,

• конечный автомат.

Основное назначение бинарных деревьев заключается в повышении эффективности поиска. Для быстрого поиска внутри двоичного дерева его элементы должны быть организованы определенным образом. Бинарное дерево называется бинарным деревом поиска, если его элементы расположены так, что для каждого элемента I все элементы в левом поддереве г' будут меньше ¿, а все элементы в правом поддереве - больше, чем £. На рис. 1 изображены три двоичных дерева поиска с одинаковым набором элементов.

Чтобы найти заданный элемент в бинарном дереве поиска, мы начинаем обход с корня дерева и следуем вниз до узла, который содержит искомое значение. В каждом узле I мы используем функцию сравнения для данного дерева на предмет сравнения искомого значения V с элементом £—> V, записанном в I. Если V меньше, чем !—>!?, то поиск продолжается, начиная с левого потомка узла ¿, если V больше, чем £— > V, то поиск продолжается, начиная с правого потомка £, иначе возвращается значение текущего узла. Сложность алгоритма поиска по дереву определяется высотой дерева и колеблется в пределах от для полного дерева до О (л.) в случае полного

обхода.

Рисунок 1. Примеры бинарных деревьев

Тернарные деревья являются одной из структур поиска строки в некотором наборе строк. Каждый узел Р тернарного дерева, не являющийся листом, имеет трех потомков: левого Ь, правого К и среднего М, а так же хранит в себе символ С. Родительский узел для узла Р обозначим через Р(Р). Каждый лист дерева хранит информацию об определенной строке. Каждый узел дерева является либо промежуточным, либо листом. Поиск строки начинается с корня дерева. Строка просматривается символ за символом. Если текущий символ строки меньше, чем С у текущего узла дерева, то мы переходим к узлу I, если больше - то к узлу если равен С - то к узлу М, и только в последнем случае переходим к следующему символу строки.

Дерево на основе одной строки длины I представляет собой цепочку узлов длины I + 1, 1-й промежуточный узел содержит -й символ строки. Последний узел хранит информацию о строке. Каждый узел является узлом М для предыдущего узла цепочки.

Подобно бинарным деревьям, тернарные деревья могут быть как сбалансированными, так и не сбалансированными. Поиск строки длинны т в коллекции строк из п элементов потребует как минимум т + п операций сравнения.

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

Рассмотрим пример представления словаря сокращений в виде конечного автомата для следующих сокращений:

1) д. псих. н. - доктор психологических наук,

2) д. пед. н. - доктор педагогических наук,

3) докт. псих. н. - доктор психологических наук,

4) с. - северный,

5) с. - сельский,

6) т. д. - так далее,

7) т. п. - тому подобный.

Рисунок 2. Конечный автомат для словаря

Конечный автомат для этого словаря представлен на рис. 2. Как видно из рисунка, данный конечный автомат является недетерминированным.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.