This site is no longer updated.Go to new Conversational Cloud docs

$caila.checkVocabulary


Проверяет каждое слово из массива аргументов на вхождение в словарь указанного движка NLU.


Синтаксис

Метод принимает в качестве аргумента массив объектов со следующими полями:

Поле Описание Допустимые значения Значение по умолчанию
word Слово, которое нужно проверить. Произвольная строка.
lang Язык, на котором написано слово. ru — русский язык.

en — английский язык.
Язык NLU для проекта.
engine Движок, с помощью которого будет произведена проверка. pymorphy — движок на основе библиотеки pymorphy2.

aot — движок на основе сервиса АОТ.
aot.

Движок pymorphy поддерживает только русский язык.

$caila.checkVocabulary([
    {word: "технология", lang: "ru", engine: "pymorphy"},
    {word: "technology", lang: "en"},
    {word: "ячсмитьбю."}
]); // => [true, true, false]

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

Метод целесообразно использовать, например, чтобы проверить, содержат ли нераспознанные запросы от пользователя хотя бы одно словарное слово. Если таких слов нет, запросы можно расценивать как спам.

state: CatchAll
    event!: noMatch
    script:
        # $parseTree.words — массив всех слов, обнаруженных в запросе.
        # Преобразуем его из списка строк в список объектов нужного вида.
        var words = $parseTree.words.map(function(string) {
            return {word: string};
        });

        # Определяем для каждого слова, является ли оно словарным.
        var wordsInVocab = $caila.checkVocabulary(words);

        # Увеличиваем счетчик нераспознанных реплик только в том случае,
        # если хотя бы одно слово из запроса нашлось в словаре.
        if (wordsInVocab.indexOf(true) > -1) {
            $session.catchAllCounter = $session.catchAllCounter + 1 || 1;
        }
    # Если счетчик нераспознанных реплик превысил порог, переводим на оператора.
    if: $session.catchAllCounter > 3
        go!: /Switch
    random:
        a: Извините, я не расслышала. Повторите, пожалуйста.
        a: Не совсем поняла. Можете повторить, пожалуйста?
        a: Повторите, пожалуйста. Вас плохо слышно.