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