Pregunta de la semana
Cuando se limpia un texto para que la máquina lo lea, ¿qué se decide, quién lo decide y qué deja de poder verse?
Por qué esta semana
El catálogo está validado y los archivos crudos intactos. Antes de leerlos computacionalmente hay que convertirlos en texto que un programa procese igual en todas las piezas: una sola codificación, una sola forma de las tildes y las comillas, una segmentación en unidades comparables, sin encabezados ni números de página. Esa operación se llama limpieza y suele presentarse como trámite. El curso la trata como lo que es: una serie de decisiones sobre qué cuenta como texto y qué no, cada una de las cuales borra algo que podría haber sido evidencia. Rawson y Muñoz (2019) lo dicen sin rodeos: limpiar es hacer que los datos quepan en un modelo que alguien eligió. La semana enseña a limpiar bien y, sobre todo, a escribir lo que cada limpieza pierde, para que el análisis de la semana 6 sepa sobre qué está mirando.
Contenido de la sesión
-
Limpiar es decidir qué no es texto del documento. En una nota de prensa digitalizada hay texto de la nota, pero también el nombre del periódico en el encabezado, el número de página, la publicidad en la columna de al lado que el OCR mezcló, los guiones de corte de línea, y los caracteres que la digitalización inventó. Qué se quita y qué se conserva depende de la pregunta: para un estudio del léxico de las notas, el encabezado sobra; para un estudio de cómo se ubicaban las noticias en la página, el encabezado y la publicidad vecina son el dato. No hay una limpieza correcta; hay una limpieza coherente con el protocolo y escrita en el cuaderno.
-
La codificación es la primera capa y la más silenciosa. Un archivo es una secuencia de bytes; la codificación dice qué carácter representa cada secuencia. Si el archivo fue guardado en CP1252 y se lee como UTF-8, las vocales con tilde y la eñe se vuelven pares de signos sin sentido, y un programa que cuenta palabras contará "año" como una palabra distinta de "año".a El curso enseña a detectar la codificación de origen, a convertir todo a UTF-8 una sola vez al pasar de
crudoalimpio, y a verificar la conversión buscando las secuencias típicas del error.
-
El OCR es la segunda capa, y su error no es ruido aleatorio sino sistemático. El reconocimiento óptico de caracteres confunde lo que se parece en la tipografía de la época: la ese larga con la efe en impresos antiguos, la eñe con la ene cuando la tilde se perdió en el escaneo, la ele minúscula con el uno, las ligaduras con secuencias extrañas. Cordell (2017) muestra que el OCR sucio de los periódicos del siglo XIX es él mismo un objeto histórico: dice cómo se digitalizó, con qué prisa, con qué modelos. El curso enseña a medir cuánto error hay en una muestra leída a mano, a corregir solo lo sistemático y documentado, y a nunca corregir el crudo.
-
La normalización es la tercera capa y tiene reglas técnicas precisas. Unicode permite escribir la misma letra con tilde de dos maneras, como un carácter compuesto o como letra más tilde combinante, y un programa las cuenta como distintas si no se unifican; la forma NFC resuelve eso.b Los espacios múltiples, los saltos de línea dentro de un párrafo, las comillas tipográficas frente a las rectas, los guiones de distintas longitudes: todo eso se unifica para que las búsquedas de la semana 6 encuentren lo que buscan. Lo que no se unifica sin decisión explícita son las mayúsculas, porque distinguen nombres propios, ni las tildes, porque distinguen palabras.
-
Segmentar es decidir cuál es la unidad de análisis, y la decisión se hereda del protocolo. Un corpus de prensa puede analizarse por nota, por párrafo o por oración; un corpus normativo por norma, por artículo o por inciso. Cada unidad produce conteos distintos y responde preguntas distintas. El curso segmenta con expresiones regulares sencillas y guarda la segmentación como una columna más: cada unidad sabe a qué pieza del catálogo pertenece y en qué posición está. Así una concordancia de la semana 6 puede devolver no solo la línea sino el identificador y el lugar exacto, que es lo que una cita necesita.
-
Lo que se pierde se escribe. Esta es la regla que distingue el curso de un tutorial de limpieza. Cada operación del cuaderno de limpieza lleva arriba una celda que dice qué quita, por qué, y qué pregunta ya no se podrá responder con el texto limpio. Quitar los encabezados pierde la página; unificar comillas pierde la distinción entre cita y énfasis que algunos impresos marcaban con ellas; segmentar por oración pierde la frontera del párrafo; corregir el OCR pierde la huella de la digitalización. Nada de eso es un error, siempre que el crudo exista y la pérdida esté anotada.
Las dos actitudes ante la limpieza producen archivos parecidos y corpus distintos.
| La limpieza como trámite | La limpieza como decisión |
|---|---|
| Un patrón largo quita todo de una vez | Un patrón por operación, con antes y después |
| Se quitan tildes y mayúsculas para que las búsquedas funcionen | Las tildes y las mayúsculas se conservan salvo decisión escrita |
| El OCR se corrige donde se ve | El error de OCR se mide en una muestra y se anota por fuente |
| El crudo se edita cuando algo estorba | El crudo no se toca; el hash lo vigila |
| El texto limpio parece el documento | El texto limpio sabe en qué deja de parecerse |
- El corpus queda en tres versiones y el catálogo sabe dónde está cada una. La carpeta
crudono se toca; la carpetalimpiotiene un archivo por pieza en UTF-8, sin lo que el protocolo declaró ajeno al texto; y una tabla de unidades, generada por el cuaderno, tiene una fila por segmento con su identificador de pieza y su posición. La columnaruta_limpiodel catálogo apunta a la segunda; el cuaderno de limpieza es el puente entre las dos y documenta, operación por operación, lo que separa a una de otra.
IA y exigencia
El modelo es bueno para proponer expresiones regulares y para explicar por qué una no funciona, y esta semana se usa para eso: el estudiante describe en palabras lo que quiere quitar o separar, el modelo propone el patrón, y el estudiante lo prueba sobre diez piezas y mira lo que el patrón quitó de más y de menos. También se le puede pedir que corrija OCR en un fragmento, con una condición: la corrección se compara con el crudo y se registra como propuesta, nunca se escribe sobre limpio sin revisión. Lo que debe poder defender sin la máquina es la lista de pérdidas: qué quitó cada operación y qué pregunta se cerró con ella.
Lecturas
Central
- Rawson, K. y Muñoz, T. (2019). "Against Cleaning". En M. K. Gold y L. F. Klein (eds.), Debates in the Digital Humanities 2019. Minneapolis: University of Minnesota Press. Acceso abierto: https://dhdebates.gc.cuny.edu/
- Cordell, R. (2017). "'Q i-jtb the Raven': Taking Dirty OCR Seriously". Book History 20, 188-225. https://doi.org/10.1353/bh.2017.0006
Complementaria
- Python Software Foundation. Módulos
unicodedatayre. https://docs.python.org/es/3/library/unicodedata.html y https://docs.python.org/es/3/library/re.html - Python Software Foundation. Unicode HOWTO. https://docs.python.org/es/3/howto/unicode.html
- Drucker, J. (2011). "Humanities Approaches to Graphical Display". Digital Humanities Quarterly 5(1). http://www.digitalhumanities.org/dhq/vol/5/1/000091/000091.html
- The Programming Historian en español. Lección "Limpieza de datos con OpenRefine" y lección "Normalizar datos textuales con Python". https://programminghistorian.org/es/
Guía de lectura
- Rawson y Muñoz escriben desde un proyecto concreto, los menús históricos de la biblioteca pública de Nueva York, y muestran que "limpiar" los nombres de los platos borraba la variación que era el objeto de estudio. ¿Qué variación de su corpus desaparecería si unificara ortografía, mayúsculas o nombres?
- Cordell trata el error del OCR como un rastro de las condiciones de digitalización y no como basura. La actitud vale para cualquier corpus heredado. ¿Qué sabe usted de cómo fueron digitalizados sus documentos, y dónde lo va a anotar?
- Drucker distingue datos, lo dado, de lo que ella llama capta, lo tomado. Un texto limpio es capta dos veces: tomado de la fuente y tomado del crudo. ¿Qué decisiones de toma quedan invisibles cuando alguien lee solo el texto limpio?
Taller de la segunda hora
Cuaderno de limpieza sobre tres piezas del caso demostrativo y luego sobre las propias. Bloques en practicas/cuaderno-apoyo.md, sección "Semana 5".
- Detectar la codificación de cada archivo de
crudoy convertir a UTF-8 enlimpio. Buscar "Ã" en el resultado y anotar cuántas apariciones quedan. - Leer a mano cien palabras de una pieza con OCR y contar los errores: ese es el porcentaje de error estimado de la fuente, y va al catálogo en
notas. - Quitar encabezados, paginación y restos con expresiones regulares, mostrando antes y después de cada patrón sobre una pieza.
- Normalizar con NFC, unificar espacios, comillas y guiones. Decidir por escrito si se tocan mayúsculas y tildes, y por qué no.
- Segmentar según la unidad del protocolo y guardar la tabla de unidades con
id, posición y texto. - Escribir la tabla de pérdidas.
| Operación | Qué quita o cambia | Qué pregunta ya no se puede responder | Dónde queda el original |
|---|---|---|---|
| Conversión a UTF-8 | crudo | ||
| Encabezados y paginación | crudo | ||
| Normalización NFC y espacios | crudo | ||
| Segmentación | limpio |
Guion de la sesión
| Momento | Docente | Estudiante | Material |
|---|---|---|---|
| 0 a 10 min | Proyecta una nota del caso en crudo y pregunta qué es texto de la nota | Marca en una copia impresa lo que quitaría | Nota del caso en crudo |
| 10 a 25 min | Codificación: muestra el mojibake, lo detecta y lo convierte en vivo | Repite con un archivo propio | Archivo en CP1252 |
| 25 a 40 min | OCR: lee cien palabras con el grupo y cuentan errores juntos | Anota el porcentaje | Página escaneada del caso |
| 40 a 60 min | Normalización y segmentación con la figura 5; la tabla de pérdidas | Llena la primera fila de la tabla | Figura 5 |
| 60 a 70 min | Pausa | ||
| 70 a 110 min | Acompaña el cuaderno de limpieza propio | Ejecuta los seis pasos del taller | cuaderno-apoyo.md, sección 5 |
| 110 a 120 min | Lee dos tablas de pérdidas en voz alta | Compara con la suya |
Notas para el docente. Lo que suele fallar: el estudiante quiere limpiar todo de una vez con un patrón largo que el modelo escribió y no puede explicar; pedir un patrón por operación, con su antes y después. El segundo fallo es quitar tildes "para que las búsquedas funcionen", lo que fusiona palabras distintas; mostrar un par mínimo del propio corpus. El tercero es editar un archivo de crudo para corregir un error evidente; recordar que el hash del catálogo dejará de coincidir y que la regla 3 lo detectará.
Bitácora
El cuaderno de limpieza con la tabla de pérdidas completa y el porcentaje de error de OCR por fuente. Las expresiones regulares que propuso el modelo, cuáles funcionaron y qué quitaron de más. Una pregunta abierta sobre una decisión de limpieza que no sabe si fue correcta.
Para la próxima semana
Leer Sinclair (1991), capítulos 1 y 8, y el capítulo 1 de Moretti (2015), "Conjeturas sobre la literatura mundial". Tener el corpus propio en limpio con la tabla de unidades. Terminar el catálogo maestro y el cuaderno que lo regenera: se entregan en la semana 6.