{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":652,"outputs":[{"output_type":"stream","text":"['riverus-assignment', 'quora-insincere-questions-classification']\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import csv\nimport pandas as pd\nimport collections\nimport nltk\nfrom nltk.corpus import stopwords\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport re\nfrom bs4 import BeautifulSoup\nfrom nltk.tokenize import WordPunctTokenizer\nfrom nltk.stem.snowball import SnowballStemmer","execution_count":653,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Data Analysis:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"df1 = pd.read_csv(r\"../input/riverus-assignment/1.txt\", sep=\"\\t\", header = None)\ndf2 = pd.read_csv(r\"../input/riverus-assignment/2.txt\", sep=\"\\t\", header = None)\ntest_df = pd.read_csv(r\"../input/riverus-assignment/3.txt\", sep=\",\", header = [0], index_col = 0)\ntesting_df = pd.read_csv(r\"../input/riverus-assignment/3.txt\", sep=\",\", header = [0], index_col = 0)\ndf2.columns = ['Target', 'Text'] \ndf1.columns = ['Text', 'Target'] \ndf2 = df2[['Text','Target']]\ndf = pd.concat([df1,df2], ignore_index = True)\n","execution_count":654,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.describe()","execution_count":655,"outputs":[{"output_type":"execute_result","execution_count":655,"data":{"text/plain":"            Target\ncount  7618.000000\nmean      0.566159\nstd       0.495636\nmin       0.000000\n25%       0.000000\n50%       1.000000\n75%       1.000000\nmax       1.000000","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Target</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>count</th>\n      <td>7618.000000</td>\n    </tr>\n    <tr>\n      <th>mean</th>\n      <td>0.566159</td>\n    </tr>\n    <tr>\n      <th>std</th>\n      <td>0.495636</td>\n    </tr>\n    <tr>\n      <th>min</th>\n      <td>0.000000</td>\n    </tr>\n    <tr>\n      <th>25%</th>\n      <td>0.000000</td>\n    </tr>\n    <tr>\n      <th>50%</th>\n      <td>1.000000</td>\n    </tr>\n    <tr>\n      <th>75%</th>\n      <td>1.000000</td>\n    </tr>\n    <tr>\n      <th>max</th>\n      <td>1.000000</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.groupby('Target').describe()","execution_count":656,"outputs":[{"output_type":"execute_result","execution_count":656,"data":{"text/plain":"        Text                                  \n       count unique                   top freq\nTarget                                        \n0       3305    889  I hate Harry Potter.   85\n1       4313   1100  I love Harry Potter.  167","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead tr th {\n        text-align: left;\n    }\n\n    .dataframe thead tr:last-of-type th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr>\n      <th></th>\n      <th colspan=\"4\" halign=\"left\">Text</th>\n    </tr>\n    <tr>\n      <th></th>\n      <th>count</th>\n      <th>unique</th>\n      <th>top</th>\n      <th>freq</th>\n    </tr>\n    <tr>\n      <th>Target</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>3305</td>\n      <td>889</td>\n      <td>I hate Harry Potter.</td>\n      <td>85</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>4313</td>\n      <td>1100</td>\n      <td>I love Harry Potter.</td>\n      <td>167</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df['length'] = df['Text'].apply(len)\ndf.head()","execution_count":657,"outputs":[{"output_type":"execute_result","execution_count":657,"data":{"text/plain":"                                                Text  Target  length\n0  A very, very, very slow-moving, aimless movie ...       0      87\n1  Not sure who was more lost - the flat characte...       0      99\n2  Attempting artiness with black & white and cle...       0     188\n3       Very little music or anything to speak of.         0      44\n4  The best scene in the movie was when Gerardo i...       1     108","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Text</th>\n      <th>Target</th>\n      <th>length</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>A very, very, very slow-moving, aimless movie ...</td>\n      <td>0</td>\n      <td>87</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>Not sure who was more lost - the flat characte...</td>\n      <td>0</td>\n      <td>99</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>Attempting artiness with black &amp; white and cle...</td>\n      <td>0</td>\n      <td>188</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>Very little music or anything to speak of.</td>\n      <td>0</td>\n      <td>44</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>The best scene in the movie was when Gerardo i...</td>\n      <td>1</td>\n      <td>108</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.length.describe()","execution_count":658,"outputs":[{"output_type":"execute_result","execution_count":658,"data":{"text/plain":"count    7618.000000\nmean       66.323313\nstd       140.458789\nmin         7.000000\n25%        32.000000\n50%        49.000000\n75%        78.000000\nmax      7944.000000\nName: length, dtype: float64"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.hist(column='length', by='Target', bins =110, figsize=(10,4))","execution_count":659,"outputs":[{"output_type":"execute_result","execution_count":659,"data":{"text/plain":"array([<matplotlib.axes._subplots.AxesSubplot object at 0x7ff1bb5a9470>,\n       <matplotlib.axes._subplots.AxesSubplot object at 0x7ff1b400d978>],\n      dtype=object)"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 720x288 with 2 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Preprocessing and Analysis:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"freq = pd.Series(' '.join(df['Text']).split()).value_counts()\nfreq = dict(freq)\nlen(freq)\n# selectedKeys = list() \n# for (key, value) in freq.items() :\n#     if value < 5:\n#         selectedKeys.append(key)\nword_counter = collections.Counter(freq)\n# for word, count in word_counter.most_common():\n#     print(word, \": \", count)\n\nlst = word_counter.most_common(50)\ndf_bar = pd.DataFrame(lst, columns = ['Word', 'Count'])\ndf_bar.plot.bar(x='Word',y='Count', figsize = (15,10), title = 'Most frequently occuring words')\n","execution_count":660,"outputs":[{"output_type":"execute_result","execution_count":660,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7ff1b84b6240>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x720 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"sw = stopwords.words('english')\n# sw.extend(selectedKeys)\nprint(sw)\n\ntok = WordPunctTokenizer()\npat1 = r'@[A-Za-z0-9]+'\npat2 = r'https?://[A-Za-z0-9./]+'\ncombined_pat = r'|'.join((pat1, pat2))\ndef cleaner(text):\n    soup = BeautifulSoup(text, 'lxml')\n    souped = soup.get_text()\n    stripped = re.sub(combined_pat, '', souped)\n    try:\n        clean = stripped.decode(\"utf-8-sig\").replace(u\"\\ufffd\", \"?\")\n    except:\n        clean = stripped\n    letters_only = re.sub(\"[^a-zA-Z]\", \" \", clean)\n    lower_case = letters_only.lower()\n    words = tok.tokenize(lower_case)\n    return (\" \".join(words)).strip()\n\ndef remove_punctuation(text):\n    import string\n    translator = str.maketrans('', '', string.punctuation)\n    return text.translate(translator)\n\ndef remove_url(data):\n#     emo = re.compile('[\\U00010000-\\U0010ffff]', flags=re.UNICODE)\n#     data = emo.sub(r'', data)\n    if data.startswith('www.'):\n        data = re.sub(r'www.', '', data)\n    if data.startswith('http.'):\n        data = re.sub(r'http.', '', data)\n    domain = data.split(\"//\")[-1].split(\"/\")[0]\n    return domain\n\ndef stopwords(text):\n    text = [word.lower() for word in text.split() if word.lower() not in sw]\n    return \" \".join(text)\n","execution_count":661,"outputs":[{"output_type":"stream","text":"['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', \"you're\", \"you've\", \"you'll\", \"you'd\", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', \"she's\", 'her', 'hers', 'herself', 'it', \"it's\", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', \"that'll\", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', \"don't\", 'should', \"should've\", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', \"aren't\", 'couldn', \"couldn't\", 'didn', \"didn't\", 'doesn', \"doesn't\", 'hadn', \"hadn't\", 'hasn', \"hasn't\", 'haven', \"haven't\", 'isn', \"isn't\", 'ma', 'mightn', \"mightn't\", 'mustn', \"mustn't\", 'needn', \"needn't\", 'shan', \"shan't\", 'shouldn', \"shouldn't\", 'wasn', \"wasn't\", 'weren', \"weren't\", 'won', \"won't\", 'wouldn', \"wouldn't\"]\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df['Text'] = df['Text'].apply(stopwords)\ndf['Text'] = df['Text'].apply(remove_url)\ndf['Text'] = df['Text'].apply(remove_punctuation)\ndf['Text'] = df['Text'].apply(cleaner)\ndf['Text'] = df['Text'].apply(stopwords)\ntest_df['Text'] = test_df['Text'].apply(remove_url)\ntest_df['Text'] = test_df['Text'].apply(remove_punctuation)\ntest_df['Text'] = test_df['Text'].apply(cleaner)\ntest_df['Text'] = test_df['Text'].apply(stopwords)\n","execution_count":662,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.groupby('Target').describe()","execution_count":663,"outputs":[{"output_type":"execute_result","execution_count":663,"data":{"text/plain":"        length                                                      \n         count       mean         std  min   25%   50%   75%     max\nTarget                                                              \n0       3305.0  71.481089  189.074499  8.0  37.0  49.0  84.0  7944.0\n1       4313.0  62.370971   86.149801  7.0  31.0  46.0  78.0  4487.0","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead tr th {\n        text-align: left;\n    }\n\n    .dataframe thead tr:last-of-type th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr>\n      <th></th>\n      <th colspan=\"8\" halign=\"left\">length</th>\n    </tr>\n    <tr>\n      <th></th>\n      <th>count</th>\n      <th>mean</th>\n      <th>std</th>\n      <th>min</th>\n      <th>25%</th>\n      <th>50%</th>\n      <th>75%</th>\n      <th>max</th>\n    </tr>\n    <tr>\n      <th>Target</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>3305.0</td>\n      <td>71.481089</td>\n      <td>189.074499</td>\n      <td>8.0</td>\n      <td>37.0</td>\n      <td>49.0</td>\n      <td>84.0</td>\n      <td>7944.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>4313.0</td>\n      <td>62.370971</td>\n      <td>86.149801</td>\n      <td>7.0</td>\n      <td>31.0</td>\n      <td>46.0</td>\n      <td>78.0</td>\n      <td>4487.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df['cleaned_length'] = df['Text'].apply(len)\ndf.head()","execution_count":664,"outputs":[{"output_type":"execute_result","execution_count":664,"data":{"text/plain":"                                                Text       ...        cleaned_length\n0  slowmoving aimless movie distressed drifting y...       ...                    54\n1  sure lost flat characters audience nearly half...       ...                    53\n2  attempting artiness black white clever camera ...       ...                   136\n3                        little music anything speak       ...                    27\n4  best scene movie gerardo trying find song keep...       ...                    60\n\n[5 rows x 4 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Text</th>\n      <th>Target</th>\n      <th>length</th>\n      <th>cleaned_length</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>slowmoving aimless movie distressed drifting y...</td>\n      <td>0</td>\n      <td>87</td>\n      <td>54</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>sure lost flat characters audience nearly half...</td>\n      <td>0</td>\n      <td>99</td>\n      <td>53</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>attempting artiness black white clever camera ...</td>\n      <td>0</td>\n      <td>188</td>\n      <td>136</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>little music anything speak</td>\n      <td>0</td>\n      <td>44</td>\n      <td>27</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>best scene movie gerardo trying find song keep...</td>\n      <td>1</td>\n      <td>108</td>\n      <td>60</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.cleaned_length.describe()","execution_count":665,"outputs":[{"output_type":"execute_result","execution_count":665,"data":{"text/plain":"count    7618.000000\nmean       43.429378\nstd        44.768555\nmin         0.000000\n25%        24.000000\n50%        36.000000\n75%        52.000000\nmax      2038.000000\nName: cleaned_length, dtype: float64"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.hist(column='cleaned_length', by='Target', bins =50, figsize=(10,4))","execution_count":666,"outputs":[{"output_type":"execute_result","execution_count":666,"data":{"text/plain":"array([<matplotlib.axes._subplots.AxesSubplot object at 0x7ff1badd4438>,\n       <matplotlib.axes._subplots.AxesSubplot object at 0x7ff1bb766ef0>],\n      dtype=object)"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 720x288 with 2 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"cleaned_freq = pd.Series(' '.join(df['Text']).split()).value_counts()\ncleaned_freq = dict(cleaned_freq)\nlen(cleaned_freq)\ncleaned_word_counter = collections.Counter(cleaned_freq)\n# for word, count in word_counter.most_common():\n#     print(word, \": \", count)\n\ncleaned_lst = cleaned_word_counter.most_common(50)\ndf_bar = pd.DataFrame(cleaned_lst, columns = ['Word', 'Count'])\ndf_bar.plot.bar(x='Word',y='Count', figsize = (15,10), title = 'Most frequently occuring words in cleaned dataset')\n\n","execution_count":667,"outputs":[{"output_type":"execute_result","execution_count":667,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7ff1bb52f9e8>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x720 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAA3cAAAKKCAYAAACeSKJlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3X28rWVdJ/7PNw6KE6goJ1SeDikaKolCaqZm2ORzppXCTIppEaW/yRmqwWp+Mpb9qETLUskHBqxG8TEdtSny2fERDEEBFRXiECCCImoyAt/fH+s+ujycs/c+Z++zz+Y67/frtV5nreu+7uv+3vdaa5/12de97l3dHQAAAG7dfmBnFwAAAMDyCXcAAAADEO4AAAAGINwBAAAMQLgDAAAYgHAHAAAwAOEOYAVU1R9W1Veq6sqdXctyVdX7qupXdnYd26OqfreqXr2z61iOqjq9qv5wO9b7RlX98FqoZUeqqg1V1VW1bon919w+AOwowh1wq1dVl1TV/62qfTZr/+fpQ+CGZY7fVXWPBZYfmOSEJPfu7rssZ1urrapOqqq/2dl1rJTu/qPuvlUG0+Xq7j27+4s7u45bs9X6xcat+RcowNom3AGj+FKSYzY9qKrDkvy7Vdr2gUmu6e4vb2nhUmcYWJ5b23G+tdULwNon3AGj+OskT597fGyS1853qKo7VNVrq+rqqrq0qn6/qn5gWnaPqnp/VV03nV555tT+gWn1T02nvT11szF/OslZSe42LT997rSxZ1XVvyR5z9T3wVX14ar6WlV9qqoeMTfOwdP2r6+qs6rqLzfNqFXVI6pq42bbvWTadqrqB6rqxKr6QlVdU1VvqKo7Tcs21XJsVf3LtG+/Ny17dJLfTfLUqfZPbbaN21TVtVNQ3tT2Q1X1rapav/kTMNXx+9Ox/fJ0rO8wt/yhc/t/WVU9Y2q/XVWdMq13XVV9aGpbbL9Pqqo3VdXfVNXXkzxjfiZyoX2f2+4ZVfXVqrqwqn5n8+3N9f3vVfUX0/3dq+qbVfWnc+N8e+6Y/2xVfWbaz/dV1aGb1f9fq+q8JN+sqnVVdf+q+uT03J+ZZI+5/vtU1Tumsa6tqg9ues1uocbvzjBPr8OXVdU7p3E/VlV339J6Cz03W+j3+Ko6d+r34ar60bllm16D11fVBVX1pLllz5ie1xdNx/tLVfWYueV3qKrXVNUVVXV5zU5z3m1attu03leq6otJHre1/Zj6L3Q8956O59VTHe+oqv2nZS9M8rAkfzm9H/5yav/z6Zh8varOqaqHzY33wKo6e1p2VVW9eG7ZFt/vW9sOwIrobjc3N7db9S3JJUl+OslnkxyaZLckG5MclKSTbJj6vTbJ25LslWRDks8leda07HVJfi+zX3rtkeShc+N3knsssP1HJNk493jDtM5rk/xgktsl2S/JNUkeO23j30+P10/rfCTJi5PcNsnDk1yf5G+2NP78Pk/3fzPJR5PsP63/V0let1ktr5rquF+SG5IcOi0/adN25sZ+X5Jfme6/PMkfzy37zST/ayvH4ZlJLk7yw0n2TPKWJH89LTto2qdjkuye5M5JDp+WvWza5n7Tc/eQaT8W2++Tknwnyc9Nx/R28/uzhH0/Ocn7k+w9HbvzNt/e3HaPSnL+dP8hSb6Q5GNzyz413b9nkm9Oz+/uSX5nOia3mav/3CQHTDXdJsmlSf7z1P8Xpn36w6n//5fk1GnZ7pmFgtpKjd99nSY5PbPX1wOTrEvyt0lev5X1FnpuTp+r5f5JvpzkQdPzdOy0P7edlv9ikrtNz8VTp+Nw12nZM6b9+tVp3V9P8q+b9iXJWzN73f5gkh9K8vEkvzYtOz7JRdMxu1OS9077um4L+7LY8bxzkp/PbFZ/ryRvTPJ3W3rtz7X90rTeusxOv74yyR5z79unTff3TPLg6f5i7/dbbMfNzc1tJW5m7oCRbJq9+/dJLkxy+aYF0yzA0Ume193Xd/clSU5J8rSpy3cy+5B7t+7+dnd/aAXqOam7v9nd/5bZB8R3dfe7uvvm7j4rydlJHluz7+z9WJL/1t03dPcHkvyvbdjO8Ul+r7s3dvcNmQWcX6jvP+3vv3f3v3X3p5J8KrOgsxRnJDmmqmp6/LTMjvOW/MckL+7uL3b3N5I8L8nRUx3/Ick/dffruvs73X1Nd587zUI9M8lvdvfl3X1Td3942o+l+Eh3/910TP9tK322tu9PSfJH3f3V7t6Y5KULbSfJIVV158zC92uS7FdVeyb5ycxCYjILNe/s7rO6+ztJXpRZiHvI3Fgv7e7LpnofnFkI+bPpuLwpySfm+n4nyV2THDQt/2B391IOTJK3dvfHu/vGzMLd4Vvpt8XnZgv9jkvyV939sel5OiOzsPzgJOnuN3b3v07PxZlJPp9ZuNzk0u5+VXfflNnr6q5J9q2qfTMLQc+d3i9fTvKSzN6vyex5+rPpmF2bWeDdmgWP57Rvb+7ub3X39UlemNnzt1Xd/TfTejd29ymZ/eLhXtPi7yS5R1Xt093f6O6PTu1bfb8vtC2A5RLugJH8dWYfVJ+RzU7JTLJPZh/6Lp1ruzSz37AnsxmWSvLx6ZS6Z65APZfN3T8oyS9Op2h9raq+luShmX3AvVuSr3b3NzerbakOSvLWuXEvTHJTkn3n+sxfxfNbmc0yLKq7Pzb1f0RV/UiSeyR5+1a63y23PL7rpjoOyGy2a3P7ZDZTuqVlS3HZ4l22uu9322z9rY41BbGzMwsCD88szH04yU/k+8Pd9x2D7r55Gne/ueHmt3O3JJdvFtjmj+GfZjbz949V9cWqOnFrNW7BUp/zrT03mzsoyQmbvYYPyGwfUlVPnztl82tJ7pvZ83uLerr7W9PdPadxd09yxdy6f5XZDF5yy+dpoffGgsezqv5dVf1VzU4B/nqSDyS546ZTQLekqn6rZqftXjfVdoe5/XpWZrO1F1XVJ6rq8XPHamvvd4Adxpe5gWF096VV9aXMfjv+rM0WfyXfm527YGo7MNPsXndfmdkpY6mqhyb5p6r6QHdfvJyS5u5fltkpir+6eaeqOijJ3lX1g3MB78C59b+ZuYvDTB9E57/zdlmSZ3b3/9nC2Bu2ocatOSOzmYgrk7ypu7+9lX7/mtnx3eTAJDcmuWqq8YFbWOcrSb6d5O6ZzarNW2y/l1r/1lyR2emYm14PByzS//2ZnYJ5/8xmg96f5FGZ7dem72b+a5L57yjWNO7lc+PM13xFZjOANRdIDswUtqbZpRMyC1X3TfKeqvpEd797G/ZzMVt7brbU74Xd/cLNF0yv4VcleWRms6k3VdW5mf3CZCnj3pBkn2mWcXNX5PufmwMXGGvB45nZsbxXkgd195VVdXiSf56r8/teT9P3635n2q/PdPfNVfXVTf27+/OZzWz/QJInJ3nTNLu71ff7lrYDsFLM3AGjeVaSozabBct0KtgbkrywqvaaPoz+lySbLr7xi5surJDkq5l9+Lp5enxVZt8jW46/SfKEqnrUdIGIPWp2wZD9u/vSzGaF/nvNLmLy0CRPmFv3c0n2qKrHVdXuSX4/s1PDNjl12q+Dpn1ZX1VPXGJdVyXZUFu5SMdc7U/KLOBtPiM673VJ/nPNLg6zZ5I/SnLm3GmBP11VT6nZRUTuXFWHTzNbpyV5cVXdbTo2P15Vt13Cfi/XG5I8b7rIxn5JnrNI//dndtrvBd39fzN9byrJl7r76rkxH1dVj5xqPiGz4PLhrYz5kcwC8H+q2YVanpy5oFWzC5jcYwqJ12U2I3vzlofablt8brbQ71VJjq+qB9XMD07PzV6ZfVeuk1w91f3Lmc3cLaq7r0jyj0lOqarb1+zCPHevqk2nS74hs+Ozf1XtnWSh2csFj2dm37P7tyRfq9kFcJ6/2fqbv9f3msa7Osm6qvp/k9x+08Kq+qWqWj+9jr82Nd+cBd7vW9kOwIoQ7oChdPcXuvvsrSz+fzKbDfpikg8l+Z+ZBYtk9p23j1XVNzI77fA3+3t/M+ykJGdMp1c9ZTvruizJEzO7OuXVmf1m/7fzvZ/D/yGzC1Vcm9kHztfOrXtdkt9I8urMZoC+mdkFYzb586nmf6yq6zO7uMqDlljaG6d/r6mqTy5Q+ycz+/D+wQXGOi2zU2M/kNmfpvh2Zsc83f0vmc2onjDt47n53nfffivJ+ZnNhl2b5I+T/MAS9nu5XjCN96Uk/5TkTZkFsa35cGbfn9s0S3dBZvu46XG6+7OZheC/yGxW8glJnjCFwVuY2p+c2anE12b2nb23zHU5ZKrtG5kFl5d393u3YR8XtchzM9/v7Mxmt/8ys1+AXDzVne6+ILPvsH4ks+ByWJJbzCQv4OmZXQzlgmnsN+V7pzC+Ksk/ZDaz+8l8//HZvMbFjuefZfYcfiWz98n/3myIP8/s+6pfraqXTtv935n9ouHSzJ7v+VNEH53kM9PPjT9PcvT0/c7F3u+bbwdgRWy6ShUAa0hVnZTZlQ9/aWfXkiRVdVqSf+3u39/ZtewoVfXrmX04X/ACGwCwVvnOHQALmr639+TMvms2jKq6a2anxn0ksxmyEzKblQKAWyWnZQKwVVX1B0k+neRPu/tLO7ueFXabzK7KeH1mf2j+bZn9XT8AuFVyWiYAAMAAzNwBAAAMQLgDAAAYwJq/oMo+++zTGzZs2NllAAAA7BTnnHPOV7p7/WL91ny427BhQ84+e2t/sgoAAGBsVXXpUvo5LRMAAGAAwh0AAMAAhDsAAIABrPnv3AEAAOP7zne+k40bN+bb3/72zi5lp9ljjz2y//77Z/fdd9+u9YU7AABgp9u4cWP22muvbNiwIVW1s8tZdd2da665Jhs3bszBBx+8XWM4LRMAANjpvv3tb+fOd77zLhnskqSqcuc733lZM5fCHQAAsCbsqsFuk+Xuv3AHAAAwufLKK3P00Ufn7ne/e4444og89rGPzec+97kVG/9973tfPvzhD6/YePN85w4AAFhzNpz4zhUd75KTH7don+7Ok570pBx77LF5/etfnyT51Kc+lauuuir3vOc9V6SO973vfdlzzz3zkIc8ZEXGm2fmDgAAIMl73/ve7L777jn++OO/23a/+90vD33oQ/Pbv/3bue9975vDDjssZ555ZpJZUHv84x//3b7Pec5zcvrppydJNmzYkOc///l5wAMekMMOOywXXXRRLrnkkpx66ql5yUteksMPPzwf/OAHV7R+M3cAAABJPv3pT+eII464Rftb3vKWnHvuufnUpz6Vr3zlK/mxH/uxPPzhD190vH322Sef/OQn8/KXvzwvetGL8upXvzrHH3989txzz/zWb/3Witdv5g4AAGABH/rQh3LMMcdkt912y7777puf/MmfzCc+8YlF13vyk5+cJDniiCNyySWX7OAqhTsAAIAkyX3uc5+cc845S+6/bt263Hzzzd99vPmfMbjtbW+bJNltt91y4403rkyRCxDuAAAAkhx11FG54YYb8spXvvK7beedd17ueMc75swzz8xNN92Uq6++Oh/4wAfywAc+MAcddFAuuOCC3HDDDfna176Wd7/73YtuY6+99sr111+/Q+r3nTsAAIDM/s7cW9/61jz3uc/NH//xH2ePPfbIhg0b8md/9mf5xje+kfvd736pqvzJn/xJ7nKXuyRJnvKUp+S+971vDj744Nz//vdfdBtPeMIT8gu/8At529velr/4i7/Iwx72sJWrv7tXbLAd4cgjj+yzzz57Z5cBAADsQBdeeGEOPfTQnV3GTrel41BV53T3kYut67RMAACAAQh3AAAAAxDuAAAABiDcAQAAa8Javx7Ijrbc/RfuAACAnW6PPfbINddcs8sGvO7ONddckz322GO7x/CnEAAAgJ1u//33z8aNG3P11Vfv7FJ2mj322CP777//dq8v3AEAADvd7rvvnoMPPnhnl3Gr5rRMAACAAdzqZu42nPjOBZdfcvLjVqkSAACAteNWF+5WxEl3WGT5datTBwAAwApxWiYA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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.drop(['length', 'cleaned_length'], axis = 1, inplace = True)","execution_count":668,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df = df.reindex(np.random.permutation(df.index))\ndf.head()","execution_count":669,"outputs":[{"output_type":"execute_result","execution_count":669,"data":{"text/plain":"                                                   Text  Target\n418   even allowing poor production values time form...       0\n2669  said silent hill turned reality coz hella like...       1\n1589                        love luv lubb da vinci code       1\n5163          heard da vinci code sucked soo much stars       0\n4438                       man loved brokeback mountain       1","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Text</th>\n      <th>Target</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>418</th>\n      <td>even allowing poor production values time form...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2669</th>\n      <td>said silent hill turned reality coz hella like...</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1589</th>\n      <td>love luv lubb da vinci code</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>5163</th>\n      <td>heard da vinci code sucked soo much stars</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4438</th>\n      <td>man loved brokeback mountain</td>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"stemmer = SnowballStemmer(\"english\")\ndef stemming(text):    \n    text = [stemmer.stem(word) for word in text.split()]\n    return \" \".join(text) \ndf['Text'] = df['Text'].apply(stemming)\ntest_df['Text'] = test_df['Text'].apply(stemming)","execution_count":670,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Building the Model:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.metrics import accuracy_score\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nimport seaborn as sn\n","execution_count":671,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**TF-IDF Model:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"cv = TfidfVectorizer(ngram_range = (1,2))\nX_df = cv.fit_transform(df.Text).toarray()\ntest_df_cv = cv.transform(test_df.Text).toarray()\nY_df = df.iloc[:,1].values","execution_count":672,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train, X_test, Y_train, Y_test = train_test_split(X_df, Y_df, test_size = 0.20, random_state = 10)","execution_count":673,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Logistic Regression:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"lr = LogisticRegression()\nlr.fit(X_train, Y_train)","execution_count":674,"outputs":[{"output_type":"stream","text":"/opt/conda/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n  FutureWarning)\n","name":"stderr"},{"output_type":"execute_result","execution_count":674,"data":{"text/plain":"LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n          intercept_scaling=1, max_iter=100, multi_class='warn',\n          n_jobs=None, penalty='l2', random_state=None, solver='warn',\n          tol=0.0001, verbose=0, warm_start=False)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import pickle\n\nwith open('lr_model.pickle', 'wb') as f:\n    pickle.dump(lr, f)","execution_count":675,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Y_pred = lr.predict(X_test)\ntarget_names = ['0', '1']\nprint(classification_report(Y_test, Y_pred, target_names=target_names))","execution_count":676,"outputs":[{"output_type":"stream","text":"              precision    recall  f1-score   support\n\n           0       0.99      0.96      0.98       669\n           1       0.97      0.99      0.98       855\n\n   micro avg       0.98      0.98      0.98      1524\n   macro avg       0.98      0.98      0.98      1524\nweighted avg       0.98      0.98      0.98      1524\n\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"cm_lr = confusion_matrix(Y_test,Y_pred)\nconf_matrix_lr = pd.DataFrame(data=cm_lr,columns=['Predicted:0','Predicted:1'],index=['Actual:0','Actual:1'])\nplt.figure(figsize = (8,5))\nsn.heatmap(conf_matrix_lr, annot=True,fmt='d',cmap=\"YlGnBu\")","execution_count":677,"outputs":[{"output_type":"execute_result","execution_count":677,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7ff1bb0423c8>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 576x360 with 2 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Random Forest:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"rf = RandomForestClassifier(n_estimators = 100, criterion = 'entropy', random_state = 10)\nrf.fit(X_train, Y_train)","execution_count":678,"outputs":[{"output_type":"execute_result","execution_count":678,"data":{"text/plain":"RandomForestClassifier(bootstrap=True, class_weight=None, criterion='entropy',\n            max_depth=None, max_features='auto', max_leaf_nodes=None,\n            min_impurity_decrease=0.0, min_impurity_split=None,\n            min_samples_leaf=1, min_samples_split=2,\n            min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=None,\n            oob_score=False, random_state=10, verbose=0, warm_start=False)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"with open('rf_model.pickle', 'wb') as f:\n    pickle.dump(rf, f)","execution_count":679,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Y_pred_rf = rf.predict(X_test)\ntarget_names = ['0', '1']\nprint(classification_report(Y_test, Y_pred_rf, target_names=target_names))","execution_count":680,"outputs":[{"output_type":"stream","text":"              precision    recall  f1-score   support\n\n           0       0.99      0.94      0.97       669\n           1       0.96      0.99      0.97       855\n\n   micro avg       0.97      0.97      0.97      1524\n   macro avg       0.97      0.97      0.97      1524\nweighted avg       0.97      0.97      0.97      1524\n\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"cm_rf = confusion_matrix(Y_test,Y_pred_rf)\nconf_matrix_rf = pd.DataFrame(data=cm_rf,columns=['Predicted:0','Predicted:1'],index=['Actual:0','Actual:1'])\nplt.figure(figsize = (8,5))\nsn.heatmap(conf_matrix_rf, annot=True,fmt='d',cmap=\"YlGnBu\")","execution_count":681,"outputs":[{"output_type":"execute_result","execution_count":681,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7ff1b8439438>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 576x360 with 2 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Testing:**"},{"metadata":{"trusted":true},"cell_type":"code","source":"test_pred_rf = lr.predict(test_df_cv)\nprint(test_pred_rf)","execution_count":682,"outputs":[{"output_type":"stream","text":"[0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1\n 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1\n 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0\n 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0\n 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1\n 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1\n 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0\n 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1\n 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1\n 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1\n 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0\n 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1\n 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1\n 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1\n 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0\n 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1\n 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0\n 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0\n 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0\n 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1\n 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1\n 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 0\n 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1\n 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1\n 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0\n 1 1 1 0 1 0 1]\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"testing_df.head()","execution_count":683,"outputs":[{"output_type":"execute_result","execution_count":683,"data":{"text/plain":"   index    ...     Prediction\n0      0    ...            NaN\n1      1    ...            NaN\n2      2    ...            NaN\n3      3    ...            NaN\n4      4    ...            NaN\n\n[5 rows x 3 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>index</th>\n      <th>Text</th>\n      <th>Prediction</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>I exchanged the sony ericson z500a for this an...</td>\n      <td>NaN</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n      <td>Oh and I forgot to also mention the weird colo...</td>\n      <td>NaN</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>Verizon tech support walked my through a few p...</td>\n      <td>NaN</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>Better than you'd expect.</td>\n      <td>NaN</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4</td>\n      <td>This is a great little item.</td>\n      <td>NaN</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.DataFrame({'index':test_df['index'],'Text':testing_df['Text'],'Prediction':test_pred_rf})\nsubmission.head(10)","execution_count":684,"outputs":[{"output_type":"execute_result","execution_count":684,"data":{"text/plain":"   index    ...     Prediction\n0      0    ...              0\n1      1    ...              1\n2      2    ...              0\n3      3    ...              0\n4      4    ...              1\n5      5    ...              1\n6      6    ...              0\n7      7    ...              0\n8      8    ...              1\n9      9    ...              0\n\n[10 rows x 3 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>index</th>\n      <th>Text</th>\n      <th>Prediction</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>I exchanged the sony ericson z500a for this an...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n      <td>Oh and I forgot to also mention the weird colo...</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>Verizon tech support walked my through a few p...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>Better than you'd expect.</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4</td>\n      <td>This is a great little item.</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>5</td>\n      <td>Nice case, feels good in your hands.</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>6</td>\n      <td>Do not make the same mistake as me.</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>7</td>\n      <td>However I needed some better instructions.</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>8</td>\n      <td>Nice design and quality.</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>9</td>\n      <td>It was a waste of my money.</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.to_csv('Predictions1.csv', index = False)","execution_count":685,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}