Словоформы и морфологический разбор слов

Словоформы

Словоформы в грамматическом движке - это основной структурный элемент текста, с которым работает морфологический анализатор, правила синтаксического анализа, правила трансформации.

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

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

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

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

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

Морфологический разбор слов

Рассмотрим работу со словоформами в ходе морфологического анализа на примере двух словосочетаний.

вижу орел

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

словоформы при морфологическом разборе

Если контекст позволит, то морфологический анализатор уберет безусловно недопустимые варианты для второй словоформы. Например, такое словосочетание

вижу орла

даст в результате морфологического разбора

морфологический разбор слов

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

Морфологический анализ обоих примеров можно легко проверить с помощью утилиты syntax, запущенной с ключом -morphology. Она выводит в консоль сведения о количестве вариантов в каждой словоформе, если возникают альтернативы:

морфологический разбор словосочетаний

Функции для работы со словоформами

Процедурный API

В процедурном API грамматического словаря есть несколько функций для получения информации о словоформе.

Во-первых, в результате морфологического разбора одиночного слова sol_ProjectWord полчается список альтернативных словоформ. Для работы со список есть функции:

sol_CountProjections - число альтернатив в списке словоформ.

sol_GetIEntry - получение id словарной статьи для указанной словоформы в списке.

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

Другой набор функций API позволяет работать с результатами морфологического разбора предложения функциями sol_MorphologyAnalysis и sol_SyntaxAnalysis.

В качестве примера можно привести sol_GetNodeIEntry - получение id словарной статьи основного варианта словоформы, sol_GetNodeVersionCount - количество альтернативных вариантов словоформы.

Правила трансформации

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

К примеру wordform_pack позволяет создать словоформу с несколькими вариантами, например в ходе перевода текста. Для отсева вариантов можно использовать функцию ngrams_filter.

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

Грамматический словарь

Морфологический анализатор

  © 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 Мб


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



изменено 14-Jul-12