Разбиение документов на фрагменты и создание векторных представлений
Подготовьте доступную для поиска базу знаний
«Разбиение документов на фрагменты и создание векторных представлений» — бесплатный урок NLP Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения NLP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс NLP Academy содержит 4 уроков всего.
Документы слишком велики для полнотекстового поиска
В длинном PDF одновременно раскрывается множество тем. Чтобы выполнять точный поиск, сначала разделите его на небольшие части, называемые фрагментами.
Каким должен быть хороший фрагмент
Хороший фрагмент содержит одну связанную мысль: например, один или два абзаца. В слишком большом фрагменте ответ теряется, а слишком маленький не сохраняет окружающий контекст.
Разбиение по размеру
Самый простой способ — разрезать текст через фиксированное число символов или токенов. Это быстро, но предложение может оказаться разделённым пополам.
chunks = [text[i:i+500] for i in range(0, len(text), 500)]Перекрывающиеся фрагменты
Чтобы не разделять одну мысль, сделайте так, чтобы фрагменты имели перекрытие. Повторение последних строк помогает сохранить контекст на границах фрагментов.
Разбиение по структуре
Более продвинутые средства разбиения сначала разделяют текст по абзацам или заголовкам. Сохранение структуры помогает каждому фрагменту раскрывать одну ясную тему.
От текста к векторам
Для поиска нужны числа, а не слова. Векторное представление преобразует каждый фрагмент в плотный вектор, отражающий его смысл.
Смысл выражается расстоянием
Векторные представления размещают похожие тексты рядом. Два фрагмента об одной и той же идее оказываются рядом друг с другом в векторном пространстве.
Вызов модели векторных представлений
Вы передаёте текст в модель векторных представлений и получаете список чисел с плавающей точкой. Одна и та же модель должна кодировать и фрагменты, и запросы.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2")Кодирование фрагментов
Пропустите каждый фрагмент через модель, чтобы построить его вектор. Для ускорения можно одним вызовом encode закодировать весь список сразу.
vectors = model.encode(chunks)Размерность векторов
У каждого вектора есть фиксированная длина — его размерность. Небольшая модель может выдавать 384 числа, а более крупные — 768 и больше.
print(vectors.shape) # (n_chunks, 384)Храните фрагмент и вектор вместе
Свяжите каждый вектор с исходным текстом и источником. Позже Вы будете выполнять поиск по вектору, но показывать удобный для чтения фрагмент.
Быстрая проверка
Подумайте, зачем мы добавляем перекрытие при разделении документов.
Итоги
Вы разделяете документы на фрагменты, при необходимости перекрывающиеся, а затем преобразуете каждый в векторное представление. Храните текст и вектор вместе для последующего поиска. ✅
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Разбиение документов на фрагменты и создание векторных представлений» бесплатный?
Да — полный текст урока «Разбиение документов на фрагменты и создание векторных представлений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс NLP Academy, подпишись на CoddyKit PRO. Курс NLP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разбиение документов на фрагменты и создание векторных представлений»?
Подготовьте доступную для поиска базу знаний Ты практикуешь NLP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать NLP Academy?
Предыдущий опыт не требуется. NLP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Разбиение документов на фрагменты и создание векторных представлений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке NLP Academy?
Да. Каждый урок NLP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем LLM нужен поиск
- Разбиение документов на фрагменты и создание векторных представлений
- Векторный поиск с векторным хранилищем
- Встраивание поиска в запрос