Spaces:
Sleeping
Sleeping
Тестирование чанкинга и сборки документов
Скрипт test_chunking.py
позволяет тестировать различные стратегии чанкинга документов и их последующую сборку.
Возможности
- Разбивка документов - применение различных стратегий чанкинга к документам
- Сохранение результатов - сохранение чанков и метаданных в CSV
- Сборка документов - загрузка чанков из CSV и сборка документа с помощью InjectionBuilder
- Фильтрация чанков - возможность фильтровать чанки по индексу или ключевым словам
Режимы работы
Скрипт поддерживает три режима работы:
- chunk - только разбивка документа на чанки и сохранение в CSV
- build - загрузка чанков из CSV и сборка документа
- full - разбивка документа, сохранение в CSV и последующая сборка
Примеры использования
Разбивка документа на чанки (стратегия fixed_size)
python scripts/test_chunking.py --mode chunk --input test_input/test.docx --strategy fixed_size --words 50 --overlap 25
Разбивка документа на чанки (стратегия sentence)
python scripts/test_chunking.py --mode chunk --input test_input/test.docx --strategy sentence
Загрузка чанков из CSV и сборка документа (все чанки)
python scripts/test_chunking.py --mode build --csv test_output/test_fixed_size_w50_o25.csv
Загрузка чанков из CSV и сборка документа (с фильтрацией по индексу)
python scripts/test_chunking.py --mode build --csv test_output/test_fixed_size_w50_o25.csv --filter index --filter-value "0,2,4"
Загрузка чанков из CSV и сборка документа (с фильтрацией по ключевому слову)
python scripts/test_chunking.py --mode build --csv test_output/test_fixed_size_w50_o25.csv --filter keyword --filter-value "важно"
Полный цикл: разбивка, сохранение и сборка
python scripts/test_chunking.py --mode full --input test_input/test.docx --strategy fixed_size --words 50 --overlap 25
Параметры командной строки
Основные параметры
Параметр | Описание | Значения по умолчанию |
---|---|---|
--mode |
Режим работы | chunk |
--input |
Путь к входному файлу | test_input/test.docx |
--csv |
Путь к CSV файлу с сущностями | None |
--output-dir |
Директория для выходных файлов | test_output |
Параметры стратегии чанкинга
Параметр | Описание | Значения по умолчанию |
---|---|---|
--strategy |
Стратегия чанкинга | fixed_size |
--words |
Количество слов в чанке (для fixed_size) | 50 |
--overlap |
Перекрытие в словах (для fixed_size) | 25 |
--debug |
Режим отладки (для numbered_items) | False |
Параметры фильтрации
Параметр | Описание | Значения по умолчанию |
---|---|---|
--filter |
Тип фильтрации чанков | none |
--filter-value |
Значение для фильтрации | None |
Подготовка тестовых данных
Для тестирования скрипта вам понадобится документ в формате docx, txt, pdf или другом поддерживаемом формате. Поместите тестовый документ в папку test_input
.
Результаты работы
После выполнения скрипта в папке test_output
будут созданы следующие файлы:
- test_{strategy}_....csv - CSV файл с сущностями (документ, чанки, связи)
- rebuilt_document_{filter}_{filter_value}.txt - собранный текст документа (при использовании режимов build или full)
Примечания
- Для различных стратегий чанкинга доступны разные параметры
- При сборке документа можно использовать фильтрацию чанков по индексу или ключевому слову
- Собранный документ будет отличаться от исходного, если использовалась фильтрация чанков
Требования
- Python 3.8+
- pandas
- ntr_fileparser
- ntr_text_fragmentation