Spaces:
Sleeping
Sleeping
File size: 5,440 Bytes
86c402d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# Тестирование чанкинга и сборки документов
Скрипт `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 |