Лого на 91. НЕГ „Проф. Константин Гълъбов“

Избираем модул · Урок 8

Векторно представяне на записи

Как ред от базата става вектор: кой текст да включим, как да се справим с дългите описания и защо изборът на модел за вектори е решение за години.

Не текстът, а записът

В 11. клас правехме вектор на изречение. Тук обектът е ред от базата: стока, документ, обява, съобщение от клиент. Той има и текстови, и числови, и категорийни полета — а моделът за вектори приема само текст.

ред от таблицатаid: 412заглавие, описание,категория, ценатекст за влагане„Категория: Техника.Безжични слушалки…“вектор[0.12, −0.44, …]Най-важното решение е средната стъпка: какво влиза в текста.
Превръщането на реда в текст е решение на инженера и определя качеството на цялото търсене.

Какво да включим в текста

  • Задължително — полетата, по които хората ще търсят: заглавие, описание, категория.
  • Полезно — кратки етикети, които добавят контекст: марка, отдел, вид документ.
  • Вредно — идентификатори, дълги кодове, дати в суров вид. Те не носят смисъл и разреждат вектора.
  • Отделно — числата (цена, наличност) остават колони в базата и се използват за филтриране, не за близост.

Правилото за числата

Никога не разчитайте на векторите за числови условия. „под 200 лв.“ и „след 2023 г.“ се решават със WHERE в заявката, а смисловата част — с близост. Комбинацията от двете е урок 11.

Дългите текстове

Ограничението

Моделите за вектори имат таван на входа — често няколкостотин токена. Всичко над него мълчаливо се отрязва. Документ от 10 страници, подаден наведнъж, се превръща във вектор на първата си страница.

Решението

  1. Режем на парчета по естествени граници (както в урок 26 от 11. клас).
  2. Всяко парче получава свой вектор и свой ред в базата.
  3. Пазим връзка към документа-родител, за да се цитира правилно.
  4. При търсене намираме парчета, а показваме документи — с групиране по родител.

Заглавието във всяко парче

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

Изборът на модел за вектори

  • Многоезичен ли е — задължително при български текст.
  • Колко измерения има векторът: повече измерения означава повече място и по-бавно търсене.
  • Работи ли локално или изисква външна услуга (цена и лични данни).
  • Каква е максималната дължина на входа.

Смяната на модела е скъпа

Векторите от два различни модела не са съвместими. Смяната изисква повторно пресмятане на цялата колекция. Затова изборът се прави съзнателно и се записва — заедно с версията.

Кога да преизчисляваме

Векторът остарява, когато записът се промени. Затова в базата се пази и момент на изчисляване. При обновяване на описание векторът се преизчислява — иначе търсенето връща стари резултати за нов текст.