Para preservar a ordem de leitura de PDFs com colunas no RAG, identifique as regiões da página antes de transformar tudo em texto contínuo. Separe títulos, colunas, quadros e rodapés; estabeleça a sequência entre esses elementos; somente depois forme os trechos enviados ao índice de busca. Ordenar palavras apenas pela altura pode misturar frases que pertencem a colunas diferentes.
RAG é a geração de respostas apoiada na recuperação de documentos. Se a ingestão combina o começo de uma regra com o final de outra, a busca pode entregar uma passagem incoerente ao modelo. A correção começa na estrutura da página e precisa ser validada antes da indexação, com comparação visual e perguntas de teste.
Resumo rápido
- Texto selecionável não garante sequência correta.
- Mapeie regiões e conserve suas coordenadas.
- Determine a ordem por zona da página, considerando títulos que atravessam colunas.
- Crie os trechos depois de resolver a sequência.
- Teste exceções, notas e continuações entre páginas.
Por que duas colunas viram uma passagem incoerente
Um PDF pode permitir a seleção de cada palavra e ainda apresentar dificuldades de leitura linear. A organização visual da página e a sequência entregue por um extrator são coisas diferentes. A documentação de extração do pypdf explica limitações do formato e apresenta um modo que procura reproduzir o arranjo visual em texto de largura fixa.
Imagine duas colunas: a primeira descreve condições de atendimento e a segunda traz exceções. Uma rotina que percorre cada faixa horizontal pode alternar as duas. Nenhuma palavra precisa estar incorreta para que o sentido se perca. Esse defeito não aparece em uma conferência que procura apenas a presença de termos conhecidos.
Também há páginas em que o título ocupa toda a largura, seguido por duas colunas e um quadro final. A regra “coluna esquerda inteira, depois direita inteira” pode funcionar em parte da folha e falhar no quadro. Portanto, a unidade de decisão deve ser a zona de composição, com suas relações de continuidade.
O primeiro diagnóstico consiste em exibir o texto extraído ao lado da página. Numere os blocos na sequência proposta e acompanhe a leitura. Se o caminho pula entre assuntos ou inclui um rodapé no meio da frase, interrompa a indexação daquele material. Um índice bem configurado não desfaz automaticamente uma sequência montada de forma errada.
Compare as estratégias antes de definir a regra
Não existe uma estratégia única que deva ser aplicada a todo acervo. Comece pelas famílias documentais utilizadas pela equipe e identifique quais apresentam composição semelhante. Um manual padronizado permite regras diferentes das de uma revista com caixas laterais e títulos distribuídos pela página.
| Estratégia | Quando experimentar | O que conferir |
|---|---|---|
| Texto simples | Página linear sem elementos paralelos | Continuidade de frases e parágrafos |
| Texto com disposição visual | Inspeção de alinhamento e espaçamento | Se o consumidor entende as colunas |
| Blocos com coordenadas | Colunas e zonas identificáveis | Relação entre título, corpo e quadro |
| Recorte por região | Modelo de página previsível | Texto cortado nos limites |
| Estrutura de PDF marcado | Arquivo com ordem estrutural utilizável | Correspondência com a leitura visual |
| Revisão humana da sequência | Composição ambígua ou exceção | Decisão registrada e reproduzível |
A técnica PDF3 do W3C aborda ordem de leitura em PDFs e exemplos de conteúdo com colunas. É uma referência de acessibilidade, não uma promessa de que qualquer extrator seguirá essa ordem. Use a estrutura do arquivo como evidência adicional e confira o resultado efetivamente consumido pela sua aplicação.
Compare métodos usando as mesmas páginas e os mesmos critérios. Se mudar simultaneamente o extrator, a segmentação e o modelo que responde, será difícil atribuir uma melhora à ordem de leitura. Primeiro estabilize o texto, depois avalie as etapas seguintes do RAG.
Reconstrua a sequência com regiões e coordenadas
O PyMuPDF permite obter blocos e palavras acompanhados de informações posicionais. A receita oficial sobre texto e ordem de leitura apresenta essas alternativas. Elas fornecem material para reconstrução, mas a decisão sobre o significado de cada região continua exigindo regras adequadas ao documento.
Uma representação intermediária pode guardar documento, página, identificador do bloco, retângulo, texto e tipo de região. Acrescente uma posição na sequência e a justificativa da decisão quando houver exceção. Esses campos são uma proposta de implementação; os nomes podem seguir as convenções da sua base.
Comece localizando elementos que atravessam a largura, como títulos e tabelas. Eles podem dividir a página em zonas superiores e inferiores. Dentro de cada zona, identifique quais blocos pertencem a cada coluna. Depois determine a passagem de uma coluna para outra e a ligação com a zona seguinte.
Para um modelo fixo de duas colunas, uma equipe pode definir regiões manualmente e testá-las como ponto inicial. Entretanto, uma divisão exatamente no meio da folha não deve ser tomada como verdade universal. Margens desiguais, caixas laterais e páginas de abertura exigem tratamento próprio.
A referência de Page.get_text documenta opções de ordenação e recorte. Ao usar clip, confira as bordas: a inclusão considera as caixas dos caracteres. Um retângulo aparentemente próximo da coluna pode excluir conteúdo junto ao limite. Faça a inspeção sobre uma imagem da mesma página, com o sistema de coordenadas correto.
O critério de aceitação deve ser legível por outra pessoa. Por exemplo: título da seção, corpo da coluna esquerda, continuação na direita, nota relacionada e então seção seguinte. Se duas pessoas não conseguem concordar com essa sequência no original, marque o caso como ambíguo antes de transformá-lo em uma regra automática.
Forme trechos somente depois de resolver a continuidade
Um trecho para recuperação deve representar uma unidade compreensível. Após ordenar as regiões, una parágrafos que efetivamente continuam e mantenha a associação com o título. Não una automaticamente tudo que esteja perto na página: proximidade geométrica e continuidade de assunto são critérios distintos.
Defina como tratar cabeçalhos, rodapés e notas. Um número de página costuma ajudar na referência; repetido no corpo, pode atrapalhar a leitura. Uma nota pode mudar a interpretação de um parágrafo e precisa permanecer acessível a ele. Retirá-la como se fosse decoração pode produzir uma passagem visualmente limpa e semanticamente incompleta.
Guarde referências de origem para cada trecho: página, blocos participantes e versão do documento. O guia de registro de versões de documentos citados explica por que a referência precisa sobreviver às mudanças do acervo. Uma citação de página sozinha é insuficiente quando circulam versões com paginações diferentes.
Se um parágrafo continua na página seguinte, registre a ligação em vez de confiar que a busca encontrará as duas partes. Avalie o tamanho do trecho depois dessa reconstrução. Para contextos hierárquicos, veja também o material sobre recuperação de trechos com seu documento pai. A hierarquia depende de uma estrutura de entrada coerente.
Na avaliação, separe três perguntas: o texto preserva a ordem? A busca recupera a passagem necessária? A resposta usa essa passagem corretamente? Um teste final pode falhar por qualquer uma dessas razões. Guardar os resultados intermediários permite localizar o problema sem substituir a ferramenta errada.
Exemplo: manuais de uma rede de assistência técnica de Campinas
Imagine uma rede de assistência técnica em Campinas preparando uma base de consulta para sua equipe. Os manuais internos têm duas colunas. Algumas páginas apresentam um aviso centralizado e outras incluem um quadro de exceções ao lado das instruções. Este é um cenário ilustrativo, sem resultados de desempenho atribuídos a uma empresa real.
Antes da correção, a extração alterna linhas das duas colunas em determinadas páginas. O atendimento encontra a expressão procurada, mas a passagem mistura a condição de abertura da ordem de serviço com uma exceção destinada a outra situação. A resposta pode soar razoável mesmo sem reproduzir a instrução original.
A equipe separa páginas por composição: duas colunas regulares, abertura de seção e página com quadro. Para cada família, desenha regiões e estabelece a sequência esperada. Um revisor marca onde cada parágrafo começa e termina. Outro confere a associação dos avisos com as instruções correspondentes.
Em uma página de teste, o aviso ocupa toda a largura abaixo do título. A sequência aprovada coloca título e aviso antes do conteúdo das colunas. Em outra, o quadro lateral recebe uma referência própria e permanece ligado ao procedimento descrito. A decisão decorre da leitura do documento, não de uma regra que sempre coloca quadros no final.
Somente depois a equipe cria trechos e testa perguntas como “qual condição precisa ser conferida antes de abrir o atendimento?” e “qual exceção altera essa instrução?”. Cada resposta deve permitir voltar ao trecho e à região original. Quando a referência não sustenta a conclusão, o caso retorna à revisão de estrutura.
A liberação ocorre por família documental. Páginas fora dos modelos conhecidos ficam em conferência. Esse recorte torna a operação verificável: a equipe conhece quais composições foram avaliadas e não transforma uma amostra pequena em garantia sobre todo PDF que venha a receber.
Erros comuns
Ordenar todas as palavras por altura e posição horizontal. Em páginas com colunas, essa regra pode intercalar linhas independentes. Use a posição para organizar elementos dentro das regiões e defina separadamente a sequência entre regiões.
Tratar texto com espaçamento como sequência semântica pronta. Uma saída que imita a aparência pode continuar contendo linhas paralelas. Confira como o próximo componente interpreta os espaços e quebras. O resultado visualmente confortável para uma pessoa pode exigir outra representação para a indexação.
Remover qualquer trecho repetido. Cabeçalhos repetidos podem ser dispensáveis no corpo, mas avisos recorrentes podem ser relevantes. Classifique a função do elemento antes de eliminá-lo. Uma regra baseada apenas na repetição pode apagar justamente uma restrição aplicável a várias seções.
Tentar consertar tudo aumentando a sobreposição dos trechos. Repetir conteúdo nas bordas não reconstrói frases misturadas. Resolva a ordem antes de ajustar o tamanho e a sobreposição. Depois, teste a recuperação com critérios separados dos usados para validar o texto.
Aprovar apenas páginas simples. Inclua títulos largos, quadros, notas, mudanças de composição e continuações. Use o guia de avaliação de respostas em RAG como complemento para a etapa final, mantendo a conferência estrutural como requisito anterior.
Perguntas frequentes
Preciso fazer OCR se o PDF tem duas colunas?
Não por esse motivo. Colunas são um problema de organização da leitura. Se o texto está disponível, avalie primeiro sua estrutura e posição. OCR pode ser necessário em páginas digitalizadas, mas não substitui a decisão sobre a sequência das regiões.
O modo de layout do pypdf resolve qualquer documento?
Não há essa garantia. Ele é uma alternativa de representação para experimentar e comparar. Verifique se as colunas permanecem paralelas na saída e como isso será interpretado. Valide no seu conjunto de páginas antes de adotar o resultado na base.
Posso usar a mesma divisão para todas as páginas?
Somente se a composição realmente se mantiver e houver testes que sustentem a regra. Páginas de abertura e quadros largos merecem atenção. Preveja uma saída para revisão quando os elementos não se encaixarem na família conhecida.
Como testar sem depender da resposta do modelo?
Monte uma sequência de referência por página e compare os blocos extraídos com ela. Confira parágrafos, títulos, notas e continuidades. Esse teste identifica erros antes da busca e permite revisar a ingestão sem confundir o resultado com a qualidade de geração.
Um PDF acessível dispensa a validação?
A estrutura de acessibilidade pode oferecer informações úteis, mas é necessário confirmar o que o extrator utiliza e entrega. Compare a ordem consumida pela aplicação com a leitura esperada. O selo ou a presença de marcações não demonstra sozinho o comportamento do seu pipeline.