Spaces:
Sleeping
Sleeping
Универсальный парсер документов
Библиотека ntr_fileparser
предоставляет универсальный интерфейс для извлечения структурированных данных из документов различных форматов.
Возможности
- Извлечение текстовых блоков, таблиц, изображений и формул из документов
- Поддержка различных форматов файлов:
- XML (реализовано)
- DOCX (реализовано)
- PDF (в разработке)
- HTML (в разработке)
- Markdown (в разработке)
- Email (в разработке)
- DOC (в разработке)
- Единый интерфейс для работы со всеми форматами
- Расширяемая архитектура для добавления новых парсеров
Установка
pip install git+ssh://[email protected]:textai/parsers/parser.git
Использование
Базовый пример
from ntr_fileparser import UniversalParser
# Создание экземпляра парсера
parser = UniversalParser()
# Парсинг документа по пути к файлу
document = parser.parse_by_path("path/to/document.xml")
# Доступ к данным
print(f"Название документа: {document.name}")
print(f"Количество параграфов: {len(document.paragraphs)}")
print(f"Количество таблиц: {len(document.tables)}")
Работа с содержимым файла
from ntr_fileparser import UniversalParser, FileType
# Создание экземпляра парсера
parser = UniversalParser()
# Открытие файла
with open("path/to/document.xml", "rb") as f:
# Парсинг содержимого файла с указанием типа файла
# Тип файла можно указать как объект FileType или как строку расширения
document = parser.parse(f, FileType.XML)
# Или
document = parser.parse(f, ".xml")
if document:
# Работа с документом
for paragraph in document.paragraphs:
print(paragraph.text)
Применение функций к документу
from ntr_fileparser import UniversalParser
# Создание экземпляра парсера
parser = UniversalParser()
# Парсинг документа
document = parser.parse_by_path("path/to/document.xml")
# Применение функции ко всем текстовым элементам документа
document.apply(lambda text: text.upper())
Архитектура
Система построена на основе следующих компонентов:
- UniversalParser - основной класс, предоставляющий единый интерфейс для работы со всеми форматами документов.
- AbstractParser - абстрактный класс парсера, определяющий интерфейс для всех конкретных парсеров.
- ParserFactory - фабрика парсеров, отвечающая за выбор подходящего парсера для конкретного документа.
- FileType - перечисление поддерживаемых типов файлов.
- Специализированные парсеры - классы для работы с конкретными форматами документов (XMLParser, PDFParser и т.д.).
- Структуры данных - классы для представления структуры документа (ParsedDocument, ParsedTextBlock, ParsedTable и т.д.).
Диаграмма архитектуры
Требования
- Python 3.11+
- Зависимости автоматически устанавливаются при установке библиотеки
Разработка
Для разработки и тестирования:
git clone [email protected]:textai/parsers/parser.git
cd parser
pip install -e .