File size: 225,581 Bytes
f34bbf8
1
2
{"cells":[{"cell_type":"markdown","metadata":{"_uuid":"92b885dd147dac19bd0a33db3cd0da100bd5bc23"},"source":["# Twitter Sentiment Analysis"]},{"cell_type":"code","execution_count":1,"metadata":{"execution":{"iopub.execute_input":"2023-08-08T06:30:30.404007Z","iopub.status.busy":"2023-08-08T06:30:30.403594Z","iopub.status.idle":"2023-08-08T06:30:30.419586Z","shell.execute_reply":"2023-08-08T06:30:30.418381Z","shell.execute_reply.started":"2023-08-08T06:30:30.403908Z"},"trusted":true},"outputs":[{"data":{"text/plain":["'/device:GPU:0'"]},"execution_count":1,"metadata":{},"output_type":"execute_result"}],"source":["import tensorflow as tf\n","tf.test.gpu_device_name()"]},{"cell_type":"code","execution_count":53,"metadata":{"_uuid":"303e72966af732ddef0bd8108a321095314e44af","execution":{"iopub.execute_input":"2023-08-08T06:30:30.421892Z","iopub.status.busy":"2023-08-08T06:30:30.421241Z","iopub.status.idle":"2023-08-08T06:30:31.670263Z","shell.execute_reply":"2023-08-08T06:30:31.669002Z","shell.execute_reply.started":"2023-08-08T06:30:30.421820Z"},"trusted":true},"outputs":[],"source":["import pandas as pd\n","\n","# Matplot\n","import matplotlib.pyplot as plt\n","%matplotlib inline\n","\n","# Scikit-learn\n","from sklearn.model_selection import train_test_split\n","from sklearn.preprocessing import LabelEncoder\n","from sklearn.metrics import confusion_matrix, classification_report, accuracy_score\n","from sklearn.manifold import TSNE\n","from sklearn.feature_extraction.text import TfidfVectorizer\n","\n","from tensorflow.keras.layers import Embedding\n","from tensorflow.keras.preprocessing.sequence import pad_sequences\n","from tensorflow.keras.models import Sequential\n","from tensorflow.keras.layers import LSTM,GlobalMaxPooling1D\n","from tensorflow.keras.layers import Dense,Flatten,Conv1D\n","from tensorflow.keras.layers import Dropout\n","from tensorflow.keras.layers import Hashing\n","from tensorflow.keras.preprocessing.text import hashing_trick\n","from tensorflow.keras.preprocessing.text import Tokenizer\n","\n","from keras import utils\n","from keras.callbacks import ReduceLROnPlateau, EarlyStopping\n","\n","# nltk\n","import nltk\n","from nltk.corpus import stopwords\n","from nltk.stem.porter import PorterStemmer\n","import re\n","# Word2vec\n","import gensim\n","#gensim==4.3.1\n","\n","# Utility\n","import re\n","import numpy as np\n","import os\n","from collections import Counter\n","import logging\n","import time\n","import pickle\n","import itertools\n","\n","# Set log\n","logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)"]},{"cell_type":"code","execution_count":3,"metadata":{"_uuid":"35e1a89dead5fd160e4c9a024a21d2e569fc89ff","execution":{"iopub.execute_input":"2023-08-08T06:30:31.673028Z","iopub.status.busy":"2023-08-08T06:30:31.672193Z","iopub.status.idle":"2023-08-08T06:30:51.727729Z","shell.execute_reply":"2023-08-08T06:30:51.726655Z","shell.execute_reply.started":"2023-08-08T06:30:31.672947Z"},"trusted":true},"outputs":[],"source":["# nltk.download('stopwords')"]},{"cell_type":"code","execution_count":4,"metadata":{"_uuid":"180f0dd2a95419e4602b5c0229822b0111c826f6","execution":{"iopub.execute_input":"2023-08-08T06:30:51.729915Z","iopub.status.busy":"2023-08-08T06:30:51.729596Z","iopub.status.idle":"2023-08-08T06:30:51.738402Z","shell.execute_reply":"2023-08-08T06:30:51.737021Z","shell.execute_reply.started":"2023-08-08T06:30:51.729861Z"},"trusted":true},"outputs":[],"source":["# DATASET\n","TRAIN_SIZE = 0.8\n","\n","# TEXT CLENAING\n","\n","# WORD2VEC \n","W2V_SIZE = 100\n","W2V_WINDOW = 7\n","W2V_EPOCH = 32\n","W2V_MIN_COUNT = 10\n","\n","# KERAS\n","SEQUENCE_LENGTH = 40\n","EPOCHS = 6\n","BATCH_SIZE = 128\n"]},{"cell_type":"code","execution_count":6,"metadata":{},"outputs":[],"source":["df=pd.read_csv(r'D:\\Data/sentiment_cleaned_data.csv',encoding='latin-1')\n","df=df.drop(columns=['Unnamed: 0','length'])"]},{"cell_type":"code","execution_count":7,"metadata":{"_uuid":"936d499c00c4f1648bc16ca9d283c3b39be7fb10","execution":{"iopub.execute_input":"2023-08-08T06:30:58.833206Z","iopub.status.busy":"2023-08-08T06:30:58.832420Z","iopub.status.idle":"2023-08-08T06:30:58.839684Z","shell.execute_reply":"2023-08-08T06:30:58.838417Z","shell.execute_reply.started":"2023-08-08T06:30:58.833117Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["Dataset size: 1599505\n"]}],"source":["print(\"Dataset size:\", len(df))"]},{"cell_type":"code","execution_count":8,"metadata":{"_uuid":"7486ed895b813c5246f97b31b6162b0f65ff763b","execution":{"iopub.execute_input":"2023-08-08T06:30:58.841975Z","iopub.status.busy":"2023-08-08T06:30:58.841567Z","iopub.status.idle":"2023-08-08T06:30:58.887060Z","shell.execute_reply":"2023-08-08T06:30:58.885028Z","shell.execute_reply.started":"2023-08-08T06:30:58.841902Z"},"trusted":true},"outputs":[{"data":{"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","      <th>transformed_tweet</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>0</td>\n","      <td>switchfoot http twitpic com zl awww bummer sho...</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>0</td>\n","      <td>upset updat facebook text might cri result sch...</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>0</td>\n","      <td>kenichan dive mani time ball manag save rest g...</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>0</td>\n","      <td>whole bodi feel itchi like fire</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>0</td>\n","      <td>nationwideclass behav mad see</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["   target                                  transformed_tweet\n","0       0  switchfoot http twitpic com zl awww bummer sho...\n","1       0  upset updat facebook text might cri result sch...\n","2       0  kenichan dive mani time ball manag save rest g...\n","3       0                    whole bodi feel itchi like fire\n","4       0                      nationwideclass behav mad see"]},"execution_count":8,"metadata":{},"output_type":"execute_result"}],"source":["df.head(5)"]},{"cell_type":"code","execution_count":11,"metadata":{"_uuid":"19eb327803192f31cce3512aacb232f4d6b38715","execution":{"iopub.execute_input":"2023-08-08T06:31:00.230308Z","iopub.status.busy":"2023-08-08T06:31:00.229988Z","iopub.status.idle":"2023-08-08T06:31:00.827339Z","shell.execute_reply":"2023-08-08T06:31:00.826062Z","shell.execute_reply.started":"2023-08-08T06:31:00.230256Z"},"trusted":true},"outputs":[{"data":{"text/plain":["Text(0.5, 1.0, 'Dataset labels distribuition')"]},"execution_count":11,"metadata":{},"output_type":"execute_result"},{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAABSoAAAKqCAYAAAA9u2DoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABZg0lEQVR4nO3de5wWdd0//hcHd0FwF5WTJAJmqZhKYuKaZia5GloWlhi3oaKWoYaUih3w0EHDykMq3HYQ79I89Ls1BUUJT3dKqCh3SmJaKBouWMquooKy8/ujL9fNCgqr6BA+n4/HPG6vmfd85j2z87gaXvdcM22KoigCAAAAAFCitmU3AAAAAAAgqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAOBNtWnTJmeccUar15s0aVLatGmT+++/f531csYZZ6RNmzbrbLzVef3+rtiPJ5544h3dbpIcccQR6du3b+XzE088kTZt2uRHP/rROt1Oa/6mffv2zRFHHLFOtw8AsDqCSgCA/F8YtWLq0KFDevXqlfr6+lx44YV54YUX3vLY99xzT84444wsXrx43TX8NlxyySWZNGlS2W1s0F566aWcccYZueOOO8puZa2sb+coAPDe1L7sBgAA1idnnXVW+vXrl1dffTUNDQ254447Mnr06PzkJz/JDTfckJ122qnVY95zzz0588wzc8QRR6RLly7rvulWuuSSS9K1a1d3ya2lww8/PMOGDUt1dfVar/PSSy/lzDPPTJJ8/OMfX+v1fvazn6W5ubm1Lbbayy+/nPbt/++fAm92jj766KNp29b9DQDAO09QCQCwkgMOOCC77rpr5fNpp52W2267LQceeGA+/elP55FHHknHjh1L7JB3W7t27dKuXbt3dBtLlixJp06dstFGG72j21mhQ4cOa13bmoAWAODt8P8aBQBYg0984hP5zne+kyeffDK//vWvK/P/9Kc/5YgjjsjWW2+dDh06pGfPnjnqqKPyz3/+s1Jzxhln5OSTT06S9OvXr/LT8hXPO7zsssvyiU98It27d091dXX69++fCRMmrNLD/fffn/r6+nTt2jUdO3ZMv379ctRRR7WoaW5uzvnnn58ddtghHTp0SI8ePfLlL385zz//fKWmb9++mTNnTu68885KL6254y9JnnzyyXz1q1/Ntttum44dO2bzzTfP5z//+Td8huNLL72UL3/5y9l8881TU1OTL33pSy16WuHmm2/OXnvtlU6dOmWTTTbJkCFDMmfOnDX2M23atOy5557p0qVLOnfunG233Tbf/OY317je0qVLc9JJJ6Vbt27ZZJNN8ulPfzpPP/30KnWre0blm/09nnjiiXTr1i1JcuaZZ1aO84pnQh5xxBHp3Llz/vrXv+ZTn/pUNtlkkwwfPryybOVnVK7svPPOS58+fdKxY8fsvffeefjhh1ss//jHP77av+Xqxly5nzWdo6t7RuXf/va3fP7zn89mm22WjTfeOLvvvnumTJnSouaOO+5ImzZtcs011+T73/9+ttxyy3To0CH77rtvHn/88dXuIwDw3uaOSgCAtXD44Yfnm9/8Zm699dYcc8wxSf4VkP3tb3/LkUcemZ49e2bOnDm59NJLM2fOnPzxj39MmzZt8rnPfS5/+ctf8pvf/CbnnXdeunbtmiSVIGvChAnZYYcd8ulPfzrt27fPjTfemK9+9atpbm7OqFGjkiSLFi3Kfvvtl27dumXs2LHp0qVLnnjiifz3f/93ix6//OUvZ9KkSTnyyCNz4oknZt68ebnooovy4IMP5u67785GG22U888/PyeccEI6d+6cb33rW0mSHj16tOpY3HfffbnnnnsybNiwbLnllnniiScyYcKEfPzjH8+f//znbLzxxi3qjz/++HTp0iVnnHFGHn300UyYMCFPPvlkJchKkl/96lcZMWJE6uvr88Mf/jAvvfRSJkyYkD333DMPPvjgG4Z3c+bMyYEHHpiddtopZ511Vqqrq/P444/n7rvvXuN+HH300fn1r3+dL37xi9ljjz1y2223ZciQIWtcb01/j27dumXChAk57rjj8tnPfjaf+9znkqTFYwNee+211NfXZ88998yPfvSjVY7Z6/3Xf/1XXnjhhYwaNSqvvPJKLrjggnziE5/IQw891Oq/3+ut6Rx9vYULF2aPPfbISy+9lBNPPDGbb755Lr/88nz605/Ob3/723z2s59tUX/OOeekbdu2+cY3vpHGxsaMHz8+w4cPz8yZM99W3wDABqgAAKC47LLLiiTFfffd94Y1tbW1xYc//OHK55deemmVmt/85jdFkuKuu+6qzDv33HOLJMW8efNWqV/dGPX19cXWW29d+Xzdddetsbf/+Z//KZIUV1xxRYv5U6dOXWX+DjvsUOy9995vONbrJSlOP/30N+15xowZRZLiv/7rvyrzVhzTgQMHFsuWLavMHz9+fJGk+N3vflcURVG88MILRZcuXYpjjjmmxZgNDQ1FbW1ti/mnn356sfIl7HnnnVckKZ599tm13p+iKIrZs2cXSYqvfvWrLeZ/8YtfXGV/V+zHir/f2vw9nn322VXGWWHEiBFFkmLs2LGrXdanT5/K53nz5hVJio4dOxZPP/10Zf7MmTOLJMVJJ51Umbf33nuv9u/6+jGLYtW/6Zudo3369ClGjBhR+Tx69OgiSfE///M/lXkvvPBC0a9fv6Jv377F8uXLi6Ioittvv71IUmy//fbF0qVLK7UXXHBBkaR46KGHVtkWAPDe5qffAABrqXPnzi3e/r3ysypfeeWV/OMf/8juu++eJHnggQfWasyVx2hsbMw//vGP7L333vnb3/6WxsbGJKm83GTy5Ml59dVXVzvOtddem9ra2nzyk5/MP/7xj8o0cODAdO7cObfffnur9nVte3711Vfzz3/+M9tss026dOmy2v0+9thjWzx78bjjjkv79u1z0003JfnXnamLFy/OYYcd1qL3du3aZdCgQW/a+4pj87vf/a5VL6FZse0TTzyxxfzRo0evcd21+XusjeOOO26taw8++OC8733vq3zebbfdMmjQoMp+vJtuuumm7Lbbbtlzzz0r8zp37pxjjz02TzzxRP785z+3qD/yyCNTVVVV+bzXXnsl+dfPxwEAViaoBABYSy+++GI22WSTyufnnnsuX/va19KjR4907Ngx3bp1S79+/ZKkEjKuyd13353BgwenU6dO6dKlS7p161Z5vuKKMfbee+8MHTo0Z555Zrp27ZrPfOYzueyyy7J06dLKOI899lgaGxvTvXv3dOvWrcX04osvZtGiRevqMOTll1/OuHHj0rt371RXV6dr167p1q1bFi9evNr9/sAHPtDic+fOnbPFFltUnoH42GOPJfnXs0Bf3/utt976pr0feuih+ehHP5qjjz46PXr0yLBhw3LNNdesMbR88skn07Zt27z//e9vMX/bbbdd4/6vzd9jTdq3b58tt9xyretffwyT5IMf/OAbPhf0nfTkk0+u9jhtv/32leUr22qrrVp83nTTTZNktc8pBQDe2zyjEgBgLTz99NNpbGzMNttsU5n3hS98Iffcc09OPvnkDBgwIJ07d05zc3P233//tbq7769//Wv23XffbLfddvnJT36S3r17p6qqKjfddFPOO++8yhht2rTJb3/72/zxj3/MjTfemFtuuSVHHXVUfvzjH+ePf/xjZbvdu3fPFVdcsdptvdHzBt+KE044IZdddllGjx6durq61NbWpk2bNhk2bFir7mpcYcU6v/rVr9KzZ89Vlrdv/8aXrB07dsxdd92V22+/PVOmTMnUqVNz9dVX5xOf+ERuvfXWd+Rt3Wvz91iT6urqtG27bu8ZaNOmTYqiWGX+8uXL1+l2WuuN/gar6xUAeG8TVAIArIVf/epXSZL6+vok/7obbPr06TnzzDMzbty4St2KuwNXtuKFMa934403ZunSpbnhhhta3HX2Rj913n333bP77rvn+9//fq688soMHz48V111VY4++ui8//3vz+9///t89KMfbfHT7NV5o37W1m9/+9uMGDEiP/7xjyvzXnnllSxevHi19Y899lj22WefyucXX3wxzzzzTD71qU8lSeWuxu7du2fw4MGt7qdt27bZd999s+++++YnP/lJfvCDH+Rb3/pWbr/99jccr0+fPmlubs5f//rXFncHPvroo2u93Tf7e7zdY/x6qzuv/vKXv7R4ydCmm2662p9Tv/4Ox9VpTb99+vRZ7XGaO3duZTkAwFvhp98AAGtw22235bvf/W769euX4cOHJ/m/u8Ref1fY+eefv8r6nTp1SpJVgrzVjdHY2JjLLrusRd3zzz+/ynYGDBiQJJWfG3/hC1/I8uXL893vfneV7b/22msttt2pU6c3DBXXRrt27Vbp56c//ekb3rl36aWXtniW44QJE/Laa6/lgAMOSPKv8LempiY/+MEPVvvMx2efffYNe3nuuedWmff6Y7M6K7Z94YUXtpi/ur/f663N32PFW7zfznFe2fXXX5+///3vlc/33ntvZs6cWdmP5F+B79y5c1scr//93/9dqzegv9E5ujqf+tSncu+992bGjBmVeUuWLMmll16avn37pn///muzSwAAq3BHJQDASm6++ebMnTs3r732WhYuXJjbbrst06ZNS58+fXLDDTekQ4cOSZKampp87GMfy/jx4/Pqq6/mfe97X2699dbMmzdvlTEHDhyYJPnWt76VYcOGZaONNspBBx2U/fbbL1VVVTnooIPy5S9/OS+++GJ+9rOfpXv37nnmmWcq619++eW55JJL8tnPfjbvf//788ILL+RnP/tZampqKncl7r333vnyl7+cs88+O7Nnz85+++2XjTbaKI899liuvfbaXHDBBTnkkEMq/UyYMCHf+973ss0226R79+75xCc+sdbH6MADD8yvfvWr1NbWpn///pkxY0Z+//vfZ/PNN19t/bJly7LvvvvmC1/4Qh599NFccskl2XPPPfPpT3+6ciwnTJiQww8/PLvsskuGDRuWbt26Zf78+ZkyZUo++tGP5qKLLlrt2GeddVbuuuuuDBkyJH369MmiRYtyySWXZMstt2zxspfXGzBgQA477LBccsklaWxszB577JHp06fn8ccfX+P+r83fo2PHjunfv3+uvvrqfPCDH8xmm22WD33oQ/nQhz60xvFXZ5tttsmee+6Z4447LkuXLs3555+fzTffPKecckql5qijjspPfvKT1NfXZ+TIkVm0aFEmTpyYHXbYIU1NTW86/hudoysCzJWNHTs2v/nNb3LAAQfkxBNPzGabbZbLL7888+bNy//3//1/6/wn7QDAe0iJbxwHAFhvXHbZZUWSylRVVVX07Nmz+OQnP1lccMEFRVNT0yrrPP3008VnP/vZokuXLkVtbW3x+c9/vliwYEGRpDj99NNb1H73u98t3ve+9xVt27YtkhTz5s0riqIobrjhhmKnnXYqOnToUPTt27f44Q9/WPzyl79sUfPAAw8Uhx12WLHVVlsV1dXVRffu3YsDDzywuP/++1fp6dJLLy0GDhxYdOzYsdhkk02KHXfcsTjllFOKBQsWVGoaGhqKIUOGFJtsskmRpNh7773f9Ni8fn+ef/754sgjjyy6du1adO7cuaivry/mzp1b9OnTpxgxYsQqx/TOO+8sjj322GLTTTctOnfuXAwfPrz45z//ucp2br/99qK+vr6ora0tOnToULz//e8vjjjiiBb7efrppxcrX8JOnz69+MxnPlP06tWrqKqqKnr16lUcdthhxV/+8pc33aeiKIqXX365OPHEE4vNN9+86NSpU3HQQQcVTz311Cr7u2I/Wvv3uOeee4qBAwcWVVVVLcYcMWJE0alTp9X2NGLEiKJPnz6Vz/PmzSuSFOeee27x4x//uOjdu3dRXV1d7LXXXsX//u//rrL+r3/962LrrbcuqqqqigEDBhS33HLLKmMWxap/06J443P09X/XoiiKv/71r8UhhxxSdOnSpejQoUOx2267FZMnT25Rc/vttxdJimuvvbbF/BX7dNlll632GAAA711tisJTrAEAAACAcvldBgAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAULr2ZTewPmtubs6CBQuyySabpE2bNmW3AwAAAAD/VoqiyAsvvJBevXqlbds3v2dSUPkmFixYkN69e5fdBgAAAAD8W3vqqaey5ZZbvmmNoPJNbLLJJkn+dSBrampK7gYAAAAA/r00NTWld+/elZztzQgq38SKn3vX1NQIKgEAAADgLVqbxyp6mQ4AAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAUDpBJQAAAABQOkElAAAAAFA6QSUAAAAAULpWBZXLly/Pd77znfTr1y8dO3bM+9///nz3u99NURSVmqIoMm7cuGyxxRbp2LFjBg8enMcee6zFOM8991yGDx+empqadOnSJSNHjsyLL77YouZPf/pT9tprr3To0CG9e/fO+PHjV+nn2muvzXbbbZcOHTpkxx13zE033dRi+dr0AgAAAACUr1VB5Q9/+MNMmDAhF110UR555JH88Ic/zPjx4/PTn/60UjN+/PhceOGFmThxYmbOnJlOnTqlvr4+r7zySqVm+PDhmTNnTqZNm5bJkyfnrrvuyrHHHltZ3tTUlP322y99+vTJrFmzcu655+aMM87IpZdeWqm55557cthhh2XkyJF58MEHc/DBB+fggw/Oww8/3KpeAAAAAIDytSlWvh1yDQ488MD06NEjv/jFLyrzhg4dmo4dO+bXv/51iqJIr1698vWvfz3f+MY3kiSNjY3p0aNHJk2alGHDhuWRRx5J//79c99992XXXXdNkkydOjWf+tSn8vTTT6dXr16ZMGFCvvWtb6WhoSFVVVVJkrFjx+b666/P3LlzkySHHnpolixZksmTJ1d62X333TNgwIBMnDhxrXpZk6amptTW1qaxsTE1NTVre5gAAAAAgLQuX2vVHZV77LFHpk+fnr/85S9Jkv/93//NH/7whxxwwAFJknnz5qWhoSGDBw+urFNbW5tBgwZlxowZSZIZM2akS5culZAySQYPHpy2bdtm5syZlZqPfexjlZAySerr6/Poo4/m+eefr9SsvJ0VNSu2sza9vN7SpUvT1NTUYgIAAAAA3nntW1M8duzYNDU1Zbvttku7du2yfPnyfP/738/w4cOTJA0NDUmSHj16tFivR48elWUNDQ3p3r17yybat89mm23WoqZfv36rjLFi2aabbpqGhoY1bmdNvbze2WefnTPPPHMtjgQAAAAAsC61Kqi85pprcsUVV+TKK6/MDjvskNmzZ2f06NHp1atXRowY8U71+K457bTTMmbMmMrnpqam9O7du8SO3h19x04puwUAYB144pwhZbfAu8x1HABsGFzH/UurgsqTTz45Y8eOrTzfcccdd8yTTz6Zs88+OyNGjEjPnj2TJAsXLswWW2xRWW/hwoUZMGBAkqRnz55ZtGhRi3Ffe+21PPfcc5X1e/bsmYULF7aoWfF5TTUrL19TL69XXV2d6urqtTsYAAAAAMA606pnVL700ktp27blKu3atUtzc3OSpF+/funZs2emT59eWd7U1JSZM2emrq4uSVJXV5fFixdn1qxZlZrbbrstzc3NGTRoUKXmrrvuyquvvlqpmTZtWrbddttsuummlZqVt7OiZsV21qYXAAAAAGD90Kqg8qCDDsr3v//9TJkyJU888USuu+66/OQnP8lnP/vZJEmbNm0yevTofO9738sNN9yQhx56KF/60pfSq1evHHzwwUmS7bffPvvvv3+OOeaY3Hvvvbn77rtz/PHHZ9iwYenVq1eS5Itf/GKqqqoycuTIzJkzJ1dffXUuuOCCFj/L/trXvpapU6fmxz/+cebOnZszzjgj999/f44//vi17gUAAAAAWD+06qffP/3pT/Od73wnX/3qV7No0aL06tUrX/7ylzNu3LhKzSmnnJIlS5bk2GOPzeLFi7Pnnntm6tSp6dChQ6XmiiuuyPHHH5999903bdu2zdChQ3PhhRdWltfW1ubWW2/NqFGjMnDgwHTt2jXjxo3LscceW6nZY489cuWVV+bb3/52vvnNb+YDH/hArr/++nzoQx9qVS8AAAAAQPnaFEVRlN3E+qqpqSm1tbVpbGxMTU1N2e28YzyEHQA2DB7C/t7jOg4ANgwb8nVca/K1Vv30GwAAAADgnSCoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABKJ6gEAAAAAEonqAQAAAAASieoBAAAAABK16qgsm/fvmnTps0q06hRo5Ikr7zySkaNGpXNN988nTt3ztChQ7Nw4cIWY8yfPz9DhgzJxhtvnO7du+fkk0/Oa6+91qLmjjvuyC677JLq6upss802mTRp0iq9XHzxxenbt286dOiQQYMG5d57722xfG16AQAAAADWD60KKu+7774888wzlWnatGlJks9//vNJkpNOOik33nhjrr322tx5551ZsGBBPve5z1XWX758eYYMGZJly5blnnvuyeWXX55JkyZl3LhxlZp58+ZlyJAh2WeffTJ79uyMHj06Rx99dG655ZZKzdVXX50xY8bk9NNPzwMPPJCdd9459fX1WbRoUaVmTb0AAAAAAOuPNkVRFG915dGjR2fy5Ml57LHH0tTUlG7duuXKK6/MIYcckiSZO3dutt9++8yYMSO77757br755hx44IFZsGBBevTokSSZOHFiTj311Dz77LOpqqrKqaeemilTpuThhx+ubGfYsGFZvHhxpk6dmiQZ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bBg25Ou41uRrb+sZlQAAAAAA64KgEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAonaASAAAAACidoBIAAAAAKJ2gEgAAAAAo3dsKKs8555y0adMmo0ePrsx75ZVXMmrUqGy++ebp3Llzhg4dmoULF7ZYb/78+RkyZEg23njjdO/ePSeffHJee+21FjV33HFHdtlll1RXV2ebbbbJpEmTVtn+xRdfnL59+6ZDhw4ZNGhQ7r333hbL16YXAAAAAKB8bzmovO+++/Kf//mf2WmnnVrMP+mkk3LjjTfm2muvzZ133pkFCxbkc5/7XGX58uXLM2TIkCxbtiz33HNPLr/88kyaNCnjxo2r1MybNy9DhgzJPvvsk9mzZ2f06NE5+uijc8stt1Rqrr766owZMyann356Hnjggey8886pr6/PokWL1roXAAAAAGD90KYoiqK1K7344ovZZZddcskll+R73/teBgwYkPPPPz+NjY3p1q1brrzyyhxyyCFJkrlz52b77bfPjBkzsvvuu+fmm2/OgQcemAULFqRHjx5JkokTJ+bUU0/Ns88+m6qqqpx66qmZMmVKHn744co2hw0blsWLF2fq1KlJkkGDBuUjH/lILrro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GxvX2MvaaGpqSm1tbRobG1NTU/N2DtN6re/YKWW3AACsA0+cM6TsFniXuY4DgA3Dhnwd15p87S0/o3L58uW56qqrsmTJktTV1WXWrFl59dVXM3jw4ErNdtttl6222iozZsxIksyYMSM77rhjJaRMkvr6+jQ1NVXuypwxY0aLMVbUrBhj2bJlmTVrVouatm3bZvDgwZWatelldZYuXZqmpqYWEwAAAADwzmt1UPnQQw+lc+fOqa6uzle+8pVcd9116d+/fxoaGlJVVZUuXbq0qO/Ro0caGhqSJA0NDS1CyhXLVyx7s5qmpqa8/PLL+cc//pHly5evtmblMdbUy+qcffbZqa2trUy9e/deu4MCAAAAALwtrQ4qt91228yePTszZ87McccdlxEjRuTPf/7zO9Hbu+60005LY2NjZXrqqafKbgkAAAAA3hPat3aFqqqqbLPNNkmSgQMH5r777ssFF1yQQw89NMuWLcvixYtb3Mm4cOHC9OzZM0nSs2fPVd7OveJN3CvXvP7t3AsXLkxNTU06duyYdu3apV27dqutWXmMNfWyOtXV1amurm7F0QAAAAAA1oW3/IzKFZqbm7N06dIMHDgwG220UaZPn15Z9uijj2b+/Pmpq6tLktTV1eWhhx5q8XbuadOmpaamJv3796/UrDzGipoVY1RVVWXgwIEtapqbmzN9+vRKzdr0AgAAAACsP1p1R+Vpp52WAw44IFtttVVeeOGFXHnllbnjjjtyyy23pLa2NiNHjsyYMWOy2WabpaamJieccELq6uoqb9neb7/90r9//xx++OEZP358Ghoa8u1vfzujRo2q3Mn4la98JRdddFFOOeWUHHXUUbnttttyzTXXZMqU/3uj4ZgxYzJixIjsuuuu2W233XL++ednyZIlOfLII5NkrXoBAAAAANYfrQoqFy1alC996Ut55plnUltbm5122im33HJLPvnJTyZJzjvvvLRt2zZDhw7N0qVLU19fn0suuaSyfrt27TJ58uQcd9xxqaurS6dOnTJixIicddZZlZp+/fplypQpOemkk3LBBRdkyy23zM9//vPU19dXag499NA8++yzGTduXBoaGjJgwIBMnTq1xQt21tQLAAAAALD+aFMURVF2E+urpqam1NbWprGxMTU1NWW3847pO3bKmosAgPXeE+cMKbsF3mWu4wBgw7AhX8e1Jl9728+oBAAAAAB4uwSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpBJUAAAAAQOkElQAAAABA6QSVAAAAAEDpWhVUnn322fnIRz6STTbZJN27d8/BBx+cRx99tEXNK6+8klGjRmXzzTdP586dM3To0CxcuLBFzfz58zNkyJBsvPHG6d69e04++eS89tprLWruuOOO7LLLLqmurs4222yTSZMmrdLPxRdfnL59+6ZDhw4ZNGhQ7r333lb3AgAAAACUr1VB5Z133plRo0blj3/8Y6ZNm5ZXX301++23X5YsWVKpOemkk3LjjTfm2muvzZ133pkFCxbkc5/7XGX58uXLM2TIkCxbtiz33HNPLr/88kyaNCnjxo2r1MybNy9DhgzJPvvsk9mzZ2f06NE5+uijc8stt1Rqrr766owZMyann356Hnjggey8886pr6/PokWL1roXAAAAAGD90KYoiuKtrvzss8+me/fuufPOO/Oxj30sjY2N6datW6688soccsghSZK5c+dm++23z4wZM7L77rvn5ptvzoEHHpgFCxakR48eSZKJEyfm1FNPzbPPPpuqqqqceuqpmTJlSh5++OHKtoYNG5bFixdn6tSpSZJBgwblIx/5SC666KIkSXNzc3r37p0TTjghY8eOXate1qSpqSm1tbVpbGxMTU3NWz1M672+Y6eU3QIAsA48cc6QslvgXeY6DgA2DBvydVxr8rW39YzKxsbGJMlmm22WJJk1a1ZeffXVDB48uFKz3XbbZauttsqMGTOSJDNmzMiOO+5YCSmTpL6+Pk1NTZkzZ06lZuUxVtSsGGPZsmWZNWtWi5q2bdtm8ODBlZq16QUAAAAAWD+0f6srNjc3Z/To0fnoRz+aD33oQ0mShoaGVFVVpUuXLi1qe/TokYaGhkrNyiHliuUrlr1ZTVNTU15++eU8//zzWb58+Wpr5s6du9a9vN7SpUuzdOnSyuempqY1HQYAAAAAYB14y3dUjho1Kg8//HCuuuqqddlPqc4+++zU1tZWpt69e5fdEgAAAAC8J7yloPL444/P5MmTc/vtt2fLLbeszO/Zs2eWLVuWxYsXt6hfuHBhevbsWal5/Zu3V3xeU01NTU06duyYrl27pl27dqutWXmMNfXyeqeddloaGxsr01NPPbUWRwMAAAAAeLtaFVQWRZHjjz8+1113XW677bb069evxfKBAwdmo402yvTp0yvzHn300cyfPz91dXVJkrq6ujz00EMt3s49bdq01NTUpH///pWalcdYUbNijKqqqgwcOLBFTXNzc6ZPn16pWZteXq+6ujo1NTUtJgAAAADgndeqZ1SOGjUqV155ZX73u99lk002qTzrsba2Nh07dkxtbW1GjhyZMWPGZLPNNktNTU1OOOGE1NXVVd6yvd9++6V///45/PDDM378+DQ0NOTb3/52Ro0alerq6iTJV77ylVx00UU55ZRTctRRR+W2227LNddckylT/u+thmPGjMmIESOy6667Zrfddsv555+fJUuW5Mgjj6z0tKZeAAAAAID1Q6uCygkTJiRJPv7xj7eYf9lll+WII45Ikpx33nlp27Zthg4dmqVLl6a+vj6XXHJJpbZdu3aZPHlyjjvuuNTV1aVTp04ZMWJEzjrrrEpNv379MmXKlJx00km54IILsuWWW+bnP/956uvrKzWHHnponn322YwbNy4NDQ0ZMGBApk6d2uIFO2vqBQAAAABYP7QpiqIou4n1VVNTU2pra9PY2LhB/wy879gpay4CANZ7T5wzpOwWeJe5jgOADcOGfB3XmnztLb/1GwAAAABgXRFUAgAA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cePS0NCQAQMGZOrUqau8YAfeTdXV1Tn99NNXedQAvBOcb7zbnHO8m5xvvNucc7ybnG+825xzlK1NsTbvBgcAAAAAeAdt0M+oBAAAAAD+PQgqAQAAAIDSCSoBAAAAgNIJKgEAAACA0gkq4R3w3HPPZfjw4ampqUmXLl0ycuTIvPjii29af8IJJ2TbbbdNx44ds9VWW+XEE09MY2Nji7o2bdqsMl111VXv9O6wHrr44ovTt2/fdOjQIYMGDcq99977pvXXXntttttuu3To0CE77rhjbrrpphbLi6LIuHHjssUWW6Rjx44ZPHhwHnvssXdyF/g30prz7Wc/+1n22muvbLrpptl0000zePDgVeqPOOKIVb7L9t9//3d6N/g30ppzbtKkSaucTx06dGhR4zuON9Oa8+3jH//4aq/HhgwZUqnxHcebueuuu3LQQQelV69eadOmTa6//vo1rnPHHXdkl112SXV1dbbZZptMmjRplZrWXhvy3tDa8+2///u/88lPfjLdunVLTU1N6urqcsstt7SoOeOMM1b5jttuu+3ewb3gvUZQCe+A4cOHZ86cOZk2bVomT56cu+66K8cee+wb1i9YsCALFizIj370ozz88MOZNGlSpk6dmpEjR65Se9lll+WZZ56pTAcffPA7uCesj66++uqMGTMmp59+eh544IHsvPPOqa+vz6JFi1Zbf8899+Swww7LyJEj8+CDD+bggw/OwQcfnIcffrhSM378+Fx44YWZOHFiZs6cmU6dOqW+vj6vvPLKu7VbrKdae77dcccdOeyww3L77bdnxowZ6d27d/bbb7/8/e9/b1G3//77t/gu+81vfvNu7A7/Blp7ziVJTU1Ni/PpySefbLHcdxxvpLXn23//93+3ONcefvjhtGvXLp///Odb1PmO440sWbIkO++8cy6++OK1qp83b16GDBmSffbZJ7Nnz87o0aNz9NFHtwiP3sr3Ju8NrT3f7rrrrnzyk5/MTTfdlFmzZmWfffbJQQcdlAcffLBF3Q477NDiO+4Pf/jDO9E+71UFsE79+c9/LpIU9913X2XezTffXLRp06b4+9//vtbjXHPNNUVVVVXx6quvVuYlKa677rp12S7/hnbbbbdi1KhRlc/Lly8vevXqVZx99tmrrf/CF75QDBkypMW8QYMGFV/+8peLoiiK5ubmomfPnsW5555bWb548eKiurq6+M1vfvMO7AH/Tlp7vr3ea6+9VmyyySbF5ZdfXpk3YsSI4jOf+cy6bpUNRGvPucsuu6yora19w/F8x/Fm3u533HnnnVdssskmxYsvvliZ5zuOtbU21/annHJKscMOO7SYd+ihhxb19fWVz2/3POa94a3+W7J///7FmWeeWfl8+umnFzvvvPO6awxexx2VsI7NmDEjXbp0ya677lqZN3jw4LRt2zYzZ85c63EaGxtTU1OT9u3bt5g/atSodO3aNbvttlt++ctfpiiKddY7679ly5Zl1qxZGTx4cGVe27ZtM3jw4MyYMWO168yYMaNFfZLU19dX6ufNm5eGhoYWNbW1tRk0aNAbjsl7w1s5317vpZdeyquvvprNNtusxfw77rgj3bt3z7bbbpvjjjsu//znP9dp7/x7eqvn3Isvvpg+ffqkd+/e+cxnPpM5c+ZUlvmO442si++4X/ziFxk2bFg6derUYr7vONaVNV3HrYvzGN5Ic3NzXnjhhVWu4x577LH06tUrW2+9dYYPH5758+eX1CEbIkElrGMNDQ3p3r17i3nt27fPZpttloaGhrUa4x//+Ee++93vrvJz8bPOOivXXHNNpk2blqFDh+arX/1qfvrTn66z3ln//eMf/8jy5cvTo0ePFvN79OjxhudXQ0PDm9av+L+tGZP3hrdyvr3eqaeeml69erX4B9T++++f//qv/8r06dPzwx/+MHfeeWcOOOCALF++fJ32z7+ft3LObbvttvnlL3+Z3/3ud/n1r3+d5ubm7LHHHnn66aeT+I7jjb3d77h77703Dz/8cI4++ugW833HsS690XVcU1NTXn755XXyv9XwRn70ox/lxRdfzBe+8IXKvEGDBlUeVTZhwoTMmzcve+21V1544YUSO2VD0n7NJUCSjB07Nj/84Q/ftOaRRx5529tpamrKkCFD0r9//5xxxhktln3nO9+p/PeHP/zhLFmyJOeee25OPPHEt71dgHXtnHPOyVVXXZU77rijxctNhg0bVvnvHXfcMTvttFPe//7354477si+++5bRqv8G6urq0tdXV3l8x577JHtt98+//mf/5nvfve7JXbGhu4Xv/hFdtxxx+y2224t5vuOAzYEV155Zc4888z87ne/a3EjzgEHHFD575122imDBg1Knz59cs0116z2HQvQWu6ohLX09a9/PY888sibTltvvXV69uy5yoOrX3vttTz33HPp2bPnm27jhRdeyP77759NNtkk1113XTbaaKM3rR80aFCefvrpLF269G3vH/8eunbtmnbt2mXhwoUt5i9cuPANz6+ePXu+af2K/9uaMXlveCvn2wo/+tGPcs455+TWW2/NTjvt9Ka1W2+9dbp27ZrHH3/8bffMv7e3c86tsNFGG+XDH/5w5XzyHccbeTvn25IlS3LVVVet1T/KfcfxdrzRdVxNTU06duy4Tr434fWuuuqqHH300bnmmmtWefTA63Xp0iUf/OAHfcexzggqYS1169Yt22233ZtOVVVVqaury+LFizNr1qzKurfddluam5szaNCgNxy/qakp++23X6qqqnLDDTe0uPvojcyePTubbrppqqur18k+sv6rqqrKwIEDM3369Mq85ubmTJ8+vcUdRSurq6trUZ8k06ZNq9T369cvPXv2bFHT1NSUmTNnvuGYvDe8lfMt+dcblr/73e9m6tSpLZ7X+0aefvrp/POf/8wWW2yxTvrm39dbPedWtnz58jz00EOV88l3HG/k7Zxv1157bZYuXZr/+I//WON2fMfxdqzpOm5dfG/Cyn7zm9/kyCOPzG9+85sMGTJkjfUvvvhi/vrXv/qOY90p+20+sCHaf//9iw9/+MPFzJkziz/84Q/FBz7wgeKwww6rLH/66aeLbbfdtpg5c2ZRFEXR2NhYDBo0qNhxxx2Lxx9/vHjmmWcq02uvvVYURVHccMMNxc9+9rPioYceKh577LHikksuKTbeeONi3Lhxpewj5bnqqquK6urqYtKkScWf//zn4thjjy26dOlSNDQ0FEVRFIcffngxduzYSv3dd99dtG/fvvjRj35UPPLII8Xpp59ebLTRRsVDDz1UqTnnnHOKLl26FL/73e+KP/3pT8VnPvOZol+/fsXLL7/8ru8f65fWnm/nnHNOUVVVVfz2t79t8V32wgsvFEVRFC+88ELxjW98o5gxY0Yxb9684ve//32xyy67FB/4wAeKV155pZR9ZP3S2nPuzDPPLG655Zbir3/9azFr1qxi2LBhRYcOHYo5c+ZUanzH8UZae76tsOeeexaHHnroKvN9x7EmL7zwQvHggw8WDz74YJGk+MlPflI8+OCDxZNPPlkURVGMHTu2OPzwwyv1f/vb34qNN964OPnkk4tHHnmkuPjii4t27doVU6dOrdSs6Tzmvau159sVV1xRtG/fvrj44otbXMctXry4UvP1r3+9uOOOO4p58+YVd999dzF48OCia9euxaJFi971/WPDJKiEd8A///nP4rDDDis6d+5c1NTUFEceeWTlH+lFURTz5s0rkhS33357URRFcfvttxdJVjvNmzevKIqiuPnmm4sBAwYUnTt3Ljp16lTsvPPOxcSJE4vly5eXsIeU7ac//Wmx1VZbFVVVVcVuu+1W/PGPf6ws23vvvYsRI0a0qL/mmmuKD37wg0VVVVWxww47FFOmTGmxvLm5ufjOd75T9OjRo6iuri723Xff4tFHH303doV/A6053/r06bPa77LTTz+9KIqieOmll4r99tuv6NatW7HRRhsVffr0KY455hj/mKKF1pxzo0ePrtT26NGj+NSnPlU88MADLcbzHcebae3/ps6dO7dIUtx6662rjOU7jjV5o+v+FefZiBEjir333nuVdQYMGFBUVVUVW2+9dXHZZZetMu6bnce8d7X2fNt7773ftL4oiuLQQw8ttthii6Kqqqp43/veVxx66KHF448//u7uGBu0NkVRFO/GnZsAAAAAAG/EMyoBAAAAgNIJKgEAAACA0gkqAQAAAIDSCSoBAAAAgNIJKgEAAACA0gkqAQAAAIDSCSoBAAAAgNIJKgEAAACA0gkqAQAAAIDSCSoBAAAAgNIJKgEAAACA0gkqAQAAAIDS/f86/nVNfVpCdgAAAABJRU5ErkJggg==","text/plain":["<Figure size 1600x800 with 1 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":["target_cnt = Counter(df.target)\n","\n","plt.figure(figsize=(16,8))\n","plt.bar(target_cnt.keys(), target_cnt.values())\n","plt.title(\"Dataset labels distribuition\")"]},{"cell_type":"markdown","metadata":{"_uuid":"4329b1573518b03e497213efa7676220734ebb4b"},"source":["### Pre-Process dataset"]},{"cell_type":"markdown","metadata":{"_uuid":"f5f9714a8507409bbe780eebf2855a33e8e6ba37","trusted":true},"source":["### Split train and test"]},{"cell_type":"code","execution_count":12,"metadata":{"_uuid":"d2b1179c968e3f3910c790ecf0c5b2cbb34b0e68","execution":{"iopub.execute_input":"2023-08-08T06:32:21.683029Z","iopub.status.busy":"2023-08-08T06:32:21.682698Z","iopub.status.idle":"2023-08-08T06:32:23.712873Z","shell.execute_reply":"2023-08-08T06:32:23.711656Z","shell.execute_reply.started":"2023-08-08T06:32:21.682974Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["TRAIN size: 1279604\n","TEST size: 319901\n"]}],"source":["df_train, df_test = train_test_split(df, test_size=1-TRAIN_SIZE, random_state=42)\n","print(\"TRAIN size:\", len(df_train))\n","print(\"TEST size:\", len(df_test))"]},{"cell_type":"markdown","metadata":{"_uuid":"f08a28aab2c3d16d8b9681a7d5d07587153a1cd6"},"source":["### Word2Vec "]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"data":{"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","      <th>transformed_tweet</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>218151</th>\n","      <td>0</td>\n","      <td>anyon answer tweet send grrrrr</td>\n","    </tr>\n","    <tr>\n","      <th>1589632</th>\n","      <td>1</td>\n","      <td>sleep shop lol http twitpic com jch</td>\n","    </tr>\n","    <tr>\n","      <th>837050</th>\n","      <td>1</td>\n","      <td>akibafilm thank</td>\n","    </tr>\n","    <tr>\n","      <th>1572461</th>\n","      <td>1</td>\n","      <td>kid school summer still busier expect good tho...</td>\n","    </tr>\n","    <tr>\n","      <th>1211354</th>\n","      <td>1</td>\n","      <td>night owl hungri night owl wendi anyon</td>\n","    </tr>\n","    <tr>\n","      <th>...</th>\n","      <td>...</td>\n","      <td>...</td>\n","    </tr>\n","    <tr>\n","      <th>259178</th>\n","      <td>0</td>\n","      <td>last fm est offlin</td>\n","    </tr>\n","    <tr>\n","      <th>1414414</th>\n","      <td>1</td>\n","      <td>friendster kinda bore myspac awesom</td>\n","    </tr>\n","    <tr>\n","      <th>131932</th>\n","      <td>0</td>\n","      <td>say aww last week na ng sepm http plurk com p ...</td>\n","    </tr>\n","    <tr>\n","      <th>671155</th>\n","      <td>0</td>\n","      <td>oh fight</td>\n","    </tr>\n","    <tr>\n","      <th>121958</th>\n","      <td>0</td>\n","      <td>oh dear wear mask wait number thomson medic centr</td>\n","    </tr>\n","  </tbody>\n","</table>\n","<p>1279604 rows × 2 columns</p>\n","</div>"],"text/plain":["         target                                  transformed_tweet\n","218151        0                     anyon answer tweet send grrrrr\n","1589632       1                sleep shop lol http twitpic com jch\n","837050        1                                    akibafilm thank\n","1572461       1  kid school summer still busier expect good tho...\n","1211354       1             night owl hungri night owl wendi anyon\n","...         ...                                                ...\n","259178        0                                 last fm est offlin\n","1414414       1                friendster kinda bore myspac awesom\n","131932        0  say aww last week na ng sepm http plurk com p ...\n","671155        0                                           oh fight\n","121958        0  oh dear wear mask wait number thomson medic centr\n","\n","[1279604 rows x 2 columns]"]},"execution_count":13,"metadata":{},"output_type":"execute_result"}],"source":["df_train"]},{"cell_type":"code","execution_count":14,"metadata":{},"outputs":[],"source":["documents = [_text.split() for _text in df_train['transformed_tweet']]\n"]},{"cell_type":"code","execution_count":15,"metadata":{},"outputs":[],"source":["from gensim.models import Word2Vec\n"]},{"cell_type":"code","execution_count":16,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["2023-08-09 18:37:39,592 : INFO : collecting all words and their counts\n","2023-08-09 18:37:39,594 : INFO : PROGRESS: at sentence #0, processed 0 words, keeping 0 word types\n","2023-08-09 18:37:39,612 : INFO : PROGRESS: at sentence #10000, processed 77516 words, keeping 15132 word types\n","2023-08-09 18:37:39,631 : INFO : PROGRESS: at sentence #20000, processed 155196 words, keeping 24727 word types\n","2023-08-09 18:37:39,651 : INFO : PROGRESS: at sentence #30000, processed 232175 words, keeping 32877 word types\n","2023-08-09 18:37:39,669 : INFO : PROGRESS: at sentence #40000, processed 309612 words, keeping 40398 word types\n","2023-08-09 18:37:39,693 : INFO : PROGRESS: at sentence #50000, processed 386356 words, keeping 47342 word types\n","2023-08-09 18:37:39,711 : INFO : PROGRESS: at sentence #60000, processed 463425 words, keeping 53984 word types\n","2023-08-09 18:37:39,727 : INFO : PROGRESS: at sentence #70000, processed 540720 words, keeping 60121 word types\n","2023-08-09 18:37:39,744 : INFO : PROGRESS: at sentence #80000, processed 618399 words, keeping 66292 word types\n","2023-08-09 18:37:39,761 : INFO : PROGRESS: at sentence #90000, processed 695890 words, keeping 72126 word types\n","2023-08-09 18:37:39,778 : INFO : PROGRESS: at sentence #100000, processed 772960 words, keeping 77985 word types\n","2023-08-09 18:37:39,824 : INFO : PROGRESS: at sentence #110000, processed 849766 words, keeping 83568 word types\n","2023-08-09 18:37:39,850 : INFO : PROGRESS: at sentence #120000, processed 927268 words, keeping 88954 word types\n","2023-08-09 18:37:39,869 : INFO : PROGRESS: at sentence #130000, processed 1004432 words, keeping 94302 word types\n","2023-08-09 18:37:39,887 : INFO : PROGRESS: at sentence #140000, processed 1081821 words, keeping 99587 word types\n","2023-08-09 18:37:39,907 : INFO : PROGRESS: at sentence #150000, processed 1159080 words, keeping 104725 word types\n","2023-08-09 18:37:39,925 : INFO : PROGRESS: at sentence #160000, processed 1237024 words, keeping 109852 word types\n","2023-08-09 18:37:39,950 : INFO : PROGRESS: at sentence #170000, processed 1313970 words, keeping 114555 word types\n","2023-08-09 18:37:39,970 : INFO : PROGRESS: at sentence #180000, processed 1390853 words, keeping 119166 word types\n","2023-08-09 18:37:39,988 : INFO : PROGRESS: at sentence #190000, processed 1467855 words, keeping 123999 word types\n","2023-08-09 18:37:40,006 : INFO : PROGRESS: at sentence #200000, processed 1544772 words, keeping 128599 word types\n","2023-08-09 18:37:40,024 : INFO : PROGRESS: at sentence #210000, processed 1621845 words, keeping 133172 word types\n","2023-08-09 18:37:40,048 : INFO : PROGRESS: at sentence #220000, processed 1698830 words, keeping 137753 word types\n","2023-08-09 18:37:40,072 : INFO : PROGRESS: at sentence #230000, processed 1776544 words, keeping 142323 word types\n","2023-08-09 18:37:40,089 : INFO : PROGRESS: at sentence #240000, processed 1854408 words, keeping 146627 word types\n","2023-08-09 18:37:40,107 : INFO : PROGRESS: at sentence #250000, processed 1931913 words, keeping 150967 word types\n","2023-08-09 18:37:40,125 : INFO : PROGRESS: at sentence #260000, processed 2009087 words, keeping 155231 word types\n","2023-08-09 18:37:40,143 : INFO : PROGRESS: at sentence #270000, processed 2086551 words, keeping 159525 word types\n","2023-08-09 18:37:40,161 : INFO : PROGRESS: at sentence #280000, processed 2163879 words, keeping 163693 word types\n","2023-08-09 18:37:40,188 : INFO : PROGRESS: at sentence #290000, processed 2241200 words, keeping 167861 word types\n","2023-08-09 18:37:40,207 : INFO : PROGRESS: at sentence #300000, processed 2318409 words, keeping 172038 word types\n","2023-08-09 18:37:40,231 : INFO : PROGRESS: at sentence #310000, processed 2395281 words, keeping 175963 word types\n","2023-08-09 18:37:40,255 : INFO : PROGRESS: at sentence #320000, processed 2473246 words, keeping 180002 word types\n","2023-08-09 18:37:40,273 : INFO : PROGRESS: at sentence #330000, processed 2550434 words, keeping 183912 word types\n","2023-08-09 18:37:40,291 : INFO : PROGRESS: at sentence #340000, processed 2628435 words, keeping 187799 word types\n","2023-08-09 18:37:40,309 : INFO : PROGRESS: at sentence #350000, processed 2706161 words, keeping 191645 word types\n","2023-08-09 18:37:40,328 : INFO : PROGRESS: at sentence #360000, processed 2782929 words, keeping 195461 word types\n","2023-08-09 18:37:40,347 : INFO : PROGRESS: at sentence #370000, processed 2860505 words, keeping 199218 word types\n","2023-08-09 18:37:40,365 : INFO : PROGRESS: at sentence #380000, processed 2937082 words, keeping 202948 word types\n","2023-08-09 18:37:40,384 : INFO : PROGRESS: at sentence #390000, processed 3014562 words, keeping 206759 word types\n","2023-08-09 18:37:40,403 : INFO : PROGRESS: at sentence #400000, processed 3092186 words, keeping 210305 word types\n","2023-08-09 18:37:40,420 : INFO : PROGRESS: at sentence #410000, processed 3168978 words, keeping 213945 word types\n","2023-08-09 18:37:40,439 : INFO : PROGRESS: at sentence #420000, processed 3245823 words, keeping 217611 word types\n","2023-08-09 18:37:40,459 : INFO : PROGRESS: at sentence #430000, processed 3323560 words, keeping 221214 word types\n","2023-08-09 18:37:40,478 : INFO : PROGRESS: at sentence #440000, processed 3401330 words, keeping 224802 word types\n","2023-08-09 18:37:40,496 : INFO : PROGRESS: at sentence #450000, processed 3479017 words, keeping 228301 word types\n","2023-08-09 18:37:40,514 : INFO : PROGRESS: at sentence #460000, processed 3555704 words, keeping 231780 word types\n","2023-08-09 18:37:40,534 : INFO : PROGRESS: at sentence #470000, processed 3633395 words, keeping 235294 word types\n","2023-08-09 18:37:40,555 : INFO : PROGRESS: at sentence #480000, processed 3709963 words, keeping 238764 word types\n","2023-08-09 18:37:40,575 : INFO : PROGRESS: at sentence #490000, processed 3787224 words, keeping 242113 word types\n","2023-08-09 18:37:40,594 : INFO : PROGRESS: at sentence #500000, processed 3864727 words, keeping 245443 word types\n","2023-08-09 18:37:40,612 : INFO : PROGRESS: at sentence #510000, processed 3942311 words, keeping 248896 word types\n","2023-08-09 18:37:40,632 : INFO : PROGRESS: at sentence #520000, processed 4019475 words, keeping 252309 word types\n","2023-08-09 18:37:40,651 : INFO : PROGRESS: at sentence #530000, processed 4096819 words, keeping 255559 word types\n","2023-08-09 18:37:40,669 : INFO : PROGRESS: at sentence #540000, processed 4174817 words, keeping 258851 word types\n","2023-08-09 18:37:40,691 : INFO : PROGRESS: at sentence #550000, processed 4252373 words, keeping 262134 word types\n","2023-08-09 18:37:40,712 : INFO : PROGRESS: at sentence #560000, processed 4329917 words, keeping 265419 word types\n","2023-08-09 18:37:40,730 : INFO : PROGRESS: at sentence #570000, processed 4407567 words, keeping 268636 word types\n","2023-08-09 18:37:40,748 : INFO : PROGRESS: at sentence #580000, processed 4484194 words, keeping 271781 word types\n","2023-08-09 18:37:40,768 : INFO : PROGRESS: at sentence #590000, processed 4561196 words, keeping 274924 word types\n","2023-08-09 18:37:40,787 : INFO : PROGRESS: at sentence #600000, processed 4638093 words, keeping 278051 word types\n","2023-08-09 18:37:40,806 : INFO : PROGRESS: at sentence #610000, processed 4715047 words, keeping 281195 word types\n","2023-08-09 18:37:40,825 : INFO : PROGRESS: at sentence #620000, processed 4792020 words, keeping 284423 word types\n","2023-08-09 18:37:40,846 : INFO : PROGRESS: at sentence #630000, processed 4869717 words, keeping 287523 word types\n","2023-08-09 18:37:40,865 : INFO : PROGRESS: at sentence #640000, processed 4946392 words, keeping 290553 word types\n","2023-08-09 18:37:40,884 : INFO : PROGRESS: at sentence #650000, processed 5024145 words, keeping 293612 word types\n","2023-08-09 18:37:40,902 : INFO : PROGRESS: at sentence #660000, processed 5101436 words, keeping 296666 word types\n","2023-08-09 18:37:40,921 : INFO : PROGRESS: at sentence #670000, processed 5178452 words, keeping 299663 word types\n","2023-08-09 18:37:40,940 : INFO : PROGRESS: at sentence #680000, processed 5255784 words, keeping 302655 word types\n","2023-08-09 18:37:40,966 : INFO : PROGRESS: at sentence #690000, processed 5333299 words, keeping 305656 word types\n","2023-08-09 18:37:40,984 : INFO : PROGRESS: at sentence #700000, processed 5411245 words, keeping 308748 word types\n","2023-08-09 18:37:41,003 : INFO : PROGRESS: at sentence #710000, processed 5489186 words, keeping 311782 word types\n","2023-08-09 18:37:41,023 : INFO : PROGRESS: at sentence #720000, processed 5566608 words, keeping 314780 word types\n","2023-08-09 18:37:41,043 : INFO : PROGRESS: at sentence #730000, processed 5644038 words, keeping 317752 word types\n","2023-08-09 18:37:41,067 : INFO : PROGRESS: at sentence #740000, processed 5721961 words, keeping 320717 word types\n","2023-08-09 18:37:41,087 : INFO : PROGRESS: at sentence #750000, processed 5800014 words, keeping 323650 word types\n","2023-08-09 18:37:41,106 : INFO : PROGRESS: at sentence #760000, processed 5876959 words, keeping 326492 word types\n","2023-08-09 18:37:41,125 : INFO : PROGRESS: at sentence #770000, processed 5953892 words, keeping 329344 word types\n","2023-08-09 18:37:41,145 : INFO : PROGRESS: at sentence #780000, processed 6031301 words, keeping 332162 word types\n","2023-08-09 18:37:41,164 : INFO : PROGRESS: at sentence #790000, processed 6108431 words, keeping 335033 word types\n","2023-08-09 18:37:41,183 : INFO : PROGRESS: at sentence #800000, processed 6186227 words, keeping 337825 word types\n","2023-08-09 18:37:41,202 : INFO : PROGRESS: at sentence #810000, processed 6263871 words, keeping 340680 word types\n","2023-08-09 18:37:41,222 : INFO : PROGRESS: at sentence #820000, processed 6341693 words, keeping 343474 word types\n","2023-08-09 18:37:41,241 : INFO : PROGRESS: at sentence #830000, processed 6419196 words, keeping 346304 word types\n","2023-08-09 18:37:41,265 : INFO : PROGRESS: at sentence #840000, processed 6496703 words, keeping 349111 word types\n","2023-08-09 18:37:41,295 : INFO : PROGRESS: at sentence #850000, processed 6573291 words, keeping 351931 word types\n","2023-08-09 18:37:41,314 : INFO : PROGRESS: at sentence #860000, processed 6650575 words, keeping 354703 word types\n","2023-08-09 18:37:41,332 : INFO : PROGRESS: at sentence #870000, processed 6728083 words, keeping 357390 word types\n","2023-08-09 18:37:41,351 : INFO : PROGRESS: at sentence #880000, processed 6805659 words, keeping 360045 word types\n","2023-08-09 18:37:41,369 : INFO : PROGRESS: at sentence #890000, processed 6882490 words, keeping 362810 word types\n","2023-08-09 18:37:41,388 : INFO : PROGRESS: at sentence #900000, processed 6959291 words, keeping 365507 word types\n","2023-08-09 18:37:41,406 : INFO : PROGRESS: at sentence #910000, processed 7037007 words, keeping 368219 word types\n","2023-08-09 18:37:41,426 : INFO : PROGRESS: at sentence #920000, processed 7114500 words, keeping 371028 word types\n","2023-08-09 18:37:41,445 : INFO : PROGRESS: at sentence #930000, processed 7191201 words, keeping 373687 word types\n","2023-08-09 18:37:41,465 : INFO : PROGRESS: at sentence #940000, processed 7267852 words, keeping 376327 word types\n","2023-08-09 18:37:41,484 : INFO : PROGRESS: at sentence #950000, processed 7345393 words, keeping 379084 word types\n","2023-08-09 18:37:41,502 : INFO : PROGRESS: at sentence #960000, processed 7422737 words, keeping 381720 word types\n","2023-08-09 18:37:41,522 : INFO : PROGRESS: at sentence #970000, processed 7500402 words, keeping 384322 word types\n","2023-08-09 18:37:41,543 : INFO : PROGRESS: at sentence #980000, processed 7577917 words, keeping 386901 word types\n","2023-08-09 18:37:41,567 : INFO : PROGRESS: at sentence #990000, processed 7654596 words, keeping 389465 word types\n","2023-08-09 18:37:41,584 : INFO : PROGRESS: at sentence #1000000, processed 7731695 words, keeping 392056 word types\n","2023-08-09 18:37:41,603 : INFO : PROGRESS: at sentence #1010000, processed 7808761 words, keeping 394623 word types\n","2023-08-09 18:37:41,622 : INFO : PROGRESS: at sentence #1020000, processed 7886044 words, keeping 397153 word types\n","2023-08-09 18:37:41,641 : INFO : PROGRESS: at sentence #1030000, processed 7964427 words, keeping 399704 word types\n","2023-08-09 18:37:41,660 : INFO : PROGRESS: at sentence #1040000, processed 8042635 words, keeping 402302 word types\n","2023-08-09 18:37:41,683 : INFO : PROGRESS: at sentence #1050000, processed 8119543 words, keeping 404836 word types\n","2023-08-09 18:37:41,709 : INFO : PROGRESS: at sentence #1060000, processed 8196795 words, keeping 407319 word types\n","2023-08-09 18:37:41,731 : INFO : PROGRESS: at sentence #1070000, processed 8274377 words, keeping 409860 word types\n","2023-08-09 18:37:41,755 : INFO : PROGRESS: at sentence #1080000, processed 8352381 words, keeping 412418 word types\n","2023-08-09 18:37:41,773 : INFO : PROGRESS: at sentence #1090000, processed 8429262 words, keeping 414882 word types\n","2023-08-09 18:37:41,792 : INFO : PROGRESS: at sentence #1100000, processed 8506718 words, keeping 417436 word types\n","2023-08-09 18:37:41,812 : INFO : PROGRESS: at sentence #1110000, processed 8584128 words, keeping 419923 word types\n","2023-08-09 18:37:41,831 : INFO : PROGRESS: at sentence #1120000, processed 8661999 words, keeping 422407 word types\n","2023-08-09 18:37:41,850 : INFO : PROGRESS: at sentence #1130000, processed 8739641 words, keeping 424876 word types\n","2023-08-09 18:37:41,871 : INFO : PROGRESS: at sentence #1140000, processed 8817033 words, keeping 427288 word types\n","2023-08-09 18:37:41,889 : INFO : PROGRESS: at sentence #1150000, processed 8894789 words, keeping 429710 word types\n","2023-08-09 18:37:41,908 : INFO : PROGRESS: at sentence #1160000, processed 8971477 words, keeping 432132 word types\n","2023-08-09 18:37:41,927 : INFO : PROGRESS: at sentence #1170000, processed 9048487 words, keeping 434572 word types\n","2023-08-09 18:37:41,946 : INFO : PROGRESS: at sentence #1180000, processed 9126009 words, keeping 437045 word types\n","2023-08-09 18:37:41,966 : INFO : PROGRESS: at sentence #1190000, processed 9203063 words, keeping 439452 word types\n","2023-08-09 18:37:41,989 : INFO : PROGRESS: at sentence #1200000, processed 9280802 words, keeping 441916 word types\n","2023-08-09 18:37:42,008 : INFO : PROGRESS: at sentence #1210000, processed 9358646 words, keeping 444350 word types\n","2023-08-09 18:37:42,027 : INFO : PROGRESS: at sentence #1220000, processed 9435948 words, keeping 446723 word types\n","2023-08-09 18:37:42,048 : INFO : PROGRESS: at sentence #1230000, processed 9512716 words, keeping 449111 word types\n","2023-08-09 18:37:42,071 : INFO : PROGRESS: at sentence #1240000, processed 9589604 words, keeping 451438 word types\n","2023-08-09 18:37:42,092 : INFO : PROGRESS: at sentence #1250000, processed 9666733 words, keeping 453853 word types\n","2023-08-09 18:37:42,110 : INFO : PROGRESS: at sentence #1260000, processed 9743495 words, keeping 456195 word types\n","2023-08-09 18:37:42,129 : INFO : PROGRESS: at sentence #1270000, processed 9820748 words, keeping 458556 word types\n","2023-08-09 18:37:42,148 : INFO : collected 460852 word types from a corpus of 9895474 raw words and 1279604 sentences\n","2023-08-09 18:37:42,148 : INFO : Creating a fresh vocabulary\n","2023-08-09 18:37:42,400 : INFO : Word2Vec lifecycle event {'msg': 'effective_min_count=10 retains 29829 unique words (6.47% of original 460852, drops 431023)', 'datetime': '2023-08-09T18:37:42.400449', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'prepare_vocab'}\n","2023-08-09 18:37:42,401 : INFO : Word2Vec lifecycle event {'msg': 'effective_min_count=10 leaves 9155621 word corpus (92.52% of original 9895474, drops 739853)', 'datetime': '2023-08-09T18:37:42.401454', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'prepare_vocab'}\n","2023-08-09 18:37:42,558 : INFO : deleting the raw counts dictionary of 460852 items\n","2023-08-09 18:37:42,571 : INFO : sample=0.001 downsamples 50 most-common words\n","2023-08-09 18:37:42,572 : INFO : Word2Vec lifecycle event {'msg': 'downsampling leaves estimated 8397469.524308443 word corpus (91.7%% of prior 9155621)', 'datetime': '2023-08-09T18:37:42.572768', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'prepare_vocab'}\n","2023-08-09 18:37:42,795 : INFO : estimated required memory for 29829 words and 100 dimensions: 38777700 bytes\n","2023-08-09 18:37:42,795 : INFO : resetting layer weights\n","2023-08-09 18:37:42,812 : INFO : Word2Vec lifecycle event {'update': False, 'trim_rule': 'None', 'datetime': '2023-08-09T18:37:42.812608', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'build_vocab'}\n","2023-08-09 18:37:42,814 : INFO : Word2Vec lifecycle event {'msg': 'training model with 4 workers on 29829 vocabulary and 100 features, using sg=0 hs=0 sample=0.001 negative=5 window=7 shrink_windows=True', 'datetime': '2023-08-09T18:37:42.814113', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'train'}\n","2023-08-09 18:37:43,845 : INFO : EPOCH 0 - PROGRESS: at 22.04% examples, 1846340 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:44,847 : INFO : EPOCH 0 - PROGRESS: at 43.65% examples, 1828563 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:45,855 : INFO : EPOCH 0 - PROGRESS: at 64.44% examples, 1796459 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:46,863 : INFO : EPOCH 0 - PROGRESS: at 86.56% examples, 1808406 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:47,517 : INFO : EPOCH 0: training on 9895474 raw words (8396240 effective words) took 4.7s, 1796323 effective words/s\n","2023-08-09 18:37:48,532 : INFO : EPOCH 1 - PROGRESS: at 18.40% examples, 1536888 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:37:49,539 : INFO : EPOCH 1 - PROGRESS: at 35.57% examples, 1484060 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:50,544 : INFO : EPOCH 1 - PROGRESS: at 53.06% examples, 1475782 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:51,545 : INFO : EPOCH 1 - PROGRESS: at 72.02% examples, 1505248 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:52,549 : INFO : EPOCH 1 - PROGRESS: at 92.72% examples, 1550527 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:52,924 : INFO : EPOCH 1: training on 9895474 raw words (8396648 effective words) took 5.4s, 1555765 effective words/s\n","2023-08-09 18:37:53,938 : INFO : EPOCH 2 - PROGRESS: at 21.33% examples, 1781503 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:37:54,942 : INFO : EPOCH 2 - PROGRESS: at 41.93% examples, 1752027 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:55,951 : INFO : EPOCH 2 - PROGRESS: at 60.11% examples, 1672750 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:56,954 : INFO : EPOCH 2 - PROGRESS: at 78.50% examples, 1639481 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:57,955 : INFO : EPOCH 2 - PROGRESS: at 98.19% examples, 1642014 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:37:58,046 : INFO : EPOCH 2: training on 9895474 raw words (8396953 effective words) took 5.1s, 1642674 effective words/s\n","2023-08-09 18:37:59,060 : INFO : EPOCH 3 - PROGRESS: at 19.91% examples, 1665701 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:00,065 : INFO : EPOCH 3 - PROGRESS: at 36.28% examples, 1516249 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:01,068 : INFO : EPOCH 3 - PROGRESS: at 55.07% examples, 1534772 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:02,069 : INFO : EPOCH 3 - PROGRESS: at 74.96% examples, 1568768 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:03,074 : INFO : EPOCH 3 - PROGRESS: at 94.63% examples, 1584337 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:03,324 : INFO : EPOCH 3: training on 9895474 raw words (8398138 effective words) took 5.3s, 1594448 effective words/s\n","2023-08-09 18:38:04,339 : INFO : EPOCH 4 - PROGRESS: at 19.20% examples, 1603740 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:05,340 : INFO : EPOCH 4 - PROGRESS: at 36.08% examples, 1509893 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:06,342 : INFO : EPOCH 4 - PROGRESS: at 53.36% examples, 1488580 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:07,350 : INFO : EPOCH 4 - PROGRESS: at 70.01% examples, 1464047 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:08,351 : INFO : EPOCH 4 - PROGRESS: at 87.27% examples, 1460769 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:09,066 : INFO : EPOCH 4: training on 9895474 raw words (8397709 effective words) took 5.7s, 1465287 effective words/s\n","2023-08-09 18:38:09,067 : INFO : Word2Vec lifecycle event {'msg': 'training on 49477370 raw words (41985688 effective words) took 26.3s, 1599313 effective words/s', 'datetime': '2023-08-09T18:38:09.067025', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'train'}\n","2023-08-09 18:38:09,067 : INFO : Word2Vec lifecycle event {'params': 'Word2Vec<vocab=29829, vector_size=100, alpha=0.025>', 'datetime': '2023-08-09T18:38:09.067025', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'created'}\n"]}],"source":["w2v_model = Word2Vec(sentences=documents, vector_size=100, window=7, min_count=10, workers=4)\n","# model.save(\"word2vec.model\")"]},{"cell_type":"code","execution_count":21,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Vocab size: 29829\n"]}],"source":["words = w2v_model.wv.index_to_key  # Get the list of words in the vocabulary\n","vocab_size = len(words)\n","print(\"Vocab size:\", vocab_size)"]},{"cell_type":"code","execution_count":17,"metadata":{"_uuid":"68c3e4a5ba07cac3dee67f78ecdd1404c7f83f14","execution":{"iopub.execute_input":"2023-08-08T06:32:36.170407Z","iopub.status.busy":"2023-08-08T06:32:36.170028Z","iopub.status.idle":"2023-08-08T06:42:33.819022Z","shell.execute_reply":"2023-08-08T06:42:33.817367Z","shell.execute_reply.started":"2023-08-08T06:32:36.170329Z"},"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":["2023-08-09 18:38:09,077 : WARNING : Effective 'alpha' higher than previous training cycles\n","2023-08-09 18:38:09,078 : INFO : Word2Vec lifecycle event {'msg': 'training model with 4 workers on 29829 vocabulary and 100 features, using sg=0 hs=0 sample=0.001 negative=5 window=7 shrink_windows=True', 'datetime': '2023-08-09T18:38:09.078084', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'train'}\n","2023-08-09 18:38:10,092 : INFO : EPOCH 0 - PROGRESS: at 14.36% examples, 1203110 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:11,094 : INFO : EPOCH 0 - PROGRESS: at 29.21% examples, 1223472 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:12,099 : INFO : EPOCH 0 - PROGRESS: at 46.79% examples, 1305443 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:13,114 : INFO : EPOCH 0 - PROGRESS: at 63.84% examples, 1332283 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:38:14,118 : INFO : EPOCH 0 - PROGRESS: at 79.61% examples, 1329565 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:15,118 : INFO : EPOCH 0 - PROGRESS: at 95.95% examples, 1336873 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:15,321 : INFO : EPOCH 0: training on 9895474 raw words (8397810 effective words) took 6.2s, 1347816 effective words/s\n","2023-08-09 18:38:16,338 : INFO : EPOCH 1 - PROGRESS: at 14.76% examples, 1232080 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:38:17,339 : INFO : EPOCH 1 - PROGRESS: at 29.21% examples, 1221369 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:18,356 : INFO : EPOCH 1 - PROGRESS: at 43.54% examples, 1208890 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:19,357 : INFO : EPOCH 1 - PROGRESS: at 61.43% examples, 1281210 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:20,368 : INFO : EPOCH 1 - PROGRESS: at 80.02% examples, 1334222 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:38:21,375 : INFO : EPOCH 1 - PROGRESS: at 97.37% examples, 1353222 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:21,521 : INFO : EPOCH 1: training on 9895474 raw words (8397231 effective words) took 6.2s, 1356937 effective words/s\n","2023-08-09 18:38:22,535 : INFO : EPOCH 2 - PROGRESS: at 17.80% examples, 1489881 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:23,539 : INFO : EPOCH 2 - PROGRESS: at 36.58% examples, 1530128 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:24,541 : INFO : EPOCH 2 - PROGRESS: at 54.47% examples, 1519837 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:25,543 : INFO : EPOCH 2 - PROGRESS: at 72.43% examples, 1516364 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:38:26,543 : INFO : EPOCH 2 - PROGRESS: at 88.38% examples, 1481299 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:27,294 : INFO : EPOCH 2: training on 9895474 raw words (8397136 effective words) took 5.8s, 1457376 effective words/s\n","2023-08-09 18:38:28,312 : INFO : EPOCH 3 - PROGRESS: at 16.99% examples, 1421072 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:29,327 : INFO : EPOCH 3 - PROGRESS: at 33.25% examples, 1382189 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:38:30,331 : INFO : EPOCH 3 - PROGRESS: at 50.33% examples, 1397514 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:31,332 : INFO : EPOCH 3 - PROGRESS: at 65.65% examples, 1370097 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:32,340 : INFO : EPOCH 3 - PROGRESS: at 79.81% examples, 1331931 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:33,346 : INFO : EPOCH 3 - PROGRESS: at 95.85% examples, 1333423 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:33,632 : INFO : EPOCH 3: training on 9895474 raw words (8397233 effective words) took 6.3s, 1327960 effective words/s\n","2023-08-09 18:38:34,656 : INFO : EPOCH 4 - PROGRESS: at 15.88% examples, 1318043 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:35,664 : INFO : EPOCH 4 - PROGRESS: at 29.00% examples, 1205738 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:36,669 : INFO : EPOCH 4 - PROGRESS: at 42.74% examples, 1186364 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:37,675 : INFO : EPOCH 4 - PROGRESS: at 59.80% examples, 1245906 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:38,682 : INFO : EPOCH 4 - PROGRESS: at 74.15% examples, 1235935 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:39,687 : INFO : EPOCH 4 - PROGRESS: at 91.11% examples, 1266611 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:40,168 : INFO : EPOCH 4: training on 9895474 raw words (8398042 effective words) took 6.5s, 1287390 effective words/s\n","2023-08-09 18:38:41,179 : INFO : EPOCH 5 - PROGRESS: at 17.80% examples, 1491717 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:42,179 : INFO : EPOCH 5 - PROGRESS: at 36.18% examples, 1517172 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:43,183 : INFO : EPOCH 5 - PROGRESS: at 50.74% examples, 1416769 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:44,186 : INFO : EPOCH 5 - PROGRESS: at 67.28% examples, 1409185 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:45,188 : INFO : EPOCH 5 - PROGRESS: at 84.64% examples, 1418706 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:46,020 : INFO : EPOCH 5: training on 9895474 raw words (8397276 effective words) took 5.8s, 1437329 effective words/s\n","2023-08-09 18:38:47,050 : INFO : EPOCH 6 - PROGRESS: at 17.90% examples, 1475819 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:38:48,063 : INFO : EPOCH 6 - PROGRESS: at 35.57% examples, 1471083 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:38:49,064 : INFO : EPOCH 6 - PROGRESS: at 53.26% examples, 1474780 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:50,067 : INFO : EPOCH 6 - PROGRESS: at 71.01% examples, 1477997 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:51,071 : INFO : EPOCH 6 - PROGRESS: at 88.38% examples, 1473221 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:51,709 : INFO : EPOCH 6: training on 9895474 raw words (8396570 effective words) took 5.7s, 1479440 effective words/s\n","2023-08-09 18:38:52,722 : INFO : EPOCH 7 - PROGRESS: at 18.00% examples, 1506640 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:53,723 : INFO : EPOCH 7 - PROGRESS: at 36.28% examples, 1519768 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:54,725 : INFO : EPOCH 7 - PROGRESS: at 54.07% examples, 1510042 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:38:55,727 : INFO : EPOCH 7 - PROGRESS: at 71.62% examples, 1500725 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:56,730 : INFO : EPOCH 7 - PROGRESS: at 89.08% examples, 1493354 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:57,391 : INFO : EPOCH 7: training on 9895474 raw words (8397573 effective words) took 5.7s, 1480390 effective words/s\n","2023-08-09 18:38:58,408 : INFO : EPOCH 8 - PROGRESS: at 15.88% examples, 1329284 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:38:59,413 : INFO : EPOCH 8 - PROGRESS: at 32.85% examples, 1373688 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:00,416 : INFO : EPOCH 8 - PROGRESS: at 49.11% examples, 1369291 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:01,417 : INFO : EPOCH 8 - PROGRESS: at 63.84% examples, 1336565 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:02,424 : INFO : EPOCH 8 - PROGRESS: at 80.92% examples, 1353996 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:03,428 : INFO : EPOCH 8 - PROGRESS: at 95.14% examples, 1327012 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:03,682 : INFO : EPOCH 8: training on 9895474 raw words (8398371 effective words) took 6.3s, 1337980 effective words/s\n","2023-08-09 18:39:04,700 : INFO : EPOCH 9 - PROGRESS: at 12.83% examples, 1071684 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:05,700 : INFO : EPOCH 9 - PROGRESS: at 31.22% examples, 1306592 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:06,706 : INFO : EPOCH 9 - PROGRESS: at 49.93% examples, 1391597 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:07,710 : INFO : EPOCH 9 - PROGRESS: at 68.18% examples, 1425587 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:39:08,715 : INFO : EPOCH 9 - PROGRESS: at 86.16% examples, 1441235 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:09,439 : INFO : EPOCH 9: training on 9895474 raw words (8396458 effective words) took 5.7s, 1461827 effective words/s\n","2023-08-09 18:39:10,455 : INFO : EPOCH 10 - PROGRESS: at 19.00% examples, 1586473 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:11,457 : INFO : EPOCH 10 - PROGRESS: at 36.18% examples, 1512770 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:12,466 : INFO : EPOCH 10 - PROGRESS: at 54.87% examples, 1526820 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:13,468 : INFO : EPOCH 10 - PROGRESS: at 73.75% examples, 1540809 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:14,475 : INFO : EPOCH 10 - PROGRESS: at 92.83% examples, 1551335 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:14,845 : INFO : EPOCH 10: training on 9895474 raw words (8397781 effective words) took 5.4s, 1556627 effective words/s\n","2023-08-09 18:39:15,856 : INFO : EPOCH 11 - PROGRESS: at 14.96% examples, 1255425 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:39:16,861 : INFO : EPOCH 11 - PROGRESS: at 27.68% examples, 1159003 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:39:17,862 : INFO : EPOCH 11 - PROGRESS: at 36.78% examples, 1027110 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:39:18,889 : INFO : EPOCH 11 - PROGRESS: at 47.50% examples, 988570 words/s, in_qsize 6, out_qsize 3\n","2023-08-09 18:39:19,912 : INFO : EPOCH 11 - PROGRESS: at 62.63% examples, 1040317 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:39:20,913 : INFO : EPOCH 11 - PROGRESS: at 77.19% examples, 1070086 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:21,918 : INFO : EPOCH 11 - PROGRESS: at 95.75% examples, 1138774 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:22,135 : INFO : EPOCH 11: training on 9895474 raw words (8398096 effective words) took 7.3s, 1153780 effective words/s\n","2023-08-09 18:39:23,151 : INFO : EPOCH 12 - PROGRESS: at 16.89% examples, 1410074 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:24,152 : INFO : EPOCH 12 - PROGRESS: at 35.06% examples, 1467649 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:25,157 : INFO : EPOCH 12 - PROGRESS: at 53.87% examples, 1501553 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:26,157 : INFO : EPOCH 12 - PROGRESS: at 67.88% examples, 1421051 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:39:27,161 : INFO : EPOCH 12 - PROGRESS: at 83.74% examples, 1402277 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:28,164 : INFO : EPOCH 12 - PROGRESS: at 99.90% examples, 1394129 words/s, in_qsize 1, out_qsize 1\n","2023-08-09 18:39:28,169 : INFO : EPOCH 12: training on 9895474 raw words (8396617 effective words) took 6.0s, 1394337 effective words/s\n","2023-08-09 18:39:29,182 : INFO : EPOCH 13 - PROGRESS: at 14.96% examples, 1252676 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:30,188 : INFO : EPOCH 13 - PROGRESS: at 32.75% examples, 1368271 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:31,194 : INFO : EPOCH 13 - PROGRESS: at 49.93% examples, 1390220 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:32,197 : INFO : EPOCH 13 - PROGRESS: at 68.48% examples, 1431570 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:33,202 : INFO : EPOCH 13 - PROGRESS: at 86.16% examples, 1440591 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:33,914 : INFO : EPOCH 13: training on 9895474 raw words (8397037 effective words) took 5.7s, 1464387 effective words/s\n","2023-08-09 18:39:34,931 : INFO : EPOCH 14 - PROGRESS: at 16.08% examples, 1340358 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:35,932 : INFO : EPOCH 14 - PROGRESS: at 31.94% examples, 1335536 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:39:36,939 : INFO : EPOCH 14 - PROGRESS: at 48.11% examples, 1339615 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:39:37,940 : INFO : EPOCH 14 - PROGRESS: at 60.72% examples, 1269802 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:38,943 : INFO : EPOCH 14 - PROGRESS: at 77.29% examples, 1293151 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:39,946 : INFO : EPOCH 14 - PROGRESS: at 93.03% examples, 1297728 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:40,337 : INFO : EPOCH 14: training on 9895474 raw words (8397996 effective words) took 6.4s, 1309788 effective words/s\n","2023-08-09 18:39:41,351 : INFO : EPOCH 15 - PROGRESS: at 18.40% examples, 1538316 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:42,360 : INFO : EPOCH 15 - PROGRESS: at 35.26% examples, 1471340 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:43,362 : INFO : EPOCH 15 - PROGRESS: at 50.43% examples, 1404183 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:44,373 : INFO : EPOCH 15 - PROGRESS: at 67.38% examples, 1405623 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:45,378 : INFO : EPOCH 15 - PROGRESS: at 84.64% examples, 1413141 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:46,291 : INFO : EPOCH 15: training on 9895474 raw words (8397170 effective words) took 5.9s, 1412958 effective words/s\n","2023-08-09 18:39:47,301 : INFO : EPOCH 16 - PROGRESS: at 16.08% examples, 1347576 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:48,302 : INFO : EPOCH 16 - PROGRESS: at 32.14% examples, 1346975 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:49,304 : INFO : EPOCH 16 - PROGRESS: at 50.94% examples, 1423090 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:50,309 : INFO : EPOCH 16 - PROGRESS: at 68.88% examples, 1442794 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:51,315 : INFO : EPOCH 16 - PROGRESS: at 87.47% examples, 1464552 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:52,036 : INFO : EPOCH 16: training on 9895474 raw words (8397590 effective words) took 5.7s, 1463904 effective words/s\n","2023-08-09 18:39:53,049 : INFO : EPOCH 17 - PROGRESS: at 16.39% examples, 1372266 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:54,057 : INFO : EPOCH 17 - PROGRESS: at 34.46% examples, 1439703 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:55,062 : INFO : EPOCH 17 - PROGRESS: at 53.36% examples, 1485368 words/s, in_qsize 7, out_qsize 2\n","2023-08-09 18:39:56,063 : INFO : EPOCH 17 - PROGRESS: at 71.22% examples, 1489075 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:57,070 : INFO : EPOCH 17 - PROGRESS: at 89.58% examples, 1498169 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:57,685 : INFO : EPOCH 17: training on 9895474 raw words (8398168 effective words) took 5.6s, 1489746 effective words/s\n","2023-08-09 18:39:58,702 : INFO : EPOCH 18 - PROGRESS: at 16.59% examples, 1385169 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:39:59,715 : INFO : EPOCH 18 - PROGRESS: at 31.22% examples, 1299815 words/s, in_qsize 8, out_qsize 1\n","2023-08-09 18:40:00,720 : INFO : EPOCH 18 - PROGRESS: at 47.39% examples, 1316615 words/s, in_qsize 7, out_qsize 2\n","2023-08-09 18:40:01,723 : INFO : EPOCH 18 - PROGRESS: at 63.74% examples, 1329896 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:02,725 : INFO : EPOCH 18 - PROGRESS: at 80.72% examples, 1348412 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:03,730 : INFO : EPOCH 18 - PROGRESS: at 96.87% examples, 1348838 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:03,945 : INFO : EPOCH 18: training on 9895474 raw words (8397476 effective words) took 6.2s, 1344224 effective words/s\n","2023-08-09 18:40:04,979 : INFO : EPOCH 19 - PROGRESS: at 16.89% examples, 1386753 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:05,983 : INFO : EPOCH 19 - PROGRESS: at 33.05% examples, 1369209 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:06,990 : INFO : EPOCH 19 - PROGRESS: at 49.62% examples, 1373244 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:07,996 : INFO : EPOCH 19 - PROGRESS: at 65.95% examples, 1371146 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:08,997 : INFO : EPOCH 19 - PROGRESS: at 81.72% examples, 1361646 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:10,001 : INFO : EPOCH 19 - PROGRESS: at 95.45% examples, 1326416 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:10,305 : INFO : EPOCH 19: training on 9895474 raw words (8397662 effective words) took 6.3s, 1322866 effective words/s\n","2023-08-09 18:40:11,328 : INFO : EPOCH 20 - PROGRESS: at 13.85% examples, 1150061 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:40:12,330 : INFO : EPOCH 20 - PROGRESS: at 28.39% examples, 1184304 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:13,332 : INFO : EPOCH 20 - PROGRESS: at 44.45% examples, 1238125 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:14,336 : INFO : EPOCH 20 - PROGRESS: at 61.83% examples, 1291696 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:15,341 : INFO : EPOCH 20 - PROGRESS: at 78.00% examples, 1303545 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:16,344 : INFO : EPOCH 20 - PROGRESS: at 94.73% examples, 1320455 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:16,624 : INFO : EPOCH 20: training on 9895474 raw words (8398534 effective words) took 6.3s, 1331754 effective words/s\n","2023-08-09 18:40:17,637 : INFO : EPOCH 21 - PROGRESS: at 16.49% examples, 1380022 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:40:18,643 : INFO : EPOCH 21 - PROGRESS: at 33.15% examples, 1385488 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:19,651 : INFO : EPOCH 21 - PROGRESS: at 50.63% examples, 1408924 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:40:20,653 : INFO : EPOCH 21 - PROGRESS: at 67.78% examples, 1416432 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:21,655 : INFO : EPOCH 21 - PROGRESS: at 84.14% examples, 1407775 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:22,518 : INFO : EPOCH 21: training on 9895474 raw words (8397927 effective words) took 5.9s, 1427484 effective words/s\n","2023-08-09 18:40:23,530 : INFO : EPOCH 22 - PROGRESS: at 17.80% examples, 1492175 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:24,532 : INFO : EPOCH 22 - PROGRESS: at 35.57% examples, 1490855 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:25,534 : INFO : EPOCH 22 - PROGRESS: at 53.97% examples, 1507687 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:26,542 : INFO : EPOCH 22 - PROGRESS: at 72.63% examples, 1519910 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:27,542 : INFO : EPOCH 22 - PROGRESS: at 90.29% examples, 1512721 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:28,170 : INFO : EPOCH 22: training on 9895474 raw words (8397556 effective words) took 5.6s, 1488708 effective words/s\n","2023-08-09 18:40:29,197 : INFO : EPOCH 23 - PROGRESS: at 14.66% examples, 1211771 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:30,198 : INFO : EPOCH 23 - PROGRESS: at 31.53% examples, 1312595 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:31,200 : INFO : EPOCH 23 - PROGRESS: at 48.51% examples, 1349102 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:32,203 : INFO : EPOCH 23 - PROGRESS: at 64.74% examples, 1351874 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:33,204 : INFO : EPOCH 23 - PROGRESS: at 82.03% examples, 1371086 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:34,208 : INFO : EPOCH 23 - PROGRESS: at 97.88% examples, 1363914 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:34,322 : INFO : EPOCH 23: training on 9895474 raw words (8396429 effective words) took 6.1s, 1367430 effective words/s\n","2023-08-09 18:40:35,344 : INFO : EPOCH 24 - PROGRESS: at 12.93% examples, 1083898 words/s, in_qsize 6, out_qsize 0\n","2023-08-09 18:40:36,345 : INFO : EPOCH 24 - PROGRESS: at 28.49% examples, 1194793 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:37,345 : INFO : EPOCH 24 - PROGRESS: at 43.34% examples, 1211989 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:38,348 : INFO : EPOCH 24 - PROGRESS: at 60.41% examples, 1266391 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:39,349 : INFO : EPOCH 24 - PROGRESS: at 76.78% examples, 1287568 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:40,350 : INFO : EPOCH 24 - PROGRESS: at 90.80% examples, 1269389 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:40,925 : INFO : EPOCH 24: training on 9895474 raw words (8397057 effective words) took 6.6s, 1275700 effective words/s\n","2023-08-09 18:40:41,939 : INFO : EPOCH 25 - PROGRESS: at 16.89% examples, 1414050 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:42,947 : INFO : EPOCH 25 - PROGRESS: at 32.04% examples, 1337518 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:40:43,952 : INFO : EPOCH 25 - PROGRESS: at 46.38% examples, 1291331 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:40:44,962 : INFO : EPOCH 25 - PROGRESS: at 63.33% examples, 1321363 words/s, in_qsize 5, out_qsize 2\n","2023-08-09 18:40:45,973 : INFO : EPOCH 25 - PROGRESS: at 77.59% examples, 1293527 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:46,974 : INFO : EPOCH 25 - PROGRESS: at 92.52% examples, 1287107 words/s, in_qsize 8, out_qsize 1\n","2023-08-09 18:40:47,472 : INFO : EPOCH 25: training on 9895474 raw words (8397270 effective words) took 6.5s, 1284879 effective words/s\n","2023-08-09 18:40:48,490 : INFO : EPOCH 26 - PROGRESS: at 16.59% examples, 1383868 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:49,490 : INFO : EPOCH 26 - PROGRESS: at 33.76% examples, 1412403 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:50,498 : INFO : EPOCH 26 - PROGRESS: at 49.73% examples, 1384838 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:51,503 : INFO : EPOCH 26 - PROGRESS: at 66.87% examples, 1397192 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:40:52,510 : INFO : EPOCH 26 - PROGRESS: at 84.04% examples, 1404439 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:53,495 : INFO : EPOCH 26: training on 9895474 raw words (8397479 effective words) took 6.0s, 1397152 effective words/s\n","2023-08-09 18:40:54,507 : INFO : EPOCH 27 - PROGRESS: at 14.86% examples, 1245220 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:55,515 : INFO : EPOCH 27 - PROGRESS: at 30.72% examples, 1283354 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:56,517 : INFO : EPOCH 27 - PROGRESS: at 48.81% examples, 1360868 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:57,521 : INFO : EPOCH 27 - PROGRESS: at 64.34% examples, 1345895 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:40:58,532 : INFO : EPOCH 27 - PROGRESS: at 80.02% examples, 1336697 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:40:59,542 : INFO : EPOCH 27 - PROGRESS: at 91.00% examples, 1266118 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:00,120 : INFO : EPOCH 27: training on 9895474 raw words (8398710 effective words) took 6.6s, 1269716 effective words/s\n","2023-08-09 18:41:01,137 : INFO : EPOCH 28 - PROGRESS: at 16.89% examples, 1410226 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:41:02,141 : INFO : EPOCH 28 - PROGRESS: at 34.46% examples, 1439766 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:03,144 : INFO : EPOCH 28 - PROGRESS: at 52.96% examples, 1475745 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:04,145 : INFO : EPOCH 28 - PROGRESS: at 71.72% examples, 1500739 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:05,147 : INFO : EPOCH 28 - PROGRESS: at 88.98% examples, 1490290 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:05,710 : INFO : EPOCH 28: training on 9895474 raw words (8397393 effective words) took 5.6s, 1505587 effective words/s\n","2023-08-09 18:41:06,732 : INFO : EPOCH 29 - PROGRESS: at 16.99% examples, 1408959 words/s, in_qsize 8, out_qsize 0\n","2023-08-09 18:41:07,764 : INFO : EPOCH 29 - PROGRESS: at 33.65% examples, 1382824 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:08,768 : INFO : EPOCH 29 - PROGRESS: at 49.83% examples, 1372239 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:09,768 : INFO : EPOCH 29 - PROGRESS: at 67.07% examples, 1391514 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:10,774 : INFO : EPOCH 29 - PROGRESS: at 84.44% examples, 1403299 words/s, in_qsize 6, out_qsize 1\n","2023-08-09 18:41:11,748 : INFO : EPOCH 29: training on 9895474 raw words (8397105 effective words) took 6.0s, 1393019 effective words/s\n","2023-08-09 18:41:12,759 : INFO : EPOCH 30 - PROGRESS: at 18.40% examples, 1541780 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:13,760 : INFO : EPOCH 30 - PROGRESS: at 36.99% examples, 1550079 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:14,766 : INFO : EPOCH 30 - PROGRESS: at 55.57% examples, 1550347 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:15,771 : INFO : EPOCH 30 - PROGRESS: at 74.15% examples, 1551024 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:16,773 : INFO : EPOCH 30 - PROGRESS: at 92.52% examples, 1549069 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:17,180 : INFO : EPOCH 30: training on 9895474 raw words (8397526 effective words) took 5.4s, 1548516 effective words/s\n","2023-08-09 18:41:18,192 : INFO : EPOCH 31 - PROGRESS: at 18.10% examples, 1514002 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:19,197 : INFO : EPOCH 31 - PROGRESS: at 35.77% examples, 1495459 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:20,209 : INFO : EPOCH 31 - PROGRESS: at 51.54% examples, 1432449 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:21,215 : INFO : EPOCH 31 - PROGRESS: at 68.28% examples, 1424412 words/s, in_qsize 7, out_qsize 0\n","2023-08-09 18:41:22,216 : INFO : EPOCH 31 - PROGRESS: at 83.54% examples, 1395570 words/s, in_qsize 7, out_qsize 1\n","2023-08-09 18:41:23,131 : INFO : EPOCH 31: training on 9895474 raw words (8396769 effective words) took 5.9s, 1413277 effective words/s\n","2023-08-09 18:41:23,132 : INFO : Word2Vec lifecycle event {'msg': 'training on 316655168 raw words (268719048 effective words) took 194.1s, 1384773 effective words/s', 'datetime': '2023-08-09T18:41:23.132359', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'train'}\n"]},{"name":"stdout","output_type":"stream","text":["CPU times: total: 1min 42s\n","Wall time: 3min 14s\n"]},{"data":{"text/plain":["(268719048, 316655168)"]},"execution_count":17,"metadata":{},"output_type":"execute_result"}],"source":["%%time\n","w2v_model.train(documents, total_examples=len(documents), epochs=W2V_EPOCH)"]},{"cell_type":"code","execution_count":34,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["2023-08-09 18:42:29,668 : INFO : Word2Vec lifecycle event {'fname_or_handle': 'model.w2v', 'separately': 'None', 'sep_limit': 10485760, 'ignore': frozenset(), 'datetime': '2023-08-09T18:42:29.668224', 'gensim': '4.3.1', 'python': '3.10.12 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)]', 'platform': 'Windows-10-10.0.22621-SP0', 'event': 'saving'}\n","2023-08-09 18:42:29,680 : INFO : not storing attribute cum_table\n","2023-08-09 18:42:29,732 : INFO : saved model.w2v\n"]}],"source":["w2v_model.save(WORD2VEC_MODEL)"]},{"cell_type":"code","execution_count":19,"metadata":{"_uuid":"27cc2651c74227115d8bfd8c40e5618048e05edd","execution":{"iopub.execute_input":"2023-08-08T06:42:33.822718Z","iopub.status.busy":"2023-08-08T06:42:33.822234Z","iopub.status.idle":"2023-08-08T06:42:33.985963Z","shell.execute_reply":"2023-08-08T06:42:33.984899Z","shell.execute_reply.started":"2023-08-08T06:42:33.822631Z"},"trusted":true},"outputs":[{"data":{"text/plain":["[('fantast', 0.8520932197570801),\n"," ('good', 0.7700976729393005),\n"," ('fabul', 0.7648777365684509),\n"," ('awesom', 0.7365319132804871),\n"," ('amaz', 0.7003041505813599),\n"," ('fab', 0.695418119430542),\n"," ('excel', 0.6850428581237793),\n"," ('nice', 0.6792731881141663),\n"," ('wonder', 0.6546331644058228),\n"," ('enjoy', 0.644711971282959)]"]},"execution_count":19,"metadata":{},"output_type":"execute_result"}],"source":["w2v_model.wv.most_similar(\"great\")"]},{"cell_type":"markdown","metadata":{"_uuid":"e13563644468037258598637b49373ca96b9b879"},"source":["### Tokenize Text"]},{"cell_type":"code","execution_count":20,"metadata":{"_uuid":"6852bc709a7cd20173cbeeb218505078f8f37c57","execution":{"iopub.execute_input":"2023-08-08T06:42:33.988942Z","iopub.status.busy":"2023-08-08T06:42:33.988151Z","iopub.status.idle":"2023-08-08T06:43:10.332798Z","shell.execute_reply":"2023-08-08T06:43:10.331385Z","shell.execute_reply.started":"2023-08-08T06:42:33.988870Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["Total words 460853\n","CPU times: total: 26.2 s\n","Wall time: 37.2 s\n"]}],"source":["%%time\n","tokenizer = Tokenizer()\n","tokenizer.fit_on_texts(df_train['transformed_tweet'])\n","train_sequences = tokenizer.texts_to_sequences(df_train['transformed_tweet'])\n","test_sequences=tokenizer.texts_to_sequences(df_test['transformed_tweet'])\n","\n","vocab_size = len(tokenizer.word_index) + 1\n","print(\"Total words\", vocab_size)"]},{"cell_type":"code","execution_count":21,"metadata":{},"outputs":[],"source":["import pickle \n","# Save the Tokenizer object\n","with open('tokenizer_embd.pickle', 'wb') as handle:\n","    pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL)"]},{"cell_type":"code","execution_count":22,"metadata":{},"outputs":[{"data":{"text/plain":["[[285, 543, 71, 307, 4235],\n"," [48, 252, 13, 9, 81, 21, 71675],\n"," [162756, 14],\n"," [217, 78, 161, 31, 12456, 751, 4, 67, 132, 2, 118],\n"," [28, 3434, 467, 28, 3434, 3001, 285],\n"," [9349, 25, 354, 1766, 558, 3869, 154],\n"," [98893, 356, 7305, 5, 38, 50, 267, 4333],\n"," [162757,\n","  18,\n","  316,\n","  825,\n","  2931,\n","  270,\n","  201,\n","  409,\n","  22,\n","  236,\n","  426,\n","  54,\n","  5,\n","  1768,\n","  197,\n","  310],\n"," [162758, 383, 148, 74, 695],\n"," [113, 25, 319, 14, 1269],\n"," [2013, 65, 13549, 341, 849, 11, 3839, 715],\n"," [7763, 739, 236, 2362, 7081, 79, 5, 630, 441, 3, 2006],\n"," [162759, 3544, 337, 573, 40, 70, 17, 15446, 998, 9, 81, 21, 162760],\n"," [2453, 3, 27, 73, 100, 7, 100, 3, 6, 32, 125, 732, 594],\n"," [162761, 672, 2434, 34, 152, 4639, 12457, 57, 32, 46, 98894],\n"," [12, 19, 62, 146, 577, 906, 4488, 3886],\n"," [178, 182, 935],\n"," [1190, 7627, 7353, 568, 156, 37, 40],\n"," [18, 926, 588, 378, 84, 4819, 1658, 109],\n"," [2097,\n","  76,\n","  356,\n","  1761,\n","  10260,\n","  9,\n","  66,\n","  141,\n","  121,\n","  3870,\n","  2862,\n","  20,\n","  152,\n","  1051,\n","  464,\n","  723,\n","  2013],\n"," [3287, 130, 945, 377],\n"," [98895, 49, 322, 2, 162762, 2556],\n"," [98896, 725, 32, 808, 532, 104],\n"," [236, 10],\n"," [134, 10415, 10551, 269],\n"," [4, 43, 1473, 236, 772, 3, 2534, 90, 3, 679, 538, 446, 649, 373, 29830],\n"," [30, 8, 104, 44, 8, 180, 24, 50],\n"," [112, 1100, 279, 27, 1144, 318],\n"," [34, 62, 112, 674, 438, 10, 386, 25, 65, 462, 154, 207, 137, 5, 500],\n"," [17548, 49, 1015],\n"," [1111, 162763, 693, 137, 238, 98897, 813, 47448, 7, 104],\n"," [294, 3661, 17, 267, 300, 110, 215, 8, 7509, 8, 50],\n"," [56, 111, 600, 76, 1493, 125, 24, 26, 4, 29, 148, 34, 25],\n"," [259, 1795, 523, 26, 108, 1, 19, 8758, 3138],\n"," [2710, 72, 2025, 906, 7, 38, 6, 1857, 9460, 281, 332, 177, 3777],\n"," [4, 3, 719, 29831, 3404, 374, 6706, 213, 92],\n"," [2285, 347, 7131, 24080, 1191, 194, 147, 380, 227, 43],\n"," [237, 106, 1585, 135, 915],\n"," [41027, 334],\n"," [71676, 55, 220, 2952, 71677, 90, 23, 39, 505, 576, 90, 222],\n"," [162764, 13, 262, 658, 337, 30, 575],\n"," [10552, 9151, 11060, 10, 15, 17, 56, 1169, 517, 539, 172, 1074],\n"," [240, 5016, 5875, 3856, 109, 561, 150, 351, 733, 239, 6, 172],\n"," [56865, 20, 907, 90, 12458, 7],\n"," [98898, 367, 3],\n"," [631, 98899, 46, 12960, 286, 2580, 283, 41],\n"," [171, 165, 976, 395, 2731, 17, 526, 88, 91, 526],\n"," [38, 291, 3435, 4148, 44],\n"," [1324, 142, 46, 4377, 340, 9, 162765, 2001, 21, 1615, 6, 111],\n"," [41028, 1, 411, 211, 2, 4771, 8347, 59],\n"," [162766, 465, 153, 40, 42, 1138, 80, 2198, 29, 122, 1586, 1539, 3],\n"," [5662, 690, 3, 710, 5955, 98900, 352, 1234, 37, 2847],\n"," [837, 1223, 1431, 417, 301, 59],\n"," [71678, 87, 2711],\n"," [4604,\n","  2394,\n","  1600,\n","  14,\n","  74,\n","  30,\n","  1238,\n","  1822,\n","  28,\n","  22,\n","  1986,\n","  25,\n","  561,\n","  9152,\n","  1036,\n","  312,\n","  2813],\n"," [25, 1178, 17549, 545, 37, 34, 98901],\n"," [50, 15, 396, 2, 12014, 813],\n"," [174, 1452, 617, 162767],\n"," [355, 607, 3196, 105, 157, 80],\n"," [13550, 1661, 75, 2],\n"," [162768, 155, 6988],\n"," [7082, 2, 2316, 492, 235, 2082, 1303, 20, 167, 165, 69, 38],\n"," [375, 5955, 6094, 10261, 4554, 17, 712, 9, 987, 21, 24081, 98902],\n"," [614, 3, 20, 18, 1073],\n"," [162769, 14, 172, 110, 12961, 138, 899],\n"," [162770, 283, 177, 274, 6652, 603],\n"," [162771, 675],\n"," [237, 534, 525],\n"," [38, 1462, 217, 161],\n"," [98903, 5369, 659, 151, 68, 68],\n"," [17550, 1309, 49, 2340, 105, 157, 2625, 1482],\n"," [11835, 435, 14, 7, 86, 32, 571, 13, 38, 291, 2, 170],\n"," [445, 697, 473, 139, 1577, 348, 648],\n"," [1169, 2220, 7923, 271, 61, 143, 7456, 2322],\n"," [419, 153, 129, 288, 79, 13551, 290, 38, 59],\n"," [162772, 24, 11420, 66, 2908, 40, 144, 238],\n"," [1, 349, 5494, 11610, 1, 26, 626],\n"," [224, 5554, 4128],\n"," [19699, 1206, 284, 157, 2182, 1, 92],\n"," [71679, 75, 165, 323, 323],\n"," [47449, 71, 303],\n"," [362, 212],\n"," [162773, 55],\n"," [343, 325, 427],\n"," [162774, 372, 172, 97, 45, 31, 465],\n"," [3242, 1397, 148, 576, 53, 14220, 96, 53, 1502, 348, 31, 46, 205],\n"," [500, 178, 968, 1658, 4129, 109, 98904, 2092],\n"," [13, 68, 661, 186, 108, 403, 1884, 343],\n"," [198, 203, 41029, 11061, 557],\n"," [162775, 167, 1575, 98905, 971, 84, 264, 18, 71680, 163, 30, 44],\n"," [56866, 664, 329, 94, 162776, 7404, 59, 130, 166, 329, 31],\n"," [36201,\n","  25,\n","  964,\n","  1304,\n","  1067,\n","  88,\n","  5682,\n","  13851,\n","  162777,\n","  27,\n","  522,\n","  999,\n","  1067,\n","  121],\n"," [1712, 82, 61, 22, 156, 345, 39, 23, 1705, 22748, 637],\n"," [98906, 37, 14, 20, 49],\n"," [2830, 588, 350, 3, 777, 9574, 588, 358],\n"," [9, 81, 21, 166, 455, 25, 4341, 33, 552, 13],\n"," [6792, 1262],\n"," [98907,\n","  300,\n","  28,\n","  12228,\n","  28,\n","  195,\n","  6421,\n","  162778,\n","  162779,\n","  27,\n","  10877,\n","  536,\n","  36202,\n","  3],\n"," [58, 1, 74, 1274, 703, 52, 703, 6185, 56867, 26, 11, 48, 3927],\n"," [55, 249, 1186, 20579, 1587, 1103, 71681],\n"," [36203, 14, 41, 190, 178],\n"," [159, 134, 3, 15447, 104],\n"," [7457, 106, 434, 371, 988, 4004, 2678, 444, 1210, 439, 162, 11, 253, 814],\n"," [259, 76, 31, 74, 4739, 3713, 5],\n"," [9816, 32, 897],\n"," [98908, 771, 894, 162, 1191, 137, 541, 9, 1503, 2261, 162780, 98908],\n"," [98909, 32605, 245, 3392, 73, 41, 68, 47, 47450, 155],\n"," [84, 10105, 4569, 4073, 593, 4307],\n"," [132, 387, 54],\n"," [237, 146, 522, 52, 53, 114, 1673, 260],\n"," [7194, 53, 30, 371, 988, 233, 98910],\n"," [162781, 25, 5244, 1256, 109],\n"," [303, 846, 4],\n"," [71682,\n","  256,\n","  38,\n","  3752,\n","  1807,\n","  4656,\n","  1360,\n","  2002,\n","  341,\n","  8055,\n","  1112,\n","  3382,\n","  7764,\n","  2231,\n","  12,\n","  286,\n","  120,\n","  17,\n","  3],\n"," [4489, 41, 39, 55],\n"," [18, 171, 17, 718, 4604, 150, 71],\n"," [848, 2162, 2183, 227, 30, 1390, 356, 2932, 2100, 440, 240, 151, 6, 51, 28],\n"," [12015, 34, 11],\n"," [162782, 57, 7, 155, 378, 826, 85, 52, 20, 2080, 726, 4163, 6056],\n"," [2232, 15924, 284],\n"," [7, 3692, 6561],\n"," [1472],\n"," [71683, 6140, 349, 670, 815],\n"," [26, 25, 32],\n"," [1167, 71, 71, 4, 43, 640],\n"," [18, 714, 24, 791, 71684],\n"," [20580, 17, 53, 411, 429, 34, 4393, 10106],\n"," [18213, 49, 338, 98911, 190, 794],\n"," [1, 1624, 462, 204, 127],\n"," [71685, 113, 69, 114, 1221, 3002, 40, 3421, 677],\n"," [585, 259, 78, 10, 257, 3, 95, 25, 40, 257, 65, 275, 10, 121],\n"," [259, 18, 1, 19, 74, 30, 22749, 10, 227, 2, 1, 36, 18, 1, 78, 363, 2701],\n"," [27516, 565, 5, 11, 317],\n"," [253, 7132, 1385, 366, 421, 54],\n"," [8, 91, 145, 15925, 115, 334, 334, 8, 3662],\n"," [162783, 60, 1407],\n"," [71686, 9, 81, 21, 162784, 1659],\n"," [41030, 12016, 1449, 20],\n"," [3464, 40, 70, 600, 937, 25],\n"," [1257, 101, 65, 72, 1380, 167, 466, 305, 101, 146, 38, 70],\n"," [162785, 231, 60, 29, 2, 30],\n"," [884, 1029, 11611, 40, 49, 2, 271, 47451],\n"," [2933, 469, 107, 53, 1666, 302, 247, 39, 9153],\n"," [98912, 1235, 2417, 423, 16421, 1808, 28],\n"," [12962, 2446, 93, 503, 507, 2953, 145, 13, 32, 56],\n"," [171, 115, 274, 550, 3472, 5370, 368, 1763, 82],\n"," [68, 28, 6512],\n"," [98913, 51, 102, 560, 223, 188],\n"," [5734, 508, 105, 368, 6387],\n"," [162786, 486, 47452, 325, 1729, 512, 119, 1403, 227, 2262],\n"," [162787, 353, 654, 41, 543, 363],\n"," [71687, 130, 223, 279, 712, 67, 154, 11612, 380],\n"," [1823, 41, 1988, 864, 226, 1541],\n"," [467, 263],\n"," [4697, 474, 235, 16, 155, 119],\n"," [36204, 4216, 446, 24082, 77],\n"," [829, 110, 91, 874, 1, 91, 874],\n"," [56, 347, 3, 7, 347],\n"," [162788, 115, 876, 11062, 1110, 7248, 401, 1930, 1644, 20581, 401],\n"," [2960, 165, 16, 25, 185, 204, 38, 100],\n"," [32606, 75, 469],\n"," [63, 11, 10262, 9, 324, 21, 121, 162789],\n"," [162790, 88, 206, 889, 142, 6342, 25, 76, 192, 125],\n"," [45, 19700, 10553, 3173, 540, 4910],\n"," [98914, 716, 430, 451, 686, 74, 53, 210, 424, 2, 1689],\n"," [285, 31, 159, 4236, 4588, 187, 811, 991, 20, 157, 359],\n"," [162791, 163, 7, 6, 7, 1140, 7, 104, 162792, 103, 461, 303],\n"," [9061, 9061, 48, 1608, 697, 2679, 337, 3938, 28, 186],\n"," [162793, 2575, 80, 1067, 162794, 5, 3, 150, 72, 245, 1, 2205],\n"," [3149, 232, 288, 123, 162795, 37, 682, 352],\n"," [27, 1623, 71688, 162796, 41031, 162797, 56868, 9, 81, 21, 3939],\n"," [25, 9952, 63, 16422, 18214, 47453, 204, 115, 816, 16, 6, 40, 11063],\n"," [12, 7249, 735, 90, 157, 136, 10],\n"," [162798, 14, 5, 26, 210, 32607, 3669],\n"," [18909,\n","  7,\n","  14604,\n","  7,\n","  188,\n","  16,\n","  223,\n","  29,\n","  16,\n","  200,\n","  28,\n","  627,\n","  16,\n","  1971,\n","  572,\n","  29,\n","  16,\n","  2,\n","  137],\n"," [9, 81, 21, 162799, 366, 890, 441, 5605, 2614],\n"," [162800, 1525],\n"," [490, 188, 3150, 9, 1503, 315, 162801],\n"," [29832, 15, 959, 5448, 41, 212, 2020, 79, 1638, 6, 71, 162802],\n"," [3778, 2, 2184, 2429, 153, 576, 4570, 1242, 123, 1892, 2429, 591],\n"," [6, 91, 1834, 7510, 888, 3252, 666, 27, 358, 960, 284],\n"," [1243, 8593, 87, 737, 958, 66, 1003, 118, 61, 737],\n"," [21640, 13255, 4459, 14, 2680],\n"," [58, 16, 559, 106, 158, 15448, 786, 1854, 1734, 5735, 71689, 73, 84],\n"," [4, 43, 867, 29, 144, 3],\n"," [902, 5, 2712, 2, 54, 1830, 202],\n"," [673, 109, 514, 2793, 368, 281],\n"," [5064, 63, 565, 3090, 1264, 3486, 4342, 2985, 4, 20, 6562],\n"," [555, 3574, 1305, 57, 51],\n"," [71690, 924, 73, 1, 415, 319, 1688, 174, 280],\n"," [120, 78, 44, 3816, 3816, 1043, 199, 12705, 3297],\n"," [10554, 1633, 38, 50, 18, 94, 3805, 1607, 7, 1425, 57, 3914],\n"," [30, 315, 1073, 85],\n"," [9, 81, 21, 98915, 103, 4718],\n"," [5160, 236],\n"," [42, 3, 1317, 334, 123, 6307, 346, 232, 67, 51],\n"," [180, 370, 818, 232, 26, 576, 2395, 17, 59, 495, 10],\n"," [71691, 148, 74, 64, 170, 259, 316, 54, 91, 3593],\n"," [529, 133, 542, 3024, 814, 542],\n"," [148, 48, 181, 42, 28, 397],\n"," [194, 439, 36, 10, 386, 69, 258, 105, 2, 355, 386],\n"," [98916,\n","  1115,\n","  51,\n","  2813,\n","  532,\n","  110,\n","  28,\n","  140,\n","  327,\n","  166,\n","  1514,\n","  111,\n","  903,\n","  6257,\n","  8,\n","  98916,\n","  8],\n"," [98917, 192],\n"," [47454, 113, 120, 1040],\n"," [56869, 49, 183, 187, 66, 549, 54],\n"," [56870, 9, 81, 21, 5065, 9061, 220, 157, 78],\n"," [7, 3, 216, 19, 5, 10, 25, 236],\n"," [100, 43, 152, 298, 259, 443, 50],\n"," [56, 831, 51, 112, 202],\n"," [24083, 27517, 1643, 29, 162803],\n"," [131, 224, 3, 3187, 4460, 76, 294, 250],\n"," [162804, 372, 136, 36, 444, 633, 179],\n"," [212, 500, 1, 299, 5495, 70],\n"," [325, 1, 90, 579, 86, 116],\n"," [37, 47, 363, 71],\n"," [401, 1910, 72, 282, 47, 36, 155, 5088, 331, 213, 2093, 36],\n"," [47455, 109, 23, 5112, 96, 2, 23, 2380, 319],\n"," [1340, 4149, 684, 57, 46, 57, 158, 603],\n"," [3988, 74, 1, 48, 10, 46, 3, 10, 140, 44, 179, 121, 913, 5113],\n"," [46, 11, 166, 62, 42, 28, 4, 11, 123, 130, 1752, 162, 2681, 98918, 26, 26, 4],\n"," [53, 7844, 383, 3473, 1189],\n"," [162805, 267, 174, 8428, 79, 1539],\n"," [164, 27, 1088, 11064, 115, 296, 1144, 3, 289, 532, 1674, 233, 3670],\n"," [235, 1517, 760, 33, 35, 214],\n"," [108, 71692],\n"," [119, 539, 134, 807, 48, 305, 1052, 195, 3, 80],\n"," [56, 190, 6308, 9, 66, 141, 162806, 273, 6308, 2635, 667, 105],\n"," [50, 3211, 1771, 105, 136],\n"," [43, 2220, 46, 3, 41],\n"," [47456, 246, 7, 162807],\n"," [20582, 1027, 388, 1091, 176, 162],\n"," [749, 207, 30, 83, 1330, 1746, 23, 597],\n"," [56871, 414, 1531, 2787, 1531, 1146, 16423, 659, 624, 162808, 1195],\n"," [71693, 124, 28, 3434, 258, 424, 63, 219, 1, 204, 3575, 3],\n"," [18215, 30, 2447, 1843, 43],\n"," [510,\n","  208,\n","  102,\n","  93,\n","  314,\n","  44,\n","  13,\n","  12,\n","  254,\n","  61,\n","  93,\n","  411,\n","  1247,\n","  28,\n","  978,\n","  2,\n","  222,\n","  1052,\n","  2298],\n"," [32, 45],\n"," [162809, 95, 6, 2150, 579, 32, 50, 15, 1018, 4, 145, 266],\n"," [30, 1236, 365, 775, 44, 10700],\n"," [3054, 162810, 813, 2862, 2, 1044],\n"," [8594, 47457, 50, 192, 1417],\n"," [13552, 20, 716, 940, 1174, 360, 29, 29, 29, 29, 29],\n"," [7984,\n","  32,\n","  98919,\n","  858,\n","  1280,\n","  46,\n","  130,\n","  4,\n","  5,\n","  110,\n","  32,\n","  125,\n","  27518,\n","  808,\n","  85,\n","  4200],\n"," [36205, 622, 2725, 28, 31, 1018, 1012, 33, 852],\n"," [2177, 2968, 227, 252, 14605, 56872],\n"," [12963, 43, 1807, 740, 151, 6, 4, 464, 94],\n"," [24, 1616, 10],\n"," [2446, 31, 98],\n"," [6, 41, 117, 2],\n"," [162811, 28, 2588],\n"," [162812,\n","  82,\n","  2593,\n","  2064,\n","  91,\n","  3628,\n","  1291,\n","  218,\n","  1156,\n","  346,\n","  1110,\n","  4130,\n","  247,\n","  66,\n","  273,\n","  2,\n","  2788],\n"," [822, 3151, 1507, 2070, 2128, 80, 318, 1106, 64, 36, 9247, 7],\n"," [86, 1358, 622],\n"," [9, 66, 141, 162813, 98920, 14, 2711],\n"," [748, 17, 1266, 190, 178, 261, 58, 32],\n"," [30, 403, 943, 17551, 128],\n"," [162814, 8759, 4150, 2185, 7133, 3793, 14, 136, 1248, 7, 136],\n"," [162815, 14, 4164, 7, 778, 203, 159, 2, 140, 494, 27519],\n"," [2583, 161],\n"," [123, 1753, 5876, 11613],\n"," [1, 865, 633, 8348, 24084, 598, 3260],\n"," [134, 347, 4217, 4476, 897, 27, 27, 1133],\n"," [24085, 64, 281, 96, 69, 38, 6186, 64],\n"," [5, 210, 326, 8],\n"," [536, 2525, 6141, 6513],\n"," [781, 35, 851, 5466, 6095, 72, 781],\n"," [2, 59, 818, 707, 1830],\n"," [48, 25, 791],\n"," [2915,\n","  19,\n","  13852,\n","  251,\n","  2577,\n","  174,\n","  590,\n","  794,\n","  3615,\n","  71694,\n","  59,\n","  2561,\n","  213,\n","  31,\n","  2667],\n"," [24086, 4, 43],\n"," [1855, 1090, 513, 76, 643, 76, 5, 60, 304, 17],\n"," [4277, 1575, 88, 367, 3, 60, 521, 36, 16, 97],\n"," [990, 12, 12706, 3616, 143, 1032],\n"," [162816, 311, 96, 276],\n"," [21641, 469, 338, 831, 328, 1741, 146],\n"," [29833, 75, 4, 241],\n"," [198, 532, 25609, 254, 187, 25, 2551, 7354, 30, 109, 54, 33],\n"," [29834,\n","  6,\n","  53,\n","  2,\n","  2037,\n","  3,\n","  91,\n","  52,\n","  169,\n","  162817,\n","  88,\n","  39,\n","  9,\n","  11421,\n","  21,\n","  162818,\n","  229,\n","  162819,\n","  947],\n"," [338, 10, 392, 371, 2673, 239, 3173, 11, 30, 3504],\n"," [7250, 4, 28, 101, 289, 43, 2916, 3753, 9461, 5, 210],\n"," [733, 376, 19, 849, 3840, 268, 3, 220, 896, 998, 29, 34],\n"," [11, 161, 252, 162820],\n"," [162821, 154, 15926, 1741, 131, 19701, 36, 350, 22750, 63, 2367],\n"," [9,\n","  81,\n","  21,\n","  4063,\n","  848,\n","  1122,\n","  162822,\n","  1312,\n","  162823,\n","  4605,\n","  27,\n","  162824,\n","  144,\n","  184,\n","  198],\n"," [98921, 45, 76, 497],\n"," [162825, 159, 56873, 1783, 11, 440, 8679, 96, 2, 58, 182, 34, 118],\n"," [38, 1233, 5528, 1741, 2479, 18, 122, 213, 17, 331, 11],\n"," [354],\n"," [98922, 163, 33, 54, 1191],\n"," [46, 158],\n"," [2803, 18910, 162826],\n"," [162827, 283, 3084],\n"," [96, 18, 2, 74, 18, 48, 150],\n"," [98923, 304, 72, 350, 588, 280, 552, 122],\n"," [225, 1, 74, 12, 697, 8680, 43],\n"," [18, 264],\n"," [162828, 3915, 6, 56874, 3915],\n"," [846, 587, 217, 94, 4218, 2547, 217, 115, 1282, 941],\n"," [36206, 283],\n"," [480, 19, 66, 339, 811, 368, 132, 3629, 10, 98924, 122, 413],\n"," [162829, 14, 122, 1141],\n"," [137, 1742, 168, 7083, 705, 4719, 746, 1237, 7, 3],\n"," [12, 36, 223, 745, 3692, 63, 399, 9248, 83, 39, 44, 1865, 2548, 383, 438],\n"," [41032, 88, 215, 716, 215, 3035, 32, 5371],\n"," [2674, 43, 174, 3329, 564, 148, 56875, 284, 492, 12, 5269, 12707],\n"," [98925, 305],\n"," [12964, 696],\n"," [27520, 11065],\n"," [56876, 820, 1612, 4, 1031, 3701, 1127, 95, 25, 1, 19, 91, 105, 105, 121],\n"," [162830, 508, 200, 768, 16, 38, 291, 23, 375, 16, 65],\n"," [202, 171, 122],\n"," [17, 150, 165, 1129, 59, 11, 6096, 1130],\n"," [167, 236],\n"," [36207, 922, 17, 95, 23, 17, 98926, 95, 234, 2020],\n"," [98927, 186, 283, 1050, 414, 147, 2232, 621],\n"," [1474, 1234],\n"," [36208, 49, 1406, 33, 183, 1406, 213, 165, 125, 33, 128, 130, 125, 243],\n"," [162831, 4, 43],\n"," [17552, 2038, 332, 4625, 975],\n"," [98928, 165, 5245, 4657, 1263, 307, 7, 9, 81, 21, 162832],\n"," [30, 10878, 855, 1373, 7032],\n"," [9, 81, 21, 36209, 25610, 1736, 56877, 2381, 19702, 1192],\n"," [2, 1824],\n"," [3726, 102, 3039, 27521, 90, 2185, 1658],\n"," [159, 299, 69, 2, 420, 176, 3554, 604, 1142],\n"," [56878, 699, 71695, 540, 188, 96, 82, 340],\n"," [3130, 98, 73, 65, 316, 292, 27, 30, 1835, 316, 2619, 5133, 104, 150],\n"," [7306, 87, 393, 261],\n"," [162833, 367, 1025, 493, 13],\n"," [162834, 13853, 989, 2232, 35, 9154, 285, 18, 39, 693, 3414, 49],\n"," [26, 18, 1, 1774, 96, 17],\n"," [164, 7, 145, 3436, 392, 13, 119, 98929],\n"," [473, 83, 48, 66, 62, 18, 39, 355, 196, 70, 2, 48, 5, 3116],\n"," [12, 36, 3714, 3714, 155],\n"," [55, 732, 124, 56, 126, 16, 16, 18, 16, 286, 540, 369, 88, 173],\n"," [47458, 20, 34, 3, 197, 6989],\n"," [56879, 7, 136, 98930, 902, 14, 538],\n"," [9, 309, 21, 98931, 102, 894, 228],\n"," [162835, 2697, 2122, 64, 2697, 205, 47459, 3940],\n"," [98932,\n","  47460,\n","  6142,\n","  753,\n","  1295,\n","  31,\n","  46,\n","  369,\n","  18911,\n","  1327,\n","  1074,\n","  293,\n","  213,\n","  47461],\n"," [9155],\n"," [47462, 428, 223, 1874],\n"," [5, 117, 108, 36, 166, 3174],\n"," [162836, 100, 306, 346, 98933],\n"," [162837, 364, 64, 550, 67],\n"," [56880,\n","  10555,\n","  221,\n","  73,\n","  643,\n","  49,\n","  486,\n","  16,\n","  54,\n","  16,\n","  1031,\n","  6743,\n","  2363,\n","  630,\n","  1031,\n","  6225,\n","  239,\n","  172],\n"," [251, 1612, 36210, 19703, 1267, 239, 48, 372],\n"," [9, 66, 141, 162838, 20, 69, 1194],\n"," [41033, 162839, 259, 71696, 10263, 8595, 83, 160, 31, 126, 162840],\n"," [9676, 195, 22751, 1368, 682],\n"," [98934, 60],\n"," [27522, 56, 190, 1016, 3197],\n"," [385, 2265, 64, 4792, 331, 4589, 491, 119, 381, 1613, 293, 265, 4254, 3],\n"," [171, 108, 350, 2083, 1512, 617, 5089, 287, 11422],\n"," [162841, 68, 45, 226, 3897, 5841],\n"," [42, 3, 56881, 11, 2, 19, 13854, 5],\n"," [931, 2549, 89, 636],\n"," [53, 499, 349, 41, 59],\n"," [1920, 6744, 82, 42, 28, 46, 102, 1083, 82, 7, 317],\n"," [56882, 95, 1541],\n"," [63, 56, 190, 3576, 162842, 9, 324, 21, 121, 85, 16],\n"," [21642, 37, 60, 72, 47, 2273, 390, 39, 59, 10879, 18],\n"," [131, 162843, 962, 646],\n"," [24, 58, 5771, 9677, 5606, 4277, 1154, 5191, 4164, 41034, 50],\n"," [257, 118, 146, 305, 263, 140, 56, 1049],\n"," [286, 898, 250],\n"," [2169, 16955, 8946, 61],\n"," [471, 41035, 186],\n"," [112, 912, 108, 23, 884, 225, 47, 93, 10701, 737, 146],\n"," [136, 72, 35, 479, 2480, 102, 32, 125, 94, 162844],\n"," [205, 710, 4277, 19, 196],\n"," [47463, 17, 896, 9, 562, 501, 478],\n"," [200, 57, 3100, 447, 429, 27523],\n"," [162845, 391, 242, 307, 1068, 118],\n"," [47464, 46, 51, 694, 157, 32, 474, 5467, 6471, 13, 41, 46, 7307],\n"," [72, 32608],\n"," [404, 465, 202],\n"," [4523, 90, 145, 18, 2, 177, 317],\n"," [32609, 6, 23],\n"," [1034, 3383, 11226, 1777, 80],\n"," [162846, 75, 310, 3384, 6143],\n"," [4087, 22, 33, 3198, 628, 1318, 138],\n"," [1276, 180, 206, 21643, 4698, 4640, 565, 91, 3, 4294, 367, 1391, 165, 16],\n"," [71697, 618, 618],\n"," [12017, 11, 61, 2279, 96, 425],\n"," [37, 8126, 6, 328, 128, 77, 126, 18, 1306, 892, 92],\n"," [967, 4165, 11423, 160, 1061, 143],\n"," [162847, 180, 1756, 301, 179, 16, 1],\n"," [162848, 20, 96, 45, 56, 190, 2101, 2101],\n"," [196, 16, 63, 541, 47465, 16],\n"," [5581, 4148, 117, 333, 138],\n"," [12, 115, 207, 36, 5, 65, 304, 57, 808, 49, 5, 3, 56],\n"," [496, 959],\n"," [24, 50, 1047, 62, 41],\n"," [3682, 158, 2, 643, 643, 9350, 35, 201, 151, 1675],\n"," [56883, 6097, 42, 704, 13, 111, 98935, 843, 704, 147, 402],\n"," [98936, 20, 253, 190],\n"," [673, 109, 514, 47],\n"," [36211, 37, 2830, 117],\n"," [1, 48],\n"," [1661, 2884, 225, 41, 271, 61, 98937],\n"," [650, 5090, 5090, 734, 26, 20, 59],\n"," [98938, 336, 14, 40, 842],\n"," [8126, 172, 420, 27, 708, 120, 71698, 27, 14606, 2570],\n"," [98939, 430, 186, 1050, 2761, 184, 98940, 414, 3, 9, 56884, 21, 57, 7, 2386],\n"," [1177, 133, 333, 169, 1587, 529, 204, 379, 257, 1242, 6343],\n"," [33, 31, 2, 36212],\n"," [1330, 10, 5],\n"," [8, 1744, 1780, 67, 7765, 265, 8, 215, 8, 284, 28, 8],\n"," [45, 33, 40, 730, 717],\n"," [65, 2645, 757],\n"," [162849, 55],\n"," [345, 8268, 1270, 33, 799, 266],\n"," [8127, 79, 1023, 477, 1402, 72, 290, 582, 122, 31, 54, 352],\n"," [98941, 6744, 2, 3806, 11],\n"," [233, 62, 3356, 116, 613, 549, 24, 242, 207, 162, 1062, 907],\n"," [2142, 12, 19, 8518, 1447, 4537, 32, 161, 163, 11, 169, 183, 285],\n"," [23, 2885, 265, 979, 10880, 33, 173, 8519, 9, 309, 21, 14607, 9249],\n"," [162850, 9462, 42, 3, 637, 3, 161],\n"," [36, 865, 5, 3],\n"," [19704, 294, 2422, 803, 543],\n"," [487, 545, 23, 44, 39, 218, 280, 13551, 80, 412, 11614],\n"," [24087, 20, 54, 37, 34, 2, 17, 44],\n"," [4219,\n","  162851,\n","  162852,\n","  934,\n","  870,\n","  6344,\n","  439,\n","  1911,\n","  18216,\n","  1727,\n","  1727,\n","  1727,\n","  71699,\n","  71699,\n","  71699,\n","  71700,\n","  25611,\n","  179,\n","  5192,\n","  18217],\n"," [98942],\n"," [98943, 117],\n"," [98944, 71701, 14221, 16956, 1, 109, 5, 3941, 644, 152, 63],\n"," [1769, 53, 53, 124, 53, 948, 329],\n"," [2662, 968, 2662, 968, 20, 17, 177, 17, 39],\n"," [162853, 7134, 88, 68, 23, 206, 4, 11, 62, 546, 132, 1858, 13],\n"," [990, 4, 405, 296, 5193, 683, 16424, 82, 603, 380, 19, 162854],\n"," [2368, 55, 25612, 26, 46, 533, 46, 79],\n"," [69, 457, 42, 3, 105, 157, 1092, 5772, 972, 2143, 448],\n"," [71702, 3737, 737, 256, 4772, 59, 2986, 3942, 2064],\n"," [98945, 11227, 95, 63, 22, 116, 9351, 327],\n"," [162855, 1026, 162856, 232, 2100, 6, 57, 162857, 60],\n"," [98946,\n","  1717,\n","  1160,\n","  2755,\n","  6,\n","  32,\n","  897,\n","  1388,\n","  176,\n","  16,\n","  3817,\n","  563,\n","  4,\n","  1630,\n","  1467],\n"," [36213, 127, 4658, 4658, 4, 402, 184, 2274, 124],\n"," [27524, 37, 136, 117, 225, 159, 132, 500, 34],\n"," [1, 114, 286, 36214, 187, 639, 712, 162858, 1975, 818, 42, 52, 1034, 7458],\n"," [43, 1, 84, 132, 204, 10, 4, 231, 107, 317],\n"," [2280, 3577, 231, 1036, 11836, 33, 573, 747, 308, 1780],\n"," [162859, 88, 536, 8, 1473, 8, 2228, 2228],\n"," [9, 81, 21, 455, 1320, 56885, 36215],\n"," [22752, 486, 62, 12, 686, 10],\n"," [743, 23, 15449, 194, 347, 3],\n"," [1330, 86, 226, 5736, 174, 11228, 174, 162860],\n"," [5, 1898, 242, 2, 1825, 742, 201, 3, 2, 1171, 44, 233, 156, 59, 5],\n"," [56, 347, 3],\n"," [285, 382, 809, 1, 329, 711, 82, 492, 493],\n"," [191, 2485, 84, 148, 34, 67],\n"," [26, 467, 47, 271],\n"," [106, 236, 480, 105, 202],\n"," [71703, 53],\n"," [89, 123, 36, 45, 127, 527, 101, 289, 903],\n"," [5983, 60, 1563, 112, 21644, 98, 448, 1104, 3],\n"," [646, 854, 1693],\n"," [98947, 16, 2492, 918, 1729, 3027, 19705, 162861],\n"," [24088, 2017, 29835],\n"," [3437, 62, 41, 154, 94, 41],\n"," [98948, 124, 2854, 2, 661, 20, 57, 914],\n"," [46, 158, 788],\n"," [71704, 1, 25, 2, 17, 18, 138],\n"," [98949, 187, 417, 132, 174, 3474, 340, 10264, 2346, 10556],\n"," [98950, 1866, 925, 154, 1, 12708, 269, 253, 1283, 1381, 1321],\n"," [25613, 23, 1985, 6057, 1129, 6941, 3436, 5984, 24089, 580, 1205, 1024, 5134],\n"," [18218, 664, 971, 115, 196, 18, 185, 49, 228, 404, 7, 160, 1859],\n"," [16,\n","  1852,\n","  8,\n","  12965,\n","  920,\n","  8,\n","  8,\n","  136,\n","  8,\n","  13,\n","  2923,\n","  242,\n","  114,\n","  35,\n","  920,\n","  2,\n","  3727,\n","  124,\n","  136],\n"," [162862, 114, 123],\n"," [42, 52, 651],\n"," [164, 35, 642, 38, 46, 592, 2726, 1840],\n"," [1392, 235, 15450, 1399, 33, 71, 1096, 116, 2059, 71, 17, 423, 18912],\n"," [3101, 80, 128, 192, 378, 48, 6, 436, 6, 15],\n"," [3131, 79, 5, 1, 32, 3131],\n"," [176, 2526, 394, 162863, 111, 17, 150],\n"," [1335, 12, 552, 1573, 4524, 1709, 410, 258, 162864],\n"," [1075, 805, 27, 19, 138],\n"," [2, 140, 3212],\n"," [162865, 36216, 3728, 162866, 71705, 117, 73, 917, 11837, 1417, 4641, 162867],\n"," [98951, 80, 1958, 1958, 9, 229, 15014, 21],\n"," [6514, 336, 162868, 1612, 1795, 179, 1867, 13],\n"," [71706, 90, 14, 15, 1207, 18913, 4, 449],\n"," [56886, 4, 241, 338, 41036, 633, 199, 27, 199],\n"," [5161, 7, 82],\n"," [98952, 2306, 32, 4183, 1185, 9, 66, 141, 162869, 38, 425, 41, 603],\n"," [1, 461, 1390, 3156, 33, 133, 608],\n"," [36217, 5842, 64, 2221, 390],\n"," [430, 1318, 3040, 98, 1585, 280, 541, 179],\n"," [446, 54, 14, 1860, 171],\n"," [98953, 69, 34, 4, 241, 4571],\n"," [585, 130, 29836, 119, 11838, 98, 404, 465, 40, 387],\n"," [11, 1162, 35, 223, 340],\n"," [577, 42, 1888, 5372],\n"," [10, 335, 190, 23, 249, 10],\n"," [17553, 35, 5916, 29837],\n"," [29838, 31, 47, 173],\n"," [72, 47466, 332, 47467, 975, 96, 1, 306],\n"," [71707, 812],\n"," [71708, 34, 154, 2, 17, 63, 8, 351, 840, 56887, 8],\n"," [47468, 25, 712, 639, 22, 163, 88],\n"," [27525, 143, 508, 1115, 552, 8855, 248, 52],\n"," [5091, 1029, 88, 192, 323],\n"," [1617, 129, 142, 2, 41, 7, 1455, 92, 1617, 317],\n"," [87, 107, 1161, 1757, 174, 297, 16425, 1342, 8681, 1729],\n"," [202, 231, 2896],\n"," [47469, 1867, 804, 377, 317],\n"," [21645, 6],\n"," [37, 208, 2343, 661, 5843, 10, 32, 1634],\n"," [3605, 7135, 7135, 2474, 2354, 3606, 9, 66, 141, 1056, 235, 544, 1666, 163],\n"," [29839, 2540, 294, 20, 22, 1662, 301, 13, 281],\n"," [184, 533, 166, 1097, 27, 2486, 609, 25614],\n"," [36218, 1473, 1865, 113, 173, 1414, 9, 66, 141, 162870],\n"," [610, 23, 2040, 27, 404, 240, 400, 16426, 33, 122, 551],\n"," [432, 7, 40, 1449, 279, 1989, 18, 1674],\n"," [41037, 20, 1147, 166, 555, 2021, 83, 22753, 63, 8128, 205, 711, 390],\n"," [2, 140, 5, 22, 128, 112, 185, 585, 108, 48],\n"," [65, 880, 7698, 213, 253, 201, 167, 5631],\n"," [30, 396, 56888, 450],\n"," [18, 629, 58, 530, 97, 1545, 2382],\n"," [1, 36, 404, 465, 1271, 27, 482, 28],\n"," [4, 43, 41, 7, 23, 226],\n"," [82,\n","  8,\n","  685,\n","  2,\n","  8,\n","  1635,\n","  195,\n","  3671,\n","  26,\n","  58,\n","  904,\n","  1232,\n","  9,\n","  309,\n","  21,\n","  162871,\n","  341],\n"," [1714, 269, 159, 89, 636, 267, 118, 67],\n"," [47, 320, 159, 1664, 123, 1202, 585, 594, 354, 528, 1115, 552],\n"," [1347, 79, 55, 41, 66, 846, 96, 142, 9, 66, 141, 162872],\n"," [162873, 183, 273],\n"," [98954, 13, 88, 88, 45, 107, 200, 57, 195, 41],\n"," [98955, 466, 554],\n"," [29840, 128, 3, 516, 704, 7628, 39, 19, 5, 227],\n"," [71709, 1006, 436, 312, 30],\n"," [162874, 113, 24, 70, 214, 57, 289, 9, 952],\n"," [190, 227, 38, 6, 183, 156, 192],\n"," [36219, 12018, 71710, 43],\n"," [162875],\n"," [30, 35, 642, 1066, 164, 938, 184, 35, 255],\n"," [12019, 836, 312, 32610, 379, 128],\n"," [206, 506, 670, 1664, 1885, 11229],\n"," [108, 239],\n"," [18, 5, 1013],\n"," [162876, 39, 19, 15],\n"," [24090, 434, 89, 3003, 27, 6345, 10],\n"," [50, 913, 162877, 2102, 55, 2347, 12709, 4308],\n"," [15927, 71711, 37, 14, 22, 808],\n"," [12, 4503, 4740, 4098, 20, 1752, 1207, 939],\n"," [71712, 793, 151, 6, 254, 311, 3, 85],\n"," [129, 27, 772, 119, 1110, 2584, 152, 198, 441, 534, 258, 70, 205, 44],\n"," [33, 133, 608, 30, 228, 3672, 415, 1026, 11615, 92],\n"," [224, 1609, 2081, 84, 105, 948, 382, 84, 364, 5293, 11, 105],\n"," [25, 22, 1018, 275],\n"," [98956, 2290, 251, 47470, 3715, 1700, 483, 67, 3825, 162878, 39, 355, 2206],\n"," [47471, 329, 388, 9, 56889, 21, 1638, 27526, 14],\n"," [9, 81, 21, 885, 797, 396, 1343, 178, 42, 2763, 694, 148, 576, 22, 191],\n"," [16957, 72, 4, 62, 39, 232, 610, 20, 18],\n"," [307, 217, 515, 17, 827, 1164, 2, 19, 75, 393, 3],\n"," [71713, 149, 69, 122, 213, 22, 829, 69, 742, 1058],\n"," [1680, 1972, 351, 137, 6226, 2354, 6, 15451, 668, 153, 628],\n"," [98957, 30, 2304, 58, 30, 297, 16, 18, 30, 16, 149, 36, 7, 16, 606],\n"," [4, 43, 100, 3, 18219],\n"," [19706, 910],\n"," [162879,\n","  122,\n","  194,\n","  243,\n","  3754,\n","  179,\n","  16,\n","  1101,\n","  16,\n","  39,\n","  122,\n","  321,\n","  2479,\n","  948,\n","  12,\n","  122],\n"," [3370, 2253, 1548, 346, 8056, 17554, 102, 165],\n"," [103, 485, 5294, 3261, 4525, 465, 25, 103, 198, 51, 230, 28],\n"," [862, 58, 196, 162880, 7, 186, 110],\n"," [4720,\n","  32611,\n","  654,\n","  1378,\n","  356,\n","  1266,\n","  9,\n","  229,\n","  162881,\n","  21,\n","  1183,\n","  92,\n","  50,\n","  1221,\n","  359],\n"," [187, 577, 1264, 2134, 646, 4, 61, 99],\n"," [98958, 24091, 42, 11, 1329, 9953, 1448, 1023],\n"," [2205, 184, 594, 7, 198, 59, 15, 42, 3, 105, 1760, 468, 295, 416, 162882],\n"," [341, 11, 2, 1318, 159, 201],\n"," [32612, 1152, 68, 1101, 56890, 25, 129, 4741],\n"," [965, 6563, 1817, 757, 458, 1432, 2687, 27, 2886, 1633, 114],\n"," [22,\n","  26,\n","  3914,\n","  95,\n","  6,\n","  74,\n","  290,\n","  70,\n","  7509,\n","  162883,\n","  1299,\n","  7251,\n","  3593,\n","  54,\n","  91,\n","  785],\n"," [4793, 1248, 401, 11, 991],\n"," [36, 112, 17, 10, 25, 2257, 40, 574, 511, 216],\n"," [98959, 1046, 88, 506],\n"," [578, 22, 8856, 72, 1228, 5844, 48, 24],\n"," [27527, 49, 72, 583, 192, 67],\n"," [1, 3887, 214, 1275, 32613, 93, 1740, 804],\n"," [247, 31, 12, 177, 254, 28],\n"," [20583, 34, 1270, 1, 74, 126, 16, 4378],\n"," [2472, 4, 43, 8349, 1, 9954, 810, 313, 246, 7, 258],\n"," [1234, 22, 448, 32614, 492, 47472, 833, 13855],\n"," [143, 12, 1683, 973, 480, 609],\n"," [73,\n","  67,\n","  2954,\n","  110,\n","  914,\n","  254,\n","  354,\n","  125,\n","  1993,\n","  12459,\n","  4118,\n","  1792,\n","  1450,\n","  1565,\n","  162884,\n","  172,\n","  1292],\n"," [41038, 14, 26, 66, 417, 3871, 299, 71714, 3510, 7033, 32, 9062, 493, 2480],\n"," [98960, 1017, 176, 8857, 222, 34, 118, 1017],\n"," [9, 81, 21, 152, 3370, 351, 147],\n"," [9817, 2646],\n"," [56891, 13256, 10107, 1844, 554],\n"," [162885, 75, 30, 479, 459, 83],\n"," [237, 2822, 162886, 938, 1937, 228, 682, 1624, 49],\n"," [162887,\n","  25,\n","  247,\n","  1562,\n","  133,\n","  3188,\n","  125,\n","  127,\n","  313,\n","  258,\n","  393,\n","  312,\n","  93,\n","  125,\n","  207],\n"," [98961, 372, 14, 115, 22754, 152, 381],\n"," [71715, 113, 6258, 2020, 27, 234, 366],\n"," [4678, 9818, 845],\n"," [616, 17, 8, 3346, 3594, 8, 55],\n"," [56892, 303, 14, 688, 56893, 212, 7, 5017, 1, 28, 297, 162888, 92, 40, 7],\n"," [162889,\n","  2631,\n","  2602,\n","  162890,\n","  5270,\n","  2934,\n","  162891,\n","  16958,\n","  228,\n","  1304,\n","  689,\n","  706,\n","  814,\n","  634,\n","  111,\n","  204,\n","  1304,\n","  967],\n"," [15452, 7766, 750, 444, 338, 898, 474, 69, 65],\n"," [71716, 22, 1, 65, 133, 1170, 155, 235, 247, 48, 65, 110, 78],\n"," [41039, 3434, 250, 1246, 448, 369],\n"," [24092, 665, 465, 890],\n"," [343, 162892],\n"," [1, 697, 146, 172, 15, 92],\n"," [24, 46, 31, 983, 153, 169, 1229, 2454, 689, 395, 2103],\n"," [89, 118, 65, 366, 245, 3, 225, 528, 2, 48, 14, 7, 603, 7, 1135],\n"," [873, 640, 4022, 83, 2307, 129, 15],\n"," [2071, 842, 48, 80, 1084, 240, 24, 4],\n"," [46,\n","  3,\n","  389,\n","  233,\n","  233,\n","  233,\n","  59,\n","  2986,\n","  2375,\n","  5632,\n","  1630,\n","  138,\n","  3,\n","  101,\n","  7136,\n","  7136,\n","  7136],\n"," [162893, 14, 215, 31, 127],\n"," [302, 1, 8, 162894, 8, 1659, 4074, 8269, 358, 227],\n"," [4975, 458, 125, 155, 27, 455, 162895, 61],\n"," [98962, 722, 1982, 136, 145],\n"," [19707, 758, 118, 41040, 114, 340, 687, 17, 95, 6, 15, 79],\n"," [267, 11, 1, 36, 40, 175, 1457, 6564, 4, 557, 1578, 99, 27, 236, 100, 31],\n"," [162896, 323, 34, 77, 299, 342, 589, 152, 1056, 93, 20, 369],\n"," [162897, 71717, 95, 377, 32],\n"," [22, 25615, 134],\n"," [17555, 1012, 6098, 9819, 255, 1256, 288, 228, 2995, 22, 183],\n"," [71718, 13, 23, 2, 1015, 87, 14, 1443, 8, 265, 145, 8, 223],\n"," [98963, 311, 499, 104, 5295, 34, 20],\n"," [162898, 15, 6227],\n"," [692, 227, 198, 184],\n"," [148,\n","  579,\n","  162899,\n","  3888,\n","  41041,\n","  4046,\n","  71719,\n","  41042,\n","  111,\n","  4359,\n","  2969,\n","  1978,\n","  462],\n"," [187, 12, 170, 255, 2318],\n"," [71720, 90, 160, 126],\n"," [237, 160, 4237, 3872],\n"," [162900, 536, 42, 28, 125, 175, 2, 140, 123, 757],\n"," [30, 162901, 25, 18220, 76, 284],\n"," [612, 693, 4088],\n"," [98964, 1659, 71721, 3132, 19, 675, 596, 96, 234, 773, 4036, 33],\n"," [71722, 2603, 126, 8350, 11, 32, 239, 406, 126, 132, 49],\n"," [10, 2404, 407, 4976, 641, 424, 148, 47473, 51, 24, 70, 67],\n"," [1105, 3988, 3],\n"," [47, 502],\n"," [195, 1359, 8129, 408, 73, 650, 2462, 830, 2462, 163, 623, 10108, 67],\n"," [6472, 7, 4659, 661, 98, 624, 3716, 13],\n"," [22, 528, 27, 5, 500, 337, 108, 126],\n"," [336, 7, 16427, 40],\n"," [569, 209, 2941, 80],\n"," [162902, 267, 86, 162903, 162904, 25, 256, 1494, 41, 162905],\n"," [5373, 793, 311, 130, 1145, 13],\n"," [16428, 990, 113, 7405, 5089, 1587, 1453, 29, 16, 24, 70, 85],\n"," [26, 615, 54, 103, 66, 254, 15453],\n"," [427,\n","  910,\n","  12,\n","  170,\n","  158,\n","  44,\n","  16,\n","  23,\n","  1450,\n","  307,\n","  599,\n","  36220,\n","  421,\n","  178,\n","  1086,\n","  61],\n"," [209, 1, 12, 44],\n"," [57, 72, 5737, 54],\n"," [2, 612, 489, 123, 74, 400],\n"," [907, 76, 126, 3, 117],\n"," [109, 50, 239],\n"," [3133, 22, 1875, 958],\n"," [547, 45, 39, 82, 18, 1, 879, 1386, 82, 306, 1141, 3738, 1051, 39],\n"," [56894, 418, 287, 738, 1104, 10416, 287, 431, 540, 287, 29, 122],\n"," [58, 15454, 886],\n"," [98965, 2254, 108, 30, 396, 5325, 206, 1066, 2060, 1007, 133, 108, 1, 162906],\n"," [41043, 799, 4, 241, 13],\n"," [680, 69, 248, 43, 256, 610, 1674, 46, 158, 763, 261],\n"," [574, 177, 312, 524, 659, 294, 899, 92, 3630, 303],\n"," [47474, 87, 165, 83, 18, 1033, 517, 3132, 1023, 1033],\n"," [15, 35, 4047],\n"," [24093, 60, 185, 307, 4],\n"," [36221, 75, 543, 12, 7699, 1020, 6],\n"," [47475, 18, 7845, 4131, 103, 2035, 908, 3041, 4911, 2541],\n"," [1475, 368, 7252, 1627, 573, 1164, 2316, 202, 183, 4, 39],\n"," [420, 1133, 533, 189, 932, 807, 31, 1089, 239, 239],\n"," [3277, 7308, 219, 959, 68, 680, 7, 2719, 25, 46, 302, 5],\n"," [50, 12020, 24, 4],\n"," [27528, 91, 105, 2986, 1792, 752, 1313, 111, 756, 3199, 146],\n"," [2688, 3200, 6565, 279, 254, 63, 24, 6, 15455, 798, 1422, 798],\n"," [13553, 14, 3527, 1426, 222, 120, 96, 192, 1631, 1102, 32, 3055],\n"," [162907, 51, 295, 232, 132, 256, 856],\n"," [159, 3753, 1073, 218, 10, 98966, 47476, 497, 8, 1920, 162908, 8],\n"," [32615, 4, 241, 146, 105, 378, 31],\n"," [98967, 45],\n"," [22755, 14, 172, 359],\n"," [36222, 87, 799, 4, 1350, 36222, 14608],\n"," [162909, 435, 489],\n"," [118, 1068, 804, 2, 162910, 133, 1068],\n"," [4, 427, 48, 1830, 93, 74, 904, 1232],\n"," [399, 1764, 26, 708, 3371, 250, 10],\n"," [10, 242, 806, 3, 425, 28, 42, 28, 198, 4, 19, 3702, 121, 159, 105],\n"," [162911, 1, 61],\n"," [104, 3213],\n"," [162912, 391, 675, 57, 403, 1914],\n"," [1013, 10, 33, 608],\n"," [3766, 155, 303, 13, 12, 904, 22, 14609],\n"," [3693, 6, 488, 1078, 109],\n"," [98968, 162913, 4, 65, 366, 2737, 7, 1023, 296],\n"," [162914, 413, 152, 3898, 55, 286, 3607],\n"," [15, 162915, 7034, 133, 570, 142, 25, 50, 67, 50],\n"," [1, 36, 18],\n"," [340, 223, 159, 173, 9, 66, 141, 36223, 320, 11, 528],\n"," [71723, 37, 13, 94, 17, 1835, 17, 176, 8057, 47, 460, 728],\n"," [128, 15, 1706],\n"," [18914, 1900, 93],\n"," [224, 104, 98969],\n"," [1, 5, 95, 24, 34, 10],\n"," [555, 2814, 166, 64, 71724, 38, 35, 642],\n"," [162916, 1482, 129, 79, 2, 138, 13, 297, 57, 6, 162917],\n"," [21646, 274, 26, 31, 30, 419, 74, 97, 5066],\n"," [11839, 43, 2041, 2, 58, 2935, 768, 2, 140, 139, 1859],\n"," [182, 1885, 830, 9, 1166, 22, 162918],\n"," [32616, 1, 6566, 9678, 29, 424, 408, 73, 137, 238, 102, 724],\n"," [262, 25, 288, 145, 3069, 1148, 124, 192],\n"," [6259, 56, 3134, 75],\n"," [89, 9, 229, 162919, 21, 127],\n"," [1081, 1355, 311, 19708, 201, 7564, 1277, 298, 39, 173, 104, 229, 162920, 21],\n"," [11616, 4538, 5985, 1818, 3347, 79, 4590, 2620, 15928, 41044, 16429],\n"," [9, 81, 21, 7309, 1030, 310, 1730, 11424],\n"," [162921, 163, 11, 193, 880, 39, 36, 139, 47477, 44],\n"," [407, 5, 181, 53, 1915, 1731, 182, 2924, 3, 44, 36, 370, 519],\n"," [36224, 162922, 24, 822, 2327, 707, 19, 42, 11, 2327, 1251, 4319],\n"," [5555, 342, 7, 316],\n"," [17, 3, 5, 17, 1, 19, 282],\n"," [56895, 372, 68],\n"," [16430, 65, 468, 334, 420, 2, 525, 9352, 4539, 19],\n"," [10265, 32617],\n"," [1255, 2961, 124, 1409],\n"," [205, 150, 181, 1, 356, 1748, 737, 285, 162923, 10, 921],\n"," [162924, 63, 1],\n"," [71725,\n","  618,\n","  943,\n","  857,\n","  214,\n","  674,\n","  468,\n","  162,\n","  95,\n","  5092,\n","  40,\n","  19709,\n","  886,\n","  119,\n","  12229],\n"," [1747, 809, 6422],\n"," [162925, 34, 52, 162, 162926, 7310, 58, 11],\n"," [4238, 12021, 32],\n"," [41045, 191, 25, 32, 17, 78, 5271, 6990],\n"," [9820, 246, 129, 8347, 676, 172, 606],\n"," [41046, 87, 234, 6, 41, 25, 55, 709, 19, 41, 12460, 6],\n"," [116, 21647, 10702, 39, 696, 7985, 36, 1841, 54, 17, 927, 40, 691],\n"," [29841,\n","  13,\n","  2165,\n","  113,\n","  1062,\n","  78,\n","  13257,\n","  859,\n","  141,\n","  676,\n","  1219,\n","  12966,\n","  166,\n","  182,\n","  19,\n","  2621,\n","  60],\n"," [56896, 6423, 13, 371, 124, 338, 5607, 96, 338, 498, 73, 3],\n"," [41047, 102, 93, 125, 20, 600],\n"," [29, 45, 293, 98, 250, 4184],\n"," [162927, 9250, 53, 307, 4099, 1665, 107, 301, 223, 385, 174, 171, 2039, 50],\n"," [231, 615, 719, 792, 15, 162928, 2540, 9, 162929, 21],\n"," [29842, 211, 471, 1822],\n"," [138, 5, 32, 24, 4, 804],\n"," [71726, 8351, 14, 2110, 9063, 51, 27, 1004, 149, 492, 2843, 4503, 275, 327],\n"," [56, 347, 3, 160, 1374, 203, 125, 343, 2678, 1417, 14, 40],\n"," [722, 1242, 40, 36, 2756, 117, 1, 19, 5, 44],\n"," [256, 1301, 1, 22756, 97, 405, 2441, 1415, 63, 18915, 746],\n"," [3606, 65, 19, 227, 7, 365, 75, 5709, 4912, 453, 6187],\n"," [9679, 1015, 8682],\n"," [269, 2220, 33, 32, 498, 3703],\n"," [1457, 3262, 871, 146, 662, 645],\n"," [328, 162930, 853, 196, 467],\n"," [487, 96, 405, 127, 26, 18, 4640, 593, 442, 102, 39, 97, 7, 83, 317],\n"," [168, 563, 7, 21648, 11840, 8195, 98, 47, 260, 456, 199, 92],\n"," [1226, 209, 1136, 10, 164, 292, 13554, 931, 3, 643, 104, 2],\n"," [22, 46, 112, 1823, 13, 4794, 25, 39, 1393, 20, 1027, 233, 3438, 3336],\n"," [784, 86, 23, 91, 52],\n"," [741,\n","  479,\n","  162931,\n","  248,\n","  1911,\n","  1,\n","  10417,\n","  1491,\n","  490,\n","  13,\n","  763,\n","  189,\n","  39,\n","  2334,\n","  148,\n","  74,\n","  147,\n","  1075,\n","  1797],\n"," [2, 59, 118, 2220, 13258, 395, 97],\n"," [56897, 212, 611, 42, 29, 1295, 4721, 1635],\n"," [162932, 20, 169, 15456, 734, 40, 201, 17, 193, 252],\n"," [15015, 477, 15, 796, 253, 4773, 412, 3493, 434, 96, 1, 158],\n"," [71727, 812, 1208, 2, 40, 48, 427, 99],\n"," [6228, 43, 7846, 283, 648],\n"," [4, 43],\n"," [100, 674, 462, 10],\n"," [15929, 162933, 583, 168, 4555],\n"," [56898, 14, 249, 25, 559],\n"," [532, 381, 66, 977, 42, 28, 2506, 1985, 423, 38, 4679],\n"," [8429, 218, 1284, 17, 268, 2266, 214, 202, 23, 18, 1669, 901, 44],\n"," [3348, 205, 2659, 3371, 85, 2659, 2659],\n"," [29, 54, 2253, 1065, 1, 849, 359, 1410, 5135, 3, 44],\n"," [794, 100, 2093, 16, 33, 204, 9, 324, 21, 121, 293, 7035],\n"," [780, 138],\n"," [807, 214, 2395, 2783],\n"," [137, 582, 1510, 79, 169],\n"," [162934, 34, 14, 15, 1261, 1931],\n"," [1148, 236],\n"," [238, 516, 4793],\n"," [1, 942, 502, 162935],\n"," [120, 325, 2453, 306, 35, 109, 610, 173, 284],\n"," [29, 65, 127, 2562, 1605, 25, 2267, 1423],\n"," [4680, 2291, 7, 55],\n"," [162936, 49, 20, 38, 340, 987, 6, 41048, 611],\n"," [3396, 108, 62],\n"," [1932, 344, 89],\n"," [24094, 371, 70, 712, 402, 412, 393, 77, 6, 49],\n"," [36, 790, 6, 2383, 3, 5, 150, 27, 82, 441, 15, 48],\n"," [10109, 14, 176, 133, 1443],\n"," [18, 98970, 171, 142, 24, 98971],\n"," [98972,\n","  14,\n","  10881,\n","  2462,\n","  582,\n","  9,\n","  66,\n","  141,\n","  162937,\n","  497,\n","  909,\n","  9,\n","  66,\n","  141,\n","  162938],\n"," [426, 308, 783, 571, 43, 780, 815],\n"," [162939, 7, 83, 73, 25, 669],\n"," [487, 96, 351, 488, 1118, 639, 859, 3522, 332, 49, 1158, 317],\n"," [156, 2259, 115, 633, 10],\n"," [98973, 1573, 77, 5, 213, 58, 275],\n"," [30, 197, 42, 575, 25616, 368, 182, 50],\n"," [41049, 73, 583, 3288, 860, 710, 271, 61, 619, 5709, 67],\n"," [162940, 1, 23, 1236, 365, 2111, 225, 15, 1860, 331, 1653, 22],\n"," [4, 43, 259],\n"," [96, 140, 231, 43, 71728],\n"," [24095, 29, 46, 3, 7, 35, 1879],\n"," [89, 12, 509, 19, 2668, 35, 145, 529],\n"," [2280, 43, 35, 4742, 530, 2, 52, 735, 16959, 42, 28, 7, 79, 425],\n"," [4, 28, 107],\n"," [2236, 45, 4, 595, 29, 185, 97, 1795, 1195, 9, 309, 21, 98974, 16960],\n"," [1008, 72, 192, 475],\n"," [167, 99, 78, 267, 71729],\n"," [1100, 979],\n"," [71730, 95, 25, 58, 34, 974],\n"," [5468, 219, 425, 17],\n"," [98975, 25, 6, 302, 134, 591, 19710, 25617, 368, 4],\n"," [153, 116, 123, 1, 2876, 276, 338, 197, 3, 175],\n"," [24096, 940, 692, 124],\n"," [36225, 469, 1265, 279, 1945, 94, 66, 5374, 12, 68, 2869, 36, 5],\n"," [162941, 1608, 874],\n"," [162942, 16961, 4216],\n"," [3, 175, 78, 24, 6, 700, 96, 1, 182, 1765, 40],\n"," [2, 525, 891, 527],\n"," [745, 908, 96, 800, 1623, 41, 73, 18, 17, 452],\n"," [221, 4, 178, 32, 27529, 178, 47, 162943],\n"," [76, 36226, 2565, 1959, 594, 96, 615, 154],\n"," [32618, 111, 4, 241],\n"," [792, 30, 770, 267, 2205, 1036],\n"," [162944, 20, 967, 1391],\n"," [98976, 280, 6, 38, 6, 405, 12, 279, 73, 1761, 280, 1761, 117],\n"," [169, 103, 172, 240, 121, 98977, 955, 589, 64, 71731, 20, 98977, 455],\n"," [14610, 7253, 160, 83, 26, 29843, 69, 1192, 2970, 161, 2026],\n"," [56899, 149, 38, 210, 312],\n"," [50, 3, 2447, 315, 5738, 2049, 351],\n"," [556, 434, 1145, 104, 1072, 3012, 162945],\n"," [19711, 463, 7846],\n"," [361, 230, 4],\n"," [148, 494, 10, 791, 33, 136],\n"," [162946, 37, 212, 9064, 1618, 12, 3004, 9353, 14],\n"," [722, 98978, 5, 20584],\n"," [15, 71732, 40],\n"," [71733, 88, 34, 14],\n"," [14611, 924, 54, 11617, 294, 564, 18, 2],\n"," [418, 870, 2562, 313, 250, 4, 3704, 61, 1028],\n"," [446, 6, 1369, 1370, 73],\n"," [36227, 14, 1278, 53, 159, 35, 1545, 322, 77, 35, 238],\n"," [162947, 13, 8430, 22, 111, 17],\n"," [605, 3, 150, 100, 18, 134, 18, 1, 36, 9, 324, 21, 121, 56900, 179],\n"," [12, 36, 5, 6515, 22, 69, 5, 35, 228, 1983, 1983],\n"," [379, 270, 6187],\n"," [19, 286, 213],\n"," [162948, 14, 5845, 267, 381, 14, 15457],\n"," [615, 148, 4740, 553, 4740, 258, 364, 1998, 152, 37, 162949],\n"," [162950, 151, 736],\n"," [29, 107, 200, 3, 73, 32, 116, 93, 7, 17, 20, 7, 366],\n"," [36228, 270, 696, 111],\n"," [292, 1296, 45, 57, 100, 24, 58, 1296, 227],\n"," [1938, 2936, 199, 550],\n"," [162951, 48, 34],\n"," [98979, 37, 143, 191, 51, 172],\n"," [4699,\n","  1880,\n","  2104,\n","  12,\n","  1670,\n","  2848,\n","  65,\n","  203,\n","  827,\n","  27,\n","  630,\n","  3117,\n","  19,\n","  640,\n","  49,\n","  658,\n","  1029],\n"," [5846, 16962, 6991, 162952, 234, 6, 42, 434, 525, 621, 3004, 1268, 133],\n"," [19712, 11618, 1513, 248, 332],\n"," [98980, 96, 1149],\n"," [12, 2123, 166, 1414, 359, 10, 59, 38],\n"," [11, 96, 12, 23, 3703],\n"," [4855, 78, 5375, 73, 77, 408, 147, 2, 140, 280, 311, 691, 97],\n"," [98981, 194, 151, 90],\n"," [106, 3, 5, 348],\n"," [180,\n","  829,\n","  148,\n","  1077,\n","  1169,\n","  157,\n","  278,\n","  15,\n","  3,\n","  1418,\n","  15,\n","  240,\n","  34,\n","  169,\n","  11,\n","  53,\n","  499,\n","  4743],\n"," [162953, 65, 264, 8130, 135],\n"," [64, 848, 282, 10557, 325],\n"," [18, 5735, 39, 23],\n"," [162954, 179, 88, 1, 74, 129, 449, 65, 366, 48, 113],\n"," [162955, 1144, 926, 11841, 601, 307, 4379, 210, 289],\n"," [4744, 381, 4255, 8760, 976, 17, 122],\n"," [162956, 86, 346],\n"," [71734, 27530, 3705, 1115, 652, 2807, 173, 23, 1737],\n"," [25, 1615, 17, 360, 3578, 57, 7137, 311, 340, 44, 28],\n"," [3706, 32, 41, 1515, 2412, 3487, 460, 1040, 248, 16963],\n"," [98982, 14, 982],\n"," [11, 21649, 1661, 186, 22, 69, 334, 56901, 2237, 2987, 34],\n"," [5877, 299, 14, 538, 1714, 535, 278, 208, 234, 2, 152, 505, 582],\n"," [32619, 192, 42, 209, 3, 4440, 4856, 42, 52, 969, 317],\n"," [243],\n"," [25618, 6, 403, 193, 5326, 76, 4048, 1057, 66, 4441, 266],\n"," [98983, 372, 14, 47, 260, 2, 218, 13, 358, 23, 5401],\n"," [1510, 4343, 20, 156, 198, 1021, 10, 2, 250],\n"," [98, 47, 551, 296, 162957, 35, 1030],\n"," [1002, 864, 140, 1, 36],\n"," [95,\n","  10703,\n","  18,\n","  82,\n","  333,\n","  78,\n","  9955,\n","  2033,\n","  25619,\n","  5847,\n","  8,\n","  933,\n","  8,\n","  816,\n","  16,\n","  108,\n","  115],\n"," [71735, 246, 6, 416],\n"," [120, 791, 1237],\n"," [98984, 43, 283, 19, 2275],\n"," [35, 201, 173, 340],\n"," [22, 387, 3952, 750, 95, 6],\n"," [29844, 246, 4, 23, 4, 4540, 8520, 16, 127],\n"," [56, 5222, 3027, 29845, 1033, 310, 162958, 119],\n"," [2, 140, 131, 3, 5],\n"," [162959, 14, 1443, 56902],\n"," [71736, 20, 3005, 484, 165, 393, 366, 331, 60, 1503, 83],\n"," [25, 150, 6745, 104, 202, 374, 48, 44],\n"," [770,\n","  71737,\n","  179,\n","  71738,\n","  451,\n","  179,\n","  830,\n","  942,\n","  146,\n","  22,\n","  146,\n","  18221,\n","  830,\n","  416,\n","  1994,\n","  22,\n","  554],\n"," [38, 291, 3916, 2575, 10, 1, 35, 4047, 218, 162960, 603, 1315, 2516],\n"," [98985, 22, 116, 27531, 232, 57, 438, 301, 2299, 356],\n"," [71739, 98986, 98987, 83, 1135, 281, 142, 3],\n"," [18, 14, 168, 603, 145, 8, 3579, 1610, 8, 17, 233, 3493, 481, 10266, 161],\n"," [87,\n","  2,\n","  157,\n","  976,\n","  13856,\n","  6746,\n","  221,\n","  4,\n","  37,\n","  208,\n","  22,\n","  1307,\n","  2,\n","  3165,\n","  221,\n","  1850,\n","  4131],\n"," [529,\n","  658,\n","  3357,\n","  6,\n","  2919,\n","  162961,\n","  293,\n","  49,\n","  1230,\n","  1738,\n","  51,\n","  130,\n","  358,\n","  588,\n","  476,\n","  3307],\n"," [455, 5848, 37, 20, 16, 126, 489, 5],\n"," [3308, 1744, 625, 71740, 625, 1041, 4, 38],\n"," [7138, 9065, 2051, 181],\n"," [41050, 3226, 173, 14],\n"," [98988, 96],\n"," [162962, 4626, 1000, 18, 2, 490, 2240, 565, 8, 794, 8, 1409],\n"," [71741, 2015, 2, 1, 155, 3, 178],\n"," [174, 135],\n"," [56, 190, 345, 29846, 72, 222],\n"," [31, 1890, 499, 41, 59, 74, 1, 9463, 427],\n"," [3183, 3505, 673, 25, 312, 10882, 33, 341, 519],\n"," [209,\n","  148,\n","  34,\n","  98,\n","  26,\n","  63,\n","  59,\n","  22,\n","  116,\n","  422,\n","  2,\n","  492,\n","  937,\n","  424,\n","  119,\n","  344,\n","  76,\n","  192,\n","  13],\n"," [71742, 10418, 16, 31, 30, 82, 2441],\n"," [12, 531, 13857, 854],\n"," [5633, 63, 87, 90, 15, 83, 92],\n"," [36229, 55, 14, 8521, 88, 14],\n"," [107, 56903, 1169, 41, 9251, 9, 66, 141, 162963, 6058, 162964, 56904, 1052],\n"," [24, 10, 1, 905, 3],\n"," [75, 89, 22, 36, 68, 516, 406],\n"," [162965, 45, 76, 122, 83, 3372, 117, 67],\n"," [36230, 14, 631, 2822],\n"," [73, 1147, 30, 2447, 220],\n"," [162966, 402, 75, 60, 4256, 3826, 413, 51, 158, 67],\n"," [98989, 16, 1048, 49],\n"," [174,\n","  370,\n","  32620,\n","  3393,\n","  1410,\n","  1412,\n","  2087,\n","  356,\n","  297,\n","  356,\n","  285,\n","  30,\n","  178,\n","  495,\n","  358],\n"," [20585, 122, 29, 207, 129],\n"," [1273, 5, 1136, 532, 2541, 3817, 340, 117],\n"," [1758, 8352, 1983, 3201, 94, 13257, 151, 1635, 13],\n"," [40, 51, 61, 14, 162967, 308],\n"," [2129, 32621, 6019, 13555, 244, 687, 1520, 238, 288, 639, 1107, 723, 162968],\n"," [645, 3105, 69, 2205, 163, 134, 1062],\n"," [25620, 13, 12, 2849, 25, 3029, 600, 868, 290, 8, 315, 82],\n"," [589, 8683, 18, 184, 511, 19],\n"," [71743, 37, 29, 6, 182, 1531, 242, 1778, 239, 215],\n"," [425, 28, 98990, 1406, 8761, 847, 1475, 122, 114, 245, 254, 3397],\n"," [56905, 460, 2310, 5, 319, 390],\n"," [27532,\n","  163,\n","  16,\n","  95,\n","  1176,\n","  8,\n","  2294,\n","  8,\n","  169,\n","  331,\n","  95,\n","  176,\n","  12967,\n","  212,\n","  62,\n","  6707,\n","  210,\n","  11,\n","  208,\n","  1422],\n"," [456, 199, 27, 199, 1, 111, 3, 150, 52],\n"," [907, 907, 7138, 20, 169, 15, 1858, 110, 15930, 12, 4504, 7511, 820],\n"," [226, 340, 9, 162969, 2001, 21, 195, 666, 12022],\n"," [162970, 750],\n"," [2, 140, 82, 126, 3989, 11],\n"," [10558, 151, 534, 64, 85],\n"," [98991, 26, 13556, 1385, 300, 542, 542, 698, 33, 764, 2, 3269],\n"," [162971, 1424, 8, 18916, 8, 296, 57, 142, 55, 115, 67, 8, 1375, 1049, 8],\n"," [11230, 47, 1012, 39, 23, 39, 3564],\n"," [124, 73, 95, 18, 16, 1009, 373],\n"," [27533, 88, 12, 410, 127, 3565, 666, 633, 4166, 666, 755],\n"," [1412, 152, 5, 3767, 1642, 57, 32, 24, 70, 2, 201, 243, 318, 24, 643],\n"," [64, 5, 98, 1147],\n"," [9066, 1499, 321, 22, 1184, 36231, 130, 6260, 465, 5, 9, 81, 21, 98992],\n"," [8131, 958, 1124, 54, 1132, 10, 464],\n"," [47478, 164, 985, 716, 217, 687, 1401, 50],\n"," [21650, 86, 11231, 7],\n"," [47479, 87, 321, 169, 64, 49, 54],\n"," [162972, 75, 206, 399, 10, 168],\n"," [162973, 2698, 304, 5, 106, 481, 8762, 745, 3436, 168],\n"," [569, 408, 44, 140, 344],\n"," [508, 11066],\n"," [227, 89, 1313, 70],\n"," [162974, 11425, 763, 6346, 580, 827, 1069, 130, 511],\n"," [6793,\n","  158,\n","  36232,\n","  34,\n","  2,\n","  977,\n","  118,\n","  555,\n","  730,\n","  3663,\n","  4541,\n","  158,\n","  27,\n","  27,\n","  1756,\n","  1343,\n","  178,\n","  287,\n","  154,\n","  345,\n","  345],\n"," [9, 81, 21, 6473, 14, 200, 105],\n"," [18, 1, 306, 198, 534],\n"," [56906, 2701],\n"," [3337],\n"," [6059, 71744, 162975, 18, 11426, 2308],\n"," [195, 31, 47, 1381, 226],\n"," [981, 568, 656, 333, 3755, 95, 6, 203, 568, 981],\n"," [555, 1086, 20, 296, 204, 4, 5420, 4100, 1427],\n"," [1236, 36233, 217, 1312, 10, 184, 3269, 25621, 6, 144, 182],\n"," [686, 30, 22757, 845],\n"," [32, 17, 71745, 77, 1216, 1131, 1216, 1131],\n"," [6653, 456, 23, 190, 199],\n"," [162976, 37, 262, 16, 2, 333, 155, 235, 95, 20, 4, 58],\n"," [53, 499, 1286, 197, 509],\n"," [29847, 776, 8596, 101, 4132, 953, 199, 694, 2662, 78],\n"," [12, 19, 2506, 2262, 2506, 536, 69, 15, 110, 518, 40],\n"," [1862, 159, 6794, 38, 6, 356, 107, 182, 823],\n"," [71746, 391, 262, 14, 607, 26, 4, 160, 12, 218, 3211, 90, 85],\n"," [69, 1, 173, 162977, 2952, 23, 1518, 27534, 10],\n"," [239],\n"," [162978, 162979, 52, 651, 156, 1874, 1270, 15, 32622],\n"," [27535, 16, 169, 1472, 742, 1710],\n"," [71747,\n","  524,\n","  103,\n","  110,\n","  6,\n","  16,\n","  419,\n","  2061,\n","  3061,\n","  89,\n","  743,\n","  298,\n","  89,\n","  1054,\n","  1181,\n","  1140],\n"," [162980, 71748, 55, 23, 503, 21651],\n"," [162981, 180, 528],\n"," [162982, 18, 307, 388, 1990, 545, 307, 370, 307],\n"," [164,\n","  255,\n","  6,\n","  2625,\n","  9464,\n","  4660,\n","  3528,\n","  8947,\n","  4660,\n","  2744,\n","  9464,\n","  3062,\n","  255,\n","  993,\n","  1084],\n"," [189, 932, 1672, 33, 65, 2066, 295, 97, 10110],\n"," [162983, 57, 6, 23, 3779, 297, 258, 14612, 2347, 383, 31, 1383, 1271],\n"," [98993, 104, 14, 62, 70, 53, 2, 354, 191, 19, 36, 679, 74, 270, 298],\n"," [7139, 16, 528, 1850, 1775, 7, 629, 98, 1218, 7700],\n"," [829, 558, 464, 871, 16, 18, 5162, 4490, 17, 1129, 149, 8, 4100, 644, 8],\n"," [337, 106, 36234, 836, 86, 386],\n"," [22758, 75, 6, 5402, 626, 65, 522, 80, 133, 286, 1725, 328],\n"," [98994, 114, 2271],\n"," [13858, 1101, 2046, 211, 34, 30, 1862, 434],\n"," [257, 30, 1990, 826],\n"," [29848, 162984, 1200, 210, 199, 133, 192, 15],\n"," [33, 77, 993, 360, 17, 274, 47480],\n"," [56, 3, 7406, 983, 348, 983, 2288, 52, 12230, 457, 11, 84, 1285],\n"," [162985, 7924, 3545, 9156, 412, 67],\n"," ...]"]},"execution_count":22,"metadata":{},"output_type":"execute_result"}],"source":["train_sequences"]},{"cell_type":"code","execution_count":23,"metadata":{"_uuid":"45de439df3015030c71f84c2d170346936a1d68f","execution":{"iopub.execute_input":"2023-08-08T06:43:10.335124Z","iopub.status.busy":"2023-08-08T06:43:10.334683Z","iopub.status.idle":"2023-08-08T06:44:07.491977Z","shell.execute_reply":"2023-08-08T06:44:07.490801Z","shell.execute_reply.started":"2023-08-08T06:43:10.335044Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["CPU times: total: 2.09 s\n","Wall time: 3.95 s\n"]}],"source":["%%time\n","x_train = pad_sequences(train_sequences, maxlen=SEQUENCE_LENGTH)\n","x_test = pad_sequences(test_sequences, maxlen=SEQUENCE_LENGTH)"]},{"cell_type":"code","execution_count":24,"metadata":{},"outputs":[{"data":{"text/plain":["(40,)"]},"execution_count":24,"metadata":{},"output_type":"execute_result"}],"source":["x_train[0].shape"]},{"cell_type":"code","execution_count":26,"metadata":{},"outputs":[],"source":["y_train=df_train.target.values.reshape(-1,1)\n","y_test=df_test.target.values.reshape(-1,1)"]},{"cell_type":"code","execution_count":27,"metadata":{"_uuid":"04299c886911ca135583ab64878f213939a2990c","execution":{"iopub.execute_input":"2023-08-08T06:44:09.357291Z","iopub.status.busy":"2023-08-08T06:44:09.356935Z","iopub.status.idle":"2023-08-08T06:44:09.366239Z","shell.execute_reply":"2023-08-08T06:44:09.364945Z","shell.execute_reply.started":"2023-08-08T06:44:09.357226Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["x_train (1279604, 40)\n","y_train (1279604, 1)\n","\n","x_test (319901, 40)\n","y_test (319901, 1)\n"]}],"source":["print(\"x_train\", x_train.shape)\n","print(\"y_train\", y_train.shape)\n","print()\n","print(\"x_test\", x_test.shape)\n","print(\"y_test\", y_test.shape)"]},{"cell_type":"markdown","metadata":{"_uuid":"233c0ea94055a03e2e7df3e2a13d036ec963484f"},"source":["### Embedding layer"]},{"cell_type":"code","execution_count":28,"metadata":{"_uuid":"9ab488374b59e3f30f8b1ea92767d853c4846bac","execution":{"iopub.execute_input":"2023-08-08T06:44:09.386118Z","iopub.status.busy":"2023-08-08T06:44:09.385732Z","iopub.status.idle":"2023-08-08T06:44:09.894843Z","shell.execute_reply":"2023-08-08T06:44:09.893706Z","shell.execute_reply.started":"2023-08-08T06:44:09.386052Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["(460853, 100)\n"]}],"source":["embedding_matrix = np.zeros((vocab_size, W2V_SIZE))\n","for word, i in tokenizer.word_index.items():\n","  if word in w2v_model.wv:\n","    embedding_matrix[i] = w2v_model.wv[word]\n","print(embedding_matrix.shape)"]},{"cell_type":"code","execution_count":29,"metadata":{},"outputs":[{"data":{"text/plain":["(1279604, 40)"]},"execution_count":29,"metadata":{},"output_type":"execute_result"}],"source":["x_train.shape"]},{"cell_type":"code","execution_count":30,"metadata":{"_uuid":"833279d91e4286065968237fb5f2a0c2dd4d246c","execution":{"iopub.execute_input":"2023-08-08T06:44:09.897203Z","iopub.status.busy":"2023-08-08T06:44:09.896549Z","iopub.status.idle":"2023-08-08T06:44:09.929314Z","shell.execute_reply":"2023-08-08T06:44:09.928364Z","shell.execute_reply.started":"2023-08-08T06:44:09.897128Z"},"trusted":true},"outputs":[],"source":["embedding_layer = Embedding(vocab_size, W2V_SIZE, weights=[embedding_matrix], input_length=SEQUENCE_LENGTH, trainable=False)"]},{"cell_type":"markdown","metadata":{"_uuid":"b299ef78f94c2085942c993a2d58753a7476305a"},"source":["### Build Model"]},{"cell_type":"code","execution_count":31,"metadata":{"_uuid":"e775ef4f1b74e6412457181383c39f2df554ef3f","execution":{"iopub.execute_input":"2023-08-08T06:44:09.933721Z","iopub.status.busy":"2023-08-08T06:44:09.933191Z","iopub.status.idle":"2023-08-08T06:44:13.433035Z","shell.execute_reply":"2023-08-08T06:44:13.431994Z","shell.execute_reply.started":"2023-08-08T06:44:09.933623Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 18:42:07,127 : WARNING : Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n"]},{"name":"stdout","output_type":"stream","text":["Model: \"sequential\"\n","_________________________________________________________________\n"," Layer (type)                Output Shape              Param #   \n","=================================================================\n"," embedding (Embedding)       (None, 40, 100)           46085300  \n","                                                                 \n"," dropout (Dropout)           (None, 40, 100)           0         \n","                                                                 \n"," lstm (LSTM)                 (None, 100)               80400     \n","                                                                 \n"," dense (Dense)               (None, 1)                 101       \n","                                                                 \n","=================================================================\n","Total params: 46,165,801\n","Trainable params: 80,501\n","Non-trainable params: 46,085,300\n","_________________________________________________________________\n"]}],"source":["model = Sequential()\n","model.add(embedding_layer)\n","model.add(Dropout(0.3))\n","model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))\n","# model.add(GlobalMaxPooling1D())\n","model.add(Dense(1, activation='sigmoid'))\n","model.summary()"]},{"cell_type":"markdown","metadata":{"_uuid":"28d22eafd0c7d798dcf3d742bc92fb8577939e6c"},"source":["### Compile model"]},{"cell_type":"code","execution_count":32,"metadata":{"_uuid":"1331e08d590bb2aa2033706c8faca217afc0f1c3","execution":{"iopub.execute_input":"2023-08-08T06:44:13.435563Z","iopub.status.busy":"2023-08-08T06:44:13.435199Z","iopub.status.idle":"2023-08-08T06:44:13.502610Z","shell.execute_reply":"2023-08-08T06:44:13.501066Z","shell.execute_reply.started":"2023-08-08T06:44:13.435491Z"},"trusted":true},"outputs":[],"source":["model.compile(loss='binary_crossentropy',\n","              optimizer=\"adam\",\n","              metrics=['accuracy'])"]},{"cell_type":"markdown","metadata":{"_uuid":"c7733127cb8b380e0c807268903bf4d03ef92542"},"source":["### Callbacks"]},{"cell_type":"code","execution_count":33,"metadata":{"_uuid":"a688df590386f5748da6fe00b01904fe6c71619e","execution":{"iopub.execute_input":"2023-08-08T06:44:13.505424Z","iopub.status.busy":"2023-08-08T06:44:13.504710Z","iopub.status.idle":"2023-08-08T06:44:13.513055Z","shell.execute_reply":"2023-08-08T06:44:13.511613Z","shell.execute_reply.started":"2023-08-08T06:44:13.505114Z"},"trusted":true},"outputs":[],"source":["callbacks = [ ReduceLROnPlateau(monitor='val_loss', patience=5, cooldown=0),\n","              EarlyStopping(monitor='val_accuracy', min_delta=1e-4, patience=5)]"]},{"cell_type":"markdown","metadata":{"_uuid":"8d0873633dd49179c8cae17377641b97d323ef3b"},"source":["### Train"]},{"cell_type":"code","execution_count":35,"metadata":{"_uuid":"2b659d390c6577dc5cdb6b6297934279b4e801d5","execution":{"iopub.execute_input":"2023-08-08T06:44:13.515110Z","iopub.status.busy":"2023-08-08T06:44:13.514690Z","iopub.status.idle":"2023-08-08T09:25:35.214850Z","shell.execute_reply":"2023-08-08T09:25:35.213167Z","shell.execute_reply.started":"2023-08-08T06:44:13.515041Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["Epoch 1/6\n","7498/7498 [==============================] - ETA: 0s - loss: 0.4950 - accuracy: 0.7571WARNING:tensorflow:Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 19:19:02,117 : WARNING : Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stdout","output_type":"stream","text":["7498/7498 [==============================] - 2151s 286ms/step - loss: 0.4950 - accuracy: 0.7571 - val_loss: 0.4665 - val_accuracy: 0.7768 - lr: 0.0010\n","Epoch 2/6\n","7498/7498 [==============================] - ETA: 0s - loss: 0.4788 - accuracy: 0.7677WARNING:tensorflow:Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 19:53:16,949 : WARNING : Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stdout","output_type":"stream","text":["7498/7498 [==============================] - 2055s 274ms/step - loss: 0.4788 - accuracy: 0.7677 - val_loss: 0.4587 - val_accuracy: 0.7814 - lr: 0.0010\n","Epoch 3/6\n","7498/7498 [==============================] - ETA: 0s - loss: 0.4749 - accuracy: 0.7701WARNING:tensorflow:Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 20:27:06,704 : WARNING : Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stdout","output_type":"stream","text":["7498/7498 [==============================] - 2030s 271ms/step - loss: 0.4749 - accuracy: 0.7701 - val_loss: 0.4566 - val_accuracy: 0.7828 - lr: 0.0010\n","Epoch 4/6\n","7498/7498 [==============================] - ETA: 0s - loss: 0.4725 - accuracy: 0.7719WARNING:tensorflow:Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 21:35:32,818 : WARNING : Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stdout","output_type":"stream","text":["7498/7498 [==============================] - 4106s 548ms/step - loss: 0.4725 - accuracy: 0.7719 - val_loss: 0.4541 - val_accuracy: 0.7838 - lr: 0.0010\n","Epoch 5/6\n","7498/7498 [==============================] - ETA: 0s - loss: 0.4713 - accuracy: 0.7725WARNING:tensorflow:Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 22:10:52,925 : WARNING : Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stdout","output_type":"stream","text":["7498/7498 [==============================] - 2120s 283ms/step - loss: 0.4713 - accuracy: 0.7725 - val_loss: 0.4522 - val_accuracy: 0.7844 - lr: 0.0010\n","Epoch 6/6\n","7498/7498 [==============================] - ETA: 0s - loss: 0.4704 - accuracy: 0.7735WARNING:tensorflow:Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 22:50:22,678 : WARNING : Early stopping conditioned on metric `val_acc` which is not available. Available metrics are: loss,accuracy,val_loss,val_accuracy,lr\n"]},{"name":"stdout","output_type":"stream","text":["7498/7498 [==============================] - 2370s 316ms/step - loss: 0.4704 - accuracy: 0.7735 - val_loss: 0.4532 - val_accuracy: 0.7840 - lr: 0.0010\n","CPU times: total: 1h 8min 58s\n","Wall time: 4h 7min 12s\n"]}],"source":["%%time\n","history = model.fit(x_train, y_train,\n","                    batch_size=128,\n","                    epochs=EPOCHS,\n","                    validation_split=0.25,\n","                    verbose=1,\n","                    callbacks=callbacks)"]},{"cell_type":"code","execution_count":36,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["INFO:tensorflow:Assets written to: lstm_saved_embd\\assets\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 22:50:28,286 : INFO : Assets written to: lstm_saved_embd\\assets\n"]}],"source":["model.save('lstm_saved_embd')"]},{"cell_type":"code","execution_count":37,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n"]},{"name":"stderr","output_type":"stream","text":["2023-08-09 22:50:28,578 : WARNING : Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n"]}],"source":["loaded_model = tf.keras.models.load_model('lstm_saved_embd')"]},{"cell_type":"markdown","metadata":{"_uuid":"267258196d96796ac69a7b8c466314bcf5d6ee42"},"source":["### Evaluate"]},{"cell_type":"code","execution_count":38,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["9997/9997 [==============================] - 320s 32ms/step\n"]}],"source":["y_pred=loaded_model.predict(x_test)\n","y_pred=(y_pred > 0.5).astype(\"int64\").reshape(-1)"]},{"cell_type":"code","execution_count":43,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["----Confusion matrix---- \n"," \n","[[120181  39192]\n"," [ 30337 130191]]\n","\n","Acccuracy Score : 0.7826546337773249\n","\n","              precision    recall  f1-score   support\n","\n","           0       0.80      0.75      0.78    159373\n","           1       0.77      0.81      0.79    160528\n","\n","    accuracy                           0.78    319901\n","   macro avg       0.78      0.78      0.78    319901\n","weighted avg       0.78      0.78      0.78    319901\n","\n"]}],"source":["from sklearn import metrics\n","\n","def model_report(y_test,y_pred):\n","    print(f'----Confusion matrix---- \\n \\n{metrics.confusion_matrix(y_test,y_pred)}\\n')\n","    print(f'Acccuracy Score : {metrics.accuracy_score(y_test,y_pred)}\\n')\n","    print(metrics.classification_report(y_test,y_pred))\n","\n","y_test=df_test['target']\n","model_report(y_test,y_pred)"]},{"cell_type":"code","execution_count":46,"metadata":{"_uuid":"40c72cd1e9d6c4fd799cbba7c813765ac4039dfc","execution":{"iopub.execute_input":"2023-08-08T09:43:49.324800Z","iopub.status.busy":"2023-08-08T09:43:49.324131Z","iopub.status.idle":"2023-08-08T09:43:49.432115Z","shell.execute_reply":"2023-08-08T09:43:49.358842Z","shell.execute_reply.started":"2023-08-08T09:43:49.324721Z"},"trusted":true},"outputs":[{"data":{"image/png":"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","text/plain":["<Figure size 640x480 with 1 Axes>"]},"metadata":{},"output_type":"display_data"},{"data":{"image/png":"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","text/plain":["<Figure size 640x480 with 1 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":["acc = history.history['accuracy']\n","val_acc = history.history['val_accuracy']\n","loss = history.history['loss']\n","val_loss = history.history['val_loss']\n"," \n","epochs = range(len(acc))\n"," \n","plt.plot(epochs, acc, 'b', label='Training acc')\n","plt.plot(epochs, val_acc, 'r', label='Validation acc')\n","plt.title('Training and validation accuracy')\n","plt.legend()\n"," \n","plt.figure()\n"," \n","plt.plot(epochs, loss, 'b', label='Training loss')\n","plt.plot(epochs, val_loss, 'r', label='Validation loss')\n","plt.title('Training and validation loss')\n","plt.legend()\n"," \n","plt.show()"]},{"cell_type":"markdown","metadata":{"_uuid":"6bdfc0f6a6af5bebc0271d83dd7432c91001409b"},"source":["### Predict"]},{"cell_type":"code","execution_count":48,"metadata":{},"outputs":[],"source":["def cleaning(tweet):\n","    tweet=re.sub(r'[^a-zA-Z]',' ',tweet)\n","    tweet=tweet.lower()\n","    tweet=tweet.split()\n","    ps=PorterStemmer()\n","    tweet=[ps.stem(word) for word in tweet if word not in stopwords.words(\"english\")]\n","    tweet=' '.join(tweet)\n","    return tweet"]},{"cell_type":"code","execution_count":2,"metadata":{},"outputs":[],"source":["def decode_sentiment(score):\n","    if score>0.5:\n","        return 'POSITIVE'\n","    else:\n","         return 'NEGATIVE'"]},{"cell_type":"code","execution_count":70,"metadata":{"_uuid":"ed4086d651f2f8cbed11d3c909a8873607d29a06","execution":{"iopub.execute_input":"2023-08-08T10:46:05.312459Z","iopub.status.busy":"2023-08-08T10:46:05.311990Z","iopub.status.idle":"2023-08-08T10:46:05.320554Z","shell.execute_reply":"2023-08-08T10:46:05.319389Z","shell.execute_reply.started":"2023-08-08T10:46:05.312386Z"},"trusted":true},"outputs":[],"source":["def predict(text, include_neutral=True):\n","    # Tokenize text\n","    text=cleaning(text)\n","    x_test = pad_sequences(tokenizer.texts_to_sequences([text]), maxlen=SEQUENCE_LENGTH,padding='pre')\n","    # Predict\n","    score = model.predict([x_test])[0]\n","    # Decode sentiment\n","    label = 'Positive' if prediction > 0.5 else 'Negative'\n","  \n","    return {\"label\": label, \"score\": float(score[0]),\n","      }  "]},{"cell_type":"code","execution_count":71,"metadata":{"_uuid":"37064dffcc8920d34ccd54fac7c8b50e583a8269","execution":{"iopub.execute_input":"2023-08-08T10:46:09.123305Z","iopub.status.busy":"2023-08-08T10:46:09.122689Z","iopub.status.idle":"2023-08-08T10:46:09.189810Z","shell.execute_reply":"2023-08-08T10:46:09.188899Z","shell.execute_reply.started":"2023-08-08T10:46:09.123187Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["1/1 [==============================] - 0s 57ms/step\n"]},{"data":{"text/plain":["{'label': 'NEGATIVE', 'score': 0.33264580368995667}"]},"execution_count":71,"metadata":{},"output_type":"execute_result"}],"source":["tweet='''\n","Average. Cold coffee not so good and biryani tastes like garbage.\n","'''\n","predict(tweet)"]},{"cell_type":"markdown","metadata":{"_uuid":"4f014c32f3833db282e1a075c526604f34e3158c"},"source":["### Save model"]},{"cell_type":"code","execution_count":null,"metadata":{"_uuid":"3b2b3ad5b592977b404acfa1c9ad303a62837255","execution":{"iopub.status.busy":"2023-08-08T09:43:49.375786Z","iopub.status.idle":"2023-08-08T09:43:49.376349Z"},"trusted":true},"outputs":[],"source":["# model.save(KERAS_MODEL)\n","# w2v_model.save(WORD2VEC_MODEL)\n","# pickle.dump(tokenizer, open(TOKENIZER_MODEL, \"wb\"), protocol=0)\n","# pickle.dump(encoder, open(ENCODER_MODEL, \"wb\"), protocol=0)"]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.12"}},"nbformat":4,"nbformat_minor":4}