Carlos Rodríguez Abellán

Carlos Rodríguez Abellán

Ingeniero de Telecomunicación y Máster en Inteligencia Artificial por la UPM. Trabajo como Data Scientist en AURA, Telefónica. Apasionado de la Inteligencia Artificial con especial interés en el Procesado de Lenguaje Natural y el Deep Learning.
AI & Data
Análisis de influencia en Juego de Tronos
Análisis de co-ocurrencias En el anterior post hablábamos del análisis de influencia y de como existen diversas técnicas de medir la importancia de un individuo en una red (por ejemplo, un influencer en una red social). Una de las conclusiones a las que llegábamos es que, no necesariamente, más es siempre mejor. Para ilustrar cómo en función de la métrica utilizada pueden cambiar los influencers de una comunidad se pueden utilizar muchos ejemplos: las conexiones de una red de amigos en Facebook, los emails enviados y recibidos por una persona en una compañía, los movimientos de personas entre ciudades, etc. Además del análisis del análisis de individuos en estos casos de uso, también es posible estudiar cómo se relacionan los personajes en un libro o serie. Para ello contamos cuantas veces co-ocurren los personajes. Existen diversas maneras de medir la co-ocurrencias. Algunas de ellas son el número de veces que aparecen juntos en un determinado libro o cómic, el número de veces que se encuentran en el mismo lugar o el número de veces que hablan entre ellos. Si tomamos como ejemplo las coocurrencias de los personajes a lo largo de los cinco libros actualmente disponibles de la serie Canción de Hielo y Fuego [1] podemos analizar qué personajes son más relevantes en función del cálculo de centralidad escogido. Detección de influencers en Juego de Tronos Para ello, hemos utilizado Gephi [2], software open-source de análisis de redes. Antes del cálculo de las diferentes métricas de centralidad se han identificado comunidades en el grafo mediante el algoritmo modularity [3] implementado en Gephi. Los nodos (personajes) con el mismo color pertenecen a la misma comunidad. Parece que, en general, las comunidades que el algoritmo ha detectado pertenecen a personajes o bien de la misma casa / familia o bien con los que ha compartido más momentos. El diámetro de cada nodo (lo grande o pequeño que sea), así como el tamaño de la fuente de cada nombre, representa el score calculado para cada medida de centralidad (degree, betweeness, closeness y eigencentrality). A mayor el diámetro y la fuente, mayor score, y, por tanto, mayor relevancia. Figura 1: el radio y el tamaño de los nombres representa el Degree (Ampliar) Figura 2: el radio y el tamaño de los nombres representa el EigenCentrality (Ampliar) Si consideramos el degree o el eigencentrality como medida de referencia los resultados son similares. Los influencers son, en general, los personajes principales de la serie (nada muy sorprendente). Personajes que aparecen mucho tienen un score alto. Figura 3: el radio y el tamaño de los nombres representa el Closeness (Ampliar) Si la métrica de centralidad es el closeness, en cambio, todos los personajes parecen ser igual de relevantes. Esto se debe a que al ser una red densa todos se encuentran - aproximadamente - igual de cerca unos de otros. Figura 4: el radio y el tamaño de los nombres representa el Betweeness (Ampliar) Si la comparativa la realizamos en base al betweeness encontramos que los resultados se asemejan a los obtenidos con el degree y el eigencentrality pero, a diferencia de ellos, somos capaces de identificar no solo influencers en el total de la red, si no, también, dentro de sus propias comunidades. En base a este sencillo análisis, de tener que elegir una lista de posibles influencers de entre los resultados de las figuras 1, 2, 3 y 4, ¿qué medida de centralidad elegirías? Conclusión Como puede verse en función de la medida de centralidad escogida los personajes más relevantes a lo largo de todos los libros publicados hasta la fecha de la saga cambian. Si se realiza este mismo análisis pero en lugar de hacerlo con todos los libros lo hacemos con un libro en concreto los resultados cambiarían muy posiblemente. Esto nos indica que la relevancia cambia en función del tiempo y del contexto. En el análisis de redes sociales esto es exactamente igual. En general la tarea de identificar a personas con influencia en una población es una ardua tarea. Es decir, la conclusión principal es que no debemos dejarnos llevar por el número total de conexiones de una determinada persona sino por la calidad en las mismas. Y, ante todo, no basar nuestro análisis en solo una métrica (como se ha hecho en este artículo) sino que nuestra decisión ha de tomarse teniendo en cuenta muchas más dimensiones como los gustos, actividad y valores de sus seguidores, su zona geográfica, su posibilidad de inversión en tu producto … Bonus Existe un dataset con las coocurrencias de los personajes del Universo Marvel con el que puede realizarse este mismo análisis. Personalmente os recomiendo que si os interesa el tema probéis a jugar con Gephi y este dataset. Referencias [1] Coocurrencias en Juego de Tronos, https://github.com/himanshubeniwal/A-Network-analysis-of-Game-of-Thrones/blob/master/datasets/ [2] Gephi, https://gephi.org [3] Modularity class, https://github.com/gephi/gephi/wiki/Modularity [4] Marvel Universe, http://syntagmatic.github.io/exposedata/marvel/ Para mantenerte al día con LUCA, visita nuestra .
6 de noviembre de 2019
AI & Data
¿Eres un influencer? Las mejores formas de medirlo
Qué es un influencer Youtuber, instagramer, influencer, micro-influencer… Son palabras que nos asaltan continuamente haciendo referencia a personas con uno o varios perfiles digitales que tienen una cantidad sustancial de seguidores - o conexiones - en redes sociales y/o medios digitales. Habitualmente tendemos a pensar que más es mejor o, lo que es lo mismo, un mayor número de conexiones (seguidores, amigos, fans …) se traduce en un mayor impacto a la hora de transmitir un mensaje, una idea o al publicitar una determinada marca. Un influencer es una persona con presencia en los medios digitales, credibilidad sobre un tema y muchas conexiones, pero, ¿ser influencer es siempre sinónimo de tener influencia? Imaginad que somos una marca y tenemos un presupuesto para publicidad. Queremos utilizar este presupuesto para identificar a posibles influencers que nos ayuden a darnos a conocer y a tener mayor penetración de mercado pero queremos evitar a aquellos que son falsos influencers. Un método puede ser elegir a aquellas cuentas con mayor número de conexiones. El problema es que esas conexiones no necesariamente tienen porqué compartir nuestro mensaje con sus contactos (retweet en Twitter, por ejemplo), no ser parte de nuestro principal target o, incluso, ser usuarios con poca relevancia, entendiendo relevancia como importancia relativa dentro de la red. Lo ideal sería detectar a aquellas personas con muchas conexiones, que dichas conexiones tengan a su vez otras muchas conexiones, que seguidores sean afines a nuestra marca y valores y que, además, dichos influencers cubran la mayor parte de la red con sus conexiones. Entonces, ¿existe alguna manera para detectar individuos con mayor potencial influencia que otros? Centralidad: ¿Eres - potencialmente - influyente? La teoría de grafos es una rama de las matemáticas que nos permite estudiar las relaciones entre elementos dentro de un conjunto (usuarios de una red social, grupos de amigos en una ciudad, personajes en una serie de televisión …). Un grafo es, en esencia, un conjunto de vértices (o nodos) conectados entre si mediante aristas. Para entenderlo mejor, si quisiésemos representar a los usuarios de una red social – como Facebook – en un grafo cada nodo se correspondería con un usuario de la plataforma mientras que los enlaces representarían las conexiones entre ellos. Al igual que en Facebook hay usuarios con mayor número de conexiones que otros, en el grafo habrá nodos más conectados que el resto. En función del número y la estructura de las conexiones entre nodos podemos medir la relevancia de cada individuo según interacciona con el resto de individuos de la red. Esto se conoce como centralidad y existen multitud de maneras de calcularla. ¿Cómo medir la centralidad? Para medir la centralidad o potencial de influencia de una persona podemos usar las siguientes métricas. Degree (Grado) Número de enlaces que tiene un nodo con los demás. Útil para detectar individuos conectados con muchos otros individuos. Closeness (Cercanía) Se basa en la cercanía de un nodo con respecto al resto de nodos, comparado con los demás. Útil en la detección de nodos puente entre distintas comunidades de individuos en una red. Si representamos nuestra red de contactos de LinkedIn como un grafo, los nodos de los recruiters tendrían un closeness mayor que el resto de nodos al estar, en principio, conectados con personas de diferentes empresas y sectores en mayor proporción que otros profesionales. Betweeness (Intermediación) Número de veces que un nodo se encuentra en el camino de mínima distancia entre otros nodos. Útil cuando se quiere encontrar a individuos mejor posicionados que otros en la red para influir más rápidamente al resto. Eigencentrality (Autovector) Similar al degree pero, además de tener en cuenta el número de conexiones del nodo, considera a su vez el degree de sus vecinos y, así, sucesivamente a lo largo de la red. Tremendamente útil en el análisis de redes sociales humanas o de ordenadores detectando nodos con capacidad de influencia sobre el total de la red y no solo sobre sus vecinos. En el caso de una red de ordenadores permite identificar el punto en el cual, si se quiere infectar la red con un virus, el ataque es más efectivo. Algunos resultados La teoría siempre es interesante - o así se intenta - conocerla, ¿no? Pero es cierto que con ejemplos es mucho más fácil asimilar los conceptos. En el próximo post veremos con ejemplos prácticos la detección de comunidades y de influencers en redes de individuos reales. En particular, analizaremos el potencial de influencia de los personajes de una de las series más aclamadas por el público recientemente: Juego de Tronos. ¡No te lo pierdas! Para mantenerte al día con LUCA, visita nuestra .
29 de octubre de 2019
AI & Data
Analizando con IA la canción del verano: ¿Cómo hemos cambiado?
Ya es septiembre y quedan solo dos semanas para el final del verano por lo que las vacaciones, la playa y los espetos van ya quedando atrás. También va quedando atrás (esto quizá no es tan malo) la canción más repetida durante los últimos dos meses. Y es que si algo es típico en la temporada estival es, justamente, la denominada canción del verano. Si además algo la acompaña es la eterna discusión de si la música de antes era mejor que la de ahora. Más allá de que esto sea cierto – o no – lo que está claro es que ‘Con Calma’ y ‘Mambo No. 5’ no son precisamente iguales... La música, como manifestación artística, es un producto cultural que le permite al ser humano expresar sentimientos, miedos e inquietudes. Además de los instrumentos utilizados o estilos más populares también hay diferencias en las letras de las canciones. Es por ello que si analizamos las diferencias y similitudes entre las letras de las canciones más populares a lo largo de la historia, podremos conocer en más detalle cómo hemos cambiado. Dispersión Léxica En este post vimos como la inteligencia artificial nos permitía analizar la evolución de las palabras y su significado. En el post de hoy veremos cómo podemos detectar cambios en la sociedad a lo largo de la historia atendiendo únicamente al número de veces que se utilizan algunas palabras en el tiempo (dispersión léxica), ya sea en general o, como es el caso de este post, en las letras de las canciones. El libro Natural Language Processing with Python [1] ilustra de forma muy clara este tipo de análisis. Si colocamos en orden cronológico todos los discursos inaugurales de los últimos 220 años uno tras otro, desde la primera palabra a la última, y buscamos cuándo se han pronunciado un conjunto de palabras (ciudadanos, democracia, libertad, deberes y América, por ejemplo) pueden encontrarse cambios a lo largo de la historia. La siguiente gráfica. en el eje horizontal (word offset) representa el total de palabras aparecidas en los distintos discursos (a la izquierda estarían los discursos más antiguos y a la derecha los más actuales). Las rallas azules representan que alguna de las palabras ha sido utilizada. Puede verse como la palabra deberes se utilizaba mucho más en el pasado que ahora y, en cambio, libertad, democracia o América se utilizan con mucha mayor frecuencia hoy en día. Figura 1: Dispersión léxica de las palabras citiziens, democracy, freedom, duties y America en los discursos inaugurales de EEUU. Otro ejemplo que ilustra lo interesante de este análisis puede verse en Google Ngram Viewer. Google Ngram Viewer es una herramienta que permite a los usuarios buscar en la colección de documentos de Google (Google Books) que almacena recursos impresos desde el año 1500 hasta el día de hoy en distintos idiomas. La búsqueda puede realizarse por palabras o n-gramas (secuencias de n palabras). El hecho de que la palabra war aparezca con mayor frecuencia alrededor de 1918 y 1943 quizá es interesante, pero no sorprendente. En cambio, que las palabras milk, sugar, meat y butter (leche, azúcar, carne y mantequilla en inglés), pese a que a priori no están relacionadas directamente con la guerra, sigan el mismo patrón, puede ser llamativo. Una posibilidad es que tenga que ver con la época de escasez y de racionamiento de alimentos típica de tiempos de guerra. Es decir, analizando únicamente el número de veces que se utiliza una palabra y la evolución a lo largo de la historia puede estudiarse y entenderse mejor el contexto en el cual ha sido utilizada. Figura 2: Evolución del porcentaje de aparición de las palabra war (arriba) y milk, sugar, meat y butter (abajo) en documentos a lo largo del tiempo. Análisis sobre canciones Aplicando el mismo análisis descrito anteriormente pero, esta vez, utilizando un histórico de letras de canciones podemos llegar a conclusiones bastante interesantes. El estudio que se presentado en [3] toma como referencia la lista anual Billboard Hot 100 (top 100 de sencillos en EEUU) siendo bastante claro a la hora de revelar cómo existen patrones en la música utilizando según qué palabras a lo largo de las décadas. Analizando la evolución en el número de veces que se utilizan palabras como fuck, bitch o ass en las canciones más populares de los últimos 50 años es evidente la tendencia alcista de un lenguaje más "sucio" cuando hace algunos años apenas eran utilizadas. Figura 3: Número de palabras obscenas o con carga sexual a lo largo de las décadas. Tomando como muestra – también del Billboard 100 – el top 10 de canciones de cada década, analizando las palabras más frecuentes y, en base a ellas, clasificar cada canción en un topic u otro en [4] puede verse como la tendencia parece ser, en términos generales, derivar de un vocabulario más – digamos – romántico y pesimista a uno más materialista. Pese a estos cambios en el vocabulario puede quizá extraerse que los temas centrales, pese al enfoque, siguen siendo los mismos. Figura 4: Comparación de los topics más comunes en las canciones más populares de la década de 1960 y de 2010. Un último ejemplo que representa de manera bastante clara si una determinada palabra ha sido utilizada en alguna de las canciones más populares de las últimas décadas es el análisis de Nickolay Lamm [5]. Los gráficos son muy similares al primero de este post pero con una dimensión más. El eje horizontal es el tiempo (cada columna un año), el eje vertical representa el top 100 de canciones de dicho año (cada fila una posición en el rankinkg) por lo que cada celda es una canción. Si la celda aparece coloreada significa por tanto que la palabra bajo análisis aparece en dicha canción (un rojo oscuro significa que aparece más veces que el amarillo). Merece la pena entrar al enlace para comprobar otros gráficos. Aquí, como muestra, la representación del desuso de la palabra sad (triste) y la popularidad de la palabra sex (sexo) desde los años 90. Figura 5: Canciones del top 100 de Billboard que contienen las palabras sex (izquierda) y sad (derecha) durante los últimos 50 años. Conclusiones Es indudable que la música refleja las tendencias culturales y las diferencias en las mismas. Es también interesante analizar que dichas tendencias siguen patrones que convierten la música comercial en algo predecible al usar un vocabulario casi invariante evitando fórmulas complejas (llamativo que además un tercio del total de los top 1 en la lista de Billboard de todos los tiempos haya sido escrito por una única persona [6]). Lo que si es más complicado es determinar si este lirismo deriva de la cultura popular o es, en cambio, el precursor de este argot. Sea como sea, la música (los éxitos, se entiende), pese a ser altavoz de las tendencias culturales, parece aferrarse a un marco común de temas al que parece estar anclada desde hace 60 años. Referencias [1] https://www.nltk.org/book/ch01.html [2] https://books.google.com/ngrams/ [3] https://medium.com/the-omnivore/the-evolution-of-the-american-pop-lyric-61ef31b24f03 [4] https://contently.com/2015/05/07/this-analysis-of-the-last-50-years-of-pop-music-reveals-just-how-much-america-has-changed/ [5] https://thoughtcatalog.com/nickolay-lamm/2014/02/an-analysis-of-money-love-and-sex-in-music/ [6] https://www.therichest.com/rich-list/most-influential/10-songwriters-you-didnt-know-wrote-pop-musics-biggest-hits/
12 de septiembre de 2019
AI & Data
La Ley de Zipf, o por qué hay – casi – el doble de Garcías que de González
El lenguaje es la facultad que tenemos los seres humanos para expresarnos y comunicarnos mediante la voz u otros signos. Comprende de una cantidad de estilos, modos y normas en todas sus formas que lo convierten en, posiblemente, uno de los sistemas más complejos que existan dada la multitud de lenguas y estructuras que lo conforman. En función del tema que hablemos, del contexto en el que nos encontremos o del interlocutor al que nos dirijamos utilizaremos una lengua, emplearemos unos u otros tecnicismos o, sencillamente, adaptaremos nuestro mensaje en función de todas estas variantes. Además de todo esto, tal y como vimos en el anterior post, el lenguaje no solo depende del contexto si no que además se encuentra en continua evolución. Teniendo todo esto en cuenta podríamos pensar que su modelado o realizar determinadas predicciones sobre el mismo puede ser una tarea, si no imposible, ambiciosa y difícil de conseguir, ¿no? En realidad, esto es cierto. Pero saber que aproximadamente el 50% del contenido de cualquier libro, artículo o conversación no será otra cosa que las mismas 50-100 palabras, mientras que aproximadamente la otra mitad serán palabras que aparezcan solamente una o dos veces puede ser algo sorprendente. Antes de entender porqué ocurre esto conviene presentar el Principio de Pareto. Principio de Pareto El Principio de Pareto, o regla del 80/20, enunciado por Vilfredo Pareto en 1896, dice que, en general, cualquier población se reparte en dos grupos en una proporción 80/20 de modo que el grupo minoritario (20%) se reparte el 80% de algo mientras que el grupo mayoritario se reparte el 20% restante. Existen multitud de procesos en el mundo real que siguen este principio. Por ejemplo, Pareto mostró como, según sus observaciones, el 80% del terreno era propiedad solo del 20% de la población. Otra observación en la que se cumplía esta regla era en su jardín, donde el 20% de las vainas de guisantes contenían el 80% del total de guisantes. Con el tiempo este fenómeno se ha observado en otros muchos casos como que el 20% de la población posee el 80% de la riqueza o, también, que el 20% de los pacientes consumen el 80% del total en gasto total de salud. Pero, ¿todo esto cómo enlaza con el lenguaje y título de este post? Ley de Zipf George Zipf, lingüista de la Universidad de Harvard, observó en la década de 1940 que la mayoría de palabras se repetían siempre ya fuera en un idioma, en un libro o en un artículo. De hecho, lo interesante, es que observó que parecía existir un patrón en la frecuencia de uso de cada palabra. Supongamos que elegimos un libro cualquiera y creamos una lista en la que apuntamos cada palabra y el número de veces que aparece en dicho libro. El patrón que descubrió Zipf es que la segunda palabra más frecuente se repite la mitad de veces que la primera, la tercera se repite, aproximadamente, un tercio de veces, la cuarta un cuarto de las veces, la quinta un quinto… y así sucesivamente. Es decir, este patrón (o ley de Zipf) determina que la frecuencia de aparición de una palabra es proporcional al inverso de la posición que ocupa dicha palabra según su número de apariciones (siendo esta ley una forma discreta de la distribución de Pareto). Lo sorprendente es que esto ocurre no solo en inglés como descubrió Zipf. Esto ocurre también para todos los idiomas. Incluso en aquellos idiomas no creados de forma natural como el esperanto o aquellos tan antiguos que no hemos sido capaces de descifrar hoy en día. Toda lengua sigue esta ley que, hoy por hoy, no se conoce el motivo por el cual ocurre que algo tan complejo y creativo como es el lenguaje siga un patrón tan predecible. Si representamos en una gráfica, donde el eje vertical sea la frecuencia y el eje horizontal el ranking, con ambos ejes en escala logarítmica, el patrón aparecerá representado como una línea recta descendente. Si nos centramos en el español, 1 de cada 16 veces (6 %) que decimos o escribimos una palabra se trata de la palabra de. Las diez palabras más comunes (según la RAE [1]) son, ordenadas según su frecuencia, de, la, que, el, en, y, a, los, se y del. En este caso, 1 de cada 4 palabras que utilizamos se corresponderá con una de estas palabras. En el número de personas que comparten su primer apellido también ocurre esto donde, como ya avanzaba el título del blog, el apellido más común es García seguido de González en segundo lugar y, por tanto, con la mitad de repeticiones. Pero esta ley no solo permite describir cómo usamos las palabras o como se distribuyen los apellidos. Existen multitud de fenómenos como como el número de habitantes en ciudades [2], el tráfico en Internet o incluso la magnitud de los terremotos que parecen seguir muy de cerca esta ley. En el primer ejemplo, la segunda ciudad con más habitantes tiene la mitad que la primera, la tercera más grande un tercio... Otros fenómenos Además de encontrar este patrón en las palabras de un idioma o en los apellidos de una población, podemos encontrar como otros fenómenos aún más curiosos [3] siguen la ley de Zipf. Por ejemplo, el número de veces que se menciona el nombre de cada mes del año, cada planeta del Sistema Solar o el nombre de cada elemento químico ¡sigue también este patrón! ¡Esto no acaba aquí! Este patrón se encuentra incluso en palabras nuevas como pueden ser aquellas empleadas para crear una historia sobre extraterrestres (como Wug, Plit, Blicket, Flark, Warit, Jupe, Ralex o Timon). Sí, el número de veces que aparece el nombre dados a los en una novela para crear una determinada historia sigue también esta distribución. ¿Y si analizamos las palabras utilizadas en este artículo? Seguro que todos imaginamos la respuesta. Referencias [1] http://corpus.rae.es/frec/10000_formas.TXT [2] https://brenocon.com/blog/2009/05/zipfs-law-and-world-city-populations/ [3] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4176592/ [4] https://www.youtube.com/watch?v=fCn8zs912OE
10 de julio de 2019
AI & Data
Word Embeddings: cómo la IA nos muestra la evolución de las palabras
Introducción El lenguaje, tal y como lo conocemos, es muy distinto a como se originó (hace al menos 400 mil años). Pese a esto no es necesario remontarnos tan atrás en el tiempo para descubrir que la manera en la que nos comunicamos hoy en día es muy distinta a aquella en la que lo hacían, por ejemplo, nuestros padres. Estas diferencias vienen marcadas por motivos muy diversos como pueden ser el marco sociocultural del momento, la formación del individuo o la manera de expresarse de las personas más cercanas, entre otros. Ser capaces de entender la evolución de la semántica de nuestro lenguaje nos permite captar el verdadero significado de las palabras en función del contexto en el que se encuentren. Es por ello que para entender correctamente el significado de una palabra es imprescindible analizarla dentro de su contexto. Dicho contexto puede englobar tanto desde la posición de la palabra en la frase – o documento – como al contexto social y/o temporal en el que se enmarque. Palabra 'ordenador' en la edición de 1817 del Diccionario de la Lengua Castellana [1] Un ejemplo del cambio en el significado de las palabras a lo largo del tiempo puede verse, por ejemplo, en la palabra ‘ordenador’ que, en el Diccionario de la Lengua Castellana de 1817, solo tenía una acepción y era para designar a aquella persona que, literalmente, ordenaba. Hoy en día muy posiblemente pensaríamos en nuestro portátil o computadora. Word Embeddings Dentro del Procesado de Lenguaje Natural (PLN) y de la Lingüística Computacional existen una serie de técnicas que permiten identificar similitudes entre palabras en función de la co-ocurrencia entre ellas en determinados fragmentos de texto. La premisa en la que se basan estas técnicas es que es posible definir – o caracterizar – una palabra por el resto de palabras de las que aparezca acompañada. Entre estas técnicas destacan los modelos de word embeddings que vinculan cada palabra o frase de un determinado corpus (conjunto de documentos) a un vector de números reales. Como estos vectores representan coordenadas en un determinado espacio vectorial podemos calcular palabras próximas, o análogas, en función de la distancia que exista entre sus vectores. Es decir, cuanto más cerca se encuentren dos vectores palabra éstas tendrán una semántica más similar que de encontrarse más alejados. El cálculo de esta similitud o cercanía entre vectores puede hacerse de diversas maneras siendo algunas de las más utilizadas la distancia euclidea o la similitud del coseno. En la siguiente figura [2] aparecen representados algunos vectores palabra y sus relaciones calculadas con GloVe, un modelo de word embeddings desarrollado por la Universidad Stanford, el cual es capaz de capturar conceptos como que ‘hombre’ es a ‘mujer’ como ‘rey’ es a ‘reina’, relaciones entre verbos y tiempos verbales o vincular nombres de países con sus capitales. Representación del concepto de los word embeddings capturando información relativa al género, tiempos verbales, entidades, etc. Estos modelos son ampliamente utilizados en PLN ya que mejoran de forma notable la habilidad de los modelos de lenguaje actuales para aprender directamente de textos. Algunas de las áreas o tareas en las que se aplican pueden ser extracción de información, traducción automática o clasificación de documentos. Además del mencionado GloVe [3], otros modelos populares de word embeddings son Word2Vec (Google) [4] o fastText (Facebook) [5]. Estudio de la evolución del lenguaje mediante word embeddings Teniendo como objetivo estudiar cómo el significado de las palabras evoluciona a lo largo del tiempo, los modelos basados en word embeddings son de gran utilidad ya que nos permiten representar una palabra en función de su contexto. Utilizando estos modelos para analizar el contexto de todas las palabras de un una determinada lista de palabras en documentos publicados a lo largo del tiempo y en distintos medios podemos estudiar cómo la semántica ha variado – o no – con el pasar de los años. La siguiente figura ilustra la evolución en la semántica – en inglés – de tres palabras a lo largo del último siglo y medio [6]. La palabra ‘gay’, por ejemplo, ha derivado de significar ‘cheerful’ (alegre), a referirse a la homosexualidad. La palabra ‘broadcast’ refleja cómo el avance de la tecnología impacta de forma directa en el lenguaje ya que, en los años 80 hacía referencia a la difusión de semillas mientras que, hoy en día, su significado se refiere a la difusión de señales de televisión o radio. Evolución de la semántica de las palabras 'gay', 'broadcast' y 'awful' en los últimos 150 años La evolución en la tecnología o los cambios en el contexto sociopolítico tienen un impacto considerable en el significado de las palabras a lo largo del tiempo. Este impacto se aprecia de manera significativa en los siguientes resultados [7] donde la trayectoria de palabras como ‘apple’ o ‘trump’ a lo largo del tiempo han variado de forma considerable en apenas 30 años. Evolución de las palabras 'apple', 'amazon', 'obama' y 'trump' en los últimos 30 años ‘Apple’ ha pasado de tener, principalmente, significado de fruta a aparecer de forma más frecuente en contextos que hablan sobre marcas o productos tecnológicos. Lo mismo ha ocurrido con ‘amazon’ que, antes de la creación de la compañía a la que da marca dicha palabra, hacía referencia a la naturaleza. Con ‘obama’ y ‘trump’ la evolución gira en torno a los roles profesionales que ambas personas han ocupado a lo largo de sus vidas convergiendo ambas palabras en contextos de semántica similar, la política. Bonus En el este enlace se encuentra una visualización de las palabras más comunes en inglés calculados mediante Word2vec en el cual se representan las palabras rodeadas de aquellas que en cuanto a su semántica son más similares. Referencias [1] https://archive.org/details/5eddiccionariode00acaduoft/page/n3 [2] https://cbail.github.io/textasdata/word2vec/rmarkdown/word2vec.html [3] https://nlp.stanford.edu/projects/glove/ [4] https://arxiv.org/abs/1301.3781 [5] https://fasttext.cc/ [6] https://media.telefonicatech.com/telefonicatech/uploads/2021/1/40390_1605.09096.pdf [7] https://media.telefonicatech.com/telefonicatech/uploads/2021/1/40390_1703.00607.pdf
5 de junio de 2019
AI & Data
Text summarization: Conoce cómo funciona la generación automática de resúmenes
El hecho de que cada vez más personas estemos conectadas a Internet y que, además, generemos más y más contenido hace que el análisis o estudio de la información alojada en la red sea una tarea inabordable. Una gran cantidad de esta información se trata de textos como, por ejemplo, noticias, artículos de opinión, documentos científicos, reviews de artículos, etc. El Procesado de Lenguaje Natural (PLN, o NLP por sus siglas en inglés) es la rama dentro del ámbito de las ciencias de la computación, la lingüística y la inteligencia artificial que se encarga del estudio y desarrollo de técnicas que permitan a los ordenadores entender y procesar el lenguaje humano. En concreto, Text Summarization o Automatic Summarization (Resumen Automático en español) es la técnica mediante la cual podemos sintetizar fragmentos largos de texto en fragmentos de textos más cortos que contengan únicamente aquella información que es relevante. Gracias a esto podemos diseñar y desarrollar modelos que nos ayuden a condensar y presentar la información ahorrándonos tiempo de lectura y maximizando la cantidad de información por palabra. Modelos de text summarization ampliamente utilizados En función de como se realice el resumen podemos distinguir dos estrategias: Extracción: Consiste en identificar y extraer directamente del documento original entidades relevantes sin someterlas a ningún tipo de modificación. Dichas entidades pueden ser palabras o frases. El caso más sencillo sería utilizar las palabras como etiquetas para, posteriormente, clasificar un determinado documento. La detección de estas keywords puede realizarse buscando en el documento una serie de palabras establecidas a priori como relevantes o, por ejemplo, mediante un modelo (Latent Dirichlet Allocation [3], o LDA, permite detectar los temas o topics predominantes en un determinado corpus, o conjunto de documentos). Mediante este método el resumen automático de un documento se realiza mediante la combinación estas palabras y/o frases en estructuras más complejas pero sin realizar ninguna modificación en el texto extraído. Abstracción: Esta técnica, además de detectar las entidades más relevantes en el documento, es capaz de generar texto a partir de dichas entidades. Dicha paráfrasis ha de realizarse con algún modelo de generación de lenguajes naturales (GLN, o NLG por sus siglas en inglés) por lo que la complejidad de este método es mayor comparada a la anterior. Ejemplo: Texto original: "El principito arrancó también con un poco de melancolía los últimos brotes debaobabs. Creía que no iba a volver nunca." Ejemplo de extracción: "El principito arrancó los brotes. No iba a volver." Ejemplo de abstracción:"Creyendo que no volvería el principito arrancó los brotes con melancolía. volvería." Por otra parte, en función de la escala a la que se realicen los resúmenes podemos distinguir entre: Un documento: El resumen se realiza sobre un único documento. Dicho documento puede ser un artículo, una noticia, un report, un email, etc. Varios documentos. El objetivo es el mismo que en el caso anterior pero incluyendo información de todos los documentos. También puede ser parte de la tarea agrupar los documentos en clusters de documentos que compartan similitudes entre ellos. Como comentábamos, existen diferentes maneras de desarrollar un modelo de text summarization en función, principalmente, del objetivo, de los datos disponibles y del tipo de resumen que queramos obtener con dicho modelo. En siguientes posts hablaremos de algunos de estos métodos presentando distintos escenarios con algunas posibles soluciones. Referencias [1] https://www.domo.com/solution/data-never-sleeps-6 [2] https://www.sciencedaily.com/releases/2013/05/130522085217.htm [3] http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf
9 de mayo de 2019