В составе API грамматического словаря есть процедура, разработанная специально для склонения существительных в русском языке:
Она работает для английского и русского языков, разумеется при условии наличия соответствующих языковых модулей в загруженном словаре.
Для русских существительных можно указывать один из 6 основных падежей, для английских доступно только 2 падежа - номинатив и притяжательный.
В случае необходимости получения формы существительного, согласованной с числом, может быть проще использовать процедуру
Грамматические формы слова (словарной статьи) хранятся как отдельные записи в таблице sg_form, связанные с заголовком словарной статьи - записью в sg_entry. Как подробно описано на странице документации по схеме SQL словаря, такие грамматические признаки форм существительного, как падеж и число, представлены в базе данных двояко. Во-первых, каждый грамматический признак представлен записью в таблице sg_form_coord, связанной с sg_form отношением внешнего составного ключа sg_form.(id_entry,iform)=sg_form_coord.(id_entry,iform). Во-вторых, каждая запись в таблице sg_form имеет поле id_dims, ссылающееся на запись в справочнике coord_pairs, в котором поле str_pairs хранит строковое представление набора грамматических признаков. Каждый признак в этой строке представлен паттерном КООРДИНАТА:ЗНАЧЕНИЕ либо КООРДИНАТА в некоторых случаях, разделителями между признаками являются пробелы.
Самый простой способ получить формы существительного для заданного падежа и числа - это воспользоваться информацией в поле coord_pairs.str_pairs и оператором LIKE в запросе:
SELECT sg_form.name FROM sg_entry, sg_form, coord_pairs WHERE sg_entry.name='галактика' -- для этой словарной статьи AND sg_form.id_entry=sg_entry.id AND coord_pairs.id=sg_form.id_dims AND coord_pairs.str_pairs LIKE '%ПАДЕЖ:ТВОР%' -- получим все формы творительного падежа
В этом запросе нет задания грамматического числа, поэтому будут выведены формы для единственного и множественного числа:
Обратите внимание на наличие альтернативной формы с окончанием -ою в единственном числе - это характерная черта для существительных женского рода и даже некоторых существительных мужского рода:
Столкновение великого князя с дядею Владимиром Андреевичем Донским.
В текстовом поле Вы можете ввести русское существительное. Скрипт выполнит поиск слова в загруженном в БД лексиконе, и если соответствующая словарная статья есть, то будут показаны все грамматические формы существительного.
Результаты склонения:
Задача получения нужной грамматической формы - одна из главнейших при полнотекстовом переводе. В правилах трансформации, с помощью которых реализуются переводчики с разных языков на русский, данную задачу совместно решают две встроенные функции:
wordform_set_coord - задание (замена) координатных пар для словоформы, например - задание падежа и числа для существительного.
wordfrorm_refresh - приведение текстового содержимого словоформы в соответствие с текущим набором координатнах пар.
Сначала один или несколько вызовов wordform_set_coord задают для словоформы грамматические признаки, например так
wordform_set_coord( wrd, ПАДЕЖ, ПАДЕЖ:ТВОР, ЧИСЛО, ЧИСЛО:МН )
А затем получаем правильное текстовое представление слова с установленными признаками:
wordform_refresh( wrd )
Именно эти две функции позволяют получать корректный русский текст при переводе:
薄刃 --> Тонкий кухонный нож
二つの薄刃 --> 2 тонких кухонных ножа
五つの薄刃 --> 5 тонких кухонных ножей
Обратите внимание, что склонение прилагательных и существительных при согласовании с числительным идет по разным правилам - подробнее об этом рассказано здесь.
Обратите особое внимание, что некоторые грамматические формы могут отсутствовать у интересующей словарной статьи. Например, формы притяжательного падежа определены главным образом для одушевленных английских существительных, а формы множественного числа могут отсутствовать у русских существительных, обозначающих абстрактные понятия типа сухость.
Кроме того, некоторые формы могут иметь более одного варианта, как это показано выше для русских существительных. Есть такие случаи и у английских существительных, хотя и в виде редких исключений - например specimen имеет формы множественного числа specimens и specimina.
Подробнее:
склонение английских существительных
склонение русских существительных
Отдельные статьи посвящены склонению прилагательных и спряжению глаголов в русском языке.
Приобретение SDK грамматического словаря
Имя существительное в морфологическом словаре
Процедурный API грамматического словаря
Согласование прилагательных и существительных
© Козиев Илья 2019
![]() |
|
изменено 04-Nov-12 |