Система семантического разбора для естественно-языковых текстов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

Рисунок 4.6 - Блоки семантического анализа

Коротко говоря, первый блок выделяет все узлы, представляющие собой концепты предметов (слов-объектов) всего текста.

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

5. ИСПОЛЬЗОВАНИЕ Н-ГРАММНОГО СЛОВАРЯ MCR

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

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

Для электронного словаря важнейшими свойствами являются скорость анализа входной последовательности символов и компактность. Эти характеристики особенно важны при использовании словаря при обработке больших объемов текста.

.1 Методы хранения словарей

Раiвет рынка программного обеспечения для русских словарей был в середине 90-х годов. Основные модели, которые успешно действуют до сих пор, были разработаны для слабых, по нынешним меркам, процессоров с небольшим количеством памяти. Бывало и так, что кодирование слов не всегда было однозначным (транзитивным). Словарь общей лексики на 100 тысяч лемм умещали в 300-400 кб. при помощи унификации флексий. Проще говоря, из всех слов выделяли постоянную графическую часть, цепочки изменяющихся префиксов и суффиксов хранили отдельно. Информация о грамматических характеристиках дополнительно требовала дополнительно 100-200 кб., в зависимости от принятой классификации частей речи.

Cтэмменг слов - это всего лишь алгоритм выделения корня в слове. По сути дела не является методом хранения, однако, обязательно нужно упомянуть о нём, т.к. стеммеры - это важная часть NLP и используются почти в каждом проекте.

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

Метод хэширование был освоен математиками еще в 60-х 70-х годах 20-го века. Это один из быстрых способов доступа к данным словаря спользующий вспомогательную функцию, которую называют хэшем (от англ. hash). Преимущество данного метода в том, что сложность функции поиска слова в хэш-таблице составляет O(1) т.е. является константой.

Еще один быстрый алгоритм доступа к данным словаря - это использование древовидной структуры. В английском варианте B-tree . Данный метод позволяет за конечное количество итераций найти слово в словаре. И по сравнению с Хэш-таблицей может быть компактнее при хранении больших объемов данных.

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

Идея построения базы словаря mcr была основана на методе Вилбура-Ховайко которые дают необходимые достаточно формализованные системы правил, построения, разбиения слов (то как и из чего состоят слова).Были предприняты попытки использовать, в качестве минимальной единицы слова - слог, что приводило к серьезному перебору; была рассмотрена система словообразования "корень + аффиксы", что тоже окзалось весьма затруднительным. В итоге вопрос об однозначном разбиении слова был какое-то время нерешенным.

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

5.2 Описание морфоанализатора для словаря

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

Для того чтобы инциализировать словарь mcr потребуется вызвать метод int InitMcr(*p1Func)().