{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "89488f9a",
   "metadata": {
    "id": "p6yklm2xWn9f"
   },
   "source": [
    "## Part I: Data Pre-processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6639e40c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:26.968729Z",
     "iopub.status.busy": "2026-10-04T12:58:26.968729Z",
     "iopub.status.idle": "2026-10-04T12:58:27.368768Z",
     "shell.execute_reply": "2026-10-04T12:58:27.368768Z"
    },
    "id": "YycoIJomXwqH"
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "65b3910d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.374881Z",
     "iopub.status.busy": "2026-10-04T12:58:27.373881Z",
     "iopub.status.idle": "2026-10-04T12:58:27.743149Z",
     "shell.execute_reply": "2026-10-04T12:58:27.743149Z"
    },
    "id": "KKAXuhZIUxD8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "downloaded questions-words.txt\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# 原本是 `!wget ...`。Windows 沒有 wget，改用 Python 內建的 urllib 下載同一個網址。\n",
    "import urllib.request\n",
    "urllib.request.urlretrieve(\"http://download.tensorflow.org/data/questions-words.txt\", \"questions-words.txt\")\n",
    "print(\"downloaded questions-words.txt\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "69cf9fc7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.748452Z",
     "iopub.status.busy": "2026-10-04T12:58:27.748452Z",
     "iopub.status.idle": "2026-10-04T12:58:27.761631Z",
     "shell.execute_reply": "2026-10-04T12:58:27.761631Z"
    },
    "id": "xue5pVFLVNQQ"
   },
   "outputs": [],
   "source": [
    "# Preprocess the dataset\n",
    "file_name = \"questions-words\"\n",
    "with open(f\"{file_name}.txt\", \"r\") as f:\n",
    "    data = f.read().splitlines()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b134e390",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.767683Z",
     "iopub.status.busy": "2026-10-04T12:58:27.767683Z",
     "iopub.status.idle": "2026-10-04T12:58:27.770065Z",
     "shell.execute_reply": "2026-10-04T12:58:27.770065Z"
    },
    "id": "h7dOdJOsZzAF"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ": capital-common-countries\n",
      "Athens Greece Baghdad Iraq\n",
      "Athens Greece Bangkok Thailand\n",
      "Athens Greece Beijing China\n",
      "Athens Greece Berlin Germany\n",
      "Athens Greece Bern Switzerland\n",
      "Athens Greece Cairo Egypt\n",
      "Athens Greece Canberra Australia\n",
      "Athens Greece Hanoi Vietnam\n",
      "Athens Greece Havana Cuba\n"
     ]
    }
   ],
   "source": [
    "# check data from the first 10 entries\n",
    "for entry in data[:10]:\n",
    "    print(entry)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "bdb5f1fe",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.775073Z",
     "iopub.status.busy": "2026-10-04T12:58:27.775073Z",
     "iopub.status.idle": "2026-10-04T12:58:27.782523Z",
     "shell.execute_reply": "2026-10-04T12:58:27.782523Z"
    },
    "id": "wmYQ0IWZZxf3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "19544 questions\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# TODO1: Write your code here for processing data to pd.DataFrame\n",
    "# Please note that the first five mentions of \": \" indicate `semantic`,\n",
    "# and the remaining nine belong to the `syntatic` category.\n",
    "questions, categories, sub_categories = [], [], []\n",
    "n_headers = 0          # 目前讀到第幾個 \": \" 標題\n",
    "current_sub = None     # 目前所在的小類，例如 \": capital-common-countries\"\n",
    "for line in data:\n",
    "    if line.startswith(\": \"):          # 這一行是小類標題，不是題目\n",
    "        n_headers += 1\n",
    "        current_sub = line\n",
    "        continue\n",
    "    questions.append(line)\n",
    "    categories.append(\"Semantic\" if n_headers <= 5 else \"Syntactic\")\n",
    "    sub_categories.append(current_sub)\n",
    "print(len(questions), \"questions\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "18f3b5db",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.787954Z",
     "iopub.status.busy": "2026-10-04T12:58:27.787954Z",
     "iopub.status.idle": "2026-10-04T12:58:27.793306Z",
     "shell.execute_reply": "2026-10-04T12:58:27.793306Z"
    },
    "id": "_bKA05rVZb_i"
   },
   "outputs": [],
   "source": [
    "# Create the dataframe\n",
    "df = pd.DataFrame(\n",
    "    {\n",
    "        \"Question\": questions,\n",
    "        \"Category\": categories,\n",
    "        \"SubCategory\": sub_categories,\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "6bf223a5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.799319Z",
     "iopub.status.busy": "2026-10-04T12:58:27.799319Z",
     "iopub.status.idle": "2026-10-04T12:58:27.812697Z",
     "shell.execute_reply": "2026-10-04T12:58:27.811690Z"
    },
    "id": "UN2FBcicZmpV"
   },
   "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>Question</th>\n",
       "      <th>Category</th>\n",
       "      <th>SubCategory</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Athens Greece Baghdad Iraq</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Athens Greece Bangkok Thailand</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Athens Greece Beijing China</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Athens Greece Berlin Germany</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Athens Greece Bern Switzerland</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         Question  Category                 SubCategory\n",
       "0      Athens Greece Baghdad Iraq  Semantic  : capital-common-countries\n",
       "1  Athens Greece Bangkok Thailand  Semantic  : capital-common-countries\n",
       "2     Athens Greece Beijing China  Semantic  : capital-common-countries\n",
       "3    Athens Greece Berlin Germany  Semantic  : capital-common-countries\n",
       "4  Athens Greece Bern Switzerland  Semantic  : capital-common-countries"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c8afd2b6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.817697Z",
     "iopub.status.busy": "2026-10-04T12:58:27.817697Z",
     "iopub.status.idle": "2026-10-04T12:58:27.843664Z",
     "shell.execute_reply": "2026-10-04T12:58:27.843160Z"
    },
    "id": "nMGvoDeiZhbp"
   },
   "outputs": [],
   "source": [
    "df.to_csv(f\"{file_name}.csv\", index=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ff68156",
   "metadata": {
    "id": "Zi2SNNuHWiZO"
   },
   "source": [
    "## Part II: Use pre-trained word embeddings\n",
    "- After finish Part I, you can run Part II code blocks only."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ff51b1cc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:27.849669Z",
     "iopub.status.busy": "2026-10-04T12:58:27.849669Z",
     "iopub.status.idle": "2026-10-04T12:58:29.706272Z",
     "shell.execute_reply": "2026-10-04T12:58:29.705676Z"
    },
    "id": "yB4rpJymXiSN"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import gensim.downloader\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.manifold import TSNE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "670ccb0b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:29.711979Z",
     "iopub.status.busy": "2026-10-04T12:58:29.711979Z",
     "iopub.status.idle": "2026-10-04T12:58:29.739004Z",
     "shell.execute_reply": "2026-10-04T12:58:29.739004Z"
    },
    "id": "-pGLoyKSHXuQ"
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"questions-words.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f0bc3b3b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:58:29.745109Z",
     "iopub.status.busy": "2026-10-04T12:58:29.744109Z",
     "iopub.status.idle": "2026-10-04T12:59:07.497208Z",
     "shell.execute_reply": "2026-10-04T12:59:07.496682Z"
    },
    "id": "YWa_1hF3aZHO"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Gensim model loaded successfully!\n"
     ]
    }
   ],
   "source": [
    "MODEL_NAME = \"glove-wiki-gigaword-100\"\n",
    "# You can try other models.\n",
    "# https://radimrehurek.com/gensim/models/word2vec.html#pretrained-models\n",
    "\n",
    "# Load the pre-trained model (using GloVe vectors here)\n",
    "model = gensim.downloader.load(MODEL_NAME)\n",
    "print(\"The Gensim model loaded successfully!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5d814a64",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T12:59:07.506722Z",
     "iopub.status.busy": "2026-10-04T12:59:07.506722Z",
     "iopub.status.idle": "2026-10-04T13:01:31.288777Z",
     "shell.execute_reply": "2026-10-04T13:01:31.288777Z"
    },
    "id": "YTsqJcP1WSTH"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 0/19544 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 7/19544 [00:00<04:53, 66.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 22/19544 [00:00<02:56, 110.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 36/19544 [00:00<02:38, 122.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 50/19544 [00:00<02:30, 129.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 64/19544 [00:00<02:29, 130.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 78/19544 [00:00<02:28, 131.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 92/19544 [00:00<02:26, 133.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 106/19544 [00:00<02:25, 134.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 120/19544 [00:00<02:23, 135.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 134/19544 [00:01<02:23, 135.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 148/19544 [00:01<02:22, 135.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 162/19544 [00:01<02:21, 136.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 176/19544 [00:01<02:21, 137.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 190/19544 [00:01<02:20, 137.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 204/19544 [00:01<02:21, 136.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 218/19544 [00:01<02:28, 130.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 232/19544 [00:01<02:29, 128.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 246/19544 [00:01<02:27, 131.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 260/19544 [00:01<02:26, 132.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 274/19544 [00:02<02:25, 132.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 288/19544 [00:02<02:24, 133.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 303/19544 [00:02<02:22, 135.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 317/19544 [00:02<02:24, 133.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 331/19544 [00:02<02:28, 129.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 345/19544 [00:02<02:26, 131.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 359/19544 [00:02<02:23, 133.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 373/19544 [00:02<02:21, 135.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 387/19544 [00:02<02:20, 136.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 401/19544 [00:03<02:21, 134.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 415/19544 [00:03<02:22, 134.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 429/19544 [00:03<02:25, 131.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 443/19544 [00:03<02:27, 129.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 457/19544 [00:03<02:26, 129.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 471/19544 [00:03<02:24, 132.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 485/19544 [00:03<02:23, 132.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 499/19544 [00:03<02:22, 133.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 513/19544 [00:03<02:20, 135.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 527/19544 [00:03<02:21, 134.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 541/19544 [00:04<02:20, 135.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 555/19544 [00:04<02:20, 135.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 569/19544 [00:04<02:20, 135.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 583/19544 [00:04<02:20, 134.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 597/19544 [00:04<02:20, 135.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 611/19544 [00:04<02:19, 136.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 625/19544 [00:04<02:17, 137.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 639/19544 [00:04<02:17, 137.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 653/19544 [00:04<02:17, 137.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 667/19544 [00:05<02:22, 132.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 682/19544 [00:05<02:20, 134.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 696/19544 [00:05<02:20, 134.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 710/19544 [00:05<02:18, 135.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 724/19544 [00:05<02:17, 136.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 738/19544 [00:05<02:16, 137.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 752/19544 [00:05<02:16, 137.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 766/19544 [00:05<02:20, 133.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 780/19544 [00:05<02:19, 134.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 794/19544 [00:05<02:18, 135.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 808/19544 [00:06<02:17, 135.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 822/19544 [00:06<02:18, 135.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 836/19544 [00:06<02:21, 132.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 851/19544 [00:06<02:18, 135.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 866/19544 [00:06<02:16, 136.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 880/19544 [00:06<02:16, 136.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 894/19544 [00:06<02:15, 137.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 909/19544 [00:06<02:15, 138.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 924/19544 [00:06<02:13, 139.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 939/19544 [00:07<02:13, 139.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 954/19544 [00:07<02:12, 140.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 969/19544 [00:07<02:13, 139.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 983/19544 [00:07<02:14, 138.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 998/19544 [00:07<02:13, 138.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1012/19544 [00:07<02:13, 138.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1026/19544 [00:07<02:18, 133.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1040/19544 [00:07<02:21, 130.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1054/19544 [00:07<02:23, 129.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1068/19544 [00:07<02:22, 129.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1082/19544 [00:08<02:20, 131.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1096/19544 [00:08<02:20, 131.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1110/19544 [00:08<02:21, 130.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1124/19544 [00:08<02:21, 130.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1138/19544 [00:08<02:22, 128.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1152/19544 [00:08<02:21, 130.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1166/19544 [00:08<02:19, 131.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1180/19544 [00:08<02:21, 129.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1193/19544 [00:08<02:22, 128.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1206/19544 [00:09<02:23, 128.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1220/19544 [00:09<02:21, 129.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1234/19544 [00:09<02:20, 130.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1248/19544 [00:09<02:29, 122.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1261/19544 [00:09<02:31, 120.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1274/19544 [00:09<02:30, 121.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1288/19544 [00:09<02:26, 124.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1301/19544 [00:09<02:25, 125.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1315/19544 [00:09<02:22, 128.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1329/19544 [00:10<02:21, 129.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1343/19544 [00:10<02:20, 129.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1357/19544 [00:10<02:20, 128.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1370/19544 [00:10<02:20, 129.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1383/19544 [00:10<02:23, 126.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1396/19544 [00:10<02:22, 127.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1409/19544 [00:10<02:22, 127.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1422/19544 [00:10<02:21, 127.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1435/19544 [00:10<02:24, 125.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1448/19544 [00:10<02:25, 124.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1462/19544 [00:11<02:22, 127.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1476/19544 [00:11<02:18, 130.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1490/19544 [00:11<02:15, 132.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1504/19544 [00:11<02:14, 133.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1519/19544 [00:11<02:11, 137.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1533/19544 [00:11<02:11, 137.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1548/19544 [00:11<02:10, 137.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1563/19544 [00:11<02:08, 139.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1577/19544 [00:11<02:08, 139.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1592/19544 [00:11<02:08, 140.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1607/19544 [00:12<02:08, 139.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1622/19544 [00:12<02:06, 141.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1637/19544 [00:12<02:08, 139.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1651/19544 [00:12<02:08, 139.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1666/19544 [00:12<02:06, 140.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1681/19544 [00:12<02:06, 141.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1696/19544 [00:12<02:06, 140.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1711/19544 [00:12<02:12, 134.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1725/19544 [00:12<02:12, 134.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1739/19544 [00:13<02:11, 135.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1753/19544 [00:13<02:10, 136.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1767/19544 [00:13<02:11, 135.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1781/19544 [00:13<02:10, 135.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1795/19544 [00:13<02:09, 136.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1809/19544 [00:13<02:10, 135.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1823/19544 [00:13<02:13, 133.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1837/19544 [00:13<02:11, 134.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1851/19544 [00:13<02:10, 135.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1865/19544 [00:13<02:09, 136.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1879/19544 [00:14<02:08, 137.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1893/19544 [00:14<02:08, 137.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1908/19544 [00:14<02:07, 138.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1922/19544 [00:14<02:08, 137.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1937/19544 [00:14<02:07, 138.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1952/19544 [00:14<02:05, 139.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1966/19544 [00:14<02:06, 138.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1981/19544 [00:14<02:06, 139.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1996/19544 [00:14<02:05, 140.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2011/19544 [00:15<02:06, 138.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2025/19544 [00:15<02:08, 136.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2040/19544 [00:15<02:07, 137.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2054/19544 [00:15<02:06, 138.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2068/19544 [00:15<02:06, 138.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2082/19544 [00:15<02:06, 138.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2096/19544 [00:15<02:06, 137.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2111/19544 [00:15<02:05, 139.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2126/19544 [00:15<02:04, 140.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2141/19544 [00:15<02:04, 140.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2156/19544 [00:16<02:07, 136.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2170/19544 [00:16<02:09, 133.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2184/19544 [00:16<02:18, 125.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2198/19544 [00:16<02:14, 128.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2213/19544 [00:16<02:10, 132.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2227/19544 [00:16<02:08, 134.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2241/19544 [00:16<02:07, 136.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2256/19544 [00:16<02:05, 138.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2270/19544 [00:16<02:05, 137.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2284/19544 [00:17<02:06, 136.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2298/19544 [00:17<02:08, 133.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2312/19544 [00:17<02:08, 133.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2327/19544 [00:17<02:06, 136.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2341/19544 [00:17<02:05, 136.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2355/19544 [00:17<02:15, 127.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2368/19544 [00:17<02:16, 126.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2382/19544 [00:17<02:13, 129.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2397/19544 [00:17<02:08, 133.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2411/19544 [00:18<02:11, 130.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2425/19544 [00:18<02:11, 130.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2439/19544 [00:18<02:08, 133.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2453/19544 [00:18<02:07, 134.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2467/19544 [00:18<02:07, 133.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2481/19544 [00:18<02:08, 133.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2495/19544 [00:18<02:07, 133.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2509/19544 [00:18<02:08, 133.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2523/19544 [00:18<02:12, 128.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2537/19544 [00:18<02:11, 129.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2551/19544 [00:19<02:11, 128.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2565/19544 [00:19<02:08, 131.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2579/19544 [00:19<02:07, 133.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2594/19544 [00:19<02:04, 135.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2609/19544 [00:19<02:03, 137.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2623/19544 [00:19<02:07, 132.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2637/19544 [00:19<02:06, 133.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2651/19544 [00:19<02:05, 134.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2665/19544 [00:19<02:04, 135.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2679/19544 [00:20<02:07, 132.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2693/19544 [00:20<02:08, 131.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2708/19544 [00:20<02:05, 134.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2722/19544 [00:20<02:05, 134.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2736/19544 [00:20<02:05, 134.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2750/19544 [00:20<02:04, 135.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2764/19544 [00:20<02:03, 136.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2779/19544 [00:20<02:02, 137.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2794/19544 [00:20<02:01, 138.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2809/19544 [00:20<01:59, 140.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2824/19544 [00:21<01:59, 139.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2838/19544 [00:21<02:00, 139.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2852/19544 [00:21<02:03, 135.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2866/19544 [00:21<02:02, 135.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2881/19544 [00:21<02:01, 137.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2895/19544 [00:21<02:01, 136.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2910/19544 [00:21<01:59, 139.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2924/19544 [00:21<02:01, 136.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2938/19544 [00:21<02:06, 130.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2952/19544 [00:22<02:05, 132.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2966/19544 [00:22<02:04, 133.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2980/19544 [00:22<02:02, 134.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2994/19544 [00:22<02:03, 134.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3008/19544 [00:22<02:02, 135.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3022/19544 [00:22<02:01, 135.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3036/19544 [00:22<02:00, 136.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3051/19544 [00:22<01:59, 137.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3065/19544 [00:22<01:59, 138.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3080/19544 [00:22<01:57, 139.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3095/19544 [00:23<01:56, 140.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3110/19544 [00:23<02:01, 135.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3124/19544 [00:23<02:01, 135.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3138/19544 [00:23<02:01, 134.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3152/19544 [00:23<02:01, 134.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3166/19544 [00:23<02:02, 133.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3180/19544 [00:23<02:01, 134.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3194/19544 [00:23<02:01, 135.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3208/19544 [00:23<02:00, 135.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3222/19544 [00:24<02:02, 132.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3236/19544 [00:24<02:02, 133.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3250/19544 [00:24<02:00, 135.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3265/19544 [00:24<01:58, 137.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3280/19544 [00:24<01:56, 139.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3294/19544 [00:24<01:58, 136.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3308/19544 [00:24<01:58, 137.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3322/19544 [00:24<01:57, 137.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3336/19544 [00:24<01:57, 137.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3350/19544 [00:24<01:59, 135.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3364/19544 [00:25<02:00, 134.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3378/19544 [00:25<02:01, 133.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3392/19544 [00:25<02:03, 130.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3406/19544 [00:25<02:08, 125.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3420/19544 [00:25<02:05, 128.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3434/19544 [00:25<02:03, 130.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3449/19544 [00:25<02:00, 133.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3464/19544 [00:25<01:58, 135.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3479/19544 [00:25<01:57, 137.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3494/19544 [00:26<01:56, 138.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3509/19544 [00:26<01:55, 138.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3523/19544 [00:26<01:55, 138.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3537/19544 [00:26<01:58, 135.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3551/19544 [00:26<02:00, 132.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3565/19544 [00:26<01:59, 133.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3579/19544 [00:26<01:58, 135.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3593/19544 [00:26<01:57, 136.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3607/19544 [00:26<01:56, 136.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3622/19544 [00:26<01:54, 138.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3637/19544 [00:27<01:53, 139.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3651/19544 [00:27<01:53, 139.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3666/19544 [00:27<01:52, 141.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3681/19544 [00:27<01:52, 140.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3696/19544 [00:27<01:52, 141.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3711/19544 [00:27<01:52, 140.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3726/19544 [00:27<01:52, 140.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3741/19544 [00:27<01:52, 140.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3756/19544 [00:27<01:51, 141.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3771/19544 [00:28<01:51, 141.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3786/19544 [00:28<01:51, 141.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3801/19544 [00:28<01:52, 140.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3816/19544 [00:28<01:58, 132.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3830/19544 [00:28<02:01, 129.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3844/19544 [00:28<01:58, 131.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3858/19544 [00:28<01:57, 133.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3872/19544 [00:28<01:56, 134.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3887/19544 [00:28<01:54, 137.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3902/19544 [00:29<01:52, 138.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3916/19544 [00:29<01:59, 130.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3930/19544 [00:29<02:06, 123.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3943/19544 [00:29<02:05, 124.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3957/19544 [00:29<02:02, 127.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3971/19544 [00:29<02:00, 129.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3984/19544 [00:29<02:00, 128.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3997/19544 [00:29<02:05, 123.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4011/19544 [00:29<02:02, 126.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4025/19544 [00:29<01:59, 129.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4039/19544 [00:30<01:58, 130.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4053/19544 [00:30<01:59, 129.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4068/19544 [00:30<01:56, 132.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4082/19544 [00:30<01:55, 134.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4096/19544 [00:30<01:55, 133.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4110/19544 [00:30<01:55, 134.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4125/19544 [00:30<01:53, 136.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4139/19544 [00:30<01:52, 136.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4154/19544 [00:30<01:50, 138.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4168/19544 [00:31<01:51, 137.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4182/19544 [00:31<01:52, 136.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4196/19544 [00:31<01:54, 133.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4210/19544 [00:31<01:57, 130.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4224/19544 [00:31<01:58, 129.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4238/19544 [00:31<01:57, 130.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4252/19544 [00:31<02:00, 126.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4266/19544 [00:31<01:58, 128.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4280/19544 [00:31<01:57, 129.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4294/19544 [00:32<01:55, 132.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4308/19544 [00:32<01:54, 133.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4322/19544 [00:32<01:55, 131.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4336/19544 [00:32<01:53, 133.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4351/19544 [00:32<01:51, 135.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4365/19544 [00:32<01:50, 136.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4379/19544 [00:32<01:50, 137.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4393/19544 [00:32<01:49, 138.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4408/19544 [00:32<01:49, 138.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4422/19544 [00:32<01:49, 138.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4436/19544 [00:33<01:49, 138.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4450/19544 [00:33<01:50, 137.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4464/19544 [00:33<01:58, 127.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4478/19544 [00:33<01:56, 129.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4492/19544 [00:33<01:59, 125.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4505/19544 [00:33<02:01, 123.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4519/19544 [00:33<01:59, 126.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4533/19544 [00:33<01:55, 130.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4547/19544 [00:33<01:58, 126.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4561/19544 [00:34<01:55, 129.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4575/19544 [00:34<01:55, 129.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4589/19544 [00:34<01:55, 129.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4603/19544 [00:34<01:55, 129.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4617/19544 [00:34<01:54, 130.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4631/19544 [00:34<01:52, 132.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4645/19544 [00:34<01:51, 133.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4659/19544 [00:34<01:50, 135.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4673/19544 [00:34<01:49, 136.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4687/19544 [00:34<01:49, 136.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4701/19544 [00:35<01:48, 136.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4715/19544 [00:35<01:48, 137.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4729/19544 [00:35<01:47, 137.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4743/19544 [00:35<01:47, 138.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4757/19544 [00:35<01:47, 137.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4771/19544 [00:35<01:46, 138.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4785/19544 [00:35<01:46, 138.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4800/19544 [00:35<01:45, 139.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4814/19544 [00:35<01:46, 138.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4828/19544 [00:36<01:46, 137.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4842/19544 [00:36<01:46, 137.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4857/19544 [00:36<01:45, 138.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4871/19544 [00:36<01:45, 138.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4886/19544 [00:36<01:45, 138.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4900/19544 [00:36<01:46, 137.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4915/19544 [00:36<01:44, 139.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4929/19544 [00:36<01:45, 138.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4943/19544 [00:36<01:48, 134.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4958/19544 [00:36<01:46, 136.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4972/19544 [00:37<01:48, 134.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 4986/19544 [00:37<01:47, 135.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5001/19544 [00:37<01:45, 137.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5015/19544 [00:37<01:45, 137.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5029/19544 [00:37<01:45, 137.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5043/19544 [00:37<01:45, 137.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5057/19544 [00:37<01:44, 137.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5071/19544 [00:37<01:45, 137.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5085/19544 [00:37<01:46, 136.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5099/19544 [00:37<01:47, 134.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5113/19544 [00:38<01:49, 131.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5127/19544 [00:38<01:50, 130.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5141/19544 [00:38<01:50, 129.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5154/19544 [00:38<01:50, 129.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5168/19544 [00:38<01:49, 130.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5182/19544 [00:38<01:50, 130.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5196/19544 [00:38<01:53, 126.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5209/19544 [00:38<01:53, 126.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5223/19544 [00:38<01:52, 127.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5236/19544 [00:39<01:51, 128.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5250/19544 [00:39<01:49, 130.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5264/19544 [00:39<01:48, 131.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5278/19544 [00:39<01:47, 133.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5292/19544 [00:39<01:45, 134.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5306/19544 [00:39<01:47, 132.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5320/19544 [00:39<01:47, 132.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5335/19544 [00:39<01:45, 135.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5349/19544 [00:39<01:48, 131.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5363/19544 [00:40<01:48, 131.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5377/19544 [00:40<01:47, 131.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5391/19544 [00:40<01:46, 132.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5405/19544 [00:40<01:45, 134.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5420/19544 [00:40<01:43, 137.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5435/19544 [00:40<01:41, 138.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5449/19544 [00:40<01:42, 137.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5463/19544 [00:40<01:41, 138.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5477/19544 [00:40<01:41, 138.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5492/19544 [00:40<01:40, 139.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5506/19544 [00:41<01:41, 137.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5520/19544 [00:41<01:42, 137.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5534/19544 [00:41<01:42, 136.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5548/19544 [00:41<01:41, 137.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5562/19544 [00:41<01:41, 138.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5576/19544 [00:41<01:41, 138.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5590/19544 [00:41<01:41, 137.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5604/19544 [00:41<01:41, 138.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5619/19544 [00:41<01:40, 138.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5633/19544 [00:41<01:42, 136.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5647/19544 [00:42<01:42, 134.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5661/19544 [00:42<01:41, 136.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5675/19544 [00:42<01:41, 136.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5689/19544 [00:42<01:40, 137.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5703/19544 [00:42<01:40, 138.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5718/19544 [00:42<01:38, 139.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5732/19544 [00:42<01:39, 138.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5746/19544 [00:42<01:39, 139.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5760/19544 [00:42<01:39, 138.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5775/19544 [00:42<01:38, 139.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5790/19544 [00:43<01:38, 140.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5804/19544 [00:43<01:39, 138.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5818/19544 [00:43<01:39, 138.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5832/19544 [00:43<01:39, 137.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5846/19544 [00:43<01:41, 135.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5860/19544 [00:43<01:43, 132.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5874/19544 [00:43<01:42, 133.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5888/19544 [00:43<01:42, 133.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5902/19544 [00:43<01:50, 123.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5915/19544 [00:44<01:50, 123.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5929/19544 [00:44<01:47, 126.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5943/19544 [00:44<01:44, 129.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5957/19544 [00:44<01:42, 132.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5971/19544 [00:44<01:41, 133.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5985/19544 [00:44<01:40, 135.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5999/19544 [00:44<01:40, 134.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6013/19544 [00:44<01:41, 133.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6028/19544 [00:44<01:39, 135.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6043/19544 [00:45<01:37, 138.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6058/19544 [00:45<01:35, 141.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6073/19544 [00:45<01:35, 140.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6088/19544 [00:45<01:39, 135.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6102/19544 [00:45<01:42, 131.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6116/19544 [00:45<01:42, 130.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6130/19544 [00:45<01:45, 127.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6143/19544 [00:45<01:49, 121.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6156/19544 [00:45<01:48, 123.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6169/19544 [00:45<01:47, 124.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6182/19544 [00:46<01:49, 122.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6195/19544 [00:46<01:48, 123.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6208/19544 [00:46<01:49, 122.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6222/19544 [00:46<01:44, 127.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6237/19544 [00:46<01:40, 132.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6252/19544 [00:46<01:38, 135.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6267/19544 [00:46<01:36, 137.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6282/19544 [00:46<01:34, 140.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6297/19544 [00:46<01:36, 137.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6311/19544 [00:47<01:37, 135.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6325/19544 [00:47<01:39, 132.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6339/19544 [00:47<01:40, 131.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6353/19544 [00:47<01:40, 131.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6367/19544 [00:47<01:39, 132.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6381/19544 [00:47<01:37, 134.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6395/19544 [00:47<01:40, 131.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6409/19544 [00:47<01:41, 129.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6423/19544 [00:47<01:40, 130.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6437/19544 [00:48<01:39, 131.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6451/19544 [00:48<01:39, 131.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6465/19544 [00:48<01:41, 129.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6479/19544 [00:48<01:39, 131.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6493/19544 [00:48<01:37, 133.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6507/19544 [00:48<01:37, 134.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6521/19544 [00:48<01:37, 133.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6535/19544 [00:48<01:38, 132.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6549/19544 [00:48<01:38, 131.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6563/19544 [00:48<01:39, 130.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6577/19544 [00:49<01:41, 128.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6590/19544 [00:49<01:42, 126.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6603/19544 [00:49<01:41, 127.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6618/19544 [00:49<01:38, 131.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6633/19544 [00:49<01:36, 134.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6648/19544 [00:49<01:34, 136.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6662/19544 [00:49<01:34, 136.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6676/19544 [00:49<01:37, 132.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6690/19544 [00:49<01:38, 130.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6704/19544 [00:50<01:40, 128.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6717/19544 [00:50<01:43, 123.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6730/19544 [00:50<01:43, 123.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6743/19544 [00:50<01:43, 123.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6756/19544 [00:50<01:42, 125.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6769/19544 [00:50<01:49, 116.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6783/19544 [00:50<01:44, 122.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6798/19544 [00:50<01:39, 127.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6813/19544 [00:50<01:35, 133.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6828/19544 [00:51<01:33, 136.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6842/19544 [00:51<01:33, 135.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6857/19544 [00:51<01:31, 138.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6872/19544 [00:51<01:30, 139.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6888/19544 [00:51<01:28, 142.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6903/19544 [00:51<01:28, 143.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6918/19544 [00:51<01:28, 142.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6933/19544 [00:51<01:28, 142.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6948/19544 [00:51<01:28, 142.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6963/19544 [00:51<01:30, 139.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6977/19544 [00:52<01:31, 137.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6991/19544 [00:52<01:32, 136.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7005/19544 [00:52<01:34, 133.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7019/19544 [00:52<01:35, 130.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7033/19544 [00:52<01:38, 127.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7046/19544 [00:52<01:38, 127.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7059/19544 [00:52<01:39, 125.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7073/19544 [00:52<01:38, 127.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7086/19544 [00:52<01:40, 124.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7099/19544 [00:53<01:43, 119.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7112/19544 [00:53<01:46, 116.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7124/19544 [00:53<01:47, 115.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7136/19544 [00:53<01:49, 113.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7148/19544 [00:53<01:51, 110.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7160/19544 [00:53<01:53, 108.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7171/19544 [00:53<01:55, 106.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7184/19544 [00:53<01:50, 112.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7197/19544 [00:53<01:46, 115.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7211/19544 [00:54<01:41, 122.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7224/19544 [00:54<01:39, 124.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7237/19544 [00:54<01:43, 118.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7249/19544 [00:54<01:46, 115.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7261/19544 [00:54<01:45, 116.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7274/19544 [00:54<01:43, 118.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7286/19544 [00:54<01:44, 117.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7299/19544 [00:54<01:41, 120.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7312/19544 [00:54<01:40, 121.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7325/19544 [00:55<01:40, 121.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7338/19544 [00:55<01:43, 117.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7352/19544 [00:55<01:39, 123.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7366/19544 [00:55<01:37, 125.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7379/19544 [00:55<01:39, 121.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7393/19544 [00:55<01:37, 125.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7407/19544 [00:55<01:33, 129.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7421/19544 [00:55<01:32, 130.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7435/19544 [00:55<01:31, 132.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7449/19544 [00:55<01:29, 134.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7463/19544 [00:56<01:29, 135.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7478/19544 [00:56<01:27, 137.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7492/19544 [00:56<01:28, 136.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7507/19544 [00:56<01:27, 137.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7521/19544 [00:56<01:28, 135.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7535/19544 [00:56<01:30, 132.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7549/19544 [00:56<01:30, 132.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7563/19544 [00:56<01:38, 121.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7576/19544 [00:56<01:41, 117.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7589/19544 [00:57<01:40, 118.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7602/19544 [00:57<01:39, 120.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7616/19544 [00:57<01:37, 122.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7630/19544 [00:57<01:35, 125.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7643/19544 [00:57<01:35, 125.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7656/19544 [00:57<01:34, 125.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7670/19544 [00:57<01:32, 128.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7684/19544 [00:57<01:31, 130.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7698/19544 [00:57<01:29, 133.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7712/19544 [00:58<01:27, 134.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7726/19544 [00:58<01:28, 133.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7740/19544 [00:58<01:27, 134.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7754/19544 [00:58<01:26, 135.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7768/19544 [00:58<01:26, 136.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7782/19544 [00:58<01:25, 137.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7796/19544 [00:58<01:25, 137.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7810/19544 [00:58<01:25, 136.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7824/19544 [00:58<01:26, 135.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7838/19544 [00:58<01:27, 133.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7852/19544 [00:59<01:27, 133.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7866/19544 [00:59<01:28, 131.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7880/19544 [00:59<01:28, 131.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7895/19544 [00:59<01:26, 134.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7909/19544 [00:59<01:29, 130.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7923/19544 [00:59<01:31, 127.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7937/19544 [00:59<01:29, 129.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7952/19544 [00:59<01:27, 133.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7966/19544 [00:59<01:26, 133.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7981/19544 [01:00<01:24, 136.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7995/19544 [01:00<01:26, 134.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8009/19544 [01:00<01:28, 130.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8023/19544 [01:00<01:29, 128.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8037/19544 [01:00<01:27, 131.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8051/19544 [01:00<01:26, 133.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8065/19544 [01:00<01:25, 134.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8079/19544 [01:00<01:24, 136.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8093/19544 [01:00<01:23, 137.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8108/19544 [01:00<01:22, 138.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8123/19544 [01:01<01:21, 139.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8138/19544 [01:01<01:21, 139.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8152/19544 [01:01<01:22, 138.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8166/19544 [01:01<01:22, 138.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8180/19544 [01:01<01:22, 137.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8194/19544 [01:01<01:22, 137.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8208/19544 [01:01<01:25, 132.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8222/19544 [01:01<01:24, 133.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8236/19544 [01:01<01:25, 132.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8250/19544 [01:02<01:25, 132.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8264/19544 [01:02<01:25, 131.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8278/19544 [01:02<01:24, 133.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8292/19544 [01:02<01:25, 132.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8306/19544 [01:02<01:25, 131.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8320/19544 [01:02<01:24, 132.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8334/19544 [01:02<01:25, 131.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8348/19544 [01:02<01:27, 128.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8362/19544 [01:02<01:25, 130.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8376/19544 [01:02<01:24, 131.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8390/19544 [01:03<01:23, 133.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8404/19544 [01:03<01:22, 135.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8418/19544 [01:03<01:22, 134.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8432/19544 [01:03<01:21, 135.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8447/19544 [01:03<01:20, 137.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8461/19544 [01:03<01:20, 137.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8475/19544 [01:03<01:20, 136.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8489/19544 [01:03<01:20, 137.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8503/19544 [01:03<01:21, 136.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8517/19544 [01:04<01:21, 136.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8532/19544 [01:04<01:20, 137.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8547/19544 [01:04<01:19, 138.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8562/19544 [01:04<01:18, 139.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8576/19544 [01:04<01:19, 138.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8590/19544 [01:04<01:22, 132.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8604/19544 [01:04<01:24, 130.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8618/19544 [01:04<01:26, 126.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8632/19544 [01:04<01:23, 130.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8647/19544 [01:04<01:21, 133.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8661/19544 [01:05<01:20, 135.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8675/19544 [01:05<01:19, 136.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8689/19544 [01:05<01:19, 136.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8703/19544 [01:05<01:19, 136.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8717/19544 [01:05<01:20, 133.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8732/19544 [01:05<01:19, 135.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8746/19544 [01:05<01:19, 135.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8760/19544 [01:05<01:19, 136.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8774/19544 [01:05<01:18, 136.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8788/19544 [01:06<01:18, 136.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8802/19544 [01:06<01:18, 136.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8816/19544 [01:06<01:18, 137.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8830/19544 [01:06<01:17, 137.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8844/19544 [01:06<01:17, 137.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8859/19544 [01:06<01:16, 139.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8873/19544 [01:06<01:16, 139.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8887/19544 [01:06<01:16, 138.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8901/19544 [01:06<01:16, 138.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8915/19544 [01:06<01:16, 138.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8929/19544 [01:07<01:17, 137.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8943/19544 [01:07<01:17, 137.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8957/19544 [01:07<01:16, 138.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8971/19544 [01:07<01:16, 138.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8985/19544 [01:07<01:17, 136.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8999/19544 [01:07<01:16, 137.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9014/19544 [01:07<01:15, 138.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9028/19544 [01:07<01:16, 137.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9042/19544 [01:07<01:20, 131.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9056/19544 [01:07<01:22, 127.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9069/19544 [01:08<01:22, 126.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9082/19544 [01:08<01:24, 124.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9095/19544 [01:08<01:23, 125.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9109/19544 [01:08<01:20, 129.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9123/19544 [01:08<01:19, 131.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9137/19544 [01:08<01:17, 133.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9152/19544 [01:08<01:16, 136.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9166/19544 [01:08<01:15, 136.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9180/19544 [01:08<01:15, 137.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9194/19544 [01:09<01:15, 137.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9208/19544 [01:09<01:14, 138.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9223/19544 [01:09<01:13, 139.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9238/19544 [01:09<01:13, 139.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9252/19544 [01:09<01:14, 139.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9266/19544 [01:09<01:13, 139.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9281/19544 [01:09<01:13, 139.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9295/19544 [01:09<01:14, 137.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9309/19544 [01:09<01:17, 132.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9323/19544 [01:09<01:17, 132.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9337/19544 [01:10<01:16, 133.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9352/19544 [01:10<01:15, 135.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9366/19544 [01:10<01:16, 133.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9380/19544 [01:10<01:16, 133.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9394/19544 [01:10<01:15, 134.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9408/19544 [01:10<01:16, 133.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9422/19544 [01:10<01:16, 131.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9436/19544 [01:10<01:15, 133.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9450/19544 [01:10<01:17, 130.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9464/19544 [01:11<01:15, 132.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9478/19544 [01:11<01:15, 134.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9493/19544 [01:11<01:13, 136.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9507/19544 [01:11<01:13, 137.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9521/19544 [01:11<01:13, 137.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9536/19544 [01:11<01:12, 138.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9551/19544 [01:11<01:11, 139.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9565/19544 [01:11<01:12, 137.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9579/19544 [01:11<01:13, 135.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9593/19544 [01:11<01:14, 134.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9607/19544 [01:12<01:14, 134.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9621/19544 [01:12<01:13, 134.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9635/19544 [01:12<01:13, 135.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9649/19544 [01:12<01:13, 134.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9663/19544 [01:12<01:13, 135.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9677/19544 [01:12<01:12, 136.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9691/19544 [01:12<01:13, 133.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9705/19544 [01:12<01:14, 132.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9719/19544 [01:12<01:13, 132.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9733/19544 [01:13<01:13, 133.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9747/19544 [01:13<01:13, 132.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9761/19544 [01:13<01:12, 134.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9775/19544 [01:13<01:12, 135.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9790/19544 [01:13<01:11, 137.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9804/19544 [01:13<01:11, 136.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9818/19544 [01:13<01:10, 137.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9832/19544 [01:13<01:10, 137.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9846/19544 [01:13<01:10, 137.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9860/19544 [01:13<01:11, 136.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9875/19544 [01:14<01:10, 137.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9889/19544 [01:14<01:11, 135.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9904/19544 [01:14<01:10, 137.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9919/19544 [01:14<01:09, 138.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9934/19544 [01:14<01:08, 139.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9948/19544 [01:14<01:08, 139.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9962/19544 [01:14<01:09, 138.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9976/19544 [01:14<01:09, 138.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9991/19544 [01:14<01:08, 139.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 10005/19544 [01:14<01:11, 133.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10019/19544 [01:15<01:12, 132.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10033/19544 [01:15<01:11, 133.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10048/19544 [01:15<01:09, 135.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10063/19544 [01:15<01:09, 137.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10078/19544 [01:15<01:08, 138.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10093/19544 [01:15<01:07, 139.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10107/19544 [01:15<01:09, 134.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10121/19544 [01:15<01:12, 130.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10135/19544 [01:15<01:11, 130.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10149/19544 [01:16<01:12, 129.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10162/19544 [01:16<01:14, 126.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10176/19544 [01:16<01:12, 129.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10190/19544 [01:16<01:10, 131.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10205/19544 [01:16<01:09, 134.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10219/19544 [01:16<01:08, 135.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10233/19544 [01:16<01:08, 136.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10248/19544 [01:16<01:07, 137.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10263/19544 [01:16<01:06, 139.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10277/19544 [01:17<01:06, 138.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10291/19544 [01:17<01:06, 138.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10305/19544 [01:17<01:06, 138.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10320/19544 [01:17<01:05, 140.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10335/19544 [01:17<01:05, 140.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10350/19544 [01:17<01:05, 140.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10365/19544 [01:17<01:05, 140.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10380/19544 [01:17<01:05, 140.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10395/19544 [01:17<01:05, 140.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10410/19544 [01:17<01:05, 140.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10425/19544 [01:18<01:05, 139.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10439/19544 [01:18<01:06, 137.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10453/19544 [01:18<01:07, 134.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10467/19544 [01:18<01:06, 135.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10482/19544 [01:18<01:05, 138.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10497/19544 [01:18<01:04, 140.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10512/19544 [01:18<01:04, 141.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10527/19544 [01:18<01:03, 141.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10542/19544 [01:18<01:04, 140.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10557/19544 [01:19<01:03, 141.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10572/19544 [01:19<01:04, 138.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10586/19544 [01:19<01:04, 138.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10601/19544 [01:19<01:04, 139.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10616/19544 [01:19<01:03, 140.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10631/19544 [01:19<01:03, 140.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10646/19544 [01:19<01:03, 140.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10661/19544 [01:19<01:04, 136.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10676/19544 [01:19<01:04, 138.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10690/19544 [01:19<01:03, 138.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10705/19544 [01:20<01:03, 140.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10720/19544 [01:20<01:05, 135.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10734/19544 [01:20<01:06, 132.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10748/19544 [01:20<01:07, 131.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10762/19544 [01:20<01:06, 131.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10776/19544 [01:20<01:05, 133.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10791/19544 [01:20<01:04, 135.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10806/19544 [01:20<01:03, 137.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10820/19544 [01:20<01:03, 136.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10834/19544 [01:21<01:04, 134.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10848/19544 [01:21<01:03, 136.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10862/19544 [01:21<01:03, 136.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10876/19544 [01:21<01:03, 137.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10890/19544 [01:21<01:02, 137.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10905/19544 [01:21<01:02, 138.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10919/19544 [01:21<01:02, 138.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10934/19544 [01:21<01:01, 139.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10948/19544 [01:21<01:03, 135.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10962/19544 [01:21<01:03, 134.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10976/19544 [01:22<01:04, 133.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10990/19544 [01:22<01:03, 133.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11004/19544 [01:22<01:03, 135.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11018/19544 [01:22<01:02, 135.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11032/19544 [01:22<01:02, 136.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11047/19544 [01:22<01:01, 137.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11061/19544 [01:22<01:01, 137.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11076/19544 [01:22<01:01, 138.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11091/19544 [01:22<01:00, 139.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11106/19544 [01:23<01:00, 139.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11121/19544 [01:23<01:00, 139.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11136/19544 [01:23<00:59, 140.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11151/19544 [01:23<01:01, 137.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11165/19544 [01:23<01:02, 134.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11179/19544 [01:23<01:01, 135.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11193/19544 [01:23<01:01, 135.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11207/19544 [01:23<01:01, 136.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11221/19544 [01:23<01:00, 137.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11235/19544 [01:23<01:00, 137.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11250/19544 [01:24<00:59, 138.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11264/19544 [01:24<00:59, 138.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11279/19544 [01:24<00:59, 139.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11294/19544 [01:24<00:58, 140.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11309/19544 [01:24<00:58, 141.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11324/19544 [01:24<00:57, 141.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11339/19544 [01:24<00:58, 141.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11354/19544 [01:24<00:58, 140.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11369/19544 [01:24<00:58, 140.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11384/19544 [01:25<00:57, 141.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11399/19544 [01:25<00:57, 140.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11414/19544 [01:25<00:57, 140.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11429/19544 [01:25<00:59, 136.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11443/19544 [01:25<01:01, 132.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11457/19544 [01:25<01:00, 133.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11472/19544 [01:25<00:59, 136.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11486/19544 [01:25<00:59, 136.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11501/19544 [01:25<00:58, 138.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11516/19544 [01:25<00:57, 139.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11530/19544 [01:26<00:58, 137.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11544/19544 [01:26<00:59, 134.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11558/19544 [01:26<00:58, 135.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11573/19544 [01:26<00:58, 137.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11588/19544 [01:26<00:57, 138.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11603/19544 [01:26<00:57, 139.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11618/19544 [01:26<00:56, 139.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11632/19544 [01:26<00:56, 139.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11646/19544 [01:26<00:56, 138.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11660/19544 [01:27<00:58, 135.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11674/19544 [01:27<00:58, 134.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11688/19544 [01:27<00:59, 133.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11702/19544 [01:27<00:58, 133.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11716/19544 [01:27<01:00, 129.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11729/19544 [01:27<01:01, 126.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11742/19544 [01:27<01:03, 123.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11755/19544 [01:27<01:07, 115.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11767/19544 [01:27<01:07, 114.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11780/19544 [01:28<01:06, 117.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11793/19544 [01:28<01:05, 118.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11807/19544 [01:28<01:03, 122.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11821/19544 [01:28<01:00, 127.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11835/19544 [01:28<00:58, 130.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11849/19544 [01:28<00:59, 129.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11863/19544 [01:28<00:58, 131.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11877/19544 [01:28<00:57, 132.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11891/19544 [01:28<00:57, 133.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11905/19544 [01:28<00:56, 135.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11919/19544 [01:29<00:55, 136.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11933/19544 [01:29<00:55, 137.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11947/19544 [01:29<00:55, 137.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11961/19544 [01:29<00:54, 138.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 11976/19544 [01:29<00:54, 138.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 11990/19544 [01:29<00:54, 137.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 12004/19544 [01:29<00:54, 137.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 12019/19544 [01:29<00:54, 138.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12033/19544 [01:29<00:54, 137.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12047/19544 [01:30<00:54, 137.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12061/19544 [01:30<00:55, 133.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12075/19544 [01:30<00:55, 134.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12089/19544 [01:30<00:55, 134.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12103/19544 [01:30<00:54, 135.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12117/19544 [01:30<00:56, 131.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12131/19544 [01:30<00:57, 129.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12145/19544 [01:30<00:56, 131.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12159/19544 [01:30<00:55, 133.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12173/19544 [01:30<00:54, 134.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12187/19544 [01:31<00:55, 133.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12201/19544 [01:31<00:56, 130.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▎   | 12215/19544 [01:31<00:57, 127.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12228/19544 [01:31<00:57, 127.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12242/19544 [01:31<00:55, 130.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12257/19544 [01:31<00:54, 134.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12272/19544 [01:31<00:52, 137.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12286/19544 [01:31<00:55, 130.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12300/19544 [01:31<00:57, 126.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12313/19544 [01:32<00:57, 125.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12326/19544 [01:32<00:58, 123.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12339/19544 [01:32<00:59, 120.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12352/19544 [01:32<00:59, 120.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12366/19544 [01:32<00:57, 125.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12380/19544 [01:32<00:55, 129.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12394/19544 [01:32<00:54, 132.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12408/19544 [01:32<00:53, 132.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12422/19544 [01:32<00:53, 133.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12436/19544 [01:32<00:52, 134.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12450/19544 [01:33<00:52, 135.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12464/19544 [01:33<00:52, 135.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12479/19544 [01:33<00:51, 137.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12493/19544 [01:33<00:51, 137.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12508/19544 [01:33<00:50, 138.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12522/19544 [01:33<00:51, 135.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12536/19544 [01:33<00:54, 129.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12549/19544 [01:33<00:54, 128.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12563/19544 [01:33<00:53, 130.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12577/19544 [01:34<00:52, 132.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12591/19544 [01:34<00:51, 134.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12605/19544 [01:34<00:51, 134.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12619/19544 [01:34<00:51, 135.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12633/19544 [01:34<00:51, 133.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12647/19544 [01:34<00:51, 132.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12661/19544 [01:34<00:52, 130.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12675/19544 [01:34<00:53, 127.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12688/19544 [01:34<00:54, 124.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12701/19544 [01:35<00:56, 121.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12714/19544 [01:35<00:56, 120.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12727/19544 [01:35<00:56, 120.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12740/19544 [01:35<00:55, 121.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12753/19544 [01:35<00:56, 121.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12767/19544 [01:35<00:54, 124.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12781/19544 [01:35<00:52, 128.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12794/19544 [01:35<00:52, 127.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12808/19544 [01:35<00:51, 129.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12821/19544 [01:35<00:52, 127.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12834/19544 [01:36<00:52, 127.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12847/19544 [01:36<00:52, 127.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12861/19544 [01:36<00:51, 129.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12875/19544 [01:36<00:51, 130.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12889/19544 [01:36<00:53, 123.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12902/19544 [01:36<00:56, 118.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12916/19544 [01:36<00:53, 123.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12930/19544 [01:36<00:51, 127.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12944/19544 [01:36<00:50, 130.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12958/19544 [01:37<00:50, 131.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12972/19544 [01:37<00:50, 130.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12986/19544 [01:37<00:49, 132.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13000/19544 [01:37<00:48, 134.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13015/19544 [01:37<00:47, 136.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13030/19544 [01:37<00:46, 139.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13045/19544 [01:37<00:46, 141.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13060/19544 [01:37<00:46, 140.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13075/19544 [01:37<00:45, 141.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13090/19544 [01:37<00:46, 137.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13105/19544 [01:38<00:45, 140.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13120/19544 [01:38<00:45, 140.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13135/19544 [01:38<00:45, 141.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13150/19544 [01:38<00:44, 142.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13165/19544 [01:38<00:44, 142.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13180/19544 [01:38<00:44, 143.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13195/19544 [01:38<00:44, 143.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13210/19544 [01:38<00:44, 142.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13225/19544 [01:38<00:46, 135.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13240/19544 [01:39<00:45, 138.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13254/19544 [01:39<00:46, 134.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13268/19544 [01:39<00:48, 130.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13282/19544 [01:39<00:48, 128.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13296/19544 [01:39<00:47, 130.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13310/19544 [01:39<00:47, 132.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13325/19544 [01:39<00:46, 134.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13339/19544 [01:39<00:45, 136.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13354/19544 [01:39<00:44, 138.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13369/19544 [01:40<00:43, 140.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13384/19544 [01:40<00:44, 138.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13399/19544 [01:40<00:43, 139.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13414/19544 [01:40<00:43, 140.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13429/19544 [01:40<00:43, 141.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13444/19544 [01:40<00:43, 140.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13459/19544 [01:40<00:44, 137.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13473/19544 [01:40<00:44, 135.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13487/19544 [01:40<00:44, 135.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13501/19544 [01:40<00:45, 133.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13516/19544 [01:41<00:44, 135.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13531/19544 [01:41<00:43, 138.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13546/19544 [01:41<00:42, 140.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13561/19544 [01:41<00:42, 140.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13576/19544 [01:41<00:42, 141.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13591/19544 [01:41<00:42, 140.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13606/19544 [01:41<00:43, 137.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13620/19544 [01:41<00:42, 137.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13635/19544 [01:41<00:42, 138.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13650/19544 [01:42<00:42, 139.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13664/19544 [01:42<00:42, 139.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13678/19544 [01:42<00:42, 138.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13693/19544 [01:42<00:41, 140.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13708/19544 [01:42<00:41, 140.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13723/19544 [01:42<00:41, 141.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13738/19544 [01:42<00:41, 141.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13753/19544 [01:42<00:40, 141.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13768/19544 [01:42<00:40, 142.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13783/19544 [01:42<00:40, 143.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13798/19544 [01:43<00:39, 145.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13813/19544 [01:43<00:40, 142.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13828/19544 [01:43<00:40, 142.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13843/19544 [01:43<00:39, 143.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13858/19544 [01:43<00:39, 144.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13873/19544 [01:43<00:38, 145.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13888/19544 [01:43<00:40, 141.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13903/19544 [01:43<00:39, 141.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13918/19544 [01:43<00:39, 140.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13933/19544 [01:44<00:41, 135.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13947/19544 [01:44<00:42, 130.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13962/19544 [01:44<00:41, 133.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 13978/19544 [01:44<00:40, 138.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 13994/19544 [01:44<00:38, 142.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14010/19544 [01:44<00:38, 144.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14025/19544 [01:44<00:37, 145.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14040/19544 [01:44<00:37, 146.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14055/19544 [01:44<00:37, 147.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14070/19544 [01:44<00:37, 146.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14085/19544 [01:45<00:37, 146.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14100/19544 [01:45<00:36, 147.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14116/19544 [01:45<00:36, 148.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14131/19544 [01:45<00:36, 148.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14146/19544 [01:45<00:36, 148.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14162/19544 [01:45<00:36, 149.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14177/19544 [01:45<00:36, 148.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14192/19544 [01:45<00:36, 147.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14207/19544 [01:45<00:36, 145.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14222/19544 [01:46<00:36, 144.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14237/19544 [01:46<00:38, 138.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14251/19544 [01:46<00:38, 139.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14266/19544 [01:46<00:37, 141.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14281/19544 [01:46<00:37, 141.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14296/19544 [01:46<00:37, 141.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14311/19544 [01:46<00:38, 134.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14325/19544 [01:46<00:39, 131.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14339/19544 [01:46<00:40, 127.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14352/19544 [01:47<00:42, 122.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14365/19544 [01:47<00:42, 122.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14380/19544 [01:47<00:39, 129.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14395/19544 [01:47<00:38, 133.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14410/19544 [01:47<00:37, 137.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14425/19544 [01:47<00:36, 139.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14440/19544 [01:47<00:37, 137.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14454/19544 [01:47<00:37, 134.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14468/19544 [01:47<00:38, 133.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14482/19544 [01:47<00:38, 132.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14496/19544 [01:48<00:37, 134.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14511/19544 [01:48<00:36, 136.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14526/19544 [01:48<00:36, 137.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14541/19544 [01:48<00:36, 138.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14555/19544 [01:48<00:36, 138.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14569/19544 [01:48<00:36, 138.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14583/19544 [01:48<00:35, 138.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14597/19544 [01:48<00:35, 137.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14612/19544 [01:48<00:35, 139.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14626/19544 [01:49<00:35, 138.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14640/19544 [01:49<00:35, 136.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14654/19544 [01:49<00:36, 134.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14668/19544 [01:49<00:36, 133.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14682/19544 [01:49<00:36, 133.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14697/19544 [01:49<00:35, 136.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14712/19544 [01:49<00:34, 138.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14727/19544 [01:49<00:34, 141.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14742/19544 [01:49<00:34, 138.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14757/19544 [01:49<00:34, 138.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14772/19544 [01:50<00:33, 140.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14787/19544 [01:50<00:33, 141.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14802/19544 [01:50<00:33, 141.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14817/19544 [01:50<00:33, 142.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14832/19544 [01:50<00:33, 142.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14847/19544 [01:50<00:33, 140.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14862/19544 [01:50<00:33, 139.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14876/19544 [01:50<00:34, 135.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14891/19544 [01:50<00:33, 136.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14906/19544 [01:51<00:33, 138.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14921/19544 [01:51<00:32, 140.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14936/19544 [01:51<00:33, 138.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14950/19544 [01:51<00:33, 135.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14965/19544 [01:51<00:33, 138.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14979/19544 [01:51<00:32, 139.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14994/19544 [01:51<00:32, 140.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15009/19544 [01:51<00:32, 139.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15024/19544 [01:51<00:31, 141.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15039/19544 [01:51<00:31, 142.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15054/19544 [01:52<00:32, 139.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15069/19544 [01:52<00:31, 140.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15084/19544 [01:52<00:31, 140.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15099/19544 [01:52<00:31, 143.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15114/19544 [01:52<00:31, 142.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15129/19544 [01:52<00:31, 139.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15144/19544 [01:52<00:31, 140.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15159/19544 [01:52<00:31, 140.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15174/19544 [01:52<00:31, 139.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15188/19544 [01:53<00:31, 138.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15202/19544 [01:53<00:32, 132.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15216/19544 [01:53<00:33, 127.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15229/19544 [01:53<00:33, 128.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15243/19544 [01:53<00:33, 128.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15257/19544 [01:53<00:32, 131.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15271/19544 [01:53<00:32, 131.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15285/19544 [01:53<00:32, 130.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15299/19544 [01:53<00:32, 130.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15313/19544 [01:54<00:31, 132.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15328/19544 [01:54<00:30, 137.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15342/19544 [01:54<00:31, 131.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15356/19544 [01:54<00:32, 129.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15369/19544 [01:54<00:32, 129.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15383/19544 [01:54<00:31, 132.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15397/19544 [01:54<00:30, 133.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15411/19544 [01:54<00:30, 135.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15426/19544 [01:54<00:29, 139.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15441/19544 [01:54<00:29, 140.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15456/19544 [01:55<00:29, 139.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15471/19544 [01:55<00:28, 140.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15486/19544 [01:55<00:28, 141.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15501/19544 [01:55<00:28, 142.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15516/19544 [01:55<00:28, 143.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15531/19544 [01:55<00:27, 145.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15546/19544 [01:55<00:27, 145.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15561/19544 [01:55<00:27, 145.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15576/19544 [01:55<00:26, 147.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15591/19544 [01:56<00:26, 147.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15606/19544 [01:56<00:26, 147.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15621/19544 [01:56<00:26, 146.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15636/19544 [01:56<00:26, 146.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15651/19544 [01:56<00:27, 142.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15666/19544 [01:56<00:28, 138.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15681/19544 [01:56<00:27, 140.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15696/19544 [01:56<00:27, 139.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15711/19544 [01:56<00:27, 141.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15726/19544 [01:56<00:26, 142.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15741/19544 [01:57<00:26, 142.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15756/19544 [01:57<00:26, 140.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15771/19544 [01:57<00:27, 136.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15785/19544 [01:57<00:27, 135.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15800/19544 [01:57<00:27, 136.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15816/19544 [01:57<00:26, 140.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15831/19544 [01:57<00:25, 143.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15846/19544 [01:57<00:25, 144.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15861/19544 [01:57<00:25, 145.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15876/19544 [01:58<00:25, 144.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15891/19544 [01:58<00:25, 145.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15906/19544 [01:58<00:24, 145.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15921/19544 [01:58<00:25, 144.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15936/19544 [01:58<00:25, 142.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15951/19544 [01:58<00:24, 143.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15966/19544 [01:58<00:24, 143.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15981/19544 [01:58<00:25, 142.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15996/19544 [01:58<00:24, 143.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16011/19544 [01:58<00:24, 142.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16026/19544 [01:59<00:24, 140.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16041/19544 [01:59<00:25, 139.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16055/19544 [01:59<00:25, 138.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16069/19544 [01:59<00:25, 137.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16084/19544 [01:59<00:24, 139.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16098/19544 [01:59<00:25, 137.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16113/19544 [01:59<00:24, 139.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16127/19544 [01:59<00:24, 139.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16142/19544 [01:59<00:24, 141.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16157/19544 [02:00<00:23, 141.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16172/19544 [02:00<00:23, 140.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16187/19544 [02:00<00:23, 141.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16202/19544 [02:00<00:24, 136.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16216/19544 [02:00<00:24, 134.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16230/19544 [02:00<00:24, 135.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16244/19544 [02:00<00:24, 136.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16258/19544 [02:00<00:24, 136.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16273/19544 [02:00<00:23, 137.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16287/19544 [02:00<00:24, 133.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16301/19544 [02:01<00:24, 131.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16315/19544 [02:01<00:25, 127.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16329/19544 [02:01<00:25, 128.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16343/19544 [02:01<00:24, 131.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16357/19544 [02:01<00:23, 133.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16371/19544 [02:01<00:24, 131.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16385/19544 [02:01<00:24, 130.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16399/19544 [02:01<00:23, 131.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16413/19544 [02:01<00:23, 133.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16428/19544 [02:02<00:22, 136.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16442/19544 [02:02<00:22, 137.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16457/19544 [02:02<00:22, 138.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16471/19544 [02:02<00:22, 136.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16486/19544 [02:02<00:22, 137.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16501/19544 [02:02<00:21, 139.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16516/19544 [02:02<00:21, 141.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16531/19544 [02:02<00:21, 142.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16546/19544 [02:02<00:20, 143.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16561/19544 [02:02<00:20, 144.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16576/19544 [02:03<00:20, 143.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16591/19544 [02:03<00:20, 143.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16606/19544 [02:03<00:20, 143.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16621/19544 [02:03<00:20, 143.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16636/19544 [02:03<00:20, 140.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16651/19544 [02:03<00:20, 141.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16666/19544 [02:03<00:20, 143.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16681/19544 [02:03<00:19, 144.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16696/19544 [02:03<00:19, 145.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16711/19544 [02:04<00:19, 146.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16726/19544 [02:04<00:19, 146.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16741/19544 [02:04<00:19, 144.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16756/19544 [02:04<00:19, 145.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16771/19544 [02:04<00:18, 145.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16786/19544 [02:04<00:19, 145.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16801/19544 [02:04<00:18, 146.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16816/19544 [02:04<00:19, 142.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16831/19544 [02:04<00:19, 142.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16846/19544 [02:04<00:18, 143.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16861/19544 [02:05<00:18, 144.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16876/19544 [02:05<00:18, 143.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16891/19544 [02:05<00:18, 144.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16906/19544 [02:05<00:18, 145.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16921/19544 [02:05<00:18, 144.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16936/19544 [02:05<00:18, 143.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16951/19544 [02:05<00:18, 143.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16966/19544 [02:05<00:17, 144.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16981/19544 [02:05<00:17, 145.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16996/19544 [02:05<00:17, 146.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17011/19544 [02:06<00:17, 144.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17026/19544 [02:06<00:17, 143.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17041/19544 [02:06<00:17, 142.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17056/19544 [02:06<00:17, 142.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17071/19544 [02:06<00:17, 143.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17086/19544 [02:06<00:17, 140.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17101/19544 [02:06<00:17, 138.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17115/19544 [02:06<00:18, 133.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17129/19544 [02:06<00:17, 135.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17143/19544 [02:07<00:17, 135.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17158/19544 [02:07<00:17, 138.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17173/19544 [02:07<00:17, 139.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17188/19544 [02:07<00:16, 142.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17203/19544 [02:07<00:16, 141.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17218/19544 [02:07<00:16, 140.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17233/19544 [02:07<00:16, 140.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17248/19544 [02:07<00:16, 139.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17263/19544 [02:07<00:16, 140.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17278/19544 [02:08<00:15, 142.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17293/19544 [02:08<00:15, 142.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17308/19544 [02:08<00:16, 132.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17322/19544 [02:08<00:16, 134.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17337/19544 [02:08<00:16, 137.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17352/19544 [02:08<00:15, 140.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17367/19544 [02:08<00:15, 140.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17382/19544 [02:08<00:15, 140.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17397/19544 [02:08<00:15, 142.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17412/19544 [02:08<00:14, 144.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17427/19544 [02:09<00:14, 142.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17442/19544 [02:09<00:14, 144.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17457/19544 [02:09<00:14, 145.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17472/19544 [02:09<00:14, 146.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17488/19544 [02:09<00:13, 147.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17503/19544 [02:09<00:13, 148.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17518/19544 [02:09<00:13, 147.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17533/19544 [02:09<00:13, 147.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17548/19544 [02:09<00:13, 143.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17563/19544 [02:09<00:13, 142.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17578/19544 [02:10<00:13, 140.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17593/19544 [02:10<00:13, 140.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17608/19544 [02:10<00:14, 138.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17623/19544 [02:10<00:13, 140.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17638/19544 [02:10<00:13, 142.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17653/19544 [02:10<00:13, 142.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17668/19544 [02:10<00:13, 141.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17683/19544 [02:10<00:13, 142.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17698/19544 [02:10<00:12, 143.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17713/19544 [02:11<00:12, 141.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17728/19544 [02:11<00:12, 140.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17743/19544 [02:11<00:12, 142.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17758/19544 [02:11<00:12, 142.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17773/19544 [02:11<00:12, 144.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17788/19544 [02:11<00:12, 144.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17803/19544 [02:11<00:11, 145.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17818/19544 [02:11<00:11, 145.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17833/19544 [02:11<00:11, 145.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17848/19544 [02:12<00:11, 141.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17863/19544 [02:12<00:11, 143.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17879/19544 [02:12<00:11, 145.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17895/19544 [02:12<00:11, 147.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17910/19544 [02:12<00:11, 146.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17926/19544 [02:12<00:10, 148.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17941/19544 [02:12<00:10, 145.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17956/19544 [02:12<00:11, 141.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17971/19544 [02:12<00:10, 143.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17986/19544 [02:12<00:10, 144.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18001/19544 [02:13<00:10, 145.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18016/19544 [02:13<00:10, 146.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18031/19544 [02:13<00:10, 147.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18046/19544 [02:13<00:10, 145.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18061/19544 [02:13<00:10, 145.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18076/19544 [02:13<00:10, 145.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18091/19544 [02:13<00:09, 146.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18106/19544 [02:13<00:09, 146.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18121/19544 [02:13<00:09, 146.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18136/19544 [02:13<00:09, 146.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18151/19544 [02:14<00:09, 147.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18167/19544 [02:14<00:09, 148.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18182/19544 [02:14<00:09, 148.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18197/19544 [02:14<00:09, 148.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18212/19544 [02:14<00:09, 147.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18228/19544 [02:14<00:08, 148.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18243/19544 [02:14<00:08, 148.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18258/19544 [02:14<00:08, 146.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18273/19544 [02:14<00:08, 146.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18288/19544 [02:14<00:08, 146.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18303/19544 [02:15<00:08, 144.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18318/19544 [02:15<00:08, 145.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18333/19544 [02:15<00:08, 145.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18349/19544 [02:15<00:08, 147.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18364/19544 [02:15<00:08, 146.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18379/19544 [02:15<00:07, 146.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18394/19544 [02:15<00:07, 146.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18409/19544 [02:15<00:07, 146.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18424/19544 [02:15<00:07, 146.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18440/19544 [02:16<00:07, 147.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18455/19544 [02:16<00:07, 148.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18470/19544 [02:16<00:07, 148.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18485/19544 [02:16<00:07, 148.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18500/19544 [02:16<00:07, 148.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18516/19544 [02:16<00:06, 149.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18531/19544 [02:16<00:06, 149.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18546/19544 [02:16<00:06, 147.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18561/19544 [02:16<00:06, 147.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18576/19544 [02:16<00:06, 147.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18591/19544 [02:17<00:06, 143.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18606/19544 [02:17<00:06, 136.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18620/19544 [02:17<00:06, 136.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18635/19544 [02:17<00:06, 138.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18650/19544 [02:17<00:06, 140.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18665/19544 [02:17<00:06, 142.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18680/19544 [02:17<00:05, 144.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18695/19544 [02:17<00:06, 138.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18710/19544 [02:17<00:05, 139.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18725/19544 [02:18<00:05, 141.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18740/19544 [02:18<00:05, 143.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18755/19544 [02:18<00:05, 143.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18770/19544 [02:18<00:05, 144.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18785/19544 [02:18<00:05, 144.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18800/19544 [02:18<00:05, 143.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18815/19544 [02:18<00:05, 142.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18830/19544 [02:18<00:05, 141.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18845/19544 [02:18<00:04, 141.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18860/19544 [02:18<00:04, 143.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18875/19544 [02:19<00:04, 143.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18890/19544 [02:19<00:04, 144.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18905/19544 [02:19<00:04, 144.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18920/19544 [02:19<00:04, 144.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18935/19544 [02:19<00:04, 145.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18950/19544 [02:19<00:04, 144.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18965/19544 [02:19<00:03, 145.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18980/19544 [02:19<00:03, 146.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18995/19544 [02:19<00:03, 137.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19010/19544 [02:20<00:03, 140.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19025/19544 [02:20<00:03, 141.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19040/19544 [02:20<00:03, 137.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19055/19544 [02:20<00:03, 139.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19070/19544 [02:20<00:03, 140.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19085/19544 [02:20<00:03, 141.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19100/19544 [02:20<00:03, 141.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19115/19544 [02:20<00:03, 141.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19130/19544 [02:20<00:02, 141.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19145/19544 [02:20<00:02, 142.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19160/19544 [02:21<00:02, 143.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19175/19544 [02:21<00:02, 143.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19190/19544 [02:21<00:02, 141.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19205/19544 [02:21<00:02, 143.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19221/19544 [02:21<00:02, 145.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19236/19544 [02:21<00:02, 146.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19252/19544 [02:21<00:01, 148.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19268/19544 [02:21<00:01, 149.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19283/19544 [02:21<00:01, 149.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19298/19544 [02:22<00:01, 149.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19313/19544 [02:22<00:01, 149.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19328/19544 [02:22<00:01, 149.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19343/19544 [02:22<00:01, 143.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19358/19544 [02:22<00:01, 141.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19373/19544 [02:22<00:01, 140.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19388/19544 [02:22<00:01, 139.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19403/19544 [02:22<00:01, 140.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19418/19544 [02:22<00:00, 142.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19433/19544 [02:22<00:00, 140.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19448/19544 [02:23<00:00, 139.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19464/19544 [02:23<00:00, 142.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19479/19544 [02:23<00:00, 141.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19494/19544 [02:23<00:00, 138.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19508/19544 [02:23<00:00, 137.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19522/19544 [02:23<00:00, 137.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19536/19544 [02:23<00:00, 137.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 19544/19544 [02:23<00:00, 135.95it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OOV questions: 0\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Do predictions and preserve the gold answers (word_D)\n",
    "preds = []\n",
    "golds = []\n",
    "\n",
    "for analogy in tqdm(data[\"Question\"]):\n",
    "      # TODO2: Write your code here to use pre-trained word embeddings for getting predictions of the analogy task.\n",
    "      # You should also preserve the gold answers during iterations for evaluations later.\n",
    "      \"\"\" Hints\n",
    "      # Unpack the analogy (e.g., \"man\", \"woman\", \"king\", \"queen\")\n",
    "      # Perform vector arithmetic: word_b + word_c - word_a should be close to word_d\n",
    "      # Source: https://github.com/piskvorky/gensim/blob/develop/gensim/models/keyedvectors.py#L776\n",
    "      # Mikolov et al., 2013: big - biggest and small - smallest\n",
    "      # Mikolov et al., 2013: X = vector(”biggest”) − vector(”big”) + vector(”small”).\n",
    "      \"\"\"\n",
    "      # GloVe 的字全部是小寫，所以題目也先轉小寫，否則 \"Athens\" 會查不到。\n",
    "      word_a, word_b, word_c, word_d = analogy.lower().split()\n",
    "      golds.append(word_d)\n",
    "      if all(w in model.key_to_index for w in (word_a, word_b, word_c)):\n",
    "          # b - a + c：most_similar 會自動排除 a、b、c 這三個字本身\n",
    "          preds.append(model.most_similar(positive=[word_b, word_c], negative=[word_a], topn=1)[0][0])\n",
    "      else:\n",
    "          preds.append(None)   # 題目裡有字典沒有的字（OOV），直接算答錯\n",
    "print(\"OOV questions:\", sum(p is None for p in preds))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "d825503c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:31.330800Z",
     "iopub.status.busy": "2026-10-04T13:01:31.329785Z",
     "iopub.status.idle": "2026-10-04T13:01:31.372546Z",
     "shell.execute_reply": "2026-10-04T13:01:31.372546Z"
    },
    "id": "xG7vcPXAW6uT"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Category: Semantic, Accuracy: 65.3399481339497%\n",
      "Category: Syntactic, Accuracy: 61.255269320843084%\n",
      "Sub-Category: capital-common-countries, Accuracy: 93.87351778656127%\n",
      "Sub-Category: capital-world, Accuracy: 88.94783377541998%\n",
      "Sub-Category: currency, Accuracy: 14.203233256351039%\n",
      "Sub-Category: city-in-state, Accuracy: 30.806647750304013%\n",
      "Sub-Category: family, Accuracy: 81.62055335968378%\n",
      "Sub-Category: gram1-adjective-to-adverb, Accuracy: 24.39516129032258%\n",
      "Sub-Category: gram2-opposite, Accuracy: 20.073891625615765%\n",
      "Sub-Category: gram3-comparative, Accuracy: 79.12912912912913%\n",
      "Sub-Category: gram4-superlative, Accuracy: 54.278074866310156%\n",
      "Sub-Category: gram5-present-participle, Accuracy: 69.50757575757575%\n",
      "Sub-Category: gram6-nationality-adjective, Accuracy: 87.86741713570981%\n",
      "Sub-Category: gram7-past-tense, Accuracy: 55.44871794871795%\n",
      "Sub-Category: gram8-plural, Accuracy: 71.996996996997%\n",
      "Sub-Category: gram9-plural-verbs, Accuracy: 58.39080459770115%\n"
     ]
    }
   ],
   "source": [
    "# Perform evaluations. You do not need to modify this block!!\n",
    "\n",
    "def calculate_accuracy(gold: np.ndarray, pred: np.ndarray) -> float:\n",
    "    return np.mean(gold == pred)\n",
    "\n",
    "golds_np, preds_np = np.array(golds), np.array(preds)\n",
    "data = pd.read_csv(\"questions-words.csv\")\n",
    "\n",
    "# Evaluation: categories\n",
    "for category in data[\"Category\"].unique():\n",
    "    mask = data[\"Category\"] == category\n",
    "    golds_cat, preds_cat = golds_np[mask], preds_np[mask]\n",
    "    acc_cat = calculate_accuracy(golds_cat, preds_cat)\n",
    "    print(f\"Category: {category}, Accuracy: {acc_cat * 100}%\")\n",
    "\n",
    "# Evaluation: sub-categories\n",
    "for sub_category in data[\"SubCategory\"].unique():\n",
    "    mask = data[\"SubCategory\"] == sub_category\n",
    "    golds_subcat, preds_subcat = golds_np[mask], preds_np[mask]\n",
    "    acc_subcat = calculate_accuracy(golds_subcat, preds_subcat)\n",
    "    print(f\"Sub-Category{sub_category}, Accuracy: {acc_subcat * 100}%\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ff2b23cc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:31.412140Z",
     "iopub.status.busy": "2026-10-04T13:01:31.412140Z",
     "iopub.status.idle": "2026-10-04T13:01:31.859508Z",
     "shell.execute_reply": "2026-10-04T13:01:31.859508Z"
    },
    "id": "7_z6CybBXKZu"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA98AAAL1CAYAAADes1dUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQAA1fRJREFUeJzs3QWYlOX3//GzS9fSndIhSHeHhI0gioEiggHYLepXFGxRBBUERRQBRQywKFGkpAxKuruWzvlfn9v/M7+ZYYuYzffruubanXlyZmd35zzn3OeO8Pl8PgMAAAAAAGETGb5dAwAAAAAAgm8AAAAAABIBmW8AAAAAAMKM4BsAAAAAgDAj+AYAAAAAIMwIvgEAAAAACDOCbwAAAAAAwozgGwAAAACAMCP4BoAkMnPmTMuVK5f7mtg2btzojj169OgUsd/z8ffff7tz+eqrr5L1eR8+fNjuv/9+q1ChguXOndsee+yxRD+H1Oz11193P9vjx49bapEan9P5mjx5snstFixYkNSnAgDxIvgGkGodPXrUChQoYLfeeutZy7744gv3ga1Dhw5nLZs+fbpbNnz48LCe38mTJ+3AgQPua0I+XHq3vHnzWrly5ey2226zZcuWndexz5w54459Ph/eV61a5c5jzJgxF3W/F9vp06fduZw4cSLedZPyvF944QUX9H/22We2bt06+9///mcpwZYtW+ypp56y+vXrW9GiRa148eLWoEED69Gjh82YMcN8Pp8lB8eOHXM/23Ccz4cffuh+F2rXrm2p5TldKL2HA/9exXVLyIWxhP4dPXXq1EU5fwAIp/Rh3TsAJKEsWbK4IPWHH35wH1IjIiL8y37++WcXaCnQVpCudT1Tp051H+YUSCQH3ofLDz74wG644QZ3/6+//rJ7773XnePixYutdOnSySKoLVGihO3bt8+yZs1qKUlSnrfeb40aNUr0AO5CTJw40V3UqlOnjgvAa9SoYenSpXMXgxSQtmzZ0l1M6Nq1q6Vm7733nmXMmNEWLlxos2bNssaNG1taV7JkSVu/fn3QY1deeaWrRNmwYUPQ49myZUvkswOApEXmG0CqpiBgz549LlgNpKD7rrvucgHk77//ftYyZcwvvfRSS04UGCpblD9/fmvVqpW98847Fh0d7YLy5CIyMtKdowKSlCQpz3vnzp0pKghZsmSJ3XTTTS6gmjZtml199dUu612kSBFr3bq1jR071r7++mvLnDmzpWa66LVo0SIbMmSICzjDXSmT0n6XAm/p06d3Fz9DH8+QIUNSny4AJCqCbwCpmoJUURls4PjetWvXWqdOnaxq1aou2PYcPHjQZbEUtHuOHDlizz33nFWrVs0F5dqmX79+bqxuaKmlyodVJq5MpoLkn376yS3/888/7YorrrDChQu77UeMGHHBz61y5crua2iWSZnpt99+25UDFyxY0MqWLWt9+vRxFyHiokqAwA/Geq7Kxr722mv+0ngFW3Xr1nXfK/PureuVSsc2dlqv65NPPmlVqlRx+73ssstcubXKZ2Mao/3dd9+54xQqVMj9LP7444+zznfYsGHWsGFDV/KsCyW6mBL6Wnji219M5x14PuPGjbOaNWu67du0aWPz5s27oPMR7Vf7V/m2971uy5cvDzq2bvXq1bN8+fK57KoXAHfu3Nll7L2g9/vvvw/av96j2kY/1wcffNBKlSrlxpUrWBRVfOhxVU1ccskl9uyzzyaojFk/a5Xp6z2mQCsm11xzjXXs2DHosYSc87ms98svv1jz5s3dz0TvU2XjNRRCr5uGRsRn06ZN7j2s10TvSb0/9DNMKAXb+llfd9111rNnTzeURRUhobyfg36H9Dug11vPrVevXnbo0KGgdfX+894HGv+vixr6uxH4NyouF/O1+/jjj939mH73JkyY4JYF/l09n6Er3k3noaoBVU0EUin5K6+84s5RfztVYfHQQw/Zrl274ty//jZff/317qJI6MVVAEhSPgBIxY4dO+bLkiWL76qrrvI/NnLkSF/mzJndsr59+/rq1avnXzZp0iRFH75hw4a5+ydOnPA1btzYlydPHt+4ceN8GzZs8H355Ze+fPny+Ro0aOA7fvy4W2/VqlVuu65du/puueUW359//un75ZdffL/++qtv2bJlvuzZs/tatmzpW7Bgge/ff//1PfDAA76bb77ZbTNlypQ4n8PEiRPdeqNHjw56XPvX49qX5/Tp0+656nz1PHW+c+bM8dWtW9dXsWJF38GDB91669atc9sOHz48aJ/79u3z39avX+/7+OOPfVFRUb5HH33ULT958qRv/vz5btshQ4b41z169Gis+9WyWrVq+QoWLOiei85pzJgxvly5crnX5NSpU269xYsXu21vv/1239133+1bunSp7++///Y1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1we9Yz179rSnnnrKradO5cp8796925577jnXLG3+/PlWqVIltzwqKsqqV68etO8iRYq4seEycuRIy5Qpkw0cONA1YQvcN5AcRPi83v3JVHR0tOXMmdMOHDjgfuGAcCpUqJB9+umnbooK0ftOf/jVwCNDhgyu7FxdNXPkyOEfI16sWDHLkiWLbdy40W2fOXPmoH2eOXPG7aNo0aJu7sk1a9a4q7oAAABpQb0BU21H9PGzHi8YlcnmPfXfZy4gLcShZL6BWKxYscJq1aplkyZNcoG3XH755TZz5kz/Oiprevjhh6148eLWokUL1xRkwoQJ/uXTp093AbnmmtTXBx54wC677DJecwAAkGZULBRlkRHBj+m+HgfSEoJvIAYKsBVMa37IJ554Is7XSNNbKAO+bt06GzBggD300EPucXVNv+mmm6xfv362ZcsW27Bhgy1fvpzXGwAApCl9Wpa1iIgIfwCur7rft9V/5eJAWkHwDYQYO3as3XjjjTZ+/Hj3NT5qDuJNe9G+fXtXfq5um3PnzrUTJ0645d68lMqSAwAApCW1S+WxcT3rW5Ny+V2pub6O71XfapXMk9SnBiQqup0DITSlRcGCBf3NPeLjjf8Wrzxd801qTsq8efNaZOT/XeMKnbsSAAAgrQTgo7rXTerTAJIUmW+ked68k2oGcuDoSbvr4X7WpEkTN55727Zt5/36lClTxjZv3mz79u3zP6Y5JwEAydf9999vy5YtS3H7jokqse68885EOx4AIG4E30jTvHknZ63a5bpwnjx9xl78foV1e/h/ds0117ggfP369ee1bzVr0+3mm2+23377zcaNG+fGkGuMEwAgedLf6q1bt6a4fcdk7969NmrUqEQ7HgAgbgTfSNMC552U9HmKWUSGzO5xNU+766677J577nEfYERTjgVONVCxYkX/eG/JmDGjm0YsXbp07r46pWvOyscee8y+/fZb69+//1lTkQEAAABI/RjzjTRtxfZof+Athbq+7H9cHn/8cXfz/PTTT0Hb//LLL0H3ixQpYv/880/QePChQ4f677/55psugAcAAACQthB8I03T/JK7Du6yM77wzDs5aNAg97Vx48b2999/2wsvvGCvv/76Rdk3ACA81DTzgw8+cH+31b9DFVBe1ZLGUOtvedGiRd19DU166aWXbPjw4e6+xnSPGTPGDhw4YA0aNHBT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16lTx43/HD16tD333HPWpk2bi/o8gaSgrK2CzFdeeSXVXrRbvu2Alcx8wh6/voENbNvWBgwYYOXKlbOJEyfaLbfcErSNLq7p91wZ67YxrJspUyZ/FY2ndu3ariRdfxc8Gt+t8nMAqRfdzgEgET+wVqhQwXXeVgOdggUL2p133hlUKq7MkcoVCxQo4Mb/KUgM3f7VV191X4sXL24PP/yw+8AW6Hz3X69ePX8JpPapMuk77rjDv1zjmFPKh219ePYCb8lUsrrl69DXxn3zoyuPffzxx+22226zwoULu+Ua662mR4Fq1qxpJUqUcN/rQ7LKyBWwf/zxx5Y5c2YXZMsll1xil112mX87NUVSt+Njx47ZyJEj3Ry/b7zxBoE3Ug01E/z9998ttV60m7Vql+2IPmbfDLjbWnW63Z55+W1XyaLpAwN/1wODbzVU7Nu3r3344YdnratqmF9//dU1U/O6nb/55pv27rvvutkV1KhNjRo128KqVauS4JkDSCxkvgEgEcdk//vvv67xjprsaByxOmnrw9p9993nShA1xZU+kKnrrda94YYb3BzR1157rX97deSePn267dy5001/pUDwpZde8n8oPt/9K6OrskntU1Pc5MqVy9+dV8eeMmWKC/ZTApWae4G3J2ulZlaw3uU28qnW7n5g5/Hbb7/9rH3oIkcgXdB4++23z1rv5ptvPusxze392muvXchTAC7qWGxdFJo0aZKbz17T7KkDvyo3dHFI720FjFmyZPFvt2LFCndxTt24Nee9Aks1CNP6mrZPHf29YRiB0/jpb4/mtdZx9LfEqxgRBaRaV397NL65T58+VqxYsaDzVBCrpoX58uWz/v37J9lFu4iISCvUbZAd+WeKjf9hhnVuXMXmzp3rLlp6AbXXx0EN2PR3WVMWzp8/3/1NDVz36quvdr0g1NFcFTHqcq7AXH+TR40a5SppVKauxo762yH6+eg1ApC6EHwDQCLS+D8FcGrmpayrPoTpQ5soKFZ22cs268Pngw8+6DKtCo5F233wwQcuMNaHNX047d27tz/4vpD9KzBXFkY0r+ytt97qMuF///23+8AoKqNOCSoWirJdB3fZmYAAPDLiv8eBtDYW+5133nHTYulCkYJC/a7rd/nyyy+366+/3l1oUmCsvy2iYFDVHgrSFThqPLPKpBV46++Olqns/O6773bre80I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ChYsaLfeeqt99NFHljlzZndTLxJlnLdv3+7fp7a54oorrEePHm6/efLksSeffNK/XMHxo48+6j/mAw884M5DtO/27dvbjh073P5r1arlfzy2Y37xxRf2v//9z7777jv/OtpeDh8+HOt5yIcffmiVKlVy21x66aU2adKkoOcR+twBAEDSIPgGAKRob7zxhgs4Z86caatXr7YsWbLYokWLgtb56aefrEGDBrZhwwb77LPPrHv37v4Ms7bJli2b9e7d+6xtmjZtaps3b3bfv/322zZr1iy37K233rIJEybYjBkzXIl5+vTp/cfUvrW+gl3tf8mSJf7HYzummqop+L766qv962j7+M7j448/tueff95daNA489dff926du1qy5cvj/W5AwCApEHwDQAIooDyXMYqJzVNY/n4449blSpVLHv27G7sdN68eYPWqVOnjvXs2dNlh0Plzp3bBb6TJ0/2l6pLkyZN7LbbbnPbaHtl0//880+3bNSoUS4DXbVqVcuRI4e9/PLLZx0zLrEdMyZxncfgwYPdeegxTWfWunVru+qqq1wmPSHPHQAAJB6CbwBAkOPHj9vOnTtTzKuyZcsWK1WqlP++stDFihULWqd48eJB95ctW2Zt27Z15d8ZMmSw8uXL27Fjx2zPnj3+dfLnzx+0jYLXo0eP+o9ZunTpOI8ZKiHHjElc57F+/XpXZu+Vqus2btw4lyWP7bkDAICkQfANAEhxFqzfa91Gzrd6A6aaZctr0+f/7V+msdebNm0KWj8iIiLovsZQa5y05t9WQzSVjktCG50poFXpeFzHDBXfMSMjI+PNgofSRYfhw4f7S9W9m+YYj+25AwCApJE+iY4LAMB5B95dhs1Vi3A77TOLKN/UXn31FatU9TJr36Cavfjii67beFyUOVa2WhnodevW2f33339O53D77be7UnM1U1MAfDGOWbhwYReQaz9RUVFu3fio0ZvKznUxoF69erZt2zZXhq/zuvbaa8/pOQEAgPAi8w0AyYiyotdcc42VK1fONd9SBjNw/LU6a48ZM8Z101bQp+yrlutxBWAtWrSwKVOmBO1Ty8aOHeu6XpctW9YFZRs3bvQvVyCox3RMHTswoyuvvPKKVa9e3SpUqGD33HOP7d+/379M5dfqoK1lCv7eeeedoOxtfMc+H4Onr/YH3pKj9rWWrWJj63lrF6tRo4YL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okVWs2ZNF/zKH3/84YJnBf06poLkdevWBW3/2GOP2cMPP2w+n88F4A0bNnQXBnS+mTJlsrvvvtveffdd/zY6hoLgOXPmWLp06dz2119/vVuWLVs2y5Url/vqnbfWkd9++y3W81yzZo1VqVLFBe5Zs2a10aNHW5MmTezkyZOxvjYAkByR+QYAAEhi/fr1c4Hsq6++6u7feuutVrFixaB1FAD/8ssvliVLFv9jVatW9X/funVr69mzp3Xv3t3/mAJkBc1ellhZ459//tlljp955hnr0aOH63AuN998s1WuXDnomAqUZ8yY4bLx999/vwue77rrLnv66afd8jx58tjnn39uvXv3dvcVBN9www32wQcfuPu9evWyMmXK2E8//WRt27a1+vXr2z///OPPfCfkPB999FEX8A8dOtQte+KJJ6xWrVquOVy3bt1ifW0AILkh+AYAAEhiixcvdlliT9myZV1ZeSCVnwcGlwo4VWatqcGUJT58+LBt2LDBjh07ZpkzZ3brKEj1AlopWbKk7dy5032vMnBltT3ly5c/65jKQCvwluzZs7vgWwG0p3jx4v79ibLW9913n/9+oUKF3D4WLFjggu/YxHWeymyrKiAwYD916pQrU/eC79DXBgCSI4JvAACAJLBg/V4bPH21rdgebYdP+mzZln3WJmC5AsxAXkDtefDBB9248E6dOlmxYsVc8K2A/NChQ/51vbLuQFpHNM479Bih92PaPvQxb39x7dML4GMT13lGRka6ID5wDPidd97pyttje20AIDki+AYAAEiCwLvLsLmKMO20zyyyYHnr99aH1qh5a6tdKo8bj63mYnH59ttv7fXXX/c3PNNY6HOh8dtqYtahQwd3X8cMHPN9PrTPsWPH+s9J48mVYX/ttdf82fOjR4+e0z5btWplx48fD8p8b9q0yY4cOXJB5woAiY3gGwAAIJEp4+0F3pKzya22Y+zTdlX7tta2XhWbN2+eFShQwGV9Y6OgWWOtNZ5aJdpr1649p3MYMGCAtWjRwnVJL1GihDumMswX4uWXX3Zjz9WlXeO2v/vuOzfuW/dFjdKeffZZl7lWw7jAbuex0QUGPVd1Tlf5+bZt21wTNq/TOwCkFATfAAAAiUyl5l7gLRnzl7Qidw6xjDv+sSuuqOECTgWbuXPndsuvuOIK279/f9A+Bg8e7DqUr1q1yk2v1bx5c9ftXNnl2La599577ZJLLnHfq6Hb33//7caNq1xcx9T3l112WazbK1jWePTAhm9q3OZRwK2GamrSpqnGdHFA47k99erVc53SFeirTF7l5vGdZ8GCBV1WXh3R9VyLFCniLhp4Y7xj2h4AkqMIX+BAnWRIU2fkzJnTDhw4YFFRUUl9OgAAABes28j59tuqXXbm/38KO3PskNmJI9aidhUb1b2u6/zdrl0727x5sws+AQApPw4l8w0AAJDI+rQsa7NW77ZI87kAPDIiwrZN6G/bNlW3Lj9lsEmTJrmycAJvAEg9yHwDAAAkcbfzioWirEf9QrZrxQLXrVxjmytVqsTPBQBSUeab4BsAAAAAgDAH37G30AQAAAAAABcFwTcAAAAAAGFG8A0AAAAAQJgRfAMAAAAAEGYE3wAAAAAAhBnBNwAAAAAAYUbwDQAAAABAmBF8AwAAAAAQZgTfAAAAAACEGcE3AAAAYvXXX3/Z6NGjeYUA4AIRfAMAACBW8+fPtyFDhvAKAcAFSn+hOwAAAEDSWbNmjX3xxRfu+1y5clmDBg3ssssu8y+fPXu27dy506699lr/Y19++aUVK1bM6tevb0uWLLGlS5da69atbcqUKXb06FFr3769W75x40b74YcfbOvWrfbyyy+7bbt3724FChRIgmcKACkbmW8AAIAU7OTJk7Z//353W7hwobVs2dKGDh3qXz59+nT79NNPg7b5+OOP7ZdffnHfz5071x577DFr166dC9S//vpru/TSS23z5s126tQpF4yfPn3afwx9DwA4d2S+AQAAUrCKFSv6s9LSq1cvl8XW13Tp0iVoHwcOHLAFCxZY4cKF3X1lz8ePH28PPfSQdezY0fbu3Rt0DADAuSP4BgAASOFWrVplv/32m+3evdvOnDljBw8edJnrkiVLJmj7KlWq+ANvKV++vG3fvj2MZwwAaQ9l5wAApFEfffSRjRkz5ryXX0zKuj755JOJcqzU5sMPP7S6devajBkz3NhulYbLvn373NeIiIiztlE5eaAMGTIE3dc2CuIBABcPwTcAAGnU77//7jpZn+/yi2n9+vU2ceLERDlWarBg/V7rNnK+1Rsw1Z55bajd2fcxNx3Y66+/bp06dQoKnNUcbe3atf77hw4dck3WEipLlix24sSJi/4cACCtoewcAAAke4sWLbJx48bZK6+8YmmdAu8u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hbVr186tr0Bct+effz5ov99++63NmTPHtmzZ4jrF33LLLfEeT8fp0KGDW3f//v329ddf29ChQ23IkCFB+54xY4bNmzfPlcMrgH/22WcT6dUCAAC4+Ai+ASANyJEjh5uW7cyZMy6T3LFjR7v11ltjXX/cuHFWvHhx69Onj9tOGfGnn37axowZE7TeK6+8YoUKFbI8efLYoEGDXMCs4Dqu402YMMFltB944AG3TBlwff/xxx+ftW9l3LWvrl272l9//RWmVwcAACD86HYOAGlAjx49XFa7S5curnS8SZMm9vjjj1v+/PljXF8l3n/++acLugNFRka6gNpTqlQp//clSpRwAbdKz+M6nrLkKlUPVLp0aRe0B1Lg7VGQ7pW8AwAApERkvgEglc+L3m3kfGv4ygxblKOBvf7xV268teauvPPOO/0BdWhjMwXVderUcQF04O3IkSP+9UWl5Z41a9a4fShjni5dOrv//vvtl19+Oet4Wr5q1aqg81y5cqWVLFky7K8HAABAUiH4BoBUHHh3GTbXZq3aZSsnj7TJ4z+x61//zmb8tdY1RFN3c8mbN68brz137lyXXVbjM43R3rRpk/Xr18991XRkKkW/++67g47xyCOPuMB5/fr1rkRdY8QLFy5szz33nH3wwQdu23379gUdT83XlOVWkzWNB582bZorWb/rrruS5HUCAABINcH33r177e+//3aZDwBA4hg8fbXS2XbaZ5aj1pV2fOd62zL6UbuudWMXZCs4FmWp1bVcwbMCcXU7z507t/32228us924cWOrVauWa6722GOPBR1D5eUKpuvWreuaoo0ePdo9rs7oGqOtLuXVq1cPOl7BggVdwD19+nSrXLmy9e3b15555hl/8K3SdV0M0FePzlGPAQAApFQRvjBOoKpdq4mOut5qKhmN81PDHmVSEkoBuz7QHThwwE13AwBImHoDptqO6P+yzYEKRmWyeU+1vqCXUZlrlY8rqx06LhwAACCliw5DHBrWzPfw4cPto48+sgULFrixgD/99JO98MILLnsCAAivioWiLPL/kseO7utxAAAAJK6wB9+dOnWyqlWruvvNmjWzli1b2ocffhjOwwIAzKxPy7KudNsLwPVV9/u2KnvBr09MpeEAAABIguBbDXs0TY265QaqV6+eLVq0KFyHBQD8f7VL5bFxPetbk3L5Xam5vo7vVd9qlcxzwa9R0aJFXfdzlWMBAAAgCef5PnjwoJ08edI17wmdt3XPnj2xbqduuF5HXKFJGwBcWAA+qntdXkIAAIDUmvnOkCGD+xoYSIs63nrLYjJw4ECXSfFuaugDAAAAAEBKFrbgO1u2bJYnTx7bunVr0OO6X6JEiVi3e/LJJ11HOe+mOWIBAAAAAEjJwtpwrVWrVjZ58mT//TNnztj333/vHo+NGviolXvgDQCAc3Hq1Ck3zaWGQCWGb775xpYtW5YoxwIAAClTWIPvZ555xk0z1rdvX5syZYp169bN9u7daw8//HA4DwsASOPUDO6ee+6Js8fIxfTaa6/Zr7/+mijHAgAAKVNYg+9q1arZb7/9Zrt27bLnn3/e0qVLZ7Nnz46z7BwAkLp9++23tnTpUktL0uJzBgAAidTt3FOrVi37/PPPw30YAEAK8eabb1qnTp2sSpUqllakxecMAAASOfgGAKQ9p0+fthkzZti2bdusatWqVr16dff4zJkzXePNWbNmWfr06V1jzhtuuMEt0/hsVUdpeFKdOnWsbNmyQWOqy5UrZxEREbZkyRIrWbKkNWzYMOiYGzZscNsXLlzYfzzP1KlTbfXq1RYZGelm0WjSpIllz57dv3zcuHFWr149K1WqlLt/4sQJGzlypN16662ugaisX7/e5syZ4/avdUeNGmU333yz5ciRw7+fVatWueFW+fPnd/1NdL4X+py1zcKFC61GjRpWsWLFi/pzAgAAiYfgGwBw0ZudNWrUyI4cOeKqn95++21r0aKFGxetGSwOHTpkW7ZscUF00aJF3TZz5851meEKFSpYoUKFXK+Q5557znr37u2Wa1sFxIcPH3aB9bRp06xt27YuAPbKurt27eoCXq2n2TJCA3MdT40/P/nkE3d8jdH2prPUsV5++WV/8K1z15jxK6+80gXfEydOdIF4mzZt3BSa+/btc+fcrl07f/Ctcxk+fLjLbk+fPt2aN29un3766QU955MnT7rx6wrMGbIFAEAK50vmDhw44NNp6isAIPlbsWKFL3369L5jx475H5s5c6b/+2bNmvkGDx7sv3/69GlfuXLlfIMGDfI/tnTpUl+2bNl827Ztc/cbNWrku+yyy/z73LRpk1v+888/+06ePOkrUqSI7/333/dv379/f/e/Y926dTGeY8+ePX19+vTx369QoYJv4sSJ/vv79u1z2+s4J06c8BUuXNg3YsQI//KXXnopaP86v8svv9x35swZd3/ZsmVu+e7duy/oOTdu3Nh36tSpBL/2AAAg+cahZL4BABeVsseVKlWy++67zzp37mwNGjSwpk2bxrq+stIq11bGWtODebJkyWKLFy+29u3bu/val6ajlGLFirlsukq5lRFWWfctt9zi31ZZ6n79+gUdZ9GiRbZixQpX6q3svL5PiLVr17ry+S5duvgfU7n5008/HbTeFVdc4crMRc9fJe7KdufNm/e8n/M111zjmpUCAICUj+AbAHBRKUDWuOeffvrJjft+6KGHXDn4O++8E+P6KvGWf//9NyjQvP7664MC14wZMwZtp/sqAVdptoLeDBkyxLrutdde64JajROPioqyjRs3unHWHi9oDhyz7lGAHN/+Y3pM26jM/UKec+C4dAAAkLIRfAMALooF6/fa4Omr7e81G61CkTz28BWN7OWrrnLBd8GCBe3BBx+0Sy65xDJnzuwCZk/58uUtV65cdt1111mHDh38j2/evNk1Lgtsmvboo4+6748ePeoalSkbXqZMGTcuW+PAvYyx1g3cj5qX7dy507+/J554wiZNmuRfRwGvxmZ75s2b5/9eTdCyZs1qv/zyi11++eXuMR3rXJzvcwYAAKkHwTcA4KIE3l2GzVUjETu6a5f98/6D9sOo2nZn+7q2cuHvLkBWqbioa/fHH3/sungrKFfn7w8++MC6devmmqapbF0l4WqI9scff/hLzf/++2+XGa5fv759+eWXrlmagm9ljp9//nlXdt6nTx+XqZ4wYYL/3AoUKOCanPXq1cuaNWvm9vP999+7ruMeNT7r37+/K0lXVvq7774LKgV/9tln3blp/8q26/gxZcxjc77PGQAApB6RSX0CAJBWqNR55cqVlhop463A+7TPLGO+Elaw68uWLiq//TDnb5eNVkDplW0rkO3Zs6cb8+y9HgpG1f1b47eV/a1bt66bXiuw7Frbab1du3bZbbfd5qbw8kq2H374Yfvss89cRlyZY3UbV7CtTuQqB9cUYQqANX5bY9C/+uqroDHcDzzwgA0dOtSVoitY//HHH9323vEfe+wx1yVd3da1/zFjxrjHVcLulbWHzuGt7fPly3fezzmmfQIAgJQrQl3XLBmLjo62nDlzumljvA85AJASPfPMM26u6bFjx1pqU2/AVNsR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fXt58803L3vu9Jz63OkYdfz6HAAAUo/rynzXrVvXfpKiePHi8sYbb8Tbpt8q64++OTnfFiek87+YAwYAgP+JioqSn376SSpUqGDXn3/+eQuWZ82aJe+++67kypXLglUNRjWo1azy559/bsddi94+JibGgnn9sl9t3brVfr///vu2Tc/tfH7QzPeHH34oAwcOtAy3ZtFfeeUV+/3YY4/Z6io6jW3nzp1y/Phxy4Q793OtcWpmXLPc+fPnt0q+okWL2raZM2fafv0spNV9Q4YMseuacdfEguPZZ5+VcuXKyWuvvebNzmvQrrcvWLCgXdcxTZw40e4fAJA6uDbnW9/I4r4RqeXLl1vgnXA7AADwfxpkOoG30hJ0LfdWq1atsjJ0pwIuU6ZM0qRJEyvTTkrw/csvv0irVq28gbdyyrIXL14sadOmjfel/qlTp7xZdw2+33rrLSuF1+C7e/fuFrjrOTdu3Girreh4kjpOLXnXwFvpcUWKFPEG70qDcc2gaym8U66ulX2agddSdi191x/NnJcvX972a6m6E3g796FZcgBA6uFqwzUAAJByrf4tSobN3yFbD0dL+t075fzF2Hj7NcC8UiWb0qzx1fYnpOe70natitMv8B2afdagWGkJt+5ftGiRrFixwvatXr3astcaFDtzv5M6Tg30E0psmzPecePGWdZd54EvW7ZMcuTIYdt1+pyWtp87d+6qtwcApA7Jss63Q0u0dB4UAADw/8C77WfLZUlEpByJPi/bDp+SQwf2y5ffL/Aeo03LqlWrZpe1yZhe12ywU2atDctq1KiRpPvTeddahh13xROdK+3s0+1a4u70kdFgV+duO9npe++91+ZZ33nnnZItWzYLuP/zn/9YQB43+L7ZcSZm0qRJNgd85MiRdv+a5XYeh8711i8BAABI1sx327ZtecYBAEgBNOMtHo/E/pWcvaRBbqZs8nzXJ2T5I82tvFo7eM+fP9/2axMyndOsJd7aOE3ngWsQqqugJIU2RdNmrRq8ahm4dhDPmzevjBo1Sv7+979bEK0l7/Xr17eMsmaYdc61Hq80wH7mmWe8c6g1mNayby0Lr1Klivd+bnacidEx6Wothw4dssy7ZrudMndt0vbll19654cDAFIvys4BAMBltNTcCbwdabLdJsU7D5Iqpc9Z0Kvdyp15zLfddpt18daltDQw/+CDD6Rp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",
      "text/plain": [
       "<Figure size 1200x900 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Collect words from Google Analogy dataset\n",
    "SUB_CATEGORY = \": family\"\n",
    "\n",
    "# TODO3: Plot t-SNE for the words in the SUB_CATEGORY `: family`\n",
    "family_words = sorted({w for q in data[data[\"SubCategory\"] == SUB_CATEGORY][\"Question\"]\n",
    "                       for w in q.lower().split()})\n",
    "family_words = [w for w in family_words if w in model.key_to_index]\n",
    "vectors = np.array([model[w] for w in family_words])\n",
    "# t-SNE：把 100 維壓成 2 維。字只有幾十個，所以 perplexity 要調小（必須小於樣本數）。\n",
    "points = TSNE(n_components=2, perplexity=15, random_state=42, init=\"pca\").fit_transform(vectors)\n",
    "plt.figure(figsize=(12, 9))\n",
    "plt.scatter(points[:, 0], points[:, 1], s=15)\n",
    "for (x, y), w in zip(points, family_words):\n",
    "    plt.annotate(w, (x, y), fontsize=9)\n",
    "\n",
    "\n",
    "plt.title(\"Word Relationships from Google Analogy Task\")\n",
    "plt.show()\n",
    "plt.savefig(\"word_relationships.png\", bbox_inches=\"tight\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70cbc6df",
   "metadata": {
    "id": "DKRPJxgKXH4j"
   },
   "source": [
    "### Part III: Train your own word embeddings"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ac94f0c5",
   "metadata": {
    "id": "VC_0fE1UzL8T"
   },
   "source": [
    "### Get the latest English Wikipedia articles and do sampling.\n",
    "- Usually, we start from Wikipedia dump (https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2). However, the downloading step will take very long. Also, the cleaning step for the Wikipedia corpus ([`gensim.corpora.wikicorpus.WikiCorpus`](https://radimrehurek.com/gensim/corpora/wikicorpus.html#gensim.corpora.wikicorpus.WikiCorpus)) will take much time. Therefore, we provide cleaned files for you."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b58279ba",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:31.899047Z",
     "iopub.status.busy": "2026-10-04T13:01:31.899047Z",
     "iopub.status.idle": "2026-10-04T13:01:31.985415Z",
     "shell.execute_reply": "2026-10-04T13:01:31.984898Z"
    },
    "id": "FkubArwCCYxR"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "../data\\wiki_texts_part_0.txt.gz 1.51 GB\n",
      "../data\\wiki_texts_part_1.txt.gz 0.84 GB\n",
      "../data\\wiki_texts_part_2.txt.gz 0.67 GB\n",
      "../data\\wiki_texts_part_3.txt.gz 0.60 GB\n",
      "../data\\wiki_texts_part_4.txt.gz 0.57 GB\n",
      "../data\\wiki_texts_part_5.txt.gz 0.58 GB\n",
      "../data\\wiki_texts_part_6.txt.gz 0.56 GB\n",
      "../data\\wiki_texts_part_7.txt.gz 0.53 GB\n",
      "../data\\wiki_texts_part_8.txt.gz 0.55 GB\n",
      "../data\\wiki_texts_part_9.txt.gz 0.55 GB\n",
      "../data\\wiki_texts_part_10.txt.gz 0.00 GB\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# 原本是 11 行 `!gdown --id ...`。改成 Python 迴圈：檔案已經存在就跳過，斷線後可以重跑。\n",
    "# Each file contain 562365 lines (articles), except the last file.\n",
    "import os, gdown\n",
    "DATA_DIR = \"../data\"\n",
    "os.makedirs(DATA_DIR, exist_ok=True)\n",
    "WIKI_IDS = [\n",
    "    \"1jiu9E1NalT2Y8EIuWNa1xf2Tw1f1XuGd\", \"1ABblLRd9HXdXvaNv8H9fFq984bhnowoG\",\n",
    "    \"1z2VFNhpPvCejTP5zyejzKj5YjI_Bn42M\", \"1VKjded9BxADRhIoCzXy_W8uzVOTWIf0g\",\n",
    "    \"16mBeG26m9LzHXdPe8UrijUIc6sHxhknz\", \"17JFvxOH-kc-VmvGkhG7p3iSZSpsWdgJI\",\n",
    "    \"19IvB2vOJRGlrYulnTXlZECR8zT5v550P\", \"1sjwO8A2SDOKruv6-8NEq7pEIuQ50ygVV\",\n",
    "    \"1s7xKWJmyk98Jbq6Fi1scrHy7fr_ellUX\", \"17eQXcrvY1cfpKelLbP2BhQKrljnFNykr\",\n",
    "    \"1J5TAN6bNBiSgTIYiPwzmABvGhAF58h62\",\n",
    "]\n",
    "for i, fid in enumerate(WIKI_IDS):\n",
    "    path = os.path.join(DATA_DIR, f\"wiki_texts_part_{i}.txt.gz\")\n",
    "    if not os.path.exists(path):\n",
    "        gdown.download(id=fid, output=path, quiet=True)\n",
    "    print(path, f\"{os.path.getsize(path)/1e9:.2f} GB\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "664dc9eb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:32.023437Z",
     "iopub.status.busy": "2026-10-04T13:01:32.023437Z",
     "iopub.status.idle": "2026-10-04T13:01:32.026436Z",
     "shell.execute_reply": "2026-10-04T13:01:32.026436Z"
    },
    "id": "8S3ibNT3C8Xk"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "all parts downloaded\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# 上一格已經把 11 個檔都下載完（模板原本把下載拆成兩格）。\n",
    "print(\"all parts downloaded\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "58a8e0b2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:32.066586Z",
     "iopub.status.busy": "2026-10-04T13:01:32.066586Z",
     "iopub.status.idle": "2026-10-04T13:01:32.071684Z",
     "shell.execute_reply": "2026-10-04T13:01:32.071684Z"
    },
    "id": "DUg_c79BC7OL"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2 parts: ['wiki_texts_part_0.txt.gz', 'wiki_texts_part_1.txt.gz']\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# 原本是 `!gunzip -k`（解壓縮並保留壓縮檔）＋ 下一格 `!cat`（合併成一個大檔）。\n",
    "# 這樣同一份資料會在硬碟上存三份（壓縮檔＋解壓檔＋合併檔），本機硬碟吃不消。\n",
    "# 改成：不解壓、不合併，下一步直接用 gzip 一行一行讀壓縮檔。結果完全一樣。\n",
    "import glob, gzip, re\n",
    "wiki_parts = sorted(glob.glob(os.path.join(DATA_DIR, \"wiki_texts_part_*.txt.gz\")),\n",
    "                    key=lambda p: int(re.search(r\"part_(\\d+)\", p).group(1)))\n",
    "wiki_parts = wiki_parts[:2]  # DRY\n",
    "print(len(wiki_parts), \"parts:\", [os.path.basename(p) for p in wiki_parts])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "53799ac3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:32.112059Z",
     "iopub.status.busy": "2026-10-04T13:01:32.111056Z",
     "iopub.status.idle": "2026-10-04T13:01:32.115036Z",
     "shell.execute_reply": "2026-10-04T13:01:32.115036Z"
    },
    "id": "7duk2RbYDB02"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total compressed size: 2.35 GB\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# 不需要合併：wiki_parts 這個清單按 0 到 10 的順序排好，依序讀就等於讀合併檔。\n",
    "print(\"total compressed size:\", round(sum(os.path.getsize(p) for p in wiki_parts) / 1e9, 2), \"GB\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "beeacc78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:32.152672Z",
     "iopub.status.busy": "2026-10-04T13:01:32.152672Z",
     "iopub.status.idle": "2026-10-04T13:01:32.160057Z",
     "shell.execute_reply": "2026-10-04T13:01:32.160057Z"
    },
    "id": "givLH7NrDs6X"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 anarchism is political philosophy and movement that is against all forms of authority and seeks to abolish the institutions it claims maintain unnecessary coercion and hierarchy typically including th ...\n",
      "1 albedo change in greenland the map shows the difference between the amount of sunlight greenland reflected in the summer of versus the average percent it reflected between and some areas reflect close ...\n",
      "2 or is the first letter and the first vowel letter of the latin alphabet used in the modern english alphabet and others worldwide its name in english is pronounced plural aes it is similar in shape to ...\n",
      "3 alabama is state in the southeastern region of the united states it borders tennessee to the north georgia to the east florida and the gulf of mexico to the south and mississippi to the west alabama i ...\n",
      "4 in greek mythology achilles or achilleus was hero of the trojan war who was known as being the greatest of all the greek warriors the central character in homer iliad he was the son of the nereid thet ...\n",
      "5 abraham lincoln february april was an american lawyer politician and statesman who served as the th president of the united states from until his assassination in he led the united states through the ...\n",
      "6 aristotle aristotélēs bc was an ancient greek philosopher and polymath his writings cover broad range of subjects spanning the natural sciences philosophy linguistics economics politics psychology and ...\n",
      "7 an american in paris is jazz influenced symphonic poem or tone poem for orchestra by american composer george gershwin first performed in it was inspired by the time that gershwin had spent in paris a ...\n",
      "8 the academy award for best production design recognizes achievement for art direction in film the category original name was best art direction but was changed to its current name in for the th academ ...\n",
      "9 the academy awards of merit commonly known as the oscars or academy awards are awards for artistic and technical merit given for excellence within the american and international film industry they are ...\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# 原本是 `!head -n 10`。每一行是一整篇文章，很長，所以每行只印前 200 個字元。\n",
    "with gzip.open(wiki_parts[0], \"rt\", encoding=\"utf-8\") as f:\n",
    "    for i, line in enumerate(f):\n",
    "        print(i, line[:200].strip(), \"...\")\n",
    "        if i == 9:\n",
    "            break\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a26e245b",
   "metadata": {
    "id": "Hfwx92QCEhrq"
   },
   "source": [
    "Please note that we used the default parameters of [`gensim.corpora.wikicorpus.WikiCorpus`](https://radimrehurek.com/gensim/corpora/wikicorpus.html#gensim.corpora.wikicorpus.WikiCorpus) for cleaning the Wiki raw file. Thus, words with one character were discarded."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "984ef035",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:32.202635Z",
     "iopub.status.busy": "2026-10-04T13:01:32.202635Z",
     "iopub.status.idle": "2026-10-04T13:01:32.795359Z",
     "shell.execute_reply": "2026-10-04T13:01:32.795359Z"
    },
    "id": "vUAzButoP03w"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 0/2 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 1/2 [00:00<00:00,  2.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 2/2 [00:00<00:00,  3.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 2/2 [00:00<00:00,  3.43it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "articles: total 8,000, sampled 1,605 (20.06%)\n",
      "wiki_sampled_5.txt 0.0 GB\n",
      "wiki_sampled_10.txt 0.01 GB\n",
      "wiki_sampled_20.txt 0.02 GB\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Now you need to do sampling because the corpus is too big.\n",
    "# You can further perform analysis with a greater sampling ratio.\n",
    "\n",
    "import random, itertools\n",
    "\n",
    "wiki_txt_path = \"wiki_texts_combined.txt\"\n",
    "# wiki_texts_combined.txt is a text file separated by linebreaks (\\n).\n",
    "# Each row in wiki_texts_combined.txt indicates a Wikipedia article.\n",
    "# [Data loading changed] 實際讀的是上面的 wiki_parts（11 個壓縮檔依序讀），內容等同 wiki_texts_combined.txt。\n",
    "\n",
    "SAMPLE_RATIO = 0.20\n",
    "output_path = \"wiki_sampled_20.txt\"\n",
    "random.seed(42)   # 固定亂數種子，重跑會抽到同一批文章\n",
    "\n",
    "# 順便在同一趟裡做出報告第 2 題要的 5%、10%：同一個亂數 r < 0.05 的文章，一定也 < 0.10、< 0.20，\n",
    "# 所以 5% ⊂ 10% ⊂ 20%，只是資料量不同，比較才公平。讀一趟 11 個壓縮檔要幾分鐘，這樣省掉兩趟。\n",
    "extra_outputs = {0.05: open(\"wiki_sampled_5.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\"),\n",
    "                 0.10: open(\"wiki_sampled_10.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\")}\n",
    "n_total = n_kept = 0\n",
    "with open(output_path, \"w\", encoding=\"utf-8\", newline=\"\\n\") as output_file:\n",
    "    # TODO4: Sample `20%` Wikipedia articles\n",
    "    # Write your code here\n",
    "    for part in tqdm(wiki_parts):\n",
    "        with gzip.open(part, \"rt\", encoding=\"utf-8\") as f:\n",
    "            for line in itertools.islice(f, 4000):  # DRY（一篇文章），記憶體不會爆\n",
    "                n_total += 1\n",
    "                r = random.random()\n",
    "                if r < SAMPLE_RATIO:\n",
    "                    output_file.write(line)\n",
    "                    n_kept += 1\n",
    "                for ratio, fh in extra_outputs.items():\n",
    "                    if r < ratio:\n",
    "                        fh.write(line)\n",
    "for fh in extra_outputs.values():\n",
    "    fh.close()\n",
    "print(f\"articles: total {n_total:,}, sampled {n_kept:,} ({n_kept / n_total:.2%})\")\n",
    "for p in [\"wiki_sampled_5.txt\", \"wiki_sampled_10.txt\", output_path]:\n",
    "    print(p, round(os.path.getsize(p) / 1e9, 2), \"GB\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "ae336ff0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:32.840010Z",
     "iopub.status.busy": "2026-10-04T13:01:32.840010Z",
     "iopub.status.idle": "2026-10-04T13:01:36.773643Z",
     "shell.execute_reply": "2026-10-04T13:01:36.773643Z"
    },
    "id": "G7q1Xzunxkdc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki_sampled_20.txt: removed non-[a-z] tokens 12,116 of 3,444,649 (0.35%)\n",
      "20% wiki tokens after preprocessing: 3,432,533\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_20_clean.txt: 0.0 min, vocab 33,439, effective min_count 5\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# TODO5: Train your own word embeddings with the sampled articles\n",
    "# https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec\n",
    "# Hint: You should perform some pre-processing before training.\n",
    "import time\n",
    "from gensim.models import Word2Vec\n",
    "\n",
    "# 前處理：助教給的資料已經是小寫、去標點、斷好字（gensim WikiCorpus 預設）。\n",
    "# 這裡只做「只留純英文字母的字」。刻意「不」做的兩件事（理由寫在報告第 1 題）：\n",
    "#   - 不移除停用詞：he / she / his / her 是 family 類的考題答案\n",
    "#   - 不做詞形還原：biggest -> big 會讓比較級、最高級、複數、過去式的答案消失\n",
    "TOKEN_RE = re.compile(r\"^[a-z]+$\")\n",
    "\n",
    "def preprocess_file(src, dst):\n",
    "    n_in = n_tokens = 0\n",
    "    with open(src, encoding=\"utf-8\") as fin, open(dst, \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "        for line in fin:\n",
    "            raw = line.split()\n",
    "            tokens = [w for w in raw if TOKEN_RE.match(w)]\n",
    "            n_in += len(raw)\n",
    "            n_tokens += len(tokens)\n",
    "            fout.write(\" \".join(tokens) + \"\\n\")\n",
    "    print(f\"{src}: removed non-[a-z] tokens {n_in - n_tokens:,} of {n_in:,} ({(n_in - n_tokens) / n_in:.2%})\")\n",
    "    return n_tokens\n",
    "\n",
    "# 超參數：向量長度跟 GloVe 一樣是 100，比較才公平；skip-gram 是老師投影片的重點。\n",
    "# max_final_vocab：只留最常見的 30 萬個字（老師建議的「只保留高頻字」）。\n",
    "#   注意：設了 max_final_vocab 之後，gensim 會自動把 min_count 往上調到剛好留下 30 萬字（實際值印在下面）。\n",
    "# seed：固定初始值；但 workers>1 時多執行緒的計算順序不固定，訓練結果仍會有小幅差異（報告第 5 題 (a) 有量）。\n",
    "W2V_PARAMS = dict(vector_size=100, window=5, sg=1, negative=5, sample=1e-3,\n",
    "                  min_count=5, max_final_vocab=300_000, epochs=1, workers=15, seed=42)\n",
    "\n",
    "def train_w2v(clean_path):\n",
    "    t = time.time()\n",
    "    m = Word2Vec(corpus_file=clean_path, **W2V_PARAMS)\n",
    "    print(f\"trained on {clean_path}: {(time.time() - t) / 60:.1f} min, vocab {len(m.wv.key_to_index):,}, \"\n",
    "          f\"effective min_count {m.effective_min_count}\")\n",
    "    return m\n",
    "\n",
    "clean_path = \"wiki_sampled_20_clean.txt\"\n",
    "n_tokens = preprocess_file(output_path, clean_path)\n",
    "print(f\"20% wiki tokens after preprocessing: {n_tokens:,}\")\n",
    "my_model = train_w2v(clean_path)\n",
    "my_model.save(\"w2v_wiki20.model\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "7467b02f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:36.814189Z",
     "iopub.status.busy": "2026-10-04T13:01:36.814189Z",
     "iopub.status.idle": "2026-10-04T13:01:36.831470Z",
     "shell.execute_reply": "2026-10-04T13:01:36.831470Z"
    },
    "id": "qWiQF70izxP7"
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"questions-words.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "b59c2420",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:36.870491Z",
     "iopub.status.busy": "2026-10-04T13:01:36.869504Z",
     "iopub.status.idle": "2026-10-04T13:01:41.678471Z",
     "shell.execute_reply": "2026-10-04T13:01:41.678471Z"
    },
    "id": "q6xpqgdIy5x1"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 0/19544 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 292/19544 [00:00<00:06, 2913.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 911/19544 [00:00<00:03, 4812.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1511/19544 [00:00<00:03, 5330.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2276/19544 [00:00<00:02, 6237.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3036/19544 [00:00<00:02, 6718.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4179/19544 [00:00<00:01, 8301.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5112/19544 [00:00<00:01, 8608.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5973/19544 [00:00<00:01, 7457.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6745/19544 [00:01<00:02, 5310.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7373/19544 [00:01<00:02, 5030.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7952/19544 [00:01<00:02, 5190.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8570/19544 [00:01<00:02, 5422.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9154/19544 [00:01<00:02, 5034.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9689/19544 [00:01<00:02, 4296.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10154/19544 [00:01<00:02, 4202.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10680/19544 [00:01<00:01, 4448.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11148/19544 [00:02<00:02, 3840.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11559/19544 [00:02<00:02, 3555.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11934/19544 [00:02<00:02, 3551.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12303/19544 [00:02<00:02, 3453.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12660/19544 [00:02<00:01, 3479.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13179/19544 [00:02<00:01, 3935.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13583/19544 [00:02<00:01, 3697.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13962/19544 [00:02<00:01, 3542.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14323/19544 [00:03<00:01, 3481.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14676/19544 [00:03<00:01, 3387.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15018/19544 [00:03<00:01, 3131.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15336/19544 [00:03<00:01, 3048.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15644/19544 [00:03<00:01, 2949.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15941/19544 [00:03<00:01, 2904.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16233/19544 [00:03<00:01, 2871.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16526/19544 [00:03<00:01, 2882.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16842/19544 [00:03<00:00, 2956.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17139/19544 [00:04<00:00, 2901.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17433/19544 [00:04<00:00, 2905.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17743/19544 [00:04<00:00, 2960.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18089/19544 [00:04<00:00, 3098.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18458/19544 [00:04<00:00, 3268.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18786/19544 [00:04<00:00, 3247.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19112/19544 [00:04<00:00, 3168.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19519/19544 [00:04<00:00, 3427.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 19544/19544 [00:04<00:00, 4092.25it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OOV questions: 6140\n",
      "Category: Semantic, Accuracy: 1.4432292253918142%\n",
      "Category: Syntactic, Accuracy: 2.4168618266978923%\n",
      "Sub-Category: capital-common-countries, Accuracy: 2.766798418972332%\n",
      "Sub-Category: capital-world, Accuracy: 0.641025641025641%\n",
      "Sub-Category: currency, Accuracy: 0.0%\n",
      "Sub-Category: city-in-state, Accuracy: 1.5808674503445481%\n",
      "Sub-Category: family, Accuracy: 9.090909090909092%\n",
      "Sub-Category: gram1-adjective-to-adverb, Accuracy: 1.2096774193548387%\n",
      "Sub-Category: gram2-opposite, Accuracy: 0.24630541871921183%\n",
      "Sub-Category: gram3-comparative, Accuracy: 3.7537537537537538%\n",
      "Sub-Category: gram4-superlative, Accuracy: 0.9803921568627451%\n",
      "Sub-Category: gram5-present-participle, Accuracy: 1.7992424242424243%\n",
      "Sub-Category: gram6-nationality-adjective, Accuracy: 4.940587867417136%\n",
      "Sub-Category: gram7-past-tense, Accuracy: 1.0897435897435896%\n",
      "Sub-Category: gram8-plural, Accuracy: 4.129129129129129%\n",
      "Sub-Category: gram9-plural-verbs, Accuracy: 1.4942528735632183%\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Do predictions and preserve the gold answers (word_D)\n",
    "preds = []\n",
    "golds = []\n",
    "\n",
    "for analogy in tqdm(data[\"Question\"]):\n",
    "      # TODO6: Write your code here to use your trained word embeddings for getting predictions of the analogy task.\n",
    "      # You should also preserve the gold answers during iterations for evaluations later.\n",
    "      \"\"\" Hints\n",
    "      # Unpack the analogy (e.g., \"man\", \"woman\", \"king\", \"queen\")\n",
    "      # Perform vector arithmetic: word_b + word_c - word_a should be close to word_d\n",
    "      # Source: https://github.com/piskvorky/gensim/blob/develop/gensim/models/keyedvectors.py#L776\n",
    "      # Mikolov et al., 2013: big - biggest and small - smallest\n",
    "      # Mikolov et al., 2013: X = vector(”biggest”) − vector(”big”) + vector(”small”).\n",
    "      \"\"\"\n",
    "      my_wv = my_model.wv   # 自己訓練的字典（KeyedVectors）\n",
    "      word_a, word_b, word_c, word_d = analogy.lower().split()\n",
    "      golds.append(word_d)\n",
    "      if all(w in my_wv.key_to_index for w in (word_a, word_b, word_c)):\n",
    "          preds.append(my_wv.most_similar(positive=[word_b, word_c], negative=[word_a], topn=1)[0][0])\n",
    "      else:\n",
    "          preds.append(None)\n",
    "print(\"OOV questions:\", sum(p is None for p in preds))\n",
    "\n",
    "# 模板在 TODO6 後面沒有評分格，所以這裡用 Part II 的 calculate_accuracy 印出成績。\n",
    "golds_np, preds_np = np.array(golds), np.array(preds)\n",
    "for category in data[\"Category\"].unique():\n",
    "    mask = data[\"Category\"] == category\n",
    "    print(f\"Category: {category}, Accuracy: {calculate_accuracy(golds_np[mask], preds_np[mask]) * 100}%\")\n",
    "for sub_category in data[\"SubCategory\"].unique():\n",
    "    mask = data[\"SubCategory\"] == sub_category\n",
    "    print(f\"Sub-Category{sub_category}, Accuracy: {calculate_accuracy(golds_np[mask], preds_np[mask]) * 100}%\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "e3471f57",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:41.719714Z",
     "iopub.status.busy": "2026-10-04T13:01:41.719714Z",
     "iopub.status.idle": "2026-10-04T13:01:42.062057Z",
     "shell.execute_reply": "2026-10-04T13:01:42.062057Z"
    },
    "id": "AjZ14dQL0mhf"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9QAAAL1CAYAAAAmU6yjAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAtLBJREFUeJzs3Qd0VFUTwPFJKKEGCL23ABHpNSAdVJqggBRRQEBA6XYQBFFAERQFpagUQaSpKDZ6ld57CdJrIJDQS7LfmYtvv900liU9/985e5J9fd9usm/enTvXw2az2QQAAAAAADwUz4dbHAAAAAAAEFADAAAAAOAmWqgBAAAAAHADATUAAAAAAG4goAYAAAAAwA0E1AAAAAAAuIGAGgAAAAAANxBQAwAAAADgBgJqAIgnq1atksyZM5ufce3EiRNm3zNmzEgU23XH7t27zbH8/PPPCfq4r1+/Ln379pUSJUpIlixZ5O23347zY0jKRo8ebd7b27dvS1KRFF+Tu/744w9zLrZs2RLfhwIgmSKgBpBk3bx5U3LkyCEvvfRShHnz5s0zF2GNGzeOMG/58uVm3jfffBOrx3f37l0JDg42P125YLQeWbNmlWLFikmHDh1k3759bu07LCzM7NudC/LDhw+b45g1a1aMbjemhYaGmmO5c+fOA5eNz+MeNmyYCeR/+OEHOXr0qHzwwQeSGJw+fVoGDhwo/v7+kjdvXsmfP79Uq1ZNunbtKitWrBCbzSYJwa1bt8x7GxvH8+2335q/hUqVKklSeU2PSj/Djv+vonu4crPL1f+j9+7di5HjB4CHlfKh1wCARCJt2rQm8Pzrr7/MhaeHh4d93uLFi03wpMGzBt66rGXp0qXmAk2Dg4TAumCcNGmStG7d2jzftWuXvPbaa+YYt2/fLkWKFEkQgWqBAgXk8uXLki5dOklM4vO49fP2xBNPxHlQ9ih++eUXc6OqcuXKJqguX768pEiRwtzg0SCzXr165gbBCy+8IEnZhAkTJHXq1LJ161ZZu3at1KhRQ5K7ggULyrFjx5ymNW3a1GSMHD9+3Gl6+vTp4/joACDm0UINIEnTC/tLly6ZANSRBtKvvPKKCQr/+eefCPO0ZbtUqVKSkGiwp6062bNnl/r168uXX34pISEhJtBOKDw9Pc0xapCRmMTncV+4cCFRBRY7duyQdu3amSBp2bJl0qxZM9M6nSdPHmnQoIHMnj1bFixYIGnSpJGkTG9kbdu2Tb766isTRMZ2Rkti+1tyfKRMmdLc0Aw/PVWqVPF9uADwyAioASRpGngqTUF17C/777//SqtWraR06dImgLZcvXrVtDZpIG65ceOGDBkyRMqUKWMCbV1n8ODBpu9r+DRHTd3VFG1tcdTAd9GiRWb+zp07pUmTJpI7d26z/nfffffIr61kyZLmZ/jWIG1B/uKLL0wqbs6cOcXX11d69+5tbixER1vsHS929bVqq+mnn35qT0vXAKpKlSrmd20ht5a10pSj6ous53XAgAHy+OOPm+2WLVvWpDpr6mpkfZ4XLlxo9pMrVy7zXmzevDnC8U6ePFmqV69u0o315ofeIAl/LiwP2l5kx+14PHPmzJEKFSqY9Z988knZuHHjIx2P0u3q9jV12vpdH/v373fatz6qVq0q2bJlM62gVlD7/PPPm5Z1K5D9888/nbavn1FdR9/X/v37S6FChUw/bQ0AlWZm6HTNbihcuLC8//77LqUQ63utKfL6GdPgKTLNmzeXFi1aOE1z5ZgfZrmVK1dKnTp1zHuin1NtNdduCHretFvCg5w8edJ8hvWc6GdSPx/6HrpKA2h9r5977jnp1q2b6UaimRvhWe+D/g3p34Ceb31t3bt3l2vXrjktq58/63Og/en1RoX+33D8HxWdmDx306ZNM88j+9v76aefzDzH/6vudBuxHnoc2rqv2Q2ONI37k08+Mceo/zs1E+L111+XwMDAaLev/5tbtmxpbnSEv2EKADHOBgBJ2K1bt2xp06a1PfPMM/ZpU6ZMsaVJk8bM69Onj61q1ar2eb///rtGFLbJkyeb53fu3LHVqFHD5uPjY5szZ47t+PHjtvnz59uyZctmq1atmu327dtmucOHD5v1XnjhBduLL75o27lzp23lypW21atX2/bt22fLkCGDrV69erYtW7bYDh06ZOvXr5+tffv2Zp0lS5ZE+xp++eUXs9yMGTOcpuv2dbpuyxIaGmpeqx6vvk493vXr19uqVKli8/Pzs129etUsd/ToUbPuN99847TNy5cv2x/Hjh2zTZs2zebt7W176623zPy7d+/aNm3aZNb96quv7MvevHkzyu3qvIoVK9py5sxpXose06xZs2yZM2c25+TevXtmue3bt5t1O3XqZOvRo4dt7969tt27d9ueeOIJ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mTlzptSrV0/++OMP2b59u+zfv988MmfOLH///be9FUFbDCI7zsDAQHn55Zdl/fr1kidPHhMwf/XVV9KuXTv7cYY/N9pKAQBIfKZNmyYDBw6Un3/+WapVqxbtsvp999dff5nvI23J1j7WesNWv3P0u0GzoTToVhpQ63crkBjQQg0AD6lHjx7mTry2tGpQWqRIERMkOtIW3ZUrV8q2bdtMwKgXCVYLtQaZfn5+8sEHHzitowXGNODdtWuXbNq0ScaPH2+2b+2zcuXKpnX72LFjJigOv88jR46Y9bQ1+ocffpD3339fUqRIYbbx77//miD4yy+/tC/frVs3KVCggDkeDYz79+8vbdu2NUF79+7dpUGDBubY9bitYPpBx/naa6+Z1gdtudbj0MBcj13PVVTnBgCQ+MyfP9/cFNXW6AcF00oDZOvmbsqUKU2ArTdhNZNJb9zqd45FW6819RtIDAioAeAhaBCrweAbb7xhvzB45513Iiz3/PPP21uCHdfVlllt4a1YsaL8888/TvNbtWoluXLlMr+XKlVKsmfPbgJhXU9bv99++23x9Lz/b1vv5oen62v/NFWjRg3z89VXXzXHqQ9t1dbAWWlr+LJly8yx64WN0hYDbXXXoD86UR3n3bt3Tat7w4YNTeu2BuK6Xy1qpgF4dOcGAJCwbTkWJB2nbJKqI5bKqkOB8niFqlKoUCEZM2aMU8ZUVPQGb3iataXT9btNv0MchX8OJFSkfAPAQ9C0ar0AyJIli32apktbQakla9asTs/HjRsngwcPNilumuqsgavemXcUfjxp3aZeUFj7dNym3rkPv09tGXZcN7Jp1gXK5cuXzTazZctmn68XNXps2v85OlEdp653794902KtaemO5ye6cwMASPjBdJvJGzQCllCbyKXgW3LhZlr5ZcYCGdCtnXTo0MGkf4f/XnKFrqMZWHPnzpXy5cubab/++muELCwgoSKgBgAXLybGLQ+Q/WeDJVWadDL379XS9+X71Us19VkDyahosPnWW2/JokWLpHbt2maa9lW2+oo9iLYGawCtqdLad1vt3Lkz2n26uk1tLS9cuLCZduLECTl37pyUKFHCfpHjSquD4zY1WP7www9N/zeLboOWBgBIvPT7zwqm/88m07deNFW7tcaHZh9prRCt5v2wtABZo0aNZMeOHebGrlYN15uxVlYWkJARUAPAQ96ZT1+hmbzZv6/cuH5dSubPavpC65e+lQIe4R9typSmqJf2N1Oadh2+/3R0rAIuPXv2NC3bWgzM2qe7dJuaQt63b1/Tf02Pb9iwYfL000/bWwiKFStmCsho/zhtldY09Qf55JNPpGvXrqY1XvuJa7/uiRMnmossHYILAJD4HDgX4hRMpy9ZR9OazHQNfPW7Yvr06WZ0hwoVKkjr1q2dbsi2b9/eKXNJvffee/bvFS3oqUG0dqnS7Wm3Je3C5OPjE3cvEnATATUAPOSdee8a7cUznbeMn/St1ClTWEaPHi1PPfWUpE2b1swvXry46TfsGLzqxcaoUaNMoTCdryngEyZMsC8Tfh2lFyUa6CpdT9OzNaVOLzC0uJhOs9Kpw6+vFy5aAEarkFvy5s1rglzHixktSqZVwLXCd/PmzU3fcIsWm9EhuoYMGWKCeC1M9qDj7NKliwmc9Tj1BoL+rmOJWsF0ZOsDABI2v1zeEng1UML++x5MU7CMeHrcn670+08LUFpq1arltH7dunUjbNMa/UFpIUu9+WxN+/777802tU4HkNB52MIPhprAaLVZTf3Qcemo9gcgPmgBlvMh/x9P2RZ6VzxSpJKc3l6ycWADU1xMLxa0X7Jjn2UAAJJSppaGDRpUazCtN4vndveXigUfvRVZR4LQDKkyZcrItWvXTCFOvemsfbOBhB6H0kINAA95Z/726f1yfc9y8a3fRH744bxpKe7cuTPBNAAgSapUyEfmdPM3GVua5q3fi33q+8ZIMK00c2ndunWmP7ZV3LJgwYIxsm0gttFCDQBu3Jm/tmeFPHZrr2ROl9qMnan9mymeAgAAkLxaqAmoAeAhqnzHxp15AAAAJCykfANADKe7Te9chXMKAAAAOwZ3AwAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADwH/+/fdf+frrr2XSpElun5MZM2bIrl27OKcAAADJAAE1AIjImTNnpHLlyrJz5065evWq2+fkq6++kk2bNnFOAQAAkoGU8X0AAPCwfvjhB3n88celXLlyMXbyfvnlFxNQP0zrdGwcBwAAABIPWqgBJDoTJkyQDRs2xOg2T58+LTlz5oz34wAAAEDiQQs1gATp5s2b8vvvv8u5c+ekbNmyUqtWLTP9jz/+kFOnTsmiRYvkypUrJgh++eWXzbwLFy7IihUrJCgoSKpVq+bUcqx9m3U7169fl+3bt0vhwoWlYcOG4uHhIQsWLJC1a9eaeR9//LFUrVpV6tata6YfOHBAPD09pUCBAvLUU0+Jj4/PA49DbdmyxaR+6/Rnn31WUqRIYZ/nynHeunXLbKNmzZpSunTpODnnyc1vv/0mWbJkMefYnfkxaffu3bJt2zbp2LFjrO8LAADEHFqoASQ4t2/flooVK8rYsWPlyJEj8sEHH0ivXr3MvBs3bkhoaKgJuDWQtfo7L1261KRfz5s3zwQnjRo1kk8//dSpb3P79u2lX79+smfPHunRo4e0bt3azNNAWvd5584ds03dtjVdn1+8eFG+//57KVWqlBw7diza41Djxo2TN9980wTj77zzjn0/rh7niy++KP379zdF0vSYEDtmzZplboi4Oz8mbd261XxuAABA4kILNYAEJyAgwASTGtBaLbvaqqyef/55+eKLL0yrrwbF6t69e6Z1WAPTTp06mWkakGpLrwanuXPnNtMyZswoa9asMds8f/68FCtWTP7++28TaOv2NXDWFmqLTnekQf2YMWNM4BPZcVh8fX3lp59+Mr/37NlT/Pz8TGu0t7e3S8eZJ08ec1yAZe/evSbjwTELAgAAxD8CagAJjga6GmS2a9dOWrVqZVJuy5cvH20ArunXR48edQqIvby8TNVuK1B97rnn7AG6pmLXqFHD9IHW1O/IhIWFyfLly+XgwYNy7do1CQwMNOnaD9KgQQP778WLFzc/NXVd13XlOLXVGnCkN3z0Bg4BNQAACQsBNYAEJ3Xq1LJu3Tr5559/zEODTw2wp0yZYvo8h3f37l17Gramblu6d+9uWnst2hfakQbXGjRHxmazmX7Uly5dMv23tXVbt3/58uUHHn+qVKnsv1vHq/vRFHFXjjN9+vSS1AUHB5t+6NpXvHbt2qYF1uqvbPUn1hsdekNDz5tO//HHH826mTJlEn9/f6ebLNY6jRs3liVLlpgUfL0xoX3fLSEhIWafmqZfp06dCMcU3fzjx49Hu39tPT5x4oS5AWTRPvjZsmUzN24e9JotetMm/PHrkG5aT0BvyFg3Yjp06GA+M/o51XOk3Qvy5s1rXr/+/TieE8fzqJkQAAAg5hBQA0gwthwLknHLA2TXoX+leG4feat5JRlQq5ZpldPW22HDhkn+/Pklbdq0Tn2LS5QoIVmzZjWBS/Pmze3TNcjQ4mOWP//8U9544w17cKPBeteuXSM9Fu0rvXr1atM/WgMoK+X75MmT9mXCH8eDuHqcSZ2m2z/xxBOSK1cuc6NEU+D1PGpGggaX2p/43XffNdOtomx600TfC6Ut/IMHD5b33nvPpMwrax3td6+F3jQTQPuxa8t/kSJFTKBavXp1yZ49uykCN2rUKLNNTc9XD5r/oP3rZ2XlypVOAfXMmTNNv3t9vx/0mpUesxa+C3/8eoNGuz9oQGwdg9V/X4NlvcmjAfqcOXNk6NChpsBehgwZIj2PAAAgZhFQA0gwwXSbyRu0aVhuXbwie795S/6c8pi8UK+C7N281gQh2gKnqlSpYoas0hZFnaYBt7Zed+nSxYwnXbBgQdm3b58cOnRINm7c6BQka8Ci403rclr4rFmzZpEej7b+6Xa0r7QGQhrYaNVtq8p3VMcRHW05dOU4k7pPPvnE3EBYvHixacHXYNMKXC2aGaD93TX93+KYJt+7d28TeL766quSJk0a+02SzZs3m5suSjMMZs+eLQMHDjTr5suXT5YtW2YyFc6ePRth29HN1+N70P4f9TVHd/xt2rQxN3Mcj0GDZ60foOngVlcGDbA1NVyD/ajOIwAAiDkE1AASBG2Z1mA61CaSKlt+ydVhjNw8tE42Hg2St197zfR/tlK2hwwZYgp9HT582F5dWwNjDXq1FVr7K2vLn05LmfL//+YGDBhgAl8NQAYNGmSqb1sp2fXq1TOtgI79mjW40TRfDUo0Vfb99983LZGWyI5DU3E1+Heklb615dOV44xs/aRGbx7o67bOvfZn1+DUkQab4YNALVS3atUqUzxOW2g1bV5TsbXl3+qvbgWj1nM9x0r7yrdt29b+GdKMB22Rtjxoviv7f9TXHN3xR0ZbxLUrgmOVeKWf2+jOIwAAiDkE1AAShAPnQkwwbfH0Si/pSz8pXt5e8sIL/y/yZbX0vvTSS5G2KkeVwm3RfqmRFf3SvqfhaRDcp08fp2mOY0ZHdhyvvfZahO04tio+6DgjWz+p0f7kkfVndxS+H7mmT2vF9KZNm5q0aaufumOfdse+60qDV6uP/IP2+aD5D9p/ZH37tfX4YV5zdMcfGU1D1xsxVhq49fnUFPfk1B8fAID4xDjUABIEv1ze4hkuJtHnOh1JI6W/45RNUnXEUrmcLp/M/nmhfZ4GpdpCHJ0ZM2aYNOYffvjBDF2mGQNWMTpXVKpUyWQFOO5z/fr1Ls9/0P5z5Mhh+lZbtH+z9mG2aPcCx6HQXHnNjiLrr69dEfSmjt6wsR46Zrv2pwYAAHGDFmoACULver6yNuCieIpNwmz3g2ltoetT37mfqbuSQyp1Yugfr1kIYSUay7rv35Aa9Z6S2tUqmwrWWkQrfAuuI02/1oJj2hqrVbIXLVpkr2btCk27r1q1qslE0OrcCxcuNOOCuzr/QfvXrId+/fpJixYt5PHHHzd9pR29/fbbZvtNmjQxrciuvGZHFSpUkCNHjpiiepo5oZ9nLYym1cj12LTLgh6bVvMeMWKES2noAADg0RFQA0gQKhXykTnd/E1fak3/1pZpDaYrFvx/EbBHkRxSqRND/3jl6Z1D8nb+Uu4G7TRF3rT1V6tlWwGsVqPu1KmT0za0/7reENmxY4dJudbiYZMmTbIXqotsHS3QZQWsWnBM+87PmzfPBMTa0rxnzx5Tdd2V+Q/avw6PpfN0fb0RNH36dNNCrX2llQ5/pfPnz59vtu/Ka3Y8fi1optW7dUgtDZy1D7f2n9b+0hqc6xBceiwauFtDhUW2TQAAELM8bDqIZQKm1XN1yBqtfurYWgAASBw0zft8yP/H3Vb3gs9L3vwFZOPABqaithbP0pTrpJyurFXmCxUqZH5PLq8ZAIDEytU4lBZqAECs0myDwKuBJpXfErjgY0nvV1reurzIDA319NNPS61atZL0O6FDsGlfbU31Ti6vGQCApI4WagBAnPSh1oQoq3+87c5N6ZDrrHjdvSplypQx1bOTOh1aTVO+tXU6ubxmAACSegs1ATUAIE6C6tjqHw8Aic3EiRNNQUG9uQYgYSLlGwCQoIrOTe9cJb4PAwAAIEbRhxoAAACIQz169OB8A0kEATUAAADgpvHjx5ux4E+dOmWG2ytevLhTjQRrvtZP0OH5dN7KlSudUr6tZc6fPy/btm2T/PnzS8uWLSVFihT27Rw/ftyMNa/1GJ555hkznJ7jPB3OT+fVrFnTjF0PIG7cH+ASAAAAwEPTYLhFixYyatQoOXnypLz22mvy0ksvOc3X4Hj06NGmuJHVh3rXrl1Oy+hIAJ9//rmcO3dOBgwY4DSOvI4MoGPLL168WI4cOSLNmzc3wbmaN2+eCaDXrFljhudr3LixjBs3jncSiCMUJQMAAADc5OfnJ8WKFZOFCxea59pSrc+XLl0qTzzxhJmvQ+bNnDnTvk65cuXkzTfflBdffNG+jTp16phAW23evFn8/f3l5s2bcuvWLSlQoIB8/fXX8sILL5j5165dk6CgIPHx8THzZsyYIU2aNDHzdu/ebdY9c+aMqVAMwD0UJQMAAADigLYYW/LlyycVK1aUTZs2mYBa6bjzD6IBtcXX11fCwsIkMDDQtDrfuHFDWrdubZ+v49nrY/369XLlyhXZuHGjCcItuu6+ffukWrVqMfgqAUSGlG8AAADgEXh4eDg9t9lsTs/Tpk37wG2kTJkywvZ0O9a2wu9DhYaGmn7Wnp7Ol/TvvPOOZM+e/SFfBQB3UJQMAAAAeAhbjgXJuOUBcuBciJwNviXTf5wvXbp0MfNOnz5tCot98sknMXJOtXCZBuRz5syxp3xfv35dLl26ZOalT59eatSoIQ0aNLCvo63V2soNIPYRUAMAAAAPEUy3mbxBm48l1CZy806obNi+R/xr1pXqlcvLTz/9JM8995wJcmOCt7e36T/drVs30087Z86csmLFCpk2bZrpP/3NN99Iu3btTFp5njx5TB9qTQPXdHAAsY+AGgAAAHCRtkxbwbTSHz61XpQMhXNL3rx3TcVux2GzevXqJSVLlowwDrU1ZFZky6RJk0aGDBligmnVvn17M8yWDo2lRcr69esnhQoVMvO0Orj21dYiaBcuXJDXX3/dqbUaQOyiyjcAAADgoqojlsr5kNv256e/6SGZa74oRarUl40DCWSB5Fblm6JkAAAAgIv8cnmLZ7j6YPpcpwNIfgioAQAAABf1rudrKm5bQXWmik0kdfaC0qc+RcCA5IiUbwAAAMDNKt/aMq3BdMWCPpxDIBmmfFOUDAAAAHgIlQr5yPTOVThnAEj5BgAAAADAHfShBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaABDnvvrqK/njjz848wAAIFEjoAYAxLklS5bI9u3bOfMAACBRSxnfBwAASHhmzpwpK1euFA8PD8mbN68899xzUrZsWfv8kSNHSu3ataV69er2aV27dpVhw4ZJnjx5ZNy4ceLr6yt3796V1atXS+bMmaV79+6SPXt2mTdvnuzYsUNOnTolx44dEx8fHxk1alQ8vVIAAAD30UINAIigcOHC4u/vL1WqVJHr169LnTp1ZNWqVfb5v/76qxw6dMhpne+++06CgoLM74sWLZIuXbrI7NmzpUCBAiao1gA8NDRUChYsKFmyZJH8+fObfZQvX553AAAAJEq0UAMAInjiiSfMw6Kt1GPGjDFBsauqVq0qs2bNMr937tzZtFIfOHDABOkaVFesWNG0agMAACRWBNQAgAi0VXrOnDmyd+9eCQkJsadnP4zKlSvbf8+QIYMJqC9evMjZBgAASQYBNQDA2HIsSMYtD5AD50Lk3+/6ScEcWaRty+ZSokQJSZcunezevdt+pjw9PcVms9mf3759O8JZ1GXCc1wHAAAgsSOgBgCYYLrN5A0a8crdWzfk4r97Je2T30idVi2kUiEf6dWrl9NZ0hRwxwD7t99+e6izmDFjRtMKDgAAkJgRUAMATMu0BtOhNhFPr3SSpmA5OTt7kLTZ+ZNkDb1kiok5eu2116RJkyYSEBBgWp1v3LjxUGexQYMG0r9/fzl9+rTkypWLKt8AACBRIqAGAJg0bw2mLTlafyC3ju8SCbsqX73dyrRIO1b5rlu3rulfvXHjRjNPh8+aOnWq+V316dPHBMqOxo4da9LHVceOHaV06dJmGylT8lUEAAASJw9bAu/QpsVwMmXKJMHBweLt7R3fhwMASVLHKZtkzeFACXP4RvD0EKlZLLtM71wlPg8NAAAgwcahjEMNAJDe9XzFw8PDBNHmy8FDzPM+9X05OwAAAFEgoAYAmMJjc7r5mxbpnN5e5ufc7v5SsaAPZwcAACAKdFwDANiDatK7AQAAXEcLNQAAAAAAbiCgBgAAAADADQTUAAAAAAAk1ID62LFjcvjwYbl7925c7A4AAADhvP322/L6669zXgAgsQTU33zzjRQuXFjq1KkjDRs2lLx588rMmTNjc5cAAACIxI0bN8wDAJBIqnyfPHlSVq1aJQUKFDDPJ06cKJ06dZJy5cpJqVKlYnPXAAAAAAAk3hbqYcOG2YNp1a1bN0mRIoWsX78+NncLAAAAAEDSKkq2Z88euXPnjkkDBwAASC7mzp0rFSpUkKJFi8orr7wir732mr0/86JFi6RMmTLy1VdfScWKFaVSpUqye/duyZw5s3nkz59fnn32WTly5Ih9e9Y6mv2n2y1YsKD07NnTXGdZfvrpJ7M93ac2aly/ft0+7/z589KuXTuz3uOPPy6ffPKJhIWF2ecvXrxYatWqJfny5TM/lyxZ8lD7BoDkIs4C6ps3b0qXLl2kevXqUq9evSiXu337toSEhDg9AAAAEivNzNMub1oUbOXKlSaAnTBhgr0/sxZt1QB6w4YNMm/ePFmxYoWULFnSFHXVxz///CO+vr4mqLaCXmudrVu3msD5l19+kYULF8p3331n5m/cuFHat29vgnbdZ4kSJWTatGn2Yxo4cKBcvXpVli9fbtbV663Vq1ebeVu2bJGmTZtKx44dzbG/9NJL0qRJE9m2bZtL+waA5MTDZrPZYnsnesfyueeek0OHDpl/1rlz545y2aFDh8oHH3wQYXpwcLB4e3vH8pECAADErK5du4pebjkGnDVr1jSBtbby/v7779KyZUu5fPmypEuXLtJt6PrZsmWTNWvWmGBb12nTpo25PkqZ8n5JHA2e9bnuR/cZGhoqU6dOtW+jRo0apoaNVdMmTZo08vXXX4unp3P7iraga4A9Z84c+zQ9vqxZs8rkyZMfuG8A//+73bVrl7l5pTWkAgICTPfX0qVLm5tlp06dMn+XFr1p5eXlZf43WM6cOSP79+838ZP+7YcX1Xxreu3atU2W8JUrV0z2S4YMGXh7XKT/BzNlyvTAONQzLoLpVq1aycGDB80d1+iCaTVgwABz0NZDC5sBAAAkVsePH5fixYs7TdMWY0e5cuVyCqY1Pbtfv37mAlkD6SxZspgLYsfrouzZs9sDWqXrW2ndus/w+/Dz87P/rine9+7dMynb2vKtgbcG4Na6jz32mNO6+lwDAFf2DeB+1m3jxo3NSEdDhgwxAbV2vbBuOv39998yaNAgp1P15Zdf2m+CaTDet29fE3x//PHHJkukUaNGZruuzF+3bp3JLtHRlvr37y+9evUy/wNOnz7N2xPDYjWg1pSg559/Xvbt22fSjbQfzoPoXRm9A+D4AAAASGy2HAuSjlM2yfaLIlMXbzHPLeEbDDw8PCJk7Gnq9axZs8x1lAazGlTrtZUrtAEj/D5OnDhh/z1nzpzy7bffyo4dO+TTTz81LdX601rXcVkryM6TJ89DvHogedNuHVr34MCBA7Js2TL5888/TVcJV02fPt10pdBGSa1hoD+1m8gXX3zh0nx17tw5GTlypGnU1H0XKVKELJLEFlC/8MILpm+O3jXRlAbtG6QP/R0AACCp0uC5zeQNsvZwoHj6PiGH//lLmg+ZJpuPXpIFCxbI0qVLo13/4sWLptVaW4a1MJlenF+6dMnl/WvBsZkzZ5o+0NqSpfvUi3rLG2+8YVqwtJVaA2hNA9VCZdb1m6Z760W4rqsX69q3+8UXX3yEMwIkL/r3pnUMNGVYaZZKgwYNXF5fg2Vt1V67dq35+9WAXGsp6JDErsxXWtBQu5dYN+20SKHeHEMiGof6woULpg/A6NGjnaZrvx59AAAAJEXjlgdoTqaE2kTSFa0sd/1bybm5Q6T6nEFSu0Z1kwqaOnXqaLvAtW7dWjJmzGiy9/TCXKtpu0pTPwcPHmzSQLX7nRaF1dRui3bHe+edd0xhMS10phf6WqhMPf300zJmzBiTLqrXctqaramoDxMMAMndtWvXIvRXflD/ZcfSVlpTQf/+HIsJKqs7xoPmq7Rp0zrN0/7bVtcOJJKA2vEOCQAAQHJx4FyICaYtmfyfN48c6VPK0sFPm0JBVlc47WOphYscaWuWpmPfunXLBN5aOEwLG1kXyJGto/0xHYe+evPNN81DW6G1v7OOuGKpVq2aKRSrKeQ6L3zKeY8ePcxD56dKlcppniv7BpJrZoreTNO//2DPbPL7khUmG0Tp36FW32/WrJl5rl04NCB2pGnZ1mhI5cuXl6NHj8rPP/8cIXvFlflIIgE1AABAcuSXy1sCrwZK2H9B9ZU1MyVTxaZSokhhmTJlikm3/uabb8w8DWijqhmjlbgt2lptiWwdx2UdWcXDwrdWqfDBsivzH2bfQHLr5mFlpoQWbyirpvSW51/qIs2frmu6UQQF/b+Ogt5U01oFWiFfq2//9ttvJkB2zFLRooHaBUMzTvSG2q+//mqyTvr06fPA+Yg7BNQAAAAxrHc9X1kbcFE8xWaC6lSZcsjpaX1lzu2rsrFgQdOqFL7yN4Ck0c1DpciUS/J0/Ez2Hl0p3itWmC4U2n3CojUSNJtXb6xpvQKte6BdM6ybVVrdf+/evWaoOu2PrTfUdCz7+vXruzQ/b968Ebpp6LB5OhQUEuE41HEx/hcAAEBCTf/UFus+9X2lTJ6MD2wVBpD4VB2xVM6H3B+yylFOby/ZOPB+YKs1pLQf9dixY+PhCBFbcSgt1AAAALGgUiEfmd65CucWSIbdPJSnx/3pSNpiddgsAAAAAEgO3Ty0uJ8G0Up/6nPNTLFoIbHSpUvH30EiVpDyDQAAAACx0M2jYkEfzmsiRco3AAAAAMQRunkkT6R8AwAAAADgBgJqAAAAAADcQEANAAAAAIAbCKgBAAAAAHADATUAAAAAAG4goAYAAAAAwA0E1ADgolu3bsmdO3c4XwAAADAIqAHARa+88oqMHj3a5eD77t27nFsAAIAkLGV8HwAAJBYzZsxwedm2bdtKpUqVZNCgQbF6TAAAAIg/tFADQCRCQ0NdTvkOv6wuo9P057Vr1+TGjRsub99q1db5ji3ckS0PAACA+EVADQAOvvnmG8mXL5+kTZtW/Pz85Pfff7fPe/HFF2XEiBEPXPaDDz6Qv/76Sz755BPJlSuXlC9f3ky/efOmvPHGG2Za+vTppXLlyrJ161b79lq1aiU9e/aU2rVrS9asWWXChAnRHg8AAADiFwE1APwnODhYevToIdOmTTOty3/++aesWLHioZcdPny4NG3aVAYPHmxaqA8ePGim9+vXT7Zs2SKbNm2S69evS9euXeWZZ56Rq1ev2rc7Z84cs/7ly5elY8eOLh8PAAAA4h4BNQD8J1WqVJIuXTrTkmyz2aRIkSIyZsyYR15WaUA8ZcoU+eijj8THx8es1759e/H29pbVq1fbl3vppZekRo0a4uHh8dD7AAAAQNwioAaA/2jwqi3A2kpcsWJFadasmSxatOiRl1WnT5+We/fuSaNGjUzKt/U4deqUnD171r6cpne7uw8AAADELap8A0j2thwLknHLA+TAuRDxy+Ut/T76UioV8pGNGzdKzZo15dChQ1KoUKEI50mreM+cOdP8Hn5ZT09P06rsGChri/OaNWvsfapdEd0+AAAAEL9ooQYgyT2YbjN5g6w9HCgnAw7IT5+9K82HTpel2wPkzJkzprq2Y2Bs2bVrl0nP1v7Qly5dirBs3rx5Zfv27RIUFGSqfGsw3adPHzOW9bp16yQwMFDWr18vrVu3liNHjkR6bA/aBwAAAOIXLdQAkjVtmRabTUJtIqlzFJa0RSrKpSWTpOlPw6S0n6/MmjVLChcubJbVStupU6c2v5cpU8akb2uQrAGxthg7Ltu3b1/p3LmzFCtWTLJly2YKk3388cfy1VdfSe/evU2qd/HixU2hsqJFi0bYviv7AAAAQPzysCXwpo6QkBDJlCmTqairxXsAICZVHbFUzofcjjA9p7eXbBzYgJMNAACQDIW4GIeS8g0gWdM+054eztP0uU4HAOBhLViwQCZPnsyJA5IJAmoAyVrver5miCorqNaf+rxPfd/4PjQAQCKUP39+090HQPJAyjeAZC98lW8NpisW9En25wUAACC5CnEx5ZuiZACSPR0ia3rnKsn+PAAAnM2bN0+uXbsmBQsWlMWLF0vGjBmlY8eOZihEx/lFihSRJUuWmJZpvQC/cOGCdOvWzWkZX19f+fPPPyVFihRmG46t2Lq8Fp08fvy4VK1aVdq2bWufd/78efu8EiVKyMsvvyxp0qQx83S7M2bMkP3795tj7NSpk2TNmvWB8wDEHFK+AQAAgEhs3LhR3n33XRk0aJDkzJlTduzYIRUqVDAjNVjzBwwYIB988IHkyJHDjNqwZcsWWb58udM2dJnhw4dLrly55NixY1KlShUzHKLSbT722GOyYcMGKVCggPz6668yZMgQ+/CJpUuXlj179pig/ffff5caNWrIvXv3zPxWrVrJDz/8YILzixcvSv369SUsLOyB8wDEHFqoAQAAgCh4enrKsmXLzNCG/fv3l4YNG8qnn34qX3zxhZmfPn1603qdMuX9y+q///47wja0ZVhbp3VbOsCOBscrV66Uli1byuuvvy7t2rWT8ePH25c/c+aM+fnGG2+YIRh12EXVq1cvKV++vMyZM0fat29vgvW//vpL/P39zXwdZlHrgKjo5gGIOQTUAAAAQBSqV69ugmmLtvRqS7FFW5utYDoqFStWNMG00qA2b968ptVYaYu2toI7ypMnj/m5adMmkyLetWtX+7ybN2/K7t27ze/act6hQwcTmOtxNmjQwB40RzcPQMwh5RsAAABwKFTZccomqTpiqfy1+6xcuHLd6dzcvn3b3odZeXl5PfiC+79g2pG2VFvra5AcmdSpU5t0cG1lth5vv/22NG/e3N6CrQF57dq1ZenSpaaPtZWOHt08ADGHgBoAAAD4L5huM3mDrD0cKOdDbsupKzflnzWr5I/1u+3BtBYZq1mzZoydL205njhxoty9e9c8Dw0NlX/++cf8/uSTT5q+1l26dDGt1PrQPtQ+Pj6mH/Uff/xhqg9rGvrYsWNNS/maNWuinQcgZhFQAwAAACJmCEWx2ST0fuOxiE0kZaYc0u7ZxtKmTRspU6aMaTXu27dvjJ2vMWPGmCrfJUuWNNW9tQjZ4cOHzTwNhAMCAsw87TOtrc26jKaBa/r2pEmTpFy5cvLiiy+a6uDaEq4p6dHNAxCzGIcaAAAAEDFp3toybbm8/DsJvRkixZp2k/erpJIMGTKYoFaDaquP861bt6RWrVr2dbZu3WrGr61bt26Uy2gfbB1Gy8/Pz94qrVW+NSW7UqVKplq4Y2r45s2b5ciRI2a4rmrVqjn12db+1PrQKuN6bKlSpXJpHoCYGYeagBoAAAAQMX2n1xwOlDDb/wPqsJsh0qL/CJneuQrnCEhGQlwMqEn5BgAAAESkdz1fky7taRXD1p8eIn3q+3J+AESKYbMAAAAAEalUyEfmdPM3fakPnAuRx598Rp4tk10qFvTh/ACIFAE1AAAA4BBUk94NwFWkfAMAAAAA4AYCagAAkKydOHFCzpw5E9+HAQBIhAioAQBAsvb+++/LZ599Ft+HAQBIhAioAQAAAABwAwE1AAAAAABuIKAGAACJpo/zyZMn5eLFi5Eud/36dQkICJB79+5Fuf7x48fl6tWrUe7rYbev0/bs2WN/fuPGDdmxY4f5adm7d69cu3bN5dcLAEg8CKgBAECC7+P8yiuvSOnSpaV+/fqSP39+6dmzp31+SEiItG/fXnLnzi2NGjWSHDlyyA8//OC0fpcuXaRYsWJSr149yZ49u7z99ttO+9i/f79b29eAumzZsnL+/HnzfN68eVK+fHmZP3++ea7BeZkyZaIN4gEAiRcBNQAASPA2b94sv/76qxw6dEi2b98ukydPln379pl5b775ply6dElOnz4thw8flr///lteffVV+ffff+3rr1y50gS7R44ckZ07d5r1FyxY8Mjb1+D68ccfl2XLlpllly5dKtWrV5clS5aY5zrdz8/PBOMAgKSHgDoJqVy5svzzzz/xfRgAAMS45557TooUKWJ+1wC1QIECJv1a/fjjj9KyZUsTLGu6derUqc0yVpCrmjVrJuXKlTO/lyhRQlq3bi0LFy6Mke03aNDABNJKp3388cf25/pT5wMAkqaU8X0AiDk///yzSWNzRYUKFeTrr78Wf39/3gIAQIKXMWNGp+epUqWSO3fumL7J+tBhr7y8vJyWCQsLs/+eLVs2p3n6fenY9/lRtq8Bc48ePUxf6QwZMkjNmjXNz927d5sA+4svvoiBMwAASIgIqJMQ7fPlKi3QcuvWrVg9HgAA3LXlWJCMWx4gB86FyKXDF8U/VYZIl9PANV++fPLRRx+ZVmRHGhBbNI3bkT4vWbLkA4/Dle3Xrl1bzp07Z25UP/nkk2aa/pw0aZIpclanTp2HeOUAgMSElO9E5ptvvpEnnnjCFDh57bXX5PLly1GmfEe1rKa16e9t27aVQoUKSe/evc10DbCHDBli+n5VqlRJBg0aJLdv37ZvT7ejaW/PP/+8PPbYYxEuTgAAiKlgus3kDbL2cKCcD7kt50Nuye+7zpjpkRk+fLj06tXLfO+tX7/efFdpkKstxvZtbtliCpGtXbtWhg4dKitWrDD9oF3xoO2nT5/eZHzpfCu9W39qP+wqVapEaP0GACQdtFAnIhosv/HGGzJr1izTz0ufjxw5UkaNGmXm613wmzdvPnBZvYO+atUqGTt2rLkA0AsBK9DW9LUxY8aY/mHvvPOOudiYMmWKvVVbp3311VdSqlQpyZMnTzyeDQBAUqUt02KzSajt/vMU3tklRZoMZvr0zlXMNL2xmzlzZvN7hw4dTJ9nDWinTZsmhQsXlhEjRphq2xb9PkuXLp0MHjxYsmbNKqtXr5aiRYuaebpulixZnI7hYbffpk0bU8m7bt265rlWE9diZTodAJB0edhstv++rhImHaoiU6ZMEhwcLN7e3pKcWVVFtU+WpqApDYA9Pe8nGuTKlUtmzpxp7oo/aFntS6ZDelhpaHrnvkaNGhIYGGi/k64BesGCBU3fMb0I0QuL0aNHS9euXePpDAAAkoOqI5aalunwcnp7ycaBD1/gq1OnTuZ7T7/DAACIyTiUFupE5Omnn5aOHTualGztL613wTW4te6gu7usOnDggISGhpoxOB3p/ZajR4+au+yqePHisfTqAAC4zy+XtwReDZQwh1v+nh73pwMAkJAQUCeywix+BRrLlN/6SJ7Ut0wKt7ZGa+tyeB4eHqaPmD7OnDkTYVmd70hbt7VlWsfpDM8xtdtq4QYAILb0rucrawMuiqfYTFCtwbR+b/Wp7+vW9iJL6QYAICYQHSWiwixHt6yUvxf+Iq0nrJUzd9KYvlv//vtvpOstWLDApHTfvXvXBMThl9XUN03ptmjxMp02ffp0yZs3rylWphcv48ePN/2pAQCIK5UK+cicbv5Ss1h2k+atP+d295eKBX3c2t6wYcOkf//+MX6cAADQQp2ICrOkzl1cLi//VgL//EJqTkgjPhnTmgqikdGqoq+//rp07txZ0qRJY8bTdFy2X79+ZszM9957T5o3by7jxo2T33//XXr27Gnu4us62ldAhwkBACA+gmqrABkAAAkVRckSYWEW2727ktUrVLZ+1MIpdVtbnLNnz26CYYsOe6VVR7Wiafg0bx0/88KFC+Ll5WXWc5yuhch8fJxbArTKd86cOc3yAAAAAJBUUZQsCRdmSZEqlZQumidCgKzFx8LT4DeqAFhTufPlyxfp9PDBtNUHDQAAAABwH32oE0FhFg2ctSCLetTCLAAAAACAmEFAncwKswAAAAAAYgZFyRIBCrMAAAAAQMJDCzUAAAAAAG4goAYAAAAAwA0E1AAAAAAAuIGAGgAAAAAANxBQAwAAAADgBgJqAAAAAADcQEANAAAAAIAbCKgBAAAAAHADATUAAAAAAG4goAYAAAAAwA0E1EASd+bMGfnoo49ifT+rV6+W2bNnx/p+AAAAgISCgBpI4gioAQAAgNhBQA3goa1du1ZmzZrFmQMAAECyRkAN4KERUANIblq1aiUnT560P1+xYoV07dpVOnfu7PY2hw8fLgsXLoyhIwQAxIeU8bJXAHHu8uXL8scff0hQUJA0aNBASpYsaU8JnzJlivTu3Vv+/PNPc8H49ttv25c/f/68lC1b1qyj9u3bJ0uXLpUTJ07I0KFDzbTXX3/dvp9///1XlixZIqGhofLss89Knjx57PNu375ttqnLFC1aVJo1ayYpUqSw98HWY6lcubIsX75cMmfObC5gFy1aJLt37zbbad68uWTIkCGOzxwAiPz000/mf17+/PnN/z/9//XJJ5+Y5+5as2aNeHl5yTPPPMMpBoBEihZqIBm4d++e1KxZ01y8bdu2zQStv/32m5mnQaxeJNapU0dWrVpllj106JCUKlVKvv/+ezl16pR06dJF2rVr98D9bN++XVq3bi2HDx+W33//3QTily5dMvPOnTsn5cuXl3HjxsmFCxdk1KhRZp+6Pyugfuedd6RFixZy8OBBsdls8tprr0nPnj3N8hqk16pVS27cuBHLZwsAoqf/jypVqmT+R7kaDH/88ceyYMECTi0AJDG0UAPJgLYWDxo0SNq2bWuelytXTvr27WtaWKz5I0eOlIYNG5rnzz//vFSvXl3mzZtnnr/11ltSrFgx+euvv6RRo0amtVrTvq0WascW6JUrV9pbkf38/Exg3bFjRxkwYIAJsH/88UczLywszFyQzpgxQ15++WUz7erVq7Jjxw7JkiWLea4t5ZMmTZKnn37aPNeWbQ8Pjzg6awAQOb3JlylTpoc6Pfo/EwCQ9BBQA8mEpktbNBW7f//+EhgYaJ57enraU7rVpk2bTCqjRdOt/f39ZePGjSagjooGyI4p2ZrWrS3TVgu0BtSOQXiqVKlky5Yt9oBaW86tYFppy/gbb7wh+/fvlyeeeEIqVqxojhVA8jJ37lxZvHix5MiRw/RZfvfdd+Xzzz836dbaD1kzai5evCgbNmww/9+064p2TdEbcPny5bPfJLRY62jXFg109f+O3mTUZS3z58+Xv//+2+xT/xdZJk6cKD/88INZV7ul6P/OHj16mOlR7XPatGmydetWOX78uPmfp9v8+uuvzTzNxtH5UR2HrqevX/9f6//IV155RVKmvH/5Ftlrb9KkSZy8JwCA+7gyBZKB8K26egHnSANb6wLNmu9OS7DjNqz9WvvSVvDw8zU4r1+/vv152rRpneYPHjzYtHBrf2q9eH788cdNCjqA5ENv7vXp00dKly4tuXLlMpk12p85ODjYzNeuLBpk6w2/evXqSYkSJUzgqRk52gUla9as0rRpUxPsWnQdDZI1uNWuJAEBAWZdqwvK6NGj5dVXXzXBas6cOZ2CVN22HkvevHnNPvS5NT2qfWp3F11ebyrqMo5p4vr6ojoOzejRzCG9Uanz58yZIy1btnR6HeFfOwAgbtFCDSRRW44FybjlAbJly2YT1I797kcZ0Ot+NVqtKluwYEHJnj27aTEJr0qVKvLLL79ImzZt7P2stfVDW4tVunTpTHr3w9A+3FqAzLGFWlt4rD7Wkdm8ebO5SO3UqZN5aAu4Hrte6AJI+jSw/Oijj0wLrZUdo0Gj1T3FosHm5MmTnaZpRovF29tbvvzyS6dMHO1KMn78ePO7tjRnzJjR1H/Q7i3Dhg0zQwNqUKyKFy8ujRs3tm9Xb+7dvHnTrOe4v6j2qYG03gzQAN1xneiOQ7vM6I2ECRMm2NfRVu8CBQqYVmtrX5G9dgBA3CGgBpJoMN1m8gZtapYb1++KeHjKkGHDZMv6NeKd+n76pKYsRkXTCLVgmF60ajVwbQ3SFhrrglLTvzXlUqt760WjY5XvqHz66aemNVoD62rVqplUcG1V0cJnvr6+ka6jfahTp05t+nwfO3bMtN7UrVv3Ec4MgMREb/hdu3bNdPmw1KhRI9KbgI70Rp2mUeuoBCEhIXL27FlzA8+RBrkWvUmogayOgqD71HoO+r/KokHrg7iyz8hEdRxaSVxTuXWbs2fPti+jN0j37t1rD6jDv3YAQNwioAaSIG2Z1mA61CaSIoOPZKrxgmSq2FTOX90vtUpnkTfffNO0sFj9o7VgmSNtAdKLQk231mGzvvnmG3nqqafs8/UCbtmyZfLPP/+Yi13rgjN8YPzCCy+Y1hSlrTM7d+40Q3NpFfEyZcrIF198Ye8zHdn6Os6rpkxq9XBtIdIK4dr3EEDyyLDZdfiYeb7uwClpWOX+UH/Xr1+PsLx2W3Gk/0/0f4beCNTiYZrtojcSHUVWj0GD1fTp09v3YxUei2yf4bmyz8hEdRwaXCtND9cUcoumjFeoUCHK1w4AiFsE1EASdOBciAmmVcqMWSVz9fvVve9mryF9+/4/5TGqgFppoPvSSy9FuQ9tZdZHdC04GlA70j7UVmXx8KJqAdJ0Scc0TQDJJ8Mm1JZeUmXNJy+8OVIWf/+FVCrk88D0Zm3d1RuCOjSgFkbU4FS7irhKb/499thjZj9WFxUdbeBR96lBtrZcu0q75GiXFy2w1r17d/t03a5mBgEAEgYCaiAJ8svlLYFXAyXMofaYp8f96QCQWDJslM/TvSTw54+kcYOd4psjg70FWWsyRMbHx8e06mpquNZd0IwYLSz2MDQrR2/+LVq0yDzXwojRcWWf2h9bq4Hv2bPHVPG2qnxHZ+bMmaaWhQ5hqBk82rdag30tQAYASBg8bOHL/SYwejdX7+pqNU/uyAIP18Kjf94aVGswrRW353b3l4oFfTiNABKsqiOWyvkQ56KHobeuSfqQ4zKn79MmuC1UqJAZC1pbcXW4Ke0KounWjnT4P63VoHUgtF/ytm3b7IXNIltHW5e1r7aVXn3lyhVTfVv3oVW9f/75Z9P1Ra9FDhw4YPpHO2bpPGifSgNiXVezdXS6K8cRFhZmgvDTp0+b7jhFihSxLxvVawcAxF0cSkANJPE+iJr+rS3Tfer7EkwDSPA6Ttkkaw7/P8PmTuAxSZkuk9QtX1ymd65iakDo8FEadDoW6wIAID4CalK+gSRK+xrqxScAJCa96/nK2oCL4in/ZdikSCnnZr0rB7YXldKfB5lq2h07djRFCwEAiG8E1AAAIEHdDJzTzf//GTbFy0u31zfIvfNHTKq0DqP3448/ElADABIEAmoAAJDwM2z88sXX4QAAEKWIgx8CAAA8ovHjx8sbb7zhNO2VV16RqVOnmt9/+OEH6dChg3z77bdmaDztEx2+8vWOHTukffv2ZvgoTfM+c+ZMlPvTZXWoPq2y3bJlS1NQDACA2EZADQAAYtzFixdNZWpHOqay9oFWWiVbU7c18B05cqT06dPHBOCrVq2yV8zWKto6TJQG2vXr15fBgwdHuq+tW7eaIauqVq1qxo/WAF2HlgoICOCdBQDEKlK+AQBAvNDxmCdMmGCG9dNWaG21/ueff6R27doyfPhw0yo9aNAgs6zO1xboyOiyOsZz3759zfMKFSqYIFuD61GjRsXpawIAJC8E1AAAIF4ULFjQBNMWHZZEhylRBw8elObNmzstr0XJIrN//35Zv369/P777/Zp2hJes2bNWDt2AADMdxOnAQAAxIQtx4Ls1bnv7DovWW5ed5pvBcuuyJkzZ7R9ph1lz55dWrRoIS+99JLT9AwZMri8PwAA3EEfagAAECPBdJvJG2Tt4UA5H3Jbztgyy+q162TZjiNm/tKlS02/aFdpercWNtuzZ4+9z3X4omUWDaTnzp0rqVKlEj8/PylevLjpP719+3beWQBArKKFGgAAPDJtmRabTUJt95+nKVZNUu9eJg2rlpJcObJJyZIlTd9mV3Xr1k3Onj0r/v7+kilTJgkNDZWJEydGuqxWD9cUb+1nnT59etMSXrduXfnyyy95ZwEAscrDZrP999WXMOmXon6RBgcHm75VAAAg4ak6YqlpmQ7PJ8UtWf5WfcmcObOcOnVK0qVLJz4+PnLlyhXzHV+gQAH7shpAaz9pTeG2hIWFmdTvPHnyiKfn/cQ6vSbQ9bUPtiO9pNFldftp06aN1dcLAEjaXI1DaaEGAACPzC+XtwReDZQwh9v0nh4ipYvmN8G0VdXbotOs6ZbcuXNH2K4G0Y7rKb3A0Ud4WuAsb968vJsAgDhDH2oAAPDIetfzNQGtBtHmAsPjfoDbp74vZxcAkGQRUAMAgEdWqZCPzOnmLzWLZZec3l7m59zu/lKxoA9nFwCQZJHyDQAAYiyont65CmcTAJBs0EINAAAAAIAbCKgBAAAAAHADATUAAAAAAG6gDzWQiBw7dkymTZtmxmotU6aMdO3aVby8vOzzly5dKn///beEhoZKgwYNpEmTJvZ5H374oVSrVs2su2HDBjPOa69evSRbtmwubRsAAACAM1qogUTi+vXrUrVqVTlx4oRUrlxZDh8+LO3bt7fPHz16tLRu3Vp8fHwkT5488vLLL8vQoUPt8xctWiQvvfSSrFu3TsqWLStr166Vp59+Wmw22wO3DQAAACAiD5teTSdgISEhkilTJgkODhZvb+/4Phwg3hw6dEgef/xxE/ymTp3aTLtw4YLkyJFDbty4YVqaf/zxR2nevLmZt2zZMmnUqJGcOXPGzKtRo4b4+fnJt99+a183Z86ccvLkSbN+VNsGAAAAkpsQF+NQWqiBRKJYsWLSoUMHqVKligwePFiWLFkiWbNmNfOOHDkiN2/elPr169uXr127toSFhcn+/fvt0ypUqGD/XYPlFClSyKVLl6LdNgAAAIDIEVADCdyWY0HSccom8R+5TO490V1GT51v0rO/++470yf67t27kjZtWrOsBtWWO3fumL7U6dKls0/z9Iz4J69JKh4eHmZ72qodftsAAAAAIkdRMiCBB9NtJm/QqFduBZ2RU4euy9qA4jKnW3X57LMKkjdvXjl16pQULlxYChQoYNK5BwwYYNadPHmyaYUuWbLkA/cTEBAgV65ckUqVKknTpk1NS7bjtgEAAABEREANJGDjlgeYYDrUJuKRMrUE/j5GxBYmrRbnl7ALh6VZs2ZSqFAhewtz27ZtTfExTeXeunWrzJgxw956HR1dRguWaYt2wYIFZePGjfZtAwAAAIgcRcmABKzqiKVyPuS2U3r2nXMBkuHeZZn/dgtTrduRtjJv3rzZBMZarduxH/TixYtNa7P2l7bMmjXLFC7LkiWL2bYG4Vrpu2jRohG2DQAAACQXIS4WJSOgBhIw7Tu95nCghDnU4vf0EKlZLLtM71wlPg8NAAAASLKo8g0kAb3r+Zp0bg2ilf7U533q+8b3oQEAAADJHlW+gQSsUiEfmdPN37RI5/T2Mj/ndveXigV94vvQAAAAgGSPomRAIgiqSe8GAAAAEh5aqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAJKNr7/+WoYOHRon+9q2bZs0bNgwTvYFAACA+EFADSDZOHHihAQEBMTZ2IVbtmyJk30BAJAc1K1bV3bu3BnfhwE4IaAGgHiwa9cuefLJJzn3AAC4aPv27XL16lXOFxIUAmoAiAfagr1582bOPQAAQCJGQA0gydqzZ4+89NJL0qhRI/nkk08kNDTUPu/UqVPi7+9vHvXr15c333xTgoKC7PNXrFgh7du3d9reuHHj5MMPP3RqZba2P3LkSPnyyy8j9NFeu3atvPjii/LUU0/J6NGjJSwszOyne/fucu3aNfsxLF261Cx/8eJFefvtt+Xpp5+WF154QVatWhWhX7ZO0/0+88wzcufOHRkxYoSZ/txzz8ncuXNj5VwCAAAgIgJqAEnSyZMnpVq1apI7d255/fXX5fTp0yYgtmTPnl3Gjh1rHu+++66Zr0GszWYz8y9duhShn9bx48flyJEj9v7Y1atXl/z588sbb7whFy5cMIGwYx/tK1euyPvvvy/t2rWTrl27yqeffipTpkyRjBkzSt++fSVt2rT2YyhfvrxcvnxZypUrZ1qv33rrLdNXTIPklStXmu3pdA2833vvPWndurV88MEHMnz4cJkzZ4707NnT7OPXX3+VRYsWxdFZBgAgbun3dbdu3cx3ZP/+/c13o+XmzZvmxrZ2qdLvzx9++ME+T29qDxw40Glbu3fvNt/l169fj9PXgKQlZXwfAADEVkVv/ZIcNWqUea5fro5Fwry8vEzLsKVevXqSJ08eE0RrUOvK9mvVqmVah1WDBg0ipHBra7S2GGfLls0837p1q2n51sC3ZMmSkiJFCqdjGDZsmBQrVkwmTpxon6ZB9pgxY6ROnTrmubay//jjjyaQV+PHjzfHrq3VqkmTJnLr1i03zxoAAAlbr169zHfv888/b77jNUNr3bp19u/Au3fvyqBBgyQwMNDcUD979qzJQtPvypo1a5qb35kzZ7Z/l+t3f/r06eP5VSExI6AGkCQdOnRIKlWq5DRNn1tp3doSPXXqVPnjjz/k/Pnzcu/ePZOCfezYMZcC6sOHD5tWZUcVKlRwShv38fGxB9MqS5Yssnfv3mhT1A8cOOAUZGtA7ShTpkz2YFppa7UG6Hrz4IknnjCBtQb6AAAkRZoV9sorr9i/1/PmzSv//POPpEyZ0nSz0gy1nDlz2m9s9+vXzwTU+h1dqlQp+f7776VPnz7mO19bsOfNmxfPrwiJHQE1gCRly7EgGbc8QNYcvyF7gg7Ic8eCpFIhHzPPMdjVll1NtdZW4Xz58pkWa73bbbXu6hezBtmO9MvXMTgOH+w6bv9BPDw8IkzTAFyD6Xfeecdpuh6bRY/LUdGiRU2rt1Y91QuJHj16mP7ZmlIOAEBSU7FiRafv4sKFC5ub6Pr9qDecrWDaCrj1u1rrk+gN7tdee820amtArcG0fu8y4gYeFX2oASSpYLrN5A2y9nCgSIEKErBhibQYtcBMP3jwoOlfbNGWYu1jrYXHateuLcHBwXLmzBmnQPXo0aOmxVrpHW/H9bUQmd7V1n7VKvz2H0TTzbTPlvb3smhAr0FxhgwZ7MXK9GJh3759UW5nwoQJ5ri1X7Yek148aPEyAACSAv0O7zhlk1QdsVRu3AmVzQfuf+9atOZJ1qxZzUODZ22VtmggrYG2ZnepNm3ayLlz52T16tUyadIkk+Hl6Uk4hEdDCzWAJENbpsVmk1CbSLri1eXW8V1y6pvX5Mlfh0sWL5tJibZoupj2u/L19TVfthq4FihQwD6/dOnSpjq3/tS739onq0yZMvb5LVq0kGXLlsljjz0mRYoUMcFx1apVI7QgR8XPz0+qVKkixYsXN+lqH330kemHrVXENcDXomlawTtdunTmSz8quXLlMuneWuBMW9e15XvBggVun0MAABLajXLruz00zCbDPhkjNes/LTVL5jeFPvW7r0aNGiYw1u/Ar776Snr37i23b982I3xowdFUqVKZ7aVJk0ZefvllM19vrC9cuDC+XyKSAA+bVdI2gdLKfXpXSVuPvL294/twACRgevf6fMhtp2mhN4IlS4rbsn10B9OSq0Gqtj4r/RLWNDENWjWw1mqfWpxE73I7Dq9148YNM19/18DaWl9p0RNN9db5Ws1bg2/9Atf/XdrP2jE1TfevqdklSpQwz/UuulYNt9a39qup5v/++69J9S5YsKB9/ci2aW1Hp2uRMw3uudsOAEgKtGVas840mFYnxraR9MWqyr3j2yVvDh/zHax9ops3b27mL168WDp27GgCZ/3O1O9bHQnDsfaIfu9qAdCmTZvKb7/9Fl8vDYmAq3EoATWAJPXFu+ZwoIQ53Cb09BCpWSy7TO9cJcb3N3PmTDNWtAawWkFc75D/9ddfZigPAAAQszfK75z/V1JmyS05M6WTGW2KmJvIqVOnjnCTWbtsaeVuzeIKT29s6/TZs2fbR8gAHiWgJuUbQJLRu56vrA24KJ5iM0G1BtOa/tWnvm+s7E+/sPVLWVuW9XcdpoNgGgCAmOGXy1sCr/7/RnnqnEXMd3vJ/NlM16nI6E1ux0yy8KZNm2YKlzVu3Ji3CTGCFmoASbLK94FzIeaLWIPpigXvV/mODXqnWwuT6V1yTR0HAAAx24dae6g63iif293/ob/btXiZ1irR4Sm1wrfWQgGiQ8o3AAAAgEQtpm6Ua32SnTt3mv7UOXLkiJVjRdJCQA0AAAAAQCwG1Ay8BgAAAACAGwioAQAAACCB2rZtmzRs2DC+DwNRIKAGAAAAgAQaLGvqsQ7PiWQaUB88eFBee+01adKkifTr109OnjwZ27sEAAAAgATP19dXhg8fHt+HgYQaUB86dEiqVKki169fl06dOplxWvX5uXPnYnO3AAAAAJDgabGrihUrxvdhIKEG1MOGDTODrk+fPl2ef/55mT9/vnh5ecmYMWNic7cAAAAAkCBs3bpV2rdvL40bN5ZPP/3UxEIjR46MNOV7w4YN0qxZM1m2bJm8+OKL0rJly3g8csR7QL148WJp3ry5/XmqVKmkadOmZjoAAAAAJGUBAQFSq1YtKVq0qLz++uty7Ngxee+99+TIkSOR9o++cuWK/PXXX6Zhsl27djJo0KB4PHq4IqXEkhs3bkhgYKDky5fPabo+1w9SVG7fvm0eFv2QAQAAAEBiM378eHn66adNgKwaNGggGzdujHad0NBQmTdvnuTIkcM8X7lyZZwcKxJYC/WdO3fMz7Rp0zpNT5cunX1eZDT9QQfQth758+ePrUMEAAAAgFhz+PBhKV++vNO0ChUqRLuOBtJWMI1kHFBnyJBBUqZMKUFBQU7TL126JFmyZIlyvQEDBkhwcLD9QVVwAAAAAInJlmNB0nHKJtl4+rb8uGa/eW4JHx+FpzEUEo9YC6j1g1CqVCnT0d6RPi9XrlyU62nRMq125/gAAAAAgMRAg+c2kzfI2sOBIvnLyaF1f0vLMb+b6Xv37pU///wzvg8RiaUomQ6Vpfn/2hlfaYd7LUim0wEAAAAgqRm3PEDEZpNQm0j6krUlTZFKcnJSN3nyicqmYLMOI0wrdNIRq/kEvXr1Mi3SZcuWNcNn7du3T3r27CmtW7eOzd0CAAAAQLw4cC7EBNPKw8NTsjXuK6G1O0qWVHdlx+gO8uyzz0rOnDnt/akXLVpkX7datWqycOFCp+2FXwYJi4fNZvvv7Y49x48flxMnTphy8Xny5HmodbXKtxYn0/7UpH8DAAAASMi07/Saw4ES9l+UdW3PcslYqq7UKp5Duvvdkzp16siqVatM8IyEy9U4NE56vBcsWNA8AAAAACAp613PV9YGXBRPsZmg+t7l03Jy3EuyKlc2mXvmlAwfPpxgOgmJkxbqR0ELNQAAAIDERAuQaV9qTf/2y+UtnavkkGwe16VIkSIRhhVGwpSgWqgBAAAAILmoVMhHpneuEt+HgcRe5RsAAAAAgKSKgBoAAAAAADcQUAMAAAAA4AYCagAAAAAA3EBADQAAAACAGwioAQAAAABwAwE1AAAAAABuIKAGAAAAAMANBNQAAAAAALiBgBoAAAAAADcQUAMAAAAA4AYCagAAAAAA3EBADQAAAAAAATUAAAAAAHGDFmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBtSurMSAAAAAADu2LVrl6xbt06aNGkiixcvluDgYGnZsqUULFhQVqxYIZs2bRJfX19p0aKFeHh4mHWOHTsm06ZNM79nypRJqlatKtWrV4+wzWeffVb++usvCQkJkcaNG0uxYsUkNtFCDQAAYoReGM2aNStWz6ZeIOXKlUvOnj0bq/sBAMSeXbt2yaBBg6Rhw4ayb98+WbJkiZQvX166du0qo0aNkosXL0r//v3l3XffjXT948ePmwB8+PDhTtscPHiwNGrUSHbv3i3r16+XsmXLysGDB2P1raSFGgAAxIhLly7JjRs3YvVshoWFyfnz5yU0NDRW9wMAiF3Xrl0zQXCePHnM/3Ztndabptq6rOrVqycdOnSQTz75xDwvVKiQDB061L5+z549TcDcr18/SZ8+vZl29epVWbhwoeTLl888f/rpp2X27NkyZMiQWHsdBNQAACBB0uC8SJEisnnzZsmfP398Hw4AIAb5+vqaYFp5enpKgQIFpFatWvb5GkBrS7XeQE2RIoWZduDAAVm5cqUEBgaa6RqIHz16VEqVKmXfphVMW8/PnTsXq+8bATUAAEiQaI0GgKRjy7EgGbc8QA6cC5HUR4/InbD7faMt2lc6Zcr/h6dW32mbzWZ+fv/999KnTx+T6q1df1KlSmWmX7lyxb6O4/rWNqz1Ywt9qAEAQIzRvs1t27aV4sWLm1Q7Tedz7GP92WefSfv27c38OXPmmJYFa3ktLvPtt9/al69WrZr5WblyZXPx5NhXTvvGPfnkk6b1oXXr1k4tENqi0aNHDyldurRUqFDBrHfv3j2nPtjz5s2Tp556yrSIaEsHACB2g+k2kzfI2sOBcj7kthw8d1WOX7puprtKU7fffvtt+e6778z/9VatWsnt27fj/W2jhRoAAMSYjz/+WCZNmiTDhg2TqVOnSp06dSQgIEB8fHxMH2udPnnyZNMnzsvLS8qVKyfNmjUzfd60cEznzp1NGl/37t3NtMKFC8uff/5pUr4zZMhgD4zHjBkjX3zxhXh7e8urr74q77zzjkyfPl3u3LljUgY1GNeAXdPGdf6tW7fkww8/tLd6jxgxQr766iuTUp41a1Y+AQAQi8YtD9CmZgn9r7E4zGH69M5VXNqGfp98+umn5iao/q/XauBp06aV+EYLNQAAiDEdO3aUF1980bQ4jxw5UnLnzm1aFSzdunUzLcrax00Lz2g63rhx46REiRImsNaKrvpcZcuWzfzMnj27aVXWgNoyduxYM2TKY489Jr1795aNGzea6b/88osJor/55hspWbKkVKpUySyrQbwjDci1RVy3q333AACx58C5EHswrVJnLyQZyjUy0y16Q1X/Z1v0O0CLiVn/o7V1eubMmZIzZ04pU6aMrFq1yhQp00wjpdM0O8mRDpvVtGnTWH1raaEGAAAxRoNYRxrw6tihFk3Rtuh0Pz8/pz5vjz/+uEkDfxDHojNa3VWrxarDhw+btHOr0I3SVmlt0bh+/XqkxwEAiF1+ubwl8GqghP0XVKfOUVjS5CxspjsG1I40oHas6q20K5E+LBpkWzSg1kf4gDq2EVADAIAYKTLzb+A12bIvwGn+qVOnTEuwxbE1WFuHdX745XW6Y0Gah6Et4travXjx4gjz0qVLJ8HBwRGOAwAQu3rX85W1ARfFU2wmqPb0uP8/vk/9xH9zk28TAAAQI0Vmrt66JzOmT5M5i9eZ+Vr4a/v27dK8efNI19c0PA2gJ06caKqwHj9+3PSPa9eunb3lWYNgxxbuB9G0ce0jPX/+fNO6kSNHDjlz5ox8+eWXbgXoAIBHV6mQj8zp5i81i2WXnN5e5ufc7v5SsaBPoj+9BNQAACBGiszoyCTpi1eTbh1fMP2de/XqJTNmzJCiRYtGur6mZf/888+m8rcur+ne9evXl/fee8++zIABA6RRo0amz5xjle+oaH/rv//+W+bOnSuZMmWSzJkzmz51WtEbABC/QfX0zlVk48AG5mdSCKaVhy22B+Z6RDq8hX4haoqWVvIEAAAJQ9URS03LtCX05lXxSJlacmf1luV9q5kWZkdBQUGmImtkVVm1f7O2RkfWiqxVv7VCuM7XbWoLtLY8W2nbWu1VrxM0mHakFcHv3r3rtD+97Am/PgAA7sah9KEGAAAxUmQmRdqMpl+cTg8fTCsdOisqkS1vSZEihQmALVYfa0vq1KkjBNNKi505FjxTGrCHXx8AAHdxaxYAALhdZEYDVA2izUVFEioyAwCAKwioAQCAW5JykRkAAFxByjcAAHjkIjMAACRHtFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAgBESEiKXL19OdNuOyoULF+TGjRtxuk8AAJC8EFADAIwRI0ZI7969E922o/LUU0/Jzz//HKf7BAAAyQsBNQAAAAAAbiCgBgAAAADADQTUAIAIbt68Kbdv33aapn2gg4ODnaadP3/eLOsoKChIwsLCojyr2q/53r17TtOuX78up06dMo/w2wvfBzuyY3M87rt37/KOAgCAOEFADQBwKuT19NNPS/78+SVjxozSo0cP+7y33npLPvzwQ6ezVb9+ffn111/N7z/99JPkzp1bfH19JVu2bDJ8+PAIwXfdunUlb9684u3tLW+//bbYbDYzb968eeLv728eWbNmlVq1asmJEyec+mC3adMmymPTgLxt27aSJUsWyZUrl7z00kty69Yt3lkAABCrCKgBAHarV6+WAQMGyMWLF2Xv3r0yY8YMWbt2rUtnqG/fviaI1hbqkydPyp07d5xakpcuXSo9e/Y0Lc1bt26VadOmycyZM828Tp062Vuor1y5IqVKlTLbc/XYPvjgAzl06JDZr84vVqyYHDx4kHcWAADEKgJqAIBdgwYNpE6dOuZ3DUrLli0r+/fvd+kMaev00aNH5dq1a5I+fXoT5Hp5ednnV6tWTVq1amV+f+yxx6RLly4yd+7cCCnbgYGB8sILL5gA3NVj0+28++67kj17dvHw8JD33ntPMmfOzDsLAABiFQE1AMAufBCaOnXqKPsrh7dw4ULTN7pRo0YmdXvs2LFO8/PkyeP0XFO/NQ1crVmzxrRK+/j4SKVKlaR169YmML969apLx6ap6o7bT5EiheTMmZN3FgAAxKqUsbt5AEBCtuVYkIxbHiAHzoXI9V1nJX/qqINnbXXWINcSGhoqZ8+etT/PkSOHjBw50vyurczlypWTIkWKSLNmzcy0ffv2OW1P07YLFy5sftf+0B06dJA333zTBMM7d+406+s+XKHb0e3XqFHDPNdA3LEPNgAAQGwgoAaAZBxMt5m8QcRmk1CbyJXLN+T41YtmeqVCPhGW15TtPn36mOJgGjx//vnnpr+z0sC3evXq8s4770iZMmXk8OHDJqhNmzatff0DBw6YtOyOHTvKpk2bZPr06fLnn3+aealSpZJjx47Jv//+a1qttWDZw3j11VdNinmBAgVMy7cWT6MoGQAAiG0E1ACQTGnLtBVMK4/U6cQzTUYzfXrnKmaa9knOkCGD+V3TsLUVuHfv3qZKd+fOnU0QnC5dOtOqPGHCBFON2+rLPGbMGHnyySfNupkyZZLu3bub/s3t2rUz62hAbfWJ1gJlGow3bNhQ8uXLJ7169TItzJ6envb1dbgtR47HpsXOtAjawIEDTSr4iy++aIb40lZ1AACA2OJhs8YsSaB07FG9kNILI72AAwDEjKojlsr5kIgp3jm9vWTjwAacZgAAkGyFuBiHUpQMAJIpv1ze4unhPE2f63QAAAA8GAE1ACRTvev5mhRsK6jWn/q8T33f+D40AACARIGAGgCSKS08Nqebv9Qslt2keevPud39pWLBiAXJAAAAEBFFyQAgmQfVVgEyAAAAPBxaqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCgBgAAAADADQTUAAAAAAC4gYAaAAAAAAA3EFADAAAAAOAGAmoAAAAAANxAQA0AAAAAgBsIqAEAAAAAcAMBNQAAAAAAbiCghhEWFia3b9/mbAAAAACAiwioYaxevVry5s3L2QAAAAAAFxFQAwAAAADgBgLqGHbhwgW5ceNGTG8WAAAAAJDAEFDHsKeeekp+/vlnSexsNptb8wAAAAAguSCgTkZOnz5tAv60adNK1qxZ5bXXXpPr1687BcqffPKJ5M+f3yzTtGlTCQ4Ots9ftWqVVKlSRdKnTy958uSRDz/80BQzAwAAAIDkiIA6GdEAOF26dHL+/Hk5duyYlC9fXtavX2+fHxQUJGfPnpX9+/fLiRMn5NSpU/Lll1+aeQcOHJAmTZpI//795cqVKya4njVrlnz33Xfx+IoAAAAAIP4QUMcibd2NqgX33r17cvXqVYlLGTNmFA8PD/vvr7zyijRo0MA+P1WqVPLpp59KhgwZJEeOHPLss8/Krl27zLzJkydLo0aN5LnnnjOvSVux+/bta4JqAAAAAEiOCKhjgbb6+vn5SeHChSVz5sxOQae2Drds2dJMz5cvn5QrV84etMa2oUOHmv01bNhQqlevLsOGDXNK+fb29jZBtSVNmjRy8+ZN8/vx48fll19+McdtPfr162deDwAAAAAkRwTUsWDlypWybNkyk0I9duxY01c5NDTUzGvXrp1pAdZq4NqC3aFDB2nVqpXcvXtXYsuWY0HSccomqffFevk3fyP5ctbv8vfff5vAf/DgwS5to1ChQtK2bVu5deuW02Pfvn2xdtwAAAAAkJARUMeCV199VfLmzWt+12BZA+czZ87I0aNHZcWKFfL666+bYFv7KLdu3dq08u7evTvWguk2kzfI2sOBsm/eGPnrt5+k5ed/yapdR83wXrdv33b5NS1cuFAmTJgg586dM32sJ02aJEOGDImV4wYAAACAhC5lfB9AUqTp0JbUqVObnxq4asEv7cOsxb0caX/mS5cuxcqxjFseoOW7JdQm4l21lVxZM0OCln4jbWeklOebNZaPPvrILOfp6WlSvB2lTJnSfvy+vr6m5V1btLW4mZeXlzRu3NikkQMAAABAckRAHUOtwBq4HjgXIieCbsi/gdciXU6DUrVx40Z7C7Y1XJVVLCym6TFpMK1SZc4l2Z95y/ye09tLpg38f0GyWrVqmRZzR2+++abTc60K/vvvv8fKcQIAAABAYkPKdwymVJ8PuS3Xb9+T8SsCzPTwcufOLZ07d5bnn39eli9fLocOHTKFvrRAmKup1w/LL5e3eIaL1fW5TgcAAAAAuI+AOgZTqs0JTZdZPFJ63Z8uYlqetTVa06fVxIkTpU2bNvLBBx9Is2bN5IcffpBx48aZFOrY0LuerzkGK6jWn/q8T/37reUAAAAAAPd42DTfOAELCQmRTJkymcJeOqxTQlN1xFLTMh2eplRvdEipTigp6doyrcF0xYI+8X1YAAAAAJCo41D6UD8iDVADrwZKmC3hplRXKuQj0ztXie/DAAAAAIAkhZTvR0RKNQDgYV28eNEMm1i4cGH7aAsAACDxoYU6Blp/53TzJ6UaABBlyljJkiVly5YtkitXLjNt2LBh5ueKFSskS5YsnDkAABIpAuoYQEo1ACAqGTNmlA0bNkj27Nnt03T4xH79+kmhQoU4cQAAJGIE1AAAxCIdWSFfvnxO04KCgiRt2rScdwAAEjn6UAMA8JDefPNNe9q2evbZZ6Vu3br25zocYufOne0p3xpQnzt3zjzXVumjR49K165dzfTNmzeb6YGBgfLqq69K2bJlpWrVqjJmzBgJCwvjvQEAIAEjoAYA4CGVKVNGFixYYH6/du2a6Qu9a9cuOX/+vJn222+/SenSpc3vGhSfPn1a7t27Z57/888/kj9/fvnkk09MKrgG0Ldu3ZInnnhCQkNDZebMmfL555/L9OnTZdSoUbw3AAAkYATUAAA8pAYNGsjOnTtNte5Vq1aZFuV69erJ0qVL5fbt2yZo1mUikzdvXkmRIoVkzZrVtFCnTp1a5s2bZ+ZNmjTJBOLVq1eXzz77TCZMmMB7AwBAAkYfagAAHlKePHmkRIkSsnz5clm/fr0JnjNlyiRLliwxlby9vb3tLdSuOHjwoJw8edK0XFu0RfvChQvmZ8qUfF0DAJAQ8Q0NAICLthwLsg+TaMtTWn785Q8J2LPNpGdrQK39qnPnzi3169d/qHOq65QqVUp++eWXiF/UBNMAACRYpHwDAOBiMN1m8gZZezhQzofclqDMJWThb7/J6bPnpHz58lK0aFHx8vKSKVOmRJnuHZXnnntO/v33X1m8eLFp/da0cG2d/vbbb3lvAABIwAioAQBwgbZMi80mobb7z73yl5bQW1fFu0g5MzSW0kBaA+GHDag1iP7jjz9MH2pNF8+cObN0797dqXI44s6dO3dk2rRpcuPGDU47ACBaHjab7b9Lg4RJhxvRNLrg4GBzkQEAQHyoOmKpaZl2FHrtsuT0yShbhjW3V/zW7yttYbbo16xW+da0bi1GpnQILQ2a06RJE2E/WtRM+02nT58+1l8TInflyhXJkiWL6dcefgxxAEDyEOJiHEoLNQAALvDL5S2e9xui7VJlzCKPF8ptf54hQwanYFpp67UGZVYwrbRwWWTBtNK0cYLpuKM3L7Q1Wm+GAADwsGI9oNYxNQ8cOCC7d++WmzdvxvbuAACIFb3r+Zrg2Aqq9ac+71PflzOeiOkY4C+//LIZAg0AgAQVUI8fP14KFSokzz77rLRt29b0Efvuu+9ic5cAAMSKSoV8ZE43f6lZLLvk9PYyP+d295eKBX0443Hct1lbk7ds2SJz5841xdysNO0FCxbI33//LXfv3o2w7pEjR+Tnn3+W1atXm7R6i05T8+fPN9veunWr03r6XOcdPnw4wjY1dV/7vmsxOU0NDH+c169fl23btsmsWbNoVACAJCpWh83SL5fNmzeb1DY1depU6dq1q1SqVEnKli0bm7sGACBWgurpnatwZuOJFgnT1uSvv/7a9GfTIcVeeuklGTlypHzzzTfy+OOPy86dO6VgwYKydOlS+3pDhw6VsWPHmiJvAQEBpl/7X3/9Zcb93rhxo1lmw4YNJmVf0+21Yrvq0KGDWVb3pfv5/vvv5fnnnzfzJk6cKAMGDJCaNWua49JsvD///FPKlCljP04NqsPCwqRIkSLSpEkTSZs2bTydOUSmZ8+e0rJlS6lXr5553qZNG6lYsaK8/fbb5vmYMWNM/0m9dlVnzpyRL7/80nyGtMGod+/e5rOmduzYIaNGjZIePXrI7Nmz5fz582Z7LVq0MJ/XlStXmu4ggwYNkpw5c5p1Tp06Zd+2fvZ0tID+/ftLunTpnLb55ptvmgYpzaJo2LCh+WwBSEBscSgsLMyWOnVq26RJk1xeJzg4WIummZ8AACD5unz5srkm+Oyzz+zT2rdvb8uUKZPtzJkz9mXSpElj27Ztm3m+ZcsWW8qUKW3bt283z+/du2dr1KiRrU2bNub51atXzTaPHj0aYT+ffvqpfdrIkSNt1atXN7/v27fPli5dOtuOHTuc5teqVctp/ffffz+Wzwgexauvvmoe6sCBA7aMGTPaChUqZJ/v6+tr+/nnn83vZ8+etWXNmtXWsWNH29y5c23dunWzeXt72z83S5YssaVKlcpWo0YN248//mg+OylSpLBVq1bN9tZb/2vvPqClrM79AW+aRKQoiFJEQgQhlgRUInYDYv/bE5ZxuewhIWqwxCi5WBMX1mj8RyMxXlMsaLyxJDFGBY24goq9EbGjEYOgFEVCOXe92zuTOYd2/IRz5sDzrHXWnGnfDHM+Zub37Xe/+wc1t99+e83++++fry+ZN29ezT333JN/YpuxX379618vX1+5zRtvvLHmF7/4Rd7XY/vA6lffHLpaR6jriiNtUQbVp0+f5d4myrAqS7EqS6gAAA444IDyi7DFFlvk0cDooh6ie3r8HqN/MeIXJd7bbLNN6t+/f74+msPFCN/JJ59cr/XBS2Lk+Zprrsm/P/DAA2mjjTZKTz31VP4JMRIdo9zRO6YkprtRvWJ5uzPPPDP/HhUN8feKKQMxAr3OOuuk119/vbx0XYxMb7755rnqIESlQlx/6aWX5imOIf72MYWgc+fO+XxMB4jfY5Q5RHVm796981SAqISInxhxLjnwwAPz6HVUO/Tr16/cNO/222/P+1t48cUX07333mvfgirymQJ1vHG8+eabK7xNfGDFh1ld8eYRH2C77rpr2n333Zd7/yjbOu+88z7L0wIAGtlFF12Urrvuujx/+Y033ii0jSixju8Rp5566gpvF53QS5o3b17rfOmyUrCNpmN1S62jw3p9GqXWfZzSNmMOdxz8jzLeSocffnitQYF27dqt9DFoPFHqHXPw33rrrRyo4+8X+2/83qpVq1z+XfpO+9JLL6Wdd9651v132mmnWvvAhhtuWA7ToVOnTunLX/5yrfPhgw8+KHfyj/n5MVUg1q+P8Bw/8ZxKgTq2VwrTpfMr+y4OVHGgHj9+fPrtb3+7wtvEHKXSUeCS+DCLxmQxOn3bbbflrqjLE/ORKj9IY4Q65jgBANUpVvIYM2ZMHg2OBqRFxWd+zD+ua/Ibs9JV419Jz7/+z3z+mWkf1Ht96BhZjucWISbWlg4RmEq9XGIkMr6XRJCpr4EDB+bbX3nllXmObUkEs5j/Gt93qF6l/WnK9Dlp/U37pmtv/LRZXRwQKo0Ix34RI9glMY8+1qKtFOcr//7L+n67ou+8MQ//wgsvzKPkMb86DuBED4DK/wMruj/QBAP1cccdl38+izhSG2F62rRp+She5VG2ZYk3k7pHmgGA6hUNSCOgbr311vW+z7HHHptH4UoNoFYUfoaNnRRNX9LC+Z+O/o648al0e9fuuUncyuy77755pDFGI48++uj08ssv57LdKO0NEZzieVxwwQW5gi4CeKkp2fIMGTIk7bXXXmnHHXfMo+ox4v3II4/kcvKbb7653q8BDa9yf1pck9KiLlumSy69NG3WrUceQY4QfeKJJ+YR6m9/+9vl+w0dOjSNHDkyjR49Oh/MiQ7v8beO85/n/03sRyNGjMjnH3744TxSDTQtq3UOdSlMR+nXhAkTyt2+AYA1R4z+RqhcFaPRdcVIYin8pBYt03pbDUmpVet8eXRcjxBf97Gjc/Omm25aHuGLZa2iQ3fMd44D+7GUVd++fcu3v+uuu9L111+fA010W44y3aOOOqpclhtiBPGb3/xm+XxU7EWpbtwnvu/E/NvSnOsI6XXvT3WotT/FQE7P/mn2329LLb72aafv2D8iMMc86jhgUnLEEUfkUezoJB/73PPPP5/233//NHz48MLPJQ7GxDaix1BMKYjKhlIvAKDpaBadyVbXxqO5QpSJx1IWlWE6lhqIn/p+4EY5TZTVRLkNAFA9olz1qquuynNP43M6mjVF8664PEpoI9BGGD3ssMPyZbHUVYwG//jHP84julEiHY2YXnjhhXwQPpo2RUCP8BLbm7vlwenf3Qbkx4qvLPOe+lOa98KElObPTv9v8E7pkksuSb169SoHlFjGKBqSxYhxjDTWp/kYa4/tL7w/vTfnP/PcaxYvTJ+8+Wzq9qXN01NjPm0i9+yzz+Z58pWBuiSWzoo1zeN7bOWUxJkzZ+b7lZqYhQjKcYAm9ukQ5eQx3SBuU6rGjH09pkzEwZeYMhmN7eL28X9iWduM+dXxnTga7gGrV31z6GoN1Hvuuecy5xFFyVX81IdADQDVK5qOxnq9Dz30UBo3blweLY4QEZdH46/4mjF16tQ8khfTxqJsNkamY0S3VPIdo3MdO3bMgfq+++7La+5GmIm5rGec9V+p+3f/O6XW66UPJ96YPp4yMXXa87tpx/5fTlvMfSLddNNNOYzH48b9o5R77NixuXQ35kxb+5lKR13/WHp46oy0pOLbb/NmKe3Sp7M15oFCOXS1lnxHiRUAsOaKkbUYZY45p9HluPLyUslzdCaOFTxiiaEI1HH7KIuO08r7lEaZS8tNnXLKKem/Ro9OC2e9ndbp2ifNeex/0saHnZPafPGradSwQWnbngelW2+9NVfDxVzpMGzYsLwNWJaTBvdOE195PzVPNTlUR5iOKoqTh3w6igzwWTXoOtQAwNph8uTJubQ75prGUf6oWKvP1K0oD6/Urm3bNGroF9OE6Sm9sXBBmnXnmDS/dcu019hPux/HtmNZz5KVNRRj7RaN7MZ9e1C5y3e/Lu1zmN6258ob3AEsi0ANAHyupYcWP/1WajV/Yfm6JUuWpH322SfPX45R6SiZi6q1008/vdByQH27tE8nfHPXtN5ZLdN999ydtthii1rXR4l5SZSPw8pCdTS0A1gVfOoAAIWWHpo4dUZu8PT6+x+lZ6Z9mC8PMRodzZa22Wab1KdPn7R48eJ07bXX1tpGdFOOBkv1VeqcHc3MPvnkk1wqHo3QIrC/8847/oIANAqBGgD4XEsPlRo85ctTyg3CLr/88jwXul27dmngwIE5XFc64YQTciOzKAOPpYjq48orr8xLFkU35JifHduNZmalJbIAoKGt1i7fq4Iu3wBQ3UsPLVm4IKUli1PXzhukR0ftUb48vmLMnTs3h+YYTY7fIwBXiuWJYkQ7Lo/rY1mtys7cs2bNyqE8mp5Vig7idTt4L+v+ANBku3wDAGueaOQ0Y+5/lh5q3qp17pYcl1eKedKlLyERiOuG6brznyM417Ws+4RlheZl3R8AVicl3wDAZ156KMJyhOj8ZcLSQwCspQRqAKDQ0kO79OmcNm7fOp/eOjzWhbb0EABrFyXfAMBnZukhADBCDQAAAIUo+QYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAqsbUqVPTzjvv3GCPt99++6XHH3+8wR4PAFizCNQAVI2PPvooTZo0qcEe74knnkizZ89usMcDANYsAjUALMcBBxzQoAEfAGhaBGoAWI4nn3wyffjhh14fAGCZBGoAGs3HH3+cRo0alfbcc8/0ne98J02bNq3W9cccc0waNGhQ2mmnndKRRx651GhxzLd+7bXXyuenTJmSdtttt1ol5GeeeWYaOnRoGj58eLr//vuXmqM9c+bMdMopp6Q99tgj3+bdd9/Nl48YMSLNmDEjXxfP4Yc//GG+vKamJo0dOzYdeuiheQ72FVdckRYvXlzeXlx2zz33pJEjR6bBgwfnUA4ArJma1cQ3gyo2Z86c1KFDhzzHrX379o39dABYhfbee+8ces8666z0z3/+M40ePTqH2EWLFuXrn3/++TRv3rx8/rHHHkvnnHNObiLWr1+/fH3Lli3T008/nbbaaqt8fvLkyTkwf/LJJ/l8BOm47xlnnFHe/r/+9a/y9rt06ZK3ce6556ZevXqliy++OIfjCN4vvvhi2n333XPgj0DdsWPHtPnmm6djjz02P+aPfvSjtO6666YLLrggDRgwIF199dXlbYbY5le+8pX83Hx+AUDTUt8c2rJBnxUA/J9nnnkmjR8/Po9Kb7zxxuUR61NPPbX8GpWCcuVo9A033JDGjBmz0tcxQu/f/va39M4776QNN9wwXzZ//vw8clwpAvPxxx+ff4/QvP3226clS5akLbbYIq2zzjo5vEegDi+//HL6zW9+k59z165dy88xwng8p9IH7mmnnZZH3AGANZtADUCjiHDao0ePcpgO2223Xa3bxGj0tddem4N0hO0YZd5xxx3rvQTXJptsUg7TYZtttlnqdjHqXLLBBhukhQsX5sdq27btUreNEfPmzZungw8+uNblUez16quv5pHqsPXWW9frOQIATZtADUCDmvzGrHTV+FfSoxNfT29Pfz89/vrMNLBXp3zdrFmzyreLUeAouY7S6sMPPzytt956ee5y5W2iXLtUvh2iPLwyHEdDsQi7zZo1W2r79VG6X0mMYLdu3TrPm66rT58+tZ4XALDm05QMgAYN08PGTkoTp85IH3folRbVpLTviHPz5QsWLEhXXnll+bYx4hsl1yeffHIaMmRI2myzzdLf//73WtuLy6JsPMTIcoxml3zta1/Lp9dff30+rbv9+lh//fXT+++/X2ubnTp1So8++mguDY9S8BiNfvDBB5c5og0ArNkEagAaTIxMp5qatLgmpeat26QN9zslzZrw32nIoAGpZ8+eqVu3buXb7rDDDql///5p0003zadRrh2/V/rJT36Szj777PI85mgSVhLzmWO+dczJ7tu3b95+586dP9PocXQZj27fAwcOzF2+27Rpk+6444683e7du+cwHdtt0aLFKnqFAICmRJdvABrM9hfen96bs6DWZTWLFqb2C99Pky48PJdYP/fcc3n0t+SVV17JncCjOVgscRVl3ZXznqML55tvvplHq6O8+4UXXiiPTofo+B2j3RF8//rXv+ZlsOL2IZa06t27d7mZWIxiP/XUU/n+MVc6vPfee7n8PG5T+bixvNYHH3yQS71btWpVvrzuNgGANbfLt0ANQIM56vrH0sNTZ6QlFQs2Nm+W0i59OqdfH/ufELyqxHrQ2267bdpoo43yB2Ms0xWjypWl4QAARQO1km8AGsxJg3vnUegI0flDqNmnjb9OHtJ7tTxefBBGuXaUhEfH72hsFmXiAACrghFqABqly/eU6XNSvy7tc5jetmfH1fZ4ixcvzkt0RYfuyiW6AACWR8k3AAAAFKDkGwAAAFYjc6gBAACgAIEaAAAAChCoAWgUsYbzkiVLlnldXB5zl+qKy2bNmpV/nz9/fl5jGgCgsQjUADSoO+64I3Xr1i1tttlmacMNN0znn39+qqmpKYfk7373u3m9x1jmKm5z7733lu978cUXp2984xtpn332ST169Mi3O+GEE/wFAYBGIVAD0KBGjhyZzj333DzS/Pbbb5eDdIg1oidMmJCmTJmSR6PPOOOMdOihh5ZvFx5++OF0+umnp/fffz+99NJL6ZZbbkkPPvigvyIA0OAEagAaVNeuXdMbb7yR5s6dm9q0aZPOPvvsfBrGjRuXw3KMTofhw4fn3+++++7y/QcPHpyGDBmSf48R7AEDBuRgDQDQ0ARqABrUnXfemZo1a5b222+/NGjQoHTZZZeVS77fe++9cpgu6d69e5o+fXr5/Prrr1/r+nXWWSctWLCggZ49AMB/tKz4HQBWi8lvzEpXjX8lTZk+J/XdqG06+YTTcnl3lG3HCHOvXr3SIYcckk9feOGFtPfee+f7LVq0KJd/H3nkkf4yAEDVEagBWO1hetjYSSnV1KTFNSk9/f9HpHv//I10zUkHpTYLZubS73XXXTff9sQTT0yjRo3Kpdx9+vRJV1xxRb78sMMO81cCAKqOQA3AahUj06UwHTrtdWKaM+m2dPThv01bfWmTdNFFF+Wu3SE6drdo0SJdfvnlacaMGal///5p4sSJqW3btvn6Dh06pE6dOtXafufOnVO7du38FQGABtespjRxrUpFl9f4AjV79uy8PAoATcv2F96f3puz9Bznjdu3To+O2qNRnhMAwKrIoZqSAbBa9evSPjVvVufDp9mnlwMANGUCNQCr1UmDe+eu3qVQHadx/uQhvb3yAECTJlADsFpt98WOady3B6Vd+nTOZd5xeuvwQWnbnh298gBAk6YpGQANEqp/fezXvNIAwBrFCDUAAAAUIFADAABAAQI1AAAAFCBQAwAAQAECNQAAAAjUAAAA0DCMUAMAAEABAjUAAAAUIFADAABAAQI1AAAAFCBQAwAAQAECNQAAABQgUAMAAEABAjUAAAAUIFADAABAAQI1AAAAFCBQAwAAQAECNQAAABQgUAMAAEABAjUAAAAUIFADAABAAQI1AAAAFCBQAwAAQAECNQAAABQgUAMAAEABLVOVq6mpyadz5sxp7KcCAADAWmDO/+XPUh5tsoF65syZ+bRHjx6N/VQAAABYi8ydOzd16NCh6Qbqjh075tO33nprhf8QiKNIceBl2rRpqX379l4Qlsu+Qn3ZV7CvsKp5X8G+0jTEyHSE6W7duq3wdlUfqJs3/3Sad4RpIYn6iP3EvoJ9hVXJ+wr2FVY17yvYV6pffQZ0NSUDAACAAgRqAAAAWBMDdevWrdM555yTT8G+gvcVfAZRjXxfwb6C95W1U7OalfUBBwAAAJreCDUAAABUI4EaAAAAChCoAQAAoICqX4d6Re699970wQcfpMMOOyy1bNmk/ymsJq+88kp68cUXU+fOndN2222XWrVq5bVmKUuWLEnPPvtsmjZtWvrSl76UttxyS68Sy/Xhhx+mBx54IHXp0iXttNNOXinye8eTTz6ZNthgg7Tjjjv6TsJyxffWeP/YZJNN0qBBg7xSLNOiRYvS008/naZPn54233zz/EP1arJNye688840bNiwtGDBgjR37tzUtm3bxn5KVJF33nknHX300fm0T58+6aWXXkrz589Pf/jDH3KwhpL7778/ff/7388HW3r06JEmTZqUvvrVr+Z9pV27dl4oymbPnp1OO+209Oc//zktXrw47bLLLun3v/+9V2gtd9lll6XRo0enHXbYIb322mupTZs26b777kvdunVr7KdGFZk1a1Z+/4jBoIULF6a99tor/e53v2vsp0UViu8fZ5xxRurQoUM+cDtx4sQ0ePDgdPPNN1v1qEo1yZLvt99+O33ve99Lo0aNauynQpWaN29euuCCC/LodBx8+cc//pFDUgQnqPTvf/873XHHHflI8N13352mTJmSXn755bxcH1T6+OOP84jS1KlTc3iCqGz5wQ9+kG666aY86hgHbyNQ+6yhro8++ijtuuuu6dVXX03bbrutF4jlirHOeD+ZPHly+uMf/5ief/759NBDD+WDd1SnJlcnHaMC3/rWt9JZZ52VNt5448Z+OlSpvn371jrfrFmzXC4To5FQad999611vlOnTmn33XfPARsqde3aNR1//PFeFMoiSPfs2TMddNBB+fwXvvCFNGLEiDR8+PBcPafKhZKogDrmmGO8IKzUIYccUut8TA/YfvvtfS+pYk1uhPq8887L5d0xQg0rE6VVUVIVB2Buu+22dPnll3vRWKGYRhLlVVtttZVXClih5557Lm299da1LovzUdIblVEAn9ecOXPS448/7ntJFWvZ2GW5UcqwIr169cpHZUKUO/zyl790hGYtFEf6//SnP63wNptttlkaOHBgrcsmTJiQy3efeeaZ1Lt373yEmDV/nus999yzwtvEvrC8ufQjR47M24j5S6z5zYHioNvKql0GDBjQYM+JpiXeK+L9pG6VS6l5HcDnLf+OyqiofjnxxBO9mFWqZWPPJ4m5iyuy2267lQP1cccdl/bZZ58cksKjjz6aT2+//fY8H8WI0podqFe2r0TDhrqBesyYMeUuzkcddVTaf//9c8COEnDW3n1l6NChywzUZ599dq5oiJAVJVas+YF6ZftKTAkQqFme1q1b58GBSqXz8QUY4POIitzx48fn7NOxY0cvZpVq1EAdc6BvueWWet8+wnVlCI/mZCEaCa233noC9RosuqV+ln2lrubNm+e59xGW3n33Xd1X12ARhIvsK+eee2766U9/mjs4x7I3rPliibTP874CURlVt9/Cm2++Wd6/AIo66aST0q233poblNWdWkJ1aVJNyX71q1/VOh/LlTzyyCPphhtusGwWtURojgZClZ544oncfdURPuo6//zzc/fMCNOxFBJAfUQFw3XXXZdef/31PEUtjBs3LvXv39+BW6CwWCkglsmKZrqxSg3VrUkFaqivX//613nOfZT2xjp+jz32WL7skksuUYZHLVdffXVeIivKqmLd8tKIZfv27ZfqAA4xxSgaTsW+0qJFi7y/RNnvwQcf7MVZCx144IFpyJAheTpavIfEslkRqP/yl7809lOjCsVoY0xBmz59eq64jPePONB/wAEHNPZTo8oO8v/sZz9LZ555Zl7KM35C586d8/sN1adZTcx2b6JiDnWUaEZQii80UCmqF+666640c+bMtOmmm6Zhw4YttZwWXHPNNfngS13du3e35iNLOfroo9Mnn3xS67I4+DJ27Fiv1lq8ln00TI0uvBtssEHeR4wosSxHHHFEXv61bhO7n//8514wyi6++OL05JNPLvWK9OvXL09Po/o06UANAAAAjaXJrUMNAAAA1UCgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACAAgRqAAAAKECgBgAAgAIEagAAAChAoAYAAIACBGoAAAAoQKAGAACA9Nn9L72K5yuNYdq+AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x900 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Collect words from Google Analogy dataset\n",
    "SUB_CATEGORY = \": family\"\n",
    "\n",
    "# TODO7: Plot t-SNE for the words in the SUB_CATEGORY `: family`\n",
    "family_words = sorted({w for q in data[data[\"SubCategory\"] == SUB_CATEGORY][\"Question\"]\n",
    "                       for w in q.lower().split()})\n",
    "family_words = [w for w in family_words if w in my_wv.key_to_index]\n",
    "vectors = np.array([my_wv[w] for w in family_words])\n",
    "# t-SNE：把 100 維壓成 2 維。字只有幾十個，所以 perplexity 要調小（必須小於樣本數）。\n",
    "points = TSNE(n_components=2, perplexity=15, random_state=42, init=\"pca\").fit_transform(vectors)\n",
    "plt.figure(figsize=(12, 9))\n",
    "plt.scatter(points[:, 0], points[:, 1], s=15)\n",
    "for (x, y), w in zip(points, family_words):\n",
    "    plt.annotate(w, (x, y), fontsize=9)\n",
    "\n",
    "\n",
    "plt.title(\"Word Relationships from Google Analogy Task\")\n",
    "plt.show()\n",
    "plt.savefig(\"word_relationships.png\", bbox_inches=\"tight\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7535f122",
   "metadata": {},
   "source": [
    "Running environment:\n",
    "\n",
    "Python version:\n",
    "\n",
    "##### 1. Which embedding model do you use? What are the pre-processing steps? What are the hyperparameter settings? (5%)\n",
    "\n",
    "Answer: \n",
    "\n",
    "##### 2. What will the performance be like if you sample 5%, 10% and 20% of wiki text in TODO4? (10%, 3% for each)\n",
    "\n",
    "Answer: \n",
    "\n",
    "##### 3. What is the performance for different categories or sub-categories when trained on different corpora? (15%)\n",
    "\n",
    "3.1. Present your results. (5%)\n",
    "\n",
    "Answer: \n",
    "\n",
    "3.2. Introduce the corpus you selected and explain what are the differences between the Wikipedia corpus and your corpus. (including data size, topic difference, structural difference … ) (5%)\n",
    "\n",
    "Answer: \n",
    "\n",
    "3.3. Explain why the performance increases or decreases. (5%)\n",
    "\n",
    "Answer: \n",
    "\n",
    "##### 4. Select a few words and use their embeddings to retrieve the five most similar words. What do you observe?  (10%)\n",
    "\n",
    "Answer: \n",
    "\n",
    "##### 5. … Anything that can strengthen your report.  (5%)\n",
    "\n",
    "Answer: \n",
    "\n",
    "##### 6. Generative AI Usage\n",
    "\n",
    "Answer:\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "00bd098b",
   "metadata": {},
   "source": [
    "## Code For 3. What is the performance for different categories or sub-categories when trained on different corpora? (15%)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "58b4d3a3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:01:42.105637Z",
     "iopub.status.busy": "2026-10-04T13:01:42.104636Z",
     "iopub.status.idle": "2026-10-04T13:04:06.269298Z",
     "shell.execute_reply": "2026-10-04T13:04:06.269298Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "GloVe (pre-trained): overall 63.11%  (OOV questions 0)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 20%: overall 1.98%  (OOV questions 6140)\n"
     ]
    }
   ],
   "source": [
    "# Write your code here\n",
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 共用工具：用任何一份詞向量考一次試。\n",
    "# 每題一次拿前 10 名候選字，記下正確答案排第幾名（之後算 top-k、做錯題分析都用得到）。\n",
    "results, details, models = {}, {}, {}\n",
    "\n",
    "def evaluate(wv, name, method=\"add\", max_k=10):\n",
    "    sim = wv.most_similar if method == \"add\" else wv.most_similar_cosmul\n",
    "    ranks, preds, oov = [], [], 0\n",
    "    for q in data[\"Question\"]:\n",
    "        a, b, c, d = q.lower().split()\n",
    "        if all(w in wv.key_to_index for w in (a, b, c)):\n",
    "            cands = [w for w, _ in sim(positive=[b, c], negative=[a], topn=max_k)]\n",
    "            preds.append(cands[0])\n",
    "            ranks.append(cands.index(d) + 1 if d in cands else None)\n",
    "        else:\n",
    "            preds.append(None)\n",
    "            ranks.append(None)\n",
    "            oov += 1\n",
    "    hits = np.array([r == 1 for r in ranks])\n",
    "    res = {\"Overall\": hits.mean() * 100}\n",
    "    for col in [\"Category\", \"SubCategory\"]:\n",
    "        for v in data[col].unique():\n",
    "            res[v] = hits[(data[col] == v).values].mean() * 100\n",
    "    res[\"OOV questions\"] = oov\n",
    "    results[name], details[name] = res, {\"ranks\": ranks, \"preds\": preds}\n",
    "    print(f\"{name}: overall {res['Overall']:.2f}%  (OOV questions {oov})\")\n",
    "    return res\n",
    "\n",
    "def answer_coverage(wv):\n",
    "    # 每個小類裡，四個字全部都在字典裡的題目佔幾 %（答案不在字典裡，再聰明也答不對）\n",
    "    ok = data[\"Question\"].map(lambda q: all(w in wv.key_to_index for w in q.lower().split()))\n",
    "    return ok.groupby(data[\"SubCategory\"], sort=False).mean().mul(100).round(1)\n",
    "\n",
    "models[\"GloVe (pre-trained)\"], models[\"Wiki 20%\"] = model, my_wv\n",
    "_ = evaluate(model, \"GloVe (pre-trained)\")\n",
    "_ = evaluate(my_wv, \"Wiki 20%\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5f0c230a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:06.315677Z",
     "iopub.status.busy": "2026-10-04T13:04:06.315677Z",
     "iopub.status.idle": "2026-10-04T13:04:06.864933Z",
     "shell.execute_reply": "2026-10-04T13:04:06.864426Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "keys: ['RelComments', 'RelQuestion', 'THREAD_SEQUENCE'] | question keys: ['RELQ_DATE', 'RELQ_ID', 'RelQSubject', 'RELQ_USERNAME', 'RELQ_USERID', 'RelQBody', 'RELQ_CATEGORY']\n",
      "subject: Thailand:IT Minsitry blocks CNN; Facebook;\n",
      "first comment: have they blocked porn??? <img src=\"http://www.qatarliving.com/files/images/Da.gif\">\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 3 題：換一份「不是維基百科」的語料。\n",
    "# 選的是 SemEval 2016/2017 Task 3 的論壇問答：卡達生活論壇（Qatar Living）網友的發問與留言。\n",
    "# 出處：gensim-data https://github.com/RaRe-Technologies/gensim-data （資料集 semeval-2016-2017-task3-subtaskA-unannotated）\n",
    "#       SemEval-2016 Task 3: Community Question Answering, https://alt.qcri.org/semeval2016/task3/\n",
    "# 注意：gensim 幫這份資料附的讀檔程式用了舊版 smart_open 的寫法，新版會 ImportError。\n",
    "#       所以只用 gensim 下載（return_path=True 只回傳檔案位置），讀檔自己來：每一行是一個討論串的 JSON。\n",
    "import gensim.downloader, itertools, json\n",
    "from gensim.utils import simple_preprocess\n",
    "\n",
    "FORUM_PATH = gensim.downloader.load(\"semeval-2016-2017-task3-subtaskA-unannotated\", return_path=True)\n",
    "\n",
    "def iter_threads():\n",
    "    with gzip.open(FORUM_PATH, \"rt\", encoding=\"utf-8\") as f:\n",
    "        for line in f:\n",
    "            yield json.loads(line)\n",
    "\n",
    "def thread_texts(thread):\n",
    "    # 只拿真正的文字：發問標題、發問內容、每一則留言。使用者名稱、日期、編號都不要。\n",
    "    q = thread.get(\"RelQuestion\", {})\n",
    "    yield q.get(\"RelQSubject\") or \"\"\n",
    "    yield q.get(\"RelQBody\") or \"\"\n",
    "    for c in thread.get(\"RelComments\", []):\n",
    "        yield c.get(\"RelCText\") or \"\"\n",
    "\n",
    "first = next(iter_threads())\n",
    "print(\"keys:\", list(first.keys()), \"| question keys:\", list(first[\"RelQuestion\"].keys()))\n",
    "print(\"subject:\", first[\"RelQuestion\"].get(\"RelQSubject\"))\n",
    "print(\"first comment:\", first[\"RelComments\"][0][\"RelCText\"][:200])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "fe57f9df",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:06.908590Z",
     "iopub.status.busy": "2026-10-04T13:04:06.908590Z",
     "iopub.status.idle": "2026-10-04T13:04:08.750135Z",
     "shell.execute_reply": "2026-10-04T13:04:08.749126Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "forum: 3,000 threads, 33,662 posts, 1,172,087 tokens\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki_sampled_5.txt: removed non-[a-z] tokens 2,199 of 742,467 (0.30%)\n",
      "5% wiki tokens: 740,268\n",
      "wiki control: 740,268 tokens\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 用跟維基百科一樣的規則前處理：先拿掉網頁語法和網址，再小寫、只留 2～15 個字母的英文字（WikiCorpus 的預設）。\n",
    "HTML_URL_RE = re.compile(r\"<[^>]+>|https?://\\S+|www\\.\\S+\")\n",
    "forum_tokens = forum_lines = n_threads = 0\n",
    "with open(\"forum_clean.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "    for thread in itertools.islice(iter_threads(), 3000):  # DRY\n",
    "        n_threads += 1\n",
    "        for text in thread_texts(thread):\n",
    "            text = HTML_URL_RE.sub(\" \", text)\n",
    "            toks = [w for w in simple_preprocess(text, min_len=2, max_len=15) if TOKEN_RE.match(w)]\n",
    "            if len(toks) >= 3:\n",
    "                fout.write(\" \".join(toks) + \"\\n\")\n",
    "                forum_tokens += len(toks)\n",
    "                forum_lines += 1\n",
    "print(f\"forum: {n_threads:,} threads, {forum_lines:,} posts, {forum_tokens:,} tokens\")\n",
    "\n",
    "# 對照組：從維基 5% 裡依序拿文章，拿到「字數跟論壇一樣多」就停。\n",
    "# 這樣兩份資料一樣大，分數的差別就只剩「內容種類」造成的。\n",
    "n5 = preprocess_file(\"wiki_sampled_5.txt\", \"wiki_sampled_5_clean.txt\")\n",
    "print(f\"5% wiki tokens: {n5:,}\")\n",
    "ctrl_tokens = 0\n",
    "with open(\"wiki_sampled_5_clean.txt\", encoding=\"utf-8\") as fin, open(\"wiki_control_clean.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "    for line in fin:\n",
    "        if ctrl_tokens >= forum_tokens:\n",
    "            break\n",
    "        fout.write(line)\n",
    "        ctrl_tokens += len(line.split())\n",
    "print(f\"wiki control: {ctrl_tokens:,} tokens\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "51877223",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:08.793521Z",
     "iopub.status.busy": "2026-10-04T13:04:08.793521Z",
     "iopub.status.idle": "2026-10-04T13:04:14.790856Z",
     "shell.execute_reply": "2026-10-04T13:04:14.789851Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on forum_clean.txt: 0.0 min, vocab 11,288, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_control_clean.txt: 0.0 min, vocab 12,992, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Forum (same size): overall 0.42%  (OOV questions 12827)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki control (same size): overall 0.22%  (OOV questions 12053)\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>Wiki control (same size)</th>\n",
       "      <th>Forum (same size)</th>\n",
       "      <th>Wiki 20%</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.22</td>\n",
       "      <td>0.42</td>\n",
       "      <td>1.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.17</td>\n",
       "      <td>0.29</td>\n",
       "      <td>1.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.26</td>\n",
       "      <td>0.52</td>\n",
       "      <td>2.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.40</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.57</td>\n",
       "      <td>5.14</td>\n",
       "      <td>9.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>1.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.15</td>\n",
       "      <td>0.98</td>\n",
       "      <td>3.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.76</td>\n",
       "      <td>0.85</td>\n",
       "      <td>1.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>1.06</td>\n",
       "      <td>0.06</td>\n",
       "      <td>4.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>1.47</td>\n",
       "      <td>1.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>4.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.11</td>\n",
       "      <td>1.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>12053.00</td>\n",
       "      <td>12827.00</td>\n",
       "      <td>6140.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki control (same size)  Forum (same size)  \\\n",
       "Overall                                            0.22               0.42   \n",
       "Semantic                                           0.17               0.29   \n",
       "Syntactic                                          0.26               0.52   \n",
       ": capital-common-countries                         0.40               0.00   \n",
       ": capital-world                                    0.00               0.00   \n",
       ": currency                                         0.00               0.00   \n",
       ": city-in-state                                    0.00               0.00   \n",
       ": family                                           2.57               5.14   \n",
       ": gram1-adjective-to-adverb                        0.10               0.10   \n",
       ": gram2-opposite                                   0.00               0.49   \n",
       ": gram3-comparative                                0.15               0.98   \n",
       ": gram4-superlative                                0.00               0.09   \n",
       ": gram5-present-participle                         0.76               0.85   \n",
       ": gram6-nationality-adjective                      1.06               0.06   \n",
       ": gram7-past-tense                                 0.00               1.47   \n",
       ": gram8-plural                                     0.00               0.23   \n",
       ": gram9-plural-verbs                               0.00               0.11   \n",
       "OOV questions                                  12053.00           12827.00   \n",
       "\n",
       "                               Wiki 20%  \n",
       "Overall                            1.98  \n",
       "Semantic                           1.44  \n",
       "Syntactic                          2.42  \n",
       ": capital-common-countries         2.77  \n",
       ": capital-world                    0.64  \n",
       ": currency                         0.00  \n",
       ": city-in-state                    1.58  \n",
       ": family                           9.09  \n",
       ": gram1-adjective-to-adverb        1.21  \n",
       ": gram2-opposite                   0.25  \n",
       ": gram3-comparative                3.75  \n",
       ": gram4-superlative                0.98  \n",
       ": gram5-present-participle         1.80  \n",
       ": gram6-nationality-adjective      4.94  \n",
       ": gram7-past-tense                 1.09  \n",
       ": gram8-plural                     4.13  \n",
       ": gram9-plural-verbs               1.49  \n",
       "OOV questions                   6140.00  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "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>coverage: wiki control</th>\n",
       "      <th>coverage: forum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SubCategory</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>36.0</td>\n",
       "      <td>21.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>6.5</td>\n",
       "      <td>1.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>4.6</td>\n",
       "      <td>4.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>26.3</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>36.0</td>\n",
       "      <td>47.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>34.5</td>\n",
       "      <td>60.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>6.9</td>\n",
       "      <td>16.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>52.7</td>\n",
       "      <td>61.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>18.7</td>\n",
       "      <td>18.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>61.6</td>\n",
       "      <td>43.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>53.1</td>\n",
       "      <td>33.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>52.1</td>\n",
       "      <td>45.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>45.0</td>\n",
       "      <td>56.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>27.6</td>\n",
       "      <td>39.3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               coverage: wiki control  coverage: forum\n",
       "SubCategory                                                           \n",
       ": capital-common-countries                       36.0             21.7\n",
       ": capital-world                                   6.5              1.7\n",
       ": currency                                        4.6              4.4\n",
       ": city-in-state                                  26.3              0.2\n",
       ": family                                         36.0             47.4\n",
       ": gram1-adjective-to-adverb                      34.5             60.5\n",
       ": gram2-opposite                                  6.9             16.3\n",
       ": gram3-comparative                              52.7             61.0\n",
       ": gram4-superlative                              18.7             18.7\n",
       ": gram5-present-participle                       61.6             43.8\n",
       ": gram6-nationality-adjective                    53.1             33.6\n",
       ": gram7-past-tense                               52.1             45.0\n",
       ": gram8-plural                                   45.0             56.8\n",
       ": gram9-plural-verbs                             27.6             39.3"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy on questions whose 4 words are in BOTH vocabularies:\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>Wiki control (same size)</th>\n",
       "      <th>Forum (same size)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>questions used</th>\n",
       "      <td>3361.00</td>\n",
       "      <td>3361.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>1.07</td>\n",
       "      <td>2.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>4.55</td>\n",
       "      <td>6.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.75</td>\n",
       "      <td>1.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>8.33</td>\n",
       "      <td>12.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.33</td>\n",
       "      <td>0.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>6.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.36</td>\n",
       "      <td>1.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>1.05</td>\n",
       "      <td>2.37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>2.98</td>\n",
       "      <td>0.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>4.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki control (same size)  Forum (same size)\n",
       "questions used                                  3361.00            3361.00\n",
       "Overall                                            1.07               2.08\n",
       "Semantic                                           4.55               6.64\n",
       "Syntactic                                          0.75               1.66\n",
       ": capital-common-countries                         0.00               0.00\n",
       ": capital-world                                    0.00               0.00\n",
       ": currency                                         0.00               0.00\n",
       ": city-in-state                                    0.00               0.00\n",
       ": family                                           8.33              12.18\n",
       ": gram1-adjective-to-adverb                        0.33               0.33\n",
       ": gram2-opposite                                   0.00               6.67\n",
       ": gram3-comparative                                0.36               1.99\n",
       ": gram4-superlative                                0.00               0.64\n",
       ": gram5-present-participle                         1.05               2.37\n",
       ": gram6-nationality-adjective                      2.98               0.19\n",
       ": gram7-past-tense                                 0.00               4.17\n",
       ": gram8-plural                                     0.00               0.79\n",
       ": gram9-plural-verbs                               0.00               0.00"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "forum_model = train_w2v(\"forum_clean.txt\")\n",
    "ctrl_model = train_w2v(\"wiki_control_clean.txt\")\n",
    "models[\"Forum (same size)\"], models[\"Wiki control (same size)\"] = forum_model.wv, ctrl_model.wv\n",
    "_ = evaluate(forum_model.wv, \"Forum (same size)\")\n",
    "_ = evaluate(ctrl_model.wv, \"Wiki control (same size)\")\n",
    "\n",
    "cols = [\"Wiki control (same size)\", \"Forum (same size)\", \"Wiki 20%\"]\n",
    "display(pd.DataFrame({k: results[k] for k in cols}).round(2))\n",
    "# 答案覆蓋率：題目四個字都在字典裡的比例。覆蓋率低 = 很多題連答的機會都沒有。\n",
    "display(pd.DataFrame({\"coverage: wiki control\": answer_coverage(ctrl_model.wv),\n",
    "                      \"coverage: forum\": answer_coverage(forum_model.wv)}))\n",
    "\n",
    "# 公平一點：只算「四個字在兩本字典裡都查得到」的題目，排除「字典裡沒有這個字」的影響。\n",
    "both = data[\"Question\"].map(lambda q: all(w in forum_model.wv.key_to_index and w in ctrl_model.wv.key_to_index\n",
    "                                          for w in q.lower().split())).values\n",
    "fair = {}\n",
    "for name in [\"Wiki control (same size)\", \"Forum (same size)\"]:\n",
    "    hits = np.array([r == 1 for r in details[name][\"ranks\"]])\n",
    "    row = {\"questions used\": int(both.sum()), \"Overall\": hits[both].mean() * 100}\n",
    "    for col in [\"Category\", \"SubCategory\"]:\n",
    "        for v in data[col].unique():\n",
    "            m = (data[col] == v).values & both\n",
    "            row[v] = hits[m].mean() * 100 if m.sum() else float(\"nan\")\n",
    "    fair[name] = row\n",
    "print(\"Accuracy on questions whose 4 words are in BOTH vocabularies:\")\n",
    "display(pd.DataFrame(fair).round(2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "8c0e240e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:14.835353Z",
     "iopub.status.busy": "2026-10-04T13:04:14.835353Z",
     "iopub.status.idle": "2026-10-04T13:04:14.849183Z",
     "shell.execute_reply": "2026-10-04T13:04:14.848632Z"
    }
   },
   "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>word</th>\n",
       "      <th>corpus</th>\n",
       "      <th>top 5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>visa</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>scv, detained, maximus, strategy, mcclaren</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>visa</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>residence, visit, rp, passport, sponsorship</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>salary</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>patent, allegedly, yards, fee, realized</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>salary</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>allowance, basic, housing, qar, accomodation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>doha</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>(not in vocab)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>doha</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>clinic, desert, dubai, lulu, oman</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>family</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>head, revenge, doctor, crew, nbc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>family</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>holding, sponsorship, residence, applying, applied</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>king</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>child, lord, son, arms, death</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>king</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>darude, owen, haha, md, huh</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>paris</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>soldier, scottish, festival, washington, saint</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>paris</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>mahmoud, mansoura, qadeem, unfurnished, emadi</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>computer</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>ainslie, price, crossing, gysin, overseeing</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>computer</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>submit, stamp, dept, registration, account</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        word                    corpus  \\\n",
       "0       visa  Wiki control (same size)   \n",
       "1       visa         Forum (same size)   \n",
       "2     salary  Wiki control (same size)   \n",
       "3     salary         Forum (same size)   \n",
       "4       doha  Wiki control (same size)   \n",
       "5       doha         Forum (same size)   \n",
       "6     family  Wiki control (same size)   \n",
       "7     family         Forum (same size)   \n",
       "8       king  Wiki control (same size)   \n",
       "9       king         Forum (same size)   \n",
       "10     paris  Wiki control (same size)   \n",
       "11     paris         Forum (same size)   \n",
       "12  computer  Wiki control (same size)   \n",
       "13  computer         Forum (same size)   \n",
       "\n",
       "                                                 top 5  \n",
       "0           scv, detained, maximus, strategy, mcclaren  \n",
       "1          residence, visit, rp, passport, sponsorship  \n",
       "2              patent, allegedly, yards, fee, realized  \n",
       "3         allowance, basic, housing, qar, accomodation  \n",
       "4                                       (not in vocab)  \n",
       "5                    clinic, desert, dubai, lulu, oman  \n",
       "6                     head, revenge, doctor, crew, nbc  \n",
       "7   holding, sponsorship, residence, applying, applied  \n",
       "8                        child, lord, son, arms, death  \n",
       "9                          darude, owen, haha, md, huh  \n",
       "10      soldier, scottish, festival, washington, saint  \n",
       "11       mahmoud, mansoura, qadeem, unfurnished, emadi  \n",
       "12         ainslie, price, crossing, gysin, overseeing  \n",
       "13          submit, stamp, dept, registration, account  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 同一個字，在論壇和維基（一樣大小）學到的鄰居差在哪\n",
    "rows = []\n",
    "for w in [\"visa\", \"salary\", \"doha\", \"family\", \"king\", \"paris\", \"computer\"]:\n",
    "    for name in [\"Wiki control (same size)\", \"Forum (same size)\"]:\n",
    "        wv = models[name]\n",
    "        rows.append({\"word\": w, \"corpus\": name,\n",
    "                     \"top 5\": \", \".join(x for x, _ in wv.most_similar(w, topn=5)) if w in wv.key_to_index else \"(not in vocab)\"})\n",
    "pd.set_option(\"display.max_colwidth\", 200)\n",
    "display(pd.DataFrame(rows))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "1115d7a1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:14.912686Z",
     "iopub.status.busy": "2026-10-04T13:04:14.912686Z",
     "iopub.status.idle": "2026-10-04T13:04:15.146674Z",
     "shell.execute_reply": "2026-10-04T13:04:15.146674Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki control (per 1M): 740,268 tokens\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Forum (per 1M): 1,172,087 tokens\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>Wiki control (per 1M)</th>\n",
       "      <th>Forum (per 1M)</th>\n",
       "      <th>forum / wiki</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>better</th>\n",
       "      <td>108.07</td>\n",
       "      <td>982.01</td>\n",
       "      <td>9.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>best</th>\n",
       "      <td>476.85</td>\n",
       "      <td>1055.38</td>\n",
       "      <td>2.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cheaper</th>\n",
       "      <td>5.40</td>\n",
       "      <td>72.52</td>\n",
       "      <td>13.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cheapest</th>\n",
       "      <td>0.00</td>\n",
       "      <td>29.01</td>\n",
       "      <td>inf</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bigger</th>\n",
       "      <td>9.46</td>\n",
       "      <td>36.69</td>\n",
       "      <td>3.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>biggest</th>\n",
       "      <td>36.47</td>\n",
       "      <td>57.16</td>\n",
       "      <td>1.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>looking</th>\n",
       "      <td>44.58</td>\n",
       "      <td>668.89</td>\n",
       "      <td>15.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>going</th>\n",
       "      <td>81.05</td>\n",
       "      <td>952.15</td>\n",
       "      <td>11.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>working</th>\n",
       "      <td>159.40</td>\n",
       "      <td>656.09</td>\n",
       "      <td>4.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>costs</th>\n",
       "      <td>22.96</td>\n",
       "      <td>71.67</td>\n",
       "      <td>3.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>goes</th>\n",
       "      <td>52.68</td>\n",
       "      <td>227.80</td>\n",
       "      <td>4.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>wife</th>\n",
       "      <td>158.05</td>\n",
       "      <td>588.69</td>\n",
       "      <td>3.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>husband</th>\n",
       "      <td>54.03</td>\n",
       "      <td>354.92</td>\n",
       "      <td>6.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>he</th>\n",
       "      <td>3848.61</td>\n",
       "      <td>3505.71</td>\n",
       "      <td>0.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>she</th>\n",
       "      <td>915.88</td>\n",
       "      <td>1838.60</td>\n",
       "      <td>2.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>capital</th>\n",
       "      <td>164.81</td>\n",
       "      <td>36.69</td>\n",
       "      <td>0.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>illinois</th>\n",
       "      <td>29.72</td>\n",
       "      <td>0.85</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>albanian</th>\n",
       "      <td>6.75</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>brazilian</th>\n",
       "      <td>24.32</td>\n",
       "      <td>36.69</td>\n",
       "      <td>1.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>kwanza</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           Wiki control (per 1M)  Forum (per 1M)  forum / wiki\n",
       "better                    108.07          982.01          9.09\n",
       "best                      476.85         1055.38          2.21\n",
       "cheaper                     5.40           72.52         13.42\n",
       "cheapest                    0.00           29.01           inf\n",
       "bigger                      9.46           36.69          3.88\n",
       "biggest                    36.47           57.16          1.57\n",
       "looking                    44.58          668.89         15.00\n",
       "going                      81.05          952.15         11.75\n",
       "working                   159.40          656.09          4.12\n",
       "costs                      22.96           71.67          3.12\n",
       "goes                       52.68          227.80          4.32\n",
       "wife                      158.05          588.69          3.72\n",
       "husband                    54.03          354.92          6.57\n",
       "he                       3848.61         3505.71          0.91\n",
       "she                       915.88         1838.60          2.01\n",
       "capital                   164.81           36.69          0.22\n",
       "illinois                   29.72            0.85          0.03\n",
       "albanian                    6.75            0.00          0.00\n",
       "brazilian                  24.32           36.69          1.51\n",
       "kwanza                      0.00            0.00           NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 3 題補充證據：同樣的字，在兩份一樣大的教材裡各出現幾次（每 100 萬字）。\n",
    "from collections import Counter\n",
    "\n",
    "probe_words = [\"better\", \"best\", \"cheaper\", \"cheapest\", \"bigger\", \"biggest\", \"looking\", \"going\",\n",
    "               \"working\", \"costs\", \"goes\", \"wife\", \"husband\", \"he\", \"she\",\n",
    "               \"capital\", \"illinois\", \"albanian\", \"brazilian\", \"kwanza\"]\n",
    "wanted = set(probe_words)\n",
    "freq = {}\n",
    "for name, path in [(\"Wiki control (per 1M)\", \"wiki_control_clean.txt\"), (\"Forum (per 1M)\", \"forum_clean.txt\")]:\n",
    "    counts, total = Counter(), 0\n",
    "    with open(path, encoding=\"utf-8\") as f:\n",
    "        for line in f:\n",
    "            toks = line.split()\n",
    "            total += len(toks)\n",
    "            counts.update(t for t in toks if t in wanted)\n",
    "    print(f\"{name}: {total:,} tokens\")\n",
    "    freq[name] = {w: counts[w] / total * 1e6 for w in probe_words}\n",
    "table = pd.DataFrame(freq)\n",
    "table[\"forum / wiki\"] = table[\"Forum (per 1M)\"] / table[\"Wiki control (per 1M)\"]\n",
    "display(table.round(2))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c27aa69",
   "metadata": {},
   "source": [
    "## Extra code for report question 2 (5% / 10% / 20%)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "90178d27",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:15.190544Z",
     "iopub.status.busy": "2026-10-04T13:04:15.189557Z",
     "iopub.status.idle": "2026-10-04T13:04:23.644660Z",
     "shell.execute_reply": "2026-10-04T13:04:23.644660Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki_sampled_10.txt: removed non-[a-z] tokens 5,935 of 1,626,769 (0.36%)\n",
      "10% wiki tokens: 1,620,834\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_5_clean.txt: 0.0 min, vocab 12,992, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5%: overall 0.14%  (OOV questions 12053)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_10_clean.txt: 0.0 min, vocab 21,301, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 10%: overall 1.03%  (OOV questions 9075)\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>Wiki 5%</th>\n",
       "      <th>Wiki 10%</th>\n",
       "      <th>Wiki 20%</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.14</td>\n",
       "      <td>1.03</td>\n",
       "      <td>1.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.16</td>\n",
       "      <td>0.61</td>\n",
       "      <td>1.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.12</td>\n",
       "      <td>1.39</td>\n",
       "      <td>2.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.79</td>\n",
       "      <td>2.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.04</td>\n",
       "      <td>0.77</td>\n",
       "      <td>1.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.37</td>\n",
       "      <td>4.94</td>\n",
       "      <td>9.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>1.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>1.13</td>\n",
       "      <td>3.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.38</td>\n",
       "      <td>1.42</td>\n",
       "      <td>1.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>0.56</td>\n",
       "      <td>6.00</td>\n",
       "      <td>4.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.90</td>\n",
       "      <td>1.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>4.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>1.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>12053.00</td>\n",
       "      <td>9075.00</td>\n",
       "      <td>6140.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Wiki 5%  Wiki 10%  Wiki 20%\n",
       "Overall                            0.14      1.03      1.98\n",
       "Semantic                           0.16      0.61      1.44\n",
       "Syntactic                          0.12      1.39      2.42\n",
       ": capital-common-countries         0.00      0.79      2.77\n",
       ": capital-world                    0.02      0.13      0.64\n",
       ": currency                         0.00      0.00      0.00\n",
       ": city-in-state                    0.04      0.77      1.58\n",
       ": family                           2.37      4.94      9.09\n",
       ": gram1-adjective-to-adverb        0.00      0.10      1.21\n",
       ": gram2-opposite                   0.00      0.00      0.25\n",
       ": gram3-comparative                0.00      1.13      3.75\n",
       ": gram4-superlative                0.00      0.18      0.98\n",
       ": gram5-present-participle         0.38      1.42      1.80\n",
       ": gram6-nationality-adjective      0.56      6.00      4.94\n",
       ": gram7-past-tense                 0.00      0.90      1.09\n",
       ": gram8-plural                     0.00      0.23      4.13\n",
       ": gram9-plural-verbs               0.00      0.23      1.49\n",
       "OOV questions                  12053.00   9075.00   6140.00"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 2 題：5%、10%、20%（助教說這題不用附程式，這裡附上供參考）\n",
    "n10 = preprocess_file(\"wiki_sampled_10.txt\", \"wiki_sampled_10_clean.txt\")\n",
    "print(f\"10% wiki tokens: {n10:,}\")\n",
    "for pct in [5, 10]:\n",
    "    m = train_w2v(f\"wiki_sampled_{pct}_clean.txt\")\n",
    "    models[f\"Wiki {pct}%\"] = m.wv\n",
    "    _ = evaluate(m.wv, f\"Wiki {pct}%\")\n",
    "display(pd.DataFrame({k: results[k] for k in [\"Wiki 5%\", \"Wiki 10%\", \"Wiki 20%\"]}).round(2))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90db346c",
   "metadata": {},
   "source": [
    "## Extra code for report question 4 (most similar words)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "75018bd3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:23.688836Z",
     "iopub.status.busy": "2026-10-04T13:04:23.688836Z",
     "iopub.status.idle": "2026-10-04T13:04:23.756545Z",
     "shell.execute_reply": "2026-10-04T13:04:23.756545Z"
    }
   },
   "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>word</th>\n",
       "      <th>model</th>\n",
       "      <th>top 5 (similarity)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>king</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>prince (0.77), queen (0.75), son (0.70), brother (0.70), monarch (0.70)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>king</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>philip (0.86), pope (0.86), viii (0.85), lord (0.85), elizabeth (0.85)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>cat</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>dog (0.88), rabbit (0.74), cats (0.73), monkey (0.73), pet (0.72)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>cat</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>chasing (0.90), literally (0.90), chased (0.90), mum (0.90), dog (0.89)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>apple</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>microsoft (0.74), ibm (0.68), intel (0.68), software (0.68), dell (0.67)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>apple</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>commodore (0.82), intel (0.82), amd (0.80), capcom (0.79), beos (0.79)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>bank</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>banks (0.81), banking (0.75), credit (0.70), investment (0.69), financial (0.68)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>bank</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>investments (0.90), banking (0.89), armenia (0.89), botswana (0.88), reserves (0.88)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>good</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>better (0.89), sure (0.83), really (0.83), kind (0.83), very (0.83)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>good</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>nobody (0.82), favorite (0.81), everything (0.81), doing (0.81), gift (0.80)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>taiwan</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>mainland (0.86), china (0.83), taiwanese (0.79), taipei (0.79), hong (0.77)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>taiwan</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>indonesia (0.96), arabia (0.94), malaysia (0.94), azerbaijan (0.94), bolivia (0.93)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>computer</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>computers (0.88), software (0.84), technology (0.76), pc (0.74), hardware (0.73)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>computer</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>vision (0.91), mechanics (0.85), unix (0.85), graphics (0.84), gaming (0.83)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        word                model  \\\n",
       "0       king  GloVe (pre-trained)   \n",
       "1       king             Wiki 20%   \n",
       "2        cat  GloVe (pre-trained)   \n",
       "3        cat             Wiki 20%   \n",
       "4      apple  GloVe (pre-trained)   \n",
       "5      apple             Wiki 20%   \n",
       "6       bank  GloVe (pre-trained)   \n",
       "7       bank             Wiki 20%   \n",
       "8       good  GloVe (pre-trained)   \n",
       "9       good             Wiki 20%   \n",
       "10    taiwan  GloVe (pre-trained)   \n",
       "11    taiwan             Wiki 20%   \n",
       "12  computer  GloVe (pre-trained)   \n",
       "13  computer             Wiki 20%   \n",
       "\n",
       "                                                                      top 5 (similarity)  \n",
       "0                prince (0.77), queen (0.75), son (0.70), brother (0.70), monarch (0.70)  \n",
       "1                 philip (0.86), pope (0.86), viii (0.85), lord (0.85), elizabeth (0.85)  \n",
       "2                      dog (0.88), rabbit (0.74), cats (0.73), monkey (0.73), pet (0.72)  \n",
       "3                chasing (0.90), literally (0.90), chased (0.90), mum (0.90), dog (0.89)  \n",
       "4               microsoft (0.74), ibm (0.68), intel (0.68), software (0.68), dell (0.67)  \n",
       "5                 commodore (0.82), intel (0.82), amd (0.80), capcom (0.79), beos (0.79)  \n",
       "6       banks (0.81), banking (0.75), credit (0.70), investment (0.69), financial (0.68)  \n",
       "7   investments (0.90), banking (0.89), armenia (0.89), botswana (0.88), reserves (0.88)  \n",
       "8                    better (0.89), sure (0.83), really (0.83), kind (0.83), very (0.83)  \n",
       "9           nobody (0.82), favorite (0.81), everything (0.81), doing (0.81), gift (0.80)  \n",
       "10           mainland (0.86), china (0.83), taiwanese (0.79), taipei (0.79), hong (0.77)  \n",
       "11   indonesia (0.96), arabia (0.94), malaysia (0.94), azerbaijan (0.94), bolivia (0.93)  \n",
       "12      computers (0.88), software (0.84), technology (0.76), pc (0.74), hardware (0.73)  \n",
       "13          vision (0.91), mechanics (0.85), unix (0.85), graphics (0.84), gaming (0.83)  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 4 題：挑字，各找 5 個最像的字。同時看現成的 GloVe 和自己訓練的 Wiki 20%。\n",
    "# 挑字的原則：一字多義（apple、bank）、反義詞（good）、專有名詞（taiwan）、一般名詞（cat、computer）、考卷裡的字（king）\n",
    "# 注意：兩個模型的 cosine 分數尺度不同，只能比「同一個模型內的排名」，不能拿分數互相比大小。\n",
    "probe = [\"king\", \"cat\", \"apple\", \"bank\", \"good\", \"taiwan\", \"computer\"]\n",
    "rows = []\n",
    "for w in probe:\n",
    "    for name in [\"GloVe (pre-trained)\", \"Wiki 20%\"]:\n",
    "        wv = models[name]\n",
    "        if w in wv.key_to_index:\n",
    "            rows.append({\"word\": w, \"model\": name,\n",
    "                         \"top 5 (similarity)\": \", \".join(f\"{x} ({s:.2f})\" for x, s in wv.most_similar(w, topn=5))})\n",
    "pd.set_option(\"display.max_colwidth\", 200)\n",
    "display(pd.DataFrame(rows))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "d853d614",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:23.800671Z",
     "iopub.status.busy": "2026-10-04T13:04:23.800671Z",
     "iopub.status.idle": "2026-10-04T13:04:23.849252Z",
     "shell.execute_reply": "2026-10-04T13:04:23.848724Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "king -> [('philip', np.int64(298)), ('pope', np.int64(241)), ('viii', np.int64(70)), ('lord', np.int64(457)), ('elizabeth', np.int64(212))]\n",
      "cat -> [('chasing', np.int64(28)), ('literally', np.int64(122)), ('chased', np.int64(25)), ('mum', np.int64(13)), ('dog', np.int64(200))]\n",
      "apple -> [('commodore', np.int64(226)), ('intel', np.int64(113)), ('amd', np.int64(358)), ('capcom', np.int64(87)), ('beos', np.int64(70))]\n",
      "bank -> [('investments', np.int64(48)), ('banking', np.int64(61)), ('armenia', np.int64(270)), ('botswana', np.int64(189)), ('reserves', np.int64(75))]\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>word</th>\n",
       "      <th>top 5 among the 50k most frequent words</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>king</td>\n",
       "      <td>philip, pope, viii, lord, elizabeth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>cat</td>\n",
       "      <td>chasing, literally, chased, mum, dog</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>apple</td>\n",
       "      <td>commodore, intel, amd, capcom, beos</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>bank</td>\n",
       "      <td>investments, banking, armenia, botswana, reserves</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>good</td>\n",
       "      <td>nobody, favorite, everything, doing, gift</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>taiwan</td>\n",
       "      <td>indonesia, arabia, malaysia, azerbaijan, bolivia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>computer</td>\n",
       "      <td>vision, mechanics, unix, graphics, gaming</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       word            top 5 among the 50k most frequent words\n",
       "0      king                philip, pope, viii, lord, elizabeth\n",
       "1       cat               chasing, literally, chased, mum, dog\n",
       "2     apple                commodore, intel, amd, capcom, beos\n",
       "3      bank  investments, banking, armenia, botswana, reserves\n",
       "4      good          nobody, favorite, everything, doing, gift\n",
       "5    taiwan   indonesia, arabia, malaysia, azerbaijan, bolivia\n",
       "6  computer          vision, mechanics, unix, graphics, gaming"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "apple top 15: ['commodore', 'intel', 'amd', 'capcom', 'beos', 'macintosh', 'amiga', 'inc', 'iphone', 'software', 'ios', 'desktop', 'pc', 'microsoft', 'sales']\n",
      "similarity(apple, banana) = 0.48\n",
      "similarity(apple, fruit) = 0.35\n",
      "similarity(apple, microsoft) = 0.75\n",
      "similarity(bank, river) = 0.51\n",
      "similarity(bank, money) = 0.56\n",
      "similarity(good, bad) = 0.69\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 4 題補充證據\n",
    "# (1) Wiki 20% 的鄰居裡常有冷門字：印出每個鄰居在 20% 維基裡出現幾次（字典門檻見 TODO5 的 effective min_count）\n",
    "for w in [\"king\", \"cat\", \"apple\", \"bank\"]:\n",
    "    print(w, \"->\", [(x, my_wv.get_vecattr(x, \"count\")) for x, _ in my_wv.most_similar(w, topn=5)])\n",
    "\n",
    "# (2) 只在最常見的 5 萬個字裡找鄰居（restrict_vocab），冷門字就被排除\n",
    "rows = [{\"word\": w, \"top 5 among the 50k most frequent words\":\n",
    "         \", \".join(x for x, _ in my_wv.most_similar(w, topn=5, restrict_vocab=50000))} for w in probe]\n",
    "display(pd.DataFrame(rows))\n",
    "\n",
    "# (3) 一字多義：apple 的前 15 名鄰居，以及幾組相似度\n",
    "print(\"apple top 15:\", [x for x, _ in my_wv.most_similar(\"apple\", topn=15)])\n",
    "for a, b in [(\"apple\", \"banana\"), (\"apple\", \"fruit\"), (\"apple\", \"microsoft\"),\n",
    "             (\"bank\", \"river\"), (\"bank\", \"money\"), (\"good\", \"bad\")]:\n",
    "    print(f\"similarity({a}, {b}) = {my_wv.similarity(a, b):.2f}\")\n",
    "\n",
    "# (4) 回到教材查 cat 的鄰居 sourpuss 是什麼：印出前 5 處上下文\n",
    "found = []\n",
    "with open(\"wiki_sampled_20_clean.txt\", encoding=\"utf-8\") as f:\n",
    "    for line in f:\n",
    "        i = line.find(\" sourpuss \")\n",
    "        if i >= 0:\n",
    "            found.append(line[max(0, i - 80): i + 90].strip())\n",
    "            if len(found) == 5:\n",
    "                break\n",
    "for s in found:\n",
    "    print(\"...\", s, \"...\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8792af67",
   "metadata": {},
   "source": [
    "## Extra code for report question 5 (anything that strengthens the report)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "caa6eba4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:23.895543Z",
     "iopub.status.busy": "2026-10-04T13:04:23.895543Z",
     "iopub.status.idle": "2026-10-04T13:04:32.537203Z",
     "shell.execute_reply": "2026-10-04T13:04:32.537203Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% seed=1: overall 0.20%  (OOV questions 12053)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% seed=2: overall 0.14%  (OOV questions 12053)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% seed=3: overall 0.24%  (OOV questions 12053)\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>seed 42</th>\n",
       "      <th>seed 1</th>\n",
       "      <th>seed 2</th>\n",
       "      <th>seed 3</th>\n",
       "      <th>max - min</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.14</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.16</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.12</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.19</td>\n",
       "      <td>1.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.37</td>\n",
       "      <td>2.17</td>\n",
       "      <td>1.58</td>\n",
       "      <td>1.98</td>\n",
       "      <td>0.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>0.56</td>\n",
       "      <td>0.50</td>\n",
       "      <td>1.06</td>\n",
       "      <td>1.06</td>\n",
       "      <td>0.56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>0.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.23</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               seed 42  seed 1  seed 2  seed 3  max - min\n",
       "Overall                           0.14    0.20    0.14    0.24       0.10\n",
       "Semantic                          0.16    0.18    0.09    0.26       0.17\n",
       "Syntactic                         0.12    0.22    0.19    0.22       0.10\n",
       ": capital-common-countries        0.00    0.40    0.00    1.19       1.19\n",
       ": capital-world                   0.02    0.04    0.00    0.04       0.04\n",
       ": currency                        0.00    0.00    0.00    0.00       0.00\n",
       ": city-in-state                   0.04    0.04    0.00    0.20       0.20\n",
       ": family                          2.37    2.17    1.58    1.98       0.79\n",
       ": gram1-adjective-to-adverb       0.00    0.10    0.10    0.00       0.10\n",
       ": gram2-opposite                  0.00    0.00    0.00    0.00       0.00\n",
       ": gram3-comparative               0.00    0.15    0.15    0.00       0.15\n",
       ": gram4-superlative               0.00    0.09    0.00    0.00       0.09\n",
       ": gram5-present-participle        0.38    0.95    0.00    0.00       0.95\n",
       ": gram6-nationality-adjective     0.56    0.50    1.06    1.06       0.56\n",
       ": gram7-past-tense                0.00    0.06    0.00    0.32       0.32\n",
       ": gram8-plural                    0.00    0.00    0.00    0.00       0.00\n",
       ": gram9-plural-verbs              0.00    0.11    0.00    0.23       0.23"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (a)：同樣設定、只換亂數種子，結果會晃多少？——先量雜訊，後面的比較才知道哪些差距算數。\n",
    "# 用 5% 維基（後面的比較實驗都用 5%）：原本的 seed=42 再加 seed=1、2、3，共 4 次。\n",
    "noise_runs = {\"seed 42\": results[\"Wiki 5%\"]}\n",
    "for s in [1, 2, 3]:\n",
    "    m = Word2Vec(corpus_file=\"wiki_sampled_5_clean.txt\", **{**W2V_PARAMS, \"seed\": s})\n",
    "    _ = evaluate(m.wv, f\"Wiki 5% seed={s}\")\n",
    "    noise_runs[f\"seed {s}\"] = results[f\"Wiki 5% seed={s}\"]\n",
    "noise = pd.DataFrame(noise_runs).drop(index=\"OOV questions\")\n",
    "noise[\"max - min\"] = noise.max(axis=1) - noise.min(axis=1)\n",
    "display(noise.round(2))\n",
    "NOISE = noise[\"max - min\"]\n",
    "\n",
    "def compare(base, other):\n",
    "    # 跟 base 比較；差距的絕對值大於「4 次重跑的最大落差」才標 True\n",
    "    t = pd.DataFrame({base: results[base], other: results[other]}).drop(index=\"OOV questions\")\n",
    "    t[\"diff\"] = t[other] - t[base]\n",
    "    t[\"noise (max-min of 4 seeds)\"] = NOISE\n",
    "    t[\"beyond noise?\"] = t[\"diff\"].abs() > t[\"noise (max-min of 4 seeds)\"]\n",
    "    return t.round(2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "377970be",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:32.588369Z",
     "iopub.status.busy": "2026-10-04T13:04:32.588369Z",
     "iopub.status.idle": "2026-10-04T13:04:36.396258Z",
     "shell.execute_reply": "2026-10-04T13:04:36.395743Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "questions containing a stop word: 206\n",
      "SubCategory\n",
      ": family                       86\n",
      ": gram1-adjective-to-adverb    62\n",
      ": currency                     58\n",
      "Name: count, dtype: int64\n",
      "['Algeria dinar Korea won', 'Angola kwanza Korea won', 'Argentina peso Korea won', 'Armenia dram Korea won', 'Brazil real Korea won']\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_5_nostop.txt: 0.0 min, vocab 12,863, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% (stop words removed): overall 0.19%  (OOV questions 12177)\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>Wiki 5%</th>\n",
       "      <th>Wiki 5% (stop words removed)</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.14</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.16</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.17</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.12</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>1.98</td>\n",
       "      <td>1.98</td>\n",
       "      <td>1.19</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.04</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.37</td>\n",
       "      <td>0.20</td>\n",
       "      <td>-2.17</td>\n",
       "      <td>0.79</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.00</td>\n",
       "      <td>-0.38</td>\n",
       "      <td>0.95</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>0.56</td>\n",
       "      <td>1.25</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.56</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% (stop words removed)  diff  \\\n",
       "Overall                           0.14                          0.19  0.06   \n",
       "Semantic                          0.16                          0.20  0.05   \n",
       "Syntactic                         0.12                          0.19  0.07   \n",
       ": capital-common-countries        0.00                          1.98  1.98   \n",
       ": capital-world                   0.02                          0.13  0.11   \n",
       ": currency                        0.00                          0.00  0.00   \n",
       ": city-in-state                   0.04                          0.04  0.00   \n",
       ": family                          2.37                          0.20 -2.17   \n",
       ": gram1-adjective-to-adverb       0.00                          0.00  0.00   \n",
       ": gram2-opposite                  0.00                          0.00  0.00   \n",
       ": gram3-comparative               0.00                          0.00  0.00   \n",
       ": gram4-superlative               0.00                          0.00  0.00   \n",
       ": gram5-present-participle        0.38                          0.00 -0.38   \n",
       ": gram6-nationality-adjective     0.56                          1.25  0.69   \n",
       ": gram7-past-tense                0.00                          0.00  0.00   \n",
       ": gram8-plural                    0.00                          0.00  0.00   \n",
       ": gram9-plural-verbs              0.00                          0.00  0.00   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              0.10          False  \n",
       "Semantic                                             0.17          False  \n",
       "Syntactic                                            0.10          False  \n",
       ": capital-common-countries                           1.19           True  \n",
       ": capital-world                                      0.04           True  \n",
       ": currency                                           0.00          False  \n",
       ": city-in-state                                      0.20          False  \n",
       ": family                                             0.79           True  \n",
       ": gram1-adjective-to-adverb                          0.10          False  \n",
       ": gram2-opposite                                     0.00          False  \n",
       ": gram3-comparative                                  0.15          False  \n",
       ": gram4-superlative                                  0.09          False  \n",
       ": gram5-present-participle                           0.95          False  \n",
       ": gram6-nationality-adjective                        0.56           True  \n",
       ": gram7-past-tense                                   0.32          False  \n",
       ": gram8-plural                                       0.00          False  \n",
       ": gram9-plural-verbs                                 0.23          False  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (b)：為什麼不移除停用詞？先看考卷，再真的做實驗比較。\n",
    "# 停用詞表：NLTK English stopwords（https://www.nltk.org/）\n",
    "import nltk\n",
    "nltk.download(\"stopwords\", quiet=True)\n",
    "from nltk.corpus import stopwords\n",
    "sw = set(stopwords.words(\"english\"))\n",
    "has_sw = data[\"Question\"].map(lambda q: any(w in sw for w in q.lower().split()))\n",
    "print(\"questions containing a stop word:\", int(has_sw.sum()))\n",
    "print(data[has_sw][\"SubCategory\"].value_counts())\n",
    "print(data[has_sw][\"Question\"].head(5).tolist())\n",
    "\n",
    "# 實驗：同樣是 5% 維基、同樣的參數，只差在「有沒有移除停用詞」\n",
    "with open(\"wiki_sampled_5_clean.txt\", encoding=\"utf-8\") as fin, open(\"wiki_sampled_5_nostop.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "    for line in fin:\n",
    "        fout.write(\" \".join(w for w in line.split() if w not in sw) + \"\\n\")\n",
    "m = train_w2v(\"wiki_sampled_5_nostop.txt\")\n",
    "models[\"Wiki 5% (stop words removed)\"] = m.wv\n",
    "_ = evaluate(m.wv, \"Wiki 5% (stop words removed)\")\n",
    "display(compare(\"Wiki 5%\", \"Wiki 5% (stop words removed)\"))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "b43c92c8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:36.440459Z",
     "iopub.status.busy": "2026-10-04T13:04:36.440459Z",
     "iopub.status.idle": "2026-10-04T13:04:45.678580Z",
     "shell.execute_reply": "2026-10-04T13:04:45.678580Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% CBOW (sg=0): trained in 0.0 min\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% CBOW (sg=0): overall 0.04%  (OOV questions 12053)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% window=10: trained in 0.0 min\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% window=10: overall 0.29%  (OOV questions 12053)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% vector_size=300: trained in 0.0 min\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% vector_size=300: overall 0.16%  (OOV questions 12053)\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>Wiki 5%</th>\n",
       "      <th>Wiki 5% CBOW (sg=0)</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.14</td>\n",
       "      <td>0.04</td>\n",
       "      <td>-0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.16</td>\n",
       "      <td>0.01</td>\n",
       "      <td>-0.15</td>\n",
       "      <td>0.17</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.12</td>\n",
       "      <td>0.06</td>\n",
       "      <td>-0.07</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.19</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>0.04</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.37</td>\n",
       "      <td>0.00</td>\n",
       "      <td>-2.37</td>\n",
       "      <td>0.79</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.15</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.00</td>\n",
       "      <td>-0.38</td>\n",
       "      <td>0.95</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>0.56</td>\n",
       "      <td>0.25</td>\n",
       "      <td>-0.31</td>\n",
       "      <td>0.56</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% CBOW (sg=0)  diff  \\\n",
       "Overall                           0.14                 0.04 -0.10   \n",
       "Semantic                          0.16                 0.01 -0.15   \n",
       "Syntactic                         0.12                 0.06 -0.07   \n",
       ": capital-common-countries        0.00                 0.00  0.00   \n",
       ": capital-world                   0.02                 0.00 -0.02   \n",
       ": currency                        0.00                 0.00  0.00   \n",
       ": city-in-state                   0.04                 0.04  0.00   \n",
       ": family                          2.37                 0.00 -2.37   \n",
       ": gram1-adjective-to-adverb       0.00                 0.10  0.10   \n",
       ": gram2-opposite                  0.00                 0.00  0.00   \n",
       ": gram3-comparative               0.00                 0.08  0.08   \n",
       ": gram4-superlative               0.00                 0.00  0.00   \n",
       ": gram5-present-participle        0.38                 0.00 -0.38   \n",
       ": gram6-nationality-adjective     0.56                 0.25 -0.31   \n",
       ": gram7-past-tense                0.00                 0.00  0.00   \n",
       ": gram8-plural                    0.00                 0.00  0.00   \n",
       ": gram9-plural-verbs              0.00                 0.00  0.00   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              0.10           True  \n",
       "Semantic                                             0.17          False  \n",
       "Syntactic                                            0.10          False  \n",
       ": capital-common-countries                           1.19          False  \n",
       ": capital-world                                      0.04          False  \n",
       ": currency                                           0.00          False  \n",
       ": city-in-state                                      0.20          False  \n",
       ": family                                             0.79           True  \n",
       ": gram1-adjective-to-adverb                          0.10          False  \n",
       ": gram2-opposite                                     0.00          False  \n",
       ": gram3-comparative                                  0.15          False  \n",
       ": gram4-superlative                                  0.09          False  \n",
       ": gram5-present-participle                           0.95          False  \n",
       ": gram6-nationality-adjective                        0.56          False  \n",
       ": gram7-past-tense                                   0.32          False  \n",
       ": gram8-plural                                       0.00          False  \n",
       ": gram9-plural-verbs                                 0.23          False  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "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>Wiki 5%</th>\n",
       "      <th>Wiki 5% window=10</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.14</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.10</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.16</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.17</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.12</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.10</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>1.38</td>\n",
       "      <td>1.19</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.37</td>\n",
       "      <td>0.99</td>\n",
       "      <td>-1.38</td>\n",
       "      <td>0.79</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.15</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.28</td>\n",
       "      <td>-0.09</td>\n",
       "      <td>0.95</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>0.56</td>\n",
       "      <td>1.88</td>\n",
       "      <td>1.31</td>\n",
       "      <td>0.56</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.32</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.23</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% window=10  diff  \\\n",
       "Overall                           0.14               0.29  0.15   \n",
       "Semantic                          0.16               0.18  0.02   \n",
       "Syntactic                         0.12               0.37  0.25   \n",
       ": capital-common-countries        0.00               1.38  1.38   \n",
       ": capital-world                   0.02               0.07  0.04   \n",
       ": currency                        0.00               0.00  0.00   \n",
       ": city-in-state                   0.04               0.04  0.00   \n",
       ": family                          2.37               0.99 -1.38   \n",
       ": gram1-adjective-to-adverb       0.00               0.10  0.10   \n",
       ": gram2-opposite                  0.00               0.00  0.00   \n",
       ": gram3-comparative               0.00               0.08  0.08   \n",
       ": gram4-superlative               0.00               0.00  0.00   \n",
       ": gram5-present-participle        0.38               0.28 -0.09   \n",
       ": gram6-nationality-adjective     0.56               1.88  1.31   \n",
       ": gram7-past-tense                0.00               0.13  0.13   \n",
       ": gram8-plural                    0.00               0.00  0.00   \n",
       ": gram9-plural-verbs              0.00               0.34  0.34   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              0.10           True  \n",
       "Semantic                                             0.17          False  \n",
       "Syntactic                                            0.10           True  \n",
       ": capital-common-countries                           1.19           True  \n",
       ": capital-world                                      0.04          False  \n",
       ": currency                                           0.00          False  \n",
       ": city-in-state                                      0.20          False  \n",
       ": family                                             0.79           True  \n",
       ": gram1-adjective-to-adverb                          0.10          False  \n",
       ": gram2-opposite                                     0.00          False  \n",
       ": gram3-comparative                                  0.15          False  \n",
       ": gram4-superlative                                  0.09          False  \n",
       ": gram5-present-participle                           0.95          False  \n",
       ": gram6-nationality-adjective                        0.56           True  \n",
       ": gram7-past-tense                                   0.32          False  \n",
       ": gram8-plural                                       0.00          False  \n",
       ": gram9-plural-verbs                                 0.23           True  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "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>Wiki 5%</th>\n",
       "      <th>Wiki 5% vector_size=300</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>0.14</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>0.16</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.17</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>0.12</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.20</td>\n",
       "      <td>1.19</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>2.37</td>\n",
       "      <td>1.78</td>\n",
       "      <td>-0.59</td>\n",
       "      <td>0.79</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.09</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.19</td>\n",
       "      <td>-0.19</td>\n",
       "      <td>0.95</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>0.56</td>\n",
       "      <td>0.81</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.56</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.32</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% vector_size=300  diff  \\\n",
       "Overall                           0.14                     0.16  0.03   \n",
       "Semantic                          0.16                     0.16  0.00   \n",
       "Syntactic                         0.12                     0.17  0.05   \n",
       ": capital-common-countries        0.00                     0.20  0.20   \n",
       ": capital-world                   0.02                     0.07  0.04   \n",
       ": currency                        0.00                     0.00  0.00   \n",
       ": city-in-state                   0.04                     0.04  0.00   \n",
       ": family                          2.37                     1.78 -0.59   \n",
       ": gram1-adjective-to-adverb       0.00                     0.00  0.00   \n",
       ": gram2-opposite                  0.00                     0.00  0.00   \n",
       ": gram3-comparative               0.00                     0.00  0.00   \n",
       ": gram4-superlative               0.00                     0.09  0.09   \n",
       ": gram5-present-participle        0.38                     0.19 -0.19   \n",
       ": gram6-nationality-adjective     0.56                     0.81  0.25   \n",
       ": gram7-past-tense                0.00                     0.13  0.13   \n",
       ": gram8-plural                    0.00                     0.00  0.00   \n",
       ": gram9-plural-verbs              0.00                     0.00  0.00   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              0.10          False  \n",
       "Semantic                                             0.17          False  \n",
       "Syntactic                                            0.10          False  \n",
       ": capital-common-countries                           1.19          False  \n",
       ": capital-world                                      0.04          False  \n",
       ": currency                                           0.00          False  \n",
       ": city-in-state                                      0.20          False  \n",
       ": family                                             0.79          False  \n",
       ": gram1-adjective-to-adverb                          0.10          False  \n",
       ": gram2-opposite                                     0.00          False  \n",
       ": gram3-comparative                                  0.15          False  \n",
       ": gram4-superlative                                  0.09          False  \n",
       ": gram5-present-participle                           0.95          False  \n",
       ": gram6-nationality-adjective                        0.56          False  \n",
       ": gram7-past-tense                                   0.32          False  \n",
       ": gram8-plural                                       0.00          False  \n",
       ": gram9-plural-verbs                                 0.23          False  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (c)：超參數比較（都用 5% 維基，一次只改一個設定，其他跟主模型一樣）\n",
    "variants = {\n",
    "    \"Wiki 5% CBOW (sg=0)\": dict(sg=0),\n",
    "    \"Wiki 5% window=10\": dict(window=10),\n",
    "    \"Wiki 5% vector_size=300\": dict(vector_size=300),\n",
    "}\n",
    "for name, change in variants.items():\n",
    "    t = time.time()\n",
    "    m = Word2Vec(corpus_file=\"wiki_sampled_5_clean.txt\", **{**W2V_PARAMS, **change})\n",
    "    print(f\"{name}: trained in {(time.time() - t) / 60:.1f} min\")\n",
    "    models[name] = m.wv\n",
    "    _ = evaluate(m.wv, name)\n",
    "for name in variants:\n",
    "    display(compare(\"Wiki 5%\", name))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "002b48c9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:45.724409Z",
     "iopub.status.busy": "2026-10-04T13:04:45.724409Z",
     "iopub.status.idle": "2026-10-04T13:04:45.743180Z",
     "shell.execute_reply": "2026-10-04T13:04:45.742175Z"
    }
   },
   "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>top-1</th>\n",
       "      <th>top-3</th>\n",
       "      <th>top-5</th>\n",
       "      <th>top-10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>GloVe (pre-trained)</th>\n",
       "      <td>63.11</td>\n",
       "      <td>73.68</td>\n",
       "      <td>77.73</td>\n",
       "      <td>82.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Wiki 20%</th>\n",
       "      <td>1.98</td>\n",
       "      <td>3.98</td>\n",
       "      <td>5.36</td>\n",
       "      <td>7.70</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     top-1  top-3  top-5  top-10\n",
       "GloVe (pre-trained)  63.11  73.68  77.73   82.01\n",
       "Wiki 20%              1.98   3.98   5.36    7.70"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (d)：前 k 名有猜中就算對，正確率會變多少？（老師說 queen 可能不是第一名，而是第二、三名）\n",
    "rows = {}\n",
    "for name in [\"GloVe (pre-trained)\", \"Wiki 20%\"]:\n",
    "    ranks = details[name][\"ranks\"]\n",
    "    rows[name] = {f\"top-{k}\": np.mean([r is not None and r <= k for r in ranks]) * 100 for k in [1, 3, 5, 10]}\n",
    "display(pd.DataFrame(rows).T.round(2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "d74467b6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:45.801446Z",
     "iopub.status.busy": "2026-10-04T13:04:45.801446Z",
     "iopub.status.idle": "2026-10-04T13:04:45.876062Z",
     "shell.execute_reply": "2026-10-04T13:04:45.875054Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wrong answers: 19158 of 19544\n",
      "  OOV (question word not in vocab): 6140\n",
      "  gold answer was 2nd-10th: 1119\n",
      "\n",
      ": capital-world\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>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>588</th>\n",
       "      <td>Algiers Algeria Ashgabat Turkmenistan</td>\n",
       "      <td>turkmenistan</td>\n",
       "      <td>afghan</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>590</th>\n",
       "      <td>Algiers Algeria Astana Kazakhstan</td>\n",
       "      <td>kazakhstan</td>\n",
       "      <td>bulgaria</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>591</th>\n",
       "      <td>Algiers Algeria Athens Greece</td>\n",
       "      <td>greece</td>\n",
       "      <td>fought</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>592</th>\n",
       "      <td>Algiers Algeria Baghdad Iraq</td>\n",
       "      <td>iraq</td>\n",
       "      <td>peninsula</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>593</th>\n",
       "      <td>Algiers Algeria Baku Azerbaijan</td>\n",
       "      <td>azerbaijan</td>\n",
       "      <td>bulgaria</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>595</th>\n",
       "      <td>Algiers Algeria Bangkok Thailand</td>\n",
       "      <td>thailand</td>\n",
       "      <td>yugoslavia</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                  Question          gold        pred  rank\n",
       "588  Algiers Algeria Ashgabat Turkmenistan  turkmenistan      afghan   NaN\n",
       "590      Algiers Algeria Astana Kazakhstan    kazakhstan    bulgaria   NaN\n",
       "591          Algiers Algeria Athens Greece        greece      fought   NaN\n",
       "592           Algiers Algeria Baghdad Iraq          iraq   peninsula   NaN\n",
       "593        Algiers Algeria Baku Azerbaijan    azerbaijan    bulgaria   NaN\n",
       "595       Algiers Algeria Bangkok Thailand      thailand  yugoslavia   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": currency\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>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5088</th>\n",
       "      <td>Argentina peso Armenia dram</td>\n",
       "      <td>dram</td>\n",
       "      <td>lighting</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5089</th>\n",
       "      <td>Argentina peso Brazil real</td>\n",
       "      <td>real</td>\n",
       "      <td>bolstered</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5090</th>\n",
       "      <td>Argentina peso Bulgaria lev</td>\n",
       "      <td>lev</td>\n",
       "      <td>attackers</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5091</th>\n",
       "      <td>Argentina peso Cambodia riel</td>\n",
       "      <td>riel</td>\n",
       "      <td>drift</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5092</th>\n",
       "      <td>Argentina peso Canada dollar</td>\n",
       "      <td>dollar</td>\n",
       "      <td>digitally</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5093</th>\n",
       "      <td>Argentina peso Croatia kuna</td>\n",
       "      <td>kuna</td>\n",
       "      <td>protracted</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          Question    gold        pred  rank\n",
       "5088   Argentina peso Armenia dram    dram    lighting   NaN\n",
       "5089    Argentina peso Brazil real    real   bolstered   NaN\n",
       "5090   Argentina peso Bulgaria lev     lev   attackers   NaN\n",
       "5091  Argentina peso Cambodia riel    riel       drift   NaN\n",
       "5092  Argentina peso Canada dollar  dollar   digitally   NaN\n",
       "5093   Argentina peso Croatia kuna    kuna  protracted   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": family\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>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>8363</th>\n",
       "      <td>boy girl brother sister</td>\n",
       "      <td>sister</td>\n",
       "      <td>widow</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8364</th>\n",
       "      <td>boy girl brothers sisters</td>\n",
       "      <td>sisters</td>\n",
       "      <td>sons</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8365</th>\n",
       "      <td>boy girl dad mom</td>\n",
       "      <td>mom</td>\n",
       "      <td>daddy</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8367</th>\n",
       "      <td>boy girl grandfather grandmother</td>\n",
       "      <td>grandmother</td>\n",
       "      <td>uncle</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8369</th>\n",
       "      <td>boy girl grandson granddaughter</td>\n",
       "      <td>granddaughter</td>\n",
       "      <td>ahmed</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8370</th>\n",
       "      <td>boy girl groom bride</td>\n",
       "      <td>bride</td>\n",
       "      <td>astonishing</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                              Question           gold         pred  rank\n",
       "8363           boy girl brother sister         sister        widow   NaN\n",
       "8364         boy girl brothers sisters        sisters         sons   9.0\n",
       "8365                  boy girl dad mom            mom        daddy   NaN\n",
       "8367  boy girl grandfather grandmother    grandmother        uncle   NaN\n",
       "8369   boy girl grandson granddaughter  granddaughter        ahmed   NaN\n",
       "8370              boy girl groom bride          bride  astonishing   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": gram3-comparative\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>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10673</th>\n",
       "      <td>bad worse big bigger</td>\n",
       "      <td>bigger</td>\n",
       "      <td>choice</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10674</th>\n",
       "      <td>bad worse bright brighter</td>\n",
       "      <td>brighter</td>\n",
       "      <td>pawn</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10675</th>\n",
       "      <td>bad worse cheap cheaper</td>\n",
       "      <td>cheaper</td>\n",
       "      <td>functioning</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10676</th>\n",
       "      <td>bad worse cold colder</td>\n",
       "      <td>colder</td>\n",
       "      <td>onset</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10677</th>\n",
       "      <td>bad worse cool cooler</td>\n",
       "      <td>cooler</td>\n",
       "      <td>occurring</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10678</th>\n",
       "      <td>bad worse deep deeper</td>\n",
       "      <td>deeper</td>\n",
       "      <td>stronger</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        Question      gold         pred  rank\n",
       "10673       bad worse big bigger    bigger       choice   NaN\n",
       "10674  bad worse bright brighter  brighter         pawn   NaN\n",
       "10675    bad worse cheap cheaper   cheaper  functioning   NaN\n",
       "10676      bad worse cold colder    colder        onset   NaN\n",
       "10677      bad worse cool cooler    cooler    occurring   NaN\n",
       "10678      bad worse deep deeper    deeper     stronger   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": gram6-nationality-adjective\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>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>14183</th>\n",
       "      <td>Albania Albanian Argentina Argentinean</td>\n",
       "      <td>argentinean</td>\n",
       "      <td>americas</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14184</th>\n",
       "      <td>Albania Albanian Australia Australian</td>\n",
       "      <td>australian</td>\n",
       "      <td>quebec</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14185</th>\n",
       "      <td>Albania Albanian Austria Austrian</td>\n",
       "      <td>austrian</td>\n",
       "      <td>bulgaria</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14186</th>\n",
       "      <td>Albania Albanian Belarus Belorussian</td>\n",
       "      <td>belorussian</td>\n",
       "      <td>expatriate</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14187</th>\n",
       "      <td>Albania Albanian Brazil Brazilian</td>\n",
       "      <td>brazilian</td>\n",
       "      <td>americas</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14188</th>\n",
       "      <td>Albania Albanian Bulgaria Bulgarian</td>\n",
       "      <td>bulgarian</td>\n",
       "      <td>anatolia</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     Question         gold        pred  rank\n",
       "14183  Albania Albanian Argentina Argentinean  argentinean    americas   NaN\n",
       "14184   Albania Albanian Australia Australian   australian      quebec   NaN\n",
       "14185       Albania Albanian Austria Austrian     austrian    bulgaria   NaN\n",
       "14186    Albania Albanian Belarus Belorussian  belorussian  expatriate   NaN\n",
       "14187       Albania Albanian Brazil Brazilian    brazilian    americas   NaN\n",
       "14188     Albania Albanian Bulgaria Bulgarian    bulgarian    anatolia   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": gram8-plural\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>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17342</th>\n",
       "      <td>banana bananas bird birds</td>\n",
       "      <td>birds</td>\n",
       "      <td>reptiles</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17343</th>\n",
       "      <td>banana bananas bottle bottles</td>\n",
       "      <td>bottles</td>\n",
       "      <td>pins</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17344</th>\n",
       "      <td>banana bananas building buildings</td>\n",
       "      <td>buildings</td>\n",
       "      <td>constructed</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17345</th>\n",
       "      <td>banana bananas car cars</td>\n",
       "      <td>cars</td>\n",
       "      <td>cargo</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17346</th>\n",
       "      <td>banana bananas cat cats</td>\n",
       "      <td>cats</td>\n",
       "      <td>literally</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17347</th>\n",
       "      <td>banana bananas child children</td>\n",
       "      <td>children</td>\n",
       "      <td>concubine</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Question       gold         pred  rank\n",
       "17342          banana bananas bird birds      birds     reptiles   NaN\n",
       "17343      banana bananas bottle bottles    bottles         pins   NaN\n",
       "17344  banana bananas building buildings  buildings  constructed   4.0\n",
       "17345            banana bananas car cars       cars        cargo   NaN\n",
       "17346            banana bananas cat cats       cats    literally   NaN\n",
       "17347      banana bananas child children   children    concubine   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (e)：錯題分析——電腦答錯時，它到底猜了什麼？\n",
    "d20 = details[\"Wiki 20%\"]\n",
    "err = data.assign(pred=d20[\"preds\"], rank=d20[\"ranks\"],\n",
    "                  gold=data[\"Question\"].str.lower().str.split().str[3])\n",
    "wrong = err[err[\"pred\"] != err[\"gold\"]]\n",
    "print(\"wrong answers:\", len(wrong), \"of\", len(err))\n",
    "print(\"  OOV (question word not in vocab):\", int(wrong[\"pred\"].isna().sum()))\n",
    "print(\"  gold answer was 2nd-10th:\", int(wrong[\"rank\"].notna().sum()))\n",
    "for sub in [\": capital-world\", \": currency\", \": family\", \": gram3-comparative\", \": gram6-nationality-adjective\", \": gram8-plural\"]:\n",
    "    print(\"\\n\" + sub)\n",
    "    display(wrong[(wrong[\"SubCategory\"] == sub) & wrong[\"pred\"].notna()][[\"Question\", \"gold\", \"pred\", \"rank\"]].head(6))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "9173e8b1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:45.923913Z",
     "iopub.status.busy": "2026-10-04T13:04:45.923913Z",
     "iopub.status.idle": "2026-10-04T13:04:57.609377Z",
     "shell.execute_reply": "2026-10-04T13:04:57.608371Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 20% (3CosMul): overall 1.84%  (OOV questions 6140)\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>Wiki 20%</th>\n",
       "      <th>Wiki 20% (3CosMul)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>1.98</td>\n",
       "      <td>1.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>1.44</td>\n",
       "      <td>1.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>2.42</td>\n",
       "      <td>2.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>2.77</td>\n",
       "      <td>2.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>0.64</td>\n",
       "      <td>0.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>1.58</td>\n",
       "      <td>1.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>9.09</td>\n",
       "      <td>8.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>1.21</td>\n",
       "      <td>1.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>0.25</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>3.75</td>\n",
       "      <td>3.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>0.98</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>1.80</td>\n",
       "      <td>1.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>4.94</td>\n",
       "      <td>5.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>1.09</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>4.13</td>\n",
       "      <td>3.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>1.49</td>\n",
       "      <td>1.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>6140.00</td>\n",
       "      <td>6140.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 20%  Wiki 20% (3CosMul)\n",
       "Overall                            1.98                1.84\n",
       "Semantic                           1.44                1.41\n",
       "Syntactic                          2.42                2.19\n",
       ": capital-common-countries         2.77                2.77\n",
       ": capital-world                    0.64                0.64\n",
       ": currency                         0.00                0.00\n",
       ": city-in-state                    1.58                1.58\n",
       ": family                           9.09                8.50\n",
       ": gram1-adjective-to-adverb        1.21                1.21\n",
       ": gram2-opposite                   0.25                0.25\n",
       ": gram3-comparative                3.75                3.15\n",
       ": gram4-superlative                0.98                0.62\n",
       ": gram5-present-participle         1.80                1.33\n",
       ": gram6-nationality-adjective      4.94                5.19\n",
       ": gram7-past-tense                 1.09                0.90\n",
       ": gram8-plural                     4.13                3.75\n",
       ": gram9-plural-verbs               1.49                1.15\n",
       "OOV questions                   6140.00             6140.00"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (f)：換一種「算答案」的公式。3CosAdd 是 b - a + c；3CosMul 用乘除。\n",
    "# 出處：Levy & Goldberg (2014), Linguistic Regularities in Sparse and Explicit Word Representations, CoNLL. https://aclanthology.org/W14-1618/\n",
    "# 同一份 Wiki 20% 詞向量，只換公式。\n",
    "_ = evaluate(my_wv, \"Wiki 20% (3CosMul)\", method=\"cosmul\")\n",
    "display(pd.DataFrame({k: results[k] for k in [\"Wiki 20%\", \"Wiki 20% (3CosMul)\"]}).round(2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "d47ce291",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:57.662384Z",
     "iopub.status.busy": "2026-10-04T13:04:57.662384Z",
     "iopub.status.idle": "2026-10-04T13:04:58.107251Z",
     "shell.execute_reply": "2026-10-04T13:04:58.106244Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABbIAAAKoCAYAAACiDwn+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QWYVPX3x/Gzu3R3dzeClAgioQioqCgGtoiChYrYgQqKYqMYIAbYiI1dKCUIipSEhHR3Lvt/Psf/nd/ssLsssL3v1/MMO3Nr7twZZr733PM936i4uLg4AwAAAAAAAAAgg4pO7x0AAAAAAAAAACApBLIBAAAAAAAAABkagWwAAAAAAAAAQIZGIBsAAAAAAAAAkKERyAYAAAAAAAAAZGgEsgEAAAAAAAAAGRqBbAAAAAAAAABAhkYgGwAAAAAAAACQoRHIBpAtvPXWW1atWjXbuXNnim63ffv2du6558ab1rRpU7vsssuOat2s6o033rBmzZpZiRIlrHbt2mn+/Akd62M5/u3atbN77703hfYOAAAAKe3pp5+24447zmJjY1N0u/Xr17d+/frFm1ahQgUbOHDgUa2bVT3zzDN+/IsXL25t27ZN8+dP6Fgf7fE/cOCANWzY0IYPH56CewjgaBDIBpAiQeIiRYqEbmqs1KlTx/r06WPLli07ZPmVK1faXXfdZS1atLBy5cpZ1apV7eSTT7b77rvPVqxYkeBzvP32277tevXq2cGDB49o/3bv3m2333679e7d2/Lnz+/T3n33Xd/e+PHjD1n+wgsv9HmjRo06ZN51111nRYsWtQ0bNvjj7du3244dO+Its23btmQFzBNaNyFz5861W265xZo3b+7Hq2XLlnb//ff78yRk4cKFdsEFF1ilSpWsYsWKfn/RokWHLPfnn39ahw4dfDkts379+kOW0TFo1KiRH8Oj9dtvv3lgX7cFCxb447SW0LFO7vFPiN6Pxx9/3JYuXZpCewgAAJD27rzzTitTpswRrzdlyhQ7//zzPTBYvnx5O/HEE719/88//xwSTFa7WoHeoP0cTkkFkUkOwTqJ3d57773D7p+e64EHHrAbb7zRYmJifNpzzz3n60+aNOmQ5dUm1rxPP/30kHnnnXeelS1b1vbv3++Pt27dart27Yq3zJYtWw6ZlpCE1k3I9OnTrW/fvp4go+PbunVrb3vu2bMnweVnzpxp3bt39+NcpUoVu/LKK23VqlWHLPfLL7/4e6VlrrrqKm8PR3rkkUc8aeNYLgDoOPbv39/uuOMOPzf54osvLK0ldKyTe/wj5ciRw66//no/X920aVMK7iWAIxYHAMdo9OjRcfo6eeedd+I2b94ct2bNmriPPvoormzZsnGlSpXyx4HPPvssrmDBgnGtW7eO+/jjj+NWrFgRt3z58rh33303rnHjxr5OQk466aS4kiVL+vNMmDDhiPbv+eefj8uVK1fcxo0bQ9P0vNpWv3794i0bGxsbV6RIkbg8efLEnXfeeYdsq2rVqnH169cPPd6+fXvcjh074i1TvXr1uB49ehx2vxJaN9KGDRt8P9u0aRP39ddfx61cudKPYeXKleNq1Kjhxzvc4sWL44oVKxZ3xhlnxM2fPz9uwYIFfr9EiRJx//zzT2g5PW/p0qXjBg4cGLdkyZK4Ll26xHXo0CHetlatWuXH4vPPP487FkOGDPHXsGfPnrj0ktCxPv744+M6d+58VNs7ePCgvweRnx8AAIDM5KabborLnTv3Ea3z2muvxUVFRcVdeOGFcdOnT49bvXq1t8+bN2/u7fxwjzzyiLcDdbvxxhsP2ZbaYmqTJrTODz/84G3dyNu+ffsOu4/33nuvt4n37t0bmjZt2jTf7oMPPhhv2a1bt8bFxMR4+/+GG26IN+/AgQP+mjp27Bhv+Z07d8ZbLn/+/HHXXXfdYfcroXUjzZkzx/dT7fOff/457t9//4177733/FxI7dfINvWMGTPi8uXLF3fppZd6u/7PP/+Ma9u2rbdVdS4R0DmZ9vOxxx6LW7hwYVzLli3jLrroonjbmjt3rm9Lx+pY6L3WeUR6SuhYly9fPu6yyy47qu3t3r07rlChQod8fgCkLQLZAFIskP3pp5/Gm/7mm2/6dAUyZd68ed4w6tq1a9z+/fsP2Y4apbfccssh0xWM1XbUaK5bt27cOeecc0T716hRowTXUSC4Tp068aYFDVw16tVYVMAysHTpUp8X2cCNlNxAdnKo8Xnbbbd5gD3c999/7/vy6KOPxpt+wQUXeKNRgduA7mtar169QtM++OADb6yrQSZTp0717S1btiy0zFlnnRVvnaPVv39/PznIaI4lkC133XWXN2YPdzECAAAgKwWyK1asGFe7du1D2qdq319//fUJBqXbt28flzNnzrhFixYlO5D922+/HfHrCfajXLlyiSasnHzyyfGmf/LJJ3HR0dG+7+EJKzJ58mTfl8GDByf5nMkNZCeHAtlDhw49ZPpbb70VOicKp9ejZJvwAL8SUnS8b7311tC04cOHx5UpUyZ0fqOkIr3u4HxAx0fJRuHrHC2dkyhonNEcSyBbrrzySv/86wIHgPRBaREAqaZx48b+N+hiOGTIEC9R8eyzz3r3rEg5c+a0J5544pDpI0eO9HIl6r547bXXele1devWJWsf9NwqodGpU6dD5nXs2NHmz59vq1evDk37/vvvvevgNddc46U2Zs+eHW9esN6R1ln+8MMPrVSpUl6aJOiml5x19bofe+wxi46O/3Wtbpzy999/h6bt27fPPv74YzvttNOsQIECoem637VrVy+jomXk33//tZIlS1qePHn8sboXBtNFXTZ//fVXr213tPQ61UXzhRdeCN3X7dFHH/X5KmcSXo6mVq1advXVV4f2IbLmuF7rGWec4eVV2rRp411aRe/hmWee6dObNGmSYNfF5BxrdRutW7dugt0o1T1TJXCC4yf6TKm8S/C5AAAAyEx69eplI0aMsL1798Yr3bF8+fIk11M7XG3HyPap2vcq35EQlcXLnTu3lzJJbSpjp7Iake1/7a9KZkyePDleiQ615XTecs4559icOXNs7dq1oXk//PDDIe3/5NZZDs5hVI7iSNZVKcWE6m0n1P7Xvv70009eVkTnUgGdz6gu9TvvvBOapja2yg5GRUX5Y72HKtkYlCBR/Wdt76GHHrKjpW3pMzRu3LjQfd1Gjx4dapMH0zR2jl6ryr9Elp0Jao7//vvvdsopp3g7X++n3p+g9Mqpp57qr7NVq1Z+3pLQ8TrcsdbnQecVCenWrZufW4TTPqgUpvYLQPogkA0g1SxevNj/qoEhCjCqsVK9evVkb0O16F5//XW74oorPOiqgGauXLnstddeS9b6EydO9L+qL51QLbzwBmrQkFW9bgU0S5cuHS9IqftBA/hI6iwrEK0gqRpSzz//fKhO37HUaP7mm2/8rwawDKj+tC4U6BhH0jTVg1ONOlFQXfXdgqDtmjVr/K9es6arQakLDmp8Hy29TtWQVhA4uK+b6uUF9beDaaoD/vLLL/tFh86dO8c7uVCwWHXVBwwY4LUXVdtPjVsF7LX8TTfd5DXQ1YBVg/Xss88+pNZ6co71xRdf7EHxzz777JCTtbFjx/rFAH32AvpM6URAJw8AAACZjdpeaqcpwBy0yXRTOyspagOpja2AcHKpjXnbbbfZ+++/b1OnTrXUdLj2vwL34XWyg/b/CSec4Mci8tygUKFCPmh5cussKzisIKwScB588EG/JXfdI23/qy2snvaJtf/Vhg6CxGr/hycDhbf/Na7RPffcY6+88orlzZvXjpbO+/QZUvJJcF83XTQRJSQF05Qw9OSTT9q3337r7ffwcZBUc1znNgqqDx061NvbOg/TeYLqgav+uZKkfv75Zx+/6PTTTz9k/KDkHOuLLrrIzyEiP5M6J9C5qy5uhNNYRUL7H0g/BLIBpAo1TBR0zJcvn11yySUeSNy4cWMo8ze5lGGszGg1BKVw4cLe4FCGQ3IEg/HpKn4kZQQoEBk0VhU0V0NG00UB6/BAtpZTdrAyCJJD29MgKsrCePPNN73BlRLUGNXAKWpUawDL8OmixlykYsWK+d9gQEdlMKgx+OKLL/oo3E899ZRnHKhhfPPNN3vDXxnwaiBq4E6N0q2TnSOlY6UTguC+bkEWuAbeDKapAa0TiDfeeMOD2mrQRp6Q6CKATjC0j8r2UWBaGRovvfSSD1qjjGllkKsRHGR9HAk1gDXwpTLIw+mzpkxsvZfhlOmu9yByUCMAAIDMQG2xyHaabpGZ1pHUJgwGINSg4OrJqASFyF51kW699VYPbiqgnRzh2bvht4QGMYxs/6uNHyTTJJXIovazzlv0XGqjKlAZtP/V/lPA+6STTgolohyOBnxX8FNtbAVt1RszJeg1Pfzww35Oo16NR9L+D5ZRD0YFtpUtrWC+klYUGNbnQO+h2v7KTtZ5Ro0aNfy854MPPjii/dRx13uk7PDgvm5BMojaz8E0vT9KTFGvACWqRGY5K0it5CXtR82aNX0QUO2/gt46t9LFBU1X+1+B7/Ds8+RSIovOLyPb/3qs/weXX355vOn63AvtfyD9EMgGkGKCUhEKXrdo0cIbWmoIqiEUZP4ermEcSUFENbDCs7jVIFRmcXKuhKtRIwo4RlJpDQVog8aqrsSr8RkEshVYVQNK+64ufGo4hXcrPNzzar8/+eQT++677zz4nhKUqawSGdoXHRsFgAPKxpCgu2C4YFqwjDKtVT5Eo5+r8frXX3/Z22+/7ZkeunigxrcCxApwKyN+2LBhnvk8YcIESykq6aLM7wYNGvh7oc+OPjcSZI4HFGRXV8iAlldWiaaFXxzR61KjOHL95NAJihrxOgaLFi3yaQqK62TtuOOO80Z0JDV8N2/efMTPBQAAkJF9/vnnhwSQg/aVei7OmzfPEw8UtFWihILUapOpB13Q3oykNuegQYM8QUHtzcMJz94NvyUUoI5sh+t8JKHgs9qd4b0uf/zxRz8/UbA6aP8HQW6VsVNGb3Lb/2rbajvKGFZyTJcuXSwl6PWodIjOU8aMGePH8Wja/zqfUtLIDTfc4G1YbU/nE2rrK5iv9v7gwYPt3Xff9ZKECmjr/C4ly2gsWbLESwnqM6TSIvpcKXtbItvvSirSfgaUXKP3VO9heOBe5QkVKD+a9r+O5aWXXurnReqVKnrPdZyU+BN+/iG68KPnov0PpB8C2QBSTFAqQrXV1ABQ4zbofqVGSMGCBQ+bqRFOXdwUVFQDM7wRHZT2UNe3wwkC2MoIT4iyMtSgUi1ANWjVlVKB96Ahqy5parwFDdogiyM5tfm0jhp/yhZOCcoK6dGjhwfXFWhWuZJwQYNO+xwpmBbe6FMGhN4vZTZrf/Xa+/Tp4933lG2gRq1Kueg9VFBejcyjyXROiD4fOi465qqLrga/9kX17kRZIuESyqjXe5vY9OACxpFShrsySHR8g5M4fQ4js7ED+lyFN7ABAACyAvUsVPsx/BY+jogCigrwqsehxoJREPfCCy/0dl1S7UWVMlHJCwVJ1SswKeHZu+G3hIK2kW1BtTXDS1WEU9KK2r4K5KotqoSJoD2n9r8SGlSm7kjb/zr30XmDArVKlkkJaqervJ16LCrjOEi4Odr2v94jZbSrDavXp6DsLbfc4hnIOgZq/ytpSPvfs2dPz7pPbknHw1FZE51XqM61srBVFkXt/2B8m8O1/3XBQZ+JhNr/Os882va/yj8qWejVV1/1xyopqGOXUPtf52O60f4H0g+BbAApJigVoYZEZANTjzU4hq72B/XYkhMYV7kINYwjMzHeeust7xZ3uKvhwVX08EFbwgUNUzVidQtvHIbXydZNDb3EBgOJpJIXqvmmchiqCZ1YZkpyqaGvoLgaehqIRQHnSLVr1/ZBdsIHgAmoxpwCtFomUjAwjAbfUSZNsG1ddFCpjYDmHcmFiKToAoW65KkroILkCqLrs5NYAzSxTP7Eph/t8VaWtzLedQKmBq0a2cq8COr6hdN8NXLDjxEAAEBWoIHu1M4OvynzNTGqq6ySdJLUQNgKgCtpQjWIk1sq8Eip/a+2YGKDw6v9r0C9MsMj2/9Bneyg/R/04EwOlVPUuC333ntv6FgcC419o9J3Crrr3CeyXrMoO1kSa/+rt2KZMmUSbf9ff/31fkFCGd+p3f5XlrfKnCgZSRcMFJBW+z+x87m0av8r01ufCSWyaBtq/ytbXKVYIgXnsbT/gfRDIBtAmlHDTo2Du+++O9FlVPtMgjrHyhpOKBNDjTplhah7XVKCbOgZM2YkOF/Z3WpQK0Cs7oORWQ5BnWxlhWtEbHVTTC7VmlYwXoFnDVYZnsVyJHQs1DBW40+1oRMbfVv7pgD6V1995Y3zgO6rJIgCxokN3qLBepSFoIZlcBEioQFhwkuZHItg/yKzGVTeJL0pC0VdCx999FE/ljppSKjuoD5Tem+Se3EDAAAgo1H7UQkTkUFABToj299BAFHlQRIKGmo8nGCbSVE7XoFMZXMf7cDnx9L+D0qFKPNWwd7w9n9QJ1u98lR2MBhTJ7nUflSgXuc7ya0FnhBlJyu4rNrROt+J7IkZHrRXRrkGKw9/T5RsoV6cqiedGJV3UQlEnasEsnP7f/HixT4wp3qK6twrfJD3gC4qCO1/IP0QyAaQZtQo1BVu1RxTzWjVZRYFA6dNm+aZH2r8iQKvuvqvQHZClPWtBsThyovoCrsGB1QgOiHBKOTBoCeRgWw1stVNUA265HYrDKcAtkZnV1dAZfpGdpk7HDVIVe5C6yuIrayJpGgQGGU1aDl1qdRNdfDUmNW8hAQDGWpQSg2YElAZEzXwlRGvLA/V+9ZrCOhCg05q1J30aE4w1DVQ+6QsbGWc6L1UmZf0pi6Uqomthqw+m4mVFdFnSic7ya2bCAAAkNGoraxkCwVMk+uRRx6xtm3bemkKraubAnxqMymbOaGeg5E0Tova16olndKUVa0khMTa/zo3qFy5smc5qzdjZFBS7f/g3OBo2v8DBw70MVbUO1NlRhIrcZIYXVhQ4FrJNGqLaxDGpChwrprl99xzj7fr1e4PyuVpWkK0jJJjNB6Ogtfh7X9lyqt9rpJ/Oobh7X+dq6n9fySfl4DazNonnXPoHEUXMR577DHbtm2bpTddNFBpRV2kkaTa/8rWDspnAkh7BLIBpCk15pTdoACtgsa60q2SJGqsqVGgrGNRUFPzIgPL4TSAikqVaHtJ0QB+H330kdfBS4gaqGpgqkEbPnBg0JANGp9H05AVZUIoq0MBcQXrjyTzRAFkBYyVCaKGaGRmTPio5aIBCb/++mvPJAiW0X1Na9y4cYLP8dBDD3mmtgbpCad6eWpwqhtp8+bN/Tiqrl5AAXM1go+mRpwG6VEAXIOy6H1Xl0ddzIgcMTy9qGGvz6g+D4m97zqx0Oc2GBEeAAAgs1HbToFK9epToojajho7JinK4lWdawX7lJig4LXWV6k4letQksjhaJnDBWh1HpBQz0wNSJgU7c/ll1/umb6JBZGD9v/xxx/vrzul2/8651EiihJ41F5XgDm5FNzXQJei9nfk69dg6eF07JVdrXX0WlQORSU8FHTV+U1CNCinSqZooMPI8wIltiioq8EOlXQSnrShXotq/2s/jpTKNuriwU8//eTJRMomV/lHXRhJb8Gg72r/K0hdv379BC8waFBIJSollK0NIG1ExR1r4VYA2Z4aZrqqroasshqOhDIdtE7kqOK6Mq/gbWTDMrIxoaCwui8m1ZhQRoEGcFSGbUJlOYL9V4ZA+Cjg4euLAraRXQv1/JoWvp4GT9HriexWqefQc2lZPVdC60ZSIzqpLIXE9jm8+15QAy8x2l8dPzX6E6IsG3UljXztCtCvXLnSA9BJUbZ1UoOiaJ72UdvXT5IaxwqsB/uT2PHUdO1X5OtPaHpCxzqp468LD+r2qs+M6hxGUgNcJzazZs1KscF8AAAA0ovanGob6a+CjInVIU6oPa62XGLlRNTWV1swoW2qrapEE00PBmgPXycx6hGnW1IUjNfYMEo8SKi2dPAcagNH7nvQHpWEArZqm+v8JXw9La9tRZbx0+vT6wzOkxJaN7FznMSojZxYuUC9F2o3R55bRQra24mdQ2kfEjqvU7a7AuXqqZkUnfdoG+Hva+TxD9r6wflO+DldYsczselaX+cT4dMTOtZJHX+VhFQmu7LpdSEi0rvvvutBbCUa6aINgPRBIBtAtvDss896tzvVPjtcwxeHpwanBo/54IMPsmRpDWWnKGNEA1IGA4aGO+mkkzyr5KWXXkqX/QMAAEDS7rrrLs9S/uOPP5IdmEfiFARWEFslR7JiIocy0DVu0KpVqw5JptK5j7K0e/bsGSo/AiB9EMgGkC0EV/rVKDlchgIOT5kqOp5HU1Yko5s7d653d1VD9bXXXktwGWXpH00PBAAAAKQN9SpUT72EelXi6LP2E8uyzsxUzkWJKhqgMxizKRznkkDGQSAbAID/76qoOoI64VFtRA3SSf1rAAAAIGvSeD1KYFEJmDPOOMNL0SRV9gVA+iOQDQBAWD3Ew9VcBwAAAJD5BZnWwRhGADI+AtkAAAAAAAAAgAyNEQ8AAAAAAAAAABlajqzaPSQYaZZBHQAAALJWGSDVsi9XrpxFR5OTkZ3QxgcAAMjebfwsGchWELtixYrpvRsAAABIJStWrLAKFSpwfLMR2vgAAADZu42fJQPZysQOXnyhQoXSe3cAAACQQjQokxIWgvYesg/a+AAAANm7jZ8lA9lBOREFsQlkAwAAZD2Uj8t+aOMDAABk7zY+hQUBAAAAAAAAABkagWwAAAAAAAAAQIZGIBsAAAAAAAAAkKERyAYAAAAAAAAAZGgEsgEAAAAAAAAAGRqBbAAAAAAAAABAhkYgGwAAAAAAAACQoRHIBgAAAAAAAABkaASyAQAAAAAAAAAZGoFsAAAAAAAAAECGRiAbAAAAAAAAAJChEcgGAAAAAAAAAGRoBLIBAAAAAAAAABkagWwAAAAAAAAAQIZGIBsAAAAAAAAAkKERyAYAAAAAAAAAZGgEsgEAAJDiDh48aNdccw1HFgCAY3Trrbfatm3bOI4Asj0C2QAAAEiVQPaoUaM4sgAAHKOxY8farl27Epx3xx132MaNGznGSHUTJ060VatWcaSRrghkAwAAAAAAZEJNmjSx3Llzp/duIBsYOnSo/f777+m9G8jmcqT3DgAAACBz++abb2zChAne7blUqVI2ZMiQ0LxFixbZG2+8YdHR0XbDDTdY8eLFffq+ffts9OjRNnfuXKtatar17t3bChQokI6vAgCAjGv16tX2yiuv2O7du61v375WsWJFnz5z5kzr1KmT/4ZOnTrVPvjgA9uyZYvlyJHDRowYkd67DQApioxsAAAAHLXp06d7ELp8+fLWqlUrzwwLLy/Sr18/D14rYH3hhRf69Li4OOvSpYv99ddfVrt2bZszZ46dcsopvAsAACTiuuuus/z589uGDRusc+fOoenvvPOObd++3VasWGHdu3f339yWLVv6DUgNar8pgUGfu3CbNm2yr776yn766Sfbv3//ISVJtN63337Lm4JjQkY2AAAAjtratWutbNmyng3WsGFDz7wOKGCtrGsFuTXwY5CNrROc+fPneyZ20EV19uzZtnz5cqtUqRLvBgAAEZ5++mlr0aKF3y9durStX7/eSpYsGS+IWKhQIevQoYNfVM6ZMyfHECnuscce87+xsbF+UeXPP//00jYKUKunQL169Wzz5s22detW++WXX6xgwYJekkTTYmJirHXr1t5mBI4WGdkAAAA4Ynv2x9rIiUts6r6KVqZBa7vool5+Yv3AAw+EltEJi4LYkidPHj/pOXDggGeNqQSJMriDm07QdbIDAAD+9zt7/8d/2e79sVaq7H+/p6Lfy507d8Y7TI0bN7abbrrJg4n6jb3++uu9ZxSQkhSI/vnnn+3XX3+1YsWK2eTJk326PnfqNaDed+qNp8/oe++9F1pPF2G03qOPPsobgmNCRjYAAIhn7969fuKTN29ejgwSPbnuMWKSzV29zWKioiy2ZEerd83Z9tlZVe344xrZVVdd5VnaiWnQoIGtXLnSzj777FCWNgAASPh3dsfeA9b79d/ss9vLWJ6cMYkeJgUSdVP2q0qLqGb2CSecwGFFigayA5UrV7aNGzfajh07bMmSJTZlypTQvAoVKnigO9CuXTveBaQIAtkAACAeDQy0dOlSz5AFEjJmyjI/uY6LM9ux9A/bOfdH+9nMur250zOwkwpii7o8X3rppR7Qbt++veXLl89vzz77LAccAJDthf/OHtA/ZrZg7Q6f3rtttQSPz6xZs2z48OGhsl9KTKhTp062P5Y49osq+tyt2LTLlm/aZQcO/vd5DC8jp9rtasfdd999XlokIRp8FEgJfJIAAABwRHQyowwxnVxH5y9iucrVtpjoaDuuaS0bfc9VfrKiE5uXX3453novvviilxuRYcOG2ZVXXml//PGHd49WfUUAABD/d1aKdehtOfPk9+nyyCOPWIkSJfy+6g/rflRUlJfq0l897tixoxUoUIDDiRTrGbBq3Q4b8sV869rt9Hg9A/SZu+OOO+zMM8+0G264wUvNieq1q8wNkJIIZAMAgERpxPGEBgtSkFK1jhlIKHuqWCyfxf7/yXWuEpX8FhVl1uHUuqGAtE5qFKgOd/nll8d7rKydxDJ3AADIrsJ/ZyV/vZMtLuq/6XLeeeeF5p1//vn+V0Hr3r17p8PeIrv0DMhdsb6t2p831DNAZUYqVqzoy959991ep/2rr77yEiM6V2jUqJEHsk866aTQmCnAsSKQDQAADqHB+JTVo26qDRs2tAkTJnh2z759++zmm2+2t956y++3adPGxowZYyVLluQoZiMXt6ps42eu/F+N7Lg4q1e2kE8HAAD8ziLr9Qwo3PJcyxEdFeoZcOONN8Zb/vTTT/dbpIEDB6bRHiM7iE7vHQAAABnPtGnTPFitkg81atSwV1991ac/+eSTnmGxYMECD3arxvGDDz6Y3ruLNKbupOP6tra7u9a1Xi0r+V89TmoAKgAAwO8sMm/PANHjoGcAkB7IyAYAAIdQNkW1av8NJqTB+FTHWL788kubMWOGB7kDjEKePSlondiAUwAAgN9ZZG70wENGRCAbAADEG5V8wuzVFrttjz9WsDI6OtpiY2N9Gd0fPXq0nXvuuRw1AAAAIIv3wNP5gcqJKBNbwW164CE9EcgGAADxRiXfvmyz7du6yR+r8RquZ8+edu+991q5cuWsTp06HtjOkyeP3wAAAABkHfTAQ0ZDIBsAAMQblTwuJqdF5cjljzU9d+7cli/ff7XwrrnmGh/ksV+/frZ8+XI7ePCg3XbbbT5SOQAAAAAAqYVANgAAiDcqecEmXf2I6LGmD7rkErvkkkt8WlRUlI9QHjlKOQAAAAAAqSk6VbcOAAAyBUYlBwAAAABkZASyAQCAD9xSr2whi4oyyxEd5X/1WNMBAAAAAEhvlBYBAACMSg4AAAAAyNAIZAMAAMeo5AAAAACAjIrSIgAAAAAAAACADI1ANgAAAAAAAAAgQyOQDQAAAAAAAADI0AhkAwAAAAAAAAAyNALZAAAAAAAAAIAMjUA2AAAAAAAAACBDI5ANAAAAAAAAAMjQCGQDAAAAAAAAADI0AtkAAAAAAAAAgAyNQDYAAAAAAAAAIEMjkA0AAAAAAAAAyNAIZAMAAAAAAAAAMjQC2QAAAAAAAACADI1ANgAAAAAAAAAgQyOQDQAAAAAAAADI0AhkAwAAAAAAAAAyNALZAAAAAAAAAIAMjUA2AAAAAAAAACBDI5ANAAAAAAAAAMjQCGQDAAAAAAAAADI0AtkAAAAAAAAAgAyNQDYAAAAAAAAAIEMjkA0AAAAAAAAAyNAIZAMAAGRBO3fuTO9dAAAAAIAUQyAbAAAgizlw4IAVLlw4vXcDAAAAAFIMgWwAAAAAAAAAQIZGIBsAACALO3jwYKLzYmNjEy1JEhcXZ/v27UvVfQMAAACA5CKQDQAAkEU98MADVrJkSStatKi9//77oenffPON1a1b1/Lnz29VqlSxjz/+OF5JknvvvddKly5tw4YNS8e9BwAAAID/yRF2HwAAAFmEsq0LFChg69ats59++smuuOIKO++882zt2rV288032zvvvGPVq1e3OXPmWPfu3a1z586WI0cOXy9fvny2evVqi4mJSe+XAQAAAABpk5E9c+ZM69OnjzVr1swmTJiQrHVmzJhhF110kZ144ol2+eWX24IFC1J7NwEAALKUqKgou+mmmzwY3aFDB1uzZo2XGZk4caK3rdTOKlOmjHXs2NF27Nhhy5YtC62rQDdBbAAAAADZJpD9/PPP25VXXmlNmzb14PTGjRsPu87s2bOtbdu2VqJECe8Oq6yg1q1b24oVK1JzVwEAADK9PftjbeTEJTbok78sKjraYsOaegpsK5AdHR1tbdq08eB1+K127dq+nALYefLkScdXAQAAAABpHMi+9NJLPSP72muvTfY6Dz30kGdvP/vss3bKKafY66+/bsWKFaNGIwAAwGGC2D1GTLLBX8yzt6atsIMH4/yxpodr166dlxMZPny4lx1REDsY4BEAAAAAsmUgu2DBgke8znfffWfdunULPVbWUNeuXX06AAAAEjZmyjKbu3qbxcWZHTgYZ1G58vpjTRfVy1ZWdvHixe2rr76yTz/91Bo2bOjlRYJsbM3XcgAAAACQ0WSowR6VDbRp0yYrV65cvOl6vHz58kTX27t3r98C27ZtS9X9BAAAyGhWbNplMVFRdiAuzqKiY6xS/3f9sabLhg0bQss2adLEg9mRVFZky5YtabrfAAAAAJAhBns8Evv37/e/uXPnjjc9b968oXkJeeSRR6xw4cKhW8WKFVN9XwEAADKSisXyWazSscPosaYDAAAAQGaXoQLZKkWSM2fOQwaFVAaRusEm5s4777StW7eGbgwMCQAAspuLW1W2emULWVSUWY7oKP+rx5oOAAAAAJldhiotou6sjRs3tt9++8369u0bmj516lRr2rRpouspgzsyixsAACA7yZMzxsb1be01sVVORJnYCmJrOgDgf/bs2WOLFy+2+vXrc1gAAMhE0j0j++WXX7b27duHHvfu3ds++OADmz17tj/+6aef7Pvvv/fpAAAASJyC1r3bVrNB3Rv4X4LYANIrUDxnzpwMuz+LFi2y888/P133CQAAZLBA9rRp06xZs2Z+k/vuu8/vP/zww6FlVq1aZTNnzgw97tOnj11xxRW+XPXq1a1z585277332plnnpmauwoAAAAASAFLly61Hj16ZJhjmdH2BwAAZMDSInXr1rUXX3zxkOklS5aMF7g+66yzQo+joqLsmWeesfvvv99WrlxplSpV8gEcAQAAAAAZy969e71Mx65du6xIkSJWo0YNW7hwoWdBT58+3UtANmzY0Jfdtm2bn+NVrlzZ8uXLd0iZjyVLlvi5osZOSmhe0aJF/bZ//35/Dm0nf/788fZn/fr1Pm5StWrVLDr6v7ytyP3ROWfgn3/+8fPNYsWKxdvO4fZV6+n1an8AAEAWCGSrARJkYyemXLlyfoukhkRkYwIAAAAAkDGoXEenTp38vC1v3rzWtm1be+qpp+y5556ztWvX2rXXXuvnep988onddddd9uqrr1qpUqVszZo1XmJSCU0q83H66adbhQoVbMOGDR48HjVqlPXs2dPndevWzcqWLevB6X///ddeeOEFGzp0qMXGxtqmTZts8uTJHrSWq666yj788EPfH42/9Omnn1rt2rUP2Z8hQ4bYjh07rEOHDr4v2u4bb7wRSrA63L4q2WrLli02bNgwO/XUU9P5XQAAIPvIUIM9AgAAAAAyh/Hjx9uVV15pgwcPjjf92Wef9cCvMqDlm2++se+++84D2sqSVkD4xhtvDAWOly9fbm+99Za1bt3aA9Pdu3cPzVu9erV98cUXngWtwPFNN93k4ymVL1/e77/22mv24IMP2scff2xTpkyxZcuWWaFChezuu++22267zZ8zcn/++usvL3GpeY0aNfJ1n3jiCV/mcPuqoLeC5U2bNk3jow0AAAhkAwAAAACO2GmnneYZygogt2/f3q6++morXbr0Icv98ssvHgDu169faJqWO3jwoN+vUqWKB7HlhBNO8FIfKt0hyrZWEFv0VwFkBbGlQYMGPi6TKEitcZUUxBaNu6QM8cRouwpii/4qYJ6cfa1atSpBbAAA0gmBbAAAAABAsu3ZH2tjpiyzFZvy2P1jfrAKe/+xb7760k466SRbsGBBvBrUouCyAt1jxoxJcHsqG6JSISoHor8q26EylSodkiPH/05Ztd3Ix3FxcX5fy6sWdnit7CCoHbk/kth2DrevqrENAADSB4FsAAAAAECyg9g9Rkyyuau32cFt623/zi1WtXg+u6huPfvggw98GdWWVoazSnTovupdq/yIbgoS58qVywoUKGB16tTx5bdv327XXXedXXDBBfbOO+94XWvVslYgO7nOOeccH5+pRYsWnuGt0iLnn39+gvuTUGBbgWxlY6uEiEqVDBgwwLd54MABL1eSUC1sBe03b97sg1kGg07u3LnTZs6c6fvxxx9/+OCV2h/V5P7999/9tSWUtQ4AAA6PQDYAAAAAIFmUia0gthKYt8392XbNn2gbo2NsX+3q9tlnn/kyRYsWtYcfftgDwioTonrTkyZNsscff9zrXe/du9eDv6NHj/bla9Wq5YFfDcKoQR/HjRvn0zWApMqHBLQtLRsIgsRSo0YNf34NNqmM7nPPPdduueWWBPdHy4RvV1nWKhmigLsGlqxZs6Y988wzvh8a7FFZ2vv27bOxY8f6egp6a/sqa6KA+4oVK/y5VfZE94PtKLit4LWeVwNYahBK1ef++eef/fUDAIAjExUX9KHKQrZt2+YNFHVRC7qTAQAAIPOjnZd98d5nDPd//JeNnbrcDhz832lkjugo69Wykg3q/r/gcHIpsKtMbP1NT/Pnz7fGjRvbvHnzvH72Sy+95FndyrouXry43XPPPR7Mfuyxx3ywRwWnVRs8T548Hhj/9NNP7fvvvz+i7QAAgCNr50UnOgcAAAAAgDAVi+Wz2IhcKD3W9KMRmXWdnipXruzBZ6levboPAqngc5DxrbrbopIhnTt39iC2qATJn3/+ecTbAQAAR4ZANgAAAAAgWS5uVdnqlS1kKjOtTGz91WNNPxoK9KoudnrW/B45cYk9993ftn1vrD8OREfHP10OOjMrKP3vv/+Gpuu+yoYktl5i2wEAAEeGGtkAAAAAgGTJkzPGxvVt7bWyV2za5ZnYCmJremYeuDJ202rbsGOfP9brS4rqYz/wwAM+eKUC8aq/fcUVV6TZfgMAkF2RkQ0AAAAASDYFrXu3reY1sfU3MwaxIweuPBiTx/JUqOePNb1EiRLWvHnz0LLly5cPDdCoAR4nTpzoAzuOHz/e+vfvb3fccYfPK1CggLVt2za0XlLbSQmqt33qqaem2XoAAKQnBnsEAABApsGAf5nf+++/b88884z16NHDbr755mSvx3uPjD5wZXrYs2ePB8t37NiRJusBAJAaktvOo7QIAAAAgDSxePFiu+WWW0L3gaw0cCUAAEhdlBYBAAAAkOpUyuCCCy6wRx55xEqXLs0RR5YbuDKtzJ071y666CI7//zz7ddff403r0uXLtamTRvr2rWrPf7443bgwIFkrQcAQGZARjYAAACAVHfnnXdajRo17OKLL7ann36aI450lxkHrty+fbt16NDBbrzxRjvuuOP8wlC4+++/34PXKhkyfPhwy5Url910002HXQ8AgMyAQDYAAACAVPXFF1/YuHHjbNasWcleZ+/evX4Lr50IpNbAlZnFt99+a40bN7a77rrLH1etWjXeYJIbNmywN954w9asWWMbN270zGsFsg+3HgAAmQGBbAAAAACpZvXq1XbllVfau+++a0WKFEn2esoYHTRoEO8MoMEZ98d65vinP8yxbVH5/LGC8KVKlQodnz///NOuueYae/TRR61ixYo2adIkv4kGzwov6RO+HgAAmQU1sgEAAACkmk8++cTLHNx9991eu1e3BQsW2Icffuj3VTs7sVIkCr4FtxUrVvAuIVtS0LrHiEk2+It59vvOIvbbrz/bGcMm+PT33nsvtNzChQutfv36dskll9hJJ51kc+bMCc1r0qSJfffdd56lLeHrAQCQWZCRDQAAACDVdO/e3YNr4Xr37u3Tbr75ZsuZM2eC6+XOndtvQHanTOy5q7dZXJxZTMmqlq9OW/v+wQutxsjy1qJxvdByqoE9cOBAq1u3ru3evdtq164d+v+lsiIa5LFmzZpWoUIFr1cPAEBmQyAbAAAAQKopU6aM38IVKFDAypYt6xnZAJKmgShjoqLsgCLZZlas49VWtMVZ1r1RaXv66s42depUn160aFHPwp4/f75VqlTJoqOjbdWqVaHtPPnkk9a/f38fDLJKlSqh9QAAyCwIZAMAAAAAkEFVLJbPYv8/iB2ILlTSGtWr7cHqE044ITQ9T548dtxxx4UeR9alV4A7EL4eAACZAYFsAAAAAGlq1KhRVrBgQY46kAwXt6ps42eu9PIiysxWULte2UI+HQCA7IRANgAAAIA0pXq9AJInT84YG9e3tdfKVpkRZWgriK3pAABkJwSyAQAAAADIwBS07t22WnrvBgAA6So6fZ8eAAAAAAAAAICkEcgGAAAAAAAAAGRoBLIBAAAAAAAAABkagWwAAAAAAAAAQIZGIBsAAAAAAAAAkKERyAYAAAAAAAAAZGgEsgEAAAAAAAAAGRqBbAAAAAAAAABAhpYjvXcAAAAAAJB5HThwwF588UVbvHixdevWzaZPn249evSwmjVr2qOPPmodOnSwH374weLi4uyOO+6wbdu2+fIrVqyw5s2b2yWXXGJRUVG+raTmXX755TZgwAB76623LCYmxu/PnTvXxo4da1WqVLGbbrrJcubMmc5HAwAApBYysgEAAAAAR+3aa6+1d99916pXr27PPfecDR061NauXevzvvzyS7v00kv9fuPGjT3o3bZtW/v999+tVq1a9tRTT1n//v19flLz5PXXX7ebb77Zypcvb7/99pudcsop9uCDD1rdunXtgw8+sMGDB/MuAgCQhZGRDQAAAAA4Knv37vWM6NWrV1uRIkXsmmuusUqVKsVbRpnTvXv39vvff/+9xcbG2jvvvOOPzz77bA+AP/HEE/bzzz8nOi9Hjv9OXUePHm0VKlSwjh07WpMmTWzTpk2WN29eq127tj3yyCO8i8fgp59+spkzZ8a7eAAAQEZCIBsAAAAAcET27I+1MVOW2ZyF/1iufAUsT/6CPl2lPSID2QpGB9asWRPvsYLSClJv3rw5yXklS5YMTZMCBQpY8eLFPYgdPN65cyfv4jHQsddxBAAgoyKQDQAAAAA4oiB2jxGTbO7qbRYdd9C279xtnQe9a1/df77t2LrZ5s2bF2/5oMa11KlTx8uCKOicP39+mzJliuXJk8cD1UnNQ8r49ttvbcGCBX4B4Mcff7SmTZvaDTfc4DXHVeNcGdnHH3+8L6sSL6+99ppt2bLFM+BVIiZ4LzVPpV5Uy1wXG957773DrgMAwLGiRjYAAAAAINmUia0gdlycWaxFW5E2veyXp/pZm1PPsFNPPdWKFi1quXLlSnBdBU47d+5sjRo1snPPPddOP/10e/LJJw87Dylj6dKldvfdd9vff//tx3rkyJEeeBYFpTVQp0ydOtWuuuoqa9iwoZ122mle0kUlXmTSpEnWqVMnK126tA/Gqdvh1gEAICWQkQ0AAAAASLYVm3ZZTFSUHVAk28wKNTvT8ldpZNVLHrDBV3WzE0880apUqeLz7rjjDs+0DqcA57Rp02z58uX22GOPWbVq1ZI9L1CsWDEfDDK8LMa9997Lu5gMbdq0sUcffTRU43zy5MkegA6nQTuVaf3555/7Y9Uu//TTT73e+fDhw/1Ya+DN5K4DAEBKIJANAAAAAEi2isXyWez/B7Fl99JZtnPOD/ZP6bzWYewT1rNnTytVqpTPU2ZuQlq0aOG3I5l3+eWXh+7ny5fPzjvvvNBjlR/p1q0b7+Jhapp/PGulbbX8/jhPzhg/jrt37z5kedUrV2mQVq1ahaYp017WrVsX7wJDctYBACAlEMgGAAAAACTbxa0q2/iZK728iDKzcxQqbtUbtbB+netZw/oPhGosI+PVNN+5ZJPtXrnFH4/r2zrRdVTmZcmSJTZkyBCLjo4+ZN6HH35oZ555Zrz610mtAwBASiCQDQAAAABINmXyKgiqDF+VGalYrI4HtzUdGbym+f9n0uuxphdIZB3V0e7atavVqlXL6tWr54HpM844w0uQqFyMaqFruubnzp3bB3tMah0AAFICgWwAAAAAwBFR0Lp320PLSyBj1zTPW6WJ5S5T0x9rep+2ba1mzZq+3Mknn2x169b1+4ULF7ZffvnFZs+ebcuWLfN616pDHtQn18COM2fOtJUrV4ayr5NaBwCAlEAgGwAAAACAbFDTPEfhUmaFS/ljTS9fvrzfpEKFCn4LqGxIo0aN/BYpJibGmjVr5rdwSa0DAMCxonAVAAAAAABZlMq+1CtbyFTOOkd0lP/VY00HACAzISMbAAAAAIBsU9M8HzXNAQCZEoFsAAAAAACyMGqaAwCyAkqLAAAAAAAAAAAyNALZAAAAAAAAAIAMjUA2AAAAAAAAACBDI5ANAMhUfvvtN3vsscfSezcAAAAAAEAaIpANAMhUVq5caZMmTUpw3qxZs2zw4MFpvk8AAAAAACB1EcgGAGQZZcuWtXbt2qX3bgAAAAAAgBRGIBsAkCl98MEHdtVVV9njjz9u+/fv92mrV6+2n376ye/v3r3bhg4dar169bJzzz3XXnvttXTeYwAAAAAAcLRyHPWaAACkkx9++MHKlSvn2dfPPfecT7vttttszZo1NnHiRH/80EMP2ezZs+2iiy6ynDlzWs2aNXm/AAAAAADIpAhkAwAyndq1a9sLL7zg9wsXLmyvv/76Icts377dSpcubQ0aNPBbVFRUOuwpAADIiDSmRosWLeyUU05J710BAADJRGkRAECmsGd/rI2cuMTenrrM9ucu7I8lf/78tmvXrkOWHzRokBUqVMjOO+88K1++vJciAQAAkHnz5tnatWtDQe1vvvmGAwMAQAZHIBsAkOEpaN1jxCQb/MU8+3nhBluwdoc/DoLZCSlWrJg9+eSTNn/+fBs1apQ9+OCDabrPAAAgczjnnHOsUaNG6b0bAADgMCgtAgDI8MZMWWZzV2+zuDiz2INxPk2PNb1KIusou2rmzJkWGxtrv//+u11xxRVpus8AACD13X///R6E1vgZq1atsksuucTOPvtsn6fBoHVR+5dffrGyZcvawIEDrUaNGods48MPPwyVGTl48KCNHDnSvv76a9uwYYO1adPGHn74YYuLi7OXX37ZvvrqK8uVK5ddfvnldtppp4X2oU6dOjZp0iRbunSp9evXz6pWreptEfUau/POO61Zs2a+7DPPPGPjx4/3bdSqVctuv/12q1ixYmg7xx13nP3444++nQsvvNAuuOACPkYAAPw/AtkAgAxvxaZdFhMVZQfi4ixX2VpWOH8Rf6zpZ57QyO655x5frkmTJqH7GghStbR1ovjoo4/6fQAAkLXMmTPHRo8e7YM8azyMa6+91ooXL24nnXSS3Xjjjd4z6+abb7bp06db69at7e+//7YiRYocUmakcuXKfv+OO+6wb7/91oPPJUuWtBIlSvj0u+++21avXm1XX321bd261W666SZ78803PQCufXjrrbe895fG5Tj//POtVatWvi96vnPPPdcD09K1a1dr3LixHThwwKZOnerz9Dd4LdqOAtotW7a06667zgPgCQXfAQDIjghkAwAyvIrF8lms0rH1w1WwuN/0WNNLlSrlN9HgjrqJMqgAAEDWd8MNN9hll13m95VFrWCwAtljxozx4HClSpXszDPPtF9//dUzqhVoToyyrhX0jgwejxgxwoPUQ4cO9cd79uzxgLcC2TJgwADPoJYXX3zRA93dunXzx0888YTvl4LiuXPn9ozsBQsW+DbUe2zv3r0+XW699Va7+OKL/f4nn3xis2bNyjaB7EWLFnl2enAsjnVbet+V0AAAyDoIZAMAMryLW1W28TNXejkRZWIriF2vbCGfDgAAsheNkaHyYuqZ9c+GndaleMnQPF3QnjZtmu3bt8/LegQXuKVcuXK2ZcuWRLerUiTbt2+3ChUqJDj9rrvusrx584amB1ncoizwgAKxkY8VtJazzjrLOnXq5IFubatLly62e/fuUPA2yACXPHnyhNbLDnRs3nnnHb9gkByLFy/2Ab11nBLalgb6VskXAEDWwWCP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WCyfxUbkzOmxpgMAcLQIZAMR9u/fb8uXL7d9+/Yd0bH5999/LTY2luMJAAAAIFvTeE31yhayqKj/MrH1V481HQCAo0UgG1mCgsgHDhw45u389ttvVrZsWa/FtmjRoiN6zlatWtnq1auPeR+Q+s4991zbuXMnhxoAAABIpfGbxvVtbXd3revlRPRXjzUdAICjRSAbWUKbNm08sHysRo0aZQ8//LAtW7bM6tWr54Hpv//+O1WfU8+xYMGCY94Okh+o/vbbbz3zHgAAAEDqUNC6d9tqXhNbfwliAwCOFYFsZDoq/K5As26yceNGz4xWUHnp0qXxApTBvIRKgOzZs8d27doVmr5hwwZfP1euXLZixQqfNnbsWBs0aJCtW7cu3jaSes69e/fajh07Etx3rad15s+fH5r25ptv2tChQ72Uiebj2PXt29dy587NoQQAAAAAAMgiCGQj01Cw+Mwzz7RKlSpZu3btrGPHjj79ySeftDVr1tgFF1xgJ598ste3/umnn6x69erWsGFDK168uD366KPxSoBcd911VrlyZZ937733+vTBgwfbzz//bHfeead1797dp40ZM8Y++eQTa9y4sVWpUsV+//33RJ9T9DxarmTJkvbAAw+EnjN8f2rVqmW9evUKzXvkkUds8uTJvj+6j+TRMe/Xr59dfvnl9uuvv/pn4+DBgz5vxIgRfkFBNF3H9+qrr7aRI0dyeAEASMdkhB9//NHbW1u2bOF9AAAAwBEhkI1MY8aMGV7mQ7WrFZj84osvfPr1119vpUuX9nIR77//vhUtWtSuuOIKu+GGG+ypp56yN954w1544QVbuHChL69g5+7duz2T+qOPPvJyItOnT/dlTz31VHvxxRft1VdftU2bNvm2FaxW7ew+ffrYLbfc4uueffbZVr58efvll1983c2bN1tcXJwHxlUqRM/1xBNP+D7PnDnTevfu7c+jk7fzzz/f5s6d60Fy/RVlgS9ZssQuuuiiBE/sNE9BdGWRR5Yk0f5o/8LnZXXKXm/fvr3lyZPHunXrZg899JB9/vnnoUB2eOmQr7/+2i8qnHbaaV77HMjs9F1w0kkn+X39vy9SpIi98soroR4eusAj6vnRqVMnK1GihLVs2dImTZoU2saJJ55o999/v19c07gAr7/+um+jYsWKVq1aNf8/FDjnnHP8/5qeRxcR58yZE287jz/+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6667zvbs2ePLFFxr/Q0bNlilSpVsyJAhx30cixcvtkGDBtn06dNt3bp1HqgDAMIXQTYAAAAAAEhxuXPntptuuskiIyO9Svrvv/8+7n1q165tU6dOtd69e9uHH34YagsiWbNmtX79+llUVJRXalesWNF+++03b0Oin6OfV6JECXvnnXds2bJlx30cCrA7duxoNWvW9G3fd999/BUAQBgjyAYAAAAAACniYEycvT19pT3zzRKzqGif9vAhMtIDZ8mSJYvFxsaG7pOwP/Y555xjc+fO9dYjn376qU8H76fWIsHvJSYmxkPtL774whYtWmSrV6/2ntovv/xyou1ny5Yt9H3Cx6HvE66n7QEAwhdBNgAAAAAAOGUKrTsPnWlPfr3EPp231vYf/mc6GGYHqb+1eldPnjzZ1q9fb4899liiMDl//vzWo0cPe/jhh23NmjV28ODB0DLN27hxo73//vveRqROnToeRuum6u0FCxbY4MGDk/V41YtbIfikSZO8tcgjjzzCXwEAhDGCbAAAAAAAcMpGzF5lizfstkDALDZgFhGd3ac1PyIiwlt8iNp4qIf1DTfcYK1bt7aGDRv6II3y4osv+qCNGryxe/fu9tprr/ky3V/9sfPmzWuNGze2//73v16xnSNHDuvUqZNVrlzZ6tWr5y1JNJ09e3bfXsKfe+R0hQoVbOjQoXbrrbd6qH3eeeeFHgcAIPxEBHRtTgaze/duy5cvn+3atcv/kwMAAEDGwH5e5sVrD4S/geMW2sifVlts/P/HDFkiI6x7w7I2qGPNNH1sAID0v59HRTYAAEj37r//fu+JmZrbTzjYFAAA+LcyBXNa3BG1cprWfAAAThVBNgAASPfefvttO3ToUKpu/1hB+YMPPmh79uxJtZ8NAEB60aNROatRIq9FRPxTia2vmtZ8AABOVZZT3gIAAEAm9u6771rfvn0tT548af1QAABIU9mjo2xM7ybeE3vN9v1eia0QW/MBADhVBNkAACDdUXX0W2+9ZTt37rQrrrgi0bL//Oc/tn79eh+sqVGjRnbppZeGlt1xxx0+OFTQvffea0888YQPOrV//37fpvqyaZvvvfeeDRw40AeRkk2bNnloffDgQbv55putWLFiNmLECK/GVlV2zpw57bHHHrMCBQrY6NGjbf78+VaiRAm77rrrvN9bsEXJjTfeaOPGjbMyZcrYlVdeedqeMwAATgeF1j2bVeDJBgCkOFqLAACAdKdDhw729ddfewB900032d69e0PLypcvb9WqVbMiRYrYs88+a88//3xo2auvvppoO2+++aYdPnzYv7/ooovsu+++82326tXLXnrppUTtSjQvNjbWli1bZm3btvV5CqqjoqKscuXK/jOjo6Pt6quv9qC6aNGitmTJEmvWrFnoZ6hFyTXXXGMxMTEehAMAAAAAkoeKbAAAkK4sXLjQli9fbitWrLAsWbJYt27drFy5/++9qeD4o48+srVr13rV85dffml33313ktv8/fff7a+//vJtKpju3r27lS1bNtE6L774ojVo0MACgYAVLlzYq8FbtmzpldjXX3+9FS9e3ENuBex6TCtXrvTHp0ruBQsWWP369X07zz33nDVt2jSVnh0AAAAAyJgIsgEAQLpwMCbOe25OnjTDchUpbbGBCN+RUeCsNiKitiANGza0jh07epW02oIoXD4WhdKiViSVKlXyEFsUgAe3GVShwj+XSUdERHg/bFWB58+fP9E6q1at8jYiqs4Oevjhh71yO6hq1aop8nwAAAAAQGZCkA0AANJFiN156ExbvGG3xe/MYmuXLLaOL020cXe2sqWLF9q+fft8PbXyUGj82muvHbWViILnDRs2+Dqqvt69e7fPr1ixold6q/e2wm9VaAe3eTxqRaKWI8GQetu2bdapUycrXbr0UddXEA4AAAAAODEE2QAAIOypElshtgqoI/IVtxwV69sPT/e0C35oYPE71nl7D6lRo4atW7fOB3hUW4/Fixd73+qgzp07W5s2bbzNh1p/ZM+e3eerGrt169Z2zjnnePsQVXEr0NY2juess87yAR1Vha3BHtXGRNtRH21Vbov6bSdnWwAAAACAo+OICgAAhL012/dbVESExf6vFUihdn0tZtV8K1kmh735wA02duxYD7NVHT1//nwftFE9q+vUqWNTp04NbWfo0KHeM1uDOCrQHj16tGXLls2XffDBB34/tSfp27evB9G5c+f2Zc8880zoe1FgXaBAAf9+5MiRvs3t27d7aP7II49Yly5dbM6cObZnz55EVdhHbgcAAAAAkDwRgWBzyAxElwmrP6UORPPmzZvWDwcAAJyit6evtCe/XuIV2UHKhge0r249m/3Tu/pUjRo1yqZPn+4tRb799lu755577K677kqRbSPl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b7/91s4991wPYBVg586dO7RdtZ6qX7++f9+uXTuv+haF5jrh+frrr/t0bGys3zdI4W2DBg0sMypUqJAH/7qySaHzDTfcYJMnT/ZlqqjWCYO4uDivkp8+fbrVrl3bduzYYZUrV7Y+ffqEwn89h6qY1/+3hQsXtnfeecdPIqiyWusGg+zbbrvNZs+ebStXrvTnfPDgwaEgW3Sy4u677/bvdYJajyv4twKkJIJsAAAAACfkq6++svnz5ye5Tu/evf1A+0i6nw6sVdFVsmTJY97/qaeeskGDBvHKAMApWrNmjVfI1qlTx84444xk32/K9B9t7tYo2xOZxxas2WlNapQNLdPJyJw5cyaaVtAsClATVuMqvNa8YznWdlT9q/YkCU96altB+fLls8xMJxImTZrkQXbXrl1t3rx53lbk559/tqZNm3qVtZ5Phdiiimk9l0uXLg0F2cETCKqS1//ZwelixYp5yxe9bmo30rlzZ/852pZOJqjiOyGNfRGkCu/t27efxmcCmQmDPQIAAAA4IQoXDh48mOQtEAj86366NPnCCy+07t27++XkSXnggQds165doZuCGADAiVF/ZIWXw4YN84rppKjiVuFnsD9419sesGdHfGUjf1ptM1dus5GzV/n84zn//PPtueeeswMHDngF7/Dhw71NheTNm9fbYSSH2mDopKbaX6iCWzcFrpmZnv+3p6+0geMWWmyxGjZh4kSbOXOmV8jredfzpYponRwoUqSI9xFXb3NR+w/9DaiSO0i9sBM6clr/l+uKKI11oZ7cH3/8sZ+MPvL/+KPdD0gNVGQDAAAAOCGdOnXy24lYvHixV4917NjRLxM/8qD3SAorMntgAQCn6vvvv/eWIGoFcTwaSFGVvepTrUEudx+MtdwBs9j4gFnAbNOeQz7/eH3DFaZef/31XuGbI0cOb3MRHJRQAzbqewWtOmGZlCeeeMLbXlStWtVPoOr/Df0evXr1sswaYnceOtMWb9htURERFnMon62bONmaN2vifa3VE/uiiy7yntii516vw8UXX+x/A2o9UrBgwUTV08mhEwjqi67BOdUqRn3RgbRCkA0AAAAgVelyZIXYl1xyiQ88dbwQGwBw6v7880/78ccfvT3Ep59+6hXOaiuhqly1h1BArJv8/fffXo2tqmxZuDOfBT+pY7attWylz7RcZarbmu37fZ56Ke/d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",
      "text/plain": [
       "<Figure size 1800x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (g)：同一批 family 字，用 PCA 和 t-SNE 兩種方法壓成 2 維，圖長得不一樣嗎？\n",
    "from sklearn.decomposition import PCA\n",
    "words = sorted({w for q in data[data[\"SubCategory\"] == \": family\"][\"Question\"] for w in q.lower().split()})\n",
    "words = [w for w in words if w in my_wv.key_to_index]\n",
    "vecs = np.array([my_wv[w] for w in words])\n",
    "fig, axes = plt.subplots(1, 2, figsize=(18, 8))\n",
    "for ax, (title, pts) in zip(axes, [\n",
    "        (\"PCA\", PCA(n_components=2, random_state=42).fit_transform(vecs)),\n",
    "        (\"t-SNE\", TSNE(n_components=2, perplexity=15, random_state=42, init=\"pca\").fit_transform(vecs))]):\n",
    "    ax.scatter(pts[:, 0], pts[:, 1], s=12)\n",
    "    for (x, y), w in zip(pts, words):\n",
    "        ax.annotate(w, (x, y), fontsize=8)\n",
    "    ax.set_title(f\"{title} (Wiki 20%, family)\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "7d64fd02",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:58.169723Z",
     "iopub.status.busy": "2026-10-04T13:04:58.167937Z",
     "iopub.status.idle": "2026-10-04T13:04:58.224110Z",
     "shell.execute_reply": "2026-10-04T13:04:58.224110Z"
    }
   },
   "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>GloVe</th>\n",
       "      <th>Wiki 20%</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SubCategory</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>100.0</td>\n",
       "      <td>91.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>100.0</td>\n",
       "      <td>32.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>100.0</td>\n",
       "      <td>17.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>100.0</td>\n",
       "      <td>63.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>100.0</td>\n",
       "      <td>67.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>100.0</td>\n",
       "      <td>76.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>100.0</td>\n",
       "      <td>29.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>100.0</td>\n",
       "      <td>89.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>100.0</td>\n",
       "      <td>49.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>100.0</td>\n",
       "      <td>88.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>100.0</td>\n",
       "      <td>90.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>100.0</td>\n",
       "      <td>95.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>100.0</td>\n",
       "      <td>79.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>100.0</td>\n",
       "      <td>74.7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               GloVe  Wiki 20%\n",
       "SubCategory                                   \n",
       ": capital-common-countries     100.0      91.3\n",
       ": capital-world                100.0      32.3\n",
       ": currency                     100.0      17.6\n",
       ": city-in-state                100.0      63.8\n",
       ": family                       100.0      67.6\n",
       ": gram1-adjective-to-adverb    100.0      76.2\n",
       ": gram2-opposite               100.0      29.6\n",
       ": gram3-comparative            100.0      89.3\n",
       ": gram4-superlative            100.0      49.2\n",
       ": gram5-present-participle     100.0      88.1\n",
       ": gram6-nationality-adjective  100.0      90.4\n",
       ": gram7-past-tense             100.0      95.0\n",
       ": gram8-plural                 100.0      79.3\n",
       ": gram9-plural-verbs           100.0      74.7"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (h)：各小類「四個字都在字典裡」的比例：GloVe vs Wiki 20%\n",
    "display(pd.DataFrame({\"GloVe\": answer_coverage(model), \"Wiki 20%\": answer_coverage(my_wv)}))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37342d19",
   "metadata": {},
   "source": [
    "## Summary of all results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "6402f75e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:58.283013Z",
     "iopub.status.busy": "2026-10-04T13:04:58.283013Z",
     "iopub.status.idle": "2026-10-04T13:04:58.306478Z",
     "shell.execute_reply": "2026-10-04T13:04:58.306478Z"
    }
   },
   "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>GloVe (pre-trained)</th>\n",
       "      <th>Wiki 20%</th>\n",
       "      <th>Forum (same size)</th>\n",
       "      <th>Wiki control (same size)</th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 10%</th>\n",
       "      <th>Wiki 5% seed=1</th>\n",
       "      <th>Wiki 5% seed=2</th>\n",
       "      <th>Wiki 5% seed=3</th>\n",
       "      <th>Wiki 5% (stop words removed)</th>\n",
       "      <th>Wiki 5% CBOW (sg=0)</th>\n",
       "      <th>Wiki 5% window=10</th>\n",
       "      <th>Wiki 5% vector_size=300</th>\n",
       "      <th>Wiki 20% (3CosMul)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>63.11</td>\n",
       "      <td>1.98</td>\n",
       "      <td>0.42</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.14</td>\n",
       "      <td>1.03</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.16</td>\n",
       "      <td>1.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>65.34</td>\n",
       "      <td>1.44</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.61</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.16</td>\n",
       "      <td>1.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>61.26</td>\n",
       "      <td>2.42</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.12</td>\n",
       "      <td>1.39</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.17</td>\n",
       "      <td>2.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>93.87</td>\n",
       "      <td>2.77</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.79</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.19</td>\n",
       "      <td>1.98</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>0.20</td>\n",
       "      <td>2.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>88.95</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>14.20</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>30.81</td>\n",
       "      <td>1.58</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.77</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>1.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>81.62</td>\n",
       "      <td>9.09</td>\n",
       "      <td>5.14</td>\n",
       "      <td>2.57</td>\n",
       "      <td>2.37</td>\n",
       "      <td>4.94</td>\n",
       "      <td>2.17</td>\n",
       "      <td>1.58</td>\n",
       "      <td>1.98</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1.78</td>\n",
       "      <td>8.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>24.40</td>\n",
       "      <td>1.21</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>20.07</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>79.13</td>\n",
       "      <td>3.75</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.13</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.00</td>\n",
       "      <td>3.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>54.28</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>69.51</td>\n",
       "      <td>1.80</td>\n",
       "      <td>0.85</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.38</td>\n",
       "      <td>1.42</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.19</td>\n",
       "      <td>1.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>87.87</td>\n",
       "      <td>4.94</td>\n",
       "      <td>0.06</td>\n",
       "      <td>1.06</td>\n",
       "      <td>0.56</td>\n",
       "      <td>6.00</td>\n",
       "      <td>0.50</td>\n",
       "      <td>1.06</td>\n",
       "      <td>1.06</td>\n",
       "      <td>1.25</td>\n",
       "      <td>0.25</td>\n",
       "      <td>1.88</td>\n",
       "      <td>0.81</td>\n",
       "      <td>5.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>55.45</td>\n",
       "      <td>1.09</td>\n",
       "      <td>1.47</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.90</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>72.00</td>\n",
       "      <td>4.13</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>3.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>58.39</td>\n",
       "      <td>1.49</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>0.00</td>\n",
       "      <td>6140.00</td>\n",
       "      <td>12827.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>9075.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>12177.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>12053.00</td>\n",
       "      <td>6140.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               GloVe (pre-trained)  Wiki 20%  \\\n",
       "Overall                                      63.11      1.98   \n",
       "Semantic                                     65.34      1.44   \n",
       "Syntactic                                    61.26      2.42   \n",
       ": capital-common-countries                   93.87      2.77   \n",
       ": capital-world                              88.95      0.64   \n",
       ": currency                                   14.20      0.00   \n",
       ": city-in-state                              30.81      1.58   \n",
       ": family                                     81.62      9.09   \n",
       ": gram1-adjective-to-adverb                  24.40      1.21   \n",
       ": gram2-opposite                             20.07      0.25   \n",
       ": gram3-comparative                          79.13      3.75   \n",
       ": gram4-superlative                          54.28      0.98   \n",
       ": gram5-present-participle                   69.51      1.80   \n",
       ": gram6-nationality-adjective                87.87      4.94   \n",
       ": gram7-past-tense                           55.45      1.09   \n",
       ": gram8-plural                               72.00      4.13   \n",
       ": gram9-plural-verbs                         58.39      1.49   \n",
       "OOV questions                                 0.00   6140.00   \n",
       "\n",
       "                               Forum (same size)  Wiki control (same size)  \\\n",
       "Overall                                     0.42                      0.22   \n",
       "Semantic                                    0.29                      0.17   \n",
       "Syntactic                                   0.52                      0.26   \n",
       ": capital-common-countries                  0.00                      0.40   \n",
       ": capital-world                             0.00                      0.00   \n",
       ": currency                                  0.00                      0.00   \n",
       ": city-in-state                             0.00                      0.00   \n",
       ": family                                    5.14                      2.57   \n",
       ": gram1-adjective-to-adverb                 0.10                      0.10   \n",
       ": gram2-opposite                            0.49                      0.00   \n",
       ": gram3-comparative                         0.98                      0.15   \n",
       ": gram4-superlative                         0.09                      0.00   \n",
       ": gram5-present-participle                  0.85                      0.76   \n",
       ": gram6-nationality-adjective               0.06                      1.06   \n",
       ": gram7-past-tense                          1.47                      0.00   \n",
       ": gram8-plural                              0.23                      0.00   \n",
       ": gram9-plural-verbs                        0.11                      0.00   \n",
       "OOV questions                           12827.00                  12053.00   \n",
       "\n",
       "                                Wiki 5%  Wiki 10%  Wiki 5% seed=1  \\\n",
       "Overall                            0.14      1.03            0.20   \n",
       "Semantic                           0.16      0.61            0.18   \n",
       "Syntactic                          0.12      1.39            0.22   \n",
       ": capital-common-countries         0.00      0.79            0.40   \n",
       ": capital-world                    0.02      0.13            0.04   \n",
       ": currency                         0.00      0.00            0.00   \n",
       ": city-in-state                    0.04      0.77            0.04   \n",
       ": family                           2.37      4.94            2.17   \n",
       ": gram1-adjective-to-adverb        0.00      0.10            0.10   \n",
       ": gram2-opposite                   0.00      0.00            0.00   \n",
       ": gram3-comparative                0.00      1.13            0.15   \n",
       ": gram4-superlative                0.00      0.18            0.09   \n",
       ": gram5-present-participle         0.38      1.42            0.95   \n",
       ": gram6-nationality-adjective      0.56      6.00            0.50   \n",
       ": gram7-past-tense                 0.00      0.90            0.06   \n",
       ": gram8-plural                     0.00      0.23            0.00   \n",
       ": gram9-plural-verbs               0.00      0.23            0.11   \n",
       "OOV questions                  12053.00   9075.00        12053.00   \n",
       "\n",
       "                               Wiki 5% seed=2  Wiki 5% seed=3  \\\n",
       "Overall                                  0.14            0.24   \n",
       "Semantic                                 0.09            0.26   \n",
       "Syntactic                                0.19            0.22   \n",
       ": capital-common-countries               0.00            1.19   \n",
       ": capital-world                          0.00            0.04   \n",
       ": currency                               0.00            0.00   \n",
       ": city-in-state                          0.00            0.20   \n",
       ": family                                 1.58            1.98   \n",
       ": gram1-adjective-to-adverb              0.10            0.00   \n",
       ": gram2-opposite                         0.00            0.00   \n",
       ": gram3-comparative                      0.15            0.00   \n",
       ": gram4-superlative                      0.00            0.00   \n",
       ": gram5-present-participle               0.00            0.00   \n",
       ": gram6-nationality-adjective            1.06            1.06   \n",
       ": gram7-past-tense                       0.00            0.32   \n",
       ": gram8-plural                           0.00            0.00   \n",
       ": gram9-plural-verbs                     0.00            0.23   \n",
       "OOV questions                        12053.00        12053.00   \n",
       "\n",
       "                               Wiki 5% (stop words removed)  \\\n",
       "Overall                                                0.19   \n",
       "Semantic                                               0.20   \n",
       "Syntactic                                              0.19   \n",
       ": capital-common-countries                             1.98   \n",
       ": capital-world                                        0.13   \n",
       ": currency                                             0.00   \n",
       ": city-in-state                                        0.04   \n",
       ": family                                               0.20   \n",
       ": gram1-adjective-to-adverb                            0.00   \n",
       ": gram2-opposite                                       0.00   \n",
       ": gram3-comparative                                    0.00   \n",
       ": gram4-superlative                                    0.00   \n",
       ": gram5-present-participle                             0.00   \n",
       ": gram6-nationality-adjective                          1.25   \n",
       ": gram7-past-tense                                     0.00   \n",
       ": gram8-plural                                         0.00   \n",
       ": gram9-plural-verbs                                   0.00   \n",
       "OOV questions                                      12177.00   \n",
       "\n",
       "                               Wiki 5% CBOW (sg=0)  Wiki 5% window=10  \\\n",
       "Overall                                       0.04               0.29   \n",
       "Semantic                                      0.01               0.18   \n",
       "Syntactic                                     0.06               0.37   \n",
       ": capital-common-countries                    0.00               1.38   \n",
       ": capital-world                               0.00               0.07   \n",
       ": currency                                    0.00               0.00   \n",
       ": city-in-state                               0.04               0.04   \n",
       ": family                                      0.00               0.99   \n",
       ": gram1-adjective-to-adverb                   0.10               0.10   \n",
       ": gram2-opposite                              0.00               0.00   \n",
       ": gram3-comparative                           0.08               0.08   \n",
       ": gram4-superlative                           0.00               0.00   \n",
       ": gram5-present-participle                    0.00               0.28   \n",
       ": gram6-nationality-adjective                 0.25               1.88   \n",
       ": gram7-past-tense                            0.00               0.13   \n",
       ": gram8-plural                                0.00               0.00   \n",
       ": gram9-plural-verbs                          0.00               0.34   \n",
       "OOV questions                             12053.00           12053.00   \n",
       "\n",
       "                               Wiki 5% vector_size=300  Wiki 20% (3CosMul)  \n",
       "Overall                                           0.16                1.84  \n",
       "Semantic                                          0.16                1.41  \n",
       "Syntactic                                         0.17                2.19  \n",
       ": capital-common-countries                        0.20                2.77  \n",
       ": capital-world                                   0.07                0.64  \n",
       ": currency                                        0.00                0.00  \n",
       ": city-in-state                                   0.04                1.58  \n",
       ": family                                          1.78                8.50  \n",
       ": gram1-adjective-to-adverb                       0.00                1.21  \n",
       ": gram2-opposite                                  0.00                0.25  \n",
       ": gram3-comparative                               0.00                3.15  \n",
       ": gram4-superlative                               0.09                0.62  \n",
       ": gram5-present-participle                        0.19                1.33  \n",
       ": gram6-nationality-adjective                     0.81                5.19  \n",
       ": gram7-past-tense                                0.13                0.90  \n",
       ": gram8-plural                                    0.00                3.75  \n",
       ": gram9-plural-verbs                              0.00                1.15  \n",
       "OOV questions                                 12053.00             6140.00  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 全部結果總表（報告引用的數字都來自這裡）\n",
    "pd.set_option(\"display.max_columns\", 40)\n",
    "display(pd.DataFrame(results).round(2))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "358cdb72",
   "metadata": {},
   "source": [
    "## Running environment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "5d50a5aa",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-04T13:04:58.370610Z",
     "iopub.status.busy": "2026-10-04T13:04:58.370610Z",
     "iopub.status.idle": "2026-10-04T13:04:58.375554Z",
     "shell.execute_reply": "2026-10-04T13:04:58.374543Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python 3.12.3 (tags/v3.12.3:f6650f9, Apr  9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)]\n",
      "Windows-11-10.0.26200-SP0 | Intel64 Family 6 Model 141 Stepping 1, GenuineIntel\n",
      "gensim 4.4.0 | numpy 2.5.3 | pandas 3.0.6 | scikit-learn 1.9.1\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "import sys, platform, gensim, sklearn\n",
    "print(\"Python\", sys.version)\n",
    "print(platform.platform(), \"|\", platform.processor())\n",
    "print(\"gensim\", gensim.__version__, \"| numpy\", np.__version__, \"| pandas\", pd.__version__, \"| scikit-learn\", sklearn.__version__)\n"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
