"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Extraindo dados de PDFs complicados com o Google Gemini em linhas de Python

Extraindo dados de PDFs complicados com o Google Gemini em linhas de Python

Publicado em 17/08/2024
Navegar:361

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.

Configurando seu ambiente

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.

Instale as bibliotecas necessárias

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.

Configure sua chave de API

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:

  1. Visite https://thepi.pe/platform/
  2. Crie uma conta ou faça login
  3. Encontre sua chave de API na página de configurações

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

Agora, você precisa definir isso como uma variável de ambiente. O processo varia dependendo do seu sistema operacional:

  • Copie a chave API do menu de configurações na plataformapi.pe

Para Windows:

  1. Pesquise por "Variáveis ​​de Ambiente" no menu Iniciar
  2. Clique em "Editar as variáveis ​​de ambiente do sistema"
  3. Clique no botão "Variáveis ​​de ambiente"
  4. Em "Variáveis ​​de usuário", clique em "Novo"
  5. Defina o nome da variável como THEPIPE_API_KEY e o valor como sua chave de API
  6. Clique em "OK" para salvar

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

Definindo seu esquema de extração

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:

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

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

Image description

Extraindo dados de PDFs

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:

Image description

Os resultados da extração do PDF da lista de quantidades conforme visualizado na plataforma pi.pe

Processando os resultados

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.

Exportando para diferentes formatos

Agora que temos nossos dados em um DataFrame, podemos exportá-los facilmente para vários formatos. Aqui estão algumas opções:

Exportando para Excel

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.

Exportando para CSV

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.

Notas finais

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.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/emcf/extracting-data-from-tricky-pdfs-with-google-gemini-in-10-lines-of-python-7ni?1 Se houver alguma violação , entre em contato com study_golang @163.comdelete
Tutorial mais recente Mais>

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