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

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

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

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, которое традиционно считается женского рода.

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

Падеж

Число

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

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

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

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

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

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

  © Козиев Илья 2019
изменено 22-Aug-11