b22ee075/Sentiment-classification
1
1{2 "nbformat": 4,3 "nbformat_minor": 0,4 "metadata": {5 "colab": {6 "provenance": [],7 "collapsed_sections": [8 "5Pbtf3u3yda9",9 "tj1vodKuyd6x"10 ]11 },12 "kernelspec": {13 "name": "python3",14 "display_name": "Python 3"15 },16 "language_info": {17 "name": "python"18 }19 },20 "cells": [21 {22 "cell_type": "markdown",23 "source": [24 "## Downloading & preparing the Dataset"25 ],26 "metadata": {27 "id": "boYPdllt-5Pg"28 }29 },30 {31 "cell_type": "code",32 "source": [33 "import pandas as pd\n",34 "import matplotlib.pyplot as plt\n",35 "import warnings\n",36 "from sklearn.model_selection import train_test_split\n",37 "from sklearn.metrics import accuracy_score,classification_report, ConfusionMatrixDisplay\n",38 "import re\n",39 "import string\n",40 "from sklearn.linear_model import LogisticRegression\n",41 "from sklearn.naive_bayes import MultinomialNB\n",42 "from sklearn.tree import DecisionTreeClassifier\n",43 "from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier\n",44 "from sklearn.feature_extraction.text import TfidfVectorizer\n",45 "from xgboost import XGBClassifier\n",46 "from lightgbm import LGBMClassifier\n",47 "from sklearn.svm import SVC\n",48 "# Ignore FutureWarning messages\n",49 "warnings.simplefilter(action='ignore', category=FutureWarning)"50 ],51 "metadata": {52 "id": "VGIADD_ndICM"53 },54 "execution_count": 1,55 "outputs": []56 },57 {58 "cell_type": "code",59 "execution_count": 2,60 "metadata": {61 "colab": {62 "base_uri": "https://localhost:8080/"63 },64 "id": "LPDrKCy-cjhV",65 "outputId": "293b3b4a-3456-4470-c710-616b82261939"66 },67 "outputs": [68 {69 "output_type": "stream",70 "name": "stdout",71 "text": [72 "Downloading sentiment-analysis-dataset, 57092644 bytes compressed\n",73 "[==================================================] 57092644 bytes downloaded\n",74 "Downloaded and uncompressed: sentiment-analysis-dataset\n",75 "Data source import complete.\n"76 ]77 }78 ],79 "source": [80 "import os\n",81 "import sys\n",82 "from tempfile import NamedTemporaryFile\n",83 "from urllib.request import urlopen\n",84 "from urllib.parse import unquote, urlparse\n",85 "from urllib.error import HTTPError\n",86 "from zipfile import ZipFile\n",87 "import tarfile\n",88 "import shutil\n",89 "\n",90 "CHUNK_SIZE = 40960\n",91 "DATA_SOURCE_MAPPING = 'sentiment-analysis-dataset:https%3A%2F%2Fstorage.googleapis.com%2Fkaggle-data-sets%2F989445%2F1808590%2Fbundle%2Farchive.zip%3FX-Goog-Algorithm%3DGOOG4-RSA-SHA256%26X-Goog-Credential%3Dgcp-kaggle-com%2540kaggle-161607.iam.gserviceaccount.com%252F20240418%252Fauto%252Fstorage%252Fgoog4_request%26X-Goog-Date%3D20240418T100202Z%26X-Goog-Expires%3D259200%26X-Goog-SignedHeaders%3Dhost%26X-Goog-Signature%3D37697dd0d9910676a3f12986b24306fc3726be4de82536c784ffb79deff0ba33d8973d6d612a53bcf9ed39bd7ad8a1d69bb34c42a34c7d6cffee6dd3048a9ef68f047745664f48ea6f3773a1f263129a6f78d48923235cc363b4081daadea014b0958575bf8376d565858404a8b1be7e5f317bdd9f5823ce4777f0b7052445c648bcda039294c804978828087705abe4416a6f9a0e0743388667017128a5ab2ef5ab2dade0d40d1659f4313296501907b4baec3161131e151e6f5b982eee9a6f7eb1b022da9c874f216d7fac981dc1351e9001ee56d03d1da8b2e0d4c97320f18d7e9b00ec63f4ba7444d81595cc8edff2b05f13aef4b204dd2710d0fddf0ef9'\n",92 "\n",93 "KAGGLE_INPUT_PATH='/kaggle/input'\n",94 "KAGGLE_WORKING_PATH='/kaggle/working'\n",95 "KAGGLE_SYMLINK='kaggle'\n",96 "\n",97 "!umount /kaggle/input/ 2> /dev/null\n",98 "shutil.rmtree('/kaggle/input', ignore_errors=True)\n",99 "os.makedirs(KAGGLE_INPUT_PATH, 0o777, exist_ok=True)\n",100 "os.makedirs(KAGGLE_WORKING_PATH, 0o777, exist_ok=True)\n",101 "\n",102 "try:\n",103 " os.symlink(KAGGLE_INPUT_PATH, os.path.join(\"..\", 'input'), target_is_directory=True)\n",104 "except FileExistsError:\n",105 " pass\n",106 "try:\n",107 " os.symlink(KAGGLE_WORKING_PATH, os.path.join(\"..\", 'working'), target_is_directory=True)\n",108 "except FileExistsError:\n",109 " pass\n",110 "\n",111 "for data_source_mapping in DATA_SOURCE_MAPPING.split(','):\n",112 " directory, download_url_encoded = data_source_mapping.split(':')\n",113 " download_url = unquote(download_url_encoded)\n",114 " filename = urlparse(download_url).path\n",115 " destination_path = os.path.join(KAGGLE_INPUT_PATH, directory)\n",116 " try:\n",117 " with urlopen(download_url) as fileres, NamedTemporaryFile() as tfile:\n",118 " total_length = fileres.headers['content-length']\n",119 " print(f'Downloading {directory}, {total_length} bytes compressed')\n",120 " dl = 0\n",121 " data = fileres.read(CHUNK_SIZE)\n",122 " while len(data) > 0:\n",123 " dl += len(data)\n",124 " tfile.write(data)\n",125 " done = int(50 * dl / int(total_length))\n",126 " sys.stdout.write(f\"\\r[{'=' * done}{' ' * (50-done)}] {dl} bytes downloaded\")\n",127 " sys.stdout.flush()\n",128 " data = fileres.read(CHUNK_SIZE)\n",129 " if filename.endswith('.zip'):\n",130 " with ZipFile(tfile) as zfile:\n",131 " zfile.extractall(destination_path)\n",132 " else:\n",133 " with tarfile.open(tfile.name) as tarfile:\n",134 " tarfile.extractall(destination_path)\n",135 " print(f'\\nDownloaded and uncompressed: {directory}')\n",136 " except HTTPError as e:\n",137 " print(f'Failed to load (likely expired) {download_url} to path {destination_path}')\n",138 " continue\n",139 " except OSError as e:\n",140 " print(f'Failed to load {download_url} to path {destination_path}')\n",141 " continue\n",142 "\n",143 "print('Data source import complete.')"144 ]145 },146 {147 "cell_type": "code",148 "source": [149 "import numpy as np # linear algebra\n",150 "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",151 "\n",152 "# Input data files are available in the read-only \"../input/\" directory\n",153 "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n",154 "\n",155 "import os\n",156 "for dirname, _, filenames in os.walk('/kaggle/input'):\n",157 " for filename in filenames:\n",158 " print(os.path.join(dirname, filename))"159 ],160 "metadata": {161 "colab": {162 "base_uri": "https://localhost:8080/"163 },164 "id": "Yzb-IFDGc1uc",165 "outputId": "0040685f-8549-4e6e-ec26-278fc2ac5e1a"166 },167 "execution_count": 3,168 "outputs": [169 {170 "output_type": "stream",171 "name": "stdout",172 "text": [173 "/kaggle/input/sentiment-analysis-dataset/testdata.manual.2009.06.14.csv\n",174 "/kaggle/input/sentiment-analysis-dataset/test.csv\n",175 "/kaggle/input/sentiment-analysis-dataset/training.1600000.processed.noemoticon.csv\n",176 "/kaggle/input/sentiment-analysis-dataset/train.csv\n"177 ]178 }179 ]180 },181 {182 "cell_type": "code",183 "source": [184 "d = pd.read_csv('/kaggle/input/sentiment-analysis-dataset/train.csv',encoding='latin1');\n",185 "f = pd.read_csv('/kaggle/input/sentiment-analysis-dataset/test.csv',encoding='latin1');\n",186 "df = pd.concat([d,f])"187 ],188 "metadata": {189 "id": "5Gk5uINXc75b"190 },191 "execution_count": 4,192 "outputs": []193 },194 {195 "cell_type": "code",196 "source": [197 "print(df.shape)\n",198 "display(df.info())\n",199 "display(df)"200 ],201 "metadata": {202 "colab": {203 "base_uri": "https://localhost:8080/",204 "height": 997205 },206 "id": "gZ8lChobdQFs",207 "outputId": "f21d4c96-06e3-4177-b7cf-3bc4d0360b40"208 },209 "execution_count": 5,210 "outputs": [211 {212 "output_type": "stream",213 "name": "stdout",214 "text": [215 "(32296, 10)\n",216 "<class 'pandas.core.frame.DataFrame'>\n",217 "Index: 32296 entries, 0 to 4814\n",218 "Data columns (total 10 columns):\n",219 " # Column Non-Null Count Dtype \n",220 "--- ------ -------------- ----- \n",221 " 0 textID 31015 non-null object \n",222 " 1 text 31014 non-null object \n",223 " 2 selected_text 27480 non-null object \n",224 " 3 sentiment 31015 non-null object \n",225 " 4 Time of Tweet 31015 non-null object \n",226 " 5 Age of User 31015 non-null object \n",227 " 6 Country 31015 non-null object \n",228 " 7 Population -2020 31015 non-null float64\n",229 " 8 Land Area (Km²) 31015 non-null float64\n",230 " 9 Density (P/Km²) 31015 non-null float64\n",231 "dtypes: float64(3), object(7)\n",232 "memory usage: 2.7+ MB\n"233 ]234 },235 {236 "output_type": "display_data",237 "data": {238 "text/plain": [239 "None"240 ]241 },242 "metadata": {}243 },244 {245 "output_type": "display_data",246 "data": {247 "text/plain": [248 " textID text \\\n",249 "0 cb774db0d1 I`d have responded, if I were going \n",250 "1 549e992a42 Sooo SAD I will miss you here in San Diego!!! \n",251 "2 088c60f138 my boss is bullying me... \n",252 "3 9642c003ef what interview! leave me alone \n",253 "4 358bd9e861 Sons of ****, why couldn`t they put them on t... \n",254 "... ... ... \n",255 "4810 NaN NaN \n",256 "4811 NaN NaN \n",257 "4812 NaN NaN \n",258 "4813 NaN NaN \n",259 "4814 NaN NaN \n",260 "\n",261 " selected_text sentiment Time of Tweet Age of User \\\n",262 "0 I`d have responded, if I were going neutral morning 0-20 \n",263 "1 Sooo SAD negative noon 21-30 \n",264 "2 bullying me negative night 31-45 \n",265 "3 leave me alone negative morning 46-60 \n",266 "4 Sons of ****, negative noon 60-70 \n",267 "... ... ... ... ... \n",268 "4810 NaN NaN NaN NaN \n",269 "4811 NaN NaN NaN NaN \n",270 "4812 NaN NaN NaN NaN \n",271 "4813 NaN NaN NaN NaN \n",272 "4814 NaN NaN NaN NaN \n",273 "\n",274 " Country Population -2020 Land Area (Km²) Density (P/Km²) \n",275 "0 Afghanistan 38928346.0 652860.0 60.0 \n",276 "1 Albania 2877797.0 27400.0 105.0 \n",277 "2 Algeria 43851044.0 2381740.0 18.0 \n",278 "3 Andorra 77265.0 470.0 164.0 \n",279 "4 Angola 32866272.0 1246700.0 26.0 \n",280 "... ... ... ... ... \n",281 "4810 NaN NaN NaN NaN \n",282 "4811 NaN NaN NaN NaN \n",283 "4812 NaN NaN NaN NaN \n",284 "4813 NaN NaN NaN NaN \n",285 "4814 NaN NaN NaN NaN \n",286 "\n",287 "[32296 rows x 10 columns]"288 ],289 "text/html": [290 "\n",291 " <div id=\"df-91351af5-e004-401e-882d-3a81aec772de\" class=\"colab-df-container\">\n",292 " <div>\n",293 "<style scoped>\n",294 " .dataframe tbody tr th:only-of-type {\n",295 " vertical-align: middle;\n",296 " }\n",297 "\n",298 " .dataframe tbody tr th {\n",299 " vertical-align: top;\n",300 " }\n",301 "\n",302 " .dataframe thead th {\n",303 " text-align: right;\n",304 " }\n",305 "</style>\n",306 "<table border=\"1\" class=\"dataframe\">\n",307 " <thead>\n",308 " <tr style=\"text-align: right;\">\n",309 " <th></th>\n",310 " <th>textID</th>\n",311 " <th>text</th>\n",312 " <th>selected_text</th>\n",313 " <th>sentiment</th>\n",314 " <th>Time of Tweet</th>\n",315 " <th>Age of User</th>\n",316 " <th>Country</th>\n",317 " <th>Population -2020</th>\n",318 " <th>Land Area (Km²)</th>\n",319 " <th>Density (P/Km²)</th>\n",320 " </tr>\n",321 " </thead>\n",322 " <tbody>\n",323 " <tr>\n",324 " <th>0</th>\n",325 " <td>cb774db0d1</td>\n",326 " <td>I`d have responded, if I were going</td>\n",327 " <td>I`d have responded, if I were going</td>\n",328 " <td>neutral</td>\n",329 " <td>morning</td>\n",330 " <td>0-20</td>\n",331 " <td>Afghanistan</td>\n",332 " <td>38928346.0</td>\n",333 " <td>652860.0</td>\n",334 " <td>60.0</td>\n",335 " </tr>\n",336 " <tr>\n",337 " <th>1</th>\n",338 " <td>549e992a42</td>\n",339 " <td>Sooo SAD I will miss you here in San Diego!!!</td>\n",340 " <td>Sooo SAD</td>\n",341 " <td>negative</td>\n",342 " <td>noon</td>\n",343 " <td>21-30</td>\n",344 " <td>Albania</td>\n",345 " <td>2877797.0</td>\n",346 " <td>27400.0</td>\n",347 " <td>105.0</td>\n",348 " </tr>\n",349 " <tr>\n",350 " <th>2</th>\n",351 " <td>088c60f138</td>\n",352 " <td>my boss is bullying me...</td>\n",353 " <td>bullying me</td>\n",354 " <td>negative</td>\n",355 " <td>night</td>\n",356 " <td>31-45</td>\n",357 " <td>Algeria</td>\n",358 " <td>43851044.0</td>\n",359 " <td>2381740.0</td>\n",360 " <td>18.0</td>\n",361 " </tr>\n",362 " <tr>\n",363 " <th>3</th>\n",364 " <td>9642c003ef</td>\n",365 " <td>what interview! leave me alone</td>\n",366 " <td>leave me alone</td>\n",367 " <td>negative</td>\n",368 " <td>morning</td>\n",369 " <td>46-60</td>\n",370 " <td>Andorra</td>\n",371 " <td>77265.0</td>\n",372 " <td>470.0</td>\n",373 " <td>164.0</td>\n",374 " </tr>\n",375 " <tr>\n",376 " <th>4</th>\n",377 " <td>358bd9e861</td>\n",378 " <td>Sons of ****, why couldn`t they put them on t...</td>\n",379 " <td>Sons of ****,</td>\n",380 " <td>negative</td>\n",381 " <td>noon</td>\n",382 " <td>60-70</td>\n",383 " <td>Angola</td>\n",384 " <td>32866272.0</td>\n",385 " <td>1246700.0</td>\n",386 " <td>26.0</td>\n",387 " </tr>\n",388 " <tr>\n",389 " <th>...</th>\n",390 " <td>...</td>\n",391 " <td>...</td>\n",392 " <td>...</td>\n",393 " <td>...</td>\n",394 " <td>...</td>\n",395 " <td>...</td>\n",396 " <td>...</td>\n",397 " <td>...</td>\n",398 " <td>...</td>\n",399 " <td>...</td>\n",400 " </tr>\n",401 " <tr>\n",402 " <th>4810</th>\n",403 " <td>NaN</td>\n",404 " <td>NaN</td>\n",405 " <td>NaN</td>\n",406 " <td>NaN</td>\n",407 " <td>NaN</td>\n",408 " <td>NaN</td>\n",409 " <td>NaN</td>\n",410 " <td>NaN</td>\n",411 " <td>NaN</td>\n",412 " <td>NaN</td>\n",413 " </tr>\n",414 " <tr>\n",415 " <th>4811</th>\n",416 " <td>NaN</td>\n",417 " <td>NaN</td>\n",418 " <td>NaN</td>\n",419 " <td>NaN</td>\n",420 " <td>NaN</td>\n",421 " <td>NaN</td>\n",422 " <td>NaN</td>\n",423 " <td>NaN</td>\n",424 " <td>NaN</td>\n",425 " <td>NaN</td>\n",426 " </tr>\n",427 " <tr>\n",428 " <th>4812</th>\n",429 " <td>NaN</td>\n",430 " <td>NaN</td>\n",431 " <td>NaN</td>\n",432 " <td>NaN</td>\n",433 " <td>NaN</td>\n",434 " <td>NaN</td>\n",435 " <td>NaN</td>\n",436 " <td>NaN</td>\n",437 " <td>NaN</td>\n",438 " <td>NaN</td>\n",439 " </tr>\n",440 " <tr>\n",441 " <th>4813</th>\n",442 " <td>NaN</td>\n",443 " <td>NaN</td>\n",444 " <td>NaN</td>\n",445 " <td>NaN</td>\n",446 " <td>NaN</td>\n",447 " <td>NaN</td>\n",448 " <td>NaN</td>\n",449 " <td>NaN</td>\n",450 " <td>NaN</td>\n",451 " <td>NaN</td>\n",452 " </tr>\n",453 " <tr>\n",454 " <th>4814</th>\n",455 " <td>NaN</td>\n",456 " <td>NaN</td>\n",457 " <td>NaN</td>\n",458 " <td>NaN</td>\n",459 " <td>NaN</td>\n",460 " <td>NaN</td>\n",461 " <td>NaN</td>\n",462 " <td>NaN</td>\n",463 " <td>NaN</td>\n",464 " <td>NaN</td>\n",465 " </tr>\n",466 " </tbody>\n",467 "</table>\n",468 "<p>32296 rows × 10 columns</p>\n",469 "</div>\n",470 " <div class=\"colab-df-buttons\">\n",471 "\n",472 " <div class=\"colab-df-container\">\n",473 " <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-91351af5-e004-401e-882d-3a81aec772de')\"\n",474 " title=\"Convert this dataframe to an interactive table.\"\n",475 " style=\"display:none;\">\n",476 "\n",477 " <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",478 " <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",479 " </svg>\n",480 " </button>\n",481 "\n",482 " <style>\n",483 " .colab-df-container {\n",484 " display:flex;\n",485 " gap: 12px;\n",486 " }\n",487 "\n",488 " .colab-df-convert {\n",489 " background-color: #E8F0FE;\n",490 " border: none;\n",491 " border-radius: 50%;\n",492 " cursor: pointer;\n",493 " display: none;\n",494 " fill: #1967D2;\n",495 " height: 32px;\n",496 " padding: 0 0 0 0;\n",497 " width: 32px;\n",498 " }\n",499 "\n",500 " .colab-df-convert:hover {\n",501 " background-color: #E2EBFA;\n",502 " box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",503 " fill: #174EA6;\n",504 " }\n",505 "\n",506 " .colab-df-buttons div {\n",507 " margin-bottom: 4px;\n",508 " }\n",509 "\n",510 " [theme=dark] .colab-df-convert {\n",511 " background-color: #3B4455;\n",512 " fill: #D2E3FC;\n",513 " }\n",514 "\n",515 " [theme=dark] .colab-df-convert:hover {\n",516 " background-color: #434B5C;\n",517 " box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",518 " filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",519 " fill: #FFFFFF;\n",520 " }\n",521 " </style>\n",522 "\n",523 " <script>\n",524 " const buttonEl =\n",525 " document.querySelector('#df-91351af5-e004-401e-882d-3a81aec772de button.colab-df-convert');\n",526 " buttonEl.style.display =\n",527 " google.colab.kernel.accessAllowed ? 'block' : 'none';\n",528 "\n",529 " async function convertToInteractive(key) {\n",530 " const element = document.querySelector('#df-91351af5-e004-401e-882d-3a81aec772de');\n",531 " const dataTable =\n",532 " await google.colab.kernel.invokeFunction('convertToInteractive',\n",533 " [key], {});\n",534 " if (!dataTable) return;\n",535 "\n",536 " const docLinkHtml = 'Like what you see? Visit the ' +\n",537 " '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",538 " + ' to learn more about interactive tables.';\n",539 " element.innerHTML = '';\n",540 " dataTable['output_type'] = 'display_data';\n",541 " await google.colab.output.renderOutput(dataTable, element);\n",542 " const docLink = document.createElement('div');\n",543 " docLink.innerHTML = docLinkHtml;\n",544 " element.appendChild(docLink);\n",545 " }\n",546 " </script>\n",547 " </div>\n",548 "\n",549 "\n",550 "<div id=\"df-c024b0e1-2dfa-4891-8838-aec258bc8627\">\n",551 " <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c024b0e1-2dfa-4891-8838-aec258bc8627')\"\n",552 " title=\"Suggest charts\"\n",553 " style=\"display:none;\">\n",554 "\n",555 "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",556 " width=\"24px\">\n",557 " <g>\n",558 " <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",559 " </g>\n",560 "</svg>\n",561 " </button>\n",562 "\n",563 "<style>\n",564 " .colab-df-quickchart {\n",565 " --bg-color: #E8F0FE;\n",566 " --fill-color: #1967D2;\n",567 " --hover-bg-color: #E2EBFA;\n",568 " --hover-fill-color: #174EA6;\n",569 " --disabled-fill-color: #AAA;\n",570 " --disabled-bg-color: #DDD;\n",571 " }\n",572 "\n",573 " [theme=dark] .colab-df-quickchart {\n",574 " --bg-color: #3B4455;\n",575 " --fill-color: #D2E3FC;\n",576 " --hover-bg-color: #434B5C;\n",577 " --hover-fill-color: #FFFFFF;\n",578 " --disabled-bg-color: #3B4455;\n",579 " --disabled-fill-color: #666;\n",580 " }\n",581 "\n",582 " .colab-df-quickchart {\n",583 " background-color: var(--bg-color);\n",584 " border: none;\n",585 " border-radius: 50%;\n",586 " cursor: pointer;\n",587 " display: none;\n",588 " fill: var(--fill-color);\n",589 " height: 32px;\n",590 " padding: 0;\n",591 " width: 32px;\n",592 " }\n",593 "\n",594 " .colab-df-quickchart:hover {\n",595 " background-color: var(--hover-bg-color);\n",596 " box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",597 " fill: var(--button-hover-fill-color);\n",598 " }\n",599 "\n",600 " .colab-df-quickchart-complete:disabled,\n",601 " .colab-df-quickchart-complete:disabled:hover {\n",602 " background-color: var(--disabled-bg-color);\n",603 " fill: var(--disabled-fill-color);\n",604 " box-shadow: none;\n",605 " }\n",606 "\n",607 " .colab-df-spinner {\n",608 " border: 2px solid var(--fill-color);\n",609 " border-color: transparent;\n",610 " border-bottom-color: var(--fill-color);\n",611 " animation:\n",612 " spin 1s steps(1) infinite;\n",613 " }\n",614 "\n",615 " @keyframes spin {\n",616 " 0% {\n",617 " border-color: transparent;\n",618 " border-bottom-color: var(--fill-color);\n",619 " border-left-color: var(--fill-color);\n",620 " }\n",621 " 20% {\n",622 " border-color: transparent;\n",623 " border-left-color: var(--fill-color);\n",624 " border-top-color: var(--fill-color);\n",625 " }\n",626 " 30% {\n",627 " border-color: transparent;\n",628 " border-left-color: var(--fill-color);\n",629 " border-top-color: var(--fill-color);\n",630 " border-right-color: var(--fill-color);\n",631 " }\n",632 " 40% {\n",633 " border-color: transparent;\n",634 " border-right-color: var(--fill-color);\n",635 " border-top-color: var(--fill-color);\n",636 " }\n",637 " 60% {\n",638 " border-color: transparent;\n",639 " border-right-color: var(--fill-color);\n",640 " }\n",641 " 80% {\n",642 " border-color: transparent;\n",643 " border-right-color: var(--fill-color);\n",644 " border-bottom-color: var(--fill-color);\n",645 " }\n",646 " 90% {\n",647 " border-color: transparent;\n",648 " border-bottom-color: var(--fill-color);\n",649 " }\n",650 " }\n",651 "</style>\n",652 "\n",653 " <script>\n",654 " async function quickchart(key) {\n",655 " const quickchartButtonEl =\n",656 " document.querySelector('#' + key + ' button');\n",657 " quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",658 " quickchartButtonEl.classList.add('colab-df-spinner');\n",659 " try {\n",660 " const charts = await google.colab.kernel.invokeFunction(\n",661 " 'suggestCharts', [key], {});\n",662 " } catch (error) {\n",663 " console.error('Error during call to suggestCharts:', error);\n",664 " }\n",665 " quickchartButtonEl.classList.remove('colab-df-spinner');\n",666 " quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",667 " }\n",668 " (() => {\n",669 " let quickchartButtonEl =\n",670 " document.querySelector('#df-c024b0e1-2dfa-4891-8838-aec258bc8627 button');\n",671 " quickchartButtonEl.style.display =\n",672 " google.colab.kernel.accessAllowed ? 'block' : 'none';\n",673 " })();\n",674 " </script>\n",675 "</div>\n",676 " </div>\n",677 " </div>\n"678 ],679 "application/vnd.google.colaboratory.intrinsic+json": {680 "type": "dataframe",681 "variable_name": "df",682 "summary": "{\n \"name\": \"df\",\n \"rows\": 32296,\n \"fields\": [\n {\n \"column\": \"textID\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 31015,\n \"samples\": [\n \"de78baa02c\",\n \"b0794b5a7e\",\n \"ed036f1d74\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 31014,\n \"samples\": [\n \" I was afraid you were going to say that.\",\n \" part 2: social networking??.. there is even room for people\",\n \"i miss the one who would do anything to spend 5 min with me... the one who used to say just tell me when and where\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"selected_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 22430,\n \"samples\": [\n \"that is why I drive a (teeny tiny) honda civic\",\n \"Sorry...but, I bet they aren`t that bad...\",\n \"yummy\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sentiment\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"neutral\",\n \"negative\",\n \"positive\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Time of Tweet\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"morning\",\n \"noon\",\n \"night\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Age of User\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"0-20\",\n \"21-30\",\n \"70-100\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Country\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 195,\n \"samples\": [\n \"Philippines\",\n \"Belgium\",\n \"Sierra Leone\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Population -2020\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 150084504.4053449,\n \"min\": 801.0,\n \"max\": 1439323776.0,\n \"num_unique_values\": 195,\n \"samples\": [\n 109581078.0,\n 11589623.0,\n 7976983.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Land Area (Km\\u00b2)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1811038.6572147855,\n \"min\": 0.0,\n \"max\": 16376870.0,\n \"num_unique_values\": 193,\n \"samples\": [\n 2267050.0,\n 1280000.0,\n 100250.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Density (P/Km\\u00b2)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2008.4507293311128,\n \"min\": 2.0,\n \"max\": 26337.0,\n \"num_unique_values\": 136,\n \"samples\": [\n 400.0,\n 71.0,\n 331.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"683 }684 },685 "metadata": {}686 }687 ]688 },689 {690 "cell_type": "markdown",691 "source": [692 "## Preprocessing the dataset"693 ],694 "metadata": {695 "id": "5GLaYntUf0e1"696 }697 },698 {699 "cell_type": "code",700 "source": [701 "df.dropna(inplace=True)"702 ],703 "metadata": {704 "id": "YwLU8XIkdUhy"705 },706 "execution_count": 6,707 "outputs": []708 },709 {710 "cell_type": "code",711 "source": [712 "df['sentiment'].value_counts(normalize=True).plot(kind='bar');"713 ],714 "metadata": {715 "colab": {716 "base_uri": "https://localhost:8080/",717 "height": 496718 },719 "id": "rxtOBkQWd-hM",720 "outputId": "473c0377-e4fb-422d-a373-9154696c0f98"721 },722 "execution_count": 7,723 "outputs": [724 {725 "output_type": "display_data",726 "data": {727 "text/plain": [728 "<Figure size 640x480 with 1 Axes>"729 ],730 "image/png": "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67XXXlNMTIxWrFih+Ph4DR482NvlwcccP35ckydP1rJlyyRJ//znP5WQkKDJkycrJiZGjz/+uJcrbNsILD5q3rx5Z9XPZrMRWOAVr7/+uu666y6NGzdOn376qerq6iRJVVVVeuqpp7RmzRovVwhfk5OTo82bN6ukpETp6emudrvdrunTpxNYzjOedAvASNdcc40eeughZWRkqGPHjtq8ebMSEhL06aefatiwYXI6nd4uET6ma9euWrVqlQYOHOj2ndy1a5f69eun6upqb5fYprGGBYCRduzYoRtuuKFJe2hoqI4ePXrhC4LPO3TokMLDw5u019bWymazeaEi38IlIUiS9u3bpz//+c+qqKhQfX29276CggIvVQVfFhkZqV27dikuLs6tfe3atUpISPBOUfBpycnJeuuttzR58mRJcoWUxYsXKzU11Zul+QQCC+RwOHTrrbcqISFBn3/+ua6++mqVl5fLsiz169fP2+XBR2VlZemBBx7QkiVLZLPZtH//fpWWlurhhx/WtGnTvF0efNBTTz2lYcOGadu2bTp16pSee+45bdu2TevWrdMHH3zg7fLaPNawQAMGDNCwYcM0Y8YM13XZ8PBwjRs3Tunp6Zo4caK3S4QPsixLTz31lPLz83X8+HFJUmBgoB5++GHNmjXLy9XBV+3evVuzZ8/W5s2bVVNTo379+umxxx5Tnz59vF1am0dggTp27KhNmzapW7du6ty5s9auXaurrrpKmzdv1ogRI1ReXu7tEuHD6uvrtWvXLtXU1Kh3797q0KGDt0sC4AUsuoXat2/vWrcSFRWl3bt3u/YdPnzYW2XBx7388ss6fvy4AgIC1Lt3bw0YMICwAq+y2+1aunQpdwN5CYEFGjhwoNauXStJGj58uH75y1/qySef1C9+8QsNHDjQy9XBVz300EMKDw/XnXfeqTVr1qihocHbJcHHXXXVVcrJyVFkZKTuuOMO/elPf9LJkye9XZbP4JIQ9MUXX6impkaJiYmqra3VL3/5S61bt049evRQQUGBunbt6u0S4YNOnTql4uJivfLKK/rTn/6k4OBg3XHHHRo3bpwGDRrk7fLgoxobG/Xee+9p5cqV+uMf/yh/f3+NGjVK48aN04033ujt8to0AouPa2ho0IcffqjExER16tTJ2+UAzTp+/Lj++Mc/auXKlXrvvfd0xRVXuF26BLzhxIkT+stf/qInn3xS//jHP5gFPM+4rdnH+fv7a+jQodq+fTuBBcYKDg5WWlqavv76a/3rX//S9u3bvV0SfJzT6dSrr76ql19+WVu2bNGAAQO8XVKbxxoW6Oqrr9YXX3zh7TKAJo4fP67f/e53Gj58uGJiYlRYWKjbbrtNn332mbdLgw+qrq7WSy+9pB//+MeKjY3VwoULdeutt2rnzp366KOPvF1em8clIai4uFg5OTmaNWuW+vfvr/bt27vtDwkJ8VJl8GVjxozRm2++qeDgYP3P//yPxo0bx9NE4VXt2rVT586dNXr0aI0bN07JycneLsmnEFggP79vJ9r+830YlmXJZrNxXRZeMW7cOI0bN05paWny9/f3djmA3n33XQ0ZMsTtv5m4cAgs+M5HSrPyHQDgbSy6heLj4xUbG9vkbaOWZWnv3r1eqgq+aP78+br33nsVFBSk+fPnn7HvlClTLlBV8GX9+vWTw+FQ586ddc0115zxrcwbN268gJX5HgILFB8frwMHDjR5bfpXX32l+Ph4Lgnhgpk3b57GjRunoKAgzZs3r8V+NpuNwIILYsSIEQoMDHT9fKbAgvOLS0KQn5+fKisrdfnll7u1/+tf/1Lv3r1VW1vrpcoAADiNGRYflp2dLen031anTZum4OBg176GhgaVlZUpKSnJS9XB182cOVMPP/yw2/dSkv7973/rmWeeUW5urpcqg69KSEjQxx9/rMsuu8yt/ejRo+rXrx+PhzjPmGHxYTfffLOk04tuU1NTFRAQ4NoXEBCguLg4Pfzww+rRo4e3SoQP8/f3b/ZS5ZEjRxQeHs6lSlxwfn5+cjqdTb6TlZWVio2Ndb1EFucHMyw+7P3335ckZWZm6rnnnuN5KzDKN7fV/7fNmzerS5cuXqgIvurPf/6z6+e3335boaGhrs8NDQ1yOByKj4/3Rmk+hRkWAEbp3LmzbDabqqqqFBIS4hZaGhoaVFNTo/vuu08LFizwYpXwJd88d8Vms+m//8i89NJLFRcXp2effVY/+clPvFGezyCwQD/60Y/OuP9vf/vbBaoEkJYtWybLsvSLX/xChYWFbn+b/eZSJU+8hTfEx8fr448/VlhYmLdL8UlcEoL69u3r9vnkyZPatGmTtm7dqvHjx3upKviqb75z8fHxGjRokC699FIvVwSctmfPHm+X4NOYYUGLpk+frpqaGs2dO9fbpcBHVFdXu9ZSVVdXn7Eva67gDbW1tfrggw9UUVHRZJEtzwY6vwgsaNGuXbs0YMAAffXVV94uBT7iP+8M8vPza3bRLe+4grd8+umnGj58uI4fP67a2lp16dJFhw8fVnBwsMLDw7mt+TzjkhBaVFpaqqCgIG+XAR/yt7/9zXUH0Dd3sQGmeOihh/TTn/5URUVFCg0N1UcffaRLL71UP//5z/XAAw94u7w2jxkW6Gc/+5nbZ8uydODAAX3yySeaNm2a8vLyvFQZAJijU6dOKisr05VXXqlOnTqptLRUvXr1UllZmcaPH6/PP//c2yW2abwjGwoNDXXbunTpoptuuklr1qwhrMBriouLtXbtWtfnBQsWKCkpSXfeeae+/vprL1YGX3XppZe6bnEODw9XRUWFpNP/DeVFsecfMywAjNSnTx89/fTTGj58uP7xj38oOTlZv/zlL/X++++rZ8+eeumll7xdInzM0KFDNWHCBN15553KysrSli1bNGXKFK1YsUJff/21ysrKvF1im0ZggaTT78J47bXXtHv3bj3yyCPq0qWLNm7cqIiICMXExHi7PPigDh06aOvWrYqLi9P06dO1detWvfbaa9q4caOGDx8up9Pp7RLhYz755BMdO3ZMN998sw4ePKiMjAytW7dOPXr00JIlS5o8IgLnFotuoS1btmjIkCHq1KmTysvLlZWVpS5duuiNN95QRUWFli9f7u0S4YMCAgJ0/PhxSdJ7772njIwMSVKXLl2+85Zn4HxITk52/RweHq7i4mIvVuN7WMMCZWdnKzMzUzt37nS7K2j48OH6+9//7sXK4MsGDx6s7OxszZo1S+vXr9ctt9wiSfrnP/+pK664wsvVAbjQmGGBPv74Y/3mN79p0h4TE8O0O7zmhRde0P3336/XXntNCxcudF2a/Otf/6r09HQvVwdfdM011zT7bCCbzaagoCB1795dEyZM0M033+yF6to+AgsUGBjY7BT7P//5T11++eVeqAiQfvCDH+jNN99s0j5v3jwvVANI6enpWrhwofr06aMBAwZIOv0Xvi1btmjChAnatm2b7Ha73njjDY0YMcLL1bY9LLqF7rnnHh05ckS///3v1aVLF23ZskX+/v4aOXKkbrjhBhUWFnq7RPiohoYGrV69Wtu3b5ckXXXVVbr11lvl7+/v5crgi7KysvSDH/xA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\n"731 },732 "metadata": {}733 }734 ]735 },736 {737 "cell_type": "code",738 "source": [739 "df['sentiment'] = df['sentiment'].astype('category').cat.codes\n",740 "df['sentiment'].value_counts(normalize=True).plot(kind='bar');"741 ],742 "metadata": {743 "colab": {744 "base_uri": "https://localhost:8080/",745 "height": 444746 },747 "id": "M7HswPcdeCkd",748 "outputId": "ceb470f4-44b7-48aa-be8c-168b770216ae"749 },750 "execution_count": 8,751 "outputs": [752 {753 "output_type": "display_data",754 "data": {755 "text/plain": [756 "<Figure size 640x480 with 1 Axes>"757 ],758 "image/png": "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\n"759 },760 "metadata": {}761 }762 ]763 },764 {765 "cell_type": "code",766 "source": [767 "df['Time of Tweet'] = df['Time of Tweet'].astype('category').cat.codes\n",768 "# Convert Country column to categorical variable\n",769 "df['Country'] = df['Country'].astype('category').cat.codes\n",770 "# convert Age of User to integer\n",771 "df['Age of User']=df['Age of User'].replace({'0-20':18,'21-30':25,'31-45':38,'46-60':53,'60-70':65,'70-100':80})"772 ],773 "metadata": {774 "id": "tbthdXH-eIYk"775 },776 "execution_count": 9,777 "outputs": []778 },779 {780 "cell_type": "code",781 "source": [782 "df.info()"783 ],784 "metadata": {785 "colab": {786 "base_uri": "https://localhost:8080/"787 },788 "id": "eaL6GXe_eNkD",789 "outputId": "1e763452-c8a6-4ab4-8e13-750605c9782c"790 },791 "execution_count": 10,792 "outputs": [793 {794 "output_type": "stream",795 "name": "stdout",796 "text": [797 "<class 'pandas.core.frame.DataFrame'>\n",798 "Index: 27480 entries, 0 to 27480\n",799 "Data columns (total 10 columns):\n",800 " # Column Non-Null Count Dtype \n",801 "--- ------ -------------- ----- \n",802 " 0 textID 27480 non-null object \n",803 " 1 text 27480 non-null object \n",804 " 2 selected_text 27480 non-null object \n",805 " 3 sentiment 27480 non-null int8 \n",806 " 4 Time of Tweet 27480 non-null int8 \n",807 " 5 Age of User 27480 non-null int64 \n",808 " 6 Country 27480 non-null int16 \n",809 " 7 Population -2020 27480 non-null float64\n",810 " 8 Land Area (Km²) 27480 non-null float64\n",811 " 9 Density (P/Km²) 27480 non-null float64\n",812 "dtypes: float64(3), int16(1), int64(1), int8(2), object(3)\n",813 "memory usage: 1.8+ MB\n"814 ]815 }816 ]817 },818 {819 "cell_type": "code",820 "source": [821 "df.drop(columns=['textID','Time of Tweet', 'Age of User', 'Country', 'Population -2020', 'Land Area (Km²)', 'Density (P/Km²)'])"822 ],823 "metadata": {824 "colab": {825 "base_uri": "https://localhost:8080/",826 "height": 424827 },828 "id": "M5N7UAfKeQ-8",829 "outputId": "5ff56d5f-ec34-40cb-b04d-150451095f7e"830 },831 "execution_count": 11,832 "outputs": [833 {834 "output_type": "execute_result",835 "data": {836 "text/plain": [837 " text \\\n",838 "0 I`d have responded, if I were going \n",839 "1 Sooo SAD I will miss you here in San Diego!!! \n",840 "2 my boss is bullying me... \n",841 "3 what interview! leave me alone \n",842 "4 Sons of ****, why couldn`t they put them on t... \n",843 "... ... \n",844 "27476 wish we could come see u on Denver husband l... \n",845 "27477 I`ve wondered about rake to. The client has ... \n",846 "27478 Yay good for both of you. Enjoy the break - y... \n",847 "27479 But it was worth it ****. \n",848 "27480 All this flirting going on - The ATG smiles... \n",849 "\n",850 " selected_text sentiment \n",851 "0 I`d have responded, if I were going 1 \n",852 "1 Sooo SAD 0 \n",853 "2 bullying me 0 \n",854 "3 leave me alone 0 \n",855 "4 Sons of ****, 0 \n",856 "... ... ... \n",857 "27476 d lost 0 \n",858 "27477 , don`t force 0 \n",859 "27478 Yay good for both of you. 2 \n",860 "27479 But it was worth it ****. 2 \n",861 "27480 All this flirting going on - The ATG smiles. Y... 1 \n",862 "\n",863 "[27480 rows x 3 columns]"864 ],865 "text/html": [866 "\n",867 " <div id=\"df-c56baa4c-eb57-487e-98f9-1b276b1f44d8\" class=\"colab-df-container\">\n",868 " <div>\n",869 "<style scoped>\n",870 " .dataframe tbody tr th:only-of-type {\n",871 " vertical-align: middle;\n",872 " }\n",873 "\n",874 " .dataframe tbody tr th {\n",875 " vertical-align: top;\n",876 " }\n",877 "\n",878 " .dataframe thead th {\n",879 " text-align: right;\n",880 " }\n",881 "</style>\n",882 "<table border=\"1\" class=\"dataframe\">\n",883 " <thead>\n",884 " <tr style=\"text-align: right;\">\n",885 " <th></th>\n",886 " <th>text</th>\n",887 " <th>selected_text</th>\n",888 " <th>sentiment</th>\n",889 " </tr>\n",890 " </thead>\n",891 " <tbody>\n",892 " <tr>\n",893 " <th>0</th>\n",894 " <td>I`d have responded, if I were going</td>\n",895 " <td>I`d have responded, if I were going</td>\n",896 " <td>1</td>\n",897 " </tr>\n",898 " <tr>\n",899 " <th>1</th>\n",900 " <td>Sooo SAD I will miss you here in San Diego!!!</td>\n",901 " <td>Sooo SAD</td>\n",902 " <td>0</td>\n",903 " </tr>\n",904 " <tr>\n",905 " <th>2</th>\n",906 " <td>my boss is bullying me...</td>\n",907 " <td>bullying me</td>\n",908 " <td>0</td>\n",909 " </tr>\n",910 " <tr>\n",911 " <th>3</th>\n",912 " <td>what interview! leave me alone</td>\n",913 " <td>leave me alone</td>\n",914 " <td>0</td>\n",915 " </tr>\n",916 " <tr>\n",917 " <th>4</th>\n",918 " <td>Sons of ****, why couldn`t they put them on t...</td>\n",919 " <td>Sons of ****,</td>\n",920 " <td>0</td>\n",921 " </tr>\n",922 " <tr>\n",923 " <th>...</th>\n",924 " <td>...</td>\n",925 " <td>...</td>\n",926 " <td>...</td>\n",927 " </tr>\n",928 " <tr>\n",929 " <th>27476</th>\n",930 " <td>wish we could come see u on Denver husband l...</td>\n",931 " <td>d lost</td>\n",932 " <td>0</td>\n",933 " </tr>\n",934 " <tr>\n",935 " <th>27477</th>\n",936 " <td>I`ve wondered about rake to. The client has ...</td>\n",937 " <td>, don`t force</td>\n",938 " <td>0</td>\n",939 " </tr>\n",940 " <tr>\n",941 " <th>27478</th>\n",942 " <td>Yay good for both of you. Enjoy the break - y...</td>\n",943 " <td>Yay good for both of you.</td>\n",944 " <td>2</td>\n",945 " </tr>\n",946 " <tr>\n",947 " <th>27479</th>\n",948 " <td>But it was worth it ****.</td>\n",949 " <td>But it was worth it ****.</td>\n",950 " <td>2</td>\n",951 " </tr>\n",952 " <tr>\n",953 " <th>27480</th>\n",954 " <td>All this flirting going on - The ATG smiles...</td>\n",955 " <td>All this flirting going on - The ATG smiles. Y...</td>\n",956 " <td>1</td>\n",957 " </tr>\n",958 " </tbody>\n",959 "</table>\n",960 "<p>27480 rows × 3 columns</p>\n",961 "</div>\n",962 " <div class=\"colab-df-buttons\">\n",963 "\n",964 " <div class=\"colab-df-container\">\n",965 " <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c56baa4c-eb57-487e-98f9-1b276b1f44d8')\"\n",966 " title=\"Convert this dataframe to an interactive table.\"\n",967 " style=\"display:none;\">\n",968 "\n",969 " <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",970 " <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",971 " </svg>\n",972 " </button>\n",973 "\n",974 " <style>\n",975 " .colab-df-container {\n",976 " display:flex;\n",977 " gap: 12px;\n",978 " }\n",979 "\n",980 " .colab-df-convert {\n",981 " background-color: #E8F0FE;\n",982 " border: none;\n",983 " border-radius: 50%;\n",984 " cursor: pointer;\n",985 " display: none;\n",986 " fill: #1967D2;\n",987 " height: 32px;\n",988 " padding: 0 0 0 0;\n",989 " width: 32px;\n",990 " }\n",991 "\n",992 " .colab-df-convert:hover {\n",993 " background-color: #E2EBFA;\n",994 " box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",995 " fill: #174EA6;\n",996 " }\n",997 "\n",998 " .colab-df-buttons div {\n",999 " margin-bottom: 4px;\n",1000 " }\n",1001 "\n",1002 " [theme=dark] .colab-df-convert {\n",1003 " background-color: #3B4455;\n",1004 " fill: #D2E3FC;\n",1005 " }\n",1006 "\n",1007 " [theme=dark] .colab-df-convert:hover {\n",1008 " background-color: #434B5C;\n",1009 " box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",1010 " filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",1011 " fill: #FFFFFF;\n",1012 " }\n",1013 " </style>\n",1014 "\n",1015 " <script>\n",1016 " const buttonEl =\n",1017 " document.querySelector('#df-c56baa4c-eb57-487e-98f9-1b276b1f44d8 button.colab-df-convert');\n",1018 " buttonEl.style.display =\n",1019 " google.colab.kernel.accessAllowed ? 'block' : 'none';\n",1020 "\n",1021 " async function convertToInteractive(key) {\n",1022 " const element = document.querySelector('#df-c56baa4c-eb57-487e-98f9-1b276b1f44d8');\n",1023 " const dataTable =\n",1024 " await google.colab.kernel.invokeFunction('convertToInteractive',\n",1025 " [key], {});\n",1026 " if (!dataTable) return;\n",1027 "\n",1028 " const docLinkHtml = 'Like what you see? Visit the ' +\n",1029 " '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",1030 " + ' to learn more about interactive tables.';\n",1031 " element.innerHTML = '';\n",1032 " dataTable['output_type'] = 'display_data';\n",1033 " await google.colab.output.renderOutput(dataTable, element);\n",1034 " const docLink = document.createElement('div');\n",1035 " docLink.innerHTML = docLinkHtml;\n",1036 " element.appendChild(docLink);\n",1037 " }\n",1038 " </script>\n",1039 " </div>\n",1040 "\n",1041 "\n",1042 "<div id=\"df-dae2e5e8-a668-4c2c-b5bd-6e71eed446dd\">\n",1043 " <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-dae2e5e8-a668-4c2c-b5bd-6e71eed446dd')\"\n",1044 " title=\"Suggest charts\"\n",1045 " style=\"display:none;\">\n",1046 "\n",1047 "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",1048 " width=\"24px\">\n",1049 " <g>\n",1050 " <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",1051 " </g>\n",1052 "</svg>\n",1053 " </button>\n",1054 "\n",1055 "<style>\n",1056 " .colab-df-quickchart {\n",1057 " --bg-color: #E8F0FE;\n",1058 " --fill-color: #1967D2;\n",1059 " --hover-bg-color: #E2EBFA;\n",1060 " --hover-fill-color: #174EA6;\n",1061 " --disabled-fill-color: #AAA;\n",1062 " --disabled-bg-color: #DDD;\n",1063 " }\n",1064 "\n",1065 " [theme=dark] .colab-df-quickchart {\n",1066 " --bg-color: #3B4455;\n",1067 " --fill-color: #D2E3FC;\n",1068 " --hover-bg-color: #434B5C;\n",1069 " --hover-fill-color: #FFFFFF;\n",1070 " --disabled-bg-color: #3B4455;\n",1071 " --disabled-fill-color: #666;\n",1072 " }\n",1073 "\n",1074 " .colab-df-quickchart {\n",1075 " background-color: var(--bg-color);\n",1076 " border: none;\n",1077 " border-radius: 50%;\n",1078 " cursor: pointer;\n",1079 " display: none;\n",1080 " fill: var(--fill-color);\n",1081 " height: 32px;\n",1082 " padding: 0;\n",1083 " width: 32px;\n",1084 " }\n",1085 "\n",1086 " .colab-df-quickchart:hover {\n",1087 " background-color: var(--hover-bg-color);\n",1088 " box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",1089 " fill: var(--button-hover-fill-color);\n",1090 " }\n",1091 "\n",1092 " .colab-df-quickchart-complete:disabled,\n",1093 " .colab-df-quickchart-complete:disabled:hover {\n",1094 " background-color: var(--disabled-bg-color);\n",1095 " fill: var(--disabled-fill-color);\n",1096 " box-shadow: none;\n",1097 " }\n",1098 "\n",1099 " .colab-df-spinner {\n",1100 " border: 2px solid var(--fill-color);\n",1101 " border-color: transparent;\n",1102 " border-bottom-color: var(--fill-color);\n",1103 " animation:\n",1104 " spin 1s steps(1) infinite;\n",1105 " }\n",1106 "\n",1107 " @keyframes spin {\n",1108 " 0% {\n",1109 " border-color: transparent;\n",1110 " border-bottom-color: var(--fill-color);\n",1111 " border-left-color: var(--fill-color);\n",1112 " }\n",1113 " 20% {\n",1114 " border-color: transparent;\n",1115 " border-left-color: var(--fill-color);\n",1116 " border-top-color: var(--fill-color);\n",1117 " }\n",1118 " 30% {\n",1119 " border-color: transparent;\n",1120 " border-left-color: var(--fill-color);\n",1121 " border-top-color: var(--fill-color);\n",1122 " border-right-color: var(--fill-color);\n",1123 " }\n",1124 " 40% {\n",1125 " border-color: transparent;\n",1126 " border-right-color: var(--fill-color);\n",1127 " border-top-color: var(--fill-color);\n",1128 " }\n",1129 " 60% {\n",1130 " border-color: transparent;\n",1131 " border-right-color: var(--fill-color);\n",1132 " }\n",1133 " 80% {\n",1134 " border-color: transparent;\n",1135 " border-right-color: var(--fill-color);\n",1136 " border-bottom-color: var(--fill-color);\n",1137 " }\n",1138 " 90% {\n",1139 " border-color: transparent;\n",1140 " border-bottom-color: var(--fill-color);\n",1141 " }\n",1142 " }\n",1143 "</style>\n",1144 "\n",1145 " <script>\n",1146 " async function quickchart(key) {\n",1147 " const quickchartButtonEl =\n",1148 " document.querySelector('#' + key + ' button');\n",1149 " quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",1150 " quickchartButtonEl.classList.add('colab-df-spinner');\n",1151 " try {\n",1152 " const charts = await google.colab.kernel.invokeFunction(\n",1153 " 'suggestCharts', [key], {});\n",1154 " } catch (error) {\n",1155 " console.error('Error during call to suggestCharts:', error);\n",1156 " }\n",1157 " quickchartButtonEl.classList.remove('colab-df-spinner');\n",1158 " quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",1159 " }\n",1160 " (() => {\n",1161 " let quickchartButtonEl =\n",1162 " document.querySelector('#df-dae2e5e8-a668-4c2c-b5bd-6e71eed446dd button');\n",1163 " quickchartButtonEl.style.display =\n",1164 " google.colab.kernel.accessAllowed ? 'block' : 'none';\n",1165 " })();\n",1166 " </script>\n",1167 "</div>\n",1168 " </div>\n",1169 " </div>\n"1170 ],1171 "application/vnd.google.colaboratory.intrinsic+json": {1172 "type": "dataframe",1173 "summary": "{\n \"name\": \"df\",\n \"rows\": 27480,\n \"fields\": [\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27480,\n \"samples\": [\n \" Enjoy! Family trumps everything\",\n \" --of them kinda turns me off of it all. And then I buy more of them and dig a deeper hole, etc. ;;\",\n \"Clive it`s my birthday pat me http://apps.facebook.com/dogbook/profile/view/6386106\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"selected_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 22430,\n \"samples\": [\n \"that is why I drive a (teeny tiny) honda civic\",\n \"Sorry...but, I bet they aren`t that bad...\",\n \"yummy\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sentiment\",\n \"properties\": {\n \"dtype\": \"int8\",\n \"num_unique_values\": 3,\n \"samples\": [\n 1,\n 0,\n 2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"1174 }1175 },1176 "metadata": {},1177 "execution_count": 111178 }1179 ]1180 },1181 {1182 "cell_type": "code",1183 "source": [1184 "def wp(text):\n",1185 " text = text.lower()\n",1186 " text = re.sub('\\[.*?\\]', '', text)\n",1187 " text = re.sub(\"\\\\W\",\" \",text)\n",1188 " text = re.sub('https?://\\S+|www\\.\\S+', '', text)\n",1189 " text = re.sub('<.*?>+', '', text)\n",1190 " text = re.sub('[%s]' % re.escape(string.punctuation), '', text)\n",1191 " text = re.sub('\\n', '', text)\n",1192 " text = re.sub('\\w*\\d\\w*', '', text)\n",1193 " return text"1194 ],1195 "metadata": {1196 "id": "l5b-DFoTeWcO"1197 },1198 "execution_count": 12,1199 "outputs": []1200 },