Pregunta de la semana
¿Qué tiene que saber una tabla de cada pieza para que el corpus se pueda reconstruir, citar y defender sin volver a la fuente?
Por qué esta semana
Hasta aquí el corpus es una carpeta crudo con una bitácora de descarga. Esta semana le da su columna vertebral: el catálogo maestro, una tabla con una fila por pieza y una columna por cada cosa que hay que saber de ella. El catálogo no es un inventario ni un adorno administrativo. Es el lugar donde la decisión de la semana 1 queda escrita pieza por pieza, donde la procedencia de la semana 3 se vuelve consultable, y donde el análisis de las semanas 6 y 7 va a buscar qué se puede decir de cada texto. Un corpus sin catálogo no se puede citar; un catálogo que no se valida no se puede creer. La semana enseña a construirlo con pandas, a limpiar sus duplicados con hash y a someterlo a reglas de integridad antes de usarlo.
Contenido de la sesión
-
El catálogo responde las preguntas que la cadena de procedencia dejó planteadas, y responde una por columna. De dónde salió la pieza: fuente y dirección. Cuándo fue producida y cuándo fue tomada: dos fechas distintas que se confunden con frecuencia. Quién la produjo y en qué situación: la escena, que en prensa es el periódico y la sección, y en normas es la entidad y el tipo de acto. Bajo qué régimen se puede usar: derechos. Por qué está en el corpus: el criterio de inclusión del protocolo que la hizo entrar. Y cómo se sabe que es la misma: el hash. Lo demás es útil; esto es obligatorio.
-
El esquema del curso tiene catorce campos y se adopta tal cual, para que los catálogos de todos los estudiantes se puedan comparar y para que los cursos que reciben el catálogo como documento de entrada, Codificación cualitativa con IA en ciencias sociales, donde el corpus se codifica con el modelo como codificador auxiliar, y Patrones estables en datos de las ciencias sociales, donde se le aplican agrupamientos y redes de coocurrencia, lo lean sin traducción. Los campos obligatorios son
id,titulo,fuente,url,fecha_documento,fecha_descarga,escena,derechos,criterio_inclusion,hash_sha256yruta_crudo; los opcionales sonautor,ruta_limpioynotas.a Un proyecto puede añadir columnas; no puede quitar las obligatorias. La plantillaplantillas/catalogo-maestro.mddescribe cada campo, su formato y un ejemplo.
-
El identificador es propio, estable y opaco. Propio porque lo asigna el investigador y no la fuente: si la fuente renumera o desaparece, el corpus no cambia. Estable porque una vez asignado no se reutiliza: una pieza excluida conserva su identificador con la nota de exclusión, y la siguiente recibe uno nuevo. Opaco porque no codifica información que pueda cambiar:
P-0042sirve;ElTiempo-1910-marzo-nota3deja de servir el día en que se descubre que la nota era de abril. Todo lo que el identificador quisiera decir se dice en las otras columnas. -
Deduplicar es la primera limpieza del catálogo, y se hace con el hash antes que con los ojos. Dos piezas con el mismo SHA-256 son el mismo archivo byte a byte: una se conserva y la otra se anota como duplicado de la primera. Los casi duplicados, que difieren en espacios, en mayúsculas, en una tilde perdida por el OCR o en una línea de encabezado, no comparten hash, y para detectarlos hay que decidir qué diferencias se ignoran.b Esa decisión es del investigador, se escribe en el cuaderno, y la mini app muestra cómo cambia el resultado según qué se normaliza antes de comparar.
- Validar la integridad es someter el catálogo a reglas antes de confiar en él, y escribir las reglas en el cuaderno para que se apliquen cada vez que el catálogo cambie. Las reglas del curso son cinco: ningún campo obligatorio vacío; las fechas con formato ISO y la de descarga posterior a la del documento; el hash de la columna igual al hash recalculado del archivo en
ruta_crudo; ningún identificador repetido; y ningún criterio de inclusión que no exista en el protocolo. Un catálogo que no pasa las cinco no entra al análisis. La mini app aplica las tres primeras a diez registros y explica, para cada falla, qué dejaría de poder reconstruirse.
- pandas entra esta semana con tres operaciones y no más: leer una tabla desde CSV, filtrar filas por una condición, y agrupar por una columna para contar. Con las tres, el estudiante responde las preguntas que un lector le hará a su corpus: cuántas piezas por fuente, cuántas por año, cuántas por criterio de inclusión, cuántas con derechos restringidos. Las respuestas son la primera descripción del corpus, y van al informe de la semana 8 tal como salen del cuaderno, con la celda que las produjo.
- El catálogo preliminar sale de la sesión con las piezas que el estudiante ya tiene en
crudo, generado por el cuaderno y no a mano. Que lo genere el cuaderno es lo que lo hace reproducible: si entran veinte piezas más la semana siguiente, se ejecuta de nuevo y el catálogo crece sin que nadie copie celdas. Lo que no sale del cuaderno, como la escena o el criterio de inclusión, se completa en una tabla aparte que el cuaderno lee y une al catálogo, de modo que las decisiones a mano también queden en un archivo con fecha.
IA y exigencia
Se le pide al modelo que proponga, a partir del protocolo del estudiante, valores de escena y criterio_inclusion para diez piezas, dándole el texto de cada una. El estudiante revisa las diez propuestas contra su lectura, acepta, corrige o rechaza cada una, y anota el resultado en una columna propuesta_modelo que el catálogo conserva al lado del valor decidido. Lo que debe poder defender sin la máquina es cada regla de integridad: por qué esa regla, qué falla detecta, y qué pasaría si no estuviera.
Lecturas
Central
- Gibbs, G. (2012). El análisis de datos cualitativos en investigación cualitativa. Madrid: Morata. Cap. 3, "Preparación de los datos".
- Wilkinson, M. D. et al. (2016). "The FAIR Guiding Principles for scientific data management and stewardship". Scientific Data 3, 160018. https://doi.org/10.1038/sdata.2016.18
Complementaria
- pandas development team. pandas: Getting started y 10 minutes to pandas. https://pandas.pydata.org/docs/user_guide/10min.html
- Python Software Foundation. Módulo
hashlib. https://docs.python.org/es/3/library/hashlib.html - Gebru, T., Morgenstern, J., Vecchione, B., Wortman Vaughan, J., Wallach, H., Daumé III, H. y Crawford, K. (2021). "Datasheets for Datasets". Communications of the ACM 64(12), 86-92. https://arxiv.org/abs/1803.09010
- Gitelman, L. (ed.) (2013). "Raw Data" Is an Oxymoron. Cambridge, MA: MIT Press. Introducción.
Guía de lectura
- Gibbs trata la preparación de datos como una serie de decisiones sobre qué conservar del contexto de producción: quién habló, dónde, en qué condiciones. Lea su lista pensando en la columna
escena. ¿Qué datos de la situación de producción de sus documentos se perderían si solo guardara el texto? - Los principios FAIR fueron escritos para datos científicos y hablan de metadatos legibles por máquinas. Traduzca cada principio al catálogo. ¿Cuál de los cuatro principios cumple hoy su carpeta
crudoy cuál no? - Gitelman sostiene que no hay datos crudos: todo dato fue tomado por alguien con un criterio. El curso llama
crudoa una carpeta sabiendo eso. ¿En qué sentido el archivo que usted descargó ya no es crudo, y dónde queda registrado ese sentido? - Gebru y sus coautores proponen una ficha para cada conjunto de datos con preguntas sobre motivación, composición y recolección. ¿Qué pregunta de esa ficha no puede responder hoy sobre su corpus?
Taller de la segunda hora
Construcción del catálogo preliminar con el cuaderno. Bloques en practicas/cuaderno-apoyo.md, sección "Semana 4".
- Recorrer
crudoy calcular el SHA-256 de cada archivo; unir el resultado a la bitácora de descarga por la ruta. - Asignar identificadores propios en orden de descarga.
- Detectar duplicados exactos por hash; anotar en
notascuál conserva y cuál se excluye. - Leer la tabla de decisiones a mano (escena, criterio, derechos) y unirla al catálogo por
id. - Aplicar las cinco reglas de integridad y listar las filas que fallan.
- Guardar
catalogo.csvy producir tres conteos: por fuente, por año, por criterio.
| Regla | Qué comprueba | Qué se rompe si falla |
|---|---|---|
| 1 | Ningún campo obligatorio vacío | Una pregunta de la cadena sin respuesta |
| 2 | Fechas en formato ISO; descarga posterior al documento | La pieza no se puede situar |
| 3 | Hash de la columna igual al recalculado | No se sabe si el archivo es el que se tomó |
| 4 | Ningún id repetido | Dos piezas se citan igual |
| 5 | Criterio de inclusión existe en el protocolo | La pieza entró sin razón escrita |
Guion de la sesión
| Momento | Docente | Estudiante | Material |
|---|---|---|---|
| 0 a 10 min | Abre el catálogo del caso demostrativo y hace preguntas que solo él puede responder | Anota qué preguntas no responde su registro de la semana 2 | catalogo.csv del caso |
| 10 a 30 min | Expone el esquema campo por campo con la figura 4 | Marca en su registro qué campos ya tiene y cuáles faltan | Figura 4, plantilla del catálogo |
| 30 a 45 min | Deduplicación con la mini app: cambia normalizaciones en vivo | Prueba con dos textos propios casi iguales | apps/deduplicacion-hash.html |
| 45 a 60 min | Validación con la mini app: rompe registros y lee la explicación | Corrige los diez registros hasta que todos pasen | apps/validador-catalogo.html |
| 60 a 70 min | Pausa | ||
| 70 a 110 min | Acompaña la construcción del catálogo propio | Ejecuta los seis pasos del taller | cuaderno-apoyo.md, sección 4 |
| 110 a 120 min | Pide los tres conteos y los proyecta de dos estudiantes | Compara sus conteos con su protocolo |
Notas para el docente. Lo que suele fallar: el estudiante quiere identificadores con significado y se resiste a los opacos; el ejemplo de la nota mal fechada suele convencer. El segundo fallo es la unión de tablas por id en pandas, donde un espacio de más deja filas sin pareja; mostrar el error y la función strip. El tercero es el hash que no coincide porque el archivo se abrió y guardó con un editor que cambió los finales de línea: es la mejor demostración de por qué crudo no se toca.
Bitácora
El cuaderno de la sesión con el catálogo preliminar, la lista de filas que fallan las reglas y lo que piensa hacer con ellas. Las propuestas del modelo para escena y criterio, con su decisión pieza por pieza. Una pregunta abierta sobre un campo que no sabe cómo llenar para alguna fuente.
Para la próxima semana
Leer Rawson y Muñoz (2019), "Against Cleaning", y Cordell (2017) sobre el OCR sucio. Abrir tres archivos de crudo y anotar todo lo que no es texto del documento: encabezados, números de página, saltos, caracteres extraños. La semana 5 decide qué hacer con eso y qué se pierde al hacerlo.