Spaces:
Runtime error
Runtime error
| # Тестирование чанкинга и сборки документов | |
| Скрипт `test_chunking.py` позволяет тестировать различные стратегии чанкинга документов и их последующую сборку. | |
| ## Возможности | |
| 1. **Разбивка документов** - применение различных стратегий чанкинга к документам | |
| 2. **Сохранение результатов** - сохранение чанков и метаданных в CSV | |
| 3. **Сборка документов** - загрузка чанков из CSV и сборка документа с помощью InjectionBuilder | |
| 4. **Фильтрация чанков** - возможность фильтровать чанки по индексу или ключевым словам | |
| ## Режимы работы | |
| Скрипт поддерживает три режима работы: | |
| 1. **chunk** - только разбивка документа на чанки и сохранение в CSV | |
| 2. **build** - загрузка чанков из CSV и сборка документа | |
| 3. **full** - разбивка документа, сохранение в CSV и последующая сборка | |
| ## Примеры использования | |
| ### Разбивка документа на чанки (стратегия fixed_size) | |
| ```bash | |
| python scripts/test_chunking.py --mode chunk --input test_input/test.docx --strategy fixed_size --words 50 --overlap 25 | |
| ``` | |
| ### Разбивка документа на чанки (стратегия sentence) | |
| ```bash | |
| python scripts/test_chunking.py --mode chunk --input test_input/test.docx --strategy sentence | |
| ``` | |
| ### Загрузка чанков из CSV и сборка документа (все чанки) | |
| ```bash | |
| python scripts/test_chunking.py --mode build --csv test_output/test_fixed_size_w50_o25.csv | |
| ``` | |
| ### Загрузка чанков из CSV и сборка документа (с фильтрацией по индексу) | |
| ```bash | |
| python scripts/test_chunking.py --mode build --csv test_output/test_fixed_size_w50_o25.csv --filter index --filter-value "0,2,4" | |
| ``` | |
| ### Загрузка чанков из CSV и сборка документа (с фильтрацией по ключевому слову) | |
| ```bash | |
| python scripts/test_chunking.py --mode build --csv test_output/test_fixed_size_w50_o25.csv --filter keyword --filter-value "важно" | |
| ``` | |
| ### Полный цикл: разбивка, сохранение и сборка | |
| ```bash | |
| 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` будут созданы следующие файлы: | |
| 1. **test_{strategy}_....csv** - CSV файл с сущностями (документ, чанки, связи) | |
| 2. **rebuilt_document_{filter}_{filter_value}.txt** - собранный текст документа (при использовании режимов build или full) | |
| ## Примечания | |
| - Для различных стратегий чанкинга доступны разные параметры | |
| - При сборке документа можно использовать фильтрацию чанков по индексу или ключевому слову | |
| - Собранный документ будет отличаться от исходного, если использовалась фильтрация чанков | |
| ## Требования | |
| - Python 3.8+ | |
| - pandas | |
| - ntr_fileparser | |
| - ntr_text_fragmentation |