Заявка успешно создана
Мы выпустили обновлённый модуль поиска по базам нормативов — теперь он работает не как формальный фильтр по словам, а как интеллектуальный помощник: разбирает запрос, понимает его смысл и возвращает нормы в порядке убывания релевантности. Под капотом — алгоритмы обработки естественного языка, которые исторически выросли из методов искусственного интеллекта: морфологический анализ, статистическое ранжирование и автоматическое исправление ошибок.
Что изменилось для пользователя
Забудьте о необходимости знать точный шифр расценки или её дословную формулировку. Напишите запрос так, как вы сформулировали бы задачу прорабу: «монтаж вентиляторов», «демонтаж кабеля», «покрытие полов площадью более 50 м²». Система сама поймёт, что искать, где искать и в каком порядке показать результаты.
Как устроен поиск
Понимает слова, а не их написание. Каждый запрос проходит морфологический анализ: система приводит слова к начальным формам и сравнивает их с начальными формами в базе. «Монтажу вентиляторов», «вентилятор монтаж» и «монтаж вентилятор» — для поиска это один и тот же запрос. Склонения, спряжения и окончания больше не имеют значения.
Мягко исправляет опечатки. Перед поиском запрос проверяется по словарю словоформ русского языка и по словарю самой базы. Опечатка — не приговор: система автоматически исправит её и найдёт нужные нормы. При этом корректные термины из базы трогать не будет — движок различает «неизвестное слово» и «слово из профессионального жаргона».
Учитывает, где именно вы ищете. Запрос «сетка в ресурсах» или «арматура в составе работ» направляет поиск в конкретную часть нормы. Система различает наименование, состав работ и ресурсы — и взвешивает совпадения в них по-разному: совпадение в наименовании важнее, чем в перечне материалов.
Понимает числа и границы. Запросы вида «более 3 м²», «до 100 мм», «диаметр 0.25 мм» распознаются как ограничения, а не как набор символов. Система отберёт нормы, чьи характеристики укладываются в заявленные рамки, и отсечёт те, что формально содержат нужные слова, но не подходят по параметрам.
Ищет и по коду. Если в запросе есть числовой фрагмент кода (например, «01-133»), включается отдельный кодовый путь — поиск норм по шифру, независимо от текстового совпадения.
Как формируется выдача
Ранжирование построено на адаптации алгоритма BM25F — классической модели статистической оценки релевантности, применяемой в поисковых системах. Для каждой нормы вычисляется счёт: насколько часто слова запроса встречаются в её полях, с учётом веса поля и длины документа. Редкие термины ценятся выше частотных — совпадение по уточняющему слову весит больше, чем по общеупотребительному.
Поверх статистики работает «понимание» предметной области:
Маркерные слова. Слова-маркеры видов работ — монтаж, демонтаж, ремонт, пусконаладка — участвуют в ранжировании, но не обязательны для попадания в выдачу. Запрос «монтаж вентиляторов» найдёт и норму «Вентилятор», а нормы с маркерным словом в наименовании получат приоритет.
Табличный буст. Если наименование таблицы целиком покрывает смысл запроса, нормы из неё дополнительно повышаются — это признак тематического попадания, а не случайного пересечения слов.
Скорость без компромиссов
Вся тяжёлая обработка языка — лемматизация, построение обратного индекса, кэш частей речи — выполняется на нашем сервере. Запросы выполняются за миллисекунды, а пользователь получает готовый результат практически мгновенно.