generic-chatbot-backend / lib /extractor /scripts /README_test_chunking.md
muryshev's picture
update
86c402d
|
raw
history blame
5.44 kB

Тестирование чанкинга и сборки документов

Скрипт test_chunking.py позволяет тестировать различные стратегии чанкинга документов и их последующую сборку.

Возможности

  1. Разбивка документов - применение различных стратегий чанкинга к документам
  2. Сохранение результатов - сохранение чанков и метаданных в CSV
  3. Сборка документов - загрузка чанков из CSV и сборка документа с помощью InjectionBuilder
  4. Фильтрация чанков - возможность фильтровать чанки по индексу или ключевым словам

Режимы работы

Скрипт поддерживает три режима работы:

  1. chunk - только разбивка документа на чанки и сохранение в CSV
  2. build - загрузка чанков из CSV и сборка документа
  3. 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 будут созданы следующие файлы:

  1. test_{strategy}_....csv - CSV файл с сущностями (документ, чанки, связи)
  2. rebuilt_document_{filter}_{filter_value}.txt - собранный текст документа (при использовании режимов build или full)

Примечания

  • Для различных стратегий чанкинга доступны разные параметры
  • При сборке документа можно использовать фильтрацию чанков по индексу или ключевому слову
  • Собранный документ будет отличаться от исходного, если использовалась фильтрация чанков

Требования

  • Python 3.8+
  • pandas
  • ntr_fileparser
  • ntr_text_fragmentation