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 documento num relance
Escolha o que remover
Os itens marcados são removidos da saída limpa. A pré-visualização atualiza-se ao mudar as marcas.
Pré-visualização limpa e descargas
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 repetido | Uma 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ágina | Linhas 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 duplicados | Um 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ídas | Texto 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.