Classifier — это обученная модель, которая предсказывает, к какому из известных классов относится текстовый запрос пользователя.
Классификация может быть бинарной или многоклассовой.
Использование моделей классификации упрощает процесс прохождения бизнес-сценария в смартапе и делает его более гибким.
Пример. В сценарии есть слот «тип банковской карты». Он должен быть заполнен одним из значений: «виртуальная карта», «золотая», «платиновая», «классическая», «моментум» и др.
Предобученная модель классификации (нейросетевая модель на основе правил или любая другая) поможет определить, к какому конкретно классу, т. е. типу банковской карты, можно отнести ответ пользователя на вопрос про тип карты. Эту модель классификации можно вызвать в сущности для слот-филлинга (Filler с типом classifier), и слот будет заполнен наиболее вероятным вариантом ответа, который выдаст модель.
Где применяются классификаторы
Классификаторы применяются для работы сущностей Filler и Requirement с типом classifier
.
Пример использования классификатора для слот-филлинга можно увидеть в форме сценария hello.
Конфигурация классификатора и хранение моделей
Все классификаторы должны быть описаны в файле classifiers.json, который находится в директории static/references/classifiers.
Вызывать классификатор нужно по его названию с помощью external classifier
.
Пример конфигурации:
{
"binary_classifier_name": {
"type": "scikit",
"threshold": 0.6,
"path": "pretrained_binary_classifier_model.pkl",
"intents": ["да", "нет"]
},
"hello_scenario_classifier": {
"type": "external",
"timeout": 0.2,
"classifier": "binary_classifier_name"
}
}