You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5998 lines
419 KiB
Plaintext

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