├── IMDB_Dataset.csv ├── Natural_Language_Processing_Concepts.ipynb ├── Natural_Language_Processing_Concepts.py ├── README.md ├── Word_Embedding_using_word2Vec.ipynb └── word_embedding_using_word2vec.py /Natural_Language_Processing_Concepts.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Tokenization" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": { 14 | "collapsed": true 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "from nltk.tokenize import sent_tokenize, word_tokenize" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 5, 24 | "metadata": { 25 | "collapsed": true 26 | }, 27 | "outputs": [], 28 | "source": [ 29 | "#Sample Text\n", 30 | "text = \"\"\"The AI, called Pluribus, defeated poker professional Darren Elias, who holds the \n", 31 | "record for most World Poker Tour titles, and Chris \"Jesus\" Ferguson, winner of six World Series of Poker events. \n", 32 | "Each pro separately played 5,000 hands of poker against five copies of Pluribus. In another experiment involving \n", 33 | "13 pros, all of whom have won more than $1 million playing poker, Pluribus played five pros at a time for a total \n", 34 | "of 10,000 hands and again emerged victorious.\"\"\"" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 6, 40 | "metadata": {}, 41 | "outputs": [ 42 | { 43 | "name": "stdout", 44 | "output_type": "stream", 45 | "text": [ 46 | "Tokenized Sentences: ['The AI, called Pluribus, defeated poker professional Darren Elias, who holds the \\nrecord for most World Poker Tour titles, and Chris \"Jesus\" Ferguson, winner of six World Series of Poker events.', 'Each pro separately played 5,000 hands of poker against five copies of Pluribus.', 'In another experiment involving \\n13 pros, all of whom have won more than $1 million playing poker, Pluribus played five pros at a time for a total \\nof 10,000 hands and again emerged victorious.']\n" 47 | ] 48 | } 49 | ], 50 | "source": [ 51 | "#Tokenize paragraph into individual sentences\n", 52 | "nltk_sentences = sent_tokenize(text)\n", 53 | "print(\"Tokenized Sentences: \", nltk_sentences)" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": 8, 59 | "metadata": {}, 60 | "outputs": [ 61 | { 62 | "name": "stdout", 63 | "output_type": "stream", 64 | "text": [ 65 | "Tokenized Words: ['The', 'AI', ',', 'called', 'Pluribus', ',', 'defeated', 'poker', 'professional', 'Darren', 'Elias', ',', 'who', 'holds', 'the', 'record', 'for', 'most', 'World', 'Poker', 'Tour', 'titles', ',', 'and', 'Chris', '``', 'Jesus', \"''\", 'Ferguson', ',', 'winner', 'of', 'six', 'World', 'Series', 'of', 'Poker', 'events', '.', 'Each', 'pro', 'separately', 'played', '5,000', 'hands', 'of', 'poker', 'against', 'five', 'copies', 'of', 'Pluribus', '.', 'In', 'another', 'experiment', 'involving', '13', 'pros', ',', 'all', 'of', 'whom', 'have', 'won', 'more', 'than', '$', '1', 'million', 'playing', 'poker', ',', 'Pluribus', 'played', 'five', 'pros', 'at', 'a', 'time', 'for', 'a', 'total', 'of', '10,000', 'hands', 'and', 'again', 'emerged', 'victorious', '.']\n" 66 | ] 67 | } 68 | ], 69 | "source": [ 70 | "#Tokenize paragraph/sentence into individual words\n", 71 | "nltk_words = word_tokenize(text)\n", 72 | "print(\"Tokenized Words: \", nltk_words)" 73 | ] 74 | }, 75 | { 76 | "cell_type": "code", 77 | "execution_count": 15, 78 | "metadata": { 79 | "collapsed": true 80 | }, 81 | "outputs": [], 82 | "source": [ 83 | "#Original Text containing punctuation\n", 84 | "text_with_punctuation = \"John's burger was so! delicious that I ate it fully, #Whataburger.\"" 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "execution_count": 16, 90 | "metadata": {}, 91 | "outputs": [ 92 | { 93 | "name": "stdout", 94 | "output_type": "stream", 95 | "text": [ 96 | "Text Without Punctuation: ['John', 's', 'burger', 'was', 'so', 'delicious', 'that', 'I', 'ate', 'it', 'fully', 'Whataburger']\n" 97 | ] 98 | } 99 | ], 100 | "source": [ 101 | "#Reoving punctuation\n", 102 | "from nltk.tokenize import RegexpTokenizer\n", 103 | "\n", 104 | "tokenize_text = RegexpTokenizer(r'\\w+') #Here \\w+ is used for matching one or more word characters\n", 105 | "Output = tokenize_text.tokenize(text_with_punctuation)\n", 106 | "print(\"Text Without Punctuation:\", Output)" 107 | ] 108 | }, 109 | { 110 | "cell_type": "markdown", 111 | "metadata": {}, 112 | "source": [ 113 | "# Removing Stop Words" 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 17, 119 | "metadata": { 120 | "collapsed": true 121 | }, 122 | "outputs": [], 123 | "source": [ 124 | "text_st_words = \"An apple a day keeps a doctor away, who was the person quoted this saying?\"" 125 | ] 126 | }, 127 | { 128 | "cell_type": "code", 129 | "execution_count": 18, 130 | "metadata": { 131 | "collapsed": true 132 | }, 133 | "outputs": [], 134 | "source": [ 135 | "from nltk.corpus import stopwords" 136 | ] 137 | }, 138 | { 139 | "cell_type": "code", 140 | "execution_count": 19, 141 | "metadata": { 142 | "collapsed": true 143 | }, 144 | "outputs": [], 145 | "source": [ 146 | "#Invoke all the english stopwords\n", 147 | "stop_word_list = set(stopwords.words('english'))" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": 20, 153 | "metadata": { 154 | "collapsed": true 155 | }, 156 | "outputs": [], 157 | "source": [ 158 | "#Tokenize sentence into words\n", 159 | "text = word_tokenize(text_st_words)" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": 21, 165 | "metadata": { 166 | "collapsed": true 167 | }, 168 | "outputs": [], 169 | "source": [ 170 | "#Create an empty list and append non stop words in it\n", 171 | "\n", 172 | "new_word_list = []\n", 173 | "for w in text:\n", 174 | " if w not in stop_word_list: new_word_list.append(w)" 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": 22, 180 | "metadata": {}, 181 | "outputs": [ 182 | { 183 | "name": "stdout", 184 | "output_type": "stream", 185 | "text": [ 186 | "Original Text: ['An', 'apple', 'a', 'day', 'keeps', 'a', 'doctor', 'away', ',', 'who', 'was', 'the', 'person', 'quoted', 'this', 'saying', '?']\n" 187 | ] 188 | } 189 | ], 190 | "source": [ 191 | "print(\"Original Text:\", text)" 192 | ] 193 | }, 194 | { 195 | "cell_type": "code", 196 | "execution_count": 25, 197 | "metadata": {}, 198 | "outputs": [ 199 | { 200 | "name": "stdout", 201 | "output_type": "stream", 202 | "text": [ 203 | "Text after Stop Words are removed: ['An', 'apple', 'day', 'keeps', 'doctor', 'away', ',', 'person', 'quoted', 'saying', '?']\n" 204 | ] 205 | } 206 | ], 207 | "source": [ 208 | "#Stop words like a, an, the are removed\n", 209 | "print(\"Text after Stop Words are removed:\", new_word_list)" 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": null, 215 | "metadata": { 216 | "collapsed": true 217 | }, 218 | "outputs": [], 219 | "source": [] 220 | } 221 | ], 222 | "metadata": { 223 | "kernelspec": { 224 | "display_name": "Python 3", 225 | "language": "python", 226 | "name": "python3" 227 | }, 228 | "language_info": { 229 | "codemirror_mode": { 230 | "name": "ipython", 231 | "version": 3 232 | }, 233 | "file_extension": ".py", 234 | "mimetype": "text/x-python", 235 | "name": "python", 236 | "nbconvert_exporter": "python", 237 | "pygments_lexer": "ipython3", 238 | "version": "3.6.7" 239 | } 240 | }, 241 | "nbformat": 4, 242 | "nbformat_minor": 2 243 | } 244 | -------------------------------------------------------------------------------- /Natural_Language_Processing_Concepts.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # # Tokenization 5 | 6 | # In[1]: 7 | 8 | from nltk.tokenize import sent_tokenize, word_tokenize 9 | 10 | 11 | # In[5]: 12 | 13 | #Sample Text 14 | text = """The AI, called Pluribus, defeated poker professional Darren Elias, who holds the 15 | record for most World Poker Tour titles, and Chris "Jesus" Ferguson, winner of six World Series of Poker events. 16 | Each pro separately played 5,000 hands of poker against five copies of Pluribus. In another experiment involving 17 | 13 pros, all of whom have won more than $1 million playing poker, Pluribus played five pros at a time for a total 18 | of 10,000 hands and again emerged victorious.""" 19 | 20 | 21 | # In[6]: 22 | 23 | #Tokenize paragraph into individual sentences 24 | nltk_sentences = sent_tokenize(text) 25 | print("Tokenized Sentences: ", nltk_sentences) 26 | 27 | 28 | # In[8]: 29 | 30 | #Tokenize paragraph/sentence into individual words 31 | nltk_words = word_tokenize(text) 32 | print("Tokenized Words: ", nltk_words) 33 | 34 | 35 | # In[15]: 36 | 37 | #Original Text containing punctuation 38 | text_with_punctuation = "John's burger was so! delicious that I ate it fully, #Whataburger." 39 | 40 | 41 | # In[16]: 42 | 43 | #Reoving punctuation 44 | from nltk.tokenize import RegexpTokenizer 45 | 46 | tokenize_text = RegexpTokenizer(r'\w+') #Here \w+ is used for matching one or more word characters 47 | Output = tokenize_text.tokenize(text_with_punctuation) 48 | print("Text Without Punctuation:", Output) 49 | 50 | 51 | # # Removing Stop Words 52 | 53 | # In[17]: 54 | 55 | text_st_words = "An apple a day keeps a doctor away, who was the person quoted this saying?" 56 | 57 | 58 | # In[18]: 59 | 60 | from nltk.corpus import stopwords 61 | 62 | 63 | # In[19]: 64 | 65 | #Invoke all the english stopwords 66 | stop_word_list = set(stopwords.words('english')) 67 | 68 | 69 | # In[20]: 70 | 71 | #Tokenize sentence into words 72 | text = word_tokenize(text_st_words) 73 | 74 | 75 | # In[21]: 76 | 77 | #Create an empty list and append non stop words in it 78 | 79 | new_word_list = [] 80 | for w in text: 81 | if w not in stop_word_list: new_word_list.append(w) 82 | 83 | 84 | # In[22]: 85 | 86 | print("Original Text:", text) 87 | 88 | 89 | # In[25]: 90 | 91 | #Stop words like a, an, the are removed 92 | print("Text after Stop Words are removed:", new_word_list) 93 | 94 | 95 | # In[ ]: 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Natural_Language_Processing 2 | This repository houses all the resources, contents, source codes, files, jupyter notebooks etc. related to Natural Language Processing related concepts, products and applications. One can refer this repo to learn and grasp knowledge related to NLP. 3 | -------------------------------------------------------------------------------- /Word_Embedding_using_word2Vec.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Word_Embedding_using_word2Vec.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [] 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | } 14 | }, 15 | "cells": [ 16 | { 17 | "cell_type": "code", 18 | "metadata": { 19 | "id": "AWF7esR04XPD", 20 | "colab_type": "code", 21 | "colab": { 22 | "base_uri": "https://localhost:8080/", 23 | "height": 68 24 | }, 25 | "outputId": "e73ef113-b2bb-49f2-8e1f-78b37675c47a" 26 | }, 27 | "source": [ 28 | "#Import Libraries\n", 29 | "import pandas as pd\n", 30 | "import numpy as np\n", 31 | "import string\n", 32 | "import nltk\n", 33 | "from nltk.tokenize import RegexpTokenizer\n", 34 | "from nltk.corpus import stopwords\n", 35 | "nltk.download('stopwords')" 36 | ], 37 | "execution_count": 2, 38 | "outputs": [ 39 | { 40 | "output_type": "stream", 41 | "text": [ 42 | "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", 43 | "[nltk_data] Unzipping corpora/stopwords.zip.\n" 44 | ], 45 | "name": "stdout" 46 | }, 47 | { 48 | "output_type": "execute_result", 49 | "data": { 50 | "text/plain": [ 51 | "True" 52 | ] 53 | }, 54 | "metadata": { 55 | "tags": [] 56 | }, 57 | "execution_count": 2 58 | } 59 | ] 60 | }, 61 | { 62 | "cell_type": "code", 63 | "metadata": { 64 | "id": "-XgDAVdZ5cmE", 65 | "colab_type": "code", 66 | "colab": { 67 | "resources": { 68 | "http://localhost:8080/nbextensions/google.colab/files.js": { 69 | "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=", 70 | "ok": true, 71 | "headers": [ 72 | [ 73 | "content-type", 74 | "application/javascript" 75 | ] 76 | ], 77 | "status": 200, 78 | "status_text": "" 79 | } 80 | }, 81 | "base_uri": "https://localhost:8080/", 82 | "height": 74 83 | }, 84 | "outputId": "fd95addd-924d-46f8-ac9d-98c768c05603" 85 | }, 86 | "source": [ 87 | "from google.colab import files\n", 88 | "#Upload IMDB_Dataset.csv file from local system to remote colab location\n", 89 | "files.upload()" 90 | ], 91 | "execution_count": 5, 92 | "outputs": [ 93 | { 94 | "output_type": "display_data", 95 | "data": { 96 | "text/html": [ 97 | "\n", 98 | " \n", 99 | " \n", 100 | " Upload widget is only available when the cell has been executed in the\n", 101 | " current browser session. Please rerun this cell to enable.\n", 102 | " \n", 103 | " " 104 | ], 105 | "text/plain": [ 106 | "" 107 | ] 108 | }, 109 | "metadata": { 110 | "tags": [] 111 | } 112 | }, 113 | { 114 | "output_type": "stream", 115 | "text": [ 116 | "Saving IMDB_Dataset.csv to IMDB_Dataset.csv\n" 117 | ], 118 | "name": "stdout" 119 | } 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "metadata": { 125 | "id": "u5a6cY8q4qpB", 126 | "colab_type": "code", 127 | "colab": { 128 | "base_uri": "https://localhost:8080/", 129 | "height": 204 130 | }, 131 | "outputId": "4a9d59a8-69e2-4d5d-aced-b406317d2d44" 132 | }, 133 | "source": [ 134 | "#Create dataframe and store the data from IMDB_Dataset.csv\n", 135 | "data = pd.DataFrame()\n", 136 | "data = pd.read_csv('IMDB_Dataset.csv', encoding='utf-8')\n", 137 | "data.head()" 138 | ], 139 | "execution_count": 6, 140 | "outputs": [ 141 | { 142 | "output_type": "execute_result", 143 | "data": { 144 | "text/html": [ 145 | "
\n", 146 | "\n", 159 | "\n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | "
reviewsentiment
0One of the other reviewers has mentioned that ...positive
1A wonderful little production. <br /><br />The...positive
2I thought this was a wonderful way to spend ti...positive
3Basically there's a family where a little boy ...negative
4Petter Mattei's \"Love in the Time of Money\" is...positive
\n", 195 | "
" 196 | ], 197 | "text/plain": [ 198 | " review sentiment\n", 199 | "0 One of the other reviewers has mentioned that ... positive\n", 200 | "1 A wonderful little production.

The... positive\n", 201 | "2 I thought this was a wonderful way to spend ti... positive\n", 202 | "3 Basically there's a family where a little boy ... negative\n", 203 | "4 Petter Mattei's \"Love in the Time of Money\" is... positive" 204 | ] 205 | }, 206 | "metadata": { 207 | "tags": [] 208 | }, 209 | "execution_count": 6 210 | } 211 | ] 212 | }, 213 | { 214 | "cell_type": "code", 215 | "metadata": { 216 | "id": "Z5CL3mET6vgK", 217 | "colab_type": "code", 218 | "colab": { 219 | "base_uri": "https://localhost:8080/", 220 | "height": 34 221 | }, 222 | "outputId": "ce10ac5c-6eb0-49a1-ecc4-f5bf1ec07c82" 223 | }, 224 | "source": [ 225 | "#create empty list\n", 226 | "review_data_list = list()\n", 227 | "\n", 228 | "indv_lines = data['review'].values.tolist()\n", 229 | "for line in indv_lines:\n", 230 | "\n", 231 | "\t#create word tokens as well as remove puntuation in one go\n", 232 | "\trem_tok_punc = RegexpTokenizer(r'\\w+')\n", 233 | "\n", 234 | "\ttokens = rem_tok_punc.tokenize(line)\n", 235 | "\n", 236 | "\n", 237 | "\t#convert the words to lower case\n", 238 | "\twords = [w.lower() for w in tokens]\n", 239 | "\n", 240 | "\t#Invoke all the english stopwords\n", 241 | "\tstop_word_list = set(stopwords.words('english'))\n", 242 | "\n", 243 | "\t#Remove stop words\n", 244 | "\twords = [w for w in words if not w in stop_word_list]\n", 245 | "\n", 246 | "\t#Append words in the review_data_list list.\n", 247 | "\treview_data_list.append(words)\n", 248 | "len(review_data_list)" 249 | ], 250 | "execution_count": 7, 251 | "outputs": [ 252 | { 253 | "output_type": "execute_result", 254 | "data": { 255 | "text/plain": [ 256 | "50000" 257 | ] 258 | }, 259 | "metadata": { 260 | "tags": [] 261 | }, 262 | "execution_count": 7 263 | } 264 | ] 265 | }, 266 | { 267 | "cell_type": "code", 268 | "metadata": { 269 | "id": "KJ5qoUHg7LFZ", 270 | "colab_type": "code", 271 | "colab": { 272 | "base_uri": "https://localhost:8080/", 273 | "height": 34 274 | }, 275 | "outputId": "a3ac55b0-23da-4447-ff16-0b67f9ef4343" 276 | }, 277 | "source": [ 278 | "#Train a Word2Vec model using Gensim\n", 279 | "import gensim\n", 280 | "Embedding_Dim = 100\n", 281 | "#train word2vec model\n", 282 | "model = gensim.models.Word2Vec(sentences = review_data_list, size = Embedding_Dim, workers = 4, min_count = 1)\n", 283 | "#Vocabulary size\n", 284 | "words = list(model.wv.vocab)\n", 285 | "print('Here is the Vocabulary Size.. %d' % len(words))" 286 | ], 287 | "execution_count": 8, 288 | "outputs": [ 289 | { 290 | "output_type": "stream", 291 | "text": [ 292 | "Here is the Vocabulary Size.. 101791\n" 293 | ], 294 | "name": "stdout" 295 | } 296 | ] 297 | }, 298 | { 299 | "cell_type": "code", 300 | "metadata": { 301 | "id": "DoBp0RWQ8ewW", 302 | "colab_type": "code", 303 | "colab": { 304 | "base_uri": "https://localhost:8080/", 305 | "height": 241 306 | }, 307 | "outputId": "295d972d-c1a6-4900-f93f-825e307c7dfb" 308 | }, 309 | "source": [ 310 | "#Finding similar words\n", 311 | "model.wv.most_similar('amazing')\n" 312 | ], 313 | "execution_count": 12, 314 | "outputs": [ 315 | { 316 | "output_type": "stream", 317 | "text": [ 318 | "/usr/local/lib/python3.6/dist-packages/gensim/matutils.py:737: FutureWarning: Conversion of the second argument of issubdtype from `int` to `np.signedinteger` is deprecated. In future, it will be treated as `np.int64 == np.dtype(int).type`.\n", 319 | " if np.issubdtype(vec.dtype, np.int):\n" 320 | ], 321 | "name": "stderr" 322 | }, 323 | { 324 | "output_type": "execute_result", 325 | "data": { 326 | "text/plain": [ 327 | "[('incredible', 0.8465273976325989),\n", 328 | " ('fantastic', 0.8136316537857056),\n", 329 | " ('wonderful', 0.7753651142120361),\n", 330 | " ('outstanding', 0.7413761615753174),\n", 331 | " ('awesome', 0.7389760613441467),\n", 332 | " ('brilliant', 0.7296733856201172),\n", 333 | " ('superb', 0.7106024026870728),\n", 334 | " ('fabulous', 0.7044234275817871),\n", 335 | " ('excellent', 0.7033034563064575),\n", 336 | " ('stunning', 0.7002643346786499)]" 337 | ] 338 | }, 339 | "metadata": { 340 | "tags": [] 341 | }, 342 | "execution_count": 12 343 | } 344 | ] 345 | }, 346 | { 347 | "cell_type": "code", 348 | "metadata": { 349 | "id": "jDgx11NkDeLj", 350 | "colab_type": "code", 351 | "colab": { 352 | "base_uri": "https://localhost:8080/", 353 | "height": 241 354 | }, 355 | "outputId": "53491a9c-5bfe-41c8-9c7d-337657baad30" 356 | }, 357 | "source": [ 358 | "model.wv.most_similar('awful')" 359 | ], 360 | "execution_count": 10, 361 | "outputs": [ 362 | { 363 | "output_type": "stream", 364 | "text": [ 365 | "/usr/local/lib/python3.6/dist-packages/gensim/matutils.py:737: FutureWarning: Conversion of the second argument of issubdtype from `int` to `np.signedinteger` is deprecated. In future, it will be treated as `np.int64 == np.dtype(int).type`.\n", 366 | " if np.issubdtype(vec.dtype, np.int):\n" 367 | ], 368 | "name": "stderr" 369 | }, 370 | { 371 | "output_type": "execute_result", 372 | "data": { 373 | "text/plain": [ 374 | "[('terrible', 0.8716390132904053),\n", 375 | " ('horrible', 0.8612148761749268),\n", 376 | " ('dreadful', 0.8571207523345947),\n", 377 | " ('atrocious', 0.8318002820014954),\n", 378 | " ('lousy', 0.8174184560775757),\n", 379 | " ('horrid', 0.8009194135665894),\n", 380 | " ('sucks', 0.7898591160774231),\n", 381 | " ('abysmal', 0.7734290361404419),\n", 382 | " ('pathetic', 0.7643465995788574),\n", 383 | " ('horrendous', 0.7613471746444702)]" 384 | ] 385 | }, 386 | "metadata": { 387 | "tags": [] 388 | }, 389 | "execution_count": 10 390 | } 391 | ] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "metadata": { 396 | "id": "XWdr4Dg7FYI0", 397 | "colab_type": "code", 398 | "colab": { 399 | "base_uri": "https://localhost:8080/", 400 | "height": 187 401 | }, 402 | "outputId": "d95b4238-6071-4236-eec3-0bf5bbdc2703" 403 | }, 404 | "source": [ 405 | "#Performing some mathematics on word vectors queen + man - woman = ?\n", 406 | "model.wv.most_similar_cosmul(positive=['queen','man'], negative=['woman'])" 407 | ], 408 | "execution_count": 11, 409 | "outputs": [ 410 | { 411 | "output_type": "execute_result", 412 | "data": { 413 | "text/plain": [ 414 | "[('iii', 0.9031829833984375),\n", 415 | " ('legend', 0.8847224712371826),\n", 416 | " ('aka', 0.8751254081726074),\n", 417 | " ('savage', 0.874505877494812),\n", 418 | " ('pfalz', 0.8636574149131775),\n", 419 | " ('vs', 0.8631209135055542),\n", 420 | " ('ii', 0.8616292476654053),\n", 421 | " ('samurai', 0.8609600067138672),\n", 422 | " ('hunter', 0.8550093173980713),\n", 423 | " ('warrior', 0.8518388271331787)]" 424 | ] 425 | }, 426 | "metadata": { 427 | "tags": [] 428 | }, 429 | "execution_count": 11 430 | } 431 | ] 432 | }, 433 | { 434 | "cell_type": "code", 435 | "metadata": { 436 | "id": "snbuPiAPFa9i", 437 | "colab_type": "code", 438 | "colab": { 439 | "base_uri": "https://localhost:8080/", 440 | "height": 122 441 | }, 442 | "outputId": "31ef88d9-1799-4be5-90d3-15f72686dca8" 443 | }, 444 | "source": [ 445 | "#Finding the odd word out from the list of words given\n", 446 | "print(model.wv.doesnt_match(\"man woman car\".split()))" 447 | ], 448 | "execution_count": 14, 449 | "outputs": [ 450 | { 451 | "output_type": "stream", 452 | "text": [ 453 | "car\n" 454 | ], 455 | "name": "stdout" 456 | }, 457 | { 458 | "output_type": "stream", 459 | "text": [ 460 | "/usr/local/lib/python3.6/dist-packages/gensim/models/keyedvectors.py:895: FutureWarning: arrays to stack must be passed as a \"sequence\" type such as list or tuple. Support for non-sequence iterables such as generators is deprecated as of NumPy 1.16 and will raise an error in the future.\n", 461 | " vectors = vstack(self.word_vec(word, use_norm=True) for word in used_words).astype(REAL)\n", 462 | "/usr/local/lib/python3.6/dist-packages/gensim/matutils.py:737: FutureWarning: Conversion of the second argument of issubdtype from `int` to `np.signedinteger` is deprecated. In future, it will be treated as `np.int64 == np.dtype(int).type`.\n", 463 | " if np.issubdtype(vec.dtype, np.int):\n" 464 | ], 465 | "name": "stderr" 466 | } 467 | ] 468 | }, 469 | { 470 | "cell_type": "code", 471 | "metadata": { 472 | "id": "25X3qImdFzOM", 473 | "colab_type": "code", 474 | "colab": { 475 | "base_uri": "https://localhost:8080/", 476 | "height": 888 477 | }, 478 | "outputId": "86f55590-335b-46ee-a760-f5b9f1e2b85a" 479 | }, 480 | "source": [ 481 | "# Importing bokeh libraries for showing how words of similar context are grouped together\n", 482 | "import bokeh.plotting as bp\n", 483 | "from bokeh.models import HoverTool, BoxSelectTool\n", 484 | "from bokeh.plotting import figure, show, output_notebook\n", 485 | "\n", 486 | "#Defining the chart\n", 487 | "output_notebook()\n", 488 | "plot_chart = bp.figure(plot_width=700, plot_height=600, title=\"A map/plot of 5000 word vectors\",\n", 489 | " tools=\"pan,wheel_zoom,box_zoom,reset,hover,previewsave\",\n", 490 | " x_axis_type=None, y_axis_type=None, min_border=1)\n", 491 | "\n", 492 | "#Extracting the list of word vectors, limiting to 5000, each is of 200 dimensions\n", 493 | "word_vectors = [model[w] for w in list(model.wv.vocab.keys())[:5000]]\n", 494 | "\n", 495 | "# Reducing dimensionality by converting the vectors to 2d vectors\n", 496 | "from sklearn.manifold import TSNE\n", 497 | "tsne_model = TSNE(n_components=2, verbose=1, random_state=0)\n", 498 | "tsne_w2v = tsne_model.fit_transform(word_vectors)\n", 499 | "\n", 500 | "# Storing data in a dataframe\n", 501 | "tsne_df = pd.DataFrame(tsne_w2v, columns=['x', 'y'])\n", 502 | "tsne_df['words'] = list(model.wv.vocab.keys())[:5000]\n", 503 | "\n", 504 | "# Corresponding word appears when you hover on the data point.\n", 505 | "plot_chart.scatter(x='x', y='y', source=tsne_df)\n", 506 | "hover = plot_chart.select(dict(type=HoverTool))\n", 507 | "hover.tooltips={\"word\": \"@words\"}\n", 508 | "show(plot_chart)\n" 509 | ], 510 | "execution_count": 16, 511 | "outputs": [ 512 | { 513 | "output_type": "display_data", 514 | "data": { 515 | "text/html": [ 516 | "\n", 517 | "
\n", 518 | " \n", 519 | " Loading BokehJS ...\n", 520 | "
" 521 | ] 522 | }, 523 | "metadata": { 524 | "tags": [] 525 | } 526 | }, 527 | { 528 | "output_type": "display_data", 529 | "data": { 530 | "application/javascript": [ 531 | "\n", 532 | "(function(root) {\n", 533 | " function now() {\n", 534 | " return new Date();\n", 535 | " }\n", 536 | "\n", 537 | " var force = true;\n", 538 | "\n", 539 | " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", 540 | " root._bokeh_onload_callbacks = [];\n", 541 | " root._bokeh_is_loading = undefined;\n", 542 | " }\n", 543 | "\n", 544 | " var JS_MIME_TYPE = 'application/javascript';\n", 545 | " var HTML_MIME_TYPE = 'text/html';\n", 546 | " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", 547 | " var CLASS_NAME = 'output_bokeh rendered_html';\n", 548 | "\n", 549 | " /**\n", 550 | " * Render data to the DOM node\n", 551 | " */\n", 552 | " function render(props, node) {\n", 553 | " var script = document.createElement(\"script\");\n", 554 | " node.appendChild(script);\n", 555 | " }\n", 556 | "\n", 557 | " /**\n", 558 | " * Handle when an output is cleared or removed\n", 559 | " */\n", 560 | " function handleClearOutput(event, handle) {\n", 561 | " var cell = handle.cell;\n", 562 | "\n", 563 | " var id = cell.output_area._bokeh_element_id;\n", 564 | " var server_id = cell.output_area._bokeh_server_id;\n", 565 | " // Clean up Bokeh references\n", 566 | " if (id != null && id in Bokeh.index) {\n", 567 | " Bokeh.index[id].model.document.clear();\n", 568 | " delete Bokeh.index[id];\n", 569 | " }\n", 570 | "\n", 571 | " if (server_id !== undefined) {\n", 572 | " // Clean up Bokeh references\n", 573 | " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", 574 | " cell.notebook.kernel.execute(cmd, {\n", 575 | " iopub: {\n", 576 | " output: function(msg) {\n", 577 | " var id = msg.content.text.trim();\n", 578 | " if (id in Bokeh.index) {\n", 579 | " Bokeh.index[id].model.document.clear();\n", 580 | " delete Bokeh.index[id];\n", 581 | " }\n", 582 | " }\n", 583 | " }\n", 584 | " });\n", 585 | " // Destroy server and session\n", 586 | " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", 587 | " cell.notebook.kernel.execute(cmd);\n", 588 | " }\n", 589 | " }\n", 590 | "\n", 591 | " /**\n", 592 | " * Handle when a new output is added\n", 593 | " */\n", 594 | " function handleAddOutput(event, handle) {\n", 595 | " var output_area = handle.output_area;\n", 596 | " var output = handle.output;\n", 597 | "\n", 598 | " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", 599 | " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", 600 | " return\n", 601 | " }\n", 602 | "\n", 603 | " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", 604 | "\n", 605 | " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", 606 | " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", 607 | " // store reference to embed id on output_area\n", 608 | " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", 609 | " }\n", 610 | " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", 611 | " var bk_div = document.createElement(\"div\");\n", 612 | " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", 613 | " var script_attrs = bk_div.children[0].attributes;\n", 614 | " for (var i = 0; i < script_attrs.length; i++) {\n", 615 | " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", 616 | " }\n", 617 | " // store reference to server id on output_area\n", 618 | " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", 619 | " }\n", 620 | " }\n", 621 | "\n", 622 | " function register_renderer(events, OutputArea) {\n", 623 | "\n", 624 | " function append_mime(data, metadata, element) {\n", 625 | " // create a DOM node to render to\n", 626 | " var toinsert = this.create_output_subarea(\n", 627 | " metadata,\n", 628 | " CLASS_NAME,\n", 629 | " EXEC_MIME_TYPE\n", 630 | " );\n", 631 | " this.keyboard_manager.register_events(toinsert);\n", 632 | " // Render to node\n", 633 | " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", 634 | " render(props, toinsert[toinsert.length - 1]);\n", 635 | " element.append(toinsert);\n", 636 | " return toinsert\n", 637 | " }\n", 638 | "\n", 639 | " /* Handle when an output is cleared or removed */\n", 640 | " events.on('clear_output.CodeCell', handleClearOutput);\n", 641 | " events.on('delete.Cell', handleClearOutput);\n", 642 | "\n", 643 | " /* Handle when a new output is added */\n", 644 | " events.on('output_added.OutputArea', handleAddOutput);\n", 645 | "\n", 646 | " /**\n", 647 | " * Register the mime type and append_mime function with output_area\n", 648 | " */\n", 649 | " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", 650 | " /* Is output safe? */\n", 651 | " safe: true,\n", 652 | " /* Index of renderer in `output_area.display_order` */\n", 653 | " index: 0\n", 654 | " });\n", 655 | " }\n", 656 | "\n", 657 | " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", 658 | " if (root.Jupyter !== undefined) {\n", 659 | " var events = require('base/js/events');\n", 660 | " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", 661 | "\n", 662 | " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", 663 | " register_renderer(events, OutputArea);\n", 664 | " }\n", 665 | " }\n", 666 | "\n", 667 | " \n", 668 | " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", 669 | " root._bokeh_timeout = Date.now() + 5000;\n", 670 | " root._bokeh_failed_load = false;\n", 671 | " }\n", 672 | "\n", 673 | " var NB_LOAD_WARNING = {'data': {'text/html':\n", 674 | " \"
\\n\"+\n", 675 | " \"

\\n\"+\n", 676 | " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", 677 | " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", 678 | " \"

\\n\"+\n", 679 | " \"\\n\"+\n", 683 | " \"\\n\"+\n", 684 | " \"from bokeh.resources import INLINE\\n\"+\n", 685 | " \"output_notebook(resources=INLINE)\\n\"+\n", 686 | " \"\\n\"+\n", 687 | " \"
\"}};\n", 688 | "\n", 689 | " function display_loaded() {\n", 690 | " var el = document.getElementById(\"1028\");\n", 691 | " if (el != null) {\n", 692 | " el.textContent = \"BokehJS is loading...\";\n", 693 | " }\n", 694 | " if (root.Bokeh !== undefined) {\n", 695 | " if (el != null) {\n", 696 | " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", 697 | " }\n", 698 | " } else if (Date.now() < root._bokeh_timeout) {\n", 699 | " setTimeout(display_loaded, 100)\n", 700 | " }\n", 701 | " }\n", 702 | "\n", 703 | "\n", 704 | " function run_callbacks() {\n", 705 | " try {\n", 706 | " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", 707 | " }\n", 708 | " finally {\n", 709 | " delete root._bokeh_onload_callbacks\n", 710 | " }\n", 711 | " console.info(\"Bokeh: all callbacks have finished\");\n", 712 | " }\n", 713 | "\n", 714 | " function load_libs(js_urls, callback) {\n", 715 | " root._bokeh_onload_callbacks.push(callback);\n", 716 | " if (root._bokeh_is_loading > 0) {\n", 717 | " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", 718 | " return null;\n", 719 | " }\n", 720 | " if (js_urls == null || js_urls.length === 0) {\n", 721 | " run_callbacks();\n", 722 | " return null;\n", 723 | " }\n", 724 | " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", 725 | " root._bokeh_is_loading = js_urls.length;\n", 726 | " for (var i = 0; i < js_urls.length; i++) {\n", 727 | " var url = js_urls[i];\n", 728 | " var s = document.createElement('script');\n", 729 | " s.src = url;\n", 730 | " s.async = false;\n", 731 | " s.onreadystatechange = s.onload = function() {\n", 732 | " root._bokeh_is_loading--;\n", 733 | " if (root._bokeh_is_loading === 0) {\n", 734 | " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", 735 | " run_callbacks()\n", 736 | " }\n", 737 | " };\n", 738 | " s.onerror = function() {\n", 739 | " console.warn(\"failed to load library \" + url);\n", 740 | " };\n", 741 | " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", 742 | " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", 743 | " }\n", 744 | " };var element = document.getElementById(\"1028\");\n", 745 | " if (element == null) {\n", 746 | " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '1028' but no matching script tag was found. \")\n", 747 | " return false;\n", 748 | " }\n", 749 | "\n", 750 | " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.0.4.min.js\"];\n", 751 | "\n", 752 | " var inline_js = [\n", 753 | " function(Bokeh) {\n", 754 | " Bokeh.set_log_level(\"info\");\n", 755 | " },\n", 756 | " \n", 757 | " function(Bokeh) {\n", 758 | " \n", 759 | " },\n", 760 | " function(Bokeh) {\n", 761 | " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.css\");\n", 762 | " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.css\");\n", 763 | " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.css\");\n", 764 | " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.css\");\n", 765 | " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.4.min.css\");\n", 766 | " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.4.min.css\");\n", 767 | " }\n", 768 | " ];\n", 769 | "\n", 770 | " function run_inline_js() {\n", 771 | " \n", 772 | " if ((root.Bokeh !== undefined) || (force === true)) {\n", 773 | " for (var i = 0; i < inline_js.length; i++) {\n", 774 | " inline_js[i].call(root, root.Bokeh);\n", 775 | " }if (force === true) {\n", 776 | " display_loaded();\n", 777 | " }} else if (Date.now() < root._bokeh_timeout) {\n", 778 | " setTimeout(run_inline_js, 100);\n", 779 | " } else if (!root._bokeh_failed_load) {\n", 780 | " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", 781 | " root._bokeh_failed_load = true;\n", 782 | " } else if (force !== true) {\n", 783 | " var cell = $(document.getElementById(\"1028\")).parents('.cell').data().cell;\n", 784 | " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", 785 | " }\n", 786 | "\n", 787 | " }\n", 788 | "\n", 789 | " if (root._bokeh_is_loading === 0) {\n", 790 | " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", 791 | " run_inline_js();\n", 792 | " } else {\n", 793 | " load_libs(js_urls, function() {\n", 794 | " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", 795 | " run_inline_js();\n", 796 | " });\n", 797 | " }\n", 798 | "}(window));" 799 | ], 800 | "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"1028\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"1028\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid '1028' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.0.4.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.4.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.4.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"1028\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" 801 | }, 802 | "metadata": { 803 | "tags": [] 804 | } 805 | }, 806 | { 807 | "output_type": "stream", 808 | "text": [ 809 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:12: DeprecationWarning: Call to deprecated `__getitem__` (Method will be removed in 4.0.0, use self.wv.__getitem__() instead).\n", 810 | " if sys.path[0] == '':\n" 811 | ], 812 | "name": "stderr" 813 | }, 814 | { 815 | "output_type": "stream", 816 | "text": [ 817 | "[t-SNE] Computing 91 nearest neighbors...\n", 818 | "[t-SNE] Indexed 5000 samples in 0.016s...\n", 819 | "[t-SNE] Computed neighbors for 5000 samples in 5.854s...\n", 820 | "[t-SNE] Computed conditional probabilities for sample 1000 / 5000\n", 821 | "[t-SNE] Computed conditional probabilities for sample 2000 / 5000\n", 822 | "[t-SNE] Computed conditional probabilities for sample 3000 / 5000\n", 823 | "[t-SNE] Computed conditional probabilities for sample 4000 / 5000\n", 824 | "[t-SNE] Computed conditional probabilities for sample 5000 / 5000\n", 825 | "[t-SNE] Mean sigma: 0.275955\n", 826 | "[t-SNE] KL divergence after 250 iterations with early exaggeration: 83.059464\n", 827 | "[t-SNE] KL divergence after 1000 iterations: 2.246158\n" 828 | ], 829 | "name": "stdout" 830 | }, 831 | { 832 | "output_type": "display_data", 833 | "data": { 834 | "text/html": [ 835 | "\n", 836 | "\n", 837 | "\n", 838 | "\n", 839 | "\n", 840 | "\n", 841 | "
\n" 842 | ] 843 | }, 844 | "metadata": { 845 | "tags": [] 846 | } 847 | }, 848 | { 849 | "output_type": "display_data", 850 | "data": { 851 | "application/javascript": [ 852 | "(function(root) {\n", 853 | " function embed_document(root) {\n", 854 | " \n", 855 | " var docs_json = {\"aa18fd71-42e9-4ed8-ab47-31ea1f2b2682\":{\"roots\":{\"references\":[{\"attributes\":{\"min_border\":1,\"plot_width\":700,\"renderers\":[{\"id\":\"1048\",\"type\":\"BoxAnnotation\"},{\"id\":\"1059\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1029\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1046\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1032\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1036\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1034\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1038\",\"type\":\"LinearScale\"}},\"id\":\"1030\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null},\"id\":\"1034\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1064\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1036\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"data\":{\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999],\"words\":[\"one\",\"reviewers\",\"mentioned\",\"watching\",\"1\",\"oz\",\"episode\",\"hooked\",\"right\",\"exactly\",\"happened\",\"br\",\"first\",\"thing\",\"struck\",\"brutality\",\"unflinching\",\"scenes\",\"violence\",\"set\",\"word\",\"go\",\"trust\",\"show\",\"faint\",\"hearted\",\"timid\",\"pulls\",\"punches\",\"regards\",\"drugs\",\"sex\",\"hardcore\",\"classic\",\"use\",\"called\",\"nickname\",\"given\",\"oswald\",\"maximum\",\"security\",\"state\",\"penitentary\",\"focuses\",\"mainly\",\"emerald\",\"city\",\"experimental\",\"section\",\"prison\",\"cells\",\"glass\",\"fronts\",\"face\",\"inwards\",\"privacy\",\"high\",\"agenda\",\"em\",\"home\",\"many\",\"aryans\",\"muslims\",\"gangstas\",\"latinos\",\"christians\",\"italians\",\"irish\",\"scuffles\",\"death\",\"stares\",\"dodgy\",\"dealings\",\"shady\",\"agreements\",\"never\",\"far\",\"away\",\"would\",\"say\",\"main\",\"appeal\",\"due\",\"fact\",\"goes\",\"shows\",\"dare\",\"forget\",\"pretty\",\"pictures\",\"painted\",\"mainstream\",\"audiences\",\"charm\",\"romance\",\"mess\",\"around\",\"ever\",\"saw\",\"nasty\",\"surreal\",\"ready\",\"watched\",\"developed\",\"taste\",\"got\",\"accustomed\",\"levels\",\"graphic\",\"injustice\",\"crooked\",\"guards\",\"sold\",\"nickel\",\"inmates\",\"kill\",\"order\",\"get\",\"well\",\"mannered\",\"middle\",\"class\",\"turned\",\"bitches\",\"lack\",\"street\",\"skills\",\"experience\",\"may\",\"become\",\"comfortable\",\"uncomfortable\",\"viewing\",\"thats\",\"touch\",\"darker\",\"side\",\"wonderful\",\"little\",\"production\",\"filming\",\"technique\",\"unassuming\",\"old\",\"time\",\"bbc\",\"fashion\",\"gives\",\"comforting\",\"sometimes\",\"discomforting\",\"sense\",\"realism\",\"entire\",\"piece\",\"actors\",\"extremely\",\"chosen\",\"michael\",\"sheen\",\"polari\",\"voices\",\"pat\",\"truly\",\"see\",\"seamless\",\"editing\",\"guided\",\"references\",\"williams\",\"diary\",\"entries\",\"worth\",\"terrificly\",\"written\",\"performed\",\"masterful\",\"great\",\"master\",\"comedy\",\"life\",\"really\",\"comes\",\"things\",\"fantasy\",\"guard\",\"rather\",\"traditional\",\"dream\",\"techniques\",\"remains\",\"solid\",\"disappears\",\"plays\",\"knowledge\",\"senses\",\"particularly\",\"concerning\",\"orton\",\"halliwell\",\"sets\",\"flat\",\"murals\",\"decorating\",\"every\",\"surface\",\"terribly\",\"done\",\"thought\",\"way\",\"spend\",\"hot\",\"summer\",\"weekend\",\"sitting\",\"air\",\"conditioned\",\"theater\",\"light\",\"plot\",\"simplistic\",\"dialogue\",\"witty\",\"characters\",\"likable\",\"even\",\"bread\",\"suspected\",\"serial\",\"killer\",\"disappointed\",\"realize\",\"match\",\"point\",\"2\",\"risk\",\"addiction\",\"proof\",\"woody\",\"allen\",\"still\",\"fully\",\"control\",\"style\",\"us\",\"grown\",\"love\",\"laughed\",\"comedies\",\"years\",\"decade\",\"impressed\",\"scarlet\",\"johanson\",\"managed\",\"tone\",\"sexy\",\"image\",\"jumped\",\"average\",\"spirited\",\"young\",\"woman\",\"crown\",\"jewel\",\"career\",\"wittier\",\"devil\",\"wears\",\"prada\",\"interesting\",\"superman\",\"friends\",\"basically\",\"family\",\"boy\",\"jake\",\"thinks\",\"zombie\",\"closet\",\"parents\",\"fighting\",\"movie\",\"slower\",\"soap\",\"opera\",\"suddenly\",\"decides\",\"rambo\",\"ok\",\"going\",\"make\",\"film\",\"must\",\"decide\",\"thriller\",\"drama\",\"watchable\",\"divorcing\",\"arguing\",\"like\",\"real\",\"totally\",\"ruins\",\"expected\",\"boogeyman\",\"similar\",\"instead\",\"meaningless\",\"spots\",\"3\",\"10\",\"playing\",\"descent\",\"dialogs\",\"shots\",\"ignore\",\"petter\",\"mattei\",\"money\",\"visually\",\"stunning\",\"watch\",\"mr\",\"offers\",\"vivid\",\"portrait\",\"human\",\"relations\",\"seems\",\"telling\",\"power\",\"success\",\"people\",\"different\",\"situations\",\"encounter\",\"variation\",\"arthur\",\"schnitzler\",\"play\",\"theme\",\"director\",\"transfers\",\"action\",\"present\",\"new\",\"york\",\"meet\",\"connect\",\"connected\",\"another\",\"next\",\"person\",\"know\",\"previous\",\"contact\",\"stylishly\",\"sophisticated\",\"luxurious\",\"look\",\"taken\",\"live\",\"world\",\"habitat\",\"gets\",\"souls\",\"picture\",\"stages\",\"loneliness\",\"inhabits\",\"big\",\"best\",\"place\",\"find\",\"sincere\",\"fulfillment\",\"discerns\",\"case\",\"acting\",\"good\",\"direction\",\"steve\",\"buscemi\",\"rosario\",\"dawson\",\"carol\",\"kane\",\"imperioli\",\"adrian\",\"grenier\",\"rest\",\"talented\",\"cast\",\"come\",\"alive\",\"wish\",\"luck\",\"await\",\"anxiously\",\"work\",\"probably\",\"favorite\",\"story\",\"selflessness\",\"sacrifice\",\"dedication\",\"noble\",\"cause\",\"preachy\",\"boring\",\"despite\",\"seen\",\"15\",\"times\",\"last\",\"25\",\"paul\",\"lukas\",\"performance\",\"brings\",\"tears\",\"eyes\",\"bette\",\"davis\",\"sympathetic\",\"roles\",\"delight\",\"kids\",\"grandma\",\"says\",\"dressed\",\"midgets\",\"children\",\"makes\",\"fun\",\"mother\",\"slow\",\"awakening\",\"happening\",\"roof\",\"believable\",\"startling\",\"dozen\",\"thumbs\",\"sure\",\"resurrection\",\"dated\",\"seahunt\",\"series\",\"tech\",\"today\",\"bring\",\"back\",\"kid\",\"excitement\",\"grew\",\"black\",\"white\",\"tv\",\"gunsmoke\",\"hero\",\"week\",\"vote\",\"comeback\",\"sea\",\"hunt\",\"need\",\"change\",\"pace\",\"water\",\"adventure\",\"oh\",\"thank\",\"outlet\",\"view\",\"viewpoints\",\"movies\",\"ole\",\"believe\",\"wanna\",\"nice\",\"read\",\"plus\",\"points\",\"rhymes\",\"lines\",\"let\",\"submit\",\"leave\",\"doubt\",\"quit\",\"lets\",\"amazing\",\"fresh\",\"innovative\",\"idea\",\"70\",\"aired\",\"7\",\"8\",\"brilliant\",\"dropped\",\"1990\",\"funny\",\"anymore\",\"continued\",\"decline\",\"complete\",\"waste\",\"disgraceful\",\"fallen\",\"writing\",\"painfully\",\"bad\",\"performances\",\"almost\",\"mildly\",\"entertaining\",\"respite\",\"guest\",\"hosts\",\"hard\",\"creator\",\"hand\",\"selected\",\"original\",\"also\",\"chose\",\"band\",\"hacks\",\"followed\",\"recognize\",\"brilliance\",\"fit\",\"replace\",\"mediocrity\",\"felt\",\"give\",\"stars\",\"respect\",\"made\",\"huge\",\"awful\",\"encouraged\",\"positive\",\"comments\",\"looking\",\"forward\",\"mistake\",\"950\",\"films\",\"worst\",\"pacing\",\"storyline\",\"soundtrack\",\"song\",\"lame\",\"country\",\"tune\",\"played\",\"less\",\"four\",\"looks\",\"cheap\",\"extreme\",\"rarely\",\"happy\",\"end\",\"credits\",\"prevents\",\"giving\",\"score\",\"harvey\",\"keitel\",\"least\",\"making\",\"bit\",\"effort\",\"obsessives\",\"gut\",\"wrenching\",\"laughter\",\"hell\",\"mom\",\"liked\",\"camp\",\"phil\",\"alien\",\"quirky\",\"humour\",\"based\",\"oddness\",\"everything\",\"actual\",\"punchlines\",\"odd\",\"progressed\",\"jokes\",\"low\",\"budget\",\"problem\",\"eventually\",\"lost\",\"interest\",\"imagine\",\"stoner\",\"currently\",\"partaking\",\"something\",\"better\",\"try\",\"brother\",\"planet\",\"12\",\"came\",\"recall\",\"scariest\",\"scene\",\"bird\",\"eating\",\"men\",\"dangling\",\"helplessly\",\"parachutes\",\"horror\",\"cheesy\",\"b\",\"saturday\",\"afternoons\",\"tired\",\"formula\",\"monster\",\"type\",\"usually\",\"included\",\"beautiful\",\"might\",\"daughter\",\"professor\",\"resolution\",\"died\",\"care\",\"much\",\"romantic\",\"angle\",\"year\",\"predictable\",\"plots\",\"unintentional\",\"humor\",\"later\",\"psycho\",\"loved\",\"star\",\"janet\",\"leigh\",\"bumped\",\"early\",\"sat\",\"took\",\"notice\",\"since\",\"screenwriters\",\"scary\",\"possible\",\"worn\",\"rules\",\"im\",\"fan\",\"boll\",\"enjoyed\",\"postal\",\"maybe\",\"apparently\",\"bought\",\"rights\",\"cry\",\"long\",\"ago\",\"game\",\"finsished\",\"killing\",\"mercs\",\"infiltrating\",\"secret\",\"research\",\"labs\",\"located\",\"tropical\",\"island\",\"warned\",\"schemed\",\"together\",\"along\",\"legion\",\"schmucks\",\"feeling\",\"loneley\",\"invites\",\"three\",\"countrymen\",\"players\",\"names\",\"til\",\"schweiger\",\"udo\",\"kier\",\"ralf\",\"moeller\",\"actually\",\"selfs\",\"biz\",\"tale\",\"jack\",\"carver\",\"yes\",\"german\",\"hail\",\"bratwurst\",\"dudes\",\"however\",\"tils\",\"badass\",\"complained\",\"staying\",\"true\",\"whole\",\"perspective\",\"looked\",\"kicking\",\"beyond\",\"demented\",\"evil\",\"mad\",\"scientist\",\"dr\",\"krieger\",\"genetically\",\"mutated\",\"soldiers\",\"gms\",\"performing\",\"top\",\"reminds\",\"spoiler\",\"vancouver\",\"reason\",\"palm\",\"trees\",\"rich\",\"lumberjack\",\"woods\",\"gone\",\"started\",\"mehehe\",\"cannot\",\"stay\",\"bolls\",\"shenanigans\",\"delivers\",\"meaning\",\"suck\",\"mentioning\",\"imply\",\"areas\",\"boat\",\"cromed\",\"albino\",\"squad\",\"enters\",\"laugh\",\"reeks\",\"scheisse\",\"poop\",\"simpletons\",\"fa\",\"r\",\"take\",\"wiff\",\"ahead\",\"btw\",\"annoying\",\"sidekick\",\"shoot\",\"minutes\",\"screen\",\"shakespeare\",\"appreciate\",\"trying\",\"masses\",\"ruin\",\"scottish\",\"certain\",\"rev\",\"bowdler\",\"hence\",\"bowdlerization\",\"tried\",\"victorian\",\"era\",\"words\",\"improve\",\"perfection\",\"write\",\"ten\",\"text\",\"english\",\"composition\",\"forte\",\"keep\",\"saying\",\"cut\",\"fantastic\",\"prisoners\",\"famous\",\"george\",\"clooney\",\"roll\",\"man\",\"constant\",\"sorrow\",\"recommand\",\"everybody\",\"greetings\",\"bart\",\"kind\",\"drawn\",\"erotic\",\"amateurish\",\"unbelievable\",\"bits\",\"sort\",\"school\",\"project\",\"rosanna\",\"arquette\",\"thinking\",\"stock\",\"bizarre\",\"supposed\",\"midwest\",\"town\",\"involved\",\"lessons\",\"learned\",\"insights\",\"stilted\",\"quite\",\"ridiculous\",\"lots\",\"skin\",\"intrigues\",\"videotaped\",\"nonsense\",\"bisexual\",\"relationship\",\"nowhere\",\"heterosexual\",\"encounters\",\"absurd\",\"dance\",\"stereotyped\",\"pass\",\"million\",\"miles\",\"wasted\",\"could\",\"spent\",\"starving\",\"aids\",\"africa\",\"simply\",\"remade\",\"fails\",\"capture\",\"flavor\",\"terror\",\"1963\",\"title\",\"liam\",\"neeson\",\"excellent\",\"always\",\"holds\",\"exception\",\"owen\",\"wilson\",\"feel\",\"character\",\"luke\",\"major\",\"fault\",\"version\",\"strayed\",\"shirley\",\"jackson\",\"attempts\",\"grandiose\",\"thrill\",\"earlier\",\"trade\",\"snazzier\",\"special\",\"effects\",\"enjoy\",\"friction\",\"older\",\"horrible\",\"continuous\",\"minute\",\"fight\",\"chance\",\"development\",\"busy\",\"running\",\"sword\",\"emotional\",\"attachment\",\"except\",\"machine\",\"wanted\",\"destroy\",\"blatantly\",\"stolen\",\"lotr\",\"wars\",\"matrix\",\"examples\",\"ghost\",\"final\",\"yoda\",\"obee\",\"vader\",\"spider\",\"beginning\",\"frodo\",\"attacked\",\"return\",\"kings\",\"elijah\",\"wood\",\"victim\",\"wait\",\"hypnotizes\",\"stings\",\"wraps\",\"uh\",\"hello\",\"vs\",\"humans\",\"terminator\",\"someone\",\"tell\",\"nazi\",\"juvenile\",\"line\",\"rushed\",\"conclusion\",\"adult\",\"either\",\"disappointment\",\"save\",\"remember\",\"cinema\",\"dark\",\"places\",\"nervous\",\"74\",\"75\",\"dad\",\"sister\",\"newbury\",\"berkshire\",\"england\",\"tigers\",\"snow\",\"appearance\",\"grizzly\",\"adams\",\"actor\",\"dan\",\"haggery\",\"think\",\"shot\",\"dies\",\"anyone\",\"knows\",\"dvd\",\"etc\",\"please\",\"fitness\",\"club\",\"shame\",\"nearest\",\"20\",\"hear\",\"others\",\"stinkers\",\"nominated\",\"golden\",\"globe\",\"female\",\"renaissance\",\"painter\",\"mangled\",\"recognition\",\"complaint\",\"liberties\",\"facts\",\"perfectly\",\"fine\",\"accounts\",\"artist\",\"dishwater\",\"dull\",\"script\",\"suppose\",\"enough\",\"naked\",\"factual\",\"hurriedly\",\"capped\",\"summary\",\"saved\",\"couple\",\"hours\",\"favored\",\"brevity\",\"die\",\"sequels\",\"surprise\",\"1990s\",\"glut\",\"cashed\",\"wrong\",\"guy\",\"concept\",\"cliffhanger\",\"mountain\",\"rescue\",\"sly\",\"stop\",\"stallone\",\"nit\",\"pickers\",\"especially\",\"expert\",\"climbing\",\"base\",\"jumping\",\"aviation\",\"facial\",\"expressions\",\"full\",\"excuses\",\"dismiss\",\"overblown\",\"pile\",\"junk\",\"acted\",\"horse\",\"lovable\",\"undeniably\",\"romp\",\"plenty\",\"thrills\",\"unintentionally\",\"laughs\",\"john\",\"lithgows\",\"sneery\",\"evilness\",\"tick\",\"box\",\"baddies\",\"permanently\",\"harassed\",\"hapless\",\"turncoat\",\"agent\",\"rex\",\"linn\",\"travers\",\"henry\",\"rooker\",\"noteworthy\",\"cringe\",\"worthy\",\"hal\",\"insists\",\"constantly\",\"shrieking\",\"painful\",\"disbelief\",\"captors\",\"hurt\",\"anybody\",\"whilst\",\"surely\",\"ralph\",\"waite\",\"frank\",\"grinning\",\"girl\",\"plummets\",\"mention\",\"former\",\"london\",\"burning\",\"craig\",\"fairbrass\",\"brit\",\"cropper\",\"using\",\"football\",\"help\",\"needed\",\"judgement\",\"cares\",\"happen\",\"lower\",\"expectations\",\"turn\",\"volume\",\"qaulen\",\"wearing\",\"helicopter\",\"terrible\",\"misfortune\",\"entirety\",\"f\",\"aspects\",\"paper\",\"thin\",\"sequences\",\"fake\",\"packed\",\"crappy\",\"liners\",\"respectable\",\"amusing\",\"geared\",\"towards\",\"women\",\"utterly\",\"unattractive\",\"wrinkled\",\"appear\",\"weird\",\"costumes\",\"fail\",\"miserably\",\"absolutely\",\"5\",\"hrs\",\"regret\",\"rajnikanth\",\"carries\",\"shoulders\",\"although\",\"anything\",\"music\",\"rehman\",\"takes\",\"grow\",\"heard\",\"start\",\"liking\",\"straight\",\"anime\",\"matter\",\"used\",\"speed\",\"racer\",\"preschool\",\"several\",\"hilarious\",\"c\",\"godzilla\",\"lot\",\"moving\",\"usual\",\"fx\",\"sudden\",\"boom\",\"wwwaaaaayyyyy\",\"downhill\",\"animation\",\"worse\",\"crissakes\",\"vividly\",\"bunch\",\"run\",\"dinosaurs\",\"addition\",\"transition\",\"unorganized\",\"dub\",\"viewed\",\"horrid\",\"begging\",\"tape\",\"vhs\",\"player\",\"kept\",\"surviving\",\"cracking\",\"robots\",\"joel\",\"mike\",\"mst3k\",\"pick\",\"season\",\"honestly\",\"barely\",\"survive\",\"heck\",\"planning\",\"fellow\",\"otaku\",\"pal\",\"mine\",\"halloween\",\"night\",\"stupid\",\"improvement\",\"0\",\"originally\",\"according\",\"grading\",\"scale\",\"means\",\"counting\",\"unless\",\"worldfest\",\"received\",\"amount\",\"applause\",\"afterwards\",\"receiving\",\"known\",\"j\",\"beals\",\"parker\",\"actress\",\"part\",\"allowed\",\"judge\",\"unsympathetic\",\"therefore\",\"bore\",\"depth\",\"revolving\",\"cop\",\"feels\",\"video\",\"90s\",\"standards\",\"karen\",\"carpenter\",\"singer\",\"complex\",\"though\",\"accurate\",\"details\",\"cynthia\",\"gibb\",\"portrays\",\"election\",\"naive\",\"dumb\",\"role\",\"stronger\",\"personality\",\"louise\",\"fletcher\",\"agnes\",\"terrific\",\"job\",\"songs\",\"album\",\"unfortunately\",\"ratings\",\"usa\",\"countries\",\"cell\",\"exotic\",\"masterpiece\",\"dizzying\",\"trip\",\"vast\",\"mind\",\"conclusive\",\"evidence\",\"achieved\",\"beings\",\"unleash\",\"uninhibited\",\"imaginations\",\"boldness\",\"pushing\",\"aside\",\"thoughts\",\"fall\",\"formulas\",\"cliches\",\"creating\",\"magnificent\",\"date\",\"numerous\",\"complaints\",\"anywhere\",\"substance\",\"poorly\",\"negatively\",\"criticize\",\"miss\",\"landmark\",\"tradition\",\"future\",\"hopefully\",\"follow\",\"opened\",\"door\",\"imagination\",\"slam\",\"tarsem\",\"singh\",\"want\",\"personally\",\"welcome\",\"challenge\",\"talk\",\"inside\",\"agree\",\"genre\",\"overworked\",\"depict\",\"killers\",\"worked\",\"failed\",\"blaze\",\"trail\",\"twist\",\"physically\",\"transported\",\"presented\",\"nothing\",\"fascinating\",\"journey\",\"mysterious\",\"subject\",\"studied\",\"bog\",\"scientific\",\"jargon\",\"explain\",\"jennifer\",\"lopez\",\"enter\",\"brain\",\"lies\",\"laboratory\",\"table\",\"wrapped\",\"twizzlers\",\"jaunted\",\"entity\",\"wants\",\"guess\",\"explanations\",\"ventures\",\"onto\",\"ground\",\"desires\",\"noticed\",\"showed\",\"reality\",\"contrast\",\"bright\",\"visuals\",\"nonetheless\",\"design\",\"astonishing\",\"surprised\",\"oscars\",\"cinematography\",\"repeating\",\"else\",\"stress\",\"walk\",\"open\",\"wonders\",\"eye\",\"popping\",\"feast\",\"assured\",\"crazy\",\"psychology\",\"alley\",\"leaving\",\"audience\",\"member\",\"whoever\",\"smoking\",\"4\",\"stinging\",\"political\",\"satire\",\"hollywood\",\"blockbuster\",\"sappy\",\"values\",\"promo\",\"list\",\"turning\",\"spirit\",\"behind\",\"war\",\"inc\",\"depresses\",\"clumsy\",\"targets\",\"reflect\",\"existence\",\"serious\",\"critique\",\"poor\",\"particular\",\"corporatization\",\"poking\",\"diminishes\",\"atrocity\",\"similarly\",\"trivializes\",\"genuine\",\"concern\",\"frustrating\",\"seemed\",\"energetic\",\"prepared\",\"able\",\"stand\",\"looping\",\"america\",\"funniest\",\"videos\",\"damn\",\"hated\",\"stereo\",\"typical\",\"latino\",\"speak\",\"responsible\",\"hanging\",\"transcends\",\"gloriously\",\"badness\",\"dancing\",\"redone\",\"clich\\u00e9d\",\"rehashed\",\"seem\",\"unavoidable\",\"conflict\",\"dealing\",\"large\",\"combat\",\"grain\",\"compelling\",\"silver\",\"civil\",\"cold\",\"starring\",\"jude\",\"law\",\"nicole\",\"kidman\",\"ren\\u00e9e\",\"zellweger\",\"calling\",\"entirely\",\"opens\",\"literally\",\"quick\",\"dirty\",\"battle\",\"sequence\",\"puts\",\"glory\",\"edward\",\"zwick\",\"period\",\"centers\",\"disgruntled\",\"confederate\",\"soldier\",\"inman\",\"becomes\",\"disgusted\",\"gruesome\",\"homesick\",\"hamlet\",\"north\",\"carolina\",\"equally\",\"southern\",\"belle\",\"left\",\"ada\",\"monroe\",\"glance\",\"setup\",\"appears\",\"formulaic\",\"sympathy\",\"root\",\"reluctant\",\"tribulations\",\"battlefield\",\"indeed\",\"segments\",\"relatively\",\"unimpressive\",\"somewhat\",\"contrived\",\"soon\",\"drastic\",\"intrepid\",\"turns\",\"deserter\",\"incidentally\",\"saving\",\"potentially\",\"confusing\",\"scenario\",\"wanting\",\"confederates\",\"begins\",\"odyssey\",\"homeward\",\"meanwhile\",\"farm\",\"cultured\",\"ways\",\"prove\",\"fields\",\"transformed\",\"wilderbeast\",\"coming\",\"course\",\"tough\",\"nails\",\"ruby\",\"thewes\",\"helps\",\"put\",\"perhaps\",\"importantly\",\"cope\",\"isolation\",\"brought\",\"upon\",\"within\",\"two\",\"settings\",\"disturbing\",\"torn\",\"south\",\"unfolds\",\"interact\",\"surprisingly\",\"enhanced\",\"brendan\",\"gleeson\",\"deadbeat\",\"father\",\"ray\",\"winstone\",\"unrepentant\",\"lawman\",\"natalie\",\"portman\",\"deeply\",\"troubled\",\"isolated\",\"greatly\",\"affected\",\"changed\",\"northern\",\"aggression\",\"mostly\",\"pervading\",\"anti\",\"message\",\"accented\",\"effective\",\"haunting\",\"chillingly\",\"virginia\",\"communicated\",\"scarred\",\"land\",\"traumatized\",\"fought\",\"weapons\",\"tactics\",\"past\",\"century\",\"hellish\",\"effect\",\"timelessly\",\"relevant\",\"anthony\",\"minghella\",\"manages\",\"maintain\",\"gloomy\",\"mood\",\"atmosphere\",\"denigrated\",\"tepid\",\"climax\",\"justice\",\"wonderfully\",\"formed\",\"awkwardly\",\"tacked\",\"inherently\",\"distant\",\"abstracted\",\"nature\",\"fits\",\"dismal\",\"neither\",\"traits\",\"inspiring\",\"unique\",\"vision\",\"entertain\",\"absorb\",\"lives\",\"apart\",\"desperate\",\"rid\",\"repercussions\",\"altogether\",\"taut\",\"organically\",\"gripping\",\"dmytryk\",\"crossfire\",\"distinctive\",\"suspense\",\"unlikely\",\"devices\",\"noir\",\"cycle\",\"bivouacked\",\"washington\",\"dc\",\"company\",\"restlessness\",\"bars\",\"stranger\",\"apartment\",\"robert\",\"ryan\",\"drunk\",\"belligerent\",\"beats\",\"host\",\"sam\",\"levene\",\"happens\",\"jewish\",\"police\",\"detective\",\"investigates\",\"mitchum\",\"assigned\",\"outfit\",\"suspicion\",\"falls\",\"second\",\"cooper\",\"vanished\",\"slays\",\"third\",\"buddy\",\"brodie\",\"insure\",\"silence\",\"closes\",\"abetted\",\"superior\",\"paxton\",\"draws\",\"precise\",\"bobs\",\"naturally\",\"prototypical\",\"angry\",\"male\",\"hilt\",\"underplays\",\"characteristic\",\"alert\",\"nonchalance\",\"central\",\"gloria\",\"grahame\",\"fledged\",\"rendition\",\"smart\",\"mouthed\",\"vulnerable\",\"tramp\",\"sad\",\"sack\",\"leeched\",\"kelly\",\"haunts\",\"small\",\"peripheral\",\"memorable\",\"politically\",\"engaged\",\"inevitably\",\"succumbs\",\"sermonizing\",\"confined\",\"reminiscence\",\"grandfather\",\"hands\",\"bigots\",\"thus\",\"stretching\",\"chronology\",\"limit\",\"attempt\",\"render\",\"explanation\",\"glib\",\"hates\",\"jews\",\"hillbillies\",\"curiously\",\"survives\",\"wrought\",\"novel\",\"richard\",\"brooks\",\"brick\",\"foxhole\",\"dealt\",\"gay\",\"bashing\",\"murder\",\"homosexuality\",\"1947\",\"pale\",\"news\",\"holocaust\",\"begun\",\"emerge\",\"ashes\",\"europe\",\"emboldened\",\"register\",\"protest\",\"semitism\",\"studios\",\"quaked\",\"prospect\",\"offending\",\"potential\",\"ticket\",\"buyer\",\"homophobia\",\"works\",\"general\",\"specifics\",\"smoothly\",\"chatting\",\"lonesome\",\"inviting\",\"girlfriend\",\"tow\",\"raises\",\"question\",\"whether\",\"retained\",\"inadvertently\",\"discreet\",\"tip\",\"engine\",\"generating\",\"murderous\",\"rage\",\"ardh\",\"satya\",\"finest\",\"indian\",\"directed\",\"govind\",\"nihalani\",\"successful\",\"hitting\",\"parallel\",\"commercial\",\"inspiration\",\"leading\",\"directors\",\"india\",\"tells\",\"mumbai\",\"70s\",\"unlike\",\"cities\",\"encompasses\",\"system\",\"creates\",\"practical\",\"outlay\",\"approach\",\"environment\",\"amongst\",\"various\",\"officers\",\"colleagues\",\"describes\",\"anand\",\"velankar\",\"blooded\",\"harsh\",\"constable\",\"suffers\",\"ideologies\",\"incidences\",\"atrocities\",\"immediate\",\"crime\",\"inert\",\"craving\",\"satisfaction\",\"revolved\",\"wherein\",\"efforts\",\"trampled\",\"seniors\",\"leads\",\"frustrations\",\"achieve\",\"desired\",\"resulting\",\"anger\",\"expressed\",\"excessive\",\"remand\",\"rooms\",\"alcoholic\",\"fights\",\"aware\",\"metro\",\"politicians\",\"inertly\",\"associated\",\"compromise\",\"unethical\",\"practice\",\"negative\",\"finally\",\"suspended\",\"thoroughly\",\"core\",\"breaks\",\"underworld\",\"gangster\",\"rama\",\"shetty\",\"house\",\"arrest\",\"short\",\"conversation\",\"hair\",\"raising\",\"moments\",\"punch\",\"alcoholism\",\"corruption\",\"influence\",\"courage\",\"deceptions\",\"integral\",\"brilliantly\",\"belongs\",\"om\",\"puri\",\"portraying\",\"traversing\",\"emotions\",\"exposure\",\"templarios\",\"excited\",\"among\",\"offerings\",\"anchor\",\"bay\",\"cult\",\"classics\",\"baby\",\"print\",\"quality\",\"alone\",\"hide\",\"deadly\",\"thrilling\",\"opening\",\"villagers\",\"exact\",\"revenge\",\"templars\",\"motion\",\"ponderous\",\"ultimately\",\"unfulfilling\",\"adding\",\"insult\",\"injury\",\"dubbed\",\"subtitled\",\"promised\",\"jacket\",\"significant\",\"quotes\",\"pronounced\",\"halfway\",\"protagonist\",\"mafia\",\"titta\",\"di\",\"girolamo\",\"non\",\"descript\",\"aged\",\"salerno\",\"italy\",\"introduced\",\"living\",\"elegant\",\"sterile\",\"hotel\",\"italian\",\"speaking\",\"canton\",\"switzerland\",\"conducting\",\"business\",\"gradually\",\"pivotal\",\"yet\",\"unremarkable\",\"employees\",\"swiss\",\"bank\",\"normally\",\"count\",\"cash\",\"000\",\"dollars\",\"missing\",\"suitcase\",\"tightly\",\"stacked\",\"banknotes\",\"quietly\",\"icily\",\"threatens\",\"coaxing\",\"manager\",\"close\",\"account\",\"spectators\",\"bluff\",\"without\",\"fear\",\"caught\",\"appearing\",\"truth\",\"bluffed\",\"told\",\"accepted\",\"consequences\",\"troubles\",\"initially\",\"scowling\",\"taciturn\",\"curt\",\"verge\",\"50\",\"reply\",\"chambermaids\",\"waitresses\",\"goodbye\",\"spectator\",\"half\",\"described\",\"reveal\",\"days\",\"nights\",\"oddly\",\"disjoined\",\"deliberate\",\"revealing\",\"seemingly\",\"mundane\",\"irrelevant\",\"unnecessary\",\"essential\",\"masterfully\",\"constructed\",\"identity\",\"unexpectedly\",\"loving\",\"conveyed\",\"elegantly\",\"edited\",\"boards\",\"canada\",\"stood\",\"treat\",\"mobsters\",\"odds\",\"release\",\"le\",\"conseguenze\",\"dell\",\"amore\",\"l\",\"imbalsamatore\",\"element\",\"insomnia\",\"machinist\",\"explicit\",\"al\",\"pacino\",\"uses\",\"condition\",\"symbolise\",\"deeper\",\"malaise\",\"rammed\",\"deep\",\"obscurity\",\"unconscious\",\"impossible\",\"pin\",\"waitress\",\"sofia\",\"olivia\",\"magnani\",\"grand\",\"legendary\",\"anna\",\"memory\",\"friend\",\"provide\",\"tiny\",\"window\",\"tentatively\",\"accepts\",\"explicitly\",\"spelt\",\"accepting\",\"unimaginable\",\"single\",\"concedes\",\"representative\",\"quiet\",\"taking\",\"cinecitt\\u00e0\",\"waiting\",\"produce\",\"il\",\"postino\",\"fare\",\"la\",\"vita\",\"\\u00e8\",\"bella\",\"neglecting\",\"explore\",\"creations\",\"loss\",\"expecting\",\"pack\",\"fiver\",\"expect\",\"occasional\",\"camcorder\",\"drummer\",\"e\",\"damned\",\"assume\",\"build\",\"tension\",\"tedious\",\"thumb\",\"fast\",\"button\",\"press\",\"gave\",\"seriously\",\"lead\",\"coz\",\"meercat\",\"gonna\",\"explaining\",\"anyway\",\"concerned\",\"talent\",\"certainly\",\"avoid\",\"bored\",\"paint\",\"dry\",\"00\",\"sounded\",\"ranma\",\"esque\",\"dragging\",\"skeleton\",\"cute\",\"mini\",\"skirt\",\"restricted\",\"sticker\",\"sweet\",\"age\",\"indie\",\"edge\",\"100\",\"wonder\",\"hardly\",\"foul\",\"language\",\"closest\",\"nudity\",\"hoping\",\"nightgown\",\"panties\",\"miniskirt\",\"religious\",\"tame\",\"caricatured\",\"insincere\",\"derivative\",\"unoriginal\",\"slightest\",\"listen\",\"stevens\",\"jesus\",\"wear\",\"rolex\",\"television\",\"qualify\",\"pg\",\"13\",\"rated\",\"refuses\",\"17\",\"rent\",\"pornographic\",\"requiem\",\"insist\",\"zack\",\"reba\",\"worries\",\"offend\",\"suicide\",\"needs\",\"portrayed\",\"suicides\",\"ones\",\"virgin\",\"teenagers\",\"purely\",\"aspect\",\"eleven\",\"twelve\",\"causes\",\"number\",\"chances\",\"teens\",\"hopper\",\"investigate\",\"killings\",\"dunnit\",\"including\",\"begin\",\"achingly\",\"heroine\",\"menace\",\"foreboding\",\"created\",\"thunderstorms\",\"strangely\",\"double\",\"glazing\",\"serves\",\"purpose\",\"gory\",\"tedium\",\"unbearable\",\"suggests\",\"spate\",\"throughout\",\"area\",\"apparent\",\"ritual\",\"salt\",\"pepper\",\"sums\",\"inherent\",\"add\",\"act\",\"willing\",\"completely\",\"nude\",\"shower\",\"hope\",\"following\",\"banned\",\"uk\",\"80\",\"extended\",\"curiosity\",\"value\",\"daft\",\"worry\",\"telegraphed\",\"steep\",\"upward\",\"slope\",\"obviously\",\"struggle\",\"figure\",\"brandishing\",\"scythe\",\"slide\",\"conveniently\",\"upright\",\"front\",\"weapon\",\"okay\",\"route\",\"david\",\"morse\",\"ride\",\"pickle\",\"greatest\",\"coolest\",\"koepp\",\"writer\",\"heaven\",\"rubbish\",\"baffles\",\"dung\",\"husband\",\"wondered\",\"product\",\"experiment\",\"computer\",\"program\",\"listless\",\"u\",\"propaganda\",\"thrown\",\"proves\",\"disappointingly\",\"call\",\"conspiracy\",\"theorist\",\"steal\",\"declaration\",\"independence\",\"protect\",\"justify\",\"actions\",\"invasion\",\"iraq\",\"nicholas\",\"cage\",\"spews\",\"bargaining\",\"chip\",\"valium\",\"shooting\",\"reasoning\",\"clue\",\"bonus\",\"misogyny\",\"whatever\",\"name\",\"chided\",\"shutting\",\"clearly\",\"slap\",\"gravity\",\"shut\",\"camera\",\"pans\",\"poutily\",\"child\",\"grotesque\",\"benefit\",\"astonishingly\",\"majority\",\"creepy\",\"clich\\u00e9s\",\"went\",\"sucker\",\"casting\",\"mixed\",\"crumby\",\"hold\",\"lift\",\"minimum\",\"requirement\",\"james\",\"cuba\",\"gooding\",\"jr\",\"caricatures\",\"mindless\",\"entertainment\",\"recommend\",\"book\",\"splendored\",\"han\",\"suyin\",\"tackles\",\"issues\",\"race\",\"asians\",\"whites\",\"topic\",\"personal\",\"experiences\",\"eurasian\",\"growing\",\"china\",\"background\",\"hong\",\"kong\",\"daring\",\"stereotypical\",\"remembered\",\"jones\",\"oscar\",\"doctor\",\"breed\",\"advent\",\"communism\",\"mainland\",\"william\",\"holden\",\"journalist\",\"covering\",\"regions\",\"notch\",\"chemistry\",\"lovers\",\"provides\",\"affection\",\"melt\",\"hearts\",\"romantically\",\"inclined\",\"fifty\",\"hilltop\",\"overlooking\",\"harbor\",\"intimate\",\"ending\",\"tear\",\"jerker\",\"consider\",\"sentimental\",\"romances\",\"pass\\u00e9\",\"stories\",\"shining\",\"example\",\"logic\",\"continuity\",\"changes\",\"dialog\",\"pain\",\"gary\",\"busey\",\"w\",\"fbi\",\"local\",\"surround\",\"trailer\",\"jeep\",\"wagoneer\",\"confused\",\"cops\",\"seconds\",\"gun\",\"ensues\",\"killed\",\"blast\",\"blasting\",\"dominoes\",\"drives\",\"circles\",\"hit\",\"bullet\",\"pellet\",\"miracle\",\"six\",\"shooter\",\"held\",\"300\",\"bullets\",\"states\",\"grace\",\"god\",\"army\",\"dutcher\",\"improved\",\"matured\",\"filmmaker\",\"began\",\"shaky\",\"starts\",\"introducing\",\"elders\",\"mormon\",\"missionaries\",\"degenerates\",\"highly\",\"improbable\",\"unfortunate\",\"events\",\"highlighting\",\"blatant\",\"disobedience\",\"exists\",\"level\",\"laughable\",\"alienation\",\"target\",\"unrealistically\",\"inaccurately\",\"accomplishes\",\"angering\",\"predominantly\",\"reflects\",\"missions\",\"served\",\"mission\",\"attest\",\"gang\",\"california\",\"contains\",\"mild\",\"vulgarity\",\"assuming\",\"inspire\",\"forgiveness\",\"available\",\"mon\",\"gathers\",\"elder\",\"sent\",\"standing\",\"identify\",\"29\",\"working\",\"factory\",\"figured\",\"pride\",\"american\",\"car\",\"noted\",\"degree\",\"ninth\",\"grade\",\"keen\",\"greed\",\"laziness\",\"hour\",\"ic\",\"pseudo\",\"relatives\",\"remind\",\"americans\",\"sake\",\"honor\",\"accomplished\",\"heavy\",\"downward\",\"spiral\",\"overseas\",\"disclaimer\",\"6\",\"musical\",\"tainted\",\"douglas\",\"kasey\",\"parts\",\"worthwhile\",\"compared\",\"dancers\",\"singing\",\"bigger\",\"easier\",\"decors\",\"lighting\",\"delivered\",\"common\",\"opinion\",\"obvious\",\"cuts\",\"talking\",\"singers\",\"portions\",\"impeccable\",\"enjoyable\",\"protocol\",\"implausible\",\"whose\",\"goldie\",\"hawn\",\"supporting\",\"revolves\",\"ditzy\",\"cocktail\",\"arab\",\"dignitary\",\"classified\",\"voight\",\"mary\",\"steenburgen\",\"erase\",\"cv\",\"historically\",\"xena\",\"hercules\",\"abraham\",\"moses\",\"melded\",\"noah\",\"nephew\",\"thousands\",\"born\",\"canaanites\",\"wandered\",\"earth\",\"scriptwriters\",\"ignorance\",\"animals\",\"stuff\",\"sunday\",\"historians\",\"archaeologists\",\"geologists\",\"psychologists\",\"linguists\",\"offended\",\"modicum\",\"winced\",\"preston\",\"sturgis\",\"unseen\",\"public\",\"nearly\",\"twenty\",\"thirty\",\"late\",\"resurfaced\",\"meantime\",\"gained\",\"notoriety\",\"pauline\",\"kael\",\"citizen\",\"suggested\",\"herman\",\"mankiewicz\",\"orson\",\"welles\",\"screenplay\",\"thread\",\"imdb\",\"web\",\"site\",\"overstated\",\"narrators\",\"charles\",\"foster\",\"newsreel\",\"representing\",\"ralston\",\"luce\",\"clone\",\"thatcher\",\"memoirs\",\"bernstein\",\"jed\",\"leland\",\"susan\",\"alexander\",\"raymond\",\"butler\",\"slant\",\"reflecting\",\"faith\",\"hatred\",\"reveals\",\"failings\",\"method\",\"frequent\",\"overlapping\",\"tellings\",\"incident\",\"situation\",\"leader\",\"tom\",\"garner\",\"spencer\",\"tracy\",\"rose\",\"bottom\",\"head\",\"railroad\",\"morgan\",\"wife\",\"sarah\",\"padden\",\"restricts\",\"dimensional\",\"narrates\",\"boss\",\"respected\",\"voice\",\"skeptical\",\"sees\",\"flaws\",\"labor\",\"unions\",\"troublemakers\",\"slowed\",\"confrontation\",\"union\",\"preoccupied\",\"detriment\",\"scabs\",\"strike\",\"blowing\",\"headquarters\",\"views\",\"pure\",\"knocking\",\"duplicating\",\"thanks\",\"colleen\",\"moore\",\"sally\",\"tragedy\",\"worldly\",\"pair\",\"marry\",\"benefits\",\"cost\",\"empire\",\"expands\",\"improves\",\"loses\",\"notices\",\"eve\",\"helen\",\"vinson\",\"younger\",\"mistress\",\"learns\",\"unfaithful\",\"behavior\",\"destroys\",\"shock\",\"martyr\",\"marries\",\"presents\",\"son\",\"philip\",\"trent\",\"discovery\",\"incestuous\",\"cuckolding\",\"total\",\"jumps\",\"unconvincingly\",\"note\",\"board\",\"plans\",\"purchase\",\"rival\",\"train\",\"discusses\",\"debentures\",\"financing\",\"wealthy\",\"detail\",\"rate\",\"social\",\"commentary\",\"depression\",\"fulci\",\"giallo\",\"normal\",\"redeemed\",\"touches\",\"neat\",\"visions\",\"clairvoyance\",\"weaknesses\",\"gear\",\"banal\",\"wooden\",\"illogical\",\"finale\",\"denouement\",\"shall\",\"limp\",\"affair\",\"ironic\",\"handling\",\"norms\",\"yellow\",\"clues\",\"wherever\",\"limping\",\"36th\",\"chamber\",\"kung\",\"fu\",\"shaw\",\"produces\",\"80s\",\"equivalent\",\"spaghetti\",\"westerns\",\"gordon\",\"liu\",\"counterpart\",\"western\",\"clint\",\"eastwood\",\"digitally\",\"remastered\",\"fest\",\"scope\",\"simple\",\"versus\",\"acts\",\"narrative\",\"martial\",\"arts\",\"premise\",\"workers\",\"dye\",\"mill\",\"village\",\"unhappy\",\"wages\",\"incoming\",\"manchu\",\"gangsters\",\"exploitation\",\"none\",\"skilled\",\"minor\",\"getting\",\"impersonate\",\"shaolin\",\"monk\",\"rouse\",\"exposed\",\"pushed\",\"credibility\",\"impersonating\",\"mob\",\"embarks\",\"temple\",\"infiltrate\",\"learn\",\"slapstick\",\"abbot\",\"impersonated\",\"teaching\",\"methods\",\"kinda\",\"miyagi\",\"karate\",\"painting\",\"fences\",\"erect\",\"scaffoldings\",\"unwittingly\",\"builds\",\"strength\",\"endurance\",\"unorthodox\",\"sound\",\"impact\",\"treatment\",\"refreshing\",\"wide\",\"angled\",\"highlight\",\"clarity\",\"sparring\",\"partners\",\"showcase\",\"stunts\",\"angles\",\"tad\",\"pause\",\"moves\",\"yuen\",\"wo\",\"ping\",\"ad\",\"nausem\",\"flicks\",\"repeat\",\"screening\",\"monday\",\"nostalgic\",\"lane\",\"spoilers\",\"familiar\",\"zone\",\"rifle\",\"innocent\",\"firing\",\"jimmy\",\"franchot\",\"repeated\",\"centuries\",\"forced\",\"arms\",\"kicked\",\"belted\",\"mouth\",\"fred\",\"p\",\"willis\",\"ended\",\"france\",\"unit\",\"pinned\",\"nest\",\"handedly\",\"commission\",\"picking\",\"safety\",\"nearby\",\"church\",\"steeple\",\"gunned\",\"raised\",\"surrender\",\"artillery\",\"shell\",\"wounding\",\"recovering\",\"wounds\",\"hospital\",\"fell\",\"volunteer\",\"nurse\",\"duffy\",\"gladys\",\"lucky\",\"obnoxious\",\"antics\",\"married\",\"french\",\"recovered\",\"stationed\",\"sticky\",\"already\",\"proposal\",\"marriage\",\"wwi\",\"marrying\",\"bitter\",\"resentful\",\"accident\",\"ran\",\"streets\",\"discovered\",\"meek\",\"violent\",\"knew\",\"european\",\"smug\",\"ability\",\"mobster\",\"found\",\"abiding\",\"inoffensive\",\"insurance\",\"adjuster\",\"circle\",\"ratted\",\"prevent\",\"executing\",\"valentine\",\"day\",\"massacre\",\"members\",\"trial\",\"admitted\",\"guilt\",\"sentence\",\"hearing\",\"rumors\",\"convicts\",\"broke\",\"fugitive\",\"circus\",\"manger\",\"barker\",\"seeing\",\"heart\",\"added\",\"decided\",\"letting\",\"tracked\",\"bela\",\"lugosi\",\"appeared\",\"chillers\",\"monogram\",\"1940\",\"corpse\",\"vanishes\",\"kidnaps\",\"brides\",\"kills\",\"extracts\",\"fluid\",\"bodies\",\"ageing\",\"reporter\",\"discover\",\"deaths\",\"morning\",\"report\",\"murders\",\"drops\",\"dead\",\"shortly\",\"assistants\",\"consist\",\"hag\",\"hunchback\",\"dwarf\",\"sons\",\"thunderstorm\",\"spooky\",\"passages\",\"sleep\",\"coffins\",\"beds\",\"fans\",\"rating\",\"anthology\",\"par\",\"linking\",\"alot\",\"faces\",\"asking\",\"listed\",\"103\",\"vcr\",\"timer\",\"space\",\"maggot\",\"douses\",\"campfire\",\"hikes\",\"33\",\"percent\",\"nations\",\"nitwits\",\"support\",\"bush\",\"aftermath\",\"revolution\",\"1794\",\"strikingly\",\"post\",\"9\",\"11\",\"socio\",\"landscape\",\"worrying\",\"whupping\",\"deserve\",\"politician\",\"voted\",\"denied\",\"shown\",\"stands\",\"ambiguity\",\"hopelessly\",\"doctrinaire\",\"robespierre\",\"haunted\",\"empty\",\"reductive\",\"ideology\",\"elucidate\",\"boundaries\",\"totalitarianism\",\"execution\",\"self\",\"defense\",\"patriotism\",\"legalistic\",\"litmus\",\"tests\",\"aggravate\",\"hopeless\",\"helped\",\"create\",\"overprivileged\",\"retarded\",\"yale\",\"cheerleaders\",\"wojciech\",\"pszoniak\",\"blows\",\"slovenly\",\"deparidieu\",\"robespierres\",\"plight\",\"ends\",\"jaw\",\"guillotine\",\"difficult\",\"documentary\",\"requires\",\"tremendous\",\"skill\",\"patience\",\"directorial\",\"distance\",\"plausible\",\"flow\",\"aka\",\"faux\",\"mark\",\"60\",\"viewer\",\"eriksen\",\"peaked\",\"fair\",\"problems\",\"explains\",\"extras\",\"doc\",\"funding\",\"settled\",\"cheaper\",\"posting\",\"porn\",\"website\",\"1997\",\"98\",\"tricky\",\"pushy\",\"cameras\",\"zooms\",\"grainy\",\"blacks\",\"elicit\",\"authenticity\",\"believability\",\"hills\",\"ii\",\"lose\",\"90\",\"group\",\"national\",\"trainees\",\"battling\",\"notorious\",\"training\",\"desert\",\"includes\",\"blood\",\"guts\",\"flying\",\"rape\",\"pointlessly\",\"drag\",\"gore\",\"jump\",\"stays\",\"awake\",\"decent\",\"rotten\",\"leaves\",\"breakdown\",\"estate\",\"office\",\"outside\",\"yep\",\"lesbians\",\"rings\",\"lifetime\",\"clunky\",\"disapproves\",\"sassy\",\"maid\",\"2003\",\"hattie\",\"mcdaniel\",\"grave\",\"freaks\",\"custody\",\"snotty\",\"teenage\",\"sheesh\",\"cliche\",\"unturned\",\"hitchcock\",\"rebecca\",\"daphne\",\"dumarier\",\"lush\",\"gothic\",\"intrigue\",\"returned\",\"themes\",\"british\",\"mistaken\",\"espionage\",\"civilians\",\"building\",\"planes\",\"weaponry\",\"necessary\",\"militia\",\"booming\",\"paranoid\",\"often\",\"jingoistic\",\"thrillers\",\"networks\",\"deceptive\",\"operators\",\"shadows\",\"citizens\",\"knowing\",\"producer\",\"skirball\",\"approached\",\"directing\",\"property\",\"owned\",\"sabotage\",\"helpless\",\"thrust\",\"vortex\",\"coincidence\",\"elements\",\"sharp\",\"wit\",\"literary\",\"maven\",\"dorothy\",\"brief\",\"stint\",\"returning\",\"bohemian\",\"roots\",\"nyc\",\"co\",\"authored\",\"perfect\",\"sensibilities\",\"neglected\",\"barry\",\"cummings\",\"los\",\"angeles\",\"airplane\",\"meets\",\"employee\",\"frye\",\"norman\",\"lloydd\",\"framed\",\"committing\",\"fleeing\",\"authorities\",\"fetched\",\"soda\",\"utah\",\"include\",\"caravan\",\"helpful\",\"popular\",\"billboard\",\"model\",\"patricia\",\"martin\",\"priscilla\",\"crisis\",\"madly\",\"kidnapped\",\"saboteur\",\"captor\",\"mix\",\"form\",\"outing\",\"brews\",\"network\",\"demure\",\"ladies\",\"joes\",\"businessmen\",\"terrorists\",\"criminals\",\"pull\",\"guns\",\"detonate\",\"bombs\",\"ignited\",\"culminates\",\"finales\",\"incredibly\",\"tourist\",\"attractions\",\"recreated\",\"art\",\"ban\",\"engaging\",\"clever\",\"twists\",\"villains\",\"cameo\",\"drug\",\"store\",\"sign\",\"deaf\",\"axed\",\"bureau\",\"practices\",\"afraid\",\"dresser\",\"evening\",\"splash\",\"speechless\",\"albert\",\"finney\",\"courtenay\",\"sir\",\"aging\",\"shakespearean\",\"valet\",\"putting\",\"king\",\"lear\",\"blitz\",\"dependent\",\"aid\",\"cajole\",\"wheedle\",\"bully\",\"onstage\",\"227th\",\"vicariously\",\"driven\",\"secondary\",\"interaction\",\"highest\",\"caliber\",\"47\",\"sick\",\"petulant\",\"bullying\",\"stage\",\"hisses\",\"fumes\",\"bows\",\"convincing\",\"mincing\",\"elderly\",\"employer\",\"term\",\"technically\",\"marvelous\",\"ronald\",\"harwood\",\"notably\",\"eileen\",\"atkins\",\"suffering\",\"madge\",\"regrets\",\"talked\",\"remembering\",\"five\",\"academy\",\"awards\",\"nominations\",\"peter\",\"yates\",\"adapted\",\"mesmerized\",\"hugely\",\"entertained\",\"encourage\",\"somewhere\",\"angie\",\"pregnant\",\"dreadful\",\"important\",\"longer\",\"interactions\",\"kate\",\"comedic\",\"actresses\",\"scenarios\",\"riot\",\"fingersmith\",\"stunned\",\"randomly\",\"applied\",\"adequate\",\"process\",\"attempting\",\"rendered\",\"lesbian\",\"undertones\",\"hammered\",\"terms\",\"disappointing\",\"phoned\",\"ohhh\",\"carpet\",\"munchers\",\"tonsil\",\"hockey\",\"raunchy\",\"cronenberg\",\"intention\",\"jjl\",\"favourite\",\"lovely\",\"cutie\",\"impressive\",\"miscast\",\"array\",\"confidence\",\"besides\",\"oppressive\",\"portray\",\"moral\",\"redeeming\",\"qualities\",\"librarians\",\"unglamorous\",\"unmarried\",\"named\",\"stella\",\"midler\",\"stephen\",\"collins\",\"obligation\",\"raise\",\"jenny\",\"trini\",\"alvarado\",\"teenager\",\"predictably\",\"silent\",\"dallas\",\"easily\",\"remake\",\"incomprehensible\",\"beaches\",\"bombed\",\"drags\",\"silly\",\"marsha\",\"mason\",\"flimsy\",\"1937\",\"stanwyck\",\"torture\",\"duckling\",\"bloodbath\",\"surrounds\",\"occurring\",\"colorful\",\"investigations\",\"suspects\",\"helping\",\"investigation\",\"cases\",\"towns\",\"force\",\"ex\",\"addict\",\"priest\",\"witchcraft\",\"prot\\u00e9g\\u00e9\",\"mentally\",\"handicapped\",\"townsman\",\"mute\",\"interwoven\",\"revealed\",\"classical\",\"contain\",\"fashioned\",\"mystery\",\"strong\",\"guessing\",\"recommended\",\"check\",\"splatter\",\"despair\",\"share\",\"sleaze\",\"strange\",\"habit\",\"boys\",\"disconcerting\",\"material\",\"bother\",\"definitely\",\"busty\",\"beauty\",\"stacie\",\"randall\",\"pvc\",\"clad\",\"ass\",\"bitch\",\"alexandra\",\"faithful\",\"acolyte\",\"faust\",\"trapped\",\"determined\",\"free\",\"malevolent\",\"minx\",\"warehouse\",\"magical\",\"gem\",\"vital\",\"satanic\",\"summon\",\"mare\",\"accidentally\",\"pentagram\",\"floor\",\"results\",\"diminutive\",\"troll\",\"creatures\",\"lite\",\"replacement\",\"easy\",\"stone\",\"trick\",\"neck\",\"lover\",\"jonathan\",\"graves\",\"liapis\",\"investigating\",\"robbery\",\"capable\",\"wise\",\"inter\",\"pints\",\"sorts\",\"zany\",\"trouble\",\"warped\",\"jim\",\"wynorski\",\"females\",\"breasted\",\"babes\",\"hooker\",\"ghoulies\",\"iv\",\"captain\",\"curator\",\"antiquities\",\"mental\",\"patient\",\"asylum\",\"otherwise\",\"unwatchable\",\"stv\",\"crap\",\"bearable\",\"presence\",\"semi\",\"crumpet\",\"slightly\",\"warrant\",\"labelled\",\"ordeal\",\"blurb\",\"knee\",\"knackers\",\"banter\",\"bargain\",\"basement\",\"consisting\",\"rubbery\",\"visual\",\"solely\",\"bimbo\",\"quotient\",\"salman\",\"kahn\",\"appealing\",\"refreshed\",\"price\",\"heroes\",\"ali\",\"larter\",\"dresses\",\"wore\",\"producers\",\"franchise\",\"sequel\",\"marques\",\"houston\",\"hp3\",\"eight\",\"reid\",\"carry\",\"hp\",\"reference\",\"albeit\",\"everyone\",\"hoodwinked\",\"sorry\",\"kym\",\"whitley\",\"candle\",\"robin\",\"harris\",\"ketty\",\"lester\",\"curry\",\"meagen\",\"mari\",\"morrow\",\"substantial\",\"diversion\",\"naming\",\"furthermore\",\"hudlin\",\"brothers\",\"produced\",\"laboured\",\"shallow\",\"playbook\",\"disaster\",\"astronauts\",\"outer\",\"brave\",\"max\",\"q\",\"throw\",\"judging\",\"latter\",\"contained\",\"muster\",\"thousand\",\"emmy\",\"gob\",\"smacked\",\"handful\",\"students\",\"media\",\"studies\",\"holes\",\"nasa\",\"worker\",\"attached\",\"shuttle\",\"simulator\",\"position\",\"room\",\"pear\",\"shaped\",\"experienced\",\"nine\",\"bill\",\"campbell\",\"salvaging\",\"wreck\",\"caddyshack\",\"cant\",\"stack\",\"ted\",\"knight\",\"jackie\",\"compete\",\"rodney\",\"dangerfield\",\"ty\",\"webb\",\"wilcoxon\",\"hystericly\",\"lawyer\",\"blunt\",\"randy\",\"quaid\",\"originals\",\"suits\",\"motions\",\"beat\",\"ing\",\"baseball\",\"bat\",\"bonfire\",\"chippindale\",\"roast\",\"retriever\",\"arff\",\"eat\",\"comin\",\"upstairs\",\"junior\",\"grabbing\",\"pjs\",\"cramming\",\"brand\",\"bmw\",\"tight\",\"understanding\",\"offsetting\",\"acroyd\",\"murray\",\"irritating\",\"isnt\",\"overall\",\"comparison\",\"awesome\",\"sucks\",\"dummy\",\"necro\",\"phony\",\"unearthed\",\"crisp\",\"clear\",\"hinders\",\"creepiness\",\"factor\",\"hype\",\"surrounding\",\"honest\",\"necrophilia\",\"nekromantik\",\"visitor\",\"shocking\",\"manner\",\"philosophy\",\"bull\",\"expensive\",\"beautifully\",\"filmed\",\"turd\",\"disgusting\",\"selection\",\"sickos\",\"doll\",\"considered\",\"hyped\",\"genesis\",\"cerda\",\"feature\",\"released\",\"absolute\",\"showing\",\"forgive\",\"mukhsin\",\"tonnes\",\"subtle\",\"messages\",\"yasmin\",\"across\",\"sepet\",\"gubra\",\"76\",\"bet\",\"relate\",\"bossy\",\"neighbour\",\"prostitute\",\"chick\",\"snooker\",\"pad\",\"pious\",\"overs\",\"crude\",\"awakeningly\",\"rumah\",\"tumpangan\",\"gamin\",\"signboard\",\"bismillahhirrahmannirrahim\",\"climbed\",\"tree\",\"captured\",\"malaysian\",\"attitude\",\"sniggering\",\"pathetic\",\"tongued\",\"shrill\",\"ppl\",\"busybody\",\"ur\",\"sorted\",\"reached\",\"expectation\",\"exceeded\",\"glued\",\"ha\",\"golf\",\"26\",\"30\",\"pm\",\"1800\",\"harry\",\"vardon\",\"awaken\",\"inquire\",\"stirred\",\"professional\",\"childhood\",\"focus\",\"francis\",\"decisions\",\"eddie\",\"lowery\",\"caddy\",\"encouraging\",\"pushes\",\"instrumental\",\"winning\",\"super\",\"tobe\",\"hooper\",\"crocodile\",\"2000\",\"college\",\"niche\",\"wayward\",\"delightful\",\"bonbons\",\"goodness\",\"ed\",\"flair\",\"dignity\",\"remarkable\",\"scripts\",\"monkees\",\"crocky\",\"fodder\",\"russ\",\"meyer\",\"breasts\",\"ren\",\"hoek\",\"pectoral\",\"implants\",\"opus\",\"referenced\",\"surf\",\"dish\",\"chum\",\"bucket\",\"nerds\",\"allusions\",\"homages\",\"rip\",\"offs\",\"jaws\",\"doom\",\"indiana\",\"crusade\",\"convent\",\"bond\",\"fade\",\"editor\",\"crock\",\"sotto\",\"voce\",\"tenor\",\"soliloquy\",\"environmentalism\",\"appreciation\",\"quasi\",\"ahab\",\"tour\",\"de\",\"speach\",\"galloping\",\"shootout\",\"sunset\",\"monkey\",\"flush\",\"toilet\",\"international\",\"station\",\"exploitative\",\"waltz\",\"zero\",\"g\",\"midget\",\"bloodshed\",\"whammy\",\"bar\",\"irked\",\"tries\",\"epic\",\"sh\\u00f4\",\"kasugi\",\"christopher\",\"lee\",\"rhys\",\"davies\",\"swashbuckling\",\"captures\",\"biggest\",\"modern\",\"errol\",\"flynn\",\"hate\",\"finds\",\"coburn\",\"outlaw\",\"breaking\",\"chain\",\"mexican\",\"border\",\"jail\",\"peace\",\"officer\",\"charlton\",\"heston\",\"retired\",\"barbara\",\"hershey\",\"holed\",\"shack\",\"waco\",\"standoff\",\"fired\",\"proud\",\"collateral\",\"casualty\",\"manhunt\",\"lest\",\"stalwart\",\"honors\",\"trails\",\"kidnapping\",\"reservation\",\"paull\",\"thalmus\",\"rasulala\",\"quade\",\"larry\",\"wilcox\",\"jorge\",\"rivero\",\"chris\",\"brutal\",\"andrew\",\"mclaglen\",\"intended\",\"peckinpaugh\",\"liberal\",\"accentuate\",\"interview\",\"keeps\",\"hi\",\"buffoon\",\"entrails\",\"sleazy\",\"bloody\",\"japanese\",\"penetrator\",\"sexploitation\",\"flick\",\"porno\",\"respects\",\"balance\",\"tack\",\"smidgen\",\"ingenuity\",\"creature\",\"safe\",\"soulless\",\"horn\",\"dog\",\"fetishists\",\"girls\",\"brains\",\"heads\",\"photo\",\"team\",\"guys\",\"salacious\",\"dense\",\"fog\",\"picked\",\"murderer\",\"credited\",\"kazuo\",\"gaira\",\"komizu\",\"quota\",\"random\",\"spliced\",\"clips\",\"photographers\",\"elsewhere\",\"wrestling\",\"choreographed\",\"yeah\",\"promise\",\"jobs\",\"amato\",\"covered\",\"mud\",\"unknown\",\"rapes\",\"highlights\",\"cro\\u00fbtons\",\"wretchedly\",\"tasting\",\"salad\",\"gouging\",\"spike\",\"olympic\",\"event\",\"cool\",\"entrailing\",\"overly\",\"crazed\",\"inconsequential\",\"correct\",\"indulgence\",\"cutaways\",\"censors\",\"blurred\",\"enjoying\",\"lumpy\",\"gawked\",\"shred\",\"lasts\",\"throwing\",\"sticks\",\"mantra\",\"ease\",\"depiction\",\"revolutionary\",\"resemble\",\"hirsute\",\"scout\",\"troop\",\"meandering\",\"swimming\",\"sharif\",\"palance\",\"fiery\",\"oratory\",\"kurtz\",\"swallowing\",\"bug\",\"displays\",\"strategic\",\"incorporate\",\"map\",\"replete\",\"smiling\",\"fishies\",\"ocean\",\"positively\",\"vaudevillian\",\"hypothesis\",\"pigs\",\"comical\",\"dentistry\",\"surfeit\",\"uppity\",\"peasants\",\"address\",\"kicks\",\"passel\",\"homoeroticism\",\"limited\",\"castro\",\"manic\",\"unremitting\",\"cigar\",\"fellatio\",\"medved\",\"busted\",\"clock\",\"twice\",\"finding\",\"attending\",\"trailers\",\"reviews\",\"entering\",\"readers\",\"tomatoes\",\"users\",\"ranked\",\"critics\",\"averaged\",\"underrated\",\"doug\",\"block\",\"record\",\"posterity\",\"treated\",\"requisite\",\"interviews\",\"outspoken\",\"mina\",\"forthcoming\",\"immediately\",\"unexpected\",\"expressive\",\"follows\",\"verbalize\",\"moved\",\"riveting\",\"evoke\",\"memories\",\"forgotten\",\"51\",\"birch\",\"rare\",\"filmgoing\",\"impression\",\"hbo\",\"millions\",\"incredible\",\"bravo\",\"hawkings\",\"genius\",\"geniuses\",\"intriguing\",\"wheelchair\",\"bound\",\"einstein\",\"theories\",\"discoveries\",\"universe\",\"galaxy\",\"sometime\",\"intense\",\"moment\",\"v\",\"cosmos\",\"swear\",\"sober\",\"lou\",\"gehrig\",\"disease\",\"formulated\",\"psychic\",\"tory\",\"returns\",\"hometown\",\"reliving\",\"traumatic\",\"abusive\",\"discovers\",\"string\",\"powers\",\"solve\",\"crimes\",\"continuing\",\"nora\",\"roberts\",\"flock\",\"tons\",\"fooled\",\"accents\",\"trite\",\"ask\",\"gross\",\"unscary\",\"disneyland\",\"crocodiles\",\"zoo\",\"sit\",\"ignoring\",\"tapping\",\"australia\",\"ambitious\",\"sport\",\"surfing\",\"shark\",\"filled\",\"waters\",\"evident\",\"dangerous\",\"fisherman\",\"animal\",\"avenge\",\"fifteen\",\"lake\",\"placid\",\"croc\",\"primeval\",\"tailing\",\"closely\",\"australian\",\"saltwater\",\"crododile\",\"hundred\",\"injuries\",\"ferocious\",\"fate\",\"walter\",\"sparrow\",\"possession\",\"eerie\",\"similarities\",\"connections\",\"23\",\"fiction\",\"connection\",\"undone\",\"weak\",\"screenwriter\",\"develop\",\"stretch\",\"ninety\",\"ideas\",\"schumacher\",\"redeem\",\"phone\",\"booth\",\"stinker\",\"drenched\",\"switches\",\"quickly\",\"titled\",\"stuck\",\"listening\",\"carrey\",\"narrate\",\"impatiently\",\"reach\",\"unconvincing\",\"celebrating\",\"finished\",\"forgettable\",\"sleepwalking\",\"narration\",\"madsen\",\"logan\",\"lerman\",\"bland\",\"danny\",\"huston\",\"offered\",\"joke\",\"dire\",\"hasslehoff\",\"substandard\",\"wondering\",\"affects\",\"drew\",\"fuller\",\"finish\",\"bed\",\"touching\",\"mean\",\"twisted\",\"kiddy\",\"advise\",\"interested\",\"steele\",\"undergone\",\"manage\",\"reading\",\"gilbert\",\"ophelia\",\"required\",\"accent\",\"realistically\",\"brad\",\"johnson\",\"matt\",\"divorce\",\"gentle\",\"beach\",\"pip\",\"accuses\",\"molester\",\"borders\",\"nutshell\",\"regard\",\"janine\",\"turner\",\"books\",\"noes\",\"attack\",\"sells\",\"pulling\",\"pulled\",\"cellphone\",\"dramaticness\",\"sucked\",\"lacked\",\"14\",\"16\",\"rock\",\"walker\",\"reverand\",\"martha\",\"ally\",\"sheedy\",\"habitual\",\"womanizer\",\"current\",\"veronica\",\"dara\",\"tomanovich\",\"bout\",\"amnesia\",\"kirkland\",\"coot\",\"pines\",\"shades\",\"misery\",\"savage\",\"horridly\",\"shoddy\",\"private\",\"investigator\",\"billed\",\"said\",\"spades\",\"sadly\",\"emphasize\",\"vested\",\"candy\",\"topless\",\"showtime\",\"industry\",\"laziest\",\"flood\",\"theaters\",\"invented\",\"superheroes\",\"x\",\"spiderman\",\"daredevil\",\"elektra\",\"rider\",\"hulk\",\"remakes\",\"ring\",\"pitch\",\"verbinsky\",\"ton\",\"alike\",\"horrors\",\"pointless\",\"grudges\",\"grudge\",\"mixing\",\"narratives\",\"hey\",\"xerox\",\"villain\",\"critic\",\"scares\",\"amber\",\"tamblyn\",\"aubrey\",\"drove\",\"michelle\",\"gellar\",\"allison\",\"arielle\",\"kebbel\",\"visit\",\"depicted\",\"witness\",\"glad\",\"tied\",\"rely\",\"tiresome\",\"chills\",\"lockers\",\"dig\",\"ghosts\",\"deadlier\",\"ebola\",\"epidemic\",\"pulse\",\"bullshits\",\"periscope\",\"library\",\"arrived\",\"acquired\",\"digital\",\"militarily\",\"overboard\",\"pro\",\"con\",\"foremost\",\"vehicle\",\"obsession\",\"became\",\"visiting\",\"uss\",\"drum\",\"mobile\",\"alabama\",\"2002\",\"cub\",\"scouts\",\"grandson\",\"planned\",\"relive\",\"overnighter\",\"navy\",\"kelsey\",\"grammar\",\"lauren\",\"holly\",\"rob\",\"schneider\",\"curious\",\"profusely\",\"apologize\",\"canadian\",\"cross\",\"cure\",\"retinal\",\"bleeding\",\"reported\",\"rented\",\"believing\",\"ripoff\",\"blade\",\"creators\",\"comment\",\"creation\",\"removing\",\"rec\",\"xx\",\"corner\",\"distraction\",\"incoherent\",\"grandmother\",\"deanna\",\"durbin\",\"nan\",\"grey\",\"universal\",\"1936\",\"introduces\",\"milland\",\"mischa\",\"auer\",\"winninger\",\"binnie\",\"barnes\",\"alice\",\"brady\",\"divorced\",\"loves\",\"ship\",\"housekeeper\",\"nanny\",\"wedding\",\"realizing\",\"precious\",\"gold\",\"digger\",\"aided\",\"arrange\",\"arranged\",\"accountant\",\"chooses\",\"cloying\",\"sugary\",\"emphasis\",\"natural\",\"trained\",\"youngster\",\"notes\",\"weight\",\"sings\",\"bacio\",\"nicest\",\"inference\",\"seeking\",\"youth\",\"glamorous\",\"daughters\",\"buildup\",\"paying\",\"dues\",\"attractive\",\"led\",\"stardom\",\"friendship\",\"struggling\",\"evolve\",\"folks\",\"melds\",\"observation\",\"funneled\",\"1992\",\"alfred\",\"molina\",\"joan\",\"plowright\",\"polly\",\"josie\",\"lawrence\",\"broadbent\",\"miranda\",\"richardson\",\"kitchens\",\"brush\",\"stroke\",\"newell\",\"accomplish\",\"photographed\",\"sublimely\",\"reminiscent\",\"theatrical\",\"bedroom\",\"farce\",\"growth\",\"artistic\",\"telegram\",\"importance\",\"caring\",\"possibly\",\"technology\",\"cecil\",\"demille\",\"1956\",\"charleton\",\"yul\",\"brenner\",\"cedric\",\"hardwicke\",\"biblical\",\"spectacular\",\"rivoting\",\"parting\",\"red\",\"drowning\",\"pharohs\",\"armies\",\"sethi\",\"pyramids\",\"todays\",\"lord\",\"lasting\",\"daniel\",\"lewis\",\"versatile\",\"aristocratic\",\"snob\",\"passionate\",\"thief\",\"impudent\",\"butcher\",\"gangs\",\"brody\",\"pianist\",\"outrageous\",\"cristy\",\"brown\",\"cerebral\",\"palsy\",\"foot\",\"eachother\",\"seperate\",\"ridicule\",\"pity\",\"achievement\",\"faults\",\"stupidly\",\"cried\",\"cheese\",\"restaurant\",\"discussing\",\"painters\",\"reaches\",\"kick\",\"anatomy\",\"animated\",\"wheel\",\"cripple\",\"slows\",\"falters\",\"perspicacious\",\"twitching\",\"guttural\",\"speeches\",\"fo\",\"sho\",\"yo\",\"quarter\",\"abbreviated\",\"partially\",\"unclear\",\"motivation\",\"joining\",\"squeeze\",\"slot\",\"zeus\",\"hera\",\"ball\",\"followers\",\"fairly\",\"gods\",\"certainty\",\"exist\",\"useful\",\"cardboard\",\"involving\",\"antagonistic\",\"stupidity\",\"unability\",\"compare\",\"spielberg\",\"understand\",\"difference\",\"inept\",\"chilling\",\"rehash\",\"previously\",\"forewarned\",\"plain\",\"pet\",\"lion\",\"gate\",\"deceives\",\"bombshell\",\"idiotic\",\"tripe\",\"mario\",\"fond\",\"latest\",\"installment\",\"keeping\",\"intact\",\"noticeable\",\"receives\",\"letter\",\"princess\",\"peach\",\"celebration\",\"castle\",\"mushroom\",\"kingdom\",\"arriving\",\"bowser\",\"attacking\",\"airships\",\"lifts\",\"midst\",\"lifted\",\"lands\",\"luma\",\"floating\",\"lumas\",\"rosalina\",\"scattered\",\"galaxies\",\"consists\",\"multiple\",\"planets\",\"travels\",\"via\",\"retrieve\",\"losing\",\"environments\",\"controls\",\"wiimote\",\"shake\",\"remote\",\"perform\",\"spin\",\"primary\",\"activate\",\"pointer\",\"fire\",\"enemies\",\"objects\",\"graphics\",\"wii\",\"describe\",\"360\",\"games\",\"gripes\",\"upside\",\"restart\",\"superb\",\"challenging\",\"inspired\",\"length\",\"spatula\",\"madness\",\"contends\",\"cartoons\",\"yielding\",\"writers\",\"joins\",\"spoons\",\"allows\",\"content\",\"near\",\"remainder\",\"absorbed\",\"august\",\"18th\",\"2004\",\"distinct\",\"displeasure\",\"meeting\",\"van\",\"bebble\",\"manson\",\"penny\",\"chicago\",\"underground\",\"festival\",\"kenneth\",\"roman\",\"polanski\",\"oliver\",\"terry\",\"gilliam\",\"session\",\"stated\",\"charlie\",\"liars\",\"autobiography\",\"helter\",\"skelter\",\"directly\",\"mimicked\",\"dibs\",\"questions\",\"asked\",\"outsider\",\"mtv\",\"n\",\"necessarily\",\"pissed\",\"sloshed\",\"shouting\",\"bullsh\",\"tagline\",\"laws\",\"excuse\",\"spoken\",\"considers\",\"statement\",\"catered\",\"attracting\",\"dimly\",\"lit\",\"theatre\",\"spawned\",\"beer\",\"shout\",\"rocky\",\"horroresque\",\"warping\",\"shape\",\"slasher\",\"comic\",\"dreamed\",\"individual\",\"samples\",\"lie\",\"choppy\",\"simulate\",\"nauseating\",\"uncertainty\",\"catalogues\",\"minds\",\"intellectual\",\"observers\",\"midnight\",\"behaving\",\"resembled\",\"stoned\",\"dungeons\",\"dragons\",\"enthusiast\",\"descriptions\",\"energy\",\"physical\",\"lethargic\",\"chubby\",\"representation\",\"sadie\",\"linda\",\"declares\",\"giveaway\",\"signalling\",\"beneath\",\"psychedelic\",\"garbage\",\"heap\",\"lay\",\"foundation\",\"alchemy\",\"separate\",\"impulse\",\"buy\",\"walmart\",\"sean\",\"connery\",\"sniper\",\"frustrated\",\"handle\",\"upgrade\",\"un\",\"upgraded\",\"equipment\",\"buying\",\"armor\",\"filling\",\"meter\",\"copter\",\"developers\",\"hilariously\",\"clinker\",\"demonically\",\"possessed\",\"dessert\",\"cake\",\"exceptionally\",\"cathode\",\"refuse\",\"breathtaking\",\"apex\",\"silliness\",\"atrociousness\",\"tasty\",\"execrable\",\"downright\",\"crenna\",\"haggard\",\"inebriated\",\"yvette\",\"mimieux\",\"endured\",\"county\",\"sluggishly\",\"disgustingly\",\"suburbanite\",\"quaint\",\"sleepy\",\"ripped\",\"asunder\",\"shepard\",\"ancient\",\"lethal\",\"repellently\",\"cutesy\",\"kim\",\"richards\",\"ike\",\"eisenmann\",\"moppets\",\"disney\",\"witch\",\"worshiping\",\"crayon\",\"drawing\",\"ugly\",\"canine\",\"den\",\"laughably\",\"ludicrous\",\"claptrap\",\"curtis\",\"tide\",\"harrington\",\"cartoonish\",\"risible\",\"struggles\",\"valiantly\",\"martine\",\"beswicke\",\"armstrong\",\"briefly\",\"pop\",\"victor\",\"jory\",\"native\",\"shaman\",\"malicious\",\"mephestophelion\",\"mutt\",\"practically\",\"forcing\",\"stick\",\"wildly\",\"spinning\",\"lawnmower\",\"snobby\",\"fright\",\"noses\",\"putrid\",\"stench\",\"admittedly\",\"smelly\",\"schlock\",\"devout\",\"trash\",\"deem\",\"endearingly\",\"abominable\",\"offal\",\"boob\",\"tube\",\"alpo\",\"vacation\",\"ultra\",\"seventies\",\"blonde\",\"supposedly\",\"survivors\",\"brunettes\",\"deserving\",\"contrives\",\"squabble\",\"prejudices\",\"nuts\",\"attracted\",\"ignores\",\"brunette\",\"meant\",\"depressing\",\"marion\",\"mgm\",\"1928\",\"hick\",\"savannah\",\"georgia\",\"arrives\",\"henderson\",\"jalopy\",\"arrive\",\"hoot\",\"costume\",\"haines\",\"smitten\",\"prestigious\",\"studio\",\"stuffy\",\"pieces\",\"handsome\",\"andre\",\"telefair\",\"ropes\",\"pretentious\",\"abandons\",\"outrageously\",\"runs\",\"gamut\",\"cameos\",\"chaplin\",\"vidor\",\"treasure\",\"excellently\",\"handled\",\"attenborough\",\"puzzles\",\"claim\",\"answers\",\"knowledgeable\",\"personnel\",\"insider\",\"trek\",\"frontier\",\"crew\",\"shore\",\"distress\",\"signal\",\"federation\",\"ambassadors\",\"romulus\",\"kronos\",\"klingon\",\"renegade\",\"vulcan\",\"bent\",\"quest\",\"attain\",\"starship\",\"venture\",\"barrier\",\"hopes\",\"mysticism\",\"persuades\",\"senior\",\"enterprise\",\"betray\",\"kirk\",\"fiasco\",\"wrath\",\"stale\",\"shatner\",\"chair\",\"ego\",\"spock\",\"mccoy\",\"moreover\",\"whereas\",\"guilty\",\"reckless\",\"jokers\",\"involves\",\"leaders\",\"row\",\"round\",\"claims\",\"talkie\",\"melodrama\",\"biopic\",\"ruthless\",\"fictional\",\"plutocrat\",\"flashback\",\"hopping\",\"scriptwriter\",\"sturges\",\"gift\",\"sparkling\",\"myriad\",\"cinematic\",\"innovations\",\"makeup\",\"authority\",\"prime\",\"matched\",\"multifaceted\",\"treacherous\",\"femmes\",\"fatales\",\"history\",\"sending\",\"ecstatic\",\"reverberations\",\"jumpy\",\"audio\",\"snippets\"],\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"shape\":[5000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"shape\":[5000]}},\"selected\":{\"id\":\"1063\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1064\",\"type\":\"UnionRenderers\"}},\"id\":\"1055\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1038\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1055\",\"type\":\"ColumnDataSource\"}},\"id\":\"1060\",\"type\":\"CDSView\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1040\",\"type\":\"PanTool\"},{\"id\":\"1041\",\"type\":\"WheelZoomTool\"},{\"id\":\"1042\",\"type\":\"BoxZoomTool\"},{\"id\":\"1043\",\"type\":\"ResetTool\"},{\"id\":\"1044\",\"type\":\"HoverTool\"},{\"id\":\"1045\",\"type\":\"SaveTool\"}]},\"id\":\"1046\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1040\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1041\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1048\",\"type\":\"BoxAnnotation\"}},\"id\":\"1042\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1043\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"word\",\"@words\"]]},\"id\":\"1044\",\"type\":\"HoverTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1057\",\"type\":\"Scatter\"},{\"attributes\":{\"data_source\":{\"id\":\"1055\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1057\",\"type\":\"Scatter\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1058\",\"type\":\"Scatter\"},\"selection_glyph\":null,\"view\":{\"id\":\"1060\",\"type\":\"CDSView\"}},\"id\":\"1059\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1045\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1063\",\"type\":\"Selection\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1048\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1058\",\"type\":\"Scatter\"},{\"attributes\":{\"plot\":null,\"text\":\"A map of 10000 word vectors\"},\"id\":\"1029\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"1032\",\"type\":\"DataRange1d\"}],\"root_ids\":[\"1030\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", 856 | " var render_items = [{\"docid\":\"aa18fd71-42e9-4ed8-ab47-31ea1f2b2682\",\"roots\":{\"1030\":\"c70fb1ac-35f7-48b9-a29e-267c933244ec\"}}];\n", 857 | " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", 858 | "\n", 859 | " }\n", 860 | " if (root.Bokeh !== undefined) {\n", 861 | " embed_document(root);\n", 862 | " } else {\n", 863 | " var attempts = 0;\n", 864 | " var timer = setInterval(function(root) {\n", 865 | " if (root.Bokeh !== undefined) {\n", 866 | " embed_document(root);\n", 867 | " clearInterval(timer);\n", 868 | " }\n", 869 | " attempts++;\n", 870 | " if (attempts > 100) {\n", 871 | " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", 872 | " clearInterval(timer);\n", 873 | " }\n", 874 | " }, 10, root)\n", 875 | " }\n", 876 | "})(window);" 877 | ], 878 | "application/vnd.bokehjs_exec.v0+json": "" 879 | }, 880 | "metadata": { 881 | "tags": [], 882 | "application/vnd.bokehjs_exec.v0+json": { 883 | "id": "1030" 884 | } 885 | } 886 | } 887 | ] 888 | }, 889 | { 890 | "cell_type": "code", 891 | "metadata": { 892 | "id": "-uCWrBYFG1a3", 893 | "colab_type": "code", 894 | "colab": {} 895 | }, 896 | "source": [ 897 | "#Save word embedding model\n", 898 | "model_file = 'imdb_word2vec_embedding.txt'\n", 899 | "model.wv.save_word2vec_format(filename, binary=False)" 900 | ], 901 | "execution_count": 0, 902 | "outputs": [] 903 | } 904 | ] 905 | } -------------------------------------------------------------------------------- /word_embedding_using_word2vec.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Word_Embedding_using_word2Vec.ipynb 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Q1k5uta4xrLVmkNSCHD8EIopUcDKEe8u 8 | """ 9 | 10 | #Import Libraries 11 | import pandas as pd 12 | import numpy as np 13 | import string 14 | import nltk 15 | from nltk.tokenize import RegexpTokenizer 16 | from nltk.corpus import stopwords 17 | nltk.download('stopwords') 18 | 19 | from google.colab import files 20 | #Upload IMDB_Dataset.csv file from local system to remote colab location 21 | files.upload() 22 | 23 | #Create dataframe and store the data from IMDB_Dataset.csv 24 | data = pd.DataFrame() 25 | data = pd.read_csv('IMDB_Dataset.csv', encoding='utf-8') 26 | data.head() 27 | 28 | #create empty list 29 | review_data_list = list() 30 | 31 | indv_lines = data['review'].values.tolist() 32 | for line in indv_lines: 33 | 34 | #create word tokens as well as remove puntuation in one go 35 | rem_tok_punc = RegexpTokenizer(r'\w+') 36 | 37 | tokens = rem_tok_punc.tokenize(line) 38 | 39 | 40 | #convert the words to lower case 41 | words = [w.lower() for w in tokens] 42 | 43 | #Invoke all the english stopwords 44 | stop_word_list = set(stopwords.words('english')) 45 | 46 | #Remove stop words 47 | words = [w for w in words if not w in stop_word_list] 48 | 49 | #Append words in the review_data_list list. 50 | review_data_list.append(words) 51 | len(review_data_list) 52 | 53 | #Train a Word2Vec model using Gensim 54 | import gensim 55 | Embedding_Dim = 100 56 | #train word2vec model 57 | model = gensim.models.Word2Vec(sentences = review_data_list, size = Embedding_Dim, workers = 4, min_count = 1) 58 | #Vocabulary size 59 | words = list(model.wv.vocab) 60 | print('Here is the Vocabulary Size.. %d' % len(words)) 61 | 62 | #Finding similar words 63 | model.wv.most_similar('amazing') 64 | 65 | model.wv.most_similar('awful') 66 | 67 | #Performing some mathematics on word vectors queen + man - woman = ? 68 | model.wv.most_similar_cosmul(positive=['queen','man'], negative=['woman']) 69 | 70 | #Finding the odd word out from the list of words given 71 | print(model.wv.doesnt_match("man woman car".split())) 72 | 73 | # Importing bokeh libraries for showing how words of similar context are grouped together 74 | import bokeh.plotting as bp 75 | from bokeh.models import HoverTool, BoxSelectTool 76 | from bokeh.plotting import figure, show, output_notebook 77 | 78 | #Defining the chart 79 | output_notebook() 80 | plot_chart = bp.figure(plot_width=700, plot_height=600, title="A map/plot of 5000 word vectors", 81 | tools="pan,wheel_zoom,box_zoom,reset,hover,previewsave", 82 | x_axis_type=None, y_axis_type=None, min_border=1) 83 | 84 | #Extracting the list of word vectors, limiting to 5000, each is of 200 dimensions 85 | word_vectors = [model[w] for w in list(model.wv.vocab.keys())[:5000]] 86 | 87 | # Reducing dimensionality by converting the vectors to 2d vectors 88 | from sklearn.manifold import TSNE 89 | tsne_model = TSNE(n_components=2, verbose=1, random_state=0) 90 | tsne_w2v = tsne_model.fit_transform(word_vectors) 91 | 92 | # Storing data in a dataframe 93 | tsne_df = pd.DataFrame(tsne_w2v, columns=['x', 'y']) 94 | tsne_df['words'] = list(model.wv.vocab.keys())[:5000] 95 | 96 | # Corresponding word appears when you hover on the data point. 97 | plot_chart.scatter(x='x', y='y', source=tsne_df) 98 | hover = plot_chart.select(dict(type=HoverTool)) 99 | hover.tooltips={"word": "@words"} 100 | show(plot_chart) 101 | 102 | #Save word embedding model 103 | model_file = 'imdb_word2vec_embedding.txt' 104 | model.wv.save_word2vec_format(filename, binary=False) --------------------------------------------------------------------------------