A extração de PDF é o processo de extração de texto, imagens ou outros dados de um arquivo PDF. Neste artigo, exploramos os métodos atuais de extração de dados em PDF, suas limitações e como o GPT-4 pode ser usado para executar tarefas de resposta a perguntas para extração de PDF. Também fornecemos um guia passo a passo para implementar o GPT-4 para extração de dados PDF.
Então, vamos pular direto para ele.
A extração de dados PDF é o processo de extração de texto, imagens ou outros dados de um arquivo PDF (Portable Document Format). Esses arquivos são amplamente utilizados para compartilhamento e armazenamento de documentos, mas seu conteúdo nem sempre é facilmente acessível.
A acessibilidade e a legibilidade dos arquivos PDF são muito necessárias para quem tem problemas de visão ou dificuldade para ler textos pequenos ou borrados, úteis para situações jurídicas, análise de dados e pesquisas. Algumas instâncias em que a extração é necessária incluem o uso de conteúdo de texto ou imagem de arquivos PDF em outros documentos para economizar tempo e evitar erros.
É 2023 e existem muitas técnicas e ferramentas de extração de PDF disponíveis na Internet. Vamos nos aprofundar nas 3 técnicas populares de extração de dados e alguns exemplos das mesmas:
OCR , ou abreviação de Optical Character Recognition
pode ser usado para extrair texto de várias fontes, incluindo documentos digitalizados, imagens e arquivos PDF, e é comumente usado para digitalizar documentos impressos, como livros, jornais e documentos históricos.
Algumas das ferramentas populares de OCR incluem:
As técnicas baseadas em modelo levam em consideração o estilo do documento PDF e usam regras codificadas. Essas técnicas geralmente funcionam em documentos estruturados, cuja estrutura permanece constante e são fáceis de entender.
Usando o padrão regex
Ex: a data pode ser extraída pela seguinte regra regex:
[dd-mm-aaaa ou aaaa-mm-dd] - [0-9]{2,4}/[0-9]{2}/[0-9]{2,4}
Regras de hard-coding baseadas na posição dos textos e dimensões dos documentos
As técnicas de aprendizado de máquina (ML) são consideradas um dos melhores métodos para extração de PDF porque permitem o reconhecimento de texto altamente preciso e a extração de arquivos PDF, independentemente da estrutura do arquivo. Esses modelos podem armazenar informações tanto do layout
quanto da position of the text
, tendo em mente também o texto vizinho. Isso os ajuda a generalizar melhor e aprender a estrutura do documento com mais eficiência.
Os Large Language Models são um subconjunto de inteligência artificial que foi treinado em grandes quantidades de dados de texto. Por exemplo: ChatGPT, que é treinado em todos os dados e informações da Internet para produzir respostas semelhantes às humanas ao diálogo ou outras entradas de linguagem natural.
Para produzir essas respostas de linguagem natural, os LLMs usam modelos de aprendizado profundo, que usam redes neurais de várias camadas para processar, analisar e fazer previsões com dados complexos.
Limitações dos modelos de ML
Um grande problema que esse tipo de modelo enfrenta é que eles podem simplesmente extrair as informações do PDF sem saber se a extração é realmente precisa e correta. Os textos extraídos também podem incluir algumas outras informações de chaves em outra chave. Ter um contexto inteligente ajuda o modelo a mitigar essas imprecisões.
Para resolver esse problema e integrar inteligência ao sistema de extração de PDF, podemos aproveitar o poder do GPT-4.
GPT-4 (Transformador pré-treinado generativo 4) é um grande modelo de linguagem desenvolvido pela OpenAI que usa técnicas de aprendizagem profunda para gerar texto de linguagem natural semelhante ao humano. É um dos maiores e mais poderosos modelos de linguagem disponíveis, com 175 bilhões de parâmetros.
O Chat-GPT, por outro lado, é uma variante do GPT que foi especificamente treinada para aplicativos de IA de conversação. Ele foi ajustado em um grande conjunto de dados de conversação e pode gerar respostas semelhantes às humanas para as consultas do usuário. O Chat GPT pode ser usado para uma variedade de aplicações, incluindo chatbots, atendimento ao cliente e assistentes virtuais.
Vamos avançar com a declaração do problema e ver como o GPT-4 junto com o ChatGPT pode nos ajudar a resolver o problema da extração de PDF.
O desafio de extrair com eficiência informações específicas de uma coleção de PDFs é aquele que muitas aplicações e indústrias encontram regularmente. Extrair informações de extratos bancários ou formulários de impostos é difícil. A maneira antiquada de digitalizar manualmente vários PDFs leva muito tempo e pode produzir dados imprecisos ou inconsistentes. Além disso, dados não estruturados encontrados em PDFs tornam difícil para os sistemas automatizados extrair as informações necessárias.
Pretendemos resolver o problema de encontrar a resposta para as perguntas do usuário no PDF com pouca intervenção manual.
Podemos usar o GPT-4 e seus embeddings a nosso favor:
Implementação
A: Extraia o texto do PDF
Você pode usar qualquer uma das técnicas de OCR ou ML para extrair texto do documento
B: Divida o texto em partes menores adequadas com base na estrutura do documento
Usando as informações de coordenadas de Bounding-Box [x0, y0, x2, y2] onde x0 e y0 são as coordenadas do canto superior esquerdo e x2 e y2 são as coordenadas do canto inferior direito, você pode dividir o texto inteiro em pedaços menores de determinada largura e altura.
C: Codifique esses pedaços em Embeddings [use ou ]
import torch from transformers import AutoTokenizer, AutoModel # Load the pre-trained model and tokenizer tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased') model = AutoModel.from_pretrained('bert-base-uncased') # Tokenize the sentence tokens = tokenizer.encode("<pass your code chunk block here>", return_tensors='pt') # Get the embeddings with torch.no_grad(): outputs = model(tokens) embeddings = outputs[0][0] # Print the embeddings print(embeddings)
O que é um banco de dados vetorial e por que é necessário?
R: Compute embeddings para a consulta do usuário
Use a mesma técnica mencionada acima para calcular os embeddings
B: Pesquise o vetor de incorporação de pedaços do banco de dados de vetores cujas incorporações correspondem de perto às incorporações da consulta do usuário
Você pode usar qualquer um dos similarity search algorithm
.
Você pode usar a Semântica Semântica de Sentença da biblioteca de transformadores de sentenças.
from sentence_transformers import SentenceTransformer, util #Compute cosine-similarities for each code chunk embds with user's query embeddings cosine_scores = util.cos_sim(code_chunk_embds, user_query_embds)
R: Forneça 3 entradas.
Entrada1: consulta do usuário
Input2 : O pedaço que se assemelhava à consulta
Entrada3: Algumas meta-instruções, se houver [Sistema: responda às perguntas apenas com base nas informações fornecidas no documento]
B: Saída GPT-4 é a resposta
Como já sabemos, como o GPT4 é um LLM tão poderoso que pode incorporar uma grande quantidade de contexto com comprimento de token de 8.192 e 32.768 tokens, produzir resultados muito precisos torna-se mais fácil e rápido.
A API ChatGPT integra-se perfeitamente com qualquer linguagem de programação que pode nos ajudar mais nas tarefas de downstream.