En un contexto cada vez más virtual, un reto fundamental en la gestión del conocimiento es la extracción de valor a una creciente cantidad de documentos que se producen día a día. Para facilitar el análisis de esta información, se puede utilizar técnicas de procesamiento de lenguaje natural.
En esta entrada te contamos sobre una de las más usadas: la “detección de tópicos” o de expresión alternativa, el “modelado de tópicos” (topic modeling en inglés). Hay una leve diferencia entre ambos términos: la detección de tópicos se trata de un ejercicio conceptual de identificar patrones de significado común en un conjunto de textos o documentos. El modelado de tópicos se trata de las herramientas informáticas que permiten la detección automática de estos patrones. Los ejemplos de aplicación varían mucho, desde entender la composición latente en un corpus, como es el ejemplo del contenido de este sitio blog, asimismo como la detección de los temas implícitos en un conjunto de documentos científicos durante la producción de un marco teórico, como la clasificación de artículos sobre un tema particular como el coronavirus.
La importancia de automatizar la detección de tópicos
Para analizar un corpus, cualquier información adicional o metadatos que tengamos nos facilita el trabajo. Ejemplos de metadatos son: autores, fecha de publicación, editorial, palabras clave, resúmenes o abstractos. Asimismo, una clasificación previamente asignada a un documento le ayuda a tener una idea a alguien que mira el documento por primera vez.
En algunos casos, los documentos con los que trabajamos ya traen parte de esta información adicional. Sin embargo, en muchas ocasiones le corresponde al analista utilizar su conocimiento e intuición para entender de qué trata un documento. Y aunque para un ser humano, generar conceptos no es una tarea muy compleja, su entendimiento va a estar siempre condicionado a sus propias limitaciones cognitivas. Adicionalmente, como nos podremos imaginar, categorizar o clasificar documentos a gran escala y por un largo período de tiempo puede resultar una tarea ineficiente. Las técnicas del modelado de tópicos nos ayudan precisamente a descubrir de manera automática dichos tópicos o temas latentes en un conjunto de textos que están sin categorizar.
La intuición detrás del modelado de tópicos
Los documentos representan “bolsas de palabras”, las cuales pueden ser relevantes a una o varias áreas de conocimiento (cada área entiéndase como un tópico). Por tanto, cada documento tiene cierto porcentaje de palabras que con mayor o menor frecuencia aparecen en mayor o menor grado, en diversos tópicos. A estos tópicos los llamamos latentes porque sabemos que están en un corpus de documentos y el reto está en encontrarlos.
Por ejemplo, para la gestión de un blog como Abierto al Público, cada entrada que publicamos tiene que ser categorizada y etiquetada. Una parte importante de esta tarea consiste en determinar los criterios de categorización y etiquetado que se basen en las ideas y palabras reflejadas en su contenido.
Entre la validación y la detección
Imaginemos que después de 5 años de la existencia de un blog, percibimos la necesidad de actualizar las categorías que se usan para clasificar cada una de sus entradas (como fue nuestro propio caso, hace poco).
Primero, para determinar los patrones en los temas que tratamos en los documentos o entradas, revisamos una selección de estos documentos y caemos en cuenta de que frases como “aprendizaje en línea”, “MOOCs” y “capacitación virtual” se repiten con frecuencia en varios documentos. Al terminar, se concluirá entonces que hay suficiente contenido para validar que la categoría “Aprendizaje Abierto” sigue siendo muy relevante.
Mientras avanzamos en la lectura de más entradas, encontramos otro patrón que hubiera sido muy difícil encontrar de manera manual. En varias entradas, categorizadas bajo múltiples temas, aparecen conceptos como “software”, “código fuente” y “open source”, y así determinamos que hay suficientes para merecer la creación de una nueva categoría “Código Abierto” y reasignar el contenido heredado dentro de esta nueva categoria. Y esta es la intuición detrás de la detección de tópicos.
Aplicando algoritmos de Detección de Tópicos
Tal como mencionamos en la entrada “¿Cómo se compara un iceberg al funcionamiento de la Inteligencia Artificial?” una gran parte del éxito en la aplicación de cualquier algoritmo es el trabajo que se hace con los datos de entrada. El caso de los algoritmos de Detección de Tópicos no es la excepción. Comúnmente la limpieza de texto incluye la eliminación de palabras muy frecuentes”, o stopwords, que no informan mucho. Por ejemplo, artículos, conjunciones, preposiciones, etc. Adicionalmente algunos científicos de datos sugieren devolver las palabras a su raíz, por ejemplo, los verbos conjugados: “comiendo” y “comeré” se transformarán en el verbo raíz “comer”, un proceso conocido como stemming. Una vez tengamos limpios los datos de entrada, pasaremos a la fase de entrenamiento del algoritmo, cuyo resultado será por un lado la distribución de palabras y por otro la distribución de los tópicos en los documentos.
Retos asociados
Uno de los retos más grandes en general de la aplicación de algoritmos no supervisados en el Procesamiento del Lenguaje Natural es la evaluación de los resultados. La solución consiste en hacer varias pruebas y validar los resultados a través de: a) la inclusión de un humano para que con su sentido común evalúe los resultados, o b) la utilización de métricas para hacer un análisis matemático de los resultados. Algunas métricas disponibles para analizar los resultados del Detección de Tópicos son la similitud coseno u otras ecuaciones como la de perplejidad y coherencia. Evidentemente, y si los recursos lo permiten la evaluación ideal es la mezcla de ambas metodologías, la evaluación ideal es la mezcla de ambas metodologías.
Otro reto está relacionado con la cantidad mínima de documentos que se requiere para aplicar estos algoritmos. Expertos recomiendan que se cuente con por lo menos con una muestra de 1,000 casos.
Recursos disponibles para experimentar con el Detección de Tópicos
Aunque existen varios algoritmos para hacer Detección de Tópicos, uno de los más famosos es el Latent Dirichlet Allocation (LDA). Hay varias librerías de código abierto con las que puedes empezar a experimentar con el LDA. Una de las más famosas es la librería para Python, Gensim. Asimismo, está disponible la librería GraphLab Create que pone a disposición un módulo que incluye la configuración de parámetros como alpha y beta. Otras famosas librerías son las librerías LDA y un módulo incluido en Sklearn: LatentDirchlet Allocation. Y para visualizar los resultados se puede utilizar la librería pyLDAvis.
Si lo tuyo es explorar casos de aplicación te recomendamos revises algunas de las soluciones propuestas en varios de los retos de Procesamiento de Lenguaje Natural en Kaggle. Por ejemplo, podrías buscar inspiración en algunas de las soluciones con Detección de Tópicos para resolver el reto planteado en el marco del COVID-19.
Leave a Reply