Limpiador de documentos para RAG

Un limpiador de documentos prepara un PDF para la generación aumentada por recuperación (RAG): extrae el texto, encuentra los encabezados, pies y números de página que se repiten en cada página, marca los párrafos duplicados y te permite eliminarlos antes de que el texto se fragmente y se incruste. Deja un PDF abajo y la limpieza ocurre por completo en tu navegador: el archivo nunca sale de tu dispositivo y nada se sube. Lee limpia los documentos antes de RAG para saber por qué el mobiliario envenena las incrustaciones, comprueba la estructura con el comprobador de accesibilidad PDF, o inspecciona primero un archivo con análisis forense de documentos.

Última actualización:

O suelta el archivo en cualquier parte de este cuadro. El archivo se lee en este dispositivo y nunca se sube. Límite: 20 MB.

Qué elimina el limpiador y por qué importa

Todo PDF largo lleva mobiliario: el encabezado con el título del informe, el pie con un aviso de confidencialidad, el número de página que sube en la esquina. Para un lector humano ese mobiliario es orientación. Para un modelo de incrustación es ruido repetido con toda su fuerza en cada página, así que la misma línea de encabezado se fragmenta, se incrusta y se almacena decenas de veces, diluyendo los vectores que deberían describir el contenido real y apareciendo en los resultados de recuperación como si fuera información. Este limpiador trata el mobiliario como un problema de detección con una regla simple e inspeccionable: una línea corta que aparece en al menos el sesenta por ciento de las páginas (y en al menos dos) se lista como candidata a eliminarse, y tú decides si se va. Nada se elimina en silencio: cada candidata se muestra con su texto, sus páginas y su recuento antes de que la marques o desmarques.

Los números de página tienen su propia candidata porque nunca se repiten literalmente: la página uno dice 1, la página dos dice 2, así que una regla de repetición nunca los atraparía, y sin embargo un fragmento que termina con un número suelto o una línea de “Página 7 de 40” no enseña nada a la incrustación y puede confundir a un modelo que lo cite como un hecho. El limpiador reconoce los patrones comunes —un número suelto igual a la página en la que está, y las formas “N de M” y “N / M”— y agrupa cada coincidencia en una sola candidata. Los párrafos duplicados son la tercera clase: el descargo de responsabilidad repetido, el resumen duplicado o la sección copiada que aparece dos veces en un documento. Los duplicados nunca se marcan por defecto, porque un párrafo repetido a veces es deliberado —una advertencia que debe aparecer en dos capítulos, por ejemplo—, así que el limpiador los marca y te deja la decisión, conservando la primera aparición cuando los eliminas.

Cómo funciona la extracción y dónde es aproximada

La extracción es aproximada, y esta página no fingirá lo contrario. El limpiador decodifica los flujos de contenido del PDF localmente, lee las operaciones que muestran texto y trata cada serie de texto mostrado como una línea. Ese modelo es rápido y basta para informes, manuales y artículos producidos por procesadores de texto y exportadores comunes, pero tiene límites honestos: los diseños de varias columnas pueden salir en orden de almacenamiento y no de lectura, las ligaduras y las codificaciones de fuente personalizadas pueden deformar caracteres sueltos, y un PDF escaneado —cuyas páginas son fotografías, no texto— no produce ninguna línea. Cuando eso ocurre, la herramienta lo dice claramente en lugar de inventar resultados: un resultado de cero líneas significa que el documento necesita OCR antes de que cualquier limpiador pueda ayudar. La detección de mobiliario en esta primera versión tampoco tiene en cuenta la posición: una línea corta se juzga por en cuántas páginas se repite, no por dónde está en la página, así que un encabezado corto genuinamente repetido dentro del cuerpo podría listarse, y por eso cada candidata es tuya para desmarcarla.

La salida está construida para el siguiente paso de una canalización RAG. La descarga de texto limpio une las líneas supervivientes página a página con una línea en blanco entre páginas, para que puedas leerlo, compararlo o dárselo a tu propio divisor. La descarga JSONL va un paso más allá: empaqueta el texto limpio en fragmentos de unos ochocientos caracteres, dividiendo por límites de párrafo en lugar de a mitad de frase siempre que puede, y escribe un objeto JSON por línea con la forma {"text": "..."}, la forma que la mayoría de los guiones de incrustación y cargadores de almacenes vectoriales aceptan directamente. El tamaño de fragmento es un compromiso, no una ley: ochocientos caracteres es lo bastante pequeño para que un fragmento suela cubrir una idea, y lo bastante grande para que la idea conserve su contexto. El artículo complementario explica el tamaño, el solapamiento y los límites con más detalle.

La privacidad y el alcance son deliberadamente estrechos. El archivo se analiza en esta página, en tu dispositivo; analizarlo no hace ninguna petición de red, así que los informes internos, los borradores de contratos y los documentos personales se quedan donde están. La primera versión acepta solo PDF, porque es donde el problema del mobiliario es peor y donde un analizador local en el navegador aún puede recuperar el texto con fiabilidad; las fuentes de procesador de texto y HTML se limpian mejor en las herramientas que las produjeron, o convirtiéndolas primero a PDF. El limpiador tampoco juzga la calidad: no resumirá, reescribirá ni corregirá el texto que conserva, y no decide si un documento merece incrustarse. Hace un trabajo mecánico —quitar lo que se repite, conservar lo que es único, entregarte fragmentos— y muestra su trabajo en cada paso, para que las decisiones de criterio queden en manos de quien conoce el documento.

Las tres clases de candidata, de un vistazo

Mobiliario repetidoUna línea corta (hasta 120 caracteres) repetida en al menos el 60% de las páginas y en al menos dos páginas: encabezados, pies, descargos y marcas de agua. Marcada para eliminar por defecto.
Números de páginaLíneas que coinciden con “Página N de M”, “N / M”, o un número suelto igual a la página en la que están, agrupadas en una sola candidata. Marcada para eliminar por defecto.
Párrafos duplicadosUn bloque de al menos 40 caracteres que aparece al menos dos veces en cualquier parte del documento. Nunca marcado por defecto; al eliminar se conserva la primera aparición.
SalidasTexto sin formato limpio con las páginas separadas por una línea en blanco, y fragmentos JSONL de unos 800 caracteres divididos por límites de párrafo, un objeto {"text": "..."} por línea.

Preguntas frecuentes

¿Mi PDF se sube a algún sitio?

No. El archivo se abre, se decodifica y se limpia en esta página, en tu dispositivo, y nada se sube, se transmite ni se almacena. Una vez cargada la página funciona sin conexión, que es la forma adecuada para informes internos y documentos personales.

¿Por qué la herramienta no encontró texto en mi PDF?

Casi con seguridad porque el PDF es de imágenes escaneadas y no de texto: cada página es una fotografía y no hay operaciones de texto que extraer. La herramienta informa de cero líneas en lugar de adivinar. Pasa primero el documento por OCR para que las páginas lleven una capa de texto real, y luego limpia el resultado.

¿La limpieza eliminará encabezados reales por error?

Puede listar una línea corta que se repite a menudo, incluido un encabezado de sección repetido, porque la detección se basa en la repetición y no en la posición. Por eso nada se elimina hasta que lo confirmas: cada candidata muestra su texto, sus páginas y su recuento, y desmarcarla conserva cada aparición.

¿Por qué los párrafos duplicados no se eliminan por defecto?

Porque la repetición a veces es el objetivo: una advertencia de seguridad, un aviso legal o un resumen pueden repetirse deliberadamente. Los duplicados se marcan con sus ubicaciones para que puedas juzgar; si marcas uno, el limpiador conserva la primera aparición y elimina las copias posteriores.

¿Qué tamaño de fragmento usa la exportación JSONL?

Unos 800 caracteres por fragmento, empaquetados por límites de párrafo para que un fragmento rara vez termine a mitad de frase. Es un valor por defecto sensato para incrustar, no un óptimo universal: el artículo complementario trata de cómo elegir el tamaño y el solapamiento para tu propio corpus y recuperador.