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

Род существительных в русском языке

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

class СУЩЕСТВИТЕЛЬНОЕ
 {
  language Russian

  attributes
   {
    ПЕРЕЧИСЛИМОСТЬ
    ОДУШ
    РОД
   }

  dimentions
   {
    ЧИСЛО
    ПАДЕЖ
   }
 }

Для русского языка в грамматическом словаре определено три рода - мужской, женский и самый "малочисленный" средний.

Статистика распределения существительных по родам

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

Существительные мужского рода:

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

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

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

Существительные среднего рода, самое маленькое подмножество лексикона в сравнении с мужским и женским родами, еще более строго определяются последним символом:

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

Определение рода существительных в русском языке

Для каждого существительного в русском лексиконе хранится признак рода. Так как грамматический род объявлен в описании класса существительных как обязательный признак - атрибут, то невозможно внести в русский лексикон существительное, не относящееся к одному из родов. Проще всего убедиться в этом с помощью служебной утилиты для работы с лексиконом Lexicon, которая включена в свободно доступную на сайте демо-версию SDK Грамматического Словаря. Запустив ее и выбрав в начальном меню режим морфологического разбора отдельных слов, можно ввести с клавиатуры слово и увидеть все известные для него грамматические признаки:

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

На картинке показан вариант морфологического разбора слова кошка с помощью версии утилиты под Linux.

Получение информации о роде существительного в процедурном API

В рамках процедурного API Грамматического словаря определение рода существительного может быть выполнено так.

Допустим, мы имеем существительное в базовой форме, то есть в именительном падеже единственном числе (см. статью о лемматизации). Сначала мы найдем словарную статью в лексиконе с помощью процедуры sol_FindEntry (показан код на C++):

    int ie1 = sol_FindEntry( hEngine, L"КОШКА", NOUN_ru, RUSSIAN_LANGUAGE );

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

Далее надо определить собственно признак рода этого существительного. Для этого в процедурном API есть специальная процедура sol_GetNounGender, которая возвращает целочисленное значение. Три целочисленные константы, определенные для языка C++ в файле _sg_api.h, соответствуют мужскому, женскому и среднему роду - MASCULINE_GENDER_ru, FEMININE_GENDER_ru, NEUTRAL_GENDER_ru. Таким образом, C++ код для работы с существительными женского рода может выглядеть так:

    if( sol_GetNounGender( hEngine, ie1 )!=FEMININE_GENDER_ru )
  { /* ... */ }

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

Работа с родом существительных в SQL словаре

Значение грамматического рода хранится в реляционной схеме в таблице SG_ENTRY_COORD. Каждой словарной статье, то есть записи в таблице SG_ENTRY, в SG_ENTRY_COORD может корреспондировать несколько записей в SG_ENTRY_COORD, например для рода и одушевленности существительного. Выбрать именно признак рода можно, зная id записи в SG_COORD с полем имени 'РОД'. Так как эти id соответствуют целочисленным константам, упомянутым в предыдущем абзаце, то в демонстрационном запросе мы просто укажем соответствующее магическое число 11.

Итак, запрос, который определит род существительных на кош-

род существительных в SQL словаре

Результат выполнения запроса:

род существительных на кош-

Именно такой подход реализован и в online-интерфейсе к словарю, загруженному в СУБД MySQL.

Определение рода слова в правилах трансформации

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

   int gender = wordform_get_coord( word1, РОД );

Специальный механизм компилятора правил позволяет вместо указания целочисленных констант для проверки рода использовать формат КООРДИНАТА:СОСТОЯНИЕ, например так:

   if( eq( gender, РОД:ЖЕН ) ) then ...

Морфологический разбор и определение рода в ORM PersistentDictionary

Кроме работы с SQL словарем непосредственно запросами к базе, можно использовать специальную .NET библиотеку, которая позволяет работать с сущностями в реляционной БД как с объектами ООП.

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

   Solarix.WordEntry кошка = dict.entry["кошка"];
   Solarix.CoordPair gender = кошка.attrs.FindState( SolarixGrammarEngineNET.GrammarEngineAPI.GENDER_ru );
   Console.WriteLine( "{0}", gender );

В данном случае мы сначала ищем словарную статью, и запоминаем ее как переменную типа WordEntry. Разумеется, следует проверять, что поиск слова удался - то есть контролировать, библиотека не вернула null в первой строке, но для ясности кода эта проверка пропущена. Затем мы обращаемся к свойству attr словарной статьи, которое содержит перечень грамматических атрибутов. Среди них есть значение рода - метод FindState возвращает его как объект класса CoordPair.

Формы глаголов в русском языке с признаком рода

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

пел - пела - пело

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

формы глаголов прошедшего времени

Они дадут такие результаты.

Формы глаголов прошедшего времени мужского рода:

формы глаголов мужского рода

Формы глаголов прошедшего времени женского рода:

формы женского рода прошедшего времени

Формы глаголов прошедшего времени среднего рода:

формы глаголов среднего рода прошедшего времени

Для полноты картины можно подсчитать еще распределение форм множественного числа в прошедшем времени:

глаголы в прошедшем времени множественного числа

Попавшая в каждую выборку форма на у - это глагол дать деру.

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

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

Род существительных в английском языке

Английские существительные не имеют морфологического признака рода.

О роде существительного, как о не-морфологической характеристике, можно говорить для существительных boy-girl, man-woman и производных от них schoolboy-schoolgirl, chairman-chairwoman, boyfriend-girlfriend, mother-father и так далее.

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

actor - actress

Во всех вышеупомянутых случаях грамматический род прямо соответствует биологическому.

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

She is a good actor

Call your mother, she needs your help.

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

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

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

Падеж

Число

Склонение существительных

Особенности описания русских существительных

Особенности описания английских существительных

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

Морфология русского языка

Согласование прилагательных и существительных

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


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



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