Боль: В последнем посте речь шла о маршрутизации сцены, но маршрутизация хороша настолько, насколько хороша классификация, на которой она основана. Одно только регулярное выражение покрывает примерно 60–70% реальных запросов, а разговорные фразы типа «спросите, сколько стоит XX-YY» остаются незамеченными....
Боль: В последнем посте речь шла о маршрутизации сцены, но маршрутизация хороша настолько, насколько хороша классификация, на которой она основана. Одно только регулярное выражение покрывает примерно 60–70% реальных запросов, а разговорные фразы типа «спросите, сколько стоит XX–YY» остаются незамеченными. Как вы их точно прокладываете?
Что вы узнаете:
Почему регулярное выражение имеет жесткий потолок: оно соответствует известным шаблонам, а не неизвестным фразам
Двухслойная классификация: точный слой задает пол, нечеткий слой поднимает потолок.
Семантический слой на практике: встраивания All-MiniLM-L6-v2 + поиск цветности
Как настроить порог (0,45 → 0,55) и почему проверка запаса предотвращает ошибочную маршрутизацию в крайнем случае
Почему запрос «переслать это письмо на Sunny» — запрос без ключевых слов — по-прежнему попадает в нужную сцену
1. Проблема: потолок регулярных выражений
Ранняя версия маршрутизации сцен оценивала намерения пользователя с помощью регулярных выражений:
импортировать повторно
QUOTING_PATTERN = r'sea.*фрахт|воздух.*фрахт|котировка|котировка|ставка'
защита regex_match(текст):
если re.search(QUOTING_PATTERN, текст):
вернуть «цитирование»
возврат Нет
Он обрабатывал распространенные цитируемые выражения: «Какова стоимость морского фрахта во Франкфурт?» попаданий, а также попаданий «Цитата DDP в CDG».
Но как только он поступил в производство, цифры сказали
