muryshev's picture
init
57cf043
|
raw
history blame
5.27 kB
# 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`
- Векторизация выполняется после создания датасета
- Аббревиатуры применяются как к текстовому, так и к табличному контенту
- Иерархическая структура извлекается отдельно для текста и таблиц