Herramientas de preprocesamiento de código abierto para datos no estructurados
La biblioteca unstructured proporciona componentes de código abierto para imágenes de ingerencia y preprocesamiento y documentos de texto, como PDF, HTML, documentos de palabras y muchos más. Los casos de uso de unstructured giran en torno a la racionalización y optimización del flujo de trabajo de procesamiento de datos para LLM. Las funciones y conectores modulares unstructured forman un sistema cohesivo que simplifica la ingestión de datos y el preprocesamiento, lo que lo hace adaptable a diferentes plataformas y eficiente para transformar los datos no estructurados en salidas estructuradas.
¿Busca un mejor rendimiento de preprocesamiento y menos configuración? ¡Mira nuestra nueva API sin servidor! La API sin servidor no estructurada es nuestra API más desempeñada hasta el momento, ofreciendo una solución más receptiva de grado de producción para apoyar mejor a su negocio y necesidades de LLM. Dirígete a nuestra página de registro para comenzar de forma gratuita.
Hay varias formas de usar la biblioteca unstructured :
conda en el sistema Windows, consulte la documentación Las siguientes instrucciones están destinadas a ayudarlo a ponerse en funcionamiento usando Docker para interactuar con unstructured . Vea aquí si aún no tiene Docker instalado en su máquina.
Nota: Creamos imágenes multiplataforma para admitir tanto el hardware X86_64 y Apple Silicon. docker pull debe descargar la imagen correspondiente para su arquitectura, pero puede especificar con --platform (por ejemplo --platform linux/amd64 ) si es necesario.
Construimos imágenes de Docker para todos los empujes a main . Etiquetamos cada imagen con el hash de confirmación corto correspondiente (por ejemplo, fbc7a69 ) y la versión de la aplicación (por ejemplo, 0.5.5-dev1 ). También etiquetamos la imagen más reciente con latest . Para aprovechar esto, docker pull de nuestro repositorio de imágenes.
docker pull downloads.unstructured.io/unstructured-io/unstructured:latestUna vez sacado, puede crear un contenedor a partir de esta imagen y un caparazón.
# 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 También puede construir su propia imagen Docker. Tenga en cuenta que la imagen base es wolfi-base , que se actualiza regularmente. Si está construyendo la imagen localmente, es posible que docker-build pueda fallar debido a los cambios aguas arriba en wolfi-base .
Si solo planea analizar un tipo de datos, puede acelerar la creación de la imagen comentando algunos de los paquetes/requisitos necesarios para otros tipos de datos. Consulte Dockerfile para saber qué líneas son necesarias para su caso de uso.
make docker-build
# this will drop you into a bash shell where the Docker image is running
make docker-start-bashUna vez en el contenedor en ejecución, puede probar las cosas directamente en el modo interactivo de 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 " ) Use las siguientes instrucciones para poner en funcionamiento con unstructured y probar su instalación.
Instale el SDK de Python para admitir todos los tipos de documentos con pip install "unstructured[all-docs]"
pip install unstructuredpip install "unstructured[docx,pptx]"Instale las siguientes dependencias del sistema si aún no están disponibles en su sistema. Dependiendo de los tipos de documentos que analice, es posible que no necesite todo esto.
libmagic-dev (detección del tipo de archivo)poppler-utils (imágenes y PDF)tesseract-ocr (Imágenes y PDFS, Instale tesseract-lang para soporte de lenguaje adicional)libreoffice (MS Office Docs)pandoc (EPUBS, RTFS y Open Office Docs). Tenga en cuenta que para manejar los archivos RTF, necesita la versión 2.14.2 o más nuevo. Ejecutar make install-pandoc o ./scripts/install-pandoc.sh instalará la versión correcta para usted.Para obtener sugerencias sobre cómo instalar en Windows y aprender sobre las dependencias para otras características, consulte la documentación de instalación aquí.
En este punto, debería poder ejecutar el siguiente código:
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 ])) Las siguientes instrucciones están destinadas a ayudarlo a ponerse en funcionamiento con unstructured localmente si planea contribuir al proyecto.
Se recomienda usar pyenv para administrar virtualEnv's
brew install pyenv-virtualenvpyenv install 3.10 Cree un VirtualEnv para trabajar y activarlo, por ejemplo, para uno llamado unstructured :
pyenv virtualenv 3.10 unstructured
pyenv activate unstructured
Ejecutar make install
Opcional:
make install-local-inference .tesseract . Consulte aquí para obtener instrucciones de instalación.tesseract y poppler . Los documentos PDF2Image tienen instrucciones sobre la instalación de poppler en varias plataformas. Además, si planea contribuir a unstructured , le proporcionamos un archivo de configuración pre-commit opcional para garantizar que su código coincida con los estándares de formato y pelusas utilizados en unstructured . Si prefiere no tener cambios en el código automático antes de cada confirmación, puede usar make check para ver si se deben aplicar cambios de pelucas o formatear y make tidy para aplicarlos.
Si usa el pre-commit Opcional, solo necesitará instalar los ganchos con pre-commit install ya que el paquete pre-commit se instala como parte de make install mencionada anteriormente. Finalmente, si decidió usar pre-commit también puede desinstalar los ganchos con pre-commit uninstall .
Además de desarrollarse en su sistema operativo local, también proporcionamos un ayudante para usar Docker que proporciona un entorno de desarrollo:
make docker-start-dev Esto inicia un contenedor Docker con su repositorio local montado a /mnt/local_unstructured . Esta imagen de Docker le permite desarrollarse sin preocuparse por la compatibilidad de su sistema operativo con el repositorio y sus dependencias.
Para una documentación más completa, visite https://docs.unstructived.io. También puede obtener más información sobre nuestros otros productos en la página de documentación, incluida nuestra API SaaS.
Aquí hay algunas páginas de la página de documentación de código abierto que son útiles para que los nuevos usuarios lo revisen:
unstructured Los siguientes ejemplos muestran cómo comenzar con la biblioteca unstructured . La forma más fácil de analizar un documento en no estructurado es usar la función partition . Si usa la función partition , unstructured detectará el tipo de archivo y lo enrollará a la función de partición específica de archivo apropiada. Si está utilizando la función partition , es posible que deba instalar dependencias adicionales por tipo de documento. Por ejemplo, para instalar dependencias DOCX, debe ejecutar pip install "unstructured[docx]" . Consulte nuestra guía de instalación para obtener más detalles.
from unstructured . partition . auto import partition
elements = partition ( "example-docs/layout-parser-paper.pdf" ) Ejecutar print("nn".join([str(el) for el in elements])) para obtener una representación de cadena de la salida, que parece:
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,
Consulte la sección Partitioning en nuestra documentación para obtener una lista completa de opciones e instrucciones sobre cómo usar funciones de partición específicas de archivos.
Consulte nuestra política de seguridad para obtener información sobre cómo informar vulnerabilidades de seguridad.
¿Encontró un error? Cree un nuevo problema de GitHub y use nuestra plantilla de informe de errores para describir el problema. Para ayudarnos a diagnosticar el problema, use el comando python scripts/collect_env.py para recopilar la información del entorno de su sistema e incluirla en su informe. Su ayuda nos ayuda a mejorar continuamente nuestro software, ¡gracias!
| Sección | Descripción |
|---|---|
| Sitio web de la empresa | No estructurado.io Información de productos y empresas |
| Documentación | Documentación completa de API |
| Procesamiento por lotes | Ingerir lotes de documentos a través de no estructurado |
Nos hemos asociado con Scarf (https://scarf.sh) para recopilar estadísticas de usuario anónimas para comprender qué características está utilizando nuestra comunidad y cómo priorizar la toma de decisiones del producto en el futuro. Para obtener más información sobre cómo recopilamos y usamos estos datos, lea nuestra Política de privacidad. Para optar por no participar en esta recopilación de datos, puede establecer la variable de entorno SCARF_NO_ANALYTICS=true antes de ejecutar cualquier comando unstructured .