Spaces:
Sleeping
Sleeping
# Тестирование чанкинга и сборки документов | |
Скрипт `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 |