Нормализация и лемматизация текста с использованием тезауруса

Назначение алгоритма глубокой нормализации

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

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

Сравнение с лемматизацией и стеммингом

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

Проверь еду у кошек

после стемминга преобразуется в

Провер е у кош

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

Достоинство стеммера - отсутствие внешних зависимостей. Доступный на сайте стеммер представляет из себя одну dll, скомпилированную из C# файла. Кроме того, стеммер работает очень быстро.

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

Лемматизатор по своим результатам стоит намного ближе к нормализатору. Однако он применяет упрощенный анализ слов, не учитывая контекст. Это приводит к неоднозначностям при определении части речи. Например, лемматизация слов в словосочетании мы роем яму даст для второго слова два варианта лемматизации: существительное рой и глагол рыть. Эта неоднозначность не может быть разрешена без привлечения морфологического анализатора.

Роль морфологического анализатора

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

В качестве примера можно взять предложение

вижу три села

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

видеть тереть сесть

вместо корректного

видеть три село

Использование тезауруса

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

Эти связи позволяет привести причастия и деепричастия к неопределенной форме глагола, однокоренные слова - по возможности к форме существительного (краснеть, красный - краснота), а родовые пары - к существительному мужского рода (актриса - актер).

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

При использовании процедурного API словаря можно воспользоваться двумя специальными функциями.

sol_TranslateToNoun выполняет поиск однокоренного или семантически связанного существительного.

sol_TranslateToInfinitive ищет однокоренной или семантически связанный глагол, а для русского языка - инфинитив.

Онлайн-версия

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

Дополнительные материалы

Алгоритмы русской морфологии

Тезаурус

Лемматизатор

Стеммер

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 05-Feb-12