Neste guia, mostrarei como extrair dados estruturados de PDFs usando modelos de linguagem de visão (VLMs) como Gemini Flash ou GPT-4o.
Gemini, a mais recente série de modelos de linguagem de visão do Google, mostrou desempenho de última geração na compreensão de texto e imagem. Essa capacidade multimodal aprimorada e a longa janela de contexto o tornam particularmente útil para processar dados PDF visualmente complexos com os quais os modelos de extração tradicionais têm dificuldade, como figuras, gráficos, tabelas e diagramas.
Ao fazer isso, você pode criar facilmente sua própria ferramenta de extração de dados para extração visual de arquivos e web. Veja como:
A longa janela de contexto e a capacidade multimodal do Gemini o tornam particularmente útil para processar dados PDF visualmente complexos onde os modelos de extração tradicionais têm dificuldades.
Antes de mergulharmos na extração, vamos configurar nosso ambiente de desenvolvimento. Este guia pressupõe que você tenha o Python instalado em seu sistema. Caso contrário, baixe e instale-o em https://www.python.org/downloads/
⚠️ Observe que, se não quiser usar Python, você pode usar a plataforma em nuvem em thepi.pe para fazer upload de seus arquivos e baixar seu resultado como um CSV sem escrever nenhum código.
Abra seu terminal ou prompt de comando e execute os seguintes comandos:
pip install git https://github.com/emcf/thepipe pip install pandas
Para aqueles que são novos em Python, pip é o instalador de pacotes para Python, e esses comandos irão baixar e instalar as bibliotecas necessárias.
Para usar opipe, você precisa de uma chave de API.
Isenção de responsabilidade: embora thepi.pe seja uma ferramenta gratuita e de código aberto, a API tem um custo de aproximadamente US$ 0,00002 por token. Se você quiser evitar esses custos, verifique as instruções de configuração local no GitHub. Observe que você ainda terá que pagar ao provedor de LLM de sua escolha.
Veja como obter e configurar:
Agora, você precisa definir isso como uma variável de ambiente. O processo varia dependendo do seu sistema operacional:
Para Windows:
Para macOS e Linux:
Abra seu terminal e adicione esta linha ao seu arquivo de configuração do shell (por exemplo, ~/.bashrc ou ~/.zshrc):
export THEPIPE_API_KEY=your_api_key_here
Em seguida, recarregue sua configuração:
source ~/.bashrc # or ~/.zshrc
A chave para uma extração bem-sucedida é definir um esquema claro para os dados que você deseja extrair. Digamos que estamos extraindo dados de um documento de lista de quantidades:
Um exemplo de página do documento Lista de Quantidades. Os dados de cada página são independentes das demais páginas, por isso fazemos nossa extração “por página”. Existem vários dados para extrair por página, por isso definimos várias extrações como True
Olhando para os nomes das colunas, podemos querer extrair um esquema como este:
schema = { "item": "string", "unit": "string", "quantity": "int", }
Você pode modificar o esquema ao seu gosto na plataformapi.pe. Clicar em "Visualizar esquema" fornecerá um esquema que você pode copiar e colar para usar com a API Python
Agora, vamos usar extract_from_file para extrair dados de um PDF:
from thepipe.extract import extract_from_file results = extract_from_file( file_path = "bill_of_quantity.pdf", schema = schema, ai_model = "google/gemini-flash-1.5b", chunking_method = "chunk_by_page" )
Aqui temos chunking_method="chunk_by_page" porque queremos enviar cada página para o modelo de IA individualmente (o PDF é muito grande para ser alimentado de uma só vez). Também definimos multiple_extractions=True porque cada página PDF contém várias linhas de dados. Esta é a aparência de uma página do PDF:
Os resultados da extração do PDF da lista de quantidades conforme visualizado na plataforma pi.pe
Os resultados da extração são retornados como uma lista de dicionários. Podemos processar esses resultados para criar um DataFrame do pandas:
import pandas as pd df = pd.DataFrame(results) # Display the first few rows of the DataFrame print(df.head())
Isso cria um DataFrame com todas as informações extraídas, incluindo conteúdo textual e descrições de elementos visuais como figuras e tabelas.
Agora que temos nossos dados em um DataFrame, podemos exportá-los facilmente para vários formatos. Aqui estão algumas opções:
df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
Isso cria um arquivo Excel chamado "extracted_research_data.xlsx" com uma planilha chamada "Dados de pesquisa". O parâmetro index=False evita que o índice DataFrame seja incluído como uma coluna separada.
Se preferir um formato mais simples, você pode exportar para CSV:
df.to_csv("extracted_research_data.csv", index=False)
Isso cria um arquivo CSV que pode ser aberto no Excel ou em qualquer editor de texto.
A chave para uma extração bem-sucedida está na definição de um esquema claro e na utilização dos recursos multimodais do modelo de IA. À medida que você se sentir mais confortável com essas técnicas, poderá explorar recursos mais avançados, como métodos de agrupamento personalizados, prompts de extração personalizados e integração do processo de extração em pipelines de dados maiores.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3