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

$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);
# ...