Limpador de documentos para RAG

Um limpador de documentos prepara um PDF para a geração aumentada por recuperação (RAG): extrai o texto, encontra os cabeçalhos, rodapés e números de página que se repetem em cada página, assinala parágrafos duplicados e permite removê-los antes de o texto ser fragmentado e incorporado. Deixe um PDF abaixo e a limpeza acontece inteiramente no seu navegador — o ficheiro nunca sai do seu dispositivo e nada é enviado. Leia limpe os documentos antes de RAG para saber por que o mobiliário envenena as incorporações, verifique a estrutura com o verificador de acessibilidade de PDF, ou inspecione primeiro um ficheiro com análise forense de documentos.

Última atualização:

Ou largue o ficheiro em qualquer parte desta caixa. O ficheiro é lido neste dispositivo e nunca é enviado. Limite: 20 MB.

O que o limpador remove e por que importa

Todo o PDF longo traz mobiliário: o cabeçalho com o título do relatório, o rodapé com um aviso de confidencialidade, o número de página a subir no canto. Para um leitor humano esse mobiliário é orientação. Para um modelo de incorporação é ruído repetido com toda a força em cada página, por isso a mesma linha de cabeçalho é fragmentada, incorporada e armazenada dezenas de vezes, diluindo os vetores que deveriam descrever o conteúdo real e aparecendo nos resultados de recuperação como se fosse informação. Este limpador trata o mobiliário como um problema de deteção com uma regra simples e inspecionável: uma linha curta que aparece em pelo menos sessenta por cento das páginas (e em pelo menos duas) é listada como candidata a remoção, e você decide se ela sai. Nada é removido em silêncio — cada candidata é mostrada com o seu texto, as suas páginas e a sua contagem antes de a marcar ou desmarcar.

Os números de página têm a sua própria candidata porque nunca se repetem literalmente: a página um diz 1, a página dois diz 2, por isso uma regra de repetição nunca os apanharia, e no entanto um fragmento que termina com um número solto ou uma linha de “Página 7 de 40” não ensina nada à incorporação e pode confundir um modelo que o cite de volta como um facto. O limpador reconhece os padrões comuns — um número solto igual à página em que está, e as formas “N de M” e “N / M” — e agrupa cada correspondência numa única candidata. Os parágrafos duplicados são a terceira classe: a exoneração repetida, o resumo duplicado ou a secção copiada que aparece duas vezes num documento. Os duplicados nunca são marcados por defeito, porque um parágrafo repetido às vezes é deliberado — um aviso que tem de aparecer em dois capítulos, por exemplo —, por isso o limpador assinala-os e deixa-lhe a decisão, conservando a primeira ocorrência quando os remove.

Como funciona a extração e onde ela é aproximada

A extração é aproximada, e esta página não fingirá o contrário. O limpador descodifica os fluxos de conteúdo do PDF localmente, lê as operações que mostram texto e trata cada sequência de texto mostrado como uma linha. Esse modelo é rápido e chega para relatórios, manuais e artigos produzidos por processadores de texto e exportadores comuns, mas tem limites honestos: os esquemas de várias colunas podem sair por ordem de armazenamento e não de leitura, as ligaduras e as codificações de tipo de letra personalizadas podem deformar caracteres soltos, e um PDF digitalizado — cujas páginas são fotografias, não texto — não produz linha nenhuma. Quando isso acontece, a ferramenta diz isso claramente em vez de inventar resultados: um resultado de zero linhas significa que o documento precisa de OCR antes de qualquer limpador poder ajudar. A deteção de mobiliário nesta primeira versão também ignora a posição: uma linha curta é julgada por em quantas páginas se repete, não por onde está na página, por isso um título curto genuinamente repetido dentro do corpo pode ser listado — e é exatamente por isso que cada candidata é sua para desmarcar.

A saída é construída para o passo seguinte de uma canalização RAG. A descarga de texto limpo junta as linhas sobreviventes página a página com uma linha em branco entre páginas, para que possa lê-lo, compará-lo ou dá-lo ao seu próprio divisor. A descarga JSONL vai um passo mais longe: empacota o texto limpo em fragmentos de cerca de oitocentos caracteres, dividindo por limites de parágrafo em vez de a meio da frase sempre que pode, e escreve um objeto JSON por linha na forma {"text": "..."} — a forma que a maioria dos scripts de incorporação e dos carregadores de armazéns vetoriais aceitam diretamente. O tamanho do fragmento é um compromisso, não uma lei: oitocentos caracteres é pequeno o suficiente para um fragmento cobrir normalmente uma ideia, e grande o suficiente para a ideia conservar o seu contexto. O artigo complementar explica o tamanho, a sobreposição e os limites com mais pormenor.

A privacidade e o âmbito são deliberadamente estreitos. O ficheiro é analisado nesta página, no seu dispositivo; analisá-lo não faz nenhum pedido de rede, por isso relatórios internos, rascunhos de contratos e documentos pessoais ficam onde estão. A primeira versão aceita apenas PDF, porque é onde o problema do mobiliário é pior e onde um analisador local no navegador ainda consegue recuperar o texto com fiabilidade; as fontes de processador de texto e HTML limpam-se melhor nas ferramentas que as produziram, ou convertendo-as primeiro para PDF. O limpador também não julga a qualidade: não resumirá, reescreverá nem corrigirá o texto que conserva, e não decide se um documento merece ser incorporado. Faz um trabalho mecânico — retirar o que se repete, conservar o que é único, entregar-lhe fragmentos — e mostra o seu trabalho em cada passo, para que as decisões de critério fiquem com quem conhece o documento.

As três classes de candidata, num relance

Mobiliário repetidoUma linha curta (até 120 caracteres) repetida em pelo menos 60% das páginas e em pelo menos duas páginas: cabeçalhos, rodapés, exonerações e marcas de água. Marcada para remoção por defeito.
Números de páginaLinhas que correspondem a “Página N de M”, “N / M”, ou a um número solto igual à página em que estão, agrupadas numa única candidata. Marcada para remoção por defeito.
Parágrafos duplicadosUm bloco de pelo menos 40 caracteres que aparece pelo menos duas vezes em qualquer parte do documento. Nunca marcado por defeito; ao remover conserva-se a primeira ocorrência.
SaídasTexto simples limpo com as páginas separadas por uma linha em branco, e fragmentos JSONL de cerca de 800 caracteres divididos por limites de parágrafo, um objeto {"text": "..."} por linha.

Perguntas frequentes

O meu PDF é enviado para algum lado?

Não. O ficheiro é aberto, descodificado e limpo nesta página, no seu dispositivo, e nada é enviado, transmitido ou armazenado. Depois de a página carregar, funciona offline, que é a forma certa para relatórios internos e documentos pessoais.

Por que é que a ferramenta não encontrou texto no meu PDF?

Quase de certeza porque o PDF é de imagens digitalizadas e não de texto: cada página é uma fotografia e não há operações de texto para extrair. A ferramenta comunica zero linhas em vez de adivinhar. Passe primeiro o documento por OCR para que as páginas tenham uma camada de texto real, e depois limpe o resultado.

A limpeza removerá títulos reais por engano?

Pode listar uma linha curta que se repete muitas vezes, incluindo um título de secção repetido, porque a deteção se baseia na repetição e não na posição. É por isso que nada é removido até confirmar: cada candidata mostra o seu texto, as suas páginas e a sua contagem, e desmarcá-la conserva cada ocorrência.

Por que é que os parágrafos duplicados não são removidos por defeito?

Porque a repetição às vezes é o objetivo: um aviso de segurança, um aviso legal ou um resumo podem ser repetidos deliberadamente. Os duplicados são assinalados com as suas localizações para que possa julgar; se marcar um, o limpador conserva a primeira ocorrência e remove as cópias posteriores.

Que tamanho de fragmento usa a exportação JSONL?

Cerca de 800 caracteres por fragmento, empacotados por limites de parágrafo para que um fragmento raramente termine a meio da frase. É um valor por defeito sensato para incorporação, não um ótimo universal — o artigo complementar trata de como escolher o tamanho e a sobreposição para o seu próprio corpus e recuperador.