Части речи в грамматическом словаре

Синтаксис объявления частей речи
     Атрибуты и измерения в частях речи
     Теги в частях речи
     Части речи в SQL словаре
     Части речи в Persistent Dictionary Library
     Части речи в русском языке

Примеры объявления в исходных текстах словаря

Работа с частями речи в словаре

По историческим причинам части речи в словаре называются грамматическими классами. В названиях функций API и в структуре реляционной схемы словаря используется английский термин 'class'.

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

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

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

Словарные статьи и части речи

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

Спецификации объявления части речи

Возможны два формата объявления частей речи - полный и сокращенный.

1. Полный формат.

class имя_класса
{

 language имя_языка
 attributes
 {
  имя_коорд
  имя_коорд
 
       :
 }

 dimentions
 {
 
имя_коорд
  имя_коорд
       
:
 
}

 tags
 {
 
имя_коорд
  имя_коорд
       
:
 
}
}

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

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

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

class Предикат
{
 attributes
 {
  падеж
  падеж
      :

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

2. Сокращенный формат.

class имя_класса

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

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

Verb

_Adverb

ГЛАГОЛ

Причаст_1_действ

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

В некоторых случаях может быть удобно зарезервировать имя грамматического класса, не описывая его немедленно, а перенеся описание в другое место. С помощью ключевого слова extern можно добиться “объявления будущего объявления” части речи:

extern class A_Class_Name

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

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

extern class A_Class_Name

extern entry An_Entry_Name : A_Class_Name

Атрибуты и измерения в частях речи

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

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

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

существительное как часть речи

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

склонение русского существительного

выдаст все грамматические формы слова кошка с указанием падежа:

падежные формы существительного

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

Для кошки. Для кота. (дат.п.)

Под столом. Под землей. (твор.п.)

Таким образом, для предлогов падеж является атрибутом:

предлог как часть речи

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

падежная валентность предлога

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

падежная валентность предлога

Соответствующие примеры словосочетаний для этих вариантов:

с паршивой овцы хоть шерсти клок (род.п.)

с песней по жизни (твор.п.)

размером с овцу (вин.п.)

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

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

для кофе

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

Теги в словарных статьях

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

Пример тега - признак модальности для русских глаголов.

С помощью SQL запроса к словарю в БД

модальные слова

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

список модальных слов

Аналогичный запрос в LINQ может выглядеть так:

LINQ модальные слова

Атрибуты, теги и измерения в SQL словаре

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

Атрибуты и теги хранятся как записи в таблице SG_ENTRY_COORD, которая ссылается на шапки словарных статей - записи в таблице SG_ENTRY.

Измерения хранятся в таблице SG_FORM_COORD, которая ссылается на грамматические формы слов - записи в таблице SG_FORM.

Части речи в SQL словаре

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

части речи в sql

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

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

Части речи в Persistent Dictionary Library

В рамках этой ORM библиотеки каждой части речи соответствует объект класса PartOfSpeech, который можно получить, обратившись к свойству Dictionary.partsofspeech по числовому индексу или по имени. В следующем примере перебираются все объявленные в словаре части речи:

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

Примеры описаний частей речи

Исходные тексты словаря, в которых объявления частей речи присутствуют в виде текстовых файлов, доступны в полной версии SDK.

В частности, для русского языка объявления частей речи можно посмотреть в файле sg_rus_main.sol.

Объявления для английской морфологии - в sg_eng_main.sol.

Объявления для французской морфологии - в sg_fr_main.sol.

Части речи в многоязычных словарях

Грамматика многих языков выделяет функционально похожие части речи. Таковы, к примеру, существительные. Тем не менее, каждый поддерживаемый в проекте язык описывает свой грамматический класс существительного с уникальным именем, например ENG_NOUN, FR_NOUN и СУЩЕСТВИТЕЛЬНОЕ.

Внутренняя реализация частей речи

В исходных текстах грамматического словаря части речи описываются C++ классом Solarix::SG_Class (объявлен в sg_autom.h), который является потомком Solarix::GramClass (объявлен в gram_class.h). Сохраненный на диске словарь также содержит весь список объявлений частей речи, благодаря чему обеспечивается работа таких функций API, как sol_GetClassName, а также возможность экспорта в SQL форму - таблицы SG_CLASS и SG_CLASS_COORD почти полностью дублируют описания.

Части речи в русском языке

В русском разделе словаря описываются следующие главные части речи:

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

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

Глагол

Причастие

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

Наречие

Местоимение

Числительное

А также ряд служебных частей речи:

Предлог

Союз

Частица

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

Грамматические координаты

Языки

Словарные статьи

Лексикон

Наречия

Словарь

Внутренний язык грамматической машины

Компилятор словаря

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

Parts of speech

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


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



изменено 25-Aug-11