Práctica 1b : Topic modeling.
Contents
7. Práctica 1b : Topic modeling.#
Borja Navarro Colorado
7.1. Objeto#
El objetivo de este ejercicio es practicar la conversión de un corpus en una representación semántica vectorial. Para ello se utilizará el modelo LDA topic modeling. Este modelo extrae temas recurrentes de un corpus a partir de su representación vectorial de las palabras. La herramienta para realizar la práctica es Gensim, y el corpus el corpus de noticias LexEsp. De nuevo se utilizará COLAB para facilitar el trabajo.
Breve explicación de LDA-Topic Modeling: explicación inicial
7.2. Proceso y entrega#
La tarea es encontrar los temas comunes en un corpus de noticias. Para ello:
Cargar el corpus LexEsp en COLAB (fichero comprimido en la UA-Nube)
Pre-procesar el corpus. Como mínimo debe ser tokenizado. Además se puede lematizar y/o filtrar “stopwords” o seleccionar categorías gramaticales. Para ello se puede utilizar SpaCy como en la práctica anterior, u otras herramientas de PLN como NLTK.
Crear el modelo LDA con Gensim.
Visualizar los topics del corpus con pyLDAvis
Una vez creado todo, analiza los topics resultantes y cambia la configuración del experimento hasta hallar la lista de topics más clara. Parámetros que se pueden modificar:
Preproceso del corpus: ¿tokens o lemas?, ¿con o sin filtro stopwords?, ¿todas las categorías gramaticales o solo unas determinadas (por ejemplo, solo nombres)?, etc.
Cantidad de topics.
Cantidad de iteraciones.
Los hiperparámetros alpha y beta (eta en gensim) no hace falta modificarlos. Si quieres profundizar en este aspectos, ver:
Otros parámetros…
Con la configuración óptima, entrega el enlace del cuaderno COLAB (modo lectura) mediante la opción de entrega de prácticas de UA-CLOUD.
7.3. Documentación.#
Para realizar la práctica, sigue este tutorial (oficial) de LDA con Gensim:
Otras páginas útiles:
Introducción a Gensim:
Sobre Topic modeling:
Visualizador pyLDSvis:
Ejemplo de uso y conexión con Gensim: https://nbviewer.org/github/bmabey/pyLDAvis/blob/master/notebooks/pyLDAvis_overview.ipynb#topic=0&lambda=1&term=
En la página anterior hay un módulo obsoleto. Si os da error, probad esto:
import pyLDAvis import pyLDAvis.gensim_models as gensimvis pyLDAvis.enable_notebook() gensimvis.prepare(model, corpus, dictionary)
Un trabajo mío (Borja Navarro Colorado) donde aplico Topic Modeling a poesía :-) :
7.4. Otras herramientas#
Para realizar Topic Modeling, existen otras herramientas como:
Topic Modeling Tool, (que en realidad es solo una interfaz gráfica para MALLET).