Modelado de temas

NLP - Analítica Estratégica de Datos


Fundación Universitaria Konrad Lorenz
Docente: Viviana Márquez vivianam.penama@konradlorenz.edu.co
Clase #10: Abril 29, 2021

Retroalimentación taller 8

🚵‍♀️ La próxima clase veremos visualizaciones para NLP


PollEv.com/vivianamarqu288

⌛ En la clase anterior

Hoy continuamos con los modelos de agrupación

🚀 Hoy veremos...

🤖 Modelado de temas


Supongamos que nos dan un gran número de documentos a los cuales les tenemos que "dar sentido". ¿Qué hacemos?

🤖 Modelado de temas

LDA - Asignación Latente de Dirichlet


• Johann Dirichlet fue un matemático alemán muy importante de los 1800s

• Existe una función de densidad de probabilidad nombrada en honor a él llamada "Distribución de Dirichlet"

• LDA usa esta distribución

• LDA fue publicada en 2003 en el Journal of Machine Learning and Research

¿Qué hace LDA?

Ejemplo:

Usando modelado de temas obtendriamos un resultado del tipo:

¿Qué es LDA?

El problema:

¿Qué es LDA?

La solución: Distribución de Dirichlet.

¿Qué es LDA?

La solución: Distribución de Dirichlet... pero, ¿Cómo obtener esta distribución?

¿Qué es LDA?

¿Qué es LDA?

El plano de construcción de LDA

¿Qué es LDA?

Las matemáticas detrás de LDA

¿Qué es LDA?

Las matemáticas detrás de LDA

(Recorderis rápido) Distribución multinomial


Distribución de Dirichlet


Distribución de Dirichlet


Distribución de Dirichlet


Distribución de Dirichlet


Distribución de Dirichlet


Distribución de Dirichlet


👮‍♀️ Punto de control: ¿Cuál distribución es más adecuada para el caso de las noticias?


Una distribución de distribuciones


Una distribución de distribuciones


$N$ temas, $N-1$ dimensiones


Dos distribuciones de Dirichlet


Dos distribuciones de Dirichlet

Proceso iterativo para encontrar la mejor configuración


LDA - Asignación Latente de Dirichlet

👩‍💻 Manos a la obra

Paso 1: Cargar los datos

👩‍💻 Manos a la obra

Paso 2: Feature Engineering

👩‍💻 Manos a la obra

Instalar: pip install pyLDAvis

Actualizar:pip install pyLDAvis --upgrade

conda install -c conda-forge pyldavis

Paso 3: Entrenar el modelo

👩‍💻 Manos a la obra

Paso 4: Resultados

👩‍💻 Manos a la obra

Paso 4: Resultados

Saliencia: una medida de cuánto te dice el término sobre el tema.

Relevancia: un promedio ponderado de la probabilidad de la palabra dada el tema y la palabra dada el tema normalizada por la probabilidad del tema.

👩‍💻 Manos a la obra

Paso 4: Resultados

Que no se pierda tu buen modelo

pickle.dump(corpus, open('corpus.pkl', 'wb'))
dictionary.save('dictionary.gensim')
model.save('model.gensim')


dictionary = gensim.corpora.Dictionary.load('dictionary.gensim')
corpus = pickle.load(open('corpus.pkl', 'rb'))
lda = gensim.models.ldamodel.LdaModel.load('model.gensim')

Cosas a considerar:

Recapitulando:


¡Tiempo de taller!

Taller #9: LDA

Fecha de entrega: Mayo 6, 2021. (Antes del inicio de la próxima clase)

Próxima clase: Visualizaciones para NLP