Разработка подсистемы морфологического анализа информационной системы

2.3 Общее описание морфологического анализа слова

Алгоритм морфологического разбора состоит из двух частей:

1) Поиск слова в словаре.

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

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

овоформе может соответствовать много морфологических интерпретаций. Например, у словоформы стали две интерпретации:

· {СТАЛЬ, C, «но», («жр, ед, рд», «жр, ед, дт», «жр, мн, им», «жр, мн, вн»)};

· {СТАТЬ, Г, «нп, св», («мн, дст, прш»)}.

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

Если и на втором этапе не удалось найти словоформу, то считается, что слова нет в словаре.

2.4 Алгоритм поиска слова в словаре

При выборе структуры словаря были рассмотрены модели русского языка, а так же учитывались рекомендации. Потому в качестве основы был выбран словарь. Он содержит примерно 124000 корней, что позволяет покрыть достаточно большую часть русского языка (около 300000 слов).

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

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

Словарь состоит из трёх частей: набор основ слов (Lemmata), набор возможных постфиксов (FlexiaModels) и набора дескрипторов (Ancodes). Взаимодействие этих частей показано на рисунке 3.1.

Рисунок 3.1. Схема морфологического словаря

2.5 Алгоритм анализа слова на возможные ошибки

Было рассмотрено несколько алгоритмов:

1) Расстояние Левенштейна.

2) Метод полных обратных преобразований.

3) Поиск максимальной подпоследовательности.

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

Определение: Отображение ошибки категории z = 1, 2 данной словоформы – множество словоформ, порождаемых этой словоформой в результате всех возможных ошибок категории z.

Выделяют два типа случайных ошибок:

1. удвоение символа (клаввиатура);

2. перестановка двух соседних символов (аглоритм).

Определение: Полное отображение одиночной ошибки данной словоформы – множество словоформ, порождаемых этой словоформой в результате всех возможных ошибок четырех категорий.

Таким образом, если через Г1 (словоформа) обозначить множество словоформ, порождаемых данной словоформой в результате ошибки категории 1 (отображение ошибки категории 1), через Г2 – отображение ошибки категории 2, через Г3 – отображение ошибки категории 3 и через Г4 – отображение ошибки категории 4, то полное отображение одиночной ошибки Г (словоформа) есть объединение всех четырех множеств.

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

Описание метода полных обратных преобразований:

1. Вносим в буквенную цепочку полное обратное преобразование.

2. Каждый из получившихся токенов проверяем на наличие в словаре.

3. Если токен имеется в словаре, то он добавляется в список корректных кандидатов.

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

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

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

2.6 Описание программной реализации

Для работы алгоритмов АМА необходимы следующие массивы:

1) Массив base (содержит основы слов),

2) Массив flex (содержит постфиксы),

3) Массив mrf (содержит морфологические признаки).

Данные массивы заполняются на основе словарей morphologi.dic

и rgramtab.dic

Для поиска по массивам и анализа ошибок используются следующие методы:

3) s_basean

4) s_flexan

5) s_mrf

6) first_err

7) sec_err

Массив base

Массив base – двумерный динамический массив содержащий основы слов и указатель на строку из массива flex.

Примеры строк из массива base:

ВЗ 519

В данном примере набор символов ВЗ является основой слова. Число 519 – указатель номера строки в массиве flex, содержащей набор окончаний ассоциированных с данной основой.

Массив flex

Массив flex – двумерный динамический массив, содержащий наборы окончаний. Данный массив является зависимым от массива base, также этот массив содержит указатель на строки массива mrf, идентифицирующие морфемные свойства слова.

Пример части строки из массива flex

%БИТЬСЯ*ка % БИЛСЯ*кз%

Набор символов «БИТЬСЯ» является формой постфикса, для определённой в массиве base основы. Набор символов «ка» является идентификатором строки с дескрипторами массива mrf.

Массив mrf

Массив mrf – двумерный динамический массив, содержащий наборы дескрипторов, которые описывают морфемные свойства анализируемого слова.

Пример строки из массива mrf:

ка a ИНФИНИТИВ дст

В данной строке указано, что словоформа является Инфинитивом (начальной формой глагола), и является действительным.

Набор частей речи массива mrf указан в таблице 3.2.

Таблица 3.2. Описание частей речи массива mrf

Часть речи в системе Диалинг

Пример

Расшифровка

C

мама

существительное

П

красный

прилагательное

МС

он

местоимение-существительное

Г

идет

глагол в личной форме

ПРИЧАСТИЕ

идущий

причастие

ДЕЕПРИЧАСТИЕ

идя

деепричастие

ИНФИНИТИВ

идти

инфинитив

МС-ПРЕДК

нечего

местоимение-предикатив

МС-П

всякий

местоименное прилагательное

ЧИСЛ

восемь

числительное (количественное)

ЧИСЛ-П

восьмой

порядковое числительное

Н

круто

наречие

ПРЕДК

интересно

предикатив

ПРЕДЛ

под

предлог

СОЮЗ

и

союз

МЕЖД

ой

междометие

ЧАСТ

же, бы

частица

ВВОДН

конечно

вводное слово

КР_ПРИЛ

красива

краткое прилагательное

КР_ПРИЧАСТИЕ

построена

краткое причастие

Страница:  1  2  3  4  5  6  7  8  9  10  11  12 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы