Имя существительное в морфологическом словаре

Субстантивное словообразование

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

возвращение, кручение

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

кормить - кормление

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

скукоживание

Связь между порождающим глаголом и порожденным существительным можно найти в тезаурусе. Как и все отношения, описываемые в тезаурусе, они имеют определенный тип связи. В справочнике SG_STATE типы связей тезауруса имеют в поле id_coord значение 0, поэтому запрос:

SELECT id, name
 FROM  sg_state
 WHERE id_coord=0
 ORDER BY id

выведет список типов связей, и среди них нужный нам тип в_сущ:

idname
...
37в_сов
38в_несов
39в_сущ
40в_прил
41в_наречие
...

Чтобы наконец увидеть, от каких глаголов порождаются существительные, воспользуемся таблицами SG_LINK - связи между словарными статьями, SG_ENTRY - шапки словарных статей. Такой запрос:

SELECT V.name, N.name
 FROM  sg_class C, sg_entry N, sg_link L, sg_state S, sg_entry V
 WHERE C.name='ИНФИНИТИВ' AND
            V.id_class=C.id AND
            L.id_entry1=V.id AND
           S.id_coord=0 AND S.name='в_сущ' AND L.istate=S.id AND
           N.id=L.id_entry2

выдаст примерно такой список:

прирезатьприрезание
повиноватьсяповиновение
врезатьврезка
перерезатьперерезание
вырезатьвырезание
отрезатьотрезание
подрезатьподрезание
срезатьсрезание
срезатьсясрезание
нарезатьсянарезка

Получение информации о существительном из SQL словаря

Род - постоянный грамматический признак имени существительного в русском языке. Все грамматические формы существительного имеют один и тот же род. Как и другие постоянные грамматические признаки словарных статей, информация о роде хранится в таблице SG_ENTRY_COORD. Привязка к словарной статье осуществляется через внешний ключ - поле SG_ENTRY_COORD.id_entry=SG_ENTRY.id. Для одной записи в SG_ENTRY может быть множество записей в SG_ENTRY_COORD, хранящих информацию, к примеру, о роде, одушевленности, перечислимости, глагольном виде и так далее.

Чтобы отфильтровать запись в SG_ENTRY_COORD, соответствующую именно грамматическому роду, надо знать ID признака 'род'. Для его определения можно посмотреть содержимое справочника SG_COORD:

SELECT id, name
 FROM  sg_coord
 ORDER BY id

Среди записей найдется и грамматический род:

idname
...
9ЛИЦО
10ЧИСЛО
11РОД
12ПЕРЕХОДНОСТЬ
13ПРИЧАСТИЕ
...

Обратите внимание, что текстовое наименование хранится в верхнем регистре, это справедливо для многих справочников SQL словаря.

Таким образом, ID для признака грамматического рода имеет значение 11. Следует, впрочем, иметь в виду, что разные версии SQL словаря могут иметь различия в ID справочников. Поэтому следует избегать внесения числовых констант ID в программный код, используя вместо этого либо поставляющие для процедургого API файлы с объявлениями констант, либо искать перед началом работы текущие актуальные значения ID.

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

SELECT id, name
 FROM  SG_CLASS
 ORDER BY id
idname
...
6ADJ
7VERB
8СУЩЕСТВИТЕЛЬНОЕ
9МЕСТОИМ_СУЩ
10МЕСТОИМЕНИЕ
...

Вернемся к определению рода существительных. В целом задача решается цепочкой таблиц SG_ENTRY, SG_ENTRY_COORD, SG_STATE. В дополнение к ним в запросе будут участвовать таблицы SG_CLASS - справочник частей речи, SG_COORD - справочник грамматических признаков, так что мы вообще избежим задания числовых значений ID в запросе ценой некоторой потери эффективности. Впрочем, оптимизаторы запросов современных СУБД вполне достойно справляются со своими задачами, и в рамках интерактивных настольных приложений дополнительные затраты времени совершенно неощутимы.

Сведя все таблицы, получаем такой демонстрационный запрос:

SELECT E.name AS 'существительное', GS.name AS 'РОД'
 FROM  sg_coord GC, sg_state GS, 
      sg_class C, sg_entry E,
      sg_entry_coord EC
 WHERE GC.name='РОД' AND GS.id_coord=GC.id AND
       C.name='СУЩЕСТВИТЕЛЬНОЕ' AND E.id_class=C.id AND
       E.name IN ('кот','кошка','животное') AND
       EC.id_entry=E.id AND EC.icoord=GC.id AND GS.id=EC.istate

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

существительноеРОД
животноеСР
котМУЖ
кошкаЖЕН

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

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

SELECT E.name AS 'существительное', GS.name AS 'РОД'
 FROM  sg_coord GC, sg_state GS, 
      sg_class C, sg_entry E,
      sg_entry_coord EC
 WHERE GC.name='РОД' AND GS.id_coord=GC.id AND
       C.name='СУЩЕСТВИТЕЛЬНОЕ' AND E.id_class=C.id AND
       E.name='Женя' AND
       EC.id_entry=E.id AND EC.icoord=GC.id AND GS.id=EC.istate

вернет две словарных статьи:

существительноеРОД
ЖеняМУЖ
ЖеняЖЕН

Кроме грамматического рода, каждое существительное в своей словарной статье хранит также признак одушевленности. В целом хранение информации об обушевленности аналогично грамматическому роду. В справочнике SG_COORD есть запись 'ОДУШ', в таблице SG_ENTRY_COORD для словарной статьи по id_entry можно найти значение признака одушевленности. В качестве иллюстрации расширим запрос на вывод грамматического рода, добавив туда вывод одушевленности:

SELECT E.name AS 'Существительное', GS.name AS 'Род', AnS.name AS 'Одушевлённость'
 FROM  sg_coord GC, sg_state GS, 
      sg_coord AnC, sg_state AnS,
      sg_class C, sg_entry E,
      sg_entry_coord EC1,
      sg_entry_coord EC2
 WHERE GC.name='РОД' AND GS.id_coord=GC.id AND
       AnC.name='ОДУШ' AND AnS.id_coord=AnC.id AND
       C.name='СУЩЕСТВИТЕЛЬНОЕ' AND E.id_class=C.id AND
       E.name IN ('оператор','кот','кошка','мясо','шерсть','животное') AND
       EC1.id_entry=E.id AND EC1.icoord=GC.id AND GS.id=EC1.istate AND
       EC2.id_entry=E.id AND EC2.icoord=AnC.id AND AnS.id=EC2.istate

Обратите внимание на нюанс - среди искомых существительных в операторе IN присутствует слово 'оператор', которое соответствует двум словарным статьям. Одно из них одушевленное: оператор станка с ЧПУ. Другое - неодушевленное: оператор дифференцирования. Результаты выполнения запроса будут такие:

СуществительноеРодОдушевлённость
операторМУЖОДУШ
операторМУЖНЕОДУШ
мясоСРНЕОДУШ
животноеСРОДУШ
котМУЖОДУШ
шерстьЖЕННЕОДУШ
кошкаЖЕНОДУШ

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

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

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

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

SELECT F.name, P.str_pairs
 FROM  sg_class C, sg_entry E, sg_form F, coord_pairs P
 WHERE C.name='СУЩЕСТВИТЕЛЬНОЕ' AND
       E.id_class=C.id AND E.name='кресло' AND
       F.id_entry=E.id AND
       P.id=F.id_dims

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

namestr_pairs
кресло ЧИСЛО:ЕД ПАДЕЖ:ИМ
кресла ЧИСЛО:МН ПАДЕЖ:ИМ
кресла ЧИСЛО:ЕД ПАДЕЖ:РОД
кресел ЧИСЛО:МН ПАДЕЖ:РОД
креслом ЧИСЛО:ЕД ПАДЕЖ:ТВОР
креслами ЧИСЛО:МН ПАДЕЖ:ТВОР
кресло ЧИСЛО:ЕД ПАДЕЖ:ВИН
кресла ЧИСЛО:МН ПАДЕЖ:ВИН
креслу ЧИСЛО:ЕД ПАДЕЖ:ДАТ
креслам ЧИСЛО:МН ПАДЕЖ:ДАТ
кресле ЧИСЛО:ЕД ПАДЕЖ:ПРЕДЛ
креслах ЧИСЛО:МН ПАДЕЖ:ПРЕДЛ

В поле COORD_PAIRS.str_pairs хранится список признаков в читабельном виде, как одна строка. Каждый признак в ней отделяется пробелами слева и справа. Это позволяет использовать оператор LIKE для фильтрации форм, если скорость запроса не очень важна и использование таблицы SG_FORM_COORD доставляет неудобства. Например, предыдущий запрос можно модифицировать, добавив фильтр единственного числа:

SELECT F.name, P.str_pairs
 FROM  sg_class C, sg_entry E, sg_form F, coord_pairs P
 WHERE C.name='СУЩЕСТВИТЕЛЬНОЕ' AND
       E.id_class=C.id AND E.name='кресло' AND
       F.id_entry=E.id AND
       P.id=F.id_dims AND
       P.str_pairs LIKE '% ЧИСЛО:ЕД %'

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

namestr_pairs
кресло ЧИСЛО:ЕД ПАДЕЖ:ИМ
кресла ЧИСЛО:ЕД ПАДЕЖ:РОД
креслом ЧИСЛО:ЕД ПАДЕЖ:ТВОР
кресло ЧИСЛО:ЕД ПАДЕЖ:ВИН
креслу ЧИСЛО:ЕД ПАДЕЖ:ДАТ
кресле ЧИСЛО:ЕД ПАДЕЖ:ПРЕДЛ

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

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

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

Мужской, женский, средний род

Единственное и множественное число

Одушевленность

Родовые пары

Существительные без форм единственного числа

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

Лексикон

Поиск слов в словарной базе данных по русской морфологии

Купить словарную базу данных

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

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


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



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