Разделение текста (Split Text)
Описание
Компонент Split Text выполняет функцию сегментации данных на отдельные фрагменты, именуемые чанками, на основе заданных параметров, включая размер фрагмента и тип используемого разделителя.
Данный инструмент находит широкое применение в процессах подготовки текстовой информации перед этапами токенизации и последующей индексации в векторных базах данных.

Компонент поддерживает обработку входящих данных форматов Message, Data или DataFrame, обеспечивая последующую выдачу результата в виде набора Chunks или таблицы DataFrame.
Особенности выходных форматов
- Формат Chunks
Данный выход формирует список объектов типа Data, каждый из которых представляет собой изолированный фрагмент (чанк) исходного текста. Этот вариант оптимал
ен для прямой передачи данных в компоненты генерации эмбеддингов. - Формат DataFrame
В этом режиме результат представляется в виде структурированной таблицы. Полученный DataFrame включает специализированные столбцыtextдля самого фрагмента иmetadataдля хранения сопутствующей технической информации, такой как порядковый номер фрагмента или идентификатор источника.
Параметры компонента
Параметры компонента Split Text устанавливают алгоритм сегментации текста на отдельные блоки. Ключевую роль в этом процессе играют настройки chunk_size (размер фрагмента), chunk_overlap (перекрытие фрагментов) и separator (разделитель).
Для проверки корректности процесса сегментации необходимо выполнить следующие действия:
- Добавьте в рабочую область компонент Text Input или Read File, содержащий пример данных для обработки.
- Нажмите кнопку
Run component (Запустить компонент) непосредственно на компоненте Split Text. - Нажмите на иконку
Inspect output (Просмотр вывода), чтобы изучить сформированный список фрагментов и их метаданные. - Обратите внимание на столбец
text, который содержит текстовые чанки, созданные в строгом соответствии с заданными настройками. - В ситуации, когда текст разделен не так, как ожидалось, следует изменить параметры компонента, выполнить повторный запуск и проверить обновленный результат.
Некоторые параметры по умолчанию скрыты в визуальном редакторе. Вы можете изменить все параметры через меню
Controls (Управление) в заголовке компонента.
| Имя (Name) | Отображаемое имя | Информация |
|---|---|---|
data_inputs | Input | Входной параметр. Данные для разделения. Вход должен быть в формате Message, Data или DataFrame. |
chunk_overlap | Chunk Overlap | Входной параметр. Количество символов для перекрытия между фрагментами (чанками). Это помогает сохранить контекст. При обнаружении разделителя перекрытие применяется так, чтобы следующий фрагмент содержал последние *n* символов предыдущего. По умолчанию: 200. |
chunk_size | Chunk Size | Входной параметр. Целевая длина каждого фрагмента после разделения. Данные сначала делятся по разделителю, затем фрагменты меньше chunk_size объединяются до этого лимита. Если исходное разделение создает фрагмент больше chunk_size, он не будет разбит или объединен и выводится «как есть». По умолчанию: 1000. |
separator | Separator | Входной параметр. Строка-разделитель: например, \n для новых строк, \n\n для абзацев или } для объектов JSON. Можно ввести строку напрямую или передать из другого компонента как Message. |
text_key | Text Key | Входной параметр. Ключ, используемый для извлечения текстового столбца из входных данных перед разделением. По умолчанию: text. |
keep_separator | Keep Separator | Входной параметр. Определяет, как обрабатывать разделители в чанках: False (удалить), True (сохранить), Start (в начало чанка) или End (в конец чанка). По умолчанию: False. |
Ошибки токенизации и размер фрагмента
При использовании некоторых моделей эмбеддингов (например, через локальные модели или специфические API) может потребоваться уменьшить Chunk Size до 500 или менее.
Если вы столкнулись с ошибками переполнения контекста:
- Уменьшите значение Chunk Size.
- Увеличьте Chunk Overlap, если после уменьшения размера фрагментов модель стала хуже понимать смысл текста.
- Используйте Separator
\n\n(двойной перенос строки), чтобы разбиение происходило по смысловым абзацам.