← Все инструкции

РУКОВОДСТВО · ОБНОВЛЕНО 2026-10-19

Нормализация Unicode перед поиском и RAG

Практические правила подготовки текста: меньше случайных различий без незаметного изменения смысла документа.

Для RAG храните исходный текст отдельно от поискового представления и применяйте одну согласованную нормализацию к индексируемым данным и запросам. Внешне похожие строки могут содержать разные последовательности Unicode, поэтому обычное сравнение или поиск по ключу иногда не находят ожидаемый фрагмент. Однако нормализация не исправляет все опечатки и не делает латиницу кириллицей. Прежде чем массово преобразовывать корпус, проверьте выбранное правило на названиях, артикулах, формулах и текстах с ударениями.

1. Найдите реальную причину пропуска

Возьмите несколько запросов, которые не находят известный документ, и сравните кодовые точки подозрительных символов. Проверьте пробелы, переносы из PDF, комбинируемые знаки и смешение алфавитов. Не начинайте с замены всех похожих букв: у иностранного наименования латинская буква может быть правильной. Зафиксируйте исходный запрос и ожидаемый фрагмент, чтобы после изменения проверить именно устранение ошибки, а не случайный рост числа результатов.

2. Выберите правило преобразования

Unicode определяет канонические и совместимые формы нормализации. NFC собирает канонически эквивалентное представление там, где это предусмотрено стандартом; NFKC дополнительно учитывает совместимость и может стирать значимые различия оформления. Выбор зависит от задачи. Для технического справочника, каталога товаров и разговорного поиска правила могут различаться. Отдельно решите вопрос регистра, буквы ё, пунктуации и пробелов: это самостоятельные преобразования, которые нельзя автоматически приписывать NFC.

3. Сохраните связь с оригиналом

Нормализованный текст может отличаться по длине и позициям символов. Если интерфейс подсвечивает цитату в исходном документе, одних смещений в преобразованной строке недостаточно. Сохраняйте идентификатор документа, страницу, исходный фрагмент и способ сопоставления. Для юридически значимого отображения выводите оригинал, а поисковую версию используйте как вспомогательный слой. Проверяйте, что найденное совпадение действительно относится к той редакции файла, которую пользователь имеет право открыть.

4. Переиндексируйте с проверкой

Присвойте правилам подготовки текста версию и соберите небольшой новый индекс рядом с существующим. Сравните выдачу на контрольных запросах: русское слово с ударением, смешанный артикул, математическая запись и название на двух языках. Считайте не только найденные документы, но и ложные совпадения. Переключайте чтение на новый индекс после проверки, сохраняя способ отката. Изменение только запроса при старой обработке документов может создать новые расхождения вместо устранения старых.

Частые вопросы

Исправляет ли NFC русскую а вместо латинской a?

Нет. Это разные символы. Смешение алфавитов и подозрительные идентификаторы проверяются отдельно с учётом контекста.

Можно ли удалять все невидимые символы?

Нет универсального безопасного правила. Сначала выясните происхождение символа и его роль в языке или формате, затем задайте контролируемую обработку.

Заменяет ли нормализация embeddings?

Нет. Она готовит текст, а embeddings представляют его для поиска. Полезность конкретного преобразования нужно проверять на вашей выдаче.

Нужно ли менять оригинальные файлы?

Обычно достаточно производного поискового представления. Сохраняйте оригинал и версию преобразований, чтобы объяснить найденное совпадение и восстановить индекс.

Источники

Калькулятор стоимости →