Sesión 1: Introducción al NLP y Word Embeddings

Omar Sanseviero· 13 jul 2021· 43min

Tras una introducción al Procesamiento de Lenguaje Natural, veremos cómo funcionan los Word Embeddings y Word2Vec, así como sus posibles usos y sesgos.

Imparte: Omar Sanseviero


En esta primera sesión el tema es Word Embeddings, un concepto fundamental del Procesamiento del Lenguaje Natural. Aquí les compartimos recursos adicionales así como publicaciones por si les interesa profundizar en el tema. Así mismo, hay un cuaderno de colab con ejercicios para que puedan entender mejor el concepto.

Recursos adicionales

Papers

Ejercicios: Word2Vec con Gensim

Open In Colab

En este cuaderno de Jupyter vas a utilizar la bibliotecaGensimpara experimentar con Word2Vec. Este cuaderno está enfocado en la intuición de los conceptos y no en los detalles de implementación. Este cuaderno está inspirado en estaguía.

1. Instalación y cargar el modelo

!pip install --upgrade gensim
import gensim.downloader as api

model = api.load('Word2Vec-google-news-300')

2. Similitud de palabras

En esta sección veremos cómo conseguir la similitud entre dos palabras utilizando un word embedding ya entrenado.

model.similarity("king", "queen")
model.similarity("king", "man")
model.similarity("king", "potato")
model.similarity("king", "king")

Ahora veremos cómo encontrar las palabras con mayor similitud al conjunto de palabras especificado.

model.most_similar(["king", "queen"], topn=5)
model.most_similar(["tomato", "carrot"], topn=5)

Pero incluso puedes hacer cosas interesantes como ver qué palabra no corresponde a una lista.

model.doesnt_match(["summer", "fall", "spring", "air"])

Ejercicios

  1. Usa el modelo Word2Vec para hacer un ranking de las siguientes 15 palabras según su similitud con las palabras “man” y “woman”. Para cada par, imprime su similitud.
words = [
"wife",
"husband",
"child",
"queen",
"king",
"man",
"woman",
"birth",
"doctor",
"nurse",
"teacher",
"professor",
"engineer",
"scientist",
"president"]

2. Completa las siguientes analogías por tu cuenta (sin usar el modelo)

  1. king is to throne as judge is to _
  2. giant is to dwarf as genius is to _
  3. French is to France as Spaniard is to _
  4. bad is to good as sad is to _
  5. nurse is to hospital as teacher is to _
  6. universe is to planet as house is to _

3. Ahora completa las analogías usando un modelo Word2Vec

Aquí hay un ejemplo de cómo hacerlo. Puedes resolver analogías como “A es a B como C es a _” haciendo A + C - B.

# man is to woman as king is to ___?
model.most_similar(positive=["king", "woman"], negative=["man"], topn=1)
# us is to burger as italy is to ___?
model.most_similar(positive=["Mexico", "burger"], negative=["USA"], topn=1)

➡️ Siguiente sesión:Modelos Secuenciales (RNNs y LSTMs)