{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The IMDB (Internet Movie Database) Dataset\n",
    "\n",
    "An example of a **binary classification** task. The goal is to classify movie reviews as *positive* or *negative*."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import random\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import keras"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from keras.datasets import imdb"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "Load in the dataset. The movie reviews contain over 88,500 unique words in all, but we will read in only the 10,000 most frequently occurring words, so as to keep the vectors to a manageable size:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25000,)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('O')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "list"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(train_data[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4]])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([[1,2], [3,4]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "#np.array([[1,2], [3]])  # ERROR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([list([1, 2]), list([3])], dtype=object)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([[1,2],[3]], dtype=object)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1,\n",
       " 14,\n",
       " 22,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 973,\n",
       " 1622,\n",
       " 1385,\n",
       " 65,\n",
       " 458,\n",
       " 4468,\n",
       " 66,\n",
       " 3941,\n",
       " 4,\n",
       " 173,\n",
       " 36,\n",
       " 256,\n",
       " 5,\n",
       " 25,\n",
       " 100,\n",
       " 43,\n",
       " 838,\n",
       " 112,\n",
       " 50,\n",
       " 670,\n",
       " 2,\n",
       " 9,\n",
       " 35,\n",
       " 480,\n",
       " 284,\n",
       " 5,\n",
       " 150,\n",
       " 4,\n",
       " 172,\n",
       " 112,\n",
       " 167,\n",
       " 2,\n",
       " 336,\n",
       " 385,\n",
       " 39,\n",
       " 4,\n",
       " 172,\n",
       " 4536,\n",
       " 1111,\n",
       " 17,\n",
       " 546,\n",
       " 38,\n",
       " 13,\n",
       " 447,\n",
       " 4,\n",
       " 192,\n",
       " 50,\n",
       " 16,\n",
       " 6,\n",
       " 147,\n",
       " 2025,\n",
       " 19,\n",
       " 14,\n",
       " 22,\n",
       " 4,\n",
       " 1920,\n",
       " 4613,\n",
       " 469,\n",
       " 4,\n",
       " 22,\n",
       " 71,\n",
       " 87,\n",
       " 12,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 38,\n",
       " 76,\n",
       " 15,\n",
       " 13,\n",
       " 1247,\n",
       " 4,\n",
       " 22,\n",
       " 17,\n",
       " 515,\n",
       " 17,\n",
       " 12,\n",
       " 16,\n",
       " 626,\n",
       " 18,\n",
       " 2,\n",
       " 5,\n",
       " 62,\n",
       " 386,\n",
       " 12,\n",
       " 8,\n",
       " 316,\n",
       " 8,\n",
       " 106,\n",
       " 5,\n",
       " 4,\n",
       " 2223,\n",
       " 5244,\n",
       " 16,\n",
       " 480,\n",
       " 66,\n",
       " 3785,\n",
       " 33,\n",
       " 4,\n",
       " 130,\n",
       " 12,\n",
       " 16,\n",
       " 38,\n",
       " 619,\n",
       " 5,\n",
       " 25,\n",
       " 124,\n",
       " 51,\n",
       " 36,\n",
       " 135,\n",
       " 48,\n",
       " 25,\n",
       " 1415,\n",
       " 33,\n",
       " 6,\n",
       " 22,\n",
       " 12,\n",
       " 215,\n",
       " 28,\n",
       " 77,\n",
       " 52,\n",
       " 5,\n",
       " 14,\n",
       " 407,\n",
       " 16,\n",
       " 82,\n",
       " 2,\n",
       " 8,\n",
       " 4,\n",
       " 107,\n",
       " 117,\n",
       " 5952,\n",
       " 15,\n",
       " 256,\n",
       " 4,\n",
       " 2,\n",
       " 7,\n",
       " 3766,\n",
       " 5,\n",
       " 723,\n",
       " 36,\n",
       " 71,\n",
       " 43,\n",
       " 530,\n",
       " 476,\n",
       " 26,\n",
       " 400,\n",
       " 317,\n",
       " 46,\n",
       " 7,\n",
       " 4,\n",
       " 2,\n",
       " 1029,\n",
       " 13,\n",
       " 104,\n",
       " 88,\n",
       " 4,\n",
       " 381,\n",
       " 15,\n",
       " 297,\n",
       " 98,\n",
       " 32,\n",
       " 2071,\n",
       " 56,\n",
       " 26,\n",
       " 141,\n",
       " 6,\n",
       " 194,\n",
       " 7486,\n",
       " 18,\n",
       " 4,\n",
       " 226,\n",
       " 22,\n",
       " 21,\n",
       " 134,\n",
       " 476,\n",
       " 26,\n",
       " 480,\n",
       " 5,\n",
       " 144,\n",
       " 30,\n",
       " 5535,\n",
       " 18,\n",
       " 51,\n",
       " 36,\n",
       " 28,\n",
       " 224,\n",
       " 92,\n",
       " 25,\n",
       " 104,\n",
       " 4,\n",
       " 226,\n",
       " 65,\n",
       " 16,\n",
       " 38,\n",
       " 1334,\n",
       " 88,\n",
       " 12,\n",
       " 16,\n",
       " 283,\n",
       " 5,\n",
       " 16,\n",
       " 4472,\n",
       " 113,\n",
       " 103,\n",
       " 32,\n",
       " 15,\n",
       " 16,\n",
       " 5345,\n",
       " 19,\n",
       " 178,\n",
       " 32]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "218"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train_data[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "189"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train_data[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "141"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train_data[2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 7486\n"
     ]
    }
   ],
   "source": [
    "print(min(train_data[0]), max(train_data[0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 0, ..., 0, 1, 0])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25000,)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "How long are the shortest and longest reviews in the test set?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "7 2315\n"
     ]
    }
   ],
   "source": [
    "lengths = [len(review) for review in test_data]\n",
    "print(min(lengths), max(lengths))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2104 20338\n"
     ]
    }
   ],
   "source": [
    "print(np.argmin(lengths), np.argmax(lengths))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(test_data[2104])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 332, 4, 274, 859, 4, 20]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data[2104]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 1, ..., 0, 0, 0])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "print(test_labels[2104])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "### The Word Index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "The word index is a dictionary of all words appearing in the reviews.  Each word is mapped to a rank number that indicates the word's relative frequency of occurrence in the reviews."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "\n",
    "word_index = imdb.get_word_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "type(word_index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "88584"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "len(word_index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'fawn': 34701,\n",
       " 'tsukino': 52006,\n",
       " 'nunnery': 52007,\n",
       " 'sonja': 16816,\n",
       " 'vani': 63951,\n",
       " 'woods': 1408,\n",
       " 'spiders': 16115,\n",
       " 'hanging': 2345,\n",
       " 'woody': 2289,\n",
       " 'trawling': 52008,\n",
       " \"hold's\": 52009,\n",
       " 'comically': 11307,\n",
       " 'localized': 40830,\n",
       " 'disobeying': 30568,\n",
       " \"'royale\": 52010,\n",
       " \"harpo's\": 40831,\n",
       " 'canet': 52011,\n",
       " 'aileen': 19313,\n",
       " 'acurately': 52012,\n",
       " \"diplomat's\": 52013,\n",
       " 'rickman': 25242,\n",
       " 'arranged': 6746,\n",
       " 'rumbustious': 52014,\n",
       " 'familiarness': 52015,\n",
       " \"spider'\": 52016,\n",
       " 'hahahah': 68804,\n",
       " \"wood'\": 52017,\n",
       " 'transvestism': 40833,\n",
       " \"hangin'\": 34702,\n",
       " 'bringing': 2338,\n",
       " 'seamier': 40834,\n",
       " 'wooded': 34703,\n",
       " 'bravora': 52018,\n",
       " 'grueling': 16817,\n",
       " 'wooden': 1636,\n",
       " 'wednesday': 16818,\n",
       " \"'prix\": 52019,\n",
       " 'altagracia': 34704,\n",
       " 'circuitry': 52020,\n",
       " 'crotch': 11585,\n",
       " 'busybody': 57766,\n",
       " \"tart'n'tangy\": 52021,\n",
       " 'burgade': 14129,\n",
       " 'thrace': 52023,\n",
       " \"tom's\": 11038,\n",
       " 'snuggles': 52025,\n",
       " 'francesco': 29114,\n",
       " 'complainers': 52027,\n",
       " 'templarios': 52125,\n",
       " '272': 40835,\n",
       " '273': 52028,\n",
       " 'zaniacs': 52130,\n",
       " '275': 34706,\n",
       " 'consenting': 27631,\n",
       " 'snuggled': 40836,\n",
       " 'inanimate': 15492,\n",
       " 'uality': 52030,\n",
       " 'bronte': 11926,\n",
       " 'errors': 4010,\n",
       " 'dialogs': 3230,\n",
       " \"yomada's\": 52031,\n",
       " \"madman's\": 34707,\n",
       " 'dialoge': 30585,\n",
       " 'usenet': 52033,\n",
       " 'videodrome': 40837,\n",
       " \"kid'\": 26338,\n",
       " 'pawed': 52034,\n",
       " \"'girlfriend'\": 30569,\n",
       " \"'pleasure\": 52035,\n",
       " \"'reloaded'\": 52036,\n",
       " \"kazakos'\": 40839,\n",
       " 'rocque': 52037,\n",
       " 'mailings': 52038,\n",
       " 'brainwashed': 11927,\n",
       " 'mcanally': 16819,\n",
       " \"tom''\": 52039,\n",
       " 'kurupt': 25243,\n",
       " 'affiliated': 21905,\n",
       " 'babaganoosh': 52040,\n",
       " \"noe's\": 40840,\n",
       " 'quart': 40841,\n",
       " 'kids': 359,\n",
       " 'uplifting': 5034,\n",
       " 'controversy': 7093,\n",
       " 'kida': 21906,\n",
       " 'kidd': 23379,\n",
       " \"error'\": 52041,\n",
       " 'neurologist': 52042,\n",
       " 'spotty': 18510,\n",
       " 'cobblers': 30570,\n",
       " 'projection': 9878,\n",
       " 'fastforwarding': 40842,\n",
       " 'sters': 52043,\n",
       " \"eggar's\": 52044,\n",
       " 'etherything': 52045,\n",
       " 'gateshead': 40843,\n",
       " 'airball': 34708,\n",
       " 'unsinkable': 25244,\n",
       " 'stern': 7180,\n",
       " \"cervi's\": 52046,\n",
       " 'dnd': 40844,\n",
       " 'dna': 11586,\n",
       " 'insecurity': 20598,\n",
       " \"'reboot'\": 52047,\n",
       " 'trelkovsky': 11037,\n",
       " 'jaekel': 52048,\n",
       " 'sidebars': 52049,\n",
       " \"sforza's\": 52050,\n",
       " 'distortions': 17633,\n",
       " 'mutinies': 52051,\n",
       " 'sermons': 30602,\n",
       " '7ft': 40846,\n",
       " 'boobage': 52052,\n",
       " \"o'bannon's\": 52053,\n",
       " 'populations': 23380,\n",
       " 'chulak': 52054,\n",
       " 'mesmerize': 27633,\n",
       " 'quinnell': 52055,\n",
       " 'yahoo': 10307,\n",
       " 'meteorologist': 52057,\n",
       " 'beswick': 42577,\n",
       " 'boorman': 15493,\n",
       " 'voicework': 40847,\n",
       " \"ster'\": 52058,\n",
       " 'blustering': 22922,\n",
       " 'hj': 52059,\n",
       " 'intake': 27634,\n",
       " 'morally': 5621,\n",
       " 'jumbling': 40849,\n",
       " 'bowersock': 52060,\n",
       " \"'porky's'\": 52061,\n",
       " 'gershon': 16821,\n",
       " 'ludicrosity': 40850,\n",
       " 'coprophilia': 52062,\n",
       " 'expressively': 40851,\n",
       " \"india's\": 19500,\n",
       " \"post's\": 34710,\n",
       " 'wana': 52063,\n",
       " 'wang': 5283,\n",
       " 'wand': 30571,\n",
       " 'wane': 25245,\n",
       " 'edgeways': 52321,\n",
       " 'titanium': 34711,\n",
       " 'pinta': 40852,\n",
       " 'want': 178,\n",
       " 'pinto': 30572,\n",
       " 'whoopdedoodles': 52065,\n",
       " 'tchaikovsky': 21908,\n",
       " 'travel': 2103,\n",
       " \"'victory'\": 52066,\n",
       " 'copious': 11928,\n",
       " 'gouge': 22433,\n",
       " \"chapters'\": 52067,\n",
       " 'barbra': 6702,\n",
       " 'uselessness': 30573,\n",
       " \"wan'\": 52068,\n",
       " 'assimilated': 27635,\n",
       " 'petiot': 16116,\n",
       " 'most\\x85and': 52069,\n",
       " 'dinosaurs': 3930,\n",
       " 'wrong': 352,\n",
       " 'seda': 52070,\n",
       " 'stollen': 52071,\n",
       " 'sentencing': 34712,\n",
       " 'ouroboros': 40853,\n",
       " 'assimilates': 40854,\n",
       " 'colorfully': 40855,\n",
       " 'glenne': 27636,\n",
       " 'dongen': 52072,\n",
       " 'subplots': 4760,\n",
       " 'kiloton': 52073,\n",
       " 'chandon': 23381,\n",
       " \"effect'\": 34713,\n",
       " 'snugly': 27637,\n",
       " 'kuei': 40856,\n",
       " 'welcomed': 9092,\n",
       " 'dishonor': 30071,\n",
       " 'concurrence': 52075,\n",
       " 'stoicism': 23382,\n",
       " \"guys'\": 14896,\n",
       " \"beroemd'\": 52077,\n",
       " 'butcher': 6703,\n",
       " \"melfi's\": 40857,\n",
       " 'aargh': 30623,\n",
       " 'playhouse': 20599,\n",
       " 'wickedly': 11308,\n",
       " 'fit': 1180,\n",
       " 'labratory': 52078,\n",
       " 'lifeline': 40859,\n",
       " 'screaming': 1927,\n",
       " 'fix': 4287,\n",
       " 'cineliterate': 52079,\n",
       " 'fic': 52080,\n",
       " 'fia': 52081,\n",
       " 'fig': 34714,\n",
       " 'fmvs': 52082,\n",
       " 'fie': 52083,\n",
       " 'reentered': 52084,\n",
       " 'fin': 30574,\n",
       " 'doctresses': 52085,\n",
       " 'fil': 52086,\n",
       " 'zucker': 12606,\n",
       " 'ached': 31931,\n",
       " 'counsil': 52088,\n",
       " 'paterfamilias': 52089,\n",
       " 'songwriter': 13885,\n",
       " 'shivam': 34715,\n",
       " 'hurting': 9654,\n",
       " 'effects': 299,\n",
       " 'slauther': 52090,\n",
       " \"'flame'\": 52091,\n",
       " 'sommerset': 52092,\n",
       " 'interwhined': 52093,\n",
       " 'whacking': 27638,\n",
       " 'bartok': 52094,\n",
       " 'barton': 8775,\n",
       " 'frewer': 21909,\n",
       " \"fi'\": 52095,\n",
       " 'ingrid': 6192,\n",
       " 'stribor': 30575,\n",
       " 'approporiately': 52096,\n",
       " 'wobblyhand': 52097,\n",
       " 'tantalisingly': 52098,\n",
       " 'ankylosaurus': 52099,\n",
       " 'parasites': 17634,\n",
       " 'childen': 52100,\n",
       " \"jenkins'\": 52101,\n",
       " 'metafiction': 52102,\n",
       " 'golem': 17635,\n",
       " 'indiscretion': 40860,\n",
       " \"reeves'\": 23383,\n",
       " \"inamorata's\": 57781,\n",
       " 'brittannica': 52104,\n",
       " 'adapt': 7916,\n",
       " \"russo's\": 30576,\n",
       " 'guitarists': 48246,\n",
       " 'abbott': 10553,\n",
       " 'abbots': 40861,\n",
       " 'lanisha': 17649,\n",
       " 'magickal': 40863,\n",
       " 'mattter': 52105,\n",
       " \"'willy\": 52106,\n",
       " 'pumpkins': 34716,\n",
       " 'stuntpeople': 52107,\n",
       " 'estimate': 30577,\n",
       " 'ugghhh': 40864,\n",
       " 'gameplay': 11309,\n",
       " \"wern't\": 52108,\n",
       " \"n'sync\": 40865,\n",
       " 'sickeningly': 16117,\n",
       " 'chiara': 40866,\n",
       " 'disturbed': 4011,\n",
       " 'portmanteau': 40867,\n",
       " 'ineffectively': 52109,\n",
       " \"duchonvey's\": 82143,\n",
       " \"nasty'\": 37519,\n",
       " 'purpose': 1285,\n",
       " 'lazers': 52112,\n",
       " 'lightened': 28105,\n",
       " 'kaliganj': 52113,\n",
       " 'popularism': 52114,\n",
       " \"damme's\": 18511,\n",
       " 'stylistics': 30578,\n",
       " 'mindgaming': 52115,\n",
       " 'spoilerish': 46449,\n",
       " \"'corny'\": 52117,\n",
       " 'boerner': 34718,\n",
       " 'olds': 6792,\n",
       " 'bakelite': 52118,\n",
       " 'renovated': 27639,\n",
       " 'forrester': 27640,\n",
       " \"lumiere's\": 52119,\n",
       " 'gaskets': 52024,\n",
       " 'needed': 884,\n",
       " 'smight': 34719,\n",
       " 'master': 1297,\n",
       " \"edie's\": 25905,\n",
       " 'seeber': 40868,\n",
       " 'hiya': 52120,\n",
       " 'fuzziness': 52121,\n",
       " 'genesis': 14897,\n",
       " 'rewards': 12607,\n",
       " 'enthrall': 30579,\n",
       " \"'about\": 40869,\n",
       " \"recollection's\": 52122,\n",
       " 'mutilated': 11039,\n",
       " 'fatherlands': 52123,\n",
       " \"fischer's\": 52124,\n",
       " 'positively': 5399,\n",
       " '270': 34705,\n",
       " 'ahmed': 34720,\n",
       " 'zatoichi': 9836,\n",
       " 'bannister': 13886,\n",
       " 'anniversaries': 52127,\n",
       " \"helm's\": 30580,\n",
       " \"'work'\": 52128,\n",
       " 'exclaimed': 34721,\n",
       " \"'unfunny'\": 52129,\n",
       " '274': 52029,\n",
       " 'feeling': 544,\n",
       " \"wanda's\": 52131,\n",
       " 'dolan': 33266,\n",
       " '278': 52133,\n",
       " 'peacoat': 52134,\n",
       " 'brawny': 40870,\n",
       " 'mishra': 40871,\n",
       " 'worlders': 40872,\n",
       " 'protags': 52135,\n",
       " 'skullcap': 52136,\n",
       " 'dastagir': 57596,\n",
       " 'affairs': 5622,\n",
       " 'wholesome': 7799,\n",
       " 'hymen': 52137,\n",
       " 'paramedics': 25246,\n",
       " 'unpersons': 52138,\n",
       " 'heavyarms': 52139,\n",
       " 'affaire': 52140,\n",
       " 'coulisses': 52141,\n",
       " 'hymer': 40873,\n",
       " 'kremlin': 52142,\n",
       " 'shipments': 30581,\n",
       " 'pixilated': 52143,\n",
       " \"'00s\": 30582,\n",
       " 'diminishing': 18512,\n",
       " 'cinematic': 1357,\n",
       " 'resonates': 14898,\n",
       " 'simplify': 40874,\n",
       " \"nature'\": 40875,\n",
       " 'temptresses': 40876,\n",
       " 'reverence': 16822,\n",
       " 'resonated': 19502,\n",
       " 'dailey': 34722,\n",
       " '2\\x85': 52144,\n",
       " 'treize': 27641,\n",
       " 'majo': 52145,\n",
       " 'kiya': 21910,\n",
       " 'woolnough': 52146,\n",
       " 'thanatos': 39797,\n",
       " 'sandoval': 35731,\n",
       " 'dorama': 40879,\n",
       " \"o'shaughnessy\": 52147,\n",
       " 'tech': 4988,\n",
       " 'fugitives': 32018,\n",
       " 'teck': 30583,\n",
       " \"'e'\": 76125,\n",
       " 'doesn’t': 40881,\n",
       " 'purged': 52149,\n",
       " 'saying': 657,\n",
       " \"martians'\": 41095,\n",
       " 'norliss': 23418,\n",
       " 'dickey': 27642,\n",
       " 'dicker': 52152,\n",
       " \"'sependipity\": 52153,\n",
       " 'padded': 8422,\n",
       " 'ordell': 57792,\n",
       " \"sturges'\": 40882,\n",
       " 'independentcritics': 52154,\n",
       " 'tempted': 5745,\n",
       " \"atkinson's\": 34724,\n",
       " 'hounded': 25247,\n",
       " 'apace': 52155,\n",
       " 'clicked': 15494,\n",
       " \"'humor'\": 30584,\n",
       " \"martino's\": 17177,\n",
       " \"'supporting\": 52156,\n",
       " 'warmongering': 52032,\n",
       " \"zemeckis's\": 34725,\n",
       " 'lube': 21911,\n",
       " 'shocky': 52157,\n",
       " 'plate': 7476,\n",
       " 'plata': 40883,\n",
       " 'sturgess': 40884,\n",
       " \"nerds'\": 40885,\n",
       " 'plato': 20600,\n",
       " 'plath': 34726,\n",
       " 'platt': 40886,\n",
       " 'mcnab': 52159,\n",
       " 'clumsiness': 27643,\n",
       " 'altogether': 3899,\n",
       " 'massacring': 42584,\n",
       " 'bicenntinial': 52160,\n",
       " 'skaal': 40887,\n",
       " 'droning': 14360,\n",
       " 'lds': 8776,\n",
       " 'jaguar': 21912,\n",
       " \"cale's\": 34727,\n",
       " 'nicely': 1777,\n",
       " 'mummy': 4588,\n",
       " \"lot's\": 18513,\n",
       " 'patch': 10086,\n",
       " 'kerkhof': 50202,\n",
       " \"leader's\": 52161,\n",
       " \"'movie\": 27644,\n",
       " 'uncomfirmed': 52162,\n",
       " 'heirloom': 40888,\n",
       " 'wrangle': 47360,\n",
       " 'emotion\\x85': 52163,\n",
       " \"'stargate'\": 52164,\n",
       " 'pinoy': 40889,\n",
       " 'conchatta': 40890,\n",
       " 'broeke': 41128,\n",
       " 'advisedly': 40891,\n",
       " \"barker's\": 17636,\n",
       " 'descours': 52166,\n",
       " 'lots': 772,\n",
       " 'lotr': 9259,\n",
       " 'irs': 9879,\n",
       " 'lott': 52167,\n",
       " 'xvi': 40892,\n",
       " 'irk': 34728,\n",
       " 'irl': 52168,\n",
       " 'ira': 6887,\n",
       " 'belzer': 21913,\n",
       " 'irc': 52169,\n",
       " 'ire': 27645,\n",
       " 'requisites': 40893,\n",
       " 'discipline': 7693,\n",
       " 'lyoko': 52961,\n",
       " 'extend': 11310,\n",
       " 'nature': 873,\n",
       " \"'dickie'\": 52170,\n",
       " 'optimist': 40894,\n",
       " 'lapping': 30586,\n",
       " 'superficial': 3900,\n",
       " 'vestment': 52171,\n",
       " 'extent': 2823,\n",
       " 'tendons': 52172,\n",
       " \"heller's\": 52173,\n",
       " 'quagmires': 52174,\n",
       " 'miyako': 52175,\n",
       " 'moocow': 20601,\n",
       " \"coles'\": 52176,\n",
       " 'lookit': 40895,\n",
       " 'ravenously': 52177,\n",
       " 'levitating': 40896,\n",
       " 'perfunctorily': 52178,\n",
       " 'lookin': 30587,\n",
       " \"lot'\": 40898,\n",
       " 'lookie': 52179,\n",
       " 'fearlessly': 34870,\n",
       " 'libyan': 52181,\n",
       " 'fondles': 40899,\n",
       " 'gopher': 35714,\n",
       " 'wearying': 40901,\n",
       " \"nz's\": 52182,\n",
       " 'minuses': 27646,\n",
       " 'puposelessly': 52183,\n",
       " 'shandling': 52184,\n",
       " 'decapitates': 31268,\n",
       " 'humming': 11929,\n",
       " \"'nother\": 40902,\n",
       " 'smackdown': 21914,\n",
       " 'underdone': 30588,\n",
       " 'frf': 40903,\n",
       " 'triviality': 52185,\n",
       " 'fro': 25248,\n",
       " 'bothers': 8777,\n",
       " \"'kensington\": 52186,\n",
       " 'much': 73,\n",
       " 'muco': 34730,\n",
       " 'wiseguy': 22615,\n",
       " \"richie's\": 27648,\n",
       " 'tonino': 40904,\n",
       " 'unleavened': 52187,\n",
       " 'fry': 11587,\n",
       " \"'tv'\": 40905,\n",
       " 'toning': 40906,\n",
       " 'obese': 14361,\n",
       " 'sensationalized': 30589,\n",
       " 'spiv': 40907,\n",
       " 'spit': 6259,\n",
       " 'arkin': 7364,\n",
       " 'charleton': 21915,\n",
       " 'jeon': 16823,\n",
       " 'boardroom': 21916,\n",
       " 'doubts': 4989,\n",
       " 'spin': 3084,\n",
       " 'hepo': 53083,\n",
       " 'wildcat': 27649,\n",
       " 'venoms': 10584,\n",
       " 'misconstrues': 52191,\n",
       " 'mesmerising': 18514,\n",
       " 'misconstrued': 40908,\n",
       " 'rescinds': 52192,\n",
       " 'prostrate': 52193,\n",
       " 'majid': 40909,\n",
       " 'climbed': 16479,\n",
       " 'canoeing': 34731,\n",
       " 'majin': 52195,\n",
       " 'animie': 57804,\n",
       " 'sylke': 40910,\n",
       " 'conditioned': 14899,\n",
       " 'waddell': 40911,\n",
       " '3\\x85': 52196,\n",
       " 'hyperdrive': 41188,\n",
       " 'conditioner': 34732,\n",
       " 'bricklayer': 53153,\n",
       " 'hong': 2576,\n",
       " 'memoriam': 52198,\n",
       " 'inventively': 30592,\n",
       " \"levant's\": 25249,\n",
       " 'portobello': 20638,\n",
       " 'remand': 52200,\n",
       " 'mummified': 19504,\n",
       " 'honk': 27650,\n",
       " 'spews': 19505,\n",
       " 'visitations': 40912,\n",
       " 'mummifies': 52201,\n",
       " 'cavanaugh': 25250,\n",
       " 'zeon': 23385,\n",
       " \"jungle's\": 40913,\n",
       " 'viertel': 34733,\n",
       " 'frenchmen': 27651,\n",
       " 'torpedoes': 52202,\n",
       " 'schlessinger': 52203,\n",
       " 'torpedoed': 34734,\n",
       " 'blister': 69876,\n",
       " 'cinefest': 52204,\n",
       " 'furlough': 34735,\n",
       " 'mainsequence': 52205,\n",
       " 'mentors': 40914,\n",
       " 'academic': 9094,\n",
       " 'stillness': 20602,\n",
       " 'academia': 40915,\n",
       " 'lonelier': 52206,\n",
       " 'nibby': 52207,\n",
       " \"losers'\": 52208,\n",
       " 'cineastes': 40916,\n",
       " 'corporate': 4449,\n",
       " 'massaging': 40917,\n",
       " 'bellow': 30593,\n",
       " 'absurdities': 19506,\n",
       " 'expetations': 53241,\n",
       " 'nyfiken': 40918,\n",
       " 'mehras': 75638,\n",
       " 'lasse': 52209,\n",
       " 'visability': 52210,\n",
       " 'militarily': 33946,\n",
       " \"elder'\": 52211,\n",
       " 'gainsbourg': 19023,\n",
       " 'hah': 20603,\n",
       " 'hai': 13420,\n",
       " 'haj': 34736,\n",
       " 'hak': 25251,\n",
       " 'hal': 4311,\n",
       " 'ham': 4892,\n",
       " 'duffer': 53259,\n",
       " 'haa': 52213,\n",
       " 'had': 66,\n",
       " 'advancement': 11930,\n",
       " 'hag': 16825,\n",
       " \"hand'\": 25252,\n",
       " 'hay': 13421,\n",
       " 'mcnamara': 20604,\n",
       " \"mozart's\": 52214,\n",
       " 'duffel': 30731,\n",
       " 'haq': 30594,\n",
       " 'har': 13887,\n",
       " 'has': 44,\n",
       " 'hat': 2401,\n",
       " 'hav': 40919,\n",
       " 'haw': 30595,\n",
       " 'figtings': 52215,\n",
       " 'elders': 15495,\n",
       " 'underpanted': 52216,\n",
       " 'pninson': 52217,\n",
       " 'unequivocally': 27652,\n",
       " \"barbara's\": 23673,\n",
       " \"bello'\": 52219,\n",
       " 'indicative': 12997,\n",
       " 'yawnfest': 40920,\n",
       " 'hexploitation': 52220,\n",
       " \"loder's\": 52221,\n",
       " 'sleuthing': 27653,\n",
       " \"justin's\": 32622,\n",
       " \"'ball\": 52222,\n",
       " \"'summer\": 52223,\n",
       " \"'demons'\": 34935,\n",
       " \"mormon's\": 52225,\n",
       " \"laughton's\": 34737,\n",
       " 'debell': 52226,\n",
       " 'shipyard': 39724,\n",
       " 'unabashedly': 30597,\n",
       " 'disks': 40401,\n",
       " 'crowd': 2290,\n",
       " 'crowe': 10087,\n",
       " \"vancouver's\": 56434,\n",
       " 'mosques': 34738,\n",
       " 'crown': 6627,\n",
       " 'culpas': 52227,\n",
       " 'crows': 27654,\n",
       " 'surrell': 53344,\n",
       " 'flowless': 52229,\n",
       " 'sheirk': 52230,\n",
       " \"'three\": 40923,\n",
       " \"peterson'\": 52231,\n",
       " 'ooverall': 52232,\n",
       " 'perchance': 40924,\n",
       " 'bottom': 1321,\n",
       " 'chabert': 53363,\n",
       " 'sneha': 52233,\n",
       " 'inhuman': 13888,\n",
       " 'ichii': 52234,\n",
       " 'ursla': 52235,\n",
       " 'completly': 30598,\n",
       " 'moviedom': 40925,\n",
       " 'raddick': 52236,\n",
       " 'brundage': 51995,\n",
       " 'brigades': 40926,\n",
       " 'starring': 1181,\n",
       " \"'goal'\": 52237,\n",
       " 'caskets': 52238,\n",
       " 'willcock': 52239,\n",
       " \"threesome's\": 52240,\n",
       " \"mosque'\": 52241,\n",
       " \"cover's\": 52242,\n",
       " 'spaceships': 17637,\n",
       " 'anomalous': 40927,\n",
       " 'ptsd': 27655,\n",
       " 'shirdan': 52243,\n",
       " 'obscenity': 21962,\n",
       " 'lemmings': 30599,\n",
       " 'duccio': 30600,\n",
       " \"levene's\": 52244,\n",
       " \"'gorby'\": 52245,\n",
       " \"teenager's\": 25255,\n",
       " 'marshall': 5340,\n",
       " 'honeymoon': 9095,\n",
       " 'shoots': 3231,\n",
       " 'despised': 12258,\n",
       " 'okabasho': 52246,\n",
       " 'fabric': 8289,\n",
       " 'cannavale': 18515,\n",
       " 'raped': 3537,\n",
       " \"tutt's\": 52247,\n",
       " 'grasping': 17638,\n",
       " 'despises': 18516,\n",
       " \"thief's\": 40928,\n",
       " 'rapes': 8926,\n",
       " 'raper': 52248,\n",
       " \"eyre'\": 27656,\n",
       " 'walchek': 52249,\n",
       " \"elmo's\": 23386,\n",
       " 'perfumes': 40929,\n",
       " 'spurting': 21918,\n",
       " \"exposition'\\x85\": 52250,\n",
       " 'denoting': 52251,\n",
       " 'thesaurus': 34740,\n",
       " \"shoot'\": 40930,\n",
       " 'bonejack': 49759,\n",
       " 'simpsonian': 52253,\n",
       " 'hebetude': 30601,\n",
       " \"hallow's\": 34741,\n",
       " 'desperation\\x85': 52254,\n",
       " 'incinerator': 34742,\n",
       " 'congratulations': 10308,\n",
       " 'humbled': 52255,\n",
       " \"else's\": 5924,\n",
       " 'trelkovski': 40845,\n",
       " \"rape'\": 52256,\n",
       " \"'chapters'\": 59386,\n",
       " '1600s': 52257,\n",
       " 'martian': 7253,\n",
       " 'nicest': 25256,\n",
       " 'eyred': 52259,\n",
       " 'passenger': 9457,\n",
       " 'disgrace': 6041,\n",
       " 'moderne': 52260,\n",
       " 'barrymore': 5120,\n",
       " 'yankovich': 52261,\n",
       " 'moderns': 40931,\n",
       " 'studliest': 52262,\n",
       " 'bedsheet': 52263,\n",
       " 'decapitation': 14900,\n",
       " 'slurring': 52264,\n",
       " \"'nunsploitation'\": 52265,\n",
       " \"'character'\": 34743,\n",
       " 'cambodia': 9880,\n",
       " 'rebelious': 52266,\n",
       " 'pasadena': 27657,\n",
       " 'crowne': 40932,\n",
       " \"'bedchamber\": 52267,\n",
       " 'conjectural': 52268,\n",
       " 'appologize': 52269,\n",
       " 'halfassing': 52270,\n",
       " 'paycheque': 57816,\n",
       " 'palms': 20606,\n",
       " \"'islands\": 52271,\n",
       " 'hawked': 40933,\n",
       " 'palme': 21919,\n",
       " 'conservatively': 40934,\n",
       " 'larp': 64007,\n",
       " 'palma': 5558,\n",
       " 'smelling': 21920,\n",
       " 'aragorn': 12998,\n",
       " 'hawker': 52272,\n",
       " 'hawkes': 52273,\n",
       " 'explosions': 3975,\n",
       " 'loren': 8059,\n",
       " \"pyle's\": 52274,\n",
       " 'shootout': 6704,\n",
       " \"mike's\": 18517,\n",
       " \"driscoll's\": 52275,\n",
       " 'cogsworth': 40935,\n",
       " \"britian's\": 52276,\n",
       " 'childs': 34744,\n",
       " \"portrait's\": 52277,\n",
       " 'chain': 3626,\n",
       " 'whoever': 2497,\n",
       " 'puttered': 52278,\n",
       " 'childe': 52279,\n",
       " 'maywether': 52280,\n",
       " 'chair': 3036,\n",
       " \"rance's\": 52281,\n",
       " 'machu': 34745,\n",
       " 'ballet': 4517,\n",
       " 'grapples': 34746,\n",
       " 'summerize': 76152,\n",
       " 'freelance': 30603,\n",
       " \"andrea's\": 52283,\n",
       " '\\x91very': 52284,\n",
       " 'coolidge': 45879,\n",
       " 'mache': 18518,\n",
       " 'balled': 52285,\n",
       " 'grappled': 40937,\n",
       " 'macha': 18519,\n",
       " 'underlining': 21921,\n",
       " 'macho': 5623,\n",
       " 'oversight': 19507,\n",
       " 'machi': 25257,\n",
       " 'verbally': 11311,\n",
       " 'tenacious': 21922,\n",
       " 'windshields': 40938,\n",
       " 'paychecks': 18557,\n",
       " 'jerk': 3396,\n",
       " \"good'\": 11931,\n",
       " 'prancer': 34748,\n",
       " 'prances': 21923,\n",
       " 'olympus': 52286,\n",
       " 'lark': 21924,\n",
       " 'embark': 10785,\n",
       " 'gloomy': 7365,\n",
       " 'jehaan': 52287,\n",
       " 'turaqui': 52288,\n",
       " \"child'\": 20607,\n",
       " 'locked': 2894,\n",
       " 'pranced': 52289,\n",
       " 'exact': 2588,\n",
       " 'unattuned': 52290,\n",
       " 'minute': 783,\n",
       " 'skewed': 16118,\n",
       " 'hodgins': 40940,\n",
       " 'skewer': 34749,\n",
       " 'think\\x85': 52291,\n",
       " 'rosenstein': 38765,\n",
       " 'helmit': 52292,\n",
       " 'wrestlemanias': 34750,\n",
       " 'hindered': 16826,\n",
       " \"martha's\": 30604,\n",
       " 'cheree': 52293,\n",
       " \"pluckin'\": 52294,\n",
       " 'ogles': 40941,\n",
       " 'heavyweight': 11932,\n",
       " 'aada': 82190,\n",
       " 'chopping': 11312,\n",
       " 'strongboy': 61534,\n",
       " 'hegemonic': 41342,\n",
       " 'adorns': 40942,\n",
       " 'xxth': 41346,\n",
       " 'nobuhiro': 34751,\n",
       " 'capitães': 52298,\n",
       " 'kavogianni': 52299,\n",
       " 'antwerp': 13422,\n",
       " 'celebrated': 6538,\n",
       " 'roarke': 52300,\n",
       " 'baggins': 40943,\n",
       " 'cheeseburgers': 31270,\n",
       " 'matras': 52301,\n",
       " \"nineties'\": 52302,\n",
       " \"'craig'\": 52303,\n",
       " 'celebrates': 12999,\n",
       " 'unintentionally': 3383,\n",
       " 'drafted': 14362,\n",
       " 'climby': 52304,\n",
       " '303': 52305,\n",
       " 'oldies': 18520,\n",
       " 'climbs': 9096,\n",
       " 'honour': 9655,\n",
       " 'plucking': 34752,\n",
       " '305': 30074,\n",
       " 'address': 5514,\n",
       " 'menjou': 40944,\n",
       " \"'freak'\": 42592,\n",
       " 'dwindling': 19508,\n",
       " 'benson': 9458,\n",
       " 'white’s': 52307,\n",
       " 'shamelessness': 40945,\n",
       " 'impacted': 21925,\n",
       " 'upatz': 52308,\n",
       " 'cusack': 3840,\n",
       " \"flavia's\": 37567,\n",
       " 'effette': 52309,\n",
       " 'influx': 34753,\n",
       " 'boooooooo': 52310,\n",
       " 'dimitrova': 52311,\n",
       " 'houseman': 13423,\n",
       " 'bigas': 25259,\n",
       " 'boylen': 52312,\n",
       " 'phillipenes': 52313,\n",
       " 'fakery': 40946,\n",
       " \"grandpa's\": 27658,\n",
       " 'darnell': 27659,\n",
       " 'undergone': 19509,\n",
       " 'handbags': 52315,\n",
       " 'perished': 21926,\n",
       " 'pooped': 37778,\n",
       " 'vigour': 27660,\n",
       " 'opposed': 3627,\n",
       " 'etude': 52316,\n",
       " \"caine's\": 11799,\n",
       " 'doozers': 52317,\n",
       " 'photojournals': 34754,\n",
       " 'perishes': 52318,\n",
       " 'constrains': 34755,\n",
       " 'migenes': 40948,\n",
       " 'consoled': 30605,\n",
       " 'alastair': 16827,\n",
       " 'wvs': 52319,\n",
       " 'ooooooh': 52320,\n",
       " 'approving': 34756,\n",
       " 'consoles': 40949,\n",
       " 'disparagement': 52064,\n",
       " 'futureistic': 52322,\n",
       " 'rebounding': 52323,\n",
       " \"'date\": 52324,\n",
       " 'gregoire': 52325,\n",
       " 'rutherford': 21927,\n",
       " 'americanised': 34757,\n",
       " 'novikov': 82196,\n",
       " 'following': 1042,\n",
       " 'munroe': 34758,\n",
       " \"morita'\": 52326,\n",
       " 'christenssen': 52327,\n",
       " 'oatmeal': 23106,\n",
       " 'fossey': 25260,\n",
       " 'livered': 40950,\n",
       " 'listens': 13000,\n",
       " \"'marci\": 76164,\n",
       " \"otis's\": 52330,\n",
       " 'thanking': 23387,\n",
       " 'maude': 16019,\n",
       " 'extensions': 34759,\n",
       " 'ameteurish': 52332,\n",
       " \"commender's\": 52333,\n",
       " 'agricultural': 27661,\n",
       " 'convincingly': 4518,\n",
       " 'fueled': 17639,\n",
       " 'mahattan': 54014,\n",
       " \"paris's\": 40952,\n",
       " 'vulkan': 52336,\n",
       " 'stapes': 52337,\n",
       " 'odysessy': 52338,\n",
       " 'harmon': 12259,\n",
       " 'surfing': 4252,\n",
       " 'halloran': 23494,\n",
       " 'unbelieveably': 49580,\n",
       " \"'offed'\": 52339,\n",
       " 'quadrant': 30607,\n",
       " 'inhabiting': 19510,\n",
       " 'nebbish': 34760,\n",
       " 'forebears': 40953,\n",
       " 'skirmish': 34761,\n",
       " 'ocassionally': 52340,\n",
       " \"'resist\": 52341,\n",
       " 'impactful': 21928,\n",
       " 'spicier': 52342,\n",
       " 'touristy': 40954,\n",
       " \"'football'\": 52343,\n",
       " 'webpage': 40955,\n",
       " 'exurbia': 52345,\n",
       " 'jucier': 52346,\n",
       " 'professors': 14901,\n",
       " 'structuring': 34762,\n",
       " 'jig': 30608,\n",
       " 'overlord': 40956,\n",
       " 'disconnect': 25261,\n",
       " 'sniffle': 82201,\n",
       " 'slimeball': 40957,\n",
       " 'jia': 40958,\n",
       " 'milked': 16828,\n",
       " 'banjoes': 40959,\n",
       " 'jim': 1237,\n",
       " 'workforces': 52348,\n",
       " 'jip': 52349,\n",
       " 'rotweiller': 52350,\n",
       " 'mundaneness': 34763,\n",
       " \"'ninja'\": 52351,\n",
       " \"dead'\": 11040,\n",
       " \"cipriani's\": 40960,\n",
       " 'modestly': 20608,\n",
       " \"professor'\": 52352,\n",
       " 'shacked': 40961,\n",
       " 'bashful': 34764,\n",
       " 'sorter': 23388,\n",
       " 'overpowering': 16120,\n",
       " 'workmanlike': 18521,\n",
       " 'henpecked': 27662,\n",
       " 'sorted': 18522,\n",
       " \"jōb's\": 52354,\n",
       " \"'always\": 52355,\n",
       " \"'baptists\": 34765,\n",
       " 'dreamcatchers': 52356,\n",
       " \"'silence'\": 52357,\n",
       " 'hickory': 21929,\n",
       " 'fun\\x97yet': 52358,\n",
       " 'breakumentary': 52359,\n",
       " 'didn': 15496,\n",
       " 'didi': 52360,\n",
       " 'pealing': 52361,\n",
       " 'dispite': 40962,\n",
       " \"italy's\": 25262,\n",
       " 'instability': 21930,\n",
       " 'quarter': 6539,\n",
       " 'quartet': 12608,\n",
       " 'padmé': 52362,\n",
       " \"'bleedmedry\": 52363,\n",
       " 'pahalniuk': 52364,\n",
       " 'honduras': 52365,\n",
       " 'bursting': 10786,\n",
       " \"pablo's\": 41465,\n",
       " 'irremediably': 52367,\n",
       " 'presages': 40963,\n",
       " 'bowlegged': 57832,\n",
       " 'dalip': 65183,\n",
       " 'entering': 6260,\n",
       " 'newsradio': 76172,\n",
       " 'presaged': 54150,\n",
       " \"giallo's\": 27663,\n",
       " 'bouyant': 40964,\n",
       " 'amerterish': 52368,\n",
       " 'rajni': 18523,\n",
       " 'leeves': 30610,\n",
       " 'macauley': 34767,\n",
       " 'seriously': 612,\n",
       " 'sugercoma': 52369,\n",
       " 'grimstead': 52370,\n",
       " \"'fairy'\": 52371,\n",
       " 'zenda': 30611,\n",
       " \"'twins'\": 52372,\n",
       " 'realisation': 17640,\n",
       " 'highsmith': 27664,\n",
       " 'raunchy': 7817,\n",
       " 'incentives': 40965,\n",
       " 'flatson': 52374,\n",
       " 'snooker': 35097,\n",
       " 'crazies': 16829,\n",
       " 'crazier': 14902,\n",
       " 'grandma': 7094,\n",
       " 'napunsaktha': 52375,\n",
       " 'workmanship': 30612,\n",
       " 'reisner': 52376,\n",
       " \"sanford's\": 61306,\n",
       " '\\x91doña': 52377,\n",
       " 'modest': 6108,\n",
       " \"everything's\": 19153,\n",
       " 'hamer': 40966,\n",
       " \"couldn't'\": 52379,\n",
       " 'quibble': 13001,\n",
       " 'socking': 52380,\n",
       " 'tingler': 21931,\n",
       " 'gutman': 52381,\n",
       " 'lachlan': 40967,\n",
       " 'tableaus': 52382,\n",
       " 'headbanger': 52383,\n",
       " 'spoken': 2847,\n",
       " 'cerebrally': 34768,\n",
       " \"'road\": 23490,\n",
       " 'tableaux': 21932,\n",
       " \"proust's\": 40968,\n",
       " 'periodical': 40969,\n",
       " \"shoveller's\": 52385,\n",
       " 'tamara': 25263,\n",
       " 'affords': 17641,\n",
       " 'concert': 3249,\n",
       " \"yara's\": 87955,\n",
       " 'someome': 52386,\n",
       " 'lingering': 8424,\n",
       " \"abraham's\": 41511,\n",
       " 'beesley': 34769,\n",
       " 'cherbourg': 34770,\n",
       " 'kagan': 28624,\n",
       " 'snatch': 9097,\n",
       " \"miyazaki's\": 9260,\n",
       " 'absorbs': 25264,\n",
       " \"koltai's\": 40970,\n",
       " 'tingled': 64027,\n",
       " 'crossroads': 19511,\n",
       " 'rehab': 16121,\n",
       " 'falworth': 52389,\n",
       " 'sequals': 52390,\n",
       " ...}"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "word_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "84"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "word_index['great']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "160"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "word_index['funny']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "75"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "word_index['bad']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "word_index['the']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('fawn', 34701), ('tsukino', 52006), ('nunnery', 52007), ('sonja', 16816), ('vani', 63951), ('woods', 1408), ('spiders', 16115), ('hanging', 2345), ('woody', 2289), ('trawling', 52008), (\"hold's\", 52009), ('comically', 11307), ('localized', 40830), ('disobeying', 30568), (\"'royale\", 52010), (\"harpo's\", 40831), ('canet', 52011), ('aileen', 19313), ('acurately', 52012), (\"diplomat's\", 52013), ('rickman', 25242), ('arranged', 6746), ('rumbustious', 52014), ('familiarness', 52015), (\"spider'\", 52016), ('hahahah', 68804), (\"wood'\", 52017), ('transvestism', 40833), (\"hangin'\", 34702), ('bringing', 2338), ('seamier', 40834), ('wooded', 34703), ('bravora', 52018), ('grueling', 16817), ('wooden', 1636), ('wednesday', 16818), (\"'prix\", 52019), ('altagracia', 34704), ('circuitry', 52020), ('crotch', 11585), ('busybody', 57766), (\"tart'n'tangy\", 52021), ('burgade', 14129), ('thrace', 52023), (\"tom's\", 11038), ('snuggles', 52025), ('francesco', 29114), ('complainers', 52027), ('templarios', 52125), ('272', 40835)]\n"
     ]
    }
   ],
   "source": [
    "# show the first 50 (key, value) pairs\n",
    "items_list = list(word_index.items())\n",
    "print(items_list[0:50])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "We will build a reversed version of the word index that maps rank numbers to words."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(34701, 'fawn'),\n",
       " (52006, 'tsukino'),\n",
       " (52007, 'nunnery'),\n",
       " (16816, 'sonja'),\n",
       " (63951, 'vani'),\n",
       " (1408, 'woods'),\n",
       " (16115, 'spiders'),\n",
       " (2345, 'hanging'),\n",
       " (2289, 'woody'),\n",
       " (52008, 'trawling'),\n",
       " (52009, \"hold's\"),\n",
       " (11307, 'comically'),\n",
       " (40830, 'localized'),\n",
       " (30568, 'disobeying'),\n",
       " (52010, \"'royale\"),\n",
       " (40831, \"harpo's\"),\n",
       " (52011, 'canet'),\n",
       " (19313, 'aileen'),\n",
       " (52012, 'acurately'),\n",
       " (52013, \"diplomat's\"),\n",
       " (25242, 'rickman'),\n",
       " (6746, 'arranged'),\n",
       " (52014, 'rumbustious'),\n",
       " (52015, 'familiarness'),\n",
       " (52016, \"spider'\"),\n",
       " (68804, 'hahahah'),\n",
       " (52017, \"wood'\"),\n",
       " (40833, 'transvestism'),\n",
       " (34702, \"hangin'\"),\n",
       " (2338, 'bringing'),\n",
       " (40834, 'seamier'),\n",
       " (34703, 'wooded'),\n",
       " (52018, 'bravora'),\n",
       " (16817, 'grueling'),\n",
       " (1636, 'wooden'),\n",
       " (16818, 'wednesday'),\n",
       " (52019, \"'prix\"),\n",
       " (34704, 'altagracia'),\n",
       " (52020, 'circuitry'),\n",
       " (11585, 'crotch'),\n",
       " (57766, 'busybody'),\n",
       " (52021, \"tart'n'tangy\"),\n",
       " (14129, 'burgade'),\n",
       " (52023, 'thrace'),\n",
       " (11038, \"tom's\"),\n",
       " (52025, 'snuggles'),\n",
       " (29114, 'francesco'),\n",
       " (52027, 'complainers'),\n",
       " (52125, 'templarios'),\n",
       " (40835, '272'),\n",
       " (52028, '273'),\n",
       " (52130, 'zaniacs'),\n",
       " (34706, '275'),\n",
       " (27631, 'consenting'),\n",
       " (40836, 'snuggled'),\n",
       " (15492, 'inanimate'),\n",
       " (52030, 'uality'),\n",
       " (11926, 'bronte'),\n",
       " (4010, 'errors'),\n",
       " (3230, 'dialogs'),\n",
       " (52031, \"yomada's\"),\n",
       " (34707, \"madman's\"),\n",
       " (30585, 'dialoge'),\n",
       " (52033, 'usenet'),\n",
       " (40837, 'videodrome'),\n",
       " (26338, \"kid'\"),\n",
       " (52034, 'pawed'),\n",
       " (30569, \"'girlfriend'\"),\n",
       " (52035, \"'pleasure\"),\n",
       " (52036, \"'reloaded'\"),\n",
       " (40839, \"kazakos'\"),\n",
       " (52037, 'rocque'),\n",
       " (52038, 'mailings'),\n",
       " (11927, 'brainwashed'),\n",
       " (16819, 'mcanally'),\n",
       " (52039, \"tom''\"),\n",
       " (25243, 'kurupt'),\n",
       " (21905, 'affiliated'),\n",
       " (52040, 'babaganoosh'),\n",
       " (40840, \"noe's\"),\n",
       " (40841, 'quart'),\n",
       " (359, 'kids'),\n",
       " (5034, 'uplifting'),\n",
       " (7093, 'controversy'),\n",
       " (21906, 'kida'),\n",
       " (23379, 'kidd'),\n",
       " (52041, \"error'\"),\n",
       " (52042, 'neurologist'),\n",
       " (18510, 'spotty'),\n",
       " (30570, 'cobblers'),\n",
       " (9878, 'projection'),\n",
       " (40842, 'fastforwarding'),\n",
       " (52043, 'sters'),\n",
       " (52044, \"eggar's\"),\n",
       " (52045, 'etherything'),\n",
       " (40843, 'gateshead'),\n",
       " (34708, 'airball'),\n",
       " (25244, 'unsinkable'),\n",
       " (7180, 'stern'),\n",
       " (52046, \"cervi's\"),\n",
       " (40844, 'dnd'),\n",
       " (11586, 'dna'),\n",
       " (20598, 'insecurity'),\n",
       " (52047, \"'reboot'\"),\n",
       " (11037, 'trelkovsky'),\n",
       " (52048, 'jaekel'),\n",
       " (52049, 'sidebars'),\n",
       " (52050, \"sforza's\"),\n",
       " (17633, 'distortions'),\n",
       " (52051, 'mutinies'),\n",
       " (30602, 'sermons'),\n",
       " (40846, '7ft'),\n",
       " (52052, 'boobage'),\n",
       " (52053, \"o'bannon's\"),\n",
       " (23380, 'populations'),\n",
       " (52054, 'chulak'),\n",
       " (27633, 'mesmerize'),\n",
       " (52055, 'quinnell'),\n",
       " (10307, 'yahoo'),\n",
       " (52057, 'meteorologist'),\n",
       " (42577, 'beswick'),\n",
       " (15493, 'boorman'),\n",
       " (40847, 'voicework'),\n",
       " (52058, \"ster'\"),\n",
       " (22922, 'blustering'),\n",
       " (52059, 'hj'),\n",
       " (27634, 'intake'),\n",
       " (5621, 'morally'),\n",
       " (40849, 'jumbling'),\n",
       " (52060, 'bowersock'),\n",
       " (52061, \"'porky's'\"),\n",
       " (16821, 'gershon'),\n",
       " (40850, 'ludicrosity'),\n",
       " (52062, 'coprophilia'),\n",
       " (40851, 'expressively'),\n",
       " (19500, \"india's\"),\n",
       " (34710, \"post's\"),\n",
       " (52063, 'wana'),\n",
       " (5283, 'wang'),\n",
       " (30571, 'wand'),\n",
       " (25245, 'wane'),\n",
       " (52321, 'edgeways'),\n",
       " (34711, 'titanium'),\n",
       " (40852, 'pinta'),\n",
       " (178, 'want'),\n",
       " (30572, 'pinto'),\n",
       " (52065, 'whoopdedoodles'),\n",
       " (21908, 'tchaikovsky'),\n",
       " (2103, 'travel'),\n",
       " (52066, \"'victory'\"),\n",
       " (11928, 'copious'),\n",
       " (22433, 'gouge'),\n",
       " (52067, \"chapters'\"),\n",
       " (6702, 'barbra'),\n",
       " (30573, 'uselessness'),\n",
       " (52068, \"wan'\"),\n",
       " (27635, 'assimilated'),\n",
       " (16116, 'petiot'),\n",
       " (52069, 'most\\x85and'),\n",
       " (3930, 'dinosaurs'),\n",
       " (352, 'wrong'),\n",
       " (52070, 'seda'),\n",
       " (52071, 'stollen'),\n",
       " (34712, 'sentencing'),\n",
       " (40853, 'ouroboros'),\n",
       " (40854, 'assimilates'),\n",
       " (40855, 'colorfully'),\n",
       " (27636, 'glenne'),\n",
       " (52072, 'dongen'),\n",
       " (4760, 'subplots'),\n",
       " (52073, 'kiloton'),\n",
       " (23381, 'chandon'),\n",
       " (34713, \"effect'\"),\n",
       " (27637, 'snugly'),\n",
       " (40856, 'kuei'),\n",
       " (9092, 'welcomed'),\n",
       " (30071, 'dishonor'),\n",
       " (52075, 'concurrence'),\n",
       " (23382, 'stoicism'),\n",
       " (14896, \"guys'\"),\n",
       " (52077, \"beroemd'\"),\n",
       " (6703, 'butcher'),\n",
       " (40857, \"melfi's\"),\n",
       " (30623, 'aargh'),\n",
       " (20599, 'playhouse'),\n",
       " (11308, 'wickedly'),\n",
       " (1180, 'fit'),\n",
       " (52078, 'labratory'),\n",
       " (40859, 'lifeline'),\n",
       " (1927, 'screaming'),\n",
       " (4287, 'fix'),\n",
       " (52079, 'cineliterate'),\n",
       " (52080, 'fic'),\n",
       " (52081, 'fia'),\n",
       " (34714, 'fig'),\n",
       " (52082, 'fmvs'),\n",
       " (52083, 'fie'),\n",
       " (52084, 'reentered'),\n",
       " (30574, 'fin'),\n",
       " (52085, 'doctresses'),\n",
       " (52086, 'fil'),\n",
       " (12606, 'zucker'),\n",
       " (31931, 'ached'),\n",
       " (52088, 'counsil'),\n",
       " (52089, 'paterfamilias'),\n",
       " (13885, 'songwriter'),\n",
       " (34715, 'shivam'),\n",
       " (9654, 'hurting'),\n",
       " (299, 'effects'),\n",
       " (52090, 'slauther'),\n",
       " (52091, \"'flame'\"),\n",
       " (52092, 'sommerset'),\n",
       " (52093, 'interwhined'),\n",
       " (27638, 'whacking'),\n",
       " (52094, 'bartok'),\n",
       " (8775, 'barton'),\n",
       " (21909, 'frewer'),\n",
       " (52095, \"fi'\"),\n",
       " (6192, 'ingrid'),\n",
       " (30575, 'stribor'),\n",
       " (52096, 'approporiately'),\n",
       " (52097, 'wobblyhand'),\n",
       " (52098, 'tantalisingly'),\n",
       " (52099, 'ankylosaurus'),\n",
       " (17634, 'parasites'),\n",
       " (52100, 'childen'),\n",
       " (52101, \"jenkins'\"),\n",
       " (52102, 'metafiction'),\n",
       " (17635, 'golem'),\n",
       " (40860, 'indiscretion'),\n",
       " (23383, \"reeves'\"),\n",
       " (57781, \"inamorata's\"),\n",
       " (52104, 'brittannica'),\n",
       " (7916, 'adapt'),\n",
       " (30576, \"russo's\"),\n",
       " (48246, 'guitarists'),\n",
       " (10553, 'abbott'),\n",
       " (40861, 'abbots'),\n",
       " (17649, 'lanisha'),\n",
       " (40863, 'magickal'),\n",
       " (52105, 'mattter'),\n",
       " (52106, \"'willy\"),\n",
       " (34716, 'pumpkins'),\n",
       " (52107, 'stuntpeople'),\n",
       " (30577, 'estimate'),\n",
       " (40864, 'ugghhh'),\n",
       " (11309, 'gameplay'),\n",
       " (52108, \"wern't\"),\n",
       " (40865, \"n'sync\"),\n",
       " (16117, 'sickeningly'),\n",
       " (40866, 'chiara'),\n",
       " (4011, 'disturbed'),\n",
       " (40867, 'portmanteau'),\n",
       " (52109, 'ineffectively'),\n",
       " (82143, \"duchonvey's\"),\n",
       " (37519, \"nasty'\"),\n",
       " (1285, 'purpose'),\n",
       " (52112, 'lazers'),\n",
       " (28105, 'lightened'),\n",
       " (52113, 'kaliganj'),\n",
       " (52114, 'popularism'),\n",
       " (18511, \"damme's\"),\n",
       " (30578, 'stylistics'),\n",
       " (52115, 'mindgaming'),\n",
       " (46449, 'spoilerish'),\n",
       " (52117, \"'corny'\"),\n",
       " (34718, 'boerner'),\n",
       " (6792, 'olds'),\n",
       " (52118, 'bakelite'),\n",
       " (27639, 'renovated'),\n",
       " (27640, 'forrester'),\n",
       " (52119, \"lumiere's\"),\n",
       " (52024, 'gaskets'),\n",
       " (884, 'needed'),\n",
       " (34719, 'smight'),\n",
       " (1297, 'master'),\n",
       " (25905, \"edie's\"),\n",
       " (40868, 'seeber'),\n",
       " (52120, 'hiya'),\n",
       " (52121, 'fuzziness'),\n",
       " (14897, 'genesis'),\n",
       " (12607, 'rewards'),\n",
       " (30579, 'enthrall'),\n",
       " (40869, \"'about\"),\n",
       " (52122, \"recollection's\"),\n",
       " (11039, 'mutilated'),\n",
       " (52123, 'fatherlands'),\n",
       " (52124, \"fischer's\"),\n",
       " (5399, 'positively'),\n",
       " (34705, '270'),\n",
       " (34720, 'ahmed'),\n",
       " (9836, 'zatoichi'),\n",
       " (13886, 'bannister'),\n",
       " (52127, 'anniversaries'),\n",
       " (30580, \"helm's\"),\n",
       " (52128, \"'work'\"),\n",
       " (34721, 'exclaimed'),\n",
       " (52129, \"'unfunny'\"),\n",
       " (52029, '274'),\n",
       " (544, 'feeling'),\n",
       " (52131, \"wanda's\"),\n",
       " (33266, 'dolan'),\n",
       " (52133, '278'),\n",
       " (52134, 'peacoat'),\n",
       " (40870, 'brawny'),\n",
       " (40871, 'mishra'),\n",
       " (40872, 'worlders'),\n",
       " (52135, 'protags'),\n",
       " (52136, 'skullcap'),\n",
       " (57596, 'dastagir'),\n",
       " (5622, 'affairs'),\n",
       " (7799, 'wholesome'),\n",
       " (52137, 'hymen'),\n",
       " (25246, 'paramedics'),\n",
       " (52138, 'unpersons'),\n",
       " (52139, 'heavyarms'),\n",
       " (52140, 'affaire'),\n",
       " (52141, 'coulisses'),\n",
       " (40873, 'hymer'),\n",
       " (52142, 'kremlin'),\n",
       " (30581, 'shipments'),\n",
       " (52143, 'pixilated'),\n",
       " (30582, \"'00s\"),\n",
       " (18512, 'diminishing'),\n",
       " (1357, 'cinematic'),\n",
       " (14898, 'resonates'),\n",
       " (40874, 'simplify'),\n",
       " (40875, \"nature'\"),\n",
       " (40876, 'temptresses'),\n",
       " (16822, 'reverence'),\n",
       " (19502, 'resonated'),\n",
       " (34722, 'dailey'),\n",
       " (52144, '2\\x85'),\n",
       " (27641, 'treize'),\n",
       " (52145, 'majo'),\n",
       " (21910, 'kiya'),\n",
       " (52146, 'woolnough'),\n",
       " (39797, 'thanatos'),\n",
       " (35731, 'sandoval'),\n",
       " (40879, 'dorama'),\n",
       " (52147, \"o'shaughnessy\"),\n",
       " (4988, 'tech'),\n",
       " (32018, 'fugitives'),\n",
       " (30583, 'teck'),\n",
       " (76125, \"'e'\"),\n",
       " (40881, 'doesn’t'),\n",
       " (52149, 'purged'),\n",
       " (657, 'saying'),\n",
       " (41095, \"martians'\"),\n",
       " (23418, 'norliss'),\n",
       " (27642, 'dickey'),\n",
       " (52152, 'dicker'),\n",
       " (52153, \"'sependipity\"),\n",
       " (8422, 'padded'),\n",
       " (57792, 'ordell'),\n",
       " (40882, \"sturges'\"),\n",
       " (52154, 'independentcritics'),\n",
       " (5745, 'tempted'),\n",
       " (34724, \"atkinson's\"),\n",
       " (25247, 'hounded'),\n",
       " (52155, 'apace'),\n",
       " (15494, 'clicked'),\n",
       " (30584, \"'humor'\"),\n",
       " (17177, \"martino's\"),\n",
       " (52156, \"'supporting\"),\n",
       " (52032, 'warmongering'),\n",
       " (34725, \"zemeckis's\"),\n",
       " (21911, 'lube'),\n",
       " (52157, 'shocky'),\n",
       " (7476, 'plate'),\n",
       " (40883, 'plata'),\n",
       " (40884, 'sturgess'),\n",
       " (40885, \"nerds'\"),\n",
       " (20600, 'plato'),\n",
       " (34726, 'plath'),\n",
       " (40886, 'platt'),\n",
       " (52159, 'mcnab'),\n",
       " (27643, 'clumsiness'),\n",
       " (3899, 'altogether'),\n",
       " (42584, 'massacring'),\n",
       " (52160, 'bicenntinial'),\n",
       " (40887, 'skaal'),\n",
       " (14360, 'droning'),\n",
       " (8776, 'lds'),\n",
       " (21912, 'jaguar'),\n",
       " (34727, \"cale's\"),\n",
       " (1777, 'nicely'),\n",
       " (4588, 'mummy'),\n",
       " (18513, \"lot's\"),\n",
       " (10086, 'patch'),\n",
       " (50202, 'kerkhof'),\n",
       " (52161, \"leader's\"),\n",
       " (27644, \"'movie\"),\n",
       " (52162, 'uncomfirmed'),\n",
       " (40888, 'heirloom'),\n",
       " (47360, 'wrangle'),\n",
       " (52163, 'emotion\\x85'),\n",
       " (52164, \"'stargate'\"),\n",
       " (40889, 'pinoy'),\n",
       " (40890, 'conchatta'),\n",
       " (41128, 'broeke'),\n",
       " (40891, 'advisedly'),\n",
       " (17636, \"barker's\"),\n",
       " (52166, 'descours'),\n",
       " (772, 'lots'),\n",
       " (9259, 'lotr'),\n",
       " (9879, 'irs'),\n",
       " (52167, 'lott'),\n",
       " (40892, 'xvi'),\n",
       " (34728, 'irk'),\n",
       " (52168, 'irl'),\n",
       " (6887, 'ira'),\n",
       " (21913, 'belzer'),\n",
       " (52169, 'irc'),\n",
       " (27645, 'ire'),\n",
       " (40893, 'requisites'),\n",
       " (7693, 'discipline'),\n",
       " (52961, 'lyoko'),\n",
       " (11310, 'extend'),\n",
       " (873, 'nature'),\n",
       " (52170, \"'dickie'\"),\n",
       " (40894, 'optimist'),\n",
       " (30586, 'lapping'),\n",
       " (3900, 'superficial'),\n",
       " (52171, 'vestment'),\n",
       " (2823, 'extent'),\n",
       " (52172, 'tendons'),\n",
       " (52173, \"heller's\"),\n",
       " (52174, 'quagmires'),\n",
       " (52175, 'miyako'),\n",
       " (20601, 'moocow'),\n",
       " (52176, \"coles'\"),\n",
       " (40895, 'lookit'),\n",
       " (52177, 'ravenously'),\n",
       " (40896, 'levitating'),\n",
       " (52178, 'perfunctorily'),\n",
       " (30587, 'lookin'),\n",
       " (40898, \"lot'\"),\n",
       " (52179, 'lookie'),\n",
       " (34870, 'fearlessly'),\n",
       " (52181, 'libyan'),\n",
       " (40899, 'fondles'),\n",
       " (35714, 'gopher'),\n",
       " (40901, 'wearying'),\n",
       " (52182, \"nz's\"),\n",
       " (27646, 'minuses'),\n",
       " (52183, 'puposelessly'),\n",
       " (52184, 'shandling'),\n",
       " (31268, 'decapitates'),\n",
       " (11929, 'humming'),\n",
       " (40902, \"'nother\"),\n",
       " (21914, 'smackdown'),\n",
       " (30588, 'underdone'),\n",
       " (40903, 'frf'),\n",
       " (52185, 'triviality'),\n",
       " (25248, 'fro'),\n",
       " (8777, 'bothers'),\n",
       " (52186, \"'kensington\"),\n",
       " (73, 'much'),\n",
       " (34730, 'muco'),\n",
       " (22615, 'wiseguy'),\n",
       " (27648, \"richie's\"),\n",
       " (40904, 'tonino'),\n",
       " (52187, 'unleavened'),\n",
       " (11587, 'fry'),\n",
       " (40905, \"'tv'\"),\n",
       " (40906, 'toning'),\n",
       " (14361, 'obese'),\n",
       " (30589, 'sensationalized'),\n",
       " (40907, 'spiv'),\n",
       " (6259, 'spit'),\n",
       " (7364, 'arkin'),\n",
       " (21915, 'charleton'),\n",
       " (16823, 'jeon'),\n",
       " (21916, 'boardroom'),\n",
       " (4989, 'doubts'),\n",
       " (3084, 'spin'),\n",
       " (53083, 'hepo'),\n",
       " (27649, 'wildcat'),\n",
       " (10584, 'venoms'),\n",
       " (52191, 'misconstrues'),\n",
       " (18514, 'mesmerising'),\n",
       " (40908, 'misconstrued'),\n",
       " (52192, 'rescinds'),\n",
       " (52193, 'prostrate'),\n",
       " (40909, 'majid'),\n",
       " (16479, 'climbed'),\n",
       " (34731, 'canoeing'),\n",
       " (52195, 'majin'),\n",
       " (57804, 'animie'),\n",
       " (40910, 'sylke'),\n",
       " (14899, 'conditioned'),\n",
       " (40911, 'waddell'),\n",
       " (52196, '3\\x85'),\n",
       " (41188, 'hyperdrive'),\n",
       " (34732, 'conditioner'),\n",
       " (53153, 'bricklayer'),\n",
       " (2576, 'hong'),\n",
       " (52198, 'memoriam'),\n",
       " (30592, 'inventively'),\n",
       " (25249, \"levant's\"),\n",
       " (20638, 'portobello'),\n",
       " (52200, 'remand'),\n",
       " (19504, 'mummified'),\n",
       " (27650, 'honk'),\n",
       " (19505, 'spews'),\n",
       " (40912, 'visitations'),\n",
       " (52201, 'mummifies'),\n",
       " (25250, 'cavanaugh'),\n",
       " (23385, 'zeon'),\n",
       " (40913, \"jungle's\"),\n",
       " (34733, 'viertel'),\n",
       " (27651, 'frenchmen'),\n",
       " (52202, 'torpedoes'),\n",
       " (52203, 'schlessinger'),\n",
       " (34734, 'torpedoed'),\n",
       " (69876, 'blister'),\n",
       " (52204, 'cinefest'),\n",
       " (34735, 'furlough'),\n",
       " (52205, 'mainsequence'),\n",
       " (40914, 'mentors'),\n",
       " (9094, 'academic'),\n",
       " (20602, 'stillness'),\n",
       " (40915, 'academia'),\n",
       " (52206, 'lonelier'),\n",
       " (52207, 'nibby'),\n",
       " (52208, \"losers'\"),\n",
       " (40916, 'cineastes'),\n",
       " (4449, 'corporate'),\n",
       " (40917, 'massaging'),\n",
       " (30593, 'bellow'),\n",
       " (19506, 'absurdities'),\n",
       " (53241, 'expetations'),\n",
       " (40918, 'nyfiken'),\n",
       " (75638, 'mehras'),\n",
       " (52209, 'lasse'),\n",
       " (52210, 'visability'),\n",
       " (33946, 'militarily'),\n",
       " (52211, \"elder'\"),\n",
       " (19023, 'gainsbourg'),\n",
       " (20603, 'hah'),\n",
       " (13420, 'hai'),\n",
       " (34736, 'haj'),\n",
       " (25251, 'hak'),\n",
       " (4311, 'hal'),\n",
       " (4892, 'ham'),\n",
       " (53259, 'duffer'),\n",
       " (52213, 'haa'),\n",
       " (66, 'had'),\n",
       " (11930, 'advancement'),\n",
       " (16825, 'hag'),\n",
       " (25252, \"hand'\"),\n",
       " (13421, 'hay'),\n",
       " (20604, 'mcnamara'),\n",
       " (52214, \"mozart's\"),\n",
       " (30731, 'duffel'),\n",
       " (30594, 'haq'),\n",
       " (13887, 'har'),\n",
       " (44, 'has'),\n",
       " (2401, 'hat'),\n",
       " (40919, 'hav'),\n",
       " (30595, 'haw'),\n",
       " (52215, 'figtings'),\n",
       " (15495, 'elders'),\n",
       " (52216, 'underpanted'),\n",
       " (52217, 'pninson'),\n",
       " (27652, 'unequivocally'),\n",
       " (23673, \"barbara's\"),\n",
       " (52219, \"bello'\"),\n",
       " (12997, 'indicative'),\n",
       " (40920, 'yawnfest'),\n",
       " (52220, 'hexploitation'),\n",
       " (52221, \"loder's\"),\n",
       " (27653, 'sleuthing'),\n",
       " (32622, \"justin's\"),\n",
       " (52222, \"'ball\"),\n",
       " (52223, \"'summer\"),\n",
       " (34935, \"'demons'\"),\n",
       " (52225, \"mormon's\"),\n",
       " (34737, \"laughton's\"),\n",
       " (52226, 'debell'),\n",
       " (39724, 'shipyard'),\n",
       " (30597, 'unabashedly'),\n",
       " (40401, 'disks'),\n",
       " (2290, 'crowd'),\n",
       " (10087, 'crowe'),\n",
       " (56434, \"vancouver's\"),\n",
       " (34738, 'mosques'),\n",
       " (6627, 'crown'),\n",
       " (52227, 'culpas'),\n",
       " (27654, 'crows'),\n",
       " (53344, 'surrell'),\n",
       " (52229, 'flowless'),\n",
       " (52230, 'sheirk'),\n",
       " (40923, \"'three\"),\n",
       " (52231, \"peterson'\"),\n",
       " (52232, 'ooverall'),\n",
       " (40924, 'perchance'),\n",
       " (1321, 'bottom'),\n",
       " (53363, 'chabert'),\n",
       " (52233, 'sneha'),\n",
       " (13888, 'inhuman'),\n",
       " (52234, 'ichii'),\n",
       " (52235, 'ursla'),\n",
       " (30598, 'completly'),\n",
       " (40925, 'moviedom'),\n",
       " (52236, 'raddick'),\n",
       " (51995, 'brundage'),\n",
       " (40926, 'brigades'),\n",
       " (1181, 'starring'),\n",
       " (52237, \"'goal'\"),\n",
       " (52238, 'caskets'),\n",
       " (52239, 'willcock'),\n",
       " (52240, \"threesome's\"),\n",
       " (52241, \"mosque'\"),\n",
       " (52242, \"cover's\"),\n",
       " (17637, 'spaceships'),\n",
       " (40927, 'anomalous'),\n",
       " (27655, 'ptsd'),\n",
       " (52243, 'shirdan'),\n",
       " (21962, 'obscenity'),\n",
       " (30599, 'lemmings'),\n",
       " (30600, 'duccio'),\n",
       " (52244, \"levene's\"),\n",
       " (52245, \"'gorby'\"),\n",
       " (25255, \"teenager's\"),\n",
       " (5340, 'marshall'),\n",
       " (9095, 'honeymoon'),\n",
       " (3231, 'shoots'),\n",
       " (12258, 'despised'),\n",
       " (52246, 'okabasho'),\n",
       " (8289, 'fabric'),\n",
       " (18515, 'cannavale'),\n",
       " (3537, 'raped'),\n",
       " (52247, \"tutt's\"),\n",
       " (17638, 'grasping'),\n",
       " (18516, 'despises'),\n",
       " (40928, \"thief's\"),\n",
       " (8926, 'rapes'),\n",
       " (52248, 'raper'),\n",
       " (27656, \"eyre'\"),\n",
       " (52249, 'walchek'),\n",
       " (23386, \"elmo's\"),\n",
       " (40929, 'perfumes'),\n",
       " (21918, 'spurting'),\n",
       " (52250, \"exposition'\\x85\"),\n",
       " (52251, 'denoting'),\n",
       " (34740, 'thesaurus'),\n",
       " (40930, \"shoot'\"),\n",
       " (49759, 'bonejack'),\n",
       " (52253, 'simpsonian'),\n",
       " (30601, 'hebetude'),\n",
       " (34741, \"hallow's\"),\n",
       " (52254, 'desperation\\x85'),\n",
       " (34742, 'incinerator'),\n",
       " (10308, 'congratulations'),\n",
       " (52255, 'humbled'),\n",
       " (5924, \"else's\"),\n",
       " (40845, 'trelkovski'),\n",
       " (52256, \"rape'\"),\n",
       " (59386, \"'chapters'\"),\n",
       " (52257, '1600s'),\n",
       " (7253, 'martian'),\n",
       " (25256, 'nicest'),\n",
       " (52259, 'eyred'),\n",
       " (9457, 'passenger'),\n",
       " (6041, 'disgrace'),\n",
       " (52260, 'moderne'),\n",
       " (5120, 'barrymore'),\n",
       " (52261, 'yankovich'),\n",
       " (40931, 'moderns'),\n",
       " (52262, 'studliest'),\n",
       " (52263, 'bedsheet'),\n",
       " (14900, 'decapitation'),\n",
       " (52264, 'slurring'),\n",
       " (52265, \"'nunsploitation'\"),\n",
       " (34743, \"'character'\"),\n",
       " (9880, 'cambodia'),\n",
       " (52266, 'rebelious'),\n",
       " (27657, 'pasadena'),\n",
       " (40932, 'crowne'),\n",
       " (52267, \"'bedchamber\"),\n",
       " (52268, 'conjectural'),\n",
       " (52269, 'appologize'),\n",
       " (52270, 'halfassing'),\n",
       " (57816, 'paycheque'),\n",
       " (20606, 'palms'),\n",
       " (52271, \"'islands\"),\n",
       " (40933, 'hawked'),\n",
       " (21919, 'palme'),\n",
       " (40934, 'conservatively'),\n",
       " (64007, 'larp'),\n",
       " (5558, 'palma'),\n",
       " (21920, 'smelling'),\n",
       " (12998, 'aragorn'),\n",
       " (52272, 'hawker'),\n",
       " (52273, 'hawkes'),\n",
       " (3975, 'explosions'),\n",
       " (8059, 'loren'),\n",
       " (52274, \"pyle's\"),\n",
       " (6704, 'shootout'),\n",
       " (18517, \"mike's\"),\n",
       " (52275, \"driscoll's\"),\n",
       " (40935, 'cogsworth'),\n",
       " (52276, \"britian's\"),\n",
       " (34744, 'childs'),\n",
       " (52277, \"portrait's\"),\n",
       " (3626, 'chain'),\n",
       " (2497, 'whoever'),\n",
       " (52278, 'puttered'),\n",
       " (52279, 'childe'),\n",
       " (52280, 'maywether'),\n",
       " (3036, 'chair'),\n",
       " (52281, \"rance's\"),\n",
       " (34745, 'machu'),\n",
       " (4517, 'ballet'),\n",
       " (34746, 'grapples'),\n",
       " (76152, 'summerize'),\n",
       " (30603, 'freelance'),\n",
       " (52283, \"andrea's\"),\n",
       " (52284, '\\x91very'),\n",
       " (45879, 'coolidge'),\n",
       " (18518, 'mache'),\n",
       " (52285, 'balled'),\n",
       " (40937, 'grappled'),\n",
       " (18519, 'macha'),\n",
       " (21921, 'underlining'),\n",
       " (5623, 'macho'),\n",
       " (19507, 'oversight'),\n",
       " (25257, 'machi'),\n",
       " (11311, 'verbally'),\n",
       " (21922, 'tenacious'),\n",
       " (40938, 'windshields'),\n",
       " (18557, 'paychecks'),\n",
       " (3396, 'jerk'),\n",
       " (11931, \"good'\"),\n",
       " (34748, 'prancer'),\n",
       " (21923, 'prances'),\n",
       " (52286, 'olympus'),\n",
       " (21924, 'lark'),\n",
       " (10785, 'embark'),\n",
       " (7365, 'gloomy'),\n",
       " (52287, 'jehaan'),\n",
       " (52288, 'turaqui'),\n",
       " (20607, \"child'\"),\n",
       " (2894, 'locked'),\n",
       " (52289, 'pranced'),\n",
       " (2588, 'exact'),\n",
       " (52290, 'unattuned'),\n",
       " (783, 'minute'),\n",
       " (16118, 'skewed'),\n",
       " (40940, 'hodgins'),\n",
       " (34749, 'skewer'),\n",
       " (52291, 'think\\x85'),\n",
       " (38765, 'rosenstein'),\n",
       " (52292, 'helmit'),\n",
       " (34750, 'wrestlemanias'),\n",
       " (16826, 'hindered'),\n",
       " (30604, \"martha's\"),\n",
       " (52293, 'cheree'),\n",
       " (52294, \"pluckin'\"),\n",
       " (40941, 'ogles'),\n",
       " (11932, 'heavyweight'),\n",
       " (82190, 'aada'),\n",
       " (11312, 'chopping'),\n",
       " (61534, 'strongboy'),\n",
       " (41342, 'hegemonic'),\n",
       " (40942, 'adorns'),\n",
       " (41346, 'xxth'),\n",
       " (34751, 'nobuhiro'),\n",
       " (52298, 'capitães'),\n",
       " (52299, 'kavogianni'),\n",
       " (13422, 'antwerp'),\n",
       " (6538, 'celebrated'),\n",
       " (52300, 'roarke'),\n",
       " (40943, 'baggins'),\n",
       " (31270, 'cheeseburgers'),\n",
       " (52301, 'matras'),\n",
       " (52302, \"nineties'\"),\n",
       " (52303, \"'craig'\"),\n",
       " (12999, 'celebrates'),\n",
       " (3383, 'unintentionally'),\n",
       " (14362, 'drafted'),\n",
       " (52304, 'climby'),\n",
       " (52305, '303'),\n",
       " (18520, 'oldies'),\n",
       " (9096, 'climbs'),\n",
       " (9655, 'honour'),\n",
       " (34752, 'plucking'),\n",
       " (30074, '305'),\n",
       " (5514, 'address'),\n",
       " (40944, 'menjou'),\n",
       " (42592, \"'freak'\"),\n",
       " (19508, 'dwindling'),\n",
       " (9458, 'benson'),\n",
       " (52307, 'white’s'),\n",
       " (40945, 'shamelessness'),\n",
       " (21925, 'impacted'),\n",
       " (52308, 'upatz'),\n",
       " (3840, 'cusack'),\n",
       " (37567, \"flavia's\"),\n",
       " (52309, 'effette'),\n",
       " (34753, 'influx'),\n",
       " (52310, 'boooooooo'),\n",
       " (52311, 'dimitrova'),\n",
       " (13423, 'houseman'),\n",
       " (25259, 'bigas'),\n",
       " (52312, 'boylen'),\n",
       " (52313, 'phillipenes'),\n",
       " (40946, 'fakery'),\n",
       " (27658, \"grandpa's\"),\n",
       " (27659, 'darnell'),\n",
       " (19509, 'undergone'),\n",
       " (52315, 'handbags'),\n",
       " (21926, 'perished'),\n",
       " (37778, 'pooped'),\n",
       " (27660, 'vigour'),\n",
       " (3627, 'opposed'),\n",
       " (52316, 'etude'),\n",
       " (11799, \"caine's\"),\n",
       " (52317, 'doozers'),\n",
       " (34754, 'photojournals'),\n",
       " (52318, 'perishes'),\n",
       " (34755, 'constrains'),\n",
       " (40948, 'migenes'),\n",
       " (30605, 'consoled'),\n",
       " (16827, 'alastair'),\n",
       " (52319, 'wvs'),\n",
       " (52320, 'ooooooh'),\n",
       " (34756, 'approving'),\n",
       " (40949, 'consoles'),\n",
       " (52064, 'disparagement'),\n",
       " (52322, 'futureistic'),\n",
       " (52323, 'rebounding'),\n",
       " (52324, \"'date\"),\n",
       " (52325, 'gregoire'),\n",
       " (21927, 'rutherford'),\n",
       " (34757, 'americanised'),\n",
       " (82196, 'novikov'),\n",
       " (1042, 'following'),\n",
       " (34758, 'munroe'),\n",
       " (52326, \"morita'\"),\n",
       " (52327, 'christenssen'),\n",
       " (23106, 'oatmeal'),\n",
       " (25260, 'fossey'),\n",
       " (40950, 'livered'),\n",
       " (13000, 'listens'),\n",
       " (76164, \"'marci\"),\n",
       " (52330, \"otis's\"),\n",
       " (23387, 'thanking'),\n",
       " (16019, 'maude'),\n",
       " (34759, 'extensions'),\n",
       " (52332, 'ameteurish'),\n",
       " (52333, \"commender's\"),\n",
       " (27661, 'agricultural'),\n",
       " (4518, 'convincingly'),\n",
       " (17639, 'fueled'),\n",
       " (54014, 'mahattan'),\n",
       " (40952, \"paris's\"),\n",
       " (52336, 'vulkan'),\n",
       " (52337, 'stapes'),\n",
       " (52338, 'odysessy'),\n",
       " (12259, 'harmon'),\n",
       " (4252, 'surfing'),\n",
       " (23494, 'halloran'),\n",
       " (49580, 'unbelieveably'),\n",
       " (52339, \"'offed'\"),\n",
       " (30607, 'quadrant'),\n",
       " (19510, 'inhabiting'),\n",
       " (34760, 'nebbish'),\n",
       " (40953, 'forebears'),\n",
       " (34761, 'skirmish'),\n",
       " (52340, 'ocassionally'),\n",
       " (52341, \"'resist\"),\n",
       " (21928, 'impactful'),\n",
       " (52342, 'spicier'),\n",
       " (40954, 'touristy'),\n",
       " (52343, \"'football'\"),\n",
       " (40955, 'webpage'),\n",
       " (52345, 'exurbia'),\n",
       " (52346, 'jucier'),\n",
       " (14901, 'professors'),\n",
       " (34762, 'structuring'),\n",
       " (30608, 'jig'),\n",
       " (40956, 'overlord'),\n",
       " (25261, 'disconnect'),\n",
       " (82201, 'sniffle'),\n",
       " (40957, 'slimeball'),\n",
       " (40958, 'jia'),\n",
       " (16828, 'milked'),\n",
       " (40959, 'banjoes'),\n",
       " (1237, 'jim'),\n",
       " (52348, 'workforces'),\n",
       " (52349, 'jip'),\n",
       " (52350, 'rotweiller'),\n",
       " (34763, 'mundaneness'),\n",
       " (52351, \"'ninja'\"),\n",
       " (11040, \"dead'\"),\n",
       " (40960, \"cipriani's\"),\n",
       " (20608, 'modestly'),\n",
       " (52352, \"professor'\"),\n",
       " (40961, 'shacked'),\n",
       " (34764, 'bashful'),\n",
       " (23388, 'sorter'),\n",
       " (16120, 'overpowering'),\n",
       " (18521, 'workmanlike'),\n",
       " (27662, 'henpecked'),\n",
       " (18522, 'sorted'),\n",
       " (52354, \"jōb's\"),\n",
       " (52355, \"'always\"),\n",
       " (34765, \"'baptists\"),\n",
       " (52356, 'dreamcatchers'),\n",
       " (52357, \"'silence'\"),\n",
       " (21929, 'hickory'),\n",
       " (52358, 'fun\\x97yet'),\n",
       " (52359, 'breakumentary'),\n",
       " (15496, 'didn'),\n",
       " (52360, 'didi'),\n",
       " (52361, 'pealing'),\n",
       " (40962, 'dispite'),\n",
       " (25262, \"italy's\"),\n",
       " (21930, 'instability'),\n",
       " (6539, 'quarter'),\n",
       " (12608, 'quartet'),\n",
       " (52362, 'padmé'),\n",
       " (52363, \"'bleedmedry\"),\n",
       " (52364, 'pahalniuk'),\n",
       " (52365, 'honduras'),\n",
       " (10786, 'bursting'),\n",
       " (41465, \"pablo's\"),\n",
       " (52367, 'irremediably'),\n",
       " (40963, 'presages'),\n",
       " (57832, 'bowlegged'),\n",
       " (65183, 'dalip'),\n",
       " (6260, 'entering'),\n",
       " (76172, 'newsradio'),\n",
       " (54150, 'presaged'),\n",
       " (27663, \"giallo's\"),\n",
       " (40964, 'bouyant'),\n",
       " (52368, 'amerterish'),\n",
       " (18523, 'rajni'),\n",
       " (30610, 'leeves'),\n",
       " (34767, 'macauley'),\n",
       " (612, 'seriously'),\n",
       " (52369, 'sugercoma'),\n",
       " (52370, 'grimstead'),\n",
       " (52371, \"'fairy'\"),\n",
       " (30611, 'zenda'),\n",
       " (52372, \"'twins'\"),\n",
       " (17640, 'realisation'),\n",
       " (27664, 'highsmith'),\n",
       " (7817, 'raunchy'),\n",
       " (40965, 'incentives'),\n",
       " (52374, 'flatson'),\n",
       " (35097, 'snooker'),\n",
       " (16829, 'crazies'),\n",
       " (14902, 'crazier'),\n",
       " (7094, 'grandma'),\n",
       " (52375, 'napunsaktha'),\n",
       " (30612, 'workmanship'),\n",
       " (52376, 'reisner'),\n",
       " (61306, \"sanford's\"),\n",
       " (52377, '\\x91doña'),\n",
       " (6108, 'modest'),\n",
       " (19153, \"everything's\"),\n",
       " (40966, 'hamer'),\n",
       " (52379, \"couldn't'\"),\n",
       " (13001, 'quibble'),\n",
       " (52380, 'socking'),\n",
       " (21931, 'tingler'),\n",
       " (52381, 'gutman'),\n",
       " (40967, 'lachlan'),\n",
       " (52382, 'tableaus'),\n",
       " (52383, 'headbanger'),\n",
       " (2847, 'spoken'),\n",
       " (34768, 'cerebrally'),\n",
       " (23490, \"'road\"),\n",
       " (21932, 'tableaux'),\n",
       " (40968, \"proust's\"),\n",
       " (40969, 'periodical'),\n",
       " (52385, \"shoveller's\"),\n",
       " (25263, 'tamara'),\n",
       " (17641, 'affords'),\n",
       " (3249, 'concert'),\n",
       " (87955, \"yara's\"),\n",
       " (52386, 'someome'),\n",
       " (8424, 'lingering'),\n",
       " (41511, \"abraham's\"),\n",
       " (34769, 'beesley'),\n",
       " (34770, 'cherbourg'),\n",
       " (28624, 'kagan'),\n",
       " (9097, 'snatch'),\n",
       " (9260, \"miyazaki's\"),\n",
       " (25264, 'absorbs'),\n",
       " (40970, \"koltai's\"),\n",
       " (64027, 'tingled'),\n",
       " (19511, 'crossroads'),\n",
       " (16121, 'rehab'),\n",
       " (52389, 'falworth'),\n",
       " (52390, 'sequals'),\n",
       " ...]"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "[(value, key) for (key, value) in word_index.items()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[2, 3, 3, 4, 5, 7, 7, 8, 9]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "sorted([7,4,5,3,7,9,8,2,3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# ranks will be a sorted list of (value, key) pairs\n",
    "ranks = sorted([(value, key) for (key, value) in word_index.items()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(1, 'the'),\n",
       " (2, 'and'),\n",
       " (3, 'a'),\n",
       " (4, 'of'),\n",
       " (5, 'to'),\n",
       " (6, 'is'),\n",
       " (7, 'br'),\n",
       " (8, 'in'),\n",
       " (9, 'it'),\n",
       " (10, 'i'),\n",
       " (11, 'this'),\n",
       " (12, 'that'),\n",
       " (13, 'was'),\n",
       " (14, 'as'),\n",
       " (15, 'for'),\n",
       " (16, 'with'),\n",
       " (17, 'movie'),\n",
       " (18, 'but'),\n",
       " (19, 'film'),\n",
       " (20, 'on'),\n",
       " (21, 'not'),\n",
       " (22, 'you'),\n",
       " (23, 'are'),\n",
       " (24, 'his'),\n",
       " (25, 'have'),\n",
       " (26, 'he'),\n",
       " (27, 'be'),\n",
       " (28, 'one'),\n",
       " (29, 'all'),\n",
       " (30, 'at'),\n",
       " (31, 'by'),\n",
       " (32, 'an'),\n",
       " (33, 'they'),\n",
       " (34, 'who'),\n",
       " (35, 'so'),\n",
       " (36, 'from'),\n",
       " (37, 'like'),\n",
       " (38, 'her'),\n",
       " (39, 'or'),\n",
       " (40, 'just'),\n",
       " (41, 'about'),\n",
       " (42, \"it's\"),\n",
       " (43, 'out'),\n",
       " (44, 'has'),\n",
       " (45, 'if'),\n",
       " (46, 'some'),\n",
       " (47, 'there'),\n",
       " (48, 'what'),\n",
       " (49, 'good'),\n",
       " (50, 'more'),\n",
       " (51, 'when'),\n",
       " (52, 'very'),\n",
       " (53, 'up'),\n",
       " (54, 'no'),\n",
       " (55, 'time'),\n",
       " (56, 'she'),\n",
       " (57, 'even'),\n",
       " (58, 'my'),\n",
       " (59, 'would'),\n",
       " (60, 'which'),\n",
       " (61, 'only'),\n",
       " (62, 'story'),\n",
       " (63, 'really'),\n",
       " (64, 'see'),\n",
       " (65, 'their'),\n",
       " (66, 'had'),\n",
       " (67, 'can'),\n",
       " (68, 'were'),\n",
       " (69, 'me'),\n",
       " (70, 'well'),\n",
       " (71, 'than'),\n",
       " (72, 'we'),\n",
       " (73, 'much'),\n",
       " (74, 'been'),\n",
       " (75, 'bad'),\n",
       " (76, 'get'),\n",
       " (77, 'will'),\n",
       " (78, 'do'),\n",
       " (79, 'also'),\n",
       " (80, 'into'),\n",
       " (81, 'people'),\n",
       " (82, 'other'),\n",
       " (83, 'first'),\n",
       " (84, 'great'),\n",
       " (85, 'because'),\n",
       " (86, 'how'),\n",
       " (87, 'him'),\n",
       " (88, 'most'),\n",
       " (89, \"don't\"),\n",
       " (90, 'made'),\n",
       " (91, 'its'),\n",
       " (92, 'then'),\n",
       " (93, 'way'),\n",
       " (94, 'make'),\n",
       " (95, 'them'),\n",
       " (96, 'too'),\n",
       " (97, 'could'),\n",
       " (98, 'any'),\n",
       " (99, 'movies'),\n",
       " (100, 'after'),\n",
       " (101, 'think'),\n",
       " (102, 'characters'),\n",
       " (103, 'watch'),\n",
       " (104, 'two'),\n",
       " (105, 'films'),\n",
       " (106, 'character'),\n",
       " (107, 'seen'),\n",
       " (108, 'many'),\n",
       " (109, 'being'),\n",
       " (110, 'life'),\n",
       " (111, 'plot'),\n",
       " (112, 'never'),\n",
       " (113, 'acting'),\n",
       " (114, 'little'),\n",
       " (115, 'best'),\n",
       " (116, 'love'),\n",
       " (117, 'over'),\n",
       " (118, 'where'),\n",
       " (119, 'did'),\n",
       " (120, 'show'),\n",
       " (121, 'know'),\n",
       " (122, 'off'),\n",
       " (123, 'ever'),\n",
       " (124, 'does'),\n",
       " (125, 'better'),\n",
       " (126, 'your'),\n",
       " (127, 'end'),\n",
       " (128, 'still'),\n",
       " (129, 'man'),\n",
       " (130, 'here'),\n",
       " (131, 'these'),\n",
       " (132, 'say'),\n",
       " (133, 'scene'),\n",
       " (134, 'while'),\n",
       " (135, 'why'),\n",
       " (136, 'scenes'),\n",
       " (137, 'go'),\n",
       " (138, 'such'),\n",
       " (139, 'something'),\n",
       " (140, 'through'),\n",
       " (141, 'should'),\n",
       " (142, 'back'),\n",
       " (143, \"i'm\"),\n",
       " (144, 'real'),\n",
       " (145, 'those'),\n",
       " (146, 'watching'),\n",
       " (147, 'now'),\n",
       " (148, 'though'),\n",
       " (149, \"doesn't\"),\n",
       " (150, 'years'),\n",
       " (151, 'old'),\n",
       " (152, 'thing'),\n",
       " (153, 'actors'),\n",
       " (154, 'work'),\n",
       " (155, '10'),\n",
       " (156, 'before'),\n",
       " (157, 'another'),\n",
       " (158, \"didn't\"),\n",
       " (159, 'new'),\n",
       " (160, 'funny'),\n",
       " (161, 'nothing'),\n",
       " (162, 'actually'),\n",
       " (163, 'makes'),\n",
       " (164, 'director'),\n",
       " (165, 'look'),\n",
       " (166, 'find'),\n",
       " (167, 'going'),\n",
       " (168, 'few'),\n",
       " (169, 'same'),\n",
       " (170, 'part'),\n",
       " (171, 'again'),\n",
       " (172, 'every'),\n",
       " (173, 'lot'),\n",
       " (174, 'cast'),\n",
       " (175, 'us'),\n",
       " (176, 'quite'),\n",
       " (177, 'down'),\n",
       " (178, 'want'),\n",
       " (179, 'world'),\n",
       " (180, 'things'),\n",
       " (181, 'pretty'),\n",
       " (182, 'young'),\n",
       " (183, 'seems'),\n",
       " (184, 'around'),\n",
       " (185, 'got'),\n",
       " (186, 'horror'),\n",
       " (187, 'however'),\n",
       " (188, \"can't\"),\n",
       " (189, 'fact'),\n",
       " (190, 'take'),\n",
       " (191, 'big'),\n",
       " (192, 'enough'),\n",
       " (193, 'long'),\n",
       " (194, 'thought'),\n",
       " (195, \"that's\"),\n",
       " (196, 'both'),\n",
       " (197, 'between'),\n",
       " (198, 'series'),\n",
       " (199, 'give'),\n",
       " (200, 'may'),\n",
       " (201, 'original'),\n",
       " (202, 'own'),\n",
       " (203, 'action'),\n",
       " (204, \"i've\"),\n",
       " (205, 'right'),\n",
       " (206, 'without'),\n",
       " (207, 'always'),\n",
       " (208, 'times'),\n",
       " (209, 'comedy'),\n",
       " (210, 'point'),\n",
       " (211, 'gets'),\n",
       " (212, 'must'),\n",
       " (213, 'come'),\n",
       " (214, 'role'),\n",
       " (215, \"isn't\"),\n",
       " (216, 'saw'),\n",
       " (217, 'almost'),\n",
       " (218, 'interesting'),\n",
       " (219, 'least'),\n",
       " (220, 'family'),\n",
       " (221, 'done'),\n",
       " (222, \"there's\"),\n",
       " (223, 'whole'),\n",
       " (224, 'bit'),\n",
       " (225, 'music'),\n",
       " (226, 'script'),\n",
       " (227, 'far'),\n",
       " (228, 'making'),\n",
       " (229, 'guy'),\n",
       " (230, 'anything'),\n",
       " (231, 'minutes'),\n",
       " (232, 'feel'),\n",
       " (233, 'last'),\n",
       " (234, 'since'),\n",
       " (235, 'might'),\n",
       " (236, 'performance'),\n",
       " (237, \"he's\"),\n",
       " (238, '2'),\n",
       " (239, 'probably'),\n",
       " (240, 'kind'),\n",
       " (241, 'am'),\n",
       " (242, 'away'),\n",
       " (243, 'yet'),\n",
       " (244, 'rather'),\n",
       " (245, 'tv'),\n",
       " (246, 'worst'),\n",
       " (247, 'girl'),\n",
       " (248, 'day'),\n",
       " (249, 'sure'),\n",
       " (250, 'fun'),\n",
       " (251, 'hard'),\n",
       " (252, 'woman'),\n",
       " (253, 'played'),\n",
       " (254, 'each'),\n",
       " (255, 'found'),\n",
       " (256, 'anyone'),\n",
       " (257, 'having'),\n",
       " (258, 'although'),\n",
       " (259, 'especially'),\n",
       " (260, 'our'),\n",
       " (261, 'believe'),\n",
       " (262, 'course'),\n",
       " (263, 'comes'),\n",
       " (264, 'looking'),\n",
       " (265, 'screen'),\n",
       " (266, 'trying'),\n",
       " (267, 'set'),\n",
       " (268, 'goes'),\n",
       " (269, 'looks'),\n",
       " (270, 'place'),\n",
       " (271, 'book'),\n",
       " (272, 'different'),\n",
       " (273, 'put'),\n",
       " (274, 'ending'),\n",
       " (275, 'money'),\n",
       " (276, 'maybe'),\n",
       " (277, 'once'),\n",
       " (278, 'sense'),\n",
       " (279, 'reason'),\n",
       " (280, 'true'),\n",
       " (281, 'actor'),\n",
       " (282, 'everything'),\n",
       " (283, \"wasn't\"),\n",
       " (284, 'shows'),\n",
       " (285, 'dvd'),\n",
       " (286, 'three'),\n",
       " (287, 'worth'),\n",
       " (288, 'year'),\n",
       " (289, 'job'),\n",
       " (290, 'main'),\n",
       " (291, 'someone'),\n",
       " (292, 'together'),\n",
       " (293, 'watched'),\n",
       " (294, 'play'),\n",
       " (295, 'american'),\n",
       " (296, 'plays'),\n",
       " (297, '1'),\n",
       " (298, 'said'),\n",
       " (299, 'effects'),\n",
       " (300, 'later'),\n",
       " (301, 'takes'),\n",
       " (302, 'instead'),\n",
       " (303, 'seem'),\n",
       " (304, 'beautiful'),\n",
       " (305, 'john'),\n",
       " (306, 'himself'),\n",
       " (307, 'version'),\n",
       " (308, 'audience'),\n",
       " (309, 'high'),\n",
       " (310, 'house'),\n",
       " (311, 'night'),\n",
       " (312, 'during'),\n",
       " (313, 'everyone'),\n",
       " (314, 'left'),\n",
       " (315, 'special'),\n",
       " (316, 'seeing'),\n",
       " (317, 'half'),\n",
       " (318, 'excellent'),\n",
       " (319, 'wife'),\n",
       " (320, 'star'),\n",
       " (321, 'shot'),\n",
       " (322, 'war'),\n",
       " (323, 'idea'),\n",
       " (324, 'nice'),\n",
       " (325, 'black'),\n",
       " (326, 'less'),\n",
       " (327, 'mind'),\n",
       " (328, 'simply'),\n",
       " (329, 'read'),\n",
       " (330, 'second'),\n",
       " (331, 'else'),\n",
       " (332, \"you're\"),\n",
       " (333, 'father'),\n",
       " (334, 'fan'),\n",
       " (335, 'poor'),\n",
       " (336, 'help'),\n",
       " (337, 'completely'),\n",
       " (338, 'death'),\n",
       " (339, '3'),\n",
       " (340, 'used'),\n",
       " (341, 'home'),\n",
       " (342, 'either'),\n",
       " (343, 'short'),\n",
       " (344, 'line'),\n",
       " (345, 'given'),\n",
       " (346, 'men'),\n",
       " (347, 'top'),\n",
       " (348, 'dead'),\n",
       " (349, 'budget'),\n",
       " (350, 'try'),\n",
       " (351, 'performances'),\n",
       " (352, 'wrong'),\n",
       " (353, 'classic'),\n",
       " (354, 'boring'),\n",
       " (355, 'enjoy'),\n",
       " (356, 'need'),\n",
       " (357, 'rest'),\n",
       " (358, 'use'),\n",
       " (359, 'kids'),\n",
       " (360, 'hollywood'),\n",
       " (361, 'low'),\n",
       " (362, 'production'),\n",
       " (363, 'until'),\n",
       " (364, 'along'),\n",
       " (365, 'full'),\n",
       " (366, 'friends'),\n",
       " (367, 'camera'),\n",
       " (368, 'truly'),\n",
       " (369, 'women'),\n",
       " (370, 'awful'),\n",
       " (371, 'video'),\n",
       " (372, 'next'),\n",
       " (373, 'tell'),\n",
       " (374, 'remember'),\n",
       " (375, 'couple'),\n",
       " (376, 'stupid'),\n",
       " (377, 'start'),\n",
       " (378, 'stars'),\n",
       " (379, 'perhaps'),\n",
       " (380, 'sex'),\n",
       " (381, 'mean'),\n",
       " (382, 'came'),\n",
       " (383, 'recommend'),\n",
       " (384, 'let'),\n",
       " (385, 'moments'),\n",
       " (386, 'wonderful'),\n",
       " (387, 'episode'),\n",
       " (388, 'understand'),\n",
       " (389, 'small'),\n",
       " (390, 'face'),\n",
       " (391, 'terrible'),\n",
       " (392, 'playing'),\n",
       " (393, 'school'),\n",
       " (394, 'getting'),\n",
       " (395, 'written'),\n",
       " (396, 'doing'),\n",
       " (397, 'often'),\n",
       " (398, 'keep'),\n",
       " (399, 'early'),\n",
       " (400, 'name'),\n",
       " (401, 'perfect'),\n",
       " (402, 'style'),\n",
       " (403, 'human'),\n",
       " (404, 'definitely'),\n",
       " (405, 'gives'),\n",
       " (406, 'others'),\n",
       " (407, 'itself'),\n",
       " (408, 'lines'),\n",
       " (409, 'live'),\n",
       " (410, 'become'),\n",
       " (411, 'dialogue'),\n",
       " (412, 'person'),\n",
       " (413, 'lost'),\n",
       " (414, 'finally'),\n",
       " (415, 'piece'),\n",
       " (416, 'head'),\n",
       " (417, 'case'),\n",
       " (418, 'felt'),\n",
       " (419, 'yes'),\n",
       " (420, 'liked'),\n",
       " (421, 'supposed'),\n",
       " (422, 'title'),\n",
       " (423, \"couldn't\"),\n",
       " (424, 'absolutely'),\n",
       " (425, 'white'),\n",
       " (426, 'against'),\n",
       " (427, 'boy'),\n",
       " (428, 'picture'),\n",
       " (429, 'sort'),\n",
       " (430, 'worse'),\n",
       " (431, 'certainly'),\n",
       " (432, 'went'),\n",
       " (433, 'entire'),\n",
       " (434, 'waste'),\n",
       " (435, 'cinema'),\n",
       " (436, 'problem'),\n",
       " (437, 'hope'),\n",
       " (438, 'entertaining'),\n",
       " (439, \"she's\"),\n",
       " (440, 'mr'),\n",
       " (441, 'overall'),\n",
       " (442, 'evil'),\n",
       " (443, 'called'),\n",
       " (444, 'loved'),\n",
       " (445, 'based'),\n",
       " (446, 'oh'),\n",
       " (447, 'several'),\n",
       " (448, 'fans'),\n",
       " (449, 'mother'),\n",
       " (450, 'drama'),\n",
       " (451, 'beginning'),\n",
       " (452, 'killer'),\n",
       " (453, 'lives'),\n",
       " (454, '5'),\n",
       " (455, 'direction'),\n",
       " (456, 'care'),\n",
       " (457, 'already'),\n",
       " (458, 'becomes'),\n",
       " (459, 'laugh'),\n",
       " (460, 'example'),\n",
       " (461, 'friend'),\n",
       " (462, 'dark'),\n",
       " (463, 'despite'),\n",
       " (464, 'under'),\n",
       " (465, 'seemed'),\n",
       " (466, 'throughout'),\n",
       " (467, '4'),\n",
       " (468, 'turn'),\n",
       " (469, 'unfortunately'),\n",
       " (470, 'wanted'),\n",
       " (471, \"i'd\"),\n",
       " (472, '\\x96'),\n",
       " (473, 'children'),\n",
       " (474, 'final'),\n",
       " (475, 'fine'),\n",
       " (476, 'history'),\n",
       " (477, 'amazing'),\n",
       " (478, 'sound'),\n",
       " (479, 'guess'),\n",
       " (480, 'heart'),\n",
       " (481, 'totally'),\n",
       " (482, 'lead'),\n",
       " (483, 'humor'),\n",
       " (484, 'writing'),\n",
       " (485, 'michael'),\n",
       " (486, 'quality'),\n",
       " (487, \"you'll\"),\n",
       " (488, 'close'),\n",
       " (489, 'son'),\n",
       " (490, 'guys'),\n",
       " (491, 'wants'),\n",
       " (492, 'works'),\n",
       " (493, 'behind'),\n",
       " (494, 'tries'),\n",
       " (495, 'art'),\n",
       " (496, 'side'),\n",
       " (497, 'game'),\n",
       " (498, 'past'),\n",
       " (499, 'able'),\n",
       " (500, 'b'),\n",
       " (501, 'days'),\n",
       " (502, 'turns'),\n",
       " (503, 'child'),\n",
       " (504, \"they're\"),\n",
       " (505, 'hand'),\n",
       " (506, 'flick'),\n",
       " (507, 'enjoyed'),\n",
       " (508, 'act'),\n",
       " (509, 'genre'),\n",
       " (510, 'town'),\n",
       " (511, 'favorite'),\n",
       " (512, 'soon'),\n",
       " (513, 'kill'),\n",
       " (514, 'starts'),\n",
       " (515, 'sometimes'),\n",
       " (516, 'car'),\n",
       " (517, 'gave'),\n",
       " (518, 'run'),\n",
       " (519, 'late'),\n",
       " (520, 'eyes'),\n",
       " (521, 'actress'),\n",
       " (522, 'etc'),\n",
       " (523, 'directed'),\n",
       " (524, 'horrible'),\n",
       " (525, \"won't\"),\n",
       " (526, 'viewer'),\n",
       " (527, 'brilliant'),\n",
       " (528, 'parts'),\n",
       " (529, 'self'),\n",
       " (530, 'themselves'),\n",
       " (531, 'hour'),\n",
       " (532, 'expect'),\n",
       " (533, 'thinking'),\n",
       " (534, 'stories'),\n",
       " (535, 'stuff'),\n",
       " (536, 'girls'),\n",
       " (537, 'obviously'),\n",
       " (538, 'blood'),\n",
       " (539, 'decent'),\n",
       " (540, 'city'),\n",
       " (541, 'voice'),\n",
       " (542, 'highly'),\n",
       " (543, 'myself'),\n",
       " (544, 'feeling'),\n",
       " (545, 'fight'),\n",
       " (546, 'except'),\n",
       " (547, 'slow'),\n",
       " (548, 'matter'),\n",
       " (549, 'type'),\n",
       " (550, 'anyway'),\n",
       " (551, 'kid'),\n",
       " (552, 'roles'),\n",
       " (553, 'killed'),\n",
       " (554, 'heard'),\n",
       " (555, 'god'),\n",
       " (556, 'age'),\n",
       " (557, 'says'),\n",
       " (558, 'moment'),\n",
       " (559, 'took'),\n",
       " (560, 'leave'),\n",
       " (561, 'writer'),\n",
       " (562, 'strong'),\n",
       " (563, 'cannot'),\n",
       " (564, 'violence'),\n",
       " (565, 'police'),\n",
       " (566, 'hit'),\n",
       " (567, 'stop'),\n",
       " (568, 'happens'),\n",
       " (569, 'particularly'),\n",
       " (570, 'known'),\n",
       " (571, 'involved'),\n",
       " (572, 'happened'),\n",
       " (573, 'extremely'),\n",
       " (574, 'daughter'),\n",
       " (575, 'obvious'),\n",
       " (576, 'told'),\n",
       " (577, 'chance'),\n",
       " (578, 'living'),\n",
       " (579, 'coming'),\n",
       " (580, 'lack'),\n",
       " (581, 'alone'),\n",
       " (582, 'experience'),\n",
       " (583, \"wouldn't\"),\n",
       " (584, 'including'),\n",
       " (585, 'murder'),\n",
       " (586, 'attempt'),\n",
       " (587, 's'),\n",
       " (588, 'please'),\n",
       " (589, 'james'),\n",
       " (590, 'happen'),\n",
       " (591, 'wonder'),\n",
       " (592, 'crap'),\n",
       " (593, 'ago'),\n",
       " (594, 'brother'),\n",
       " (595, \"film's\"),\n",
       " (596, 'gore'),\n",
       " (597, 'none'),\n",
       " (598, 'complete'),\n",
       " (599, 'interest'),\n",
       " (600, 'score'),\n",
       " (601, 'group'),\n",
       " (602, 'cut'),\n",
       " (603, 'simple'),\n",
       " (604, 'save'),\n",
       " (605, 'ok'),\n",
       " (606, 'hell'),\n",
       " (607, 'looked'),\n",
       " (608, 'career'),\n",
       " (609, 'number'),\n",
       " (610, 'song'),\n",
       " (611, 'possible'),\n",
       " (612, 'seriously'),\n",
       " (613, 'annoying'),\n",
       " (614, 'shown'),\n",
       " (615, 'exactly'),\n",
       " (616, 'sad'),\n",
       " (617, 'running'),\n",
       " (618, 'musical'),\n",
       " (619, 'serious'),\n",
       " (620, 'taken'),\n",
       " (621, 'yourself'),\n",
       " (622, 'whose'),\n",
       " (623, 'released'),\n",
       " (624, 'cinematography'),\n",
       " (625, 'david'),\n",
       " (626, 'scary'),\n",
       " (627, 'ends'),\n",
       " (628, 'english'),\n",
       " (629, 'hero'),\n",
       " (630, 'usually'),\n",
       " (631, 'hours'),\n",
       " (632, 'reality'),\n",
       " (633, 'opening'),\n",
       " (634, \"i'll\"),\n",
       " (635, 'across'),\n",
       " (636, 'today'),\n",
       " (637, 'jokes'),\n",
       " (638, 'light'),\n",
       " (639, 'hilarious'),\n",
       " (640, 'somewhat'),\n",
       " (641, 'usual'),\n",
       " (642, 'started'),\n",
       " (643, 'cool'),\n",
       " (644, 'ridiculous'),\n",
       " (645, 'body'),\n",
       " (646, 'relationship'),\n",
       " (647, 'view'),\n",
       " (648, 'level'),\n",
       " (649, 'opinion'),\n",
       " (650, 'change'),\n",
       " (651, 'happy'),\n",
       " (652, 'middle'),\n",
       " (653, 'taking'),\n",
       " (654, 'wish'),\n",
       " (655, 'husband'),\n",
       " (656, 'finds'),\n",
       " (657, 'saying'),\n",
       " (658, 'order'),\n",
       " (659, 'talking'),\n",
       " (660, 'ones'),\n",
       " (661, 'documentary'),\n",
       " (662, 'shots'),\n",
       " (663, 'huge'),\n",
       " (664, 'novel'),\n",
       " (665, 'female'),\n",
       " (666, 'mostly'),\n",
       " (667, 'robert'),\n",
       " (668, 'power'),\n",
       " (669, 'episodes'),\n",
       " (670, 'room'),\n",
       " (671, 'important'),\n",
       " (672, 'rating'),\n",
       " (673, 'talent'),\n",
       " (674, 'five'),\n",
       " (675, 'major'),\n",
       " (676, 'turned'),\n",
       " (677, 'strange'),\n",
       " (678, 'word'),\n",
       " (679, 'modern'),\n",
       " (680, 'call'),\n",
       " (681, 'apparently'),\n",
       " (682, 'disappointed'),\n",
       " (683, 'single'),\n",
       " (684, 'events'),\n",
       " (685, 'due'),\n",
       " (686, 'four'),\n",
       " (687, 'songs'),\n",
       " (688, 'basically'),\n",
       " (689, 'attention'),\n",
       " (690, '7'),\n",
       " (691, 'knows'),\n",
       " (692, 'clearly'),\n",
       " (693, 'supporting'),\n",
       " (694, 'knew'),\n",
       " (695, 'british'),\n",
       " (696, 'television'),\n",
       " (697, 'comic'),\n",
       " (698, 'non'),\n",
       " (699, 'fast'),\n",
       " (700, 'earth'),\n",
       " (701, 'country'),\n",
       " (702, 'future'),\n",
       " (703, 'cheap'),\n",
       " (704, 'class'),\n",
       " (705, 'thriller'),\n",
       " (706, '8'),\n",
       " (707, 'silly'),\n",
       " (708, 'king'),\n",
       " (709, 'problems'),\n",
       " (710, \"aren't\"),\n",
       " (711, 'easily'),\n",
       " (712, 'words'),\n",
       " (713, 'tells'),\n",
       " (714, 'miss'),\n",
       " (715, 'jack'),\n",
       " (716, 'local'),\n",
       " (717, 'sequence'),\n",
       " (718, 'bring'),\n",
       " (719, 'entertainment'),\n",
       " (720, 'paul'),\n",
       " (721, 'beyond'),\n",
       " (722, 'upon'),\n",
       " (723, 'whether'),\n",
       " (724, 'predictable'),\n",
       " (725, 'moving'),\n",
       " (726, 'similar'),\n",
       " (727, 'straight'),\n",
       " (728, 'romantic'),\n",
       " (729, 'sets'),\n",
       " (730, 'review'),\n",
       " (731, 'falls'),\n",
       " (732, 'oscar'),\n",
       " (733, 'mystery'),\n",
       " (734, 'enjoyable'),\n",
       " (735, 'needs'),\n",
       " (736, 'appears'),\n",
       " (737, 'talk'),\n",
       " (738, 'rock'),\n",
       " (739, 'george'),\n",
       " (740, 'giving'),\n",
       " (741, 'eye'),\n",
       " (742, 'richard'),\n",
       " (743, 'within'),\n",
       " (744, 'ten'),\n",
       " (745, 'animation'),\n",
       " (746, 'message'),\n",
       " (747, 'theater'),\n",
       " (748, 'near'),\n",
       " (749, 'above'),\n",
       " (750, 'dull'),\n",
       " (751, 'nearly'),\n",
       " (752, 'sequel'),\n",
       " (753, 'theme'),\n",
       " (754, 'points'),\n",
       " (755, \"'\"),\n",
       " (756, 'stand'),\n",
       " (757, 'mention'),\n",
       " (758, 'lady'),\n",
       " (759, 'bunch'),\n",
       " (760, 'add'),\n",
       " (761, 'feels'),\n",
       " (762, 'herself'),\n",
       " (763, 'release'),\n",
       " (764, 'red'),\n",
       " (765, 'team'),\n",
       " (766, 'storyline'),\n",
       " (767, 'surprised'),\n",
       " (768, 'ways'),\n",
       " (769, 'using'),\n",
       " (770, 'named'),\n",
       " (771, \"haven't\"),\n",
       " (772, 'lots'),\n",
       " (773, 'easy'),\n",
       " (774, 'fantastic'),\n",
       " (775, 'begins'),\n",
       " (776, 'actual'),\n",
       " (777, 'working'),\n",
       " (778, 'effort'),\n",
       " (779, 'york'),\n",
       " (780, 'die'),\n",
       " (781, 'hate'),\n",
       " (782, 'french'),\n",
       " (783, 'minute'),\n",
       " (784, 'tale'),\n",
       " (785, 'clear'),\n",
       " (786, 'stay'),\n",
       " (787, '9'),\n",
       " (788, 'elements'),\n",
       " (789, 'feature'),\n",
       " (790, 'among'),\n",
       " (791, 'follow'),\n",
       " (792, 'comments'),\n",
       " (793, 're'),\n",
       " (794, 'viewers'),\n",
       " (795, 'avoid'),\n",
       " (796, 'sister'),\n",
       " (797, 'showing'),\n",
       " (798, 'typical'),\n",
       " (799, 'editing'),\n",
       " (800, \"what's\"),\n",
       " (801, 'famous'),\n",
       " (802, 'tried'),\n",
       " (803, 'sorry'),\n",
       " (804, 'dialog'),\n",
       " (805, 'check'),\n",
       " (806, 'fall'),\n",
       " (807, 'period'),\n",
       " (808, 'season'),\n",
       " (809, 'form'),\n",
       " (810, 'certain'),\n",
       " (811, 'filmed'),\n",
       " (812, 'weak'),\n",
       " (813, 'soundtrack'),\n",
       " (814, 'means'),\n",
       " (815, 'buy'),\n",
       " (816, 'material'),\n",
       " (817, 'somehow'),\n",
       " (818, 'realistic'),\n",
       " (819, 'figure'),\n",
       " (820, 'crime'),\n",
       " (821, 'doubt'),\n",
       " (822, 'gone'),\n",
       " (823, 'peter'),\n",
       " (824, 'tom'),\n",
       " (825, 'kept'),\n",
       " (826, 'viewing'),\n",
       " (827, 't'),\n",
       " (828, 'general'),\n",
       " (829, 'leads'),\n",
       " (830, 'greatest'),\n",
       " (831, 'space'),\n",
       " (832, 'lame'),\n",
       " (833, 'suspense'),\n",
       " (834, 'dance'),\n",
       " (835, 'imagine'),\n",
       " (836, 'brought'),\n",
       " (837, 'third'),\n",
       " (838, 'atmosphere'),\n",
       " (839, 'hear'),\n",
       " (840, 'particular'),\n",
       " (841, 'sequences'),\n",
       " (842, 'whatever'),\n",
       " (843, 'parents'),\n",
       " (844, 'move'),\n",
       " (845, 'lee'),\n",
       " (846, 'indeed'),\n",
       " (847, 'learn'),\n",
       " (848, 'rent'),\n",
       " (849, 'de'),\n",
       " (850, 'eventually'),\n",
       " (851, 'note'),\n",
       " (852, 'deal'),\n",
       " (853, 'average'),\n",
       " (854, 'reviews'),\n",
       " (855, 'wait'),\n",
       " (856, 'forget'),\n",
       " (857, 'japanese'),\n",
       " (858, 'sexual'),\n",
       " (859, 'poorly'),\n",
       " (860, 'premise'),\n",
       " (861, 'okay'),\n",
       " (862, 'zombie'),\n",
       " (863, 'surprise'),\n",
       " (864, 'believable'),\n",
       " (865, 'stage'),\n",
       " (866, 'possibly'),\n",
       " (867, 'sit'),\n",
       " (868, \"who's\"),\n",
       " (869, 'decided'),\n",
       " (870, 'expected'),\n",
       " (871, \"you've\"),\n",
       " (872, 'subject'),\n",
       " (873, 'nature'),\n",
       " (874, 'became'),\n",
       " (875, 'difficult'),\n",
       " (876, 'free'),\n",
       " (877, 'killing'),\n",
       " (878, 'screenplay'),\n",
       " (879, 'truth'),\n",
       " (880, 'romance'),\n",
       " (881, 'dr'),\n",
       " (882, 'nor'),\n",
       " (883, 'reading'),\n",
       " (884, 'needed'),\n",
       " (885, 'question'),\n",
       " (886, 'leaves'),\n",
       " (887, 'street'),\n",
       " (888, '20'),\n",
       " (889, 'meets'),\n",
       " (890, 'hot'),\n",
       " (891, 'unless'),\n",
       " (892, 'begin'),\n",
       " (893, 'baby'),\n",
       " (894, 'superb'),\n",
       " (895, 'credits'),\n",
       " (896, 'imdb'),\n",
       " (897, 'otherwise'),\n",
       " (898, 'write'),\n",
       " (899, 'shame'),\n",
       " (900, \"let's\"),\n",
       " (901, 'situation'),\n",
       " (902, 'dramatic'),\n",
       " (903, 'memorable'),\n",
       " (904, 'directors'),\n",
       " (905, 'earlier'),\n",
       " (906, 'meet'),\n",
       " (907, 'disney'),\n",
       " (908, 'open'),\n",
       " (909, 'dog'),\n",
       " (910, 'badly'),\n",
       " (911, 'joe'),\n",
       " (912, 'male'),\n",
       " (913, 'weird'),\n",
       " (914, 'acted'),\n",
       " (915, 'forced'),\n",
       " (916, 'laughs'),\n",
       " (917, 'sci'),\n",
       " (918, 'emotional'),\n",
       " (919, 'older'),\n",
       " (920, 'realize'),\n",
       " (921, 'fi'),\n",
       " (922, 'dream'),\n",
       " (923, 'society'),\n",
       " (924, 'writers'),\n",
       " (925, 'interested'),\n",
       " (926, 'footage'),\n",
       " (927, 'forward'),\n",
       " (928, 'comment'),\n",
       " (929, 'crazy'),\n",
       " (930, 'deep'),\n",
       " (931, 'sounds'),\n",
       " (932, 'plus'),\n",
       " (933, 'beauty'),\n",
       " (934, 'whom'),\n",
       " (935, 'america'),\n",
       " (936, 'fantasy'),\n",
       " (937, 'directing'),\n",
       " (938, 'keeps'),\n",
       " (939, 'ask'),\n",
       " (940, 'development'),\n",
       " (941, 'features'),\n",
       " (942, 'air'),\n",
       " (943, 'quickly'),\n",
       " (944, 'mess'),\n",
       " (945, 'creepy'),\n",
       " (946, 'towards'),\n",
       " (947, 'perfectly'),\n",
       " (948, 'mark'),\n",
       " (949, 'worked'),\n",
       " (950, 'box'),\n",
       " (951, 'cheesy'),\n",
       " (952, 'unique'),\n",
       " (953, 'setting'),\n",
       " (954, 'hands'),\n",
       " (955, 'plenty'),\n",
       " (956, 'result'),\n",
       " (957, 'previous'),\n",
       " (958, 'brings'),\n",
       " (959, 'effect'),\n",
       " (960, 'e'),\n",
       " (961, 'total'),\n",
       " (962, 'personal'),\n",
       " (963, 'incredibly'),\n",
       " (964, 'rate'),\n",
       " (965, 'fire'),\n",
       " (966, 'monster'),\n",
       " (967, 'business'),\n",
       " (968, 'leading'),\n",
       " (969, 'apart'),\n",
       " (970, 'casting'),\n",
       " (971, 'admit'),\n",
       " (972, 'joke'),\n",
       " (973, 'powerful'),\n",
       " (974, 'appear'),\n",
       " (975, 'background'),\n",
       " (976, 'telling'),\n",
       " (977, 'girlfriend'),\n",
       " (978, 'meant'),\n",
       " (979, 'christmas'),\n",
       " (980, 'hardly'),\n",
       " (981, 'present'),\n",
       " (982, 'battle'),\n",
       " (983, 'potential'),\n",
       " (984, 'create'),\n",
       " (985, 'bill'),\n",
       " (986, 'break'),\n",
       " (987, 'pay'),\n",
       " (988, 'masterpiece'),\n",
       " (989, 'gay'),\n",
       " (990, 'political'),\n",
       " (991, 'return'),\n",
       " (992, 'dumb'),\n",
       " (993, 'fails'),\n",
       " (994, 'fighting'),\n",
       " (995, 'various'),\n",
       " (996, 'era'),\n",
       " (997, 'portrayed'),\n",
       " (998, 'co'),\n",
       " (999, 'cop'),\n",
       " (1000, 'secret'),\n",
       " ...]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ranks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(9951, 'neutral'),\n",
       " (9952, 'rumors'),\n",
       " (9953, 'somber'),\n",
       " (9954, 'aunts'),\n",
       " (9955, 'amateurs'),\n",
       " (9956, 'radar'),\n",
       " (9957, 'ounce'),\n",
       " (9958, 'bagdad'),\n",
       " (9959, 'stud'),\n",
       " (9960, 'closeups'),\n",
       " (9961, 'insisted'),\n",
       " (9962, 'jed'),\n",
       " (9963, 'geeky'),\n",
       " (9964, '64'),\n",
       " (9965, 'aims'),\n",
       " (9966, 'complains'),\n",
       " (9967, 'ewan'),\n",
       " (9968, 'exhausted'),\n",
       " (9969, \"day's\"),\n",
       " (9970, 'weaves'),\n",
       " (9971, 'gladly'),\n",
       " (9972, 'misogynistic'),\n",
       " (9973, 'soles'),\n",
       " (9974, 'michel'),\n",
       " (9975, 'uniquely'),\n",
       " (9976, 'interminable'),\n",
       " (9977, 'aristocrat'),\n",
       " (9978, \"paul's\"),\n",
       " (9979, \"everybody's\"),\n",
       " (9980, 'avant'),\n",
       " (9981, 'answering'),\n",
       " (9982, 'smallest'),\n",
       " (9983, 'contacts'),\n",
       " (9984, 'enlightenment'),\n",
       " (9985, \"murphy's\"),\n",
       " (9986, 'employs'),\n",
       " (9987, 'unforgivable'),\n",
       " (9988, 'punchline'),\n",
       " (9989, 'culminating'),\n",
       " (9990, 'talentless'),\n",
       " (9991, 'grabbing'),\n",
       " (9992, 'soulless'),\n",
       " (9993, 'unfairly'),\n",
       " (9994, 'grail'),\n",
       " (9995, 'retrospect'),\n",
       " (9996, 'edged'),\n",
       " (9997, 'retains'),\n",
       " (9998, 'shenanigans'),\n",
       " (9999, 'beaver'),\n",
       " (10000, 'approved'),\n",
       " (10001, 'blaine'),\n",
       " (10002, 'tent'),\n",
       " (10003, 'fernando'),\n",
       " (10004, 'yea'),\n",
       " (10005, 'prevents'),\n",
       " (10006, 'beta'),\n",
       " (10007, 'blends'),\n",
       " (10008, 'preserved'),\n",
       " (10009, 'washing'),\n",
       " (10010, 'minions'),\n",
       " (10011, 'veronica'),\n",
       " (10012, 'tasteful'),\n",
       " (10013, 'instruments'),\n",
       " (10014, 'munchies'),\n",
       " (10015, 'threats'),\n",
       " (10016, 'motif'),\n",
       " (10017, 'blinded'),\n",
       " (10018, \"'n'\"),\n",
       " (10019, 'transcends'),\n",
       " (10020, 'maniacal'),\n",
       " (10021, 'stoltz'),\n",
       " (10022, 'researched'),\n",
       " (10023, 'blaxploitation'),\n",
       " (10024, 'skipped'),\n",
       " (10025, 'blessing'),\n",
       " (10026, 'di'),\n",
       " (10027, 'texture'),\n",
       " (10028, 'spawned'),\n",
       " (10029, 'botched'),\n",
       " (10030, 'bickering'),\n",
       " (10031, 'adored'),\n",
       " (10032, 'deformed'),\n",
       " (10033, 'hamill'),\n",
       " (10034, 'indulge'),\n",
       " (10035, 'invent'),\n",
       " (10036, 'mismatched'),\n",
       " (10037, 'spreading'),\n",
       " (10038, 'options'),\n",
       " (10039, 'awakens'),\n",
       " (10040, 'misfits'),\n",
       " (10041, 'unsuccessful'),\n",
       " (10042, 'amusingly'),\n",
       " (10043, 'coincidences'),\n",
       " (10044, 'lamarr'),\n",
       " (10045, 'astronauts'),\n",
       " (10046, 'logo'),\n",
       " (10047, 'calculated'),\n",
       " (10048, 'wai'),\n",
       " (10049, 'prehistoric'),\n",
       " (10050, 'groan')]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ranks[9950:10050]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(88535, 'ending\\x97in'),\n",
       " (88536, 'isolytic'),\n",
       " (88537, 'beguine'),\n",
       " (88538, 'sequency'),\n",
       " (88539, 'dubbers'),\n",
       " (88540, 'catepillar'),\n",
       " (88541, 'uneffective'),\n",
       " (88542, 'miniskirts'),\n",
       " (88543, 'pensaba'),\n",
       " (88544, 'thoroughfare'),\n",
       " (88545, 'swinginest'),\n",
       " (88546, 'daud'),\n",
       " (88547, 'empahh'),\n",
       " (88548, 'intercontenital'),\n",
       " (88549, 'fitzgibbon'),\n",
       " (88550, 'unoticeable'),\n",
       " (88551, \"'hall\"),\n",
       " (88552, \"mariner's\"),\n",
       " (88553, 'slahsers'),\n",
       " (88554, 'maize'),\n",
       " (88555, 'expeditious'),\n",
       " (88556, \"'half\"),\n",
       " (88557, 'lederer'),\n",
       " (88558, \"bearings'\"),\n",
       " (88559, 'wight'),\n",
       " (88560, 'contradictors'),\n",
       " (88561, 'amitabhs'),\n",
       " (88562, \"olan's\"),\n",
       " (88563, 'fountainhead'),\n",
       " (88564, 'reble'),\n",
       " (88565, 'percival'),\n",
       " (88566, 'lubricated'),\n",
       " (88567, 'heralding'),\n",
       " (88568, \"baywatch'\"),\n",
       " (88569, 'odilon'),\n",
       " (88570, \"'solve'\"),\n",
       " (88571, \"guard's\"),\n",
       " (88572, \"nemesis'\"),\n",
       " (88573, 'airsoft'),\n",
       " (88574, 'urrrghhh'),\n",
       " (88575, 'ev'),\n",
       " (88576, 'chicatillo'),\n",
       " (88577, 'transacting'),\n",
       " (88578, 'sics'),\n",
       " (88579, 'wheelers'),\n",
       " (88580, \"pipe's\"),\n",
       " (88581, 'copywrite'),\n",
       " (88582, 'artbox'),\n",
       " (88583, \"voorhees'\"),\n",
       " (88584, \"'l'\")]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ranks[-50:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "lookup = dict(ranks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{1: 'the',\n",
       " 2: 'and',\n",
       " 3: 'a',\n",
       " 4: 'of',\n",
       " 5: 'to',\n",
       " 6: 'is',\n",
       " 7: 'br',\n",
       " 8: 'in',\n",
       " 9: 'it',\n",
       " 10: 'i',\n",
       " 11: 'this',\n",
       " 12: 'that',\n",
       " 13: 'was',\n",
       " 14: 'as',\n",
       " 15: 'for',\n",
       " 16: 'with',\n",
       " 17: 'movie',\n",
       " 18: 'but',\n",
       " 19: 'film',\n",
       " 20: 'on',\n",
       " 21: 'not',\n",
       " 22: 'you',\n",
       " 23: 'are',\n",
       " 24: 'his',\n",
       " 25: 'have',\n",
       " 26: 'he',\n",
       " 27: 'be',\n",
       " 28: 'one',\n",
       " 29: 'all',\n",
       " 30: 'at',\n",
       " 31: 'by',\n",
       " 32: 'an',\n",
       " 33: 'they',\n",
       " 34: 'who',\n",
       " 35: 'so',\n",
       " 36: 'from',\n",
       " 37: 'like',\n",
       " 38: 'her',\n",
       " 39: 'or',\n",
       " 40: 'just',\n",
       " 41: 'about',\n",
       " 42: \"it's\",\n",
       " 43: 'out',\n",
       " 44: 'has',\n",
       " 45: 'if',\n",
       " 46: 'some',\n",
       " 47: 'there',\n",
       " 48: 'what',\n",
       " 49: 'good',\n",
       " 50: 'more',\n",
       " 51: 'when',\n",
       " 52: 'very',\n",
       " 53: 'up',\n",
       " 54: 'no',\n",
       " 55: 'time',\n",
       " 56: 'she',\n",
       " 57: 'even',\n",
       " 58: 'my',\n",
       " 59: 'would',\n",
       " 60: 'which',\n",
       " 61: 'only',\n",
       " 62: 'story',\n",
       " 63: 'really',\n",
       " 64: 'see',\n",
       " 65: 'their',\n",
       " 66: 'had',\n",
       " 67: 'can',\n",
       " 68: 'were',\n",
       " 69: 'me',\n",
       " 70: 'well',\n",
       " 71: 'than',\n",
       " 72: 'we',\n",
       " 73: 'much',\n",
       " 74: 'been',\n",
       " 75: 'bad',\n",
       " 76: 'get',\n",
       " 77: 'will',\n",
       " 78: 'do',\n",
       " 79: 'also',\n",
       " 80: 'into',\n",
       " 81: 'people',\n",
       " 82: 'other',\n",
       " 83: 'first',\n",
       " 84: 'great',\n",
       " 85: 'because',\n",
       " 86: 'how',\n",
       " 87: 'him',\n",
       " 88: 'most',\n",
       " 89: \"don't\",\n",
       " 90: 'made',\n",
       " 91: 'its',\n",
       " 92: 'then',\n",
       " 93: 'way',\n",
       " 94: 'make',\n",
       " 95: 'them',\n",
       " 96: 'too',\n",
       " 97: 'could',\n",
       " 98: 'any',\n",
       " 99: 'movies',\n",
       " 100: 'after',\n",
       " 101: 'think',\n",
       " 102: 'characters',\n",
       " 103: 'watch',\n",
       " 104: 'two',\n",
       " 105: 'films',\n",
       " 106: 'character',\n",
       " 107: 'seen',\n",
       " 108: 'many',\n",
       " 109: 'being',\n",
       " 110: 'life',\n",
       " 111: 'plot',\n",
       " 112: 'never',\n",
       " 113: 'acting',\n",
       " 114: 'little',\n",
       " 115: 'best',\n",
       " 116: 'love',\n",
       " 117: 'over',\n",
       " 118: 'where',\n",
       " 119: 'did',\n",
       " 120: 'show',\n",
       " 121: 'know',\n",
       " 122: 'off',\n",
       " 123: 'ever',\n",
       " 124: 'does',\n",
       " 125: 'better',\n",
       " 126: 'your',\n",
       " 127: 'end',\n",
       " 128: 'still',\n",
       " 129: 'man',\n",
       " 130: 'here',\n",
       " 131: 'these',\n",
       " 132: 'say',\n",
       " 133: 'scene',\n",
       " 134: 'while',\n",
       " 135: 'why',\n",
       " 136: 'scenes',\n",
       " 137: 'go',\n",
       " 138: 'such',\n",
       " 139: 'something',\n",
       " 140: 'through',\n",
       " 141: 'should',\n",
       " 142: 'back',\n",
       " 143: \"i'm\",\n",
       " 144: 'real',\n",
       " 145: 'those',\n",
       " 146: 'watching',\n",
       " 147: 'now',\n",
       " 148: 'though',\n",
       " 149: \"doesn't\",\n",
       " 150: 'years',\n",
       " 151: 'old',\n",
       " 152: 'thing',\n",
       " 153: 'actors',\n",
       " 154: 'work',\n",
       " 155: '10',\n",
       " 156: 'before',\n",
       " 157: 'another',\n",
       " 158: \"didn't\",\n",
       " 159: 'new',\n",
       " 160: 'funny',\n",
       " 161: 'nothing',\n",
       " 162: 'actually',\n",
       " 163: 'makes',\n",
       " 164: 'director',\n",
       " 165: 'look',\n",
       " 166: 'find',\n",
       " 167: 'going',\n",
       " 168: 'few',\n",
       " 169: 'same',\n",
       " 170: 'part',\n",
       " 171: 'again',\n",
       " 172: 'every',\n",
       " 173: 'lot',\n",
       " 174: 'cast',\n",
       " 175: 'us',\n",
       " 176: 'quite',\n",
       " 177: 'down',\n",
       " 178: 'want',\n",
       " 179: 'world',\n",
       " 180: 'things',\n",
       " 181: 'pretty',\n",
       " 182: 'young',\n",
       " 183: 'seems',\n",
       " 184: 'around',\n",
       " 185: 'got',\n",
       " 186: 'horror',\n",
       " 187: 'however',\n",
       " 188: \"can't\",\n",
       " 189: 'fact',\n",
       " 190: 'take',\n",
       " 191: 'big',\n",
       " 192: 'enough',\n",
       " 193: 'long',\n",
       " 194: 'thought',\n",
       " 195: \"that's\",\n",
       " 196: 'both',\n",
       " 197: 'between',\n",
       " 198: 'series',\n",
       " 199: 'give',\n",
       " 200: 'may',\n",
       " 201: 'original',\n",
       " 202: 'own',\n",
       " 203: 'action',\n",
       " 204: \"i've\",\n",
       " 205: 'right',\n",
       " 206: 'without',\n",
       " 207: 'always',\n",
       " 208: 'times',\n",
       " 209: 'comedy',\n",
       " 210: 'point',\n",
       " 211: 'gets',\n",
       " 212: 'must',\n",
       " 213: 'come',\n",
       " 214: 'role',\n",
       " 215: \"isn't\",\n",
       " 216: 'saw',\n",
       " 217: 'almost',\n",
       " 218: 'interesting',\n",
       " 219: 'least',\n",
       " 220: 'family',\n",
       " 221: 'done',\n",
       " 222: \"there's\",\n",
       " 223: 'whole',\n",
       " 224: 'bit',\n",
       " 225: 'music',\n",
       " 226: 'script',\n",
       " 227: 'far',\n",
       " 228: 'making',\n",
       " 229: 'guy',\n",
       " 230: 'anything',\n",
       " 231: 'minutes',\n",
       " 232: 'feel',\n",
       " 233: 'last',\n",
       " 234: 'since',\n",
       " 235: 'might',\n",
       " 236: 'performance',\n",
       " 237: \"he's\",\n",
       " 238: '2',\n",
       " 239: 'probably',\n",
       " 240: 'kind',\n",
       " 241: 'am',\n",
       " 242: 'away',\n",
       " 243: 'yet',\n",
       " 244: 'rather',\n",
       " 245: 'tv',\n",
       " 246: 'worst',\n",
       " 247: 'girl',\n",
       " 248: 'day',\n",
       " 249: 'sure',\n",
       " 250: 'fun',\n",
       " 251: 'hard',\n",
       " 252: 'woman',\n",
       " 253: 'played',\n",
       " 254: 'each',\n",
       " 255: 'found',\n",
       " 256: 'anyone',\n",
       " 257: 'having',\n",
       " 258: 'although',\n",
       " 259: 'especially',\n",
       " 260: 'our',\n",
       " 261: 'believe',\n",
       " 262: 'course',\n",
       " 263: 'comes',\n",
       " 264: 'looking',\n",
       " 265: 'screen',\n",
       " 266: 'trying',\n",
       " 267: 'set',\n",
       " 268: 'goes',\n",
       " 269: 'looks',\n",
       " 270: 'place',\n",
       " 271: 'book',\n",
       " 272: 'different',\n",
       " 273: 'put',\n",
       " 274: 'ending',\n",
       " 275: 'money',\n",
       " 276: 'maybe',\n",
       " 277: 'once',\n",
       " 278: 'sense',\n",
       " 279: 'reason',\n",
       " 280: 'true',\n",
       " 281: 'actor',\n",
       " 282: 'everything',\n",
       " 283: \"wasn't\",\n",
       " 284: 'shows',\n",
       " 285: 'dvd',\n",
       " 286: 'three',\n",
       " 287: 'worth',\n",
       " 288: 'year',\n",
       " 289: 'job',\n",
       " 290: 'main',\n",
       " 291: 'someone',\n",
       " 292: 'together',\n",
       " 293: 'watched',\n",
       " 294: 'play',\n",
       " 295: 'american',\n",
       " 296: 'plays',\n",
       " 297: '1',\n",
       " 298: 'said',\n",
       " 299: 'effects',\n",
       " 300: 'later',\n",
       " 301: 'takes',\n",
       " 302: 'instead',\n",
       " 303: 'seem',\n",
       " 304: 'beautiful',\n",
       " 305: 'john',\n",
       " 306: 'himself',\n",
       " 307: 'version',\n",
       " 308: 'audience',\n",
       " 309: 'high',\n",
       " 310: 'house',\n",
       " 311: 'night',\n",
       " 312: 'during',\n",
       " 313: 'everyone',\n",
       " 314: 'left',\n",
       " 315: 'special',\n",
       " 316: 'seeing',\n",
       " 317: 'half',\n",
       " 318: 'excellent',\n",
       " 319: 'wife',\n",
       " 320: 'star',\n",
       " 321: 'shot',\n",
       " 322: 'war',\n",
       " 323: 'idea',\n",
       " 324: 'nice',\n",
       " 325: 'black',\n",
       " 326: 'less',\n",
       " 327: 'mind',\n",
       " 328: 'simply',\n",
       " 329: 'read',\n",
       " 330: 'second',\n",
       " 331: 'else',\n",
       " 332: \"you're\",\n",
       " 333: 'father',\n",
       " 334: 'fan',\n",
       " 335: 'poor',\n",
       " 336: 'help',\n",
       " 337: 'completely',\n",
       " 338: 'death',\n",
       " 339: '3',\n",
       " 340: 'used',\n",
       " 341: 'home',\n",
       " 342: 'either',\n",
       " 343: 'short',\n",
       " 344: 'line',\n",
       " 345: 'given',\n",
       " 346: 'men',\n",
       " 347: 'top',\n",
       " 348: 'dead',\n",
       " 349: 'budget',\n",
       " 350: 'try',\n",
       " 351: 'performances',\n",
       " 352: 'wrong',\n",
       " 353: 'classic',\n",
       " 354: 'boring',\n",
       " 355: 'enjoy',\n",
       " 356: 'need',\n",
       " 357: 'rest',\n",
       " 358: 'use',\n",
       " 359: 'kids',\n",
       " 360: 'hollywood',\n",
       " 361: 'low',\n",
       " 362: 'production',\n",
       " 363: 'until',\n",
       " 364: 'along',\n",
       " 365: 'full',\n",
       " 366: 'friends',\n",
       " 367: 'camera',\n",
       " 368: 'truly',\n",
       " 369: 'women',\n",
       " 370: 'awful',\n",
       " 371: 'video',\n",
       " 372: 'next',\n",
       " 373: 'tell',\n",
       " 374: 'remember',\n",
       " 375: 'couple',\n",
       " 376: 'stupid',\n",
       " 377: 'start',\n",
       " 378: 'stars',\n",
       " 379: 'perhaps',\n",
       " 380: 'sex',\n",
       " 381: 'mean',\n",
       " 382: 'came',\n",
       " 383: 'recommend',\n",
       " 384: 'let',\n",
       " 385: 'moments',\n",
       " 386: 'wonderful',\n",
       " 387: 'episode',\n",
       " 388: 'understand',\n",
       " 389: 'small',\n",
       " 390: 'face',\n",
       " 391: 'terrible',\n",
       " 392: 'playing',\n",
       " 393: 'school',\n",
       " 394: 'getting',\n",
       " 395: 'written',\n",
       " 396: 'doing',\n",
       " 397: 'often',\n",
       " 398: 'keep',\n",
       " 399: 'early',\n",
       " 400: 'name',\n",
       " 401: 'perfect',\n",
       " 402: 'style',\n",
       " 403: 'human',\n",
       " 404: 'definitely',\n",
       " 405: 'gives',\n",
       " 406: 'others',\n",
       " 407: 'itself',\n",
       " 408: 'lines',\n",
       " 409: 'live',\n",
       " 410: 'become',\n",
       " 411: 'dialogue',\n",
       " 412: 'person',\n",
       " 413: 'lost',\n",
       " 414: 'finally',\n",
       " 415: 'piece',\n",
       " 416: 'head',\n",
       " 417: 'case',\n",
       " 418: 'felt',\n",
       " 419: 'yes',\n",
       " 420: 'liked',\n",
       " 421: 'supposed',\n",
       " 422: 'title',\n",
       " 423: \"couldn't\",\n",
       " 424: 'absolutely',\n",
       " 425: 'white',\n",
       " 426: 'against',\n",
       " 427: 'boy',\n",
       " 428: 'picture',\n",
       " 429: 'sort',\n",
       " 430: 'worse',\n",
       " 431: 'certainly',\n",
       " 432: 'went',\n",
       " 433: 'entire',\n",
       " 434: 'waste',\n",
       " 435: 'cinema',\n",
       " 436: 'problem',\n",
       " 437: 'hope',\n",
       " 438: 'entertaining',\n",
       " 439: \"she's\",\n",
       " 440: 'mr',\n",
       " 441: 'overall',\n",
       " 442: 'evil',\n",
       " 443: 'called',\n",
       " 444: 'loved',\n",
       " 445: 'based',\n",
       " 446: 'oh',\n",
       " 447: 'several',\n",
       " 448: 'fans',\n",
       " 449: 'mother',\n",
       " 450: 'drama',\n",
       " 451: 'beginning',\n",
       " 452: 'killer',\n",
       " 453: 'lives',\n",
       " 454: '5',\n",
       " 455: 'direction',\n",
       " 456: 'care',\n",
       " 457: 'already',\n",
       " 458: 'becomes',\n",
       " 459: 'laugh',\n",
       " 460: 'example',\n",
       " 461: 'friend',\n",
       " 462: 'dark',\n",
       " 463: 'despite',\n",
       " 464: 'under',\n",
       " 465: 'seemed',\n",
       " 466: 'throughout',\n",
       " 467: '4',\n",
       " 468: 'turn',\n",
       " 469: 'unfortunately',\n",
       " 470: 'wanted',\n",
       " 471: \"i'd\",\n",
       " 472: '\\x96',\n",
       " 473: 'children',\n",
       " 474: 'final',\n",
       " 475: 'fine',\n",
       " 476: 'history',\n",
       " 477: 'amazing',\n",
       " 478: 'sound',\n",
       " 479: 'guess',\n",
       " 480: 'heart',\n",
       " 481: 'totally',\n",
       " 482: 'lead',\n",
       " 483: 'humor',\n",
       " 484: 'writing',\n",
       " 485: 'michael',\n",
       " 486: 'quality',\n",
       " 487: \"you'll\",\n",
       " 488: 'close',\n",
       " 489: 'son',\n",
       " 490: 'guys',\n",
       " 491: 'wants',\n",
       " 492: 'works',\n",
       " 493: 'behind',\n",
       " 494: 'tries',\n",
       " 495: 'art',\n",
       " 496: 'side',\n",
       " 497: 'game',\n",
       " 498: 'past',\n",
       " 499: 'able',\n",
       " 500: 'b',\n",
       " 501: 'days',\n",
       " 502: 'turns',\n",
       " 503: 'child',\n",
       " 504: \"they're\",\n",
       " 505: 'hand',\n",
       " 506: 'flick',\n",
       " 507: 'enjoyed',\n",
       " 508: 'act',\n",
       " 509: 'genre',\n",
       " 510: 'town',\n",
       " 511: 'favorite',\n",
       " 512: 'soon',\n",
       " 513: 'kill',\n",
       " 514: 'starts',\n",
       " 515: 'sometimes',\n",
       " 516: 'car',\n",
       " 517: 'gave',\n",
       " 518: 'run',\n",
       " 519: 'late',\n",
       " 520: 'eyes',\n",
       " 521: 'actress',\n",
       " 522: 'etc',\n",
       " 523: 'directed',\n",
       " 524: 'horrible',\n",
       " 525: \"won't\",\n",
       " 526: 'viewer',\n",
       " 527: 'brilliant',\n",
       " 528: 'parts',\n",
       " 529: 'self',\n",
       " 530: 'themselves',\n",
       " 531: 'hour',\n",
       " 532: 'expect',\n",
       " 533: 'thinking',\n",
       " 534: 'stories',\n",
       " 535: 'stuff',\n",
       " 536: 'girls',\n",
       " 537: 'obviously',\n",
       " 538: 'blood',\n",
       " 539: 'decent',\n",
       " 540: 'city',\n",
       " 541: 'voice',\n",
       " 542: 'highly',\n",
       " 543: 'myself',\n",
       " 544: 'feeling',\n",
       " 545: 'fight',\n",
       " 546: 'except',\n",
       " 547: 'slow',\n",
       " 548: 'matter',\n",
       " 549: 'type',\n",
       " 550: 'anyway',\n",
       " 551: 'kid',\n",
       " 552: 'roles',\n",
       " 553: 'killed',\n",
       " 554: 'heard',\n",
       " 555: 'god',\n",
       " 556: 'age',\n",
       " 557: 'says',\n",
       " 558: 'moment',\n",
       " 559: 'took',\n",
       " 560: 'leave',\n",
       " 561: 'writer',\n",
       " 562: 'strong',\n",
       " 563: 'cannot',\n",
       " 564: 'violence',\n",
       " 565: 'police',\n",
       " 566: 'hit',\n",
       " 567: 'stop',\n",
       " 568: 'happens',\n",
       " 569: 'particularly',\n",
       " 570: 'known',\n",
       " 571: 'involved',\n",
       " 572: 'happened',\n",
       " 573: 'extremely',\n",
       " 574: 'daughter',\n",
       " 575: 'obvious',\n",
       " 576: 'told',\n",
       " 577: 'chance',\n",
       " 578: 'living',\n",
       " 579: 'coming',\n",
       " 580: 'lack',\n",
       " 581: 'alone',\n",
       " 582: 'experience',\n",
       " 583: \"wouldn't\",\n",
       " 584: 'including',\n",
       " 585: 'murder',\n",
       " 586: 'attempt',\n",
       " 587: 's',\n",
       " 588: 'please',\n",
       " 589: 'james',\n",
       " 590: 'happen',\n",
       " 591: 'wonder',\n",
       " 592: 'crap',\n",
       " 593: 'ago',\n",
       " 594: 'brother',\n",
       " 595: \"film's\",\n",
       " 596: 'gore',\n",
       " 597: 'none',\n",
       " 598: 'complete',\n",
       " 599: 'interest',\n",
       " 600: 'score',\n",
       " 601: 'group',\n",
       " 602: 'cut',\n",
       " 603: 'simple',\n",
       " 604: 'save',\n",
       " 605: 'ok',\n",
       " 606: 'hell',\n",
       " 607: 'looked',\n",
       " 608: 'career',\n",
       " 609: 'number',\n",
       " 610: 'song',\n",
       " 611: 'possible',\n",
       " 612: 'seriously',\n",
       " 613: 'annoying',\n",
       " 614: 'shown',\n",
       " 615: 'exactly',\n",
       " 616: 'sad',\n",
       " 617: 'running',\n",
       " 618: 'musical',\n",
       " 619: 'serious',\n",
       " 620: 'taken',\n",
       " 621: 'yourself',\n",
       " 622: 'whose',\n",
       " 623: 'released',\n",
       " 624: 'cinematography',\n",
       " 625: 'david',\n",
       " 626: 'scary',\n",
       " 627: 'ends',\n",
       " 628: 'english',\n",
       " 629: 'hero',\n",
       " 630: 'usually',\n",
       " 631: 'hours',\n",
       " 632: 'reality',\n",
       " 633: 'opening',\n",
       " 634: \"i'll\",\n",
       " 635: 'across',\n",
       " 636: 'today',\n",
       " 637: 'jokes',\n",
       " 638: 'light',\n",
       " 639: 'hilarious',\n",
       " 640: 'somewhat',\n",
       " 641: 'usual',\n",
       " 642: 'started',\n",
       " 643: 'cool',\n",
       " 644: 'ridiculous',\n",
       " 645: 'body',\n",
       " 646: 'relationship',\n",
       " 647: 'view',\n",
       " 648: 'level',\n",
       " 649: 'opinion',\n",
       " 650: 'change',\n",
       " 651: 'happy',\n",
       " 652: 'middle',\n",
       " 653: 'taking',\n",
       " 654: 'wish',\n",
       " 655: 'husband',\n",
       " 656: 'finds',\n",
       " 657: 'saying',\n",
       " 658: 'order',\n",
       " 659: 'talking',\n",
       " 660: 'ones',\n",
       " 661: 'documentary',\n",
       " 662: 'shots',\n",
       " 663: 'huge',\n",
       " 664: 'novel',\n",
       " 665: 'female',\n",
       " 666: 'mostly',\n",
       " 667: 'robert',\n",
       " 668: 'power',\n",
       " 669: 'episodes',\n",
       " 670: 'room',\n",
       " 671: 'important',\n",
       " 672: 'rating',\n",
       " 673: 'talent',\n",
       " 674: 'five',\n",
       " 675: 'major',\n",
       " 676: 'turned',\n",
       " 677: 'strange',\n",
       " 678: 'word',\n",
       " 679: 'modern',\n",
       " 680: 'call',\n",
       " 681: 'apparently',\n",
       " 682: 'disappointed',\n",
       " 683: 'single',\n",
       " 684: 'events',\n",
       " 685: 'due',\n",
       " 686: 'four',\n",
       " 687: 'songs',\n",
       " 688: 'basically',\n",
       " 689: 'attention',\n",
       " 690: '7',\n",
       " 691: 'knows',\n",
       " 692: 'clearly',\n",
       " 693: 'supporting',\n",
       " 694: 'knew',\n",
       " 695: 'british',\n",
       " 696: 'television',\n",
       " 697: 'comic',\n",
       " 698: 'non',\n",
       " 699: 'fast',\n",
       " 700: 'earth',\n",
       " 701: 'country',\n",
       " 702: 'future',\n",
       " 703: 'cheap',\n",
       " 704: 'class',\n",
       " 705: 'thriller',\n",
       " 706: '8',\n",
       " 707: 'silly',\n",
       " 708: 'king',\n",
       " 709: 'problems',\n",
       " 710: \"aren't\",\n",
       " 711: 'easily',\n",
       " 712: 'words',\n",
       " 713: 'tells',\n",
       " 714: 'miss',\n",
       " 715: 'jack',\n",
       " 716: 'local',\n",
       " 717: 'sequence',\n",
       " 718: 'bring',\n",
       " 719: 'entertainment',\n",
       " 720: 'paul',\n",
       " 721: 'beyond',\n",
       " 722: 'upon',\n",
       " 723: 'whether',\n",
       " 724: 'predictable',\n",
       " 725: 'moving',\n",
       " 726: 'similar',\n",
       " 727: 'straight',\n",
       " 728: 'romantic',\n",
       " 729: 'sets',\n",
       " 730: 'review',\n",
       " 731: 'falls',\n",
       " 732: 'oscar',\n",
       " 733: 'mystery',\n",
       " 734: 'enjoyable',\n",
       " 735: 'needs',\n",
       " 736: 'appears',\n",
       " 737: 'talk',\n",
       " 738: 'rock',\n",
       " 739: 'george',\n",
       " 740: 'giving',\n",
       " 741: 'eye',\n",
       " 742: 'richard',\n",
       " 743: 'within',\n",
       " 744: 'ten',\n",
       " 745: 'animation',\n",
       " 746: 'message',\n",
       " 747: 'theater',\n",
       " 748: 'near',\n",
       " 749: 'above',\n",
       " 750: 'dull',\n",
       " 751: 'nearly',\n",
       " 752: 'sequel',\n",
       " 753: 'theme',\n",
       " 754: 'points',\n",
       " 755: \"'\",\n",
       " 756: 'stand',\n",
       " 757: 'mention',\n",
       " 758: 'lady',\n",
       " 759: 'bunch',\n",
       " 760: 'add',\n",
       " 761: 'feels',\n",
       " 762: 'herself',\n",
       " 763: 'release',\n",
       " 764: 'red',\n",
       " 765: 'team',\n",
       " 766: 'storyline',\n",
       " 767: 'surprised',\n",
       " 768: 'ways',\n",
       " 769: 'using',\n",
       " 770: 'named',\n",
       " 771: \"haven't\",\n",
       " 772: 'lots',\n",
       " 773: 'easy',\n",
       " 774: 'fantastic',\n",
       " 775: 'begins',\n",
       " 776: 'actual',\n",
       " 777: 'working',\n",
       " 778: 'effort',\n",
       " 779: 'york',\n",
       " 780: 'die',\n",
       " 781: 'hate',\n",
       " 782: 'french',\n",
       " 783: 'minute',\n",
       " 784: 'tale',\n",
       " 785: 'clear',\n",
       " 786: 'stay',\n",
       " 787: '9',\n",
       " 788: 'elements',\n",
       " 789: 'feature',\n",
       " 790: 'among',\n",
       " 791: 'follow',\n",
       " 792: 'comments',\n",
       " 793: 're',\n",
       " 794: 'viewers',\n",
       " 795: 'avoid',\n",
       " 796: 'sister',\n",
       " 797: 'showing',\n",
       " 798: 'typical',\n",
       " 799: 'editing',\n",
       " 800: \"what's\",\n",
       " 801: 'famous',\n",
       " 802: 'tried',\n",
       " 803: 'sorry',\n",
       " 804: 'dialog',\n",
       " 805: 'check',\n",
       " 806: 'fall',\n",
       " 807: 'period',\n",
       " 808: 'season',\n",
       " 809: 'form',\n",
       " 810: 'certain',\n",
       " 811: 'filmed',\n",
       " 812: 'weak',\n",
       " 813: 'soundtrack',\n",
       " 814: 'means',\n",
       " 815: 'buy',\n",
       " 816: 'material',\n",
       " 817: 'somehow',\n",
       " 818: 'realistic',\n",
       " 819: 'figure',\n",
       " 820: 'crime',\n",
       " 821: 'doubt',\n",
       " 822: 'gone',\n",
       " 823: 'peter',\n",
       " 824: 'tom',\n",
       " 825: 'kept',\n",
       " 826: 'viewing',\n",
       " 827: 't',\n",
       " 828: 'general',\n",
       " 829: 'leads',\n",
       " 830: 'greatest',\n",
       " 831: 'space',\n",
       " 832: 'lame',\n",
       " 833: 'suspense',\n",
       " 834: 'dance',\n",
       " 835: 'imagine',\n",
       " 836: 'brought',\n",
       " 837: 'third',\n",
       " 838: 'atmosphere',\n",
       " 839: 'hear',\n",
       " 840: 'particular',\n",
       " 841: 'sequences',\n",
       " 842: 'whatever',\n",
       " 843: 'parents',\n",
       " 844: 'move',\n",
       " 845: 'lee',\n",
       " 846: 'indeed',\n",
       " 847: 'learn',\n",
       " 848: 'rent',\n",
       " 849: 'de',\n",
       " 850: 'eventually',\n",
       " 851: 'note',\n",
       " 852: 'deal',\n",
       " 853: 'average',\n",
       " 854: 'reviews',\n",
       " 855: 'wait',\n",
       " 856: 'forget',\n",
       " 857: 'japanese',\n",
       " 858: 'sexual',\n",
       " 859: 'poorly',\n",
       " 860: 'premise',\n",
       " 861: 'okay',\n",
       " 862: 'zombie',\n",
       " 863: 'surprise',\n",
       " 864: 'believable',\n",
       " 865: 'stage',\n",
       " 866: 'possibly',\n",
       " 867: 'sit',\n",
       " 868: \"who's\",\n",
       " 869: 'decided',\n",
       " 870: 'expected',\n",
       " 871: \"you've\",\n",
       " 872: 'subject',\n",
       " 873: 'nature',\n",
       " 874: 'became',\n",
       " 875: 'difficult',\n",
       " 876: 'free',\n",
       " 877: 'killing',\n",
       " 878: 'screenplay',\n",
       " 879: 'truth',\n",
       " 880: 'romance',\n",
       " 881: 'dr',\n",
       " 882: 'nor',\n",
       " 883: 'reading',\n",
       " 884: 'needed',\n",
       " 885: 'question',\n",
       " 886: 'leaves',\n",
       " 887: 'street',\n",
       " 888: '20',\n",
       " 889: 'meets',\n",
       " 890: 'hot',\n",
       " 891: 'unless',\n",
       " 892: 'begin',\n",
       " 893: 'baby',\n",
       " 894: 'superb',\n",
       " 895: 'credits',\n",
       " 896: 'imdb',\n",
       " 897: 'otherwise',\n",
       " 898: 'write',\n",
       " 899: 'shame',\n",
       " 900: \"let's\",\n",
       " 901: 'situation',\n",
       " 902: 'dramatic',\n",
       " 903: 'memorable',\n",
       " 904: 'directors',\n",
       " 905: 'earlier',\n",
       " 906: 'meet',\n",
       " 907: 'disney',\n",
       " 908: 'open',\n",
       " 909: 'dog',\n",
       " 910: 'badly',\n",
       " 911: 'joe',\n",
       " 912: 'male',\n",
       " 913: 'weird',\n",
       " 914: 'acted',\n",
       " 915: 'forced',\n",
       " 916: 'laughs',\n",
       " 917: 'sci',\n",
       " 918: 'emotional',\n",
       " 919: 'older',\n",
       " 920: 'realize',\n",
       " 921: 'fi',\n",
       " 922: 'dream',\n",
       " 923: 'society',\n",
       " 924: 'writers',\n",
       " 925: 'interested',\n",
       " 926: 'footage',\n",
       " 927: 'forward',\n",
       " 928: 'comment',\n",
       " 929: 'crazy',\n",
       " 930: 'deep',\n",
       " 931: 'sounds',\n",
       " 932: 'plus',\n",
       " 933: 'beauty',\n",
       " 934: 'whom',\n",
       " 935: 'america',\n",
       " 936: 'fantasy',\n",
       " 937: 'directing',\n",
       " 938: 'keeps',\n",
       " 939: 'ask',\n",
       " 940: 'development',\n",
       " 941: 'features',\n",
       " 942: 'air',\n",
       " 943: 'quickly',\n",
       " 944: 'mess',\n",
       " 945: 'creepy',\n",
       " 946: 'towards',\n",
       " 947: 'perfectly',\n",
       " 948: 'mark',\n",
       " 949: 'worked',\n",
       " 950: 'box',\n",
       " 951: 'cheesy',\n",
       " 952: 'unique',\n",
       " 953: 'setting',\n",
       " 954: 'hands',\n",
       " 955: 'plenty',\n",
       " 956: 'result',\n",
       " 957: 'previous',\n",
       " 958: 'brings',\n",
       " 959: 'effect',\n",
       " 960: 'e',\n",
       " 961: 'total',\n",
       " 962: 'personal',\n",
       " 963: 'incredibly',\n",
       " 964: 'rate',\n",
       " 965: 'fire',\n",
       " 966: 'monster',\n",
       " 967: 'business',\n",
       " 968: 'leading',\n",
       " 969: 'apart',\n",
       " 970: 'casting',\n",
       " 971: 'admit',\n",
       " 972: 'joke',\n",
       " 973: 'powerful',\n",
       " 974: 'appear',\n",
       " 975: 'background',\n",
       " 976: 'telling',\n",
       " 977: 'girlfriend',\n",
       " 978: 'meant',\n",
       " 979: 'christmas',\n",
       " 980: 'hardly',\n",
       " 981: 'present',\n",
       " 982: 'battle',\n",
       " 983: 'potential',\n",
       " 984: 'create',\n",
       " 985: 'bill',\n",
       " 986: 'break',\n",
       " 987: 'pay',\n",
       " 988: 'masterpiece',\n",
       " 989: 'gay',\n",
       " 990: 'political',\n",
       " 991: 'return',\n",
       " 992: 'dumb',\n",
       " 993: 'fails',\n",
       " 994: 'fighting',\n",
       " 995: 'various',\n",
       " 996: 'era',\n",
       " 997: 'portrayed',\n",
       " 998: 'co',\n",
       " 999: 'cop',\n",
       " 1000: 'secret',\n",
       " ...}"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lookup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'more'"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lookup[50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'the'"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lookup[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 332, 4, 274, 859, 4, 20]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data[2104]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['the', \"you're\", 'of', 'ending', 'poorly', 'of', 'on']"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[lookup[n] for n in test_data[2104]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1,\n",
       " 14,\n",
       " 22,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 973,\n",
       " 1622,\n",
       " 1385,\n",
       " 65,\n",
       " 458,\n",
       " 4468,\n",
       " 66,\n",
       " 3941,\n",
       " 4,\n",
       " 173,\n",
       " 36,\n",
       " 256,\n",
       " 5,\n",
       " 25,\n",
       " 100,\n",
       " 43,\n",
       " 838,\n",
       " 112,\n",
       " 50,\n",
       " 670,\n",
       " 2,\n",
       " 9,\n",
       " 35,\n",
       " 480,\n",
       " 284,\n",
       " 5,\n",
       " 150,\n",
       " 4,\n",
       " 172,\n",
       " 112,\n",
       " 167,\n",
       " 2,\n",
       " 336,\n",
       " 385,\n",
       " 39,\n",
       " 4,\n",
       " 172,\n",
       " 4536,\n",
       " 1111,\n",
       " 17,\n",
       " 546,\n",
       " 38,\n",
       " 13,\n",
       " 447,\n",
       " 4,\n",
       " 192,\n",
       " 50,\n",
       " 16,\n",
       " 6,\n",
       " 147,\n",
       " 2025,\n",
       " 19,\n",
       " 14,\n",
       " 22,\n",
       " 4,\n",
       " 1920,\n",
       " 4613,\n",
       " 469,\n",
       " 4,\n",
       " 22,\n",
       " 71,\n",
       " 87,\n",
       " 12,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 38,\n",
       " 76,\n",
       " 15,\n",
       " 13,\n",
       " 1247,\n",
       " 4,\n",
       " 22,\n",
       " 17,\n",
       " 515,\n",
       " 17,\n",
       " 12,\n",
       " 16,\n",
       " 626,\n",
       " 18,\n",
       " 2,\n",
       " 5,\n",
       " 62,\n",
       " 386,\n",
       " 12,\n",
       " 8,\n",
       " 316,\n",
       " 8,\n",
       " 106,\n",
       " 5,\n",
       " 4,\n",
       " 2223,\n",
       " 5244,\n",
       " 16,\n",
       " 480,\n",
       " 66,\n",
       " 3785,\n",
       " 33,\n",
       " 4,\n",
       " 130,\n",
       " 12,\n",
       " 16,\n",
       " 38,\n",
       " 619,\n",
       " 5,\n",
       " 25,\n",
       " 124,\n",
       " 51,\n",
       " 36,\n",
       " 135,\n",
       " 48,\n",
       " 25,\n",
       " 1415,\n",
       " 33,\n",
       " 6,\n",
       " 22,\n",
       " 12,\n",
       " 215,\n",
       " 28,\n",
       " 77,\n",
       " 52,\n",
       " 5,\n",
       " 14,\n",
       " 407,\n",
       " 16,\n",
       " 82,\n",
       " 2,\n",
       " 8,\n",
       " 4,\n",
       " 107,\n",
       " 117,\n",
       " 5952,\n",
       " 15,\n",
       " 256,\n",
       " 4,\n",
       " 2,\n",
       " 7,\n",
       " 3766,\n",
       " 5,\n",
       " 723,\n",
       " 36,\n",
       " 71,\n",
       " 43,\n",
       " 530,\n",
       " 476,\n",
       " 26,\n",
       " 400,\n",
       " 317,\n",
       " 46,\n",
       " 7,\n",
       " 4,\n",
       " 2,\n",
       " 1029,\n",
       " 13,\n",
       " 104,\n",
       " 88,\n",
       " 4,\n",
       " 381,\n",
       " 15,\n",
       " 297,\n",
       " 98,\n",
       " 32,\n",
       " 2071,\n",
       " 56,\n",
       " 26,\n",
       " 141,\n",
       " 6,\n",
       " 194,\n",
       " 7486,\n",
       " 18,\n",
       " 4,\n",
       " 226,\n",
       " 22,\n",
       " 21,\n",
       " 134,\n",
       " 476,\n",
       " 26,\n",
       " 480,\n",
       " 5,\n",
       " 144,\n",
       " 30,\n",
       " 5535,\n",
       " 18,\n",
       " 51,\n",
       " 36,\n",
       " 28,\n",
       " 224,\n",
       " 92,\n",
       " 25,\n",
       " 104,\n",
       " 4,\n",
       " 226,\n",
       " 65,\n",
       " 16,\n",
       " 38,\n",
       " 1334,\n",
       " 88,\n",
       " 12,\n",
       " 16,\n",
       " 283,\n",
       " 5,\n",
       " 16,\n",
       " 4472,\n",
       " 113,\n",
       " 103,\n",
       " 32,\n",
       " 15,\n",
       " 16,\n",
       " 5345,\n",
       " 19,\n",
       " 178,\n",
       " 32]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "first_words = train_data[0][:6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 14, 22, 16, 43, 530]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "first_words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'this'"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lookup[14-3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['the', 'as', 'you', 'with', 'out', 'themselves']"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[lookup[n] for n in first_words]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "The following special index numbers are reserved:\n",
    "* 0 = \"padding\"\n",
    "* 1 = \"start of sequence\"\n",
    "* 2 = \"unknown word\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 14, 22, 16, 43, 530]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "first_words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[14, 22, 16, 43, 530]"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "[n for n in first_words if n > 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[11, 19, 13, 40, 527]"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "[n-3 for n in first_words if n > 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['this', 'film', 'was', 'just', 'brilliant']"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "[lookup[n-3] for n in first_words if n > 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def decode(review):\n",
    "    word_codes = [n-3 for n in review if n > 2]\n",
    "    words = [lookup[c] for c in word_codes]\n",
    "    print(' '.join(words))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this film was just brilliant casting location scenery story direction everyone's really suited the part they played and you could just imagine being there robert is an amazing actor and now the same being director father came from the same scottish island as myself so i loved the fact there was a real connection with this film the witty remarks throughout the film were great it was just brilliant so much that i bought the film as soon as it was released for and would recommend it to everyone to watch and the fly fishing was amazing really cried at the end it was so sad and you know what they say if you cry at a film it must have been good and this definitely was also to the two little boy's that played the of norman and paul they were just brilliant children are often left out of the list i think because the stars that play them all grown up are such a big profile for the whole film but these children are amazing and should be praised for what they have done don't you think the whole story was so lovely because it was true and was someone's life after all that was shared with us all\n"
     ]
    }
   ],
   "source": [
    "decode(train_data[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n"
     ]
    }
   ],
   "source": [
    "print(train_labels[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "read the book forget the movie\n"
     ]
    }
   ],
   "source": [
    "decode(test_data[2104])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "print(test_labels[2104])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Vectorizing the Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "vector = np.zeros(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "vector[3] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 1., 0., 0., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "vector[[1,3,5,7]] = 1   # note the inner []'s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 0., 1., 0., 1., 0., 1., 0., 0.])"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def encode_as_vector(sequence, num_words=10000):\n",
    "    vector = np.zeros(num_words)\n",
    "    vector[sequence] = 1\n",
    "    return vector    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "vec = np.zeros(10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "seq = [11, 19, 13, 40, 527]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[11, 19, 13, 40, 527]"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "seq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "vec[seq] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0\n"
     ]
    }
   ],
   "source": [
    "print(vec[12])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 0., 0., 1., 1., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "encode_as_vector([4,1,5], 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 1., 1., 1.])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "encode_as_vector([2,3,2,4,2], 5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1,\n",
       " 14,\n",
       " 22,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 973,\n",
       " 1622,\n",
       " 1385,\n",
       " 65,\n",
       " 458,\n",
       " 4468,\n",
       " 66,\n",
       " 3941,\n",
       " 4,\n",
       " 173,\n",
       " 36,\n",
       " 256,\n",
       " 5,\n",
       " 25,\n",
       " 100,\n",
       " 43,\n",
       " 838,\n",
       " 112,\n",
       " 50,\n",
       " 670,\n",
       " 2,\n",
       " 9,\n",
       " 35,\n",
       " 480,\n",
       " 284,\n",
       " 5,\n",
       " 150,\n",
       " 4,\n",
       " 172,\n",
       " 112,\n",
       " 167,\n",
       " 2,\n",
       " 336,\n",
       " 385,\n",
       " 39,\n",
       " 4,\n",
       " 172,\n",
       " 4536,\n",
       " 1111,\n",
       " 17,\n",
       " 546,\n",
       " 38,\n",
       " 13,\n",
       " 447,\n",
       " 4,\n",
       " 192,\n",
       " 50,\n",
       " 16,\n",
       " 6,\n",
       " 147,\n",
       " 2025,\n",
       " 19,\n",
       " 14,\n",
       " 22,\n",
       " 4,\n",
       " 1920,\n",
       " 4613,\n",
       " 469,\n",
       " 4,\n",
       " 22,\n",
       " 71,\n",
       " 87,\n",
       " 12,\n",
       " 16,\n",
       " 43,\n",
       " 530,\n",
       " 38,\n",
       " 76,\n",
       " 15,\n",
       " 13,\n",
       " 1247,\n",
       " 4,\n",
       " 22,\n",
       " 17,\n",
       " 515,\n",
       " 17,\n",
       " 12,\n",
       " 16,\n",
       " 626,\n",
       " 18,\n",
       " 2,\n",
       " 5,\n",
       " 62,\n",
       " 386,\n",
       " 12,\n",
       " 8,\n",
       " 316,\n",
       " 8,\n",
       " 106,\n",
       " 5,\n",
       " 4,\n",
       " 2223,\n",
       " 5244,\n",
       " 16,\n",
       " 480,\n",
       " 66,\n",
       " 3785,\n",
       " 33,\n",
       " 4,\n",
       " 130,\n",
       " 12,\n",
       " 16,\n",
       " 38,\n",
       " 619,\n",
       " 5,\n",
       " 25,\n",
       " 124,\n",
       " 51,\n",
       " 36,\n",
       " 135,\n",
       " 48,\n",
       " 25,\n",
       " 1415,\n",
       " 33,\n",
       " 6,\n",
       " 22,\n",
       " 12,\n",
       " 215,\n",
       " 28,\n",
       " 77,\n",
       " 52,\n",
       " 5,\n",
       " 14,\n",
       " 407,\n",
       " 16,\n",
       " 82,\n",
       " 2,\n",
       " 8,\n",
       " 4,\n",
       " 107,\n",
       " 117,\n",
       " 5952,\n",
       " 15,\n",
       " 256,\n",
       " 4,\n",
       " 2,\n",
       " 7,\n",
       " 3766,\n",
       " 5,\n",
       " 723,\n",
       " 36,\n",
       " 71,\n",
       " 43,\n",
       " 530,\n",
       " 476,\n",
       " 26,\n",
       " 400,\n",
       " 317,\n",
       " 46,\n",
       " 7,\n",
       " 4,\n",
       " 2,\n",
       " 1029,\n",
       " 13,\n",
       " 104,\n",
       " 88,\n",
       " 4,\n",
       " 381,\n",
       " 15,\n",
       " 297,\n",
       " 98,\n",
       " 32,\n",
       " 2071,\n",
       " 56,\n",
       " 26,\n",
       " 141,\n",
       " 6,\n",
       " 194,\n",
       " 7486,\n",
       " 18,\n",
       " 4,\n",
       " 226,\n",
       " 22,\n",
       " 21,\n",
       " 134,\n",
       " 476,\n",
       " 26,\n",
       " 480,\n",
       " 5,\n",
       " 144,\n",
       " 30,\n",
       " 5535,\n",
       " 18,\n",
       " 51,\n",
       " 36,\n",
       " 28,\n",
       " 224,\n",
       " 92,\n",
       " 25,\n",
       " 104,\n",
       " 4,\n",
       " 226,\n",
       " 65,\n",
       " 16,\n",
       " 38,\n",
       " 1334,\n",
       " 88,\n",
       " 12,\n",
       " 16,\n",
       " 283,\n",
       " 5,\n",
       " 16,\n",
       " 4472,\n",
       " 113,\n",
       " 103,\n",
       " 32,\n",
       " 15,\n",
       " 16,\n",
       " 5345,\n",
       " 19,\n",
       " 178,\n",
       " 32]"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 1., ..., 0., 0., 0.])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "encode_as_vector(train_data[0], 10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "apple\n",
      "banana\n",
      "cherry\n",
      "lemon\n",
      "lime\n"
     ]
    }
   ],
   "source": [
    "for x in ['apple', 'banana', 'cherry', 'lemon', 'lime']:\n",
    "    print(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 apple\n",
      "1 banana\n",
      "2 cherry\n",
      "3 lemon\n",
      "4 lime\n"
     ]
    }
   ],
   "source": [
    "# a simple example of enumerate\n",
    "for i, x in enumerate(['apple', 'banana', 'cherry', 'lemon', 'lime']):\n",
    "    print(i, x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<enumerate at 0x314cf0220>"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "enumerate(['apple' ,'banana', 'cherry'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(0, 'apple'), (1, 'banana'), (2, 'cherry'), (3, 'lemon'), (4, 'lime')]"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(enumerate(['apple', 'banana', 'cherry', 'lemon', 'lime']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def vectorize_sequences(sequences, num_words=10000):\n",
    "    number_of_sequences = len(sequences)\n",
    "    data = np.zeros((number_of_sequences, num_words))  # note the extra ()'s\n",
    "    for i, sequence in enumerate(sequences):\n",
    "        data[i] = encode_as_vector(sequence)  # OR: data[i, sequence] = 1\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "train_vectors = vectorize_sequences(train_data)\n",
    "test_vectors = vectorize_sequences(test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 1., ..., 0., 0., 0.])"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_vectors[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10000"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train_vectors[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25000, 10000)"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_vectors.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(25000, 10000)"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_vectors.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 0, ..., 0, 1, 0])"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_labels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "To create the target values, we need to convert the review labels (0=negative review, 1=positive review) from integers to floats, so that they correspond to probabilities, since we'll be using a sigmoid output unit:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "train_targets = train_labels.astype('float32')\n",
    "test_targets = test_labels.astype('float32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 0., 0., ..., 0., 1., 0.], dtype=float32)"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_targets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The Neural Network"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "<img src=\"http://science.slc.edu/jmarshall/bioai/images/imdb_network.png\" width=\"55%\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from keras.models import Sequential\n",
    "from keras.layers import Dense, Input\n",
    "\n",
    "def build_network():\n",
    "    network = Sequential()\n",
    "    network.add(Input(shape=(10000,)))\n",
    "    network.add(Dense(16, activation='relu', name='hidden1'))\n",
    "    network.add(Dense(16, activation='relu', name='hidden2'))\n",
    "    network.add(Dense(1, activation='sigmoid', name='output'))\n",
    "    \n",
    "    network.compile(loss='binary_crossentropy',\n",
    "                    optimizer='rmsprop',\n",
    "                    metrics=['accuracy'])\n",
    "    return network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "network = build_network()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
      "┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃\n",
      "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
      "│ hidden1 (Dense)                 │ (None, 16)             │       160,016 │\n",
      "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
      "│ hidden2 (Dense)                 │ (None, 16)             │           272 │\n",
      "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
      "│ output (Dense)                  │ (None, 1)              │            17 │\n",
      "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
      " Total params: 160,305 (626.19 KB)\n",
      " Trainable params: 160,305 (626.19 KB)\n",
      " Non-trainable params: 0 (0.00 B)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "network.summary(print_fn=print)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/25\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2026-04-08 15:59:17.937123: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:117] Plugin optimizer for device_type GPU is enabled.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 8ms/step - accuracy: 0.8116 - loss: 0.4807\n",
      "Epoch 2/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9025 - loss: 0.2868\n",
      "Epoch 3/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9220 - loss: 0.2226\n",
      "Epoch 4/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9328 - loss: 0.1907\n",
      "Epoch 5/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9414 - loss: 0.1674\n",
      "Epoch 6/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9474 - loss: 0.1514\n",
      "Epoch 7/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9539 - loss: 0.1381\n",
      "Epoch 8/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9609 - loss: 0.1243\n",
      "Epoch 9/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9631 - loss: 0.1153\n",
      "Epoch 10/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9646 - loss: 0.1091\n",
      "Epoch 11/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9692 - loss: 0.0998\n",
      "Epoch 12/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9710 - loss: 0.0939\n",
      "Epoch 13/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9745 - loss: 0.0867\n",
      "Epoch 14/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9787 - loss: 0.0795\n",
      "Epoch 15/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9776 - loss: 0.0791\n",
      "Epoch 16/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9814 - loss: 0.0709\n",
      "Epoch 17/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9810 - loss: 0.0700\n",
      "Epoch 18/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9844 - loss: 0.0641\n",
      "Epoch 19/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9855 - loss: 0.0602\n",
      "Epoch 20/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9865 - loss: 0.0583\n",
      "Epoch 21/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9883 - loss: 0.0533\n",
      "Epoch 22/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9890 - loss: 0.0501\n",
      "Epoch 23/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9891 - loss: 0.0509\n",
      "Epoch 24/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9893 - loss: 0.0489\n",
      "Epoch 25/25\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9911 - loss: 0.0436\n"
     ]
    }
   ],
   "source": [
    "history = network.fit(train_vectors, train_targets, epochs=25, batch_size=512)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def plot_history(history):\n",
    "    loss_values = history.history['loss']\n",
    "    accuracy_values = history.history['accuracy']\n",
    "    epoch_nums = range(1, len(loss_values)+1)\n",
    "    plt.figure(figsize=(12,4)) # width, height in inches\n",
    "    plt.subplot(1, 2, 1)\n",
    "    plt.plot(epoch_nums, loss_values, 'r')\n",
    "    plt.title(\"Training loss\")\n",
    "    plt.xlabel(\"Epochs\")\n",
    "    plt.ylabel(\"Loss\")\n",
    "    plt.subplot(1, 2, 2)\n",
    "    plt.plot(epoch_nums, accuracy_values, 'b')\n",
    "    plt.title(\"Training accuracy\")\n",
    "    plt.xlabel(\"Epochs\")\n",
    "    plt.ylabel(\"Accuracy\")\n",
    "    plt.ylim(0, 1)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAGJCAYAAAD2VnIMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVp1JREFUeJzt3QmcjeX7x/HvjDH2fSzZE5G9bCEiouVX0aYNSfolldJGQlIp7UVUv6Sd+KdVhBYlEhItlOw7yb42zv913U9nzIwZZjkzZ/u8X6/ndc55znbPcw73uZ77vq8rxufz+QQAAAAAAIIuNtgNAAAAAAAAHoJ0AAAAAABCBEE6AAAAAAAhgiAdAAAAAIAQQZAOAAAAAECIIEgHAAAAACBEEKQDAAAAABAiCNIBAAAAAAgRBOkAAAAAAIQIgnQgQl1//fWqWrVqlp774IMPKiYmRuHWbgAAQlW49ssAch9BOpDLrJPNyPbVV1/x2QAAQL8MIMrE+Hw+X7AbAUSTt956K8XtN954Q9OnT9ebb76ZYv+5556rsmXLZvl9Dh8+rCNHjihfvnyZfu4///zjtvz58ysYIw12gmLVqlW5/t4AgOhDvwwg1BCkA0F26623atSoUTrR+bJ9+/apYMGCinQE6QCAYKJfDl/2W+rAgQMqUKBAsJsCZAvT3YEQ1KZNG9WtW1cLFixQ69atXXB+//33u/s+/PBDXXjhhSpfvrwbJT/llFM0bNgwJSYmHnftm41M2zT6J598Ui+//LJ7nj2/SZMm+uGHH0649s1u2w+XDz74wLXNnlunTh1NnTr1mPbbSHjjxo3dSLy9z0svvZSt9XR79+7VXXfdpUqVKrn3rVmzpvs7Up/YsBkJZ511looXL67ChQu7x/mPm98LL7zg2m3HtESJEq6d77zzTpbaBQCIDtHcL3/zzTe64oorVLlyZfce1hffeeed2r9//zGPXbp0qa688kqVLl3aBcrWDw8cODDFY9avX6+ePXsmHa+TTz5ZvXv31qFDh9L9W824cePc/uQz7ex4/uc//9G0adPc32fvaX+bee2113TOOeeoTJky7n1q166t0aNHp/k3fvbZZzr77LNVpEgRFS1a1H0G/t8GQ4YMUd68ebV169ZjnnfTTTe53xx2YgAIpLiAvhqAgPnrr790/vnn66qrrtJ1112XNPXdOikLQPv16+cuv/jiCw0ePFi7du3SE088ccLXtU5n9+7d+u9//+s6uxEjRujSSy/VihUrXCd0PN9++63ef/993XLLLa4je/7553XZZZdpzZo1KlWqlHvMjz/+qPPOO08nnXSShg4d6n6kPPTQQ67DzgoLxC+++GJ9+eWXrlNv2LCh64zvuece19E/88wz7nG//PKL66jr16/v3s865OXLl2v27NlJr/XKK6/o9ttv1+WXX66+ffu6TnXx4sX6/vvvdc0112SpfQCA6BCt/fLEiRPdbD4LpO01582b5054r1u3zt3nZ/1pq1atXJsteLUA+s8//9THH3+sRx55xD1mw4YNatq0qXbs2OEeU6tWLdeXT5o0yb1HfHy8MmvZsmW6+uqr3fHr1auXOzFgLCC3kxb2GyIuLs61w46TLQXs06dP0vPt87vhhhvcYwcMGOCCbjtmdrLDfht07drVHa8JEya4kyJ+dlLB2m3HOxjLAxHhbE06gODp06ePDQen2Hf22We7fWPGjDnm8fv27Ttm33//+19fwYIFfQcOHEja1717d1+VKlWSbq9cudK9ZqlSpXzbt29P2v/hhx+6/R9//HHSviFDhhzTJrsdHx/vW758edK+n376ye1/4YUXkvZddNFFri3r169P2vfHH3/44uLijnnNtKRu9wcffOCe9/DDD6d43OWXX+6LiYlJas8zzzzjHrd169Z0X/uSSy7x1alT54RtAABEL/rlE//uGD58uOuDV69enbSvdevWviJFiqTYZ44cOZJ0vVu3br7Y2FjfDz/8cMxr+h+X1m8Q89prr7n99nvGz34v2L6pU6dmqN0dO3b0VatWLen2jh07XJubNWvm279/f7rtbt68uXtMcu+//7577y+//PKY9wGyi+nuQIiykeAePXocsz/5Ois7875t2zZ35trOQNs0sxPp0qWLm+btZ881dsb+RNq3b++myfnZqLVNC/M/187Oz5gxQ506dXLT2PyqV6/uRh+yYsqUKcqTJ48bAU/Opr/buQObombszLd/2qGdJU+LPcbO/KeeRggAwIlEa7+c/O+z5Wf297Vo0cL1wTbibGwq+KxZs9yItE2LT84/dd36Zpuaf9FFF7mp6alldUmcTZfv2LHjcdu9c+dO126b0m7Hxm77l8nZZ9a/f/9jRsOTt6dbt25u1p3NDPB7++233dR/e00g0AjSgRBVoUKF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JCNIDzSCdAAAIsovv0hjxnjXKbkGAMhpBOk5FaT//be0c2fAXx4AAORuybU77/RKrnXuLLVty9EHAOQsgvRAszrpCQne9ZUrA/7yAACEo1GjRqlq1arKnz+/mjVrpnnz5h338c8++6xq1qypAgUKqFKlSrrzzjt14MAB5bYpU6Tp06X4eOmJJ3L97QEAUYggPScw5R0AgCQTJkxQv379NGTIEC1cuFANGjRQx44dtWXLljSP0jvvvKP+/fu7x//222969dVX3Wvcf//9uX5ULZN748ZeybVTTsn1twcARCGC9JxAkA4AQJKnn35avXr1Uo8ePVS7dm2NGTNGBQsW1NixY9M8St99951atmypa665xo2+d+jQQVdfffUJR99zQtOm0vffS0OH5vpbAwCiFEF6TiBIBwDAOXTokBYsWKD27dsf/fERG+tuz5kzJ82j1KJFC/ccf1C+YsUKTZkyRRdccEG6R/XgwYPatWtXii1QYmOl/Pn5QAEAuSMul94nuhCkAwDgbNu2TYmJiSpbtmyKI2K3ly5dmuZRshF0e95ZZ50ln8+nf/75RzfffPNxp7sPHz5cQxnuBgBEgNhwTCbjN378eMXExKhTp04KKQTpAABk2VdffaVHH31UL774olvD/v777+vTTz/VsGHD0n3OgAEDtHPnzqRt7dq1fAIAgLAUFyrJZGx9mgXols3VksksW7ZMZcqUSfd5q1at0t13361WrVop5PiD9FWrvNotMTHBbhEAAEGRkJCgPHnyaPPmzSn22+1y5cql+ZxBgwapa9euuvHGG93tevXqae/evbrppps0cOBAN10+tXz58rkNAIBwFxtuyWSMTZu79tpr3bS2atWqHff1c3KNWroqV/YC8337pHQy1wIAEA3i4+PVqFEjzZw5M2nfkSNH3O3mzZun+Zx9+/YdE4hboG9s+jsAAJEsNtySyZiHHnrIjbL37NnzhO9ha9SKFSuWtFmt1RxnZ/IrVPCuUysdABDlbMbcK6+8otdff92VVOvdu7cbGbcT9KZbt25uurrfRRddpNGjR7tlbStXrtT06dPd6Lrt9wfrAABEqrhwSybz7bffunqpixYtytB7WKdvPw78bCQ9VwJ1m/K+bp0XpJ95Zs6/HwAAIapLly7aunWrBg8erE2bNqlhw4aaOnVqUv+/Zs2aFCPnDzzwgMs5Y5fr169X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QD300EOBbmNksx88N97oXbcp7wAABFnfvn1dorgtW7aoYMGC+uWXXzRr1iw1btz4mNKoAAAgBIL0n3/+WU3/zUz+3nvvqW7duvruu+/09ttva5xN3UbmdOsmWd3ZefOkJUs4egCAoJozZ4476Z6QkKDY2Fi3nXXWWRo+fLhuv/12Ph0AAEItSD98+LDy5cvnrs+YMSNpbVqtWrW0cePGwLYwGpQpYwv8vOuvvhrs1gAAopxNZy9SpIi7boH6hg0b3HUrybbMlmcBAIDQCtLr1KmjMWPG6JtvvtH06dN13nnnuf3WiZcqVSrQbYwO/invb74pHTgQ7NYAAKKYzZD76aef3PVmzZq5UmyzZ892o+vVqlULdvMAAIhoWQrSH3/8cb300ktq06aNrr76ajVo0MDt/+ijj5KmwSOTOnSQLBHf9u3SBx9w+AAAQfPAAw/oyJEj7roF5itXrlSrVq00ZcoUPf/883wyAADkoBifP2VrFqbC7dq1SyVKlEjat2rVKpdgpoxN3w5R1uZixYpp586dKhpq5c4GD5aGDZPat5emTw92awAAuSSk+6Z/bd++3fX5/gzvoS4cjikAIHrsykS/lKWR9P379+vgwYNJAfrq1av17LPPunVqoRygh7wbbvCyvc+YIa1cGezWAACikOWdiYuLc0likytZsmTYBOgAAISzLAXpl1xyid544w13fceOHW692lNPPaVOnTpp9OjRgW5j9KhaVWrXzrv+2mvBbg0AIArlzZtXlStXphY6AADhFKQvXLjQrU0zkyZNUtmyZd1ougXurFULUAK5sWNtTUF2Xw0AgEwbOHCg7r//fjfFHQAA5K64rDxp3759SaVZPv/8c1166aWuhuqZZ57pgnVkQ6dONqdQWr9emjZNuuACDicAIFeNHDlSy5cvV/ny5V3ZtUKFCh1zsh4AAIRQkF69enV98MEH6ty5s6ZNm6Y777zT7d+yZQvJWbLL6s937So995xXM50gHQCQy2z5GgAACKPs7jbF/ZprrnHr1c455xxXK90MHz5cs2bN0meffaZQFRbZXpcskerXl+LipHXrpLJlg90iAEC0901hhmMKAIiq7O6XX3651qxZo/nz57uRdL927drpmWeeycpLIrl69aRmzaR//pH+TdAHAAAAAIh8WQrSTbly5XT66adrw4YNWmejvZKaNm2qWrVqBbJ90atnT+/SprxnrZQ9AABZYnlm8uTJk+4GAABCbE36kSNH9PDDD7uya3v27HH7LJHcXXfd5TLCWueObLrqKsnW+i9bJs2eLZ11FocUAJArJk+efEzt9B9//FGvv/66hg4dyqcAAECoBekWiL/66qt67LHH1LJlS7fv22+/1YMPPqgDBw7okUceCXQ7o49lz+/SxSvF9r//EaQDAHLNJZdckuZStzp16mjChAnq6Z/tBQAAQiNxnJVkGTNmjC6++OIU+z/88EPdcsstWm/lw0JUWCWS+e47yU6CFCwobdggFSsW7BYBAKK4b1qxYoXq16+fNIsulIXLMQUARIddOZ04bvv27WmuPbd9dh8CpHlz6bTTrDC9NH48hxUAEDT79+/X888/rwoVKvApAACQg7IUpDdo0EAjR448Zr/tszPsCJCYGOnGG73rNuUdAIBcUKJECZUsWTJps9uWe2bs2LF64okn+AwAAAi1NekjRozQhRdeqBkzZqi5jfZKmjNnjtauXaspU6YEuo3RrWtXqX9/af586aef7AxJsFsEAIhwVk41xk4U/8sSwpYuXVrNmjVzATsAAAixIP3ss8/W77//rlGjRmnp0qVu36WXXqqbbrrJZX1v1apVoNsZvUqXtgw+0qRJXjm2558PdosAABHu+uuvD3YTAACIWllKHJeen376SWeccYYSExMVqsIykcy0adJ559n8Qy+BXP78wW4RACCC+6bXXntNhQsX1hVXXJFi/8SJE7Vv3z51795doS7UjikAILrtyunEcchl7dtLlSpJf/9txWs5/ACAHDV8+HAlJCQcs79MmTJ69NFHOfoAAOQggvRwkCePdMMN3nUSyAEActiaNWt08sknH7O/SpUq7j4AAJBzCNLDRY8eXrb3L76Q/vwz2K0BAEQwGzFfvHhxmsvaSpUqFZQ2AQAQLTKVOM6Swx3Pjh07stsepKdKFencc6XPP7fFgtLDD3OsAAA54uqrr9btt9/uyq61bt3a7fv666/Vt29fXXXVVRx1AABCJUi3he4nur9bt27ZbRPSYzXT/UH6gw9KcVlKzg8AwHENGzZMq1atUrt27RT3b19z5MgR18ezJh0AgDDK7h4Owjrb68GDUsWK0rZt0scfS//5T7BbBACI4L7pjz/+0KJFi1SgQAHVq1fPrUkPF6F6TAEA0WlXJvolhmLDSb58Uteu0jPPeDXTCdIBADmoRo0abgMAALmHxHHhpmdP79JG0jdtCnZrAAAR6LLLLtPjjz9+zP4RI0YcUzsdAAAEFkF6uKlTR2reXEpMlF5/PditAQBEoFmzZumCCy44Zv/555/v7gMAADmHID2cR9Ntynt0pRQAAOSCPXv2KD4+/pj9efPmdWvqAABAziFID0ddukiFC1tGH+mbb4LdGgBAhLEkcRMmTDhm//jx41W7du2gtAkAgGhB4rhwZAG61an93/+87d8atgAABMKgQYN06aWX6s8//9Q555zj9s2cOVPvvPOOJk2axEEGACAHMZIe7lPe7cfSjh3Bbg0AIIJcdNFF+uCDD7R8+XLdcsstuuuuu7R+/Xp98cUXql69erCbBwBARCNID1fNmnlJ5Pbv99amAwAQQBdeeKFmz56tvXv3asWKFbryyit19913q0GDBhxnAAByEEF6uIqJkW67zbs+cKA0f36wWwQAiDCWyb179+4qX768nnrqKTf1fe7cucFuFgAAEY016eGsVy9pyhTpo4+kSy+VFiyQSpcOdqsAAGFs06ZNGjdunF599VWXyd1G0A8ePOimv5M0DgCAnMdIejiLjZXeeEOqUUNau1a6+mrpn3+C3SoAQBivRa9Zs6YWL16sZ599Vhs2bNALL7wQkNceNWqUqlatqvz586tZs2aaN29ehp5nGeVjYmLUqVOngLQDAIBQR5Ae7ooVk95/XypUyFLvSg88EOwWAQDC1GeffaaePXtq6NChbk16njx5AvK6Vs6tX79+GjJkiBYuXOjWtXfs2FFbtmw57vNWrVrl1sG3atUqIO0AACAcEKRHgrp1pbFjveuPP+4F7QAAZNK3336r3bt3q1GjRm60e+TIkdq2bVu2j+PTTz+tXr16qUePHm7K/JgxY1SwYEGN9fddaUhMTNS1117rThhUq1Yt220AACBcEKRHiiuvlPr186537y4tXRrsFgEAwsyZZ56pV155RRs3btR///tfN9XcksYdOXJE06dPdwF8Zh06dEgLFixQ+/btk/bFxsa623PmzEn3eQ899JDKlCnjRvYzwtbN2xr65BsAAOGIID2S2Cj62WdLe/ZInTtLWfgxBQBAoUKFdMMNN7iR9SVLlrg66Y899pgLmi+++OJMHSAbibdR8bJly6bYb7ctSV1a7H0tcZ2dMMio4cOHq1ixYklbpUqV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xtaYLVy4UA0aNFDHjh21JZ3s1/v27VO1atVcOZYTlW0Bwo7V/7Xkc5984o2oP/mklxX+4EEveL/gAqlSJemee7xkdAAAAAAiTlDXpNvIeZMmTTTSSlX9W5KlUqVKuu2229S/f//jPtdG0++44w63ZQbr/hBW7J/njz9Kr7/u1WX/66+j9zVq5K1dt5H3k0/2RuUBhCX6Jo4pACCy7QqHNemWtXXBggVq37790cbExrrbc+bMCdj7HDx40B2Q5BsQNizwPuMMb/36hg3S5MlSp05SXJy0YIF0++3SKadIFSpIV14pPf+8t59p8QAAAEBYClqQvm3bNiUmJiaVX/Gz2/56qIFgNVftjIV/s5F6ICzFx3sBugXqFrBb4G7J5fLm9dazT5wo9e0rNW7sJaE791xp6FBp5kxpz55gtx4AAABABkR8nfQBAwa4de9+NpJOoI6wV7q0N4pu2/790g8/SN9+623ffSft3CnNmOFtxhLRNWwonXWWt7VsKZ10UrD/CgAAAAChEqQnJCQoT5482rx5c4r9djuQSeHy5cvnNiBiFSggtW7tbebIESuFcDRot23NGm8avG02Am+qVfMCdhtx79jRC/wBAAAAROd09/j4eDVq1EgzbSruvyxxnN1ublN4AWRNbKxUr55Xe92Sza1e7QXp774r9ekjNWjgrXVfsUJ64w2pa1dbZ+KVgrPp8TYqb4E+AAAAgOia7m7T0Lt3767GjRuradOmru753r171aNHD3d/t27dVKFCBbeu3J9s7tdff026vn79ei1atEiFCxdW9erVg/mnAKHNcjFcdZW3GZsOb3XYv/5amjrVyyA/b563PfigN6p+/vle2bcOHaQSJYL9FwAAAABRIagl2IyVX3viiSdcsriGDRvq+eefd6XZTJs2bVyptXHjxrnbq1at0slWaiqVs88+W1999VWG3o8yN0AaLBGdBetTpkiffy7t3p1yZL5FCy9gt8DdPxIPIGDomwKPYwoACNd+KehBem6j0wZO4NAhL/mcBey22fr25MqXPzrKbiUUT/CfDAD6pmCgvwcAhBKC9AAdHADy1rN/9pkXsFu2+H37jh4Wq9feqpUXsF94oVSrFqPsQA533OCYAgDCD0F6gA4OgFQOHJC++eboKPvvv6e8v2pVL1i3oL1tWy/zPICAdtzIGI4pACCUEKQH6OAAOIHly71R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",
      "text/plain": [
       "<Figure size 1200x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_history(history)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 3ms/step - accuracy: 0.9953 - loss: 0.0339\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.03388628363609314, 0.9953200221061707]"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network.evaluate(train_vectors, train_targets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 3ms/step - accuracy: 0.8508 - loss: 0.7571\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.7571200728416443, 0.8507599830627441]"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network.evaluate(test_vectors, test_targets)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Using a Validation Set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "train_vectors = vectorize_sequences(train_data)\n",
    "test_vectors = vectorize_sequences(test_data)\n",
    "\n",
    "train_targets = train_labels.astype('float32')\n",
    "test_targets = test_labels.astype('float32')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "We will use the first 10,000 training samples as a **validation set** for monitoring learning progress, and the remaining 15,000 samples to actually train the network:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# validation set\n",
    "val_vectors = train_vectors[:10000]\n",
    "val_targets = train_targets[:10000]\n",
    "\n",
    "# training set\n",
    "train_vectors_remaining = train_vectors[10000:]\n",
    "train_targets_remaining = train_targets[10000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "network = build_network()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 35ms/step - accuracy: 0.7507 - loss: 0.5663 - val_accuracy: 0.8421 - val_loss: 0.4472\n",
      "Epoch 2/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8815 - loss: 0.3602 - val_accuracy: 0.8794 - val_loss: 0.3282\n",
      "Epoch 3/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9107 - loss: 0.2634 - val_accuracy: 0.8843 - val_loss: 0.2942\n",
      "Epoch 4/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9249 - loss: 0.2125 - val_accuracy: 0.8825 - val_loss: 0.2903\n",
      "Epoch 5/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9405 - loss: 0.1766 - val_accuracy: 0.8884 - val_loss: 0.2750\n",
      "Epoch 6/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9487 - loss: 0.1512 - val_accuracy: 0.8844 - val_loss: 0.2836\n",
      "Epoch 7/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9577 - loss: 0.1301 - val_accuracy: 0.8847 - val_loss: 0.3001\n",
      "Epoch 8/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9659 - loss: 0.1119 - val_accuracy: 0.8822 - val_loss: 0.3127\n",
      "Epoch 9/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9707 - loss: 0.0984 - val_accuracy: 0.8806 - val_loss: 0.3427\n",
      "Epoch 10/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9762 - loss: 0.0844 - val_accuracy: 0.8810 - val_loss: 0.3626\n",
      "Epoch 11/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9805 - loss: 0.0754 - val_accuracy: 0.8797 - val_loss: 0.3854\n",
      "Epoch 12/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9825 - loss: 0.0668 - val_accuracy: 0.8708 - val_loss: 0.4507\n",
      "Epoch 13/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9865 - loss: 0.0573 - val_accuracy: 0.8788 - val_loss: 0.4219\n",
      "Epoch 14/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9868 - loss: 0.0538 - val_accuracy: 0.8721 - val_loss: 0.4557\n",
      "Epoch 15/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - accuracy: 0.9898 - loss: 0.0467 - val_accuracy: 0.8725 - val_loss: 0.4735\n",
      "Epoch 16/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9929 - loss: 0.0389 - val_accuracy: 0.8690 - val_loss: 0.5050\n",
      "Epoch 17/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9948 - loss: 0.0341 - val_accuracy: 0.8592 - val_loss: 0.5801\n",
      "Epoch 18/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9936 - loss: 0.0366 - val_accuracy: 0.8711 - val_loss: 0.5601\n",
      "Epoch 19/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9965 - loss: 0.0261 - val_accuracy: 0.8725 - val_loss: 0.5934\n",
      "Epoch 20/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9968 - loss: 0.0241 - val_accuracy: 0.8665 - val_loss: 0.6267\n",
      "Epoch 21/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9956 - loss: 0.0268 - val_accuracy: 0.8705 - val_loss: 0.6623\n",
      "Epoch 22/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9960 - loss: 0.0230 - val_accuracy: 0.8673 - val_loss: 0.6863\n",
      "Epoch 23/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9987 - loss: 0.0162 - val_accuracy: 0.8648 - val_loss: 0.7089\n",
      "Epoch 24/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9949 - loss: 0.0232 - val_accuracy: 0.8665 - val_loss: 0.7240\n",
      "Epoch 25/25\n",
      "\u001b[1m30/30\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9964 - loss: 0.0216 - val_accuracy: 0.8660 - val_loss: 0.7461\n"
     ]
    }
   ],
   "source": [
    "history = network.fit(train_vectors_remaining, train_targets_remaining,\n",
    "                      epochs=25, batch_size=512,\n",
    "                      validation_data=(val_vectors, val_targets))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "history_dict = history.history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['accuracy', 'loss', 'val_accuracy', 'val_loss'])"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history_dict.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.7506666779518127,\n",
       " 0.8815333247184753,\n",
       " 0.9106666445732117,\n",
       " 0.9248666763305664,\n",
       " 0.9405333399772644,\n",
       " 0.9487333297729492,\n",
       " 0.9576666951179504,\n",
       " 0.9658666849136353,\n",
       " 0.9707333445549011,\n",
       " 0.9761999845504761,\n",
       " 0.9805333614349365,\n",
       " 0.98253333568573,\n",
       " 0.9865333437919617,\n",
       " 0.9868000149726868,\n",
       " 0.989799976348877,\n",
       " 0.9929333329200745,\n",
       " 0.9947999715805054,\n",
       " 0.9936000108718872,\n",
       " 0.9965333342552185,\n",
       " 0.9968000054359436,\n",
       " 0.9955999851226807,\n",
       " 0.9959999918937683,\n",
       " 0.9986666440963745,\n",
       " 0.9949333071708679,\n",
       " 0.996399998664856]"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history_dict['accuracy']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# generalized version that plots validation data if available\n",
    "\n",
    "def plot_history(history):\n",
    "    loss_values = history.history['loss']\n",
    "    accuracy_values = history.history['accuracy']\n",
    "    validation = 'val_loss' in history.history\n",
    "    if validation:\n",
    "        val_loss_values = history.history['val_loss']\n",
    "        val_accuracy_values = history.history['val_accuracy']\n",
    "    epoch_nums = range(1, len(loss_values)+1)\n",
    "    plt.figure(figsize=(12,4)) # width, height in inches\n",
    "    plt.subplot(1, 2, 1)\n",
    "    if validation:\n",
    "        plt.plot(epoch_nums, loss_values, 'r', label=\"Training loss\")\n",
    "        plt.plot(epoch_nums, val_loss_values, 'r--', label=\"Validation loss\")\n",
    "        plt.title(\"Training/validation loss\")\n",
    "        plt.legend()\n",
    "    else:\n",
    "        plt.plot(epoch_nums, loss_values, 'r', label=\"Training loss\")\n",
    "        plt.title(\"Training loss\")\n",
    "    plt.xlabel(\"Epochs\")\n",
    "    plt.ylabel(\"Loss\")\n",
    "    plt.subplot(1, 2, 2)\n",
    "    if validation:\n",
    "        plt.plot(epoch_nums, accuracy_values, 'b', label='Training accuracy')\n",
    "        plt.plot(epoch_nums, val_accuracy_values, 'b--', label='Validation accuracy')\n",
    "        plt.title(\"Training/validation accuracy\")\n",
    "        plt.legend()\n",
    "    else:\n",
    "        plt.plot(epoch_nums, accuracy_values, 'b', label='Training accuracy')\n",
    "        plt.title(\"Training accuracy\")\n",
    "    plt.xlabel(\"Epochs\")\n",
    "    plt.ylabel(\"Accuracy\")\n",
    "    plt.ylim(0, 1)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAGJCAYAAAD2VnIMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlplJREFUeJzt3QmYTeUfB/Cvfd93su+7soVKRZSSUFnKnopCRSFbWpAt6z+Rpc0SIUUkUYjIrhCRsS/Z9+3+n+97nJk7150xY+7Mucv38zznufeee+69Z87cmXN+7/t7f28il8vlgoiIiIiIiIg4LrHTOyAiIiIiIiIiFgXpIiIiIiIiIn5CQbqIiIiIiIiIn1CQLiIiIiIiIuInFKSLiIiIiIiI+AkF6SIiIiIiIiJ+QkG6iIiIiIiIiJ9QkC4iIiIiIiLiJxSki4iIiIiIiPgJBekisdC6dWsUKFDgjo7ZO++8g0SJEgXF8V62bJn5WXgb22Pz77//mtdOmTLFp/vEz+Y+JDT+HPx5+HOJiEjC0TnZonOySPBRkC5BgUFSTBb3oDLYjR49GhkyZMDVq1cRLH777TfT2HHq1Cmnd0VERKKgc/KtdE4WkdhIGqutRfzUF198Eenx559/jsWLF9+yvmTJknH6nAkTJuDGjRt39NrevXujR48eSCjz589HnTp1kCxZsgT5vLgcm9gE6f379ze9JxkzZoz03I4dO5A4sdodRUScpnPyrXROFpHYUJAuQeH555+P9Hj16tUmSPdc7+nChQtInTp1jD8nLgFv0qRJzZIQ+HP98ssv+Pjjj5FQEqoxICopUqRw9PNFRMSic3JkOidLVM6fP480adLoAMkt1O0kIePBBx9EmTJlsG7dOjzwwAMmOH/77bfNc99++y0ef/xx5M6d2wR7hQsXxnvvvYfr169HO/7NHl89dOhQjB8/3ryOr69cuTLWrl172zHpfPzqq69i7ty5Zt/42tKlS2PhwoW37D9T9StVqoSUKVOaz/nkk0+iHOe+ZMkSXL58GY899hj++OMPs81nn312y3aLFi0yz33//ffm8d69e9GxY0cUL14cqVKlQpYsWfDMM8/EaLy1t7GBTEvneqbds+e7VatWXlPVN2/ebLYrVKiQ+fly5syJtm3b4r///ot0/N58801zv2DBguHplPa+eRuTvnv3brP/mTNnNr/ve++91/RmeB5Xvs/XX3+NDz74AHfddZfZh1q1amHXrl24U//73//M75K/U36vXnnllVt+9p07d6Jx48bm5+Vn8rObNm2K06dPh2/Dxqb77rvPHL+0adOa3439vRURCVQ6J+ucHB/n5Nhcx/Cc/Prrr5vrB56r+VktW7bE8ePHw7e5dOmSuf4oVqyY2Y9cuXKhUaNG+OeffyLtr+dwSm/1d3iNwvM4X1uvXj2kS5cOzz33nHlu+fLlZj/z5ctn9iVv3rxm3y5evHjLfm/fvh3PPvsssmXLZn5G/qy9evUyzy1dutR87pw5c2553dSpU81zq1atuu1xFOepJ11CCoM+Bq4MhNjSnyNHDrOe/0T5j/ONN94wtz///DP69u2LM2fOYMiQIbd9X/7jO3v2LF566SXzD3Dw4MHmnziDxNv1MK9YsQKzZ882JxX+wx41apQJ3MLCwszJhTZs2IBHH33UnByY7s3Gg3fffdf8g/ZmwYIFqFixovn5uDD45QmPQbK7GTNmIFOmTKhbt655zIYFppTz+PBkxZMMe+N5MfXXX3/FKuvA5XKhQYMG5ud7+eWXzVADnjQ898EORHms2rRpYwLWP//80zR68JZZETymPJ5///03pk2bho8++ghZs2Y1r43qGBw5cgTVq1c3PRidO3c2x5INFU8++SRmzZqFhg0bRtp+0KBBJl2+W7duJkjm75Anz99//x2xxRM6f0+1a9dGhw4dTCo+jyOP78qVK8134sqVK+a4szGlU6dO5uc+cOCAaTDhhQMbNvjzP/HEEyhXrpz5ffPEzYsUvoeISKDTOVnnZF+fk2N6HXPu3Dncf//92LZtm+kUuOeee0xwPm/ePOzfv99cY/Bai+dgdnzw/bp06WKu9XjNsnXrVtNhElvXrl0z5342vrODx96fmTNnmusVXjPwemXNmjWmjgH3hc+5d2pwv3kd8eKLL5oGBgb93333nWnU4M/JAP+rr7665ZhyHfe5WrVqsd5vcYBLJAi98sorLs+vd82aNc26cePG3bL9hQsXbln30ksvuVKnTu26dOlS+LpWrVq58ufPH/54z5495j2zZMniOnHiRPj6b7/91qz/7rvvwtf169fvln3i4+TJk7t27doVvm7Tpk1m/ejRo8PX1a9f3+zLgQMHwtft3LnTlTRp0lvek/Lly2c+z9azZ09XsmTJIu3j5cuXXRkzZnS1bds22uOwatUq8xmff/55+LqlS5eadbyN6tjMnTvXbDN48ODwddeuXXPdf//9Zv3kyZOj/dxp06aZ7X799dfwdUOGDDHreNw98bO5D7bXXnvNbLt8+fLwdWfPnnUVLFjQVaBAAdf169cj/SwlS5Y0x8Q2cuRIs37Lli2u6PDncN+no0ePmt9pnTp1wj+DxowZY7abNGmSebxhwwbzeObMmVG+90cffWS2OXbsWLT7ICLiz3RO1jk5oc7JMb2O6du3r1k3e/bsW7a/ceOGueX5mtsMHz48ym28XQ+5Xx+6X+vwGoXrevToEaP9HjhwoCtRokSuvXv3hq974IEHXOnSpYu0zn1/7Gu+FClSuE6dOhW+jtcmvGZ0vzYU/6Z0dwkp7Ilkb60npgvZ2ErK1lS2VLJVk2lFt9OkSRPTI23ja4m9w7fD3lb31lj2mqZPnz78tWzJ/emnn/DUU0+ZtGlbkSJFTFaAJ7bushee6fvu+8cq7+yxt/3444+mx5bPeTsO3J69HPwcplqvX78escHefI7BZ6uwLUmSJKbX2JP75zK1jMefaXAU2891//wqVaqY1mobsyTY8syWdbaou+P3Inny5Hf0O3TH3xV7yV977bVIhezat29vfq92ah97yu0hB/yeeWMXx+NwjPguyiciktB0TtY52dfn5Jhex3zzzTcoX778Lb3NZA8j5DbsUfd23RKXKXXdr4u87TfHqfM6iNmA7M9hNiUdO3YMv/76q+n5Z1p8VPvDlH1m6TFDwT1zkr34t6vVJP5DQbqElDx58kT6p29jWjH/UTNwYiDFFGr7H5n7+OCoeP6ztAP2kydPxvq19uvt1x49etSMSeJJxpO3dQwCmeLO8es2nohKlChh/knbeJ8nn4cffjh8HT+Haf5MleLFE5/nsWAwH5Pj4DkujOn5DIzdceyUpxMnTpg0Mu43T1T8TI47p9h+rvvne/ssu8I/n/fV79Dzc8nzs/m947AD+3n+fBxe8emnn5rjzPS3sWPHRvp52YBSo0YNvPDCC+bYMN2OwxYUsItIMNA5WedkX5+TY3odwxRx1gKKDrfhudyXRX/5XkzD98TOFY5ZZw0dXjdxn2vWrGmes/fbbqC43X7zeo+1kZjebuN9dn54u24U/6Qx6RJS3FsqbfzHzX+EDM457pe92iwOwhbX7t27xyggYg+xN1ZGe/y9NqoeZI5f92zlZcDH8UpsneXYd467atasWaSTD1uLJ0+ebHqBOWaJjRZ8HwaH8RkYsgAKx5CxMFyFChXMCYqfx58joQJSX/8eYmLYsGHmpMyecmY2cOz8wIEDzTh8nsT5fWWrOQvBsPGFBQXZuMKGFW4f1T6LiAQCnZN1Tvb1OTmhr2Oi6lH3LDxsY8OB53Sx3PaRRx4xHRa87mSQzYrvrFPDa4Q72W/2prPzg2Pa2avO64oxY8bE+n3EOQrSJeSxIifToZgKzqrvtj179vjFscmePbtpNPBW1dRzHRscGOyyYrwnBuksZsb0LfbKsigeT1rumBrFwm4MHt3Tz71VZL+d/Pnzm2IrLM7i3pvOImru2CrO7bhvbP12r3wel/Qyfr7nZ5E9fIHPxwf7ffnZ7Dm3MQWe3ykOb3BXtmxZs/Tu3dv87thzPm7cOLz//vvmeZ7MWdWWy/DhwzFgwABTxZWBu+d7iYgEOp2TI+icHHsxPWbskOHwwOhwGxaqY9p8VEWA7R5+z/f3zAyIzpYtW0xhXBa3ZXBtY4E6d/Y1xe32m3h9x2w9FttldgH33314o/g/pbtLyLNba91bZxlQcQotf9k/BmOcpu3gwYORAvQffvgh0rbsXaU6dep4TSljMMieWC5MRXdvlLA/y7OVmtVFo2oRjg6nF+H4J/e52vk+fD/PzyTPzx0xYsQt72nPJRqTRgN+Pqujuk81wnFerBrPaqilSpVCfODviqntrNLv/jNNnDjRpKzZtQLYSMLj446/HwblbPUmtqp7YqYB2duIiAQTnZMjHwudk2P//YnJMeMsOps2bfI6VZn9em7D7ENvPdD2NmyY52cy681dbK4hvX3neX/kyJGRtmMKPK/bJk2aZNLjve2PjWn+rFv05ZdfmlR3Zibas+JIYFBPuoQ8FuZgSyhbXpluzN7aL774Il7TnO9kSi8G4OxlZcERnmx40uC4pI0bN4Zvx5RoFkqzi5J5Yisqe6vZM9+uXbtbUq441Qh/dr6eQSwDXBZCs6eCi4369eub/e3Ro4cpCsP3Y7aC5xhzDjPgSYfTq7C1mmMU+bN6y2TgtHLEnmS2ErNlmJ9jB+/u+LlsQeZJir9XjvNiKzXfl9kEnj+7r/Ak2rNnT5MZwJMip5dhrzpP2BwjZtc64DR/zHjgvKicf5UBO489T9a8MCAOv+CJn4E9LwRYn4Dvw1R494J4IiLBQufkCDonx15MjxmH17HXnedgFmLj9QUbxjkUkNlsrOXDXu3PP//c9Eiz0Z/F69jYz/fjtLmcZpafw/dgQwCvH9n7zqlUeb6OKaa383Wcbo4p7rwu4nWKt/H37ADg+Z9TxrHoHuvb8BqL13/u14PE/X/66afN/ffee+8OjqY4SUG6hDz+4+Y/1K5du5qUYwbsDKSYXmzPH+40njzYa85/4H369DEFURjAcX5PO32bjQocs8xtosIgnT8jq4l7S3tiqy2DRLa6Mj2MQTZPRndyHBgE82THcWFsyeXJiwErU9DuvvvuW+aZ5zgyFk7jz8FMAP687tXsiUEuTzQ8gfJn5TgtBt3egnSm9DN9nOO7ePLkz8PK+ZxL1L3yfXw1qjBYZ0PK66+/bhoIeDJlqrqdMscLAB5X7g9Pypwrlev4c9uV7Xm8ePJlqzlb89kKzvoJbACIqiFGRCSQ6ZwcQefk2IvpMeMwvOXLl6Nfv36mN52N+BxeyGs/u7Ab34d1fljPh9cpDJz5/WSQzMw3G68x2MnAaxOOOWednSFDhty2wJuN1wW8FrDr0rAjhcWM2ZDP6wJ3fMzx5bwWZKYif0Y24vMzPbETg9e0vFbi9YQElkSch83pnRCRO8Np2ViZnuO32cpbtWpV8zi+UrlFRERE52Txf8zQY2cHg3UOuZPAojHpIgGChT/cMTBnC++DDz4Yvo49tQrQRUREdE6W0MZaRpxb3b0YnQQO9aSLBAgWeuNUHPZc20xzYvGwDRs2oGjRok7vnoiISMjQOVn8FSvSb9682QwP5DA5TiksgUdj0kUCBIuQsRDa4cOHzZgnzv/JnnMF6CIiIjonixA7cVgLiLPBTJkyRQclQKknXUREROINZyhgEaV169bh0KFDpkgT62ncbq5sVlRmjQ0WymTBS2YSiYiIhAKNSRcREZF4wymLWJGYszfEBGds4AwMDz30kJlSiDNEvPDCC1i0aJF+SyIiEhLUky4iIiIJc9GRKNFte9I5bSLn/N26dWv4uqZNm+LUqVNm6kUREZFgF3Jj0jlX4MGDB5EuXTpzsSAiIuI0zoZ69uxZM11O4sShneS2atUq1K5dO9I6znHMHvXosJAmF/fz/YkTJ8y8xjrfi4hIIJ3rQy5IZ4DO8W0iIiL+Zt++fbjrrrsQylgcM0eOHJHW8fGZM2fMVJSpUqXy+rqBAweif//+CbSXIiIi8XeuD7kgnT3o9sFJnz6907sjIiJiAlA2INvnKIm9nj17mmJzttOnTyNfvnw634sEIJcLuHCB/xuBs2et21OnrNvTp61b+769eD7HJZAlTQowVMmQAUieHGDHK5OA7VvP++6L5/obN4CrV63lyhVriep+fEiWDEiblnFYxK19317cn0vrdsuF+3/yZMRy4oT3+/bii/1NkcI67rxNmRJYsADInTvhzvUhF6TbKW8M0BWki4iIP1FaNpAzZ04cOXIk0nHhY56zo+pFJ05NycWTzvcid4aBEQPj//4DLl60AmcuXO/tfnTPMeB2D6Q9A2tv665f981vjv8WGBPx34e3JXXq2z/H8MEzmPVconqOo3AY7DHgtoNub7ee67z8O4t3/F3xuHv+DFyXJIkV/Md2sRsKEvp7e+KE9d3lwp/BDrZ56754rrMbRJw+14dckC4iIiL+q1q1aljALgs3ixcvNutF5M4DFwa+x49HLAxevN23H3Ph65zEYIkBq71kzOj9NrrnnAh2AxVjR/bgc2EDRSBKnBjInNlaihRBwFKQLiIiIvHm3Llz2LVrV6Qp1ji1WubMmU06OtPUDxw4gM8//9w8//LLL2PMmDF466230LZtW/z888/4+uuvTcV3kVDA3szz54Fjx4CjR61bpnyzN9pzYQ+3t/Wez7Fn8U4DbvZCM2Dzlkodk/tc2BttB9N2T7H74rnOfpwmTcL2wor4CwXpIiIiEm/++OMPM+e5zR433qpVK0yZMgWHDh1CWFhY+PMFCxY0Afnrr7+OkSNHmuI6n376qanwLhLIQbcdcNuL+2PP+5cuxc++MODOmtVasmTxft/9MW+Z/isiCSvk5knngP0MGTKYgjJRjUnnIbl27Rqu+2owjISsJEmSIGnSpBpnKiJxPjdJ7OiYSkLgOORDh4ADB6JeDh60erNji73P2bJZC1O32Zttj5G273tbPJ/nY75eAbdI4JyX1JPu4cqVK6ZV/8Kd/DcV8SJ16tTIlSsXkqspWkREJCCwn4Zjsw8ftpaogm/2ese0u4sFqrJnt4Ju+za6+0r1FgldCtLd3Lhxw4yVY+8nJ5lnUKVKu3KnmJHBRp9jx46Z71XRokWROL7LRYqIiEgU52WrcrgdeEe3MPiO6RhuTtfEqZny5IlYPB/nzKmgW0RiTkG6GwZUDNQ5fx17P0XiitMFJUuWDHv37jXfr5RsRhcREZF46wHfuxfYtg3Yvj1i2b/fCr5jM9abBcvYo50jx61Bt/vCsdtqgxcRX1KQ7oV6O8WX9H0SERHxLY5K/PtvKwC3A3Lech3npY4Oq4azZ9vbwoDcvs8AnVNRiYgkNP3rERERERG/dOIE8OefkQNx3rK3PKqx4JwXu3hxoEQJoGRJ637BghFBOAupiYj4MwXpIiIiscXo4Nw5az4jEYkzTlH211/A1q2RFxZniwqrlTMIZzBuB+S8zZ+fs6volyIigUtBukSpQIECeO2118wSE8uWLTNz4Z48eRIZOddHPOG8utynU6dOxdtniIhE6ZdfgB49rMGos2bpQInEAlPRd+ywesfdg/Hdu6N+DYPuUqVuDcg5FlxEJBgpSA8Ct6tA369fP7zzzjuxft+1a9ciDef/iKHq1aub6es4/5+ISFBatQp48EHrPv8/shIVc2hFJBIWaHMfM24H5VzH4m7eMBW9TJnIC4Pz20wnLCISdBSkBwEGxrYZM2agb9++2MFm6pvSpk0baVqw69evI2kMKqFkY8WUWOCUdTl1sSoiwZiHazdY3nuvFaQzcujdWwG6hLz//otcSd2+v2dP1GPG2ZZftqwVhJcuHXEby8sOEZGgpUmbb4dnGF6gObFEdXbzwMDYXtiLzZ51+/H27duRLl06/PDDD6hYsSJSpEiBFStW4J9//kGDBg2QI0cOE8RXrlwZP/300y3p7iNGjAh/zPf99NNP0bBhQzNFHef9njdvXqR0d25jp6EzLZ1p74sWLULJkiXN5zz66KORGhWuXbuGzp07m+2yZMmC7t27o1WrVnjqqacQGx9//DEKFy5sGgqKFy+OL774wu1X6DKZBPny5TM/f+7cuc1n2v73v/+Zn4XTo/F4PP3007H6bBEJUvxf1bEjUKgQYA+vYeYS/1eOHQvkyuX0HookCM4XzqD7hx+A4cOBF18EHnjACqqZcn7//UD79sCwYcCCBVbqOi9hOPKtWjWgTRtg6FBg4UJrKrSTJ4Hly3nuBl591Wr3UoAuIhJBPekxmePDrSc6QbEoUSzSzaPTo0cPDB06FIUKFUKmTJmwb98+1KtXDx988IEJXD///HPUr1/f9MAzmI1K//79MXjwYAwZMgSjR4/Gc889Z+YAz5w5s9ftL1y4YD6XQTOnInv++efRrVs3fPXVV+b5Dz/80NyfPHmyCeRHjhyJuXPnmrHtMTVnzhx06dLFNCjUrl0b33//Pdq0aYO77rrLvM8333yDjz76CNOnT0fp0qVx+PBhbNq0ybz2jz/+MAE794/p+idOnMByXjmISOhiBDF4MDByJHDxorVu9mygbVvrvipSSYhUVWdQzrb4RYuA06ej3paXDfZ4cfdx49mzW+1aIiISOwrSQ8S7776LRx55JPwxg+ry5cuHP37vvfdMsMue8VfZrB2F1q1bo1mzZub+gAEDMGrUKKxZs8b0kHtz9epVjBs3zvRyE9+b+2JjoN+zZ0/TO09jxozBAjbDxwIbAbhfHdnjBeCNN97A6tWrzXoG6WFhYSargAF8smTJTCNElSpVzLZ8juPun3jiCZNxkD9/ftx9992x+nwRCaJG2dGjgUGDInrO2Q04cCBQs6bTeycS7zhS7rvvrGXlyshjx5MnB4oVixyI85brfNSfICIiNylIv53Uqa0ebac+20cqVaoU6fG5c+dMCvj8+fNN+jnTzi9evGiC1uiUK1cu/D6D2/Tp0+Po0aNRbs+0eDtAp1y5coVvf/r0aRw5ciQ8YKYkSZKYtPwbzK2LoW3btuFF5t65qVGjhumVp2eeecb0sjOLgI0JzCBg1gDH5bPhgoG5/RwXO51fREIIhxgx4ti3z3rMAbIDBgD166srUILWtWtWMG4H5izq5o7jxvknwIWXETEoZyMiIj6gf7e3wzytIGgi9qzSzpTzxYsXm97mIkWKIFWqVGYs9pUrV6J9H/ZEu+MY9OgCam/bc4x4QsqbN69J4+eYe/7M7HFnuv4vv/xies/Xr19vxtP/+OOPpugeGy9Y2T4+p5ETET/A/0V2Li7/RzLb6OefmXoENG+utHYJSkwS4dhwBuVMZ+foDhtP2Rwf/uSTwBNPsDaNk3sqIhK6VDguRK1cudKkiLPXuGzZsiYd/N9//03QfWCROxZqY0BsY+V5Bs2xwbHs/Hnc8XEpVl++iY0Q7D1nej4D8lWrVmHLli3mOfaoMxWeY+03b95sjsPPvFAXkeB07BjH1gCVK1ulqG2sesWy1C1aKECXoPLPPwDrwNaqZRVo46i1qVOtAD1LFqBlS2DmTOD4ceDHH61ibgrQRUSco570EMVq5rNnzzaBK3u3+/TpE6sUc1/p1KkTBg4caHrzS5QoYcaonzx58rZzv7t788038eyzz5qx5Ay2v/vuO/Oz2dXqWWWewX/VqlVNGvuXX35pgnamubPI3O7du/HAAw+YgnocD8/jwArxIhJEWACOFbC+/NLqRmSeL73/PnCzkKUpRS0SJL3lS5daATcXVlt3x5Ed7C1nGjtnFVQtRBER/6IgPUQNHz4cbdu2NRXNs2bNaqY+O3PmTILvBz+X1dZbtmxpxqNzbHndunXN/ZjidG0cf87UfVZ5L1iwoKkW/yBz9sx1d0YMGjTIFJRjsM7MAQbynPKNzzGgZ4r7pUuXTOPFtGnTTBV4EQkCLEn9+uvArFnA2bMR6znA9vnngeeec3LvRHyCbU5r1gCLF1tB+e+/Ry76xjR2TpNmjy93KxUjIiJ+KJEroQcIO4yBKNOsWbSMRc/cMUjbs2ePCfI4Z7YkPPZiM32dPeOsOB8M9L0SSWBHjgA5clj3mSGUP781OTNv7cCcXYkBcm4SHVNv2Dtu95RzhJbnFGmsvl6njrVwcgKnZpMVEZHYn+vVky6O4hzrLNhWs2ZNXL582UzBxoaS5izaJCISUwcOWINsmc5+6JD1mN2HiRMDo0YBWbNy2gfrsUgAYhDunsLOcebuMmcGate2gnLWQOTc5SIiEpgUpIujEidObMaMs9o8kzrKlCljxpKzN11EJFpMX//mGyswZ1einRjG4HzzZqBiRetxw4Y6kBKwli8H+vUDfv01cgo7p0OrXj2it/yeezS2XEQkWChIF0dxejTPyuwiIrc1bRrw4ovAuXMR6+67z6rM/vTTVreiSADbtYt1W4DZsyPWFSsWEZSz7Eq6dE7uoYiIxBe/yPsbO3YsChQoYMaBswL3GlY/iQKLgbHyt+fy+OOPJ+g+i4iIgzjF4vnzVtTC+hUcoMsuRwbuCtAlgJ04YdU65FecATpHaLz8svUV37EDGD3aKv6mAF1EJHg53pM+Y8YMU3V73LhxJkAfMWKEqe69Y8cOZM+e/ZbtWYn7ypUr4Y//++8/lC9fHs8880wC77mIiCQIprGzOju7Fnv2tNaVLw+sXm3NdR6LKRtF/BUvbf73P+Ddd635y+mxx4AhQwBNOCIiEloS+8NUYO3bt0ebNm1QqlQpE6xzLutJkyZ53T5z5szImTNn+LJ48WKzfVRBOouRsZKe+yIiIgFi2TKgalXg2WeBvn2BnTsjnqtSRQG6BEUb1Jw5ViDOHnQG6GXKAIsWAQsWKEAXEQlFjgbp7BFft24darMcqb1DiRObx6tWrYrRe0ycOBFNmzZFmjRpvD4/cOBAU+reXjgGWkRE/NyWLQCHMT30ELB2LcD/8b17AzlzOr1nIj7zxx/W2PJGjaxEEc4cOH48sHGjNe5cRERCk6NB+vHjx3H9+nXksOezvYmPDx8+fNvXc+z61q1b8cILL0S5Tc+ePc1cdPayb98+n+y7iIjEg6NHgTZtrHR2diOyhHXHjtZ8UyxxrYG4EgR4KdKypTVag1XbU6a02qCYKNK+vaq0i4iEOsfHpMcFe9HLli2LKkx5jEKKFCnMIiIiAYDjyzmtGnOAWaV9wACgaFGn90rEZ7MGDh4MDB0KXLpkreOEBB98wNlOnDvIV68CBw4AYWHAjRtW776tZk3gr7+s9rKsWSMvBQsCb70Vse327UDy5NZzbE9TuQgRkQAM0rNmzYokSZLgyJEjkdbzMcebR+f8+fOYPn063mWFFfEJVs6vUKGCKd5HrLj/2muvmSUqrKw/Z84cPPXUU3H6bF+9T3TeeecdzJ07FxuZRygi/oGRyrffAk2aWI+zZQPGjQMKF7bGoosEAc5vzlI7ffrwGsda98ADwLBhQKVK1uNr16wZBTNmjHgdg3kGznwN261SpYpY7roL6No1Ytu5c4ELF6xeefftuGTKFLkRgL32DKjZo8+FyYt8fypXDti0KWLb48ethTyTHDmO3j1IZ7van39a95Mls4L1LFmsW7a1MZXf1ratVbGen8uGAfuWCy8B+fPYnn/eGg7AwD9tWmux73Myhx49Irbl6BhO/OC+LZfUqa2GBjUciEggcDRIT548OSpWrIglS5aEB2c3btwwj1999dVoXztz5kxTFO55/ucOcfXr18fVq1excOHCW55bvnw5HnjgAWzatAnleOaNhbVr10Y51t/XgfKhQ4eQiVcRIhIaeCX+1VdWtMAohFfajzxiPde8udN7J+Izp04BtWoB69dHtEPVqAGkTw/06mUFvlyOHQPuvRf47beI144ZA+zd6/19OUWbe5DOiQ8YeHvjGXizUB17x90x6ZCBP3vH3U2ebD3HP1kG6//9FxG4uzco2O/BRoGLF63e+UOHrMVbgM/Zdu2A3pNnVsHff1vBtzdsAHAP0tlowHqT3jBYZzaDjaMlebzZsOG+8Ofg7dSpEUE9G1lYKsNuSPBc2LaYJIm17dix1vu6P8/n+L7MNBg+PGLkzvz5Vg0C+zku7vdZmoMNDCISWhxPd+f0a61atUKlSpVM2jp7cdlLzmrv1LJlS+TJk8cUgPNMdWdgn4VNtCGuXbt2aNy4Mfbv34+7eIZ1M3nyZHNsYxugUzZeSSSQ22VOiEgQWbkSYIYOq2YR/2/Zub8iQYS94/37WwE6A1qWVWCymnsvsTuPxEK0a2cFvCzdw/nSeZ8L/1wYnLpj4J8nT8Q27svp05G3ZRV5rmcwbC885XvrZY5mROEt1q2zbtmjbwfz9i2Dd3fMEuCEO/y5+Llc7PueQenIkVa5CmYaMMjmrX3fc0RjvnxAiRKRt2Emg9277+7ff4Ft27z/LNzW/Xgw4WfevKh/dk6fZwfpDNAZ4EeF0+q5N5hMnBj1tvv3RxyP99+33pcZDJwBwF6YeMQsgbji94oZC2zs2bHDWvi9YMaHjQ1LbIBhY4695M9vNWqISBAF6U2aNMGxY8fQt29fUyyO6dbsEbaLyYWFhZmK7+44h/qKFSvw448/JtyOMncqKvyv7P7fKbpt+bO4n6mi2jYWPdhPPPGECainTJmC3uyVuuncuXMm42DIkCFmPnlmJ/z66684efIkChcujLfffhvNmjWL8n0909137txpGgRYsK9QoUIYybOmh+7du5u0dTYYMPB+7rnnzO82WbJkZv/682rlZnq73YjQunXrW9Ldt2zZgi5dupgq/5xij40QnK4vLZvBAfOaU6dO4b777sOwYcPMTAGs8s9GHn5WTDBr4/3338f48ePNd7BkyZIYNGgQHn30UfM835ONSN988405ZvxOvvzyy6YYocvlMj8Lpwrk8Aw2Fj399NMYNWpUjH9vIiGHPebduwPTp1uP2ZXEK77OnW+9ghcJcHv2WGnaq1dbjxnoMMWbQSuDR7ZNey6egTfT42Pq009jvm009XZ9gkEll+jG2d881cZItWox3/azzyI/Zho9g08unIveHS9j2IBgP+++sIHFHVP5GRzzMs59cW9csPH3zqKA7tuwoeDyZWsf3Bsh7r/fep7r7efd77tvyx53NipwmTUrYj0bKtgwwWn77FrM/I7xtR6X0OZ4sHEkQ4aIdbwUZGYDv7P2sAdbkSKRg3Q2KHg2JlHu3MB99wEzZkSsY+MU+9LYDms3YESHn+0+7MFeKFSzCfg95HeBv2NfNMRI4PCLXzeDx6jS25d5yVkqXry4CZIS1M3g0Kt69ax8JVv27FYzsjeswOL+MxUoEDHYy10sfr6kSZOajAMGwb169QoPgBmgs3o+A3EG7BxawCA6ffr0mD9/Plq0aGGC9egK77kHtI0aNTKB6u+//24q5Xsbq54uXTqzH7lz5zaBdvv27c26t956yzTIsBo/G2F++uknsz2nxfPETIq6deuiWrVqJuX+6NGjpoI/vyN8b9vSpUuRK1cuc7tr1y7z/mzk4WfGBBsZGOB/8sknuPvuu03A/eSTT+LPP/9E0aJFTcA9b948fP3118iXL5+ZGcCeHYCB+0cffWTqIpQuXdo0MHFIgYhEgf/TmLe5dat1RcouQnYLeczuIRIM2NvZoYMVDBHboOyyC++95+iuhRz+u7HH5nti0B1TLPAXU489Zi0x0aqVtcTE6NFW9X/+G7UXDlvgJSd7v90beV5+2er958/Ihb3f7BnndrlyRR4awckzWB+AeFlWvLgV9POWwyrc/42//ba1LQN6e2GDwMGDt17O8l8+hzkwuORltHvgzYCejQrul84c8uEN6za4D3fglIUnT1q1FjwXNgg8+WTEtvwbZL9XTBoJ4sPvvwOzZ1vHh8G258LfacWKEQ1MbMd2f95upGBjy7RpwLPPRgwBYV8lM0fYGMZbjhqLa80FNgq4D2mx73M/+N1gGMMGGbL3j/2UqvUQpEG6xF3btm1Nj/kvv/xiCsDZvdTsgbbniO/WrVv49p06dcKiRYtMABqTIJ1B9fbt281rGIDTgAED8JjHWci9J5898fxMBrIM0lOlSmV6wtmoEF16+9SpU3Hp0iV8/vnn4WPix4wZY8bef/jhh+FZFhzDzvUsPliiRAk8/vjjpp5BTIP0oUOHmkYL9sAT35sBP3vjx44da7I4GKyzt54NH/mZz3UTn+PPULt2bdNzzyA+JsdRJKTYXSK8OuIZnJk07Lpivu/ddzu9dyI+x4CAfQ5ffGE9ZtDEC1wGYT4u8SIhiME1l7p1I9bxXyzT9lm7wD0QZRDO4JlBIhd3DK4YjNk9sx9+aAWBDMwZLEcVcHE9E588/83zO85g3f11bBRgshSDPN5nbQZ3sRnhZAeqtlWrbq1xYGODhHuQzjoPzDxg8F6hQuSFqfqemQZ3ivvIY87RXPXrW5kxxCkWOaNDVNwbNpg54S1LwX5/90aY5ct5LR95GzZE2UH7O+9YQ2CIvwM26HjWlLAfc+hJyZLWth99FLkYpCf2SdpBOhsNODqZCawczsOFgbx9n2GHXf+Vwyi4z56FH+37bGBhDYa4cLms75o9JIi3bLhg/Q/i0Bd+T/l3wt+7fWvf57Z2rQi+jz0ch885MVuFgvSY4n+6qHg2z3HgVFQ8/xvwP6sPMEitXr266Q1mkM6eZRaNs6vfs0edQTWD8gMHDphUbhbeYyp5TGzbtg158+YND9CJPd2eZsyYYXqg//nnH9N7f+3aNdNzHxv8rPLly0cqWlejRg3Tm8+hDnaQzh5sBug29qqz9z4mzpw5g4MHD5r3dcfHdo84U+ofeeQRk7nBFHgOK6hTp4557plnnjHBPNP++Vy9evVMIwIbIETkZonlLl2svE/Oc04NG1qLmtwlCDEQYs1D9jLyVM+ibjcnS8GLLzq9dxKs+F0rVMhaPANZBkYMzligj4EUg3AuTGF3v1x56KE7/3z+O+e4dc8yRvw89vYyuGQvMkd3ug8T8MxssIsIeg4nsIMkd19+afW6szfdfTlx4tYhFlxvj+3n8v33URdU3LnTCnJjMnMzfx6e5hiUswYBj7f9WayJatc/rV3byn4oVszqcbYLA9oLGwtsPD2yv8f9eXthgOleqJH1J5hRwARPewYIBqV2LQEWknSvexBd/xUbXuwgnQ0B/J0yYLWnWuSQBf4eWNuCn2uza10woOXvwzMT4mZ5MWPFCmu4T1QY8N/sM8MPP1iXD+7BPL8DdvDNBggW4yTWieDn2EG5ZyIyC1+2bm3d5+8pumE27EOwG6H4/5xDUWz8biV0fWtFFDEVmybw+Nr2NjhenD3k7AVmLzpT2WsyL8UUKRli0rsZWHJueQbATFdnsO4rHD/OMegcq810dfbesxedKeXxwXPsOXu7Gcj7yj333IM9e/bghx9+MJkEzz77rOk5nzVrlmmwYIMB1y9evBgdO3YMz2SI6Zh4kaDEqzFeHXz+ufWYky8zQtHcRxLkeJHJAJ1JV7xI51h0XrwylVWJI5LQeCnCwIvLM884d/wZ3HnUNPYqNrWK7QAtJhjAMnhmAL5hgzWunwv7dNhYYWNwxwCZfXJM8WfwzL9bu9edwaLdWLB4sTXS1bNuAfu92HNs98YS38N96sHo2EFxTEbdMth0DziZHcFGCP68DNzd60UzeGUjgf3+7lMjcnEf0sB29ZYtYzY8gAEtA29mSTBg5637/bJlI7ZlZgGPmbfij7x1//kY7O/cGfXn2jNGuAfQ3rBRxC4aaf9NsJ+PoQLXu99ycb989wwnfJVxERsK0oMIg0gWW2O6OFPFO3ToED4+feXKlWjQoEH4lHUMZv/++2+Ucv/LjAaLqnE8NqdKY481rbar4dz022+/mZRwjou37fWYO4bT7rFX/3afxbHnHJtu96Zz/1lAkL3avsDefWYF8H3thgz7c9zT1rkdx7pzYWE49pqfOHECmTNnNun77D3n8sorr5hsBvbkM7gXCTm8CuC8QpyJwy6IyRzfAQNU7UZCwqBBVu8gx5Qy5ZNlF0i96CLOYeDFFH4u7smTbEBzn/WAgSEvmRl4b95sLXZbs11Lwh7RyZR6bsdeZb4nl+rVgfLlb51BIKGwt51V/rl4Ylq8Z2p8VGKz/zxebJDgEl2RSG+NCu48A2KOpF2+PHIQz9CB/18ZeLMoo40jfFmXwZ4+0d6Gx8Mzae/hh6MeJuGJvej8HdsBfFxT8e+EgvQgwvHeDCZZfZzp3EzXtnFsNXuAGUhzLDcrpbMqeUyDdPYgFytWzEyXxx5jvr97MG5/Bsdqs/e8cuXKpjgdK7a74zh19k5znnROF8eicik88orYG9+vXz/zWZxXnZXXmSHAQnd2qrsvvPnmm+ZzmHHAgnPMPuB+fcUuEDDeGG4aJFhUjg0ELMTHcegZM2Y0jQhsbKhataoZMvDll1+aoN193LpIyFi61Mo3sxvlOBSGeb6q0yBBjNW1mXb7zTcRk7zYs8VyHCpTTtnOHM0kKiLiEAaj7r3WDOI5Ppu90Oxpd+9158hUprPbOPKTPdbMENDorbjz7KX2NnwiKhxRG8tRtTHC3yv/rztVcJAc6LyX+MSUd04XxnRz9/HjLOjGHl6u55h1Bpv2dGcxwSCVAffFixdNTzOrrX/wwQeRtmFl9Ndff91UYWfQywaBPh7zx7CQHXujH3roITNt3DTmB3pg0MsCdeyxZrDPHuxatWqZInG+1LlzZzPFWteuXc0QAFadZzV3NjYQGxAGDx5s5pnnfvz7779YsGCBORYM1CdMmGDGsHMOeqa9f/fdd2YqNpGQw4Fy9hULG7k4SE8BugQp9upwCjOmELN6trc5ru30Vgbo7qmvIuK/GJhxTDoLz/XrZ43lZqExpsu7Ty1H7DlWgC7xKZErwecycxZ7gDlWmlOIeRY0Y0Vx9vIWLFgQKd3nPReJA32vJChxzh73vDpGK6yQoxLWPj83if8c03XrrMCb4yV5gc7yCyxi5J4iyvGRbCPnGFHOPe2emikiIqHrTCzOS+pJFxGRmOMgLQ5uY0UY94lrGzRQgC5Bi2MSOY0SR3IwQGfSyM8/A0wo8xzDyenXGKCz2BTndxYREYktBekiIhIznDSUeYAcesJCce5BukgQYxVjFoRjsSlOe8Rpm1iwyBNzE+1UdxaMUzqsiIjcCQXpIiJyexxzft991gSmLJ/Kaln2/OciQe7ll60piyZMsArGcQ5hbzgPLysNcyome55kERGR2FJ1dxERiR57zOvXB44csSY7nTdPA20lpJQpY1V49pyr2BODeGrSxJqGTURE5E4oSPcixGrpSTzT90kCGuefqVnTSm/nOPTvv7fK34qEmNsF6O4VoDU3uoiIxIWCdDfJblZ/uXDhgpnzWsQX+H1y/36JBBQG5qzazoJx06fHz4SkIkGAsw9eumT1ulet6vTeiIhIIFOQ7iZJkiRm/uujR4+Gz9edSFVfJA496AzQ+X3i94rfL5GAwOpYzChKnpz/GK3gnPeT6pQh4o0KxomIiC/pistDTo63BMIDdZG4YoBuf69E/B5zdp95xppjavJkqzw1q2CJSJQ4H/qWLUDKlMDzz+tAiYhI3ChI98Ce81y5ciF79uy4yt4kkThgirt60CVg7N4NPP44sH27Ned5r15A0aJO75WI37OnXWP7VqZMTu+NiIgEOgXpUWBgpeBKRELGypXAU08Bx49bvegsEKcAXeS2zpyxRoSQCsaJiIgvaJ50EZFQN3Uq8PDDVoBesSLw++9A+fJO75VIwPz5sD5oyZJAjRpO742IiAQDBekiIqFs6FDgueeAK1esnvRffgFy53Z6ryQIjR07FgUKFEDKlClRtWpVrOFA7miMGDECxYsXN7Ot5M2bF6+//jousXy6n6a6sxddtWZFRMQXFKSLiISyChWsqu3dugHffGONRRfxsRkzZuCNN95Av379sH79epQvXx5169aNskjr1KlT0aNHD7P9tm3bMHHiRPMeb7/9tl/9btatAzZssCY/aNHC6b0REZFgoSBdRCTUXL8ecZ9zoG/dCgwZAiTWKUHix/Dhw9G+fXu0adMGpUqVwrhx48w0p5MmTfK6/W+//YYaNWqgefPmpve9Tp06aNas2W17353qRX/6aSBLFqf3RkREgoWuyEREQgnT2Tl4dseOiHXFizu5RxLkrly5gnXr1qE2G4RuSpw4sXm8atUqr6+pXr26eY0dlO/evRsLFixAvXr1ovycy5cv48yZM5GW+HTunDUenVQwTkREfElBuohIKHC5gFGjgFq1gJ07gb59nd4jCRHHjx/H9evXkSNHjkjr+fjw4cNeX8Me9HfffRf33XefmcqycOHCePDBB6NNdx84cCAyZMgQvnAce3xiRXcG6sWKAQ88EK8fJSIiIUZBuohIsLt4EWjVCujSxUp1b94cmDzZ6b0SidKyZcswYMAA/O9//zNj2GfPno358+fjvffei/I1PXv2xOnTp8OXffv2JUiqe/v2KhgnIiK+pXnSRUSC2d69QKNGwPr1QJIk1tjz115TVCEJJmvWrEiSJAmOHDkSaT0f58yZ0+tr+vTpgxYtWuCFF14wj8uWLYvz58/jxRdfRK9evUy6vKcUKVKYJSFs3AisXQskS2a1f4mIiPiSetJFRILVtm1ApUpWgJ41K/Djj8DrrytAlwSVPHlyVKxYEUuWLAlfd+PGDfO4WrVqXl9z4cKFWwJxBvrk4tANh02YYN02bAhky+b03oiISLBRT7qISLAqXBgoUYIRDzB7NpA/v9N7JCGK06+1atUKlSpVQpUqVcwc6OwZZ7V3atmyJfLkyWPGlVP9+vVNRfi7777bzKm+a9cu07vO9Xaw7pTz54Evv7Tuq2CciIgEZU/62LFjzfQqKVOmNCfi202vcurUKbzyyivIlSuXSWsrVqyYqfgqIiKmCxK4ds06FJy8ec4cYMUKBejiqCZNmmDo0KHo27cvKlSogI0bN2LhwoXhxeTCwsJw6NCh8O179+6Nrl27mltO2dauXTszr/onn3wCp339NcDC8WwDe+ghp/dGRESCUSKXg3ljM2bMMK3nnC+VATpb1mfOnIkdO3Yge/bsXqdx4bypfI4VXtnqvnfvXmTMmBHly5eP0WdyShZWfWVRmfTp08fDTyUi4pA9e6zx5w8/DAwbpl9DANG5KXCOafXqAGeOGzQI6N7dZ28rIiJB7kwszkuOBukMzCtXrowxY8aEj1HjlCmdOnVCjx49btmewfyQIUOwfft2MyXLndCFkIgEpZ9+YnclcOIEwEbOP/+0xqFLQNC5KTCO6ZYtQLlyQNKkwP79nEbOJ28rIiIh4EwszkuOpbuzV3zdunWoXbt2xM4kTmwer2ITtRfz5s0zRWaY7s4UuTJlypgpWjj/alQuX75sDoj7IiISNNjOyortdetaAXrlysAffyhAF4nHgnENGihAFxGR+ONYkH78+HETXNvj0Wx8fPjwYa+v2b17N2bNmmVex3HoLCIzbNgwvP/++1F+DovQsMXCXthTLyISFFjBqmlT4K23mIoEsAjXr78C+j8n4nMXLwJffGHdV8E4EREJ6sJxscF0eI5HHz9+vJnOhYVoOF8q0+Cj0rNnT5NSYC/79u1L0H0WEYm3HvQ6dawqVsy9/d//gIkTgZQpdcBF4sGsWSxeCxQoALglAYqIiATPFGxZs2Y106gcOXIk0no+zpkzp9fXsKI7x6K7T79SsmRJ0/PO9HnOxeqJFeC5iIgElUSJOK8VU4yAmTOB++5zeo9Egtr48dbtCy9weJ7TeyMiIsHMsdMMA2r2hi9ZsiRSTzkfc9y5N6zszrlSuZ3t77//NsG7twBdRCToes/DwiIeN24M7NypAF0knm3bZs1kyD6Cm1O7i4iIxBtH24LfeOMNTJgwAZ999hm2bduGDh064Pz582hz8wzI6dmYrm7j8ydOnECXLl1McD5//nxTOI6F5EREgtq5c8Czz1qF4VhW2pY2rZN7JRJSBePq1wdy53Z6b0REJNg5lu5OHFN+7Ngx9O3b16SsV6hQAQsXLgwvJhcWFmYqvttY9G3RokV4/fXXUa5cOTNPOgP27pqoVESC2a5dwFNPWdOqcfrJtWuBu+5yeq9EQsKlS8Bnn1n327d3em9ERCQUODpPuhM0F62I+MSFC9bUZyVKAE8/beXBxocffgCaN7cqVrFexzffANWrx89niWN0bvLfYzptmvUnyEkT9uyJvz91EREJbmdicV5ytCddRCRg9esHDB1q3R8zBvD1sBu2nw4YAPTpY91nrQ6Wl1aurUiCuvdegAl7/NNTgC4iIglBQbqISGyxO23UKOt+/vxAixaRU9N5NZ86ddyO68iRQO/e1v2XX7Yeq0CmSIIrWBAYNEgHXkREEo4mERERiS0WtLxyBXjkEWsKNDtliT3eTZpYEykPHAicPn3nx5aDXytVsipWffyxAnQRERGREKEgXUQkNlavBmbMsOYp55h09wmTDx0CTp4Ejh0D3n7b6mVnbzgfxwQLwtllQtKksT6LkzKLiIiISMhQkB4X7EH76itgyxaf/UJExI8xgO7a1brfujVQvnzk55nm/vffwBdfAKVKWT3pH3xg9ay//jpw4ID3971xA3j/faBq1ch5tRoAKyIiIhJyFKTHBS++n38e+Pprn/1CRMTP52JiNXfOTf7ee963SZrU+r/AxrvZs4GKFa1K8CNGAH/8cev2Z88CjRtHFIg7eDCiN11EREREQo6C9LjgxTd5u/AWkeCTKhUwcSLw779AnjzRb8s0+IYNrRT2H38E2rUD6tePeH7ePGD+fKv3fO5ca8w533v0aCuVXkRERERCkqq7xwWLOtlBOnu+dGEtEhqyZIn5tvy/wAJzXGznz1tB+/Hj1mMG/Ox1r1LF9/sqIiIiIgFFPelxUa6cldrKC+2wMJ/9UkTEz5w4YaWwc7y5L5w5Azz0kBXAP/AAsG6dAnQRERERMRSkx0XKlEDZstZ9pbyLBHf9CRaJbNrUN+PFc+WyalmcOgUsWwbkyOGLvRQRERGRIKAg3Vcp7+wJE5HgnMWB48SJc5/7clgL51fXMBkRERERcaMg3Zfj0kUk+PToAVy9CtSpA9St6/TeiIiIiEiQU5Du6+JxIhI8Vq0CZs60eruHDHF6b0REREQkBChIj6syZaypk06eBPbs8ckvRUT8ABvduna17rdtaxWKFBERERGJZwrS44oBun3xrpR3keDBucvZk546NfDuu07vjYiIiIiECAXpvqBx6SLB59FHgUGDgP79gdy5nd4bEREREQkRSZ3egaCgIF0k+KRKBXTv7vReiIiIiEiIUU+6L4P09euBGzd88pYi4pALF4Dr13X4RURERMQRCtJ9oVQpIGVK4PRp4J9/fPKWIuKQXr2AChWAFSv0KxARERGRBKcg3ReSJbMu6knF40QC165dwNixwNatVo+6iIiIiEgCU5DuKxUrWrcK0kUCV48ewNWrVtG4OnWc3hsRERERCUEK0n1FxeNEAtvKlcA33wCJEwNDhji9NyIiIiISohSkx0fxOBWdEgksLhfQtat1v107oEwZp/dIREREREKUgnRfKVECSJ0aOHcO+Ptvn72tiCSAr78Gfv8dSJMGePddHXIRERERcYyCdF9JmhS4+27r/rp1PntbEUkA331n3XJe9Jw5dchFRERExDEK0n1J49JFAtMXXwBz5kSkvIuIiIiIOCSpUx8clBSkiwSmRImAp55yei9ERERERPyjJ33s2LEoUKAAUqZMiapVq2LNmjVRbjtlyhQkSpQo0sLX+dU0bBs2ANeuOb03InI78+YBp07pOImIiIiI33A8SJ8xYwbeeOMN9OvXD+vXr0f58uVRt25dHD16NMrXpE+fHocOHQpf9u7dC79QrBiQNi1w4QKwfbvTeyMi0Vm+HGjcGChSBDh0SMdKRERERPyC40H68OHD0b59e7Rp0walSpXCuHHjkDp1akyaNCnK17D3PGfOnOFLjhw54BeSJAHuuce6/8cfTu+NiHhz44Y1D/pDD1kZL9WrA7ly6ViJiIiIiF9wNEi/cuUK1q1bh9q1a0fsUOLE5vGqVauifN25c+eQP39+5M2bFw0aNMCff/4Z5baXL1/GmTNnIi0JMi5dFd5F/M+JE0CDBsBbbwHXrwPNmwNffeX0XomIiIiI+EeQfvz4cVy/fv2WnnA+Pnz4sNfXFC9e3PSyf/vtt/jyyy9x48YNVK9eHfv37/e6/cCBA5EhQ4bwhYF9vFLxOBH/xHnQOU3i998DKVIA48YBX34JpEvn9J6JiIiIiPhPuntsVatWDS1btkSFChVQs2ZNzJ49G9myZcMnn3zidfuePXvi9OnT4cu+ffsSJkjfuBG4ejV+P0tEYo4p7mFh1hh0Zuq89JJV1V1ERERExI84OgVb1qxZkSRJEhw5ciTSej7mWPOYSJYsGe6++27s2rXL6/MpUqQwS4IpXBjIkAE4fRr46y+gfPmE+2wRidr48QD/r3zwgfU3KiIiIiLihxztSU+ePDkqVqyIJUuWhK9j+jofs8c8Jpguv2XLFuTyl8JPiROreJyIP1i/nqk0gMtlPc6cGRgzRgG6iIiIiPg1x9PdOf3ahAkT8Nlnn2Hbtm3o0KEDzp8/b6q9E1PbmbJue/fdd/Hjjz9i9+7dZsq2559/3kzB9sILL8BvaFy6iHMYlP/vfxwbAwwaZI07FxEREREJEI6mu1OTJk1w7Ngx9O3b1xSL41jzhQsXhheTCwsLMxXfbSdPnjRTtnHbTJkymZ743377zUzf5jcUpIs4g7M3vPgiMGOG9ZiV3J94Qr8NEREREQkYiVwuOxc0NHAKNlZ5ZxG59OnTx8+H7N5tjU1Pnhw4e9a6FZH4tWkT8MwzwM6dQNKkwIcfAq+/ruJwEhAS5NwUYnRMRUQkUM9Ljqe7B6WCBYFMmTgRPLB1q9N7IxL8ONf5vfdaATqnWfz1V46lUYAuIiIiIgFHQXp84LROSnkXSTis2n75MlCvHrBhgzUeXUREREQkAClIjy8K0kXiz9WrwPLlEY9r1bIef/cdkCWLjryIiIiIBCwF6fGlYkXr9o8/4u0jRELOsWPWPOccUlKzJrBnT8RzNWpYUyCKiIiIiAQwXdHGd0/6li3ApUvx9jEiITPneevW1njz3r2BAweAbNmAHTuc3jMRiaGxY8eiQIECSJkyJapWrYo1a9ZEu/2pU6fwyiuvIFeuXEiRIgWKFSuGBQsW6HiLiEjQc3wKtqCVLx+QNStw/DiweTNQpYrTeyQSeHbtsoLzlSsjN4B17gw8+yyQIoWTeyciMTRjxgy88cYbGDdunAnQR4wYgbp162LHjh3Inj37LdtfuXIFjzzyiHlu1qxZyJMnD/bu3YuMGTPqmIuISNBTT3pCFI9bty7ePkYk6Fy/HrkgHGdI4JRqzZsDq1YB7H1r0UIBukgAGT58ONq3b482bdqgVKlSJlhPnTo1Jk2a5HV7rj9x4gTmzp2LGjVqmB74mjVronz58gm+7yIiIglNQXp8UvE4kZhjY1arVlZldpfLWpc2LbvggLCwiGnW2AAmIgGDveLr1q1D7dq1w9clTpzYPF7Fhjcv5s2bh2rVqpl09xw5cqBMmTIYMGAArrs34nm4fPmymYPWfREREQlECtLjk4J0kdtXaZ8+Hahe3fp7+fxzYO1aa7HVrQvkyqUjKRKgjh8/boJrBtvu+Pjw4cNeX7N7926T5s7XcRx6nz59MGzYMLz//vtRfs7AgQORIUOG8CUva1iIiIgEIAXpCRGk//kncOFCvH6USMBZvNiq0t6smZXGniwZ8PzzwO+/q4aDSIi7ceOGGY8+fvx4VKxYEU2aNEGvXr1MmnxUevbsidOnT4cv+/btS9B9FhER8RUVjotPuXOzqwA4cgTYtMlK4xURa07zRx/llbjVS/7yy8CLL1pj0EXEcRwD3rZtW7Ru3Rr5WAg1DrJmzYokSZLgCM+Fbvg4ZxR/86zonixZMvM6W8mSJU3PO9PnkydPfstrWAGei4iISKBTT3pCFY/TfOnib379FbjrLqBNG+D06YT9bKa3M429bVvmtQJ9+ypAF/Ejr732GmbPno1ChQqZKuvTp083Y77vBANq9oYvWbIkUk85H3PcuTcsFrdr1y6zne3vv/82wbu3AF1ERCSYKEiPb6rwLv7o/HlrajPONz5lCrBoUfx/Jj/Lvshn79icOcCnnwIpU8b/Z4tIrIP0jRs3mrnM2YPdqVMnEyC/+uqrWL9+fayPJqdfmzBhAj777DNs27YNHTp0wPnz5021d2rZsqVJV7fxeVZ379KliwnO58+fbwrHsZCciIhIsFOQHhfbtlkpul26RL2NetLFH73zDrBnD5AnD9C1K/DMM/Gf3n733UDHjhGV25mWqkrtIn7tnnvuwahRo3Dw4EH069cPn376KSpXrowKFSqYadJc9t/zbXBM+dChQ9G3b1/zWjYALFy4MLyYXFhYGA4dOhS+PYu+LVq0CGvXrkW5cuXQuXNnE7D36NEj3n5WERERf5HIFdMzbJDglCys+sqiMunTp4/bm61cCdx3nzVN1NGjQKpUt27Diw6OTU+c2Eop5rYiTk91VqWKNR78+++Bxx+PeO74cV5NA0OG8OrcN5/HQk+dOgHXrgEVKgC//ALE9W9PJMj49NzkQ1evXsWcOXMwefJkLF68GPfeey/atWuH/fv3Y+zYsXj44YcxdepU+CN/PaYiIhKazsTivKSe9LjgWLr8+YFz56xgxxsWxWJvJQOijRvj9HEiPpny7IUXrO9j06aRA3R6+23g55+BqlUBTnXEwPpOXbkCvPQS81at92Hwz4YtXSyL+D2mtLunuJcuXRpbt27FihUrTIo6p0T76aefTAAvIiIivqUgPU5HL7E1fRRF15OglHfxFytWAJs3A5kyASNG3Pr8gAFA48ZWUN2nD3D//cDOnbH/HM59/NBDwPjxVkr7oEHAtGlA6tQ++TFEJH4xpX3nzp34+OOPceDAAZOqXqJEiUjbFCxYEE3Z2CciIiI+pSA9rpo3t24XLABOnfK+TcWK1q0qvIvTGDhzHnIWi7s5FjSSrFmBmTOBzz+3erxXr7ZS1D/+OGIs+e2wl75OHeC334AMGawsk+7dNf5cJIDs3r3bjBl/5plnzFRo3qRJk8akwYuIiIhvKUiPq7JlgTJlrNTe2bO9b6OedPEn/D4++WTUz7Pnu0ULYMsWK6i/cMEq+DZ8eMwzTIYOBUqXBtasAerV89mui0jCOHr0KH5ng54HrvtDDc4iIiLxSkG6L3vTo0p5t3vS//6bFQN88pEiscJMj7/+it1r8uUDfvoJ+OgjoHhxayx7VJge7/7+7ElnDYZixfSLEglAnOps3759t6xn6rumQRMREYlfCtJ9gWPyChcGatTwnhKcPbsV8PC5DRt88pEiMXbkCPD881baOgu3xQZ7xV97zepVZ+o68Xs8bBhw8qT1+L//gEcftb7/u3ZFvDZpUv2SRALUX3/9ZaZf83T33Xeb50RERCT+KEj3hYIFreJa/ftHPe5WKe/iFAbZDKg5LINV2++E+5jUiROBbt2soR6ffsoKU8CSJVbl+DspMicifidFihQ4wgY+D5zLPKka4EREROKVgnRfiSo4tylIFyfMnw9Mnw4kSWIF1L64uC5XzkpjP3AAaN8e2LPHaqhatQp47DFf7LWIOKxOnTro2bOnmcvVdurUKbz99tt45JFHHN03ERGRYKcg3ZcuXwbmzQO8jONTkC4J7uxZa45yev11wEvq6h2pUsUatvHKK9ZjXrCvXWv1rItIUOCUaxyTnj9/fjz00ENm4ZRrhw8fxjAOdxEREZF4oyDd1wXkGjQAPvvs1ufsAIljdu2xvCLxqXdvq8GIvdwciuFLnO98zBjru7xoEZAli2/fX0QclSdPHmzevBmDBw9GqVKlULFiRYwcORJbtmxB3rx59dsRERGJR6rs5Euc1orTsH31FdCrV+QUeAYxDJaYGrx+PVCrlk8/WiQSfsdGj7buf/KJFVTHh4wZdeBFghTnQX/xxRed3g0REZGQoyDdlxo2BF56Cdi+Hdi0yaqm7TkunUH6unUK0iV+MfV80CDr+6bxoyJyh1jJPSwsDFeuXIm0/kk2SouIiIj/BOkcp5YoUSLcdddd5vGaNWswdepUkxIX0q3u6dMD9esDs2ZZc6Z7C9JnzgT++MOpPZRQwWrsb73l9F6ISIDavXs3GjZsaNLbeb533ZxelPfp+vXrDu+hiIhI8LqjMenNmzfH0qVLzX0WkWGlVwbqvXr1wrvvvhvr9xs7diwKFCiAlClTomrVqua9YmL69OnmguGpp56C32jWzLqdNg24cSPyc6rwLvHt8GGrgKGISBx06dLFFIo7evQoUqdOjT///BO//vorKlWqhGXLlunYioiI+FuQvnXrVlRhhWcAX3/9NcqUKYPffvsNX331FaZMmRKr95oxYwbeeOMN9OvXD+vXr0f58uVRt25dc2EQnX///RfdunXD/fffD79Sr57Vo75/P7BypfficUxB/u8/R3ZPghgbhZo0sTI4Nm50em9EJICtWrXKNLpnzZoViRMnNst9992HgQMHonPnzk7vnoiISFC7oyD96tWrSJEihbn/008/hY9NK1GiBA4dOhSr9xo+fDjat2+PNm3amHT5cePGmVb7SZMmRfkaptk999xz6N+/PwoVKgS/kjIl0Lixdf9mtkGkIltFi1r3OS5dxJc4D/qvv1oV3TNl0rEVkTvG82y6dOnMfQbqBw8eNPc5JduOHTt0ZEVERPwtSC9durQJppcvX47Fixfj0UcfNet5Es8Si6mYWIhm3bp1qF27dsQOJU5sHrMVPyps3c+ePTvatWt328+4fPkyzpw5E2mJdz16MN0A6Nv31ucqVrRuNS5dfIkX0PYY9Pff55W0jq+I3DFmyG1iAVTADEPjVGwrV64051+/axwXEREJMncUpH/44Yf45JNP8OCDD6JZs2YmRZ3mzZsXngYfE8ePHzet9Tly5Ii0no851t2bFStWYOLEiZgwYUKMPoOpeRkyZAhfEmR+12LF2JLh/TmNS5f40KkTcPo0ULmydV9EJA569+6NGzfrqjAw37NnjxletmDBAowaNUrHVkRExN+quzM4Z4DNXulMbmm1rOzOVPX4cvbsWbRo0cIE6Ey/i4mePXuaMe827nOCBOq2q1etStueQbrS3cVX5swBZs8Gkia1Ut6TJNGxFZE4YW0YW5EiRbB9+3acOHHCnPPtCu8iIiLiR0H6xYsXzXQsdoC+d+9ezJkzByVLlox0Yr8dBtpJkiTBkSNHIq3n45w5c96y/T///GMKxtXnNGc32S39SZMmNePkChcuHOk1HDtvj59PUEyr53R0P/9sFYpLk8Zaf/fdnMMGCAsDWBwve/aE3zcJHuw9f+UV6z7T3cuVc3qPRCTAse5MqlSpsHHjRpP2bsucObOj+yUiIhIq7ijdvUGDBvj888/N/VOnTpnxasOGDTNToX388ccxfp/kyZOjYsWKWLJkSaSgm4+rVat2y/YsTMc5W3nhYC8sWvfQQw+Z+wnaQ347LLizdi1w7BjHAUSsZ+X34sWt++pNl7g6f56DR62ChH366HiKSJwlS5YM+fLl01zoIiIigRSkc6o0e+qzWbNmmTHk7E1n4B7bsWpMRWf6+meffYZt27ahQ4cOOH/+vKn2Ti1btjQp68R51Nmq775kzJjRVKDlfQb9foO95e5zprvTuHTxldy5gUWLrKrunFlARMQHevXqhbffftukuIuIiEgApLtfuHAhfGqWH3/8EY0aNTJV2e+9914TrMdGkyZNcOzYMfTt29cUi6tQoQIWLlwYXkwuLCzMvHdAat4c+OAD4IcfrHnR7cr3DNK//FIV3iX2rl8HvvgCmDgRWLzYCszZIORleIiIyJ0aM2YMdu3ahdy5c5tp19LYQ7bcGutFRETEj4J0FpGZO3cuGjZsiEWLFuH11183648ePYr0TOeOpVdffdUs3ixbtiza106ZMgV+q1QpgJXvOY3NN99YY9RJ07BJbLlcwMKFQPfuwJYt1joG6vZ4dBERH+LwNREREQmgIJ293s2bNzfB+cMPPxw+fpy96nezMJpE7k1nkD51akSQXqECJ4S35rY+dAjIlUtHTKLG2gUsCscihJQxI3NRgXbtdNREJF7069dPR1ZERMQhd5RH/vTTT5s09D/++MP0pNtq1aqFjz76yJf7F/iaNrVuOWZ4/37rftq0QMmS1n0Vj5OoXLliNfJweAQDdNZc6NaN0xxYtxqDLiIiIiISdO6oJ504RRqX/TcDz7vuugtVqlTx5b4Fh3z5gBde4BgBIFWqiPUMvP780xqX/sQTTu6h+CsG5WfPWmPOn38eeO89IH9+p/dKREIAa8FENx/6ddbHEBEREf8J0jlN2vvvv2+mXTt37pxZx0JyXbt2NRVhA7bQW3yZMOHWdQzSP/tMxeMkwoULAGdHaNUqYgjE8OFWcM4hEiIiCWTOnDm3zJ2+YcMGMxNL//799XsQERHxtyCdgfjEiRMxaNAg1KhRw6xbsWIF3nnnHVy6dAkfsKK5RM99GjYWBYumx0KCHHuk2GDTty9w4ACwZw/wySfWc5z/XEQkgTVo0MDrULfSpUtjxowZaKeaGCIiIv4VpLMl/dNPP8WTTz4Zvq5cuXLIkycPOnbsqCDdG6Ytf/stkCSJNX86q77z/pEjVmB21113/luUwMTGmQULgB49gK1brXVMZ3/wQaf3TETEK061+qJdBFVERETixR3lpZ84cQIlSpS4ZT3X8TnxYt48oEULlsy1gjOOTy9dOqI3XUILg/OqVa16BAzQM2UChg4Ftm+3GnFERPzMxYsXMWrUKNMgLyIiIn4WpJcvXx5jxoy5ZT3XsUddvGDqIAPznTsjKrrbKe/Ll+uQhZoVK4C1a63vxJtvWhXbu3ZVxXYR8QuZMmVC5syZwxc+Zu2ZSZMmYciQIU7vnoiISFC7o3T3wYMH4/HHH8dPP/0UPkf6qlWrsG/fPixgD6HcitOucXjAjBnAtGlWgF6/PjBpEjBlCvD++5Grv0vwuHzZGnPOzImbNRzw2mtWHYIuXYDs2Z3eQxGRSDidqnt1dxaEzZYtG6pWrWoCdhEREYk/iVwu5l7H3sGDBzF27FhsZ3ouOO13STNOjVXfx48fD3915swZZMiQAadPn0b69OkTPuWdPeq5cwNhYda6woWBvXutCvCcqk2Cx/nzAP8WmMZ+8CDw8MPAkiVO75WI+CFHz01BSsdUREQC9bx0x0G6N5s2bcI999zj1/OnOnrSvnKFE8wDJ08CP/8MPPSQFcAx3blsWR5AVXkPBqdOcewHMGIE8N9/1jqO4ezWDejcmV1STu+hiPgZfwsoJ0+ejLRp0+KZZ56JtH7mzJm4cOECWnGqSD/nb8dURERC25lYnJcULSSk5Mk5h411f+pU65bT2KRODWzZAvzyS4LujsQDBuf58gF9+lgBeqFCVm86x5wzxV0BuogEgIEDByJr1qy3rM+ePTsGDBjgyD6JiIiECgXpCa15c+uWU68Rx/a1bGndHzkywXdH4qH2AKfbK1PGaojZsQNo3x5IkUKHWkQCRlhYGAoWLHjL+vz585vnREREJP4oSE9oDzxgjUHn+HRbp07WLdft2ZPguyR3iA0tzIRgPQHbc88B339vDV3gVGpJ76g2o4iIo9hjvnnzZq/D2rJkyeLIPomIiISKWEUQjRo1ivb5UxyLK9FjujPTod2VKgU88giweDEwdqw1Tl38G2cxaNMGOHrUqi/A+wzIkyUDHn/c6b0TEYmTZs2aoXPnzmbatQfYuAyOyPoFXbp0QdOmTXV0RURE/CVI50D32z3f0k7dlts7dsxKj+bUa5yKi0H6p58C77xjrRf/c+kS0KNHxNCEcuWAcePUYy4iQeW9997Dv//+i1q1aiHpzYygGzdumHO8xqSLiIjEL59Wdw8EflPt9ZVXgE8+sebPZor0jRtAsWJWgbGPPwZeftm5fRPv/vzTqilgp4CyYWXQICBlSh0xEQmOc5OHnTt3YuPGjUiVKhXKli1rxqQHCn89piIiEprOqLp7AMiWDeBUdXaVd6bB22PTR40CQqvtxP/t2wdUrmwF6PzdzZ9vTbGmAF1EgljRokXNNGxPPPFEQAXoIiIigUyF45zComK0aJGV9k4c18w0923bgJ9+cmzXxIu8eYHWrYG6da1AvV49HSYRCVqNGzfGhx9+eMv6wYMH3zJ3uoiIiPiWgnSnFC8OVKxo9aYzZZo950zHY6Bu96aLs1gQbv/+iMfsOWfBuJw5ndwrEZF49+uvv6Kel8bIxx57zDwnIiIi8UdBupM4Lp2GDwdYLff8+YiUd6ZT79rl6O6FrCtXrOJwtWtbc9izIYWSJ7eGJYiIBLlz584hOf/neUiWLJkZUyciIiLxRxGHk9hrziJxrJz79ddW0F60qJVKzZ71MWMc3b2QtHMnUKMGwDRP/g74+7h61em9EhFJUCwSN2PGjFvWT58+HaU4baiIiIj4xxRsEg9Yxb10aStAf+89a13nzlZa9aRJwLvvWmnwEr8YkLPS/quvWhkNmTJZ0+E1aqQjLyIhp0+fPmjUqBH++ecfPPzww2bdkiVLMHXqVMyaNcvp3RMREQlq6kn3B/ffD2zcaBUnozp1AFbRPXvWChwlfjF1k4X8mNnAAP3BB63icArQRSRE1a9fH3PnzsWuXbvQsWNHdO3aFQcOHMDPP/+MIkWKOL17IiIiQU1Bur9wH+s8ezawd29EATnOoS7xh8MNGJTzduBAq7L+XXfpiItISHv88cexcuVKnD9/Hrt378azzz6Lbt26oXz58k7vmoiISFBTkO6vc3InSmTdZ/G4adOc3qPgSmvfvh0YMgT4+29rXerUAMderlxpFYxLksTpvRQR8Qus5N6qVSvkzp0bw4YNM6nvq1evdnq3REREgprGpPuj114DihUDGja0Ko2/8AJQsiRwzz1O71lgYuE3BuDz5gHffRdRNZ/Htlcv637Zso7uooiIvzh8+DCmTJmCiRMnmkru7EG/fPmySX9X0TgREZEQ6UkfO3YsChQogJQpU6Jq1apYs2ZNlNvOnj0blSpVQsaMGZEmTRpUqFABX3zxBYIOK7yzeBxdugRUr64e9dg6ehRo3hzInh146CHgo4+sAD1ZMmvcf4kSvv+9iYgE+Fj04sWLY/PmzRgxYgQOHjyI0aNHJ/i53rOifKJEifDUU0/5ZD9ERET8neNBOqd4eeONN9CvXz+sX7/ejHWrW7cujjLA8iJz5szo1asXVq1aZS4i2rRpY5ZFixYh6NSqZQXrdPmyFXCuX+/0Xvn39Gm//BLxOGNG4PvvgVOngCxZrDnPWZX4v/8Afl8aN3Zyb0VE/M4PP/yAdu3aoX///mZMehIfDf+J7bne9u+//5px8PezwKqIiEiIcDxIHz58ONq3b28CbabRjRs3DqlTp8YkTj/mxYMPPoiGDRuiZMmSKFy4MLp06YJy5cphxYoVCEpdu1q37P3t0EEp7+5YUI+/97fesnrFOUSAQwM47pySJwf+9z9rmyNHrEr5DMzTpXPgFyki4v94Lj179iwqVqxoervHjBmD48ePJ/i5nq5fv47nnnvONBgUKlQozvsgIiISKBwN0q9cuYJ169ahdu3aETuUOLF5zJ7y23G5XGbe1h07duCBBx7wug3H0XFMnfsSUJimXaaMNa66cOGI9ex9YAG0UHToEDBgAFC0qDV9HYvA7dhhVWfn1HXnzkVs+/zzQI0aKgYnIhID9957LyZMmIBDhw7hpZdeMqnmLBp348YNLF682ATwCXWuf/fdd5E9e3bTsx8TAX++FxER8Ycgna3zbCnPkSNHpPV8zMI1UTl9+jTSpk2L5MmTm3Q8jpd75JFHvG47cOBAZMiQIXzJa89FHihY5b1zZ+v+2LHsWrAKnj39NFC1KjB/PkIOK7Cz4Nvu3UD69FYgzurs7O3h9GnqKRcRiRPWfGnbtq3pWd+yZYuZJ33QoEEmaH7yySfj/VzPz2XhOjYYxFTAn+9FRET8Jd39TqRLlw4bN27E2rVr8cEHH5hxbsuWLfO6bc+ePU1Qby/7OL1ZoHnuOQ7GB/bsscZYnz9vpXSzl+CJJ4B8+YAqVQBeOL30ErB4ccRrWXSOweyFCwhI+/ezOwX488+Ide3bW4X0Jk8GDh4EWDjw2WeBDBmc3FMRkaDEQnKDBw/G/v37MS0BpgRlb32LFi1MgJ41a9YYvy4ozvciIiJOT8HGky+L0hzheGE3fJwzZ84oX8c0uSJFipj7rO6+bds204LO8eqeUqRIYZaAxnm8GZh++CEwahTQoAGwZAnQpQswbpw1r7r7xUipUoCdWbBpE/MXrfvsYeZxdV8aNeJAf/iVa9esyvbjx7OKkTX2/NgxwK4wfN991pRqIiKSYHi+ZoX12FZZj+25/p9//jEF41hp3sZ0e0qaNKkZ4saaNEF5vhcREXE6SGe6OovTcFy5fdLniZiPX3311Ri/D1/DsWhBrWNHYOhQ4Oefga1brXHqH38M9O1rBehMGbQXjsG2nT4NpExp9ahzLCEXVkG38ULHDtLZ287tc+WCI/79F/j004geclvNmtbYfBERCTixPdeXKFHCpNi76927t+lhHzlypNLYRUQk6DkapBNT1Vu1amXmPq9SpYqZl/X8+fOmAiy1bNkSefLkMT3lxFtuy1Z0BuYLFiww86R/zIA1mDGlvWFDawox9qazl5kYUEcXVHM+cAbfDM7dA3l7sXvZaeZMoG1bqxee05XxYoq9+AmBY+2Zws6icJQtG9C6tVWtnVXbRUQkYMXmXM951MuwIdpNRk6pCdyyXkREJBg5HqQ3adIEx44dQ9++fU0BGaavL1y4MLzATFhYmElvt/Gk3rFjRzM2LlWqVKbF/csvvzTvE/RYQI5B+pdfsrXCmvs7psXnWGCNS3QB74YNVmo55xDnkjatVaCOATt7s91+D3fsxAlg3Trgjz+shdOi8XM4Fy+Dcq5jaj9T+jmFmoiIBLzYnutFRERCWSIX5zELIZyShVVfWVQmPYPWQMJfVcWKVjA9aBDQvbvvP2PXLqsQGxcWqrMVKGCl2adJE7v3++sva3z52rVWAM4idu5++QWwp8/jz8cGBRGREBPQ5yY/pWMqIiKBel5Ss3UgT8fGAmu+xoJ8/fuzcg+wfLnVq82q6QULRg7Qv/3WmvLMxorzLOY2cqQ1ttzGMfRvvgl8/XVEgM7PaNrUGmPP4N/95xMREREREQlhjqe7SywxuH3rLatYHAPlxo3j5xAyYGYVdS4cA+9elZdj2VkVnqmJLDrH5zhF2s3quyat/uY4Q1PEjvtYqZK1MBMgU6b42WcREREREZEApyA90LBSO+dCf/99q9c6voJ0z8/Mnz/iMYu73X23Nbb8p58i1ufObQXi7lPqcDuOoxcREREREZHbUpAeiDp0sMakMx2d49MZCCckfh7Hl3O8OedrZ8o6e8gZpIuIiIiIiMgd05j0QMRg+JlnrPtMRXdKqVJAp05A/foK0EVERERERHxAQXqgsgvITZ0KHD3q9N6IiIiIiIiIDyhID1T33gtUqQJcuWKNTxcREREREZGApyA9kPXpY92OHg18/rnTeyMiIiIiIiJxpCA9kD3xBNC7t3Wf85mvXu30HomIiIiIiEgcKEgPdP37Aw0aWGnvDRsCBw44vUciIiIiIiJyhxSkB7rEiYEvvgDKlAEOHwaeegq4eNHpvRIREREREZE7oCA9GKRLB8ybB2TJYs1f/sILgMvl9F6JiIiIiIhILClIDxYFCwKzZgFJk1rTsg0e7PQeiYiIiIiISCwpSA8mDz4IjBpl3e/ZE/j+e6f3SERERERERGJBQXqw6dABePllK929eXPgr7+c3iMRERERERGJIQXpwWjkSKBmTeDsWeDJJ4ETJ5zeIxEREREREYkBBenBKHlyYOZMoEAB4J9/gGefBa5dc3qvRERERERE5DYUpAerbNmAb78F0qQBliwBunZ1eo9ERERERETkNhSkB7Ny5aw51IkF5T791Ok9EhERERERkWgoSA92DRsC775r3e/YEVixwuk9EhERERERkSgoSA8FvXsDzzwDXL0KNGoEhIU5vUciIiIiIiLihYL0UJAoETB5MlChAnDsGNCgAXD+vNN7JSIiIiIiIh4UpIcKFpBjITkWlNu4EWjd2ppLXURERERERPyGgvRQki8fMHs2kCwZMGsW8P77Tu+RiIiIiIiIuFGQHmruuw/4+GPrft++wJw5Tu+RiIiIiIiI3KQgPRS1awd07mzdb9ECWLfO6T0SERERERERBekhbNgwoHZtq4Dcgw8CP/zg9B6JiIiIiIiEPL/oSR87diwKFCiAlClTomrVqlizZk2U206YMAH3338/MmXKZJbatWtHu71EIWlSa1z6ww8D584B9esD48bpcImIiIiIiIRykD5jxgy88cYb6NevH9avX4/y5cujbt26OHr0qNftly1bhmbNmmHp0qVYtWoV8ubNizp16uDAgQMJvu8BL0MGqwedld6vXwc6dAC6dQNu3HB6z0REREREREJSIpfL2Xm42HNeuXJljBkzxjy+ceOGCbw7deqEHj163Pb1169fNz3qfH3Lli1vu/2ZM2eQIUMGnD59GunTp/fJzxDw+BUYMADo3dt63KgR8MUXQOrUTu+ZiEhI0LlJx1RERILbmVjEoY72pF+5cgXr1q0zKevhO5Q4sXnMXvKYuHDhAq5evYrMmTN7ff7y5cvmgLgv4iFRIqBXL2DqVCB5cmuatoceAo4c0aESERERERFJQI4G6cePHzc94Tly5Ii0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0qW46667In0HmRZ86tSpSNvr/2HMjp83bLgkfQedpXO97+l8f+d0vvc9ne9vpXN98JzrQzJIZ2pnxYoVsWTJkkipDXxcrVo1R/ctEJ07d860IrFFSWKHKdo8cbt/F8+cOWOqvOu7eGf2799vxqTr+2hh/R2edObMmYOff/7ZfOfc8X9hsmTJIn0Hmb7FOhP6Dt7++HmzceNGc6vvoLN0rvc9ne/vnM73vqfzfQSd64PvXB+y6e6cfq1Vq1aoVKkSqlSpghEjRpgy+23atHF61/xet27dzLzVTHHnVE2cxo6ZCc2aNXN61/z2osa9lY3FY/iHzWIULM7FcS/vv/8+ihYtav4p9OnTx4x34RyNEv3x48KaCJzXm40dbCx66623UKRIETONnVhpW1OnTsW3335rakbY4yJZoDBVqlTmlsNU+D+RxzN9+vTo1KmTCdDvvffekD+Etzt+/M7x+Xr16pl55jlOjVPaPfDAA2bohThL5/q40fk+dnS+jxud7++czvVBeK53hbDRo0e78uXL50qePLmZpmX16tVO71JAaNKkiStXrlzmuOXJk8c83rVrl9O75beWLl1qpnHwXDh1mD0NW58+fVw5cuQwU6/VqlXLtWPHDqd3OyCO34ULF1x16tRxZcuWzUwjlj9/flf79u1dhw8fdnq3/Ya3Y8dl8uTJ4dtcvHjR1bFjR1emTJlcqVOndjVs2NB16NAhR/c7UI5fWFiY64EHHnBlzpzZ/P0WKVLE9eabb7pOnz7t9K7LTTrX3zmd72NH5/u40fn+zulcH3zn+kQ3d0xEREREREREHBaSY9JFRERERERE/JGCdBERERERERE/oSBdRERERERExE8oSBcRERERERHxEwrSRURERERERPyEgnQRERERERERP6EgXURERERERMRPKEgXERERERER8RMK0kUk3iVKlAhz587VkRYREQlSOteL+I6CdJEg17p1a3Pi9FweffRRp3dNREREfEDnepHgktTpHRCR+MeAfPLkyZHWpUiRQodeREQkSOhcLxI81JMuEgIYkOfMmTPSkilTJvMce9U//vhjPPbYY0iVKhUKFSqEWbNmRXr9li1b8PDDD5vns2TJghdffBHnzp2LtM2kSZNQunRp81m5cuXCq6++Gun548ePo2HDhkidOjWKFi2KefPmhT938uRJPPfcc8iWLZv5DD7v2aggIiIiOteLhAIF6SKCPn36oHHjxti0aZMJlps2bYpt27aZI3P+/HnUrVvXBPVr167FzJkz8dNPP0UKwhnkv/LKKyZ4Z0DPALxIkSKRjmz//v3x7LPPYvPmzahXr575nBMnToR//l9//YUffvjBfC7fL2vWrPrNiIiI+IjO9SIBxCUiQa1Vq1auJEmSuNKkSRNp+eCDD8zz/Dfw8ssvR3pN1apVXR06dDD3x48f78qUKZPr3Llz4c/Pnz/flThxYtfhw4fN49y5c7t69eoV5T7wM3r37h3+mO/FdT/88IN5XL9+fVebNm18/JOLiIiEBp3rRYKLxqSLhICHHnrI9E67y5w5c/j9atWqRXqOjzdu3Gjus2e7fPnySJMmTfjzNWrUwI0bN7Bjxw6TLn/w4EHUqlUr2n0oV65c+H2+V/r06XH06FHzuEOHDqYnf/369ahTpw6eeuopVK9ePY4/tYiISOjQuV4keChIFwkBDIo90899hWPIYyJZsmSRHjO4Z6BPHA+/d+9eLFiwAIsXLzYBP9Pnhw4dGi/7LCIiEmx0rhcJHhqTLiJYvXr1LY9Llixp7vOWY9U5Nt22cuVKJE6cGMWLF0e6dOlQoEABLFmyJE5HkkXjWrVqhS+//BIjRozA+PHj9ZsRERHxEZ3rRQKHetJFQsDly5dx+PDhSOuSJk0aXpyNxeAqVaqE++67D1999RXWrFmDiRMnmudY4K1fv34mgH7nnXdw7NgxdOrUCS1atECOHDnMNlz/8ssvI3v27KZX/OzZsyaQ53Yx0bdvX1SsWNFUh+e+fv/99+GNBCIiIqJzvUgoUZAuEgIWLlxopkVzx17w7du3h1denz59Ojp27Gi2mzZtGkqVKmWe45RpixYtQpcuXVC5cmXzmOPHhw8fHv5eDOAvXbqEjz76CN26dTPB/9NPPx3j/UuePDl69uyJf//916TP33///WZ/REREROd6kVCTiNXjnN4JEXEOx4bPmTPHFGsTERGR4KNzvUhg0Zh0ERERERERET+hIF1ERERERETETyjdXURERERERMRPqCddRERERERExE8oSBcRERERERHxEwrSRURERERERPyEgnQRERERERERP6EgXURERERERMRPKEgXERERERER8RMK0kVERERERET8hIJ0EREREREREfiH/wPSmDRjzm/k1AAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1200x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_history(history)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "We ended up **overtraining** our network!  After about the third epoch, the loss on the validation data starts to increase, and the validation accuracy starts to degrade.  This tells us that we should stop training after 3 epochs.  So now we will retrain a new network on the full training data, for just 3 epochs:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "network = build_network()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/3\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - accuracy: 0.8135 - loss: 0.4876 - val_accuracy: 0.8990 - val_loss: 0.3269\n",
      "Epoch 2/3\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 10ms/step - accuracy: 0.8998 - loss: 0.2902 - val_accuracy: 0.9267 - val_loss: 0.2266\n",
      "Epoch 3/3\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9184 - loss: 0.2252 - val_accuracy: 0.9271 - val_loss: 0.2026\n"
     ]
    }
   ],
   "source": [
    "history = network.fit(train_vectors, train_targets, epochs=3, batch_size=512,\n",
    "                     validation_data=(val_vectors, val_targets))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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vNn8zpHx0qVLI0WKFGG3V6tWDXfu3MHOnTtNOv7Ro0dRt27dSI92qVKlwn7nY6VOnRonT540lzt37mwyATZu3Ij69eujadOmqFq1qt49ERERH+lcLxIaFMSLSFjQ7J7eHl04h90XiRIlcrnM4J8dAcT5+AcOHMCSJUuwYsUK0yHA9PwRI0bESJtFRERCjc71IqFBc+JFxCe//fZbhMtFixY1v/Mn58pzbrxtzZo1iB8/PgoXLoxUqVIhT548WLly5X0dbRa1a9u2LT7//HOMHj0aH3/8sd49ERGRaKJzvUhw0Ei8iBjXr1/H8ePHXf9AJEwYVjyOxeoqVKiA6tWr44svvsD69evx6aefmttYgG7AgAEmwB44cCBOnTqFrl27onXr1siSJYvZh9e/9NJLyJw5sxlVv3jxogn0uZ8v+vfvj/Lly5vq9mzrt99+G9aJICIiInenc71IaFAQLyLGsmXLzLJvzjiKvmPHjrDK8bNnz8bLL79s9ps1axaKFStmbuOScMuXL0e3bt1QsWJFc5nz10eOHBn2WAzwr127hlGjRqFnz56mc6BZs2Y+H/3EiROjT58+2L9/v0nPr1GjhmmPiIiI+EbnepHQEI/V7fzdCBEJbJybvmDBAlNMTkREREKPzvUiwUNz4kVERERERESChIJ4ERERERERkSChdHoRERERERGRIKGReBEREREREZEgoSBeREREREREJEgoiBcREREREREJEgriRURERERERIKEgngRERERERGRIKEgXkRERERERCRIKIgXERERERERCRIK4kVEREREREQQHP4PoWgrhWZXATAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_history(history)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "network = build_network()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/3\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 8ms/step - accuracy: 0.8085 - loss: 0.4921\n",
      "Epoch 2/3\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.8990 - loss: 0.2910\n",
      "Epoch 3/3\n",
      "\u001b[1m49/49\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9195 - loss: 0.2243\n"
     ]
    }
   ],
   "source": [
    "history = network.fit(train_vectors, train_targets, epochs=3, batch_size=512)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 3ms/step - accuracy: 0.9367 - loss: 0.1845\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.18450267612934113, 0.9367200136184692]"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network.evaluate(train_vectors, train_targets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 3ms/step - accuracy: 0.8894 - loss: 0.2762\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.27617380023002625, 0.8894000053405762]"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network.evaluate(test_vectors, test_targets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step\n"
     ]
    }
   ],
   "source": [
    "outputs = network.predict(test_vectors)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.25304607],\n",
       "       [0.9997093 ],\n",
       "       [0.88467944],\n",
       "       ...,\n",
       "       [0.12331884],\n",
       "       [0.12631148],\n",
       "       [0.54632217]], dtype=float32)"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "outputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this film requires a lot of patience because it focuses on mood and character development the plot is very simple and many of the scenes take place on the same set in frances the sandy dennis character apartment but the film builds to a disturbing climax br br the characters create an atmosphere with sexual tension and psychological it's very interesting that robert altman directed this considering the style and structure of his other films still the trademark altman audio style is evident here and there i think what really makes this film work is the brilliant performance by sandy dennis it's definitely one of her darker characters but she plays it so perfectly and convincingly that it's scary michael burns does a good job as the mute young man regular altman player michael murphy has a small part the moody set fits the content of the story very well in short this movie is a powerful study of loneliness sexual and desperation be patient up the atmosphere and pay attention to the wonderfully written script br br i praise robert altman this is one of his many films that deals with unconventional fascinating subject matter this film is disturbing but it's sincere and it's sure to a strong emotional response from the viewer if you want to see an unusual film some might even say bizarre this is worth the time br br unfortunately it's very difficult to find in video stores you may have to buy it off the internet\n"
     ]
    }
   ],
   "source": [
    "decode(test_data[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.9997093]\n"
     ]
    }
   ],
   "source": [
    "print(outputs[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n"
     ]
    }
   ],
   "source": [
    "print(test_labels[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a good ol' boy film is almost required to have car chases a storyline that has a vague resemblance to plot and at least one very pretty country gal with short shorts and a low top the pretty gal is here dressed in designer but the redneck stop there jimmy dean is a natural as a but as a tough guy former sheriff he comes up way short big john is big but he isn't convincing with the bad part of his bug eyed jack is a hoot as always and bo hopkins has been playing this same part for decades ned beatty also does his part in a small role but there is no story it more like an episode of in the heat of the night than a feature film with easily predictable sentiment perhaps the most glaring problem with this movie is charlie daniels singing the theme you know the one it was made famous by jimmy dean\n"
     ]
    }
   ],
   "source": [
    "decode(test_data[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.54632217]\n"
     ]
    }
   ],
   "source": [
    "print(outputs[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "print(test_labels[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "wrong = []\n",
    "for n in range(len(test_data)):\n",
    "    if ((outputs[n] > 0.5 and test_labels[n] == 0) or\n",
    "        (outputs[n] < 0.5 and test_labels[n] == 1)):\n",
    "        wrong.append(n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "wrong = [n for n in range(len(test_data))\n",
    "         if outputs[n] > 0.5 and test_labels[n] == 0\n",
    "         or outputs[n] < 0.5 and test_labels[n] == 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2765"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(wrong)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.8894\n"
     ]
    }
   ],
   "source": [
    "print(\"accuracy:\", 1 - len(wrong)/len(test_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "correct = [n for n in range(len(test_data)) if n not in wrong]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22235"
      ]
     },
     "execution_count": 137,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(correct)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 4, 5, 6, 7, 9, 10, 11]"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "correct[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.25304607],\n",
       "       [0.9997093 ],\n",
       "       [0.88467944],\n",
       "       [0.7209677 ],\n",
       "       [0.9261704 ],\n",
       "       [0.72981286],\n",
       "       [0.99875057],\n",
       "       [0.01687049],\n",
       "       [0.95386267],\n",
       "       [0.9778625 ]], dtype=float32)"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "outputs[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 1, 0, 1, 1, 1, 0, 0, 1])"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_labels[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Review 0: output 0.25305, label 0\n",
      "Review 1: output 0.99971, label 1\n",
      "Review 2: output 0.88468, label 1\n",
      "Review 4: output 0.92617, label 1\n",
      "Review 5: output 0.72981, label 1\n",
      "Review 6: output 0.99875, label 1\n",
      "Review 7: output 0.01687, label 0\n",
      "Review 9: output 0.97786, label 1\n",
      "Review 10: output 0.92124, label 1\n",
      "Review 11: output 0.01471, label 0\n"
     ]
    }
   ],
   "source": [
    "for n in correct[0:10]:\n",
    "    output = outputs[n][0]\n",
    "    label = test_labels[n]\n",
    "    print(f\"Review {n}: output {output:.5f}, label {label}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the richard dog is to joan fontaine dog however when bing crosby arrives in town to sell a record player to the emperor his dog is attacked by dog after a revenge attack where is from town a insists that dog must confront dog so that she can overcome her fears this is arranged and the dogs fall in love so do and the rest of the film passes by with romance and at the end dog gives birth but who is the father br br the dog story is the very weak vehicle that is used to try and create a story between humans its a terrible storyline there are 3 main musical pieces all of which are rubbish bad songs and dreadful choreography its just an extremely boring film bing has too many words in each sentence and delivers them in an almost irritating manner its not funny ever but its meant to be bing and joan have done much better than this\n"
     ]
    }
   ],
   "source": [
    "decode(test_data[7])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
