$caila.detectLanguage
Выполняет определение языка, используя модель fastText.
Синтаксис
Метод принимает в качестве аргумента массив строк. Метод возвращает массив ISO-кодов языков, на которых написаны переданные тексты.
- ECMAScript 5
- ECMAScript 6
$caila.detectLanguage([
"Раз два три",
"This is an English sentence.",
"Les hommes naissent et demeurent libres et égaux en droits."
]); // => ["ru", "en", "fr"]
В среде ECMAScript 6 метод является асинхронным:
await $caila.detectLanguage([
"Раз два три",
"This is an English sentence.",
"Les hommes naissent et demeurent libres et égaux en droits."
]); // => ["ru", "en", "fr"]
предупреждение
На строках, состоящих только из чисел, знаков пунктуации или других специальных символов, а также содержащих тексты на нескольких языках одновременно, метод может возвращать непредсказуемые результаты.
Использование в сценарии
Метод может использоваться, например, для маршрутизации нераспознанных запросов клиента.
- ECMAScript 5
- ECMAScript 6
state: CatchAll
event!: noMatch
script:
$temp.language = $caila.detectLanguage([$parseTree.text])[0]; // Определяем язык запроса.
$session.catchAllCounter = $session.catchAllCounter + 1 || 1; // Увеличиваем счетчик нераспознанных реплик.
# Если клиент иностранец — сразу переводим на оператора.
# Если нет — переводим на оператора по превышении счетчика нераспознанных реплик.
if: $temp.language !== "ru" || $session.catchAllCounter > 3
go!: /Switch
random:
a: Извините, я не расслышала. Повторите, пожалуйста.
a: Не совсем поняла. Можете повторить, пожалуйста?
a: Повторите, пожалуйста. Вас плохо слышно.
state: CatchAll
event!: noMatch
scriptEs6:
$temp.language = (await $caila.detectLanguage([$parseTree.text]))[0]; // Определяем язык запроса.
$session.catchAllCounter = $session.catchAllCounter + 1 || 1; // Увеличиваем счетчик нераспознанных реплик.
# Если клиент иностранец — сразу переводим на оператора.
# Если нет — переводим на оператора по превышении счетчика нераспознанных реплик.
if: $temp.language !== "ru" || $session.catchAllCounter > 3
go!: /Switch
random:
a: Извините, я не расслышала. Повторите, пожалуйста.
a: Не совсем поняла. Можете повторить, пожалуйста?
a: Повторите, пожалуйста. Вас плохо слышно.