Ferramentas de pré-processamento de código aberto para dados não estruturados
A biblioteca unstructured fornece componentes de código aberto para ingerir e pré-processamento de imagens e documentos de texto, como PDFs, HTML, Word Docs e muito mais. Os casos de uso de unstructured giram em torno da racionalização e otimização do fluxo de trabalho de processamento de dados para o LLMS. Funções e conectores modulares unstructured formam um sistema coesivo que simplifica a ingestão de dados e o pré-processamento, tornando-o adaptável a diferentes plataformas e eficiente na transformação de dados não estruturados em saídas estruturadas.
Procurando um melhor desempenho de pré-processamento e menos configuração? Confira nossa nova API sem servidor! A API sem servidor não estruturada ainda é a nossa API mais executada, oferecendo uma solução mais responsiva e de grau de produção para apoiar melhor suas necessidades de negócios e LLM. Vá para a página de inscrição para começar gratuitamente.
Existem várias maneiras de usar a biblioteca unstructured :
conda no sistema Windows, consulte a documentação As seguintes instruções destinam -se a ajudá -lo a subir e funcionar usando o Docker para interagir com unstructured . Veja aqui se você ainda não possui o Docker instalado em sua máquina.
NOTA: Construímos imagens de várias plataformas para suportar o hardware X86_64 e Apple Silicon. docker pull deve baixar a imagem correspondente para sua arquitetura, mas você pode especificar com --platform (por exemplo --platform linux/amd64 ), se necessário.
Construímos imagens do Docker para todos os empurrões para main . Marcamos cada imagem com o hash curto correspondente (por exemplo, fbc7a69 ) e a versão do aplicativo (por exemplo, 0.5.5-dev1 ). Também marcamos a imagem mais recente com latest . Para alavancar isso, docker pull do nosso repositório de imagem.
docker pull downloads.unstructured.io/unstructured-io/unstructured:latestUma vez puxado, você pode criar um contêiner a partir desta imagem e shell nela.
# 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 Você também pode construir sua própria imagem do Docker. Observe que a imagem base é wolfi-base , que é atualizada regularmente. Se você estiver construindo a imagem localmente, é possível que docker-build possa falhar devido a alterações a montante na wolfi-base .
Se você planeja analisar apenas um tipo de dados, poderá acelerar a criação da imagem comentando alguns dos pacotes/requisitos necessários para outros tipos de dados. Consulte o DockerFile para saber quais linhas são necessárias para o seu caso de uso.
make docker-build
# this will drop you into a bash shell where the Docker image is running
make docker-start-bashUma vez no contêiner em execução, você pode experimentar as coisas diretamente no modo interativo do Intretador Python.
# 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 as seguintes instruções para subir e funcionar com unstructured e teste sua instalação.
Instale o Python SDK para suportar todos os tipos de documentos com pip install "unstructured[all-docs]"
pip install unstructuredpip install "unstructured[docx,pptx]"Instale as seguintes dependências do sistema se elas ainda não estiverem disponíveis no seu sistema. Dependendo dos tipos de documentos que você está analisando, você pode não precisar de tudo isso.
libmagic-dev (detecção de arquivo)poppler-utils (imagens e PDFs)tesseract-ocr (imagens e PDFs, instale tesseract-lang para obter suporte adicional ao idioma)libreoffice (MS Office Docs)pandoc (EPUBS, RTFs e Docns de Office Open). Observe que, para lidar com arquivos RTF, você precisa da versão 2.14.2 ou mais recente. A execução make install-pandoc ou ./scripts/install-pandoc.sh instalará a versão correta para você.Para obter sugestões sobre como instalar no Windows e aprender sobre dependências para outros recursos, consulte a documentação da instalação aqui.
Neste ponto, você poderá executar o seguinte 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 ])) As seguintes instruções destinam -se a ajudá -lo a subir e funcionar com unstructured localmente se estiver planejando contribuir para o projeto.
Usando pyenv para gerenciar o VirtualENV é recomendado, mas não necessário
brew install pyenv-virtualenvpyenv install 3.10 Crie um VirtualEnv para trabalhar e ativá -lo, por exemplo, para um nomeado unstructured :
pyenv virtualenv 3.10 unstructured
pyenv activate unstructured
Run make install
Opcional:
make install-local-inference .tesseract . Veja aqui para obter instruções de instalação.tesseract e poppler . Os documentos PDF2Image têm instruções sobre a instalação poppler em várias plataformas. Além disso, se você planeja contribuir para unstructured , fornecemos um arquivo de configuração pre-commit opcional para garantir que seu código corresponda aos padrões de formatação e linha usados em unstructured . Se você preferir não ter alterações de código com a integridade automática antes de cada compromisso, você pode make check para ver se alguma alteração de linha ou formatação deve ser aplicada e make tidy as organizações para aplicá-las.
Se estiver usando o pre-commit opcional, você só precisará instalar os ganchos com pre-commit install pois o pacote pre-commit é instalado como parte da make install mencionada acima. Por fim, se você decidiu usar pre-commit também pode desinstalar os ganchos com pre-commit uninstall .
Além de desenvolver no sistema operacional local, também fornecemos um ajudante para usar o Docker, proporcionando um ambiente de desenvolvimento:
make docker-start-dev Isso inicia um recipiente do docker com o repo local montado para /mnt/local_unstructured . Esta imagem do Docker permite que você se desenvolva sem se preocupar com a compatibilidade do seu sistema operacional com o repositório e suas dependências.
Para uma documentação mais abrangente, visite https://docs.unstructure.io. Você também pode aprender mais sobre nossos outros produtos na página de documentação, incluindo nossa API SaaS.
Aqui estão algumas páginas da página de documentação de código aberto que são úteis para os novos usuários revisarem:
unstructured Os exemplos a seguir mostram como começar a biblioteca unstructured . A maneira mais fácil de analisar um documento em não estruturado é usar a função partition . Se você usar a função partition , unstructured detectará o tipo de arquivo e o direcionará para a função de particionamento específica de arquivo apropriada. Se você estiver usando a função partition , pode ser necessário instalar dependências adicionais por tipo de documento. Por exemplo, para instalar as dependências do DOCX, você precisa executar pip install "unstructured[docx]" . Consulte nosso guia de instalação para obter mais detalhes.
from unstructured . partition . auto import partition
elements = partition ( "example-docs/layout-parser-paper.pdf" ) Execute print("nn".join([str(el) for el in elements])) para obter uma representação de string da saída, que se 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 a seção de particionamento em nossa documentação para obter uma lista completa de opções e instruções sobre como usar as funções de particionamento específicas de arquivo.
Consulte nossa política de segurança para obter informações sobre como relatar vulnerabilidades de segurança.
Encontrou um bug? Crie um novo problema no Github e use nosso modelo de relatório de bugs para descrever o problema. Para nos ajudar a diagnosticar o problema, use o comando python scripts/collect_env.py para reunir as informações do ambiente do seu sistema e incluí -lo em seu relatório. Sua assistência nos ajuda a melhorar continuamente nosso software - obrigado!
| Seção | Descrição |
|---|---|
| Site da empresa | Informações sobre o produto e da empresa não estruturadas.io |
| Documentação | Documentação completa da API |
| Processamento em lote | Ingestão de lotes de documentos através de não estruturadas |
Fizemos uma parceria com a ScoNC (https://scarf.sh) para coletar estatísticas de usuário anonimizadas para entender quais recursos nossa comunidade está usando e como priorizar a tomada de decisões do produto no futuro. Para saber mais sobre como coletamos e usamos esses dados, leia nossa política de privacidade. Para optar por não participar dessa coleta de dados, você pode definir a variável de ambiente SCARF_NO_ANALYTICS=true antes de executar quaisquer comandos unstructured .