Aprendizaje Profundo¶

Introducción al Procesamiento de Lenguaje Natural
¶

Herramientas Esenciales para la Vida


Profesores¶

  1. Alvaro Mauricio Montenegro Díaz, ammontenegrod@unal.edu.co
  2. Daniel Mauricio Montenegro Reyes, dextronomo@gmail.com

Asesora Medios y Marketing digital¶

  1. Maria del Pilar Montenegro, pmontenegro88@gmail.com

Referencias¶



  1. Aprendizaje Profundo-Diplomado
  2. Aprendizaje Profundo-PLN
  3. Varios, Dive into deep learning, enero 2021

Contenido¶



  • Introducción al Aprendizaje Profundo

  • Introducción al Tratamiento clásico de Lenguaje Natural

  • Bolsa de palabras

  • codificación tf-idf

  • Análisis de Componentes Principales: semántica latente

Introducción al Aprendizaje Profundo
¶

¿Qué es una Red Neuronal? ¶

Neurona

Fuente: Artificial Neural Networks Applications and Algorithms

Red Neuronal Biológica¶

Red_Neuronal

Fuente: Universidad Internacional

¿Qué es una Red Neuronal Artificial? ¶

Neurona

Fuente: Artificial Neural Networks Applications and Algorithms

Red Neuronal Artificial¶

Red_Neuronal

Fuente: Álvaro Montenegro

Una RNA es una función vectorial¶

De la ecuación de la sección anterior tenemos que un RNA es una función $f:\mathcal{R}^n \to \mathcal{R}^L$, definida como

$$ y = f(x) = f^2(f^1( x W^1 + b^1 ) W^2 + b^2). $$

$\leadsto$ Como puede verse, si la RNA tiene más de una capa oculta, la función $f$ puede ser extendida directamente de forma recursiva.

Introducción al Tratamiento clásico de Lenguaje Natural
¶

Caja de Herramientas Básica (Pre-procesamiento) ¶



  1. Limpieza inicial dependiendo de la forma de obtener los datos (Ej. HTML)

  2. Estandarización de la información

    • Lematización (palabras y sus flexiones morfológicas en una sola forma).
    • Convertir a formato de minúsculas. (Ej. Para = para).
    • Eliminar signos de puntuación.
    • Eliminación de dígitos.
    • Eliminación de palabras vacías (Stopwords).

Ejemplo¶



Frase

Fuente: akifrases

Texto Minado de la Web:

<div class="quoteText2">“<a href="/frase/202124" class="qlink">Ver un mundo en un grano de arena y un cielo en una flor silvestre, tener el infinito en la palma de la mano y la Eternidad en una hora.</a> <br><div class="qauthor"> ― <a href="/autor/william-blake">William Blake</a></div></div>

1. Limpieza Inicial

Ver un mundo en un grano de arena y un cielo en una flor silvestre, tener el infinito en la palma de la mano y la Eternidad en una hora.

2. Estandarización de la información

  • Lematización
Ver uno mundo en uno grano de arena y uno cielo en uno flor silvestre, tener el infinito en el palma de el mano y el Eternidad en uno hora .

2. Estandarización de la información

  • Convertir Formato a Minúsculas
ver uno mundo en uno grano de arena y uno cielo en uno flor silvestre, tener el infinito en el palma de el mano y el eternidad en uno hora .

2. Estandarización de la información

  • Eliminar signos de Puntuación
ver uno mundo en uno grano de arena y uno cielo en uno flor silvestre tener el infinito en el palma de el mano y el eternidad en uno hora

2. Estandarización de la información

  • Eliminar palabras Vacías (StopWords)
mundo grano arena cielo flor silvestre infinito palma mano eternidad hora

Resumen

Hemos convertido

<div class="quoteText2">“<a href="/frase/202124" class="qlink">Ver un mundo en un grano de arena y un cielo en una flor silvestre, tener el infinito en la palma de la mano y la Eternidad en una hora.</a> <br><div class="qauthor"> ― <a href="/autor/william-blake">William Blake</a></div></div>

En:

mundo grano arena cielo flor silvestre infinito palma mano eternidad hora

Imagen General

Minemos más textos:

In [74]:
df
Out[74]:
documento documento preprocesado
0 Ver un mundo en un grano de arena y un cielo e... mundo grano arena cielo flor silvestre infinit...
1 Hola, estoy aquí buscando un árbol dónde vivir. hola buscar arbol vivir
2 La noche está constelada y tu no estàs conmigo. noche constelado
3 Eres toda mi verdad, eclipsada por el mar. eclipsado mar
4 En mi diario de nostalgìas, buscábamos el desv... diario nostalgìas buscar desvanecimiento espir...
5 La ama de llaves está muy frita. ama llave frito

Bolsa de Palabras (BOW)
¶

Matriz de Documento-Término (DTM) ¶

Recordemos nuestros documentos:

In [55]:
df
Out[55]:
documento documento preprocesado
0 Ver un mundo en un grano de arena y un cielo e... mundo grano arena cielo flor silvestre infinit...
1 Hola, estoy aquí buscando un árbol dónde vivir. hola buscar arbol vivir
2 La noche está constelada y tu no estàs conmigo. noche constelado
3 Eres toda mi verdad, eclipsada por el mar. eclipsado mar
4 En mi diario de nostalgìas, buscábamos el desv... diario nostalgìas buscar desvanecimiento espir...
5 La ama de llaves está muy frita. ama llave frito

Podemos determinar (Luego del preprocesamiento) si una palabra aparece o no en cada texto:

In [56]:
dtm
Out[56]:
ama arbol arena buscar cielo constelado desvanecimiento diario eclipsado espiritual ... infinito llave mano mar mundo noche nostalgìas palma silvestre vivir
0 0 0 1 0 1 0 0 0 0 0 ... 1 0 1 0 1 0 0 1 1 0
1 0 1 0 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1
2 0 0 0 0 0 1 0 0 0 0 ... 0 0 0 0 0 1 0 0 0 0
3 0 0 0 0 0 0 0 0 1 0 ... 0 0 0 1 0 0 0 0 0 0
4 0 0 0 1 0 0 1 1 0 1 ... 0 0 0 0 0 0 1 0 0 0
5 1 0 0 0 0 0 0 0 0 0 ... 0 1 0 0 0 0 0 0 0 0

6 rows × 26 columns

¡Hemos convertido documentos en números!

¿Será esto suficiente?

Codificación tf-idf
¶

Tf-idf es el producto de dos medidas, frecuencia de término y frecuencia inversa de documento. Existen varias maneras de determinar el valor de ambas.

Algunas posibilidades son:

  • frecuencias booleanas: $\text{tf}(t,d) = 1$ si t ocurre en d, y 0 si no;
  • frecuencia escalada logarítmicamente: $\text{tf}(t,d) = 1 + \log f(t,d)$ (y 0 si f(t,d)=0);
  • frecuencia normalizada, para evitar una predisposición hacia los documentos largos. Por ejemplo, se divide la frecuencia bruta por la frecuencia máxima de algún término en el documento:
$$ {\displaystyle \mathrm {tf} (t,d)={\frac {\mathrm {f} (t,d)}{\max\{\mathrm {f} (t,d):t\in d\}}}} $$

La frecuencia inversa de documento es una medida de si el término es común o no, en el corpus de documentos. Se obtiene dividiendo el número total de documentos por el número de documentos que contienen el término, y se toma el logaritmo de ese cociente:

$$ {\displaystyle \mathrm {idf} (t,D)=\log {\frac {|D|}{|\{d\in D:t\in d\}|}}} $$

donde

  • ${\displaystyle |D|}$: cardinalidad de $D$, o número de documentos en el corpus.
  • ${\displaystyle |\{d\in D:t\in d\}|}$ : número de documentos donde aparece el término $t$. Si el término no está en la colección se producirá una división-por-cero. Por lo tanto, es común ajustar esta fórmula a ${\displaystyle 1+|\{d\in D:t\in d\}|}$.

tf-idf¶

$$ {\displaystyle \text{tf-idf} (t,d,D)=\mathrm {tf} (t,d)\times \mathrm {idf} (t,D)} $$

Un peso alto en tf-idf se alcanza con una elevada frecuencia de término (en el documento dado) y una pequeña frecuencia de ocurrencia del término en corpus de documentos.

Como el cociente dentro de la función logaritmo del idf es siempre mayor o igual que 1, el valor del idf (y del tf-idf) es mayor o igual que 0.

Cuando un término aparece en muchos documentos, el cociente dentro del logaritmo se acerca a 1, ofreciendo un valor de idf y de tf-idf cercano a 0.

DTM¶

In [56]:
dtm
Out[56]:
ama arbol arena buscar cielo constelado desvanecimiento diario eclipsado espiritual ... infinito llave mano mar mundo noche nostalgìas palma silvestre vivir
0 0 0 1 0 1 0 0 0 0 0 ... 1 0 1 0 1 0 0 1 1 0
1 0 1 0 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1
2 0 0 0 0 0 1 0 0 0 0 ... 0 0 0 0 0 1 0 0 0 0
3 0 0 0 0 0 0 0 0 1 0 ... 0 0 0 1 0 0 0 0 0 0
4 0 0 0 1 0 0 1 1 0 1 ... 0 0 0 0 0 0 1 0 0 0
5 1 0 0 0 0 0 0 0 0 0 ... 0 1 0 0 0 0 0 0 0 0

6 rows × 26 columns

tf-idf¶

In [71]:
tfidf_dtm.round(2)
Out[71]:
ama arbol arena buscar cielo constelado desvanecimiento diario eclipsado espiritual ... infinito llave mano mar mundo noche nostalgìas palma silvestre vivir
0 0.00 0.00 0.3 0.00 0.3 0.00 0.00 0.00 0.00 0.00 ... 0.3 0.00 0.3 0.00 0.3 0.00 0.00 0.3 0.3 0.00
1 0.00 0.52 0.0 0.43 0.0 0.00 0.00 0.00 0.00 0.00 ... 0.0 0.00 0.0 0.00 0.0 0.00 0.00 0.0 0.0 0.52
2 0.00 0.00 0.0 0.00 0.0 0.71 0.00 0.00 0.00 0.00 ... 0.0 0.00 0.0 0.00 0.0 0.71 0.00 0.0 0.0 0.00
3 0.00 0.00 0.0 0.00 0.0 0.00 0.00 0.00 0.71 0.00 ... 0.0 0.00 0.0 0.71 0.0 0.00 0.00 0.0 0.0 0.00
4 0.00 0.00 0.0 0.38 0.0 0.00 0.46 0.46 0.00 0.46 ... 0.0 0.00 0.0 0.00 0.0 0.00 0.46 0.0 0.0 0.00
5 0.58 0.00 0.0 0.00 0.0 0.00 0.00 0.00 0.00 0.00 ... 0.0 0.58 0.0 0.00 0.0 0.00 0.00 0.0 0.0 0.00

6 rows × 26 columns

Análisis de Componentes Principales: semántica latente
¶

¿Cómo usar DTM para asociar documentos semejantes?

Arquitectura del modelo Semática Latente

Fuente: Alvaro Montenegro

LDA (Latent Dirichlet Allocation)
¶

Blei

Intuición detrás de LDA

Fuente: Intuition behind LDA