2977 lines
556 KiB
Plaintext
Executable File
2977 lines
556 KiB
Plaintext
Executable File
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_0"
|
||
},
|
||
"source": [
|
||
"# Laboratorio: entrenamiento de un modelo Word2Vec desde cero\n",
|
||
"\n",
|
||
"Asignatura: Procesamiento de Lenguaje Natural. Duración estimada: 3 h (2 sesiones).\n",
|
||
"Entorno: Google Colab, entorno de ejecución CPU. Entrega: este mismo `.ipynb` ejecutado.\n",
|
||
"\n",
|
||
"---\n",
|
||
"\n",
|
||
"## Objetivos de aprendizaje\n",
|
||
"\n",
|
||
"Al terminar este laboratorio serás capaz de:\n",
|
||
"\n",
|
||
"1. Explicar la hipótesis distribucional y por qué permite aprender representaciones sin supervisión.\n",
|
||
"2. Construir manualmente el conjunto de entrenamiento de Word2Vec (pares centro–contexto).\n",
|
||
"3. Entrenar modelos Skip-gram y CBOW con gensim y justificar la elección de cada hiperparámetro.\n",
|
||
"4. Evaluar embeddings mediante analogías, vecinos más cercanos y métricas de exactitud.\n",
|
||
"5. Cuantificar el efecto de los hiperparámetros mediante experimentos controlados.\n",
|
||
"6. Proyectar el espacio vectorial a dos dimensiones e interpretar su geometría.\n",
|
||
"7. Implementar Skip-gram con Negative Sampling en PyTorch.\n",
|
||
"8. Detectar y discutir los sesgos que el modelo aprende del corpus.\n",
|
||
"\n",
|
||
"## Normas de trabajo\n",
|
||
"\n",
|
||
"- Los ejercicios están marcados con `# TODO`. Escribe código únicamente en esas zonas.\n",
|
||
"- Después de cada ejercicio hay una celda de verificación automática que imprime `[OK]` o `[FALLO]`.\n",
|
||
"- Las preguntas numeradas se responden por escrito en la celda de texto de la Parte 9.\n",
|
||
"- Ejecuta las celdas en orden. Si reinicias el entorno, vuelve a la Parte 0.\n",
|
||
"- Guarda tu copia: `Archivo → Guardar una copia en Drive` y renómbrala `word2vec_APELLIDO.ipynb`.\n",
|
||
"\n",
|
||
"| Parte | Contenido | Puntos |\n",
|
||
"|---|---|---|\n",
|
||
"| 1 | Preprocesamiento del corpus (Ej. 1) | 10 |\n",
|
||
"| 2 | Construcción de pares centro–contexto (Ej. 2) | 15 |\n",
|
||
"| 3 | Entrenamiento con gensim (Ej. 3) | 15 |\n",
|
||
"| 4 | Evaluación con analogías (Ej. 4) | 15 |\n",
|
||
"| 5 | Experimento CBOW vs Skip-gram (Ej. 5) | 10 |\n",
|
||
"| 6 | Barrido de hiperparámetros (Ej. 6) | 10 |\n",
|
||
"| 7 | Visualización (Ej. 7) | 5 |\n",
|
||
"| 8 | Sesgos y preguntas de reflexión (Ej. 8) | 20 |\n",
|
||
"| Extra | Ejercicio adicional: SGNS en PyTorch | +15 |\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_1"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 0 · Preparación del entorno\n",
|
||
"\n",
|
||
"Ejecuta las dos celdas siguientes. La instalación tarda ~30 s.\n",
|
||
"\n",
|
||
"> Si Colab te pide **reiniciar el entorno de ejecución** después del `pip install`, hazlo\n",
|
||
"> (`Entorno de ejecución → Reiniciar sesión`) y vuelve a ejecutar **solo** la celda de imports.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 34,
|
||
"metadata": {
|
||
"id": "cd_2"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Instalación terminada.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Instalación de dependencias\n",
|
||
"# gensim >= 4.3.3 es necesario por compatibilidad con las versiones recientes de scipy/numpy\n",
|
||
"!pip install -q \"gensim>=4.3.3\" 2>/dev/null\n",
|
||
"print(\"Instalación terminada.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 35,
|
||
"metadata": {
|
||
"id": "cd_3"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"gensim: 4.4.0\n",
|
||
"numpy : 2.1.0\n",
|
||
"\\nEntorno preparado.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import os, re, time, random, itertools, warnings\n",
|
||
"warnings.filterwarnings(\"ignore\")\n",
|
||
"\n",
|
||
"# Reproducibilidad (ver nota al final del laboratorio sobre determinismo real)\n",
|
||
"SEMILLA = 42\n",
|
||
"os.environ[\"PYTHONHASHSEED\"] = str(SEMILLA)\n",
|
||
"random.seed(SEMILLA)\n",
|
||
"\n",
|
||
"import numpy as np\n",
|
||
"np.random.seed(SEMILLA)\n",
|
||
"\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import pandas as pd\n",
|
||
"\n",
|
||
"try:\n",
|
||
" import gensim\n",
|
||
" from gensim.models import Word2Vec\n",
|
||
" from gensim.models.callbacks import CallbackAny2Vec\n",
|
||
" import gensim.downloader as api\n",
|
||
"except Exception as e:\n",
|
||
" raise SystemExit(\n",
|
||
" \"No se pudo importar gensim. Reinicia el entorno de ejecución \"\n",
|
||
" \"(Entorno de ejecución -> Reiniciar sesión) y ejecuta de nuevo esta celda.\\n\"\n",
|
||
" f\"Error original: {e}\"\n",
|
||
" )\n",
|
||
"\n",
|
||
"print(\"gensim:\", gensim.__version__)\n",
|
||
"print(\"numpy :\", np.__version__)\n",
|
||
"\n",
|
||
"# ------------------------------------------------------------------\n",
|
||
"# Configuración global del laboratorio (puedes tocar estos valores)\n",
|
||
"# ------------------------------------------------------------------\n",
|
||
"CONFIG = {\n",
|
||
" \"workers\": 2, # hilos de CPU (Colab suele dar 2)\n",
|
||
" \"epocas\": 5, # épocas para el modelo principal\n",
|
||
" \"n_frases_completo\": None, # None = usar todo text8 (~17M palabras)\n",
|
||
" \"n_frases_rapido\": 400, # subconjunto para los experimentos (~4M palabras)\n",
|
||
"}\n",
|
||
"\n",
|
||
"# ------------------------------------------------------------------\n",
|
||
"# Mini framework de tests para autoevaluarte\n",
|
||
"# ------------------------------------------------------------------\n",
|
||
"def test(nombre, fn):\n",
|
||
" \"\"\"Ejecuta fn() e informa del resultado sin detener el notebook.\"\"\"\n",
|
||
" try:\n",
|
||
" fn()\n",
|
||
" print(f\"[OK] {nombre}\")\n",
|
||
" except NotImplementedError:\n",
|
||
" print(f\"[PENDIENTE] {nombre}: sin implementar\")\n",
|
||
" except AssertionError as e:\n",
|
||
" print(f\"[FALLO] {nombre}: {e}\")\n",
|
||
" except Exception as e:\n",
|
||
" print(f\"[ERROR] {nombre}: {type(e).__name__}: {e}\")\n",
|
||
"\n",
|
||
"print(\"\\\\nEntorno preparado.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_4"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 1 · El corpus y la hipótesis distribucional\n",
|
||
"\n",
|
||
"> *\"You shall know a word by the company it keeps\"* — J. R. Firth (1957)\n",
|
||
"\n",
|
||
"La hipótesis distribucional sostiene que las palabras que aparecen en contextos similares tienen\n",
|
||
"significados similares. Word2Vec la traduce en un problema de aprendizaje automático:\n",
|
||
"\n",
|
||
"- No requiere etiquetas humanas: es auto-supervisado.\n",
|
||
"- La etiqueta la proporciona el propio texto: qué palabras aparecen alrededor.\n",
|
||
"- El resultado son vectores densos en los que la proximidad aproxima la similitud semántica.\n",
|
||
"\n",
|
||
"Usaremos **text8**: los primeros 100 MB de la Wikipedia en inglés, ya limpiados\n",
|
||
"(~17 millones de palabras). Es el corpus clásico de los experimentos originales de Mikolov et al. (2013).\n",
|
||
"\n",
|
||
"La descarga (~31 MB) tarda un par de minutos la primera vez.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 36,
|
||
"metadata": {
|
||
"id": "cd_5"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Descarga + carga: 1.1 s\n",
|
||
"Número de 'frases' (bloques de 10 000 tokens): 1,701\n",
|
||
"Número total de tokens: 17,005,207\n",
|
||
"Vocabulario bruto (tipos distintos): 253,854\n",
|
||
"\\nPrimeros 40 tokens del corpus:\n",
|
||
"['anarchism', 'originated', 'as', 'a', 'term', 'of', 'abuse', 'first', 'used', 'against', 'early', 'working', 'class', 'radicals', 'including', 'the', 'diggers', 'of', 'the', 'english', 'revolution', 'and', 'the', 'sans', 'culottes', 'of', 'the', 'french', 'revolution', 'whilst', 'the', 'term', 'is', 'still', 'used', 'in', 'a', 'pejorative', 'way', 'to']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"t0 = time.time()\n",
|
||
"\n",
|
||
"# Descargamos el fichero y lo leemos con Text8Corpus.\n",
|
||
"# (Nota: usamos return_path=True a propósito. El \"loader\" que gensim-data trae para text8\n",
|
||
"# contiene un import obsoleto de smart_open y falla con las versiones actuales de la librería;\n",
|
||
"# pedir la ruta y leer el fichero nosotros mismos es equivalente y no se rompe.)\n",
|
||
"from gensim.models.word2vec import Text8Corpus\n",
|
||
"\n",
|
||
"ruta = api.load(\"text8\", return_path=True) # ~31 MB la primera vez\n",
|
||
"frases = list(Text8Corpus(ruta)) # cada elemento = lista de hasta 10 000 tokens\n",
|
||
"print(f\"Descarga + carga: {time.time()-t0:.1f} s\")\n",
|
||
"\n",
|
||
"n_tokens = sum(len(f) for f in frases)\n",
|
||
"print(f\"Número de 'frases' (bloques de 10 000 tokens): {len(frases):,}\")\n",
|
||
"print(f\"Número total de tokens: {n_tokens:,}\")\n",
|
||
"print(f\"Vocabulario bruto (tipos distintos): {len(set(itertools.chain.from_iterable(frases))):,}\")\n",
|
||
"print(\"\\\\nPrimeros 40 tokens del corpus:\")\n",
|
||
"print(frases[0][:40])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_6"
|
||
},
|
||
"source": [
|
||
"### Ley de Zipf\n",
|
||
"\n",
|
||
"La distribución de frecuencias del corpus justifica dos de los hiperparámetros del modelo:\n",
|
||
"`min_count`, que descarta palabras poco frecuentes, y `sample`, que descarta ocurrencias de las\n",
|
||
"hiperfrecuentes.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 37,
|
||
"metadata": {
|
||
"id": "cd_7"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"10 palabras más frecuentes: [('the', 1061396), ('of', 593677), ('and', 416629), ('one', 411764), ('in', 372201), ('a', 325873), ('to', 316376), ('zero', 264975), ('nine', 250430), ('two', 192644)]\n",
|
||
"Palabras que aparecen 1 sola vez: 118519 tipos\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAGOCAYAAADM2JR1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfghJREFUeJztnXlYVGX7x78z7LvsO7jhjqAo7rtlWppaqaWGZlqKWVGWZplWZq7ZW5RZmWVWZqm95ZKK+64oLikCCoIKyCK7gDLn94ev/CIcmDPDmXMGvp/r8rqc517OfebrnO7OeZ7nqARBEEAIIYQQQhSFWu4CCCGEEEJIddikEUIIIYQoEDZphBBCCCEKhE0aIYQQQogCYZNGCCGEEKJA2KQRQgghhCgQNmmEEEIIIQqETRohhBBCiAJhk0YIIYQQokDYpBFCFEVKSgpUKhXWrFkjy/EnTJiAxo0b6x2/fft2hIaGwtraGiqVCnl5eXVWGyGkYcEmjZAGxpo1a6BSqXDy5Em5SzEKEyZMgEqlqvGPIU3ZP8nJycGoUaNgY2OD6OhorF27FnZ2dnWSW18OHz6MefPmSd4slpSUYN68edi7d+8D7bGxsXjsscfg5eUFe3t7tG/fHv/5z39QUVEhaV2EmDLmchdACCFS8sILL2DgwIEPtMXExGDNmjXo2rVr5dhXX30FjUaj17FOnDiBwsJCvP/++1qPaWwOHz6M+fPnY8KECWjUqJFkxykpKcH8+fMBAH379q1ii42NRffu3REUFIQ333wTtra22LZtG15++WVcvnwZn3zyiWR1EWLKsEkjhNRrunXrhm7dulUbT09PR1RUFAIDA/HFF19UjltYWOh9rJs3bwKApM2QKfLll18CAPbv3w8XFxcA95rnPn36YM2aNWzSCNECH3cSQh7I9evX8dxzz8HT0xNWVlZo27YtVq9eXWkvKiqCnZ0dXn755Wqx165dg5mZGRYuXFjjMfLy8jBhwgQ4OTmhUaNGiIiI0PpYLj4+Hk8++SRcXFxgbW2NTp064b///a9e56bRaDB27FjcunULP/74I5ydnStt/56Tdn+O3NKlS/Hxxx8jMDAQNjY26NOnD86fP1/p17dvX0RERAAAOnfuDJVKhQkTJtRYR23fMQDs3bsXKpUKv/zyCxYsWAA/Pz9YW1tjwIABSEpKqjH/vHnzMHPmTABAkyZNKh/vpqSkVPr88MMPCAsLg42NDVxcXDBmzBikpaVV2r/99luoVKpqdX344YdQqVTYunUrUlJS4O7uDgCYP39+5XHmzZsHACgoKIC1tXW15tXb2xs2NjY1ngMhDRqBENKg+PbbbwUAwokTJ7T6ZGRkCH5+foK/v7/w3nvvCV988YUwbNgwAYDw8ccfV/qNHTtW8PT0FO7evVslfvHixYJKpRKuXr2q9RgajUbo3bu3oFarhWnTpgmffvqp0L9/f6F9+/YCAOHbb7+t9D1//rzg5OQktGnTRli0aJHw2WefCb179xZUKpWwceNG0d/BvHnzBADCggULqtkiIiKEwMDAys/JyckCACE4OFho3LixsGjRImH+/PmCi4uL4O7uLmRkZAiCIAg7duwQpkyZIgAQ3nvvPWHt2rXC4cOHtdag63e8Z88eAYDQoUMHISwsTPj444+FefPmCba2tkJ4eHiN53nmzBnh6aefrsy5du1aYe3atUJRUZEgCILwwQcfCCqVShg9erTw+eefC/Pnzxfc3NyExo0bC7du3arM89hjjwlOTk5CamqqIAiCcPbsWcHS0lKYNGmSIAiCUFRUJHzxxRcCAGHEiBGVxzlz5owgCEKl7fnnnxcuXLggpKSkCF988YVgYWEhrFixosZzIKQhwyaNkAaGLk3apEmTBG9vbyE7O7vK+JgxYwQnJyehpKREEARB+OuvvwQAwrZt26r4tW/fXujTp0+NdWzevFkAICxevLhy7O7du0KvXr2qNWkDBgwQgoODhdLS0soxjUYjdO/eXQgKCqrtlKuwd+9ewczMTBgwYIBQUVFRza6tSbOxsRGuXbtWOX7s2DEBgPDqq69Wjuny3d5H1+/4fpPWunVroaysrNLvk08+EQAI586dq/E4S5YsEQAIycnJVcZTUlIEMzOzao3quXPnBHNz8yrj6enpgouLi/DQQw8JZWVlQocOHYSAgAAhPz+/0icrK0sAILz77rvVarh7964wffp0wcLCQgAgABDMzMyEL774osbaCWno8HEnIaQKgiDgt99+w9ChQyEIArKzsyv/DBo0CPn5+Th16hQAYODAgfDx8cG6desq48+fP4+zZ89i3LhxNR5n69atMDc3x9SpUyvHzMzM8NJLL1Xxy83Nxe7duzFq1CgUFhZW1pKTk4NBgwYhMTER169f1+ncsrOz8cwz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",
|
||
"text/plain": [
|
||
"<Figure size 700x400 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from collections import Counter\n",
|
||
"\n",
|
||
"frec = Counter(itertools.chain.from_iterable(frases))\n",
|
||
"print(\"10 palabras más frecuentes:\", frec.most_common(10))\n",
|
||
"print(\"Palabras que aparecen 1 sola vez:\", sum(1 for w, c in frec.items() if c == 1), \"tipos\")\n",
|
||
"\n",
|
||
"rangos = np.arange(1, 10001)\n",
|
||
"cuentas = np.array([c for _, c in frec.most_common(10000)])\n",
|
||
"\n",
|
||
"plt.figure(figsize=(7, 4))\n",
|
||
"plt.loglog(rangos, cuentas)\n",
|
||
"plt.xlabel(\"Rango de la palabra (log)\")\n",
|
||
"plt.ylabel(\"Frecuencia (log)\")\n",
|
||
"plt.title(\"Ley de Zipf en text8\")\n",
|
||
"plt.grid(True, which=\"both\", alpha=0.3)\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_8"
|
||
},
|
||
"source": [
|
||
"**Pregunta 1.** ¿Qué relación tiene la recta que acabas de ver con los parámetros\n",
|
||
"`min_count` y `sample` de Word2Vec? Responde al final del notebook (Parte 9).\n",
|
||
"\n",
|
||
"---\n",
|
||
"## Ejercicio 1 — Preprocesamiento (10 pts)\n",
|
||
"\n",
|
||
"`text8` se distribuye ya normalizado, lo que no es habitual. Implementa una función de\n",
|
||
"preprocesamiento reutilizable con los siguientes requisitos:\n",
|
||
"\n",
|
||
"1. Pasar todo a minúsculas.\n",
|
||
"2. Eliminar cualquier carácter que no sea una letra (incluidos números, signos y emojis).\n",
|
||
" Debe funcionar con acentos y `ñ` del español.\n",
|
||
"3. Tokenizar por espacios en blanco.\n",
|
||
"4. Descartar tokens de longitud menor que `min_len`.\n",
|
||
"5. Si `quitar_stopwords=True`, eliminar las palabras de `STOPWORDS`.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 38,
|
||
"metadata": {
|
||
"id": "cd_9"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"118 stopwords cargadas\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"STOPWORDS = frozenset(\"\"\"\n",
|
||
"el la los las un una unos unas de del al a ante bajo con contra desde durante en entre hacia\n",
|
||
"hasta mediante para por segun sin sobre tras y o u ni que se su sus lo le les es son era eran\n",
|
||
"ser fue han he ha muy mas pero como cuando donde quien cual esta este esto estos estas\n",
|
||
"the a an and or but of to in on at for with from by as is are was were be been being this\n",
|
||
"that these those it its his her their our your not no so if then than there here what which\n",
|
||
"who whom will would can could should do does did have has had\n",
|
||
"\"\"\".split())\n",
|
||
"\n",
|
||
"print(len(STOPWORDS), \"stopwords cargadas\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 39,
|
||
"metadata": {
|
||
"id": "cd_10"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def preprocesar(texto, quitar_stopwords=True, min_len=2):\n",
|
||
" \"\"\"Convierte una cadena de texto en una lista de tokens limpios.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" texto (str): texto crudo.\n",
|
||
" quitar_stopwords (bool): si True, elimina las palabras de STOPWORDS.\n",
|
||
" min_len (int): longitud mínima de token que se conserva.\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" list[str]: lista de tokens.\n",
|
||
" \"\"\"\n",
|
||
" texto = texto.lower()\n",
|
||
" # Conserva letras (incluye acentos y ñ) y espacios; el resto se convierte en espacio.\n",
|
||
" texto = re.sub(r\"[^a-zà-öø-ÿñ\\s]\", \" \", texto)\n",
|
||
" tokens = texto.split()\n",
|
||
" tokens = [t for t in tokens if len(t) >= min_len]\n",
|
||
" if quitar_stopwords:\n",
|
||
" tokens = [t for t in tokens if t not in STOPWORDS]\n",
|
||
" return tokens\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 40,
|
||
"metadata": {
|
||
"id": "cd_11"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej1.a limpieza básica\n",
|
||
"[OK] Ej1.b acentos y ñ\n",
|
||
"[OK] Ej1.c min_len\n",
|
||
"[OK] Ej1.d caso vacío\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 1 ---\n",
|
||
"def _t1():\n",
|
||
" out = preprocesar(\"El GATO, el Perro y 3 gatos!!!\")\n",
|
||
" assert isinstance(out, list) and all(isinstance(t, str) for t in out), \"debe devolver list[str]\"\n",
|
||
" assert out == [\"gato\", \"perro\", \"gatos\"], f\"esperaba ['gato','perro','gatos'], obtuve {out}\"\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" out = preprocesar(\"La NIÑA come MANZANAS en Málaga\", quitar_stopwords=False)\n",
|
||
" assert \"niña\" in out, \"los acentos y la ñ deben conservarse\"\n",
|
||
" assert \"málaga\" in out, \"las palabras con acento deben conservarse enteras\"\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" out = preprocesar(\"a b cd efg\", quitar_stopwords=False, min_len=3)\n",
|
||
" assert out == [\"efg\"], f\"min_len no se aplica bien: {out}\"\n",
|
||
"\n",
|
||
"def _t4():\n",
|
||
" assert preprocesar(\"\") == [], \"un texto vacío debe dar lista vacía\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej1.a limpieza básica\", _t1), (\"Ej1.b acentos y ñ\", _t2),\n",
|
||
" (\"Ej1.c min_len\", _t3), (\"Ej1.d caso vacío\", _t4)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_12"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 2 · ¿Qué aprende exactamente Word2Vec?\n",
|
||
"\n",
|
||
"Word2Vec no es una red profunda: consta de dos matrices de embeddings (entrada y salida), sin\n",
|
||
"capas no lineales, entrenadas mediante una tarea auxiliar. Existen dos variantes:\n",
|
||
"\n",
|
||
"| | CBOW | Skip-gram |\n",
|
||
"|---|---|---|\n",
|
||
"| Tarea | el contexto predice la palabra central | la palabra central predice el contexto |\n",
|
||
"| Ejemplo | `[el, gato, sobre, la]` → `salta` | `salta` → `[el, gato, sobre, la]` |\n",
|
||
"| Ejemplos por posición | 1 (promedia el contexto) | 2 · ventana |\n",
|
||
"| Velocidad | mayor | menor |\n",
|
||
"| Palabras frecuentes | resultados algo mejores | — |\n",
|
||
"| Palabras raras | peor | mejor |\n",
|
||
"\n",
|
||
"### Parámetros principales\n",
|
||
"\n",
|
||
"| Parámetro (gensim) | Qué controla | Efecto típico |\n",
|
||
"|---|---|---|\n",
|
||
"| `vector_size` | dimensión del embedding | 50–300; aumentarlo da más capacidad, pero también más coste y más riesgo de sobreajuste |\n",
|
||
"| `window` | radio del contexto | valores pequeños (2) favorecen la similitud sintáctica; valores grandes (10), la temática |\n",
|
||
"| `min_count` | frecuencia mínima | filtra ruido y reduce el vocabulario |\n",
|
||
"| `sg` | 0 = CBOW, 1 = Skip-gram | véase la tabla anterior |\n",
|
||
"| `negative` | nº de muestras negativas | 5–20 en corpus pequeños, 2–5 en grandes |\n",
|
||
"| `sample` | umbral de *subsampling* | descarta ocurrencias de palabras muy frecuentes |\n",
|
||
"| `epochs` | pasadas sobre el corpus | 5–15 |\n",
|
||
"| `ns_exponent` | distribución del ruido ($P(w)\\propto f(w)^{0.75}$) | 0.75 es el valor clásico |\n",
|
||
"\n",
|
||
"### Función de pérdida de Skip-gram con Negative Sampling (SGNS)\n",
|
||
"\n",
|
||
"Para cada par observado (centro $c$, contexto $o$) y $K$ negativos $n_k$ muestreados del ruido:\n",
|
||
"\n",
|
||
"$$\\mathcal{L} = -\\log \\sigma(\\mathbf{v}_c \\cdot \\mathbf{u}_o) - \\sum_{k=1}^{K} \\log \\sigma(-\\mathbf{v}_c \\cdot \\mathbf{u}_{n_k})$$\n",
|
||
"\n",
|
||
"La actualización acerca el vector central a su contexto observado y lo aleja de $K$ palabras\n",
|
||
"muestreadas al azar. Las regularidades semánticas no se programan: emergen de aplicar esta\n",
|
||
"regla sobre decenas de millones de pares.\n",
|
||
"\n",
|
||
"---\n",
|
||
"## Ejercicio 2 — Construir el dataset de entrenamiento (15 pts)\n",
|
||
"\n",
|
||
"Antes de delegar esta tarea en gensim, construye los pares de entrenamiento manualmente.\n",
|
||
"Implementa las dos funciones siguientes.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 41,
|
||
"metadata": {
|
||
"id": "cd_13"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def generar_pares_skipgram(tokens, ventana=2):\n",
|
||
" \"\"\"Genera los pares (centro, contexto) de Skip-gram.\n",
|
||
"\n",
|
||
" Recorre la lista de tokens y, para cada posición i, empareja tokens[i]\n",
|
||
" con cada token dentro de la ventana [i-ventana, i+ventana], excluyendo i.\n",
|
||
" La ventana se recorta en los bordes de la secuencia.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" tokens (list[str]): secuencia de tokens.\n",
|
||
" ventana (int): radio de la ventana de contexto.\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" list[tuple[str, str]]: pares (centro, contexto) en orden de aparición.\n",
|
||
" \"\"\"\n",
|
||
" pares = []\n",
|
||
" n = len(tokens)\n",
|
||
" for i in range(n):\n",
|
||
" inicio = max(0, i - ventana)\n",
|
||
" fin = min(n, i + ventana + 1)\n",
|
||
" for j in range(inicio, fin):\n",
|
||
" if j == i:\n",
|
||
" continue\n",
|
||
" pares.append((tokens[i], tokens[j]))\n",
|
||
" return pares\n",
|
||
"\n",
|
||
"\n",
|
||
"def generar_pares_cbow(tokens, ventana=2):\n",
|
||
" \"\"\"Genera los ejemplos de CBOW: (lista_de_contexto, centro).\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" list[tuple[list[str], str]]\n",
|
||
" \"\"\"\n",
|
||
" ejemplos = []\n",
|
||
" n = len(tokens)\n",
|
||
" for i in range(n):\n",
|
||
" inicio = max(0, i - ventana)\n",
|
||
" fin = min(n, i + ventana + 1)\n",
|
||
" contexto = [tokens[j] for j in range(inicio, fin) if j != i]\n",
|
||
" ejemplos.append((contexto, tokens[i]))\n",
|
||
" return ejemplos\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 42,
|
||
"metadata": {
|
||
"id": "cd_14"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej2.a skip-gram simple\n",
|
||
"[OK] Ej2.b skip-gram ventana 2\n",
|
||
"[OK] Ej2.c cbow\n",
|
||
"[OK] Ej2.d caso borde\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 2 ---\n",
|
||
"DEMO = [\"el\", \"gato\", \"salta\", \"sobre\", \"la\", \"mesa\"]\n",
|
||
"\n",
|
||
"def _t1():\n",
|
||
" pares = generar_pares_skipgram([\"a\", \"b\", \"c\", \"d\"], ventana=1)\n",
|
||
" esperado = [(\"a\",\"b\"),(\"b\",\"a\"),(\"b\",\"c\"),(\"c\",\"b\"),(\"c\",\"d\"),(\"d\",\"c\")]\n",
|
||
" assert pares == esperado, f\"esperaba {esperado}, obtuve {pares}\"\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" pares = generar_pares_skipgram(DEMO, ventana=2)\n",
|
||
" # 6 tokens, ventana 2 -> 2+3+4+4+3+2 = 18 pares\n",
|
||
" assert len(pares) == 18, f\"esperaba 18 pares, obtuve {len(pares)}\"\n",
|
||
" assert (\"salta\", \"el\") in pares and (\"salta\", \"la\") in pares\n",
|
||
" assert (\"salta\", \"salta\") not in pares, \"un token no puede ser su propio contexto\"\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" ej = generar_pares_cbow([\"a\",\"b\",\"c\",\"d\"], ventana=1)\n",
|
||
" esperado = [([\"b\"],\"a\"), ([\"a\",\"c\"],\"b\"), ([\"b\",\"d\"],\"c\"), ([\"c\"],\"d\")]\n",
|
||
" assert ej == esperado, f\"esperaba {esperado}, obtuve {ej}\"\n",
|
||
"\n",
|
||
"def _t4():\n",
|
||
" assert generar_pares_skipgram([\"solo\"], ventana=3) == [], \"un único token no genera pares\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej2.a skip-gram simple\", _t1), (\"Ej2.b skip-gram ventana 2\", _t2),\n",
|
||
" (\"Ej2.c cbow\", _t3), (\"Ej2.d caso borde\", _t4)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 43,
|
||
"metadata": {
|
||
"id": "cd_15"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"18 pares a partir de 6 tokens\\n\n",
|
||
" centro=el contexto=gato\n",
|
||
" centro=el contexto=salta\n",
|
||
" centro=gato contexto=el\n",
|
||
" centro=gato contexto=salta\n",
|
||
" centro=gato contexto=sobre\n",
|
||
" centro=salta contexto=el\n",
|
||
" centro=salta contexto=gato\n",
|
||
" centro=salta contexto=sobre\n",
|
||
"\\nPares por token (ventana=2): ~3.0\n",
|
||
"Pares estimados en text8 completo: ~51 millones\n",
|
||
"Este volumen explica por qué se usa negative sampling y no un softmax\n",
|
||
"sobre todo el vocabulario.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Inspecciona el dataset que acabas de construir\n",
|
||
"try:\n",
|
||
" pares = generar_pares_skipgram(DEMO, ventana=2)\n",
|
||
" print(f\"{len(pares)} pares a partir de {len(DEMO)} tokens\\\\n\")\n",
|
||
" for centro, ctx in pares[:8]:\n",
|
||
" print(f\" centro={centro:<7} contexto={ctx}\")\n",
|
||
"\n",
|
||
" # Escalado: ¿cuántos pares generaría el corpus completo?\n",
|
||
" pares_por_token = len(pares) / len(DEMO)\n",
|
||
" print(f\"\\\\nPares por token (ventana=2): ~{pares_por_token:.1f}\")\n",
|
||
" print(f\"Pares estimados en text8 completo: ~{pares_por_token * n_tokens/1e6:.0f} millones\")\n",
|
||
" print(\"Este volumen explica por qué se usa negative sampling y no un softmax\")\n",
|
||
" print(\"sobre todo el vocabulario.\")\n",
|
||
"except NotImplementedError:\n",
|
||
" print(\"Completa el Ejercicio 2 para ver esta celda.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_16"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 3 · Ejercicio 3 — Entrenar el modelo con gensim (15 pts)\n",
|
||
"\n",
|
||
"Entrena el modelo principal. Debes completar los hiperparámetros con los valores de la tabla y\n",
|
||
"ser capaz de justificar cada uno en la Parte 9.\n",
|
||
"\n",
|
||
"| Parámetro | Valor pedido |\n",
|
||
"|---|---|\n",
|
||
"| `vector_size` | 100 |\n",
|
||
"| `window` | 5 |\n",
|
||
"| `min_count` | 5 |\n",
|
||
"| `sg` | 1 (Skip-gram) |\n",
|
||
"| `negative` | 5 |\n",
|
||
"| `sample` | 1e-3 |\n",
|
||
"| `epochs` | `CONFIG[\"epocas\"]` |\n",
|
||
"| `workers` | `CONFIG[\"workers\"]` |\n",
|
||
"| `seed` | `SEMILLA` |\n",
|
||
"| `compute_loss` | `True` |\n",
|
||
"| `callbacks` | `[progreso]` |\n",
|
||
"\n",
|
||
"El entrenamiento tarda **entre 4 y 9 minutos** en Colab. Es normal.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 44,
|
||
"metadata": {
|
||
"id": "cd_17"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Callback listo.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"class Progreso(CallbackAny2Vec):\n",
|
||
" \"\"\"Callback que informa del tiempo y la pérdida al final de cada época.\"\"\"\n",
|
||
" def __init__(self):\n",
|
||
" self.epoca = 0\n",
|
||
" self.perdida_acumulada = 0.0\n",
|
||
" self.historial = []\n",
|
||
" self.t0 = None\n",
|
||
"\n",
|
||
" def on_epoch_begin(self, model):\n",
|
||
" self.t0 = time.time()\n",
|
||
"\n",
|
||
" def on_epoch_end(self, model):\n",
|
||
" self.epoca += 1\n",
|
||
" total = model.get_latest_training_loss() # es acumulada\n",
|
||
" delta = total - self.perdida_acumulada # -> pérdida de esta época\n",
|
||
" self.perdida_acumulada = total\n",
|
||
" dt = time.time() - self.t0\n",
|
||
" self.historial.append({\"epoca\": self.epoca, \"perdida\": delta, \"segundos\": dt})\n",
|
||
" print(f\" época {self.epoca}: pérdida={delta:,.0f} ({dt:.1f} s)\")\n",
|
||
"\n",
|
||
"progreso = Progreso()\n",
|
||
"print(\"Callback listo.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 45,
|
||
"metadata": {
|
||
"id": "cd_18"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" época 1: pérdida=48,672,852 (26.5 s)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" época 2: pérdida=19,068,380 (28.1 s)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" época 3: pérdida=1,495,560 (23.1 s)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" época 4: pérdida=1,352,584 (23.3 s)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" época 5: pérdida=1,128,728 (28.2 s)\n",
|
||
"\n",
|
||
"Entrenamiento total: 2.2 min\n",
|
||
"Vocabulario final: 71,290 palabras\n",
|
||
"Forma de la matriz de embeddings: (71290, 100)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"t0 = time.time()\n",
|
||
"\n",
|
||
"modelo = Word2Vec(\n",
|
||
" sentences=frases,\n",
|
||
" vector_size=100,\n",
|
||
" window=5,\n",
|
||
" min_count=5,\n",
|
||
" sg=1,\n",
|
||
" negative=5,\n",
|
||
" sample=1e-3,\n",
|
||
" epochs=CONFIG[\"epocas\"],\n",
|
||
" workers=CONFIG[\"workers\"],\n",
|
||
" seed=SEMILLA,\n",
|
||
" compute_loss=True,\n",
|
||
" callbacks=[progreso],\n",
|
||
")\n",
|
||
"\n",
|
||
"print(f\"\\nEntrenamiento total: {(time.time()-t0)/60:.1f} min\")\n",
|
||
"print(f\"Vocabulario final: {len(modelo.wv):,} palabras\")\n",
|
||
"print(f\"Forma de la matriz de embeddings: {modelo.wv.vectors.shape}\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 46,
|
||
"metadata": {
|
||
"id": "cd_19"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej3.a modelo entrenado\n",
|
||
"[OK] Ej3.b hiperparámetros\n",
|
||
"[OK] Ej3.c tamaño de vocabulario\n",
|
||
"[OK] Ej3.d vectores válidos\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 3 ---\n",
|
||
"def _t1():\n",
|
||
" assert \"modelo\" in globals(), \"no existe la variable 'modelo'\"\n",
|
||
" assert modelo.wv.vector_size == 100, f\"vector_size debe ser 100, es {modelo.wv.vector_size}\"\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" assert modelo.sg == 1, \"sg debe ser 1 (Skip-gram)\"\n",
|
||
" assert modelo.window == 5, \"window debe ser 5\"\n",
|
||
" assert modelo.negative == 5, \"negative debe ser 5\"\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" assert 40_000 < len(modelo.wv) < 120_000, (\n",
|
||
" f\"vocabulario sospechoso ({len(modelo.wv)}): revisa min_count\")\n",
|
||
"\n",
|
||
"def _t4():\n",
|
||
" v = modelo.wv[\"king\"]\n",
|
||
" assert v.shape == (100,), f\"el vector de 'king' debería tener forma (100,), tiene {v.shape}\"\n",
|
||
" assert np.linalg.norm(v) > 0, \"el vector no puede ser nulo\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej3.a modelo entrenado\", _t1), (\"Ej3.b hiperparámetros\", _t2),\n",
|
||
" (\"Ej3.c tamaño de vocabulario\", _t3), (\"Ej3.d vectores válidos\", _t4)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 47,
|
||
"metadata": {
|
||
"id": "cd_20"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>epoca</th>\n",
|
||
" <th>perdida</th>\n",
|
||
" <th>segundos</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>48672852.0</td>\n",
|
||
" <td>26.538724</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>19068380.0</td>\n",
|
||
" <td>28.138281</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>3</td>\n",
|
||
" <td>1495560.0</td>\n",
|
||
" <td>23.067414</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>4</td>\n",
|
||
" <td>1352584.0</td>\n",
|
||
" <td>23.335629</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>5</td>\n",
|
||
" <td>1128728.0</td>\n",
|
||
" <td>28.173413</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" epoca perdida segundos\n",
|
||
"0 1 48672852.0 26.538724\n",
|
||
"1 2 19068380.0 28.138281\n",
|
||
"2 3 1495560.0 23.067414\n",
|
||
"3 4 1352584.0 23.335629\n",
|
||
"4 5 1128728.0 28.173413"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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584ddOrUCefPnzfYY37YsGF6m81bt24NjUaj9/XQo89/wXpbt26N7Oxsvb3nAcDJyQn9+vXTXQ8NDYWbmxvq1q2L5s2b65YX/Lu4ek2Zk8dfZ61btzbqOU1ISMDRo0cxePBgeHh46JZHRkaiY8eO2LJlS7H3v3PnDgDozWmBNWvWYPHixahZsyY2btyI8ePHo27dumjfvr3efKSnp8PJycng/i+++CK8vLx0l7feeqvQDEFBQXjxxRexYsUKJCQkFDpGkiRs374d7733Htzd3fHNN99gxIgRCAwMRN++fZGammpwH3d3d9y7dw/Z2dnFPgdUMVlNs7B371706NEDfn5+kCQJmzZtKtH9C74Tf/zi6OhYNoGtkIuLC4AHbwRlpWbNmgbLnn/+eSgUCnz77bcAACEENmzYgC5duugyAcDVq1d1f8QLvotu06YNACAtLa3Yx71y5Qpq1aplsDw0NFTv+vnz5wEA7dq10/vD7OXlhd9++w1JSUnFPs758+exbds2g/t26NABAAzuX716db3rBW8yBftpGOPx5/TChQsQQmDq1KkGOaZPn25yjri4ODz33HNwdXWFi4sLvLy8MHDgQACGz7+/v7/BXvOurq4ICAgwWPakeks6J2q1Wq95KqjHmOe0oDl6/HUBAHXr1sXt27eRlZX1xPUIIQyWKRQKjBgxAocOHcLt27exefNmdOnSBb///rteY+Xs7IzMzEyD+7/77rvYsWMHduzY8cTHnzJlCvLz84vdd0GlUuGdd97B6dOncfPmTXzzzTdo0aIFvvvuO4wcObLImng0hGWymkMns7KyUL9+fbz88sv4v//7vxLff/z48QafJtq3b1/oTkBUOBcXF/j5+eHkyZNGjS/qj8bjO7w96tFPpwX8/PzQunVrfPfdd3j77bcRGxuLq1evYu7cuXrr7NixI1JSUvDWW2+hTp06cHR0xI0bNzB48OAid1QsqYL1rFu3Dj4+Pga329gU/7+cVqtFx44dMXHixEJvr127tt51pVJZ6LjC3myK8vhzWlDD+PHj0alTp0LvExISUqIcqampaNOmDVxcXPDuu+8iODgYarUahw8fxltvvWXw/Be1PlPqLemcFPUY5aFgx8AnNSZVqlTBs88+i2effRZt27bFnj17cOXKFQQGBqJOnTo4duwY7t+/D1tbW919IiMjjc4RFBSEgQMH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",
|
||
"text/plain": [
|
||
"<Figure size 600x400 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Curva de pérdida\n",
|
||
"if progreso.historial:\n",
|
||
" h = pd.DataFrame(progreso.historial)\n",
|
||
" display(h)\n",
|
||
" plt.figure(figsize=(6, 4))\n",
|
||
" plt.plot(h[\"epoca\"], h[\"perdida\"], marker=\"o\")\n",
|
||
" plt.xlabel(\"Época\"); plt.ylabel(\"Pérdida de la época\")\n",
|
||
" plt.title(\"Curva de entrenamiento (SGNS)\")\n",
|
||
" plt.grid(alpha=0.3); plt.show()\n",
|
||
"else:\n",
|
||
" print(\"No hay historial: ¿pasaste compute_loss=True y callbacks=[progreso]?\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_21"
|
||
},
|
||
"source": [
|
||
"> **Sobre la métrica de pérdida.** `get_latest_training_loss()` de gensim es una suma\n",
|
||
"> acumulada y su implementación tiene limitaciones conocidas (no se normaliza por número de\n",
|
||
"> pares y puede desbordar en corpus grandes). Sirve para ver la *tendencia*, no como métrica\n",
|
||
"> absoluta. En Word2Vec la evaluación real es **extrínseca/intrínseca** (analogías, similitud),\n",
|
||
"> no la pérdida.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_22"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 4 · Explorar el espacio vectorial\n",
|
||
"\n",
|
||
"Antes de la evaluación cuantitativa conviene inspeccionar el modelo de forma exploratoria.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 48,
|
||
"metadata": {
|
||
"id": "cd_23"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\\nVecinos de 'king':\n",
|
||
" prince 0.762\n",
|
||
" pretender 0.735\n",
|
||
" queen 0.732\n",
|
||
" valdemar 0.728\n",
|
||
" kings 0.726\n",
|
||
" haakon 0.725\n",
|
||
" canute 0.722\n",
|
||
" stadtholder 0.709\n",
|
||
"\\nVecinos de 'paris':\n",
|
||
" rodin 0.742\n",
|
||
" conservatoire 0.728\n",
|
||
" brussels 0.728\n",
|
||
" montparnasse 0.723\n",
|
||
" universelle 0.722\n",
|
||
" bologna 0.720\n",
|
||
" france 0.715\n",
|
||
" cimeti 0.715\n",
|
||
"\\nVecinos de 'computer':\n",
|
||
" computers 0.807\n",
|
||
" hardware 0.773\n",
|
||
" computing 0.769\n",
|
||
" networked 0.762\n",
|
||
" bootstrap 0.746\n",
|
||
" pdas 0.744\n",
|
||
" hypermedia 0.741\n",
|
||
" minicomputer 0.730\n",
|
||
"\\nVecinos de 'music':\n",
|
||
" musical 0.802\n",
|
||
" jazz 0.791\n",
|
||
" folk 0.790\n",
|
||
" reggae 0.776\n",
|
||
" electronica 0.769\n",
|
||
" dance 0.765\n",
|
||
" pop 0.751\n",
|
||
" improvisation 0.748\n",
|
||
"\\nVecinos de 'three':\n",
|
||
" four 0.980\n",
|
||
" five 0.971\n",
|
||
" two 0.963\n",
|
||
" six 0.959\n",
|
||
" seven 0.939\n",
|
||
" one 0.936\n",
|
||
" eight 0.929\n",
|
||
" zero 0.897\n",
|
||
"\\nVecinos de 'physics':\n",
|
||
" electrodynamics 0.795\n",
|
||
" mechanics 0.777\n",
|
||
" chemistry 0.776\n",
|
||
" electromagnetism 0.771\n",
|
||
" quantum 0.754\n",
|
||
" astrophysics 0.743\n",
|
||
" feynman 0.729\n",
|
||
" electrochemistry 0.722\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"def vecinos(palabra, topn=8):\n",
|
||
" if palabra not in modelo.wv:\n",
|
||
" print(f\"'{palabra}' no está en el vocabulario\"); return\n",
|
||
" print(f\"\\\\nVecinos de '{palabra}':\")\n",
|
||
" for w, s in modelo.wv.most_similar(palabra, topn=topn):\n",
|
||
" print(f\" {w:<18} {s:.3f}\")\n",
|
||
"\n",
|
||
"for p in [\"king\", \"paris\", \"computer\", \"music\", \"three\", \"physics\"]:\n",
|
||
" vecinos(p)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 49,
|
||
"metadata": {
|
||
"id": "cd_24"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>palabra_1</th>\n",
|
||
" <th>palabra_2</th>\n",
|
||
" <th>similitud_coseno</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>king</td>\n",
|
||
" <td>queen</td>\n",
|
||
" <td>0.731937</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>paris</td>\n",
|
||
" <td>france</td>\n",
|
||
" <td>0.715271</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>dog</td>\n",
|
||
" <td>cat</td>\n",
|
||
" <td>0.686618</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>paris</td>\n",
|
||
" <td>london</td>\n",
|
||
" <td>0.565996</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>dog</td>\n",
|
||
" <td>car</td>\n",
|
||
" <td>0.389345</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>king</td>\n",
|
||
" <td>man</td>\n",
|
||
" <td>0.374814</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>king</td>\n",
|
||
" <td>banana</td>\n",
|
||
" <td>0.168914</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" palabra_1 palabra_2 similitud_coseno\n",
|
||
"0 king queen 0.731937\n",
|
||
"3 paris france 0.715271\n",
|
||
"5 dog cat 0.686618\n",
|
||
"4 paris london 0.565996\n",
|
||
"6 dog car 0.389345\n",
|
||
"1 king man 0.374814\n",
|
||
"2 king banana 0.168914"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['breakfast', 'lunch', 'dinner', 'paris'] → intruso: paris\n",
|
||
"['red', 'blue', 'green', 'dog'] → intruso: dog\n",
|
||
"['monday', 'tuesday', 'january', 'wednesday'] → intruso: january\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Similitud entre pares: ¿coincide con tu intuición?\n",
|
||
"pares_test = [(\"king\",\"queen\"), (\"king\",\"man\"), (\"king\",\"banana\"),\n",
|
||
" (\"paris\",\"france\"), (\"paris\",\"london\"), (\"dog\",\"cat\"), (\"dog\",\"car\")]\n",
|
||
"\n",
|
||
"df_sim = pd.DataFrame(\n",
|
||
" [(a, b, modelo.wv.similarity(a, b)) for a, b in pares_test],\n",
|
||
" columns=[\"palabra_1\", \"palabra_2\", \"similitud_coseno\"]\n",
|
||
").sort_values(\"similitud_coseno\", ascending=False)\n",
|
||
"display(df_sim)\n",
|
||
"\n",
|
||
"# El intruso\n",
|
||
"for grupo in [[\"breakfast\",\"lunch\",\"dinner\",\"paris\"],\n",
|
||
" [\"red\",\"blue\",\"green\",\"dog\"],\n",
|
||
" [\"monday\",\"tuesday\",\"january\",\"wednesday\"]]:\n",
|
||
" print(f\"{grupo} → intruso: {modelo.wv.doesnt_match(grupo)}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_25"
|
||
},
|
||
"source": [
|
||
"**Pregunta 2.** ¿Los vecinos de `three` son sinónimos o algo distinto? ¿Y los de `king`?\n",
|
||
"¿Qué tipo de relación captura la similitud coseno aquí: sinonimia, *relatedness* o\n",
|
||
"sustituibilidad sintáctica?\n",
|
||
"\n",
|
||
"---\n",
|
||
"## Ejercicio 4 — Analogías y evaluación cuantitativa (15 pts)\n",
|
||
"\n",
|
||
"Ciertas relaciones semánticas se codifican como direcciones aproximadamente constantes del\n",
|
||
"espacio vectorial:\n",
|
||
"\n",
|
||
"$$\\mathbf{v}_{rey} - \\mathbf{v}_{hombre} + \\mathbf{v}_{mujer} \\approx \\mathbf{v}_{reina}$$\n",
|
||
"\n",
|
||
"Una analogía se lee `a : b :: c : ?`. Implementa la función y luego mide la exactitud.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 50,
|
||
"metadata": {
|
||
"id": "cd_26"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def analogia(a, b, c, kv=None, topn=3):\n",
|
||
" \"\"\"Resuelve la analogía a : b :: c : ?\n",
|
||
"\n",
|
||
" Es decir, busca las palabras más parecidas a (b - a + c).\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" a, b, c (str): palabras de la analogía.\n",
|
||
" kv: los KeyedVectors a usar (por defecto, modelo.wv).\n",
|
||
" topn (int): número de candidatos a devolver.\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" list[tuple[str, float]]: candidatos (palabra, similitud).\n",
|
||
" Debe devolver [] si alguna de las tres palabras no está en el vocabulario.\n",
|
||
" \"\"\"\n",
|
||
" kv = modelo.wv if kv is None else kv\n",
|
||
" if a not in kv or b not in kv or c not in kv:\n",
|
||
" return []\n",
|
||
" return kv.most_similar(positive=[b, c], negative=[a], topn=topn)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 51,
|
||
"metadata": {
|
||
"id": "cd_27"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej4.a formato\n",
|
||
"[OK] Ej4.b king-man+woman=queen\n",
|
||
"[OK] Ej4.c fuera de vocabulario\n",
|
||
"[OK] Ej4.d exclusión de entradas\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 4a ---\n",
|
||
"def _t1():\n",
|
||
" r = analogia(\"man\", \"king\", \"woman\", topn=3)\n",
|
||
" assert isinstance(r, list) and len(r) == 3, f\"debe devolver 3 tuplas, devolvió {r}\"\n",
|
||
" assert isinstance(r[0], tuple) and isinstance(r[0][0], str)\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" r = analogia(\"man\", \"king\", \"woman\", topn=5)\n",
|
||
" palabras = [w for w, _ in r]\n",
|
||
" assert \"queen\" in palabras, f\"'queen' debería estar en el top-5; obtuve {palabras}\"\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" assert analogia(\"man\", \"king\", \"xyzzyqwe\") == [], \"palabra fuera de vocabulario -> []\"\n",
|
||
"\n",
|
||
"def _t4():\n",
|
||
" r = analogia(\"man\", \"king\", \"woman\", topn=3)\n",
|
||
" assert \"king\" not in [w for w, _ in r], \"most_similar debe excluir las palabras de entrada\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej4.a formato\", _t1), (\"Ej4.b king-man+woman=queen\", _t2),\n",
|
||
" (\"Ej4.c fuera de vocabulario\", _t3), (\"Ej4.d exclusión de entradas\", _t4)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 52,
|
||
"metadata": {
|
||
"id": "cd_28"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>analogia</th>\n",
|
||
" <th>esperada</th>\n",
|
||
" <th>prediccion</th>\n",
|
||
" <th>acierto@1</th>\n",
|
||
" <th>acierto@5</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>man:king::woman:?</td>\n",
|
||
" <td>queen</td>\n",
|
||
" <td>queen</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>france:paris::italy:?</td>\n",
|
||
" <td>rome</td>\n",
|
||
" <td>venice</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>france:paris::japan:?</td>\n",
|
||
" <td>tokyo</td>\n",
|
||
" <td>tokyo</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>spain:madrid::germany:?</td>\n",
|
||
" <td>berlin</td>\n",
|
||
" <td>berlin</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>boy:brother::girl:?</td>\n",
|
||
" <td>sister</td>\n",
|
||
" <td>wife</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>man:he::woman:?</td>\n",
|
||
" <td>she</td>\n",
|
||
" <td>she</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>good:better::bad:?</td>\n",
|
||
" <td>worse</td>\n",
|
||
" <td>worse</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>walk:walking::swim:?</td>\n",
|
||
" <td>swimming</td>\n",
|
||
" <td>walkers</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>big:biggest::small:?</td>\n",
|
||
" <td>smallest</td>\n",
|
||
" <td>largest</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>mouse:mice::dog:?</td>\n",
|
||
" <td>dogs</td>\n",
|
||
" <td>dogs</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>10</th>\n",
|
||
" <td>copper:cu::silver:?</td>\n",
|
||
" <td>ag</td>\n",
|
||
" <td>mj</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>11</th>\n",
|
||
" <td>einstein:physics::picasso:?</td>\n",
|
||
" <td>painting</td>\n",
|
||
" <td>nouveau</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" analogia esperada prediccion acierto@1 acierto@5\n",
|
||
"0 man:king::woman:? queen queen True True\n",
|
||
"1 france:paris::italy:? rome venice False False\n",
|
||
"2 france:paris::japan:? tokyo tokyo True True\n",
|
||
"3 spain:madrid::germany:? berlin berlin True True\n",
|
||
"4 boy:brother::girl:? sister wife False False\n",
|
||
"5 man:he::woman:? she she True True\n",
|
||
"6 good:better::bad:? worse worse True True\n",
|
||
"7 walk:walking::swim:? swimming walkers False False\n",
|
||
"8 big:biggest::small:? smallest largest False False\n",
|
||
"9 mouse:mice::dog:? dogs dogs True True\n",
|
||
"10 copper:cu::silver:? ag mj False False\n",
|
||
"11 einstein:physics::picasso:? painting nouveau False False"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exactitud@1 = 50.0% (6/12)\n",
|
||
"Exactitud@5 = 50.0% (6/12)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Batería de analogías: semánticas y sintácticas\n",
|
||
"ANALOGIAS = [\n",
|
||
" # (a, b, c, respuesta_esperada)\n",
|
||
" (\"man\", \"king\", \"woman\", \"queen\"),\n",
|
||
" (\"france\", \"paris\", \"italy\", \"rome\"),\n",
|
||
" (\"france\", \"paris\", \"japan\", \"tokyo\"),\n",
|
||
" (\"spain\", \"madrid\", \"germany\", \"berlin\"),\n",
|
||
" (\"boy\", \"brother\", \"girl\", \"sister\"),\n",
|
||
" (\"man\", \"he\", \"woman\", \"she\"),\n",
|
||
" (\"good\", \"better\", \"bad\", \"worse\"),\n",
|
||
" (\"walk\", \"walking\", \"swim\", \"swimming\"),\n",
|
||
" (\"big\", \"biggest\", \"small\", \"smallest\"),\n",
|
||
" (\"mouse\", \"mice\", \"dog\", \"dogs\"),\n",
|
||
" (\"copper\", \"cu\", \"silver\", \"ag\"),\n",
|
||
" (\"einstein\", \"physics\", \"picasso\", \"painting\"),\n",
|
||
"]\n",
|
||
"\n",
|
||
"def evaluar_analogias(kv, analogias=ANALOGIAS, topn=5, verbose=True):\n",
|
||
" \"\"\"Devuelve (exactitud@1, exactitud@topn, tabla de resultados).\"\"\"\n",
|
||
" filas, top1, topk, evaluadas = [], 0, 0, 0\n",
|
||
" for a, b, c, esperada in analogias:\n",
|
||
" cand = analogia(a, b, c, kv=kv, topn=topn)\n",
|
||
" if not cand:\n",
|
||
" filas.append({\"analogia\": f\"{a}:{b}::{c}:?\", \"esperada\": esperada,\n",
|
||
" \"prediccion\": \"—(OOV)\", \"acierto@1\": None, f\"acierto@{topn}\": None})\n",
|
||
" continue\n",
|
||
" evaluadas += 1\n",
|
||
" palabras = [w for w, _ in cand]\n",
|
||
" ok1 = palabras[0] == esperada\n",
|
||
" okk = esperada in palabras\n",
|
||
" top1 += ok1; topk += okk\n",
|
||
" filas.append({\"analogia\": f\"{a}:{b}::{c}:?\", \"esperada\": esperada,\n",
|
||
" \"prediccion\": palabras[0], \"acierto@1\": ok1, f\"acierto@{topn}\": okk})\n",
|
||
" tabla = pd.DataFrame(filas)\n",
|
||
" acc1 = top1 / evaluadas if evaluadas else 0.0\n",
|
||
" acck = topk / evaluadas if evaluadas else 0.0\n",
|
||
" if verbose:\n",
|
||
" display(tabla)\n",
|
||
" print(f\"Exactitud@1 = {acc1:.1%} ({top1}/{evaluadas})\")\n",
|
||
" print(f\"Exactitud@{topn} = {acck:.1%} ({topk}/{evaluadas})\")\n",
|
||
" return acc1, acck, tabla\n",
|
||
"\n",
|
||
"try:\n",
|
||
" acc1_base, acc5_base, _ = evaluar_analogias(modelo.wv)\n",
|
||
"except NotImplementedError:\n",
|
||
" print(\"Completa el Ejercicio 4a primero.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_29"
|
||
},
|
||
"source": [
|
||
"**Pregunta 3.** Mira las analogías que ha fallado. ¿Fallan más las **semánticas**\n",
|
||
"(capitales, géneros) o las **sintácticas** (plurales, comparativos)? Propón una hipótesis\n",
|
||
"relacionada con `window` y con el tamaño del corpus.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_30"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 5 · Ejercicio 5 — CBOW vs Skip-gram (10 pts)\n",
|
||
"\n",
|
||
"Compara las dos arquitecturas en igualdad de condiciones, sobre el subconjunto del corpus\n",
|
||
"definido en `CONFIG[\"n_frases_rapido\"]` para acotar el tiempo de cálculo.\n",
|
||
"\n",
|
||
"Completa el bucle: entrena un modelo por configuración, mide el tiempo de entrenamiento y las\n",
|
||
"exactitudes @1 y @5, y guarda los resultados en `resultados_arq`.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 53,
|
||
"metadata": {
|
||
"id": "cd_31"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Subcorpus: 400 bloques ≈ 4,000,000 tokens\n",
|
||
"Helper 'entrenar' listo.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"frases_rapido = frases[:CONFIG[\"n_frases_rapido\"]]\n",
|
||
"print(f\"Subcorpus: {len(frases_rapido)} bloques ≈ {sum(len(f) for f in frases_rapido):,} tokens\")\n",
|
||
"\n",
|
||
"def entrenar(frases_in, **kwargs):\n",
|
||
" \"\"\"Entrena un Word2Vec con valores por defecto sensatos + los kwargs dados.\n",
|
||
" Devuelve (modelo, segundos).\"\"\"\n",
|
||
" base = dict(vector_size=100, window=5, min_count=5, negative=5, sample=1e-3,\n",
|
||
" epochs=CONFIG[\"epocas\"], workers=CONFIG[\"workers\"], seed=SEMILLA)\n",
|
||
" base.update(kwargs)\n",
|
||
" t = time.time()\n",
|
||
" m = Word2Vec(sentences=frases_in, **base)\n",
|
||
" return m, time.time() - t\n",
|
||
"\n",
|
||
"print(\"Helper 'entrenar' listo.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 54,
|
||
"metadata": {
|
||
"id": "cd_32"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Entrenando CBOW...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Entrenando Skip-gram...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>arquitectura</th>\n",
|
||
" <th>segundos</th>\n",
|
||
" <th>vocabulario</th>\n",
|
||
" <th>acc@1</th>\n",
|
||
" <th>acc@5</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>CBOW</td>\n",
|
||
" <td>6.882106</td>\n",
|
||
" <td>32080</td>\n",
|
||
" <td>0.250000</td>\n",
|
||
" <td>0.416667</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Skip-gram</td>\n",
|
||
" <td>25.492793</td>\n",
|
||
" <td>32080</td>\n",
|
||
" <td>0.166667</td>\n",
|
||
" <td>0.250000</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" arquitectura segundos vocabulario acc@1 acc@5\n",
|
||
"0 CBOW 6.882106 32080 0.250000 0.416667\n",
|
||
"1 Skip-gram 25.492793 32080 0.166667 0.250000"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"resultados_arq = []\n",
|
||
"\n",
|
||
"for nombre, sg in [(\"CBOW\", 0), (\"Skip-gram\", 1)]:\n",
|
||
" print(f\"Entrenando {nombre}...\")\n",
|
||
" m, segundos = entrenar(frases_rapido, sg=sg)\n",
|
||
" acc1, acc5, _ = evaluar_analogias(m.wv, verbose=False)\n",
|
||
" resultados_arq.append({\n",
|
||
" \"arquitectura\": nombre,\n",
|
||
" \"segundos\": segundos,\n",
|
||
" \"vocabulario\": len(m.wv),\n",
|
||
" \"acc@1\": acc1,\n",
|
||
" \"acc@5\": acc5,\n",
|
||
" })\n",
|
||
"\n",
|
||
"df_arq = pd.DataFrame(resultados_arq)\n",
|
||
"display(df_arq)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 55,
|
||
"metadata": {
|
||
"id": "cd_33"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej5.a dos configuraciones\n",
|
||
"[OK] Ej5.b claves correctas\n",
|
||
"[OK] Ej5.c tiempos medidos\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 5 ---\n",
|
||
"def _t1():\n",
|
||
" assert len(resultados_arq) == 2, \"debe haber 2 filas (CBOW y Skip-gram)\"\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" claves = {\"arquitectura\", \"segundos\", \"vocabulario\", \"acc@1\", \"acc@5\"}\n",
|
||
" assert claves.issubset(resultados_arq[0].keys()), f\"faltan claves: {claves - set(resultados_arq[0])}\"\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" assert all(r[\"segundos\"] > 0 for r in resultados_arq), \"los tiempos deben ser positivos\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej5.a dos configuraciones\", _t1), (\"Ej5.b claves correctas\", _t2),\n",
|
||
" (\"Ej5.c tiempos medidos\", _t3)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 56,
|
||
"metadata": {
|
||
"id": "cd_34"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABEEAAAGGCAYAAACUtJ9/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYy1JREFUeJzt3XlcVdX+//E3oIwKjoAgidNVTIFyIM05ErVyLrW6IrfUTDIjtSgFxzBNM4ukLKcc09TsWliSVKZiTmk35zBHcAbFBIX9+8Of59sJUETwIOf1fDz2I/baa6/92eeAZ/U5a61tYxiGIQAAAAAAgFLO1tIBAAAAAAAA3A0kQQAAAAAAgFUgCQIAAAAAAKwCSRAAAAAAAGAVSIIAAAAAAACrQBIEAAAAAABYBZIgAAAAAADAKpAEAQAAAAAAVoEkCAAAAAAUs61bt2rs2LFKTU21dCiAVSMJAvxD//795evra+kwLKJt27Zq27atpcPA3/CeAABQfObOnSsbGxsdPny4WK/z119/qU+fPjpy5Ig8PDyK9VoAbo4kCKyCjY1NgbbExERLh4pbeOutt7Rq1SpLh1GqbNy4UWPGjNGFCxcsHQoAwMp9+OGHsrGxUVBQkKVDKVKjR4+Wi4uLPvjgA0uHAli9MpYOALgbPvvsM7P9+fPn67vvvstV7ufnp1mzZiknJ+duhofb8NZbb6lXr17q1q2bpUO5K7799ttiv8bGjRs1duxY9e/fXxUqVCj26wEAkJ+FCxfK19dXW7Zs0cGDB1WnTh1Lh3THtm7dqk8//VRJSUlycnKydDiA1SMJAqvw7LPPmu1v3rxZ3333Xa5ylC4ZGRlycXGxdBh3xN7e3tIhAABwVyQnJ2vjxo1asWKFBg0apIULFyo6OtrSYd2xJk2a6Pz585YOA8D/x3QY4B/yWhMkJydH06dP1/333y9HR0d5eHho0KBBuT7QfH199fjjjysxMVFNmjSRk5OTGjVqZJpms2LFCjVq1EiOjo5q3LixduzYkeva5cqV0x9//KGQkBC5uLjIy8tL48aNk2EYZnUzMjL06quvysfHRw4ODqpXr57eeeedXPXy8/HHH6t27dpycnJSs2bN9NNPP+VZLzMzU9HR0apTp44cHBzk4+OjkSNHKjMzs0DXSUpKUseOHeXm5iZnZ2e1adNGP//8s1mdMWPGyMbGRgcPHjSNRnBzc1NYWJguX75sqmdjY6OMjAzNmzfPNIWpf//+Zm38/vvvevrpp1WxYkW1bNnSdO6CBQvUuHFjOTk5qVKlSurTp4+OHj1qFkfbtm3VsGFD/f7772rXrp2cnZ3l7e2tyZMnm9XLyspSVFSUGjduLDc3N7m4uKhVq1Zav369Wb3Dhw/LxsZG77zzjmJjY1WrVi05OzurQ4cOOnr0qAzD0Pjx41W9enU5OTmpa9euOnfuXK6Y/rkmSEHfExsbG4WHh2vVqlVq2LChHBwcdP/99ys+Pt7stR8xYoQkqWbNmqbX9cbc6GvXrmn8+PGqXbu2HBwc5OvrqzfeeKPA7z8AAAW1cOFCVaxYUY899ph69eqlhQsXmh3/++fqjX6Mg4ODmjZtql9++cWs7q5du9S/f3/VqlVLjo6O8vT01H/+8x+dPXu2QLF8+OGHuv/+++Xg4CAvLy8NGTIkz2mjNz7f/96f+udn9424586de9vxXbx4UcOGDZOvr68cHBzk7u6uRx99VNu3by/QfQDIjZEgQAEMGjRIc+fOVVhYmIYOHark5GR98MEH2rFjh37++WeVLVvWVPfgwYN6+umnNWjQID377LN655139MQTTyguLk5vvPGGXnzxRUlSTEyMnnrqKe3bt0+2tv+Xj8zOzlbHjh310EMPafLkyYqPj1d0dLSuXbumcePGSZIMw1CXLl20fv16PffccwoMDNTatWs1YsQIHT9+XO++++5N7+fTTz/VoEGD1KJFCw0bNkx//PGHunTpokqVKsnHx8dULycnR126dNGGDRs0cOBA+fn5affu3Xr33Xe1f//+W67N8f3336tTp05q3LixoqOjZWtrqzlz5qh9+/b66aef1KxZM7P6Tz31lGrWrKmYmBht375dn3zyidzd3fX2229Luj6t6fnnn1ezZs00cOBASVLt2rXN2njyySdVt25dvfXWW6aE0MSJEzV69Gg99dRTev7553X69Gm9//77at26tXbs2GE2BeT8+fPq2LGjevTooaeeekrLly/Xa6+9pkaNGqlTp06SpPT0dH3yySfq27evBgwYoIsXL+rTTz9VSEiItmzZosDAQLOYFi5cqKysLL300ks6d+6cJk+erKeeekrt27dXYmKiXnvtNR08eFDvv/++hg8frtmzZ+f7mt7ue7JhwwatWLFCL774osqXL68ZM2ao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fRo3bqx169Zp2rRp8vLyUs2aNU0Ljealdu3amjBhgiIjI02PritfvrySk5O1cuVKDRw4UMOHD7+tGB5//HGtWLFC3bt312OPPabk5GTFxcWpQYMGeSZ8itKdvCf5ady4sSTpzTffVJ8+fVS2bFk98cQTCggIUGhoqD7++GNduHBBbdq00ZYtWzRv3jx169bN7JsvAAAKY/Xq1bp48aK6dOmS5/GHHnpIVatW1cKFC2/6ef93rq6uat26tSZPnqyrV6/K29tb3377rdl6I/mpWrWqIiMjNXbsWHXs2FFdunTRvn379OGHH6pp06amxdPt7e01ZswYvfTSS2rfvr2eeuopHT58WHPnzlXt2rVvOlqzoPFdvHhR1atXV69evRQQEKBy5cpp3bp1+uWXXzR16tQCvRYAciMJAhRAXFycGjdurI8++khvvPGGadGrZ599Vg8//HCRXsvOzk7x8fEaPHiwRowYofLlyys6OtpsuKStra1Wr16tqKgoLV26VHPmzJGvr6+mTJlienLHzQwcOFDZ2dmaMmWKRowYoUaNGmn16tUaPXq0WT1bW1utWrVK7777rubPn6+VK1fK2dlZtWrV0ssvv3zL6SVt27bVpk2bNH78eH3wwQe6dOmSPD09FRQUpEGDBhXq9Zk2bZoGDhyoUaNG6a+//jIli27m9ddf17/+9S+9++67Gjt2rKTra2d06NAh307XzfTv318pKSn66KOPtHbtWjVo0EALFizQsmXLlJiYWJjbKrA7fU/y0rRpU40fP15xcXGKj49XTk6OkpOT5eLiok8++US1atXS3LlztXLlSnl6eioyMvKuTP0BAJR+CxculKOjox599NE8j9va2uqxxx7TwoULb2v05qJFi/TSSy8pNjZWhmGoQ4cO+uabb+Tl5XXLc8eMGaOqVavqgw8+0CuvvKJKlSpp4MCBeuutt8wWVA8PD5dhGJo6daqGDx+ugIAArV69WkOHDpWjo+Mdx+fs7KwXX3xR3377relpd3Xq1NGHH36owYMHF/i1AGDOxijJqzICVqZ///5avnx5sY8mAAAAQNHLyclR1apV1aNHjzynrgKwPNYEAQAAAIDbdOXKlVzresyfP1/nzp1T27ZtLRMUgFtiOgwAAAAA3KbNmzfrlVde0ZNPPqnKlStr+/bt+vTTT9WwYUM9+eSTlg4PQD5IggAAAADA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+HieggcAwD3GxrhbK41ZSHp6utzc3JSWlsZcXACSJN/X11g6BMAiDk96rMjbLMrPWR8fH/n4+GjBggWqVauWJCkxMVH9+vWTp6entmzZUhQhW0xx9kn4d81yDjs+bekQrNuYNEtHgHvZGDdLR2C9iuFvt6Cfs4VaE0SSPvvsM7Vs2VJeXl76888/JUnvvvuuvvzyy8I2CQAArNiuXbtUvXp1BQYGatasWRoxYoQ6dOigf//739q4caOlwwMAAKVAoZIgM2fOVEREhDp16qTz588rOztbklSxYkVNnz69KOMDAABWomLFivr8888VHh6uQYMG6b333tM333yjiRMnqkyZQs3gBQAAMFOoJMj777+vWbNm6c033zTrlDRp0sT0iFwAAIDb9f777+u9995T3759VatWLQ0dOlS//vqrpcMCAAClRKGSIMnJyXrggQdylTs4OCgjI+OOgwIAANanY8eOGjNmjObNm6eFCxdqx44dat26tR566CFNnjzZ0uEBAIBSoFBJkJo1a2rnzp25yuPj4+Xn53enMQEAACuUnZ2t3bt3m57S4uTkpJkzZ2r58uV69913LRwdAAAoDQo1wTYiIkJDhgzRlStXZBiGtmzZosWLFysmJkaffPJJUccIAACswHfffaeffvpJI0eO1KFDh7R8+XJ5e3vr3Llz+vzzzy0dHgAAKAUKlQR5/vnn5eTkpFGjRuny5ct6+umn5e3trffee099+vQp6hgBAIAV+OKLL/Tvf/9bzzzzjHbs2KHMzExJUlpammJiYtSqVSsLRwgAAO51hZoO89dff6l79+46cOCALl26pM2bNysiIkLVq1cv6vgAAICVmDBhguLi4jRr1iyVLVvWVP7www9r+/btFowMAACUFoVKgnTt2lXz58+XJGVlZalLly6aNm2aunXrppkzZxZpgAAAwDrs27dPrVu3zlXu5uamCxcu3P2AAABAqVOoJMj27dtNQ1KXL18uDw8P/fnnn5o/f75mzJhRpAECAADr4OnpqYMHD+Yq37Bhg2rVqmWBiAAAQGlTqCTI5cuXVb58eUnSt99+qx49esjW1lYPPfSQ/vzzzyINEAAAWIcBAwbo5ZdfVlJSkmxsbHTixAktXLhQw4cP1+DBgy0dHgAAKAUKtTBqnTp1tGrVKnXv3l1r167VK6+8Ikk6deqUXF1dizRAAABgHV5/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",
|
||
"text/plain": [
|
||
"<Figure size 1100x400 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"try:\n",
|
||
" fig, ax = plt.subplots(1, 2, figsize=(11, 4))\n",
|
||
" ax[0].bar(df_arq[\"arquitectura\"], df_arq[\"segundos\"])\n",
|
||
" ax[0].set_ylabel(\"segundos\"); ax[0].set_title(\"Tiempo de entrenamiento\")\n",
|
||
" x = np.arange(len(df_arq))\n",
|
||
" ax[1].bar(x - 0.2, df_arq[\"acc@1\"], width=0.4, label=\"acc@1\")\n",
|
||
" ax[1].bar(x + 0.2, df_arq[\"acc@5\"], width=0.4, label=\"acc@5\")\n",
|
||
" ax[1].set_xticks(x); ax[1].set_xticklabels(df_arq[\"arquitectura\"])\n",
|
||
" ax[1].set_ylabel(\"exactitud\"); ax[1].set_title(\"Analogías\"); ax[1].legend()\n",
|
||
" plt.tight_layout(); plt.show()\n",
|
||
"except NameError:\n",
|
||
" print(\"Completa el Ejercicio 5 primero.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_35"
|
||
},
|
||
"source": [
|
||
"**Pregunta 4.** ¿Qué arquitectura gana en tu experimento y a qué coste? ¿Cambiaría la\n",
|
||
"conclusión con un corpus 100 veces mayor? ¿Y si solo te interesaran palabras muy raras?\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_36"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 6 · Ejercicio 6 — Barrido de hiperparámetros (10 pts)\n",
|
||
"\n",
|
||
"Estudia de forma sistemática el efecto de un hiperparámetro:\n",
|
||
"\n",
|
||
"1. Barrer `window ∈ {2, 5, 10}` manteniendo el resto de parámetros fijos (Skip-gram, subcorpus).\n",
|
||
"2. Guardar exactitud@1, exactitud@5 y tiempo en `resultados_ventana`.\n",
|
||
"3. Además, para `window=2` y `window=10`, imprimir los vecinos de `\"paris\"` y `\"physics\"`\n",
|
||
" y observar cualitativamente la diferencia.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 57,
|
||
"metadata": {
|
||
"id": "cd_37"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Entrenando window=2...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Entrenando window=5...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Entrenando window=10...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n",
|
||
"Exception ignored in: 'gensim.models.word2vec_inner.our_dot_float'\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>window</th>\n",
|
||
" <th>segundos</th>\n",
|
||
" <th>vocabulario</th>\n",
|
||
" <th>acc@1</th>\n",
|
||
" <th>acc@5</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>13.969611</td>\n",
|
||
" <td>32080</td>\n",
|
||
" <td>0.250000</td>\n",
|
||
" <td>0.416667</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>5</td>\n",
|
||
" <td>25.849061</td>\n",
|
||
" <td>32080</td>\n",
|
||
" <td>0.083333</td>\n",
|
||
" <td>0.250000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>46.226222</td>\n",
|
||
" <td>32080</td>\n",
|
||
" <td>0.416667</td>\n",
|
||
" <td>0.583333</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" window segundos vocabulario acc@1 acc@5\n",
|
||
"0 2 13.969611 32080 0.250000 0.416667\n",
|
||
"1 5 25.849061 32080 0.083333 0.250000\n",
|
||
"2 10 46.226222 32080 0.416667 0.583333"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 600x400 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"resultados_ventana = []\n",
|
||
"modelos_ventana = {}\n",
|
||
"\n",
|
||
"for w in [2, 5, 10]:\n",
|
||
" print(f\"Entrenando window={w}...\")\n",
|
||
" m, segundos = entrenar(frases_rapido, sg=1, window=w)\n",
|
||
" acc1, acc5, _ = evaluar_analogias(m.wv, verbose=False)\n",
|
||
" resultados_ventana.append({\n",
|
||
" \"window\": w,\n",
|
||
" \"segundos\": segundos,\n",
|
||
" \"vocabulario\": len(m.wv),\n",
|
||
" \"acc@1\": acc1,\n",
|
||
" \"acc@5\": acc5,\n",
|
||
" })\n",
|
||
" modelos_ventana[w] = m\n",
|
||
"\n",
|
||
"df_ventana = pd.DataFrame(resultados_ventana)\n",
|
||
"display(df_ventana)\n",
|
||
"\n",
|
||
"plt.figure(figsize=(6, 4))\n",
|
||
"plt.plot(df_ventana[\"window\"], df_ventana[\"acc@1\"], marker=\"o\", label=\"acc@1\")\n",
|
||
"plt.plot(df_ventana[\"window\"], df_ventana[\"acc@5\"], marker=\"s\", label=\"acc@5\")\n",
|
||
"plt.xlabel(\"window\"); plt.ylabel(\"exactitud en analogías\")\n",
|
||
"plt.title(\"Efecto del tamaño de ventana\"); plt.legend(); plt.grid(alpha=0.3); plt.show()\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 58,
|
||
"metadata": {
|
||
"id": "cd_38"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"=== window=2 ===\n",
|
||
"\n",
|
||
"Vecinos de 'paris' (window=2):\n",
|
||
" zurich 0.757\n",
|
||
" bologna 0.756\n",
|
||
" venice 0.751\n",
|
||
" vienna 0.747\n",
|
||
" lyon 0.743\n",
|
||
" perth 0.741\n",
|
||
" dublin 0.733\n",
|
||
" francisco 0.730\n",
|
||
"\n",
|
||
"Vecinos de 'physics' (window=2):\n",
|
||
" mathematics 0.835\n",
|
||
" chemistry 0.816\n",
|
||
" mechanics 0.788\n",
|
||
" mathematical 0.774\n",
|
||
" logic 0.762\n",
|
||
" sciences 0.759\n",
|
||
" geometry 0.751\n",
|
||
" relativity 0.735\n",
|
||
"\n",
|
||
"=== window=10 ===\n",
|
||
"\n",
|
||
"Vecinos de 'paris' (window=10):\n",
|
||
" sur 0.734\n",
|
||
" des 0.726\n",
|
||
" mie 0.701\n",
|
||
" france 0.699\n",
|
||
" rodin 0.672\n",
|
||
" recherche 0.671\n",
|
||
" vevey 0.669\n",
|
||
" nuremberg 0.668\n",
|
||
"\n",
|
||
"Vecinos de 'physics' (window=10):\n",
|
||
" mechanics 0.806\n",
|
||
" quantum 0.752\n",
|
||
" bose 0.744\n",
|
||
" condensates 0.743\n",
|
||
" electromagnetism 0.737\n",
|
||
" chemistry 0.721\n",
|
||
" theoretical 0.718\n",
|
||
" gravitation 0.717\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Ejercicio 6b: compara cualitativamente los vecinos con ventana pequeña y grande.\n",
|
||
"for w in [2, 10]:\n",
|
||
" print(f\"\\n=== window={w} ===\")\n",
|
||
" for palabra in [\"paris\", \"physics\"]:\n",
|
||
" print(f\"\\nVecinos de '{palabra}' (window={w}):\")\n",
|
||
" for vecino, sim in modelos_ventana[w].wv.most_similar(palabra, topn=8):\n",
|
||
" print(f\" {vecino:<18} {sim:.3f}\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 59,
|
||
"metadata": {
|
||
"id": "cd_39"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej6.a barrido completo\n",
|
||
"[OK] Ej6.b valores de window\n",
|
||
"[OK] Ej6.c modelos guardados\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 6 ---\n",
|
||
"def _t1():\n",
|
||
" assert len(resultados_ventana) == 3, \"debe haber 3 configuraciones de ventana\"\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" assert sorted(r[\"window\"] for r in resultados_ventana) == [2, 5, 10]\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" assert set(modelos_ventana) >= {2, 10}, \"guarda los modelos de window=2 y window=10\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej6.a barrido completo\", _t1), (\"Ej6.b valores de window\", _t2),\n",
|
||
" (\"Ej6.c modelos guardados\", _t3)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_40"
|
||
},
|
||
"source": [
|
||
"**Pregunta 5.** Con `window=2` los vecinos suelen ser palabras **intercambiables** en la\n",
|
||
"frase (otras ciudades, otras ciencias); con `window=10` son palabras del mismo **tema**.\n",
|
||
"Explica por qué, en términos de qué contextos comparten dos palabras en cada caso.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_41"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 7 · Ejercicio 7 — Visualizar el espacio (5 pts)\n",
|
||
"\n",
|
||
"Un espacio de 100 dimensiones no es representable directamente. Se proyecta a dos dimensiones\n",
|
||
"con PCA, que es lineal y conserva las direcciones globales, y con t-SNE, que es no lineal y\n",
|
||
"conserva los vecindarios locales.\n",
|
||
"\n",
|
||
"Advertencia: t-SNE **no** conserva distancias globales. Dos *clusters* alejados en el dibujo no\n",
|
||
"están necesariamente alejados en el espacio original.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 60,
|
||
"metadata": {
|
||
"id": "cd_42"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"39 palabras en 6 grupos\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"GRUPOS = {\n",
|
||
" \"países\": [\"france\", \"germany\", \"italy\", \"spain\", \"japan\", \"china\", \"russia\"],\n",
|
||
" \"capitales\": [\"paris\", \"berlin\", \"rome\", \"madrid\", \"tokyo\", \"beijing\", \"moscow\"],\n",
|
||
" \"números\": [\"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\"],\n",
|
||
" \"animales\": [\"dog\", \"cat\", \"horse\", \"cow\", \"bird\", \"fish\", \"mouse\"],\n",
|
||
" \"ciencias\": [\"physics\", \"chemistry\", \"biology\", \"mathematics\", \"geology\"],\n",
|
||
" \"verbos\": [\"walk\", \"run\", \"swim\", \"jump\", \"eat\", \"drink\"],\n",
|
||
"}\n",
|
||
"\n",
|
||
"palabras, etiquetas = [], []\n",
|
||
"for g, ws in GRUPOS.items():\n",
|
||
" for w in ws:\n",
|
||
" if w in modelo.wv:\n",
|
||
" palabras.append(w); etiquetas.append(g)\n",
|
||
"print(f\"{len(palabras)} palabras en {len(GRUPOS)} grupos\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 61,
|
||
"metadata": {
|
||
"id": "cd_43"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from sklearn.decomposition import PCA\n",
|
||
"from sklearn.manifold import TSNE\n",
|
||
"\n",
|
||
"X = np.array([modelo.wv[w] for w in palabras])\n",
|
||
"\n",
|
||
"XY_pca = PCA(n_components=2, random_state=SEMILLA).fit_transform(X)\n",
|
||
"XY_tsne = TSNE(n_components=2, random_state=SEMILLA, perplexity=8, init=\"pca\").fit_transform(X)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 62,
|
||
"metadata": {
|
||
"id": "cd_44"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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c8nrhoaGGmaz2Thy5Ei+z584ccJ44oknjMqVKxvu7u5GUFCQ0a5dO+M///lPrnLnzp0zXnjhBaNatWqOcj169Mi1TcKaNWuMBg0aGB4eHrna4siRI0a3bt2MgIAAw9/f37j//vuNY8eO5buVwf/+9z/HOapXr27MmDHD8d5dKCsryxg/fryjPpUrVzZGjRqVa0uNjRs3Gn369DGqVKlieHp6Grfeeqtxzz33GLGxsZd8vy70/fffG82bNze8vb0NPz8/o3Hjxsbnn3+eq8yXX35pREVFGZ6ensYtt9xiPPDAA3ne6/79+xulS5fOc/787is/rVu3NkJDQwtUZ8MwjKVLlxpdunQxbr31VsPNzc0oV66cce+99xoLFiwwDMMw3nzzTQMwli5deslzzJo1ywAcrxERKQkmw7iG2e0iIiJAXFwcUVFRzJ49mwceeOC6zjVu3DjGjx/PqVOn8sxRKkpRUVHccsstLF26tNiuKSIiUhg0Z05ERAokPT09z7GpU6diNptp1apVCdTo+sXGxhIXF0e/fv1KuioiIiJXTXPmRESkQF5//XX++OMP2rZti5ubGz///DM///wz//rXv/Lsxefstm3bxh9//MGbb75JhQoV6NWrV0lXSURE5KqpZ05ERAqkefPmnDlzhokTJzJixAj27NnDuHHj8qw+6Qrmz5/Pww8/TFZWFp9//jleXl4lXSUREZGrpjlzIiIiIiIiLkg9cyIiIiIiIi5IYU5ERERERMQFOfUCKDabjWPHjuHr6+vYkFZERERERMSVGYZBamoqFStWxGy+9v41pw5zx44dc7kV0kRERERERArizz//pFKlStf8eqcOc76+voD9Jv38/EqkDoZhkJycjL+/v3oHnZTayLmpfZyb2sf5qY2cm9rH+amNnNvN2j4pKSlUrlzZkXeulVOHuZwG9fPzK9EwZxgGfn5+N9UvmCtRGzk3tY9zU/s4P7WRc1P7OD+1kXO72dvneu9ZC6CIiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIi4vODgYOLi4vJ97qmnnmL58uXFWyGRYuBW0hUQERER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KkX//v15/fXXydkpY926dcTFxREXF8e+fftuuh6inPfXYrHkeVyQ99rNzS1XqMvIyHD8fN9997F69WpCQkIcvXRgXxr4nXfecbzvO3bs4KeffircGxMRESli17JQ27Fjx2jZsqXjcWRkJKmpqQDcfffdLvGlsp+3G1cYYelgM8Df271oKyTFQmFOCk1ISAg2m43FixcDsGbNGo4fP05kZGS+5Xft2kVoaChDhw7l8ccfZ926dfj4+NC2bVteffVVR7ljx45x5MiR4rgFl9K2bVsWLVrEsWPHAJgxYwbt2rXDYrFQs2ZNtmzZQnp6OtnZ2cydO9fxur1791K+fHn69evH66+/zrp16wDo2rUrb731FufOnQPg3LlzbN++vfhvTEREpJhVrFiRlStXOh7HxcXh6+sLwE8//URISEhJVa3AYsKCrjhfLofVZhATFlTENZLioDAnhcbDw4NvvvmGsWPHEh4ezrBhw5g/fz4+Pj75lh89ejShoaFERUXx2WefMW7cOADmzJnDvn37CAsLo169enTv3p2EhIRivBPXEBYWxhtvvEFMTAzh4eGsXLmSDz/8EICmTZty9913ExYWRps2bbj99tsdr5s/fz716tUjKiqKXr16MWPGDACee+45GjVqRJMmTQgPD6dp06bExcWVxK2JiIhcl8mTJxMVFUWtWrWYM2eO4/iGDRu48847adiwIVFRUY45+TkLteW4sHcvODjY8f/DNm3a8Oyzz9KyZUtq1KjB4MGDHa/566+/6NChA3Xr1qVDhw707t3b8dmmONQO8qN+lYArzpuzmE00rFqGkCDfYqqZFCWTkTOuzQkV1s7o1+Nm25U+Y/ceUhcvxpaagtnXD9/27fEKqVXS1bosV2sjV3yPr4ertc/NRu3j/NRGzk3t43xMJhNjxoxh4sSJHDhwgIYNG7JixQoqV67MnXfeyU8//USFChU4ffo09evXZ+3atWRlZREZGekIcCaTicTERAICAhwrS0dGRtKmTRvKlCnDvHnzyMrKom7dusydO5dmzZpx//33U7duXcaPH+8YmTR48OBiDXQ5+8xdansCi9mEj6cbC55o4TQbh9+s/4YKK+doARQBIPPQIY49P4r0TZvAYgGTCQyD09On410/ioqTJuFRtWpJV9Ol6T0WEREpHjmrO1evXp1WrVqxZs0aKleuzIEDB7jrrrty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zw/f9u1v6KGVrtY+Nxu1j/NTGzk3tU8RO7Ed3m9e8PKPr4XydXMdUhs5t+tpn13HU1i07Tgp6dn4ebsRExZE7SDXWEiusHKO5szdJMqUKcO3337LiBEjSE1NxWw2M3HiRL755hueeuopRowYgZeXF/O//ZaWLVsy/quv6HrgABMbNCA6OhqA9u3b880339CmTZuSvRkX5xVSS/vIiYiIFET5UKjU2L4tweXmzZksUKlhniAnN6b402kM/yqOjYeTsJhNmE1gM2Dqkr00qFqGN++PIDiwdElXs1gozN0gMnbvIXXxYmypKZh9/+7t+TswrF27lpEjR5KamophGEycOJGVK1cyYcIEsrKy8PPzY968eYSEhDB48GAAWrZsicVi4cSJE9x6660A/Otf/+Jf//pXid2jqzt27Bi9evVi5cqVJV0VERER19Fthn0fuUttT2CygKeffeNwueHFn06jy7urOXvevhiJ1WZw4W9F3J9JdHl3NQueaHFTBDoNs7wCZ++azzx0iGPPjyJ90yb7/CuTyb6nmdWKd/0ovJ57jogOHXKtYpkzSbNcuXIAfPHFF8yaNYtFixYBYDKZSExMJCAgoATvrOCcvY1udmof56b2cX5qI+em9ikmCfvt+8j9+bs9vJnM9jlyhhUqN7EHubI18n2p2si5XW37dH9vNZuPJGO1XTrCWMwmoioHMP/xqxiiW8w0zFLIPHSIgz17YTt71n7gomXv0zdv4ZeePakVHJxrFctbbrmFuXPn8s4775CamorNZsu1o71cXnp6OgMGDGDr1q24u7tTvnx5AgMDueeee+jbty/vvfcew4YNIzExkdKlS3PnnXcybtw4qlSpQmRkJElJSYA9NL/00kt8//33nDhxgqlTp7Jz506+/vprkpOT+fDDDzWkVUREBOxB7ZFf7XPodi60r1rpFQB17tXQypvIruMpbDycdMVyVptB7KFEdh1PcZk5dNdKq1m6sGPPj7IHuUvtXWa1YqRncP7gwVyHDx8+zNChQ5k9ezbbtm3jiy++yLWnhlzeokWLSEpKYseOHWzevJkvvviC6OholixZAsDixYtp2LAh//vf/zh37hybN2+mWbNm+Z7Lx8eH33//nY8++ogHH3yQChUqEBsbyyuvvMLIkSOL87ZERESKzLhx4wr0WSM4ODjXps15lA+FNs9BzCT73wpyN5VF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r14dd3d3HnzwwQKdv2bNmjRp0gSAZs2aMXny5MK9gctQmBMRERERkZuGyWTCMAxCQ0NZs2ZNnufj4+MpVaoUZnPBBjF6eXk5frZYLHnm2BUlDbMUEREREZEb1syZMwF7SFu5ciUtW7akefPmHDx4kCVLljjKxcXFkZmZWVLVvCbqmRMREREREddzYjvs/AEyksHLH+rcC+VD8xSzWq1ERUWRlpbGtGnTCA4OBuDHH3/k2WefZcSIEWRlZVGlShW+++674r2H62QyDMMo6UpcSkpKCv7+/iQnJ+Pn51cidTAMg+TkZPz9/TGZTCVSB7k8tZFzU/s4N7WP81MbOTe1j/NTGzm3a2qfhP3w7WA4sh5MFjCZwbCBYYXKTaDr+1C2RtFW/DoVVs7RMEsREREREXENCfvhw3Zw9A/7Y8MKtiz73wBHYu3PJ+wvuToWI4U5ERERERFxDd8OhvMp/4S3ixlW+/PfPV689SohCnMiIiIiIuL8Tmy3D628VJDLYVjhz9/t5W9wCnMiIiIiIuL8dv5gnyNXECYL7FxYtPVxAgpzIiIiIiLi/DKS7YudFITJDBlJRVodZ6AwJyIiIiIizs/L375qZUEYNvAKKNLqOAOFORERERERcX517r3yfLkchtVe/ganMCciIiIiIs6vfChUanzleXMmi32/ufJ1i6deJUhhTkREREREXEO3GeDpd+lAZ7LYn+/6fvHWq4QozImIiIiIiGsoWwMeXQqVGtofmyxgdv8n3FVqaH++bI2Sq2MxcivpCoiIiIiIiBRY2RrwyK/2feR2LrSvWukVYJ8jdxMMrbyQwpyIiIiIiLie8qH2PzcxDbMUERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLigIgtzL7/8Ms2bN6dUqVIEBAQU1WVERERERERuSkUW5jIzM7n//vt5/PHHi+oSIiIiIiIiNy23ojrx+PHjAZg1a1ZRXUJEREREROSmpTlzIiIiIiIiLqjIeuauxfnz5zl//rzjcUpKCgCGYWAYRonUKefaJXV9uTK1kXNT+zg3tY/zUxs5N7WP81MbObebtX0K636vKsw9//zzvPbaa5cts3PnTmrXrn1NlZk0aZJjeOaFkpOTSzTMnT17FgCTyVQidZDLUxs5N7WPc1P7OD+1kXNT+zg/tZFzu1nbJ6fT6npdVZgbMWIEAwYMuGyZ6tWrX3NlRo0axfDhwx2PU1JSqFy5Mv7+/vj5+V3zea9HToj09/e/qX7BXInayLmpfZyb2sf5qY2cm9rH+amNnNvN2j6Fda9XFebKlStHuXLlCuXC+fH09MTT0zPPcZPJVKKNm3P9m+kXzNWojZyb2se5qX2cn9rIual9nJ/ayLndjO1TImHuahw+fJgzZ85w+PBhrFYrcXFxANSsWRMfH5+iuqyIiIiIiMhNocjC3Isvvsgnn3zieBwVFQXA8uXLadOmTVFdVkRERERE5KZQZFsTzJo1K9fqNDl/FORERERERESun/aZExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiIiIiLighTmREREREREXJDCnIiIiIiIiAtSmBMREREREXFBCnMiIiIiIiIuSGFORERERETEBSnMiYiIiIiIuCCFORERERERERekMCciIiIiIuKCFOZERERERERckMKciIiIiIiIC1KYExERERERcUEKcyIiIiIiIi5IYU5ERERERMQFKcyJiIiIiIi4IIU5ERERERERF6QwJyIiIiIi4oIU5kRERERERFyQwpyIiIiIiIgLUpgTERERERFxQQpzIiIiIiIiLkhhTkRERERExAUpzImIiIiIiLgghTkREREREREXpDAnIiJSQCtWrCAyMrKkqyEiIgIozImIiIiIiLgkhTkREbmhLViwgDp16hAREcFzzz1HYGAg8fHx7N27l06dOtGoUSPCw8OZPn264zW//PIL9evXJzw8nNatW7Njx458z/3ZZ58RHh5OeHg4nTp14ujRo/x/e3ceF1W5/wH8c2bYRJzBBXGXTTHZBsEFyi1UUEtNzTWXNM3MsjJvat6sm5WpZS/Nwm6llVo3l7S0ayVqbohi4C6KgiaEEsuwyTIzz+8PfswVWWQbZvu8Xy9fMeec55zvmS8DfXme8zwAUFJSgrlz56Jr167o06cPFixYgAEDBgAAHnvsMWzdulV/jl9//RW9e/c23BtAREQWi8UcERFZrDt37mDGjBn44YcfcObMGXTr1g0ZGRnQarWYOHEiPvjgA5w6dQonTpzAZ599hlOnTuHOnTuYNGkSvvrqK5w9exazZ8/G2LFjIYQod+7z589j4cKF+O9//4uzZ88iNDQUzzzzDADgs88+w9WrV3HhwgUcOXIEZ8+e1bebP39+ucJx/fr1mDdvXuO8IUREZFFYzBERkcU6ceIE/P390a1bNwDAtGnTYGdnh6KiIly4cAETJkyASqVCaGgocnNzcfHiRcTExMDPzw9+fn4AgMmTJyM1NVXf61bm4MGDiIiIQPv27QEAc+fOxYEDB6DVahEVFYWnnnoKtra2sLW1xbRp0/TtBg8eDLVajbi4ONy4cQMnT57EuHHjGukdISIiS2Jj7ACIiIgamxACLVq0QHx8fIV9P/30U53OKUlSjfe9+OKLWLduHVxdXTFjxgzY29vX6ZpERGTd2DNHREQWq0+fPjh79iwSEhIAAJs3b0ZxcTHs7e2hUCiwceNG/bGJiYnIzMxEnz59cO7cOZw/fx4A8N1336F9+/b6HrgyAwcOxL59+5CamgoAiIyMRFhYGORyOR599FFs3boVJSUlKCkp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kvDYY48hJiYGKpUKzs7O6N+/f7klDcqGXm7duhUhISGNdOdERERkqSQhhDB2EFXJycmBUqmEWq2GQqEwSgxCCKjVaiiVynoPuSLDYI5MW2PkJyMlD9fi0lFcoIGdow08A13Qsr2TQa71ILm5uWjWrBmEEFiwYAHu3r2LTz/9VL//sccew/jx4zFlyhSjxHc/fn5MH3Nk2pgf08ccmTZrzU9D1TnsmSMis5V9pwBRmy4i7XoOJFlpz5cQAqf2JKGNpxJh0x6Cc2vHRo1p6tSpSE5ORmFhIXx8fBAZGQmgdNmDCRMmoHv37pg0aVKjxkRERESWicUcEZml7DsF2L4iFsWFpeu0CR0g8L+BBreT1Ni+IhZjFwU3akH3ww8/VLo9ODgYiYmJjRYHERERWT5OgEJEZilq00UUF2ogdJXvFzqguFCDqK8uNW5gRERERI2ExRwRmZ2MlDykXc+pspArI3RA2jU1MlLyqj+QiIiIyAyxmCMis3MtLh1SDX96STLgeny6YQMiIiIiMgIWc0RkdooLNDWe8UqSJBTlawwcEREREVHjYzFHRGbHztEGNV1VRQgB+6ac64mIiIgsD4s5IjI7noEuD3xerozQAR4qF8MGRERERGQELOaIyOy0bO+ENh6KBz43J8kktPFUGm0BcSIiIiJDYjFHRGYpbHp32DnYVFnQSTIJdg5yhE17qHEDIyIiImokLOaIyCw5t3bE2EXBcHVXAiidtVIml/TFnau7otEXDCciIiJqTJwVgIjMlnNrR4xZGISMlDxcj09HUb4G9k1t4KFy4dBKIiIisngs5ojI7LVs78TijYiIiKwOh1kSERERERGZIRZzREREREREZojFHBERERERkRliMUdERERERGSGWMwRERERERGZIRZzREREREREZojFHBERERERkRliMUdERERERGSGWMwRERERERGZIRZzREREREREZojFHBERERERkRliMUdERERERGSGWMwRERERERGZIRZzREREREREZojFHBERERERkRliMUdERERERGSGWMwRERERERGZIRZzREREREREZojFHBERERERkRliMUdERERmS5IkZGdnN8i5IiMjsWrVqgY5FxFRY7AxdgD1odVqUVJSYtBrCCFQXFyMwsJCSJJk0GuZGltbW8jlcmOHQURE1CjmzJlj7BCIiGrFbIu5vLw83Lp1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X34R165dE6dPnxYTJkwQDg4O4sKFC8a6BYuWm5ur/x0DQHz44YciLi5O3LhxQwghxKJFi8SUKVP0x1+/fl04OjqKhQsXikuXLon169cLuVwu9u3bZ6xbsHi1zdGaNWvErl27xNWrV8W5c+fE/PnzhUwmE/v37zfWLZg0FnP32bhxowBQ6b8ySUlJAoA4ePCgftvdu3fF3LlzRfPmzYWjo6N44oknyhWA1HCmTZtWaX7uzQcAsXHjRiGEEAUFBWLIkCHCxcVF2Nrais6dO4tZs2bpfxFTw6ttjoQoXZ7gn//8p3B1dRX29vYiLCxMJCQkNH7wViAjI0NMnDhRODk5CYVCIZ5++ulyhfb9P+Nu3rwp+vXrJ1q0aCHs7e2Fl5eXWLhwoVCr1Ua6A8uzbt060alTJ2FnZyd69eolTpw4od/Xv39/MW3atHLHf//996Jr167Czs5O+Pj4iL179zZyxNalNvl56aWX9Me6urqKYcOGiT/++MMIUVuHsmns7/9XlpNp06aJ/v37V2ijUqmEnZ2d8PDwKPe7iBpebXP0/vvvC09PT+Hg4CBatGghBgwYIA4cOGCc4M2AJIQQhu//IyIiIiIiooZkNbNZEhERERERWRIWc0RERERERGaIxRwREREREZEZYjFHRERERERkhljMERERERERmSEWc0RERERERGaIxRwREREREZEZYjFHRERERERkhljMERERERERmSEWc0RERERERGaIxRwREREREZEZYjFHRERERERkhv4PT3JTehbaK4sAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 900x700 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA3QAAAKyCAYAAACdVpymAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA4KRJREFUeJzs3Xl4jPf6x/H3ZCIJkplYYl9iqSBkIZbE0qq9WlUcWq2laI8qrdKe0jqli9JVj620p6ULXajuLUUpihYVe2MNLY0lZEO2mef3R36ZI01CSCaZic/rulzMs97P3LLc891MhmEYiIiIiIiIiNvxKOkARERERERE5PqooBMREREREXFTKuhERERERETclAo6ERERERERN6WCTkRERERExE2poBMREREREXFTKuhERERERETclAo6ERERERERN6WCTkRERERExE2poBMRKYTAwEBuv/12p98nNjYWk8nEokWLrnrssGHDCAwMzLHNZDIxdepUp8QmJWfq1KmYTKaSDkNEREqQCjoRKXUWLVqEyWTK98+WLVtKOkS5gVy8eJGpU6eybt26kg6l1Jk3b16BPuS43O7du+nfvz9169bFx8eHmjVr0rVrV2bPnp3juMDAQEwmE2PHjs11jXXr1mEymVi2bJljm77viEhJ8SzpAEREnOW5556jXr16ubY3bNiwBKIpWZcuXcLTU9/yS8LFixd59tlnAbjllltKNphSZt68eVSuXJlhw4YV6PhNmzbRqVMn6tSpwwMPPEC1atX4448/2LJlC//5z3/yLN7efvttJk2aRI0aNQp0D33fEZHipp/uIlJq9ezZk4iIiJIOwyX4+PiUdAhOYbfbSU9PL7XPJ0Vr2rRpWK1Wtm7dir+/f459p0+fznV8cHAwMTExzJgxg1mzZhXoHvq+IyLFTV0uReSGlT0u7dVXX2Xu3LnUr1+fcuXK0a1bN/744w8Mw+D555+nVq1alC1bljvvvJNz587lea0ffviBsLAwfHx8aNq0KcuXL891TEJCAuPGjaN27dp4e3vTsGFDXnrpJex2e67jhg0bhtVqxd/fn6FDh5KQkJDnfb/44guaNWuGj48PzZo14/PPP8/zuL+Pocsee3Xo0CGGDRuGv78/VquV+++/n4sXL+Y499KlSzzyyCNUrlwZPz8/evfuzYkTJ3JdMzk5mXHjxhEYGIi3tzdVqlSha9eu/Pbbb3nG9PdYfv/9dwYMGIDFYqFSpUo8+uijpKam5nqOMWPGsHjxYoKDg/H29mbFihUA7Nixg549e2KxWPD19aVz5845urkdOXIEk8nEzJkzc8WwadMmTCYTH330kWPbiRMnGD58OFWrVsXb25vg4GDefffdXOempqYydepUGjVqhI+PD9WrV6dv374cPnyY2NhYAgICAHj22Wcd3e+y37ddu3YxbNgw6tevj4+PD9WqVWP48OHEx8fnus/GjRtp1aoVPj4+NGjQgAULFuT5fmZmZvL888/ToEEDvL29CQwM5KmnniItLS3Hcdu2baN79+5UrlyZsmXLUq9ePYYPH57nNf/u+++/5+abb8bPzw+LxUKrVq1YsmRJjmOWLl1Ky5YtKVu2LJUrV+a+++7jxIkTOY4ZNmwYvr6+nDhxgj59+uDr60tAQACPP/44NpvtijEEBgayd+9efvrpJ8f7erUW0MOHDxMcHJyrmAOoUqVKnvcYMmQIb7/9NidPnrzitUVESopa6ESk1EpMTOTs2bM5tplMJipVqpRj2+LFi0lPT2fs2LGcO3eOl19+mQEDBnDrrbeybt06nnzySQ4dOsTs2bN5/PHHc/1Sf/DgQQYOHMioUaMYOnQoCxcu5B//+AcrVqyga9euQFa3u5tvvpkTJ07wz3/+kzp16rBp0yYmTZrEX3/9xRtvvAGAYRjceeedbNy4kVGjRtGkSRM+//xzhg4dmuv5fvjhB/r160fTpk2ZPn068fHx3H///dSqVavA79GAAQOoV68e06dP57fffuO///0vVapU4aWXXnIcM2zYMD799FMGDx5M27Zt+emnn+jVq1eua40aNYply5YxZswYmjZtSnx8PBs3bmT//v20aNGiQLEEBgYyffp0tmzZwqxZszh//jzvv/9+juN+/PFHPv30U8aMGUPlypUdv9h36NABi8XCv/71L8qUKcOCBQu45ZZb+Omnn2jTpg3169enXbt2LF68mMceeyzHNRcvXoyfnx933nknAKdOnaJt27aOAjIgIIDvv/+eESNGkJSUxLhx4wCw2WzcfvvtrFmzhrvvvptHH32U5ORkVq1axZ49e+jSpQtvvvkmDz30EHfddRd9+/YFICQkBIBVq1Zx5MgR7r//fqpVq8bevXt566232Lt3L1u2bHFMeLJ79266detGQEAAU6dOJTMzkylTplC1atVc7+PIkSN577336N+/PxMmTOCXX35h+vTp7N+/31Hwnz592nG9iRMn4u/vT2xsbJ4fRPzdokWLGD58OMHBwUyaNAl/f3927NjBihUrGDRokOOY+++/n1atWjF9+nROnTrFf/7zH37++Wd27NiRo6Cy2Wx0796dNm3a8Oqrr7J69Wpee+01GjRowEMPPZRvHG+88QZjx47F19eXp59+GiDP9+NydevWZfPmzezZs4dmzZpd9VkBnn76ad5///0Ct9IV9PuOiEiRMURESpmFCxcaQJ5/vL29HccdPXrUAIyAgAAjISHBsX3SpEkGYISGhhoZGRmO7ffcc4/h5eVlpKamOrbVrVvXAIzPPvvMsS0xMdGoXr26ER4e7tj2/PPPG+XLlzcOHDiQI9aJEycaZrPZOH78uGEYhvHFF18YgPHyyy87jsnMzDQ6dOhgAMbChQsd28PCwozq1avniP2HH34wAKNu3bo57gMYU6ZMcbyeMmWKARjDhw/Pcdxdd91lVKpUyfF6+/btBmCMGzcux3HDhg3LdU2r1Wo8/PDDxrXKjqV37945to8ePdoAjJ07d+Z4Dg8PD2Pv3r05ju3Tp4/h5eVlHD582LHt5MmThp+fn9GxY0fHtgULFhiAsX//fse29PR0o3LlysbQoUMd20aMGGFUr17dOHv2bI773H333YbVajUuXrxoGIZhvPvuuwZgvP7667mey263G4ZhGGfOnMn1XmXLvs7lPvroIwMw1q9fn+P5fHx8jGPHjjm27du3zzCbzcblP8qjo6MNwBg5cmSOaz7++OMGYPz444+GYRjG559/bgDG1q1bc93/ShISEgw/Pz+jTZs2xqVLl/J83vT0dKNKlSpGs2bNchzzzTffGIDxzDPPOLYNHTrUAIznnnsux7XCw8ONli1bXjWe4OBg4+abby5w/D/88INhNpsNs9lsREZGGv/617+MlStXGunp6bmOrVu3rtGrVy/DMAzj/vvvN3x8fIyTJ08ahmEYa9euNQBj6dKljuML+n1HRKSoqculiJRac+fOZdWqVTn+fP/997mO+8c//oHVanW8btOmDQD33XdfjolE2rRpQ3p6eq5uYzVq1OCuu+5yvLZYLAwZMoQdO3YQFxcHZHU/69ChAxUqVODs2bOOP126dMFms7F+/XoAvvvuOzw9PXO0TJjN5lyT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JqNly5aGl5dXjlz8+eefxl133WX4+/sbVqvV+Mc//mGcPHkyz2UOfvrpJ8c16tevb8yfP9/x3l0uIyPDePbZZx3x1K5d25g0aVKO5TZ+++0345577jHq1KljeHt7G1WqVDFuv/12Y9u2bfm+X5f76quvjKioKKNs2bKGxWIxWrdubXz00Uc5jvnkk0+M8PBww9vb26hYsaJx77335nqvhw4dapQvXz7X9fN6rrzExcUZvXr1Mvz8/AzgqksYfP/998bw4cONxo0bG76+voaXl5fRsGFDY+zYscapU6dyHHv5sgWXO3jwoGO5iIIuW5DX166ISFExGcZ1jHwXEZEbWnR0NOHh4Xz44Yfce++9hbrW1KlTefbZZzlz5gyVK1cuogivLjw8nIoVK7JmzZpiu6eIiEhR0xg6ERG5okuXLuXa9sYbb+Dh4UHHjh1LIKLC27ZtG9HR0QwZMqSkQxERESkUjaETEZErevnll9m+fTudOnXC09OT77//nu+//54HH3ww11p9rm7Pnj1s376d1157jerVqzNw4MCSDklERKRQ1EInIiJXFBUVxblz53j++eeZMGECBw4cYOrUqblmpXQHy5Yt4/777ycjI4OPPvoIHx+fkg5JRESkUDSGTkRERERExE2phU5ERERERMRNqaATERERERFxU24/KYrdbufkyZP4+fk5FrgVERERERFxVYZhkJycTI0aNfDwKFwbm9sXdCdPnnS7WdZERERERET++OMPatWqVahruH1B5+fnB2S9GRaLpYSjcT7DMEhMTMRqtapF0kUoJ65HOXE9yonrUU5cj3LiepQT11Ka8pGUlETt2rUdtUxhuH1Bl51Mi8VywxR0hmFgsVjc/j9yaaGcuB7lxPUoJ65HOXE9yonrUU5cS2nMR1E8hyZFERERERERcVMq6ERERERERNyU23e5FBERERGR62Oz2cjIyCjpMArEMAzS09NJTU11qy6XZcqUwWw2O+36KuhERERERG5AKSkp/PnnnxiGUdKhFJjdbic+Pr6kw7gmJpOJWrVq4evr65Trq6ATEREREbnB2Gw2/vzzT8qVK0dAQIBbtHgZhoHNZsNsNrtFvJAV85kzZ/jzzz+56aabnNJSp4JOREREROQGk5GRgWEYBAQEULZs2ZIOp0DcsaADCAgIIDY2loyMDKcUdJoURURERETkBuVOhZG7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uhuWCjoRERERESm4qsHXtc6cOIeWLRAREREREXFTKuhERERERETclLpcioiIiIhIgR04f4A1x9aQlJ6ExctC57qdaVShUbHGsGDBAnr27EmdOnWK9b6uSAWdiIiIiIhc1fGk4zy98Wmiz0RjNpkda4nO2zmPsIAwprWfRh2L8wusxYsXs3v3bv75z386/V7uQF0uRURERETkio4nHeeeb+9h99ndANgMG5n2TGz/vybd7rO7uefbeziedNypcRiGwYULF5g1a5ZT7wOQmZnp9HsUBRV0IiIiIiJyRU9vfJoLGRccBdzf2QwbFzIuMPnnyYW6j8lk4sUXX6R169bUq1ePhQsXOvbVq1ePnTt38uCDD+Lh4UFERATr1q0D4JZbbmHChAl07NiROnXq8O9//5vvvvuO9u3bExgYyOuvv+64zsGDB+nVqxetWrUiJCSEOXPm5Lj/lClTaNWqFZMmTeL06dP07duX5s2b06xZMxYsWACA3W5nzJgxNGnShNDQUFq2bElqamqhnv16qculiIiIiIjk68D5A0Sfib7qcTbDxo7TOzhw/kChxtR5e3vz66+/8vvvv9OqVSsGDx6Mp+fVy5Zjx46xdu1akpKSCAwM5Pz582zYsIGTJ08SFBTE8OHD8fPz45577uHDDz+kcePGXLx4kbZt29KmTRtatWoFgNlsZuvWrQAMHDiQoKAgli9fzunTp2nZsiWhoaF4e3uzZs0a9u7di4eHB4mJiXh5eV33MxeGWuhERERERCRfa46twWwyF+hYs8nMmuNrCnW/e++9F4DGjRvj6elJXFxcgc7r378/ZrOZChUqUL9+fW6//XZMJhM1a9YkICCA2NhYYmJi2Lt3L3fffTdhYWFERUWRnJzMvn37HNcZPny449+rV692jNWrUqUKffv2ZfXq1dSvX5/MzEyGDx/Oe++9R0ZGBh4eJVNaqYVORERERETylZSehMlkAuPqx5pMJpLSkgp1Px8fH8e/zWazYyybp6cnNtv/unz+vYvj38/L6zplypShYsWKREdH53t/X1/ffPeZTCYArFYre/bs4aeffmLt2rVMmjSJ9evX07Bhw4I9ZBFSC52IiIiIiOTL4mXBMApQzZE1aYnF2+KUOBo2bMivv/4KwK+//kpMTMw1XyMoKAiLxZJjbN6hQ4c4d+5cnsd36dKFt99+G4AzZ86wfPly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KjbpiuPoTB4mqtazaLZHERERN1asBd26detyvPbx8WHu3LnMnTu3OMMQESn1Og9r6liHLq+izuRhwsvHTOehTYo/OBERESkyHiUdgIiIFD3/KuXoPzGCqvWyJjsxeWRNgGL6/+/6VetZin1RcRERESl6JdrlUkREnMe/Sjn6PdGS+BMpHIk+Q9qFTLzLe1I/LEDdLEVEREoJFXQiIqVcpZq+KuBERERKKXW5FBERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUUwu6N998k5CQECwWCxaLhcjISL7//nvH/tTUVB5++GEqVaqEr68v/fr149SpU84MSUREREREpNRwakFXq1YtZsyYwfbt29m2bRu33nord955J3v37gXgscce4+uvv2bp0qX89NNPnDx5kr59+zozJBERERERkVLD05kXv+OOO3K8njZtGm+++SZbtmyhVq1avPPOOyxZsoRbb70VgIULF9KkSRO2bNlC27ZtnRmaiIiIiIiI23NqQXc5m83G0qVLuXDhApGRkWzfvp2MjAy6dOniOKZx48bUqVOHzZs351vQpaWlkZaW5nidlJQEgGEYGIbh3IdwAdnPeSM8q7tQTlyPcuJ6lBPXo5y4HuXE9SgnrqU05aMon8HpBd3u3buJjIwkNTUVX19fPv/8c5o2bUp0dDReXl74+/vnOL5q1arExcXle73p06fz7LPP5tqemJhYKpJ7NYZhkJKSAoDJZCrhaASUE1eknLge5cT1KCeuRzlxPcqJaylN+chulCoKTi/ogoKCiI6OJjExkWXLljF06FB++umn677epEmTGD9+vON1UlIStWvXxmq1YrFYiiJkl5ZdtFqtVrf/j1xaKCeuRzlxPcqJ61FOXI9y4nqUE9dSmvJRlPE7vaDz8vKiYcOGALRs2ZKtW7fyn//8h4EDB5Kenk5CQkKOVrpTp05RrVq1fK/n7e2Nt7d3ru0mk8ntE1tQ2c96ozyvO1BOXI9y4nqUE9ejnLge5cT1KCeupbTkoyjjL/Z16Ox2O2lpabRs2ZIyZcqwZs0ax76YmBiOHz9OZGRkcYclIiIiIiLidpzaQjdp0iR69uxJnTp1SE5OZsmSJaxbt46VK1ditVoZMWIE48ePp2LFilgsFsaOHUtkZKRmuBQRERERESkApxZ0p0+fZsiQIfz1119YrVZCQkJYuXIlXbt2BWDmzJl4eHjQr18/0tLS6N69O/PmzXNmSCIiIiIiIqWGUwu6d95554r7fXx8mDt3LnPnznVmGCIiIiIiIqVSsY+hExERERERkaKhgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETelgk5ERERERMRNqaATERERERFxUyroRERERERE3JQKOhERERERETfl1IJu+vTptGrVCj8/P6pUqUKfPn2IiYnJcUxqaioPP/wwlSpVwtfXl379+nHq1ClnhiUiIiIiIlIqOLWg++mnn3j44YfZsmULq1atIiMjg27dunHhwgXHMY899hhff/01S5cu5aeffuLkyZP07dvXmWGJiIiIiIiUCp7OvPiKFStyvF60aBFVqlRh+/btdOzYkcTERN555x2WLFnCrbfeCsDChQtp0qQJW7ZsoW3bts4MT0RERERExK05taD7u8TERAAqVqwIwPbt28nIyKBLly6OYxo3bkydOnXYvHlzngVdWloaaWlpjtdJSUkAGIaBYRjODN8lZD/njfCs7kI5cT3KietRTlyPcuJ6lBPXo5y4ltKUj6J8hmIr6Ox2O+PGjaNdu3Y0a9YMgLi4OLy8vPD3989xbNWqVYmLi8vzOtOnT+fZZ5/NtT0xMbFUJPdqDMMgJSUFAJPJVMLRCCgnrkg5cT3KietRTlyPcuJ6lBPXUprykd0oVRSKraB7+OGH2bNnDxs3bizUdSZNmsT48eMdr5OSkqhduzZWqxWLxVLYMF1edtFqtVrd/j9yaaGcuB7lxPUoJ65HOXE9yonrUU5cS2nKR1HGXywF3ZgxY/jmm29Yv349tWrVcmyvVq0a6enpJCQk5GilO3XqFNWqVcvzWt7e3nh7e+fabjKZ3D6xBZX9rDfK87oD5cT1KCeuRzlxPcqJ61FOXI9y4lpKSz6KMn6nznJpGAZjxozh888/58cff6RevXo59rds2ZIyZcqwZs0ax7aYmBiOHz9OZGSkM0MTERERERFxe05toXv44YdZsmQJX375JX5+fo5xcVarlbJly2K1WhkxYgTjx4+nYsWKWCwWxo4dS2RkpGa4FBERERERuQqnFnRvvvkmALfcckuO7QsXLmTYsGEAzJw5Ew8PD/r160daWhrdu3dn3rx5zgxLRERERESkVHBqQVeQWSd9fHyYO3cuc+fOdWYoIiIiIiIipY5Tx9CJiIiIiIiI86igExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ERERERERNyUCjoRERERERE3pYJORERERETETamgExERERERcVMq6ESuwZdffkmTJk0ICwvDbDaTnJyc77GxsbH4+/sXX3AiIiIicsNRQSdyDebPn88zzzxDdHQ0NpsNPz+/kg5JRERERG5gKuhECuiRRx5hw4YNPPXUU0RFRWEymUhISMBut/PEE0/QtGlTQkNDadmyJampqY7zpkyZQsuWLWnYsCHfffddCT6BiIiIiJQ2KuhKgMlkYtq0abRp04bAwEC++OILpk+fTkREBDfddBPr1q1zHPvBBx8QEhJCSEgIvXr14sSJEwAsWrSIPn36OI775ptvuOWWWwA4ePAg7dq1IzQ0lObNmzN58mQAMjIymDhxIq1btyYsLIwBAwZw/vz54npstzdr1iwiIiKYOXMmmzZtcmzfuXMn69evZ8+ePezcuZMff/wRLy8vABITEwkJCWH79u3MmTOHxx57rKTCFxEREZFSSAVdCfH19eWXX37hnXfe4b777qN69eps27aNF198kSeeeAKAPXv28MQTT/D999+za9cuoqKieOCBB6567Tlz5nD77bezc+dOdu/ezfjx4wF45ZVXKF++PL/++ivR0dE5ij25fvXr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",
|
||
"text/plain": [
|
||
"<Figure size 900x700 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"def dibujar(XY, titulo):\n",
|
||
" plt.figure(figsize=(9, 7))\n",
|
||
" for g in GRUPOS:\n",
|
||
" idx = [i for i, e in enumerate(etiquetas) if e == g]\n",
|
||
" plt.scatter(XY[idx, 0], XY[idx, 1], s=60, label=g)\n",
|
||
" for i, w in enumerate(palabras):\n",
|
||
" plt.annotate(w, (XY[i, 0], XY[i, 1]), fontsize=8,\n",
|
||
" xytext=(4, 4), textcoords=\"offset points\")\n",
|
||
" plt.title(titulo); plt.legend(fontsize=8); plt.grid(alpha=0.2)\n",
|
||
" plt.tight_layout(); plt.show()\n",
|
||
"\n",
|
||
"dibujar(XY_pca, \"Embeddings proyectados con PCA\")\n",
|
||
"dibujar(XY_tsne, \"Embeddings proyectados con t-SNE\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 63,
|
||
"metadata": {
|
||
"id": "cd_45"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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nvQcBYDHHnsMra2tmDhxIqZOnYr7778fO3fuPGVcERER8PDwOOl/Pd2t/vjHP5406ayoqMCkSZOg0Zy8N/RQjvH47wfgWLt1dnbi8OHDpzy+48myjOeffx4JCQlwc3NDYGAggoKCsHPnzlO2cY93330XEydOxL333jvk/RONFRwTQeRi2tvbAeCU88Z7enpi7ty5mDt3LgIDA7FixQp89913uP7664e8zxPNiiKOGzB6umw2G8455xy0tLTggQcewOTJk+Hl5YW6ujosWbKk34V27zuNp7uN3mRZhiRJ+O677wY8Vm9v7zM+Rg8PD+Tl5WHNmjX45ptvsHr1anz00Uc466yz8MMPPzhk5pnExETs3bsXX3/9NVavXo3PPvsMr7zyCh555JEBB073dsUVV+CGG27Ajh07kJqaio8//hhnn302AgMD7evIsoxzzjkHf/jDHwbcRs8F9Eg7/t9Gz9/+3XffRWhoaL/1e18Q33PPPVi8eDFWrVqF77//Hg8//DCeeuop/Pzzz5g+ffoZx5afn48LLrgAOTk5eOWVVxAWFgatVot//vOfp6zlkpOTg4qKCnz55Zf44Ycf8I9//APPP/88XnvtNdx8880n/NxLL72E7u7uk25727ZteOmll5CdnY2kpKTTOrYeZ3KMw+HJJ5/Eww8/jBtvvBGPP/44AgICoFKpcM899ww6aT9y5AjCwsIcHCmRa2MSQeRi3n//fQDArFmzBv2ZnnXr6+sBHBuA/Z///AdtbW197qD3zIXeey724XB89wshBMrLy+1VeEtKSrBv3z68/fbbuO666+zrDWXWmTPZRlxcHIQQiI2NHfKF71DaUqVS4eyzz8bZZ5+N5557Dk8++SQeeughrFmzxn73frD73Lt3b7/lA+3Ty8sLl19+OS6//HKYzWZcfPHF+POf/4xly5bZZ54ZyEUXXYTbbrvN3qVp3759WLZsWZ914uLi0N7efsrY4+Li8P3336OlpeWkTyMG6toUFBQET0/PEx6vSqVCZGTkKfcPHJuhbDDtHBcXh/vuuw/33Xcf9u/fj9TUVDz77LN47733Tvo5WZZRWVnZ5xzat28fANgHZX/22Wdwd3fH999/Dzc3N/t6//znP08ZFwAEBATghhtuwA033ID29nbk5OTg0UcfPWkSccUVV5x0m8XFxbjvvvswZ84cfPvttyedEjcuLg6FhYWwWCzQarUDrjPUYxyoe9a+ffvg6emJoKCgE8Zyoq5wn376KebPn48333yzz/LW1tY+SfDJXHnllS45NTDRSGJ3JiIXUlBQgHvuuQc5OTm45JJL+r3/008/Dfi5nrEHPV1CfvnLX8Jms/WZqhMAnn/+eUiShEWLFg1r3O+88w7a2trsrz/99FPU19fb99NzF773kw0hBF544YVB7+NMtnHxxRdDrVZjxYoV/Z6uCCFw5MiRE352sG3Z0tLS77OpqakAjvVZH4pf/vKX2Lx5MzZu3Ghf1tHRgTfeeAMxMTH2O8nHx63T6ZCUlAQhBCwWy0n34efnh4ULF+Ljjz/Gv/71L+h0Olx00UV91rnsssuwceNGfP/99/0+39raCqvVCuDYjEdCiAGffvRuby8vL7S2tvZ5X61W4xe/+AW+/PLLPl2CGhsb8cEHHyA7Oxu+vr4nPZaFCxfC19cXTz755IDH3dNlprOzs98d+7i4OPj4+Az6b9T7PBBC4KWXXoJWq8XZZ59tPx5Jkvr09a+urh5Ukb3j/57e3t6Ij48f8vlzvOeeew4TJkzAd999169b3vF+/etfo7m5ud/5DvzvbznUY9y4cWOfsQoHDx7El19+iV/84hcnfUI30PnSs//j/x1/8sknqKurO9mh9XH55ZfbZzkjooHxSQSRi6irq8PFF1+M6OhofP755wP+uF544YWIjY3F4sWLERcXh46ODvznP//BV199hdmzZ2Px4sUAgMWLF2P+/Pl46KGHUF1djZSUFPzwww/48ssvcc899/QZRD0cAgICkJ2djRtuuAGNjY1YuXIl4uPjccsttwAAJk+ejLi4OPz+979HXV0dfH198dlnnw1pcOuZbCMuLg5PPPEEli1bhurqalx00UXw8fFBVVUVvvjiC9x66634/e9/P+BnB9uWjz32GPLy8nDeeechOjoaTU1NeOWVVzB+/Pg+A6QH449//CM+/PBDLFq0CHfffTcCAgLw9ttvo6qqCp999pm9q9cvfvELhIaGIisrCyEhISgtLcVLL72E884775QXi8CxC6lrrrkGr7zyChYuXNhvmtv7778f//73v3H++edjyZIlmDlzJjo6OlBSUoJPP/0U1dXVCAwMxPz583HttdfixRdfxP79+3HuuedClmXk5+dj/vz59sHIM2fOxH/+8x8899xzCA8PR2xs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0XHMZjNMJhOqqqrs/S979EwrJ4QY1JR7FovF0eESEZGD1NTUQAjhsNmReicQsbGxrCn0X2VlZaipqWFXYSfH7kxEx6moqIDVakVhYSGmTJkCX19fLFy4EOvWrcPOnTvR2tqKN954A1lZWQgPD8c999wDk8kEAFi7di38/Pzw6quvIioqCpmZmf22v2TJEtxzzz0A/tfV6d1330V8fDz8/PywZMkSJh9ERE6gsrISkiQhKipq2Ld9fAKRkJAw7PtwNUIIbNiwAQcOHIBGo8HcuXOZQDgxJhFEvbS2tmL//v1QqVRYt24d7rjjDvzzn/8EAPzud7+DSqXC008/jaioKFRUVKCkpATFxcV44okn7Ntoa2tDcXExysrKsG7dukHt97vvvkNRURH27NmDn376Ce+//75Djo+IiAanq6sLVqsVbm5uUKmG93KJCUR/PWMN29raoNPpkJub26cnADkfJhFE/yXLMkpLS9HV1QVJknDBBRcgNTUVKpUKF198MYqLiwEA5eXlePrpp+Hp6Ylx48bhwQcfxAcffNBnO//v//0/eHp6Drpa9SOPPAIfHx+Eh4fj3HPPxbZt2xxyjERENDilpaUAgGnTpg3rdplA9NfV1YV169bBYrEgKCgIubm5w5640fDjmAii/6qrq0NdXR38/f0BACEhIZAkCf7+/tDpdNBqtfj444/R2tqKgIAA++eEELDZbPbXPj4+8PPzG9K+ew8Y8/Lyss/kREREI08IgZaWFqjV6iF/n59M7wQiJiaGCQSAo0ePYtu2bYMea0jOg0kEEYDu7m6UlpZCpVLZH582Njba3zebzbBYLAgPD4der0dJSQkiIiIG3BbvnhARubbDhw9DluUTfs+fjuMTiIkTJw7btl3VwYMHUVZWBkmSkJqa6vBifjS8eLVDBGD//v04evRonztOX3/9NWpqamAymfD6668jOTkZEydOxLhx4/DEE0+gra0NQggcOHAA3333nXLBExHRsNq9ezcADNuFPhOIvoQQKCkpsd+8mzNnDhMIF8QnETQ2yTbgwAagvRFHZB9UVnXC29u7z1OERYsW4fHHH0ddXR3i4+Nx//33Izk5GV999RX+8pe/IDExEUajEVFRUbjtttsUPBgiIhouVqsVFosFWq0WWq12WLbXk0BER0czgRACeXl56O7uhlarxdy5c4elnWnkSUIIoXQQ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GXW9/Px88cMf/nAKKnQfixcvFnfffbftscViETExMeLpp5++6vI33XST+Pa3vz3suezsbHHnnXfKWqc7sre39vwNpq8AEO+9996Yy/z4xz8W8+bNG/bc9773PbF69WoZK3N/4+nt559/LgCIL774Ykpq8lQciZhCer0eoaGho75eWVkJk8mEVatW2Z5LSUlBfHw8ysvLp6JEj1dUVISIiAjMnj0bd911Fy5evOjsktzeqVOn0N7ePuy41el0yM7O5nE7RHl5OYKDg5GVlWV7btWqVVAoFKioqBhz3TfffBPTpk1DamoqHnroIfT19cldrssyGo2orKwcdrwpFAqsWrVq1OOtvLx82PIAsHr1ah6fV5hIbwGgp6cHCQkJiIuLww033IDa2tqpKNfj8biVX0ZGBqKjo/HNb34Te/bscXY5bkfl7AK8RWNjI1566SU899xzoy7T3t4OjUYz4jz0yMhInqfnAIWFhVi7di0SExNx4sQJPPzww7j22mtRXl4OpVLp7PLc1uCxGRkZOex5HrfDtbe3jxgqV6lUCA0NHbNPt956KxISEhATE4PDhw/jwQcfRENDA9599125S3ZJFy5cgMViuerxdvTo0auu097ezuNzHCbS29mzZ+MPf/gD0tLSoNfr8dxzzyE3Nxe1tbWYPn36VJTtsUY7bg0GAy5dugRfX18nVeb+oqOj8eqrryIrKwsDAwP43e9+h4KCAlRUVGDBggXOLs9tcCTCTlu3br3qxThDf678Y9vS0oLCwkLceOONuOOOO5xUueubSG/tcfPNN+P666/H/PnzsWbNGnz44YfYv38/ioqKHLcTLkru3nozuXu7efNmrF69GvPnz8f69evxxhtv4L333sOJEyccuBdEE5OTk4Pbb78dGRkZyM/Px7vvvovw8HD85je/cXZpRKOaPXs27rzzTixcuBC5ubn4wx/+gNzcXDz//PPOLs2tcCTCTvfffz82btw45jJJSUm2/25tbcWKFSuQm5uL1157bcz1oqKiYDQa0dXVNWw0oqOjA1FRUZMp2y3Y29vJSkpKwrRp09DY2IiVK1c67H1dkZy9HTw2Ozo6EB0dbXu+o6MDGRkZE3pPdzLe3kZFRY24ONVsNqOzs9Ou3+/s7GwAl0c3k5OT7a7X3U2bNg1KpXLErHVj/Z2Mioqya3lvNZHeXkmtViMzMxONjY1ylOhVRjtug4KCOAohg8WLF2P37t3OLsOtMETYKTw8HOHh4eNatqWlBStWrMDChQuxbds2KBRjD/wsXLgQarUau3btwrp16wBcnjmgubkZOTk5k67d1dnTW0c4e/YsLl68OOyDr6eSs7eJiYmIiorCrl27bKHBYDCgoqLC7tmz3NF4e5uTk4Ouri5UVlZi4cKFAIDPPvsMVqvVFgzGo7q6GgC84ri9Go1Gg4ULF2LXrl1Ys2YNAMBqtWLXrl245557rrpOTk4Odu3ahXvvvdf23KeffuoVf1ftMZHeXsliseDIkSO47rrrZKzUO+Tk5IyYipjHrXyqq6u99u/qhDn7ym5PdfbsWTFz5kyxcuVKcfbsWdHW1mb7GbrM7NmzRUVFhe25LVu2iPj4ePHZZ5+JAwcOiJycHJGTk+OMXXBpTU1N4uDBg+KJJ54QAQEB4uDBg+LgwYOiu7vbtszs2bPFu+++K4QQoru7W/znf/6nKC8vF6dOnRL//Oc/xYIFC8SsWbNEf3+/s3bDJdnbWyGE+MUvfiGCg4PF3/72N3H48GFxww03iMTERHHp0iVn7ILLKiwsFJmZmaKiokLs3r1bzJo1S9xyyy2216/8m9DY2Ch+9rOfiQMHDohTp06Jv/3tbyIpKUnk5eU5axdcwl/+8heh1WrF9u3bRV1dndi8ebMIDg4W7e3tQgghbrvtNrF161bb8nv27BEqlUo899xzor6+Xjz22GNCrVaLI0eOOGsXXJa9vX3iiSfEJ598Ik6cOCEqKyvFzTffLHx8fERtba2zdsFldXd32/6eAhC//OUvxcGDB0VTU5MQQoitW7eK2267zbb8yZMnhZ+fn3jggQdEfX29ePnll4VSqRQff/yxs3bBZdnb2+eff168//774vjx4+LIkSPihz/8oVAoFOKf//yns3bBLTFEyGTbtm0CwFV/Bp06dUoAEJ9//rntuUuXLol///d/FyEhIcLPz09897vfHRY86LINGzZctbdDewlAbNu2TQghRF9fn/jWt74lwsPDhVqtFgkJCeKOO+6w/cNIX7G3t0Jcnub1kUceEZGRkUKr1YqVK1eKhoaGqS/exV28eFHccsstIiAgQAQFBYl//dd/HRbOrvyb0NzcLPLy8kRoaKjQarVi5syZ4oEHHhB6vd5Je+A6XnrpJREfHy80Go1YvHix2Lt3r+21/Px8sWHDhmHLv/322+Kaa64RGo1GzJs3T/z973+f4ordhz29vffee23LRkZGiuuuu05UVVU5oWrXNzit6JU/g/3csGGDyM/PH7FORkaG0Gg0IikpadjfXfqKvb195plnRHJysvDx8RGhoaGioKBAfPbZZ84p3o1JQggh/3gHERERERF5Cs7OREREREREdmGIICIiIiIiuzBEEBERERGRXRgiiIiIiIjILgwRRERERERkF4YIIiIiIiKyC0MEERERERHZhSGCiIiIiIjswhBBRERERER2YYggIiIiIiK7MEQQEREREZFd/j+zpJN4iaO9GgAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 800x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Coseno medio entre desplazamientos país→capital: 0.510\n",
|
||
"(1.0 = perfectamente paralelos, 0.0 = ortogonales)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# La geometría de las analogías: país -> capital debería ser un vector casi constante\n",
|
||
"PAIS_CAPITAL = [(\"france\",\"paris\"), (\"germany\",\"berlin\"), (\"italy\",\"rome\"),\n",
|
||
" (\"spain\",\"madrid\"), (\"japan\",\"tokyo\"), (\"russia\",\"moscow\")]\n",
|
||
"\n",
|
||
"sub = [w for par in PAIS_CAPITAL for w in par if w in modelo.wv]\n",
|
||
"Xs = np.array([modelo.wv[w] for w in sub])\n",
|
||
"XYs = PCA(n_components=2, random_state=SEMILLA).fit_transform(Xs)\n",
|
||
"pos = {w: XYs[i] for i, w in enumerate(sub)}\n",
|
||
"\n",
|
||
"plt.figure(figsize=(8, 6))\n",
|
||
"for pais, cap in PAIS_CAPITAL:\n",
|
||
" if pais in pos and cap in pos:\n",
|
||
" plt.scatter(*pos[pais], color=\"tab:blue\"); plt.scatter(*pos[cap], color=\"tab:orange\")\n",
|
||
" plt.annotate(pais, pos[pais], fontsize=9, xytext=(4,4), textcoords=\"offset points\")\n",
|
||
" plt.annotate(cap, pos[cap], fontsize=9, xytext=(4,4), textcoords=\"offset points\")\n",
|
||
" plt.arrow(*pos[pais], *(pos[cap]-pos[pais]), length_includes_head=True,\n",
|
||
" head_width=0.06, alpha=0.5, color=\"gray\")\n",
|
||
"plt.title(\"¿Son paralelos los vectores país → capital?\")\n",
|
||
"plt.grid(alpha=0.2); plt.tight_layout(); plt.show()\n",
|
||
"\n",
|
||
"# Medida cuantitativa: coseno entre los vectores de desplazamiento\n",
|
||
"difs = np.array([modelo.wv[c] - modelo.wv[p] for p, c in PAIS_CAPITAL\n",
|
||
" if p in modelo.wv and c in modelo.wv])\n",
|
||
"difs_n = difs / np.linalg.norm(difs, axis=1, keepdims=True)\n",
|
||
"cos = difs_n @ difs_n.T\n",
|
||
"print(f\"Coseno medio entre desplazamientos país→capital: \"\n",
|
||
" f\"{(cos.sum()-len(cos))/(len(cos)**2-len(cos)):.3f}\")\n",
|
||
"print(\"(1.0 = perfectamente paralelos, 0.0 = ortogonales)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_46"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 8 · Ejercicio 8 — Sesgos aprendidos (20 pts junto a las preguntas)\n",
|
||
"\n",
|
||
"El modelo aprende todas las regularidades estadísticas del corpus, incluidos los estereotipos\n",
|
||
"presentes en el texto. No se trata de un defecto del algoritmo, sino de una propiedad de los\n",
|
||
"datos de entrenamiento. La cuestión es relevante en la práctica: estos vectores se han usado\n",
|
||
"como entrada en sistemas de cribado de currículos, moderación de contenidos y búsqueda.\n",
|
||
"\n",
|
||
"En este ejercicio el sesgo se mide, no solo se comenta.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 64,
|
||
"metadata": {
|
||
"id": "cd_47"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"man : doctor :: woman : ['nurse', 'child', 'midwives']\n",
|
||
"man : engineer :: woman : ['physician', 'architect', 'educator']\n",
|
||
"man : programmer :: woman : ['user', 'programmers', 'handler']\n",
|
||
"man : professor :: woman : ['lecturer', 'researcher', 'emeritus']\n",
|
||
"man : boss :: woman : ['prostitute', 'boyfriend', 'selina']\n",
|
||
"man : nurse :: woman : ['midwives', 'pregnant', 'midwife']\n",
|
||
"man : genius :: woman : ['bodybuilder', 'adolescent', 'fatale']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Analogías reveladoras: man : X :: woman : ?\n",
|
||
"for x in [\"doctor\", \"engineer\", \"programmer\", \"professor\", \"boss\", \"nurse\", \"genius\"]:\n",
|
||
" if x in modelo.wv:\n",
|
||
" r = analogia(\"man\", x, \"woman\", topn=3)\n",
|
||
" print(f\"man : {x:<11} :: woman : {[w for w, _ in r]}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 65,
|
||
"metadata": {
|
||
"id": "cd_48"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>palabra</th>\n",
|
||
" <th>proyeccion</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>engineer</td>\n",
|
||
" <td>0.060787</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>teacher</td>\n",
|
||
" <td>0.017524</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>surgeon</td>\n",
|
||
" <td>0.012540</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>scientist</td>\n",
|
||
" <td>0.005343</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>mechanic</td>\n",
|
||
" <td>-0.008503</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>carpenter</td>\n",
|
||
" <td>-0.019465</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>doctor</td>\n",
|
||
" <td>-0.048736</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>secretary</td>\n",
|
||
" <td>-0.064075</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>librarian</td>\n",
|
||
" <td>-0.078206</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>designer</td>\n",
|
||
" <td>-0.118456</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>10</th>\n",
|
||
" <td>programmer</td>\n",
|
||
" <td>-0.126157</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>11</th>\n",
|
||
" <td>pilot</td>\n",
|
||
" <td>-0.132322</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>12</th>\n",
|
||
" <td>housekeeper</td>\n",
|
||
" <td>-0.223932</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>13</th>\n",
|
||
" <td>nurse</td>\n",
|
||
" <td>-0.285991</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>14</th>\n",
|
||
" <td>dancer</td>\n",
|
||
" <td>-0.324133</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" palabra proyeccion\n",
|
||
"0 engineer 0.060787\n",
|
||
"1 teacher 0.017524\n",
|
||
"2 surgeon 0.012540\n",
|
||
"3 scientist 0.005343\n",
|
||
"4 mechanic -0.008503\n",
|
||
"5 carpenter -0.019465\n",
|
||
"6 doctor -0.048736\n",
|
||
"7 secretary -0.064075\n",
|
||
"8 librarian -0.078206\n",
|
||
"9 designer -0.118456\n",
|
||
"10 programmer -0.126157\n",
|
||
"11 pilot -0.132322\n",
|
||
"12 housekeeper -0.223932\n",
|
||
"13 nurse -0.285991\n",
|
||
"14 dancer -0.324133"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"def sesgo_direccional(palabras, par=(\"he\", \"she\")):\n",
|
||
" \"\"\"Proyecta cada palabra sobre la dirección (par[0] - par[1]).\n",
|
||
"\n",
|
||
" Valor > 0 -> más asociada a par[0]; < 0 -> más asociada a par[1].\n",
|
||
" Devuelve un DataFrame ordenado.\n",
|
||
" \"\"\"\n",
|
||
" a, b = par\n",
|
||
" eje = modelo.wv[a] - modelo.wv[b]\n",
|
||
" eje = eje / np.linalg.norm(eje)\n",
|
||
"\n",
|
||
" filas = []\n",
|
||
" for w in palabras:\n",
|
||
" v = modelo.wv[w]\n",
|
||
" v = v / np.linalg.norm(v)\n",
|
||
" proyeccion = float(np.dot(v, eje))\n",
|
||
" filas.append({\"palabra\": w, \"proyeccion\": proyeccion})\n",
|
||
"\n",
|
||
" df = pd.DataFrame(filas).sort_values(\"proyeccion\", ascending=False).reset_index(drop=True)\n",
|
||
" return df\n",
|
||
"\n",
|
||
"OCUPACIONES = [\"nurse\", \"doctor\", \"teacher\", \"engineer\", \"secretary\", \"programmer\",\n",
|
||
" \"librarian\", \"mechanic\", \"dancer\", \"scientist\", \"receptionist\",\n",
|
||
" \"carpenter\", \"designer\", \"surgeon\", \"housekeeper\", \"pilot\"]\n",
|
||
"df_sesgo = sesgo_direccional([w for w in OCUPACIONES if w in modelo.wv])\n",
|
||
"display(df_sesgo)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 66,
|
||
"metadata": {
|
||
"id": "cd_49"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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mPjcx28dOHBADBkyRFhaWgozMzPRp08fcefOHa1jxsTEiGbNmgljY2NRtWpVMW7cOPH777/newaoEGXn/Xzw4IGYOHGiqFOnjjA0NBSVK1cWLVq0EPPnz5ceN7Z582bRvn17UaVKFWFoaChq1Kghhg4dKlJTU/O/SU8p6n5JSUninXfeERYWFsLIyEg0adJEbN++XatN3iOjfvjhBzFx4kRRpUoVYWxsLDp37iyuXr2a7zzr169fYE1ZWVlizpw5on79+tJnw9vbW4SGhoq0tLRCz0cIIU6dOiV69uwprK2thVKpFI6OjqJXr14iKipKalPUx2/lnfuLvh4Keo5sUWspSF5/P/74o9b6K1euFPg1+7LHeVpRPgvP+z7+vPPfv3+/CAgIEGq1WhgZGYnatWuL/v37i+PHjxe5Lnp9FEKU0B0XRFQilixZgtGjRyM5ObnAO8SpfIiIiMCAAQMQFxfHP/NLOhEVFQV/f38cOnRI6zFlRHLCa2SJyhAhBL755hv4+PgwxBJRqcq7hvZ5l70QyQGvkSUqAzIzM7Ft2zbs378fp0+fxtatW3VdEhGVU5mZmVi/fj2WLFmC6tWrS49DI5IjBlmiMuDWrVv44IMPYGFhgc8//1y60YeIqKTdunULI0eOhLu7O8LDw1/p+ddEusZrZImIiIhIlvhjGBERERHJEoMsEREREckSgywRERERyRJv9pKZ3Nxc/PvvvzA3Ny/23/QmIiIiKuuEEHjw4AGqVq36wpsRGWRl5t9//4WDg4OuyyAiIiIqVdeuXUP16tULbcMgKzPm5uYAnry5KpVKx9UQERGVffHx8fDx8cGBAwfQsGFDXZdDL5Ceng4HBwcp8xSGQVZm8i4nUKlUDLJERERFYGZmJv2X/3bKR1EuoeTNXkREREQkSwyyRERERCRLDLJEREREJEsMskREREQkSwyyRERERCRLDLJEREREJEsMskREREQkSwyyRERERCRLDLJEREREJEsMskREREQkSwyyRERERCRLDLJEREREJEsMskREREQkSwyyRERERCRLDLJEREREJEsMskREREQkSwyyRERERCRLDLJEREREJEsMskREREQkSwyyRERERCRLlXRdABEREdHrcKXn2zA2MtJ1GbLmdv6crkvQwhlZIiIiIpIlBlkiIiIikiUGWSIiIiKSJQZZIiIiIpIlBlki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IipO1pH1jCwRERERVVwMskREREQkSwyyRERERCRLDLJEREREJEsMskREREQkS7L+gwhERERERVXz55/g5uWl6zKoBHFGloiIiIhkiUGWiIiIiGSJQZaIiIiIZIlBloiIiIhkiUGWiIiIiGSJQZaIiIiIZImP3yIiIqIK4UrPt2FsZPTS+7udP1eC1VBJ4IwsEREREckSgywRERERyRKDLBERERHJEoMsEREREckSgywRERERyRKDLBERERHJEoMsEREREclShQ+yWVlZui6BiIiIiF6CLIPs5s2b4e7uDmNjY1hbW8Pf3x+ZmZnw9fVFUFCQVtvu3bujf//+0rKTkxOmT5+OwMBAqFQqDBkyBACwevVqODg4wMTEBD169MDChQthYWGh1dfWrVvh5eUFIyMj1KpVC6GhocjOzpa2p6SkoFu3bjAzM4NKpUKvXr1w48YNaXtISAgaNmyIdevWwcnJCWq1Gu+//z4ePHhQ4mNEREREVN7JLsimpqaid+/e+Oijj3Du3DlER0ejZ8+eEEIUuY/58+ejQYMGOHXqFCZPnoyYmBh8/PHH+PTTTxEfH4927dph5syZWvscOnQIgYGB+PTTT3H27FmsWrUKERERUrvc3Fx069YNd+/exYEDB7Bnzx5cvnwZ7733nlY/SUlJ2LJlC7Zv347t27fjwIEDmD179qsPDBEREVEFI7s/UZuamors7Gz07NkTjo6OAAB3d/di9dG2bVuMHTtWWp40aRI6duyI4OBgAICLiwuOHDmC7du3S21CQ0MxYcIE9OvXDwBQq1YtTJ8+HePGjcPUqVMRFRWF06dP48qVK3BwcAAArF27FvXr10dcXBwaN24M4EngjYiIgLm5OQCgb9++iIqKyhec82g0Gmg0Gmk5PT29WOdKREREVF7Jbka2QYMG8PPzg7u7O959912sXr0a9+7dK1YfjRo10lq+cOECmjRporXu2eWEhARMmzYNZmZm0mvw4MFITU3Fw4cPce7cOTg4OEghFgDq1asHCwsLnDv3v7/N7OTkJIVYALC3t8fNmzefW2tYWBjUarX0erp/IiIioopMdkFWX18fe/bswa5du1CvXj0sXboUrq6uuHLlCvT09PJdYvD48eN8fZiamhb7uBkZGQgNDUV8fLz0On36NC5dugQjI6Mi92NgYKC1rFAokJub+9z2EydORFpamvS6du1asWsnIiIiKo9kd2kB8CT8tWzZEi1btsSUKVPg6OiIX375BTY2NkhNTZXa5eTk4MyZM3jzzTcL7c/V1RVxcXFa655d9vLywoULF1CnTp0C+3Bzc8O1a9dw7do1adb07NmzuH//PurVq/cypwkAUCqVUCqVL70/ERERUXkluyAbGxuLqKgotG/fHlWqVEFsbCxu3boFNzc3mJqaYsyYMdixYwdq166NhQsX4v79+y/sc+TIkWjTpg0WLlyIrl27Yt++fdi1axcUCoXUZsqUKejSpQtq1KiBd955B3p6ekhISMCZM2cwY8YM+Pv7w93dHX369MHixYuRnZ2NYcOGwcfHJ9+lDERERET06mR3aYFKpcLBgwfRqVMnuLi44IsvvsCCBQvQsWNHfPTRR+jXrx8CAwPh4+ODWrVqvXA2FgBatmyJlStXYuHChWjQoAF+++03jB49WuuSgYCAAGzfvh27d+9G48aN0axZMyxatEi64UyhUGDr1q2wtLREmzZt4O/vj1q1amHjxo2lNhZEREREFZlCFOe5VRXI4MGDcf78eRw6dEjXpWhJT0+HWq1GWloaVCqVrsshIiIq806ePAlvb29sdnRCvWLc1/Ist/PnXtyIXllxso7sLi0oLfPnz0e7du1gamqKXbt2ITIyEsuXL9d1WURERET0HAyy/+/YsWOYO3cuHjx4gFq1auHLL7/EoEGDdF0WERERET0Hg+z/27Rpk65LICIiIqJikN3NXkREREREAIMsEREREckUgywRERERyRKvkSUiIqIKoebPP8HNy0vXZVAJ4owsEREREckSgywRERERyRKDLBERERHJEoMsEREREckSgywRERERyRKfWkBEREQVwpWeb8PYyCjferfz53RQDZUEzsgSERERkSwxyBIRERGRLDHIEhEREZEsMcgSERERkSwxyBIRERGRLDHIEhEREZEsVYggq1AosGXLllI/TkREBCwsLEr9OERERERUQYJsamoqOnbsWKJ9Ojk5YfHixVrr3nvvPVy8eLFI+zP0EhEREb2aCvEHEezs7F7LcYyNjWFsbPxajkVERERU0clqRnbz5s1wd3eHsbExrK2t4e/vj8zMTADAt99+i/r160OpVMLe3h4jRoyQ9nv20oJr166hV69esLCwgJWVFbp164bk5GRpe//+/dG9e3fMnz8f9vb2sLa2xvDh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",
|
||
"text/plain": [
|
||
"<Figure size 700x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"try:\n",
|
||
" d = df_sesgo.sort_values(\"proyeccion\")\n",
|
||
" plt.figure(figsize=(7, 6))\n",
|
||
" colores = [\"tab:red\" if v > 0 else \"tab:blue\" for v in d[\"proyeccion\"]]\n",
|
||
" plt.barh(d[\"palabra\"], d[\"proyeccion\"], color=colores)\n",
|
||
" plt.axvline(0, color=\"black\", lw=1)\n",
|
||
" plt.xlabel(\"← más cercano a 'she' proyección más cercano a 'he' →\")\n",
|
||
" plt.title(\"Proyección de ocupaciones sobre el eje he–she\")\n",
|
||
" plt.tight_layout(); plt.show()\n",
|
||
"except NameError:\n",
|
||
" print(\"Completa el Ejercicio 8a primero.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 67,
|
||
"metadata": {
|
||
"id": "cd_50"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[OK] Ej8.a formato\n",
|
||
"[OK] Ej8.b orden\n",
|
||
"[OK] Ej8.c sanidad del eje\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# --- Verificación automática del Ejercicio 8 ---\n",
|
||
"def _t1():\n",
|
||
" d = sesgo_direccional([\"doctor\", \"nurse\"])\n",
|
||
" assert list(d.columns) == [\"palabra\", \"proyeccion\"], f\"columnas incorrectas: {list(d.columns)}\"\n",
|
||
"\n",
|
||
"def _t2():\n",
|
||
" d = sesgo_direccional([\"doctor\", \"nurse\", \"teacher\"])\n",
|
||
" assert d[\"proyeccion\"].is_monotonic_decreasing, \"el DataFrame debe estar ordenado descendente\"\n",
|
||
"\n",
|
||
"def _t3():\n",
|
||
" d = sesgo_direccional([\"he\", \"she\"])\n",
|
||
" assert d.iloc[0][\"palabra\"] == \"he\", \"'he' debe proyectar más alto que 'she' en su propio eje\"\n",
|
||
" assert d[\"proyeccion\"].abs().max() <= 1.01, \"una proyección de vectores unitarios está en [-1, 1]\"\n",
|
||
"\n",
|
||
"for n, f in [(\"Ej8.a formato\", _t1), (\"Ej8.b orden\", _t2), (\"Ej8.c sanidad del eje\", _t3)]:\n",
|
||
" test(n, f)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_51"
|
||
},
|
||
"source": [
|
||
"**Pregunta 6.** El sesgo que has medido está en el **corpus** (Wikipedia en inglés), no en\n",
|
||
"el código de Word2Vec. Discute:\n",
|
||
"\n",
|
||
"- (a) ¿Por qué \"quitar el sesgo\" de los vectores (*debiasing*) no resuelve el problema de fondo?\n",
|
||
"- (b) Un sistema que ordena CV usando estos embeddings: ¿en qué punto exacto se produce el daño?\n",
|
||
"- (c) La analogía `man : doctor :: woman : nurse` refleja una asociación estadística real del\n",
|
||
" texto. ¿Qué distingue \"describir el mundo\" de \"reproducir una injusticia\" en este caso?\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_52"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 9 · Preguntas de reflexión\n",
|
||
"\n",
|
||
"Responde en la celda de texto siguiente, con tres a seis frases por pregunta. Se valora el\n",
|
||
"razonamiento y el uso de los resultados que has obtenido, no la extensión.\n",
|
||
"\n",
|
||
"1. Relación entre la ley de Zipf y los parámetros `min_count` / `sample`.\n",
|
||
"2. ¿Qué relación semántica captura realmente la similitud coseno? (vecinos de `three` y `king`)\n",
|
||
"3. ¿Fallan más las analogías semánticas o las sintácticas? ¿Por qué?\n",
|
||
"4. CBOW vs Skip-gram: quién gana, a qué coste, y cómo cambiaría con más datos.\n",
|
||
"5. Por qué `window` pequeña da similitud sustituible y `window` grande similitud temática.\n",
|
||
"6. Sesgos: debiasing, punto de daño, describir vs reproducir.\n",
|
||
"7. Limitación fundamental: Word2Vec asigna un único vector por palabra. Busca en tu modelo los\n",
|
||
" vecinos de una palabra polisémica (`bank`, `apple`, `right`, `bat`) y explica qué le pasa a su\n",
|
||
" vector. ¿Cómo resuelven esto los modelos contextuales tipo BERT?\n",
|
||
"8. Coste y beneficio: has entrenado 100 dimensiones sobre 17 millones de palabras en minutos y sin GPU.\n",
|
||
" ¿En qué situaciones reales de 2026 seguirías eligiendo Word2Vec/FastText en lugar de un\n",
|
||
" modelo de embeddings basado en transformers?\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 68,
|
||
"metadata": {
|
||
"id": "cd_53"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"bank -> ['banks', 'monetary', 'fund', 'hsbc', 'loans', 'banking', 'bundesbank', 'cemac', 'commerzbank', 'funds']\n",
|
||
"apple -> ['macintosh', 'iigs', 'iic', 'amiga', 'hypercard', 'microsoft', 'ibm', 'intel', 'iie', 'wordperfect']\n",
|
||
"right -> ['left', 'arctan', 'prod', 'parenthesis', 'wingers', 'leaning', 'proviso', 'inalienable', 'fraca', 'subtree']\n",
|
||
"bat -> ['scooby', 'snail', 'saber', 'ox', 'darts', 'cock', 'leaping', 'snapping', 'flies', 'watermelon']\n",
|
||
"spring -> ['autumn', 'summer', 'winter', 'litha', 'lughnasadh', 'freeze', 'wintertime', 'autumnal', 'thunderstorm', 'torrential']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Celda de apoyo para la pregunta 7: explora una palabra polisémica\n",
|
||
"for p in [\"bank\", \"apple\", \"right\", \"bat\", \"spring\"]:\n",
|
||
" if p in modelo.wv:\n",
|
||
" print(f\"{p:<8} -> {[w for w, _ in modelo.wv.most_similar(p, topn=10)]}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_54"
|
||
},
|
||
"source": [
|
||
"### Respuestas\n",
|
||
"\n",
|
||
"**1.** La ley de Zipf muestra que unas pocas palabras concentran casi toda la masa de frecuencia (`the`: 1.061.396, `of`: 593.677, `and`: 416.629...) mientras que una cola enorme de tipos aparece casi nunca (118.519 de los 253.854 tipos del vocabulario bruto, ~47%, aparecen una sola vez). `min_count` ataca el extremo de baja frecuencia: descarta esos hápax porque no tienen suficientes co-ocurrencias para estimar un vector fiable (sería puro ruido y desperdicia cómputo). `sample` ataca el extremo opuesto: palabras como \"the\" o \"of\" co-ocurren con casi cualquier palabra, así que aportan poca señal discriminativa y, sin embargo, generarían la mayoría de los ~51 millones de pares centro-contexto estimados; el subsampling descarta parte de sus ocurrencias para que el entrenamiento se reparta hacia palabras más informativas.\n",
|
||
"\n",
|
||
"**2.** Los vecinos de `three` (four, five, two, six, seven, one, eight, zero, similitudes 0.90-0.98) no son sinónimos: son **co-hipónimos** intercambiables en la misma posición sintáctica (\"compré tres/cuatro/cinco gatos\"). Los vecinos de `king` (prince, pretender, queen, valdemar, kings, haakon, canute, stadtholder) tampoco son sinónimos de \"rey\": son palabras del mismo **campo semántico** (monarquía, títulos nobiliarios, nombres de reyes históricos). En ambos casos la similitud coseno de Word2Vec captura **relatedness** (co-ocurrencia en contextos parecidos) y, en el caso de los números, además **sustituibilidad sintáctica**; no captura sinonimia en sentido estricto.\n",
|
||
"\n",
|
||
"**3.** En la batería de 12 analogías, las **semánticas** (capitales, familia, química, cultura: france-paris-italy-rome, boy-brother-girl-sister, copper-cu-silver-ag, einstein-physics-picasso-painting) acertaron 3/7 (43%), mientras que las **sintácticas** (comparativos, gerundios, superlativos, plurales: good-better-bad-worse, mouse-mice-dog-dogs, man-he-woman-she) acertaron 3/5 (60%). Fallan más las semánticas. Hipótesis: las regularidades sintácticas (plural, comparativo, gerundio) se repiten en casi cualquier frase del corpus, así que se refuerzan con muchísimos ejemplos incluso con `window=5`; las relaciones semánticas factuales (una capital concreta, un símbolo químico, una asociación autor-obra) dependen de que esas entidades específicas aparezcan juntas con suficiente frecuencia, algo que un corpus de \"solo\" 17M de palabras y `min_count=5` no siempre garantiza para nombres propios poco frecuentes (de ahí errores como \"venice\" en vez de \"rome\", o \"ag\" fallando a \"mj\").\n",
|
||
"\n",
|
||
"**4.** En mi experimento (subcorpus de 4M tokens, 5 épocas) **gana CBOW**: entrena ~3.7 veces más rápido (6.9 s vs 25.5 s) y además obtiene mejor exactitud en este barrido puntual (acc@1 25.0% vs 16.7%; acc@5 41.7% vs 25.0%). Hay que ser cauto: la evaluación son solo 12 analogías, así que el margen es ruidoso. La literatura (y la tabla teórica de la Parte 2) predice que Skip-gram suele ganar en palabras raras y con poco dato porque genera más ejemplos de entrenamiento por posición (2·ventana vs 1), mientras que CBOW promedia el contexto y diluye la señal de las palabras infrecuentes. Con un corpus 100 veces mayor esperaría que Skip-gram se acerque o supere a CBOW, sobre todo si el interés está en el vocabulario de cola larga; si solo importan palabras muy frecuentes, CBOW seguiría siendo atractivo por su velocidad.\n",
|
||
"\n",
|
||
"**5.** Con `window=2`, los vecinos de \"paris\" son otras ciudades (zurich, bologna, venice, vienna, lyon, perth, dublin) y los de \"physics\" son otras disciplinas (mathematics, chemistry, mechanics, logic, geometry): palabras que ocupan la **misma posición local** en frases similares (\"la capital de ___\", \"estudió ___\"), es decir, son sustituibles entre sí. Con `window=10`, \"paris\" se acerca a palabras que comparten el **mismo artículo o tema** (sur, des, france, rodin, recherche, nuremberg — vocabulario relacionado con Francia/cultura francesa) y \"physics\" a conceptos específicos del campo (quantum, bose, condensates, electromagnetism, gravitation). La razón es que una ventana pequeña solo captura co-ocurrencias con las palabras inmediatamente adyacentes, que tienden a compartir función sintáctica; una ventana grande capta co-ocurrencias con todo lo que aparece en el mismo bloque de texto, que tiende a compartir tema aunque no sean intercambiables gramaticalmente.\n",
|
||
"\n",
|
||
"**6.**\n",
|
||
"- (a) El sesgo no vive en una sola dirección del espacio (como \"he-she\"): está distribuido de forma redundante en múltiples ejes correlacionados con género, y sobre todo está en los **datos** (la Wikipedia en inglés que usamos). Proyectar y anular una dirección dice \"he-she\" dejo intactas otras correlaciones (p. ej. nombres, pronombres implícitos, contextos ocupacionales) y no cambia el corpus ni las decisiones que llevaron a esa distribución de datos; es un parche cosmético sobre el vector, no una corrección del proceso que generó el sesgo.\n",
|
||
"- (b) El daño concreto se produce en el punto en que la asociación estadística se convierte en un **criterio operativo** sobre personas reales: un sistema de cribado de CV que usa estos embeddings como features y sistemáticamente puntúa más bajo currículos con vocabulario asociado a \"nurse\", \"housekeeper\" o \"dancer\" (que en mi medición del eje he–she quedaron con proyección muy negativa, -0.29, -0.22 y -0.32) está trasladando una regularidad de texto a una decisión de contratación, afectando oportunidades reales sin relación con el mérito individual.\n",
|
||
"- (c) \"Describir el mundo\" sería registrar honestamente que, en el corpus, \"nurse\" co-ocurre más con contextos femeninos que \"engineer\" (que en mi medición quedó ligeramente del lado \"he\", +0.06) — un hecho estadístico sobre el texto. \"Reproducir una injusticia\" ocurre cuando esa asociación se usa como señal predictiva o de ranking sobre individuos concretos (p. ej. penalizar el CV de una mujer con experiencia como \"programmer\", palabra que en mi medición también cayó del lado \"she\" con -0.13, de forma poco intuitiva y potencialmente arbitraria). La frontera está en si la correlación se limita a describir el corpus o se usa para decidir sobre personas.\n",
|
||
"\n",
|
||
"**7.** Al mirar los vecinos de palabras polisémicas se ve que Word2Vec les asigna **un único vector que mezcla (o promedia) sus sentidos**, dominado por el sentido más frecuente en el corpus: `bank` solo trae vecinos financieros (banks, monetary, fund, hsbc, loans, banking) y el sentido \"orilla de río\" no aparece; `apple` solo trae vecinos de computación (macintosh, iigs, amiga, microsoft, ibm) y el sentido \"fruta\" desaparece por completo, porque en Wikipedia (text8) predomina el uso tecnológico; `spring` es puramente estacional (autumn, summer, winter, thunderstorm) y no aparecen los sentidos \"muelle\" o \"manantial\". `right` es el caso más revelador: sus vecinos mezclan sentidos distintos sin resolverlos (left → dirección; wingers, leaning → política; inalienable, proviso → derecho/leyes; arctan, parenthesis → matemáticas), mostrando el vector como un promedio incoherente de varios significados. Los modelos contextuales tipo BERT resuelven esto porque no tienen \"un vector por palabra del vocabulario\": generan un vector distinto **cada vez que la palabra aparece**, calculado con atención sobre las palabras que realmente la rodean en esa oración concreta, de modo que \"bank\" en \"river bank\" y en \"bank account\" reciben representaciones diferentes.\n",
|
||
"\n",
|
||
"**8.** Entrené 100 dimensiones sobre 17 millones de palabras en ~2 minutos sin GPU (frente a minutos/horas y GPU obligatoria para obtener embeddings contextuales de un transformer). En 2026 seguiría eligiendo Word2Vec/FastText cuando: (i) el presupuesto de cómputo es bajo o no hay GPU disponible en producción; (ii) se necesitan vectores **estáticos** para búsqueda de similitud a gran escala o recomendación (millones de ítems, latencia de milisegundos, sin poder permitirse inferencia de un transformer por cada consulta); (iii) el dominio o idioma tiene pocos datos o no existe un modelo preentrenado de calidad (FastText además maneja morfología y palabras fuera de vocabulario mediante n-gramas de caracteres, algo crítico en idiomas flexivos); (iv) se quiere una feature simple e interpretable para un pipeline de ML clásico (clustering temático, expansión de consultas, features para un clasificador); o (v) el caso de uso no requiere desambiguar sentido por contexto (justamente la limitación que discutí en la pregunta 7), sino solo capturar relación temática gruesa. Para tareas que sí dependen de comprender el significado en contexto (NLU, QA, análisis de sentimiento fino) seguiría prefiriendo embeddings contextuales pese a su coste.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_55"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 11 · Ejercicio adicional: Skip-gram con Negative Sampling en PyTorch (+15 pts)\n",
|
||
"\n",
|
||
"gensim ejecuta el algoritmo en C optimizado, lo que oculta su funcionamiento. En esta parte se\n",
|
||
"implementa desde cero sobre un subcorpus reducido. El objetivo no es igualar la calidad de\n",
|
||
"gensim, sino obtener vecinos razonables para las palabras frecuentes.\n",
|
||
"\n",
|
||
"Función de pérdida:\n",
|
||
"\n",
|
||
"$$\\mathcal{L} = -\\log \\sigma(\\mathbf{v}_c \\cdot \\mathbf{u}_o) - \\sum_{k=1}^{K} \\log \\sigma(-\\mathbf{v}_c \\cdot \\mathbf{u}_{n_k})$$\n",
|
||
"\n",
|
||
"Distribución de muestreo del ruido: $P_n(w) \\propto f(w)^{0.75}$.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 69,
|
||
"metadata": {
|
||
"id": "cd_56"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"PyTorch 2.10.0a0+b4e4ee81d3.nv25.12 · dispositivo: cuda\n",
|
||
"Tokens: 600,000 · Vocabulario: 3,363\n",
|
||
"Tras subsampling: 310,408 tokens (52%)\n",
|
||
"Distribución de ruido lista.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import torch\n",
|
||
"import torch.nn as nn\n",
|
||
"import torch.nn.functional as F\n",
|
||
"\n",
|
||
"torch.manual_seed(SEMILLA)\n",
|
||
"dispositivo = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
|
||
"print(\"PyTorch\", torch.__version__, \"· dispositivo:\", dispositivo)\n",
|
||
"\n",
|
||
"# ---- Datos: subcorpus pequeño y vocabulario ----\n",
|
||
"tokens_extra = list(itertools.chain.from_iterable(frases[:60])) # ~600k tokens\n",
|
||
"frec_e = Counter(tokens_extra)\n",
|
||
"MIN_COUNT, VENTANA, DIM, K_NEG = 20, 3, 64, 5\n",
|
||
"\n",
|
||
"vocab = [w for w, c in frec_e.most_common() if c >= MIN_COUNT]\n",
|
||
"w2i = {w: i for i, w in enumerate(vocab)}\n",
|
||
"i2w = {i: w for w, i in w2i.items()}\n",
|
||
"V = len(vocab)\n",
|
||
"print(f\"Tokens: {len(tokens_extra):,} · Vocabulario: {V:,}\")\n",
|
||
"\n",
|
||
"# ---- Subsampling de Mikolov: P(descartar w) = 1 - sqrt(t/f(w)) ----\n",
|
||
"total = sum(frec_e[w] for w in vocab)\n",
|
||
"t_sub = 1e-3\n",
|
||
"p_keep = {w: min(1.0, np.sqrt(t_sub * total / frec_e[w])) for w in vocab}\n",
|
||
"rng = np.random.default_rng(SEMILLA)\n",
|
||
"ids = [w2i[w] for w in tokens_extra if w in w2i and rng.random() < p_keep[w]]\n",
|
||
"print(f\"Tras subsampling: {len(ids):,} tokens ({100*len(ids)/len(tokens_extra):.0f}%)\")\n",
|
||
"\n",
|
||
"# ---- Distribución de ruido f(w)^0.75 ----\n",
|
||
"frecs = np.array([frec_e[i2w[i]] for i in range(V)], dtype=np.float64)\n",
|
||
"p_ruido = frecs ** 0.75\n",
|
||
"p_ruido = torch.tensor(p_ruido / p_ruido.sum(), dtype=torch.float, device=dispositivo)\n",
|
||
"print(\"Distribución de ruido lista.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 70,
|
||
"metadata": {
|
||
"id": "cd_57"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"1,862,436 pares (centro, contexto)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# ---- Pares de entrenamiento (reutilizando la función del Ejercicio 2) ----\n",
|
||
"pares_e = generar_pares_skipgram(ids, ventana=VENTANA)\n",
|
||
"pares_e = np.array(pares_e, dtype=np.int64)\n",
|
||
"print(f\"{len(pares_e):,} pares (centro, contexto)\")\n",
|
||
"\n",
|
||
"centros_t = torch.tensor(pares_e[:, 0], device=dispositivo)\n",
|
||
"contextos_t = torch.tensor(pares_e[:, 1], device=dispositivo)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 71,
|
||
"metadata": {
|
||
"id": "cd_58"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"class SGNS(nn.Module):\n",
|
||
" \"\"\"Skip-gram con Negative Sampling: dos matrices de embeddings.\"\"\"\n",
|
||
"\n",
|
||
" def __init__(self, V, D):\n",
|
||
" super().__init__()\n",
|
||
" self.centro = nn.Embedding(V, D)\n",
|
||
" self.contexto = nn.Embedding(V, D)\n",
|
||
" nn.init.uniform_(self.centro.weight, -0.5 / D, 0.5 / D)\n",
|
||
" nn.init.zeros_(self.contexto.weight)\n",
|
||
"\n",
|
||
" def forward(self, centro, contexto, negativos):\n",
|
||
" \"\"\"\n",
|
||
" centro: (B,) índices de la palabra central\n",
|
||
" contexto: (B,) índices del contexto positivo\n",
|
||
" negativos: (B, K) índices de las muestras negativas\n",
|
||
" Devuelve la pérdida escalar promediada sobre el batch.\n",
|
||
" \"\"\"\n",
|
||
" v_c = self.centro(centro) # (B, D)\n",
|
||
" u_o = self.contexto(contexto) # (B, D)\n",
|
||
" u_neg = self.contexto(negativos) # (B, K, D)\n",
|
||
"\n",
|
||
" score_pos = torch.sum(v_c * u_o, dim=1) # (B,)\n",
|
||
" perdida_pos = F.logsigmoid(score_pos) # (B,)\n",
|
||
"\n",
|
||
" score_neg = torch.bmm(u_neg, v_c.unsqueeze(2)).squeeze(2) # (B, K)\n",
|
||
" perdida_neg = F.logsigmoid(-score_neg).sum(dim=1) # (B,)\n",
|
||
"\n",
|
||
" perdida = -(perdida_pos + perdida_neg)\n",
|
||
" return perdida.mean()\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 72,
|
||
"metadata": {
|
||
"id": "cd_59"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"época 1: pérdida media = 2.8387 (1.4 s)\n",
|
||
"época 2: pérdida media = 2.6126 (0.9 s)\n",
|
||
"época 3: pérdida media = 2.5235 (0.9 s)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 600x400 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"modelo_pt = SGNS(V, DIM).to(dispositivo)\n",
|
||
"optim = torch.optim.Adam(modelo_pt.parameters(), lr=2e-3)\n",
|
||
"\n",
|
||
"BATCH, EPOCAS_PT = 4096, 3\n",
|
||
"n = len(centros_t)\n",
|
||
"historial_pt = []\n",
|
||
"\n",
|
||
"for ep in range(1, EPOCAS_PT + 1):\n",
|
||
" perm = torch.randperm(n, device=dispositivo)\n",
|
||
" total_loss, nb, t0 = 0.0, 0, time.time()\n",
|
||
" for s in range(0, n, BATCH):\n",
|
||
" idx = perm[s:s + BATCH]\n",
|
||
" c, o = centros_t[idx], contextos_t[idx]\n",
|
||
" # muestreo de negativos según p_ruido\n",
|
||
" neg = torch.multinomial(p_ruido, len(idx) * K_NEG, replacement=True).view(len(idx), K_NEG)\n",
|
||
"\n",
|
||
" loss = modelo_pt(c, o, neg)\n",
|
||
" optim.zero_grad(); loss.backward(); optim.step()\n",
|
||
" total_loss += loss.item(); nb += 1\n",
|
||
" historial_pt.append(total_loss / nb)\n",
|
||
" print(f\"época {ep}: pérdida media = {total_loss/nb:.4f} ({time.time()-t0:.1f} s)\")\n",
|
||
"\n",
|
||
"plt.figure(figsize=(6, 4))\n",
|
||
"plt.plot(range(1, EPOCAS_PT + 1), historial_pt, marker=\"o\")\n",
|
||
"plt.xlabel(\"Época\"); plt.ylabel(\"Pérdida media\"); plt.title(\"SGNS en PyTorch\")\n",
|
||
"plt.grid(alpha=0.3); plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 73,
|
||
"metadata": {
|
||
"id": "cd_60"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"king -> [('honour', 0.92), ('commander', 0.917), ('colonel', 0.912), ('philip', 0.911), ('paris', 0.911), ('architect', 0.909), ('henry', 0.906), ('honor', 0.902)]\n",
|
||
"city -> [('town', 0.903), ('mississippi', 0.891), ('county', 0.888), ('denmark', 0.885), ('lake', 0.884), ('wales', 0.882), ('aalborg', 0.882), ('ankara', 0.88)]\n",
|
||
"war -> [('battles', 0.906), ('civil', 0.899), ('soldiers', 0.871), ('leaders', 0.871), ('confederacy', 0.869), ('nazi', 0.852), ('fought', 0.847), ('declared', 0.845)]\n",
|
||
"water -> [('polar', 0.929), ('fresh', 0.914), ('temperatures', 0.908), ('temperature', 0.903), ('low', 0.9), ('snow', 0.885), ('alkanes', 0.868), ('chain', 0.866)]\n",
|
||
"music -> [('cinema', 0.886), ('pop', 0.86), ('themes', 0.859), ('directors', 0.833), ('entertainment', 0.833), ('chart', 0.833), ('literature', 0.83), ('database', 0.829)]\n",
|
||
"\\nCompara estos vecinos con los de gensim sobre el corpus completo.\n",
|
||
"¿Qué explica la diferencia: el algoritmo, el volumen de datos, las épocas\n",
|
||
"o los detalles de implementación?\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Vecinos más cercanos calculados con los vectores obtenidos\n",
|
||
"E = modelo_pt.centro.weight.detach().cpu().numpy()\n",
|
||
"E_n = E / np.linalg.norm(E, axis=1, keepdims=True)\n",
|
||
"\n",
|
||
"def vecinos_pt(palabra, topn=8):\n",
|
||
" if palabra not in w2i:\n",
|
||
" return f\"'{palabra}' no está en el vocabulario de esta parte\"\n",
|
||
" sims = E_n @ E_n[w2i[palabra]]\n",
|
||
" orden = np.argsort(-sims)[1:topn + 1]\n",
|
||
" return [(i2w[i], round(float(sims[i]), 3)) for i in orden]\n",
|
||
"\n",
|
||
"for p in [\"king\", \"city\", \"war\", \"water\", \"music\"]:\n",
|
||
" print(f\"{p:<7} -> {vecinos_pt(p)}\")\n",
|
||
"\n",
|
||
"print(\"\\\\nCompara estos vecinos con los de gensim sobre el corpus completo.\")\n",
|
||
"print(\"¿Qué explica la diferencia: el algoritmo, el volumen de datos, las épocas\")\n",
|
||
"print(\"o los detalles de implementación?\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_61"
|
||
},
|
||
"source": [
|
||
"---\n",
|
||
"# Parte 10 · Guardar y entregar\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"id": "cd_62"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"word2vec_text8.model -> 59.5 MB\n",
|
||
"vectores_text8.txt -> 83.3 MB\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Guardar el modelo completo (se puede seguir entrenando) y solo los vectores (más ligero)\n",
|
||
"modelo.save(\"word2vec_text8.model\")\n",
|
||
"modelo.wv.save_word2vec_format(\"vectores_text8.txt\", binary=False)\n",
|
||
"\n",
|
||
"import os\n",
|
||
"for f in [\"word2vec_text8.model\", \"vectores_text8.txt\"]:\n",
|
||
" print(f, \"->\", f\"{os.path.getsize(f)/1e6:.1f} MB\")\n",
|
||
"\n",
|
||
"# Descomenta para descargar los vectores a tu ordenador:\n",
|
||
"# from google.colab import files\n",
|
||
"# files.download(\"vectores_text8.txt\")\n",
|
||
"\n",
|
||
"# Cómo recargarlos después:\n",
|
||
"# from gensim.models import KeyedVectors\n",
|
||
"# kv = KeyedVectors.load_word2vec_format(\"vectores_text8.txt\", binary=False)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "md_63"
|
||
},
|
||
"source": [
|
||
"### Comprobaciones antes de entregar\n",
|
||
"\n",
|
||
"- [ ] Todas las celdas se ejecutan **de arriba abajo sin errores** (`Entorno de ejecución → Reiniciar y ejecutar todo`).\n",
|
||
"- [ ] Todas las verificaciones automáticas devuelven `[OK]` (`[PENDIENTE]` indica ejercicio sin hacer).\n",
|
||
"- [ ] Las ocho preguntas de reflexión están respondidas en la Parte 9.\n",
|
||
"- [ ] Las gráficas se ven en el notebook guardado.\n",
|
||
"- [ ] El archivo se llama `word2vec_APELLIDO_NOMBRE.ipynb`.\n",
|
||
"\n",
|
||
"Entrega: `Archivo → Descargar → Descargar .ipynb` y subida al aula virtual.\n",
|
||
"\n",
|
||
"---\n",
|
||
"\n",
|
||
"### Referencias\n",
|
||
"\n",
|
||
"- Mikolov et al. (2013), *Efficient Estimation of Word Representations in Vector Space* — el artículo original.\n",
|
||
"- Mikolov et al. (2013), *Distributed Representations of Words and Phrases* — negative sampling y subsampling.\n",
|
||
"- Goldberg & Levy (2014), *word2vec Explained* — la derivación matemática paso a paso.\n",
|
||
"- Levy & Goldberg (2014), *Neural Word Embedding as Implicit Matrix Factorization* — por qué SGNS ≈ factorizar PMI.\n",
|
||
"- Bolukbasi et al. (2016), *Man is to Computer Programmer as Woman is to Homemaker* — sesgos.\n",
|
||
"- Continuación recomendada: FastText (n-gramas de caracteres, maneja palabras fuera de\n",
|
||
" vocabulario y morfología) y, después, embeddings contextuales.\n",
|
||
"\n",
|
||
"### Nota sobre reproducibilidad\n",
|
||
"\n",
|
||
"Aunque fijemos `seed`, gensim **solo es determinista con `workers=1`** (con varios hilos el orden\n",
|
||
"de las actualizaciones asíncronas varía). Con `workers=2` verás pequeñas diferencias entre\n",
|
||
"ejecuciones: eso es esperado y no es un error tuyo. Si necesitas resultados exactamente\n",
|
||
"reproducibles, usa `workers=1` (mucho más lento).\n"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"name": "laboratorio_word2vec",
|
||
"provenance": [],
|
||
"toc_visible": true
|
||
},
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.12.3"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0
|
||
}
|