Presentación

Estilometría, análisis de textos en R para filólogos

La estilometría es el análisis estadístico de textos literarios y trata de identificar las semejanzas y diferencias que existen entre ellos para agruparlos de acuerdo con sus características lingüísticas con el objetivo de detectar señales estilísticas que puedan servir para establecer su autoría, su ubicación genérica, sus orígenes, estilo… El término lo acuñó el filósofo polaco Wincenty Lutosławski (1863–1954) en Principes de stylométrie. Los primeros análisis, aunque sin conexión con Lutosławski, son los de T. C. Mendenhall (1841-1924) en «A Mechanical solution of a literary problem».

El análisis de textos automatizado, también conocido como minería de textos, es una serie de técnicas de investigación que utiliza el análisis computacional para desvelar patrones en amplios conjuntos de textos. Al hacer uso de técnicas informáticas es un ámbito que está dominado por los especialistas en de esta área. Gracias a ellos disponemos de un gran número de herramientas de las que los filólogos podemos aprovecharnos en nuestros estudios y análisis. En algunos casos estas herramientas han nacido o se han desarrollado dentro de la lingüística de corpus. De hecho, el punto de partida de cualquier análisis de texto automatizado parte de la creación o acceso a un corpus textual que se quiere investigar. Algunas de las herramientas más conocidas son AntConc para el análisis de corpus y VoyantTools, un conjunto de utilidades en red muy interesantes para el análisis de textos. Programming Historian tiene sendos tutoriales para aprender a utilizar tanto AntConc como Voyant. Tienes una interesante recopilación de herramientas para el análisis textual y análisis de corpus en Tools for Corpus Linguistics.

Con herramientas como las que acabo de mencionar se obtienen multitud de resultados léxicos –índices léxicos, índices léxicos inversos, colocaciones, concordancias– y numéricos que después hay que procesar con paquetes estadísticos, como SSPS –de pago, y muy caro–. Lo más normal es usar las hojas de cálculo de paquetes ofimáticos como Excel de Office, la de Spreadsheet de Google o la de LibreOffice / OpenOffice, pero eso supone importar datos y manejar esos programas para después obtener nuevos resultados y gráficos que a menudo se han de conseguir con otro programa más. Este conjunto puede resolver muchas de las preguntas que te puedas plantear. Una muy tonta que no puede responder AntConc, por ejemplo, es ¿cuántas palabras tiene cada capítulo de cada una de las entregas de la serie Alatriste de Arturo Pérez-Reverte? ¿Qué palabras son únicas a cada entrega de la serie de novelas de Petra Delicado de Giménez Barlett? ¿Cuáles son las palabras características de Javier Marías? Tampoco podría, a pesar de que ofrece gráficas de dispersión, contarnos si el capitán Ajab y Moby Dick, la ballena, protagonistas de la novela de Herman Melville, aparecen juntos en los mismos capítulos o hay una distribución que explique el progreso de la acción.

Para responder muchas de las preguntas que nos podemos hacer desmontando los textos con los ordenadores, existe un lenguaje de programación de alto nivel llamado R. Aparentemente es un programa de estadística, y básicamente lo es, pero se puede utilizar con gran provecho en los estudios de filología, tanto de lingüística (Baayen 2008, Gries 2013, Gries 2017, Desagulier 2017, Levshina 2015, Winter 2019) como de literatura (Jockers 2014), y también de cualquier otro campo de las humanidades (Arnold y Tilton 2015), puesto que es un programa de código abierto (y gratuito) existe una amplísima comunidad de programadores, usuarios, investigadores y profesores que crean librerías que sirven para llevar a cabo análisis muy interesantes. Es más, la red está cuajada de tutoriales que te pueden enseñar a realizar análisis de textos con R, pero la mayoría de estos tutoriales presuponen un cierto conocimiento de R y, además, están generalmente en inglés, con lo que a la complicación de aprender a programar hay que añadir la dificultad comunicativa.

Aprender R no es sencillo. La verdad es algo complicado y la curva de aprendizaje es bastante empinada hasta que se comienza a obtener resultados útiles. Pero una vez que ya se empieza a dominar puede servir para muchísimas tareas que antes realizabas a mano y en las que invertías gran cantidad de tiempo. Te dejaré que las vayas descubriendo, no obstante, muchas te las iré apuntando a lo largo de los siguientes capítulos. Por lo tanto, el objetivo de este libro es enseñarte a programar en R para realizar análisis de textos automatizados y aplicarlo a textos literarios. No tienes que saber nada de programación, tan solo manejarte con tu ordenador, ganas de aprender y pequeñas dosis de paciencia.

Sobre el título

El título de este libro requiere una pequeña aclaración. Desde hace varios años vengo propugnando entre los filólogos españoles y del español la necesidad de utilizar procedimientos informáticos (y estadísticos) en el análisis de textos literarios más allá de las concordancias. Sin embargo, los grandes de la materia filológica han desdeñado estos análisis como meros cuentapalabras que no pueden superar en nada las técnicas filológicas y de la hermenéutica, pues no tienen interés alguno en aquello que sea empírico y pueda refutar sus apreciaciones. Uno de los personajes de Antonio Orejudo, en Un momento de descanso (2011), dice que

Los humanistas seguían empeñados en trabajar con textos. Textos que comentaban otros textos, que a su vez glosaban otros más remotos, en una espiral hacia arriba que les había hecho perder el contacto con el mundo empírico.

Este desinterés por los análisis estilométricos es equiparable al de los historiadores por los resultados de los análisis genéticos que echan por tierra la verdad histórica, su verdad histórica. Los historiadores parecen no aceptar el reciente hallazgo (Saiz et al. 2019) de que la dominación arabo-musulmana no dejó un mayor rastro genético de procedencia norteafricana en el reino Nazarí, el último enclave de esa dominación, que en el resto de España. Otro caso, problemático para algunos historiadores, es la constatación, según los análisis de ADN, de que los celtas irlandeses tienen antecedentes genéticos en la Península Ibérica y no en la Europa Central de las áreas de La Tène y Hallstat (McEvoy et al. 2004).

Esto no quiere decir que los hallazgos realizados con las técnicas estilométricas sean la verdad absoluta, todo lo contrario, son un elemento más que puede ayudar a decantar y afinar teorías y conclusiones previas apoyadas únicamente en las técnicas filológicas (García-Reidy 2019), por lo que puede ser una fuente para desestimar teorías algo descabelladas, como la de Rosa Navarro Durán (2019) de que María de Zayas sea un heterónimo de Alonso Castillo Solórzano. Un análisis estilométrico ha permitido demostrar la inconsistencia de la afirmación.

Estas técnicas también pueden ser la ayuda necesaria para explorar ciertas peculiaridades de un texto o conjunto de ellos que la lectura atenta y detenida no permiten hacerlo porque no permiten ver patrones que aunque están delante de nosotros, no los podemos ver con facilidad.

Uso

En el primer capítulo explico cómo instalar R y otro componente que te hará la vida mucho más sencilla, RStudio. A partir del segundo comienza la acción. Todo el código que vas a necesitar y ejecutar aparecerá en casillas con un fondo gris como esta

Los resultados que se hayan de imprimir en la pantalla aparecerán en casillas de fondo blanco como la que hay a continuación, pero con otra peculiaridad tipográfica: los resultados aparecen siempre precedidos por dos almohadillas ## que se imprimen en el margen izquierdo de cada línea de resultados.

## [1] 11

Estas almohadillas no aparecerán en tu ordenador, son una convención gráfica del lenguaje con el que se ha creado este libro.

A veces, las líneas de código son muy largas y rebasan el margen derecho (figura 0.1). En estos casos en la parte baja de la caja habrá un deslizador que te permitirá desplazarte por toda la línea.

Caja de código con deslizador

Figura 0.1: Caja de código con deslizador

La manera más sencilla de utilizar los bloques de código que haya en esas cajas es marcarlos, cortarlos y pegarlos en el editor de RStudio. Si prefieres copiarlo, vigila que no pongas comas, corchetes, paréntesis o comillas de más o de menos y respeta, también, las mayúsculas y minúsculas que pueda haber, pues tienen significado. La mayoría de los errores que se cometen a la hora de programar son simples erratas tipográficas.

A veces encontrarás dentro de las explicaciones cosas impresas con este tipo de letra. Son siempre funciones y expresiones de R o informaciones que aparecerán en la consola de tu ordenador. De nuevo, es una convención tipográfica.

A lo largo de los capítulos encontrarás cajas de fondo amarillo como estas las que tienes a continuación. Contienen información interesante e importante. ¡No te las saltes!

Información específica para quien use un ordenador con sistema operativo de Windows.
Información específica para quien use un ordenador con sistema operativo de Apple.
Propuesta de ejercicios y prácticas. Por lo general las soluciones estarán al final de la página, y podrás acceder a ellas pulsando un numerito de nota como este1.
Ofrece alguna información adicional que en un libro impreso iría en una nota a pie de página (o final).
Ofrece algún truco de programación o de trabajo.
Esta caja tendrá algún tipo de aviso.
La información esta casilla avisa de un posible peligro, por lo que debes actuar con cierta cautela.
Destaca alguna cosa que crea que es importante.

Agradecimientos

Este libro no habría existido si Elena González Blanco, creadora del Laboratorio de Innovación en Humanidades Digitales no me hubiera dicho, a raíz de mi artículo «Lingüística forense y crítica textual. El caso Ayala–Cervantes», «ahora solo te falta saber R». ¿R? No tenía ni la más remota idea de qué era eso. Google me rescató en pocos minutos y me abrió un mundo insospechado. El primer gran hallazgo fue el libro de M. L. Jockers (2014), que inevitablemente me llevó a Jockers (2013). Después, la invitación a participar en los cursos de verano de la Summer School, la libertad de enseñar lo que creyera pertinente en el máster de Estudios Filológicos Superiores: Investigación y Aplicaciones Profesionales de la Universidad de Valladolid y, por último, el curso de Estilometría y Análisis de Textos con R de LinhdUNED. Todas estas iniciativas docentes me permitieron crear material para enseñar a programar en R y aplicarlo a los estudios literarios en lengua española.

Además de a Elena González Blanco, que hubo de abandonar el mundo académico, he recibido la ayuda y el apoyo de Salvador Ros y Antonio Robles de la ETSI de Informática de la UNED, especialmente Antonio, con quien he compartido la docencia en el curso Estilometría y Análisis de Textos con R de LinhdUNED hasta el curso 2019. A Guillermo González Pascual, alumno del grado en Español: Lengua y Literatura de la UVa, posteriormente alumno del máster de Estudios Filológicos y hoy alumno del programa de doctorado de la UVa, que sirvió de conejillo de indias y que probó que las cosas funcionaran en sistemas Windows. Por último, pero no el último, precisamente, Pedro Carrillo, alumno de filología hispánica en la Universidad de Sevilla, e informático de formación, con el que he discutido muchos de los problemas a la hora de componer este texto en formato electrónico. A todos ellos muchísimas gracias. Sin embargo, el único responsable de los fallos que pueda haber soy yo.


  1. Aquí estará la solución o la explicación. Para volver a la cuestión solo tienes que pulsar el siguiente símbolo