muryshev's picture
init
57cf043
|
raw
history blame
5.27 kB

Pipeline Module

ВАЖНО!!! README.md сгенерировано автоматически, поэтому может содержать неточности.

Модуль реализует пайплайн для обработки XML документов и создания структурированного датасета. Пайплайн включает несколько последовательных этапов обработки, от парсинга XML до создания векторизованного датасета.

Основные этапы обработки

1. Парсинг XML файлов

  • Чтение XML файлов из указанной директории
  • Извлечение текстового и табличного контента
  • Сохранение метаданных документов

2. Обработка аббревиатур

  • Извлечение аббревиатур из текста документов
  • Объединение с предварительно подготовленными аббревиатурами
  • Применение аббревиатур к текстовому и табличному контенту
  • Сохранение списка обнаруженных аббревиатур

3. Извлечение иерархической структуры

  • Парсинг структуры текстового контента
  • Парсинг структуры табличного контента
  • Создание иерархического представления документов

4. Создание датасета

  • Формирование структурированного датасета
  • Векторизация текстов
  • Сохранение результатов

Использование

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
  • Векторизация выполняется после создания датасета
  • Аббревиатуры применяются как к текстовому, так и к табличному контенту
  • Иерархическая структура извлекается отдельно для текста и таблиц