# Anonimizar un documento antes de pegarlo en ChatGPT o Claude

**Respuesta corta.** Convierte el documento a texto, sustituye cada dato personal
por un marcador estable del tipo `[NOMBRE_1]` o `[DOCUMENTO_2]`, pega ese texto
anónimo en el modelo y, cuando responda, deshaz la sustitución en tu equipo con
el mapa que generaste. El modelo trabaja con la estructura del documento sin ver
quién es quién, y tú recuperas la respuesta con los datos reales. La clave es que
el marcador sea consistente: el mismo valor siempre por el mismo marcador, o el
texto deja de tener sentido.

---

## Por qué el rectángulo negro no sirve

Empecemos por el error más caro, porque lo sigue cometiendo gente con abogados
buenos.

En un PDF, **dibujar un rectángulo negro encima de un texto no borra el texto**.
El PDF guarda por separado los glifos y los gráficos. El rectángulo es un gráfico
que se pinta encima; el texto sigue debajo, se puede seleccionar, copiar, buscar
y extraer con cualquier herramienta. Hay una lista larga de filtraciones
públicas —de gobiernos, de bufetes, de aseguradoras— que consisten exactamente en
eso.

Lo mismo pasa con muchas funciones llamadas «redacción» en editores generales:
tapan visualmente y no tocan el contenido.

Lo que sí funciona es **sustituir el texto**: quitar la cadena del contenido y
poner otra en su lugar.

## El viaje de ida y vuelta

La parte que casi nadie implementa es la vuelta, y es la que hace que esto sea
usable en el trabajo real.

**Ida.** El documento dice:

```
Paciente Juan Carlos Pérez Gómez, C.C. 1.020.345.678, tel. 310 555 0199,
consulta por dolor torácico de tres días de evolución.
```

Lo que pegas en el modelo dice:

```
Paciente [NOMBRE_1], C.C. [DOCUMENTO_1], tel. [TELEFONO_1],
consulta por dolor torácico de tres días de evolución.
```

El modelo conserva todo lo que necesita para trabajar: que hay un paciente, que
hay un documento de identidad, que el motivo de consulta es dolor torácico de
tres días. No conserva quién es.

**Vuelta.** El modelo responde con `[NOMBRE_1]` dentro de su texto. En tu equipo,
con el mapa que se generó al anonimizar, `[NOMBRE_1]` vuelve a ser Juan Carlos
Pérez Gómez. El mapa nunca salió de tu máquina.

Esto es distinto de lo que hacen los pipelines de limpieza de corpus como Dolma o
datatrove, que sustituyen por un token fijo e irreversible. Para entrenar, la
irreversibilidad es deseable. Para consultar, es un estorbo: te deja una
respuesta llena de huecos que tienes que rellenar a mano.

## Por qué el marcador tiene que ser consistente

Si cada aparición del mismo nombre recibe un marcador distinto, el texto pierde
el hilo:

```
[NOMBRE_1] firmó el contrato. [NOMBRE_7] se obliga a pagar.
[NOMBRE_3] no respondió al requerimiento.
```

El modelo no puede saber que son la misma persona, y cualquier razonamiento sobre
quién debe qué a quién se rompe. Con marcadores consistentes, la estructura
lógica del documento se conserva intacta:

```
[NOMBRE_1] firmó el contrato. [NOMBRE_1] se obliga a pagar.
[NOMBRE_1] no respondió al requerimiento.
```

Lo mismo aplica entre tipos: si un mismo número aparece como cédula en una página
y como referencia en otra, conviene que reciba el mismo marcador.

## Qué se detecta bien y qué no

Aquí toca ser honesto, porque el marketing de esta categoría es optimista.

**Se detecta bien** lo que tiene formato fijo y verificable:

- Correos electrónicos
- Teléfonos con prefijo reconocible
- Documentos de identidad con dígito de verificación (cédula, NIT)
- Fechas
- IBAN, tarjetas, matrículas

**Se detecta peor** lo que depende del contexto:

- Nombres sin etiqueta previa («Juan» a secas, en mitad de una frase)
- Nombres escritos de forma inusual o con errores de OCR
- Direcciones informales («al lado de la panadería»)
- Identificadores internos («expediente 4471-B»)

La cifra que conviene recordar: los anotadores **humanos** de StarCoder
([arXiv:2305.06161](https://ar5iv.labs.arxiv.org/html/2305.06161)) alcanzaron
99 % de cobertura en correos, 89 % en nombres y **53 % en identificadores
genéricos**, tan poco que excluyeron esa categoría del entrenamiento. Si las
personas anotando a mano sacan un 53 %, ninguna herramienta automática va a
darte el 100 %.

**Consecuencia práctica:** revisa el resultado. Una buena herramienta te resalta
cada hallazgo para que puedas leerlos en treinta segundos antes de copiar.

## Un detalle técnico que costó un fallo real

Si escribes las reglas tú, cuidado con los espacios.

Una expresión regular que use `\s*` entre las partes de un nombre **cruza saltos
de línea**. En un documento con el nombre al final de una línea, eso captura la
primera palabra de la línea siguiente y, peor, deja fuera parte del nombre. En un
caso real filtró el apellido de un paciente.

Para separadores dentro de un nombre, usa solo espacio y tabulador: `[ \t]`.

## Cuándo esto no basta

Anonimizar reduce el dato personal que sale, que es exactamente el principio de
minimización del RGPD (artículo 5.1.c) y el espíritu de la ley 1581 de 2012 en
Colombia. No te convierte en cumplidor automático:

- Un texto anonimizado puede seguir siendo **reidentificable** por el contexto:
  si el documento dice «el único neurocirujano del hospital de un municipio de
  4.000 habitantes», el nombre sobra.
- Si el documento es sensible por su **contenido** y no por sus nombres —una
  estrategia comercial, un diseño no publicado—, anonimizar no protege nada.
- El **responsable del tratamiento sigues siendo tú**. La herramienta reduce el
  riesgo; no lo asume.

Para esos casos, la opción es un modelo local (Ollama, LM Studio) o un servidor
MCP que procese en tu máquina, donde el texto no sale en absoluto.

## Cómo hacerlo ahora

En el navegador, sin instalar nada: suelta el PDF en
[PDF a Markdown con anonimización](/es/pdf-a-markdown/). Te enseña el texto con
cada hallazgo resaltado, te deja copiarlo y, cuando vuelvas con la respuesta de
la IA, la restaura con los datos reales en la misma pestaña.

En terminal, si es parte de un flujo:

```bash
npx sirdas anonymize contrato.pdf -o anonimo.md --map mapa.json
# … consulta al modelo con anonimo.md …
npx sirdas restore respuesta.md --map mapa.json
```

El mapa es un archivo tuyo, en tu disco. Si lo pierdes, la anonimización deja de
ser reversible; si lo compartes, deja de ser anonimización.
