‘Star Wars’ en clase de lengua: cómo hacer un corpus de subtítulos

Hace unas semanas me propusieron montar una actividad en torno a la lingüística para alumnos de 4º de la ESO. Llevo años pensando en actividades de lengua que la Elena-lingüista-de-29-años que hoy conoce le habría gustado hacer en clase a Elena-adolescente-inaguantable-de-15-años, así que decidí llevar a la práctica una de las ideas que llevaba tiempo rondándome: trabajar sobre subtítulos de series y películas para ver las apariciones y colocaciones de palabras en contextos reales, es decir, hacer un corpus de subtítulos de series y películas. Apenas requiere de un ordenador y un poquitín de tiempo de preparación, no es necesario ningún conocimiento previo, no hace falta programar, admite todo tipo de variaciones y resulta la mar de interesante y vistoso. La diversión está asegurada para grandes y pequeños. Así que profes con ganas de montar una actividad de lengua un poco diferente, estudiantes de lingüística a la caza de ideas para el TFG, lingu-interesados y gente ociosa en general, a continuación se explica cómo hacer un corpus lingüístico con subtítulos de series y películas.

¿Qué es un corpus?

Un corpus es una colección de textos, normalmente en formato digital. Podemos tener corpus de muy distinta naturaleza: de noticias de periódicos, de novelas decimonónicas, de textos del siglo XVI, del BOE, incluso de tuits (mi compadre Loz Garrido contaba hace poco cómo confeccionar un corpus de letras de Sabina). Según qué queramos medir, decidiremos con qué tipo de textos queremos confeccionar nuestro corpus. Los corpus vendrían a ser el terrario de los lingüistas, una especie de muestra lingüística sobre la que hacer experimentos: nos permiten ver a pequeña escala el uso de las palabras en un contexto real. Por ejemplo, a partir de un corpus de artículos de periódico, podríamos observar cómo y cuánto se usa la palabra crisis, terrorista, populismo (o el término que nos interese rastrear). Datos como la frecuencia de una palabra, los contextos en los que se usa, los significados que tiene o con qué otros términos aparece se extraen a partir de los corpus. El CORDE, el CREA y el CORPES de la RAE o el Corpus del español de Mark Davis son buenos ejemplos de corpus que están disponibles en internet y que podemos consultar para ver ejemplos reales de palabras en contexto.

El noble arte de confeccionar corpus es un camino lleno de sobresaltos: desde los problemas para acceder a los textos o digitalizarlos hasta cuestiones metodológicas sobre cómo saber si una determinada colección de textos es una muestra representativa para nuestros propósitos y no va a sesgar nuestra observación [Quien quiera navegar por esas procelosas aguas y profundizar en estas cuestiones puede echar vistazo a las cuestiones metodológicas sobre la confección del corpus de Proyecto Aracne o incluso apuntarse al muy recomendable MOOC gratuito de Introducción a la lingüística de corpus que imparte la Universidad de Lancaster].

Los subtítulos como corpus

¿Y si utilizásemos los subtítulos de las películas y series como material para confeccionar un corpus? Los subtítulos tienen muchas ventajas como carne de corpus: resultan fáciles de encontrar en internet y el formato es en última instancia un archivo de texto fácil de procesar. Además, los subtítulos de series o pelis pueden ser una fuente lingüística particularmente atractiva para alumnos de Lengua que estén saturados del Lazarillo. A partir de los subtítulos podemos observar cómo hablan los personajes en la ficción audiovisual, comparar unas películas con otras, ver las palabras más frecuentes de determinadas películas o cuándo y en qué contextos aparece tal o cual término. ¿Aparece mucho la palabra fuerza en la saga de Star Wars? ¿Junto a qué otros términos aparece la palabra jedi? ¿Cuántas veces sale la palabra anillo en El Señor de los Anillos? ¿Qué palabras que aparecen en Narcos nunca salen en Orange is the New Black?

Cómo hacer un corpus de subtítulos paso a paso

El objetivo, por tanto, es confeccionar un corpus con subtítulos de películas y series. El proceso constará de dos partes: primero recopilaremos y procesaremos mínimamente los archivos de subtítulos para poder trabajar sobre ellos (pasos del 1 al 7) y después los cargaremos en un programa gratuito de gestión corpus que nos permitirá hacer búsquedas y sacar datos interesantes de nuestro corpus (8).  Si os queréis simplificar la vida, podéis usar directamente los subtítulos ya limpitos que yo utilicé en la actividad: aquí están las carpetas con los archivos en .txt correspondientes a los subtítulos en español de El Señor de los Anillos, La Guerra de las Galaxias, Narcos, Orange is the new black, Juego de Tronos y How I met your mother. Si partís de estos archivos, podéis pasar directamente al paso 8 de la receta, pero os dejo aquí la receta completa por si queréis utilizar otros subtítulos (o en general tenéis curiosidad para saber qué hacer para “corporizar” un archivo de subtítulos):

Ingredientes

  • Un editor tipo Notepad++, que no es más que un editor de texto plano tipo Bloc de notas pero con esteroides (necesitaremos hacer una mínima edición de los subtítulos para poder utilizarlos como material de corpus y estos editores son la mejor opción).
  • El programa de gestión de corpus AntConc, un programa gratuito disponible para descarga desarrollado por el profesor Laurence Anthony. Una vez tengamos nuestros subtítulos, este programa será el que utilizaremos para hacer búsquedas de palabras. Si no estáis familiarizados con  AntConc, os recomiendo que le echéis un vistazo a los tutoriales que el propio creador de AntConc tiene para que podáis sacarle partido a la herramienta (aquí me voy a centrar más en el tratamiento de los subtítulos que en AntConc en sí).

Receta paso a paso

  1. Encontrar subtítulos en internet es fácil. Para descargarnos los subtítulos de las películas y series sobre las que queramos trabajar podemos hacer una búsqueda genérica en Google o acudir a páginas como Subtitulos.es, OpenSubtitles o Addic7ed, donde están disponibles para descarga subtítulos en español (o en el idioma sobre el que queráis trabajar) de cantidad de películas y series. Aunque la calidad de los subtítulos puede ser variable (y las webs, una fiesta de pop-ups), para nuestros experimentos nos pueden valer (si alguna subtitulación no os convence, las propias webs de subtítulos suelen tener varias versiones de subtítulos para una misma película o episodio).
  2. Nos descargamos el archivo con los subtítulos. Probablamente el archivo que nos descarguemos será de formato .srt (en caso de que el archivo descargado sea un archivo comprimido tipo .zip, tendremos que descomprimirlo primero como tengamos costumbre). No lo tocamos por ahora.
  3. Abrimos el editor de texto plano Notedpad++ y desde el menú Archivo (arriba a la izquierda), le damos a Abrir y abrimos nuestro archivo .srt. ¡Sorpresa! El editor nos muestra en formato texto los subtítulos de la película, precedidos de un número y un código que indica en intervalo de tiempo (hora, minuto y segundos) en el que debe aparecer el subtítulo en la pantalla.

    Archivo .srt de subtítulos abierto con Notepad
  4. Para poder procesar debidamente los subtítulos con AntConc necesitamos borrar primero esos códigos numéricos. Si manejamos regex o programamos en algún lenguaje, este paso es pan comido. Si no, ¡que no cunda el pánico! No tenemos más que ir a la pestaña Buscar->Reemplazar y se nos abrirá una pantallita para hacer búsquedas y sustituciones en el documento. En el apartado “Modo de búsqueda” marcamos la opción “Expresión regular” y en la casilla de búsqueda metemos la siguiente longaniza (copipasteadla sin miedo):
    \d+\r\n\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}
    La casilla de “Reemplazar con” la dejamos en blanco. Le damos a “Reemplazar a todo” sin que nos tiemble el pulso (e incluso si tenemos varios archivos de subtítulos que queremos editar, podemos tenerlos abiertos todos a la vez en Notepad++ y hacer todas las sustituciones de golpe dándole a “Reemplazar en todos los archivos abiertos”).
    ¿Qué ha pasado? Básicamente, le hemos pedido a Notepad++ que nos elimine de golpe todos los códigos numéricos que nos estorbaban. Lo hemos hecho usando expresiones regulares (a.k.a regex), una forma de búsqueda y sustitución con comodines que ofrecen algunos editores y que son gloria bendita: nos hemos cargado en un clic lo que nos habría llevado horas eliminar a mano. [Si alguien tiene curiosidad, lo que esta regex representa es cualquier número de uno o más dígitos, seguido de una línea que contiene la estructura de los intervalos en hora, minuto, segundo y milisegundo]
  5. Con esto ya habremos acabado la edición en la mayoría de los casos, pero podemos tener la mala fortuna de que aparezcan etiquetas HTML que indican cursivas y otras florituras tipográficas. Si queréis eliminarlas, de nuevo hacemos un “reemplazar todo” a golpe de de regex todopoderosas. Con la expresión regular </?.+?> deberíamos quitarnos de en medio las etiquetas que nos estorban.
  6. Ahora tenemos que hacer una pequeña trampa. Con el botón derecho del ratón hacemos clic en cualquier lado del editor y le damos a “Seleccionar todo”. Una vez veamos que todo nuestro texto está seleccionado, hacemos Ctrl+X (cortar de toda la vida). Nuestro texto desaparece del editor, lo tenemos en el cortapapeles (si le damos a “pegar” mediente Ctrl+V, reaparece). Estando el editor en blanco, abrimos la pestaña “Codificación” y seleccionamos la opción “UTF-8 sin BOM” (en caso de que no esté ya seleccionada). Una vez seleccionado, damos Ctrl+V para pegar nuestro texto de nuevo en el editor. ¿Qué hemos hecho? Los textos españoles contienen caracteres especiales (como la Ñ o las tildes) que pueden dar problemas a algunos programas si no van debidamente codificados. Lo que hemos hecho ha sido asegurarnos de que nuestros subtítulos van codificados de tal manera que estos caracteres problemáticos puedan ser correctamente leídos e interpretados por AntConc.
  7. Guardamos el archivo pero, ¡ojo!, desde la opción Archivo->Guardar como. Lo guardaremos en la carpeta que queramos pero siempre con formato .txt (y no como .srt).
    Los pasos del 1 al 7 tendremos que repetirlos con todos los archivos de subtítulos sobre los que queramos trabajar. La buena noticia es que desde Notepad++ y a golpe de regex podemos hacer las sustituciones con un solo clic. Si vais a hacer esto como parte de una actividad de clase con alumnos, lo suyo es que hasta aquí lo hagáis los profes de antemano y a los chicos les deis los archivos de subtítulos ya descargados, limpios y debidamente codificados y la actividad empiece a partir de aquí (aunque puede resultar también muy interesante que vean la pinta que tiene un archivo de subtítulos por dentro).
  8. Pues manos a la obra: ya tenemos nuestro corpus de subtítulos, es decir nuestra colección de archivos con subtítulos limpios y guardaditos como .txt, listos para ser procesados con AntConc. AntConc es un programa al que le podemos cargar archivos .txt para que nos permita hacer búsquedas sobre nuestra colección de textos, ver contextos o sacar frecuencias de palabras. Si no estáis familiarizados con el programa, os recomiendo que le echéis un ojo a los tutoriales del propio creador de AntConc para que os hagáis una idea de todas las funcionalidades que ofrece y veáis qué cosas podéis hacer con él. Resumiendo mucho, no tenéis más que abrir los archivos que queráis cargar desde la pestaña “File->Open file(s)”, y una vez cargados, os dejo algunas primeras ideas para que os ubiquéis (pero, insisto, los tutoriales os resultarán más completos para que podáis sacarle partido).

Sugerencias de búsquedas con AntConc

  • Desde la pestaña “Word List” podéis sacar la cantidad y la lista de todas las palabras contenidas en vuestro corpus (es decir, contenidas en los archivos que hayáis cargado) ordenadas por frecuencia. ¿Decepcionante a primer vista? Sí, siempre son que, de, y, la… Ahora veremos cómo sacar cosas más vistositas.
  • En “Concordance” podéis buscar palabras en vuestro corpus desde la caja de búsqueda y os devolverá el número de apariciones y las frases en las que aparecen. ¿Cuántas veces aparece la palabra jedi en la saga de Star Wars? ¿Y hobbit en ESDLA? Algunas apariciones de palabras casi permiten caracterizar léxicamente a personajes.

  • Para mayor espectacularidad, si hacéis la búsqueda desde “Concordance plot”, podéis obtener un resultado más visual: los archivos se muestran con barras horizontales salpicadas de líneas verticales que indican a qué altura del archivo aparece la palabra buscada.

  • Desde “N-grams” sacáis que palabras suelen estar adyacentes a una palabra dada. Aquí los n-gramas más relevantes con los que aparece fuerza en Star Wars:

  • Desde la pestaña “Colocates” podéis ver qué palabras relevantes suelen aparecer junto a una palabra dada.

  • Y lo mejor, para el final. Las listas de palabras ordenadas por frecuencia tienden a resultarnos decepcionantes porque meta uno Star Wars o la Biblia, al final los primeros puestos los copan palabras tan anodinas (pero fundamentales) como la, de que, y… Para obtener resultados más espectaculares, AntConc permite que utilicemos un corpus como referencia para compararlo con nuestro corpus de trabajo, de tal manera que podamos recuperar aquellas palabras de nuestro corpus de trabajo que tienen una frecuencia anormalmente alta comparada con el corpus de referencia. Es decir, podemos pedirle a AntConc que nos recupere las palabras que aparecen mucho en El Señor de los Anillos y que apenas aparecen en Star Wars. Y al revés, dar como referencia los archivos de El Señor de los Anillos y ver qué palabras son las anormalmente frecuentes en Star Wars (los archivos de referencia los seleccionamos desde “Tool preferences->Keyword list”, y la lista de resultados la sacamos desde la pestaña “Keyword list”). En la imagen, los resultados obtenidos de estas dos pruebas. Como veis, resultan la mar de elocuentes (la R que aparece en segunda posición en la lista de Star Wars corresponde a R2D2). Esta listas de palabras ordenadas por una frecuencia, digamos, ponderada, resultan mucho más informativas que la lista de frecuencias inicial. Los resultados son muy descriptivos para cada una de las dos historias. Aunque anillo aparece en un flamante segundo puesto, en el caso de ESDLA parece que copan la lista nombres propios de personajes (Frodo, Gandalf, Sam, Mordor, Gondor, Sauron, Sméagol, Aragorn, Bilbo, Bolsón), mientras que, aunque en la lista de Star Wars también aparecen personajes (Luke, Anakin, Obi Wan, Skywalker, Vader), hay más términos importantes dentro del universo de cada película (jedi, maestro, canciller, general, droide, senado, república).
A la izquierda, las palabras más relevantes de ESDLA (tomando como referencia los subtítulos de Star Wars). A la derecha, las palabras más relevantes de Star Wars (tomando como referencia ESDLA)

Y hasta aquí la receta sobre cómo transformar archivos de subtítulos en un corpus lingüístico.