Инструменты предварительной обработки с открытым исходным кодом для неструктурированных данных
unstructured библиотека предоставляет компоненты с открытым исходным кодом для проглатывания и предварительной обработки изображений и текстовых документов, таких как PDF, HTML, Word Docs и многие другие. Примеры использования unstructured вращения вокруг оптимизации и оптимизации рабочего процесса обработки данных для LLMS. unstructured модульные функции и разъемы образуют сплоченную систему, которая упрощает употребление данных и предварительную обработку, что делает ее адаптируемым к различным платформам и эффективным в преобразовании неструктурированных данных в структурированные выходы.
Ищете лучшую предварительную производительность и меньшую настройку? Проверьте наш новый API без сервера! Неструктурированный API без сервера является нашим самым результативным API, который обеспечивает более отзывчивое, производственное решение для лучшей поддержки вашего бизнеса и потребностей LLM. Отправляйтесь на нашу страницу записи, чтобы начать бесплатно.
Есть несколько способов использовать unstructured библиотеку:
conda в системе Windows, пожалуйста, обратитесь к документации Следующие инструкции предназначены для того, чтобы помочь вам встать и работать с помощью Docker для взаимодействия с unstructured . Смотрите здесь, если у вас еще нет Docker, установленного на вашей машине.
ПРИМЕЧАНИЕ. Мы создаем многоплатформенные изображения, чтобы поддержать оборудование как x86_64, так и кремния Apple. docker pull должен загрузить соответствующее изображение для вашей архитектуры, но вы можете указать с помощью --platform (например, --platform linux/amd64 ), если это необходимо.
Мы строим изображения Docker для всех толчков до main . Мы отмечаем каждое изображение соответствующим хэшем с коротким коммит (например, fbc7a69 ) и версией приложения (например, 0.5.5-dev1 ). Мы также отмечаем самое последнее изображение с latest . Чтобы использовать это, docker pull из нашего репозитория изображения.
docker pull downloads.unstructured.io/unstructured-io/unstructured:latestПосле того, как вы потянули, вы можете создать контейнер из этого изображения и оболочки.
# create the container
docker run -dt --name unstructured downloads.unstructured.io/unstructured-io/unstructured:latest
# this will drop you into a bash shell where the Docker image is running
docker exec -it unstructured bash Вы также можете построить свой собственный образ Docker. Обратите внимание, что базовым изображением является wolfi-base , которая регулярно обновляется. Если вы строите изображение на местном уровне, возможно, что docker-build может потерпеть неудачу из-за восходящих изменений в wolfi-base .
Если вы планируете анализ только один тип данных, вы можете ускорить создание изображения, комментируя некоторые пакеты/требования, необходимые для других типов данных. См. Dockerfile, чтобы узнать, какие линии необходимы для вашего варианта использования.
make docker-build
# this will drop you into a bash shell where the Docker image is running
make docker-start-bashОказавшись в работающем контейнере, вы можете попробовать что -то непосредственно в интерактивном режиме Python Interpreter.
# this will drop you into a python console so you can run the below partition functions
python3
>>> from unstructured.partition.pdf import partition_pdf
>>> elements = partition_pdf(filename= " example-docs/layout-parser-paper-fast.pdf " )
>>> from unstructured.partition.text import partition_text
>>> elements = partition_text(filename= " example-docs/fake-text.txt " ) Используйте следующие инструкции, чтобы встать и работать с unstructured и проверить вашу установку.
Установите Python SDK для поддержки всех типов документов с помощью pip install "unstructured[all-docs]"
pip install unstructuredpip install "unstructured[docx,pptx]"Установите следующие системы зависимости, если они еще не доступны в вашей системе. В зависимости от того, какие типы документов вы анализируете, вам может не понадобиться все это.
libmagic-dev (обнаружение FileType)poppler-utils (изображения и PDF)tesseract-ocr (изображения и PDFS, установите tesseract-lang для дополнительной языковой поддержки)libreoffice (MS Office Docs)pandoc (Epubs, RTF и открытые офисные документы). Обратите внимание, что для обработки RTF вам нужна версия 2.14.2 или новее. Запуск либо make install-pandoc , либо ./scripts/install-pandoc.sh установит правильную версию для вас.Для предложений о том, как установить на окнах и узнать о зависимостях для других функций, см. Документацию по установке здесь.
На этом этапе вы сможете запустить следующий код:
from unstructured . partition . auto import partition
elements = partition ( filename = "example-docs/eml/fake-email.eml" )
print ( " n n " . join ([ str ( el ) for el in elements ])) Следующие инструкции предназначены для того, чтобы помочь вам встать и работать с unstructured локальным, если вы планируете внести свой вклад в проект.
Использование pyenv для управления VirtualEnv рекомендуется, но не обязательно
brew install pyenv-virtualenvpyenv install 3.10 Создайте VirtualEnv для работы и активируйте его, например, для одного из названных unstructured :
pyenv virtualenv 3.10 unstructured
pyenv activate unstructured
Запустить make install
Необязательный:
make install-local-inference .tesseract . Смотрите здесь для инструкций по установке.tesseract и poppler . У Docs PDF2Image есть инструкции по установке poppler на различных платформах. Кроме того, если вы планируете внести свой вклад в unstructured , мы предоставляем вам дополнительный файл pre-commit конфигурации, чтобы убедиться, что ваш код соответствует стандартам форматирования и подворона, используемых в unstructured . Если вы предпочитаете не вносить изменения в код перед каждым коммитиром, вы можете использовать make check , чтобы увидеть, следует ли применяться какие-либо изменения в формировании или форматировании, и make tidy их применения.
При использовании дополнительной pre-commit вам просто нужно установить крючки с pre-commit install , так как пакет pre-commit установлен как часть make install упомянутой выше. Наконец, если вы решили использовать pre-commit вы также можете удалить крючки с pre-commit uninstall .
В дополнение к разработке в вашей местной ОС, мы также предоставляем помощнику для использования Docker, предоставляющего среду разработки:
make docker-start-dev Это запускает контейнер Docker с вашим локальным репо, установленным на /mnt/local_unstructured . Это изображение Docker позволяет вам развиваться, не беспокоясь о совместимости вашей ОС с репо и ее зависимостями.
Для получения более полной документации посетите https://docs.unstructured.io. Вы также можете узнать больше о других наших продуктах на странице документации, включая наш SaaS API.
Вот несколько страниц со страницы документации с открытым исходным кодом, которые полезны для просмотра новых пользователей:
unstructured пакета с открытым исходным кодом Следующие примеры показывают, как начать с unstructured библиотеки. Самый простой способ проанализировать документ в неструктурированном - использовать функцию partition . Если вы используете функцию partition , unstructured обнаружит тип файла и направляет его на соответствующую функцию разделения, специфичную для файлов. Если вы используете функцию partition , вам может потребоваться установить дополнительные зависимости от типа DOC. Например, для установки зависимостей DOCX вам необходимо запустить pip install "unstructured[docx]" . Смотрите наше руководство по установке для получения более подробной информации.
from unstructured . partition . auto import partition
elements = partition ( "example-docs/layout-parser-paper.pdf" ) Запустите print("nn".join([str(el) for el in elements])) чтобы получить строковое представление вывода, которое выглядит как:
LayoutParser : A Unified Toolkit for Deep Learning Based Document Image Analysis
Zejiang Shen 1 ( (cid:0) ), Ruochen Zhang 2 , Melissa Dell 3 , Benjamin Charles Germain Lee 4 , Jacob Carlson 3 , and
Weining Li 5
Abstract. Recent advances in document image analysis (DIA) have been primarily driven by the application of neural
networks. Ideally, research outcomes could be easily deployed in production and extended for further investigation.
However, various factors like loosely organized codebases and sophisticated model configurations complicate the easy
reuse of important innovations by a wide audience. Though there have been ongoing efforts to improve reusability and
simplify deep learning (DL) model development in disciplines like natural language processing and computer vision, none
of them are optimized for challenges in the domain of DIA. This represents a major gap in the existing toolkit, as DIA
is central to academic research across a wide range of disciplines in the social sciences and humanities. This paper
introduces LayoutParser, an open-source library for streamlining the usage of DL in DIA research and applications.
The core LayoutParser library comes with a set of simple and intuitive interfaces for applying and customizing DL models
for layout detection, character recognition, and many other document processing tasks. To promote extensibility,
LayoutParser also incorporates a community platform for sharing both pre-trained models and full document digitization
pipelines. We demonstrate that LayoutParser is helpful for both lightweight and large-scale digitization pipelines in
real-word use cases. The library is publicly available at https://layout-parser.github.io
Keywords: Document Image Analysis · Deep Learning · Layout Analysis · Character Recognition · Open Source library ·
Toolkit.
Introduction
Deep Learning(DL)-based approaches are the state-of-the-art for a wide range of document image analysis (DIA) tasks
including document image classification [11,
См. Раздел разделения в нашей документации для полного списка параметров и инструкций о том, как использовать функции разделения, специфичные для файлов.
Смотрите нашу политику безопасности для получения информации о том, как сообщать о уязвимости безопасности.
Столкнулся с ошибкой? Пожалуйста, создайте новую проблему GitHub и используйте наш шаблон отчета об ошибках, чтобы описать проблему. Чтобы помочь нам диагностировать эту проблему, используйте команду python scripts/collect_env.py чтобы собрать информацию о среде вашей системы и включить ее в свой отчет. Ваша помощь помогает нам постоянно улучшать наше программное обеспечение - спасибо!
| Раздел | Описание |
|---|---|
| Веб -сайт компании | Unctructuret.io продукта и информация о компании |
| Документация | Полная документация API |
| Партийная обработка | Проглатывание партий документов через неструктурированные |
Мы сотрудничали со Scarf (https://scarf.sh), чтобы собрать анонимную статистику пользователей, чтобы понять, какие функции использует наше сообщество и как определить приоритеты в принятии решений о продукте в будущем. Чтобы узнать больше о том, как мы собираем и используем эти данные, прочитайте нашу политику конфиденциальности. Чтобы отказаться от этого сбора данных, вы можете установить переменную среды SCARF_NO_ANALYTICS=true перед запуском любых unstructured команд.