UNIVERSIDAD DE COSTA RICA SISTEMA DE ESTUDIOS DE POSGRADO ANÁLISIS DE DESPLAZAMIENTO SEMÁNTICO PREVIO Y POSTERIOR AL COVID-19 EN WORD EMBEDDINGS DIACRÓNICOS DEL ESPAÑOL Trabajo final de investigación aplicada sometido a la consideración de la Comisión del Programa de Estudios de Posgrado en Computación e Informática para optar al grado y título de Maestría Profesional en Computación e Informática ESTEBAN RODRÍGUEZ BETANCOURT Ciudad Universitaria Rodrigo Facio, Costa Rica 2022 Dedicatoria Le dedico este trabajo a mi mamá, Maritza Betancourt Alvarado, por su apoyo incondicional y estar siempre presente. ii Agradecimientos Le agradezco al Dr. Edgar Casasola Murillo por su guía durante este proceso del TFIA. También a Dra. Gabriela Marín Raventós y Dra. Kryscia Ramírez Benavides por sus aportes durante la revisión de este trabajo. iii Este trabajo final de investigación aplicada fue aceptado por la Comisión del Programa de Estudios de Posgrado en Computación e Informática para optar al grado y título de Maestría Profesional en Computación e Informá- tica. Dr. Jorge Antonio Leoni de León Representante de la Decana del Sistema de Estudios de Posgrado Dr. Edgar Casasola Murillo Director Dra. Gabriela Marín Raventós Asesora Dra. Kryscia Ramírez Benavides Asesora Dr. Gustavo López Herrera Representante de la Directora del Programa de Posgrado en Computación e Informática Esteban Rodríguez Betancourt Sustentante iv Índice general Dedicatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Hoja de Aprobación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Índice General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Índice de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Índice de Cuadros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Índice de Abreviaturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii 1. Introducción 1 1.1. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Estado del arte 6 3. Marco Teórico 8 3.1. Araña web o web crawler . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2. CommonCrawl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3. Word embeddings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.4. Word embeddings diacrónicos . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.5. Clasificación de emociones . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4. Metodología 14 4.1. Mecanismo para la construcción de un word embedding diacrónico . . . 14 4.2. Construcción de un word embedding diacrónico de español previo y posterior a la pandemia por COVID-19 . . . . . . . . . . . . . . . . . . . 15 4.3. Análisis del desplazamiento semántico de casos de estudio particula- res, utilizando el word embedding diacrónico alineado . . . . . . . . . . . 16 v 4.4. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.5. Metodología para el Análisis del Desplazamiento Semántico . . . . . . 17 4.5.1. Agrupamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.5.2. Medición del Desplazamiento Semántico . . . . . . . . . . . . . 18 4.5.3. Medición de Similitud con Emociones . . . . . . . . . . . . . . . 19 4.5.4. Medición del Desplazamiento Semántico Relativo a Emociones 21 4.5.5. Análisis de desplazamiento semántico . . . . . . . . . . . . . . . 21 4.5.6. Selección de casos de estudio . . . . . . . . . . . . . . . . . . . . 21 5. Resultados 26 5.1. Mecanismo para la construcción de un word embedding diacrónico . . . 26 5.1.1. Selección de fuente de los documentos . . . . . . . . . . . . . . 27 5.1.2. Descarga de los Datos . . . . . . . . . . . . . . . . . . . . . . . . 28 5.1.3. Detección de idioma . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.4. Conversión a UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.5. Normalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.6. Eliminar duplicados . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.1.7. Compresión del corpus . . . . . . . . . . . . . . . . . . . . . . . 30 5.1.8. Características de los Corpus . . . . . . . . . . . . . . . . . . . . 31 5.1.9. Construcción de los word embeddings . . . . . . . . . . . . . . . . 32 5.1.10. Alineamiento de los word embeddings . . . . . . . . . . . . . . . . 33 5.2. Resultados de Desplazamiento Semántico . . . . . . . . . . . . . . . . . 34 5.2.1. Palabras con errores ortográficos o de codificación . . . . . . . . 35 5.2.2. COVID-19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2.3. Mascarillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2.4. Vacunación en general . . . . . . . . . . . . . . . . . . . . . . . . 62 5.2.5. Síntesis del desplazamiento semántico . . . . . . . . . . . . . . . 67 5.3. Resultados de Desplazamiento Semántico Relativo a Emociones . . . . 67 5.3.1. COVID-19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.3.2. Mascarillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.3.3. Vacunación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3.4. Síntesis del análisis de desplazamiento emocional . . . . . . . . 72 6. Conclusiones 73 6.1. Descarga de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.2. Generación de word embeddings . . . . . . . . . . . . . . . . . . . . . . . 73 6.3. Desplazamiento semántico . . . . . . . . . . . . . . . . . . . . . . . . . . 74 vi 6.4. Desplazamiento emocional . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.5. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 A. Algoritmo de compresión 77 B. Listado de Palabras por Emoción 79 C. Cercanía a emociones en palabras de los clústeres 88 C.1. COVID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 C.2. Mascarillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 C.3. Vacunas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 D. Análisis de desplazamiento semántico utilizando word embeddings dia- crónicos del español antes y durante la pandemia de COVID-19 97 vii Resumen El significado de las palabras puede cambiar a lo largo del tiempo (Hamilton, Leskovec, y Jurafsky, 2016). Este fenómeno se conoce como desplazamiento semán- tico. Existen diferentes formas de medir este desplazamiento semántico, siendo una de ellas el análisis de los cambios en distancias en los embeddings de las palabras. En este trabajo, se propone un mecanismo para la construcción de word embed- dings diacrónicos, es decir, de diferentes momentos del tiempo. Luego se construye un word embedding diacrónico del español previo y posterior a la aparición de la pan- demia por COVID-19. Estos embeddings fueron construidos a partir de un corpus 237 millones de sitios web. Finalmente, se analiza el desplazamiento semántico de los términos asociados a tres casos de estudio particulares: COVID-19, vacunación y mascarillas. A pesar de que pasaron pocos años entre la recolección de los corpus con los que se entrenaron los word embeddings, se encontraron cambios significativos en las vecindades de los clústeres de palabras analizadas. Además, se encontraron cambios sutiles en la distancia relativa a emociones. viii Abstract Word meanings can change through time (Hamilton et al., 2016). This behavior is known as semantic shift. There are several ways to measure this shift, one is analyzing the distance changes between word embeddings. This work proposes a mechanism for building diachronic word embeddings: word embeddings that consider time. Then, a diachronic word embedding model for Spanish is built, with data before and after the surge of COVID-19 pandemic. These word embeddings were built from a corpus with 237 million documents from web sites. Finally, the semantic shift of terms related with COVID-19, vaccination and masks is analyzed. Although there were just a few years between both training corpus, significant changes in the neighborhood of analyzed clusters were found. Also, subtle changes in distance relative to emotions were found. ix Índice de figuras 4.1. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2. Metodología del objetivo específico 1 . . . . . . . . . . . . . . . . . . . . 23 4.3. Metodología del objetivo específico 2 . . . . . . . . . . . . . . . . . . . . 24 4.4. Metodología del objetivo específico 3 . . . . . . . . . . . . . . . . . . . . 24 4.5. Emociones secundarias y terciarias bajo la emoción primaria love (amor) y la traducción usada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.1. Histograma de la similitud de coseno entre las palabras en los word embeddings de 2018 y 2021, luego del proceso de alineamiento, con 1000 intervalos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2. Análisis de vecinos más cercanos en el 2018 al clúster sobre COVID-19 37 5.3. Análisis de vecinos más cercanos en el 2018 al clúster sobre COVID-19 38 5.4. Análisis de mayores acercamientos al clúster sobre COVID-19 . . . . . 39 5.5. Análisis de mayores alejamientos al clúster sobre COVID-19 . . . . . . 40 5.6. Vecinos más cercanos en el 2018 al término «COVID» . . . . . . . . . . 41 5.7. Vecinos más cercanos en el 2021 al término «COVID» . . . . . . . . . . 42 5.8. Palabras que se acercaron más al término «COVID» . . . . . . . . . . . 43 5.9. Palabras que se alejaron más al término «COVID» . . . . . . . . . . . . 44 5.10. Vecinos más cercanos en el 2018 al término «coronavirus» . . . . . . . . 45 5.11. Vecinos más cercanos en el 2021 al término «coronavirus» . . . . . . . . 46 5.12. Palabras que se acercaron más al término «coronavirus» . . . . . . . . . 47 5.13. Palabras que se alejaron más al término «coronavirus» . . . . . . . . . . 48 5.14. Vecinos más cercanos en el 2018 al término «cuarentena» . . . . . . . . 49 5.15. Vecinos más cercanos en el 2021 al término «cuarentena» . . . . . . . . 50 5.16. Palabras que se acercaron más al término «cuarentena» . . . . . . . . . 51 5.17. Palabras que se alejaron más al término «cuarentena» . . . . . . . . . . 52 5.18. Vecinos más cercanos en el 2018 al término «pandemia» . . . . . . . . . 53 5.19. Vecinos más cercanos en el 2021 al término «pandemia» . . . . . . . . . 54 x 5.20. Palabras que se acercaron más al término «pandemia» . . . . . . . . . . 55 5.21. Palabras que se alejaron más al término «pandemia» . . . . . . . . . . . 56 5.22. Análisis de vecinos más cercanos en el 2018 al clúster sobre mascarillas 58 5.23. Análisis de vecinos más cercanos en el 2018 al clúster sobre mascarillas 59 5.24. Análisis de mayores acercamientos al clúster sobre mascarillas . . . . . 60 5.25. Análisis de mayores alejamientos al clúster sobre mascarillas . . . . . . 61 5.26. Análisis de vecinos más cercanos en el 2018 al clúster sobre vacunacion 63 5.27. Análisis de vecinos más cercanos en el 2018 al clúster sobre vacunacion 64 5.28. Análisis de mayores acercamientos al clúster sobre vacunacion . . . . . 65 5.29. Análisis de mayores alejamientos al clúster sobre vacunacion . . . . . . 66 5.30. Cambio en cercanía a emociones secundarias del clúster «COVID-19» . 68 5.31. Cambio en cercanía a emociones primarias del clúster «COVID-19» . . 69 5.32. Cambio en cercanía a emociones terciarias de miedo del clúster «COVID- 19» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.33. Cambio en cercanía a emociones secundarias del clúster «mascarillas» 70 5.34. Cambio en cercanía a emociones terciarias de afecto del clúster «mas- carillas» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.35. Cambio en cercanía a emociones secundarias del clúster «vacunación» 72 C.1. Cercanía a emociones del clúster «COVID-19 (2018)» . . . . . . . . . . 89 C.2. Cercanía a emociones del clúster «COVID-19 (2021)» . . . . . . . . . . 90 C.3. Cambio en cercanía a emociones del clúster «COVID-19» . . . . . . . . 91 C.4. Cercanía a emociones del clúster «mascarillas (2018)» . . . . . . . . . . 92 C.5. Cercanía a emociones del clúster «mascarillas (2021)» . . . . . . . . . . 93 C.6. Cambio en cercanía a emociones del clúster «mascarillas» . . . . . . . . 93 C.7. Cercanía a emociones del clúster «vacunación (2018)» . . . . . . . . . . 94 C.8. Cercanía a emociones del clúster «vacunación (2021)» . . . . . . . . . . 95 C.9. Cambio en cercanía a emociones del clúster «vacunación» . . . . . . . 96 xi Índice de tablas 3.1. Jerarquía de emociones propuesta por Shaver, Schwartz, Kirson, y O'Connor (1987) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.1. Ejemplo de un texto comprimido con el algoritmo utilizado . . . . . . 31 5.2. Características de cada etapa de los corpus recolectados . . . . . . . . . 31 5.3. Estimaciones de costo y rendimiento de diversas implementaciones de word embeddings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.4. Configuración usada para BlazingText . . . . . . . . . . . . . . . . . . . 33 xii Índice de Abreviaturas ASIC: Application-specific integrated circuit. Es un circuito integrado diseñado para un uso específico. AWS: Amazon Web Services BERT: Bidirectional Encoder Representations from Transformers (Devlin, Chang, Lee, y Toutanova, 2019). Es un modelo de word embeddings donde las palabras tienen una representación densa diferente según su contexto. CLD2: Compact Language Detector 2. Es un clasificador bayesiano para detectar el idioma de un texto. CPU: Central Processing Unit. CSS: Cascading Style Sheets. DBSCAN: Density-based spatial clustering of applications with noise. Es un algoritmo de agrupamiento. EC2: Amazon Elastic Compute Cloud. Plataforma de cómputo en la nube de AWS. EPS: ϵ (épsilon). Distancia máxima entre los elementos de un clúster, al usar DBS- CAN. GPU: Graphics Processing Unit. Tipo de coprocesador especializado en operaciones gráficas, como multiplicaciones de matrices. Debido a esto es común su uso en aprendizaje de máquina. HTTP: Hypertext Transfer Protocol. JSON: JavaScript Object Notation. Es un formato para intercambio de datos. S3: Amazon Simple Storage Service. Es un servicio de AWS para almacenar archivos. xiii TB: Terabyte. TFIA: Trabajo Final de Investigación Aplicada. TPU: Tensor Processing Unit. Es un tipo de ASIC especializado en operaciones de tensores, usadas en algoritmos de aprendizaje de máquina. T-SNE: T-distributed Stochastic Neighbor Embedding. Es un método estadístico para visualizar datos de alta dimensionalidad en dos o tres dimensiones. URL: Uniform Resource Locator. La dirección de un recurso en internet, por ejemplo, un sitio web. USD: United States Dollar. WARC: Web ARChive. Es el formato usado por el Internet Archive y CommonCrawl para almacenar sus descargas. xiv Autorización para digitalización y comunicación pública de Trabajos Finales de Graduación del Sistema de Estudios de Posgrado en el Repositorio Institucional de la Universidad de Costa Rica. Yo, _______________________________________, con cédula de identidad _____________________, en mi condición de autor del TFG titulado ___________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ Autorizo a la Universidad de Costa Rica para digitalizar y hacer divulgación pública de forma gratuita de dicho TFG a través del Repositorio Institucional u otro medio electrónico, para ser puesto a disposición del público según lo que establezca el Sistema de Estudios de Posgrado. SI NO * *En caso de la negativa favor indicar el tiempo de restricción: ________________ año (s). Este Trabajo Final de Graduación será publicado en formato PDF, o en el formato que en el momento se establezca, de tal forma que el acceso al mismo sea libre, con el fin de permitir la consulta e impresión, pero no su modificación. Manifiesto que mi Trabajo Final de Graduación fue debidamente subido al sistema digital Kerwá y su contenido corresponde al documento original que sirvió para la obtención de mi título, y que su información no infringe ni violenta ningún derecho a terceros. El TFG además cuenta con el visto bueno de mi Director (a) de Tesis o Tutor (a) y cumplió con lo establecido en la revisión del Formato por parte del Sistema de Estudios de Posgrado. INFORMACIÓN DEL ESTUDIANTE: Nombre Completo: . Número de Carné: Número de cédula: . Correo Electrónico: . Fecha: . Número de teléfono: . Nombre del Director (a) de Tesis o Tutor (a): . FIRMA ESTUDIANTE Nota: El presente documento constituye una declaración jurada, cuyos alcances aseguran a la Universidad, que su contenido sea tomado como cierto. Su importancia radica en que permite abreviar procedimientos administrativos, y al mismo tiempo genera una responsabilidad legal para que quien declare contrario a la verdad de lo que manifiesta, puede como consecuencia, enfrentar un proceso penal por delito de perjurio, tipificado en el artículo 318 de nuestro Código Penal. Lo anterior implica que el estudiante se vea forzado a realizar su mayor esfuerzo para que no sólo incluya información veraz en la Licencia de Publicación, sino que también realice diligentemente la gestión de subir el documento correcto en la plataforma digital Kerwá. Esteban Rodríguez Betancourt 1-1451-0124 Análisis de desplazamiento semántico previo y posterior al COVID-19 en word embeddings diacrónicos del español X Esteban Rodríguez Betancourt B15512 1-1451-0124 Edgar Casasola Murillo 10 de junio del 2022 1 Capítulo 1 Introducción Los word embeddings se han convertido en una de las principales herramientas para representar texto en el área de procesamiento de lenguaje natural, al asociar una palabra con una representación vectorial de su «significado» (Mikolov, Chen, Corrado, y Dean, 2013). Estas representaciones pueden ser usadas posteriormente en tareas de recuperación de información, clasificación, generación de texto y otras (Mikolov, Yih, y Zweig, 2013). Los word embeddings se construyen a partir de grupos de documentos conocidos como corpus (Sierra, 2017). Debido a que el significado de las palabras es dinámico a través del tiempo (Hamilton et al., 2016), la cercanía entre ellas puede variar según la época del corpus con el que se entrena el modelo de embeddings. En la actualidad existen investigaciones donde se han estudiado estos cambios de significado, incluso cambios semánticos a través de décadas. Por ejemplo, Hamilton et al. (2016) estudia- ron los cambios en las palabras en inglés entre el año 1800 y 2009. Estos cambios de significado en el tiempo, conocidos como desplazamiento semántico, pueden ser vi- sualizados al analizar la distancia vectorial existente entre los word embeddings de las palabras. Según Hamilton et al. (2016) los cambios en las palabras siguen las siguientes leyes: 1. Ley de conformidad: La tasa de cambios semánticos es proporcional a una po- tencia negativa de la frecuencia de las palabras. 2. Ley de innovación: Las palabras más polisémicas tienen mayores tasas de cam- bio semántico. 2 Debido a estos cambios en significados se han propuesto modelos de word em- beddings diacrónicos que consideran la información temporal. Yao, Sun, Ding, Rao, y Xiong (2017) propusieron un método de word embeddings condicionado también por la ubicación temporal. Gong, Bhat, y Viswanath (2020) propusieron un modelo de embeddings calculado en función del tiempo y el lugar (además de la relación entre palabras), con la intención de poder determinar tendencias culturales o situaciones específicas de un lugar. Para este TFIA se propone analizar los cambios en las distancias entre palabras, al comparar dos modelos de word embeddings entrenados con corpus en español re- colectados en diferentes años, antes y después de la aparición del COVID-19. Pa- ra lograrlo se entrenarán dos modelos de word embeddings con dos corpus tomados de internet abierto anteriores y posteriores a la aparición del COVID-19. Posterior- mente, estos embeddings serán alineados utilizando una adaptación de la técnica de alineamiento bilingüe supervisado propuesta Joulin, Bojanowski, Mikolov, Jégou, y Grave (2018). Ya con los embeddings alineados es posible realizar medir las distancias de coseno entre los dos vectores de cada palabra o encontrar cambios de similitud (acercamientos o alejamientos) entre palabras. A continuación se justifica por qué es necesario estudiar cómo los cambios en significado de las palabras se pueden ver reflejados en los word embeddings. Poste- riormente, se definen los objetivos de la investigación y las limitaciones de esta. En el Capítulo 2 en la página 6 se mencionan investigaciones que han usado las técnicas que se pretenden usar en este TFIA, trabajos similares realizados anteriormente y en qué se diferencian con la investigación actual. En el Capítulo 3 en la página 8 se des- criben conceptos relacionados con la presente investigación, como web crawler o word embeddings. En el Capítulo 4 en la página 14 se describe la metodología del trabajo y cómo se realizará cada uno de los objetivos específicos. También se detallan los recursos computacionales que serán utilizados en la investigación. Los resultados se muestran en varias secciones del Capítulo 5 en la página 26. En la Apartado 5.1 en la página 26 se detalla cómo se elaboró el corpus diacrónico y cómo se construyeron los word embeddings. En la Apartado 4.5 en la página 17 se detalla cómo se midió el desplazamiento semántico y el desplazamiento emocional. En el Apartado 5.2 en la página 34 se analiza el desplazamiento semántico de varios casos de estudio res- pecto a las palabras más cercanas y en el Apartado 5.3 en la página 67 se analiza el desplazamiento de los casos de estudio respecto a palabras asociadas a emociones. El Capítulo 6 en la página 73 indica las conclusiones del trabajo y posibles áreas de mejora y trabajo futuro. 3 1.1. Justificación Actualmente, los modelos de aprendizaje profundo y word embeddings son utiliza- dos en muchas aplicaciones, como búsqueda (Li, Qin, Wang, Chen, y Metzler, 2020) o detección de discursos de odio (Navarro-Murillo, Calvo-Vargas, y Casasola-Murillo, 2019). Es razonable pensar que estos modelos con el paso del tiempo pierdan efec- tividad y deban ser entrenados de nuevo con datos actualizados. Pero, ¿esto puede suceder en pocos años? Los word embeddings muchas veces no son entrenados para cada aplicación es- pecífica, sino que se reutiliza algún modelo precalculado. Esto facilita enormemente su uso, pero surge la interrogante de si el modelo precalculado escogido realmente funciona para la tarea a realizar. Ya es un hecho conocido que los word embeddings contienen y amplifican la parcialización presente en los datos de entrenamiento, co- mo prejuicios y estereotipos (Papakyriakopoulos, Hegelich, Serrano, y Marco, 2020). Por otro lado, un modelo debería ser capaz de generalizar y adaptarse bien a nuevas situaciones. ¿Pero cómo se comportan los word embeddings ante nueva información totalmente desconocida? Conocemos como distribution shift (desplazamiento distribucional) a los cambios de distribución estadística entre los datos sobre los que fue entrenado un modelo de aprendizaje de máquina y los datos sobre los que se ejecuta (Balaji, 2021). Estas diferencias pueden reducir la efectividad de un modelo de aprendizaje de máquina e incluso pueden ser fatales si suceden en sistemas críticos, como vehículos autónomos o diagnóstico médico (Balaji, 2021). Situaciones que causan grandes cambios sociales, como la pandemia del COVID- 19, previsiblemente pueden cambiar la forma en que nos expresamos. Se han reali- zado estudios recientes sobre cómo esto afecta el significado de las palabras sobre Tweets en inglés (Guo, Xypolopoulos, y Vazirgiannis, 2021) o bien se han desarrolla- do embeddings específicos sobre documentos médicos relacionados con el COVID-19 (Miranda-Escalada et al., 2021). Sin embargo, no se encontraron estudios sobre el cambio en la similitud de los embeddings en español con documentos tomados de internet abierto, ni con diferencias de pocos años. Existen diferentes razones que justifican la realización de esta investigación. La más directa es una observación del movimiento entre conceptos relacionados con te- mas que fueron impactados por la pandemia. A nivel computacional, el aporte con- siste en utilizar los word embeddings diacrónicos como herramienta para automatizar el análisis de información. 4 Otra razón de interés es que el estudio pretende identificar cambios en un perío- do corto de tiempo producto de un evento global como lo es la pandemia. El corpus diacrónico es el primero para español creado con este fin, lo que hace que esta pro- puesta tenga un factor importante de novedad. Finalmente, otro potencial beneficio a nivel computacional consiste en identificar los períodos de obsolescencia en un embedding producto del cambio en los corpus que lo generan en dominios específicos. Dicho de otro modo, estudiar los cambios en similitud de las palabras respecto a sus embeddings puede ayudar a determinar cuando es necesario volver a entrenar un modelo, dado que el re-entrenamiento im- plica costo. Modelos recientes de word embeddings como BERT (Devlin et al., 2019) son costosos de entrenar y en algunos casos esto solamente es posible para centros de investigación de la industria con acceso a hardware especializado y amplios re- cursos económicos (Izsak, Berchansky, y Levy, 2021). Este trabajo es pionero en Costa Rica, ya que no existe otro estudio a nivel nacio- nal que haya propuesto y construido word embeddings diacrónicos en español para el análisis de los desplazamientos semánticos que se han dado producto del COVID-19. 1.2. Objetivos A continuación se presenta el objetivo general y los objetivos específicos plantea- dos para este trabajo. Objetivo general Analizar el desplazamiento semántico en word embeddings diacrónicos en español. Objetivos específicos 1. Proponer un mecanismo para la construcción de un word embedding diacróni- cos. 2. Construir un word embedding diacrónico de español previo y posterior a la pan- demia por COVID-19. 3. Analizar el desplazamiento semántico de términos asociados a tres casos de estudio particulares, utilizando el word embedding diacrónico alineado. 5 Alcances y limitaciones Los objetivos anteriores tendrán algunas restricciones, relacionadas con limita- ciones en acceso a recursos computacionales o bien a datos precalculados. Los word embeddings serían entrenados utilizando un corpus de documentos en español extraídos de internet abierto. Se utilizará el conjunto de datos recolectado por el proyecto CommonCrawl 1 para realizar un entrenamiento con documentos existentes en un punto del 2018 y otro punto del 2021. Inicialmente, se pretende usar el algoritmo word2vec (Mikolov, Chen, et al., 2013) para la generación de los word embeddings, ya que este corre eficientemente en CPU tradicionales, que son el tipo de equipo con el que se cuenta. No obstante, según el costo económico del procesa- miento, se seleccionaría otra implementación de este algoritmo, como por ejemplo BlazingText (Gupta y Khare, 2017) que se ejecuta en GPU o pWord2Vec (Ji, Satish, Li, y Dubey, 2016). Idealmente, se hubieran utilizado otros algoritmos de word embeddings más re- cientes, como por ejemplo BERT (Devlin et al., 2019). Sin embargo, esto es econó- micamente inviable, debido al elevado costo de entrenarlo. Según la cantidad de parámetros, entrenar BERT puede tener un costo entre $2500 USD y $1600000 USD y además requiere hardware especializado como TPU (Sharir, Peleg, y Shoham, 2020). Por otro lado, correr otro algoritmo de embeddings puede ser significativamente más barato. Por ejemplo, de forma anecdótica, anteriormente el investigador ha entrena- do modelos de word embeddings utilizando BlazingText (Gupta y Khare, 2017) para un corpus de medio millón de documentos y el costo total no ha excedido los $15 USD. En el siguiente capítulo se describirán algunos trabajos similares al presente TFIA y otras investigaciones sobre cambio semántico. 1https://commoncrawl.org/about https://commoncrawl.org/about 6 Capítulo 2 Estado del arte Los word embeddings son representaciones de las palabras usando vectores de nú- meros reales. Estas representan el significado de una palabra, tal que palabras simi- lares tienen un embedding o vector similar (Jurafsky y Martin, 2000). Debido a que las palabras cambian de significado, es esperable que estos cambios sean detectados en sus word embeddings. Esto ya ha sido estudiado por otros investigadores, como por ejemplo Hamilton et al. (2016), quienes propusieron las leyes de Conformidad y de Innovación. Este estudio fue realizado sobre textos de libros en inglés, escritos entre 1800 y 2009. Los cambios semánticos han sido estudiados con diversas técnicas a lo largo del tiempo. Kutuzov, Øvrelid, Szymanski, y Velldal (2018) menciona que antes de los modelos de word embeddings estos cambios eran principalmente estudiados utilizan- do la frecuencia de las palabras. Según Kutuzov et al. (2018), Kulkarni, Al-Rfou, Perozzi, y Skiena (2014) publicaron el primer estudio que demostraba que usar las representaciones de word embeddings podía dar mejores resultados que los métodos usando frecuencias. Kulkarni et al. (2014) usaron word embeddings para determinar los cambios semánticos de algunas palabras a través del tiempo, como por ejemplo gay o apple. Kutuzov et al. (2018) menciona que anteriormente otros autores habían utilizado técnicas similares para estudiar los cambios semánticos, pero en una esca- la menor o sin demostrar que este tipo de estudios daba mejores resultados que los basados en frecuencias. Las técnicas tradicionales de word embeddings, como word2vec, se pueden con- vertir en embeddings diacrónicas. Para lograr tener embeddings diacrónicos Montariol (2021) menciona que se han usado dos grupos de técnicas: alinear vectores no dia- 7 crónicos o bien crear un modelo de vectores que dentro de su construcción considere la dimensión de tiempo. Más recientemente, Montariol (2021) propone un método para medir el cambio semántico en word embeddings contextuales, como BERT (Devlin et al., 2019). Este método sería capaz de detectar cambios semánticos en palabras con diferentes signi- ficados según el contexto. Sin embargo, el costo de entrenar BERT lo hace prohibitivo para la presente investigación. Específicamente sobre COVID-19, Miranda-Escalada et al. (2021) presentaron un modelo de word embeddings con fastText usando tweets en español que contenían pa- labras asociadas al COVID-19. Sin embargo, este no es un embedding diacrónico y no se investigaron los cambios semánticos en español. Asif, Zhiyong, Iram, y Nisar (2020) estudiaron los cambios causados por el COVID- 19 en el idioma inglés. Este estudio se enfocó en neologismos y los cambios fueron observados manualmente. Butler y Simon-Vandenbergen (2021) realizaron un estudio del cambio semántico causado por el COVID-19 en palabras en inglés. En este caso los cambios semánticos fueron medidos usando la frecuencia de las palabras y no word embeddings, que es la técnica que se desea utilizar en este trabajo. Guo et al. (2021) investigaron los cambios semánticos relacionados con el COVID- 19 de las palabras en inglés, a partir de tweets. De las investigaciones encontradas esta sería la más similar a la actual. No obstante, se diferencia en que la propuesta actual se pretende realizar en español y utilizando un corpus recolectado de internet abierto en lugar de tweets. En el siguiente capítulo se describen algunos términos y modelos utilizados en esta investigación. 8 Capítulo 3 Marco Teórico Este TFIA se va a concentrar en las diferencias entre dos modelos de word em- beddings. Sin embargo, se requiere crear primero un corpus del 2021, que será usado para entrenar uno de los modelos de word embeddings. Para recolectar este corpus se requiere una araña. 3.1. Araña web o web crawler Un web crawler o araña es un sistema que realiza el proceso de recolectar sitios web para indexarlos y soportar un motor de búsqueda (Manning, 2008). Típicamen- te, una araña comienza con una o más URL que constituyen el conjunto semilla. Estos documentos son descargados, parseados y se le extraen los hipervínculos, con lo cual el proceso se repite de forma recursiva (Manning, 2008). En este caso se utili- zarán dichos documentos para entrenar un modelo de word embeddings. 3.2. CommonCrawl Para este trabajo se requieren elaborar word embeddings a partir de documentos recolectados en dos momentos diferentes: antes del COVID-19 y posterior a la apa- rición de este. Para propósitos de este TFIA, empezado a mediados del 2021, cla- ramente sería imposible ejecutar una araña web en el pasado. Sin embargo, existen proyectos como Web Archive1 o CommonCrawl 2 que se han dedicado a recolectar 1Disponible en http://web.archive.org/ 2Disponible en https://commoncrawl.org/ http://web.archive.org/ https://commoncrawl.org/ 9 vastas cantidades de sitios web y además están agrupados cronológicamente. CommonCrawl es una organización que «construye y mantiene un repositorio abierto de datos de arañas web que pueden ser accedidas y analizadas por cualquie- ra». Esta organización descarga regularmente (típicamente una vez al mes) grandes cantidades de documentos de internet y los resultados los hace disponibles al públi- co en general. Debido al gran volumen de datos y a que se tienen datos históricos, esta es una fuente sumamente valiosa para realizar un estudio como el que se pro- pone en este trabajo. CommonCrawl expone los datos descargados principalmente de tres formas: los datos crudos, el texto limpio (sin etiquetas HTML) y metadatos. Los datos son guardados en formato WARC y comprimidos con GZip. El formato WARC permite añadir ciertos metadatos, como encabezados HTTP. Los metadatos también son publicados dentro de archivos WARC, como un JSON. Cada archivo WARC tiene una gran cantidad de documentos, la cual varía según cada archivo, pero suelen ser unos 40000 documentos. Cada corpus tiene entre 64000 y 72000 ar- chivos WARC y cada archivo WARC mide aproximadamente 200 MB (comprimido). Aparte del contenido de los sitios web, CommonCrawl publica metadatos compu- tados a partir de los documentos. Algunos de estos metadatos son el idioma detecta- do y la codificación detectada. En el caso del idioma, se indica el porcentaje de texto en cada idioma, según lo calcula el algoritmo CLD23. 3.3. Word embeddings Los word embeddings son una representación vectorial del «significado» de una pa- labra. Aunque previamente han existido representaciones vectoriales, como one-hot encoding, en este caso consideramos word embeddings a las representaciones densas, que reducen el significado a cada palabra a una cantidad fija de dimensiones (por ejemplo, 300 o 100 dimensiones), tal como se conceptualiza en el trabajo de Mikolov, Sutskever, Chen, Corrado, y Dean (2013). Estas representaciones vectoriales presentan propiedades interesantes, que son útiles para hacer análisis de texto natural. Por ejemplo, Bengio, Ducharme, Vincent, y Janvin (2003) describen cómo palabras con significado similar suelen ser cercanas en el espacio vectorial. En el trabajo de Mikolov, Yih, y Zweig (2013) se muestran ejemplos de resolución de analogías utilizando los word embeddings. Este tipo de re- solución de analogías se ilustra en la ecuación (3.1): 3https://github.com/CLD2Owners/cld2 10 V[king] − V[man] + V[woman] ∼ V[queen] (3.1) En la ecuación anterior se muestra cómo los word embeddings pueden usarse para resolver analogías. En este caso, man (hombre) es a woman (mujer) como king (rey) es a queen (reina). En este caso, queen fue la palabra con el word embedding más cercano al vector resultante de las operaciones aritméticas sobre los word embeddings. Existen muchos algoritmos para asociar una palabra a un word embedding. Uno de los más conocidos es Word2Vec (Mikolov, Chen, et al., 2013), el cual utiliza la capa oculta de una red neuronal para representar cada palabra. Dicha red es entrenada para identificar la palabra oculta dado el contexto (CBOW) o el contexto dada la palabra (Skipgram). También está GloVe (Pennington, Socher, y Manning, 2014), el cual aprovecha la información estadística de las palabras. Otro modelo es fastText (Joulin, Grave, Bojanowski, y Mikolov, 2017), que entre otras cosas usa información de subpalabras, lo que le permite generar embeddings para palabras desconocidas. También hay mejoras en el rendimiento computacional. Con pWord2Vec, Ji et al. (2016) paralelizaron word2vec para arquitecturas con muchos núcleos y memoria RAM de rápido acceso entre núcleos. BlazingText (Gupta y Khare, 2017), se basó en las técnicas mostradas en pWord2Vec y lo adaptaron para ejecutar word2vec y fastText en GPU y de forma distribuida. Los modelos anteriores asocian una palabra a un único vector. Sin embargo, se- gún el contexto las palabras pueden tener significados totalmente diferentes. Existen modelos como Universal Sentence Encoding (Cer et al., 2018) y Bidirectional Encoder Re- presentations from Transformers (BERT) (Devlin et al., 2019) que son capaces retornar embeddings diferentes dependiendo del contexto en el que se utilice la palabra. 3.4. Word embeddings diacrónicos Las palabras pueden cambiar su significado a través del tiempo, reflejando cam- bios tanto en la lengua, como en la sociedad (Kutuzov et al., 2018). Una forma de ana- lizar estos cambios es mediante word embeddings diacrónicos (Kutuzov et al., 2018), los cuales son word embeddings generados a partir de un corpus diacrónico. Un corpus diacrónico es un corpus que contiene documentos de varios momentos del tiempo, tal y como lo explica Sierra (2017). Anteriormente, ya se han realizado estudios de desplazamiento semántico a tra- vés de muchas décadas usando word embeddings. Por ejemplo, Hamilton et al. (2016) 11 analizaron 200 años de textos en Inglés, Francés, Alemán y Mandarín usando word2vec, entre otras técnicas. Entre sus aportes está la técnica de alineamiento, la descripción de la técnica para medir el cambio, la visualización de los cambios de significado de las palabras y la propuesta de leyes estadísticas sobre el cambio semántico. Hamilton et al. (2016) usan el algoritmo de Procrustes ortogonales para matri- ces propuesto por Schönemann (1966) para alinear los word embeddings diacrónicos Hamilton et al. (2016). Con esto lograron preservar los ángulos entre los vectores y hacerlos comparables, ya que la transformación es una rotación. Para determinar el desplazamiento de las palabras usaron la medida de correlación de Spearman so- bre una serie generada con la distancia de coseno entre pares de la misma palabra a través del tiempo. Además, para visualizar los desplazamientos semánticos en el tiempo usaron una proyección de T-SNE con las palabras y sus vecinos más cercanos en cada paso de tiempo. Dados word embeddings alineados, Hamilton et al. (2016) definen el desplazamien- to semántico entre dos periodos como DistanciaCoseno (wt,wt+∆), donde wt repre- senta el vector correspondiente al word embedding de la palabra w en el momento t. En general, la similitud de coseno de dos vectores se define como se muestra en la Ecuación (3.2) y la distancia de coseno de dos vectores se define tal como se muestra en la Ecuación (3.3): SimilitudCoseno (a,b) = a · b |a| · |b| (3.2) DistanciaCoseno (a,b) = 1 − SimilitudCoseno (a,b) (3.3) 3.5. Clasificación de emociones Para clasificar las emociones se optó por utilizar la clasificación jerárquica pro- puesta por Shaver et al. (1987). Esta consiste en varias emociones primarias, que se dividen en emociones secundarias y estas se dividen en emociones terciarias, tal co- mo se muestra en la Tabla 3.1 en la página 13. Para realizar la clasificación automática de emociones predominantes en una ora- ción, Alshahrani, Samothrakis, y Fasli (2017) utilizaron Word Mover’s Distance para calcular la distancia entre listados de palabras y una oración. Esta es una técnica no supervisada que es capaz de predecir las emociones presentes en un texto. Word Mover’s Distance (Kusner, Sun, Kolkin, y Weinberger, 2015) es una técnica 12 para medir la distancia entre dos documentos u oraciones. Básicamente, se relaciona cada palabra en un documento con alguna palabra en el otro, de forma que la suma de la distancia de coseno entre cada par de palabras se minimice. En el siguiente capítulo se detalla la metodología utilizada para lograr los objeti- vos de la investigación. 13 Primaria Secundaria Terciaria Love Affection Adoration, fondness, liking, attraction, caring, tenderness, compassion, sentimentality Lust Desire, passion, infatuation Longing Longing Joy Cheerfulness Amusement, bliss, gaiety, glee, jolliness, joviality, joy, de- light, enjoyment, gladness, happiness, jubilation, elation, satisfaction, ecstasy, euphoria Zest Enthusiasm, zeal, excitement, thrill, exhilaration Contentment Pleasure Optimism Eagerness, hope Enthrallment Enthrallment, rapture Relief Relief Surprise Surprise Amazement, astonishment Anger Irritability Aggravation, agitation, annoyance, grouchy, grumpy, crosspatch Exasperation Frustration Rage Anger, outrage, fury, wrath, hostility, ferocity, bitterness, hatred, scorn, spite, vengefulness, dislike, resentment Disgust Revulsion, contempt, loathing Envy Jealousy Torment Torment Sadness Suffering Agony, anguish, hurt Sadness Depression, despair, gloom, glumness, unhappiness, grief, sorrow, woe, misery, melancholy Disappointment Dismay, displeasure Shame Guilt, regret, remorse Neglect Alienation, defeatism, dejection, embarassment, homesick- ness, humiliation, insecurity, insult, isolation, loneliness, rejection Sympathy Pity, mono no aware, sympathy Fear Horror Alarm, shock, fear, fright, horror, terror, panic, histeria, mortification Nervousness Anxiety, suspense, uneasiness, apprehension, worry, dis- tress, dread Tabla 3.1: Jerarquía de emociones propuesta por Shaver et al. (1987) 14 Capítulo 4 Metodología En este capítulo se describe la metodología utilizada para lograr los objetivos planteados en este TFIA. Esta investigación se relaciona con el curso de Procesa- miento de Lenguaje Natural y Recuperación de Información. La metodología está resumida en la Figura 4.1 en la página 22. A nivel general, se usó un proceso metodológico basado en las ciencias del dise- ño. En la primera iteración se hizo una aproximación inicial al problema y se envió un artículo a la conferencia CLEI 2021, adjuntado en el Apéndice D en la página 97, el cual no fue aceptado. Los comentarios recibidos fueron incorporados en la siguiente iteración del trabajo, el cual derivó en la presente iteración. La metodología para lograr los objetivos específicos se describe en las siguientes secciones. 4.1. Mecanismo para la construcción de un word embed- ding diacrónico Como parte del Objetivo 1, en esta sección se propone un mecanismo para reali- zar la construcción de un word embedding diacrónico. Este mecanismo debe solventar los siguientes aspectos: 1. Obtener un corpus diacrónico: se necesita un corpus con documentos anterio- res y posteriores a la aparición del COVID-19. 2. Construir el modelo de word embeddings 15 3. Alinear los word embeddings generados, para obtener un word embeddings dia- crónico. 4. Ser realizable con las restricciones de recursos (equipo y financiamiento) exis- tente. Los aspectos anteriores deben ser integrados en el mecanismo propuesto, el cual se muestra a alto nivel en la Figura 4.2 en la página 23. El resultado de este objetivo específico es una metodología que describe paso a paso cómo generar un word embedding diacrónico y su respectiva implementación. Una vez completada esta etapa se procedió a crear un modelo de word embeddings diacrónicos y aplicar el modelo para detectar cambios semánticos entre los dos años (2018 y 2021). 4.2. Construcción de un word embedding diacrónico de español previo y posterior a la pandemia por COVID- 19 Para la construcción de un word embedding diacrónico de español previo y poste- rior a la pandemia por COVID-19 fue necesario realizar varias tareas, las cuales se resumen en la Figura 4.3 en la página 24. Para el objetivo específico 2 se construyó un modelo de word embeddings diacróni- cos. Para obtener este modelo fue necesario construir un corpus diacrónico a partir de una fuente de datos, en este caso CommonCrawl. Posteriormente se generó un modelo de word embeddings word2vec para cada corpus. Una vez calculados los mo- delos de word embeddings se usó la técnica de Procrustes ortogonales para matrices propuesta por Schönemann (1966) para alinear los word embeddings diacrónicos, tal como realizó Hamilton et al. (2016). Esta es una técnica que sirve para alinear dos matrices usando rotaciones, lo cual preserva los ángulos entre los vectores. Además, es completamente no supervisada, por lo que no se requieren datos etiquetados adi- cionales. La propuesta de alinear los embeddings reduce significativamente la cantidad de cálculos necesarios para detectar desplazamientos semánticos, pues reduce la com- plejidad computacional a O(n), en lugar de O(n2) que sería necesaria para calcular distancias relativas entre cada par de palabras. 16 El producto de esta etapa fue un word embedding diacrónico alineado que puede ser usado para medir desplazamientos semánticos. 4.3. Análisis del desplazamiento semántico de casos de estudio particulares, utilizando el word embedding diacrónico alineado Para analizar el desplazamiento semántico de casos de estudio particulares, utili- zando el word embedding diacrónico alineado se identificaron las palabras con mayor desplazamiento semántico y estas fueron agrupadas de forma no supervisada. Poste- riormente, se seleccionaron clústeres de interés, para los cuales se analizaron vecinos en el 2018, vecinos en el 2021, mayores acercamientos y mayores alejamientos. Tam- bién se hizo un análisis de cercanía y desplazamiento relativo a palabras asociadas a emociones. Las tareas realizadas, resumidas en la Figura 4.4 en la página 24, fueron las siguientes tareas: 1. Identificación de las palabras con mayor desplazamiento semántico 2. Agrupamiento de las palabras de forma no supervisada a partir de los word embeddings de las palabras. 3. Selección manual de los clústeres de interés. Se descartaron clústeres compues- tos por palabras sin sentido, errores ortográficos, código fuente, pocas o dema- siadas palabras, similitud con otros clústeres, etc. 4. Determinar cuáles palabras fueron las más cercanas en el 2018 y en el 2021 a los clústeres estudiados. 5. Determinar cuáles fueron las palabras que más se alejaron o acercaron a los clústeres estudiados. 6. Para algunas palabras seleccionadas: a) Determinar cuáles palabras fueron las más cercanas en el 2018 y en el 2021 a la palabra en cuestión. b) Determinar cuáles fueron las palabras que más se alejaron o acercaron a la palabra en cuestión. 17 7. Medir el desplazamiento semántico de los clústeres respecto a emociones. Por tratarse de un caso de estudio, al final se tendrá un análisis cualitativo del desplazamiento de las palabras y algunas estadísticas descriptivas relacionadas con las mismas. 4.4. Recursos La realización de este TFIA requirió el uso de diversos recursos computaciona- les, los cuales se detallan en profundidad en sus respectivas secciones. El corpus de CommonCrawl está disponible públicamente y alojado en Amazon Web Services S3. Para aprovechar esta cercanía, el corpus fue descargado usando servidores de EC2 en la nube de Amazon Web Services, en la misma región. Posteriormente, los word embed- dings se calcularon usando la implementación de BlazingText disponible en Amazon Sage Maker. Finalmente, el análisis de los word embeddings resultantes fue realizado en la computadora de escritorio del autor, usando Go y Python. 4.5. Metodología para el Análisis del Desplazamiento Semántico Para analizar el desplazamiento semántico de las palabras se hizo una selección de las palabras cuyos vectores en los dos periodos estudiados tuvieron una similitud de coseno inferior a 0,7 y aparecieron en el corpus al menos 1000 veces. Con este grupo de palabras se procedió a hacer un agrupamiento usando los word embeddings. Los clústeres resultantes fueron examinados manualmente y se seleccionaron los que correspondían a temas conocidos. Se excluyeron clústeres correspondientes a errores ortográficos, código fuente, ruido (como tiendas en línea o nombres de ciudades) y temas desconocidos o con mucha ambigüedad (cantantes de música árabe o actores coreanos, por ejemplo). 4.5.1. Agrupamiento Para agrupar las palabras se emplearon varias pasadas del algoritmo DBSCAN (Ester, Kriegel, Sander, y Xu, 1996). Se comenzó con un EPS = 0,65. Todos los clús- teres con más de 30 elementos fueron descartados y se repitió el algoritmo sobre sus 18 elementos, pero con un EPS de EPS ∗0,9. El proceso se detuvo si EPS < 0,1, quedaban menos de 5 palabras o bien el proceso ya se había repetido 25 veces. Se decidió repetir el algoritmo de agrupamiento porque en el espacio de los word embeddings las palabras no tienen la misma densidad. Por este motivo, algunos clús- teres interesantes desaparecían al usar un EPS bajo, pero, por otro lado, un EPS alto producía clústeres con muchos elementos. 4.5.2. Medición del Desplazamiento Semántico Con la medición del desplazamiento semántico podemos averiguar qué tanto cambió el significado de una palabra de un momento a otro. Dados word embed- dings alineados, Hamilton et al. (2016) definen el desplazamiento semántico como DistanciaCoseno (wt,wt+∆), donde wt representa el vector correspondiente al word embedding de la palabra w en el momento t. En general, la similitud de coseno de dos vectores se define como se muestra en la Ecuación (4.1) y la distancia de coseno de dos vectores se define tal como se muestra en la Ecuación (4.2): SimilitudCoseno (a,b) = a · b |a| · |b| (4.1) DistanciaCoseno (a,b) = 1 − SimilitudCoseno (a,b) (4.2) La diferencia entre la similitud de coseno y la distancia de coseno es el codominio. En la similitud de coseno el rango es [−1, 1], donde 1 representa que los vectores son iguales (tienen ángulo 0). Para la distancia de coseno el rango es [0, 2], donde 0 representa los vectores iguales. Con la distancia de coseno o la similitud de coseno es posible determinar cuáles fueron las palabras que cambiaron más. Sin embargo, dada la gran cantidad de pala- bras, no es práctico estudiar los desplazamientos individuales de cada palabra. Para reducir el problema se optó por analizar los desplazamientos con respecto a clústeres o agrupamientos de palabras. Para esto se detectaron las palabras con más desplaza- miento semántico, se agruparon y se midió el desplazamiento semántico promedio dentro de cada clúster. Para hacer comparaciones de qué tanto se acercó o alejó una palabra se definió una nueva métrica: «desplazamiento relativo». Dadas dos palabras a y b, un tiempo t y una diferencia de tiempo ∆, se define como desplazamiento relativo la Ecua- ción (4.3) en la página siguiente. Esta medida permite determinar si dos palabras se acercaron (valores son mayores a cero) o bien se alejaron (valores menores que cero). 19 DesplazamientoRelativo (a,b, t,∆) = 1 − SimilitudCoseno (at+∆,bt+∆) + ϵ SimilitudCoseno (at,bt) + ϵ (4.3) En la Ecuación (4.3) se sumó un pequeño ϵ, ϵ = 10−5, para corregir posibles divisiones entre cero. 4.5.3. Medición de Similitud con Emociones En algunos casos las palabras tienen mayor similitud o asociación con ciertas emociones que otras. Por ejemplo, si pensamos en la palabra «fiesta» es posible que la relacionemos con «alegría» o «sorpresa», pero no necesariamente con «temor» o «ira». Para medir la similitud de las palabras con una emoción es posible usar una técnica no supervisada, como word2vec y los ángulos entre los word embeddings resul- tantes. En esta sección, se presenta un mecanismo para medir estas relaciones. En la siguiente sección se usará esta técnica para determinar si hubo cambios en la simili- tud con ciertas emociones, por ejemplo, determinar si «vacuna» se acercó a «miedo» o «alivio». Para medir la similitud emocional es necesario determinar qué emociones vamos a considerar. En este trabajo se decidió usar el agrupamiento jerárquico de emociones propuesto por Shaver et al. (1987). Cabe destacar que para crear esta clasificación los autores usaron listas de palabras en inglés y voluntarios evaluaron si la palabra era o no una emoción. Con esos datos, algoritmos de agrupamiento, conversión de las palabras a sustantivos y otras técnicas crearon una clasificación jerárquica. Al no encontrar una clasificación de emociones similar en Español, y siguiendo un criterio de conveniencia, para este trabajo se optó por traducir las palabras en las emociones terciarias. El utilizar texto traducido se considera una práctica común cuando no se dispone de recursos en un idioma diferente al inglés (Brooke, Tofiloski, y Taboada, 2009). Esto es una limitación de este trabajo y podría justificar la elaboración de un trabajo similar al de Shaver et al. (1987) específico para español. En la Figura 4.5 en la página 25 se puede ver las emociones secundarias y tercia- rias según la clasificación de Shaver et al. (1987) para la emoción love (amor). Ade- más, en el cuarto nivel del árbol se muestra la palabra base que se usó como traduc- ción. Aparte de la palabra base se usaron modificaciones de la misma, como infini- tivos, participios en ambos géneros (como «cuidado» y «cuidada»), gerundio, verbo reflexivo, sufijos «-ción» (como «adoración» o «atracción»), «-able» (como «adora- ble» o «compasible»). La lista completa de emociones y las traducciones usadas está 20 en el Apéndice B en la página 79. Para medir la similitud de una palabra con alguna emoción en particular se midió la similitud de coseno entre la palabra estudiada y las traducciones correspondientes a la emoción que se está midiendo. Por ejemplo, si se desea cuantificar la similitud con «love» (amor) se mide la similitud de coseno entre la palabra y todas las palabras de las subemociones de love. De esta forma, es posible también medir el peso de subemociones específicas. Es decir, si E representa el conjunto de word embeddings de las palabras asociadas a una emoción y p es el word embedding de la palabra por estudiar, entonces la similitud con una emoción se define en la Ecuación (4.5) como: DistanciaEmocion (p,E) = mı́n ∀e∈E DistanciaCoseno (p, e) (4.4) SimilitudEmocion (p,E) = 1 − DistanciaEmocion (p,E) (4.5) La fórmula de «distancia a una emoción», en la Ecuación (4.4), puede ser consi- derada como un caso especial de usar Word Mover’s Distance para medir la distancia a una emoción, tal como fue propuesto por Alshahrani et al. (2017). En el caso de Alshahrani et al. (2017) los autores usaron Word Mover’s Distance y listados de emo- ciones para determinar la emoción dominante en una oración. Sin embargo, en este caso, como solamente tenemos una palabra en la «oración» el algoritmo de Word Mover’s Distance se reduce a simplemente buscar la distancia mínima entre esa única palabra y las emociones. A los valores de similitud por emoción de todas las emociones se les puede apli- car softmax, obteniendo una distribución de probabilidad por emoción. En este tra- bajo, a este último resultado se llama medición de «emoción absoluta», para diferen- ciarlo de los desplazamientos semánticos relativos a emociones que se describirán en la siguiente sección. Una limitación de esta medición es que no se realizaron experimentos para deter- minar la calidad de las asociaciones entre las palabras y las emociones, al no ser parte del alcance del presente trabajo. Sin embargo, la técnica no supervisada de usar Word Mover’s Distance entre las palabras de una oración y términos que representan una emoción ya ha sido usada para determinar exitosamente las emociones de frases, tal como se menciona en Alshahrani et al. (2017), Alshahrani (2020) y Ren y Liu (2018). 21 4.5.4. Medición del Desplazamiento Semántico Relativo a Emocio- nes Para medir el desplazamiento semántico relativo a emociones simplemente se restan las emociones absolutas. De esta forma, se obtienen medidas que al sumarlas para todas las emociones suman cero. Así, es posible determinar qué emoción ganó o perdió peso respecto a una palabra. 4.5.5. Análisis de desplazamiento semántico En el análisis del desplazamiento semántico de los clústeres estudiados se detalla una descripción del clúster (hecha a mano), la palabra más cercana al centroide del clúster, el promedio de similitud de coseno de las palabras en el clúster (entre 2018 y 2021), las palabras en el clúster, los vecinos más cercanos en 2018, vecinos más cer- canos en 2021, las palabras que más se acercaron (usando la medida de «desplaza- miento relativo»), las palabras que más se alejaron y una breve historia o explicación detrás del desplazamiento de algunas de las palabras del clúster. Además, se incluye una visualización realizada con una proyección t-SNE que muestra los vecinos más cercanos en 2018 y 2021, las palabras que más se acercaron y las que más se alejaron. En esta proyección se muestran flechas que indican la dirección del desplazamiento de cada palabra, las palabras del clúster se muestran en rojo, el centroide en azul y las palabras fuera del clúster en gris. 4.5.6. Selección de casos de estudio Para evitar sesgos en la selección de los casos se decidió hacer la selección por criterios matemáticos: los grupos de palabras fueron agrupados automáticamente y ordenados según el desplazamiento semántico (de mayor desplazamiento a menor). Posteriormente, los clústeres fueron revisados manualmente para descartar grupos compuestos por errores de codificación, faltas ortográficas, código fuente (CSS o Ja- vaScript), etc. También se excluyeron clústeres muy pequeños, ambiguos, con exceso de ruido o donde a conocimiento del autor no se pudiera extraer una relación. 22 Common Crawl Corpus 2018 Corpus 2021 Embedding 2018 Embedding 2021 Proceso de alineamiento Embedding Diacrónico Identificar palabras con mayor desplazamiento semántico Clusterizar palabras Construir casos de estudio Simbología Objetivo Específico 1 Objetivo Específico 2 Objetivo Específico 3 Figura 4.1: Metodología 23 Fuente de datos Corpus anterior Corpus posterior Alineamiento Embedding Diacrónico Embedding anterior Embedding posterior Figura 4.2: Metodología del objetivo específico 1 24 Filtrado y Normalización Common Crawl Corpus 2018 Semana 51 Corpus 2021 Semana 25 Word2vec Word2vec Alineamiento Procrustes ortogonales Embedding Diacrónico Embedding 2018 Embedding 2021 Figura 4.3: Metodología del objetivo específico 2 Embeddings diacrónicos Identificar mayores desplazamientos Identificar Temas Analizar casos de estudio Vecinos Acercamientos y alejamientos Palabras específicas Cercanía emocional Desplazamiento relativo a emociones Figura 4.4: Metodología del objetivo específico 3 25 love longing longing anhelo lust infatuation encaprichar passion pasión desire deseo lust lujuria affection sentimentality sentimental compassion compasión tenderness ternura caring cuido attraction atracción liking gusto fondness cariño adoration adoración Figura 4.5: Emociones secundarias y terciarias bajo la emoción primaria love (amor) y la traducción usada 26 Capítulo 5 Resultados En este capítulo se mostrarán y analizarán los resultados obtenidos, correspon- dientes a cada objetivo específico. 5.1. Mecanismo para la construcción de un word embed- ding diacrónico En esta sección se detalla cómo realizar la construcción de un word embedding diacrónico. Para lograrlo hubo que resolver los siguientes aspectos: 1. Obtener un corpus de documentos recolectados en el 2018 y 2021 utilizando una araña web. Se utilizará el corpus disponible del proyecto CommonCrawl para esta etapa, ya que ellos cuentan con corpus históricos de años anteriores. 2. Construir word embeddings a partir del corpus recolectado en el 2018 y en el 2021. Para esto se usó el algoritmo word2vec con skip-gramas, específicamente la implementación BlazingText. 3. Alinear los word embeddings generados con el algoritmo de alineamiento no supervisado de Procrustes, usado por Hamilton et al. (2016). 4. Optimizar el mecanismo y su implementación para que sean realizables den- tro de las restricciones existentes. Para lograrlo se comparó el costo de calcular word2vec con diferentes implementaciones y se optimizó la implementación pa- ra reducir el uso de recursos como memoria RAM o almacenamiento no volátil. 27 A continuación, se detalla cómo construir un modelo de word embedding diacró- nico. Para esto es necesario: Seleccionar una fuente de documentos de las fechas requeridas (antes y des- pués de la aparición del COVID-19) Descargar los datos Filtrar por idioma Convertir a UTF-8 Normalizar el texto Eliminar duplicados Comprimir el corpus resultante Construir los word embeddings Alinear los word embeddings 5.1.1. Selección de fuente de los documentos La generación de un corpus diacrónico es el primer paso necesario para cons- truir word embeddings diacrónicos. Para construir este corpus es necesario descargar conjuntos de documentos de dos momentos diferentes en el tiempo: por ejemplo, en este trabajo se usarán conjuntos del 2018 y 2021. Los documentos fueron obtenidos de Common Crawl Foundation (2021). En esta sección se detalla cómo se obtuvieron los datos, filtrado, normalizado y preparación para generar los word embeddings. Common Crawl ofrece varios conjuntos de documentos, usualmente mensuales. En esta investigación se escogió la semana 51 del año 2018 y la semana 25 del 2021. Se optó por escoger datos anteriores al 2019 para evitar posibles influencias de sín- tomas de COVID-19 en los datos. Y la semana 25 se escogió por ser la más reciente al momento de iniciar esta investigación. Cabe destacar que estas fechas se refieren a la fecha de recolección de los documentos, no a la fecha de los documentos. Estas colecciones son acumulativas y los documentos nuevos son minoría, por lo que los impactos estacionales (por ejemplo: fiestas de fin de año) deberían ser poco signifi- cativos. 28 5.1.2. Descarga de los Datos Para descargar los datos se elaboró un programa en Go. Este recibe como argu- mento la fecha que se desea descargar. Posteriormente, el programa busca la lista de archivos que forman parte del corpus de dicha fecha. A partir de esa lista, el progra- ma descarga dos conjuntos diferentes de archivos WARC: los metadatos y el texto plano. Los metadatos son necesarios pues contienen información sobre el idioma detectado y la codificación de cada documento. Una vez que se descargan los meta- datos se seleccionan únicamente los documentos que tienen texto en español. Para evitar almacenar la totalidad de los datos, unos 32 TB por corpus (incluyendo meta- datos y texto plano), el programa realiza el filtrado al mismo tiempo que se filtran los archivos documentos. Los documentos extraídos del archivo WARC son procesados de la siguiente for- ma: 1. Se eliminan documentos que no estén en español. 2. Se convierte el documento a UTF-8. 3. Se eliminan caracteres que no sean letras latinas. 4. Se convierte el texto a minúscula. 5. Se eliminan documentos que no tengan un largo mínimo (50 caracteres). 6. Se separan los documentos en párrafos. 7. Se eliminan párrafos duplicados. 8. Se guarda el corpus en formato comprimido. Para realizar todos los pasos anteriores de forma simultánea se utilizó la biblio- teca Datachan1, la cual fue elaborada por el autor para facilitar el procesamiento de datos de forma local siguiendo un modelo de programación similar a MapReduce (Dean y Ghemawat, 2004) o Spark (Zaharia, Chowdhury, Franklin, Shenker, y Stoica, 2010). En Datachan cada etapa puede comenzar a procesar datos tan pronto comien- zan a ser emitidos por la etapa anterior, así que no necesita esperarse a que termine una etapa para comenzar la siguiente. Cada etapa se describe en más detalle en las siguientes secciones. 1https://github.com/estebarb/datachan https://github.com/estebarb/datachan 29 5.1.3. Detección de idioma Para detectar el idioma se utilizaron los metadatos disponibles en Common- Crawl, donde la organización añadió los idiomas y su porcentaje por documento, según fueron detectados por el algoritmo CLD22. Se descartaron los documentos que contuvieran menos de un 40 % de texto español. La detección de idioma puede ser un proceso muy costoso en CPU. Inicialmente, se probaron varias bibliotecas en Go que detectan el idioma utilizando heurísticas. Sin embargo, los datos de perfilado mostraron que el programa estaba pasando la mayor parte del tiempo detectando el idioma y convirtiendo a UTF-8 (que requiere identificar primero la codificación original). Debido a esto se prefirió descargar los metadatos y utilizar los valores identificados por CommonCrawl, aunque eso signi- ficara duplicar el tamaño de los datos descargados. 5.1.4. Conversión a UTF-8 El texto fue convertido a UTF-8 utilizando la codificación detectada por Com- monCrawl y que fue almacenada en los metadatos. Si la codificación detectada no era soportada por la biblioteca usada para realizar la conversión, se procedió a des- cartar el documento. Sin embargo, una gran cantidad de texto en internet no está codificado correcta- mente. Por ejemplo, varios sitios web en UTF-8 contenían texto donde una cadena en UTF-8 había sido malinterpretada como ISO-8859-1 y se había vuelto a convertir a UTF-8. Se incluyó código adicional para corregir este error, en caso de que el texto contuviera los bytes en hexadecimal C3 83. La detección de la codificación es un proceso que requiere mucho CPU, pues es necesario interpretar el texto según varias codificaciones y utilizar heurísticas para determinar si la codificación podría ser correcta o no. Inicialmente, se intentó deter- minar la codificación dentro del mismo programa que descargaba el corpus, pero debido al alto uso de CPU se procedió a utilizar los archivos de metadatos. 5.1.5. Normalización Para normalizar el texto se eliminaron todos los caracteres que no fueran letras latinas utilizando una expresión regular. Luego se convirtió todo el texto a minúscu- la. 2https://github.com/CLD2Owners/cld2 30 Se consideraron hacer normalizaciones adicionales. Por ejemplo, limitar las pa- labras a un diccionario como Real Academia Española (2021). Sin embargo, estas normalizaciones fueron removidas ya que eliminaban palabras válidas o que serían interesantes para el análisis (como nombres propios y notablemente, el término CO- VID). Debido a esto, se prefirió mantener las palabras originales, aunque esto signi- ficara mantener errores ortográficos o de codificación. 5.1.6. Eliminar duplicados Para eliminar las oraciones o párrafos duplicados se utilizó un filtro Bloom (Bloom, 1970). Este fue configurado para tener 1280000000 elementos y una probabilidad de colisiones de 10−7. 5.1.7. Compresión del corpus La compresión del corpus resultante nos permite guardar el corpus en menos espacio de disco duro. Antes de descargar los datos completos de CommonCrawl se hicieron estimaciones usando un subconjunto pequeño de los datos y se concluyó que se requerirían entre 400 GB y 800 GB por corpus. Algunos de los retos que esto representa son altos costos de transferencia, costos de almacenamiento, bajo ancho de banda y cuotas de almacenamiento limitadas en los equipos disponibles. Para reducir el impacto de estos problemas se decidió comprimir el corpus resultante. Existen muchos algoritmos de compresión de datos. Sin embargo, este trabajo re- queriría procesar dicho corpus utilizando word2vec para generar los word embeddings. De las implementaciones disponibles de forma pública y probadas en este trabajo, solamente Gensim soporta entradas comprimidas, en este caso con GZip. Las de- más, como el word2vec original (Mikolov, Sutskever, et al., 2013) o variaciones como pWord2vec (Ji et al., 2016) y BlazingText (Gupta y Khare, 2017) requieren texto plano como entrada. Para lograr comprimir el corpus y al mismo tiempo poder seguir usando las im- plementaciones disponibles de word2vec se utilizó un esquema de compresión perso- nalizado, que se detalla en el Apéndice A en la página 77. En primer lugar, se tomó la lista de palabras de CREA (Real Academia Española, 2021) ordenadas por frecuen- cia. Luego, cada palabra del corpus fue transformada así: si la palabra está en CREA, entonces se reemplaza por la posición de la palabra en CREA y se guarda en base 62 (dígitos y letras mayúsculas y minúsculas); si no está en CREA entonces se escribe un signo de admiración y se copia la palabra exactamente igual. Cada palabra se separó 31 con un espacio en blanco (ASCII 32) y cada párrafo u oración se separó con un salto de línea (ASCII 10). De esta forma, se logró un esquema de compresión donde el tex- to sigue siendo texto UTF-8 plano válido y además se redujo el tamaño del corpus aproximadamente a la mitad: por ejemplo, en el caso de 2021-25, el corpus compri- mido mide 86,6GB y si se descomprime mediría 171,87GB. En el Listado A.1 en la página 77 se muestra un ejemplo de implementación de este algoritmo en Python. En la Tabla 5.1 se muestra un ejemplo de texto comprimido utilizando este método. Texto Comprimido aH !covid 16 oR 1DB Y 8 qV 3Eg 6 44S 1ra LJ e 2 Qz 1nX d 4 !covid medidas covid donde podrán consultar todos Descomprimido los acuerdos circulares y comunicados informativos relacionados con la emergencia sanitaria por el covid Tabla 5.1: Ejemplo de un texto comprimido con el algoritmo utilizado Como cada palabra simplemente se transforma en otra cadena, por lo general más corta, el archivo resultante puede seguir siendo procesado por herramientas existentes como cat, grep, wc o bien programas que cuenten las palabras, calculen TF-IDF o generen word embeddings, sin necesidad de cambiar su código fuente. Por ejemplo, en el caso de BlazingText, lo único que hubo que ajustar fue configurar el largo mínimo de las palabras en 1 y luego revertir los embeddings resultantes para que tuvieran la palabra original y no la comprimida. 5.1.8. Características de los Corpus Se generaron dos corpus de textos en español, a partir de los corpus recolectados por CommonCrawl de 2018 (semana 51) y 2021 (semana 25). Las características de dichos corpus se resumen en la Tabla 5.2. 2018-51 2021-25 Total de documentos descargados 3 086 millones 2 394 millones Documentos en español 131 millones 106 millones Documentos con largo mínimo 131 millones 106 millones Total de párrafos/oraciones 2 424 millones 2 157 millones Total quitando oraciones repetidas 872 millones 756 millones Total de palabras 35 480 millones 29 533 millones Tamaño comprimido (base 62) 102,1GB 86,6GB Tabla 5.2: Características de cada etapa de los corpus recolectados 32 5.1.9. Construcción de los word embeddings La construcción de los word embeddings se realizó usando BlazingText (Gupta y Khare, 2017). Este es ofrecido como un servicio en la nube por Amazon Web Services. BlazingText usa las técnicas presentadas en Ji et al. (2016) para acelerar el cálculo de los embeddings usando el algoritmo word2vec o fastText, pero usando GPU en lugar de CPU. La selección de BlazingText obedeció a un criterio de costo de procesamiento, ren- dimiento, soporte de las técnicas requeridas y que esté activamente soportado. Se analizaron diversas implementaciones para construir los modelos, dentro de las cua- les destacan: gensim (Rehurek y Sojka, 2011), pWord2Vec (Ji et al., 2016) y BlazingText (Gupta y Khare, 2017). Un resumen de los aspectos considerados se encuentra en la Tabla 5.33. Implementación Palabras/segundo Costo (5 épocas) gensim 1M/s (1) n/a pWord2Vec 20M/s (2) $0,068265USD/1M palabras BlazingText 17M/s (3) $0,249542USD/1M palabras Tabla 5.3: Estimaciones de costo y rendimiento de diversas implementaciones de word embeddings Dados los datos del Cuadro 5.3 lo más económico era utilizar pWord2Vec. Ji et al. (2016) publicaron el código fuente en GitHub, pero este estaba optimizado pa- ra procesadores Xeon Phi. Debido a que no se tenía acceso a un clúster con pro- cesadores Xeon Phi se optó por migrar el código para que funcionara en proce- sadores ARM. La conversión fue exitosa y funcionó correctamente al ser proba- da en instancias c6gd.16xlarge de AWS (ARM Graviton 2, 64 núcleos y 128 GB de RAM). Sin embargo, el programa tuvo varios fallos al ser ejecutado sobre el cor- pus completo (en su mayoría desbordamientos aritméticos por usar variables de 32 bits). Debido a esto, se prefirió utilizar otra implementación, para evitar el riesgo de introducir errores que pudieran afectar la generación de los embeddings al inten- tar arreglar el código. La versión de pWord2vec migrada a ARM está disponible en https://github.com/estebarb/pWord2Vec. 3Respecto a la Tabla 5.3: (1) En un AMD Ryzen 7 5800X de 8 núcleos con SMT. Luego de 4 núcleos no escala linealmente. (2) En un c6gd.16xlarge: ARM Graviton 2 con 64 núcleos, 128 GB de RAM y $2,4576USD/hora. Escala linealmente por cada núcleo. Precios a noviembre del 2021. (3) Resultado de ejecución propia. 8 instancias ml.c4.8xlarge de 36 núcleos, 60 GB de RAM y $1,909 USD por hora cada instancia. Precios a noviembre del 2021. https://github.com/estebarb/pWord2Vec 33 La ejecución de BlazingText se hizo en 8 instancias ml.c4.8xlarge de AWS. Cada una de estas instancias tiene 36 núcleos, 60 GB de RAM y cuestan $1,909USD/hora. El corpus del 2021 tardó 15852 segundos en ejecutarse, mientras que el corpus del 2018 tardó 18639 segundos. El costo total de entrenar ambos modelos fue de $150,07USD. La configuración usada se muestra en la Tabla 5.4. batch size 12 buckets 10 000 000 early stopping no epochs 5 learning rate 0,5 max char 35 min char 1 min count 10 min epochs 2 mode batch skipgram negative samples 5 patience 4 sampling threshold 0,0001 subwords false vector dimension 300 window size 5 word ngram 2 Tabla 5.4: Configuración usada para BlazingText 5.1.10. Alineamiento de los word embeddings Dado que la construcción de los word embeddings tiene aspectos aleatorios, no es posible garantizar que la misma palabra tendrá vectores comparables en diferentes modelos (Hamilton et al., 2016). Para corregir esto es necesario alinear los vectores. Existen varios algoritmos para alinear vectores y según la tarea que se esté rea- lizando algunos pueden ser mejores que otros. Por ejemplo, Joulin et al. (2017) es usado para alinear embeddings entre diferentes idiomas de forma no supervisada. En este trabajo se escogió usar el mismo método usado por Hamilton et al. (2016), que es tratar los vectores como en el problema de Procrustes ortogonales. La solución a este problema consiste en encontrar la rotación de la matriz que minimice la dis- tancia entre los pares de vectores (cada palabra en el modelo del año A y la misma palabra en el modelo del año B), la cual se puede encontrar eficientemente usando descomposición en valores singulares (Schönemann, 1966). En la Figura 5.1 en la página siguiente se muestra un histograma de las diferen- cias de coseno entre los word embeddings de las palabras en los modelos entrenados con datos del 2018 y 2021, luego del proceso de alineamiento. Acá el eje horizontal corresponde a la similitud de coseno, donde 1 quiere decir que el vector es idéntico y -1 que es totalmente opuesto. El eje vertical corresponde al total de palabras con dicha similitud de coseno. El gráfico muestra una forma de similar a una media cam- pana con el máximo cerca de 1, lo cual coincide con la expectativa de que la mayoría 34 0.0 0.2 0.4 0.6 0.8 1.0 Similitud de coseno 0 200 400 600 800 1000 1200 1400 1600 Pa la br as Histograma de similitudes de coseno entre word embeddings 2018 y 2021 Figura 5.1: Histograma de la similitud de coseno entre las palabras en los word em- beddings de 2018 y 2021, luego del proceso de alineamiento, con 1000 intervalos de las palabras tienen un desplazamiento semántico muy pequeño. El motivo por el cual no es una media campana «perfecta» es por la construcción de los word em- beddings, que introducen cierta aleatorización y además los corpus de entrenamiento son diferentes. Sin embargo, este comportamiento es esperado. 5.2. Resultados de Desplazamiento Semántico Para detectar las palabras con más desplazamiento semántico se tomaron las pa- labras con una similitud de coseno menor o igual a 0,7 (entre 2018-51 y 2021-25) y una frecuencia en 2021-25 mayor a 1000 ocurrencias. De las 265505 palabras en co- mún entre ambos modelos y más de 1000 ocurrencias se identificaron 24943 con una similitud de coseno inferior o igual a 0,7. Al aplicar un algoritmo de agrupamiento sobre estas palabras se encontraron un total de 575 clústeres. Los clústeres fueron ordenados según la menor similitud de coseno presente en las palabras del clúster de forma ascendente. Luego de revisar los clústeres manualmente se y descartar clústeres compuestos mayoritariamente por errores de codificación, errores ortográficos, código fuente o términos sin sen- tido, se identificaron 35 temas. De estos, se seleccionaron los siguientes tres temas 35 relacionados con el COVID: 1. COVID: El clúster contiene sinónimos de COVID como coronavirus y términos asociados como pandemia o confinamientos. No incluye vacunas. 2. Mascarillas: Incluye sinónimos de mascarillas como cubrebocas, barbijo o ta- paboca. 3. Vacunación: Incluye sinónimos de vacunarse, como inoculará o inmunizar. 5.2.1. Palabras con errores ortográficos o de codificación Tal como se mencionó en la Apartado 5.1.5 en la página 29 sobre Normalización, en esta investigación se evitó eliminar o modificar las palabras, para no perder tér- minos que podrían ser interesantes (como nombres o COVID). Sin embargo, esta decisión causó que algunos términos con errores ortográficos o con errores de codi- ficación se mantuvieran en el estudio. En los siguientes listados de palabras hay términos con errores ortográficos o de codificación. Estos errores provienen del corpus, que es el objeto de estudio, y no son errores introducidos al elaborar este documento. Algunos ejemplos de estos errores son: «protecciãƒæ» (posiblemente un error de codificación, donde la palabra original era «protección»), «recesiã» (un error de codificación donde no se nota cual era la palabra original), «aztrazeneca» (un error ortográfico común al referirse a la empresa «AstraZeneca») o «máscarilla» (un error ortográfico, ya que la palabra no lleva tilde). Para prevenir modificaciones accidentales a las palabras estudiadas (por ejem- plo, accidentalmente corregir un error ortográfico) se automatizó la generación de los gráficos, tablas y listados de palabras (listas de palabras en el clúster, palabras más cercanas, palabras más lejanas, palabras que se acercaron más y palabras que se alejaron más) a partir de los datos. 5.2.2. COVID-19 El clúster de covid incluye palabras relacionadas con el COVID-19. El centroide de este clúster es la palabra pandemia. En promedio, la similitud de coseno de las palabras en el clúster, respecto a sí mismas en 2018 y 2021 es de 0,4802. Se muestran cuatro figuras que resumen los desplazamientos alrededor del clús- ter covid. En la Figura 5.2 en la página 37 se muestran los vecinos más cercanos en 36 el 2018. En la Figura 5.3 en la página 38 se muestran los vecinos más cercanos en el 2021. La Figura 5.4 en la página 39 muestra las palabras que se acercaron más a términos dentro del clúster, mientras que la Figura 5.5 en la página 40 muestra las palabras que se alejaron más. En estas cuatro figuras, las palabras dentro del clúster se muestran en negro, el centróide del clúster en rojo y las palabras de cada caso (vecinos o mayores desplazamientos) en azul. Palabras en clúster: covd, pandemia, pandémico, covit, desconfinamiento, covi, co- ronavirus, covid, cuarentena, pandémica, cov, pandémicas, pandemía, cuaren- tenas, confinamiento, confinamientos, autoaislamiento, sars, pandémicos, ncov, pandemiaâ y contagiados Vecinos más cercanos en 2018: epidemia, contagiadas, sosprechado, iclr, pospandé- mico, infodemia, optm, epidémicas, itors, gripecita, vacunaría, autoconfina- miento, wpac, grupoesoc, swers, protecciãƒæ, sanibrun, thinkbook, puntos- fuertes, mubs, epidémicos, adenovirus, ftui, stalkerware y epidémico Vecinos más cercanos en 2021: contagiadas, desescalada, contagios, infectados, cri- sisâ, fallecidos, virus, contagiado, influenza, fallecimientos, epidemia, confir- mados, hospitalizados, actualâ, patógeno, crisis, norovirus, recesiã, rebrotes, contagiaron, pandã, micaâ, contagio, hospitalizadas y asintomáticos Palabras que se acercaron más: desescalada, virus, contagios, aspo, influenza, falle- cidos, crisisâ, contagio, rebrotes, wuhan, contagiadas, patógeno, fallecimientos, convid, antiviral, ébola, epidemia, hantavirus, decesos, brote, distanciamiento, dengue, sanitaria, norovirus y contagiarse Palabras que se alejaron más: ufsa, sanibrun, generalmills, maxdisplay, amdpress, nnum, mubs, dezombies, tnkr, simblicamente, fundamentall, bpage, gozazara- goza, websties, jsst, wpac, thinkbook, agroconcept, binor, puntosfuertes, swers, itors, optm, sosprechado y iclr Aunque el COVID-19 era una enfermedad totalmente desconocida antes de fina- les del 2019, muchos de los términos en este clúster eran de uso común con anterio- ridad. Debido a esto, algunos términos de uso común se acercaron a otros términos relacionados con la pandemia de COVID-19. Una excepción es el término «COVID», que no era de uso común antes de la aparición de esta enfermedad: en este caso dicha palabra antes estaba asociada a otras palabras sin sentido. 37 epidemia contagiadas sosprechado iclr pospandémico infodemia optm epidémicas itors gripecita covid covit desconfinamiento covd confinamiento covi cov confinamientos pandemı́a autoaislamiento pandemia 10 palabras más cercanas (2018) COVID (visualización t-SNE) Figura 5.2: Análisis de vecinos más cercanos en el 2018 al clúster sobre COVID-19 38 contagiadas desescalada contagios infectados crisisâ fallecidos virus contagiado influenza fallecimientos covid covit desconfinamiento covd confinamiento covi cov confinamientos pandemı́a autoaislamiento pandemia 10 palabras más cercanas (2021) COVID (visualización t-SNE) Figura 5.3: Análisis de vecinos más cercanos en el 2018 al clúster sobre COVID-19 39 desescalada virus contagios aspo influenza fallecidos crisisâ contagio rebrotes wuhan covid covit desconfinamiento covd confinamiento covi cov confinamientos pandemı́a autoaislamiento pandemia 10 mayores acercamientos COVID (visualización t-SNE) Figura 5.4: Análisis de mayores acercamientos al clúster sobre COVID-19 40 wpac thinkbook agroconcept binor puntosfuertes swers itors optm sosprechado iclrcovid covit desconfinamiento covd confinamiento covi cov confinamientos pandemı́a autoaislamiento pandemia 10 mayores alejamientos COVID (visualización t-SNE) Figura 5.5: Análisis de mayores alejamientos al clúster sobre COVID-19 41 El término «COVID» En el caso de «covid», este término anteriormente estaba asociado a términos que parecen errores ortográficos o de codificación, como por ejemplo amdpress o gozaza- ragoza. Sin embargo, en el 2021 se asocia con términos para referirse al COVID-19 (incluyendo errores ortográficos) como covit, convid, covd. También se asocia a con- tagio, contagios, virus, pandemia, coronavirus, influenza y contagiados. En la Figu- ra 5.6 se muestran los vecinos del término «covid» en el 2018 y en la Figura 5.7 en la página siguiente se muestran los vecinos en el 2021. En la Figura 5.8 en la pági- na 43 están las palabras que más se acercaron al término «covid», mientras que en Figura 5.9 en la página 44 se muestran las que más se alejaron. grupoesoc sanibrun websties gozazaragoza amdpress maxdisplay bcty tádel gascaribe veritrade idnivel myftpupload kitempleo datarush grupogodo covid 15 palabras más cercanas (2018) covid (visualización T-SNE) Figura 5.6: Vecinos más cercanos en el 2018 al término «COVID» 42 coronavirus covd cov sars pandemia covit contagios covi ncov contagiados virusinfluenza contagio pandemı́a convid covid 15 palabras más cercanas (2021) covid (visualización T-SNE) Figura 5.7: Vecinos más cercanos en el 2021 al término «COVID» 43 coronavirus sars pandemia cov contagios contagiados covd contagio covi contagiadas influenza pandemı́a pandémica ébola virus covid 15 mayores acercamientos covid (visualización T-SNE) Figura 5.8: Palabras que se acercaron más al término «COVID» 44 uclasificados myftpupload metasiteid facturacionweb bcty grupogodo kitempleo veritrade tádel idnivel sanibrun amdpress gozazaragoza websties covid 15 mayores alejamientos covid (visualización T-SNE) Figura 5.9: Palabras que se alejaron más al término «COVID» 45 El término «coronavirus» El término «coronavirus» anteriormente estaba asociado a otros tipos de virus, como adenovirus, enterovirus, rotavirus, parvovirus, herpesvirus, parainfluenza, sin- citial, rinovirus, flavivirus y arbovirus. También estaba cercano a bacterias como bor- detella y bugdorferi. Sin embargo, estas cercanías cambiaron abruptamente y de he- cho varias de las palabras más cercanas en 2018 fueron las que más se alejaron. En la Figura 5.10 se muestran los vecinos del término «coronavirus» en el 2018 y en la Fi- gura 5.11 en la página siguiente se muestran los vecinos en el 2021. En la Figura 5.12 en la página 47 están las palabras que más se acercaron al término «coronavirus», mientras que en Figura 5.13 en la página 48 se muestran las que más se alejaron. adenovirusparainfluenza herpesvirus parvovirus bordetella enterovirus sincitial borrelia rinovirus flavivirus rotavirus micoplasma mycoplasma arbovirus burgdorferi coronavirus 15 palabras más cercanas (2018) coronavirus (visualización T-SNE) Figura 5.10: Vecinos más cercanos en el 2018 al término «coronavirus» 46 covid sars covd cov pandemia contagios covit virus contagiadoscontagio ncov covi brote epidemia contagiadas coronavirus 15 palabras más cercanas (2021) coronavirus (visualización T-SNE) Figura 5.11: Vecinos más cercanos en el 2021 al término «coronavirus» 47 covid covd covit cov covi pandemia convid confinamientoconfinamientos covis sars cuarentena reaperturas rebrotes confinarnos coronavirus 15 mayores acercamientos coronavirus (visualización T-SNE) Figura 5.12: Palabras que se acercaron más al término «coronavirus» 48 trachomatis rinovirus parvovirus pasteurella burgdorferi flavivirus babesia mycoplasma micoplasma papilomavirus bordetella adenovirus borrelia herpesvirus parainfluenza coronavirus 15 mayores alejamientos coronavirus (visualización T-SNE) Figura 5.13: Palabras que se alejaron más al término «coronavirus» 49 El término «cuarentena» El término «cuarentena» dejó de ser cercano a términos relacionados con «zoosa- nitario» o salmonela y se acercó a términos más afines a la pandemia del COVID-19, como coronavirus, pandemia o covid. También se acercó a términos relacionados con la nueva cotidianeidad, como teletrabajo, presencialidad o autoaislamiento. En la Figura 5.14 se muestran los vecinos del término «cuarentena» en el 2018 y en la Fi- gura 5.15 en la página siguiente se muestran los vecinos en el 2021. En la Figura 5.16 en la página 51 están las palabras que más se acercaron al término «cuarentena», mientras que en Figura 5.17 en la página 52 se muestran las que más se alejaron. cuarentenas quarantine infectados cuarentenarias infestados infectado infectada salmonela aphis contagiados hibernación confinamiento infestadas zoosanitario zoosanitaria cuarentena 15 palabras más cercanas (2018) cuarentena (visualización T-SNE) Figura 5.14: Vecinos más cercanos en el 2018 al término «cuarentena» 50 confinamiento cuarentenas autoaislamiento pandemia aspo desconfinamiento coronavirus confinamientos pandemı́a distanciamiento covid asilamiento desescalada covd encierro cuarentena 15 palabras más cercanas (2021) cuarentena (visualización T-SNE) Figura 5.15: Vecinos más cercanos en el 2021 al término «cuarentena» 51 confinamiento aspo autoaislamiento covid distanciamiento pandemia desconfinamiento teletrabajo covd covit confinamientos presencialidad coronavirus covi asilamiento cuarentena 15 mayores acercamientos cuarentena (visualización T-SNE) Figura 5.16: Palabras que se acercaron más al término «cuarentena» 52 kyth eslegal rutinaria zddr ejegir infestados inspeccionar peligro restriccióntema accecer productero turkishexporter deequipaje infestado estriles cuarentena 15 mayores alejamientos cuarentena (visualización T-SNE) Figura 5.17: Palabras que se alejaron más al término «cuarentena» 53 El término «pandemia» Anteriormente, el término «pandemia» estaba cercano a otros como epidemia, aviaria, influenza o gripe. Ahora, el término tiene como vecinos más cercanos a tér- minos como coronavirus, covid, confinamiento o cuarentena. Dentro de los térmi- nos que más se alejaron de «pandemia» está bioterrorismo, antivacuna, gripe, aviar, aviaria, ébola, carbunco, tiroidea, poliomielitis y multirresistente. En la Figura 5.18 se muestran los vecinos del término «pandemia» en el 2018 y en la Figura 5.19 en la página siguiente se muestran los vecinos en el 2021. En la Figura 5.20 en la pági- na 55 están las palabras que más se acercaron al término «pandemia», mientras que en Figura 5.21 en la página 56 se muestran las que más se alejaron. epidemia pandemias pandémicopandémica gripeaviaria epidémico epidémica pandémicas endemia epidemias epidémicos aviar influenza pandemı́a pandemia 15 palabras más cercanas (2018) pandemia (visualización T-SNE) Figura 5.18: Vecinos más cercanos en el 2018 al término «pandemia» 54 pandemı́a covid coronavirus covd epidemia pandémicapandémico crisis confinamiento pandemiaâ cuarentena confinamientos contingencia covit pandémicos pandemia 15 palabras más cercanas (2021) pandemia (visualización T-SNE) Figura 5.19: Vecinos más cercanos en el 2021 al término «pandemia» 55 covid covd confinamiento confinamientos covit coronavirus covi pandemı́a cuarentena sanitaria aspo convid cov cuarentenas reaperturas pandemia 15 mayores acercamientos pandemia (visualización T-SNE) Figura 5.20: Palabras que se acercaron más al término «pandemia» 56 multirresistente endemia tifoidea epidémicas ebola pandemias plaga antivacuna bioterrorismo poliomielitis carbunco gripe aviar aviaria epidemia pandemia 15 mayores alejamientos pandemia (visualización T-SNE) Figura 5.21: Palabras que se alejaron más al término «pandemia» 57 5.2.3. Mascarillas El clúster de mascarillas incluye palabras relacionadas con mascarillas y protec- ción facial. El centroide de este clúster es la palabra cubrebocas. En promedio, la simi- litud de coseno de las palabras en el clúster, respecto a sí mismas en 2018 y 2021 es de 0,5654. Se muestran cuatro figuras que resumen los desplazamientos alrededor del clús- ter mascarillas. En la Figura 5.22 en la página siguiente se muestran los vecinos más cercanos en el 2018. En la Figura 5.23 en la página 59 se muestran los vecinos más cercanos en el 2021. La Figura 5.24 en la página 60 muestra las palabras que se acer- caron más a términos dentro del clúster, mientras que la Figura 5.25 en la página 61 muestra las palabras que se alejaron más. En estas cuatro figuras, las palabras dentro del clúster se muestran en negro, el centróide del clúster en rojo y las palabras de cada caso (vecinos o mayores desplazamientos) en azul. Palabras en clúster: mascarilla, nasobucos, distanciamiento, ffp, mascarillas, barbi- jo, cubrebocas, máscarillas, tapaboca, nasobuco y cubreboca Vecinos más cercanos en 2018: máscarilla, hidratante, tapabocas, peeloff, pantalo- nespantalones, zddr, protecciãƒæ, sosprechado, sérum, exfoliante, daytox, cu- ticate, zddd, deequipaje, enalimentos, purificante, infomodule, exfoliantes, hi- sopar, dqsa, buscadon, emuaidmax, barbijos, loción y facialderm Vecinos más cercanos en 2021: tapabocas, barbijos, máscarilla, autofiltrantes, auto- filtrante, máscaras, máscara, antibacterial, distanciamientos, fpp, camisolines, autoaislamiento, hidroalcohólicos, earloop, iir, sanitizantes, sanitizante, higié- nicas, alcoholado, contagio, hidroalcohólicas, aglomeraciones, respiradores, ba- tas y cuarentena Palabras que se acercaron más: tapabocas, bioseguridad, aforos, barbijos, fpp, iir, cuarentena, aglomeraciones, aforo, cuarentenas, alcoholado, hidroalcohólicos, máscaras, sanitización, sanitizantes, aspo, antibacterial, sanitarias, hidroalcohó- lico, quirúrgicas, cuidándonos, higienizarse, sanitizados, gatell y higiénicas Palabras que se alejaron más: pajaadictos, yardwe, puntosfuertes, superlarge, stal- kerware, multianuncios, ebtools, plkd, reluzcas, chicklets, howtopronounce, dezombies, thinkbook, pantalonespantalones, dqsa, enalimentos, meojores, fa- ciltarte, zddd, buscadon, sosprechado, cuticate, protecciãƒæ, zddr y infomodu- le 58 máscarilla hidratante tapabocas peeloff pantalonespantalones zddr protecciãƒæ sosprechado sérum exfoliante nasobuco distanciamiento ffp nasobucos máscarillas tapaboca mascarillas cubreboca mascarilla barbijo cubrebocas 10 palabras más cercanas (2018) Mascarillas (visualización t-SNE) Figura 5.22: Análisis de vecinos más cercanos en el 2018 al clúster sobre mascarillas 59 tapabocas barbijos máscarillaautofiltrantes autofiltrante máscarasmáscara antibacterial distanciamientos fpp nasobuco distanciamiento ffp nasobucos máscarillas tapaboca mascarillas cubreboca mascarilla barbijo cubrebocas 10 palabras más cercanas (2021) Mascarillas (visualización t-SNE) Figura 5.23: Análisis de vecinos más cercanos en el 2018 al clúster sobre mascarillas 60 tapabocas bioseguridad aforos barbijos fpp iir cuarentena aglomeraciones aforo cuarentenas nasobuco distanciamiento ffp nasobucos máscarillas tapaboca mascarillas cubreboca mascarilla barbijo cubrebocas 10 mayores acercamientos Mascarillas (visualización t-SNE) Figura 5.24: Análisis de mayores acercamientos al clúster sobre mascarillas 61 enalimentos meojores faciltarte zddd buscadon sosprechado cuticate protecciãƒæ zddr infomodule nasobuco distanciamiento ffp nasobucos máscarillas tapaboca mascarillas cubreboca mascarilla barbijo cubrebocas 10 mayores alejamientos Mascarillas (visualización t-SNE) Figura 5.25: Análisis de mayores alejamientos al clúster sobre mascarillas 62 En el clúster de mascarillas se encuentran varios sinónimos de esta herramienta para proteger tanto la boca como la nariz. Es curiosa la presencia del término «na- sobuco», ya que su uso se da principalmente en Cuba4. Es un caso interesante de cómo los word embeddings pueden capturar palabras con usos análogos en diferentes regiones del mundo. Otro aspecto interesante es que hubo un alejamiento respecto a las mascarillas faciales o tratamientos estéticos: términos como hidratante, peeloff, sérum, exfoliante, daytox, purificante, loción y facialderm que eran los vecinos más cercanos en el 2018 dejaron de serlo en el 2021. 5.2.4. Vacunación en general El clúster de vacunación incluye palabras relacionadas con vacunación en gene- ral. El centroide de este clúster es la palabra inmunizados. En promedio, la similitud de coseno de las palabras en el clúster, respecto a sí mismas en 2018 y 2021 es de 0,6649. Se muestran cuatro figuras que resumen los desplazamientos alrededor del clús- ter vacunación. En la Figura 5.26 en la página siguiente se muestran los vecinos más cercanos en el 2018. En la Figura 5.27 en la página 64 se muestran los vecinos más cercanos en el 2021. La Figura 5.28 en la página 65 muestra las palabras que se acer- caron más a términos dentro del clúster, mientras que la Figura 5.29 en la página 66 muestra las palabras que se alejaron más. En estas cuatro figuras, las palabras dentro del clúster se muestran en negro, el centróide del clúster en rojo y las palabras de cada caso (vecinos o mayores desplazamientos) en azul. Palabras en clúster: inoculadas, vacunarán, vacunada, inmunizada, inmunizado, ino- culará, inoculados, inoculaciones, inmunizará, inmunizados, vacunará, inmu- nizando, inoculación, vacunó, vacunados, inmunizó y inocularse Vecinos más cercanos en 2018: vacunadas, vacunado, vacunaron, desparasitada, in- munizaron, vacunándose, desparasitados, vacunan, inocularon, inoculada, in- munizadas, inoculado, desparasitado, inmunizarse, vacunando, inoculaciã, va- cunar, vacunaran, vacunen, vacunaría, esterilizada, vacunación, vacunemos, pandemía y inocular Vecinos más cercanos en 2021: inmunizarse, vacunarse, vacunando, vacunaron, va- cunadas, inmunizadas, vacunado, inmunizaron, inmunización, vacunación, ino- culado, vacunan, inoculada, inocular, inmunizar, inoculando, inocularon, va- 4Según https://www.rae.es/observatorio-de-palabras/nasobuco https://www.rae.es/observatorio-de-palabras/nasobuco 63 cunar, vacunas, vacunaciones, inoculó, inoculaciã, vacuna