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

$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: Повторите, пожалуйста. Вас плохо слышно.