# Pipeline Module > ВАЖНО!!! README.md сгенерировано автоматически, поэтому может содержать неточности. Модуль реализует пайплайн для обработки XML документов и создания структурированного датасета. Пайплайн включает несколько последовательных этапов обработки, от парсинга XML до создания векторизованного датасета. ## Основные этапы обработки ### 1. Парсинг XML файлов - Чтение XML файлов из указанной директории - Извлечение текстового и табличного контента - Сохранение метаданных документов ### 2. Обработка аббревиатур - Извлечение аббревиатур из текста документов - Объединение с предварительно подготовленными аббревиатурами - Применение аббревиатур к текстовому и табличному контенту - Сохранение списка обнаруженных аббревиатур ### 3. Извлечение иерархической структуры - Парсинг структуры текстового контента - Парсинг структуры табличного контента - Создание иерархического представления документов ### 4. Создание датасета - Формирование структурированного датасета - Векторизация текстов - Сохранение результатов ## Использование ```python from components.embedding_extraction import EmbeddingExtractor from components.parser.pipeline import DatasetCreationPipeline from components.parser.abbreviations.abbreviation import Abbreviation # Инициализация пайплайна pipeline = DatasetCreationPipeline( dataset_id="my_dataset", vectorizer=EmbeddingExtractor(), prepared_abbreviations=[], # список предварительно подготовленных аббревиатур xml_ids=["doc1", "doc2"], # список идентификаторов XML файлов save_intermediate_files=True # сохранять ли промежуточные файлы ) # Запуск пайплайна dataset = pipeline.run() ``` ## Структура выходных данных ### Основные файлы - `dataset.csv` - финальный датасет с векторизованными текстами - `abbreviations.csv` - извлеченные аббревиатуры - `xml_info.csv` - метаданные XML документов ### Промежуточные файлы (опционально) - `txt/*.txt` - извлеченный текстовый контент - `txt_abbr/*.txt` - текстовый контент после применения аббревиатур - `jsons/*.json` - иерархическая структура документов ## Параметры конфигурации ### DatasetCreationPipeline - `dataset_id: str` - идентификатор создаваемого датасета - `vectorizer: EmbeddingExtractor` - векторизатор для создания эмбеддингов - `prepared_abbreviations: list[Abbreviation]` - предварительно подготовленные аббревиатуры - `xml_ids: list[str]` - список идентификаторов XML файлов для обработки - `save_intermediate_files: bool` - сохранять ли промежуточные файлы ## Зависимости ### Внутренние компоненты - `components.embedding_extraction.EmbeddingExtractor` - `components.parser.abbreviations.AbbreviationExtractor` - `components.parser.features.HierarchyParser` - `components.parser.features.DatasetCreator` - `components.parser.xml.XMLParser` ### Внешние библиотеки - pandas - numpy - pathlib ## Структура директорий ``` data/ └── regulation_datasets/ └── {dataset_id}/ ├── abbreviations.csv ├── xml_info.csv ├── dataset.csv ├── embeddings.pt ├── txt/ # (опционально) ├── txt_abbr/ # (опционально) └── jsons/ # (опционально) ``` ## Примечания - Все промежуточные файлы сохраняются только если установлен флаг `save_intermediate_files=True` - Векторизация выполняется после создания датасета - Аббревиатуры применяются как к текстовому, так и к табличному контенту - Иерархическая структура извлекается отдельно для текста и таблиц