Перейти к основному содержимому

$caila.inflect

Преобразует слова и словосочетания в нужную грамматическую форму.

подсказка
Метод $caila.inflect поддержан для русского и украинского языков.

Синтаксис

Принимаемые аргументы

Метод принимает 2 обязательных аргумента.

АргументОписаниеТип
textСлово или словосочетание, которое необходимо преобразовать.Строка
tagsМассив тегов для нужной грамматической формы.Массив строк

Если к одному и тому же слову нужно применить несколько тегов, то они отделяются друг от друга запятой.

Возвращаемое значение

Метод возвращает слова и словосочетания в требуемой грамматической форме.

Пример вызова

$caila.inflect("культурная столица", ["loct"]); // => "культурной столице"
$caila.inflect("создать бота", ["femn, past"]); // => "создала бота"

Грамматические теги

Метод $caila.inflect использует библиотеку pymorphy2. В качестве грамматических тегов в pymorphy2 используются теги, принятые в словаре OpenCorpora.

Падеж

ТегЗначениеВопросПример
nomnИменительный падежКто? Что?Чат-бот ответит клиенту.
gentРодительный падежКого? Чего?Количество уникальных пользователей.
datvДательный падежКому? Чему?Напишите чат-боту.
accsВинительный падежКого? Что?Перевести на оператора.
abltТворительный падежКем? Чем?Идентификатор появится под названием канала.
loctПредложный падежО ком? О чем?Просмотреть данные о полученном файле.
voctЗвательный падежСаш, купи пакет SMS.
gen2Частичный падежЧего?Ложка сахару (gent — ложка сахара).
acc2Превратительный падежВо что? Кем или чем стал?Записался в солдаты.
loc2Местный падежГде? В чем?Я у него в долгу (loct — напоминать о долге).

Число

ТегЗначениеПример
singЕдинственное числоДополнительный пакет.
plurМножественное числоДополнительные пакеты.

Род

ТегЗначениеПример
mascМужской родУпал.
femnЖенский родУпала.
neutСредний родУпало.

Лицо

ТегЗначениеПример
1per1 лицоДелаю.
2per2 лицоДелаешь.
3per3 лицоДелает.

Время

ТегЗначениеПример
presНастоящее времяСоздаю.
pastПрошедшее времяСоздал.
futrБудущее времяСоздаст.
подсказка
Ознакомиться с полным списком тегов вы можете на сайте OpenCorpora.

Версии словаря

В словаре OpenCorpora могут встречаться ошибки преобразования слов. Если результат $caila.inflect не соответствует ожидаемому, вы можете использовать метод $caila.inflectWithDictVersion.

Метод $caila.inflectWithDictVersion также использует библиотеку pymorphy2, но он позволяет выбрать другую версию словаря.

Метод принимает 3 обязательных аргумента.

АргументОписаниеТип
textСлово или словосочетание, которое необходимо преобразовать.Строка
tagsМассив тегов для нужной грамматической формы.Массив строк
versionВерсия словаря:
v1 — версия, которая используется для метода $caila.inflect.
v2 — новая версия, в которой исправлены некоторые ошибки.
Строка

Пример

Методы $caila.inflectWithDictVersion с версией словаря v1 и $caila.inflect возвращают одинаковый результат.

$caila.inflect("лучший", ["gent"]); // => "наихорошего"
$caila.inflectWithDictVersion("лучший", ["gent"], "v1"); // => "наихорошего"
$caila.inflectWithDictVersion("лучший", ["gent"], "v2"); // => "лучшего"
подсказка
Если результат обоих методов не соответствуют ожидаемому, то обратитесь в нашу техническую поддержку.

Использование в сценарии

state: Start
q!: $regex</start>
a: Здравствуйте, я помогу вам оформить доставку. Подскажите, вы из какого города?

state: City
intent: /city
script:
var city = capitalize($caila.inflect($parseTree._city, ["gent"]));
$reactions.answer("Так и записал, вы из " + city);
# ...