Распознавание сущностей | Слот Synonym
Слот Synonym позволяет совершать поиск по таблице с данными — Словарю — и сохранять найденную информацию в контекстную переменную.
При выражении намерения естественным языком Собеседник может использовать в Реплике различные Сущности. К примеру, в реплике “Как добраться в Питер на поезде” присутствует Сущность “город” (Питер) и “транспорт” (поезд). Сущности могут быть выражены разными словами-синонимами. К примеру, “Питер” можно назвать “Санкт-Петербургом”, или “северной столицей”, а “поезд” — “электричкой” или “жд”. В некоторых сценариях требуется выделять значения Сущностей и записывать их в Контекстные переменные чата для последующего использования в Сценарии. Для выделения Сущностей используется Слот Synonym в сочетании с функционалом Словарей.
Примеры:
- 1.Необходимо определить полное официальное название города для передачи его во внешнюю систему. Для этого производится поиск в Реплике названия города и далее в Сценарии используется название соответствующей ему Сущности.
- 2.Необходимо разделить Сценарий после определения Интента в зависимости от содержащейся в Реплике Сущности. Интент: “Как найти <Сущность>?”. Набор Сущностей: “кабинет начальника”, “гардеробная”, “переговорная”, “кафетерий”, “кабинет врача”, “кухня”, “туалет”. С помощью слота Synonym производится поиск Сущности в Реплике, затем с помощью С лота Transition Rule производится деление Сценария на несколько Веток в зависимости от Сущности.

- 1.Name — название Слота, которое будет отображено в Дереве сценария. Максимальная длина значения поля — 40 символов.
- 1.При сохранении Слота проверяется значение в поле:
- 1.если поле пустое, выводится ошибка Please enter a slot name
- 2.если в поле более 40 символов, выводится ошибка Name must contain no more than 40 characters
- 2.Source — Проверяемая строка, в которой слот будет совершать поиск Синонимов из Словаря. Может быть выражена Контекстной переменной, указанной с помощью синтаксиса
{{ variable }}
, Выражением или Управляющей конструкцией.- 1.При сохранении Слота проверяется значение в поле:
- 1.если поле пустое, выводится ошибка Please enter a source variable
- 3.RESULT VARIABLE — имя Пользовательской контекстной переменной, в которую запишется найденная слотом информация. При прохождении слота система удалит Контекстную переменную с указанным названием, затем, если поиск по Словарю даст результат, Контекстная переменная будет создана заново. В противном случае данной Контекстной переменной не будет в Контексте Чата.
- 1.При сохранении Слота проверяется значение в поле:
- 1.если поле пустое, выводится ошибка Please enter a result variable
- 2.если имя переменной не соответствует требования к именам Пользовательских контекстных переменных, выводится ошибка Invalid name
- 4.VOCABULARY — Словарь из Ресурсов компании.
- 1.При сохранении Слота проверяется значение в поле:
- 1.если поле пустое, выводится ошибка Please choose a vocabulary
- 2.Пар RESULT VARIABLE + VOCABULARY может быть несколько. Для добавления новой пары необходимо кликнуть по кнопке Add search.
- 3.При добавлении каждой дополнительной пары RESULT VARIABLE + VOCABULARY в поле VOCABULARY в выпадающем списке отображаются те Словари Компании, которые не использованы в других полях VOCABULARY этого Слота. Таким образом, пар RESULT VARIABLE + VOCABULARY в одном Слоте Synonym может быть максимум 20 (это максимальное количество Словарей в Компании).
В Слоте Synonym допустимо использование Выражений и Управляющих конструкций в поле Source. Подробнее: Переход на новый синтаксис
- 1.Слот принимает Проверяемую строку, указанную в поле Source;
- 2.Приводит содержимое Проверяемой строки к нижнему регистру;
- 3.Разбивает содержимое Проверяемой строки по словам;
- 4.Удаляет из Контекста Чата все Контекстные переменные, указанные в поле RESULT VARIABLE данного Слота;
- 5.Совершает поиск каждого слова из Проверяемой строки в Словаре, указанном в поле VOCABULARY;
- 6.В случае, если одно или несколько слов из Проверяемой строки совпадет/ут с Синонимом/ами из Словарz, в Контекстt Чата будет создана соответствующая Контекстная переменная, указанная в поле RESULT VARIABLE, в которую будет записан результат поиска:
- 1.Формат результата — JSON с информацией:
[{'synonym': 'найденный в переменной синоним', 'reference': 'первый синоним в строке', 'entity': 'название сущности', 'start': порядковый номер первого символа найденного в переменной синонима, 'end': порядковый номер последнего символа найденного в переменной синонима}]
- 2.В случае, если в Словаре найдено несколько совпадений (при наличии одинакового Синонима в разных Сущностях либо при наличии нескольких одинаковых Синонимов в одной Проверяемой строке), JSON-ов может быть несколько, пример:
[{'synonym': 'honda', 'reference': 'HONDA', 'entity': '42639f67-b170-11ea-b78c-0050568041d3', 'start': 0, 'end': 5}, {'synonym': 'honda', 'reference': 'HONDA', 'entity': '42639f67-b170-11ea-b78c-0050568041d3', 'start': 6, 'end': 11}]
- 7.Если в Слоте несколько пар RESULT VARIABLE - VOCABULARY, Слот проходит по каждой по порядку, повторяя описанное в пунктах 4-5.
Важно: регистр Синонимов в Словаре и Проверяемой строки не влияет на результат распознавания.