{ "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": [ "" ] }, "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": [ "" ] }, "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\n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\nAH0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "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\u001b[0m in \u001b[0;36m\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\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\u001b[0m in \u001b[0;36m\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\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\u001b[0m in \u001b[0;36m\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\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": [ "" ] }, "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()" ] } ], "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 }