На предыдущем уроке мы научились искать слово в грамматическом словаре несколькими способами. Как уже было сказано, основной метод поиска при морфологическом разборе заключается в использовании связки таблиц sg_lexem, sg_form и sg_entry.
Таблица sg_entry хранит "шапки" словарных статей, то есть общую для всех грамматических форм слова информацию. Среди прочего каждая запись в sg_entry содержит столбец id_class - целочисленный ключ, ссылающийся на sg_class.id. Таблица sg_class является справочником частей речи. Каждая запись в ней содержит уникальный идентификатор (первичный ключ) и уникальное название части речи, а также некоторую другую информацию.
Таким образом, связка из указанных четырех таблиц sg_lexem, sg_form, sg_entry и sg_class позволяет для любого слова определить, к какой части речи оно относится:
SELECT E.name AS "начальная форма", C.name AS "часть речи" FROM sg_lexem L JOIN sg_form F ON F.id_lexem=L.id JOIN sg_entry E ON E.id=F.id_entry JOIN sg_class C ON C.id=E.id_class WHERE L.name='УЖЕ'
Если слово может быть распознано неоднозначно как форма нескольких словарных статей, то этот запрос выдаст список всех вариантов:
начальная форма | часть речи |
---|---|
уж | СУЩЕСТВИТЕЛЬНОЕ |
узкий | ПРИЛАГАТЕЛЬНОЕ |
уже | НАРЕЧИЕ |
узко | НАРЕЧИЕ |
Иногда для получения некоторой статистической информации требуется получить список всех слов для заданной части речи. Эта задача решается как и предыдущая с помощью задания условия на поле sg_entry.id_class и связывание таблиц sg_entry, sg_class и sg_form. Например, выборка всех деепричастий:
SELECT F.name FROM sg_class C, sg_entry E, sg_form F WHERE C.name='ДЕЕПРИЧАСТИЕ' AND E.id_class=C.id AND F.id_entry=E.id
Получение гистограммы распределения слов по частям речи
Ёфикация - учет буквы ё, поиск и восстановление
Перечисление грамматических форм слова
Справочники грамматических атрибутов
Купить словарную базу русской морфологии
Реляционная схема словарной базы
© Козиев Илья 2019
![]() |
|
изменено 04-May-12 |