{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Sentiment Classification & How To \"Frame Problems\" for a Neural Network\n",
    "\n",
    "by Andrew Trask\n",
    "\n",
    "- **Twitter**: @iamtrask\n",
    "- **Blog**: http://iamtrask.github.io"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What You Should Already Know\n",
    "\n",
    "- neural networks, forward and back-propagation\n",
    "- stochastic gradient descent\n",
    "- mean squared error\n",
    "- and train/test splits\n",
    "\n",
    "### Where to Get Help if You Need it\n",
    "- Re-watch previous Udacity Lectures\n",
    "- Leverage the recommended Course Reading Material - [Grokking Deep Learning](https://www.manning.com/books/grokking-deep-learning) (40% Off: **traskud17**)\n",
    "- Shoot me a tweet @iamtrask\n",
    "\n",
    "\n",
    "### Tutorial Outline:\n",
    "\n",
    "- Intro: The Importance of \"Framing a Problem\"\n",
    "\n",
    "\n",
    "- Curate a Dataset\n",
    "- Developing a \"Predictive Theory\"\n",
    "- **PROJECT 1**: Quick Theory Validation\n",
    "\n",
    "\n",
    "- Transforming Text to Numbers\n",
    "- **PROJECT 2**: Creating the Input/Output Data\n",
    "\n",
    "\n",
    "- Putting it all together in a Neural Network\n",
    "- **PROJECT 3**: Building our Neural Network\n",
    "\n",
    "\n",
    "- Understanding Neural Noise\n",
    "- **PROJECT 4**: Making Learning Faster by Reducing Noise\n",
    "\n",
    "\n",
    "- Analyzing Inefficiencies in our Network\n",
    "- **PROJECT 5**: Making our Network Train and Run Faster\n",
    "\n",
    "\n",
    "- Further Noise Reduction\n",
    "- **PROJECT 6**: Reducing Noise by Strategically Reducing the Vocabulary\n",
    "\n",
    "\n",
    "- Analysis: What's going on in the weights?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbpresent": {
     "id": "56bb3cba-260c-4ebe-9ed6-b995b4c72aa3"
    }
   },
   "source": [
    "# Lesson: Curate a Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "eba2b193-0419-431e-8db9-60f34dd3fe83"
    }
   },
   "outputs": [],
   "source": [
    "def pretty_print_review_and_label(i):\n",
    "    print(labels[i] + \"\\t:\\t\" + reviews[i][:80] + \"...\")\n",
    "\n",
    "g = open('reviews.txt','r') # What we know!\n",
    "reviews = list(map(lambda x:x[:-1],g.readlines()))\n",
    "g.close()\n",
    "\n",
    "g = open('labels.txt','r') # What we WANT to know!\n",
    "labels = list(map(lambda x:x[:-1].upper(),g.readlines()))\n",
    "g.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25000"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(reviews)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "bb95574b-21a0-4213-ae50-34363cf4f87f"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'bromwell high is a cartoon comedy . it ran at the same time as some other programs about school life  such as  teachers  . my   years in the teaching profession lead me to believe that bromwell high  s satire is much closer to reality than is  teachers  . the scramble to survive financially  the insightful students who can see right through their pathetic teachers  pomp  the pettiness of the whole situation  all remind me of the schools i knew and their students . when i saw the episode in which a student repeatedly tried to burn down the school  i immediately recalled . . . . . . . . . at . . . . . . . . . . high . a classic line inspector i  m here to sack one of your teachers . student welcome to bromwell high . i expect that many adults of my age think that bromwell high is far fetched . what a pity that it isn  t   '"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reviews[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "e0408810-c424-4ed4-afb9-1735e9ddbd0a"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'POSITIVE'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Lesson: Develop a Predictive Theory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "e67a709f-234f-4493-bae6-4fb192141ee0"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "labels.txt \t : \t reviews.txt\n",
      "\n",
      "NEGATIVE\t:\tthis movie is terrible but it has some good effects .  ...\n",
      "POSITIVE\t:\tadrian pasdar is excellent is this film . he makes a fascinating woman .  ...\n",
      "NEGATIVE\t:\tcomment this movie is impossible . is terrible  very improbable  bad interpretat...\n",
      "POSITIVE\t:\texcellent episode movie ala pulp fiction .  days   suicides . it doesnt get more...\n",
      "NEGATIVE\t:\tif you haven  t seen this  it  s terrible . it is pure trash . i saw this about ...\n",
      "POSITIVE\t:\tthis schiffer guy is a real genius  the movie is of excellent quality and both e...\n"
     ]
    }
   ],
   "source": [
    "print(\"labels.txt \\t : \\t reviews.txt\\n\")\n",
    "pretty_print_review_and_label(2137)\n",
    "pretty_print_review_and_label(12816)\n",
    "pretty_print_review_and_label(6267)\n",
    "pretty_print_review_and_label(21934)\n",
    "pretty_print_review_and_label(5297)\n",
    "pretty_print_review_and_label(4998)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project 1: Quick Theory Validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from collections import Counter\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "positive_counts = Counter()\n",
    "negative_counts = Counter()\n",
    "total_counts = Counter()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "for i in range(len(reviews)):\n",
    "    if(labels[i] == 'POSITIVE'):\n",
    "        for word in reviews[i].split(\" \"):\n",
    "            positive_counts[word] += 1\n",
    "            total_counts[word] += 1\n",
    "    else:\n",
    "        for word in reviews[i].split(\" \"):\n",
    "            negative_counts[word] += 1\n",
    "            total_counts[word] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('', 550468),\n",
       " ('the', 173324),\n",
       " ('.', 159654),\n",
       " ('and', 89722),\n",
       " ('a', 83688),\n",
       " ('of', 76855),\n",
       " ('to', 66746),\n",
       " ('is', 57245),\n",
       " ('in', 50215),\n",
       " ('br', 49235),\n",
       " ('it', 48025),\n",
       " ('i', 40743),\n",
       " ('that', 35630),\n",
       " ('this', 35080),\n",
       " ('s', 33815),\n",
       " ('as', 26308),\n",
       " ('with', 23247),\n",
       " ('for', 22416),\n",
       " ('was', 21917),\n",
       " ('film', 20937),\n",
       " ('but', 20822),\n",
       " ('movie', 19074),\n",
       " ('his', 17227),\n",
       " ('on', 17008),\n",
       " ('you', 16681),\n",
       " ('he', 16282),\n",
       " ('are', 14807),\n",
       " ('not', 14272),\n",
       " ('t', 13720),\n",
       " ('one', 13655),\n",
       " ('have', 12587),\n",
       " ('be', 12416),\n",
       " ('by', 11997),\n",
       " ('all', 11942),\n",
       " ('who', 11464),\n",
       " ('an', 11294),\n",
       " ('at', 11234),\n",
       " ('from', 10767),\n",
       " ('her', 10474),\n",
       " ('they', 9895),\n",
       " ('has', 9186),\n",
       " ('so', 9154),\n",
       " ('like', 9038),\n",
       " ('about', 8313),\n",
       " ('very', 8305),\n",
       " ('out', 8134),\n",
       " ('there', 8057),\n",
       " ('she', 7779),\n",
       " ('what', 7737),\n",
       " ('or', 7732),\n",
       " ('good', 7720),\n",
       " ('more', 7521),\n",
       " ('when', 7456),\n",
       " ('some', 7441),\n",
       " ('if', 7285),\n",
       " ('just', 7152),\n",
       " ('can', 7001),\n",
       " ('story', 6780),\n",
       " ('time', 6515),\n",
       " ('my', 6488),\n",
       " ('great', 6419),\n",
       " ('well', 6405),\n",
       " ('up', 6321),\n",
       " ('which', 6267),\n",
       " ('their', 6107),\n",
       " ('see', 6026),\n",
       " ('also', 5550),\n",
       " ('we', 5531),\n",
       " ('really', 5476),\n",
       " ('would', 5400),\n",
       " ('will', 5218),\n",
       " ('me', 5167),\n",
       " ('had', 5148),\n",
       " ('only', 5137),\n",
       " ('him', 5018),\n",
       " ('even', 4964),\n",
       " ('most', 4864),\n",
       " ('other', 4858),\n",
       " ('were', 4782),\n",
       " ('first', 4755),\n",
       " ('than', 4736),\n",
       " ('much', 4685),\n",
       " ('its', 4622),\n",
       " ('no', 4574),\n",
       " ('into', 4544),\n",
       " ('people', 4479),\n",
       " ('best', 4319),\n",
       " ('love', 4301),\n",
       " ('get', 4272),\n",
       " ('how', 4213),\n",
       " ('life', 4199),\n",
       " ('been', 4189),\n",
       " ('because', 4079),\n",
       " ('way', 4036),\n",
       " ('do', 3941),\n",
       " ('made', 3823),\n",
       " ('films', 3813),\n",
       " ('them', 3805),\n",
       " ('after', 3800),\n",
       " ('many', 3766),\n",
       " ('two', 3733),\n",
       " ('too', 3659),\n",
       " ('think', 3655),\n",
       " ('movies', 3586),\n",
       " ('characters', 3560),\n",
       " ('character', 3514),\n",
       " ('don', 3468),\n",
       " ('man', 3460),\n",
       " ('show', 3432),\n",
       " ('watch', 3424),\n",
       " ('seen', 3414),\n",
       " ('then', 3358),\n",
       " ('little', 3341),\n",
       " ('still', 3340),\n",
       " ('make', 3303),\n",
       " ('could', 3237),\n",
       " ('never', 3226),\n",
       " ('being', 3217),\n",
       " ('where', 3173),\n",
       " ('does', 3069),\n",
       " ('over', 3017),\n",
       " ('any', 3002),\n",
       " ('while', 2899),\n",
       " ('know', 2833),\n",
       " ('did', 2790),\n",
       " ('years', 2758),\n",
       " ('here', 2740),\n",
       " ('ever', 2734),\n",
       " ('end', 2696),\n",
       " ('these', 2694),\n",
       " ('such', 2590),\n",
       " ('real', 2568),\n",
       " ('scene', 2567),\n",
       " ('back', 2547),\n",
       " ('those', 2485),\n",
       " ('though', 2475),\n",
       " ('off', 2463),\n",
       " ('new', 2458),\n",
       " ('your', 2453),\n",
       " ('go', 2440),\n",
       " ('acting', 2437),\n",
       " ('plot', 2432),\n",
       " ('world', 2429),\n",
       " ('scenes', 2427),\n",
       " ('say', 2414),\n",
       " ('through', 2409),\n",
       " ('makes', 2390),\n",
       " ('better', 2381),\n",
       " ('now', 2368),\n",
       " ('work', 2346),\n",
       " ('young', 2343),\n",
       " ('old', 2311),\n",
       " ('ve', 2307),\n",
       " ('find', 2272),\n",
       " ('both', 2248),\n",
       " ('before', 2177),\n",
       " ('us', 2162),\n",
       " ('again', 2158),\n",
       " ('series', 2153),\n",
       " ('quite', 2143),\n",
       " ('something', 2135),\n",
       " ('cast', 2133),\n",
       " ('should', 2121),\n",
       " ('part', 2098),\n",
       " ('always', 2088),\n",
       " ('lot', 2087),\n",
       " ('another', 2075),\n",
       " ('actors', 2047),\n",
       " ('director', 2040),\n",
       " ('family', 2032),\n",
       " ('between', 2016),\n",
       " ('own', 2016),\n",
       " ('m', 1998),\n",
       " ('may', 1997),\n",
       " ('same', 1972),\n",
       " ('role', 1967),\n",
       " ('watching', 1966),\n",
       " ('every', 1954),\n",
       " ('funny', 1953),\n",
       " ('doesn', 1935),\n",
       " ('performance', 1928),\n",
       " ('few', 1918),\n",
       " ('bad', 1907),\n",
       " ('look', 1900),\n",
       " ('re', 1884),\n",
       " ('why', 1855),\n",
       " ('things', 1849),\n",
       " ('times', 1832),\n",
       " ('big', 1815),\n",
       " ('however', 1795),\n",
       " ('actually', 1790),\n",
       " ('action', 1789),\n",
       " ('going', 1783),\n",
       " ('bit', 1757),\n",
       " ('comedy', 1742),\n",
       " ('down', 1740),\n",
       " ('music', 1738),\n",
       " ('must', 1728),\n",
       " ('take', 1709),\n",
       " ('saw', 1692),\n",
       " ('long', 1690),\n",
       " ('right', 1688),\n",
       " ('fun', 1686),\n",
       " ('fact', 1684),\n",
       " ('excellent', 1683),\n",
       " ('around', 1674),\n",
       " ('didn', 1672),\n",
       " ('without', 1671),\n",
       " ('thing', 1662),\n",
       " ('thought', 1639),\n",
       " ('got', 1635),\n",
       " ('each', 1630),\n",
       " ('day', 1614),\n",
       " ('feel', 1597),\n",
       " ('seems', 1596),\n",
       " ('come', 1594),\n",
       " ('done', 1586),\n",
       " ('beautiful', 1580),\n",
       " ('especially', 1572),\n",
       " ('played', 1571),\n",
       " ('almost', 1566),\n",
       " ('want', 1562),\n",
       " ('yet', 1556),\n",
       " ('give', 1553),\n",
       " ('pretty', 1549),\n",
       " ('last', 1543),\n",
       " ('since', 1519),\n",
       " ('different', 1504),\n",
       " ('although', 1501),\n",
       " ('gets', 1490),\n",
       " ('true', 1487),\n",
       " ('interesting', 1481),\n",
       " ('job', 1470),\n",
       " ('enough', 1455),\n",
       " ('our', 1454),\n",
       " ('shows', 1447),\n",
       " ('horror', 1441),\n",
       " ('woman', 1439),\n",
       " ('tv', 1400),\n",
       " ('probably', 1398),\n",
       " ('father', 1395),\n",
       " ('original', 1393),\n",
       " ('girl', 1390),\n",
       " ('point', 1379),\n",
       " ('plays', 1378),\n",
       " ('wonderful', 1372),\n",
       " ('far', 1358),\n",
       " ('course', 1358),\n",
       " ('john', 1350),\n",
       " ('rather', 1340),\n",
       " ('isn', 1328),\n",
       " ('ll', 1326),\n",
       " ('later', 1324),\n",
       " ('dvd', 1324),\n",
       " ('war', 1310),\n",
       " ('whole', 1310),\n",
       " ('d', 1307),\n",
       " ('away', 1306),\n",
       " ('found', 1306),\n",
       " ('screen', 1305),\n",
       " ('nothing', 1300),\n",
       " ('year', 1297),\n",
       " ('once', 1296),\n",
       " ('hard', 1294),\n",
       " ('together', 1280),\n",
       " ('am', 1277),\n",
       " ('set', 1277),\n",
       " ('having', 1266),\n",
       " ('making', 1265),\n",
       " ('place', 1263),\n",
       " ('comes', 1260),\n",
       " ('might', 1260),\n",
       " ('sure', 1253),\n",
       " ('american', 1248),\n",
       " ('play', 1245),\n",
       " ('kind', 1244),\n",
       " ('takes', 1242),\n",
       " ('perfect', 1242),\n",
       " ('performances', 1237),\n",
       " ('himself', 1230),\n",
       " ('worth', 1221),\n",
       " ('everyone', 1221),\n",
       " ('anyone', 1214),\n",
       " ('actor', 1203),\n",
       " ('three', 1201),\n",
       " ('wife', 1196),\n",
       " ('classic', 1192),\n",
       " ('goes', 1186),\n",
       " ('ending', 1178),\n",
       " ('version', 1168),\n",
       " ('star', 1149),\n",
       " ('enjoy', 1146),\n",
       " ('book', 1142),\n",
       " ('nice', 1132),\n",
       " ('everything', 1128),\n",
       " ('during', 1124),\n",
       " ('put', 1118),\n",
       " ('seeing', 1111),\n",
       " ('least', 1102),\n",
       " ('house', 1100),\n",
       " ('high', 1095),\n",
       " ('watched', 1094),\n",
       " ('men', 1087),\n",
       " ('loved', 1087),\n",
       " ('night', 1082),\n",
       " ('anything', 1075),\n",
       " ('guy', 1071),\n",
       " ('believe', 1071),\n",
       " ('top', 1063),\n",
       " ('amazing', 1058),\n",
       " ('hollywood', 1056),\n",
       " ('looking', 1053),\n",
       " ('main', 1044),\n",
       " ('definitely', 1043),\n",
       " ('gives', 1031),\n",
       " ('home', 1029),\n",
       " ('seem', 1028),\n",
       " ('episode', 1023),\n",
       " ('sense', 1020),\n",
       " ('audience', 1020),\n",
       " ('truly', 1017),\n",
       " ('special', 1011),\n",
       " ('fan', 1009),\n",
       " ('second', 1009),\n",
       " ('short', 1009),\n",
       " ('mind', 1005),\n",
       " ('human', 1001),\n",
       " ('recommend', 999),\n",
       " ('full', 996),\n",
       " ('black', 995),\n",
       " ('help', 991),\n",
       " ('along', 989),\n",
       " ('trying', 987),\n",
       " ('small', 986),\n",
       " ('death', 985),\n",
       " ('friends', 981),\n",
       " ('remember', 974),\n",
       " ('often', 970),\n",
       " ('said', 966),\n",
       " ('favorite', 962),\n",
       " ('heart', 959),\n",
       " ('early', 957),\n",
       " ('left', 956),\n",
       " ('until', 955),\n",
       " ('let', 954),\n",
       " ('script', 954),\n",
       " ('maybe', 937),\n",
       " ('today', 936),\n",
       " ('live', 934),\n",
       " ('less', 934),\n",
       " ('moments', 933),\n",
       " ('others', 929),\n",
       " ('brilliant', 926),\n",
       " ('shot', 925),\n",
       " ('liked', 923),\n",
       " ('become', 916),\n",
       " ('won', 915),\n",
       " ('used', 910),\n",
       " ('style', 907),\n",
       " ('mother', 895),\n",
       " ('lives', 894),\n",
       " ('came', 893),\n",
       " ('stars', 890),\n",
       " ('cinema', 889),\n",
       " ('looks', 885),\n",
       " ('perhaps', 884),\n",
       " ('read', 882),\n",
       " ('enjoyed', 879),\n",
       " ('boy', 875),\n",
       " ('drama', 873),\n",
       " ('highly', 871),\n",
       " ('given', 870),\n",
       " ('playing', 867),\n",
       " ('use', 864),\n",
       " ('next', 859),\n",
       " ('women', 858),\n",
       " ('fine', 857),\n",
       " ('effects', 856),\n",
       " ('kids', 854),\n",
       " ('entertaining', 853),\n",
       " ('need', 852),\n",
       " ('line', 850),\n",
       " ('works', 848),\n",
       " ('someone', 847),\n",
       " ('mr', 836),\n",
       " ('simply', 835),\n",
       " ('children', 833),\n",
       " ('picture', 833),\n",
       " ('face', 831),\n",
       " ('friend', 831),\n",
       " ('keep', 831),\n",
       " ('dark', 830),\n",
       " ('overall', 828),\n",
       " ('certainly', 828),\n",
       " ('minutes', 827),\n",
       " ('wasn', 824),\n",
       " ('history', 822),\n",
       " ('finally', 820),\n",
       " ('couple', 816),\n",
       " ('against', 815),\n",
       " ('son', 809),\n",
       " ('understand', 808),\n",
       " ('lost', 807),\n",
       " ('michael', 805),\n",
       " ('else', 801),\n",
       " ('throughout', 798),\n",
       " ('fans', 797),\n",
       " ('city', 792),\n",
       " ('reason', 789),\n",
       " ('written', 787),\n",
       " ('production', 787),\n",
       " ('several', 784),\n",
       " ('school', 783),\n",
       " ('rest', 781),\n",
       " ('based', 781),\n",
       " ('try', 780),\n",
       " ('dead', 776),\n",
       " ('hope', 775),\n",
       " ('strong', 768),\n",
       " ('white', 765),\n",
       " ('tell', 759),\n",
       " ('itself', 758),\n",
       " ('half', 753),\n",
       " ('person', 749),\n",
       " ('sometimes', 746),\n",
       " ('past', 744),\n",
       " ('start', 744),\n",
       " ('genre', 743),\n",
       " ('final', 739),\n",
       " ('beginning', 739),\n",
       " ('town', 738),\n",
       " ('art', 734),\n",
       " ('game', 732),\n",
       " ('humor', 732),\n",
       " ('yes', 731),\n",
       " ('idea', 731),\n",
       " ('late', 730),\n",
       " ('becomes', 729),\n",
       " ('despite', 729),\n",
       " ('able', 726),\n",
       " ('case', 726),\n",
       " ('money', 723),\n",
       " ('child', 721),\n",
       " ('completely', 721),\n",
       " ('side', 719),\n",
       " ('camera', 716),\n",
       " ('getting', 714),\n",
       " ('instead', 712),\n",
       " ('soon', 702),\n",
       " ('under', 700),\n",
       " ('viewer', 699),\n",
       " ('age', 697),\n",
       " ('days', 696),\n",
       " ('stories', 696),\n",
       " ('felt', 694),\n",
       " ('simple', 694),\n",
       " ('roles', 693),\n",
       " ('video', 688),\n",
       " ('name', 683),\n",
       " ('either', 683),\n",
       " ('doing', 677),\n",
       " ('turns', 674),\n",
       " ('wants', 671),\n",
       " ('close', 671),\n",
       " ('title', 669),\n",
       " ('wrong', 668),\n",
       " ('went', 666),\n",
       " ('james', 665),\n",
       " ('evil', 659),\n",
       " ('budget', 657),\n",
       " ('episodes', 657),\n",
       " ('relationship', 655),\n",
       " ('piece', 653),\n",
       " ('fantastic', 653),\n",
       " ('david', 651),\n",
       " ('turn', 648),\n",
       " ('murder', 646),\n",
       " ('parts', 645),\n",
       " ('brother', 644),\n",
       " ('head', 643),\n",
       " ('absolutely', 643),\n",
       " ('experience', 642),\n",
       " ('eyes', 641),\n",
       " ('sex', 638),\n",
       " ('direction', 637),\n",
       " ('called', 637),\n",
       " ('directed', 636),\n",
       " ('lines', 634),\n",
       " ('behind', 633),\n",
       " ('sort', 632),\n",
       " ('actress', 631),\n",
       " ('lead', 630),\n",
       " ('oscar', 628),\n",
       " ('example', 627),\n",
       " ('including', 627),\n",
       " ('known', 625),\n",
       " ('musical', 625),\n",
       " ('chance', 621),\n",
       " ('score', 620),\n",
       " ('feeling', 619),\n",
       " ('already', 619),\n",
       " ('hit', 619),\n",
       " ('voice', 615),\n",
       " ('moment', 612),\n",
       " ('living', 612),\n",
       " ('low', 610),\n",
       " ('supporting', 610),\n",
       " ('ago', 609),\n",
       " ('themselves', 608),\n",
       " ('hilarious', 605),\n",
       " ('reality', 605),\n",
       " ('jack', 604),\n",
       " ('told', 603),\n",
       " ('hand', 601),\n",
       " ('moving', 600),\n",
       " ('dialogue', 600),\n",
       " ('quality', 600),\n",
       " ('song', 599),\n",
       " ('happy', 599),\n",
       " ('paul', 598),\n",
       " ('matter', 598),\n",
       " ('light', 594),\n",
       " ('future', 593),\n",
       " ('entire', 592),\n",
       " ('finds', 591),\n",
       " ('gave', 589),\n",
       " ('laugh', 587),\n",
       " ('released', 586),\n",
       " ('expect', 584),\n",
       " ('fight', 581),\n",
       " ('particularly', 580),\n",
       " ('cinematography', 579),\n",
       " ('police', 579),\n",
       " ('whose', 578),\n",
       " ('type', 578),\n",
       " ('sound', 578),\n",
       " ('enjoyable', 573),\n",
       " ('view', 573),\n",
       " ('husband', 572),\n",
       " ('romantic', 572),\n",
       " ('number', 572),\n",
       " ('daughter', 572),\n",
       " ('documentary', 571),\n",
       " ('self', 570),\n",
       " ('modern', 569),\n",
       " ('robert', 569),\n",
       " ('took', 569),\n",
       " ('superb', 569),\n",
       " ('mean', 566),\n",
       " ('shown', 563),\n",
       " ('coming', 561),\n",
       " ('important', 560),\n",
       " ('king', 559),\n",
       " ('leave', 559),\n",
       " ('change', 558),\n",
       " ('wanted', 555),\n",
       " ('somewhat', 555),\n",
       " ('tells', 554),\n",
       " ('run', 552),\n",
       " ('events', 552),\n",
       " ('country', 552),\n",
       " ('career', 552),\n",
       " ('heard', 550),\n",
       " ('season', 550),\n",
       " ('girls', 549),\n",
       " ('greatest', 549),\n",
       " ('etc', 547),\n",
       " ('care', 546),\n",
       " ('starts', 545),\n",
       " ('english', 542),\n",
       " ('killer', 541),\n",
       " ('animation', 540),\n",
       " ('guys', 540),\n",
       " ('totally', 540),\n",
       " ('tale', 540),\n",
       " ('usual', 539),\n",
       " ('opinion', 535),\n",
       " ('miss', 535),\n",
       " ('violence', 531),\n",
       " ('easy', 531),\n",
       " ('songs', 530),\n",
       " ('british', 528),\n",
       " ('says', 526),\n",
       " ('realistic', 525),\n",
       " ('writing', 524),\n",
       " ('act', 522),\n",
       " ('writer', 522),\n",
       " ('comic', 521),\n",
       " ('thriller', 519),\n",
       " ('television', 517),\n",
       " ('power', 516),\n",
       " ('ones', 515),\n",
       " ('kid', 514),\n",
       " ('novel', 513),\n",
       " ('york', 513),\n",
       " ('problem', 512),\n",
       " ('alone', 512),\n",
       " ('attention', 509),\n",
       " ('involved', 508),\n",
       " ('kill', 507),\n",
       " ('extremely', 507),\n",
       " ('seemed', 506),\n",
       " ('hero', 505),\n",
       " ('french', 505),\n",
       " ('rock', 504),\n",
       " ('stuff', 501),\n",
       " ('wish', 499),\n",
       " ('begins', 498),\n",
       " ('taken', 497),\n",
       " ('sad', 497),\n",
       " ('ways', 496),\n",
       " ('richard', 495),\n",
       " ('knows', 494),\n",
       " ('atmosphere', 493),\n",
       " ('surprised', 491),\n",
       " ('similar', 491),\n",
       " ('taking', 491),\n",
       " ('car', 491),\n",
       " ('george', 490),\n",
       " ('perfectly', 490),\n",
       " ('across', 489),\n",
       " ('sequence', 489),\n",
       " ('eye', 489),\n",
       " ('team', 489),\n",
       " ('serious', 488),\n",
       " ('powerful', 488),\n",
       " ('room', 488),\n",
       " ('due', 488),\n",
       " ('among', 488),\n",
       " ('order', 487),\n",
       " ('b', 487),\n",
       " ('cannot', 487),\n",
       " ('strange', 487),\n",
       " ('beauty', 486),\n",
       " ('famous', 485),\n",
       " ('tries', 484),\n",
       " ('myself', 484),\n",
       " ('happened', 484),\n",
       " ('herself', 484),\n",
       " ('class', 483),\n",
       " ('four', 482),\n",
       " ('cool', 481),\n",
       " ('release', 479),\n",
       " ('anyway', 479),\n",
       " ('theme', 479),\n",
       " ('opening', 478),\n",
       " ('entertainment', 477),\n",
       " ('unique', 475),\n",
       " ('ends', 475),\n",
       " ('slow', 475),\n",
       " ('exactly', 475),\n",
       " ('red', 474),\n",
       " ('o', 474),\n",
       " ('level', 474),\n",
       " ('easily', 474),\n",
       " ('interest', 472),\n",
       " ('happen', 471),\n",
       " ('crime', 470),\n",
       " ('viewing', 468),\n",
       " ('memorable', 467),\n",
       " ('sets', 467),\n",
       " ('group', 466),\n",
       " ('stop', 466),\n",
       " ('dance', 463),\n",
       " ('message', 463),\n",
       " ('sister', 463),\n",
       " ('working', 463),\n",
       " ('problems', 463),\n",
       " ('knew', 462),\n",
       " ('mystery', 461),\n",
       " ('nature', 461),\n",
       " ('bring', 460),\n",
       " ('believable', 459),\n",
       " ('thinking', 459),\n",
       " ('brought', 459),\n",
       " ('mostly', 458),\n",
       " ('couldn', 457),\n",
       " ('disney', 457),\n",
       " ('society', 456),\n",
       " ('within', 455),\n",
       " ('lady', 455),\n",
       " ('blood', 454),\n",
       " ('upon', 453),\n",
       " ('viewers', 453),\n",
       " ('parents', 453),\n",
       " ('meets', 452),\n",
       " ('form', 452),\n",
       " ('soundtrack', 452),\n",
       " ('usually', 452),\n",
       " ('tom', 452),\n",
       " ('peter', 452),\n",
       " ('local', 450),\n",
       " ('certain', 448),\n",
       " ('follow', 448),\n",
       " ('whether', 447),\n",
       " ('possible', 446),\n",
       " ('emotional', 445),\n",
       " ('killed', 444),\n",
       " ('de', 444),\n",
       " ('above', 444),\n",
       " ('middle', 443),\n",
       " ('god', 443),\n",
       " ('happens', 442),\n",
       " ('flick', 442),\n",
       " ('needs', 442),\n",
       " ('masterpiece', 441),\n",
       " ('major', 440),\n",
       " ('period', 440),\n",
       " ('haven', 439),\n",
       " ('named', 439),\n",
       " ('th', 438),\n",
       " ('particular', 438),\n",
       " ('earth', 437),\n",
       " ('feature', 437),\n",
       " ('stand', 436),\n",
       " ('words', 435),\n",
       " ('typical', 435),\n",
       " ('obviously', 433),\n",
       " ('elements', 433),\n",
       " ('romance', 431),\n",
       " ('jane', 430),\n",
       " ('yourself', 427),\n",
       " ('showing', 427),\n",
       " ('fantasy', 426),\n",
       " ('brings', 426),\n",
       " ('america', 423),\n",
       " ('guess', 423),\n",
       " ('huge', 422),\n",
       " ('unfortunately', 422),\n",
       " ('indeed', 421),\n",
       " ('running', 421),\n",
       " ('talent', 420),\n",
       " ('stage', 419),\n",
       " ('started', 418),\n",
       " ('sweet', 417),\n",
       " ('leads', 417),\n",
       " ('japanese', 417),\n",
       " ('poor', 416),\n",
       " ('deal', 416),\n",
       " ('personal', 413),\n",
       " ('incredible', 413),\n",
       " ('fast', 412),\n",
       " ('became', 410),\n",
       " ('deep', 410),\n",
       " ('hours', 409),\n",
       " ('nearly', 408),\n",
       " ('dream', 408),\n",
       " ('giving', 408),\n",
       " ('turned', 407),\n",
       " ('clearly', 407),\n",
       " ('near', 406),\n",
       " ('obvious', 406),\n",
       " ('cut', 405),\n",
       " ('surprise', 405),\n",
       " ('body', 404),\n",
       " ('era', 404),\n",
       " ('female', 403),\n",
       " ('hour', 403),\n",
       " ('five', 403),\n",
       " ('note', 399),\n",
       " ('learn', 398),\n",
       " ('truth', 398),\n",
       " ('match', 397),\n",
       " ('feels', 397),\n",
       " ('except', 397),\n",
       " ('tony', 397),\n",
       " ('filmed', 394),\n",
       " ('complete', 394),\n",
       " ('clear', 394),\n",
       " ('older', 393),\n",
       " ('street', 393),\n",
       " ('lots', 393),\n",
       " ('eventually', 393),\n",
       " ('keeps', 393),\n",
       " ('buy', 392),\n",
       " ('stewart', 391),\n",
       " ('william', 391),\n",
       " ('joe', 390),\n",
       " ('meet', 390),\n",
       " ('fall', 390),\n",
       " ('shots', 389),\n",
       " ('talking', 389),\n",
       " ('difficult', 389),\n",
       " ('unlike', 389),\n",
       " ('rating', 389),\n",
       " ('means', 388),\n",
       " ('dramatic', 388),\n",
       " ('appears', 386),\n",
       " ('subject', 386),\n",
       " ('wonder', 386),\n",
       " ('present', 386),\n",
       " ('situation', 386),\n",
       " ('comments', 385),\n",
       " ('sequences', 383),\n",
       " ('general', 383),\n",
       " ('lee', 383),\n",
       " ('earlier', 382),\n",
       " ('points', 382),\n",
       " ('check', 379),\n",
       " ('gone', 379),\n",
       " ('ten', 378),\n",
       " ('suspense', 378),\n",
       " ('recommended', 378),\n",
       " ('business', 377),\n",
       " ('third', 377),\n",
       " ('talk', 375),\n",
       " ('leaves', 375),\n",
       " ('beyond', 375),\n",
       " ('portrayal', 374),\n",
       " ('beautifully', 373),\n",
       " ('single', 372),\n",
       " ('bill', 372),\n",
       " ('word', 371),\n",
       " ('plenty', 371),\n",
       " ('falls', 370),\n",
       " ('whom', 370),\n",
       " ('figure', 369),\n",
       " ('battle', 369),\n",
       " ('scary', 369),\n",
       " ('non', 369),\n",
       " ('return', 368),\n",
       " ('using', 368),\n",
       " ('doubt', 367),\n",
       " ('add', 367),\n",
       " ('hear', 366),\n",
       " ('solid', 366),\n",
       " ('success', 366),\n",
       " ('touching', 365),\n",
       " ('political', 365),\n",
       " ('oh', 365),\n",
       " ('jokes', 365),\n",
       " ('awesome', 364),\n",
       " ('hell', 364),\n",
       " ('boys', 364),\n",
       " ('dog', 362),\n",
       " ('recently', 362),\n",
       " ('sexual', 362),\n",
       " ('please', 361),\n",
       " ('wouldn', 361),\n",
       " ('features', 361),\n",
       " ('straight', 361),\n",
       " ('lack', 360),\n",
       " ('forget', 360),\n",
       " ('setting', 360),\n",
       " ('mark', 359),\n",
       " ('married', 359),\n",
       " ('social', 357),\n",
       " ('adventure', 356),\n",
       " ('interested', 356),\n",
       " ('brothers', 355),\n",
       " ('sees', 355),\n",
       " ('actual', 355),\n",
       " ('terrific', 355),\n",
       " ('move', 354),\n",
       " ('call', 354),\n",
       " ('various', 353),\n",
       " ('dr', 353),\n",
       " ('theater', 353),\n",
       " ('animated', 352),\n",
       " ('western', 351),\n",
       " ('space', 350),\n",
       " ('baby', 350),\n",
       " ('leading', 348),\n",
       " ('disappointed', 348),\n",
       " ('portrayed', 346),\n",
       " ('aren', 346),\n",
       " ('screenplay', 345),\n",
       " ('smith', 345),\n",
       " ('hate', 344),\n",
       " ('towards', 344),\n",
       " ('noir', 343),\n",
       " ('outstanding', 342),\n",
       " ('decent', 342),\n",
       " ('kelly', 342),\n",
       " ('directors', 341),\n",
       " ('journey', 341),\n",
       " ('none', 340),\n",
       " ('effective', 340),\n",
       " ('looked', 340),\n",
       " ('caught', 339),\n",
       " ('cold', 339),\n",
       " ('storyline', 339),\n",
       " ('fi', 339),\n",
       " ('sci', 339),\n",
       " ('mary', 339),\n",
       " ('rich', 338),\n",
       " ('charming', 338),\n",
       " ('harry', 337),\n",
       " ('popular', 337),\n",
       " ('manages', 337),\n",
       " ('rare', 337),\n",
       " ('spirit', 336),\n",
       " ('open', 335),\n",
       " ('appreciate', 335),\n",
       " ('basically', 334),\n",
       " ('moves', 334),\n",
       " ('acted', 334),\n",
       " ('deserves', 333),\n",
       " ('subtle', 333),\n",
       " ('mention', 333),\n",
       " ('inside', 333),\n",
       " ('pace', 333),\n",
       " ('century', 333),\n",
       " ('boring', 333),\n",
       " ('familiar', 332),\n",
       " ('background', 332),\n",
       " ('ben', 331),\n",
       " ('creepy', 330),\n",
       " ('supposed', 330),\n",
       " ('secret', 329),\n",
       " ('jim', 328),\n",
       " ('die', 328),\n",
       " ('question', 327),\n",
       " ('effect', 327),\n",
       " ('natural', 327),\n",
       " ('rate', 326),\n",
       " ('language', 326),\n",
       " ('impressive', 326),\n",
       " ('intelligent', 325),\n",
       " ('saying', 325),\n",
       " ('material', 324),\n",
       " ('realize', 324),\n",
       " ('telling', 324),\n",
       " ('scott', 324),\n",
       " ('singing', 323),\n",
       " ('dancing', 322),\n",
       " ('adult', 321),\n",
       " ('imagine', 321),\n",
       " ('visual', 321),\n",
       " ('kept', 320),\n",
       " ('office', 320),\n",
       " ('uses', 319),\n",
       " ('pure', 318),\n",
       " ('wait', 318),\n",
       " ('stunning', 318),\n",
       " ('copy', 317),\n",
       " ('review', 317),\n",
       " ('previous', 317),\n",
       " ('seriously', 317),\n",
       " ('somehow', 316),\n",
       " ('created', 316),\n",
       " ('magic', 316),\n",
       " ('create', 316),\n",
       " ('hot', 316),\n",
       " ('reading', 316),\n",
       " ('crazy', 315),\n",
       " ('air', 315),\n",
       " ('frank', 315),\n",
       " ('stay', 315),\n",
       " ('escape', 315),\n",
       " ('attempt', 315),\n",
       " ('hands', 314),\n",
       " ('filled', 313),\n",
       " ('surprisingly', 312),\n",
       " ('expected', 312),\n",
       " ('average', 312),\n",
       " ('complex', 311),\n",
       " ('studio', 310),\n",
       " ('successful', 310),\n",
       " ('quickly', 310),\n",
       " ('male', 309),\n",
       " ('plus', 309),\n",
       " ('co', 307),\n",
       " ('minute', 306),\n",
       " ('images', 306),\n",
       " ('casting', 306),\n",
       " ('exciting', 306),\n",
       " ('following', 306),\n",
       " ('members', 305),\n",
       " ('german', 305),\n",
       " ('e', 305),\n",
       " ('reasons', 305),\n",
       " ('follows', 305),\n",
       " ('themes', 305),\n",
       " ('touch', 304),\n",
       " ('genius', 304),\n",
       " ('free', 304),\n",
       " ('edge', 304),\n",
       " ('cute', 304),\n",
       " ('outside', 303),\n",
       " ('ok', 302),\n",
       " ('admit', 302),\n",
       " ('younger', 302),\n",
       " ('reviews', 302),\n",
       " ('odd', 301),\n",
       " ('fighting', 301),\n",
       " ('master', 301),\n",
       " ('break', 300),\n",
       " ('thanks', 300),\n",
       " ('recent', 300),\n",
       " ('comment', 300),\n",
       " ('apart', 299),\n",
       " ('lovely', 298),\n",
       " ('begin', 298),\n",
       " ('emotions', 298),\n",
       " ('doctor', 297),\n",
       " ('italian', 297),\n",
       " ('party', 297),\n",
       " ('la', 296),\n",
       " ('missed', 296),\n",
       " ...]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "positive_counts.most_common()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "pos_neg_ratios = Counter()\n",
    "\n",
    "for term,cnt in list(total_counts.most_common()):\n",
    "    if(cnt > 100):\n",
    "        pos_neg_ratio = positive_counts[term] / float(negative_counts[term]+1)\n",
    "        pos_neg_ratios[term] = pos_neg_ratio\n",
    "\n",
    "for word,ratio in pos_neg_ratios.most_common():\n",
    "    if(ratio > 1):\n",
    "        pos_neg_ratios[word] = np.log(ratio)\n",
    "    else:\n",
    "        pos_neg_ratios[word] = -np.log((1 / (ratio+0.01)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('edie', 4.6913478822291435),\n",
       " ('paulie', 4.0775374439057197),\n",
       " ('felix', 3.1527360223636558),\n",
       " ('polanski', 2.8233610476132043),\n",
       " ('matthau', 2.8067217286092401),\n",
       " ('victoria', 2.6810215287142909),\n",
       " ('mildred', 2.6026896854443837),\n",
       " ('gandhi', 2.5389738710582761),\n",
       " ('flawless', 2.451005098112319),\n",
       " ('superbly', 2.2600254785752498),\n",
       " ('perfection', 2.1594842493533721),\n",
       " ('astaire', 2.1400661634962708),\n",
       " ('captures', 2.0386195471595809),\n",
       " ('voight', 2.0301704926730531),\n",
       " ('wonderfully', 2.0218960560332353),\n",
       " ('powell', 1.9783454248084671),\n",
       " ('brosnan', 1.9547990964725592),\n",
       " ('lily', 1.9203768470501485),\n",
       " ('bakshi', 1.9029851043382795),\n",
       " ('lincoln', 1.9014583864844796),\n",
       " ('refreshing', 1.8551812956655511),\n",
       " ('breathtaking', 1.8481124057791867),\n",
       " ('bourne', 1.8478489358790986),\n",
       " ('lemmon', 1.8458266904983307),\n",
       " ('delightful', 1.8002701588959635),\n",
       " ('flynn', 1.7996646487351682),\n",
       " ('andrews', 1.7764919970972666),\n",
       " ('homer', 1.7692866133759964),\n",
       " ('beautifully', 1.7626953362841438),\n",
       " ('soccer', 1.7578579175523736),\n",
       " ('elvira', 1.7397031072720019),\n",
       " ('underrated', 1.7197859696029656),\n",
       " ('gripping', 1.7165360479904674),\n",
       " ('superb', 1.7091514458966952),\n",
       " ('delight', 1.6714733033535532),\n",
       " ('welles', 1.6677068205580761),\n",
       " ('sadness', 1.663505133704376),\n",
       " ('sinatra', 1.6389967146756448),\n",
       " ('touching', 1.637217476541176),\n",
       " ('timeless', 1.62924053973028),\n",
       " ('macy', 1.6211339521972916),\n",
       " ('unforgettable', 1.6177367152487956),\n",
       " ('favorites', 1.6158688027643908),\n",
       " ('stewart', 1.6119987332957739),\n",
       " ('hartley', 1.6094379124341003),\n",
       " ('sullivan', 1.6094379124341003),\n",
       " ('extraordinary', 1.6094379124341003),\n",
       " ('brilliantly', 1.5950491749820008),\n",
       " ('friendship', 1.5677652160335325),\n",
       " ('wonderful', 1.5645425925262093),\n",
       " ('palma', 1.5553706911638245),\n",
       " ('magnificent', 1.54663701119507),\n",
       " ('finest', 1.5462590108125689),\n",
       " ('jackie', 1.5439233053234738),\n",
       " ('ritter', 1.5404450409471491),\n",
       " ('tremendous', 1.5184661342283736),\n",
       " ('freedom', 1.5091151908062312),\n",
       " ('fantastic', 1.5048433868558566),\n",
       " ('terrific', 1.5026699370083942),\n",
       " ('noir', 1.493925025312256),\n",
       " ('sidney', 1.493925025312256),\n",
       " ('outstanding', 1.4910053152089213),\n",
       " ('mann', 1.4894785973551214),\n",
       " ('pleasantly', 1.4894785973551214),\n",
       " ('nancy', 1.488077055429833),\n",
       " ('marie', 1.4825711915553104),\n",
       " ('marvelous', 1.4739999415389962),\n",
       " ('excellent', 1.4647538505723599),\n",
       " ('ruth', 1.4596256342054401),\n",
       " ('stanwyck', 1.4412101187160054),\n",
       " ('widmark', 1.4350845252893227),\n",
       " ('splendid', 1.4271163556401458),\n",
       " ('chan', 1.423108334242607),\n",
       " ('exceptional', 1.4201959127955721),\n",
       " ('tender', 1.410986973710262),\n",
       " ('gentle', 1.4078005663408544),\n",
       " ('poignant', 1.4022947024663317),\n",
       " ('gem', 1.3932148039644643),\n",
       " ('amazing', 1.3919815802404802),\n",
       " ('chilling', 1.3862943611198906),\n",
       " ('captivating', 1.3862943611198906),\n",
       " ('fisher', 1.3862943611198906),\n",
       " ('davies', 1.3862943611198906),\n",
       " ('darker', 1.3652409519220583),\n",
       " ('april', 1.3499267169490159),\n",
       " ('kelly', 1.3461743673304654),\n",
       " ('blake', 1.3418425985490567),\n",
       " ('overlooked', 1.329135947279942),\n",
       " ('ralph', 1.32818673031261),\n",
       " ('bette', 1.3156767939059373),\n",
       " ('hoffman', 1.3150668518315229),\n",
       " ('cole', 1.3121863889661687),\n",
       " ('shines', 1.3049487216659381),\n",
       " ('powerful', 1.2999662776313934),\n",
       " ('notch', 1.2950456896547455),\n",
       " ('remarkable', 1.2883688239495823),\n",
       " ('pitt', 1.286210902562908),\n",
       " ('winters', 1.2833463918674481),\n",
       " ('vivid', 1.2762934659055623),\n",
       " ('gritty', 1.2757524867200667),\n",
       " ('giallo', 1.2745029551317739),\n",
       " ('portrait', 1.2704625455947689),\n",
       " ('innocence', 1.2694300209805796),\n",
       " ('psychiatrist', 1.2685113254635072),\n",
       " ('favorite', 1.2668956297860055),\n",
       " ('ensemble', 1.2656663733312759),\n",
       " ('stunning', 1.2622417124499117),\n",
       " ('burns', 1.259880436264232),\n",
       " ('garbo', 1.258954938743289),\n",
       " ('barbara', 1.2580400255962119),\n",
       " ('panic', 1.2527629684953681),\n",
       " ('holly', 1.2527629684953681),\n",
       " ('philip', 1.2527629684953681),\n",
       " ('carol', 1.2481440226390734),\n",
       " ('perfect', 1.246742480713785),\n",
       " ('appreciated', 1.2462482874741743),\n",
       " ('favourite', 1.2411123512753928),\n",
       " ('journey', 1.2367626271489269),\n",
       " ('rural', 1.235471471385307),\n",
       " ('bond', 1.2321436812926323),\n",
       " ('builds', 1.2305398317106577),\n",
       " ('brilliant', 1.2287554137664785),\n",
       " ('brooklyn', 1.2286654169163074),\n",
       " ('von', 1.225175011976539),\n",
       " ('unfolds', 1.2163953243244932),\n",
       " ('recommended', 1.2163953243244932),\n",
       " ('daniel', 1.20215296760895),\n",
       " ('perfectly', 1.1971931173405572),\n",
       " ('crafted', 1.1962507582320256),\n",
       " ('prince', 1.1939224684724346),\n",
       " ('troubled', 1.192138346678933),\n",
       " ('consequences', 1.1865810616140668),\n",
       " ('haunting', 1.1814999484738773),\n",
       " ('cinderella', 1.180052620608284),\n",
       " ('alexander', 1.1759989522835299),\n",
       " ('emotions', 1.1753049094563641),\n",
       " ('boxing', 1.1735135968412274),\n",
       " ('subtle', 1.1734135017508081),\n",
       " ('curtis', 1.1649873576129823),\n",
       " ('rare', 1.1566438362402944),\n",
       " ('loved', 1.1563661500586044),\n",
       " ('daughters', 1.1526795099383853),\n",
       " ('courage', 1.1438688802562305),\n",
       " ('dentist', 1.1426722784621401),\n",
       " ('highly', 1.1420208631618658),\n",
       " ('nominated', 1.1409146683587992),\n",
       " ('tony', 1.1397491942285991),\n",
       " ('draws', 1.1325138403437911),\n",
       " ('everyday', 1.1306150197542835),\n",
       " ('contrast', 1.1284652518177909),\n",
       " ('cried', 1.1213405397456659),\n",
       " ('fabulous', 1.1210851445201684),\n",
       " ('ned', 1.120591195386885),\n",
       " ('fay', 1.120591195386885),\n",
       " ('emma', 1.1184149159642893),\n",
       " ('sensitive', 1.113318436057805),\n",
       " ('smooth', 1.1089750757036563),\n",
       " ('dramas', 1.1080910326226534),\n",
       " ('today', 1.1050431789984001),\n",
       " ('helps', 1.1023091505494358),\n",
       " ('inspiring', 1.0986122886681098),\n",
       " ('jimmy', 1.0937696641923216),\n",
       " ('awesome', 1.0931328229034842),\n",
       " ('unique', 1.0881409888008142),\n",
       " ('tragic', 1.0871835928444868),\n",
       " ('intense', 1.0870514662670339),\n",
       " ('stellar', 1.0857088838322018),\n",
       " ('rival', 1.0822184788924332),\n",
       " ('provides', 1.0797081340289569),\n",
       " ('depression', 1.0782034170369026),\n",
       " ('shy', 1.0775588794702773),\n",
       " ('carrie', 1.076139432816051),\n",
       " ('blend', 1.0753554265038423),\n",
       " ('hank', 1.0736109864626924),\n",
       " ('diana', 1.0726368022648489),\n",
       " ('adorable', 1.0726368022648489),\n",
       " ('unexpected', 1.0722255334949147),\n",
       " ('achievement', 1.0668635903535293),\n",
       " ('bettie', 1.0663514264498881),\n",
       " ('happiness', 1.0632729222228008),\n",
       " ('glorious', 1.0608719606852626),\n",
       " ('davis', 1.0541605260972757),\n",
       " ('terrifying', 1.0525211814678428),\n",
       " ('beauty', 1.050410186850232),\n",
       " ('ideal', 1.0479685558493548),\n",
       " ('fears', 1.0467872208035236),\n",
       " ('hong', 1.0438040521731147),\n",
       " ('seasons', 1.0433496099930604),\n",
       " ('fascinating', 1.0414538748281612),\n",
       " ('carries', 1.0345904299031787),\n",
       " ('satisfying', 1.0321225473992768),\n",
       " ('definite', 1.0319209141694374),\n",
       " ('touched', 1.0296194171811581),\n",
       " ('greatest', 1.0248947127715422),\n",
       " ('creates', 1.0241097613701886),\n",
       " ('aunt', 1.023388867430522),\n",
       " ('walter', 1.022328983918479),\n",
       " ('spectacular', 1.0198314108149955),\n",
       " ('portrayal', 1.0189810189761024),\n",
       " ('ann', 1.0127808528183286),\n",
       " ('enterprise', 1.0116009116784799),\n",
       " ('musicals', 1.0096648026516135),\n",
       " ('deeply', 1.0094845087721023),\n",
       " ('incredible', 1.0061677561461084),\n",
       " ('mature', 1.0060195018402847),\n",
       " ('triumph', 0.99682959435816731),\n",
       " ('margaret', 0.99682959435816731),\n",
       " ('navy', 0.99493385919326827),\n",
       " ('harry', 0.99176919305006062),\n",
       " ('lucas', 0.990398704027877),\n",
       " ('sweet', 0.98966110487955483),\n",
       " ('joey', 0.98794672078059009),\n",
       " ('oscar', 0.98721905111049713),\n",
       " ('balance', 0.98649499054740353),\n",
       " ('warm', 0.98485340331145166),\n",
       " ('ages', 0.98449898190068863),\n",
       " ('glover', 0.98082925301172619),\n",
       " ('guilt', 0.98082925301172619),\n",
       " ('carrey', 0.98082925301172619),\n",
       " ('learns', 0.97881108885548895),\n",
       " ('unusual', 0.97788374278196932),\n",
       " ('sons', 0.97777581552483595),\n",
       " ('complex', 0.97761897738147796),\n",
       " ('essence', 0.97753435711487369),\n",
       " ('brazil', 0.9769153536905899),\n",
       " ('widow', 0.97650959186720987),\n",
       " ('solid', 0.97537964824416146),\n",
       " ('beautiful', 0.97326301262841053),\n",
       " ('holmes', 0.97246100334120955),\n",
       " ('awe', 0.97186058302896583),\n",
       " ('vhs', 0.97116734209998934),\n",
       " ('eerie', 0.97116734209998934),\n",
       " ('lonely', 0.96873720724669754),\n",
       " ('grim', 0.96873720724669754),\n",
       " ('sport', 0.96825047080486615),\n",
       " ('debut', 0.96508089604358704),\n",
       " ('destiny', 0.96343751029985703),\n",
       " ('thrillers', 0.96281074750904794),\n",
       " ('tears', 0.95977584381389391),\n",
       " ('rose', 0.95664202739772253),\n",
       " ('feelings', 0.95551144502743635),\n",
       " ('ginger', 0.95551144502743635),\n",
       " ('winning', 0.95471810900804055),\n",
       " ('stanley', 0.95387344302319799),\n",
       " ('cox', 0.95343027882361187),\n",
       " ('paris', 0.95278479030472663),\n",
       " ('heart', 0.95238806924516806),\n",
       " ('hooked', 0.95155887071161305),\n",
       " ('comfortable', 0.94803943018873538),\n",
       " ('mgm', 0.94446160884085151),\n",
       " ('masterpiece', 0.94155039863339296),\n",
       " ('themes', 0.94118828349588235),\n",
       " ('danny', 0.93967118051821874),\n",
       " ('anime', 0.93378388932167222),\n",
       " ('perry', 0.93328830824272613),\n",
       " ('joy', 0.93301752567946861),\n",
       " ('lovable', 0.93081883243706487),\n",
       " ('hal', 0.92953595862417571),\n",
       " ('mysteries', 0.92953595862417571),\n",
       " ('louis', 0.92871325187271225),\n",
       " ('charming', 0.92520609553210742),\n",
       " ('urban', 0.92367083917177761),\n",
       " ('allows', 0.92183091224977043),\n",
       " ('impact', 0.91815814604895041),\n",
       " ('gradually', 0.91629073187415511),\n",
       " ('lifestyle', 0.91629073187415511),\n",
       " ('italy', 0.91629073187415511),\n",
       " ('spy', 0.91289514287301687),\n",
       " ('treat', 0.91193342650519937),\n",
       " ('subsequent', 0.91056005716517008),\n",
       " ('kennedy', 0.90981821736853763),\n",
       " ('loving', 0.90967549275543591),\n",
       " ('surprising', 0.90937028902958128),\n",
       " ('quiet', 0.90648673177753425),\n",
       " ('winter', 0.90624039602065365),\n",
       " ('reveals', 0.90490540964902977),\n",
       " ('raw', 0.90445627422715225),\n",
       " ('funniest', 0.90078654533818991),\n",
       " ('pleased', 0.89994159387262562),\n",
       " ('norman', 0.89994159387262562),\n",
       " ('thief', 0.89874642222324552),\n",
       " ('season', 0.89827222637147675),\n",
       " ('secrets', 0.89794159320595857),\n",
       " ('colorful', 0.89705936994626756),\n",
       " ('highest', 0.8967461358011849),\n",
       " ('compelling', 0.89462923509297576),\n",
       " ('danes', 0.89248008318043659),\n",
       " ('castle', 0.88967708335606499),\n",
       " ('kudos', 0.88889175768604067),\n",
       " ('great', 0.88810470901464589),\n",
       " ('baseball', 0.88730319500090271),\n",
       " ('subtitles', 0.88730319500090271),\n",
       " ('bleak', 0.88730319500090271),\n",
       " ('winner', 0.88643776872447388),\n",
       " ('tragedy', 0.88563699078315261),\n",
       " ('todd', 0.88551907320740142),\n",
       " ('nicely', 0.87924946019380601),\n",
       " ('arthur', 0.87546873735389985),\n",
       " ('essential', 0.87373111745535925),\n",
       " ('gorgeous', 0.8731725250935497),\n",
       " ('fonda', 0.87294029100054127),\n",
       " ('eastwood', 0.87139541196626402),\n",
       " ('focuses', 0.87082835779739776),\n",
       " ('enjoyed', 0.87070195951624607),\n",
       " ('natural', 0.86997924506912838),\n",
       " ('intensity', 0.86835126958503595),\n",
       " ('witty', 0.86824103423244681),\n",
       " ('rob', 0.8642954367557748),\n",
       " ('worlds', 0.86377269759070874),\n",
       " ('health', 0.86113891179907498),\n",
       " ('magical', 0.85953791528170564),\n",
       " ('deeper', 0.85802182375017932),\n",
       " ('lucy', 0.85618680780444956),\n",
       " ('moving', 0.85566611005772031),\n",
       " ('lovely', 0.85290640004681306),\n",
       " ('purple', 0.8513711857748395),\n",
       " ('memorable', 0.84801189112086062),\n",
       " ('sings', 0.84729786038720367),\n",
       " ('craig', 0.84342938360928321),\n",
       " ('modesty', 0.84342938360928321),\n",
       " ('relate', 0.84326559685926517),\n",
       " ('episodes', 0.84223712084137292),\n",
       " ('strong', 0.84167135777060931),\n",
       " ('smith', 0.83959811108590054),\n",
       " ('tear', 0.83704136022001441),\n",
       " ('apartment', 0.83333115290549531),\n",
       " ('princess', 0.83290912293510388),\n",
       " ('disagree', 0.83290912293510388),\n",
       " ('kung', 0.83173334384609199),\n",
       " ('adventure', 0.83150561393278388),\n",
       " ('columbo', 0.82667857318446791),\n",
       " ('jake', 0.82667857318446791),\n",
       " ('adds', 0.82485652591452319),\n",
       " ('hart', 0.82472353834866463),\n",
       " ('strength', 0.82417544296634937),\n",
       " ('realizes', 0.82360006895738058),\n",
       " ('dave', 0.8232003088081431),\n",
       " ('childhood', 0.82208086393583857),\n",
       " ('forbidden', 0.81989888619908913),\n",
       " ('tight', 0.81883539572344199),\n",
       " ('surreal', 0.8178506590609026),\n",
       " ('manager', 0.81770990320170756),\n",
       " ('dancer', 0.81574950265227764),\n",
       " ('con', 0.81093021621632877),\n",
       " ('studios', 0.81093021621632877),\n",
       " ('miike', 0.80821651034473263),\n",
       " ('realistic', 0.80807714723392232),\n",
       " ('explicit', 0.80792269515237358),\n",
       " ('kurt', 0.8060875917405409),\n",
       " ('traditional', 0.80535917116687328),\n",
       " ('deals', 0.80535917116687328),\n",
       " ('holds', 0.80493858654806194),\n",
       " ('carl', 0.80437281567016972),\n",
       " ('touches', 0.80396154690023547),\n",
       " ('gene', 0.80314807577427383),\n",
       " ('albert', 0.8027669055771679),\n",
       " ('abc', 0.80234647252493729),\n",
       " ('cry', 0.80011930011211307),\n",
       " ('sides', 0.7995275841185171),\n",
       " ('develops', 0.79850769621777162),\n",
       " ('eyre', 0.79850769621777162),\n",
       " ('dances', 0.79694397424158891),\n",
       " ('oscars', 0.79633141679517616),\n",
       " ('legendary', 0.79600456599965308),\n",
       " ('importance', 0.79492987486988764),\n",
       " ('hearted', 0.79492987486988764),\n",
       " ('portraying', 0.79356592830699269),\n",
       " ('impressed', 0.79258107754813223),\n",
       " ('waters', 0.79112758892014912),\n",
       " ('empire', 0.79078565012386137),\n",
       " ('edge', 0.789774016249017),\n",
       " ('environment', 0.78845736036427028),\n",
       " ('jean', 0.78845736036427028),\n",
       " ('sentimental', 0.7864791203521645),\n",
       " ('captured', 0.78623760362595729),\n",
       " ('styles', 0.78592891401091158),\n",
       " ('daring', 0.78592891401091158),\n",
       " ('backgrounds', 0.78275933924963248),\n",
       " ('frank', 0.78275933924963248),\n",
       " ('matches', 0.78275933924963248),\n",
       " ('tense', 0.78275933924963248),\n",
       " ('gothic', 0.78209466657644144),\n",
       " ('sharp', 0.7814397877056235),\n",
       " ('achieved', 0.78015855754957497),\n",
       " ('court', 0.77947526404844247),\n",
       " ('steals', 0.7789140023173704),\n",
       " ('rules', 0.77844476107184035),\n",
       " ('colors', 0.77684619943659217),\n",
       " ('reunion', 0.77318988823348167),\n",
       " ('covers', 0.77139937745969345),\n",
       " ('tale', 0.77010822169607374),\n",
       " ('rain', 0.7683706017975328),\n",
       " ('denzel', 0.76804848873306297),\n",
       " ('stays', 0.76787072675588186),\n",
       " ('blob', 0.76725515271366718),\n",
       " ('conventional', 0.76214005204689672),\n",
       " ('maria', 0.76214005204689672),\n",
       " ('fresh', 0.76158434211317383),\n",
       " ('midnight', 0.76096977689870637),\n",
       " ('landscape', 0.75852993982279704),\n",
       " ('animated', 0.75768570169751648),\n",
       " ('titanic', 0.75666058628227129),\n",
       " ('sunday', 0.75666058628227129),\n",
       " ('spring', 0.7537718023763802),\n",
       " ('cagney', 0.7537718023763802),\n",
       " ('enjoyable', 0.75246375771636476),\n",
       " ('immensely', 0.75198768058287868),\n",
       " ('sir', 0.7507762933965817),\n",
       " ('nevertheless', 0.75067102469813185),\n",
       " ('driven', 0.74994477895307854),\n",
       " ('performances', 0.74883252516063137),\n",
       " ('memories', 0.74721440183022114),\n",
       " ('nowadays', 0.74721440183022114),\n",
       " ('simple', 0.74641420974143258),\n",
       " ('golden', 0.74533293373051557),\n",
       " ('leslie', 0.74533293373051557),\n",
       " ('lovers', 0.74497224842453125),\n",
       " ('relationship', 0.74484232345601786),\n",
       " ('supporting', 0.74357803418683721),\n",
       " ('che', 0.74262723782331497),\n",
       " ('packed', 0.7410032017375805),\n",
       " ('trek', 0.74021469141793106),\n",
       " ('provoking', 0.73840377214806618),\n",
       " ('strikes', 0.73759894313077912),\n",
       " ('depiction', 0.73682224406260699),\n",
       " ('emotional', 0.73678211645681524),\n",
       " ('secretary', 0.7366322924996842),\n",
       " ('influenced', 0.73511137965897755),\n",
       " ('florida', 0.73511137965897755),\n",
       " ('germany', 0.73288750920945944),\n",
       " ('brings', 0.73142936713096229),\n",
       " ('lewis', 0.73129894652432159),\n",
       " ('elderly', 0.73088750854279239),\n",
       " ('owner', 0.72743625403857748),\n",
       " ('streets', 0.72666987259858895),\n",
       " ('henry', 0.72642196944481741),\n",
       " ('portrays', 0.72593700338293632),\n",
       " ('bears', 0.7252354951114458),\n",
       " ('china', 0.72489587887452556),\n",
       " ('anger', 0.72439972406404984),\n",
       " ('society', 0.72433010799663333),\n",
       " ('available', 0.72415741730250549),\n",
       " ('best', 0.72347034060446314),\n",
       " ('bugs', 0.72270598280148979),\n",
       " ('magic', 0.71878961117328299),\n",
       " ('verhoeven', 0.71846498854423513),\n",
       " ('delivers', 0.71846498854423513),\n",
       " ('jim', 0.71783979315031676),\n",
       " ('donald', 0.71667767797013937),\n",
       " ('endearing', 0.71465338578090898),\n",
       " ('relationships', 0.71393795022901896),\n",
       " ('greatly', 0.71256526641704687),\n",
       " ('charlie', 0.71024161391924534),\n",
       " ('brad', 0.71024161391924534),\n",
       " ('simon', 0.70967648251115578),\n",
       " ('effectively', 0.70914752190638641),\n",
       " ('march', 0.70774597998109789),\n",
       " ('atmosphere', 0.70744773070214162),\n",
       " ('influence', 0.70733181555190172),\n",
       " ('genius', 0.706392407309966),\n",
       " ('emotionally', 0.70556970055850243),\n",
       " ('ken', 0.70526854109229009),\n",
       " ('identity', 0.70484322032313651),\n",
       " ('sophisticated', 0.70470800296102132),\n",
       " ('dan', 0.70457587638356811),\n",
       " ('andrew', 0.70329955202396321),\n",
       " ('india', 0.70144598337464037),\n",
       " ('roy', 0.69970458110610434),\n",
       " ('surprisingly', 0.6995780708902356),\n",
       " ('sky', 0.69780919366575667),\n",
       " ('romantic', 0.69664981111114743),\n",
       " ('match', 0.69566924999265523),\n",
       " ('britain', 0.69314718055994529),\n",
       " ('beatty', 0.69314718055994529),\n",
       " ('affected', 0.69314718055994529),\n",
       " ('cowboy', 0.69314718055994529),\n",
       " ('wave', 0.69314718055994529),\n",
       " ('stylish', 0.69314718055994529),\n",
       " ('bitter', 0.69314718055994529),\n",
       " ('patient', 0.69314718055994529),\n",
       " ('meets', 0.69314718055994529),\n",
       " ('love', 0.69198533541937324),\n",
       " ('paul', 0.68980827929443067),\n",
       " ('andy', 0.68846333124751902),\n",
       " ('performance', 0.68797386327972465),\n",
       " ('patrick', 0.68645819240914863),\n",
       " ('unlike', 0.68546468438792907),\n",
       " ('brooks', 0.68433655087779044),\n",
       " ('refuses', 0.68348526964820844),\n",
       " ('award', 0.6824518914431974),\n",
       " ('complaint', 0.6824518914431974),\n",
       " ('ride', 0.68229716453587952),\n",
       " ('dawson', 0.68171848473632257),\n",
       " ('luke', 0.68158635815886937),\n",
       " ('wells', 0.68087708796813096),\n",
       " ('france', 0.6804081547825156),\n",
       " ('handsome', 0.68007509899259255),\n",
       " ('sports', 0.68007509899259255),\n",
       " ('rebel', 0.67875844310784572),\n",
       " ('directs', 0.67875844310784572),\n",
       " ('greater', 0.67605274720064523),\n",
       " ('dreams', 0.67599410133369586),\n",
       " ('effective', 0.67565402311242806),\n",
       " ('interpretation', 0.67479804189174875),\n",
       " ('works', 0.67445504754779284),\n",
       " ('brando', 0.67445504754779284),\n",
       " ('noble', 0.6737290947028437),\n",
       " ('paced', 0.67314651385327573),\n",
       " ('le', 0.67067432470788668),\n",
       " ('master', 0.67015766233524654),\n",
       " ('h', 0.6696166831497512),\n",
       " ('rings', 0.66904962898088483),\n",
       " ('easy', 0.66895995494594152),\n",
       " ('city', 0.66820823221269321),\n",
       " ('sunshine', 0.66782937257565544),\n",
       " ('succeeds', 0.66647893347778397),\n",
       " ('relations', 0.664159643686693),\n",
       " ('england', 0.66387679825983203),\n",
       " ('glimpse', 0.66329421741026418),\n",
       " ('aired', 0.66268797307523675),\n",
       " ('sees', 0.66263163663399482),\n",
       " ('both', 0.66248336767382998),\n",
       " ('definitely', 0.66199789483898808),\n",
       " ('imaginative', 0.66139848224536502),\n",
       " ('appreciate', 0.66083893732728749),\n",
       " ('tricks', 0.66071190480679143),\n",
       " ('striking', 0.66071190480679143),\n",
       " ('carefully', 0.65999497324304479),\n",
       " ('complicated', 0.65981076029235353),\n",
       " ('perspective', 0.65962448852130173),\n",
       " ('trilogy', 0.65877953705573755),\n",
       " ('future', 0.65834665141052828),\n",
       " ('lion', 0.65742909795786608),\n",
       " ('victor', 0.65540685257709819),\n",
       " ('douglas', 0.65540685257709819),\n",
       " ('inspired', 0.65459851044271034),\n",
       " ('marriage', 0.65392646740666405),\n",
       " ('demands', 0.65392646740666405),\n",
       " ('father', 0.65172321672194655),\n",
       " ('page', 0.65123628494430852),\n",
       " ('instant', 0.65058756614114943),\n",
       " ('era', 0.6495567444850836),\n",
       " ('ruthless', 0.64934455790155243),\n",
       " ('saga', 0.64934455790155243),\n",
       " ('joan', 0.64891392558311978),\n",
       " ('joseph', 0.64841128671855386),\n",
       " ('workers', 0.64829661439459352),\n",
       " ('fantasy', 0.64726757480925168),\n",
       " ('accomplished', 0.64551913157069074),\n",
       " ('distant', 0.64551913157069074),\n",
       " ('manhattan', 0.64435701639051324),\n",
       " ('personal', 0.64355023942057321),\n",
       " ('pushing', 0.64313675998528386),\n",
       " ('meeting', 0.64313675998528386),\n",
       " ('individual', 0.64313675998528386),\n",
       " ('pleasant', 0.64250344774119039),\n",
       " ('brave', 0.64185388617239469),\n",
       " ('william', 0.64083139119578469),\n",
       " ('hudson', 0.64077919504262937),\n",
       " ('friendly', 0.63949446706762514),\n",
       " ('eccentric', 0.63907995928966954),\n",
       " ('awards', 0.63875310849414646),\n",
       " ('jack', 0.63838309514997038),\n",
       " ('seeking', 0.63808740337691783),\n",
       " ('colonel', 0.63757732940513456),\n",
       " ('divorce', 0.63757732940513456),\n",
       " ('jane', 0.63443957973316734),\n",
       " ('keeping', 0.63414883979798953),\n",
       " ('gives', 0.63383568159497883),\n",
       " ('ted', 0.63342794585832296),\n",
       " ('animation', 0.63208692379869902),\n",
       " ('progress', 0.6317782341836532),\n",
       " ('concert', 0.63127177684185776),\n",
       " ('larger', 0.63127177684185776),\n",
       " ('nation', 0.6296337748376194),\n",
       " ('albeit', 0.62739580299716491),\n",
       " ('adapted', 0.62613647027698516),\n",
       " ('discovers', 0.62542900650499444),\n",
       " ('classic', 0.62504956428050518),\n",
       " ('segment', 0.62335141862440335),\n",
       " ('morgan', 0.62303761437291871),\n",
       " ('mouse', 0.62294292188669675),\n",
       " ('impressive', 0.62211140744319349),\n",
       " ('artist', 0.62168821657780038),\n",
       " ('ultimate', 0.62168821657780038),\n",
       " ('griffith', 0.62117368093485603),\n",
       " ('emily', 0.62082651898031915),\n",
       " ('drew', 0.62082651898031915),\n",
       " ('moved', 0.6197197120051281),\n",
       " ('profound', 0.61903920840622351),\n",
       " ('families', 0.61903920840622351),\n",
       " ('innocent', 0.61851219917136446),\n",
       " ('versions', 0.61730910416844087),\n",
       " ('eddie', 0.61691981517206107),\n",
       " ('criticism', 0.61651395453902935),\n",
       " ('nature', 0.61594514653194088),\n",
       " ('recognized', 0.61518563909023349),\n",
       " ('sexuality', 0.61467556511845012),\n",
       " ('contract', 0.61400986000122149),\n",
       " ('brian', 0.61344043794920278),\n",
       " ('remembered', 0.6131044728864089),\n",
       " ('determined', 0.6123858239154869),\n",
       " ('offers', 0.61207935747116349),\n",
       " ('pleasure', 0.61195702582993206),\n",
       " ('washington', 0.61180154110599294),\n",
       " ('images', 0.61159731359583758),\n",
       " ('games', 0.61067095873570676),\n",
       " ('academy', 0.60872983874736208),\n",
       " ('fashioned', 0.60798937221963845),\n",
       " ('melodrama', 0.60749173598145145),\n",
       " ('peoples', 0.60613580357031549),\n",
       " ('charismatic', 0.60613580357031549),\n",
       " ('rough', 0.60613580357031549),\n",
       " ('dealing', 0.60517840761398811),\n",
       " ('fine', 0.60496962268013299),\n",
       " ('tap', 0.60391604683200273),\n",
       " ('trio', 0.60157998703445481),\n",
       " ('russell', 0.60120968523425966),\n",
       " ('figures', 0.60077386042893011),\n",
       " ('ward', 0.60005675749393339),\n",
       " ('shine', 0.59911823091166894),\n",
       " ('brady', 0.59911823091166894),\n",
       " ('job', 0.59845562125168661),\n",
       " ('satisfied', 0.59652034487087369),\n",
       " ('river', 0.59637962862495086),\n",
       " ('brown', 0.595773016534769),\n",
       " ('believable', 0.59566072133302495),\n",
       " ('bound', 0.59470710774669278),\n",
       " ('always', 0.59470710774669278),\n",
       " ('hall', 0.5933967777928858),\n",
       " ('cook', 0.5916777203950857),\n",
       " ('claire', 0.59136448625000293),\n",
       " ('broadway', 0.59033768669372433),\n",
       " ('anna', 0.58778666490211906),\n",
       " ('peace', 0.58628403501758408),\n",
       " ('visually', 0.58539431926349916),\n",
       " ('falk', 0.58525821854876026),\n",
       " ('morality', 0.58525821854876026),\n",
       " ('growing', 0.58466653756587539),\n",
       " ('experiences', 0.58314628534561685),\n",
       " ('stood', 0.58314628534561685),\n",
       " ('touch', 0.58122926435596001),\n",
       " ('lives', 0.5810976767513224),\n",
       " ('kubrick', 0.58066919713325493),\n",
       " ('timing', 0.58047401805583243),\n",
       " ('struggles', 0.57981849525294216),\n",
       " ('expressions', 0.57981849525294216),\n",
       " ('authentic', 0.57848427223980559),\n",
       " ('helen', 0.57763429343810091),\n",
       " ('pre', 0.57700753064729182),\n",
       " ('quirky', 0.5753641449035618),\n",
       " ('young', 0.57531672344534313),\n",
       " ('inner', 0.57454143815209846),\n",
       " ('mexico', 0.57443087372056334),\n",
       " ('clint', 0.57380042292737909),\n",
       " ('sisters', 0.57286101468544337),\n",
       " ('realism', 0.57226528899949558),\n",
       " ('personalities', 0.5720692490067093),\n",
       " ('french', 0.5720692490067093),\n",
       " ('surprises', 0.57113222999698177),\n",
       " ('adventures', 0.57113222999698177),\n",
       " ('overcome', 0.5697681593994407),\n",
       " ('timothy', 0.56953322459276867),\n",
       " ('tales', 0.56909453188996639),\n",
       " ('war', 0.56843317302781682),\n",
       " ('civil', 0.5679840376059393),\n",
       " ('countries', 0.56737779327091187),\n",
       " ('streep', 0.56710645966458029),\n",
       " ('tradition', 0.56685345523565323),\n",
       " ('oliver', 0.56673325570428668),\n",
       " ('australia', 0.56580775818334383),\n",
       " ('understanding', 0.56531380905006046),\n",
       " ('players', 0.56509525370004821),\n",
       " ('knowing', 0.56489284503626647),\n",
       " ('rogers', 0.56421349718405212),\n",
       " ('suspenseful', 0.56368911332305849),\n",
       " ('variety', 0.56368911332305849),\n",
       " ('true', 0.56281525180810066),\n",
       " ('jr', 0.56220982311246936),\n",
       " ('psychological', 0.56108745854687891),\n",
       " ('branagh', 0.55961578793542266),\n",
       " ('wealth', 0.55961578793542266),\n",
       " ('performing', 0.55961578793542266),\n",
       " ('odds', 0.55961578793542266),\n",
       " ('sent', 0.55961578793542266),\n",
       " ('reminiscent', 0.55961578793542266),\n",
       " ('grand', 0.55961578793542266),\n",
       " ('overwhelming', 0.55961578793542266),\n",
       " ('brothers', 0.55891181043362848),\n",
       " ('howard', 0.55811089675600245),\n",
       " ('david', 0.55693122256475369),\n",
       " ('generation', 0.55628799784274796),\n",
       " ('grow', 0.55612538299565417),\n",
       " ('survival', 0.55594605904646033),\n",
       " ('mainstream', 0.55574731115750231),\n",
       " ('dick', 0.55431073570572953),\n",
       " ('charm', 0.55288175575407861),\n",
       " ('kirk', 0.55278982286502287),\n",
       " ('twists', 0.55244729845681018),\n",
       " ('gangster', 0.55206858230003986),\n",
       " ('jeff', 0.55179306225421365),\n",
       " ('family', 0.55116244510065526),\n",
       " ('tend', 0.55053307336110335),\n",
       " ('thanks', 0.55049088015842218),\n",
       " ('world', 0.54744234723432639),\n",
       " ('sutherland', 0.54743536937855164),\n",
       " ('life', 0.54695514434959924),\n",
       " ('disc', 0.54654370636806993),\n",
       " ('bug', 0.54654370636806993),\n",
       " ('tribute', 0.5455111817538808),\n",
       " ('europe', 0.54522705048332309),\n",
       " ('sacrifice', 0.54430155296238014),\n",
       " ('color', 0.54405127139431109),\n",
       " ('superior', 0.54333490233128523),\n",
       " ('york', 0.54318235866536513),\n",
       " ('pulls', 0.54266622962164945),\n",
       " ('hearts', 0.54232429082536171),\n",
       " ('jackson', 0.54232429082536171),\n",
       " ('enjoy', 0.54124285135906114),\n",
       " ('redemption', 0.54056759296472823),\n",
       " ('madness', 0.540384426007535),\n",
       " ('hamilton', 0.5389965007326869),\n",
       " ('stands', 0.5389965007326869),\n",
       " ('trial', 0.5389965007326869),\n",
       " ('greek', 0.5389965007326869),\n",
       " ('each', 0.5388212312554177),\n",
       " ('faithful', 0.53773307668591508),\n",
       " ('received', 0.5372768098531604),\n",
       " ('jealous', 0.53714293208336406),\n",
       " ('documentaries', 0.53714293208336406),\n",
       " ('different', 0.53709860682460819),\n",
       " ('describes', 0.53680111016925136),\n",
       " ('shorts', 0.53596159703753288),\n",
       " ('brilliance', 0.53551823635636209),\n",
       " ('mountains', 0.53492317534505118),\n",
       " ('share', 0.53408248593025787),\n",
       " ('dealt', 0.53408248593025787),\n",
       " ('providing', 0.53329847961804933),\n",
       " ('explore', 0.53329847961804933),\n",
       " ('series', 0.5325809226575603),\n",
       " ('fellow', 0.5323318289869543),\n",
       " ('loves', 0.53062825106217038),\n",
       " ('olivier', 0.53062825106217038),\n",
       " ('revolution', 0.53062825106217038),\n",
       " ('roman', 0.53062825106217038),\n",
       " ('century', 0.53002783074992665),\n",
       " ('musical', 0.52966871156747064),\n",
       " ('heroic', 0.52925932545482868),\n",
       " ('ironically', 0.52806743020049673),\n",
       " ('approach', 0.52806743020049673),\n",
       " ('temple', 0.52806743020049673),\n",
       " ('moves', 0.5279372642387119),\n",
       " ('gift', 0.52702030968597136),\n",
       " ('julie', 0.52609309589677911),\n",
       " ('tells', 0.52415107836314001),\n",
       " ('radio', 0.52394671172868779),\n",
       " ('uncle', 0.52354439617376536),\n",
       " ('union', 0.52324814376454787),\n",
       " ('deep', 0.52309571635780505),\n",
       " ('reminds', 0.52157841554225237),\n",
       " ('famous', 0.52118841080153722),\n",
       " ('jazz', 0.52053443789295151),\n",
       " ('dennis', 0.51987545928590861),\n",
       " ('epic', 0.51919387343650736),\n",
       " ('adult', 0.519167695083386),\n",
       " ('shows', 0.51915322220375304),\n",
       " ('performed', 0.5191244265806858),\n",
       " ('demons', 0.5191244265806858),\n",
       " ('eric', 0.51879379341516751),\n",
       " ('discovered', 0.51879379341516751),\n",
       " ('youth', 0.5185626062681431),\n",
       " ('human', 0.51851411224987087),\n",
       " ('tarzan', 0.51813827061227724),\n",
       " ('ourselves', 0.51794309153485463),\n",
       " ('wwii', 0.51758240622887042),\n",
       " ('passion', 0.5162164724008671),\n",
       " ('desire', 0.51607497965213445),\n",
       " ('pays', 0.51581316527702981),\n",
       " ('fox', 0.51557622652458857),\n",
       " ('dirty', 0.51557622652458857),\n",
       " ('symbolism', 0.51546600332249293),\n",
       " ('sympathetic', 0.51546600332249293),\n",
       " ('attitude', 0.51530993621331933),\n",
       " ('appearances', 0.51466440007315639),\n",
       " ('jeremy', 0.51466440007315639),\n",
       " ('fun', 0.51439068993048687),\n",
       " ('south', 0.51420972175023116),\n",
       " ('arrives', 0.51409894911095988),\n",
       " ('present', 0.51341965894303732),\n",
       " ('com', 0.51326167856387173),\n",
       " ('smile', 0.51265880484765169),\n",
       " ('fits', 0.51082562376599072),\n",
       " ('provided', 0.51082562376599072),\n",
       " ('carter', 0.51082562376599072),\n",
       " ('ring', 0.51082562376599072),\n",
       " ('aging', 0.51082562376599072),\n",
       " ('countryside', 0.51082562376599072),\n",
       " ('alan', 0.51082562376599072),\n",
       " ('visit', 0.51082562376599072),\n",
       " ('begins', 0.51015650363396647),\n",
       " ('success', 0.50900578704900468),\n",
       " ('japan', 0.50900578704900468),\n",
       " ('accurate', 0.50895471583017893),\n",
       " ('proud', 0.50800474742434931),\n",
       " ('daily', 0.5075946031845443),\n",
       " ('atmospheric', 0.50724780241810674),\n",
       " ('karloff', 0.50724780241810674),\n",
       " ('recently', 0.50714914903668207),\n",
       " ('fu', 0.50704490092608467),\n",
       " ('horrors', 0.50656122497953315),\n",
       " ('finding', 0.50637127341661037),\n",
       " ('lust', 0.5059356384717989),\n",
       " ('hitchcock', 0.50574947073413001),\n",
       " ('among', 0.50334004951332734),\n",
       " ('viewing', 0.50302139827440906),\n",
       " ('shining', 0.50262885656181222),\n",
       " ('investigation', 0.50262885656181222),\n",
       " ('duo', 0.5020919437972361),\n",
       " ('cameron', 0.5020919437972361),\n",
       " ('finds', 0.50128303100539795),\n",
       " ('contemporary', 0.50077528791248915),\n",
       " ('genuine', 0.50046283673044401),\n",
       " ('frightening', 0.49995595152908684),\n",
       " ('plays', 0.49975983848890226),\n",
       " ('age', 0.49941323171424595),\n",
       " ('position', 0.49899116611898781),\n",
       " ('continues', 0.49863035067217237),\n",
       " ('roles', 0.49839716550752178),\n",
       " ('james', 0.49837216269470402),\n",
       " ('individuals', 0.49824684155913052),\n",
       " ('brought', 0.49783842823917956),\n",
       " ('hilarious', 0.49714551986191058),\n",
       " ('brutal', 0.49681488669639234),\n",
       " ('appropriate', 0.49643688631389105),\n",
       " ('dance', 0.49581998314812048),\n",
       " ('league', 0.49578774640145024),\n",
       " ('helping', 0.49578774640145024),\n",
       " ('answers', 0.49578774640145024),\n",
       " ('stunts', 0.49561620510246196),\n",
       " ('traveling', 0.49532143723002542),\n",
       " ('thoroughly', 0.49414593456733524),\n",
       " ('depicted', 0.49317068852726992),\n",
       " ('honor', 0.49247648509779424),\n",
       " ('combination', 0.49247648509779424),\n",
       " ('differences', 0.49247648509779424),\n",
       " ('fully', 0.49213349075383811),\n",
       " ('tracy', 0.49159426183810306),\n",
       " ('battles', 0.49140753790888908),\n",
       " ('possibility', 0.49112055268665822),\n",
       " ('romance', 0.4901589869574316),\n",
       " ('initially', 0.49002249613622745),\n",
       " ('happy', 0.4898997500608791),\n",
       " ('crime', 0.48977221456815834),\n",
       " ('singing', 0.4893852925281213),\n",
       " ('especially', 0.48901267837860624),\n",
       " ('shakespeare', 0.48754793889664511),\n",
       " ('hugh', 0.48729512635579658),\n",
       " ('detail', 0.48609484250827351),\n",
       " ('guide', 0.48550781578170082),\n",
       " ('companion', 0.48550781578170082),\n",
       " ('julia', 0.48550781578170082),\n",
       " ('san', 0.48550781578170082),\n",
       " ('desperation', 0.48550781578170082),\n",
       " ('strongly', 0.48460242866688824),\n",
       " ('necessary', 0.48302334245403883),\n",
       " ('humanity', 0.48265474679929443),\n",
       " ('drama', 0.48221998493060503),\n",
       " ('warming', 0.48183808689273838),\n",
       " ('intrigue', 0.48183808689273838),\n",
       " ('nonetheless', 0.48183808689273838),\n",
       " ('cuba', 0.48183808689273838),\n",
       " ('planned', 0.47957308026188628),\n",
       " ('pictures', 0.47929937011921681),\n",
       " ('broadcast', 0.47849024312305422),\n",
       " ('nine', 0.47803580094299974),\n",
       " ('settings', 0.47743860773325364),\n",
       " ('history', 0.47732966933780852),\n",
       " ('ordinary', 0.47725880012690741),\n",
       " ('trade', 0.47692407209030935),\n",
       " ('primary', 0.47608267532211779),\n",
       " ('official', 0.47608267532211779),\n",
       " ('episode', 0.47529620261150429),\n",
       " ('role', 0.47520268270188676),\n",
       " ('spirit', 0.47477690799839323),\n",
       " ('grey', 0.47409361449726067),\n",
       " ('ways', 0.47323464982718205),\n",
       " ('cup', 0.47260441094579297),\n",
       " ('piano', 0.47260441094579297),\n",
       " ('familiar', 0.47241617565111949),\n",
       " ('sinister', 0.47198579044972683),\n",
       " ('reveal', 0.47171449364936496),\n",
       " ('max', 0.47150852042515579),\n",
       " ('dated', 0.47121648567094482),\n",
       " ('discovery', 0.47000362924573563),\n",
       " ('vicious', 0.47000362924573563),\n",
       " ('losing', 0.47000362924573563),\n",
       " ('genuinely', 0.46871413841586385),\n",
       " ('hatred', 0.46734051182625186),\n",
       " ('mistaken', 0.46702300110759781),\n",
       " ('dream', 0.46608972992459924),\n",
       " ('challenge', 0.46608972992459924),\n",
       " ('crisis', 0.46575733836428446),\n",
       " ('photographed', 0.46488852857896512),\n",
       " ('machines', 0.46430560813109778),\n",
       " ('critics', 0.46430560813109778),\n",
       " ('bird', 0.46430560813109778),\n",
       " ('born', 0.46411383518967209),\n",
       " ('detective', 0.4636633473511525),\n",
       " ('higher', 0.46328467899699055),\n",
       " ('remains', 0.46262352194811296),\n",
       " ('inevitable', 0.46262352194811296),\n",
       " ('soviet', 0.4618180446592961),\n",
       " ('ryan', 0.46134556650262099),\n",
       " ('african', 0.46112595521371813),\n",
       " ('smaller', 0.46081520319132935),\n",
       " ('techniques', 0.46052488529119184),\n",
       " ('information', 0.46034171833399862),\n",
       " ('deserved', 0.45999798712841444),\n",
       " ('cynical', 0.45953232937844013),\n",
       " ('lynch', 0.45953232937844013),\n",
       " ('francisco', 0.45953232937844013),\n",
       " ('tour', 0.45953232937844013),\n",
       " ('spielberg', 0.45953232937844013),\n",
       " ('struggle', 0.45911782160048453),\n",
       " ('language', 0.45902121257712653),\n",
       " ('visual', 0.45823514408822852),\n",
       " ('warner', 0.45724137763188427),\n",
       " ('social', 0.45720078250735313),\n",
       " ('reality', 0.45719346885019546),\n",
       " ('hidden', 0.45675840249571492),\n",
       " ('breaking', 0.45601738727099561),\n",
       " ('sometimes', 0.45563021171182794),\n",
       " ('modern', 0.45500247579345005),\n",
       " ('surfing', 0.45425527227759638),\n",
       " ('popular', 0.45410691533051023),\n",
       " ('surprised', 0.4534409399850382),\n",
       " ('follows', 0.45245361754408348),\n",
       " ('keeps', 0.45234869400701483),\n",
       " ('john', 0.4520909494482197),\n",
       " ('defeat', 0.45198512374305722),\n",
       " ('mixed', 0.45198512374305722),\n",
       " ('justice', 0.45142724367280018),\n",
       " ('treasure', 0.45083371313801535),\n",
       " ('presents', 0.44973793178615257),\n",
       " ('years', 0.44919197032104968),\n",
       " ('chief', 0.44895022004790319),\n",
       " ('shadows', 0.44802472252696035),\n",
       " ('closely', 0.44701411102103689),\n",
       " ('segments', 0.44701411102103689),\n",
       " ('lose', 0.44658335503763702),\n",
       " ('caine', 0.44628710262841953),\n",
       " ('caught', 0.44610275383999071),\n",
       " ('hamlet', 0.44558510189758965),\n",
       " ('chinese', 0.44507424620321018),\n",
       " ('welcome', 0.44438052435783792),\n",
       " ('birth', 0.44368632092836219),\n",
       " ('represents', 0.44320543609101143),\n",
       " ('puts', 0.44279106572085081),\n",
       " ('fame', 0.44183275227903923),\n",
       " ('closer', 0.44183275227903923),\n",
       " ('visuals', 0.44183275227903923),\n",
       " ('web', 0.44183275227903923),\n",
       " ('criminal', 0.4412745608048752),\n",
       " ('minor', 0.4409224199448939),\n",
       " ('jon', 0.44086703515908027),\n",
       " ('liked', 0.44074991514020723),\n",
       " ('restaurant', 0.44031183943833246),\n",
       " ('flaws', 0.43983275161237217),\n",
       " ('de', 0.43983275161237217),\n",
       " ('searching', 0.4393666597838457),\n",
       " ('rap', 0.43891304217570443),\n",
       " ('light', 0.43884433018199892),\n",
       " ('elizabeth', 0.43872232986464677),\n",
       " ('marry', 0.43861731542506488),\n",
       " ('oz', 0.43825493093115531),\n",
       " ('controversial', 0.43825493093115531),\n",
       " ('learned', 0.43825493093115531),\n",
       " ('slowly', 0.43785660389939979),\n",
       " ('bridge', 0.43721380642274466),\n",
       " ('thrilling', 0.43721380642274466),\n",
       " ('wayne', 0.43721380642274466),\n",
       " ('comedic', 0.43721380642274466),\n",
       " ('married', 0.43658501682196887),\n",
       " ('nazi', 0.4361020775700542),\n",
       " ('murder', 0.4353180712578455),\n",
       " ('physical', 0.4353180712578455),\n",
       " ('johnny', 0.43483971678806865),\n",
       " ('michelle', 0.43445264498141672),\n",
       " ('wallace', 0.43403848055222038),\n",
       " ('silent', 0.43395706390247063),\n",
       " ('comedies', 0.43395706390247063),\n",
       " ('played', 0.43387244114515305),\n",
       " ('international', 0.43363598507486073),\n",
       " ('vision', 0.43286408229627887),\n",
       " ('intelligent', 0.43196704885367099),\n",
       " ('shop', 0.43078291609245434),\n",
       " ('also', 0.43036720209769169),\n",
       " ('levels', 0.4302451371066513),\n",
       " ('miss', 0.43006426712153217),\n",
       " ('ocean', 0.4295626596872249),\n",
       " ...]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# words most frequently seen in a review with a \"POSITIVE\" label\n",
    "pos_neg_ratios.most_common()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('boll', -4.0778152602708904),\n",
       " ('uwe', -3.9218753018711578),\n",
       " ('seagal', -3.3202501058581921),\n",
       " ('unwatchable', -3.0269848170580955),\n",
       " ('stinker', -2.9876839403711624),\n",
       " ('mst', -2.7753833211707968),\n",
       " ('incoherent', -2.7641396677532537),\n",
       " ('unfunny', -2.5545257844967644),\n",
       " ('waste', -2.4907515123361046),\n",
       " ('blah', -2.4475792789485005),\n",
       " ('horrid', -2.3715779644809971),\n",
       " ('pointless', -2.3451073877136341),\n",
       " ('atrocious', -2.3187369339642556),\n",
       " ('redeeming', -2.2667790015910296),\n",
       " ('prom', -2.2601040980178784),\n",
       " ('drivel', -2.2476029585766928),\n",
       " ('lousy', -2.2118080125207054),\n",
       " ('worst', -2.1930856334332267),\n",
       " ('laughable', -2.172468615469592),\n",
       " ('awful', -2.1385076866397488),\n",
       " ('poorly', -2.1326133844207011),\n",
       " ('wasting', -2.1178155545614512),\n",
       " ('remotely', -2.111046881095167),\n",
       " ('existent', -2.0024805005437076),\n",
       " ('boredom', -1.9241486572738005),\n",
       " ('miserably', -1.9216610938019989),\n",
       " ('sucks', -1.9166645809588516),\n",
       " ('uninspired', -1.9131499212248517),\n",
       " ('lame', -1.9117232884159072),\n",
       " ('insult', -1.9085323769376259)]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# words most frequently seen in a review with a \"NEGATIVE\" label\n",
    "list(reversed(pos_neg_ratios.most_common()))[0:30]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Transforming Text into Numbers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAFKCAYAAAAg+zSAAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2Jl\nLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q\nIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5\nOTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w\nLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAg\nICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZm\nOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0\naW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K\nAtiABQAAQABJREFUeAHtnXvQXVV5/1daZxy1BUpJp1MhE5BSSSAgqBAV5BIuGaQJBoEUATEJAiXY\ncMsUTfMDK9MAMXKRAEmAgGkASUiGIgQSsEQgKGDCJV6GYkywfzRWibc/OuO8v/1Zuo7r3e/e5+zr\n2ZfzfWbOe/bZe12e9V373eu7n/WsZ40aCsRIhIAQEAJCQAgIASFQAQJ/UkGdqlIICAEhIASEgBAQ\nAhYBERHdCEJACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEhIASEgBAQApUhICJSGfSq\nWAgIASEgBISAEBAR0T0gBISAEBACQkAIVIaAiEhl0KtiISAEhIAQEAJCQERE94AQEAJCQAgIASFQ\nGQIiIpVBr4qFgBAQAkJACAgBERHdA0JACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEh\n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\nAH0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "\n",
    "review = \"This was a horrible, terrible movie.\"\n",
    "\n",
    "Image(filename='sentiment_network.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAECCAYAAADZzFwPAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2Jl\nLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q\nIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5\nOTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w\nLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAg\nICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZm\nOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0\naW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K\nAtiABQAAQABJREFUeAHtnXvQVdV5/xdNZjIxjRgrM52qFI01ERQVExWNeMMLQy0YiEiNEgOYaJAO\nitIaGYo2TFGQeElQAREjRa0oDEG8AKagosYYkEuSjjUEbP+orZFc/KMzmfe3Pys+57fOfvfZZ1/P\nWXu/zzNz3rPP3uvyrO/a717f/axnPatfTyBGRRFQBBQBRUARUAQUgQog8CcV0FFVVAQUAUVAEVAE\nFAFFwCKgxEVvBEVAEVAEFAFFQBGoDAJKXCrTVaqoIqAIKAKKgCKgCChx0XtAEVAEFAFFQBFQBCqD\ngBKXynSVKqoIKAKKgCKgCCgCSlz0HlAEFAFFQBFQBBSByiCgxKUyXaWKKgKKgCKgCCgCioASF70H\nFAFFQBFQBBQBRaAyCHy8MpqqooqAItAVBH784x+bPXv2mJ07d5q9e/eat99+2+zYsaOXLuPGjTOH\n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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "review = \"The movie was excellent\"\n",
    "\n",
    "Image(filename='sentiment_network_pos.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Project 2: Creating the Input/Output Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "74074\n"
     ]
    }
   ],
   "source": [
    "vocab = set(total_counts.keys())\n",
    "vocab_size = len(vocab)\n",
    "print(vocab_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['',\n",
       " 'inhabitants',\n",
       " 'goku',\n",
       " 'stunts',\n",
       " 'catepillar',\n",
       " 'kristensen',\n",
       " 'senegal',\n",
       " 'goddess',\n",
       " 'distroy',\n",
       " 'unexplainably',\n",
       " 'concoctions',\n",
       " 'petite',\n",
       " 'scribe',\n",
       " 'stevson',\n",
       " 'sctv',\n",
       " 'soundscape',\n",
       " 'rana',\n",
       " 'metamorphose',\n",
       " 'immortalizer',\n",
       " 'henstridge',\n",
       " 'planning',\n",
       " 'akiva',\n",
       " 'plod',\n",
       " 'eko',\n",
       " 'orderly',\n",
       " 'zeleznice',\n",
       " 'verbose',\n",
       " 'amplify',\n",
       " 'resonation',\n",
       " 'critize',\n",
       " 'jefferies',\n",
       " 'mountainbillies',\n",
       " 'steinbichler',\n",
       " 'vowel',\n",
       " 'rafe',\n",
       " 'bonbons',\n",
       " 'tulipe',\n",
       " 'clot',\n",
       " 'distended',\n",
       " 'his',\n",
       " 'impatiently',\n",
       " 'unfortuntly',\n",
       " 'lung',\n",
       " 'scapegoats',\n",
       " 'muzzle',\n",
       " 'pscychosexual',\n",
       " 'outbid',\n",
       " 'obit',\n",
       " 'sideshows',\n",
       " 'jugde',\n",
       " 'particolare',\n",
       " 'kevloun',\n",
       " 'masterful',\n",
       " 'quartier',\n",
       " 'unravelling',\n",
       " 'necessarily',\n",
       " 'antiques',\n",
       " 'strutts',\n",
       " 'tilts',\n",
       " 'disconcert',\n",
       " 'dossiers',\n",
       " 'sorriest',\n",
       " 'blart',\n",
       " 'iberia',\n",
       " 'situations',\n",
       " 'frmann',\n",
       " 'daniell',\n",
       " 'rays',\n",
       " 'pried',\n",
       " 'khoobsurat',\n",
       " 'leavitt',\n",
       " 'caiano',\n",
       " 'sagan',\n",
       " 'attractiveness',\n",
       " 'kitaparaporn',\n",
       " 'hamilton',\n",
       " 'massages',\n",
       " 'reasonably',\n",
       " 'horgan',\n",
       " 'chemist',\n",
       " 'audrey',\n",
       " 'jana',\n",
       " 'dutch',\n",
       " 'override',\n",
       " 'spasms',\n",
       " 'resumed',\n",
       " 'stinson',\n",
       " 'widows',\n",
       " 'stonewall',\n",
       " 'palatial',\n",
       " 'neuman',\n",
       " 'abandon',\n",
       " 'anglophile',\n",
       " 'marathon',\n",
       " 'chevette',\n",
       " 'unscary',\n",
       " 'eponymously',\n",
       " 'spoilerific',\n",
       " 'fleashens',\n",
       " 'brigand',\n",
       " 'politeness',\n",
       " 'clued',\n",
       " 'dermatonecrotic',\n",
       " 'grady',\n",
       " 'mulligan',\n",
       " 'ol',\n",
       " 'bertolucci',\n",
       " 'incubation',\n",
       " 'oldboy',\n",
       " 'snden',\n",
       " 'plaintiffs',\n",
       " 'fk',\n",
       " 'deply',\n",
       " 'franchot',\n",
       " 'cyhper',\n",
       " 'glorifying',\n",
       " 'mazovia',\n",
       " 'elizabeth',\n",
       " 'palestine',\n",
       " 'robby',\n",
       " 'wongo',\n",
       " 'moshing',\n",
       " 'eeeee',\n",
       " 'doltish',\n",
       " 'bree',\n",
       " 'postponed',\n",
       " 'gunslinger',\n",
       " 'debacles',\n",
       " 'kamm',\n",
       " 'herman',\n",
       " 'rapture',\n",
       " 'rolando',\n",
       " 'tetsuothe',\n",
       " 'premises',\n",
       " 'bruck',\n",
       " 'loosely',\n",
       " 'boylen',\n",
       " 'proportions',\n",
       " 'grecianized',\n",
       " 'wodehousian',\n",
       " 'encapsuling',\n",
       " 'partly',\n",
       " 'posative',\n",
       " 'calms',\n",
       " 'stadling',\n",
       " 'austrailia',\n",
       " 'shortland',\n",
       " 'wheeling',\n",
       " 'darkie',\n",
       " 'mckellar',\n",
       " 'cushy',\n",
       " 'ooookkkk',\n",
       " 'milky',\n",
       " 'unfolded',\n",
       " 'degrades',\n",
       " 'authenticating',\n",
       " 'rotheroe',\n",
       " 'beart',\n",
       " 'neath',\n",
       " 'grispin',\n",
       " 'intoxicants',\n",
       " 'nnette',\n",
       " 'slinging',\n",
       " 'tsukamoto',\n",
       " 'stows',\n",
       " 'suddenness',\n",
       " 'waqt',\n",
       " 'degrading',\n",
       " 'camazotz',\n",
       " 'blarney',\n",
       " 'shakher',\n",
       " 'delinquency',\n",
       " 'tomreynolds',\n",
       " 'insecticide',\n",
       " 'charlton',\n",
       " 'hare',\n",
       " 'wayland',\n",
       " 'nakada',\n",
       " 'urbane',\n",
       " 'sadomasochistic',\n",
       " 'larnia',\n",
       " 'hyping',\n",
       " 'yr',\n",
       " 'hebert',\n",
       " 'accentuating',\n",
       " 'deathrow',\n",
       " 'galligan',\n",
       " 'unmediated',\n",
       " 'treble',\n",
       " 'alphabet',\n",
       " 'soad',\n",
       " 'donen',\n",
       " 'lord',\n",
       " 'recess',\n",
       " 'handsome',\n",
       " 'center',\n",
       " 'vignettes',\n",
       " 'rescuers',\n",
       " 'pairings',\n",
       " 'uselful',\n",
       " 'sanders',\n",
       " 'nots',\n",
       " 'hatsumomo',\n",
       " 'appleby',\n",
       " 'tampax',\n",
       " 'sprinkling',\n",
       " 'defacing',\n",
       " 'lofty',\n",
       " 'opaque',\n",
       " 'tlc',\n",
       " 'romagna',\n",
       " 'tablespoons',\n",
       " 'bernhard',\n",
       " 'verger',\n",
       " 'acumen',\n",
       " 'percentages',\n",
       " 'wendingo',\n",
       " 'resonating',\n",
       " 'vntoarea',\n",
       " 'redundancies',\n",
       " 'red',\n",
       " 'pitied',\n",
       " 'belying',\n",
       " 'gleefulness',\n",
       " 'bibbidi',\n",
       " 'heiligt',\n",
       " 'gitane',\n",
       " 'journalist',\n",
       " 'focusing',\n",
       " 'plethora',\n",
       " 'citizen',\n",
       " 'coster',\n",
       " 'clunkers',\n",
       " 'deplorable',\n",
       " 'forgive',\n",
       " 'proplems',\n",
       " 'magwood',\n",
       " 'bankers',\n",
       " 'aqua',\n",
       " 'donated',\n",
       " 'disbelieving',\n",
       " 'acomplication',\n",
       " 'immediately',\n",
       " 'contrasted',\n",
       " 'reidelsheimer',\n",
       " 'fox',\n",
       " 'springs',\n",
       " 'toolbox',\n",
       " 'contacting',\n",
       " 'ace',\n",
       " 'washrooms',\n",
       " 'raving',\n",
       " 'dynamism',\n",
       " 'mae',\n",
       " 'sky',\n",
       " 'disharmony',\n",
       " 'untutored',\n",
       " 'icarus',\n",
       " 'taint',\n",
       " 'kargil',\n",
       " 'captain',\n",
       " 'paucity',\n",
       " 'fits',\n",
       " 'tumbles',\n",
       " 'amer',\n",
       " 'bueller',\n",
       " 'redubbed',\n",
       " 'cleansed',\n",
       " 'kollos',\n",
       " 'shara',\n",
       " 'humma',\n",
       " 'felichy',\n",
       " 'outa',\n",
       " 'piglets',\n",
       " 'gombell',\n",
       " 'supermen',\n",
       " 'superlow',\n",
       " 'enhance',\n",
       " 'goode',\n",
       " 'shalt',\n",
       " 'kubanskie',\n",
       " 'zenith',\n",
       " 'ananda',\n",
       " 'ocd',\n",
       " 'matlin',\n",
       " 'nosed',\n",
       " 'presumptuous',\n",
       " 'rerun',\n",
       " 'toyko',\n",
       " 'mazar',\n",
       " 'sundry',\n",
       " 'bilb',\n",
       " 'fugly',\n",
       " 'orchestrating',\n",
       " 'prosaically',\n",
       " 'maricarmen',\n",
       " 'moveis',\n",
       " 'conelly',\n",
       " 'estrange',\n",
       " 'lusciously',\n",
       " 'seasonings',\n",
       " 'sums',\n",
       " 'delirious',\n",
       " 'quincey',\n",
       " 'flesh',\n",
       " 'tootsie',\n",
       " 'ai',\n",
       " 'tenma',\n",
       " 'appropriations',\n",
       " 'chainsaw',\n",
       " 'ides',\n",
       " 'surrogacy',\n",
       " 'pungent',\n",
       " 'gallon',\n",
       " 'damaso',\n",
       " 'caribou',\n",
       " 'perico',\n",
       " 'supplying',\n",
       " 'ro',\n",
       " 'yuy',\n",
       " 'valium',\n",
       " 'debuted',\n",
       " 'robbin',\n",
       " 'mounts',\n",
       " 'interpolated',\n",
       " 'aetv',\n",
       " 'plummer',\n",
       " 'competence',\n",
       " 'toadies',\n",
       " 'dubiel',\n",
       " 'clavichord',\n",
       " 'asunder',\n",
       " 'sublety',\n",
       " 'airfix',\n",
       " 'stoltzfus',\n",
       " 'ruth',\n",
       " 'fluorescent',\n",
       " 'improves',\n",
       " 'rebenga',\n",
       " 'russells',\n",
       " 'deliberation',\n",
       " 'zsa',\n",
       " 'dardino',\n",
       " 'macs',\n",
       " 'servile',\n",
       " 'jlb',\n",
       " 'apallonia',\n",
       " 'crossbows',\n",
       " 'locus',\n",
       " 'mislead',\n",
       " 'corey',\n",
       " 'blundered',\n",
       " 'jeopardizes',\n",
       " 'disorganized',\n",
       " 'discuss',\n",
       " 'longish',\n",
       " 'tieing',\n",
       " 'ledger',\n",
       " 'speechifying',\n",
       " 'amitabhz',\n",
       " 'bbc',\n",
       " 'chimayo',\n",
       " 'pranked',\n",
       " 'superman',\n",
       " 'aggravated',\n",
       " 'rifleman',\n",
       " 'yvone',\n",
       " 'radiant',\n",
       " 'galico',\n",
       " 'debris',\n",
       " 'waking',\n",
       " 'btw',\n",
       " 'havnt',\n",
       " 'francen',\n",
       " 'chattered',\n",
       " 'scathed',\n",
       " 'pic',\n",
       " 'ceremonies',\n",
       " 'watergate',\n",
       " 'betsy',\n",
       " 'majorca',\n",
       " 'meercat',\n",
       " 'noirs',\n",
       " 'grunts',\n",
       " 'drecky',\n",
       " 'tribulations',\n",
       " 'avery',\n",
       " 'talladega',\n",
       " 'eights',\n",
       " 'dumbing',\n",
       " 'alloimono',\n",
       " 'scrutinising',\n",
       " 'geta',\n",
       " 'beltrami',\n",
       " 'pvc',\n",
       " 'horse',\n",
       " 'tiburon',\n",
       " 'huitime',\n",
       " 'ripple',\n",
       " 'loitering',\n",
       " 'forensics',\n",
       " 'nearly',\n",
       " 'elizabethan',\n",
       " 'ellington',\n",
       " 'uzi',\n",
       " 'sicily',\n",
       " 'camion',\n",
       " 'motivated',\n",
       " 'rung',\n",
       " 'gao',\n",
       " 'licitates',\n",
       " 'protocol',\n",
       " 'smirker',\n",
       " 'torin',\n",
       " 'newlywed',\n",
       " 'rich',\n",
       " 'dismay',\n",
       " 'skyler',\n",
       " 'moonwalks',\n",
       " 'haranguing',\n",
       " 'sunburst',\n",
       " 'grifter',\n",
       " 'undersold',\n",
       " 'chearator',\n",
       " 'marino',\n",
       " 'scala',\n",
       " 'conditioner',\n",
       " 'ulysses',\n",
       " 'lamarre',\n",
       " 'figueroa',\n",
       " 'flane',\n",
       " 'allllllll',\n",
       " 'slide',\n",
       " 'lateness',\n",
       " 'selbst',\n",
       " 'gandhis',\n",
       " 'dramatizing',\n",
       " 'catchphrase',\n",
       " 'doable',\n",
       " 'stadiums',\n",
       " 'alexanderplatz',\n",
       " 'pandemonium',\n",
       " 'misrepresents',\n",
       " 'earth',\n",
       " 'mounties',\n",
       " 'seeker',\n",
       " 'cheat',\n",
       " 'outbreaks',\n",
       " 'snowstorm',\n",
       " 'baur',\n",
       " 'schedules',\n",
       " 'bathetic',\n",
       " 'incorrect',\n",
       " 'johnathon',\n",
       " 'rosanne',\n",
       " 'mundanely',\n",
       " 'cauldrons',\n",
       " 'forrest',\n",
       " 'poky',\n",
       " 'legislation',\n",
       " 'womanness',\n",
       " 'spender',\n",
       " 'crazy',\n",
       " 'rational',\n",
       " 'terrell',\n",
       " 'zero',\n",
       " 'coincides',\n",
       " 'thoughout',\n",
       " 'mathew',\n",
       " 'narnia',\n",
       " 'naseeruddin',\n",
       " 'bucks',\n",
       " 'affronts',\n",
       " 'topple',\n",
       " 'degree',\n",
       " 'preyed',\n",
       " 'passionately',\n",
       " 'defeats',\n",
       " 'torchwood',\n",
       " 'sources',\n",
       " 'botticelli',\n",
       " 'compactor',\n",
       " 'kosturica',\n",
       " 'waiving',\n",
       " 'gunnar',\n",
       " 'stiffler',\n",
       " 'fwd',\n",
       " 'kawajiri',\n",
       " 'eleanor',\n",
       " 'sistahs',\n",
       " 'soulhunter',\n",
       " 'belies',\n",
       " 'wrathful',\n",
       " 'americans',\n",
       " 'ferdinandvongalitzien',\n",
       " 'kendra',\n",
       " 'weirdy',\n",
       " 'unforgivably',\n",
       " 'chepart',\n",
       " 'tatta',\n",
       " 'departmentthe',\n",
       " 'dig',\n",
       " 'blatty',\n",
       " 'marionettes',\n",
       " 'atop',\n",
       " 'chim',\n",
       " 'saurian',\n",
       " 'woes',\n",
       " 'cloudscape',\n",
       " 'resignedly',\n",
       " 'unrooted',\n",
       " 'keuck',\n",
       " 'hitlerian',\n",
       " 'stylings',\n",
       " 'crewed',\n",
       " 'bedeviled',\n",
       " 'unfurnished',\n",
       " 'reedus',\n",
       " 'circumstances',\n",
       " 'grasped',\n",
       " 'smurfettes',\n",
       " 'fn',\n",
       " 'dishwashers',\n",
       " 'roadie',\n",
       " 'ruthlessness',\n",
       " 'refrains',\n",
       " 'lampooning',\n",
       " 'semblance',\n",
       " 'richart',\n",
       " 'legions',\n",
       " 'gwenneth',\n",
       " 'enmity',\n",
       " 'assess',\n",
       " 'manufacturer',\n",
       " 'bullosa',\n",
       " 'outrun',\n",
       " 'hogan',\n",
       " 'chekov',\n",
       " 'blithe',\n",
       " 'code',\n",
       " 'drillings',\n",
       " 'revolvers',\n",
       " 'aredavid',\n",
       " 'robespierre',\n",
       " 'achcha',\n",
       " 'boyfriendhe',\n",
       " 'wallow',\n",
       " 'toga',\n",
       " 'graphed',\n",
       " 'tonking',\n",
       " 'going',\n",
       " 'bosnians',\n",
       " 'willy',\n",
       " 'rohauer',\n",
       " 'fim',\n",
       " 'forbidding',\n",
       " 'yew',\n",
       " 'rationalised',\n",
       " 'shimomo',\n",
       " 'opposition',\n",
       " 'landis',\n",
       " 'minded',\n",
       " 'despicableness',\n",
       " 'easting',\n",
       " 'arghhhhh',\n",
       " 'ebb',\n",
       " 'trialat',\n",
       " 'protected',\n",
       " 'negras',\n",
       " 'rick',\n",
       " 'muti',\n",
       " 'tracker',\n",
       " 'shawl',\n",
       " 'differentiates',\n",
       " 'sweetheart',\n",
       " 'deepened',\n",
       " 'manmohan',\n",
       " 'trevethyn',\n",
       " 'brain',\n",
       " 'incomprehensibly',\n",
       " 'piercing',\n",
       " 'pasadena',\n",
       " 'shtick',\n",
       " 'ute',\n",
       " 'viggo',\n",
       " 'supersedes',\n",
       " 'ack',\n",
       " 'cites',\n",
       " 'taurus',\n",
       " 'relevent',\n",
       " 'minidress',\n",
       " 'philosopher',\n",
       " 'bel',\n",
       " 'mahattan',\n",
       " 'moden',\n",
       " 'compiling',\n",
       " 'advertising',\n",
       " 'rogues',\n",
       " 'unimaginative',\n",
       " 'subpaar',\n",
       " 'ademir',\n",
       " 'darkly',\n",
       " 'saturate',\n",
       " 'fledgling',\n",
       " 'breaths',\n",
       " 'padre',\n",
       " 'aszombi',\n",
       " 'pachabel',\n",
       " 'incalculable',\n",
       " 'ozone',\n",
       " 'sped',\n",
       " 'mpho',\n",
       " 'rawail',\n",
       " 'forbid',\n",
       " 'synth',\n",
       " 'guttersnipe',\n",
       " 'reputedly',\n",
       " 'holiness',\n",
       " 'unessential',\n",
       " 'hampden',\n",
       " 'asylum',\n",
       " 'bolye',\n",
       " 'strangers',\n",
       " 'rantzen',\n",
       " 'farrellys',\n",
       " 'vigourous',\n",
       " 'cantinflas',\n",
       " 'enshrined',\n",
       " 'boris',\n",
       " 'expetations',\n",
       " 'replaying',\n",
       " 'prestige',\n",
       " 'bukater',\n",
       " 'overpaid',\n",
       " 'exhude',\n",
       " 'backsides',\n",
       " 'topless',\n",
       " 'sufferings',\n",
       " 'nitwits',\n",
       " 'cordova',\n",
       " 'incensed',\n",
       " 'danira',\n",
       " 'unrelenting',\n",
       " 'disabling',\n",
       " 'ferdy',\n",
       " 'gerard',\n",
       " 'drewitt',\n",
       " 'mero',\n",
       " 'monsters',\n",
       " 'precautions',\n",
       " 'lamping',\n",
       " 'relinquish',\n",
       " 'demy',\n",
       " 'drink',\n",
       " 'chamberlin',\n",
       " 'unjustifiably',\n",
       " 'cove',\n",
       " 'floodwaters',\n",
       " 'searing',\n",
       " 'isral',\n",
       " 'ling',\n",
       " 'grossness',\n",
       " 'pickier',\n",
       " 'pax',\n",
       " 'wierd',\n",
       " 'tereasa',\n",
       " 'smog',\n",
       " 'girotti',\n",
       " 'spat',\n",
       " 'sera',\n",
       " 'noxious',\n",
       " 'misbehaving',\n",
       " 'scouts',\n",
       " 'refreshments',\n",
       " 'autobiographic',\n",
       " 'shi',\n",
       " 'toyomichi',\n",
       " 'bits',\n",
       " 'psychotics',\n",
       " 'barzell',\n",
       " 'colt',\n",
       " 'shivering',\n",
       " 'pugilist',\n",
       " 'gladiator',\n",
       " 'dryer',\n",
       " 'reissues',\n",
       " 'scrivener',\n",
       " 'predicable',\n",
       " 'objection',\n",
       " 'marmalade',\n",
       " 'seems',\n",
       " 'spellbind',\n",
       " 'trifecta',\n",
       " 'innovator',\n",
       " 'shriekfest',\n",
       " 'inthused',\n",
       " 'contestants',\n",
       " 'goody',\n",
       " 'samotri',\n",
       " 'serviced',\n",
       " 'nozires',\n",
       " 'ins',\n",
       " 'mutilating',\n",
       " 'dupes',\n",
       " 'launius',\n",
       " 'widescreen',\n",
       " 'joo',\n",
       " 'discretionary',\n",
       " 'enlivens',\n",
       " 'bushes',\n",
       " 'chills',\n",
       " 'header',\n",
       " 'activist',\n",
       " 'gethsemane',\n",
       " 'phoenixs',\n",
       " 'wreathed',\n",
       " 'sacrine',\n",
       " 'electrifyingly',\n",
       " 'basely',\n",
       " 'ghidora',\n",
       " 'binder',\n",
       " 'dogfights',\n",
       " 'sugar',\n",
       " 'doddsville',\n",
       " 'porkys',\n",
       " 'scattershot',\n",
       " 'refunded',\n",
       " 'rudely',\n",
       " 'insteadit',\n",
       " 'zatichi',\n",
       " 'eurotrash',\n",
       " 'radioraptus',\n",
       " 'hurls',\n",
       " 'boogeman',\n",
       " 'weighs',\n",
       " 'danniele',\n",
       " 'converging',\n",
       " 'hypothermia',\n",
       " 'glorfindel',\n",
       " 'birthdays',\n",
       " 'attentive',\n",
       " 'mallepa',\n",
       " 'spacewalk',\n",
       " 'manoy',\n",
       " 'bombshells',\n",
       " 'farts',\n",
       " 'lyoko',\n",
       " 'southron',\n",
       " 'destruction',\n",
       " 'flemming',\n",
       " 'manhole',\n",
       " 'elainor',\n",
       " 'bowersock',\n",
       " 'lowly',\n",
       " 'wfst',\n",
       " 'limousines',\n",
       " 'skolimowski',\n",
       " 'saban',\n",
       " 'koen',\n",
       " 'malaysia',\n",
       " 'uwi',\n",
       " 'cyd',\n",
       " 'apeing',\n",
       " 'bonecrushing',\n",
       " 'dini',\n",
       " 'merest',\n",
       " 'janina',\n",
       " 'chemotrodes',\n",
       " 'trials',\n",
       " 'authorize',\n",
       " 'whilhelm',\n",
       " 'asthmatic',\n",
       " 'broads',\n",
       " 'missteps',\n",
       " 'embittered',\n",
       " 'chandeliers',\n",
       " 'seeming',\n",
       " 'miscalculate',\n",
       " 'recommeded',\n",
       " 'schoolwork',\n",
       " 'coy',\n",
       " 'mcconaughey',\n",
       " 'philosophically',\n",
       " 'waver',\n",
       " 'fanny',\n",
       " 'mestressat',\n",
       " 'unwatchably',\n",
       " 'saggy',\n",
       " 'topness',\n",
       " 'dwellings',\n",
       " 'breakup',\n",
       " 'hasselhoff',\n",
       " 'superstars',\n",
       " 'replay',\n",
       " 'aggravates',\n",
       " 'balances',\n",
       " 'urging',\n",
       " 'snidely',\n",
       " 'aleksandar',\n",
       " 'hildy',\n",
       " 'kazuhiro',\n",
       " 'slayer',\n",
       " 'tangy',\n",
       " 'brussels',\n",
       " 'horne',\n",
       " 'masayuki',\n",
       " 'molden',\n",
       " 'unravel',\n",
       " 'goodtime',\n",
       " 'interrogates',\n",
       " 'bismillahhirrahmannirrahim',\n",
       " 'rowboat',\n",
       " 'dumann',\n",
       " 'datedness',\n",
       " 'astrotheology',\n",
       " 'dekhiye',\n",
       " 'valga',\n",
       " 'kata',\n",
       " 'wipes',\n",
       " 'hostilities',\n",
       " 'sentimentalising',\n",
       " 'documentary',\n",
       " 'salesman',\n",
       " 'virtue',\n",
       " 'unreasonably',\n",
       " 'haver',\n",
       " 'cei',\n",
       " 'unglamorised',\n",
       " 'balky',\n",
       " 'complementary',\n",
       " 'paychecks',\n",
       " 'mnica',\n",
       " 'wada',\n",
       " 'ily',\n",
       " 'prc',\n",
       " 'ennobling',\n",
       " 'functionality',\n",
       " 'dissociated',\n",
       " 'elk',\n",
       " 'throbbing',\n",
       " 'tempe',\n",
       " 'linoleum',\n",
       " 'photogrsphed',\n",
       " 'bottacin',\n",
       " 'hipper',\n",
       " 'titillating',\n",
       " 'barging',\n",
       " 'untie',\n",
       " 'sacchetti',\n",
       " 'gnat',\n",
       " 'roedel',\n",
       " 'cohabitation',\n",
       " 'performs',\n",
       " 'sales',\n",
       " 'migrs',\n",
       " 'teachs',\n",
       " 'nanavati',\n",
       " 'fresco',\n",
       " 'davison',\n",
       " 'obstinate',\n",
       " 'burglar',\n",
       " 'masue',\n",
       " 'dickory',\n",
       " 'grills',\n",
       " 'appelagate',\n",
       " 'linkage',\n",
       " 'enables',\n",
       " 'loesser',\n",
       " 'patties',\n",
       " 'prudent',\n",
       " 'mallorquins',\n",
       " 'nativetex',\n",
       " 'suprise',\n",
       " 'drippy',\n",
       " 'quill',\n",
       " 'speeded',\n",
       " 'farscape',\n",
       " 'saddening',\n",
       " 'centuries',\n",
       " 'mos',\n",
       " 'improvisationally',\n",
       " 'neccessarily',\n",
       " 'transmitter',\n",
       " 'tankers',\n",
       " 'latte',\n",
       " 'mechanisation',\n",
       " 'faracy',\n",
       " 'synthetically',\n",
       " 'thoughtless',\n",
       " 'rake',\n",
       " 'ropes',\n",
       " 'desirable',\n",
       " 'whitewashed',\n",
       " 'donal',\n",
       " 'crabby',\n",
       " 'lifeless',\n",
       " 'perfidy',\n",
       " 'teresa',\n",
       " 'bulldog',\n",
       " 'cockamamie',\n",
       " 'rasberries',\n",
       " 'notethe',\n",
       " 'captivity',\n",
       " 'chiseling',\n",
       " 'smaller',\n",
       " 'clampets',\n",
       " 'alerts',\n",
       " 'tough',\n",
       " 'wellingtonian',\n",
       " 'aaaahhhhhhh',\n",
       " 'dither',\n",
       " 'incertitude',\n",
       " 'florentine',\n",
       " 'imperioli',\n",
       " 'licking',\n",
       " 'disparagement',\n",
       " 'artfully',\n",
       " 'feds',\n",
       " 'fumiya',\n",
       " 'tearfully',\n",
       " 'lanchester',\n",
       " 'undertaken',\n",
       " 'longlost',\n",
       " 'netted',\n",
       " 'carrell',\n",
       " 'uncompelling',\n",
       " 'reliefs',\n",
       " 'leona',\n",
       " 'autorenfilm',\n",
       " 'unfriendly',\n",
       " 'typewriter',\n",
       " 'shifted',\n",
       " 'bertrand',\n",
       " 'blesses',\n",
       " 'tricking',\n",
       " 'fireflies',\n",
       " 'zanes',\n",
       " 'unknowingly',\n",
       " 'unnerve',\n",
       " 'caning',\n",
       " 'flat',\n",
       " 'recluse',\n",
       " 'dcreasy',\n",
       " 'chipmunk',\n",
       " 'dipper',\n",
       " 'musee',\n",
       " 'cousin',\n",
       " 'shys',\n",
       " 'berserkers',\n",
       " 'eve',\n",
       " 'conflagration',\n",
       " 'irks',\n",
       " 'restricts',\n",
       " 'parsing',\n",
       " 'positronic',\n",
       " 'copout',\n",
       " 'khala',\n",
       " 'swiftness',\n",
       " 'higginson',\n",
       " 'imprint',\n",
       " 'walter',\n",
       " 'sundance',\n",
       " 'whispering',\n",
       " 'thematically',\n",
       " 'underimpressed',\n",
       " 'uno',\n",
       " 'expressly',\n",
       " 'russkies',\n",
       " 'discos',\n",
       " 'shaping',\n",
       " 'verson',\n",
       " 'prototype',\n",
       " 'chapman',\n",
       " 'trafficker',\n",
       " 'semetary',\n",
       " 'unrealistically',\n",
       " 'lifewell',\n",
       " 'rivas',\n",
       " 'consequent',\n",
       " 'katsu',\n",
       " 'titantic',\n",
       " 'jalees',\n",
       " 'ranee',\n",
       " 'shipbuilding',\n",
       " 'gambles',\n",
       " 'dispenses',\n",
       " 'disfigurement',\n",
       " 'bright',\n",
       " 'cristian',\n",
       " 'puertorricans',\n",
       " 'constituent',\n",
       " 'capta',\n",
       " 'jewel',\n",
       " 'erect',\n",
       " 'farah',\n",
       " 'despondently',\n",
       " 'avoide',\n",
       " 'inconnu',\n",
       " 'headquarters',\n",
       " 'sanguisga',\n",
       " ...]"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(vocab)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.,  0.,  0., ...,  0.,  0.,  0.]])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "layer_0 = np.zeros((1,vocab_size))\n",
    "layer_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAFKCAYAAAAg+zSAAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2Jl\nLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q\nIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5\nOTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w\nLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAg\nICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZm\nOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0\naW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K\nAtiABQAAQABJREFUeAHtnXvQXVV5/1daZxy1BUpJp1MhE5BSSSAgqBAV5BIuGaQJBoEUATEJAiXY\ncMsUTfMDK9MAMXKRAEmAgGkASUiGIgQSsEQgKGDCJV6GYkywfzRWibc/OuO8v/1Zuo7r3e/e5+zr\n2ZfzfWbOe/bZe12e9V373eu7n/WsZ40aCsRIhIAQEAJCQAgIASFQAQJ/UkGdqlIICAEhIASEgBAQ\nAhYBERHdCEJACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEhIASEgBAQApUhICJSGfSq\nWAgIASEgBISAEBAR0T0gBISAEBACQkAIVIaAiEhl0KtiISAEhIAQEAJCQERE94AQEAJCQAgIASFQ\nGQIiIpVBr4qFgBAQAkJACAgBERHdA0JACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEh\nIASEgBAQApUhICJSGfSqWAgIASEgBISAEBAR0T0gBISAEBACQkAIVIaAiEhl0KtiISAEhIAQEAJC\nQERE94AQEAJCQAgIASFQGQIiIpVBr4qFgBAQAkJACAgBERHdA0JACAgBISAEhEBlCIiIVAa9KhYC\nQkAICAEhIARERHQPCAEhIASEgBAQApUhICJSGfSqWAgIASEgBISAEBAR0T0gBISAEBACQkAIVIaA\niEhl0KtiISAEhIAQEAJCQERE94AQEAJCQAgIASFQGQIiIpVBr4qFgBAQAkJACAgBERHdA0JACAgB\nISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEhIASEgBAQApUhICJSAPQXX3yxGTVqlPnlL39Z\nQGkqQggIASEgBITA4CAgIjI4fR3Z0iVLlpgHH3ww8ppOCgEhIASEgBAoG4FRQ4GUXYnKry8CJ510\nknnf+95nbrvttvoqKc2EgBAQAkKgtQjIItLarlXDhIAQEAJCQAjUHwERkfr3kTQUAkJACAgBIdBa\nBERECuhanFXHjBkzrKR169ZZB9atW7daHwymQHBodZ8bbrhhWHp+kJbr+G1wHM7Db65FiV9f1HXO\noSO6ItRPXU888YRZvHhxRy853Fp49EcICAEhIAT6hICISMlAz5kzxyxbtszMmDHD4I7D5/HHHzfr\n16+3RCOq+u9973tm/Pjx5oMf/GAnD/kmTZpkLrjgAjN9+vSobKnOXXnllbbsE0880Vx00UWdenbb\nbbdU5SixEBACQkAICIE8CLwjT2bl7Y3Az372M/P0008bf4DHsrHPPvtYsoGFY9asWcMKwkJx5513\njjgPeTjqqKPMxIkTzWGHHWb4LRECQkAICAEh0GQEZBEpufcuvPDCYSTEVTdu3DhLRrZt2+ZOdb4h\nGWFy4i4eeeSR1oJxyy23uFP6FgJCQAgIASHQWAREREruuoMPPrhrDb/4xS9GXD/rrLNGnPNPHHPM\nMWbHjh1m06ZN/mkdCwEhIASEgBBoHAIiIiV3mT8lk7SqPfbYo2vS3Xff3V7ftWtX13S6KASEgBAQ\nAkKg7giIiNS9h7roJyLSBRxdEgJCQAgIgUYgICJSw256++23u2q1fft2ez28ZLhrJl0UAkJACAgB\nIVBDBEREatgp999/f1etnnrqKevoiuNqWOLigOBPgl+JRAgIASEgBIRAnRAQEalTb/xBl5dffjk2\ncBkb1EFU5s2bN0xzlvSyJHjjxo3DzrsfN910kzvUtxAQAkJACAiB2iAgIlKbrvijItdff725/fbb\nbRRU38JBNNQzzzzTLt8NL+/FKXb27NnmqquuGkZi3nrrLRsA7Uc/+pElKn+s5fdHe+65p3nhhRfC\np/VbCAgBISAEhEBfEBAR6QvM6Sph1cxLL71k9t13X3PQQQd1wq8TjZVAZ3E75RLgjOuQGBdKHisJ\nQlC1KMGysnPnzk56QstLhIAQEAJCQAj0C4FRQejwoX5Vpnq6IwAJILR7VFTV7jl1VQgIASEgBIRA\nMxGQRaSZ/SathYAQEAJCQAi0AgERkVZ0oxohBISAEBACQqCZCIiINLPfpLUQEAJCQAgIgVYgICLS\nim5UI4SAEBACQkAINBMBOas2s9+ktRAQAkJACAiBViAgi0grulGNEAJCQAgIASHQTARERJrZb9Ja\nCAgBISAEhEArEBARaUU3qhFCQAgIASEgBJqJgIhIM/tNWgsBISAEhIAQaAUCIiKt6MaRjfjVr35l\nHn744ZEXdEYICAEhIASEQI0Q0KqZGnVG0aq8973vNd/97nfN3/zN3xRdtMoTAkJACAgBIVAIArKI\nFAJjPQuZPn26WbZsWT2Vk1ZCQAgIASEgBAIEZBFp8W3wwx/+0Bx33HHmpz/9aYtbqaYJASEgBIRA\nkxGQRaTJvddD97/7u78zo0ePNhs2bOiRUpeFgBAQAkJACFSDgIhINbj3rdY5c+aYlStX9q0+VSQE\nhIAQEAJCIA0CmppJg1YD0/73f/+3wWn1l7/8pfnzP//zBrZAKgsBISAEhECbEZBFpM29G7SNFTMz\nZswwq1evbnlL1TwhIASEgBBoIgIiIk3stZQ6s3pm0aJFKXMpuRAQAkJACAiB8hEQESkf48prOP74\n483OnTsNq2gkQkAICAEhIATqhICISJ16o0RdLrzwQrNkyZISa1DRQkAICAEhIATSIyBn1fSYNTKH\nYoo0stuktBAQAkKg9QjIItL6Lv59A4kpwkf7zwxIh6uZQkAICIGGICAi0pCOKkLN2bNnmxUrVhRR\nlMoQAkJACAgBIVAIApqaKQTGZhTCjry77babDfmujfCa0WfSUggIASHQdgRkEWl7D3vtI6DZ5Zdf\nbh566CHvrA6FgBAQAkJACFSHgIhIddhXUvPkyZPNXXfdVUndqlQICAEhIASEQBgBEZEwIi3/TUwR\n5Lvf/W7LW6rmCQEhIASEQBMQEBFpQi8VrONnP/tZ88ADDxRcqooTAkJACAgBIZAeATmrpses8Tm0\nEV7ju1ANEAJCQAi0BgERkdZ0ZbqGnH766ebss882p512WrqMSt1KBJiq27p1q3n11VfNtm3bzBtv\nvGG2bNkyoq3Tpk0ze+yxh5kwYYIZP368+fCHP6xdnUegpBNCQAikQUBEJA1aLUpLYLNbbrnFPPXU\nUy1qlZqSBoENGzaYxx57zKxcudKMHj3aTJo0yRx88MFm3Lhxdpk3AfB8wZL205/+1Lz11lvmtdde\nM08//bT9QE5OPfVU88lPflKkxAdMx0JACCRCQEQkEUztS0RMkfe///3WaVUxRdrXv3Etot/vvvvu\nzsqpOXPmmBNOOMFkvQcob/369ebRRx81y5Yts8vDL7vssszlxemt80JACLQXATmrtrdvu7aMmCLT\np0+3g0fXhLrYGgRuvvlmSz6feeYZuwHi5s2bzXnnnZeLNHAfMb23dOlSay0BrPe+973miiuuMFhQ\nJEJACAiBXgiIiPRCqMXXZ82aZVatWtXiFqppIID/x6GHHmrWrFljPwS0+9CHPlQ4OFhVbrzxxg4h\noY7ly5cXXo8KFAJCoF0IiIi0qz9Ttcb5AOArIGknAlhBpk6dapiCwR+oDAISRs4REojPokWLDI7R\nTOFIhIAQEAJRCIiIRKEyQOcYoHBWlLQLAQb+mTNnWgsIBIQpmH4LpGfjxo1m7Nixdkrohz/8Yb9V\nUH1CQAg0AAE5qzagk8pUUTFFykS3mrIhIVOmTDF77rmndUzFj6NqYYrm6quvtlYZZ4mrWifVLwSE\nQD0QkEWkHv1QmRaY0WfMmGFWr15dmQ6quDgEHAk57LDD7OaGdSAhtA6LzK233mqOO+44I8tIcf2t\nkoRAGxAQEWlDL+ZsA6tn5FSYE8QaZPdJCE6jdRNW14iM1K1XpI8QqB4BTc1U3we10IAll/gSyGxe\ni+7IpARLZl9++eXaB6mD9OLEiv9IXSw2mQBXJiEgBApBQBaRQmBsfiEXXnihjS3R/JYMZgsY3HE6\nXrt2be0BYJrmgx/8oDn//PNrr6sUFAJCoHwEZBEpH+NG1MC8PfP3hPBGcGLNGm2zEQ1ukZL0FStU\nWC7bj+W5RUDHNNJRRx1llxVXsaKniDaoDCEgBIpBQBaRYnBsfClMyfBhD5ovfelL1tGx8Y0akAZc\neumlBotWU0gI3cKUzJIlS+xKGkiJpFkIXHzxxeakk04apjTnRo0aZX75y18OO1/kDzZmpI4bbrih\nyGJVVsUIiIhU3AF1qJ43aqJvHnTQQTb2xL/8y7/UQS3pkAAB+u355583//RP/5Qgdb2SQJxwlL7m\nmmvqpZi0qRwBNlaEbJRJaipvpBToIKCpmQ4Ug3vgpmUgJE5uuukmw5u2pN4IELWUnW+bOr3BPYej\nNFOCmgqs973ma4f147/+67/MunXr/NOFHVPuySefbF5//XW7G3RhBaugWiIgi0gtu6W/SjElw4oZ\nSbMQcNaQppIQ0IZ8XH755eYrX/lKs8CXtkJACBSGgIhIYVA2uyDIiIKaNasP77jjDjN37txmKR2h\n7WWXXWZX/MhXJAIcnRICA4CAiMgAdHLSJhJw6p577kmaXOkqRIBBe9myZXZDuQrVKKRqrCIQ4fXr\n1xdSXpMKcc6XOO5yjAMozpjuw2+uRQnX+OBH4RxFx4wZMyLpgw8+aH1xXJl8f+ELX7D1jUj8hxOU\niY+Gnwd/njhdyIYOUfVzLao80ob9QEhHnUzLIOPHj7e/nXOqj5dNEPqDfocffvgwvWkrPidhYfqH\nuigTjMLYuzrD+fS7eARERIrHtNElYubHVC6pNwIM2oTmb4tfBffdo48+Wm/QS9Tue9/7nh10ia8y\nNDTU+UyaNMlccMEFlkjEVf+pT33KXtq1a5fZvn37sGSQAwLdsTTflbtjxw7zi1/8wtYX5ePBoH3s\nscdaYvjAAw908n3mM5+xU7iUmUYY6HGEJ9gePh9Oj3nz5plbbrnF1gUBQXbbbTd7/fHHH7e/Xfor\nr7zS/o77Q36IxO23326thK4O19Z99tkn1p+FjT8h9fw/uXzUz/8YZUr6gEAAvEQIjEDgBz/4wYhz\nOlEfBIKH5lBgvaqPQjk1CZxVh4LHXc5Smpc9GGhtu2n7nXfeGdmAYFWUTXP99dcPu37iiScOBQPs\nULCZ4LDz7gflcT0YjN2pYd/k43pAYIadp9xgr6IR510iVy/fvlx00UW2PP8cZVPWWWed5Z/uHLu2\nhdsQEAHbZvDxxeEVxoryu+ns2upj4eqIyxdXl6+PjotBQBaRPpC9JlaBqVxSXwQee+wxc+SRR9ZX\nwZSaYdnhLRwH3EGUYDA0s2bNimw6/RwM8tZ6EE7AGz/XooR4QLNnzzZ777131GWbj/xYPZxgIXni\niSdsXBqsE1HCcmvyJRHKxhKC9SNKXNvuu+++qMuJzm3atMncf//9XXUGI3RevHjxiDKJwRPV1nHj\nxhksKdu2bRuRRyeKRUBEpFg8VZoQKB0Bt8y6bWSRwZiYKIMowRt912Yfc8wxdiBl0PUFzKKIBj4P\nDLxEr40T8pHfXzH3zDPP2OSTJ0+Oy2YJMPmSCGWTlkE9Tm677bYRU0pxaaPOv/rqq/Z0N51dW92U\nj1/OwQcf7P8cccw0lqRcBEREysVXpQuBwhEg5sbEiRMLL7fqAhkQwj4OVevUr/r32GOPrlXtvvvu\n9jp+IL7stdde/s/OsUvHfeI7nIaPsVb8/Oc/7+Rj0MUKEEVuOomCgwMOOMD/GXv87LPPJk4bW0iP\nC/jXIFFWDT/rEUccYXbu3Omfsse98o3IoBOFIyAiUjikKlAIlIsAVoOxY8eWW0kFpfPWLDN4d+Ad\nweie6o9XAz+HjgNmMJsfeRzlsPrHEnQkBMpHQESkfIxVgxAoHIG4ZZKFV6QC+4LA22+/3bUeZylK\n2u/OgvLaa691LTd88S/+4i/slI5bxRK+7n7/6Ec/coddv0ePHm16pWVVTXgZb9dCQxc/8IEP2DO9\ndH7hhRcM+kjqh4CISP36RBoJgYFE4P3vf79ZtWrVQLYdZ8tugq8FUyZJHZQ/8pGP2OK2bNkSWyzL\ndJmq8ZfjHnLIITZ9N18diANTOkkE3xfSkidOVqxYYR1xs06ROB8PHLjjxOncyxcnLr/Ol4uAiEi5\n+Kp0ISAEEiLAjryDKgzWccHCcDyFqMStPInCDB8PVopcd911Juzg6tK7FSSXXHKJO2XOOOMM61xK\nyP04CwOrcZIKQdAgUHF5IEOsmPnEJz6RtMgR6SBnEAxiiHTTGT0+97nPjcivE9UjICJSfR9IAyEg\nBAYcgSBGiB1IsU74gylTFmeeeaYlFXHLe+Og+7d/+zcTxPqw5MInOQz+EARIShCPY8SKFojB97//\nfUOgNEiQE6wK5MO5NW7JsEvrviFE1A2RIi91O6HsKVOm2OkSdPXFTS3h7JpE2O4Ax12WgPs6u7ZS\nDnpktbok0UFpsiMgIpIdO+UUAkKgQATYBbotkWLTwsKqmZdeesnsu+++NgqpW91CdE/IAktc0wqD\nLo6oWFIeeuihzuoZLAMIMT6iyA1Ow88995whqiskyOlCuHV8SNI6txKdlKXE++23n7WOuPKI+Iol\ng3aHCYKLL0JU2fD0URQOrq3EBCFKqquDtrJ8mPYoSmoUcvU4N4q4aPVQRVoIASHQCwH2mPnqV79q\neGO89NJLeyVv1HWCmS1YsMAOmo1SPIeyWBkY4CEbUaQgR9HKKgQag8A7GqOpFK09AgwkPFgJMMQy\nzDfeeMOEneV44yW2AW+AEyZMsMcf+tCHat+2KhWEfAQh960KvPmxb0cb92XxpySqxFt1CwEh0F8E\nRET6i3fratuwYYPdwh2PdZbGYc7Fix2TLoNmOPonUUEJyMXcLUsL2cb+6aefthtOnXLKKTb/IDst\nuhvE4cRvcPTJGgP2m2++6ZK25puYF0cffXRr2qOGCAEhkAwBTc0kw0mpPAR4Q7/77rutGR3ywe6V\nJ5xwQub5fcpjLpxlfCwbxKntsssuy1yep2qjDn3y8d73vrdr+5kDh5C0ibSdfvrp5uyzzzannXZa\no/otj7KamsmDnvK2BQE5q7alJ/vQDgjDzTffbIj3wJ4Ua9asMZs3bzZs4Z7HyZDBlMEHhzq36RkD\nMc5s1NlmwUGTNrt2Y/ng0wtPVgd85zvfaRU0kFDCcEuEgBAYLARERAarvzO3loGSDbQcAYE0+NMF\nmQsOZWQAvvHGG+30DdEmIT3Lly8PpWr2T0c8+Ka9ScmH32qICCsB2iJggXWtFwFrS3tdO1ihwnqB\ntjmqYt079NBDXTP1LQS6IqCpma7w6CIIEIyIYEHEHcD60U9hgOIh/cEPftAsWrSosVMRtMNJEQQO\nSwp+OFik2iDcYz/72c/MTTfd1IbmDHwb6E/2xeGlQiIEeiEgItILoQG+zrQIAYeQr3/965W9raIH\nfig4aBINMuwAW8cuQme30gX9iiAf4Xbyxrlw4UJz/PHHhy817jdTcY888oh5z3ve04j+bRzAfVaY\ne5MAYmXc931uiqrrAwKamukDyE2swpEQggGtXbu2MhICdviQLF261EZNPO644wzWgDoK5mgsH3w4\ndlMuZT2MP/vZz9oVS3XEIo1ODz/8sCUf3GtMzfjWozTlKG09EHD9V9Z9X49WSosiEZBFpEg0W1KW\nT0LqZlpl0GJvDDYBq4NlJM1Kl6JvD/qJpb0sh26ybwVvz/Pnzx+2WobBTANZ0XdMf8rDyZyAe2n2\nxumPZqqlrgiIiNS1ZyrSq84kxEFSNRnBIuOCb/VaZut0LuMbEkQk0t/85jfWYlRGHWWXSV9ec801\nkb4uIiNlo198+Tw/cDCn75pMjotHRiV2Q0BEpBs6A3ht5syZhtUqrIqps+AMRyA0po36EUvDmZvB\nhAdtP+rshj9kCB34oA9LqZtmQWDQYiVW2Britxvc64C3r5OO4xGAWN5yyy3WYhmfSleEwHAERESG\n4zHQv4gRctddd5mNGzdWPtAm6QgCYBEqHv+RMsQnH3Ua5MODM8ubWVHUlH5zfQWZZAuAXqQX0sXb\nddXkz+mt73gEeJEhQvIgBaWLR0NXkiIgIpIUqZan42HPmycrPerge5EEbmcGvvfeewtZOUJ5Za90\nSdKubmkgIVGkCFJ2yCGHNGZennZMnTo1sQlfZKTbXVGPa0wVMlXZtoi/9UC33VqIiLS7fxO3joGM\nfT6atqMre92ce+65lkBkeWP2yUfU3jiJASw5odMzioRQtVulc+utt9b+bTSrriIjJd9kOYvHModV\nriwLZU71lL3GCIiI1Lhz+qWacxhsmmnf4ZOWRDEQstIEqTP5cO1DX4hIL0uVI2V1WVHk9Pe/aQex\naViqm2VFFmQEwilHSB/VehyztP4LX/hCIdbJerRIWvQLARGRfiFd43qilk/WWN0RqjE48RBkWiXO\nKkKaOqx0GaF8jxOQECTJwEvab33rW+bKK6+szfJmv3mOhOy333653prTYOLXr+PyEHD/g47gl1eT\nSm4jAu9oY6PUpuQIYA1BmuxchqWAHXvZEdifWvLJB/4vvSwKyVHrT0r0T/P2zyDwD//wD+Zd73qX\nJWZ1sow4EgJyONbmEUgZZIRPEoKWpy7lTYbAgw8+aP8Hk6VWKiEQQiDYcKmv8sADDwwFKtjPWWed\n1de6i6jM1592+OLaxXewk6h/qedxYKru4HLnnXf2TF9UgmnTpg2tXr26qOIqKyfYiXYoGJSG+Haf\nwAJSmT55K6YNafQnvS/0KfdhHfo2sFQNBZv0DV1++eW+irmPA+I1RNmS6hHgf099UX0/NFUDhXgP\nntaDKrxRrlq1ykyaNKkVELBPCdMvOHTyiZumqXtj3cqYpPrTj6xW8AULV0BObBRaIl1ikahCsLgx\nbcYKmSw+Id10xhrCB8uRpDoE8E1i5+SmWRyrQ0w1hxEQEQkjMkC/n3zySTNjxozGDth+V0E8cJR7\n7LHH/NONOoYsOBKSRnGmZBiQwwImlLdt2zYbOIzjfgnkiJgShOMn2Jo/ZVakDm7qSmSkSFTTlcX/\nHJtSSoRAVgRERFIid8YZZzAf0/mkzF6r5Ox2SvChtsiRRx7Z2E3gGLj5QB7SSC/iAkEhYBgDBVYJ\nVhiVSUggUwTGox0Em8OBOG2b0rSftCIjaRErLj39zQ7QJ5xwQnGFqqSBQ6AWRITtokeNGtX58Gb7\n1ltvxXbGpk2b7Nuvn2fMmDF222m3MiKc2U9Lfj4nnXSSrZP6kSRpcMry04Xr8X+vW7euUwd5qI9z\nWSSqzThook9WYVrmiCOOyJo9dz6HI+0oQpxpuGlvxxAQxOmfFAvyhadk4vKed955lhQQK8YREkzq\nRQmYMwWEU/AzzzxjV+0wFZN0eimvHo6MlEmy8urYxvzr1683gZ9ZpEWuje1Vm0pCoN/OLb6zJ86q\nfIKmjfjss88+Qzt27Bih3vXXXz8irZ+ffK+//vqIfH6acBnOOTRJGl9/0vvi57/66qtj9XT1+Xm7\nOauS3i87fExdaQXHsiASZ9pshaZ37TjxxBMLKzeYaqqFg2bSBtEPOF1mkbCDatIycIK95557bP8H\nFhPrRBoMKKn1oP5rr712WDlZ25JU9yTpsuKSpGylGY5AW5zdh7dKv/qNQKXLd++///5gLIqWgITY\neAgrV67sJMBycdVVV3V+Rx2Q7+STTzavvfaaDVYVlaZXGeRJkiaqbHfuuuuuc4cjvi+44AJz8MEH\nG6YSegkWFNJ3E+oaO3asmTVrVrdkw65t3brV7L///sPOVfXjiSeeKKzqCRMmGO6BJghv71k3dOs1\nJdOt/VgPsJDwwZLBPbZ48WLruEyYeO4L7iesjGHB2vHzn//cbjgYrIQxfDDNH3/88eGklf12vjFl\nTwlV1sCaVIxFDqsqy+YlQiAPApVPzQRvwyawYFifi127dhl+O/GJClMubJLlhMiMwRLZjq9GYBVw\nl+xAdMcdd3R+Rx2QPmB99hM3gCdJE1W2OxdYMjp1BJYUd9p+sz9KEvHb5WPFYBtYkzpFgE3ctFQn\nkXdAfsz0dRGmnoqQ8ePH26mBIsoqswxHJLJMXaSZkunVBqaDcCTFj4T/B+7TuXPnRpIQyrrooovM\nggULbFrilMybN69WJMS115GRqlYLOT3a/M09EyzJ7tv0W5uxHPi29dsEE57aCAbEYSoQfyPolM4n\nICf2ejhfVJwOf5qHKRpf/DJJFyVJ0oT18Mvx8wcEwr9kj8NTLK5tXIyammGKyS8zjBX5aadLg25J\n5aabbhriU6U4vflmesbHI6temOUxF9dVmBbJO3WQN39dsSlDL6a+wFxSPAJM7TKlJxECeRGo1CKC\nVWPvvfcOxqE/Svi3e8tnu3AnweAbOa3xmc98xiWxVhGmH6KEuAa9JEmabmWceuqpIy5/9KMfHXau\nm0MuCZlecoI1JIwN+6Scc845Lon5yU9+0jnudYCJHetBXsHR1Dmdpv3262Z6BjM/02+9cPHzNekY\nSwafPFMGzpLSpHZXqSsWHzCXZaTYXnAO4XWakiu2hSqtnwhUSkQOOOCAxG198803O2nDA7q7sPvu\nu7tD++1IzLCTwY9wuvB1fidJE5XPnQuTBs5DHHyJ08+lCSwE7tAwUEcN9L4vyttvv91Jn+QgrE+S\nPGWmefnll60/TJNjgcThw2CIpF0Z45dHGUlXyfj5Bv1YZKT4O4AXBlbLSIRAEQhUSkSKaIDKEAJ1\nR8C9PUYFHUuje1zgsjRlDGpaR0YcIRxUHIpqN4sIiKkkEQJFINAYIsKOnU6effZZdzjs27cgcKHK\nN34ccMMStoBEWU38PL5VBsfUYB6u6+fLX/6yn73rMasi4qauumbUxVQIMJUCAclLQjQlkwr2yMTO\nGiUyEglP4pPEnwFLh2fijEooBGIQqHT5boxOkadZVuiEFR+ssggvfw1iI7gkBj+ScePGdX73+wAf\nDAKY+eITKPTrRUQOOuigTnbyQmSKIlcszQwTt05lKQ5YNfH5z38+RY7eSXvh0ruEeqQoijz0Y0qG\nOl544QXrW8W9i7hluhxDpCZOnMih4X+R+4f/v6YNRrSDtvLJSw4tGAP4B2sIS78lQqAoBBpDRIgN\nwuANCUH+8R//0Xzta1/rkBGisfrLfX0nzqLASlNOOLYHEVD9eCBJ9INI4dCL7wTt/tSnPmW3UHcE\nizKJZukwCVbNpDKXFkFEnC5psCkzLVYerD1VCo6RRYY2Z0omj4NrHBZMGXEPEQti586dlmiwpPvs\ns8/ukGRXLwM3eiAsm9+4caO9F8k3efJku1UAG+01QRwZof1NI1JV48u9vWzZMhMEsqtaFdXfJgTy\nLrtJm99f/hq1jDYYVDvLUQOch0VXDS9/5XrUJyAsI5aC+unilrkmSePrT3pf/Py9jmmnL1HLd7ke\nri+uXPKnkbovc03TFj8tkT6rXJZMZFGWjBYlZSzVXb16dScaKnjlqYP2EqU1WPE0FAzwFnvONUEC\nC2OhfdWENufVkb4merFECBSJQGN8RIIB2EYO9QN8cS4sWE0ef/zxwqYwwuUn/R2EkY9NSqCzpNMP\nOISRvptgNVm7dm23JCOusfqCN+G2Ccu83RRCv9uG1QAp6i2b8opcJfPwww+bQw891FxzzTVm/vz5\n1sLB1JqzemTBC+sCZnqCm7HL7vbt263ObHxX9yWzbn8a50ycpf2Dlmf58uWt2ihz0Pqvru1tFBEB\nRBwyIRphQgIBYcAm9kYdpguIrxFYM+zUiut8YoGge1wkV5cu/E16nF/D5AYCQptfeumlxMTGlc0A\nwlx/mx7CDHyQK8Km91scjuBalDAVUkR56Mauu46AbN682ZQxjQKhYaM79MbPhH4ocmO9onD1yxEZ\n8dHofgwx5l4q497pXrOuth2BUZhX2t5ItS8aAfxLcDokxHcbhEEPosrbeT8Fp9Sse8bE6VmUoytv\nsJB2wraff/75fQ3HTX+ce+651odk0aJFfa07Dte480X79cTV0+TzbCOBXxlkUyIEikSgcRaRIhs/\n6GXhZIg5vQ3CoLdixYq+e/M7wpBlz5g43IuakoFoQkLoY8hmkTrG6e6fJ+omTrsE2psyZUqtrW9g\ng0WH/pREI4C18cwzz4y+qLNCIAcCIiI5wGt6VgYKTK1uWqHJ7fnwhz9sp71Gjx5tBxMGlDIHFd6g\nHQkpGre8UzLoxhYFrLYqcvVOlnYywLM5GtOI6FT3e01kJLqX3f9SHn+i6JJ1VggYo6mZAb8L2mJu\nZQrikUcesYOe36XuAerOFTGFgsWCwb4op1SnG995yQ16YX1AcGDutxXEVhzzB2fZSy65xE6dlYFd\nTLWZTufth0yV1jgT1jUCLOLcLBECRSMgIlI0og0rz00D5H0Lr7rZrAZZuHBhzy3peSP3I9yyKiWN\nQyh4IWnyJMWmiLJxSiUQWd1IiMOgaWSkCOLq2t7Ub8gtOEDOyrjvm4qL9C4OARGR4rBsbEm87SBN\ndULDGoIzJKtB0gqDPyTMCZFr497WITFYGMp6GOd9C8e69fTTT9eWhDiMm6In+tLn9HedLEsOx359\nQx5vueWWvjuB96t9qqd6BEREqu+DyjVwVhH8CeIG4cqVjFHAva3hkFnE/DXlgYMvzm+gzLfjvCTE\nrVBpylsrlps99tjDLF261Ie6lseDTkZmzpzZqMi5tbyJpFRXBEREusIzOBcJQMVg3u+lr3kR5iGJ\nlDmgYXHxY9MUQXj8duedknFk7N577+05NeXXW+Vx03Qu2xpWZV90q9u9pDCdOchWoW4Y6Vp+BERE\n8mPYmhJY1TB16tTGxBUp2wrgrCNh4oHVwZe8lpK81pB+kDG/vUUdu/7DAtWEQS4vYSwKt36WAwln\nX6EyiX4/26O66omAiEg9+6USrXjrg4w04c26bF0ZdCAiSaaq0CWrA2xeEkJ+yGNTBvPwjc0UDRF+\nm7IaY9DICM8DNhRlqb9ECJSFgIhIWcg2tNwmrGqAILBENdhorZQBLO9gQ/4kDrB56+EWYyBnx9ym\nRscFA1YuNWnVVhH91oTHgyP7/r3cBL2lY/MQEBFpXp+VrjHmWCJy4i+SxCJQukJeBZCQE044wXzs\nYx8rZZUPD9+iV8a4KR6vGZ0onuFpHz9Nr+OmW0Nc+5oYowIyktRi5trZtO+2xBhqGu6DqK+IyCD2\neoI2MzisXLmyVmTEWUIOOuggc8455xSySsaHgoE9r7+HX16347ADbJZ66aM27BXU1Ddv7kcISd3I\nerf7Ls01LFV1fBlJ0walbQYCIiLN6KdKtHTTNHXwGWGwYp+LSZMmdSwhRRIHyspjnUjTQVGmfdqX\nxs+EQZCYJ02a0uiGEb4Is2fPbtzOrm0lIzgSX3755Zli83TrZ10TAlEI/On/CyTqgs4JgQMPPNDs\nt99+ZtasWea3v/2t+fjHP14JKFgP2MX1i1/8ornqqqs6OvDGtm3bNvN///d/mVddMJC88sorfSMh\nKI9jKRYQX/baay/rK0Gb+KAX6SAtfH79618b0jj55je/af7nf/7Hhkx355r+vX79evP3f//3jWrG\nO9/5TsOHe4h+a4vcdttt1g+LiMUSIVA2ArKIlI1wC8rnbf2iiy6yLVmwYEHfBm0GYJww33jjDbNk\nyZLYeknHwJ3WRJ41X54uzWp5ccTE1X3TTTdZX5nzzjvPnWr0N32BRarJjpFZ+7ZuHce91iZrW93w\nlT4jEdDuuyMx0ZkQAgzwzBWzTJQPvgkMHGUJD0Ic5XjDZGkncQy6TZsQgpsPA0FScfqnJS9Jy49K\nR51Z35pxoAUD93nttdfMe97zntrvZhuFQ9Q5+s/tnBx1vQnn6Js092Dd2sT/HYJlatq0aaVtZVC3\ndkuf6hEQEam+DxqjAdYJpgsQBlQCaTGXXJRgeYHk8Da2a9cu+3ZMfIkkwa7cQM1A4B6ocXpRD8Lg\n108pyp8DQrNlyxa7dLefRKpsrPD/2bp1a9nVlFp+k8nInDlz7P/zihUrzNlnn10qTipcCPgIiIj4\naOi4JwIM+GyOh2PlhAkTrEMb88gQCEhJLxIQrgDigPWDMnBYZKvxZ555xsyfPz8TUWAgYKB2Fo+o\n+pwFJXytzN+0E92KEAgNb6xtE1YAvfrqq41vliMjaf8Xqm7422+/bZ3BV61aZadD2fYh7v+oal1V\nf7sQeEe7mqPW9AsBCAkWEj5YGB588EGzePFi+yBjOmX//fe30yoQi7BANNiqnp1iCUrGZ+HChcOi\nN+YZuLES8ABFL99ikKfMcBvS/EaXrFMyUfVgNRg7dmzUpUafmzhxoiWhjW7EH5SHjHD/QXqTWPTq\n1macwlk102+rYd1wkD79QUBEpD84t7oWBns/RDcPYCwmzz//fGS7cXxl+qWbhcC9VXZLE1n4H07y\nAOWNFPLBChWmlLKW1a2eJNewYBRZN9NWWA8k9UaA/4umkhFeDrB8SoRAPxAQEekHygNWh7NC5B18\nsSJgTcj6VsabKGWsW7fOnHTSSZX0QlVWmEoam7NSCCPTAm0SR0a4F7Pex/3GAxKydu3afler+gYY\nAfmIDHDn173pzqqRda7dzW+zHwvHWcvJilPRUzJZ9WhKviZOYSTB1hFzdz8myVNVGv7nmGJta19U\nhavq7Y6AiEh3fHS1YgR4iLuVOmlUwSSOuLdQymEg6OdgUNQqmTTtVtp6IuDuw37ef1mQWLNmzTC/\nqixlKI8QSIuAiEhaxJS+7whgsnfEIknlTIfw4HcPf5fHvZmmKcvlTfutKZm0iJlc03Dpa+t/Dnc/\n1pWMfPnLXy7Ul6n/CKvGpiIgItLUnhsgvTET80nyAHcEIM607AgK6coS9CxylUxZetatXCxIrJxp\nszgy0g8ynBZHR9TT5lN6IZAXATmr5kVQ+TsIMAC/8MILZseOHZ1lmG6ZLoncsl53zMqPI488MpEp\nmAe4s3R0KvQO8P9IujIGkoIjLeVhbYkjLV7xqQ6LXiUTrnyfffYxjz76aPh043/7m/41vjFdGsC9\nzP0KGSli8Of/7vvf/755/fXX7Z43xAPx/++ozxE8/gf5vxs3bpysH136SJf6i4D2mukv3q2rjYcp\nMURY7bBz5077wDv66KPN+PHj7RJdGuxWz5CWwYaPe2i++OKLNt/06dPN5MmTh8USiQLLWTz8azyI\nebBneaijE0TEvan65WY5jtIvSznd8lDH3Llzbdj9bumado0AWgixaQZBuGe5d7Pet+7/jii7BLjj\n/w6Suvfee1v4wv93nGRJ/fbt220Yd/5f+Z875ZRTbPyfogn5IPSh2lgMAiIixeA4UKXwAGU/imuu\nuca2m4fgGWeckemBSgGQgU2bNplFixZZUsIge/7550daKsIPbx7kSB4ikYfI2Mr/8KcIXfzy4o7B\ngDgsELqsA1lc2VWeZ8sABlJ2e87Tn1W2IW3d9GVSSx5lP/zww+aWW26x/zNJyXucTtw7Tz75pGF3\na/4HL7zwQjNjxoyBwT4OF52vAIEhiRBIgcDq1auHgkFiKCAfQxwXLd/5znds2dQR7DA7FAy2I6oI\nHtz2PN/BNMiI61lOUA9155G8+ZPUTR18Dj/88KFvfOMbSbI0Jg197vrUtbMfmNYBoF7tDIj/UDCt\nYj9l/N+BexBJdSgYgux31P9dHXCSDu1EwLSzWWpV0QjwoAoCHdkHYa+HZhF1Uwdkh4cvD+Gw3HPP\nPZEkJZwu7W/qzfIQLgsTyvU/rj3XXnvtEJ+2CPcXfR0lfvuLIp5R9VR9Luoeor38H0DSyiAg4TZT\nX2AVsfXxPyYRAv1AQESkHyg3vA4eSLwpYaHotzgLDIOuIwg8sDlm8CpDKDfNgEfaNOm76Uzd/sAb\nl9a9Icddb9p5+pc38l4Czknw6VVOXa/7ZCTq3u+X3ugBMYSUuP+7ftWtegYPAfmIVDAd1pQqmb/G\nDwR/kAceeCCzD0je9jKX/elPf9r87ne/M8GAZT7+8Y/bIsv0yaBs2p/EkTCPgyr1BINrB6I0q3hY\nIkwAKueU2CmkgQfsvrxkyZLUbQF7J+ARWA7cz8Z+06b77rvPOoBX2b/c/3PmzDE4lFf5/9/YjpTi\niREQEUkM1WAl5CE0ZcoU22j2najao54B+4tf/KLdN+app57qEIQ8JKBXj4JBYKHoOjimrd+V6erO\nM3h+6UtfMmyA1/TNyXDAhPBu3rzZwZLp2yd1OPMmIZGZKio50xVXXGG+/e1vm3vvvdcccMABJdfW\nu3hWMy1YsMCu0moqpr1bqRRVIiAiUiX6Na3bkZDDDjusNoMcOkGGeEivXLly2EMxLRlICzvlR1kq\nGPiQXm/h5HdS5ABJ/RAZLCq9dHD11/GbvYDOPvtsc9pppxWmXpjwRfVfYZUVWBD398svv2w3naMN\ndelXyOIll1wy7P+uwGarqAFHQERkwG+AcPPrSELCOjoygrUCcoLODMplvq1FxRuJI0A+8UD3MqdO\nwAJpqlUErKZOnWotT2Va3ei/wNfBYlUkGbQFFvTHJyFlYpFVXZGRrMgpXy8ERER6ITRg1+v+MHTd\n4fRkmgZhoOHtscwHOGQH0gPh8UmIP8ihS5nEg/J9QSfq86er/Ot1P8Y3ZP78+YVaQ3q1mT6ExDqp\ng7WE6Y+77rrLbNy4sdR72LU56zcxR4j3U3c9s7ZP+apBQESkGtxrWSsPmauvvrr0t9OiGn/ccceZ\nYEmxmTdvni3SJwdF1REuh0EMB8K//Mu/NKNHj7aXqx7IGMTQyZGysM51/V0XvX0iWYW1xFmFmkIm\nCTxHGPmHHnqorreW9GoYAiIiDeuwstR1b9ZVeumnbVuUzmWQkfAbNKGxISFVExAfL0gZUxxNCY/O\n4A9+WCbKnFLzMUpyHO7rsvuY+qjjuuuuM+edd14SFStPg85HHXWUXVHTFJ0rB00KdEVARKQrPINz\nEYfBIG5Ax7rQlJaHTcWQEySvkx+Exon/luwTnX5MBzkden2jC2QEsznh9ussTRrIfGtJnhVOcf3B\nyif2immadcFZcfjO+78Wh43ODw4CIiKD09exLXUPFef8GZuwphcgUWz45awBPllIqrI/4JAnys8j\niuSQD7+UOjyMb731VvOv//qv5j//8z9rZWXw+wASwrLwOq3I8vXrdkz/+zFfou6RbvnD1yivyaue\nmu4oHe4P/a4QgcGL4aYWhxEggmI/wkeH6y3qN1EgAyIwLAKkH6Eyqp6AdA2L0JkkemRcmUT7pLwq\nBd1oA1FwwaJqfeKwIHoqWwUkwTuujLqcB3P34R5IK2BRRbTitHrGpafNwdCVO6pwsCOwLYey7rzz\nzrjqBup8EECugwm49FvoB+rlE+yUXnr1/W9h6U0qpoLgja3TEeF/jm7Xiqm9f6W0JVQ4+3H4D3UG\nOn8w5qHpBg03aKdBmTzdhPp6pemWP+u1qHoZ4OpGRtCTcOFtISHh/grfX+Hr4d9uEAeXJgv3Gp88\n4p6nfA+SuIGeb4iHL1UTEXRx/XLiiSf6qpVy/CcBCJIGIzBq1CjjPg8++GDqlhAcjDDOTZe5c+fa\n5Y9+O1599VU7TcFUDYIp3X3SLPN1JnS/7PAx5VE2dTH90A9BLz7hKQJiiuD8iM/Ihg0b+qFK1zrc\ndMybb75pA3Wlwb5rwTW6yNScu7fcfcC9wIc+CstXvvIVEwzgtV6qG9Y56vdll11mFi5cmPmeJ6w/\nAdwQ/ocl9UHA9ccTTzxhsowtqVpSCr1pQaGODQZgjjAXdrvW76ajn/uEWXUvXdryVuba+bd/+7dD\nX/va16xlwllDirBSpC2DusG2TElSh9s0zbcUlalTVNlgh3Um71tzVNlNOedbS9x9WTeLVR4ssUZm\nmdoNticY2meffezzi+9BE/fc5jvts7sfWIX7h99liSwiwV0wqPLkk0+awFze+Lcy+o83T1aL8NbN\nG6lbEureTrP2MeVSRhpxdePIWoagE2/gfLoJIdOJTcGSbKwjZekTpQNWEFaEsKQYJ9qmRn6Nalva\nc/QT9xAfjm+77Tbjr8RKW17d0hOef8WKFanVCgZfs2PHDptv9uzZw/LzBu4svV/4whfstRtuuKFz\njmsXX3yx2bp167B8/g+sLYcffviwPJx76623/GTDjimPcl3dY8aMsdYA8rhzfIfL4HdYP9JxLqzj\n9OnTbVl+xWeeeaY95ywPfvspBwmm8YbpgJ5hCadZt27dsCSbNm0y4Om3BX1cvX5i7tFzzjnHnqKf\nHn/8cf9yscdFMhx8KXxrQaCptSYEjRhWTRA0q/MWDxMOX/fL4DgsMDPfmYZ64ury8ybVjzy+Dml9\nRHC+8tuIbmeddVYs6/XrAgvyMy/n2gVGYR0oz10Pfydl18zZZ3mT8TGt0zFvmzjehoU30iwWiqz5\nXP3M/6e1pri8Ud95ysMqEgyC1jKRBYsofaLOoaOri/urzLqi6m/CuWAH6SE+bRH6nGcQ32nEf+7x\nzPOFZ5h7rvEs9Z+H7rz7DuflGdotPc/TKAdMynFlhr+vv/76Ydf8MYuywunDv/3nd5Jnt99+ynJy\n0UUXdeqKsiJRj6ub674Vw7/m0vjf4ByWgHx0yivTV+SPLQxrkOJ32o4nPSA5EHwAwh0QvsnodD+v\nK8P/DudJqx9N9/9J/Juo17UsnR2uy2+Lf8wN7CTJzezSxn1TdtEDBVjTh/QpOkb1Fee4RhrSkqco\nYbCNahMkJe2DsigSQTlp6w7jQZucWT98LelvymCKhH7nO295fr2U7QgIpvqisPPraMsxDrtF41P1\n/x1twvE9qYQH73C+8DjgPwfDx+EBshsJcXl5BvmDNMdRzyqXPvztP7P853c4nf/b1Zfk2R1uv8Mn\nfD5MqHyiwrETn1D4OoWPw2MdOvtpwvW58vN+F0JEsnR8eMB2Het3qg8kDU16s1CGL1n08/UId07c\ntayd7Zfnd3rUMXUgSW5mH4PwcZz1IJwu6W/6z/8niNK92znyunsgaZ1R6brNV6d5+KdJG6VH+Bx4\nRxGkcLqo33nyRpWHHryRQ9qwIHGcpb3oxXJhLB/0Ld9ZyonSsc3nwKooqcv/HfdQGl8k//kfJhJg\nEx5wSeMGQcaB8PPPDfLhfP6zu9s1Xx/6x88XtoZw3T2rwlYUP1/4mnt2u76nHPdBN1/CurprYWLg\n10can0z59fljjI8l7fCxDBM0yvTzhuvjehGS+z8iDJivaLdrKO830L0du44BENfZrqGU7a7z7dcV\nvllcJ3TTods1Xze/nrDe/jU/T5rO9vOF20U7/DbTTl/8a7QnqfD2wqBdhKCj/w/g65TmmDJcv2XV\ni4dh3AMRqwSDZy9hoM5KGrqVTZlJ6vfLIH1ea4pfXviY+4BBBEJCX/FmC6FwOIa/Sct9A4nhQ1qm\n98rUMaxzk39D1MC4CKnT/x33APdCUvFfWsIvnJQRfjaHx4KwRcVd98v1Le1OL38M4bnrhOe1e1ZF\n5eOcu863q88vj+dXWPxne/j57JcXvhZuv1+u30YfOx8TdHHkzD/v6+7KJJ3//A7r4hOVKGxcOXm+\nczurfutb3wra9nsJlDSzZs1yP63zYNBRnd+3335755iDYIVD5zfLDRcsWND5zUZme++9d+c3B34Y\n5HBdV155pY3W6DK88sor9jCPfq6sJN84JLllaKRftmyZGTdunM1KO+644w4TdLb9HdzEsY4/4Xad\ndNJJJrjZbD7+sNlUERLcnDYaad6ycNKiz2lTXqEMygo7gqUpF4yfeeaZyCxu2Wiv5bUBYejpCBpZ\nQY+TwcBty8XZNIk4p1Snd5I8adMcf/zxNqz/5s2brTMc/4PsIxInu+++u11miW7gtHTpUrtzbpk6\nxunSxPMBYTN77rlnbtXr9n/HMy7Ns+mFF17oYLDvvvt2jqMOgsF8xFjgnq3h9H65RFsOy+TJkzun\neF7TH3xYouokKl/UOdLzvAoGYPvZvn27LQKHUJxicSb1xwRXft7vY445plPEf/zHf3SOn3322c7x\nJz7xCesQzYnXXnutcz4gXCOw9J1SSfiTn/ykk56D/fbbr/P7xRdf7BwXefCOvIVl6Xgajhx55JF2\nt1dICOI6jRvPJzT2YvDHv1mCNzh3uvP90ksvdY7dQR79XBlJvpN2tmtruLNdHVHt+sAHPuAu1+6b\nOCRhEkL/BSza7LHHHubggw+O1JkYHzy4gjfyYf1KWZQJscwiYfIaLoMVLQyicSthul0Ll5XlNwM2\ndVNP3IZqEKXAEhKrY5Z6k+RxusVhk6QMpemOQFEvAHX7vyNU/apVq7o33rvKxpFOeE50kwMOOKDb\n5WHX3BjCyZNPPnnYtagfkJCwjB8/Pnyq8xI54kJwgjICK4K54IILoi4Xfs5vF89LXoIhZt/73vc6\ndbGNgpPA4uEO7bPWrcLpnAwddCOUP/vZz0Kpi/mZm4hk6XhHRGgCb/v33XffsMHMt5S4ZobfkllW\nlUTy6pekDtIU1dlJ25VUr7h0WA1YdpdXIBK+8A+ZZNM1SCgC4eANYuLEiZ1iKDMrEekU0uXAEYHw\ngJskcFmXYlNdou6ofWrQASIS1i1V4UrcegTq9n+HtS+NhF9e0uStU1pISDDV1nmJdrph2R47dqxh\nFsAfg9z1PN+Mn7zo3X///bYYLCG8gC1evNj+xirsP0/z1NWvvH/Sr4ri6qEjwzclb8uS8hHoZT1I\nooFvpeKfLwkJCZfrLGPuvF+mO1f0N29w4YiXZU3JxOkejjfi4ny483H5dF4I+P8jTfq/cz2H1bQM\n8csNnEU70yZu+iT8HfUMxGoVlvAY5a7z4uWIBnWTjjq+/OUvR1r1Xb6838QFcoIlhLY68adlOMd0\nqhMITBiD8G9077fkJiJ5O56gR2HhXNgC4ltRSO/m48J5w7/z6hcuL+53Ezo7TveizvMGkFXy5M1S\nJ29wWB6cv0jZUzJxOjq/keXLl1v/kbRvlnHl6vzgIJDnfydP3jwI77XXXp3s3aYCOokSHhxxxBGd\nlElfaCEjzn+PzFE+ZlHnSEvAQCcXXnjhMP8LXrIdSXFpivomAJoTLCG+fv60DGkOOuggl9RgPUGv\nrJJmmixNHbmJSJaOdwoSzc2Zl7gRcKRBYJXOzOTSQkT8myXKx4JpDRcxDmchJI9+ru4k30V2dpL6\n8qZhXjYc8S9vmf4/Zdqy8uRNW5dLj+UBX4x+Tsm4ut238wc577zzrC6OGLnr+hYCvRDI87+TJ28v\nvbpdf9/73te5/OMf/7hznPfAd+TEZ8ONA5TLy60fNZWoq05cBFF+48fn5+PY+fa59FHfLKZwgzzT\nzZ/61KeikkWe86f2IxOETrrpGXfa6Rc1LYP/iHshZ2xFL//Zzzjsj53hKKtEq3biynG/C/sOzDK5\nhKU+gTKdj7+cNWj0sNgSQSM6dYWXDJEvvO6a374EJshOPdTpL/UML99lyRKSVT90de3y20SZcdf8\n8/7yXadHcJN0ykQvJ36+cJtJQ/1OFzDwxZ3nO6ynny587JZlhs+n/e0v7UIH+oG+TSqk9dtHGZSZ\nVVgemWZZcvDgGPrGN76Rtbpc+aKW87Jcl/P9FnAAO+4Lt0QXHMMfAqGRJvBRqETPfuNSdH0O37zl\n1u3/jvs2sOYlbpb/P8+zMiz+czvueeA/+xhrnPjPUz9N+Nh/BpM/fL3bb1dfeNzplsevD12j0ro0\nfvtJFyU+hq4sfzmvnydcnksf/ga7sPjjlj/mhtPl+R3dwpQlZul4n1TQUDd4+f9gYVCS3izhzsii\nn58nPMDHXcva2X55eYiIu6nczdytG4t6IEb9M6AHDxf6kutRH66Rxunsf4fx7taO8DUCbKXZYI3B\nl4G/34N/N8LRL32oB7yIawH+fDuiAS5RH9Jz70BQyJMnIFq47wbhN5imIcpxmNTt/y5tu8LPcvf8\nd+31n6VpiQhlxz1b3HMm6hnj1+nSue8w4XBEhG9/oHbp+WaMYyxy5yjDlygd3bM7rIufzx2DmSvb\nfXcjCnH3jMvLOOTaFVdHuJ9curzfhRCRtB2PtcI1nm//puh2jVopbAYAACaLSURBVMaGO8gvh2M6\nNwxWWv2oxycHvn69rmXpbL+utESk282MrnGS9sERVw5YR+kQ7pekv6P6L67uqPNpIjz6Az549Euo\nCwtEN0E3yEoZgjXDEQmIB7976ROnB21xAdEgJRCVrGXF1dGm8/QpOOWVuv3fpX0BoP3+cyM8gPrP\n+bRExGHLs9ivg2cQ5CDqGevycI363POKZzO6cN6d49sfYxizfMLh8lBmHIHhWjgf5VIX4ref83Hi\nt89/oY9LT51hndA3PMa5/PSLa3dcP7i0eb7jW5ih1KQd74MHCGEJW0vCLA0w/TQA1Q1MV35S/UhP\nea4Dwp3U7Rp503a2X17UPwn1O11oty/dbmY/XfiYgS6NKTWc3/+NDn6fOl3TflMGZeURBlgG1iQS\nJh/h30nKSJPGTX8kzZM2fa9yaR+DYFmEwREc7iusJpJoBPi/KIKs1en/DkILGUkj/mAbfq6lKacf\naf1nMAP+oIhPsBxJKqPthRKRMhRUmeUhwIBU5Fs3/6w+qUpKRMgTJntZW530IR9FOnwLSdb64/Ll\nsXCga56Bi7oJvw1BSDtYxLWn23n0hRByf0Xh3C3vIFxLQ5aT4FGH/7ssfY1VwU1rJHmbT4JF1jT+\nixTPI//ll5dDpyfPF9IOgtA/7hkOJmXKKAoPKpMMIAJXXHGFjXzKio0iBe/05557zgZ5Y437L37x\ni2HF/8Vf/IUhWixLnj/ykY8MW/I2LGHKHxs2bLDr93utBHDxQ4KBeUQNxPLgfJEhy6MCl42ouMeJ\nrGWAybnnnmumT59u5s+fX2i7eqhsWJIcvOkaljWyZYPk9wjcfPPNNvzAjTfeWCgkVf3f8f9EAL6A\n8KZuDytSXETSgFCVGnujm3K+Ht3ScS2wDGSKl9Sr3Lpd9zEpvc1lshyVXW8E2KiqqA24qm4p0wKz\nZ8+2/gq9dOn1lt7req/y/etYnPJYM/yy0lpV8N3ACpJ0qsqvq6hjdOYe41MUDkXpVkU5YMAqrdGj\nR7cGjyz+IT72zhpR9lu3X2fUse8bEpCCjjXAP677FFJUu7Kc861V/bAAaWomSy+1JA8PRQYqBoum\nC235q7/6K/uQh0jEkYm48377KauIKSvqoqwihfKStIE5ewb/ItpRhP7oU/RUYBF69aMM+oA+4+P6\nAyyqJIhFtjtvW/B1cYN9UVO0WduHH4TvF+H0wsEzyn8vaz11z0c/0HampPxpqrL01tRMgPYgC9Mz\nSNFm4n5j+vDDD5tbbrllWKRDoqU6IQCQm26JmpJx6dx3t+kblybu2wUpK3O/mG6b5tGnRHRcu3Zt\np81xuvbzPHqxWRtTZ20OY8+9409TRG1uyLTVI488MmxH8X72RVF1cR9OnTp1WHuLKlvlDA4CIiKD\n09eRLXXzu8GbWq0GrUhlu5w89NBDrQ/EaaedFpkKchBMRdldKknAXjO9CEmWsO/gSV39GGij/Ebq\nSkJcpzgy0vT7zbXHffukN8m9xT0CQSFfr/vQ1VHH79NPP90cffTR5tJLL62jetKpIQiIiDSko8pU\nk8GBEL9NfZhgDbnmmmvM5s2bY2EKk4okb60UFs4XW0FwIYoYdEtfxDWf+OAEedddd5mNGzfWmlTW\nnSwl6Rf6Opgm6yTNYv2iv9gjhNDgTRT+N7CGtI1UNrEvmq6ziEjTe7AA/RnMeIvDnNy0tzPeLI86\n6iizcOFCc/zxx0eiQfuQbm2LG1gon/y9LBw8lKNM8JEKFXwSHbH2/PM//7N5+umne+pacPWZimP3\n0MCHpTGracCYAddJEX1NmZSzZs0au+rEld2Ub1lDmtJT9ddTRKT+fdQXDdnxeMuWLY17O0uidxqr\nhgObPE7+93//13z0ox+NtDK4ASrLG7ErP++3G9BuvfVWEzc1lbeOovND7sDs3nvvjSWQRdeZtjz/\nHsDHqBcZTVs+6fEVWbRoUe2tWOG2Ob27WSHDefRbCMQhICISh8yAnWcww7IwZ84cU3RckbKgZKDA\nNMx3nLWDa3lJAthE+ZcwmHKtjAEqDWZMdbCV+tKlS9Nkqzytm1Kry1QS/ek7mea9b5ICjGUhWHnS\nGOsQ1kMsWk215CTtF6XrHwIiIv3DuvY18YDBVIwJuurBtRdYSawADCxIHEnpVYd/nfooD1z4JmDb\nu9/9bhPEg6hsSgb93KDQjYz57ajbcdXmfXBzksTJ1KUt8pv7CdLTBIsW/wdTpkyxLwBN9Skrsu9U\nVjEIiIgUg2NrSuEt9ZJLLqn1Ekv3MAwCIHVddlyENcTvWEdseGv2fQTi/Ev8vGUdVz2Q520XfdRP\nh8cq+6obVi4CLkt6ua/rKjNnzrTWt6Y62NYV10HXS0Rk0O+AiPbXeVWDIyF77rlnV3+WokkIMFE3\nUzS9pq78t+yyfAvQx1lDmr5qoUwyRZ8V7WQK9mXIv//7v9upUVbS1NEiWefnQhn9oTL7h4CISP+w\nblRN7qGzePHi2jwUHQkByG7BupzloogpGddplEn9DBBpSE54ICzS/E8fsV9P0/dxcVYR3z/D4Z7l\nu19EMItucXnc/bV169ZaWiTd86Db/11c23ReCPRCQESkF0IDfJ2HT10iYfKg/vSnP232228/u8rA\nRUmN6p40RCEqf/gclgfqc8QGcoE+Wd5ayecPuP4UT7jebr/Rgby01enVLX3drxGQrtsS7G76hzHt\nl5NpN53SXEN/xPWjmx6tg88I9xk+IYhIiIVBf0pA4E//XyAllKsiW4BAsNmRHfhZTbPvvvsaBosq\n5MEHH7R+BGeccYYdrN75znfGqlEGCWGA2GuvvTp1Uj9Levnupksng3cAocEq4j7btm0zP/7xjy2x\n+fWvfz2sHi/biMNvf/vbxr09j7jYwBPvete7zLPPPmu453oJg+Mrr7xiMWMQZ/oLUuYw7ZW/TtfD\nJATdDjzwQPu/NmvWLPPb3/7WfPzjH69EZf6XWA7O0vXbb789cvl6JYqp0tYhIItI67q0+AZhETjz\nzDPN/vvvb4gG6d7ciq9peIkMOCwnfuyxx6wVhCWO3awQUQ/14SWm+8WDuJvFomjSQ3t9f4Zu0zhY\nq5ocDTfcE/QdlgzfWuSn8Z1My/S78ess+7jX/cp1rIDIggULci9DT9oe7sOvfvWrlnxcd911PX2i\nkpardEIgFoGydtNTue1CgF1fb7rpJrsjIzupBgNGaQ10dQWEZ2jGjBmdHWw5HwzUsfUm2ZU2NrN3\ngXqSlpU0nVd84kMwpnz3QS8n7HjaDQuXrknffptcH0S1vUltitOVvk36P8T/Hf8LZf/foWvgjG3r\nmjZtWmL94tqo80IgKQImaUKlEwIgwMOTB2LAbO13kYMhZbuHLg/CqEHeDVDh3ohKG06T5Dc6pGkT\n6fn0Q9CLdr700ksW/37U2c86zj333KGrrrrKtjFNH/RTxyLqynLPcN/7/3dF3e+0h7L5v4MI8lm/\nfn0RzVQZQiAxAn8SayrRBSEQgQDTMjfeeGPHhE6ERT5M2TBVkVYwuRMumjKYiti+fbuN2Eicgiin\nQ3wsOE9dmJARTNjkzSvognSb/gnXAR7o4XQJXy/yN3rR9t/97ncmIGpFFl2Lsg4//HDzZ3/2Z7aN\nafqgFsonVKLXdExcMdz37v+OKTn8R/DZYouDLP936IFTLHFBmOrC52bJkiV248i4PZvidNN5IZAX\nAfmI5EVQ+Q3BmPDjCN6k7H41DJJjx461PgzAwxJTHnY7duywaO3atcume/755+3vyZMnm1NOOcVM\nmjQplUMcxIEHdPCGGUlabOEJ//Aw7+YP0qsY8kcRp175slyHuL366qtdg7llKbfqPGCIL0Rbg2Vl\nJSFx/cL/HRF+2eiQD5sIsqpswoQJnSzjx483r7/+uv0d9393xBFH9M3vq6OYDoSAh4CIiAeGDvMj\ngGUgMKvbFR08+BCsHOyF4j8gJ06caK0YWBTyyDe/+U3zvve9L5UVw6/P6ZuXRFAOA00/3uSxPiFt\nC7HdZiJSNAnx72GO3X3MSqpu/3cQk7333rsv92lYR/0WAnEIiIjEIaPztUfAPdyxikB+0pIJ8vMA\nL4o8YKGBWKFPmdJWIkJfYDkLJpbLhK/vZbv7NC/p7rviqlAI9AkB+Yj0CWhVUzwCTMm4gR8Swhs1\ng1kSyeIP0qtcCA2ESJINgbIJXDat8uVy95lISD4clbvdCIiItLt/W9u6KJ8MyAhvn+4NNK7x5GVg\nKGNwcIQorm6dHxwEnIWsjPtscFBUSwcBARGRQejllrURohG3SsZNs7g3Ub/pWEscgSnz7RvdepEh\nXy8d/x4BMGvLoO1ISJn3me4bIdAWBERE2tKTA9QONyUT12Rn7YB0OGGQ45PWj8TlT/NN/ZCepNNE\nacpuc1r6FSfmpotISNN7UPr3G4F39LtC1ddeBBh48ZFgWa5bKhjVWre0Fw9+9tVI8xbsLBpR5frn\neBN10yR/+qd/av76r/+6MKdUv564YywzSXWNKyPuPMuhN27cGHe5seeDwFqN1d0pLhLikNC3EEiO\ngIhIcqyUMgIBrAxPPvmkDUrmYhkcdthhNobI3LlzI3IYu7SXJb2LFy82q1atMkE0Rxugi03t3NRK\nVEbqipuSiUrPOVZh/OY3v4m7XOp54pIwMHVrUxYFxo0bZ/HOkrfOeYh3wb3QVBEJaWrPSe+qEdDy\n3ap7oKH1E5VxxYoV1voxffp0Q1CyD3/4w5mWrrrATOzwOXr0aDN//vzI4GZpLQykd0HKIDFYbIom\nBb26j3qRNFafXmXSjjYucyXKJ4Ht2PG1aSIS0rQek751QkBEpE690QBdIA3BnhdW0zjCkKcZPsG5\n9dZbO4NSGhLipojC/iBx5/PomyRvGt2TlEcawnsTkjvcxqT565gOa9dTTz3Vd7KYFwuRkLwIKv+g\nIyAiMuh3QML282ZPJE/8P3yCkDB76mQM3uynseeeexq2vGfgTWJVSGL5KIMY9Gpg0XWCCb4i8+bN\n61V1I64zmLPfEA6rTRKRkCb1lnStKwJaNVPXnqmRXlgpePNm/h5n1H6Yzqlv8+bNZurUqdZcn2T/\nEQYFpNf0C2VDDLCQ9EuKXNIL2WJPkfvuu8+2o19tKLOeBx980DDF1yThHoIca4luk3pNutYRAVlE\n6tgrNdKJN++VK1faHXGrmgaAYFx00UXWOnL33XdHPvgZFJw/SFL4KJdBJImlJWmZ3dJlfXsmn7+i\nBFKDzk2dyojCCIvXwoULTVN2fi3awhWFic4JgUFBQERkUHo6ZTuxFpx//vnm5z//ufn617/et8E6\nTk30mTNnjnnzzTfN2rVrO2Qkr99HkqmcOJ2ynE8ygIWJRxzBYgt4lkmzPXyTxfkdYQFrgiTpwya0\nQzoKgbogICJSl56okR4M7lOmTLEa+YN+HVTEQvPyyy9bMoKefHpNxfTSOy+Z6VW+f526ID++zgxs\nvsQRDz8Nx5SDVaRXgLdwvrr9Pv30083RRx/diN2ERULqdvdInzYgICLShl4suA0sowxbHgquIldx\nkJFvf/vb5t577zUHHHBArrL8zAwySUmAny/t8Te/+U2bhaXKSJ4pL7BAmmoVAXP8gPA9qruvhUiI\nvdX0RwgUjoCISOGQNrtAzP0EJqubJcRHFVM+JIRAZUmcWP28vY6L9htx1ha/Xucsm4eAuPKabhVh\npQxEhBVZdRaRkDr3jnRrOgIiIk3vwQL1Z4A/99xz7UqMfjlwZlWfAZ7pozIGsTx+I2HiQeAxfxrG\nb29Rg9vNN99snnnmmcJJma9rGcfLly83ixYtsqujyii/qDKL6qei9FE5QqBtCIiItK1HM7aHAZRp\nCSwNTVm5gPWCN+o1a9bkmt6IgswRil5WC5fOldGNeLg07pu8YX8Rdy3NN+UcddRR1pn3vPPOS5O1\nsrRl9l2RjRIJKRJNlSUEohEQEYnGZeDO4heCLF26tFFtL/utmoHI9xuBOPhBt9IQjyhgGZCLiEVB\nOeiJr0WcBSaq/irOQZzKsmYV2R6RkCLRVFlCIB4BEZF4bAbmCg/cpjgMRnUKVhEsAWVYAyAezz33\nnHn3u99t98FxMTyi9Mh6rqgBj8Bzl1xySe3DpEN633777VpPJRXVJ1nvCeUTAoOEgIjIIPV2TFub\ntHwyqglFEiksC1HBw/L4jUTp7J8raoqGMv3lzXVchVJ3/egLrEq9puT8/tOxEBAC+RAQEcmHX+Nz\nFzmIVwkGZOrUU09NbRUJEw9/GibcnjIHKYgOUoSTsBvs6xCIzsfQ6VXXFVlFEkK/3ToWAkKgOwLa\na6Y7PrFXDz/8cDNq1Cj7YRdUX9x5vjdt2uRf6nrMfht+3q6JC7p4xx13mLlz59Y+hkOv5hICnhUY\nvQTi5X8Y+Hn7dZ9uVgSukY78DFpFCnr4vid5yiamyGGHHWZ1hWhVLWAFUXSB6LphXJWuIiFVIa96\nhYAxtSUiDO5uUGbQlxSPAA/fZcuW2UGi+NL7W6Jb6QNJ8MUnHRw7wuG+swyK5MWC4awYfn15jh3J\nyVOGywsZYZdkLDw49FYlECFW9Oyxxx61jU0jElLV3aF6hcDvEXiHgBhcBNavX29mzJhRyHRAHVD8\nxCc+YYmVrwuDexnCyhRHRoqYTnE6QhwYvItY+cIuyd/5znfMrFmzzCOPPGKIN1Kkrk7nqG8GdzYo\n/PznP2/uueee1FNmUWWWcU4kpAxUVaYQSIdAbS0i6ZrR/9QvvfSSGRoash8e9E2URx991L6tNlH3\nsM4EY/vYxz5mp8KctaMsEuLqdoN6kdMfzkLDAFmEgMHGjRvNIYccYvelgYwUVXacfqzewQpCkDUc\nP8tYzRRXd5rzIiFp0FJaIVAiAsFgWit5/vnnh4LmRn6Cee8Rut55551DnPfzcG7Hjh2RaV26s846\ny16//vrrO3ldBpeGb/Thc+KJJ9p0lI34dbpzcfkff/zxTn7KpCzOheWBBx7o6EK6KEnT3qj8/rlg\nIB0K/BL8U40/rqJNwSqbocDyUCh2RZeHcgEpGJo2bdoQGF177bWF9j0YrF69eiggPPbDcZ0FfcFD\nIgSEQPUIRI92FeqVlIhANBw58ImDO95nn32GXn/99WEtYRB31yEi4fwusUvDt09U+O1IR1IicvXV\nV3fq9Mv1y3L1diMiWdrryo365iHMgNQ2YaANppwqaRbkgQGuKCmDjKAbfX/55Zfb+/LYY48dCqZO\nMg3KjnxQFvcS2NedgNB+kRBQkAiB+iDQWB8RfBueeOKJYDyPlmDgNieffLJ57bXXDNEvw3L//feH\nT0X+vuqqqyLPJz153XXXxSa94IILzMEHH2yOPPLI2DTuQt72unLc91tvvWUmTpzoflbyPX36dOP6\nIfiXKEQHtpMPCGglYeqZBmGahumVYGDO3R6Cp+GHUkRZvjL4n+DMOn/+fIOfEFN0AWG2SbgnwBAZ\nP378sP+drVu3ml27dplXXnnFvPjii2bLli0mIB922fRll11WuJ5WiYL/aDqmYEBVnBAoAIHa+Ygw\nKDMoBZaHTvMC64M9h18GwjJXn4SQljx8AqtCJx9kxP/dufCHA8oNLDCdvOHr7jcPaVd+Fn+QOP0o\nn71deklR7fXrYbB2A45/vqrj4C21kKoDS5gdKAspLEMhzsm0CL8RCEhRS3qjmgJhwqGVsP7U89RT\nTxmWQSMQjsWLF5sFCxZ0Pq+++qq9dsoppxhWtfE/we7H+IAUTZZsRQX/cc7Fro8KLl7FCQEhkBWB\n4GFSS2EKJGiT/TAN4kvwsOxcY+ojLHF5/fOUzTRQlLh6+Xa+JOF0aaZmwnnDegQPfZskbmoma3vD\n9fq/b7rppiE+VQrYOqzj+iKtfkxnMEVQtWD+L2pqpahyqsakyvrxhWqbP1SVeKpuIVAkArWziAQD\nU0954YUXOmmi3uonT57cuU4Qpbi37SRTIuxjkkeI9hmWj370o8NOMU3STYpqr18H5nWsB3UR97Zd\nF33y6oG1gamaIoKfuSW9eXUa1Pwu3ksTrDaD2kdq92Aj0EgiArlwgh+IC3zmvsMDbBQRYVomiey+\n++5JksWm2XvvvUdcC/usROnnZyqivX55HLPpWJRu4XT9+v2lL33J4IPQNoGMuCmBrG0reklvVj2a\nmE8kpIm9Jp0HDYFGEpFB66Q6t9ePgOuIYNJv56hK+5xz8Q033NA6QuJ8EvL4jVBGsNqlzrdC7XQT\nCaldl0ghIRCJQCOJiG/N8J1NgzmrjlOpf1zlmz9OoWEJW0B66VdGewm53WtKKKx32b8hI6xSwjrS\nNmFagE84BH2adrqpnjR5BjWtSMig9rza3UQEGrl894gjjrAbaAE4vgVJfD2q6hyiS5500knDqn/2\n2Wc7v5lG6kVEymjvhAkTrBWio4gOSkfA9xvptstvN0XKWtJLnVhsmB6DEG7fvt1s27ZtmCqQV+4b\npivHjRtnfWCGJajJD5GQmnSE1BACCRFohEVk586dw5pzzDHHdH4Ti8Pf/Za3/IsvvrjjN1L1hnnE\nEfH1YykuOjs555xz3GHsd1ntZYlm24SBlAGzzpLHbwSrCrEwigjTThmEY585c6YN/37mmWeaFStW\nWOjGjBljd2VmZ2b3YdkuAvnnHFNwOHMTNt4N/jZBhX+cHnJMrbATVLUQSIlAIywivKHx0GOKglgi\nZ5xxho1t4Jw4Gdj9wd3HgAdm1dJNPxe3oZuOZbSXYFXEicgrrFBieqxICTvzpikbcsVbe90Fnw8G\nTawQzockqc6kdzsJJ83jpyMv8XUWLlzYCUgWhHzvGQsEAuULRCZYWmwee+wxax1Br9mzZ9vYJH66\nfh2LhPQLadUjBApGoMi1wEWWxV4sQVOHfQIi0qkiICcjQrSH0xOvwxc/fodflp+GY78cYntECfld\nunA97jzf4RDx/rVwvrg4ItSfpb1RertzxFQI3hrdz9Z8VxniPQuIgb9Q5vDqafdKcTFW6HdiyBQZ\nV4N2VLnXjOKEZLn7lEcI1AOB2k7N4FcRDNSxsS7wq1i3bp1NE+wZE4zvfxQiofKWniUK6h9LKeaI\nMOa8fWLNcYK+AdFKpV/R7XWm6zwrOVx76vS9atUqc+CBB9ZJpa664DdCX6R1YiUfH2cF6FYJlgsc\ngKdOnWqj6bL65tJLL+1pAelWZvgauhCldfPmzTZ0/DXXXGOnbfpxf7k63D0d1k2/hYAQqDcCo+BD\n9VZR2pWFAL4BbNde123a07Z7w4YNJtiAzQ6GafPWIT1kJK0Ta68pGq5DyPfff3/ry9HPwRrfkc9/\n/vMmsL5Y4lMGxpAQ2gQRkggBIdBMBGprEWkmnM3SGufD5cuXN0vpLto+99xz1uehS5JaX8rixNpt\nSS99ixVkzpw5dk+YfpIQgMbqgvVlzZo11iG2CAdbvwNFQnw0dCwEmouALCLN7bvcmjMw4BgazK8X\naqbPrVjGAljaysZtaZ0/M1ZXWjamW+ibpO1w0zM+0bjiiivMypUra4EHbYEMvfnmm2bt2rWFWC9E\nQkq7/VSwEOg7ArKI9B3y+lSIOZupjGXLltVHqYyasAx19OjRiQfvjNX0JRuEgk9SvxHSMtjzQSAh\nrCjDGpGUzJTZMO4zdvjFT2rKlCkdPbPWKRKSFTnlEwL1REAWkXr2S9+0YrDDfM+g1eR59g984APm\nkksuMTNmzOgbdv2oiP5J6jdCWhyjISFFWR6KbqMjSVn1EwkpukdUnhCoHgFZRKrvg0o1wMdg4sSJ\n5u67765UjzyVYw3B55qYJgzG/idPuXXIm8ZvhGBuTMd8/etfry2pvPHGG81+++1nzj///NTwioSk\nhkwZhEAjEJBFpBHdVK6SDNxYRfj2/QzKrbW40g899FC7ZJTlo2GhTb7gE1OH6QpfpyTHvfxGGKSx\nnNRlOqZbm5hCYorm2GOPNfPmzeuWtHNNJKQDhQ6EQOsQEBFpXZdmaxAm87ffftvO5WcroZpcLBFl\nVQZOqkmEQZDB2pekUx9+niqOne5YSXzhPMuwcQhtylJsiAXh4em7cHv8tnEsEhJGRL+FQLsQEBFp\nV39mbg2DGQPyrbfeWlmI7rTKF2UFoJzwjsi9Bse0uhaZHiuPT54IVrZlyxa7RLfIesoui+XFixYt\n6hr3JdzWsnVS+UJACPQfARGR/mNe2xp56DNF04QlsGVbAcJTOiwNrtO0FeTJORejW1OXYGMV4Z4j\n5khY6IM6E8KwvvotBIRANgRERLLh1tpcTHXcddddZuPGjZ2Bro6NZQBjOSjOj/0QfDQY7H3xrRL+\n+X4do9MXv/hFs++++yb2teiXbknrceQ3vGpLJCQpgkonBJqPgIhI8/uw8BbkXWJZuEKhAuuiX3hK\np9+OsBARrCHoccABB4RQas7P008/3e6B46wiIiHN6TtpKgSKQEBEpAgUW1hGXQZ7H1qmY9hMra5x\nMtAv7Ahb5pQOfYT0yyrk90WRxxAP9sNhwzyRkCKRVVlCoBkIiIg0o58q0ZKBbv369TZIVtVLXhnk\nWfKJZA2GVQWIUVM6Rfk9QHKa4M+TBHeWYF9wwQXm4osvTpJcaYSAEGgRAu9oUVvUlIIR4E0bnxH8\nMapcTcNbMg6N06dPt/FCnJNmwc0tpTgcXMNOrrTHlyxTOuw0DDmsmiD67chzPG3aNLsXTZ4ylFcI\nCIFmIiCLSDP7ra9aOyJA5NJrr712xMBaljJYQb761a+a22+/3Vx33XWNiZGRFo+oKZ1ejrBYq3bf\nfffGOqmGMcLPBcIbdggOp9NvISAE2oeAiEj7+rSUFjFY4p9BCPG5c+faEN1lWiYI2059+++/v7XK\nhK0KpTSyRoWGHWFRzZ/SYSpjyZIlw87VSP1MqrRpqikTAMokBAYUARGRAe34rM3GOrJgwQLz/PPP\nW0LCioeiSAJkZ/Xq1TbIFfotXLjQHH/88VlVbV0+N6Xz29/+1hxzzDGNjR0S1zEzZ860EWKbEh02\nrh06LwSEQDoEtOldOrwGPjVv5Q899JANzb19+3a7fJQBhCiZOGamFcgH1g/KwFfikUcesQSEFRQi\nIcPRBHs+7373uw0+FQiWk7bIhAkTDPeURAgIgcFCQBaRwervwlsLkWBlzaOPPmoee+wxM3r0aDud\ncvTRR9u62NnXF3aI3bVrl3nllVfMiy++aEOTM6ieeuqp5oQTTijMuuLX2bZjSB8B55YuXdqqpuGA\nu3jx4saFqm9VJ6gxQqACBLRqpgLQ21QlfiLseut2vuUNHbKxY8cOSziYxvFl7NixZsyYMeaUU04x\nn/vc51rl4+C3s8xjiBzWg7YJFjGJEBACg4eAiMjg9XmpLW7TktJSgVLhIxDAWRXfI4kQEAKDhYB8\nRAarv9VaIVBbBHB6zuJnVNsGSTEhIAQSISAikggmJRICQkAICAEhIATKQEBEpAxUVaYQEAKpEZA1\nJDVkyiAEWoGAiEgrulGNEALNR4Coqm5ZcvNboxYIASGQFAERkaRIKZ0QqAkChHZXvI2adIbUEAJC\nIDcCIiK5IVQBQqC/CIwbN85s27atv5X2oTZWzBxyyCF9qElVCAEhUCcERETq1BvSRQgkQIAN8Vat\nWpUgZbOSEOSOGDMSISAEBgsBEZHB6m+1tgUIEEQOy0GbwrvTLUTaPfLII1vQQ2qCEBACaRAQEUmD\nltIKgZogMGnSJLNu3bqaaJNfDUjVzp07DQHxJEJACAwWAiIig9Xfam1LEJg8ebLdeLAlzTGbNm0y\n06dPb0tz1A4hIARSICAikgIsJRUCdUGAnYmxIrQl9saiRYsM5EoiBITA4CEgIjJ4fa4WtwQBLAhf\n+cpXGt+a7373u3ZaBnIlEQJCYPAQGDUUyOA1Wy0WAs1HAGvIhz70IfODH/zA4MDaVDn99NPN0Ucf\nbS699NKmNkF6CwEhkAMBWURygKesQqBKBNgkbuLEiebuu++uUo1cdWMNIX7I+eefn6scZRYCQqC5\nCMgi0ty+k+ZCwPqJEFeE8OgQk6aJrCFN6zHpKwSKR0AWkeIxVYlCoG8IsNz12muvbeS0xvLly80b\nb7wha0jf7hZVJATqiYAsIvXsF2klBBIj8Ktf/cpgFbnuuuvMeeedlzhflQmdf8uaNWusn0uVuqhu\nISAEqkVARKRa/FW7ECgEAXwtpk6dap566qlGBAU77rjjzLHHHmvmzZtXSPtViBAQAs1FQFMzze07\naS4EOgiwembu3LnmzDPPNFhI6ixXXHGFVU8kpM69JN2EQP8QkEWkf1irJiFQOgIM8i+//LJZu3Zt\nLZf0ot/69evNxo0ba6lf6R2kCoSAEBiBgCwiIyDRCSHQXARuvPFGc9hhh5kpU6bUzjICCVm5cqV5\n4IEHREKae4tJcyFQOAIiIoVDqgKFQLUI+GSkDjv0MlXkLDVN8WGptgdVuxAYLARERAarv9XaAUEA\nMoIzKE6hGzZsqKzVrI7BOuOmi7S7bmVdoYqFQG0REBGpbddIMSGQDwGcQe+9915z7rnnmpkzZ/Z9\nqoY4ITjRQoiwhDQ5DH2+nlBuISAEuiEgItINHV0TAg1HgI3k2IsGIdbIzTffXHqLWEqMJYYddYkT\notUxpUOuCoRAoxHQqplGd5+UFwLJEYAgLFiwwEYz/exnP2sjmhZppXj44YfNihUr7N4xTQqulhxB\npRQCQqAMBEREykBVZQqBGiMAIbnjjjvMsmXLzIwZM8wpp5xiJk2alGnqhLIef/xxc/vtt5vRo0eb\nOXPmmE9+8pOZyqoxZFJNCAiBEhEQESkRXBUtBOqMAI6kTz75pHnkkUfMqlWrrC8HS3/HjBljxo8f\nb3bbbbcR6rNT7q5du8yWLVtsnkMOOcRMmzbNnHHGGY2I6DqiQTohBIRA5QiIiFTeBVJACNQDAawb\nW7dutUTjmWeeiVRq7NixHaJy4IEHNnLH38iG6aQQEAKVISAiUhn0qlgICAEhIASEgBDQqhndA0JA\nCAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEhIASEgBAQApUhICJSGfSqWAgIASEgBISA\nEBAR0T0gBISAEBACQkAIVIaAiEhl0KtiISAEhIAQEAJCQERE94AQEAJCQAgIASFQGQIiIpVBr4qF\ngBAQAkJACAgBERHdA0JACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEhIASEgBAQApUh\nICJSGfSqWAgIASEgBISAEBAR0T0gBISAEBACQkAIVIaAiEhl0KtiISAEhIAQEAJC4P8Di13nEo+f\nAH0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename='sentiment_network.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'': 0,\n",
       " 'inhabitants': 1,\n",
       " 'goku': 2,\n",
       " 'stunts': 3,\n",
       " 'catepillar': 4,\n",
       " 'kristensen': 5,\n",
       " 'goddess': 7,\n",
       " 'offing': 49797,\n",
       " 'distroy': 8,\n",
       " 'unexplainably': 9,\n",
       " 'concoctions': 10,\n",
       " 'petite': 11,\n",
       " 'paramilitary': 24759,\n",
       " 'scribe': 12,\n",
       " 'stevson': 13,\n",
       " 'senegal': 6,\n",
       " 'sctv': 14,\n",
       " 'soundscape': 15,\n",
       " 'rana': 16,\n",
       " 'immortalizer': 18,\n",
       " 'rene': 67354,\n",
       " 'eko': 23,\n",
       " 'planning': 20,\n",
       " 'akiva': 21,\n",
       " 'plod': 22,\n",
       " 'orderly': 24,\n",
       " 'zeleznice': 25,\n",
       " 'critize': 29,\n",
       " 'baguettes': 25649,\n",
       " 'jefferies': 30,\n",
       " 'uncertainties': 61695,\n",
       " 'mountainbillies': 31,\n",
       " 'steinbichler': 32,\n",
       " 'vowel': 33,\n",
       " 'rafe': 34,\n",
       " 'donig': 68719,\n",
       " 'tulipe': 36,\n",
       " 'clot': 37,\n",
       " 'hack': 12526,\n",
       " 'distended': 38,\n",
       " 'cornered': 37116,\n",
       " 'impatiently': 40,\n",
       " 'batrice': 12525,\n",
       " 'unfortuntly': 41,\n",
       " 'lung': 42,\n",
       " 'scapegoats': 43,\n",
       " 'pscychosexual': 45,\n",
       " 'outbid': 46,\n",
       " 'obit': 47,\n",
       " 'sideshows': 48,\n",
       " 'jugde': 49,\n",
       " 'kevloun': 51,\n",
       " 'quartier': 53,\n",
       " 'harp': 61948,\n",
       " 'unravelling': 54,\n",
       " 'antiques': 56,\n",
       " 'strutts': 57,\n",
       " 'tilts': 58,\n",
       " 'disconcert': 59,\n",
       " 'dossiers': 60,\n",
       " 'sorriest': 61,\n",
       " 'craftsman': 49412,\n",
       " 'blart': 62,\n",
       " 'dependence': 37120,\n",
       " 'sated': 61698,\n",
       " 'iberia': 63,\n",
       " 'sagan': 72,\n",
       " 'frmann': 65,\n",
       " 'daniell': 66,\n",
       " 'rays': 67,\n",
       " 'pried': 68,\n",
       " 'khoobsurat': 69,\n",
       " 'leavitt': 70,\n",
       " 'caiano': 71,\n",
       " 'attractiveness': 73,\n",
       " 'kitaparaporn': 74,\n",
       " 'hamilton': 75,\n",
       " 'massages': 76,\n",
       " 'horgan': 78,\n",
       " 'chemist': 79,\n",
       " 'audrey': 80,\n",
       " 'yeow': 55655,\n",
       " 'jana': 81,\n",
       " 'dutch': 82,\n",
       " 'pinchot': 24773,\n",
       " 'override': 83,\n",
       " 'dwervick': 63223,\n",
       " 'spasms': 84,\n",
       " 'resumed': 85,\n",
       " 'tamale': 66259,\n",
       " 'calibanian': 49636,\n",
       " 'stinson': 86,\n",
       " 'widows': 87,\n",
       " 'stonewall': 88,\n",
       " 'palatial': 89,\n",
       " 'neuman': 90,\n",
       " 'abandon': 91,\n",
       " 'lemmings': 65314,\n",
       " 'anglophile': 92,\n",
       " 'ertha': 61706,\n",
       " 'chevette': 94,\n",
       " 'unscary': 95,\n",
       " 'spoilerific': 97,\n",
       " 'neworleans': 67639,\n",
       " 'metamorphose': 17,\n",
       " 'brigand': 99,\n",
       " 'cheating': 41603,\n",
       " 'clued': 101,\n",
       " 'dermatonecrotic': 102,\n",
       " 'grady': 103,\n",
       " 'mulligan': 104,\n",
       " 'ol': 105,\n",
       " 'incubation': 107,\n",
       " 'plaintiffs': 110,\n",
       " 'snden': 109,\n",
       " 'fk': 111,\n",
       " 'deply': 112,\n",
       " 'franchot': 113,\n",
       " 'henstridge': 19,\n",
       " 'cyhper': 114,\n",
       " 'verbose': 26,\n",
       " 'mazovia': 116,\n",
       " 'elizabeth': 117,\n",
       " 'palestine': 118,\n",
       " 'robby': 119,\n",
       " 'wongo': 120,\n",
       " 'moshing': 121,\n",
       " 'mstified': 12543,\n",
       " 'eeeee': 122,\n",
       " 'doltish': 123,\n",
       " 'bree': 124,\n",
       " 'postponed': 125,\n",
       " 'debacles': 127,\n",
       " 'amplify': 27,\n",
       " 'kamm': 128,\n",
       " 'phantom': 18893,\n",
       " 'boylen': 136,\n",
       " 'rolando': 131,\n",
       " 'premises': 133,\n",
       " 'bruck': 134,\n",
       " 'loosely': 135,\n",
       " 'wodehousian': 139,\n",
       " 'onishi': 70389,\n",
       " 'encapsuling': 140,\n",
       " 'partly': 141,\n",
       " 'stadling': 144,\n",
       " 'calms': 143,\n",
       " 'darkie': 148,\n",
       " 'wheeling': 147,\n",
       " 'ursla': 15875,\n",
       " 'subsidized': 49420,\n",
       " 'mckellar': 149,\n",
       " 'ooookkkk': 151,\n",
       " 'milky': 152,\n",
       " 'unfolded': 153,\n",
       " 'degrades': 154,\n",
       " 'authenticating': 155,\n",
       " 'writeup': 12548,\n",
       " 'rotheroe': 156,\n",
       " 'beart': 157,\n",
       " 'intoxicants': 160,\n",
       " 'grispin': 159,\n",
       " 'cannes': 61718,\n",
       " 'antithetical': 70398,\n",
       " 'nnette': 161,\n",
       " 'tsukamoto': 163,\n",
       " 'antwones': 44205,\n",
       " 'stows': 164,\n",
       " 'suddenness': 165,\n",
       " 'vol': 61720,\n",
       " 'waqt': 166,\n",
       " 'camazotz': 168,\n",
       " 'paps': 55042,\n",
       " 'shakher': 170,\n",
       " 'terminate': 63868,\n",
       " 'kotex': 56419,\n",
       " 'delinquency': 171,\n",
       " 'bromwell': 25214,\n",
       " 'insecticide': 173,\n",
       " 'charlton': 174,\n",
       " 'nakada': 177,\n",
       " 'titted': 24791,\n",
       " 'urbane': 178,\n",
       " 'depicted': 54491,\n",
       " 'sadomasochistic': 179,\n",
       " 'hyping': 181,\n",
       " 'yr': 182,\n",
       " 'hebert': 183,\n",
       " 'waxwork': 12990,\n",
       " 'deathrow': 185,\n",
       " 'nourishes': 24792,\n",
       " 'unmediated': 187,\n",
       " 'tamper': 37143,\n",
       " 'soad': 190,\n",
       " 'alphabet': 189,\n",
       " 'donen': 191,\n",
       " 'lord': 192,\n",
       " 'recess': 193,\n",
       " 'watchably': 61023,\n",
       " 'handsome': 194,\n",
       " 'vignettes': 196,\n",
       " 'pairings': 198,\n",
       " 'uselful': 199,\n",
       " 'sanders': 200,\n",
       " 'outbursts': 72891,\n",
       " 'nots': 201,\n",
       " 'hatsumomo': 202,\n",
       " 'actioned': 18292,\n",
       " 'krimi': 24797,\n",
       " 'appleby': 203,\n",
       " 'tampax': 204,\n",
       " 'sprinkling': 205,\n",
       " 'defacing': 206,\n",
       " 'lofty': 207,\n",
       " 'verger': 213,\n",
       " 'tablespoons': 211,\n",
       " 'bernhard': 212,\n",
       " 'goosebump': 64565,\n",
       " 'acumen': 214,\n",
       " 'percentages': 215,\n",
       " 'wendingo': 216,\n",
       " 'resonating': 217,\n",
       " 'vntoarea': 218,\n",
       " 'redundancies': 219,\n",
       " 'strictly': 57081,\n",
       " 'pitied': 221,\n",
       " 'belying': 222,\n",
       " 'michelangelo': 53153,\n",
       " 'gleefulness': 223,\n",
       " 'environmentalist': 24803,\n",
       " 'gitane': 226,\n",
       " 'corrected': 66547,\n",
       " 'journalist': 227,\n",
       " 'focusing': 228,\n",
       " 'plethora': 229,\n",
       " 'his': 39,\n",
       " 'citizen': 230,\n",
       " 'south': 55579,\n",
       " 'clunkers': 232,\n",
       " 'pendulous': 55991,\n",
       " 'mounds': 24805,\n",
       " 'deplorable': 233,\n",
       " 'forgive': 234,\n",
       " 'proplems': 235,\n",
       " 'bankers': 237,\n",
       " 'aqua': 238,\n",
       " 'donated': 239,\n",
       " 'disbelieving': 240,\n",
       " 'acomplication': 241,\n",
       " 'contrasted': 243,\n",
       " 'muzzle': 44,\n",
       " 'amphibians': 72141,\n",
       " 'springs': 246,\n",
       " 'reformatted': 49443,\n",
       " 'toolbox': 247,\n",
       " 'contacting': 248,\n",
       " 'washrooms': 250,\n",
       " 'raving': 251,\n",
       " 'dynamism': 252,\n",
       " 'mae': 253,\n",
       " 'disharmony': 255,\n",
       " 'molls': 72979,\n",
       " 'dewaere': 12569,\n",
       " 'untutored': 256,\n",
       " 'icarus': 257,\n",
       " 'taint': 258,\n",
       " 'kargil': 259,\n",
       " 'captain': 260,\n",
       " 'paucity': 261,\n",
       " 'fits': 262,\n",
       " 'tumbles': 263,\n",
       " 'amer': 264,\n",
       " 'bueller': 265,\n",
       " 'cleansed': 267,\n",
       " 'shara': 269,\n",
       " 'humma': 270,\n",
       " 'outa': 272,\n",
       " 'piglets': 273,\n",
       " 'gombell': 274,\n",
       " 'supermen': 275,\n",
       " 'superlow': 276,\n",
       " 'kubanskie': 280,\n",
       " 'goode': 278,\n",
       " 'disorganised': 45570,\n",
       " 'zenith': 281,\n",
       " 'ananda': 282,\n",
       " 'matlin': 284,\n",
       " 'particolare': 50,\n",
       " 'presumptuous': 286,\n",
       " 'rerun': 287,\n",
       " 'toyko': 288,\n",
       " 'bilb': 291,\n",
       " 'sundry': 290,\n",
       " 'fugly': 292,\n",
       " 'orchestrating': 293,\n",
       " 'prosaically': 294,\n",
       " 'moveis': 296,\n",
       " 'conelly': 297,\n",
       " 'estrange': 298,\n",
       " 'elfriede': 49455,\n",
       " 'masterful': 52,\n",
       " 'seasonings': 300,\n",
       " 'quincey': 303,\n",
       " 'frowning': 49456,\n",
       " 'painkillers': 53444,\n",
       " 'high': 25515,\n",
       " 'flesh': 304,\n",
       " 'tootsie': 305,\n",
       " 'ai': 306,\n",
       " 'tenma': 307,\n",
       " 'duguay': 71257,\n",
       " 'appropriations': 308,\n",
       " 'ides': 310,\n",
       " 'rui': 61734,\n",
       " 'surrogacy': 311,\n",
       " 'pungent': 312,\n",
       " 'damaso': 314,\n",
       " 'authoritarian': 61736,\n",
       " 'caribou': 315,\n",
       " 'ro': 318,\n",
       " 'supplying': 317,\n",
       " 'yuy': 319,\n",
       " 'debuted': 321,\n",
       " 'mounts': 323,\n",
       " 'interpolated': 324,\n",
       " 'aetv': 325,\n",
       " 'plummer': 326,\n",
       " 'asunder': 331,\n",
       " 'airfix': 333,\n",
       " 'dubiel': 329,\n",
       " 'clavichord': 330,\n",
       " 'crafty': 50465,\n",
       " 'sublety': 332,\n",
       " 'stoltzfus': 334,\n",
       " 'ruth': 335,\n",
       " 'fluorescent': 336,\n",
       " 'improves': 337,\n",
       " 'russells': 339,\n",
       " 'tick': 43838,\n",
       " 'zsa': 341,\n",
       " 'macs': 343,\n",
       " 'jlb': 345,\n",
       " 'locus': 348,\n",
       " 'mislead': 349,\n",
       " 'merly': 49461,\n",
       " 'corey': 350,\n",
       " 'blundered': 351,\n",
       " 'humourless': 3568,\n",
       " 'disorganized': 353,\n",
       " 'discuss': 354,\n",
       " 'sharifi': 45391,\n",
       " 'tieing': 356,\n",
       " 'kats': 34784,\n",
       " 'bbc': 360,\n",
       " 'pranked': 362,\n",
       " 'superman': 363,\n",
       " 'holroyd': 9223,\n",
       " 'aggravated': 364,\n",
       " 'rifleman': 365,\n",
       " 'yvone': 366,\n",
       " 'vaugier': 24820,\n",
       " 'radiant': 367,\n",
       " 'galico': 368,\n",
       " 'debris': 369,\n",
       " 'btw': 371,\n",
       " 'denote': 24822,\n",
       " 'havnt': 372,\n",
       " 'francen': 373,\n",
       " 'chattered': 374,\n",
       " 'scathed': 375,\n",
       " 'pic': 376,\n",
       " 'ceremonies': 377,\n",
       " 'everyplace': 65309,\n",
       " 'betsy': 379,\n",
       " 'finster': 37176,\n",
       " 'meercat': 381,\n",
       " 'noirs': 382,\n",
       " 'grunts': 383,\n",
       " 'tribulations': 385,\n",
       " 'apparatus': 47673,\n",
       " 'martnez': 25825,\n",
       " 'telethons': 24825,\n",
       " 'talladega': 387,\n",
       " 'alloimono': 390,\n",
       " 'situations': 64,\n",
       " 'scrutinising': 391,\n",
       " 'geta': 392,\n",
       " 'beltrami': 393,\n",
       " 'pvc': 394,\n",
       " 'horse': 395,\n",
       " 'tiburon': 396,\n",
       " 'huitime': 397,\n",
       " 'ripple': 398,\n",
       " 'exceed': 61748,\n",
       " 'loitering': 399,\n",
       " 'forensics': 400,\n",
       " 'nearly': 401,\n",
       " 'ellington': 403,\n",
       " 'uzi': 404,\n",
       " 'rung': 408,\n",
       " 'pillaged': 24829,\n",
       " 'gao': 409,\n",
       " 'licitates': 410,\n",
       " 'protocol': 411,\n",
       " 'smirker': 412,\n",
       " 'torin': 413,\n",
       " 'vizier': 31853,\n",
       " 'newlywed': 414,\n",
       " 'dismay': 416,\n",
       " 'moonwalks': 418,\n",
       " 'skyler': 417,\n",
       " 'invested': 18455,\n",
       " 'grifter': 421,\n",
       " 'undersold': 422,\n",
       " 'chearator': 423,\n",
       " 'marino': 424,\n",
       " 'scala': 425,\n",
       " 'conditioner': 426,\n",
       " 'lamarre': 428,\n",
       " 'figueroa': 429,\n",
       " 'mcinnerny': 61753,\n",
       " 'allllllll': 431,\n",
       " 'slide': 432,\n",
       " 'lateness': 433,\n",
       " 'selbst': 434,\n",
       " 'dramatizing': 436,\n",
       " 'doable': 438,\n",
       " 'hollywoodize': 27207,\n",
       " 'alexanderplatz': 440,\n",
       " 'wholesome': 45745,\n",
       " 'pandemonium': 441,\n",
       " 'earth': 443,\n",
       " 'mounties': 444,\n",
       " 'seeker': 445,\n",
       " 'cheat': 446,\n",
       " 'outbreaks': 447,\n",
       " 'savagely': 61759,\n",
       " 'snowstorm': 448,\n",
       " 'baur': 449,\n",
       " 'schedules': 450,\n",
       " 'bathetic': 451,\n",
       " 'johnathon': 453,\n",
       " 'origonal': 57843,\n",
       " 'rosanne': 454,\n",
       " 'cauldrons': 456,\n",
       " 'forrest': 457,\n",
       " 'poky': 458,\n",
       " 'aristos': 54856,\n",
       " 'womanness': 460,\n",
       " 'spender': 461,\n",
       " 'pagliai': 37108,\n",
       " 'rational': 463,\n",
       " 'terrell': 464,\n",
       " 'affronts': 472,\n",
       " 'concise': 49476,\n",
       " 'mathew': 468,\n",
       " 'narnia': 469,\n",
       " 'naseeruddin': 470,\n",
       " 'bucks': 471,\n",
       " 'proceeds': 69809,\n",
       " 'topple': 473,\n",
       " 'degree': 474,\n",
       " 'passionately': 476,\n",
       " 'defeats': 477,\n",
       " 'gras': 49477,\n",
       " 'sources': 479,\n",
       " 'pflug': 49976,\n",
       " 'botticelli': 480,\n",
       " 'fwd': 486,\n",
       " 'waiving': 483,\n",
       " 'gunnar': 484,\n",
       " 'stiffler': 485,\n",
       " 'unwise': 49480,\n",
       " 'kawajiri': 487,\n",
       " 'sistahs': 489,\n",
       " 'swallowed': 30511,\n",
       " 'soulhunter': 490,\n",
       " 'belies': 491,\n",
       " 'wrathful': 492,\n",
       " 'badmouth': 16696,\n",
       " 'floradora': 61766,\n",
       " 'unforgivably': 497,\n",
       " 'weirdy': 496,\n",
       " 'violation': 63309,\n",
       " 'chepart': 498,\n",
       " 'departmentthe': 500,\n",
       " 'posehn': 49483,\n",
       " 'peyote': 37188,\n",
       " 'psychiatrically': 24846,\n",
       " 'marionettes': 503,\n",
       " 'blatty': 502,\n",
       " 'atop': 504,\n",
       " 'debases': 25135,\n",
       " 'henze': 24845,\n",
       " 'unrooted': 510,\n",
       " 'cloudscape': 508,\n",
       " 'resignedly': 509,\n",
       " 'begin': 49917,\n",
       " 'hitlerian': 512,\n",
       " 'reedus': 517,\n",
       " 'crewed': 514,\n",
       " 'bedeviled': 515,\n",
       " 'unfurnished': 516,\n",
       " 'herrmann': 12602,\n",
       " 'circumstances': 518,\n",
       " 'grasped': 519,\n",
       " 'fn': 521,\n",
       " 'beefed': 22200,\n",
       " 'scwatch': 64018,\n",
       " 'dishwashers': 522,\n",
       " 'roadie': 523,\n",
       " 'ruthlessness': 524,\n",
       " 'migrant': 12605,\n",
       " 'refrains': 525,\n",
       " 'preponderance': 44377,\n",
       " 'lampooning': 526,\n",
       " 'richart': 528,\n",
       " 'gwenneth': 530,\n",
       " 'enmity': 531,\n",
       " 'vortex': 61772,\n",
       " 'assess': 532,\n",
       " 'manufacturer': 533,\n",
       " 'bullosa': 534,\n",
       " 'citizenship': 61774,\n",
       " 'chekov': 537,\n",
       " 'hogan': 536,\n",
       " 'blithe': 538,\n",
       " 'aredavid': 542,\n",
       " 'drillings': 540,\n",
       " 'revolvers': 541,\n",
       " 'boyfriendhe': 545,\n",
       " 'achcha': 544,\n",
       " 'wallow': 546,\n",
       " 'toga': 547,\n",
       " 'bosnians': 551,\n",
       " 'going': 550,\n",
       " 'willy': 552,\n",
       " 'fim': 554,\n",
       " 'forbidding': 555,\n",
       " 'delete': 56779,\n",
       " 'rationalised': 557,\n",
       " 'shimomo': 558,\n",
       " 'opposition': 559,\n",
       " 'landis': 560,\n",
       " 'minded': 561,\n",
       " 'arghhhhh': 564,\n",
       " 'trialat': 566,\n",
       " 'protected': 567,\n",
       " 'negras': 568,\n",
       " 'tracker': 571,\n",
       " 'muti': 570,\n",
       " 'dinky': 49489,\n",
       " 'shawl': 572,\n",
       " 'differentiates': 573,\n",
       " 'dipaolo': 61779,\n",
       " 'sweetheart': 574,\n",
       " 'manmohan': 576,\n",
       " 'enamored': 66265,\n",
       " 'trevethyn': 577,\n",
       " 'brain': 578,\n",
       " 'incomprehensibly': 579,\n",
       " 'pasadena': 581,\n",
       " 'bruton': 59142,\n",
       " 'shtick': 582,\n",
       " 'ute': 583,\n",
       " 'viggo': 584,\n",
       " 'relevent': 589,\n",
       " 'cites': 587,\n",
       " 'greenaways': 61781,\n",
       " 'minidress': 590,\n",
       " 'philosopher': 591,\n",
       " 'mahattan': 593,\n",
       " 'moden': 594,\n",
       " 'compiling': 595,\n",
       " 'unimaginative': 598,\n",
       " 'rogues': 597,\n",
       " 'subpaar': 599,\n",
       " 'darkly': 601,\n",
       " 'saturate': 602,\n",
       " 'fledgling': 603,\n",
       " 'breaths': 604,\n",
       " 'sceam': 37206,\n",
       " 'empathized': 58870,\n",
       " 'aszombi': 606,\n",
       " 'incalculable': 608,\n",
       " 'formations': 28596,\n",
       " 'hampden': 619,\n",
       " 'rawail': 612,\n",
       " 'forbid': 613,\n",
       " 'holiness': 617,\n",
       " 'unessential': 618,\n",
       " 'reputedly': 616,\n",
       " 'wage': 63181,\n",
       " 'kewpie': 24860,\n",
       " 'asylum': 620,\n",
       " 'bolye': 621,\n",
       " 'celticism': 63189,\n",
       " 'strangers': 622,\n",
       " 'rantzen': 623,\n",
       " 'farrellys': 624,\n",
       " 'marathon': 93,\n",
       " 'cantinflas': 626,\n",
       " 'disproportionately': 12617,\n",
       " 'bared': 67212,\n",
       " 'enshrined': 627,\n",
       " 'expetations': 629,\n",
       " 'replaying': 630,\n",
       " 'topless': 636,\n",
       " 'bukater': 632,\n",
       " 'overpaid': 633,\n",
       " 'exhude': 634,\n",
       " 'nitwits': 638,\n",
       " 'tsst': 51554,\n",
       " 'sufferings': 637,\n",
       " 'ci': 24693,\n",
       " 'eponymously': 96,\n",
       " 'ferdy': 644,\n",
       " 'danira': 641,\n",
       " 'unrelenting': 642,\n",
       " 'disabling': 643,\n",
       " 'gerard': 645,\n",
       " 'drewitt': 646,\n",
       " 'lamping': 650,\n",
       " 'demy': 652,\n",
       " 'wicklow': 37214,\n",
       " 'relinquish': 651,\n",
       " 'feminized': 64196,\n",
       " 'drink': 653,\n",
       " 'chamberlin': 654,\n",
       " 'floodwaters': 657,\n",
       " 'searing': 658,\n",
       " 'isral': 659,\n",
       " 'ling': 660,\n",
       " 'grossness': 661,\n",
       " 'sassier': 24865,\n",
       " 'pickier': 662,\n",
       " 'pax': 663,\n",
       " 'fleashens': 98,\n",
       " 'wierd': 664,\n",
       " 'tereasa': 665,\n",
       " 'smog': 666,\n",
       " 'girotti': 667,\n",
       " 'zooey': 64814,\n",
       " 'spat': 668,\n",
       " 'sera': 669,\n",
       " 'misbehaving': 671,\n",
       " 'scouts': 672,\n",
       " 'refreshments': 673,\n",
       " 'itll': 39668,\n",
       " 'toyomichi': 676,\n",
       " 'politeness': 100,\n",
       " 'bits': 677,\n",
       " 'psychotics': 678,\n",
       " 'optimistic': 61796,\n",
       " 'barzell': 679,\n",
       " 'colt': 680,\n",
       " 'anita': 49501,\n",
       " 'shivering': 681,\n",
       " 'utah': 59297,\n",
       " 'scrivener': 686,\n",
       " 'predicable': 687,\n",
       " 'dryer': 684,\n",
       " 'reissues': 685,\n",
       " 'sexier': 26115,\n",
       " 'spellbind': 691,\n",
       " 'marmalade': 689,\n",
       " 'seems': 690,\n",
       " 'wyke': 37223,\n",
       " 'innovator': 693,\n",
       " 'inthused': 695,\n",
       " 'scatman': 6309,\n",
       " 'contestants': 696,\n",
       " 'bertolucci': 106,\n",
       " 'serviced': 699,\n",
       " 'nozires': 700,\n",
       " 'ins': 701,\n",
       " 'mutilating': 702,\n",
       " 'dupes': 703,\n",
       " 'launius': 704,\n",
       " 'widescreen': 705,\n",
       " 'joo': 706,\n",
       " 'discretionary': 707,\n",
       " 'enlivens': 708,\n",
       " 'manos': 55596,\n",
       " 'bushes': 709,\n",
       " 'header': 711,\n",
       " 'activist': 712,\n",
       " 'gethsemane': 713,\n",
       " 'phoenixs': 714,\n",
       " 'wreathed': 715,\n",
       " 'oldboy': 108,\n",
       " 'electrifyingly': 717,\n",
       " 'inseparability': 24874,\n",
       " 'ghidora': 719,\n",
       " 'binder': 720,\n",
       " 'tibet': 51530,\n",
       " 'doddsville': 723,\n",
       " 'sugar': 722,\n",
       " 'porkys': 724,\n",
       " 'hopefully': 37226,\n",
       " 'scattershot': 725,\n",
       " 'refunded': 726,\n",
       " 'rudely': 727,\n",
       " 'enacts': 67435,\n",
       " 'insteadit': 728,\n",
       " 'nightwatch': 61803,\n",
       " 'eurotrash': 730,\n",
       " 'radioraptus': 731,\n",
       " 'unreservedly': 73710,\n",
       " 'vall': 49508,\n",
       " 'boogeman': 733,\n",
       " 'flunked': 24880,\n",
       " 'weighs': 734,\n",
       " 'glorfindel': 738,\n",
       " 'hypothermia': 737,\n",
       " 'misled': 64919,\n",
       " 'toiletries': 71501,\n",
       " 'birthdays': 739,\n",
       " 'attentive': 740,\n",
       " 'mallepa': 741,\n",
       " 'manoy': 743,\n",
       " 'bombshells': 744,\n",
       " 'glorifying': 115,\n",
       " 'southron': 747,\n",
       " 'destruction': 748,\n",
       " 'manhole': 750,\n",
       " 'elainor': 751,\n",
       " 'bounder': 13003,\n",
       " 'bowersock': 752,\n",
       " 'lowly': 753,\n",
       " 'wfst': 754,\n",
       " 'limousines': 755,\n",
       " 'skolimowski': 756,\n",
       " 'saban': 757,\n",
       " 'malaysia': 759,\n",
       " 'cyd': 761,\n",
       " 'bonecrushing': 763,\n",
       " 'merest': 765,\n",
       " 'janina': 766,\n",
       " 'chemotrodes': 767,\n",
       " 'trials': 768,\n",
       " 'whilhelm': 770,\n",
       " 'asthmatic': 771,\n",
       " 'missteps': 773,\n",
       " 'melyvn': 24885,\n",
       " 'embittered': 774,\n",
       " 'profit': 37234,\n",
       " 'seeming': 776,\n",
       " 'miscalculate': 777,\n",
       " 'recommeded': 778,\n",
       " 'mankin': 37235,\n",
       " 'schoolwork': 779,\n",
       " 'coy': 780,\n",
       " 'mcconaughey': 781,\n",
       " 'waver': 783,\n",
       " 'unwatchably': 786,\n",
       " 'saggy': 787,\n",
       " 'breakup': 790,\n",
       " 'pufnstuf': 37237,\n",
       " 'superstars': 792,\n",
       " 'replay': 793,\n",
       " 'aggravates': 794,\n",
       " 'urging': 796,\n",
       " 'snidely': 797,\n",
       " 'aleksandar': 798,\n",
       " 'hildy': 799,\n",
       " 'kazuhiro': 800,\n",
       " 'slayer': 801,\n",
       " 'tangy': 802,\n",
       " 'horne': 804,\n",
       " 'masayuki': 805,\n",
       " 'molden': 806,\n",
       " 'unravel': 807,\n",
       " 'goodtime': 808,\n",
       " 'rowboat': 811,\n",
       " 'dekhiye': 815,\n",
       " 'datedness': 813,\n",
       " 'astrotheology': 814,\n",
       " 'suriani': 59610,\n",
       " 'hostilities': 819,\n",
       " 'wipes': 818,\n",
       " 'sentimentalising': 820,\n",
       " 'documentary': 821,\n",
       " 'virtue': 823,\n",
       " 'unreasonably': 824,\n",
       " 'cei': 826,\n",
       " 'hobbled': 37240,\n",
       " 'unglamorised': 827,\n",
       " 'balky': 828,\n",
       " 'complementary': 829,\n",
       " 'paychecks': 830,\n",
       " 'tughlaq': 45551,\n",
       " 'functionality': 836,\n",
       " 'ily': 833,\n",
       " 'prc': 834,\n",
       " 'ennobling': 835,\n",
       " 'dissociated': 837,\n",
       " 'elk': 838,\n",
       " 'throbbing': 839,\n",
       " 'tempe': 840,\n",
       " 'linoleum': 841,\n",
       " 'bottacin': 843,\n",
       " 'hipper': 844,\n",
       " 'barging': 846,\n",
       " 'untie': 847,\n",
       " 'sacchetti': 848,\n",
       " 'gnat': 849,\n",
       " 'roedel': 850,\n",
       " 'performs': 852,\n",
       " 'nanavati': 856,\n",
       " 'migrs': 854,\n",
       " 'teachs': 855,\n",
       " 'gunslinger': 126,\n",
       " 'fresco': 857,\n",
       " 'davison': 858,\n",
       " 'jet': 59446,\n",
       " 'burglar': 860,\n",
       " 'jerker': 69267,\n",
       " 'masue': 861,\n",
       " 'dickory': 862,\n",
       " 'muggy': 46634,\n",
       " 'grills': 863,\n",
       " 'figment': 28693,\n",
       " 'monogamistic': 49527,\n",
       " 'appelagate': 864,\n",
       " 'linkage': 865,\n",
       " 'loesser': 867,\n",
       " 'patties': 868,\n",
       " 'prudent': 869,\n",
       " 'mallorquins': 870,\n",
       " 'nativetex': 871,\n",
       " 'suprise': 872,\n",
       " 'quill': 874,\n",
       " 'angsty': 71451,\n",
       " 'speeded': 875,\n",
       " 'farscape': 876,\n",
       " 'herman': 129,\n",
       " 'saddening': 877,\n",
       " 'centuries': 878,\n",
       " 'mos': 879,\n",
       " 'neccessarily': 881,\n",
       " 'tankers': 883,\n",
       " 'latte': 884,\n",
       " 'faracy': 886,\n",
       " 'stilts': 24897,\n",
       " 'synthetically': 887,\n",
       " 'thoughtless': 888,\n",
       " 'authoring': 62813,\n",
       " 'rake': 889,\n",
       " 'ropes': 890,\n",
       " 'whitewashed': 892,\n",
       " 'donal': 893,\n",
       " 'arching': 4910,\n",
       " 'cockamamie': 899,\n",
       " 'lifeless': 895,\n",
       " 'perfidy': 896,\n",
       " 'teresa': 897,\n",
       " 'bulldog': 898,\n",
       " 'vingh': 73726,\n",
       " 'evacuees': 65858,\n",
       " 'rasberries': 900,\n",
       " 'chiseling': 903,\n",
       " 'clampets': 905,\n",
       " 'grecianized': 138,\n",
       " 'smaller': 904,\n",
       " 'kluznick': 62184,\n",
       " 'alerts': 906,\n",
       " 'aaaahhhhhhh': 909,\n",
       " 'wellingtonian': 908,\n",
       " 'dither': 910,\n",
       " 'incertitude': 911,\n",
       " 'florentine': 912,\n",
       " 'imperioli': 913,\n",
       " 'licking': 914,\n",
       " 'disparagement': 915,\n",
       " 'artfully': 916,\n",
       " 'feds': 917,\n",
       " 'fumiya': 918,\n",
       " 'jbl': 52774,\n",
       " 'tearfully': 919,\n",
       " 'welfare': 24905,\n",
       " 'idyllically': 49534,\n",
       " 'isha': 43702,\n",
       " 'lanchester': 920,\n",
       " 'undertaken': 921,\n",
       " 'longlost': 922,\n",
       " 'netted': 923,\n",
       " 'carrell': 924,\n",
       " 'uncompelling': 925,\n",
       " 'stems': 37258,\n",
       " 'reliefs': 926,\n",
       " 'leona': 927,\n",
       " 'autorenfilm': 928,\n",
       " 'unfriendly': 929,\n",
       " 'typewriter': 930,\n",
       " 'shifted': 931,\n",
       " 'bertrand': 932,\n",
       " 'blesses': 933,\n",
       " 'leukemia': 12666,\n",
       " 'posative': 142,\n",
       " 'tricking': 934,\n",
       " 'zanes': 936,\n",
       " 'dashboard': 12667,\n",
       " 'unknowingly': 937,\n",
       " 'flatmates': 51897,\n",
       " 'unnerve': 938,\n",
       " 'caning': 939,\n",
       " 'shortland': 146,\n",
       " 'recluse': 941,\n",
       " 'dcreasy': 942,\n",
       " 'scratchiness': 24911,\n",
       " 'pms': 30930,\n",
       " 'chipmunk': 943,\n",
       " 'tkachenko': 49537,\n",
       " 'dipper': 944,\n",
       " 'europeans': 61601,\n",
       " 'berserkers': 948,\n",
       " 'shys': 947,\n",
       " 'monte': 68505,\n",
       " 'eve': 949,\n",
       " 'luxury': 61828,\n",
       " 'conflagration': 950,\n",
       " 'water': 46389,\n",
       " 'irks': 951,\n",
       " 'positronic': 954,\n",
       " 'cushy': 150,\n",
       " 'swiftness': 957,\n",
       " 'underimpressed': 964,\n",
       " 'imprint': 959,\n",
       " 'sundance': 961,\n",
       " 'aida': 31951,\n",
       " 'thematically': 963,\n",
       " 'uno': 965,\n",
       " 'expressly': 966,\n",
       " 'russkies': 967,\n",
       " 'discos': 968,\n",
       " 'shaping': 969,\n",
       " 'verson': 970,\n",
       " 'blushed': 61831,\n",
       " 'prototype': 971,\n",
       " 'lifewell': 976,\n",
       " 'trafficker': 973,\n",
       " 'crucifixions': 62188,\n",
       " 'unrealistically': 975,\n",
       " 'rivas': 977,\n",
       " 'consequent': 978,\n",
       " 'katsu': 979,\n",
       " 'titantic': 980,\n",
       " 'jalees': 981,\n",
       " 'ranee': 982,\n",
       " 'gambles': 984,\n",
       " 'dispenses': 985,\n",
       " 'disfigurement': 986,\n",
       " 'bright': 987,\n",
       " 'cristian': 988,\n",
       " 'subculture': 37268,\n",
       " 'capta': 991,\n",
       " 'jewel': 992,\n",
       " 'erect': 993,\n",
       " 'avoide': 996,\n",
       " 'inconnu': 997,\n",
       " 'headquarters': 998,\n",
       " 'babbling': 1000,\n",
       " 'pac': 1001,\n",
       " 'performace': 1003,\n",
       " 'dorrit': 1004,\n",
       " 'runners': 1005,\n",
       " 'sentimentality': 1006,\n",
       " 'marred': 1007,\n",
       " 'commemorative': 1008,\n",
       " 'helpers': 1012,\n",
       " 'chiles': 1011,\n",
       " 'snowy': 1013,\n",
       " 'cheddar': 1014,\n",
       " 'neath': 158,\n",
       " 'outshine': 1016,\n",
       " 'nadu': 1019,\n",
       " 'wellbeing': 1020,\n",
       " 'envisioned': 43779,\n",
       " 'fanaticism': 1021,\n",
       " 'morrisette': 12687,\n",
       " 'sesame': 1024,\n",
       " 'gran': 1023,\n",
       " 'marlina': 1025,\n",
       " 'artificiality': 1030,\n",
       " 'coinsidence': 1027,\n",
       " 'founders': 1028,\n",
       " 'dismissably': 1029,\n",
       " 'dracht': 66299,\n",
       " 'scavengers': 1031,\n",
       " 'neese': 12685,\n",
       " 'pangborn': 1034,\n",
       " 'elmore': 1039,\n",
       " 'bristol': 71162,\n",
       " 'lillies': 1035,\n",
       " 'parkers': 1036,\n",
       " 'skipped': 1038,\n",
       " 'clipboard': 1042,\n",
       " 'jucier': 1041,\n",
       " 'haifa': 1043,\n",
       " ...}"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "word2index = {}\n",
    "\n",
    "for i,word in enumerate(vocab):\n",
    "    word2index[word] = i\n",
    "word2index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def update_input_layer(review):\n",
    "    \n",
    "    global layer_0\n",
    "    \n",
    "    # clear out previous state, reset the layer to be all 0s\n",
    "    layer_0 *= 0\n",
    "    for word in review.split(\" \"):\n",
    "        layer_0[0][word2index[word]] += 1\n",
    "\n",
    "update_input_layer(reviews[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 18.,   0.,   0., ...,   0.,   0.,   0.]])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layer_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_target_for_label(label):\n",
    "    if(label == 'POSITIVE'):\n",
    "        return 1\n",
    "    else:\n",
    "        return 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'POSITIVE'"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_target_for_label(labels[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'NEGATIVE'"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_target_for_label(labels[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project 3: Building a Neural Network"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "- Start with your neural network from the last chapter\n",
    "- 3 layer neural network\n",
    "- no non-linearity in hidden layer\n",
    "- use our functions to create the training data\n",
    "- create a \"pre_process_data\" function to create vocabulary for our training data generating functions\n",
    "- modify \"train\" to train over the entire corpus"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Where to Get Help if You Need it\n",
    "- Re-watch previous week's Udacity Lectures\n",
    "- Chapters 3-5 - [Grokking Deep Learning](https://www.manning.com/books/grokking-deep-learning) - (40% Off: **traskud17**)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import time\n",
    "import sys\n",
    "import numpy as np\n",
    "\n",
    "# Let's tweak our network from before to model these phenomena\n",
    "class SentimentNetwork:\n",
    "    def __init__(self, reviews,labels,hidden_nodes = 10, learning_rate = 0.1):\n",
    "       \n",
    "        # set our random number generator \n",
    "        np.random.seed(1)\n",
    "    \n",
    "        self.pre_process_data(reviews, labels)\n",
    "        \n",
    "        self.init_network(len(self.review_vocab),hidden_nodes, 1, learning_rate)\n",
    "        \n",
    "        \n",
    "    def pre_process_data(self, reviews, labels):\n",
    "        \n",
    "        review_vocab = set()\n",
    "        for review in reviews:\n",
    "            for word in review.split(\" \"):\n",
    "                review_vocab.add(word)\n",
    "        self.review_vocab = list(review_vocab)\n",
    "        \n",
    "        label_vocab = set()\n",
    "        for label in labels:\n",
    "            label_vocab.add(label)\n",
    "        \n",
    "        self.label_vocab = list(label_vocab)\n",
    "        \n",
    "        self.review_vocab_size = len(self.review_vocab)\n",
    "        self.label_vocab_size = len(self.label_vocab)\n",
    "        \n",
    "        self.word2index = {}\n",
    "        for i, word in enumerate(self.review_vocab):\n",
    "            self.word2index[word] = i\n",
    "        \n",
    "        self.label2index = {}\n",
    "        for i, label in enumerate(self.label_vocab):\n",
    "            self.label2index[label] = i\n",
    "         \n",
    "        \n",
    "    def init_network(self, input_nodes, hidden_nodes, output_nodes, learning_rate):\n",
    "        # Set number of nodes in input, hidden and output layers.\n",
    "        self.input_nodes = input_nodes\n",
    "        self.hidden_nodes = hidden_nodes\n",
    "        self.output_nodes = output_nodes\n",
    "\n",
    "        # Initialize weights\n",
    "        self.weights_0_1 = np.zeros((self.input_nodes,self.hidden_nodes))\n",
    "    \n",
    "        self.weights_1_2 = np.random.normal(0.0, self.output_nodes**-0.5, \n",
    "                                                (self.hidden_nodes, self.output_nodes))\n",
    "        \n",
    "        self.learning_rate = learning_rate\n",
    "        \n",
    "        self.layer_0 = np.zeros((1,input_nodes))\n",
    "    \n",
    "        \n",
    "    def update_input_layer(self,review):\n",
    "\n",
    "        # clear out previous state, reset the layer to be all 0s\n",
    "        self.layer_0 *= 0\n",
    "        for word in review.split(\" \"):\n",
    "            if(word in self.word2index.keys()):\n",
    "                self.layer_0[0][self.word2index[word]] += 1\n",
    "                \n",
    "    def get_target_for_label(self,label):\n",
    "        if(label == 'POSITIVE'):\n",
    "            return 1\n",
    "        else:\n",
    "            return 0\n",
    "        \n",
    "    def sigmoid(self,x):\n",
    "        return 1 / (1 + np.exp(-x))\n",
    "    \n",
    "    \n",
    "    def sigmoid_output_2_derivative(self,output):\n",
    "        return output * (1 - output)\n",
    "    \n",
    "    def train(self, training_reviews, training_labels):\n",
    "        \n",
    "        assert(len(training_reviews) == len(training_labels))\n",
    "        \n",
    "        correct_so_far = 0\n",
    "        \n",
    "        start = time.time()\n",
    "        \n",
    "        for i in range(len(training_reviews)):\n",
    "            \n",
    "            review = training_reviews[i]\n",
    "            label = training_labels[i]\n",
    "            \n",
    "            #### Implement the forward pass here ####\n",
    "            ### Forward pass ###\n",
    "\n",
    "            # Input Layer\n",
    "            self.update_input_layer(review)\n",
    "\n",
    "            # Hidden layer\n",
    "            layer_1 = self.layer_0.dot(self.weights_0_1)\n",
    "\n",
    "            # Output layer\n",
    "            layer_2 = self.sigmoid(layer_1.dot(self.weights_1_2))\n",
    "\n",
    "            #### Implement the backward pass here ####\n",
    "            ### Backward pass ###\n",
    "\n",
    "            # TODO: Output error\n",
    "            layer_2_error = layer_2 - self.get_target_for_label(label) # Output layer error is the difference between desired target and actual output.\n",
    "            layer_2_delta = layer_2_error * self.sigmoid_output_2_derivative(layer_2)\n",
    "\n",
    "            # TODO: Backpropagated error\n",
    "            layer_1_error = layer_2_delta.dot(self.weights_1_2.T) # errors propagated to the hidden layer\n",
    "            layer_1_delta = layer_1_error # hidden layer gradients - no nonlinearity so it's the same as the error\n",
    "\n",
    "            # TODO: Update the weights\n",
    "            self.weights_1_2 -= layer_1.T.dot(layer_2_delta) * self.learning_rate # update hidden-to-output weights with gradient descent step\n",
    "            self.weights_0_1 -= self.layer_0.T.dot(layer_1_delta) * self.learning_rate # update input-to-hidden weights with gradient descent step\n",
    "\n",
    "            if(np.abs(layer_2_error) < 0.5):\n",
    "                correct_so_far += 1\n",
    "            \n",
    "            reviews_per_second = i / float(time.time() - start)\n",
    "            \n",
    "            sys.stdout.write(\"\\rProgress:\" + str(100 * i/float(len(training_reviews)))[:4] + \"% Speed(reviews/sec):\" + str(reviews_per_second)[0:5] + \" #Correct:\" + str(correct_so_far) + \" #Trained:\" + str(i+1) + \" Training Accuracy:\" + str(correct_so_far * 100 / float(i+1))[:4] + \"%\")\n",
    "            if(i % 2500 == 0):\n",
    "                print(\"\")\n",
    "    \n",
    "    def test(self, testing_reviews, testing_labels):\n",
    "        \n",
    "        correct = 0\n",
    "        \n",
    "        start = time.time()\n",
    "        \n",
    "        for i in range(len(testing_reviews)):\n",
    "            pred = self.run(testing_reviews[i])\n",
    "            if(pred == testing_labels[i]):\n",
    "                correct += 1\n",
    "            \n",
    "            reviews_per_second = i / float(time.time() - start)\n",
    "            \n",
    "            sys.stdout.write(\"\\rProgress:\" + str(100 * i/float(len(testing_reviews)))[:4] \\\n",
    "                             + \"% Speed(reviews/sec):\" + str(reviews_per_second)[0:5] \\\n",
    "                            + \"% #Correct:\" + str(correct) + \" #Tested:\" + str(i+1) + \" Testing Accuracy:\" + str(correct * 100 / float(i+1))[:4] + \"%\")\n",
    "    \n",
    "    def run(self, review):\n",
    "        \n",
    "        # Input Layer\n",
    "        self.update_input_layer(review.lower())\n",
    "\n",
    "        # Hidden layer\n",
    "        layer_1 = self.layer_0.dot(self.weights_0_1)\n",
    "\n",
    "        # Output layer\n",
    "        layer_2 = self.sigmoid(layer_1.dot(self.weights_1_2))\n",
    "        \n",
    "        if(layer_2[0] > 0.5):\n",
    "            return \"POSITIVE\"\n",
    "        else:\n",
    "            return \"NEGATIVE\"\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "mlp = SentimentNetwork(reviews[:-1000],labels[:-1000], learning_rate=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:99.9% Speed(reviews/sec):587.5% #Correct:500 #Tested:1000 Testing Accuracy:50.0%"
     ]
    }
   ],
   "source": [
    "# evaluate our model before training (just to show how horrible it is)\n",
    "mlp.test(reviews[-1000:],labels[-1000:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:0.0% Speed(reviews/sec):0.0 #Correct:0 #Trained:1 Training Accuracy:0.0%\n",
      "Progress:10.4% Speed(reviews/sec):89.58 #Correct:1250 #Trained:2501 Training Accuracy:49.9%\n",
      "Progress:20.8% Speed(reviews/sec):95.03 #Correct:2500 #Trained:5001 Training Accuracy:49.9%\n",
      "Progress:27.4% Speed(reviews/sec):95.46 #Correct:3295 #Trained:6592 Training Accuracy:49.9%"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-62-d0f5d85ad402>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;31m# train the network\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmlp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreviews\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabels\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m<ipython-input-59-6334c4ec4642>\u001b[0m in \u001b[0;36mtrain\u001b[0;34m(self, training_reviews, training_labels)\u001b[0m\n\u001b[1;32m    117\u001b[0m             \u001b[0;31m# TODO: Update the weights\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    118\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights_1_2\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0mlayer_1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_2_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rate\u001b[0m \u001b[0;31m# update hidden-to-output weights with gradient descent step\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 119\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights_0_1\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlayer_0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_1_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rate\u001b[0m \u001b[0;31m# update input-to-hidden weights with gradient descent step\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    120\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    121\u001b[0m             \u001b[0;32mif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_2_error\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "# train the network\n",
    "mlp.train(reviews[:-1000],labels[:-1000])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "mlp = SentimentNetwork(reviews[:-1000],labels[:-1000], learning_rate=0.01)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:0.0% Speed(reviews/sec):0.0 #Correct:0 #Trained:1 Training Accuracy:0.0%\n",
      "Progress:10.4% Speed(reviews/sec):96.39 #Correct:1247 #Trained:2501 Training Accuracy:49.8%\n",
      "Progress:20.8% Speed(reviews/sec):99.31 #Correct:2497 #Trained:5001 Training Accuracy:49.9%\n",
      "Progress:22.8% Speed(reviews/sec):99.02 #Correct:2735 #Trained:5476 Training Accuracy:49.9%"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-64-d0f5d85ad402>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;31m# train the network\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmlp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreviews\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabels\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m<ipython-input-59-6334c4ec4642>\u001b[0m in \u001b[0;36mtrain\u001b[0;34m(self, training_reviews, training_labels)\u001b[0m\n\u001b[1;32m    117\u001b[0m             \u001b[0;31m# TODO: Update the weights\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    118\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights_1_2\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0mlayer_1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_2_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rate\u001b[0m \u001b[0;31m# update hidden-to-output weights with gradient descent step\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 119\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights_0_1\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlayer_0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_1_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rate\u001b[0m \u001b[0;31m# update input-to-hidden weights with gradient descent step\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    120\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    121\u001b[0m             \u001b[0;32mif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_2_error\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "# train the network\n",
    "mlp.train(reviews[:-1000],labels[:-1000])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "mlp = SentimentNetwork(reviews[:-1000],labels[:-1000], learning_rate=0.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:0.0% Speed(reviews/sec):0.0 #Correct:0 #Trained:1 Training Accuracy:0.0%\n",
      "Progress:10.4% Speed(reviews/sec):98.77 #Correct:1267 #Trained:2501 Training Accuracy:50.6%\n",
      "Progress:20.8% Speed(reviews/sec):98.79 #Correct:2640 #Trained:5001 Training Accuracy:52.7%\n",
      "Progress:31.2% Speed(reviews/sec):98.58 #Correct:4109 #Trained:7501 Training Accuracy:54.7%\n",
      "Progress:41.6% Speed(reviews/sec):93.78 #Correct:5638 #Trained:10001 Training Accuracy:56.3%\n",
      "Progress:52.0% Speed(reviews/sec):91.76 #Correct:7246 #Trained:12501 Training Accuracy:57.9%\n",
      "Progress:62.5% Speed(reviews/sec):92.42 #Correct:8841 #Trained:15001 Training Accuracy:58.9%\n",
      "Progress:69.4% Speed(reviews/sec):92.58 #Correct:9934 #Trained:16668 Training Accuracy:59.5%"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-66-d0f5d85ad402>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;31m# train the network\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmlp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreviews\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabels\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m<ipython-input-59-6334c4ec4642>\u001b[0m in \u001b[0;36mtrain\u001b[0;34m(self, training_reviews, training_labels)\u001b[0m\n\u001b[1;32m    117\u001b[0m             \u001b[0;31m# TODO: Update the weights\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    118\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights_1_2\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0mlayer_1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_2_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rate\u001b[0m \u001b[0;31m# update hidden-to-output weights with gradient descent step\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 119\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights_0_1\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlayer_0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_1_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rate\u001b[0m \u001b[0;31m# update input-to-hidden weights with gradient descent step\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    120\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    121\u001b[0m             \u001b[0;32mif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer_2_error\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "# train the network\n",
    "mlp.train(reviews[:-1000],labels[:-1000])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Understanding Neural Noise"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAFKCAYAAAAg+zSAAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2Jl\nLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q\nIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5\nOTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w\nLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAg\nICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZm\nOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0\naW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K\nAtiABQAAQABJREFUeAHtnXvQXVV5/1daZxy1BUpJp1MhE5BSSSAgqBAV5BIuGaQJBoEUATEJAiXY\ncMsUTfMDK9MAMXKRAEmAgGkASUiGIgQSsEQgKGDCJV6GYkywfzRWibc/OuO8v/1Zuo7r3e/e5+zr\n2ZfzfWbOe/bZe12e9V373eu7n/WsZ40aCsRIhIAQEAJCQAgIASFQAQJ/UkGdqlIICAEhIASEgBAQ\nAhYBERHdCEJACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEhIASEgBAQApUhICJSGfSq\nWAgIASEgBISAEBAR0T0gBISAEBACQkAIVIaAiEhl0KtiISAEhIAQEAJCQERE94AQEAJCQAgIASFQ\nGQIiIpVBr4qFgBAQAkJACAgBERHdA0JACAgBISAEhEBlCIiIVAa9KhYCQkAICAEhIARERHQPCAEh\n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\nAH0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename='sentiment_network.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def update_input_layer(review):\n",
    "    \n",
    "    global layer_0\n",
    "    \n",
    "    # clear out previous state, reset the layer to be all 0s\n",
    "    layer_0 *= 0\n",
    "    for word in review.split(\" \"):\n",
    "        layer_0[0][word2index[word]] += 1\n",
    "\n",
    "update_input_layer(reviews[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 18.,   0.,   0., ...,   0.,   0.,   0.]])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layer_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "review_counter = Counter()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "for word in reviews[0].split(\" \"):\n",
    "    review_counter[word] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('.', 27),\n",
       " ('', 18),\n",
       " ('the', 9),\n",
       " ('to', 6),\n",
       " ('i', 5),\n",
       " ('high', 5),\n",
       " ('is', 4),\n",
       " ('of', 4),\n",
       " ('a', 4),\n",
       " ('bromwell', 4),\n",
       " ('teachers', 4),\n",
       " ('that', 4),\n",
       " ('their', 2),\n",
       " ('my', 2),\n",
       " ('at', 2),\n",
       " ('as', 2),\n",
       " ('me', 2),\n",
       " ('in', 2),\n",
       " ('students', 2),\n",
       " ('it', 2),\n",
       " ('student', 2),\n",
       " ('school', 2),\n",
       " ('through', 1),\n",
       " ('insightful', 1),\n",
       " ('ran', 1),\n",
       " ('years', 1),\n",
       " ('here', 1),\n",
       " ('episode', 1),\n",
       " ('reality', 1),\n",
       " ('what', 1),\n",
       " ('far', 1),\n",
       " ('t', 1),\n",
       " ('saw', 1),\n",
       " ('s', 1),\n",
       " ('repeatedly', 1),\n",
       " ('isn', 1),\n",
       " ('closer', 1),\n",
       " ('and', 1),\n",
       " ('fetched', 1),\n",
       " ('remind', 1),\n",
       " ('can', 1),\n",
       " ('welcome', 1),\n",
       " ('line', 1),\n",
       " ('your', 1),\n",
       " ('survive', 1),\n",
       " ('teaching', 1),\n",
       " ('satire', 1),\n",
       " ('classic', 1),\n",
       " ('who', 1),\n",
       " ('age', 1),\n",
       " ('knew', 1),\n",
       " ('schools', 1),\n",
       " ('inspector', 1),\n",
       " ('comedy', 1),\n",
       " ('down', 1),\n",
       " ('about', 1),\n",
       " ('pity', 1),\n",
       " ('m', 1),\n",
       " ('all', 1),\n",
       " ('adults', 1),\n",
       " ('see', 1),\n",
       " ('think', 1),\n",
       " ('situation', 1),\n",
       " ('time', 1),\n",
       " ('pomp', 1),\n",
       " ('lead', 1),\n",
       " ('other', 1),\n",
       " ('much', 1),\n",
       " ('many', 1),\n",
       " ('which', 1),\n",
       " ('one', 1),\n",
       " ('profession', 1),\n",
       " ('programs', 1),\n",
       " ('same', 1),\n",
       " ('some', 1),\n",
       " ('such', 1),\n",
       " ('pettiness', 1),\n",
       " ('immediately', 1),\n",
       " ('expect', 1),\n",
       " ('financially', 1),\n",
       " ('recalled', 1),\n",
       " ('tried', 1),\n",
       " ('whole', 1),\n",
       " ('right', 1),\n",
       " ('life', 1),\n",
       " ('cartoon', 1),\n",
       " ('scramble', 1),\n",
       " ('sack', 1),\n",
       " ('believe', 1),\n",
       " ('when', 1),\n",
       " ('than', 1),\n",
       " ('burn', 1),\n",
       " ('pathetic', 1)]"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "review_counter.most_common()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project 4: Reducing Noise in our Input Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import time\n",
    "import sys\n",
    "import numpy as np\n",
    "\n",
    "# Let's tweak our network from before to model these phenomena\n",
    "class SentimentNetwork:\n",
    "    def __init__(self, reviews,labels,hidden_nodes = 10, learning_rate = 0.1):\n",
    "       \n",
    "        # set our random number generator \n",
    "        np.random.seed(1)\n",
    "    \n",
    "        self.pre_process_data(reviews, labels)\n",
    "        \n",
    "        self.init_network(len(self.review_vocab),hidden_nodes, 1, learning_rate)\n",
    "        \n",
    "        \n",
    "    def pre_process_data(self, reviews, labels):\n",
    "        \n",
    "        review_vocab = set()\n",
    "        for review in reviews:\n",
    "            for word in review.split(\" \"):\n",
    "                review_vocab.add(word)\n",
    "        self.review_vocab = list(review_vocab)\n",
    "        \n",
    "        label_vocab = set()\n",
    "        for label in labels:\n",
    "            label_vocab.add(label)\n",
    "        \n",
    "        self.label_vocab = list(label_vocab)\n",
    "        \n",
    "        self.review_vocab_size = len(self.review_vocab)\n",
    "        self.label_vocab_size = len(self.label_vocab)\n",
    "        \n",
    "        self.word2index = {}\n",
    "        for i, word in enumerate(self.review_vocab):\n",
    "            self.word2index[word] = i\n",
    "        \n",
    "        self.label2index = {}\n",
    "        for i, label in enumerate(self.label_vocab):\n",
    "            self.label2index[label] = i\n",
    "         \n",
    "        \n",
    "    def init_network(self, input_nodes, hidden_nodes, output_nodes, learning_rate):\n",
    "        # Set number of nodes in input, hidden and output layers.\n",
    "        self.input_nodes = input_nodes\n",
    "        self.hidden_nodes = hidden_nodes\n",
    "        self.output_nodes = output_nodes\n",
    "\n",
    "        # Initialize weights\n",
    "        self.weights_0_1 = np.zeros((self.input_nodes,self.hidden_nodes))\n",
    "    \n",
    "        self.weights_1_2 = np.random.normal(0.0, self.output_nodes**-0.5, \n",
    "                                                (self.hidden_nodes, self.output_nodes))\n",
    "        \n",
    "        self.learning_rate = learning_rate\n",
    "        \n",
    "        self.layer_0 = np.zeros((1,input_nodes))\n",
    "    \n",
    "        \n",
    "    def update_input_layer(self,review):\n",
    "\n",
    "        # clear out previous state, reset the layer to be all 0s\n",
    "        self.layer_0 *= 0\n",
    "        for word in review.split(\" \"):\n",
    "            if(word in self.word2index.keys()):\n",
    "                self.layer_0[0][self.word2index[word]] = 1\n",
    "                \n",
    "    def get_target_for_label(self,label):\n",
    "        if(label == 'POSITIVE'):\n",
    "            return 1\n",
    "        else:\n",
    "            return 0\n",
    "        \n",
    "    def sigmoid(self,x):\n",
    "        return 1 / (1 + np.exp(-x))\n",
    "    \n",
    "    \n",
    "    def sigmoid_output_2_derivative(self,output):\n",
    "        return output * (1 - output)\n",
    "    \n",
    "    def train(self, training_reviews, training_labels):\n",
    "        \n",
    "        assert(len(training_reviews) == len(training_labels))\n",
    "        \n",
    "        correct_so_far = 0\n",
    "        \n",
    "        start = time.time()\n",
    "        \n",
    "        for i in range(len(training_reviews)):\n",
    "            \n",
    "            review = training_reviews[i]\n",
    "            label = training_labels[i]\n",
    "            \n",
    "            #### Implement the forward pass here ####\n",
    "            ### Forward pass ###\n",
    "\n",
    "            # Input Layer\n",
    "            self.update_input_layer(review)\n",
    "\n",
    "            # Hidden layer\n",
    "            layer_1 = self.layer_0.dot(self.weights_0_1)\n",
    "\n",
    "            # Output layer\n",
    "            layer_2 = self.sigmoid(layer_1.dot(self.weights_1_2))\n",
    "\n",
    "            #### Implement the backward pass here ####\n",
    "            ### Backward pass ###\n",
    "\n",
    "            # TODO: Output error\n",
    "            layer_2_error = layer_2 - self.get_target_for_label(label) # Output layer error is the difference between desired target and actual output.\n",
    "            layer_2_delta = layer_2_error * self.sigmoid_output_2_derivative(layer_2)\n",
    "\n",
    "            # TODO: Backpropagated error\n",
    "            layer_1_error = layer_2_delta.dot(self.weights_1_2.T) # errors propagated to the hidden layer\n",
    "            layer_1_delta = layer_1_error # hidden layer gradients - no nonlinearity so it's the same as the error\n",
    "\n",
    "            # TODO: Update the weights\n",
    "            self.weights_1_2 -= layer_1.T.dot(layer_2_delta) * self.learning_rate # update hidden-to-output weights with gradient descent step\n",
    "            self.weights_0_1 -= self.layer_0.T.dot(layer_1_delta) * self.learning_rate # update input-to-hidden weights with gradient descent step\n",
    "\n",
    "            if(np.abs(layer_2_error) < 0.5):\n",
    "                correct_so_far += 1\n",
    "            \n",
    "            reviews_per_second = i / float(time.time() - start)\n",
    "            \n",
    "            sys.stdout.write(\"\\rProgress:\" + str(100 * i/float(len(training_reviews)))[:4] + \"% Speed(reviews/sec):\" + str(reviews_per_second)[0:5] + \" #Correct:\" + str(correct_so_far) + \" #Trained:\" + str(i+1) + \" Training Accuracy:\" + str(correct_so_far * 100 / float(i+1))[:4] + \"%\")\n",
    "            if(i % 2500 == 0):\n",
    "                print(\"\")\n",
    "    \n",
    "    def test(self, testing_reviews, testing_labels):\n",
    "        \n",
    "        correct = 0\n",
    "        \n",
    "        start = time.time()\n",
    "        \n",
    "        for i in range(len(testing_reviews)):\n",
    "            pred = self.run(testing_reviews[i])\n",
    "            if(pred == testing_labels[i]):\n",
    "                correct += 1\n",
    "            \n",
    "            reviews_per_second = i / float(time.time() - start)\n",
    "            \n",
    "            sys.stdout.write(\"\\rProgress:\" + str(100 * i/float(len(testing_reviews)))[:4] \\\n",
    "                             + \"% Speed(reviews/sec):\" + str(reviews_per_second)[0:5] \\\n",
    "                            + \"% #Correct:\" + str(correct) + \" #Tested:\" + str(i+1) + \" Testing Accuracy:\" + str(correct * 100 / float(i+1))[:4] + \"%\")\n",
    "    \n",
    "    def run(self, review):\n",
    "        \n",
    "        # Input Layer\n",
    "        self.update_input_layer(review.lower())\n",
    "\n",
    "        # Hidden layer\n",
    "        layer_1 = self.layer_0.dot(self.weights_0_1)\n",
    "\n",
    "        # Output layer\n",
    "        layer_2 = self.sigmoid(layer_1.dot(self.weights_1_2))\n",
    "        \n",
    "        if(layer_2[0] > 0.5):\n",
    "            return \"POSITIVE\"\n",
    "        else:\n",
    "            return \"NEGATIVE\"\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "mlp = SentimentNetwork(reviews[:-1000],labels[:-1000], learning_rate=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:0.0% Speed(reviews/sec):0.0 #Correct:0 #Trained:1 Training Accuracy:0.0%\n",
      "Progress:10.4% Speed(reviews/sec):91.50 #Correct:1795 #Trained:2501 Training Accuracy:71.7%\n",
      "Progress:20.8% Speed(reviews/sec):95.25 #Correct:3811 #Trained:5001 Training Accuracy:76.2%\n",
      "Progress:31.2% Speed(reviews/sec):93.74 #Correct:5898 #Trained:7501 Training Accuracy:78.6%\n",
      "Progress:41.6% Speed(reviews/sec):93.69 #Correct:8042 #Trained:10001 Training Accuracy:80.4%\n",
      "Progress:52.0% Speed(reviews/sec):95.27 #Correct:10186 #Trained:12501 Training Accuracy:81.4%\n",
      "Progress:62.5% Speed(reviews/sec):98.19 #Correct:12317 #Trained:15001 Training Accuracy:82.1%\n",
      "Progress:72.9% Speed(reviews/sec):98.56 #Correct:14440 #Trained:17501 Training Accuracy:82.5%\n",
      "Progress:83.3% Speed(reviews/sec):99.74 #Correct:16613 #Trained:20001 Training Accuracy:83.0%\n",
      "Progress:93.7% Speed(reviews/sec):100.7 #Correct:18794 #Trained:22501 Training Accuracy:83.5%\n",
      "Progress:99.9% Speed(reviews/sec):101.9 #Correct:20115 #Trained:24000 Training Accuracy:83.8%"
     ]
    }
   ],
   "source": [
    "mlp.train(reviews[:-1000],labels[:-1000])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:99.9% Speed(reviews/sec):832.7% #Correct:851 #Tested:1000 Testing Accuracy:85.1%"
     ]
    }
   ],
   "source": [
    "# evaluate our model before training (just to show how horrible it is)\n",
    "mlp.test(reviews[-1000:],labels[-1000:])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Analyzing Inefficiencies in our Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAEoCAYAAACJsv/HAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2Jl\nLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q\nIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5\nOTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w\nLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAg\nICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZm\nOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0\naW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K\nAtiABQAAQABJREFUeAHsvQv8HdPV/7+pKnVrUCSoS5A0ES1CCC2JpPh7KkLlaV1yafskoUk02hCh\njyhyERWXIMlTInFpRCVBCRIJQRJFtQRJCXVLUOLXoC7Vnv+8t67T9Z3Muc85Z+actV6v+c6cmX1Z\n+7NnZn++a63Ze4NMIM7EEDAEDAFDwBAwBAwBQ6DqCGxY9RqsAkPAEDAEDAFDwBAwBAwBj4ARL7sR\nDAFDwBAwBAwBQ8AQqBECRrxqBLRVYwgYAoaAIWAIGAKGgBEvuwcMAUPAEDAEDAFDwBCoEQJGvGoE\ntFVjCBgChoAhYAgYAoaAES+7BwwBQ8AQMAQMAUPAEKgRAka8agS0VWMIGAKGgCFgCBgChoARL7sH\nDAFDwBAwBAwBQ8AQqBECRrxqBLRVYwgYAoaAIWAIGAKGgBEvuwcMAUPAEDAEDAFDwBCoEQJGvGoE\n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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image(filename='sentiment_network_sparse.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "layer_0 = np.zeros(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layer_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "layer_0[4] = 1\n",
    "layer_0[9] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  1.])"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layer_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "weights_0_1 = np.random.randn(10,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.10503756,  0.44222989,  0.24392938, -0.55961832,  0.21389503])"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layer_0.dot(weights_0_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "indices = [4,9]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "layer_1 = np.zeros(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "for index in indices:\n",
    "    layer_1 += (weights_0_1[index])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.10503756,  0.44222989,  0.24392938, -0.55961832,  0.21389503])"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layer_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAEpCAYAAAB1IONWAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2Jl\nLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q\nIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5\nOTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91\ndD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w\nLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAg\nICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZm\nOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0\naW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K\nAtiABQAAQABJREFUeAHsnQe8VcW1/yc+TUxssQuWWGJoGhOjUmwUMVYUC3YQTeyCDQVRwYJYElGa\nggUBJVixRLFiV4gmxoKiiaKiYIr6NJr23vvf//6O/k7mbvc597R7zt7nrvl89tlt9syatct8z5o1\nM99oioKzYBowDZgGTAOmAdOAaaBBNbBcg5bLimUaMA2YBkwDpgHTgGnAa8Bgxx4E04BpwDRgGjAN\nmAYaWgMGOw19e61wpgHTgGnANGAaMA0Y7NgzYBowDZgGTAOmAdNAQ2vAYKehb68VzjRgGjANmAZM\nA6YBgx17BkwDpgHTgGnANGAaaGgNGOw09O21wpkGTAOmAdOAacA0YLBjz4BpwDRgGjANmAZMAw2t\nAYOdhr69VjjTgGnANGAaMA2YBgx27BkwDZgGTAOmAdOAaaChNWCw09C31wpnGjANmAZMA6YB04DB\n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\nRK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image(filename='sentiment_network_sparse_2.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project 5: Making our Network More Efficient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import time\n",
    "import sys\n",
    "\n",
    "# Let's tweak our network from before to model these phenomena\n",
    "class SentimentNetwork:\n",
    "    def __init__(self, reviews,labels,hidden_nodes = 10, learning_rate = 0.1):\n",
    "       \n",
    "        np.random.seed(1)\n",
    "    \n",
    "        self.pre_process_data(reviews)\n",
    "        \n",
    "        self.init_network(len(self.review_vocab),hidden_nodes, 1, learning_rate)\n",
    "        \n",
    "        \n",
    "    def pre_process_data(self,reviews):\n",
    "        \n",
    "        review_vocab = set()\n",
    "        for review in reviews:\n",
    "            for word in review.split(\" \"):\n",
    "                review_vocab.add(word)\n",
    "        self.review_vocab = list(review_vocab)\n",
    "        \n",
    "        label_vocab = set()\n",
    "        for label in labels:\n",
    "            label_vocab.add(label)\n",
    "        \n",
    "        self.label_vocab = list(label_vocab)\n",
    "        \n",
    "        self.review_vocab_size = len(self.review_vocab)\n",
    "        self.label_vocab_size = len(self.label_vocab)\n",
    "        \n",
    "        self.word2index = {}\n",
    "        for i, word in enumerate(self.review_vocab):\n",
    "            self.word2index[word] = i\n",
    "        \n",
    "        self.label2index = {}\n",
    "        for i, label in enumerate(self.label_vocab):\n",
    "            self.label2index[label] = i\n",
    "         \n",
    "        \n",
    "    def init_network(self, input_nodes, hidden_nodes, output_nodes, learning_rate):\n",
    "        # Set number of nodes in input, hidden and output layers.\n",
    "        self.input_nodes = input_nodes\n",
    "        self.hidden_nodes = hidden_nodes\n",
    "        self.output_nodes = output_nodes\n",
    "\n",
    "        # Initialize weights\n",
    "        self.weights_0_1 = np.zeros((self.input_nodes,self.hidden_nodes))\n",
    "    \n",
    "        self.weights_1_2 = np.random.normal(0.0, self.output_nodes**-0.5, \n",
    "                                                (self.hidden_nodes, self.output_nodes))\n",
    "        \n",
    "        self.learning_rate = learning_rate\n",
    "        \n",
    "        self.layer_0 = np.zeros((1,input_nodes))\n",
    "        self.layer_1 = np.zeros((1,hidden_nodes))\n",
    "        \n",
    "    def sigmoid(self,x):\n",
    "        return 1 / (1 + np.exp(-x))\n",
    "    \n",
    "    \n",
    "    def sigmoid_output_2_derivative(self,output):\n",
    "        return output * (1 - output)\n",
    "    \n",
    "    def update_input_layer(self,review):\n",
    "\n",
    "        # clear out previous state, reset the layer to be all 0s\n",
    "        self.layer_0 *= 0\n",
    "        for word in review.split(\" \"):\n",
    "            self.layer_0[0][self.word2index[word]] = 1\n",
    "\n",
    "    def get_target_for_label(self,label):\n",
    "        if(label == 'POSITIVE'):\n",
    "            return 1\n",
    "        else:\n",
    "            return 0\n",
    "        \n",
    "    def train(self, training_reviews_raw, training_labels):\n",
    "        \n",
    "        training_reviews = list()\n",
    "        for review in training_reviews_raw:\n",
    "            indices = set()\n",
    "            for word in review.split(\" \"):\n",
    "                if(word in self.word2index.keys()):\n",
    "                    indices.add(self.word2index[word])\n",
    "            training_reviews.append(list(indices))\n",
    "        \n",
    "        assert(len(training_reviews) == len(training_labels))\n",
    "        \n",
    "        correct_so_far = 0\n",
    "        \n",
    "        start = time.time()\n",
    "        \n",
    "        for i in range(len(training_reviews)):\n",
    "            \n",
    "            review = training_reviews[i]\n",
    "            label = training_labels[i]\n",
    "            \n",
    "            #### Implement the forward pass here ####\n",
    "            ### Forward pass ###\n",
    "\n",
    "            # Input Layer\n",
    "\n",
    "            # Hidden layer\n",
    "#             layer_1 = self.layer_0.dot(self.weights_0_1)\n",
    "            self.layer_1 *= 0\n",
    "            for index in review:\n",
    "                self.layer_1 += self.weights_0_1[index]\n",
    "            \n",
    "            # Output layer\n",
    "            layer_2 = self.sigmoid(self.layer_1.dot(self.weights_1_2))\n",
    "\n",
    "            #### Implement the backward pass here ####\n",
    "            ### Backward pass ###\n",
    "\n",
    "            # Output error\n",
    "            layer_2_error = layer_2 - self.get_target_for_label(label) # Output layer error is the difference between desired target and actual output.\n",
    "            layer_2_delta = layer_2_error * self.sigmoid_output_2_derivative(layer_2)\n",
    "\n",
    "            # Backpropagated error\n",
    "            layer_1_error = layer_2_delta.dot(self.weights_1_2.T) # errors propagated to the hidden layer\n",
    "            layer_1_delta = layer_1_error # hidden layer gradients - no nonlinearity so it's the same as the error\n",
    "\n",
    "            # Update the weights\n",
    "            self.weights_1_2 -= self.layer_1.T.dot(layer_2_delta) * self.learning_rate # update hidden-to-output weights with gradient descent step\n",
    "            \n",
    "            for index in review:\n",
    "                self.weights_0_1[index] -= layer_1_delta[0] * self.learning_rate # update input-to-hidden weights with gradient descent step\n",
    "\n",
    "            if(np.abs(layer_2_error) < 0.5):\n",
    "                correct_so_far += 1\n",
    "            \n",
    "            reviews_per_second = i / float(time.time() - start)\n",
    "            \n",
    "            sys.stdout.write(\"\\rProgress:\" + str(100 * i/float(len(training_reviews)))[:4] + \"% Speed(reviews/sec):\" + str(reviews_per_second)[0:5] + \" #Correct:\" + str(correct_so_far) + \" #Trained:\" + str(i+1) + \" Training Accuracy:\" + str(correct_so_far * 100 / float(i+1))[:4] + \"%\")\n",
    "        \n",
    "    \n",
    "    def test(self, testing_reviews, testing_labels):\n",
    "        \n",
    "        correct = 0\n",
    "        \n",
    "        start = time.time()\n",
    "        \n",
    "        for i in range(len(testing_reviews)):\n",
    "            pred = self.run(testing_reviews[i])\n",
    "            if(pred == testing_labels[i]):\n",
    "                correct += 1\n",
    "            \n",
    "            reviews_per_second = i / float(time.time() - start)\n",
    "            \n",
    "            sys.stdout.write(\"\\rProgress:\" + str(100 * i/float(len(testing_reviews)))[:4] \\\n",
    "                             + \"% Speed(reviews/sec):\" + str(reviews_per_second)[0:5] \\\n",
    "                            + \"% #Correct:\" + str(correct) + \" #Tested:\" + str(i+1) + \" Testing Accuracy:\" + str(correct * 100 / float(i+1))[:4] + \"%\")\n",
    "    \n",
    "    def run(self, review):\n",
    "        \n",
    "        # Input Layer\n",
    "\n",
    "\n",
    "        # Hidden layer\n",
    "        self.layer_1 *= 0\n",
    "        unique_indices = set()\n",
    "        for word in review.lower().split(\" \"):\n",
    "            if word in self.word2index.keys():\n",
    "                unique_indices.add(self.word2index[word])\n",
    "        for index in unique_indices:\n",
    "            self.layer_1 += self.weights_0_1[index]\n",
    "        \n",
    "        # Output layer\n",
    "        layer_2 = self.sigmoid(self.layer_1.dot(self.weights_1_2))\n",
    "        \n",
    "        if(layer_2[0] > 0.5):\n",
    "            return \"POSITIVE\"\n",
    "        else:\n",
    "            return \"NEGATIVE\"\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "mlp = SentimentNetwork(reviews[:-1000],labels[:-1000], learning_rate=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "mlp.train(reviews[:-1000],labels[:-1000])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Progress:99.9% Speed(reviews/sec):1581.% #Correct:857 #Tested:1000 Testing Accuracy:85.7%"
     ]
    }
   ],
   "source": [
    "# evaluate our model before training (just to show how horrible it is)\n",
    "mlp.test(reviews[-1000:],labels[-1000:])"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "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.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
