{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":6262939,"sourceType":"datasetVersion","datasetId":3599815}],"dockerImageVersionId":30527,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n#Text cleaning\nimport re, string\n!pip install emoji\nimport emoji\nimport nltk\nfrom nltk.stem import WordNetLemmatizer,PorterStemmer\nfrom nltk.corpus import stopwords\nnltk.download('stopwords')\nstop_words = set(stopwords.words('english'))\n\n#Data preprocessing\nfrom sklearn import preprocessing\nfrom sklearn.model_selection import train_test_split\nfrom imblearn.over_sampling import RandomOverSampler\n\n#Naive Bayes\nfrom sklearn.feature_extraction.text import CountVectorizer\nfrom sklearn.feature_extraction.text import TfidfTransformer\nfrom sklearn.naive_bayes import MultinomialNB\n\n\n#PyTorch LSTM\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom torch.utils.data import TensorDataset, DataLoader, RandomSampler, SequentialSampler\n\n#Tokenization for LSTM\nfrom collections import Counter\nfrom gensim.models import Word2Vec\n\n#Transformers library for BERT\n!pip install transformers\nimport transformers\nfrom transformers import BertModel\nfrom transformers import BertTokenizer\nfrom transformers import AdamW, get_linear_schedule_with_warmup\n\nfrom sklearn.metrics import classification_report, confusion_matrix\n\n#Seed for reproducibility\nimport random\n\nseed_value=42\nrandom.seed(seed_value)\nnp.random.seed(seed_value)\ntorch.manual_seed(seed_value)\ntorch.cuda.manual_seed_all(seed_value)\n\nimport time\n\n#set style for plots\nsns.set_style(\"whitegrid\")\nsns.despine()\nplt.style.use(\"seaborn-whitegrid\")\nplt.rc(\"figure\", autolayout=True)\nplt.rc(\"axes\", labelweight=\"bold\", labelsize=\"large\", titleweight=\"bold\", titlepad=10)","metadata":{"execution":{"iopub.status.busy":"2024-02-27T09:09:37.032955Z","iopub.execute_input":"2024-02-27T09:09:37.033392Z","iopub.status.idle":"2024-02-27T09:10:24.697861Z","shell.execute_reply.started":"2024-02-27T09:09:37.033358Z","shell.execute_reply":"2024-02-27T09:10:24.696266Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n","output_type":"stream"},{"name":"stdout","text":"Requirement already satisfied: emoji in /opt/conda/lib/python3.10/site-packages (2.6.0)\n[nltk_data] Downloading package stopwords to /usr/share/nltk_data...\n[nltk_data] Package stopwords is already up-to-date!\nRequirement already satisfied: transformers in /opt/conda/lib/python3.10/site-packages (4.30.2)\nRequirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from transformers) (3.12.2)\nRequirement already satisfied: huggingface-hub<1.0,>=0.14.1 in /opt/conda/lib/python3.10/site-packages (from transformers) (0.16.4)\nRequirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.10/site-packages (from transformers) (1.23.5)\nRequirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.10/site-packages (from transformers) (21.3)\nRequirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.10/site-packages (from transformers) (6.0)\nRequirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.10/site-packages (from transformers) (2023.6.3)\nRequirement already satisfied: requests in /opt/conda/lib/python3.10/site-packages (from transformers) (2.31.0)\nRequirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /opt/conda/lib/python3.10/site-packages (from transformers) (0.13.3)\nRequirement already satisfied: safetensors>=0.3.1 in /opt/conda/lib/python3.10/site-packages (from transformers) (0.3.1)\nRequirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.10/site-packages (from transformers) (4.65.0)\nRequirement already satisfied: fsspec in /opt/conda/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (2023.6.0)\nRequirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (4.6.3)\nRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.10/site-packages (from packaging>=20.0->transformers) (3.0.9)\nRequirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests->transformers) (3.1.0)\nRequirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests->transformers) (3.4)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests->transformers) (1.26.15)\nRequirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.10/site-packages (from requests->transformers) (2023.5.7)\n","output_type":"stream"},{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/__init__.py:98: UserWarning: unable to load libtensorflow_io_plugins.so: unable to open file: libtensorflow_io_plugins.so, from paths: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io_plugins.so']\ncaused by: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io_plugins.so: undefined symbol: _ZN3tsl6StatusC1EN10tensorflow5error4CodeESt17basic_string_viewIcSt11char_traitsIcEENS_14SourceLocationE']\n warnings.warn(f\"unable to load libtensorflow_io_plugins.so: {e}\")\n/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/__init__.py:104: UserWarning: file system plugins are not loaded: unable to open file: libtensorflow_io.so, from paths: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io.so']\ncaused by: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io.so: undefined symbol: _ZTVN10tensorflow13GcsFileSystemE']\n warnings.warn(f\"file system plugins are not loaded: {e}\")\n/tmp/ipykernel_32/1414603384.py:60: MatplotlibDeprecationWarning: The seaborn styles shipped by Matplotlib are deprecated since 3.6, as they no longer correspond to the styles shipped by seaborn. However, they will remain available as 'seaborn-v0_8-\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0InputlabelLengthPredicted_Label
00charlie hebdo become well known for publish th...0.082joy
11now 10 dead in a shooting there today retweet ...0.0138joy
22bbcdaniel bbcworld I am guess this is being co...0.093anger
33bbcdaniel bbcworld why would you mention that ...0.095joy
44bbcdaniels bbcworld perps identify0.039fear
..................
6244062440anonyop xplant so that mean its ok to torch an...1.076fear
6244162441rianalden not at all but they need to change s...1.085anger
6244262442xplant anonyop absoluteky but it pain I to see...1.0138sadness
6244362443xplant anonyop I am curious how many of these ...1.0140joy
6244462444xplant anonyop you get 15000 people show up to...1.0143sadness
\n

62445 rows × 5 columns

\n"},"metadata":{}}]},{"cell_type":"code","source":"emotion.Predicted_Label.value_counts()","metadata":{"execution":{"iopub.status.busy":"2024-02-27T09:10:52.020897Z","iopub.execute_input":"2024-02-27T09:10:52.021361Z","iopub.status.idle":"2024-02-27T09:10:52.043896Z","shell.execute_reply.started":"2024-02-27T09:10:52.021321Z","shell.execute_reply":"2024-02-27T09:10:52.042373Z"},"trusted":true},"execution_count":3,"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"joy 18131\nsadness 16588\nanger 12578\nfear 11310\nlove 3238\nsurprise 600\nName: Predicted_Label, dtype: int64"},"metadata":{}}]},{"cell_type":"code","source":"emotion['text'] = emotion['Input'] +\" \" + emotion['Predicted_Label']\nemotion.text[31217]","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:18.297052Z","iopub.execute_input":"2023-08-31T04:52:18.297452Z","iopub.status.idle":"2023-08-31T04:52:18.341536Z","shell.execute_reply.started":"2023-08-31T04:52:18.297420Z","shell.execute_reply":"2023-08-31T04:52:18.340425Z"},"trusted":true},"execution_count":3,"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"'marcburleigh holopainenminna laracchi fear'"},"metadata":{}}]},{"cell_type":"code","source":"emotion.label.value_counts()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:19.837509Z","iopub.execute_input":"2023-08-31T04:52:19.837906Z","iopub.status.idle":"2023-08-31T04:52:19.850119Z","shell.execute_reply.started":"2023-08-31T04:52:19.837876Z","shell.execute_reply":"2023-08-31T04:52:19.848888Z"},"trusted":true},"execution_count":4,"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":"0.0 48619\n1.0 13824\nName: label, dtype: int64"},"metadata":{}}]},{"cell_type":"code","source":"emotion[emotion.duplicated()]","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:21.431169Z","iopub.execute_input":"2023-08-31T04:52:21.432099Z","iopub.status.idle":"2023-08-31T04:52:21.521441Z","shell.execute_reply.started":"2023-08-31T04:52:21.432049Z","shell.execute_reply":"2023-08-31T04:52:21.520193Z"},"trusted":true},"execution_count":5,"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"Empty DataFrame\nColumns: [Unnamed: 0, Input, label, Length, Predicted_Label, text]\nIndex: []","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0InputlabelLengthPredicted_Labeltext
\n
"},"metadata":{}}]},{"cell_type":"code","source":"def conf_matrix(y, y_pred, title, labels):\n fig, ax =plt.subplots(figsize=(7.5,7.5))\n ax=sns.heatmap(confusion_matrix(y, y_pred), annot=True, cmap=\"Purples\", fmt='g', cbar=False, annot_kws={\"size\":30})\n plt.title(title, fontsize=25)\n ax.xaxis.set_ticklabels(labels, fontsize=16) \n ax.yaxis.set_ticklabels(labels, fontsize=14.5)\n ax.set_ylabel('Test', fontsize=25)\n ax.set_xlabel('Predicted', fontsize=25)\n plt.show()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:22.554280Z","iopub.execute_input":"2023-08-31T04:52:22.555032Z","iopub.status.idle":"2023-08-31T04:52:22.563763Z","shell.execute_reply.started":"2023-08-31T04:52:22.554987Z","shell.execute_reply":"2023-08-31T04:52:22.562642Z"},"trusted":true},"execution_count":6,"outputs":[]},{"cell_type":"code","source":"emotion = emotion.drop_duplicates()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:23.753023Z","iopub.execute_input":"2023-08-31T04:52:23.753423Z","iopub.status.idle":"2023-08-31T04:52:23.826561Z","shell.execute_reply.started":"2023-08-31T04:52:23.753393Z","shell.execute_reply":"2023-08-31T04:52:23.825559Z"},"trusted":true},"execution_count":7,"outputs":[]},{"cell_type":"code","source":"emotion.shape","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:25.247631Z","iopub.execute_input":"2023-08-31T04:52:25.248007Z","iopub.status.idle":"2023-08-31T04:52:25.254524Z","shell.execute_reply.started":"2023-08-31T04:52:25.247977Z","shell.execute_reply":"2023-08-31T04:52:25.253516Z"},"trusted":true},"execution_count":8,"outputs":[{"execution_count":8,"output_type":"execute_result","data":{"text/plain":"(62445, 6)"},"metadata":{}}]},{"cell_type":"code","source":"emotion = emotion.dropna(subset=['text', 'label'])","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:26.233380Z","iopub.execute_input":"2023-08-31T04:52:26.234113Z","iopub.status.idle":"2023-08-31T04:52:26.273468Z","shell.execute_reply.started":"2023-08-31T04:52:26.234071Z","shell.execute_reply":"2023-08-31T04:52:26.272468Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"code","source":"emotion.label.value_counts()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:27.470392Z","iopub.execute_input":"2023-08-31T04:52:27.470781Z","iopub.status.idle":"2023-08-31T04:52:27.480796Z","shell.execute_reply.started":"2023-08-31T04:52:27.470752Z","shell.execute_reply":"2023-08-31T04:52:27.479573Z"},"trusted":true},"execution_count":10,"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"0.0 48619\n1.0 13824\nName: label, dtype: int64"},"metadata":{}}]},{"cell_type":"code","source":"#Clean emojis from text\n#remove emoji\ndef remove_emojis(text):\n return demoji.replace(text, '')\n#Remove punctuations, links, stopwords, mentions and \\r\\n new line characters\ndef strip_all_entities(text): \n text = text.replace('\\r', '').replace('\\n', ' ').lower() #remove \\n and \\r and lowercase\n text = re.sub(r\"(?:\\@|https?\\://)\\S+\", \"\", text) #remove links and mentions\n text = re.sub(r'[^\\x00-\\x7f]',r'', text) #remove non utf8/ascii characters such as '\\x9a\\x91\\x97\\x9a\\x97'\n banned_list= string.punctuation\n table = str.maketrans('', '', banned_list)\n text = text.translate(table)\n text = [word for word in text.split() if word not in stop_words]\n text = ' '.join(text)\n text =' '.join(word for word in text.split() if len(word) < 14) # remove words longer than 14 characters\n return text\n\ndef decontract(text):\n text = re.sub(r\"can\\'t\", \"can not\", text)\n text = re.sub(r\"n\\'t\", \" not\", text)\n text = re.sub(r\"\\'re\", \" are\", text)\n text = re.sub(r\"\\'s\", \" is\", text)\n text = re.sub(r\"\\'d\", \" would\", text)\n text = re.sub(r\"\\'ll\", \" will\", text)\n text = re.sub(r\"\\'t\", \" not\", text)\n text = re.sub(r\"\\'ve\", \" have\", text)\n text = re.sub(r\"\\'m\", \" am\", text)\n return text\n\n#clean hashtags at the end of the sentence, and keep those in the middle of the sentence by removing just the \"#\" symbol\ndef clean_hashtags(tweet):\n new_tweet = \" \".join(word.strip() for word in re.split('#(?!(?:hashtag)\\b)[\\w-]+(?=(?:\\s+#[\\w-]+)*\\s*$)', tweet)) #remove last hashtags\n new_tweet2 = \" \".join(word.strip() for word in re.split('#|_', new_tweet)) #remove hashtags symbol from words in the middle of the sentence\n return new_tweet2\n\n#Filter special characters such as \"&\" and \"$\" present in some words\ndef filter_chars(a):\n sent = []\n for word in a.split(' '):\n if ('$' in word) | ('&' in word):\n sent.append('')\n else:\n sent.append(word)\n return ' '.join(sent)\n\n#Remove multiple sequential spaces\ndef remove_mult_spaces(text):\n return re.sub(\"\\s\\s+\" , \" \", text)\n\n#Stemming\ndef stemmer(text):\n tokenized = nltk.word_tokenize(text)\n ps = PorterStemmer()\n return ' '.join([ps.stem(words) for words in tokenized])\n\n#Lemmatization \n#NOTE:Stemming seems to work better for this dataset\ndef lemmatize(text):\n tokenized = nltk.word_tokenize(text)\n lm = WordNetLemmatizer()\n return ' '.join([lm.lemmatize(words) for words in tokenized])\n\n\n#Then we apply all the defined functions in the following order\ndef deep_clean(text):\n #text = remove_emojis(text)\n text = decontract(text)\n text = strip_all_entities(text)\n text = clean_hashtags(text)\n text = filter_chars(text)\n text = remove_mult_spaces(text)\n text = stemmer(text)\n return text\n","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:29.118445Z","iopub.execute_input":"2023-08-31T04:52:29.119494Z","iopub.status.idle":"2023-08-31T04:52:29.137802Z","shell.execute_reply.started":"2023-08-31T04:52:29.119456Z","shell.execute_reply":"2023-08-31T04:52:29.136290Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"emotion.label.value_counts()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:44.274233Z","iopub.execute_input":"2023-08-31T04:52:44.274655Z","iopub.status.idle":"2023-08-31T04:52:44.284028Z","shell.execute_reply.started":"2023-08-31T04:52:44.274611Z","shell.execute_reply":"2023-08-31T04:52:44.283008Z"},"trusted":true},"execution_count":13,"outputs":[{"execution_count":13,"output_type":"execute_result","data":{"text/plain":"0.0 48619\n1.0 13824\nName: label, dtype: int64"},"metadata":{}}]},{"cell_type":"code","source":"text_len = []\nfor t in emotion.text:\n tweet_len = len(t.split())\n text_len.append(tweet_len)","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:45.388371Z","iopub.execute_input":"2023-08-31T04:52:45.388763Z","iopub.status.idle":"2023-08-31T04:52:45.508461Z","shell.execute_reply.started":"2023-08-31T04:52:45.388733Z","shell.execute_reply":"2023-08-31T04:52:45.507170Z"},"trusted":true},"execution_count":14,"outputs":[]},{"cell_type":"code","source":"emotion['text_len'] = text_len","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:47.562273Z","iopub.execute_input":"2023-08-31T04:52:47.562685Z","iopub.status.idle":"2023-08-31T04:52:47.600871Z","shell.execute_reply.started":"2023-08-31T04:52:47.562649Z","shell.execute_reply":"2023-08-31T04:52:47.599440Z"},"trusted":true},"execution_count":15,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(7,5))\nax = sns.countplot(x='text_len', data=emotion[emotion['text_len']<8], palette='mako')\nplt.title('Count of tweets with less than 8 words', fontsize=20)\nplt.yticks([])\nax.bar_label(ax.containers[0])\nplt.ylabel('count')\nplt.xlabel('')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:49.101938Z","iopub.execute_input":"2023-08-31T04:52:49.102734Z","iopub.status.idle":"2023-08-31T04:52:49.579740Z","shell.execute_reply.started":"2023-08-31T04:52:49.102700Z","shell.execute_reply":"2023-08-31T04:52:49.578618Z"},"trusted":true},"execution_count":16,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAArIAAAHpCAYAAAB+2N8pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABNYUlEQVR4nO3deXQUVeL28adDFohASADZ9yXIHsIWiAQRkXGUTRnxzMCgrIooIBhxwRHBgBsqIAIKAiLiIMgA6rANiAIS9i1sQgg7WSCQBRKSfv/gl35T6U4ISSedCt/PORztW9XVtzpV1U/dunXLYrVarQIAAABMxs3VFQAAAADygiALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMyd3VFQDy4vr161q4cKE2bdqkyMhIJSQkKD093TZ95syZ6tq1qwtriOLujz/+0IABAwxlvXv31pQpU/K97OXLl2v8+PGGshdffFEjR47M97Jz4u/vb3hdrVo1bdy4sUA/szh77bXXtGLFCkPZwoUL1a5dOxfVCCh++3mxD7KRkZFav369wsPDderUKV25ckVJSUkqVaqUKleuLH9/fwUFBalLly7y8/NzdXWRC5cuXdIzzzyjc+fOuboqAIC7lJCQoNWrV+vXX3/ViRMnFBMToxs3bsjLy0u+vr6qU6eOOnbsqB49eqhChQquri6KuGIbZM+cOaMPPvhA69atM7TUZbh+/bquX7+u48ePa/Xq1fL09NQrr7yigQMHFn5li4CCbF1ytvfff9/pIXb69OmaMWOGoSwsLEx9+vRx6ucUJ126dLH7Oxw9etRFtSm6zLRvIXscI5xj06ZNGj9+vOLi4uymJSUlKSkpSefOndNvv/2m6dOnKzQ0VP369XNBTWEWxTLI/u9//9Orr76qa9eu5fo9KSkpOnLkSAHWCs6Qlpbm8BJIQECAGjdurBIlSkiSatSoUdhVwz2mcuXKdgG1efPmLqoNUPQdOHBAI0aM0K1bt3I1f1JSkt5++22VLVtWjz32WAHXDmZV7ILs9u3bNXLkSKWmptpNK1OmjFq3bq1KlSopJSVF586d0759+3Tjxg0X1BR5ERcXp6SkJENZrVq1tGTJElksFhfVCveiWrVq6Y033nB1NQDTmDlzpsMQ27ZtW9WpU0cXLlzQb7/9ZncVdebMmQRZZKtYBdm4uDi9/PLLdiHW3d1dL7/8sgYOHChPT0/DtJSUFP3000/68ssvC7OqyKObN2/alVWqVIkQCwBF3J49e+zK3njjDcOVjY0bN+r55583zHPixAklJCSodOnSBV5HmE+xCrJz587V1atX7co/+OCDbM/mPD091atXLz3++OM6fPhwtsu+fv26fvjhB/3+++86duyY7XPKlSunRo0aqWPHjurTp0+2O9rd3IWcmzsKc1re/v37tXDhQoWHhys2NlZly5ZVYGCghgwZYnfp09FdtRlWrFhhNy2/fft27typVatWaffu3bp8+bLt4FSpUiUFBgaqR48eCggIsHufo/5pGXbs2GH4zu7mDkxH/TwzjB8/3u47zugT16lTJ126dMlW7u/vr//85z+GeTds2KAXXnjB9trb21vh4eFyd///u11UVJQeeeQRw/v+8Y9/6K233rKrT3p6utauXav169frwIEDiomJ0c2bN+Xr66tGjRqpS5cuevLJJ+1O1hxJSUnRqlWrtHnzZh08eFBXrlxRWlqa/Pz81KxZM3Xr1k2PPfaYratGBkf9PTPLuu1K9v1mN23apJ9++kmHDx/WhQsXdOPGDZUqVUq+vr4qX768GjZsqObNmysoKEjVqlW747pkFhkZqUcffdRQ1r9/f7355puGsrCwMH399de218HBwfrqq68M8/z73/+2e99nn31mW/6d+r4W1L516NAhLVy4UNu3b7/j/l3Q4uLitGzZMm3btk0nTpzQ1atX5eHhoYoVK6p169bq3bu3WrduneMyYmJi9P3332vbtm06deqUrl27pvT0dJUrV06+vr6qUaOGGjdurMDAQAUGBjrcvgtym8rrMeJO1q1bp6VLl+rw4cO6du2a7r//foWEhGj48OGqVKmSw/dERUUpPDxcBw8eVEREhK5cuaKrV68qISFBnp6eKleunBo2bKigoCD17NlTvr6+Dpdz9uxZPfzww4aytm3batGiRbp06ZLmzZunTZs26eLFi/Lw8FCjRo3Ur18/Pf7443dcr5ykpKTYlWX9rrp06SIfHx/Fx8cbynPbHSFDcnKy2rRpY2jY6tKli2bNmmWYb+HChZo8ebLtde3atfXf//7XMM+2bdvs7p8JDQ3Vc889Z/e5N27c0MqVK/Xrr7/a/ka3bt2Sj4+P6tevr6CgIPXt2zfHm8uzywAXLlzQV199pS1btujixYu6ceOG3SgYaWlp+u6777Ry5Ur9+eefslqtql27tv7617+qf//+ufp9yJCQkKBly5Zpy5Yt+vPPP22/Ez4+PvL19VWVKlX0wAMPKDAwUG3atJG3t3eul+1MxSbIpqSk6LvvvrMrf/zxx3N1ScLd3T3bH4Hly5dr0qRJSkxMtJt28eJFXbx4UZs2bdL06dP1zjvvuPQSyLRp0zRnzhzDpZnY2FitXbtWGzdu1EcffaTu3bsXer1iYmL06quv6vfff7ebdvXqVV29elVHjx7Vt99+q4ceekhhYWHZHoSLgjZt2mj16tW218ePH7drMdi9e7fhPUlJSTp8+LBhO9u1a5fdstu2bWtXFhERoTFjxujkyZN20y5fvqzLly/r119/1Zw5c/TJJ5+oRYsW2dZ927ZtCg0NNQTxDBcuXNCFCxe0du1azZkzR9OnT1ft2rWzXdbduHnzpl566SVt2rTJblrGzZdRUVHas2ePli5dqqCgIEPYzI3atWurUqVKhnXL+ndwVLZnzx6lpaUZgnvWeSwWi9q0aXNX9XG2uXPnatq0aUpLS7OVuWr//vrrrzVt2jS7rlkpKSlKTExUZGSkli1bpkcffVRhYWG677777JaxefNmjRo1yq67kCRFR0crOjpax44d04YNGyRJixcvNgTjwtimnC0lJUUvv/yyfvnlF0P5uXPn9O2332rt2rVatGiR6tata/feDz/80C5kZbh165aSkpJ0/vx5bdq0STNnztSkSZPsTuxysm7dOoWGhhp+627cuKHw8HCFh4dr3759+epOU6tWLUVERBjKYmJiDMfNjBu+MqtQoYLKlSt3V59VqlQpNW3a1NAK7KhFOOt+HhkZqdjYWJUvX95Wltvj9ObNmzV+/HjFxsbaTcvYnrdt26bPP/9co0ePvquby7dt26aRI0fq+vXr2c6TkJCgIUOG2K3ToUOHdOjQIa1YsSLXV58PHjyooUOHOlyXmJgYxcTE6Pjx4/r1118l3b4Ju2fPnrleH2cqNg9E2LNnj8ODYU6tR7kxZ84cjR8/3mGIzeratWsaPXq0Fi9enK/PzKslS5boiy++cDhKg3T7QPfGG284vFu0IMXExOhvf/ubwxDryP/+9z/169fvrm7WK2xZx4FMT0+3O0g6OvhlLcv62lFY2rNnj/r16+cwxGZ1/vx59e/f3+EBW5L++9//6rnnnnMYYrM6duyYnn76aUVFRd1x3tyYPXu2w8DhbFm/v6NHjxqODcnJyXY/pomJiXY3e2b92zRo0MClQ/StXLlSH374oSHEZlaY+/fkyZMVFhaWq/sL/vvf/2rgwIF2rXHx8fEaO3asw+N2bhXWNuVM//rXv+xCbGYxMTF6/fXX8/05165d0yuvvJLtsSCrY8eO6eWXX87xt27hwoX67bff8lwnR6MPjB8/XhEREbp586YiIyM1duxYu+6Bzz77bJ4+L+tx+sqVK3bHUUcnunc6TpcpU0YPPPCAoWz16tUaNmyYw+CX1Y0bNxQWFqYPPvjgjvNKtxt7XnzxxRxDrNVq1UsvveRwfTIcP35cgwcPvuPnpaWladSoUblal6Kg2LTI7t+/366sdOnSatasWZ6XuWvXLn388cd25VWqVFGHDh1ktVq1ZcsWRUdHG6a/9957CgwMVKNGjfL82XmRsdHVq1dPrVu31tmzZ+3CY0JCglauXGk7MHTs2FFlypTRpUuX7M7069Wrp44dOxrK8nLpMjQ01O7SnJubmzp27Kjq1avr9OnT2rZtm6xWq216ZGSkJkyYoE8++USS1KJFCw0YMEAJCQlavny5YVmVKlUytDr4+Pjkum59+vRRfHy89u3bp3379hmmdezYUfXq1TOU1a9fX5Ljs/Hdu3frwQcflHS71eXQoUN28+zatctwUL5TWEpMTNTIkSPtAkPlypXVunVreXl5ad++fTpx4oRt2s2bNzVq1Cj98ssvKlWqlK38/PnzCg0NtTvRqV27tlq0aCE3NzeFh4fr7NmztmlXr17VqFGj9MMPP8hisRju1P/hhx/sfvRyOnFctWqV4XWJEiXUtm1b1axZU9LtH5kTJ07o1KlThm3hbrVr187QWn7r1i3t27dPQUFBkm4fKxzdDLpr1y41adJE0u196fTp04bpjv7mOXH2vnXmzBnbe3O7fxeEX375RQsXLrQrDwgIUP369ZWQkKAtW7YoISHBNm3//v36+OOP9dprr9nKNm3aZHeyWqlSJbVt21Zly5ZVUlKSzpw5o6NHj2b7A14Y21RejxHZydi/2rZtq7p162r37t06duyYYZ49e/bo0KFDtu0xq2rVqqlWrVoqV66cypUrJ6vVqujoaO3evdtwIpOamqpp06Y5/HtlldFdzs/PT507d1ZKSorWrl1rdwLyzTffKDg4+I7Lc6Rv3746cOCAli1bZivbvXu3evXqle17nnnmmTxvz23bttUXX3xhKNu9e7ettfvs2bMOT+p37dqlbt26Sbod6vbu3WuY3rp1a8PVmzNnzuj111+328Z8fX3VqVMneXl5afv27XaNAl9++aXatm2rkJCQHNcj83G2devWql+/vuLj4w2/HytXrnTYWFSzZk21b99eiYmJ2rRpk44fP57jZ0m3t7+M403mdWnfvr38/Px048YNnT9/XkePHi30hjFHik2QdfRlVq9eXW5ueW90njlzpt2GGRwcrM8//1xeXl6Sbm9ggwcPNpwF3bp1S7NmzdKnn36a58/Oq169eum9996z7WRTp07VvHnzDPOEh4fbDgxPPPGEnnjiCf3xxx92P7bNmzfP913Zu3fvtjuDd3d315w5cww/5OvWrdPIkSMN3/cvv/yiY8eOqWHDhurUqZM6deqks2fP2gXZ/Nw9/uKLL0q63Qc364/U448/nm1ftztdwt6/f7/D/mCZ57ly5YpOnTplmJ41LC1evNjuRKlPnz6aOHGiPDw8JN0+E586darmz59vm+fixYv6/vvv9c9//tNWNnv2bCUnJxuW9cILL2jkyJG2/SQ1NVXjxo3Tzz//bJvn0KFD2rBhg7p27Wr4rjds2GAXZHP6O1y4cMFu3r///e9288XFxem3337L81jB2Z1kZARZRy3lGeUZQXznzp25Wm5OCmLfutv9uyBkPa55eHho5syZhh/juLg4PfPMM4qMjLSVffvttxo0aJAqVqwoyX57qFq1qn766SfDyZd0+2rHoUOHtHbtWpUtW9YwrTC2qbweI3Ly7rvv6m9/+5uk2yeeAwcOtGtJCw8Ptwuy/fv319ixY21BPaukpCQ999xzhlbYHTt2KD4+Plcn+A0bNtSiRYtsl/H/97//afjw4YZ5stt/cqNEiRKaPHmyunbtqs8++yzH+1Jq1KihKVOm3LGPdU5atWolDw8Pw4nr7t279dRTT0nK+ViQISIiwu6qQdZjwZw5c+xuRH7ggQe0YMEC2/eempqqsWPH2rXGT58+/Y5BVpK8vLw0c+ZMW2OJdDtkZ6ybo5OVhx9+WJ9++qntt+Ls2bPq16+f3W9KVln3q5IlS+qnn35yeEXq+PHjWrdune6///47rkNBKTZdCxydsTvqk3U3y9u+fbuhzGKxaOLEibYQm/EZb7/9tt37f/31V4dBpiB5eXkpNDTUcKbo6FJOYT4Ra926dXZlPXr0sGuNeuSRR+xuPrBarUX6sXlZL2Hv37/fdkNC5h+lgIAA26gKsbGxtvC6a9cuuxOlrAfItWvXGl6XKlVKb775pu3AJN3eLjOH0QyZw5PVarX7W1SrVk0vvfSS4X0eHh4Ob0DMrl/e3ci6P16+fNlhNxg/Pz/16NHD7s7l3Mo4ycgs898j8/+3atXKYXluunwUtqKwf584ccLu0uxjjz1m90Ps5+dnOImSbge2zN0Asm4PN2/edHizrpubm5o1a6ZXXnlFDRs2NEwrrG3KmZo0aWILsdLtv6ujMOzo79imTRvVrFlTiYmJ2rJlixYsWKBPP/1UU6ZM0eTJk+36T0u39/2sXWmyM2bMGENf1IceeshuX7p27Vq+un39+eef+u677+44bvuZM2f0yiuvGK6u3K2MfrKZ5eZYEBERYTvpv1P/WKvVqvXr19vN88YbbxhOHjw8PPT2228bjt3S7bF1c9PVa+jQoYYQK90+MShZsqTi4uLsrgC6ublpwoQJhs+rXr16rvaBrPtVWlpatuG3QYMGeuGFF2wNBa5QbFpky5QpY1eWn75Xhw4dsjsgNGjQwOEdr40aNbJrnUtKStLJkycLtXtBhw4d7M6YMlo/Mst8ya+gHThwwK6sc+fODuft3Lmz3QHB0fuLiqyXsJOSknTkyBE1bdrUcIDs3LmzEhMTbZcPd+3apTp16twxLKWlpdkdnJKTkw0H3Jzs379f6enpcnNz09mzZ+36O507dy7X22fWS2t50b59e0NrxBdffKGlS5eqQYMGqlOnjurWratGjRqpRYsWdq1ydyvrzXh79+61BZzM6zJ48GCNGDFCVqtVly9f1pkzZ1SjRo0i1z9WKhr7d9YWSen2Jc2VK1fm6v179+5V3759Jd3eHjKLjY3Vww8/rHr16qlOnTq2bSIgICDbFsjC3Kac5YknnrAry+3fMTY2Vh999JFWrVp1Vw0lV65cueM8ZcqUcXhsrlixol3QSkhIsGsdz439+/frn//8p91vc2BgoOrVq6fY2Fj99ttvttbNixcv6pVXXlFMTEyen7rZrl07Qwv1qVOnFBcXJz8/P8Nxul+/fjp+/LiuX7+uW7duae/evQoKCrpj/9izZ8/aXRG+7777HLYkZ4wKk7X1/cCBA9mOVJEhp5Z/Rycq9evXV+XKle3KO3XqlOPnSLdDvZeXl+3vkJqaqp49e6pWrVqqV6+eateurbp166pFixaqX7++y4e/LDZB1tGPzJkzZ2w/5HfLUVcFRxtFhipVqtjt7IXdUdpRyM7cepwhP/0P75aj77FKlSoO53X0/RblzubZXcJu0qSJ4cDZqlUrXbhwwRBkn3rqKbuDWdawdPXq1Wxv3MuN1NRUxcfHy9fXN1c/ZDmJiYnJ1/slafTo0frjjz8Mdbly5Yp27NihHTt22MpKliyp7t27a8yYMXc8uGcn60lGQkKC7fvPuHrj6empBx98UHXq1LG1Mu7atUvly5e3ay26224FBaEo7N/57Q+XeX9u0KCBBgwYYLgkmpaWpmPHjtn1Ga1fv76GDBli15eyMLcpZ6latapdWW7+jvHx8XrmmWfs+m7nRm5uyqtSpYrDQOKobnk5LlmtVr322mt2Ifajjz4yDOt1+vRpPfXUU4ZW3w8//FBdu3ZV9erV7/pzHfWT3bNnj9q0aWPoL9q6dWu1bNlSW7ZskXT7WBAUFGR3nM7aP9bRsbVy5crZhjtHv3932q/KlCnjcLvJ4OhKRnZ5JTfbf7ly5TRmzBiFhYXZyqxWqyIjIw3dhaTbx6UBAwaof//+dsM1FpZi07XA0Y0SCQkJOnjwoNM+w9lnHY4OBvkJHI6GJ3HVhpWhMENzYcvuEvaff/5pO7B4eHioefPmdpewb968adfaWhBhKT9XJZy9nNq1a+s///mP/vGPfxiGtsnqxo0b+vHHH/X00087PEDnRnYnGZlbV5o2bSpPT0/D32bXrl3at2+f3ZiVRSHIFsX9+2456lP9ySefKDAwMMd1OXHihEJDQ+2GDirMbcpZHP0dc9PY8sUXX+QpxEq5Ow5nN7yVs7axQ4cO6c8//zSUNW3a1G5s2lq1atla7TOkpqbmONJDTjL6yWa2e/du7dmzx/a9VKpUSdWqVbM7TkdFRdldUs96LHD03To7Kzi64nwn+a3DwIEDNX/+fAUHB9t9f5mdO3dOYWFhmjRpUr4+Lz+KTYtsQECAvL297X5wFy5cqA8//PCul+eohTdrB+g7Tct8YHV0oHJ0lnz+/PncVtEUypcvb9en7sKFCw5PPC5evOjw/UVZ1kvYu3fvNpzBN27cWCVLllRgYKCtLDIyUhs3brS7cz7rAbJcuXJyc3MznPCULVs2xzt8s8ro6+Roe65ataq6du2a62U5w/3336+33npLb775pk6ePKkTJ07o9OnTOnnypLZs2WJo+b1w4YKWLl2qYcOG3fXnOLoZL+slwoy/SWBgoO0u6l27dtmdnBSF/rFFhaP9MSAgINejw9SqVcuu7C9/+Yv+8pe/6Pr164qIiNCpU6d0+vRpHThwQOHh4YagMHPmTA0YMMAwqHthbVOu5uh+gT59+ujZZ59VzZo1VbJkSUm3WzjnzJlT2NW7o6wtedLtG7occXT1Ia/DADoaT3bXrl2GB9NkPhZk2Lt3r6FVP0PW43R2WcFqtToMk46ywp26Ld0plDo6Cckur+SmP26GDh06qEOHDkpOTtaRI0d08uRJRUVF6fDhw9q2bZvhN+y7777TsGHDcrxyXVCKTZD19PRUv3797O7gXbVqlR555JE7Dgp969Ytw2D1TZo0UYkSJQz9ZI8fP65z587Z7WRHjhyx2zi8vb0NA1o7euLF5cuX7cry07E9PxyddWc3XuXdaNasmcLDww1lmzdvdvj32Lx5s8P3FwZHJxq5Wf+sl7AvXbpkeMJXxhl+9erVDcFq7ty5huU4CkslSpRQ48aNDVcVEhISNHToUId96hzVP+PvWq1aNZUvX95waTcxMVHjxo3L1ZNeHH0X2X1nuWnBsVgsqlevnmHoomvXrikkJMRwMuqoT2ZuZT3JyNwCI/3/v03mH6+TJ0/aBt/PkN/+sQW1b7mCo/2xbNmyuRqBwWq15tgyWKZMGbVt29YQFKZNm2a4LJyUlKQ///zTbgxPqeC3qbweI5wlayNH6dKlNXnyZLt65WefKUiOWvUyD/WXmaMb3Rx1ccitrP1kDx06ZGggyDgWtGjRwjbKQWJior799lvDchyNH1u9enX5+fkZugckJiZq165ddv1k4+LiHN73kd/fOUf7w4kTJ3Tp0iW7E/OMrhN3o1SpUgoICDA8dTPrkw/T09N18OBBlwTZYtO1QJKGDBnicIiRMWPGaO7cuQ47x6empmrVqlXq1auXYaMtU6aM3c0IVqtVb7/9tmGYjaSkJE2cONFuuZ06dTIEBEd9e7Zs2WIYqy0iIkJLly69w1oWDEdBO+tloLzI+vhV6fbNIVu3bjWUrVu3zu5GL4vFoi5duuS7DrnhaISL3Ky/o0vOmYN75ktVmf8/a7eC7MJSxliGGdLT0/XSSy85PAmSbgfdn3/+WcOGDTMEAIvFYtf6Gh8fr1deeSXbO5Dj4uK0YsUK/eMf/7B7/K7keJvJPJ5tVlOmTNEPP/yQbX+wa9eu2e2j+Rn5I+tg6OfOnbOFAYvFYjso16pVSxUqVJB0ex/POiRQfrsVFNS+5QoZN1FltnnzZs2ePdvh2LzS7Za4L7/8Ut27dzeEsX379mnSpEnat29ftn0uHfWRz7xNFOY2lddjhLNkDYJJSUmGVkqr1ap58+bpjz/+KLQ63Q1HrfEHDhzQTz/9ZCg7ffq0/v3vf9vNm58nDGbdh1NSUgyBP+PYXLJkSUMozHqczto/VnJ8bJWkSZMmGY6tqampeuedd+z2k2bNmuW737afn5/dUG3p6el69913DZ93/vx5u0f0OnL+/HmNHz9e27dvz3a/dnTfRGGP1JSh2LTISrf/mJ9++qmGDBli+PJv3bqlDz/8UHPmzFGbNm10//336+bNm7pw4YL27dtnO1vPOkzHiBEjtHXrVkMrwpYtW/Too4+qY8eOSk9P12+//WYXKtzd3e2GuGjQoIHKlStn6J8VHx+vp59+Wg8//LDi4+O1adMmu7HoCkvNmjVlsVgM63ro0CH169dPjRo1sh1En3vuuWxv1nKkVatWCg4ONowle+vWLQ0aNEgdO3ZUjRo1dPr0abvvWZK6d+9uN9xOQXF0kF20aJGioqJUtWpVWSwWeXp6aty4cYZ5HF3CzixzeA0MDDSMz5pZdmHp73//uxYuXGg4aOzevVtdunRRmzZtVLVqVbm7uys+Pl4nT57UyZMnbdt+1u152LBhWrlypaFLy9q1a7Vlyxa1bdtWlSpVksVisQ0iHxkZaQsYju6YrV27to4ePWooGzRokB588EHbIydbt25ta33ft2+f5s+fL4vFojp16qhevXry9fWVu7u7oqOjtXXrVru+qc788cqsTp06hkcgt2rVym6os9wsJzcKat9ylZdeekmjR482lH388cdatGiRAgICVKFCBd28edP2eFlHXYak261WixYt0qJFi1S2bFk1bNhQ1atX13333acbN27o8OHDdndju7m5GS5HF+Y2lddjhLM0adLEcKk7PT1dTz75pEJCQlSqVCnt37/f7ia5oqRRo0aqVauWXT/f0aNH69tvv1XdunUVExNjGLUgg4eHh93wjHfD0XiyGby9vQ2jtwQGBjp8wJKU/bFg6NChWrlypaHeERER6tatm0JCQuTp6enwgQiSHA53mBcDBgxQaGiooWzdunX661//anggQm5GNUlNTdXy5cu1fPlyeXt7q2HDhqpRo4bKlCmj1NRUnThxwuFINs56nPndKlZBVpKCgoL02WefKTQ01K6l6dq1a3aXDXMSGBioMWPG6KOPPjKUX7hwwfBkkqxef/11u2GNPDw89PTTT2v27NmG8tjYWH3//fe21864wzwvSpcurcDAQLuB4Pfs2WO4JNOjR4+7/rGdOnWq/va3vxkuF6Wnp+d4iaN27doOW7oLSps2bVSqVCnDAwNu3bpl2F68vb0d/khlvYSdIXNLn2S8hJ1VdgfI0qVLa/r06Ro4cKDhIJmammrXqn0n1apV0/vvv69Ro0YZWsCSk5Mdduu4k06dOtmNLxsdHW14YEVaWppdNxKr1WoL3Tnx8PCwu+njbuR0kpH1bxEYGOgwyDqjf2xB7luu8Nhjj2n37t1atGiRoTw6Ojrbk4E7uXbtmnbu3OnwQRSZde/e3eGVi8LYpvJzjHCG/v372/XZTEhI0Jo1a2yv3d3d1bp1a7sx0IuKN954Q88//7xdl4zw8HC7LmiZPf/88/m6ZO2on2yGli1bGlpZAwMDDQ+XySy743SNGjX03nvvaezYsYYT1itXrujHH3/Mtl6DBw/O1cMQcqNnz55asWKF3d/+9OnThpOHKlWq5Hi/T1ZJSUnau3fvHYdgbNmypRo3bnxXdXaWYtW1IEOXLl20fPlydevWLddDb3l6ejocU3Po0KF67733cvVwhbJly+rjjz92+GQZ6fbOmLmPSVbVq1fXN998k6v6FoSxY8fmqx9SdipUqKClS5eqQ4cOuZq/c+fO+u677/I0TmFelS5dWqNGjcrTe7News6QdbxXf39/h9vRncJSq1atbGNj5lbFihXl7+9vV/7oo49q3rx5OQ7lklWNGjUctkb16NHjrvp23c1dtN7e3po6darDdbgb2X2vWf822Y3N66zxYwtq33KVN998U2+88YbDbhPZadmypa2lXrr7u6qDgoL0zjvvGMoKc5vKzzHCGbp166bnnnsu2+keHh6aPHlyvp6EVdBCQkL06aef5nqf8vT01JgxYzRixIh8f3Zuj9PZHQsc9Y/N7PHHH9fs2bNzdYNyyZIlNX78eKee9FgsFk2fPl0tW7bMdp5q1arZ3UeU3bLuxgMPPGB7nLwrFLsW2Qw1atTQ9OnTFRkZqbVr1yo8PFynTp3S1atXlZSUpFKlSqlKlSpq2LChgoKC9PDDD2e7cz355JN65JFH9MMPP+j333/XsWPHbF0EfH195e/vr+DgYPXp08dwoM6qVKlS+vrrr7Vw4UKtXr1ap0+flpubm+rUqaPu3burf//+Lh20OyAgQP/+97/11VdfaefOnYqOjnZan5eKFStq/vz5Cg8P16pVq7Rnzx5dunRJiYmJuu+++1S5cmUFBgaqR48eOYb9gjRw4EDVrFlT3333nQ4ePKj4+Hi7y5KO5PYAWaJECbVs2dLuedi5CUsPPPCAVq1apc2bN2vt2rXav3+/Ll++rISEBHl5ecnX11e1a9dWs2bN1KFDB4d9uTIEBQVp7dq1Wrt2rf73v//pwIEDio2NVVJSkkqWLKny5curbt26at68uYKDg9WiRQuHy/H09NTChQs1f/58bdiwQZGRkUpKSsr2hp65c+dq+/bt2rlzp44cOaLo6GjFxcUpPj5e7u7uKleunOrWraugoCD16dPH0JqdV+3bt3fYWp71b9O4cWO71jbJecNuFeS+5SoDBgwwtAIdPXpUV69eVUpKiry9vVW5cmXVq1dPrVu3VqdOneweahAUFKTVq1dr69at2r9/v06fPq24uDhduXLFtowqVaqoSZMm6t69u8OWq8LepvJ6jHCW0NBQtW3bVt98840OHDig5ORkVaxYUW3bttXAgQPVqFEjTZ8+vdDqkxePPPKIgoKC9PPPP+vXX3/VsWPHFBMTo+TkZHl6eqpcuXKqV6+e2rVrpx49ejjt5qF27drZjScr2R8Lypcvr9q1a9uNspDTMTVDSEiINm7cqJUrV2rz5s2KiIjQlStXlJaWJh8fH9WrV09BQUH629/+ViAPWClbtqwWL16spUuXasWKFbY+3NWrV1e3bt307LPP5phRMtSsWVPr16/X77//rn379unkyZOKi4tTXFyckpOTVapUKVWqVEkPPPCAunbtqm7durl0KECLtTgP9AkAAIBiq1h2LQAAAEDxR5AFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYErurvrgW7duKT4+Xl5eXnJzI08DAABASk9P182bN+Xj4yN395yjqsuCbHx8vCIjI1318QAAACjCateurfLly+c4j8uCrJeXl6TblSxVqpSrqgEAAIAiJDk5WZGRkbasmBOXBdmM7gSlSpWSt7e3q6oBAACAIig3XU/pnAoAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAAAUQeHh4Ro+fLiCg4Pl7++v9evXG6bHxMTotddeU3BwsFq0aKFBgwbZjdGfkpKid999V+3atVPLli01fPhwXbx40Tb97Nmzev3119WlSxc1b95cXbt21WeffaaUlJTCWMV8I8gCAAAUQUlJSfL399eECRPsplmtVo0YMUJnzpzR559/rhUrVqhatWp69tlnlZSUZJtv8uTJWrdunaZNm6Zvv/1WSUlJGjZsmNLS0iRJJ0+elNVq1cSJE7VmzRqNHz9e3333naZNm1Zo65kfLhtHFgAAANkLCQlRSEiIw2mRkZHau3evVq9erQYNGkiS3n77bXXo0EFr1qxR3759df36df3www96//331aFDB0nSBx98oM6dO2vr1q168MEH1alTJ3Xq1Mm23Bo1aujUqVNasmSJQkNDC34l84kWWQAAAJPJuPSf+elXJUqUkIeHh3bt2iVJOnjwoFJTU9WxY0fbPJUqVVKDBg20Z8+ebJd9/fp1+fj4FFDNnYsgCwAAYDJ169ZVtWrV9NFHHyk+Pl4pKSmaM2eOoqOjFR0dLel2H1oPDw+7UFqhQgXFxMQ4XG5UVJS++eYbPfPMMwW+Ds5AkAUAADAZDw8PffbZZ4qMjFTbtm3VsmVL/fHHH+rUqdMdH+1qtVodll+6dEmDBw9W9+7d1bdv34KottPRRxYAAMCEmjZtqpUrV+r69etKTU2Vn5+f+vbtq6ZNm0q63fKampqq+Ph4Q6tsbGysAgICDMu6dOmSBgwYoJYtW+rdd98t1PXID1pkAQAATKxMmTLy8/NTZGSkDh48qIcffljS7aDr4eGh33//3Tbv5cuXdfz4cUOQzQixTZo0UVhY2B1bdIsSWmQBAACKoMTEREVFRdlenz17VhEREfLx8VHVqlX1888/y8/PT1WrVtXRo0f13nvvqWvXrgoODpZ0O+A++eSTmjp1qnx9feXj46OpU6eqYcOGtlEMLl26pP79+6tKlSoKDQ1VXFyc7fMqVqxYuCucBwRZAACAIujgwYMaMGCA7XVYWJgkqXfv3poyZYqio6M1ZcoUxcbGqmLFiurZs6deeOEFwzJef/11ubu7a9SoUbpx44aCgoI0ZcoUlShRQpL0+++/6/Tp0zp9+rRhGC5JOnr0aAGvYf5ZrNn1+C1gSUlJioiI0AMPPCBvb29XVAEAAABFzN1kRPN0ggAAAAAyIcgCAAA4QbprLnKbjjO/J/rIAgAAOIGbxaLfzu5XfEqCq6tSZPl4llZw9eZOWx5BFgAAwEniUxIUd+O6q6txz6BrAQAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAHIlPDxcw4cPV3BwsPz9/bV+/XrDdH9/f4f/vvzyS9s80dHRGjdunDp27KiWLVuqd+/e+uWXXxx+XkpKinr27Cl/f39FREQU6LrBnHhELQAAyJWkpCT5+/urT58+GjlypN303377zfD6119/1RtvvKFHH33UVvbqq6/q+vXrmjVrlnx9fbVq1SqNHj1aNWvWVOPGjQ3vf//993X//ffryJEjBbNCMD2CLAAAyJWQkBCFhIRkO71ixYqG1xs2bFC7du1Uo0YNW9nevXv19ttvq3nz5pKkF154QQsWLNChQ4cMQXbz5s36/fffNX36dP36669OXhMUF3QtAAAAThcTE6PNmzfrqaeeMpS3atVKP//8s65evar09HStWbNGKSkpateuneG9b731lt5//32VLFmysKsOE6FFFgAAON2KFSt03333qVu3bobyTz75RKNGjVK7du3k7u6ukiVLasaMGapZs6YkyWq16rXXXlO/fv3UrFkznT171hXVh0kQZAEAgNP98MMPeuKJJ+Tl5WUo/+STT3Tt2jV9/fXX8vX11fr16/Xyyy9r8eLF8vf316JFi5SQkKBhw4a5qOYwE4IsAABwqp07d+rUqVP65JNPDOVRUVH65ptvtHr1ajVo0ECS1KhRI+3cuVOLFy/WxIkTtX37du3bt0/NmjUzvPfJJ5/UE088oalTpxbWasAECLIAAMCpli1bpiZNmqhRo0aG8uTkZEmSm5vxFp0SJUrIarVKkt58802NGjXKNu3y5csaNGiQpk2bphYtWhRsxWE63OwFAE7gjPE1M1itVg0ePNjhciRp06ZN6tu3r5o3b6527drpxRdfLLD1AjJLTExURESEbUzXs2fPKiIiQufPn7fNk5CQoF9++UV9+/a1e3/dunVVq1YtTZgwQfv371dUVJTmzZun33//XV27dpUkVa1aVQ0bNrT9q127tiSpZs2aqly5csGvJEyFFlkAcAJnjK+ZYcGCBbJYLA4/57///a/eeustjR49Wu3bt5fVatWxY8ecsxLAHRw8eFADBgywvQ4LC5Mk9e7dW1OmTJEkrVmzRlarVY8//rjd+z08PDRnzhx99NFHGj58uJKSklSzZk1NmTIlx2G9gOwQZAHACZwxvqYkHTlyRPPnz9eyZcsUHBxsmHbr1i1NnjxZ48aNM7R21a1b1wlrANxZu3btdPTo0Rznefrpp/X0009nO7127dqaPn16rj+zevXqd/xM3LsIsgBQyDLG18xowcqQnJysMWPG6K233rILvpJ0+PBhXbp0SW5uburVq5diYmLUqFEjhYaG2m6cuZeEh4frq6++0sGDBxUdHa2ZM2faLk9Lt7tzODJu3DgNHjxYkjRhwgRt3bpVly9flre3twICAjR27FjVq1fPNv/w4cN15MgRxcbGysfHR0FBQRo7dqwqVapUsCsI4I7oIwsAhSy78TXDwsIUEBBgCGOZnTlzRpI0Y8YMPf/88/riiy/k4+Ojf/zjH7p69WpBV7vIyejOMWHCBIfTf/vtN8O/9957TxaLxdCdo0mTJgoLC9NPP/2kr776SlarVYMGDVJaWpptnvbt2+uTTz7RL7/8os8++0xnzpzRyy+/XODrl1/p1nRXV8EU+J7MjRZZAChkjsbX3LBhg7Zv364VK1Zk+7709Ns/uMOHD7eFsbCwMHXq1Em//PKL+vXrV7AVL2Kc0Z0j8yXw6tWra9SoUerZs6fOnTtnG6B/4MCBtnmqVaumIUOGaMSIEUpNTZWHh4eT1sb53CxumrnnN527fs3VVSmyqpUpqxEBwXeeEUUWQRYAClF242tu375dUVFRatOmjaF85MiRat26tRYtWmQLZpkve3t6eqpGjRq6cOFCgdfdzLLrzpFZUlKSli9frurVq2d7d/zVq1e1atUqBQQEFOkQm+Hc9WuKvBbn6moABYYgCwCFKLvxNYcOHWo3XNETTzyh8ePH66GHHpIkNW3aVJ6enjp16pRat24tSUpNTdW5c+dUtWrVwlkBk8quO4ckLV68WB9++KGSkpJUt25dzZ8/X56enoZ5PvjgAy1evFjJyclq2bKlvvjii8KqOoAcEGQBwAkSExMVFRVle50xvqaPj48tZGaMrxkaGmr3/ooVKzq8watq1aq2S+GlS5dWv379NH36dFWpUkVVq1bVV199JUnq3r17QaxWsZHd41IlqUePHurYsaOio6P11VdfadSoUVqyZIlh3kGDBumpp57S+fPnNWPGDIWGhmr27NnZDpMGoHAQZAHACfI7vmZuvfrqq3J3d9err76qGzduqEWLFlqwYIF8fHzytwLFWHbdOTKUKVNGZcqUUe3atdWiRQu1bdtW69atM/yd/Pz85Ofnpzp16qhevXoKCQnR3r17FRAQUEhrAcARgiwAOIEzxtfMytHyPDw8FBoa6rBVF45l150jO1arVSkpKTlOl5TjPAAKB0EWAGBK+e3OcebMGf3000/q2LGj/Pz8dOnSJc2dO1clS5a0jYawf/9+7d+/X4GBgSpbtqzOnDmjzz77TDVr1qQ1FigCCLIA7jlp6ekq4cYw2ndS1L+n/Hbn8PT01M6dO7VgwQJdu3ZN5cuXV+vWrbVkyRKVL19ekuTl5aW1a9dq+vTpSkpKUsWKFfXggw9q2rRpdjeEASh8BFkA95wSbm5677t1irp8xdVVKbJq3u+r1/s94upq5Ci/3TkqVaqkuXPn5vh+f39/LVy4MM91BFCwCLIA7klRl6/oxPkYV1cDAJAPRfeaEQCg2EhL5zGgucH3BNwdWmQBAAWuhJubwtZuUtSVq66uSpFV07ecxnfr7OpqAKZCkAUAFIqoK1d1IjrW1dUAUIzQtQAAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYAAACmRJAFAACAKRFkAQAAYEoEWQAAAJgSQRYohsLDwzV8+HAFBwfL399f69evz3beCRMmyN/fX19//bXD6VarVYMHD3a4nFOnTun5559Xu3bt1KpVK/Xr10/bt2935qoAAJAtgixQDCUlJcnf318TJkzIcb7169dr3759uv/++7OdZ8GCBbJYLA6nDRs2TGlpaVqwYIGWL1+uBx54QMOHD1d0dHS+6g8AQG4QZIFiKCQkRKNHj1a3bt2ynefSpUuaOHGiPvzwQ3l4eDic58iRI5o/f77ee+89u2lxcXE6ffq0hg4dqkaNGql27dp65ZVXlJycrBMnTjhtXQAAyA5BFrgHpaena9y4cRo0aJAaNGjgcJ7k5GSNGTNGb731lipWrGg33dfXV/Xq1dOPP/6opKQk3bp1S0uXLlWFChXUpEmTgl4FAADk7uoKACh8c+fOlbu7uwYMGJDtPGFhYQoICFDXrl0dTrdYLJo/f76ef/55tWrVSm5ubipfvry+/PJLlS1btqCqDgCADUEWuMccPHhQCxcu1PLly7Pt+7phwwZt375dK1asyHY5VqtV//rXv1S+fHktXrxYJUuW1L///W8NGzZMy5Yty7HfLQAAzkCQBe4xO3fuVGxsrB566CFbWVpamqZOnaqFCxdq48aN2r59u6KiotSmTRvDe0eOHKnWrVtr0aJF2r59uzZt2qTw8HCVLl1aktSkSRNt3bpVP/74o4YOHVqo6wUAuPcQZIF7TM+ePdWhQwdD2aBBg9SzZ0/16dNHkjR06FD17dvXMM8TTzyh8ePH2wJwcnKyJNm16losFqWnpxdU9QEAsCHIAsVQYmKioqKibK/Pnj2riIgI+fj4qGrVqvL19TXM7+HhoQoVKqhu3bqSpIoVKzq8watq1aqqUaOGJKlly5YqW7asXnvtNY0YMUJeXl76/vvvde7cOXXu3LngVg4AgP9DkAWKoYMHDxpu5AoLC5Mk9e7dW1OmTHHKZ/j5+enLL7/UJ598on/+859KTU1VgwYNNHPmTDVq1MgpnwEAQE4IskAx1K5dOx09ejTX82/cuPGO8zhaXrNmzfTVV1/dVd0AAHAWxpEFAACAKRFkARdL48aoXOO7AgBkRtcCwMVKuLlp6uc/6cz5OFdXpUirUdVPoS885upqAACKEIIsUAScOR+nE5GXXV0NAABMha4FAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTylOQnTFjhmbOnOlwWnh4uMLDw/NVKQAAAOBO3PPyphkzZshisWjEiBF20/r37y83NzcdPnw435UDAAAAsuPUrgWpqamSJKvV6szFAgAAAHZy3SK7Y8cO7dixw1A2Y8YMw+uTJ09KkkqWLOmEqgEAAADZu6sgm7lfrNVqddhP1mKxqGbNms6pHQAAAJCNu+ojm9FlwGKxGF5n5unpqRdffNEJVQMAAACyl+sg27VrV1WrVk2SNH78eFksFoWFhdmmWywWlStXTo0bN9b999/v/JoCAAAAmeQ6yDZq1EiNGjWSJE2fPl0Wi0W9e/cusIoBAAAAOcnT8FsbN250dj0AAACAu5KnICtJ58+f15o1a3Tu3DndvHnTMM1isei9997Ld+UAAACA7OQpyG7dulXDhw+3jRvrCEEWAAAABSlPQfbDDz9USkpKttMzRjUAAAAACkqeguzJkydlsVj017/+VY8//rhKlSpFeAUAAEChylOQ9fX11cWLF/Wvf/1LpUuXdnadAAAAgDtyy8ubevXqJUk6cOCAM+sCAAAA5FqeWmSrVKmismXLauTIkerbt6/q1q0rDw8PwzwZYRcAAAAoCHkKshMmTJDFYpHVatXXX39tN91isRBkAQAAUKDyPI6s1Wo1/BcAAAAoTHkKsi+++KKz6wEAAADcFYIsAAAATClPoxYAAAAArpanFtkBAwbkON1isWjBggV5qhAAAACQG3kKsjt27Mj2SV5Wq5WnfAEAAKDA5XvUAgAAAMAV8hRkN2zYYHidlpam06dPa+bMmTp27JjmzJnjlMoBAAAA2clTkK1WrZpdWc2aNdWyZUsFBQVp6dKlat26db4rBwAAAGTHqaMWeHp6yt3dXb/++qszFwsAAADYyVOL7IwZM+zKkpOTtW3bNt24cUNeXl75rhgAAACQkzwH2exGJrBYLGrZsmV+6gQAAADckdNHLahXr57efPPNPFcIAAAAyI08BdmwsDC7Mi8vL1WrVk3NmjWTmxsPDAMAAEDBylOQ7d27t7PrAQAAANyVPHctkKSDBw9q48aNiomJUYUKFfTQQw+pWbNmzqobAAAAkK08B9n3339f8+fPN5TNmjVLAwcOVGhoaL4rBgAAAOQkT51Z165dq3nz5km6fdNX5n9ff/21fvnlF6dWEgAAAMgqTy2y3377rSTpvvvuU58+fVStWjWdO3dOK1as0PXr17VkyRJ1797dqRUFAAAAMstTkI2IiJDFYtHnn3+utm3b2sq7du2qAQMGKCIiwmkVBAAAABzJU9eCxMRESVLTpk0N5Rmvk5KS8lktAAAAIGd5CrJ+fn6SpP/85z+G8ozXvr6++awWAAAAkLM8dS0IDAzUzz//rHfeeUfff/+9rY9sRpeD1q1bO7ueAAAAgEGeWmSHDBkid/fbGTgiIkLr169XRESErFarSpQoocGDBzu1kgAAAEBWeQqyjRs31rRp01SuXDnD0FvlypXTxx9/rCZNmji7ngAAAIBBnh+I8Mgjj6hTp07avXu37cleAQEBKlmypDPrBwAAADiUpyA7Y8YMbdiwQT179tTAgQNt5V9//bVWrlyphx9+WC+++KKz6ggAAADYyVPXgp9//llHjhxR+/btDeXt27dXRESEfv75Z6dUDgAAAMhOnoLs+fPnJUl16tQxlGe8zpgOAAAAFJQ8Bdn09HRJ0sWLFw3lFy5cMEwHAAAACkqegmyVKlUkSVOmTFFycrIk6caNG3r//fclSVWrVnVS9QAAAADH8nSzV3BwsCIjI7Vp0yY9+OCDtgciJCYmymKxKDg42Nn1BAAAAAzy/ECEsmXLSpISEhJ07NgxJSYmymq1qmzZsjwQAQAAAAUuT0G2UqVKmjdvnurXry9Jtgci+Pv7a968eapUqZJTKwkAAABklecHIjRt2lSrVq3SmTNnFB0drYoVK6pGjRrOrBsAAACQrTwH2Qw1atQgwAIAAKDQ5alrAQAAAOBqBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZOFys2fPlr+/vyZPnmwrW7t2rQYNGqR27drJ399fERERhvdcvXpV7777rh599FG1aNFCnTt31qRJk3T9+vXCrj4AAHARgixcav/+/Vq6dKn8/f0N5UlJSQoICNDYsWMdvu/y5cu6fPmyQkNDtWrVKoWFhWnLli164403CqPaAACgCHB3dQVw70pMTNS4ceM0adIkzZo1yzCtV69ekqSzZ886fG/Dhg01ffp02+uaNWtq1KhRGjdunG7duiV3dzZtAACKO1pk4TITJ05USEiIOnTo4JTlJSQkqHTp0oRYAADuEfziwyXWrFmjw4cPa9myZU5Z3pUrV/T555/r6aefdsryAABA0UeQRaG7cOGCJk+erHnz5snLyyvfy0tISNCwYcNUr149vfjii06oIQAAMAOCLArdoUOHFBsbqz59+tjK0tLSFB4ersWLF+vAgQMqUaJErpaVkJCgwYMHy9vbWzNnzpSHh0dBVRsAABQxBFkUuvbt22vVqlWGsvHjx6tu3boaMmTIXYXYQYMGydPTU7NmzXJK6y4AADAPgiwKXenSpdWwYUNDmbe3t8qVK2crv3r1qi5cuKDLly9Lkk6dOiVJqlChgipWrKiEhAQ999xzSk5O1gcffKCEhAQlJCRIkvz8/HIdhgEAgHkRZFEkbdy4UePHj7e9Hj16tCTpxRdf1MiRI3Xo0CHt27dPkvTII48Y3rthwwZVr1698CoLAABcgiCLImHRokWG13369DH0oc2qXbt2Onr0aEFXCwAAFGGMIwsAAABTIsjCTlpauqurYAp8TwAAuBZdC2CnRAk3vTfxS0WdvuDqqhRZNWtV0esTBru6GgAA3NMIsnAo6vQFnTgW5epqAAAAZIuuBQAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLIAgAAwJQIsgAAADAlgiwAAABMiSALAAAAUyLI5lJ4eLiGDx+u4OBg+fv7a/369a6uEgAAwD2NIJtLSUlJ8vf314QJE1xdFQAAAEhyd3UFzCIkJEQhISGurgYAAAD+Dy2yAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCVGLcilxMRERUVF2V6fPXtWERER8vHxUdWqVV1YMwAAgHsTQTaXDh48qAEDBtheh4WFSZJ69+6tKVOmuKpaAAAA9yyCbC61a9dOR48edXU1AAAA8H9cFmTT09MlScnJya6qAnLQpFldla9Q1tXVKLIqV6mgpKQkpy2vcf37Vd6npNOWVxxVqljWqd95kxoVVP4+T6ctr7ip7Ofc71uSmlTwU3kvD6cuszipXKaM07/zBqV9VM6NNqvsVPS+z+nfeTnLfXJ3tzh1mcVJaYv3Hb/zjGyYkRVzYrFarVan1OwuxcbGKjIy0hUfDQAAgCKudu3aKl++fI7zuCzI3rp1S/Hx8fLy8pKbG4MnAAAA4HZL7M2bN+Xj4yN395yvKLgsyAIAAAD5QVMoAAAATIkgCwAAAFMiyAIAAMCUCLIAAAAwJYJsLoWHh2v48OEKDg6Wv7+/1q9f7+oqFWuzZ8/Wk08+qYCAAAUFBemFF17QyZMnXV2tYu3bb7/VE088oVatWqlVq1Z6+umntXnzZldX654ye/Zs+fv7a/Lkya6uSrE1ffp0+fv7G/517NjR1dUq1i5duqSxY8eqXbt2atGihXr27KmDBw+6ulrFVpcuXey2cX9/f73zzjuurlqBYJTkXEpKSpK/v7/69OmjkSNHuro6xd6OHTv097//Xc2aNVNaWpqmTZumQYMGac2aNfL29nZ19YqlypUra+zYsapZs6Yk6ccff9SIESO0YsUKNWjQwMW1K/7279+vpUuXyt/f39VVKfYaNGig+fPn216XKFHChbUp3uLj4/XMM8+oXbt2mjt3rvz8/HTmzBmVLcsDdwrKsmXLlJaWZnt9/PhxPfvss+revbsLa1VwCLK5FBISopCQEFdX457x1VdfGV6HhYUpKChIhw4dUps2bVxUq+KtS5cuhtejR4/WkiVLtHfvXoJsAUtMTNS4ceM0adIkzZo1y9XVKfZKlCihihUruroa94S5c+eqcuXKCgsLs5VVr17dhTUq/vz8/Ayv58yZo5o1a6pt27YuqlHBomsBTOH69euSJB8fHxfX5N6QlpamNWvWKCkpSQEBAa6uTrE3ceJEhYSEqEOHDq6uyj3h9OnTCg4OVpcuXTR69GidOXPG1VUqtjZu3KimTZvqpZdeUlBQkHr16qXvv//e1dW6Z6SkpOg///mPnnzySVksxfOxubTIosizWq0KCwtTYGCgGjZs6OrqFGtHjx5Vv379dPPmTXl7e2vmzJmqX7++q6tVrK1Zs0aHDx/WsmXLXF2Ve0Lz5s01depU1a5dW7GxsZo1a5b69eun1atXy9fX19XVK3bOnDmjJUuW6Nlnn9Xw4cO1f/9+TZo0SZ6enurVq5erq1fsrV+/XtevX1fv3r1dXZUCQ5BFkTdx4kQdO3ZM3377raurUuzVqVNHP/74o65du6a1a9cqNDRU33zzDWG2gFy4cEGTJ0/WvHnz5OXl5erq3BOydhFr2bKlHnnkEf3444969tlnXVSr4stqtapp06YaM2aMJKlx48Y6ceKElixZQpAtBD/88IM6deqkSpUquboqBYauBSjS3n33XW3cuFELFixQ5cqVXV2dYs/T01O1atVSs2bN9Morr6hRo0ZauHChq6tVbB06dEixsbHq06ePGjdurMaNG2vHjh1atGiRGjdubLhhAwXD29tbDRs2VGRkpKurUixVrFhR9erVM5TVrVtX58+fd1GN7h3nzp3T1q1b9dRTT7m6KgWKFlkUSVarVe+++67WrVunRYsWqUaNGq6u0j3JarUqJSXF1dUottq3b69Vq1YZysaPH6+6detqyJAh3E1fCFJSUvTnn38qMDDQ1VUpllq1aqVTp04ZyiIjI1WtWjUX1ejesXz5cpUvX16dO3d2dVUKFEE2lxITExUVFWV7ffbsWUVERMjHx0dVq1Z1Yc2Kp3feeUerV6/W559/rvvuu0/R0dGSpDJlyqhkyZIurl3x9PHHH6tTp06qXLmyEhMT9dNPP2nHjh368ssvXV21Yqt06dJ2/b69vb1Vrlw5+oMXkKlTp+qhhx5SlSpVFBcXp1mzZikhIaFY9yF0pX/+85965pln9MUXX+gvf/mL9u/fr++//14TJ050ddWKtfT0dC1fvly9evWSu3vxjnrFe+2c6ODBgxowYIDtdcZQIr1799aUKVNcVa1ia8mSJZKk/v37G8rDwsLUp08fV1Sp2IuJidGrr76qy5cvq0yZMvL399eXX37JYPEoVi5evKgxY8bo6tWr8vX1VcuWLfX999/TQlhAmjdvrhkzZujjjz/WzJkzVb16db3++uvq0aOHq6tWrG3dulXnz5/Xk08+6eqqFDiL1Wq1uroSAAAAwN3iZi8AAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCkRZAEAAGBKBFkAAACYEkEWAAAApkSQBQAAgCn9Py59ffxORu0BAAAAAElFTkSuQmCC"},"metadata":{}}]},{"cell_type":"code","source":"emotion = emotion[emotion['text_len'] > 3]","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:50.875292Z","iopub.execute_input":"2023-08-31T04:52:50.875689Z","iopub.status.idle":"2023-08-31T04:52:50.888648Z","shell.execute_reply.started":"2023-08-31T04:52:50.875660Z","shell.execute_reply":"2023-08-31T04:52:50.887445Z"},"trusted":true},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"emotion.sort_values(by=['text_len'], ascending=False)","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:52.310876Z","iopub.execute_input":"2023-08-31T04:52:52.311337Z","iopub.status.idle":"2023-08-31T04:52:52.345990Z","shell.execute_reply.started":"2023-08-31T04:52:52.311300Z","shell.execute_reply":"2023-08-31T04:52:52.344741Z"},"trusted":true},"execution_count":18,"outputs":[{"execution_count":18,"output_type":"execute_result","data":{"text/plain":" Unnamed: 0 Input label \\\n13377 13377 france24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _... 0.0 \n57474 57474 cnnvideo dnt b rude alexdiaz dnt let his name ... 1.0 \n49015 49015 rational_crisis what the fuck do the democrati... 0.0 \n58719 58719 kylestrunk I am say do not release your side o... 1.0 \n60133 60133 gretawire so you fuck thing he deserve to get ... 1.0 \n... ... ... ... \n10819 10819 glorioustyagi time httptcohqwvz3mfv8 0.0 \n42436 42436 amymek democrat voter 0.0 \n10830 10830 elbeardsley morningedition httptco1hlaxapvzz 0.0 \n33660 33660 jeffersonobama jesuischarlie too 1.0 \n35511 35511 time stopkillinginnocentpeoplefreepalestinefre... 1.0 \n\n Length Predicted_Label \\\n13377 140 fear \n57474 136 love \n49015 138 anger \n58719 137 anger \n60133 140 sadness \n... ... ... \n10819 43 anger \n42436 23 sadness \n10830 51 sadness \n33660 35 anger \n35511 93 sadness \n\n text text_len \n13377 france24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _... 50 \n57474 cnnvideo dnt b rude alexdiaz dnt let his name ... 35 \n49015 rational_crisis what the fuck do the democrati... 34 \n58719 kylestrunk I am say do not release your side o... 34 \n60133 gretawire so you fuck thing he deserve to get ... 33 \n... ... ... \n10819 glorioustyagi time httptcohqwvz3mfv8 anger 4 \n42436 amymek democrat voter sadness 4 \n10830 elbeardsley morningedition httptco1hlaxapvzz s... 4 \n33660 jeffersonobama jesuischarlie too anger 4 \n35511 time stopkillinginnocentpeoplefreepalestinefre... 4 \n\n[60582 rows x 7 columns]","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0InputlabelLengthPredicted_Labeltexttext_len
1337713377france24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _...0.0140fearfrance24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _...50
5747457474cnnvideo dnt b rude alexdiaz dnt let his name ...1.0136lovecnnvideo dnt b rude alexdiaz dnt let his name ...35
4901549015rational_crisis what the fuck do the democrati...0.0138angerrational_crisis what the fuck do the democrati...34
5871958719kylestrunk I am say do not release your side o...1.0137angerkylestrunk I am say do not release your side o...34
6013360133gretawire so you fuck thing he deserve to get ...1.0140sadnessgretawire so you fuck thing he deserve to get ...33
........................
1081910819glorioustyagi time httptcohqwvz3mfv80.043angerglorioustyagi time httptcohqwvz3mfv8 anger4
4243642436amymek democrat voter0.023sadnessamymek democrat voter sadness4
1083010830elbeardsley morningedition httptco1hlaxapvzz0.051sadnesselbeardsley morningedition httptco1hlaxapvzz s...4
3366033660jeffersonobama jesuischarlie too1.035angerjeffersonobama jesuischarlie too anger4
3551135511time stopkillinginnocentpeoplefreepalestinefre...1.093sadnesstime stopkillinginnocentpeoplefreepalestinefre...4
\n

60582 rows × 7 columns

\n
"},"metadata":{}}]},{"cell_type":"code","source":"plt.figure(figsize=(16,5))\nax = sns.countplot(x='text_len', data=emotion[(emotion['text_len']<=1000) & (emotion['text_len']>10)], palette='Blues_r')\nplt.title('Count of tweets with high number of words', fontsize=25)\nplt.yticks([])\nax.bar_label(ax.containers[0])\nplt.ylabel('count')\nplt.xlabel('')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:53.550972Z","iopub.execute_input":"2023-08-31T04:52:53.552107Z","iopub.status.idle":"2023-08-31T04:52:54.542092Z","shell.execute_reply.started":"2023-08-31T04:52:53.552055Z","shell.execute_reply":"2023-08-31T04:52:54.540229Z"},"trusted":true},"execution_count":19,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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1KlTOnXqlFatWqXPPvtM//nPf/Ikppz49ttvNX78eMXHx5vK4uPjdePGDR04cEBLly7V119/bUrObNq0SR999FG69+V//vlH//zzj1auXKlJkyapTZs2OYrnypUrGjx4sHbt2mVWHhUVpaioKO3cuVPLli3T1KlTs5SAOHXqlIKCgrRjxw6Lxy9fvqzLly9rz549mjFjhjp27Kjhw4erePHiOYr/xo0bGjp0qLZv356j87Pim2++0YwZM0xJtHslJycrJiZGFy5c0Pbt2zV16lS1a9dOw4YNk7u7e67FlFUF7XNm165d+uyzzyx+R5GkhIQEXbp0Sfv379fs2bPVoEEDjRgxQjVq1LDaZkZSU1M1efJkzZ8/X6mpqZnWP3v2rAYMGKBjx46Zlad9RwkNDVVgYKAmTpyYo1iCg4O1YMECq7N0kpKSTEvtbtmyRZLk6OioL7/8Uq1bt872NQEAuc8hvwMAAOSdjRs3Wl126u2331aZMmVsdq2LFy+qa9euWrhwodWZIfe7deuWvvzyS73xxhsWB9sLgnXr1ql3797pEhr32717twYPHpxHUWVddHS0evbsqalTp2b5Z5yYmKjFixera9euunjxYi5HmPuKFi2qmjVrpis/c+aMxXW2szOocOjQIYt/MFu7C/nq1at69dVX9dVXX1lMaFhy7NgxdevWTSEhIZnWXbFihV577TWrCY373b59W/PmzdPrr79umsmRGy5cuKBu3bpZTWhkJCYm5oGvb23gx9JzHRYWZvG5OXHihMVye0xqxMbGqmfPnukSGve7deuW3n777Uzf/2zhypUreu2119IlNO53+fJl9ezZU7GxsTa79vXr1/X6669nelf3mTNn1KNHD5vt2WE0GjVmzBhNnjw5XULjXikpKQoKCtLWrVttct2MxMTEqGfPnpkmEm/fvq0PP/xQhw8fzvWYcmLlypUaMWKEWULjfqdOnVL37t0VFxenkJAQffDBBxm+LycmJqp///5WB4kzcvPmTb3++uvpEhr3O378uF5//XWFh4dnWG/r1q3q0qWL1YTG/VJSUvTdd9+pa9eumbZtSWJionr37p1rCY2kpCQNGDBAo0ePtpjQsCTtLv/OnTvrxIkTuRJXdhSkz5kFCxbojTfeyNZrdc+ePeratavWrVuX5XPuFRQUpLlz52YpoREeHq7XX389XULjfrt2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RTOtAwAAAABAVjnkdwAAAAAFQdWqVRUSEqKVK1fqlVde0dChQ/XPP/9Iurus0pNPPqnq1aurVatWmjNnjs6ePatt27alaycxMVHr1q3Tiy++aPVaV65c0Ztvvqm2bduqS5cuudWlLElJSdH69eutzkx55plnNGLECF27di3duT/++KMCAwP13HPP6bPPPlNsbGy6OnPnzlVgYKA6dOigWbNmKSkpKVf7AwAAAAD4d2OmBgAAgO7OTKhcubIkyc/PT4cPH9bixYs1duzYdHXLlCkjT09PnT17Nt2xTZs2KTExUR07drR4nStXrqh79+7y9/fXuHHjbNmFbHnQmSnt27dXxYoVVbp0af3999+aPHmyTpw4oQULFpiu0b17d9WsWVOurq46fPiwJk+erPDwcH366af50mcAAAAAgP0jqQEAAGCB0Wi0Oqvgxo0bunTpksqUKZPu2HfffadWrVqpZMmS6Y6lJTRq1aqloKAgOTjk36TZtJkpt27d0ubNmzV06FAtXbpUjz76qJ599llTverVq6t27dpq1aqVtm3bpqefflqSzPbJqF69uipXrqzOnTvr6NGjqlWrliSpR48epjo1atSQq6ur3n//fQ0aNEju7u5501EAAAAAwL8Ky08BAICH3pQpU7R3716Fh4crLCxMwcHB2r17t9q3b6+4uDh99tlnOnDggMLDw7Vr1y716dNH7u7uat26tVk7586d0549eywuPXXlyhV169ZN5cqV09ChQ3X9+nVFRkYqMjIyr7ppJm1mip+fnz788EPVqFFDixcvtlg3o5kpaWrVqiUnJyedO3fOah1/f39Jd/cTAQAAAAAgJ5ipAQAAHnpRUVEaMmSIrl69quLFi8vX11dz585VkyZNlJiYqJMnTyokJEQxMTHy8PBQYGCggoODVaxYMbN2vvvuO5UtW1ZNmzZNd43ff/9d586d07lz59S8eXOzY2FhYbnav6zI6cyUNH///beSk5Mz3BT82LFjksTG4QAAAACAHDMYjUZjflw4Pj5ex48f12OPPaYiRYrkRwgAAAAPpSlTpqh58+YqV66c4uLitGHDBn399deaO3eu/P39NX36dD399NPy8PBQRESEgoODdfHiRW3YsEHFihXT+fPn9cMPP6hFixZyd3fXqVOnNGHCBLm4uGj16tVydHTUgQMHdOjQIQUGBqpYsWI6fPiw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oqeeeko//PCDiYnrztO1femllzRw4EB17dpVPXr0UFpamnbs2GFS2ivnqe/FsrKy5HQ69dprr/kvYD3y1HXy5MlyOp1V/gwbNsyktFfOm2u7f/9+ZWRkqHv37kpMTNSwYcP0/fffm5D2ynnqe+m1vfDn1VdfNSlx3XnqWlpaquzsbPXt21edO3fWb3/7Wy1fvtyktFfOU99jx45p8uTJSklJUZcuXZSenq7CwkJzwl6h3NxcDR06VImJiUpOTtbo0aP17bffVvkYwzD00ksvKSUlRZ07d9bw4cO1b98+kxLXnTdd7TRPeeprt3nKm+trl5nKm64Xs/o85U1fu8xU3l5bu8xT3vS10zzlTV+7zFTedLXTPLV8+XLde++96tatm7p166YHHnhAn3zyifu8XWYpyXNXO81SUu197TZLSZ6vr11mKclz14tZfZaSPPe1yywl/fLv9NIut9xyi/t8Q35MtuVSo6ysTE6nU1lZWTWeT0xMVGZmpp+T+UZtfc+cOaOCggKNGjVKq1ev1vz581VYWKhRo0aZkPTKebq27dq1U1ZWltauXavly5erVatWeuyxx/TTTz/5OWn98NT3gg0bNmjHjh2KjY31U7L6503XPn36aPPmze4/r7zyih8T1i9PfQ8dOqSHHnpI8fHxWrZsmd577z2NHj1ajRs39nPS+uGp78XXdfPmzZo5c6YcDofuvPNOPye9cp665uTkaNOmTZozZ47ef/99paWlafr06bUuLRuy2voahqExY8bou+++04IFC/Tuu++qVatWevTRR1VWVmZC2iuzdetWPfzww3rnnXe0dOlSVVRUKD09vUqXRYsWaenSpcrKytLKlSsVHR2tRx99VKdOnTIx+eXzpqud5ilPfe02T3lzfe0yU3nT9QI7zFPe9rXDTOVNVzvNU970tdM85U1fu8xUnrrabZ5q0aKFMjMztWrVKq1atUq9evXSmDFj3P+TzC6zlOS5q51mKan2vnabpSTP19cus5TkuesFdpilJO/62mGWuuD666+v0mXt2rXucw36MdmwuYSEBOPDDz+s9tx3331nJCQkGAUFBX5O5Tu19b1gx44dRkJCgnH48GE/pfINb7qWlJQYCQkJxn//+18/pfKdmvoePXrU6NOnj7F3716jX79+xtKlS/0frp5V1/Xpp582Ro0aZVIi36qu74QJE4zMzEyTEvmWN1+7o0aNMkaMGOGnRL5TXde7777bmD9/fpVjgwcPNubOnevHZL5xad9vv/3WSEhIMPbu3es+dv78eaNnz57GO++8Y0bEeuVyuYyEhARj69athmEYRmVlpXHLLbcYubm57o85e/as0b17d+Ott94yK2a9uLTrxew4T9XW9wK7zFOG4V1fu8xUNXW14zxlGNX3tetMVV1XO89T3nzd2mWeMozq+9p1prq0q93nKcMwjB49ehjvvPOOrWepCy50vZgdZ6kLqut7gZ1mqQtq62uXWeqCS7vadZa64OK+dpqlXnzxReN3v/tdteca+mOyLZ+pgdqdOnVKDodDzZo1MzuKT507d04rVqxQeHi4nE6n2XF8orKyUpMmTVJ6erquv/56s+P43NatW5WcnKw777xTzz77rFwul9mRfKKyslIff/yx2rVrp/T0dCUnJ+v++++33G+d1dWxY8f0ySef6L777jM7ik9069ZNGzdu1A8//CDDMLRlyxYdOHBAKSkpZkerd+fOnZOkKr8RGxAQoKCgIH3xxRdmxao3JSUlkqSIiAhJUlFRkYqLi6tcy+DgYPXo0UPbt283JWN9ubSr3XnT107zlKe+dpqpqutq53mqpmtrx5nq0q52n6c8fd3abZ6qrq9dZ6pLu9p5nqqoqND69evdz1iw8yx1aVe786avnWYpT33tNEtV19XOs1RN19ZOs9TBgweVkpKi/v37a+LEifruu+8kNfyfbwPNDgD/Onv2rP72t7/pnnvuUVhYmNlxfOKjjz7Sn/70J50+fVoxMTFasmSJoqKizI7lE4sWLVJgYKBGjBhhdhSf69u3rwYOHKi4uDgVFRVp3rx5euSRR7R69WoFBwebHa9euVwulZWVadGiRZowYYIyMzO1adMmjR07Vnl5eerZs6fZEX3q3XffVdOmTTVgwACzo/jEs88+q7/85S/q27evAgMD5XA4NH36dN18881mR6t38fHxatWqlZ5//nllZ2erSZMmeu2111RcXKzi4mKz410RwzCUk5Oj7t27KyEhQZLcna655poqHxsdHW3J12+/oLquduZNXzvNU7X1tdtMVVNXu85TNfW140xVXVc7z1PePE7ZaZ6qqa8dZ6rqutpxntqzZ48efPBBnT17VqGhofrHP/6h6667Tl9++aUke81SNXW1K2/72mWW8tTXTrNUbV3tOEvV1tdOs1Tnzp01e/ZstWvXTi6XSwsXLtSDDz6odevWNfifb1lqXEXKy8s1ceJEGYah5557zuw4PpOUlKQ1a9bo+PHjeueddzRhwgT985///NUXodXt3LlTeXl5Wr16tRwOh9lxfO6uu+5y/z0hIUE33XST+vfvr48//tgWP6xdrLKyUpJ02223KS0tTZJ044036ssvv9Tbb79t6R/CvbFq1Srde++9lny9a28sW7ZMX331lRYuXKi4uDht27ZNU6dOVWxsrHr37m12vHoVFBSkF198Uc8884x69uypgIAAJScnq2/fvmZHu2LZ2dnau3dvtW9IeuljsmEY/orlE7V1tSNPfe02T9XW124zVXVd7TxP1XRt7ThTVdfVzvOUN4/Ldpqnauprx5mquq52nKeuvfZarVmzRj///LM++OADPf3003rjjTfc5+00S9XU1a6LDW/62mmW8tTXTrNUTV3PnDljy1mqtmtrp1kqNTW1yu2uXbvqjjvu0Jo1a9SlSxdJDfcxmaXGVaK8vFwTJkxQUVGRXn/9dUtvwj0JDQ1V27Zt1bZtW3Xt2lUDBgzQypUr9fjjj5sdrV5t27ZNLpdL/fr1cx+rqKjQ7NmzlZeXp40bN5qYzvdiY2MVFxenwsJCs6PUu8jISAUGBqp9+/ZVjrdv397yTzH3ZNu2bTpw4ID+/ve/mx3FJ86cOaO5c+dq/vz5uvXWWyVJN9xwg3bv3q3Fixdb9gfw2tx0003617/+pZKSEpWXlysqKkr333+/brrpJrOj1dm0adO0ceNGvfHGG2rRooX7eExMjKRfXvLj4jfHc7lcio6O9nvO+lBTV7vy1Ndu85SnvnaaqWrqatd56nK+dq0+U9XU1a7zlDfX1k7zVE197ThT1XZt7TZPBQcHq23btpKkTp066ZtvvlFeXp5GjhwpyV6zVE1ds7OzTU7mG5762m2W8tTXTrNUTV3j4+NtOUtdzteu1Wepi4WGhiohIUGFhYW6/fbbJTXcx2SWGleBC980Dh48qLy8PEVGRpodya8Mw3C/DqmdDBo06FfDenp6ugYNGqQhQ4aYlMp/jh8/riNHjlR5YLWL4OBgderUSQcOHKhyvLCwUK1atTIplX+sXLlSHTt21A033GB2FJ84f/68ysvLf/WbDgEBAQ3mtx18JTw8XNIv/4537typ8ePHm5zo8hmGoWnTpunDDz/UsmXL1KZNmyrnW7durZiYGH366afq0KGDpF9ePzc/P1+ZmZlmRK4zT13txpu+dpqn6np9rThTeepqt3mqLtfWqjOVp652m6cu59raYZ7y1NdOM9XlXFs7zFPVufD9xU6zVE2s+L30Slzc106zVE08XV87Xf8LXew2S9Wktmtn1VmqOufOndP+/fvVvXv3Bv+YbMulRmlpqQ4dOuS+XVRUpN27dysiIkJxcXE6ceKEjhw5oh9//FGS3INudHS0+7csraS2vrGxsXriiSdUUFCg3NxcVVRUuF8TLSIiwnKv9VZb1+bNm+vll19W//79FRMToxMnTmj58uU6evSoBg4caGLquvP0b/nSISAoKEjR0dGKj4/3d9QrVlvXiIgIzZ8/XwMGDFBMTIwOHz6suXPnKjIy0r05thpP1zY9PV0TJ05Ujx49lJSUpE2bNumjjz5SXl6eianrzlNf6Zc3ivvPf/6jp59+2qyY9cJT1549e2rOnDkKCQlRXFyc8vPztWbNGk2ePNnE1HXnqe+///1vRUVFKS4uTnv27NHMmTN1++23W/JNPKdOnap169ZpwYIFatq0qfv7aXh4uEJCQuRwODRixAjl5uaqXbt2atu2rXJzcxUSEqJ77rnH5PSXx1NXSbaapzz1PX/+vK3mKU99y8rKbDNTeeoaGRlpq3nKU9/S0lLbzFTePE7ZaZ7ypq9kn3nKU9+wsDDbzFTeXFs7zVMvvPCC+vbtqxYtWqi0tFTvv/++tm7dqldffdVWs5RUe1fJXrOUVHtfu81SUu197TRLSbV3tdssJdXe106zlCTNnj1b/fr1U8uWLfXTTz9p4cKFOnXqlAYPHtzgH5MdhtV+jcELn3/+ebVvTjN48GDNmjVLq1ev1pQpU351fuzYsRo3bpw/Itar2vqOHTtWt912W7X3y8vLU1JSkq/j1avauk6dOlVPPvmkduzYoePHj6t58+bq1KmTRo0apc6dO5uQ9sp5+rd8qf79+2vEiBHu1w22ktq6PvfccxozZowKCgpUUlKimJgYJSUlafz48WrZsqUJaa+cN9d25cqVeuWVV3T06FFde+21GjdunCW/SUre9V2xYoVmzpypzZs3u38LzYo8dS0uLtYLL7ygzZs36+TJk4qLi9MDDzygtLQ0S74Gqae+eXl5Wrx4sVwul2JiYjRo0CCNHj3akj+4OJ3Oao/n5OS4fwvJMAzNnz9fK1as0MmTJ9WlSxdlZWVZ7g22velqp3nKU9+ioiJbzVOe+p49e9Y2M5U3/5YvZeV5ylPfM2fO2Gam8vba2mWe8ravXeYpb/raZabypqud5qk///nP2rJli3788UeFh4fL6XRq5MiRuuWWWyTZZ5aSPHe10ywl1d7XbrOUVHtfO81Skud/y5ey8iwl1d7XTrOUJE2cOFH5+fk6ceKEIiMj1bVrV40fP979vjAN+THZlksNAAAAAAAAAABgP43MDgAAAAAAAAAAAOANlhoAAAAAAAAAAMASWGoAAAAAAAAAAABLYKkBAAAAAAAAAAAsgaUGAAAAAAAAAACwBJYaAAAAAAAAAADAElhqAAAAAAAAAAAAS2CpAQAAAAAAAAAALIGlBgAAAAAAAAAAsASWGgAAAAAAAAAAwBJYagAAAAAAAAAAAEv4/xrwbAAtBrNbAAAAAElFTkSuQmCC"},"metadata":{}}]},{"cell_type":"code","source":"max_len = np.max(emotion['text_len'])\nmax_len ","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:56.064143Z","iopub.execute_input":"2023-08-31T04:52:56.064572Z","iopub.status.idle":"2023-08-31T04:52:56.072075Z","shell.execute_reply.started":"2023-08-31T04:52:56.064539Z","shell.execute_reply":"2023-08-31T04:52:56.071258Z"},"trusted":true},"execution_count":20,"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":"50"},"metadata":{}}]},{"cell_type":"code","source":"emotion.sort_values(by=[\"text_len\"], ascending=False)","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:57.400538Z","iopub.execute_input":"2023-08-31T04:52:57.400958Z","iopub.status.idle":"2023-08-31T04:52:57.434640Z","shell.execute_reply.started":"2023-08-31T04:52:57.400923Z","shell.execute_reply":"2023-08-31T04:52:57.433278Z"},"trusted":true},"execution_count":21,"outputs":[{"execution_count":21,"output_type":"execute_result","data":{"text/plain":" Unnamed: 0 Input label \\\n13377 13377 france24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _... 0.0 \n57474 57474 cnnvideo dnt b rude alexdiaz dnt let his name ... 1.0 \n49015 49015 rational_crisis what the fuck do the democrati... 0.0 \n58719 58719 kylestrunk I am say do not release your side o... 1.0 \n60133 60133 gretawire so you fuck thing he deserve to get ... 1.0 \n... ... ... ... \n10819 10819 glorioustyagi time httptcohqwvz3mfv8 0.0 \n42436 42436 amymek democrat voter 0.0 \n10830 10830 elbeardsley morningedition httptco1hlaxapvzz 0.0 \n33660 33660 jeffersonobama jesuischarlie too 1.0 \n35511 35511 time stopkillinginnocentpeoplefreepalestinefre... 1.0 \n\n Length Predicted_Label \\\n13377 140 fear \n57474 136 love \n49015 138 anger \n58719 137 anger \n60133 140 sadness \n... ... ... \n10819 43 anger \n42436 23 sadness \n10830 51 sadness \n33660 35 anger \n35511 93 sadness \n\n text text_len \n13377 france24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _... 50 \n57474 cnnvideo dnt b rude alexdiaz dnt let his name ... 35 \n49015 rational_crisis what the fuck do the democrati... 34 \n58719 kylestrunk I am say do not release your side o... 34 \n60133 gretawire so you fuck thing he deserve to get ... 33 \n... ... ... \n10819 glorioustyagi time httptcohqwvz3mfv8 anger 4 \n42436 amymek democrat voter sadness 4 \n10830 elbeardsley morningedition httptco1hlaxapvzz s... 4 \n33660 jeffersonobama jesuischarlie too anger 4 \n35511 time stopkillinginnocentpeoplefreepalestinefre... 4 \n\n[60582 rows x 7 columns]","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0InputlabelLengthPredicted_Labeltexttext_len
1337713377france24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _...0.0140fearfrance24 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _...50
5747457474cnnvideo dnt b rude alexdiaz dnt let his name ...1.0136lovecnnvideo dnt b rude alexdiaz dnt let his name ...35
4901549015rational_crisis what the fuck do the democrati...0.0138angerrational_crisis what the fuck do the democrati...34
5871958719kylestrunk I am say do not release your side o...1.0137angerkylestrunk I am say do not release your side o...34
6013360133gretawire so you fuck thing he deserve to get ...1.0140sadnessgretawire so you fuck thing he deserve to get ...33
........................
1081910819glorioustyagi time httptcohqwvz3mfv80.043angerglorioustyagi time httptcohqwvz3mfv8 anger4
4243642436amymek democrat voter0.023sadnessamymek democrat voter sadness4
1083010830elbeardsley morningedition httptco1hlaxapvzz0.051sadnesselbeardsley morningedition httptco1hlaxapvzz s...4
3366033660jeffersonobama jesuischarlie too1.035angerjeffersonobama jesuischarlie too anger4
3551135511time stopkillinginnocentpeoplefreepalestinefre...1.093sadnesstime stopkillinginnocentpeoplefreepalestinefre...4
\n

60582 rows × 7 columns

\n
"},"metadata":{}}]},{"cell_type":"code","source":"emotion.dtypes","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:52:58.768624Z","iopub.execute_input":"2023-08-31T04:52:58.769483Z","iopub.status.idle":"2023-08-31T04:52:58.776607Z","shell.execute_reply.started":"2023-08-31T04:52:58.769442Z","shell.execute_reply":"2023-08-31T04:52:58.775842Z"},"trusted":true},"execution_count":22,"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"Unnamed: 0 int64\nInput object\nlabel float64\nLength int64\nPredicted_Label object\ntext object\ntext_len int64\ndtype: object"},"metadata":{}}]},{"cell_type":"code","source":"X = emotion['text']\ny = emotion['label']","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:00.154568Z","iopub.execute_input":"2023-08-31T04:53:00.155382Z","iopub.status.idle":"2023-08-31T04:53:00.159923Z","shell.execute_reply.started":"2023-08-31T04:53:00.155345Z","shell.execute_reply":"2023-08-31T04:53:00.158655Z"},"trusted":true},"execution_count":23,"outputs":[]},{"cell_type":"code","source":"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=seed_value)","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:33.979117Z","iopub.execute_input":"2023-08-29T13:21:33.979511Z","iopub.status.idle":"2023-08-29T13:21:34.024098Z","shell.execute_reply.started":"2023-08-29T13:21:33.979480Z","shell.execute_reply":"2023-08-29T13:21:34.022950Z"},"trusted":true},"execution_count":24,"outputs":[]},{"cell_type":"code","source":"X_train, X_valid, y_train, y_valid = train_test_split(X_train, y_train, test_size=0.1, stratify=y_train, random_state=seed_value)","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:35.019444Z","iopub.execute_input":"2023-08-29T13:21:35.019827Z","iopub.status.idle":"2023-08-29T13:21:35.049990Z","shell.execute_reply.started":"2023-08-29T13:21:35.019796Z","shell.execute_reply":"2023-08-29T13:21:35.048913Z"},"trusted":true},"execution_count":25,"outputs":[]},{"cell_type":"code","source":"(unique, counts) = np.unique(y_train, return_counts=True)\nnp.asarray((unique, counts)).T","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:36.192397Z","iopub.execute_input":"2023-08-29T13:21:36.192813Z","iopub.status.idle":"2023-08-29T13:21:36.201664Z","shell.execute_reply.started":"2023-08-29T13:21:36.192780Z","shell.execute_reply":"2023-08-29T13:21:36.200543Z"},"trusted":true},"execution_count":26,"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":"array([[0.0000e+00, 2.9706e+04],\n [1.0000e+00, 8.4600e+03]])"},"metadata":{}}]},{"cell_type":"code","source":"ros = RandomOverSampler()\nX_train, y_train = ros.fit_resample(np.array(X_train).reshape(-1, 1), np.array(y_train).reshape(-1, 1));\ntrain_os = pd.DataFrame(list(zip([x[0] for x in X_train], y_train)), columns = ['text', 'label']);","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:37.085701Z","iopub.execute_input":"2023-08-29T13:21:37.086580Z","iopub.status.idle":"2023-08-29T13:21:37.578833Z","shell.execute_reply.started":"2023-08-29T13:21:37.086533Z","shell.execute_reply":"2023-08-29T13:21:37.577486Z"},"trusted":true},"execution_count":27,"outputs":[]},{"cell_type":"code","source":"X_train = train_os['text'].values\ny_train = train_os['label'].values","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:38.233009Z","iopub.execute_input":"2023-08-29T13:21:38.233436Z","iopub.status.idle":"2023-08-29T13:21:38.240477Z","shell.execute_reply.started":"2023-08-29T13:21:38.233401Z","shell.execute_reply":"2023-08-29T13:21:38.238974Z"},"trusted":true},"execution_count":28,"outputs":[]},{"cell_type":"code","source":"(unique, counts) = np.unique(y_train, return_counts=True)\nnp.asarray((unique, counts)).T","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:39.522327Z","iopub.execute_input":"2023-08-29T13:21:39.523114Z","iopub.status.idle":"2023-08-29T13:21:39.533841Z","shell.execute_reply.started":"2023-08-29T13:21:39.523046Z","shell.execute_reply":"2023-08-29T13:21:39.532404Z"},"trusted":true},"execution_count":29,"outputs":[{"execution_count":29,"output_type":"execute_result","data":{"text/plain":"array([[0.0000e+00, 2.9706e+04],\n [1.0000e+00, 2.9706e+04]])"},"metadata":{}}]},{"cell_type":"code","source":"clf = CountVectorizer()\nX_train_cv = clf.fit_transform(X_train)\nX_test_cv = clf.transform(X_test)","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:40.444329Z","iopub.execute_input":"2023-08-29T13:21:40.444754Z","iopub.status.idle":"2023-08-29T13:21:42.553801Z","shell.execute_reply.started":"2023-08-29T13:21:40.444721Z","shell.execute_reply":"2023-08-29T13:21:42.552430Z"},"trusted":true},"execution_count":30,"outputs":[]},{"cell_type":"code","source":"tf_transformer = TfidfTransformer(use_idf=True).fit(X_train_cv)\nX_train_tf = tf_transformer.transform(X_train_cv)\nX_test_tf = tf_transformer.transform(X_test_cv)","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:42.555840Z","iopub.execute_input":"2023-08-29T13:21:42.556236Z","iopub.status.idle":"2023-08-29T13:21:42.675967Z","shell.execute_reply.started":"2023-08-29T13:21:42.556203Z","shell.execute_reply":"2023-08-29T13:21:42.674613Z"},"trusted":true},"execution_count":31,"outputs":[]},{"cell_type":"code","source":"nb_clf = MultinomialNB()","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:45.708391Z","iopub.execute_input":"2023-08-29T13:21:45.708805Z","iopub.status.idle":"2023-08-29T13:21:45.715186Z","shell.execute_reply.started":"2023-08-29T13:21:45.708769Z","shell.execute_reply":"2023-08-29T13:21:45.713280Z"},"trusted":true},"execution_count":32,"outputs":[]},{"cell_type":"code","source":"nb_clf.fit(X_train_tf, y_train)","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:47.017614Z","iopub.execute_input":"2023-08-29T13:21:47.018217Z","iopub.status.idle":"2023-08-29T13:21:47.052964Z","shell.execute_reply.started":"2023-08-29T13:21:47.018183Z","shell.execute_reply":"2023-08-29T13:21:47.052053Z"},"trusted":true},"execution_count":33,"outputs":[{"execution_count":33,"output_type":"execute_result","data":{"text/plain":"MultinomialNB()","text/html":"
MultinomialNB()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"},"metadata":{}}]},{"cell_type":"code","source":"nb_pred = nb_clf.predict(X_test_tf)","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:48.204103Z","iopub.execute_input":"2023-08-29T13:21:48.205085Z","iopub.status.idle":"2023-08-29T13:21:48.212827Z","shell.execute_reply.started":"2023-08-29T13:21:48.205049Z","shell.execute_reply":"2023-08-29T13:21:48.211579Z"},"trusted":true},"execution_count":34,"outputs":[]},{"cell_type":"code","source":"print('Classification Report for Naive Bayes:\\n',classification_report(y_test, nb_pred))","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:21:58.867563Z","iopub.execute_input":"2023-08-29T13:21:58.867941Z","iopub.status.idle":"2023-08-29T13:21:58.922153Z","shell.execute_reply.started":"2023-08-29T13:21:58.867912Z","shell.execute_reply":"2023-08-29T13:21:58.921182Z"},"trusted":true},"execution_count":36,"outputs":[{"name":"stdout","text":"Classification Report for Naive Bayes:\n precision recall f1-score support\n\n 0.0 0.96 0.86 0.91 14146\n 1.0 0.65 0.88 0.75 4029\n\n accuracy 0.87 18175\n macro avg 0.80 0.87 0.83 18175\nweighted avg 0.89 0.87 0.87 18175\n\n","output_type":"stream"}]},{"cell_type":"code","source":"#we will include this in naive baiyes also to avoid confusion\ncategory = ['rumor','not_rumor']","metadata":{"execution":{"iopub.status.busy":"2023-08-29T13:22:01.052643Z","iopub.execute_input":"2023-08-29T13:22:01.053076Z","iopub.status.idle":"2023-08-29T13:22:01.058810Z","shell.execute_reply.started":"2023-08-29T13:22:01.053043Z","shell.execute_reply":"2023-08-29T13:22:01.057565Z"},"trusted":true},"execution_count":37,"outputs":[]},{"cell_type":"code","source":"conf_matrix(y_test,nb_pred,'Naive Bayes classification Analysis\\nConfusion Matrix', category )","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:42:14.568108Z","iopub.execute_input":"2023-08-07T10:42:14.568473Z","iopub.status.idle":"2023-08-07T10:42:14.823922Z","shell.execute_reply.started":"2023-08-07T10:42:14.568449Z","shell.execute_reply":"2023-08-07T10:42:14.822989Z"},"trusted":true},"execution_count":38,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAvEAAALkCAYAAACGI2rJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACo9klEQVR4nOzdd3iT1cPG8TttKV2UMsreyB6ykQ0ioojKFgUUFRQFByqKA5wM1w8UF4oIDmTJEkRkgzIKMmVTdqFQoC2dlLZ5/+BtICRpkzZtecL3c11e8pw846Rpn9w5OcNkNpvNAgAAAGAYXvldAQAAAACuIcQDAAAABkOIBwAAAAyGEA8AAAAYDCEeAAAAMBhCPAAAAGAwhHgAAADAYAjxAAAAgMEQ4gEAAACD8cnvCsB9Jk2apC+++MKmvHv37ho/fnw+1AjwTDVq1LBbvnLlSpUrVy6Pa3Pzmzdvnl5//XWb8mbNmumnn37K9NikpCT9/vvvWrVqlQ4ePKjo6GglJiba7HfgwIEcX+tWMWDAAIWFhdmUjxs3Tj169MiHGsHIPPl+eOeddyoiIsKm/Mcff1Tz5s3zoUbWbukQ7+jFkaTWrVvr+++/z/R4R28WZcuW1apVq9xSR+TcqVOn1LFjR6f29fPzk7+/v4oVK6aKFSuqTp066tChg2rXrp3LtQRwo/379+vZZ591eJ8G8tqIESO0aNEih48PHTpUzz//fB7WCLcyutM48Pfff2vr1q35XQ3kseTkZEVHR+vw4cNauXKlPv/8c3Xv3l39+vXT/v3787t6wC0jKSlJTz31FAHejgEDBqhGjRo2/82bNy+/q+bRkpKStGLFikz3ySzgA+5GiM/EZ599lt9VwE1i69ateuSRR7Rz5878rgpwS1i0aJHOnj2b39UALJYvX263K9f1Tp48qW3btuVRjXCru6W702QlLCxMGzduVIsWLfK7KrgJJCQkaOTIkfr999/l48OfDpCbtmzZYrfcz89P9913n8qWLasCBQrkca1wK3O2lX3RokVq1KhRLtcGIMRn6bPPPjNMiH/uuef03HPP5Xc1DKVz586qW7euZTs2Nla7du2yO+hLko4cOaItW7YY5ncCuBn06NHD5QGTFy9etFv+1FNPaejQoW691q2GAb6uO3/+vDZs2ODUvkuXLtWbb77Jh0wPcLOPbyTEZ2H79u1au3at2rVrl99VQS5o37693Tf87777Tp988ondY/79919CPJDLrly5Yre8dOnSeVwTQFq8eLHS0tKc2jcmJkZr167VXXfdlcu1wq2OEO+Ezz77zG0hPi0tTeHh4dqzZ4/27NmjgwcP6uzZs7pw4YKSk5MlSYGBgSpcuLCqVaumevXq6b777lP58uWzPLezU0z27t1bu3btstlv2rRpWYbTkSNHav78+Tblb7zxhh577DGHx+3bt08rV65UWFiYTp06pejoaKWmpqpo0aIqX768WrRoofvuu0+VKlXK9Pp55fHHH9dnn31mN0hERUU5PM5sNuvYsWOW1/fAgQM6c+aMLly4oKSkJKWnpyswMFCFChVS1apVVbt2bd17770Op+gaPHiw1q1bZ1M+YcIEdenSJdPn8N577+mXX36xKX/55Zf11FNPOTzu+PHjWrZsmcLCwnTs2DHFxMQoOTlZRYoUUenSpXXHHXfonnvucWnGnosXL+rPP//Uxo0bFR4ervPnz1v6lgYEBKhEiRIqV66catSooTp16qhJkyYqWrSo0+d3RUpKilasWKHNmzdr165dioqKUmxsrMxms4KDg1WuXDnVqVNHzZs3V9u2bRUQEOCWax48eNDyexEeHq7IyEjFxMTo8uXLkqSgoCAVKVJENWrU0O23366uXbsqNDTU6WscOXJES5cu1bZt23T06FHFxsYqKSlJPj4+CgoKUqlSpVShQgXVqlVL9evXV8OGDeXn5+fwfOnp6Vq3bp1WrVqlAwcO6OTJk0pISNCVK1dUsGBBFSlSRGXKlLH8Hjdq1EjVqlWzey5np310NPXh9V5//XWbcw0bNszyLWROp5hMT0/X2rVrtXHjRm3fvl3nzp1TTEyM0tLSFBgYqLJly6pmzZpq1qyZOnTooMKFC9ucw933gZz8bCTb94CcTjF5+PBhLV++XFu2bNGxY8cUGxury5cvKyQkRMWLF1fDhg3VsmVL3XnnnfL29s7yfFlNUZiQkKD58+dr2bJlOnr0qGJiYlS4cGHVqlVLXbt21YMPPiiTyZTldXLCUVea5s2ba/PmzXb3dybEb968WY8++qhN+fWz3EVEROi3337T6tWrdfr0aSUmJio0NFSNGjVS37591aRJkyyvc/HiRe3du9fyO3nq1CmdO3dOCQkJunz5sgoWLKigoCCVLl1atWrVUuvWrdW+fXu3fZvwxx9/aPjw4Tblbdu21XfffZfpsbt371avXr1syqtUqaKlS5falJ85c0ZLly5VWFiYjhw5oosXLyopKUleXl4KDAxUyZIlVb58edWsWVP16tVT48aNFRQUZPfa2Zli0p33zqwQ4p2wZ88eLV++XJ06dcrxuYYNG5bl1zMxMTGKiYnR8ePHtWLFCk2cOFH33HOPRo8e7ZZg0717d7shfsmSJZmG+Izwc6MCBQro/vvvt3tMeHi4xo0bp/Xr19t9PDIyUpGRkdqyZYu+/PJLdevWTa+//roKFSrk5LPJHT4+PgoMDFRMTIzNY5mFujFjxmQZFGJjYxUbG6tTp05p7dq1+vrrr9WyZUt98MEHKlu2rNW+AwYMsBvi58yZk2mIT09P119//WVT7u3trQcffNDuMefOndO4ceP0559/Kj093e7j586d086dOzV58mR16tRJo0aNUsmSJTN9vtOnT9fEiRMdDgjL+HkcOnRIq1evliSZTCa98cYbdt/csis9PV0//vijpkyZ4vCD2IULF3ThwgXt3LlTM2bM0B133KHp06fn+Nq9evWyzGPuSHR0tKKjoy1h/JNPPlGfPn306quvyt/f3+Fxly9f1rvvvqv58+fbfd3S0tJ0+fJlXbhwQXv27LG86RUoUEAzZ8606k6WYd++fXr11Vd18OBBu9dMTExUYmKiIiIirPqu16lTx9AzpCxYsEBffvmlTpw4YffxjHvznj179Ntvv6l8+fJ274nuvg/cLCIiIjR27FitXLlSZrPZ5vGoqChFRUVp3759mjFjhipUqKCXX35Z99xzT7avuX79eo0aNUpnzpyxKj9//rzWr1+v9evX67ffftPXX3/tMIjlVEbD240CAgL0wQcfqHPnzjZ/e6tXr1ZcXFyO38umTp2qzz//XElJSVblERERioiI0O+//64nnnhCr732msNz7N27V927d8/0Ohl/0xn3+JkzZyo0NFSjRo1S586dc/QcJOnuu+9WqVKlFBkZaVX+999/6/Tp0ypTpozDY+0FdUk2zyk9PV0TJkzQDz/84PCbvJSUFEVHR2v//v1avny5pKvvi59//rlbvjnJ63sns9PYUb16dZuyzz//3O4bpKuycw6z2aylS5eqT58+io6OznEd7rvvPvn6+tqUL1++3OEvviStW7dOcXFxNuVt27a1++FixYoV6t27t8MAf6O0tDT99ttveuihh3Tq1CmnjsktBw8etBvgJalixYoOj8vu78iGDRvUo0cPm/DQpk0bu99ObNy4USdPnnR4vi1bttgNqq1atbIburdt26bu3bvrjz/+cPo5LF++XL169dLevXsd7vPDDz9o7NixWc7ocCOz2az4+HiXjslMbGysBg0apHHjxmX6TcqN3PE3n93zpKamasaMGXrssccsrfX2vPjii/rtt99cvsaVK1cs3/5d7+TJkxowYIDDN6HM2Ls/GEFKSopeeeUVvfbaaw4DvD2Ofubuvg/cDDZu3KgePXpoxYoVdgO8PSdOnNALL7ygcePGOX3M9RYvXqwhQ4bYBPgbhYWFacSIES6f31mOWuHbt2+vChUq2B3EmpKSoj///DPb1zSbzXrvvff04Ycf2gT4G02dOlXTpk1z+Liz3YBuFBUVpeeffz7TczvLx8dHDz/8sE15enq65s6dm+mx9n6O9hqkxo4dq2+//TbTHGNPWlqaEhISXDrGnvy4dxLi7ejbt6/N19gHDx50+Gkwr5w8eVKjR4/O8XkKFy6sO++806Y8JiYm04E7zn4alq72G3/xxRez9YcRHh6uZ555xuXg5w6XLl3SunXr9MILL9h93N/fX/fee2+uXDsmJkYvvviiVZnJZFL//v1t9jWbzZozZ47Dc7nyWh07dkxPP/20zp8/71qFdbV1/qmnnrIbjOPi4jRx4kSXz+luKSkpGjZsmP7555/8rkq27Ny5UxMmTLD72D///OP2gVcTJ040bBjPrtdff12///57fldDkv37QH47dOiQnn32WYcNG1mZNm2avvrqK5ePmzBhglJTU53ad9WqVdq4caPL18iK2Wx2+LuR8V7g6JuGnMwZf/r0abvdIR357LPP3Nrwcb2PPvpI+/bty/F5+vTpo4IFC9qU//bbbw4/aOzatctud5YbG6SOHDmin3/+Ocd1zIn8uHfSncYOf39/PfXUUxozZoxV+aRJk3TPPfc41ccvKwULFlStWrVUvnx5lSxZUv7+/vL29lZ8fLxOnjypzZs3271hLl++XOHh4apatWqOrt+9e3e7n26XLFlit/9/cnKy3bBQpEgRtW/f3mbfF1980eGn4WbNmqlWrVoqUKCAdu/ebbc/4cGDB/Xpp59q1KhRTj6j7HHUh9SR1157zW4f2Bv5+PioRo0aqlixokqVKqXAwEB5e3srKSlJERERCgsL07lz52yO27Nnj9avX682bdpYyrp3764JEybYfCCaN2+enn/+eZvpLtPS0ixfE16vcOHCNl8Xms1mvfTSS7p06ZLd51G3bl01aNBAQUFBOnDggNasWWPTohYVFaVRo0bpm2++sSr/+++/7bb0BgQEqE2bNqpYsaL8/PwUHx+viIgIHTp0SEePHs1Wi11mvvzyy0z7EleqVEktWrRQ8eLFlZSUpPDwcIWFhbmlZeZGAQEBql27tipUqKDixYvL39/f8q3D0aNHtXnzZrsfXmfNmqUhQ4YoJCTEqtzRwjOhoaFq27atSpYsKW9vb8XGxurYsWM6cOBApnOvp6enO/xQcPvtt6thw4YKDg5WSkqKLly4oMOHD2v//v1ZthQ6q0+fPpbf/VmzZtn9Ru7GGaUk5Wg6v9mzZ2vx4sUOHy9VqpRat26t0qVLKyUlRceOHXN4f76RO+8D2f3ZSPa/XXZWxj3CUaNK1apV1a5dOwUEBGj//v1avXq13UA2adIktWnTRvXr13e5DhUqVFDHjh3l5+en1atXO1x4b968eW6fdGDr1q12Q2RAQIDatm0r6WpXkTFjxtjcu7Zs2ZJlVxFnNGrUSM2aNVNycrKWLFlit9EkMTFRS5cuVe/evTM9V5kyZVStWjWVL19ehQoVkp+fn65cuaLz589rz5492r17t80xaWlp+u677/S///0vR8+jaNGiuu+++2y6jURGRmr9+vU2WUJy3CB149iNVatW2X3vKFy4sNq2bWuZkjY+Pl4nTpzQwYMHM/0221X5de8kxDvQt29fff/991b9t44ePapFixZl2bcsMx07dtTAgQPVuHFju11aMiQlJWn48OGWPsIZzGazVq9eneMQ36ZNG4WGhtrcDFauXKmUlBSbuq1evdruTbxr1642A19mzpxp943J399fX331lVq2bGlV/tdff+mll16yCf2zZ8/W008/rRIlSrj03HJDaGioXnnlFXXr1i3T/Zo0aaJWrVqpZcuWmfZjTk1N1XvvvadZs2bZPLZq1SqrN++goCD16NHDpo9tVFSUVq9ebTNWIywszG6rur1uVCtXrrTb19PLy0vjx4+3+bpy69atGjJkiE1rw+rVq7Vnzx7VqVPHUmbvjc9kMmnWrFkOQ8WFCxe0YcMGLVmyxC0Dqi5cuKAff/zR7mO+vr56++231bNnT5tBcQkJCZozZ47Ducpd1bNnTzVo0ED169fPtBEgJiZGTz75pP777z+r8sTERG3cuNHmWyB7P+MKFSpo/vz5DvsHHz16VOvWrdPixYttnndMTIzdv/Mnn3xSr776qt3zpaSkaMeOHVq+fLlNvV11/dia9evX2w2qjmaUyo6UlBR9+eWXdh/z8vLSiy++qCeeeMLmdzElJUWLFy/W7Nmz7R6bG/eBvP7ZZFi2bJnD7gEDBgzQ66+/bvU7/e+//2rQoEE2v0dms1lffvmlJk+e7NL1u3btqnHjxlnuXcOGDdPQoUO1Zs0am31zY5ElR63pHTp0sAwML1mypBo1aqR///3Xap+MVvynn34629d/6623NGDAAMv2008/re7du9v0LZeuPn97IT4kJESvv/66OnfunOXsThs3btSgQYNsvgFZs2aN0tLSctyI2b9/f7t9v2fNmmU3xC9btsymrHDhwurYsaNVmb17YaFChfT77787HLd15swZ/f333/r9999z/Lzy695JdxoHfH199cwzz9iUf/nlly73t7penz591KJFi0wDvHQ18Pbr18/uYzt27Mj29TN4e3vbHYwaHx+vtWvX2pS70j3D3uw10tWZbW4M8NLVVoy+ffvalKekpGjJkiV2z5XXQkJCZDabs2wl7tKlizp27JjpG7d0tYVu4MCBdh+z9/r279/f7uwL9kKEsy0XkhwOpBk0aJDdAbBNmjTRsGHD7B5z4+tu72cVGBio2267ze7xklSsWDHdf//9+uabbzR48GCH+znrjz/+cNiC+P7776tXr152f66BgYEaOHCgw24srnr88cfVsGHDLN8oQkJCHLak2fu9sPczrlKlSqYD/CpXrqzHHntMc+bMUePGjbM8n6RMW099fX3VrFkzvfnmm/r1118d7ncz+vvvv+2GIUkaOnSonn76absfJn19fdWjRw+HHxBz6z6QHxYsWGC3vHr16jYBXpIaN27s8B6xdu1al8Z1lSpVSmPGjLF6v/Tx8dETTzxhd/9Tp04pJSXF6fNnJSUlxW6IlGTzgTo3utR07tzZKsBLV1uz7c3UIl39gG5P+fLlNXDgQKemZ23RooXdb3MSEhJ06NAhJ2qduTp16tj95mzt2rU23xLu2LHDbjjv2rWrTYayd+8qVapUphMvlC5dWr1799aPP/6orl27OvsU7Mqveyct8Zno2bOnvvvuO6sWj5MnT2revHl66KGHcnTuEydOaPny5dqxY4eOHDmi8+fPKykpKdMBbBnstXJnR7du3TR16lSb8iVLlli17iYkJNgN9tWrV7dqeZWuTmNlbxaOAgUKZPpH0qpVK7uzOWzevFmPP/54ps8jLxw6dEgjR47U8uXLNXHixCw/hJ09e1YrVqzQ1q1bdeTIEZ07d06JiYl2u5fcyN7rW6lSJbVu3dpmkPCNI/sddaXJmK70emlpaQ67mWT2jYO9D2KSbLpFlStXzmaf+Ph4vfjii3r44YdVo0aNXJtGMoOjfvDVq1fP8lsVSVm+zq46cOCAVqxYod27d1umysuYeiwr9n4v7P2M161bpwkTJuiuu+5S5cqVXZqxo0iRIgoMDLTpSvTRRx/p8uXLatiwocqUKeMxKxY7GgNUpEgRpz5E5vV9IK+lpaU5/DaqZ8+eDj+U9uzZU59++qlNtxqz2aywsDCnZzvp0aOH3WlQM/smOi4uTsWKFXPq/FlZvXq1YmNjbcoDAwMtXWkydO7cWWPHjrUJc4cPH9bevXtdmpI3g72BoJLj5++oW2SGlJQU/fPPP1q7dq0OHz6sEydOKD4+3jLtaVbOnTunmjVrZl3xLAwYMMDmW5O0tDTNmzfPqvH0jz/+sHu8vcZDe/fCQ4cOafTo0erWrZuqVq3qVFfY7Mqve6dn3IlzSYECBTR06FCbPtNff/11trvUXLx4UWPGjNGSJUuy3ffX3k0lOzLm5L6xO8WaNWuUmJhomUpx5cqVdt907P0MwsPD7T6vK1eu2LT6OcMdn/wzc2Mf0tTUVJ07d07r1q2z2wKwcuVKjR8/3uEA46SkJH3yySeaOXOm0wOybuTo9R0wYIBNiM8Y2f/8889LkjZt2mR3pUt7rfBnz551OAgnqzno7cl47TNatlu0aCF/f3+bPn/Lli2ztG4FBQWpSpUquu2221S3bl3dcccdOe4qdr3Dhw/bLbc3sDs3nTx5Uu+++67TMzXZY+8NukOHDpoxY4ZVWXp6ur755hvLGIXQ0FDLz7hBgwa64447HHZR8/LyUrt27WzePCMiIixfCRcoUEDlypVT1apVVaNGDTVt2jTL7oE3K0f3l1atWtkdgOes3LwP5KWzZ886HCzZsGFDh8eFhISoQoUKdluGDx8+7HSId/Sekdm0jc58QHJWZl1pbvz9KFmypBo0aKDt27fb7L9w4UKXQ7yXl5fDn7GjD+aZPfc//vhDH374ocNvnpyR1YcEZ919990qWbKkTcv7nDlzNGTIEJlMJpnNZrvfglSvXt2mQUq6+pp88sknNvlj1qxZlu5qISEhqlq1qqpWrar69evrjjvucGoNHmfk172T7jRZePDBB22m+Dtz5ozdPoxZuXjxoh555BEtXrw4R4P3ctKd50b2WiOTkpKs+uLb+zTs4+OjBx54wKbcHVNgXi+7syE4q3379nrqqacs/z377LN65513tGzZModfj/766686duyYTXlKSooef/xx/fzzz9l+45Ycv75t27a1O93k9SP77XWlyavXKi0tzeomHxIS4vBr9Qzx8fHatWuX5s2bp/fee09dunRRt27dcjQ12/UcPcfMpgl1t+PHj+vhhx/OUYCXZLebQNu2be32I71eVFSUNm/erF9++UUjRoxQu3btNHjwYIeDA1944QUFBwc7PN+VK1d09OhRrVixQl9++aUGDhyoNm3a6OOPP86VwcC5ydHvR04Wncvt+0BeyuwekdVYJUePu3LfcdT9I7PxMu4aGB8bG2v3G2jJtitNBkfvGUuWLHF5msciRYo4XIzN1fFCP/30k4YPH56jAC/Zvwdlh6PpJiMiIizfnm7bts1ufR01oFatWtXhNxcZYmJi9O+//2r27Nl66623dNddd6lfv37atGlTNp6Frfy4dxLis+Dt7W1ZCfB6kydPdvkT/6effuqwz1p+sTcwVZKlL/qlS5f0999/2zzepk0bFS9e3Kbcme5ArsitKbOyUqBAAb3//vt2fzbp6el2P9hMmTLFbiuMu5hMJrvjJDJG9qemptrtSpNXr5Vk+3oNGjRIo0ePdmnBk3379umFF15wy/SUjp5jXrYav/322y7NTe+qiRMn6pFHHnH6a9qM1QR79epldyGxSpUq6aeffrLpKpeZmJgYTZkyRX379jXU9JS58fuR2/eBvJTZPSKrIOnocVeCoKNvQ7y8cj+6LF261OEHqX379unbb7+1+c/et7fS1Q/Srk5/mdlqyq48/xMnTuijjz5y6dp54aGHHrL7d5YxzsuVBqkMb731loYNG5bpz+5GW7dutYwRyqn8uHfSncYJXbp00eTJk61G6EdFRbk0ECExMdHhXLPVq1fX0KFD1bBhQxUrVszyZrxp0yY99thjOat8FooWLap27drZTFW3fv16xcXFOVwAylF/4tzsc5bXgoODVblyZbszM9hrxXQ0U0WZMmU0dOhQtWzZUsWLF7fcuE6ePOnyCnE9evTQxIkTbT61z5o1S97e3na/uXA0W0VuvFb2WsH69eun7t2766+//tL69eu1a9cunTp1Kss+mN988426dOmSo+nxQkJC7AZod38L4ciJEyccvnk3atRIQ4YMUe3atVWsWDHLG/Nvv/2mN954w+lr+Pv76+2339aQIUP0xx9/aOPGjdq7d2+WHxyuXLmiUaNGafny5TZvpjVr1tS8efO0detWrVy5Ulu2bFF4eHiWazccPHhQX331VaarR95MbpyyM0NOfj/y4j6QVzK7R8TFxdltHMjgqAHGKO8RCxcudPjYF198ka3ztW7dOidVypbffvvN7gcnk8mkxx9/XA8++KDKli1r1dDSv39/t83M5UjGdJM3ToiwatUqRUVF2e1K46hBKkNGo+uAAQO0dOlSbdiwQf/995/OnDmT5Tc0Y8eO1Z133pnj8RR5fe8kxDvBy8tLzz33nE2LvCurcu3evdtuq4a/v7+mTZtm9xcnr4JG9+7dbUJ8SkqKVqxYYbfFOSQkxGGfYkdfoYaGhtpt0b/ZOfoK9MY3qFOnTjlcVXDy5Ml2g2h2Xt+goCB1797dZlGLtWvX2v3q3t48/hluXNAsg5eXl7Zt25blzBquCAgIULdu3Swf/i5fvqyTJ0/q+PHj+u+//zR37lybgXxms1lLlizJUYgvUaKE3TC7Y8cOm1kfcsPWrVvtlpcpU0ZTp061+zPO7t99yZIl9fjjj1sGgl+6dEknTpzQsWPHtHXrVs2bN8/mHhQZGamtW7c6HKzcpEkTNWnSRNLV1yMyMlInTpzQ4cOHtWzZMrtrPPzxxx+GCfGO7lfZnRkmr+4DecXRPUK6OgamcuXKdh8zm812uxxmdc6bxalTp9z+bcqKFSusxprlFUfTbj7++OMO/07z6ndywIABNiE+o3HB3sDunj17OnXekJAQPfzww5buNQkJCZb3mx07dmju3Lk2/fsTExO1atWqLOfZd1Ze3TvpTuOkTp06ufQVyY0uXLhgt7xKlSoOP/nlVeht166dihQpYlP+66+/2u0r1qVLF4dfN1erVs1un7CoqCjt2rXLpXqZzeZsLxftDtHR0Q6XP7/xOTp6fUNCQhyG0Oy+vvamm0xLS7PbNcLeVFwZgoOD7dYtPT3d7hzMWXGl/2/BggV12223qWPHjnrhhRfszpIkXQ0KOZFxE73RihUrsrVCrascXaNevXoOPyS56+8+ODhYdevWVdeuXfXOO+84fHNwNPj3RiaTSaVLl1bz5s3Vr18/TZ8+3e70aZGRkfnWDc5Vjn4/tm/f7nDMQGby6j7g6G/aXYtuZQgODla1atXsPnbjGibX2759u8PxTNmZ4CCvLVq0yO2LziUmJjpcnC03OboHNWvWzG756dOnc3zfdVadOnXsDt6197uVWYNUVgIDA1WzZk117txZr732mj7++GO7+zl7L3RVbt47CfFOMplMlhlAssNRH7aIiAi7feu3b9+e6dd57uRo+sedO3faDWaZzczj7e3t8CvD999/P8uvlKSrN7s5c+bovvvuc9iqldsSEhL01ltvOewTeePASEevb2xsrN0WhRMnTuiHH37IVt0qV66sVq1aObVvVi0X9lbnlaRPPvnEqZCbkpKiP/74Q71797ZZ6OTkyZOaPXu2U695YGCg3fKchhJHN/3k5GSNGDEi03Etmc0R7SxHU/CFh4fb7U60bNkyl/rObtiwQWvWrHFqejhnf8Y//fSTw1bU65lMJocfRJx5zW8G7dq1s7tOgCS9+uqrmbZIpqen26xjkVf3AUevpb3VNnPq+gWnrrdw4UK730anpaU5HM9SvHhx1apVy53VyxU5mds9M3n1nn49R/cgezMzpaen64MPPnD7B5jMOPuN6P3335/pOIzdu3dryZIlTo25yK33m/y4d9KdxgXt27dXgwYNsvVVq6NpjGJiYvTCCy9oxIgRqly5suLj47V48WJ9+umneTo7Qffu3e3O036j2267LctlswcPHmy3G86uXbvUvXt3Pf3002rZsqVlEYa4uDidOHFCe/bs0T///KN169a5vUXJkTVr1liF1eTkZJ0+fVrr1q1z2KomXZ3O6nply5a1TIt1PbPZrOeee05vvfWWatasqStXrmjlypX68MMPczRd16OPPpplC17NmjWzfMN89NFH9eOPP9p0szh16pTltWrXrp3l+SUkJOj06dP677//tHnzZq1atcrh84iJidGoUaM0btw4tWrVSq1atVKNGjVUqVIlBQcHy8fHxzI7zaeffmr3HDntn9iyZUvVq1fPbrjZsGGD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QvXr18/msXnz5jn8+3NFfHy89u7dqz179ui///7TiRMndPbsWcXFxeny5cvy9fVVUFCQSpQooZo1a6pZs2bq3Lmzw7/XnPzuS9a/p84MjP3vv/80f/58bdy4UefOnVNcXJxq1qyphQsXOn0OSYqMjNQDDzyg2NhYm33Hjx+v7t27263vN998owkTJtg9/6JFi5z6HQWMjBAPGMz+/fv1119/2X0sJCREkyZNyjTAX8/Hx0dPPfVUpvskJydrwoQJmjVrlt3gEh0drejoaB05ckSLFy/Wxx9/rIEDB2rIkCHy9vZ2qh43On78uF577TWbPscpKSnauXOndu7cqRkzZmjq1KmqWrVqtq5xM9i4caPefPNNRURE2H08Y0ah48ePa9OmTZbyzp076/PPP3dbPXiNpXr16mn37t1WZb/++qvdEG9vQGv9+vW1a9cup68XExOjO+64I9PucElJSUpKSlJUVJT27Nmj3377TR988IGGDx9ut155JT09XZ9++qmmTp2q9PT0HJ+vVKlSeueddzR8+HCbx8aNG6fWrVsrNDTUqvzw4cP68ssvbfb38vLSRx99RIDHLYHZaQCDWbp0qcM3/qeeekolSpRw27VOnz6thx56SNOmTXO65fHSpUv6/PPP9fjjj9ttWcvKwYMH9cgjj2Q5aDAyMlJPPPGE4uPjXb7GzWDHjh0aPHiwwwCfmUuXLrmtHrzGV912221q1qyZVdmhQ4e0ZcsWq7INGzbYdEFr1qyZyx800tPTs7VuQVxcnN577z2NGTPG5WPdZdy4cZoyZYpbAnyGLl266IEHHrApj42NtRmbkJaWppEjRyolJcVm/8GDB6tJkyZuqxdwMyPEAwbzzz//2C338fFRz5493XadxMREPf3009q/f3+2jt+8ebOGDx/u8sw5P/zwg86fP+/UvpGRkfr++++zU718N378+HwfXMxrbO3hhx+2Kbtxukl7008+8sgjuVYnR3788cd8me/9zJkz+vHHH3Pl3G+//bbKli1rU758+XL98ccflu3vv//e5lsTSapTpw4Du3FLoTsNYCApKSnas2eP3cdq1KihkJAQt13rk08+0cGDB+0+VrRoUXXq1EklSpTQ6dOn9ddffykuLs5mv3/++UfTp0/XE0884fL1CxcurM6dO6tkyZLavXu31qxZY3e/efPm6YUXXrBsly9fXi+/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NTVVCxcu1L333muzCmzbtm3tHnPs2DGHHxImT56s+Ph4u49l9u3BzcrR4Et7K3MeOnRI8+bNc+n83377rc6ePZvlfr6+vna/FUhMTHTpejfiNc5a7dq1bWbradiwocNpNp3laIahQ4cO2S3/9NNPXZ59yt4c7tLVFv2TJ0+6dK68lJKSohEjRtgdszFq1Ci7q83Gx8fr1VdfzfVpWYGbDVNMAgbUt29frVy5Uhs2bLB5LC0tTW+//bYWLFigvn376o477lDx4sVlMpkUGxurgwcPavPmzVqwYIFOnz5t9/zt2rVTtWrV7IaK9957TxcvXlSvXr0sS9H//PPPmjJlSqbnMpo6derYHVQ3a9YsValSRX369JHJZNLatWv1/vvvuzxLyNdff62JEyeqUaNGatu2rerUqaOqVauqaNGi8vX1VXJyso4eParvv//ebitjTqfV4zV2zq+//moVDt3RJ7x8+fJ2y+fMmaPKlSvrwQcfVEhIiI4cOaKvv/5av//+e7au4e3tbbPCrNls1sCBA3X33XcrJCREJpNJklSrVq08mToyK5988ondrmkdOnRQt27dlJKSotWrV9v8bf7777/67rvv9PTTT+dVVYF8R4gHDMjHx0efffaZ+vTp47CP8vbt27V9+3ZJsrxROztNn8lk0siRIzV48GCb1q0rV65owoQJmjBhgry8vDJt/fL399crr7zi1DVvNp06dbLbup6enq4xY8Zo7NixOZ72MC0tTVu2bLEZkGwvfN0oJ9MbSrzGzvLy8nL7YM62bdvqp59+silPS0vTuHHjNG7cOJufe1avw438/PxUv359yz3geqdOndLUqVOtyh566KF8D/EbNmzQjz/+aFMeHBysd999V9LVb6Y+/PBD9e7d22aGpkmTJqlNmzZ2V3sFPBHdaQCDCg4O1owZM5wKc2az2eXA2bp16yzDWWahwsvLS2PHjlX16tVduu7Nom3btpnW/caf5+233+62a2cV4H19ffXkk0/m+Dq3+mucX9q0aaN69eplus/1P/cKFSqoU6dOLl+nX79+Lh+TX2JiYjRy5Ei796k333zTamXcWrVq6ZlnnrHZ78qVK3rllVeUnJycq3UFbhaEeMDAihYtqu+//17Dhw9XcHBwts5RoEABh9MNPvnkk/r4448dTrXnSEhIiKZMmaIuXbpkq043Ax8fH40fP95h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"},"metadata":{}}]},{"cell_type":"code","source":"def Tokenize(column, seq_len):\n ##Create vocabulary of words from column\n corpus = [word for text in column for word in text.split()]\n count_words = Counter(corpus)\n sorted_words = count_words.most_common()\n vocab_to_int = {w:i+1 for i, (w,c) in enumerate(sorted_words)}\n\n ##Tokenize the columns text using the vocabulary\n text_int = []\n for text in column:\n r = [vocab_to_int[word] for word in text.split()]\n text_int.append(r)\n ##Add padding to tokens\n features = np.zeros((len(text_int), seq_len), dtype = int)\n for i, review in enumerate(text_int):\n if len(review) <= seq_len:\n zeros = list(np.zeros(seq_len - len(review)))\n new = zeros + review\n else:\n new = review[: seq_len]\n features[i, :] = np.array(new)\n\n return sorted_words, features","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:24.439189Z","iopub.execute_input":"2023-08-07T10:43:24.439573Z","iopub.status.idle":"2023-08-07T10:43:24.447897Z","shell.execute_reply.started":"2023-08-07T10:43:24.439547Z","shell.execute_reply":"2023-08-07T10:43:24.446583Z"},"trusted":true},"execution_count":39,"outputs":[]},{"cell_type":"code","source":"vocabulary, tokenized_column = Tokenize(emotion[\"text\"], max_len)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:26.131408Z","iopub.execute_input":"2023-08-07T10:43:26.131758Z","iopub.status.idle":"2023-08-07T10:43:27.472092Z","shell.execute_reply.started":"2023-08-07T10:43:26.131730Z","shell.execute_reply":"2023-08-07T10:43:27.471063Z"},"trusted":true},"execution_count":40,"outputs":[]},{"cell_type":"code","source":"emotion[\"text\"].iloc[10]","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:28.759216Z","iopub.execute_input":"2023-08-07T10:43:28.759560Z","iopub.status.idle":"2023-08-07T10:43:28.767527Z","shell.execute_reply.started":"2023-08-07T10:43:28.759537Z","shell.execute_reply":"2023-08-07T10:43:28.766237Z"},"trusted":true},"execution_count":41,"outputs":[{"execution_count":41,"output_type":"execute_result","data":{"text/plain":"'gabtarquini bbcdaniel bbcworld cossette a broadcast journalist with europe1 news hope that help mate from httptcodop4ubrbsr joy'"},"metadata":{}}]},{"cell_type":"code","source":"tokenized_column[10]","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:30.103738Z","iopub.execute_input":"2023-08-07T10:43:30.104093Z","iopub.status.idle":"2023-08-07T10:43:30.112188Z","shell.execute_reply.started":"2023-08-07T10:43:30.104066Z","shell.execute_reply":"2023-08-07T10:43:30.110806Z"},"trusted":true},"execution_count":42,"outputs":[{"execution_count":42,"output_type":"execute_result","data":{"text/plain":"array([ 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 3238, 1419, 284,\n 21301, 7, 2224, 318, 32, 5240, 167, 228, 17,\n 300, 1438, 59, 21302, 2])"},"metadata":{}}]},{"cell_type":"code","source":"keys = []\nvalues = []\nfor key, value in vocabulary[:20]:\n keys.append(key)\n values.append(value)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:31.492364Z","iopub.execute_input":"2023-08-07T10:43:31.492752Z","iopub.status.idle":"2023-08-07T10:43:31.497890Z","shell.execute_reply.started":"2023-08-07T10:43:31.492723Z","shell.execute_reply":"2023-08-07T10:43:31.496979Z"},"trusted":true},"execution_count":43,"outputs":[]},{"cell_type":"code","source":"keys","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:33.528636Z","iopub.execute_input":"2023-08-07T10:43:33.529031Z","iopub.status.idle":"2023-08-07T10:43:33.536546Z","shell.execute_reply.started":"2023-08-07T10:43:33.529000Z","shell.execute_reply":"2023-08-07T10:43:33.534942Z"},"trusted":true},"execution_count":44,"outputs":[{"execution_count":44,"output_type":"execute_result","data":{"text/plain":"['the',\n 'joy',\n 'to',\n 'is',\n 'sadness',\n 'not',\n 'a',\n 'of',\n 'you',\n 'I',\n 'anger',\n 'in',\n 'fear',\n 'and',\n 'do',\n 'it',\n 'that',\n 'they',\n 'have',\n 'are']"},"metadata":{}}]},{"cell_type":"code","source":"values","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:34.490311Z","iopub.execute_input":"2023-08-07T10:43:34.490670Z","iopub.status.idle":"2023-08-07T10:43:34.498090Z","shell.execute_reply.started":"2023-08-07T10:43:34.490644Z","shell.execute_reply":"2023-08-07T10:43:34.496487Z"},"trusted":true},"execution_count":45,"outputs":[{"execution_count":45,"output_type":"execute_result","data":{"text/plain":"[27470,\n 17876,\n 17220,\n 17076,\n 15941,\n 15216,\n 14000,\n 13711,\n 13445,\n 12793,\n 12135,\n 12122,\n 11258,\n 11035,\n 10416,\n 9625,\n 9020,\n 8920,\n 7658,\n 7525]"},"metadata":{}}]},{"cell_type":"code","source":"plt.figure(figsize=(15, 5))\nax = sns.barplot(x=keys,y=values, palette='mako')\nplt.title('Top 20 most common words', size=25)\nax.bar_label(ax.containers[0])\nplt.ylabel(\"Words count\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:35.576663Z","iopub.execute_input":"2023-08-07T10:43:35.577096Z","iopub.status.idle":"2023-08-07T10:43:36.212759Z","shell.execute_reply.started":"2023-08-07T10:43:35.577058Z","shell.execute_reply":"2023-08-07T10:43:36.211651Z"},"trusted":true},"execution_count":46,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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Hb355ptW05p9/fXXeuONNyza58TBwUETJkxQp06dLMozMzPND5AOHz5smEYtKChIc+bMsfg9/+OPP9SrV69cp8CSrL8nPv300woLC7P6O5yRkaHw8HBt2rRJa9euzfV1AAC4X5DOBQAA2MwoDUvTpk2zBNClG8G2F154weo5P/zwg01pFQIDA61eo3///qpVq5bVc+7lP+jnzp2rn3/+OUu5nZ2dxo8fbxFwvCm71XvZ5WK3FtzNTZ93y8vLS++99545sClJderUyTb1zIQJEyyC/qVKlTJclWxtZe+PP/5oNa+2k5OTPvjgA4sAunTjgUVoaKjV/i9duqTff//dosxaSoQaNWoY3mM7Ozs9+uij6t27t9asWWPTpynyy+HDhw3zUnfs2FGjRo2yutmhvb29WrZsaXVz2++++85qf6VLl9bkyZOzvJ6rVKmiUaNGWT3nyJEj+ueff3KahllBvM5yMnHiRIv+S5YsafXTJTf179/fHECXbgRIu3TpYrXtiRMnspQdPHjQ8NMXo0aNsgigSzd+HyZNmmT4CRajn6eRIUOGWATQpRsPierXr2+1vbU53AlredGjo6MtVtnfHhQvX768xfGtDyWuXLmio0ePZunTWj703377zfBTJtOmTcsSEHdxccnyMOmmtLQ0m9PwvPXWW1kC6NKN39ObG8Qa/U0rVqyYQkNDs/ye169fX3369LFpHNbeE+vUqWP4EMzBwUF169bVoEGDtH79epuuBQDA/YAgOgAAsMnly5etBiOkG6tGjRgFjq5cuWJTYM1oFaqdnZ06duxotS48PPyebPw4Z84czZo1y2pdv3799OSTT1qty25stwYQb+fg4GBYdycbOeZW69atrQaMbg9i3eTr66vq1atnKTcKhlpbmb9r1y6rbYODg+Xj42O1rk6dOqpRo4bVutv7szb2FStWaOHChTp06NAd5f6/14zSTzg6Omrw4ME5nm/tgYHRff/Pf/5j+EmIp556yhzsy21/1hTE6yw71atXt/p6MhqPvb29nnnmmVyPx9qDL6P75e7ubvhwoHjx4vrPf/5jtc6W+1+0aFHD99RbHwzcytZ7aiQ3edFvX7l/e4qmW9v++eefVoPC1lLHGN2jRx991HAz54ceekjBwcFW62y558WLF1ePHj1ybGe08WjTpk0NH6AY/SyNWHtdf/LJJ/ryyy91/Pjx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6COr59SuXdumVdOff/651TQmZ8+e1erVq62e06hRo1z3n53ff/9d3bt3t7oC0MvLS5999pnVPL658dxzz1n9KP/Jkye1cePGLOUHDx40DBB37NjxjsZQmDVt2tRq+alTp/TNN99YrZs/f75h+oLbV1H//PPP2rNnT67GUqJECavl1gJURpvG/vPPP4abdt6pRo0aGa76HDt2bI6rUH/44YcsZUb3fceOHYYBuxkzZlh9sOHk5GS4+hfWNWrUyOqDGJPJpOnTp1s9Z8eOHdq2bZvVuuDg4DwdX36z9n56e2D29qD37UFra5+AMsqHLhm/5pOSkjRv3jyrdStXrjT8JFR+3HOjv2lHjhzRTz/9lKU8IyNDc+fOtekaK1eu1D///JOrtra8JwIAcL8inQsAALDZa6+9ZnUzzfj4eL3yyisaOXKkAgMDZW9vr7///luhoaE6ceKE1b569epl07WvXLmibt26afTo0QoICJDJZNKOHTs0fvx4w3+wd+7c2aZrWLN37169+eabSk9Pt1rfokUL/fbbb4ar4W/1xhtvZCkrU6aMnn32WX377bdZ6oYNG6bRo0erdevWcnBw0Pbt2zV69GirQdjHH39cjz32WM4Tus80a9ZM1apV09GjR7PUjR8/XpcvX9bzzz8vT09PXbx4UZ999pkWLFiQbV+32r17tz7//HNVqFBBzZo1U8OGDVW1alU99NBDKlGihDIzMxUbG6sNGzYY9mstZVClSpWstj1z5oxeeuklNWrUyCIffosWLVSlShWj25AtFxcX/fe//9XChQuz1EVFRen5559X79699dRTT6lcuXIymUy6ePGi9uzZoy+//FL79u1Tu3btLM7r0KGD5syZY3UT2/79++udd97Rf/7zH5UsWVJnzpzRvHnz9N1331kd3/PPP3/f5OMuLNzd3dWpUyd98cUXWerWrFkje3t7vfnmm3rkkUeUlJSkn3/+WaGhoVb7KlWq1H33gO3xxx/X2rVrs21ze9A8N6vtjVLFSDc+bdW0aVOr7+Xz5s3TtWvX9Morr6hcuXK6fPmyVq1apZkzZ1rtq3r16oZB+bvRunVrTZw40Woe9pEjRyouLk7t2rWTi4uLjh8/rhkzZljdvyM769ev18iRI81z8Pf3V9WqVeXt7a3ixYvr+vXrunDhgtasWWP4O5+fG1wDAHCvEUQHAAA2e+yx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DSoNpdV35sycO+oIwN2y39UXshRPT09Hh4BMLn/+/I4OAUA2FB0drfbt26tQoUKODgXI1pKTk+Xi4uLoMP6R7Hrt8tdff8nX11eVKlVKs/dISkqSq6trmu0fyCyy63EGgONkhmsypnPJ4IYNG6bffvtNS5cuVUBAgAICAnTq1ClJ0t69e/X8888rKChI7du319GjR622/fHHH/X888+rQoUKql+/vubMmaMbN244ohtp5vbpXJKSkjR+/HjVqFFDFSpUUIcOHbR7925JN3/+2bBhQy1evNhq+z///FNlypRRdHR0useeHmz9/Zw8eVK//fabWrdurfLlyyssLEzTpk3Lcn8bD+r2n2V98sknatSokSpUqKDQ0FD179/fwdHd2/fff6/mzZurYsWKql69ul588UUlJiZq9+7d6tatm6pXr67KlSurc+fO2rt3r9W2x48fV6dOnVShQgU1bdr0rgcqnzx5UgEBAVq/fr26dOmioKAgPfvss4qMjLRqt3PnTnXq1EkVK1ZUnTp1NH78eCUmJlrW3yun9uLPCLp06aLx48drypQpqlatmmrWrKnZs2db1p8+fVp9+/ZVSEiIKlWqpAEDBuj8+fOSbv70ec6cOTpw4IDlc7d69WpHdSXd/PLLL+rQoYOqVKmi6tWrq3fv3ln22Pog7J2Tbn22Ll26pOHDh2fJv481a9aoevXqSkpKslrer18/DRkyRJK0fPlyNWjQQOXLl1fjxo21Zs0aS7tbObp9qobLly8rICBAv/76a7r0AY/evY4RD3rOWblyperUqaOgoCC98sorCg8Pv2uqiftd/wYEBOjTTz9V3759FRwcrHnz5qV95x+x269d6tWrpw8++EBvvvmmQkJC9PTTT2vFihUOjvDRGzZsmMaNG6fTp08rICBA9erVkzFGCxcuVP369VWxYkU9++yz+v777y3bpKSkaPjw4apXr54qVqyoxo0ba8mSJXft9+WXX9b8+fMVFhamJk2apHfXHplH8RlbvXq1nn76actn7NKlSw7oSdpKTEzUkCFDFBISorCwMH344YdW6+Pi4jRkyBBVrVpVQUFB6tmzp44fP+6YYB3o1nGmS5cuOnXqlCZOnGi5rs1q/m3NJTo6Wn379lVoaKhCQkLUqlUrbd261bI+M+curepQb775pnr37m3V/saNG6pZs6a++OKL9OncQzDG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"},"metadata":{}}]},{"cell_type":"code","source":"Word2vec_train_data = list(map(lambda x: x.split(), X_train))","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:37.779238Z","iopub.execute_input":"2023-08-07T10:43:37.779644Z","iopub.status.idle":"2023-08-07T10:43:37.862130Z","shell.execute_reply.started":"2023-08-07T10:43:37.779617Z","shell.execute_reply":"2023-08-07T10:43:37.860867Z"},"trusted":true},"execution_count":47,"outputs":[]},{"cell_type":"code","source":"EMBEDDING_DIM = 200","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:39.125299Z","iopub.execute_input":"2023-08-07T10:43:39.125681Z","iopub.status.idle":"2023-08-07T10:43:39.130033Z","shell.execute_reply.started":"2023-08-07T10:43:39.125651Z","shell.execute_reply":"2023-08-07T10:43:39.129153Z"},"trusted":true},"execution_count":48,"outputs":[]},{"cell_type":"code","source":"word2vec_model = Word2Vec(Word2vec_train_data, vector_size=EMBEDDING_DIM)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:41.106771Z","iopub.execute_input":"2023-08-07T10:43:41.107272Z","iopub.status.idle":"2023-08-07T10:43:45.412135Z","shell.execute_reply.started":"2023-08-07T10:43:41.107247Z","shell.execute_reply":"2023-08-07T10:43:45.411094Z"},"trusted":true},"execution_count":49,"outputs":[]},{"cell_type":"code","source":"print(f\"Vocabulary size: {len(vocabulary) + 1}\")","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:46.999957Z","iopub.execute_input":"2023-08-07T10:43:47.000311Z","iopub.status.idle":"2023-08-07T10:43:47.005913Z","shell.execute_reply.started":"2023-08-07T10:43:47.000270Z","shell.execute_reply":"2023-08-07T10:43:47.004877Z"},"trusted":true},"execution_count":50,"outputs":[{"name":"stdout","text":"Vocabulary size: 59181\n","output_type":"stream"}]},{"cell_type":"code","source":"VOCAB_SIZE = len(vocabulary) + 1 #+1 for the padding","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:48.621082Z","iopub.execute_input":"2023-08-07T10:43:48.621480Z","iopub.status.idle":"2023-08-07T10:43:48.626870Z","shell.execute_reply.started":"2023-08-07T10:43:48.621450Z","shell.execute_reply":"2023-08-07T10:43:48.625452Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"embedding_matrix = np.zeros((VOCAB_SIZE, EMBEDDING_DIM))\n \n#fill the embedding matrix with the pre trained values from word2vec\n# corresponding to word (string), token (number associated to the word)\nfor word, token in vocabulary:\n if word2vec_model.wv.__contains__(word):\n embedding_matrix[token] = word2vec_model.wv.__getitem__(word)\n\nprint(\"Embedding Matrix Shape:\", embedding_matrix.shape)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:49.929848Z","iopub.execute_input":"2023-08-07T10:43:49.930193Z","iopub.status.idle":"2023-08-07T10:43:50.021795Z","shell.execute_reply.started":"2023-08-07T10:43:49.930164Z","shell.execute_reply":"2023-08-07T10:43:50.020646Z"},"trusted":true},"execution_count":52,"outputs":[{"name":"stdout","text":"Embedding Matrix Shape: (59181, 200)\n","output_type":"stream"}]},{"cell_type":"code","source":"X = tokenized_column\ny = emotion['label'].values","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:51.762900Z","iopub.execute_input":"2023-08-07T10:43:51.763235Z","iopub.status.idle":"2023-08-07T10:43:51.769169Z","shell.execute_reply.started":"2023-08-07T10:43:51.763207Z","shell.execute_reply":"2023-08-07T10:43:51.767728Z"},"trusted":true},"execution_count":53,"outputs":[]},{"cell_type":"code","source":"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=seed_value)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:53.331157Z","iopub.execute_input":"2023-08-07T10:43:53.331806Z","iopub.status.idle":"2023-08-07T10:43:53.367003Z","shell.execute_reply.started":"2023-08-07T10:43:53.331771Z","shell.execute_reply":"2023-08-07T10:43:53.365598Z"},"trusted":true},"execution_count":54,"outputs":[]},{"cell_type":"code","source":"X_train, X_valid, y_train, y_valid = train_test_split(X_train, y_train, test_size=0.1, stratify=y_train, random_state=seed_value)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:55.011684Z","iopub.execute_input":"2023-08-07T10:43:55.012056Z","iopub.status.idle":"2023-08-07T10:43:55.041863Z","shell.execute_reply.started":"2023-08-07T10:43:55.012026Z","shell.execute_reply":"2023-08-07T10:43:55.040077Z"},"trusted":true},"execution_count":55,"outputs":[]},{"cell_type":"code","source":"(unique, counts) = np.unique(y_train, return_counts=True)\nnp.asarray((unique, counts)).T","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:56.889565Z","iopub.execute_input":"2023-08-07T10:43:56.889980Z","iopub.status.idle":"2023-08-07T10:43:56.898690Z","shell.execute_reply.started":"2023-08-07T10:43:56.889947Z","shell.execute_reply":"2023-08-07T10:43:56.897318Z"},"trusted":true},"execution_count":56,"outputs":[{"execution_count":56,"output_type":"execute_result","data":{"text/plain":"array([[0.0000e+00, 2.9706e+04],\n [1.0000e+00, 8.4600e+03]])"},"metadata":{}}]},{"cell_type":"code","source":"ros = RandomOverSampler()\nX_train_os, y_train_os = ros.fit_resample(np.array(X_train),np.array(y_train));","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:43:58.276328Z","iopub.execute_input":"2023-08-07T10:43:58.276693Z","iopub.status.idle":"2023-08-07T10:43:58.310929Z","shell.execute_reply.started":"2023-08-07T10:43:58.276668Z","shell.execute_reply":"2023-08-07T10:43:58.309463Z"},"trusted":true},"execution_count":57,"outputs":[]},{"cell_type":"code","source":"(unique, counts) = np.unique(y_train_os, return_counts=True)\nnp.asarray((unique, counts)).T","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:44:01.097327Z","iopub.execute_input":"2023-08-07T10:44:01.097697Z","iopub.status.idle":"2023-08-07T10:44:01.107658Z","shell.execute_reply.started":"2023-08-07T10:44:01.097670Z","shell.execute_reply":"2023-08-07T10:44:01.106547Z"},"trusted":true},"execution_count":58,"outputs":[{"execution_count":58,"output_type":"execute_result","data":{"text/plain":"array([[0.0000e+00, 2.9706e+04],\n [1.0000e+00, 2.9706e+04]])"},"metadata":{}}]},{"cell_type":"code","source":"train_data = TensorDataset(torch.from_numpy(X_train_os), torch.from_numpy(y_train_os))\ntest_data = TensorDataset(torch.from_numpy(X_test), torch.from_numpy(y_test))\nvalid_data = TensorDataset(torch.from_numpy(X_valid), torch.from_numpy(y_valid))","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:44:02.200814Z","iopub.execute_input":"2023-08-07T10:44:02.201158Z","iopub.status.idle":"2023-08-07T10:44:02.217902Z","shell.execute_reply.started":"2023-08-07T10:44:02.201131Z","shell.execute_reply":"2023-08-07T10:44:02.217130Z"},"trusted":true},"execution_count":59,"outputs":[]},{"cell_type":"code","source":"BATCH_SIZE = 32","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:44:04.308914Z","iopub.execute_input":"2023-08-07T10:44:04.309296Z","iopub.status.idle":"2023-08-07T10:44:04.314429Z","shell.execute_reply.started":"2023-08-07T10:44:04.309251Z","shell.execute_reply":"2023-08-07T10:44:04.313656Z"},"trusted":true},"execution_count":60,"outputs":[]},{"cell_type":"code","source":"train_loader = DataLoader(train_data, shuffle=True, batch_size=BATCH_SIZE, drop_last=True) \nvalid_loader = DataLoader(valid_data, shuffle=True, batch_size=BATCH_SIZE, drop_last=True)\ntest_loader = DataLoader(test_data, shuffle=True, batch_size=BATCH_SIZE, drop_last=True)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T10:44:05.989745Z","iopub.execute_input":"2023-08-07T10:44:05.990176Z","iopub.status.idle":"2023-08-07T10:44:05.996682Z","shell.execute_reply.started":"2023-08-07T10:44:05.990144Z","shell.execute_reply":"2023-08-07T10:44:05.995326Z"},"trusted":true},"execution_count":61,"outputs":[]},{"cell_type":"code","source":"NUM_CLASSES = 2 #We are dealing with a multiclass classification of 2 classes\nHIDDEN_DIM = 100 #number of neurons of the internal state (internal neural network in the LSTM)\nLSTM_LAYERS = 1 #Number of stacked LSTM layers\n\nLR = 0.001 #Learning rate\nDROPOUT = 0.5 #LSTM Dropout\nBIDIRECTIONAL = True #Boolean value to choose if to use a bidirectional LSTM or not\nEPOCHS = 25 #Number of training epoch\n\nDEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'","metadata":{"execution":{"iopub.status.busy":"2023-08-07T11:22:48.613865Z","iopub.execute_input":"2023-08-07T11:22:48.615041Z","iopub.status.idle":"2023-08-07T11:22:48.622779Z","shell.execute_reply.started":"2023-08-07T11:22:48.614998Z","shell.execute_reply":"2023-08-07T11:22:48.621224Z"},"trusted":true},"execution_count":69,"outputs":[]},{"cell_type":"code","source":"class BiLSTM_Sentiment_Classifier(nn.Module):\n\n def __init__(self, vocab_size, embedding_dim, hidden_dim, num_classes, lstm_layers, bidirectional,batch_size, dropout):\n super(BiLSTM_Sentiment_Classifier,self).__init__()\n \n self.lstm_layers = lstm_layers\n self.num_directions = 2 if bidirectional else 1\n self.hidden_dim = hidden_dim\n self.num_classes = num_classes\n self.batch_size = batch_size\n \n\n self.embedding = nn.Embedding(vocab_size, embedding_dim)\n \n self.lstm = nn.LSTM(embedding_dim,\n hidden_dim,\n num_layers=lstm_layers,\n dropout=dropout,\n bidirectional=bidirectional,\n batch_first=True)\n\n self.fc = nn.Linear(hidden_dim*self.num_directions, num_classes)\n self.softmax = nn.LogSoftmax(dim=1)\n \n def forward(self, x, hidden):\n self.batch_size = x.size(0)\n ##EMBEDDING LAYER\n embedded = self.embedding(x)\n #LSTM LAYERS\n out, hidden = self.lstm(embedded, hidden)\n #Extract only the hidden state from the last LSTM cell\n out = out[:,-1,:]\n #FULLY CONNECTED LAYERS\n out = self.fc(out)\n out = self.softmax(out)\n\n return out, hidden\n\n def init_hidden(self, batch_size):\n #Initialization of the LSTM hidden and cell states\n h0 = torch.zeros((self.lstm_layers*self.num_directions, batch_size, self.hidden_dim)).detach().to(DEVICE)\n c0 = torch.zeros((self.lstm_layers*self.num_directions, batch_size, self.hidden_dim)).detach().to(DEVICE)\n hidden = (h0, c0)\n return hidden","metadata":{"execution":{"iopub.status.busy":"2023-08-07T11:22:59.721174Z","iopub.execute_input":"2023-08-07T11:22:59.721629Z","iopub.status.idle":"2023-08-07T11:22:59.732871Z","shell.execute_reply.started":"2023-08-07T11:22:59.721599Z","shell.execute_reply":"2023-08-07T11:22:59.731432Z"},"trusted":true},"execution_count":71,"outputs":[]},{"cell_type":"code","source":"model = BiLSTM_Sentiment_Classifier(VOCAB_SIZE, EMBEDDING_DIM, HIDDEN_DIM,NUM_CLASSES, LSTM_LAYERS,BIDIRECTIONAL, BATCH_SIZE, DROPOUT)\nmodel = model.to(DEVICE)\n\n#Initialize embedding with the previously defined embedding matrix\nmodel.embedding.weight.data.copy_(torch.from_numpy(embedding_matrix))\n#Allow the embedding matrix to be fined tuned to better adapt to out dataset and get higher accuracy\nmodel.embedding.weight.requires_grad=True\n\nprint(model)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T11:23:01.490655Z","iopub.execute_input":"2023-08-07T11:23:01.490998Z","iopub.status.idle":"2023-08-07T11:23:01.579459Z","shell.execute_reply.started":"2023-08-07T11:23:01.490972Z","shell.execute_reply":"2023-08-07T11:23:01.578346Z"},"trusted":true},"execution_count":72,"outputs":[{"name":"stdout","text":"BiLSTM_Sentiment_Classifier(\n (embedding): Embedding(59181, 200)\n (lstm): LSTM(200, 100, batch_first=True, dropout=0.5, bidirectional=True)\n (fc): Linear(in_features=200, out_features=2, bias=True)\n (softmax): LogSoftmax(dim=1)\n)\n","output_type":"stream"}]},{"cell_type":"code","source":"criterion = nn.NLLLoss()\noptimizer = torch.optim.AdamW(model.parameters(), lr=LR, weight_decay = 5e-6)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T11:23:02.948374Z","iopub.execute_input":"2023-08-07T11:23:02.948713Z","iopub.status.idle":"2023-08-07T11:23:02.962423Z","shell.execute_reply.started":"2023-08-07T11:23:02.948687Z","shell.execute_reply":"2023-08-07T11:23:02.960757Z"},"trusted":true},"execution_count":73,"outputs":[]},{"cell_type":"code","source":"total_step = len(train_loader)\ntotal_step_val = len(valid_loader)\n\nearly_stopping_patience = 25\nearly_stopping_counter = 0\n\nvalid_acc_max = 0 # Initialize best accuracy top 0\n\nfor e in range(EPOCHS):\n\n #lists to host the train and validation losses of every batch for each epoch\n train_loss, valid_loss = [], []\n #lists to host the train and validation accuracy of every batch for each epoch\n train_acc, valid_acc = [], []\n\n #lists to host the train and validation predictions of every batch for each epoch\n y_train_list, y_val_list = [], []\n\n #initalize number of total and correctly classified texts during training and validation\n correct, correct_val = 0, 0\n total, total_val = 0, 0\n running_loss, running_loss_val = 0, 0\n\n\n ####TRAINING LOOP####\n\n model.train()\n\n for inputs, labels in train_loader:\n inputs, labels = inputs.to(DEVICE), labels.to(DEVICE) #load features and targets in device\n\n h = model.init_hidden(labels.size(0))\n\n model.zero_grad() #reset gradients \n\n output, h = model(inputs,h) #get output and hidden states from LSTM network\n labels = labels.type(torch.LongTensor)\n loss = criterion(output, labels)\n loss.backward()\n \n running_loss += loss.item()\n \n optimizer.step()\n\n y_pred_train = torch.argmax(output, dim=1) #get tensor of predicted values on the training set\n y_train_list.extend(y_pred_train.squeeze().tolist()) #transform tensor to list and the values to the list\n \n correct += torch.sum(y_pred_train==labels).item() #count correctly classified texts per batch\n total += labels.size(0) #count total texts per batch\n\n train_loss.append(running_loss / total_step)\n train_acc.append(100 * correct / total)\n\n ####VALIDATION LOOP####\n \n with torch.no_grad():\n \n model.eval()\n \n for inputs, labels in valid_loader:\n inputs, labels = inputs.to(DEVICE), labels.to(DEVICE)\n\n val_h = model.init_hidden(labels.size(0))\n\n output, val_h = model(inputs, val_h)\n labels = labels.type(torch.LongTensor)\n val_loss = criterion(output, labels)\n running_loss_val += val_loss.item()\n\n y_pred_val = torch.argmax(output, dim=1)\n y_val_list.extend(y_pred_val.squeeze().tolist())\n\n correct_val += torch.sum(y_pred_val==labels).item()\n total_val += labels.size(0)\n\n valid_loss.append(running_loss_val / total_step_val)\n valid_acc.append(100 * correct_val / total_val)\n\n #Save model if validation accuracy increases\n if np.mean(valid_acc) >= valid_acc_max:\n torch.save(model.state_dict(), './state_dict.pt')\n print(f'Epoch {e+1}:Validation accuracy increased ({valid_acc_max:.6f} --> {np.mean(valid_acc):.6f}). Saving model ...')\n valid_acc_max = np.mean(valid_acc)\n early_stopping_counter=0 #reset counter if validation accuracy increases\n else:\n print(f'Epoch {e+1}:Validation accuracy did not increase')\n early_stopping_counter+=1 #increase counter if validation accuracy does not increase\n \n if early_stopping_counter > early_stopping_patience:\n print('Early stopped at epoch :', e+1)\n break\n \n print(f'\\tTrain_loss : {np.mean(train_loss):.4f} Val_loss : {np.mean(valid_loss):.4f}')\n print(f'\\tTrain_acc : {np.mean(train_acc):.3f}% Val_acc : {np.mean(valid_acc):.3f}%')","metadata":{"execution":{"iopub.status.busy":"2023-08-07T11:23:11.819254Z","iopub.execute_input":"2023-08-07T11:23:11.819679Z","iopub.status.idle":"2023-08-07T12:35:02.720753Z","shell.execute_reply.started":"2023-08-07T11:23:11.819649Z","shell.execute_reply":"2023-08-07T12:35:02.719546Z"},"trusted":true},"execution_count":74,"outputs":[{"name":"stdout","text":"Epoch 1:Validation accuracy increased (0.000000 --> 91.927083). Saving model ...\n\tTrain_loss : 0.2708 Val_loss : 0.2097\n\tTrain_acc : 87.242% Val_acc : 91.927%\nEpoch 2:Validation accuracy did not increase\n\tTrain_loss : 0.0643 Val_loss : 0.2277\n\tTrain_acc : 97.692% Val_acc : 91.359%\nEpoch 3:Validation accuracy did not increase\n\tTrain_loss : 0.0314 Val_loss : 0.2968\n\tTrain_acc : 98.848% Val_acc : 91.051%\nEpoch 4:Validation accuracy did not increase\n\tTrain_loss : 0.0188 Val_loss : 0.4007\n\tTrain_acc : 99.305% Val_acc : 90.909%\nEpoch 5:Validation accuracy did not increase\n\tTrain_loss : 0.0113 Val_loss : 0.4807\n\tTrain_acc : 99.606% Val_acc : 90.720%\nEpoch 6:Validation accuracy did not increase\n\tTrain_loss : 0.0088 Val_loss : 0.4765\n\tTrain_acc : 99.680% Val_acc : 90.696%\nEpoch 7:Validation accuracy did not increase\n\tTrain_loss : 0.0055 Val_loss : 0.5465\n\tTrain_acc : 99.791% Val_acc : 90.483%\nEpoch 8:Validation accuracy did not increase\n\tTrain_loss : 0.0044 Val_loss : 0.5391\n\tTrain_acc : 99.835% Val_acc : 90.246%\nEpoch 9:Validation accuracy did not increase\n\tTrain_loss : 0.0042 Val_loss : 0.6234\n\tTrain_acc : 99.855% Val_acc : 90.814%\nEpoch 10:Validation accuracy did not increase\n\tTrain_loss : 0.0021 Val_loss : 0.6123\n\tTrain_acc : 99.929% Val_acc : 90.412%\nEpoch 11:Validation accuracy did not increase\n\tTrain_loss : 0.0020 Val_loss : 0.6083\n\tTrain_acc : 99.933% Val_acc : 90.720%\nEpoch 12:Validation accuracy did not increase\n\tTrain_loss : 0.0020 Val_loss : 0.7071\n\tTrain_acc : 99.933% Val_acc : 90.459%\nEpoch 13:Validation accuracy did not increase\n\tTrain_loss : 0.0016 Val_loss : 0.6549\n\tTrain_acc : 99.939% Val_acc : 90.696%\nEpoch 14:Validation accuracy did not increase\n\tTrain_loss : 0.0013 Val_loss : 0.6562\n\tTrain_acc : 99.955% Val_acc : 90.412%\nEpoch 15:Validation accuracy did not increase\n\tTrain_loss : 0.0012 Val_loss : 0.5783\n\tTrain_acc : 99.955% Val_acc : 90.672%\nEpoch 16:Validation accuracy did not increase\n\tTrain_loss : 0.0010 Val_loss : 0.6425\n\tTrain_acc : 99.963% Val_acc : 91.004%\nEpoch 17:Validation accuracy did not increase\n\tTrain_loss : 0.0018 Val_loss : 0.5898\n\tTrain_acc : 99.936% Val_acc : 90.459%\nEpoch 18:Validation accuracy did not increase\n\tTrain_loss : 0.0008 Val_loss : 0.6894\n\tTrain_acc : 99.960% Val_acc : 90.933%\nEpoch 19:Validation accuracy did not increase\n\tTrain_loss : 0.0007 Val_loss : 0.7465\n\tTrain_acc : 99.970% Val_acc : 90.980%\nEpoch 20:Validation accuracy did not increase\n\tTrain_loss : 0.0020 Val_loss : 0.5861\n\tTrain_acc : 99.951% Val_acc : 90.554%\nEpoch 21:Validation accuracy did not increase\n\tTrain_loss : 0.0007 Val_loss : 0.6261\n\tTrain_acc : 99.980% Val_acc : 90.625%\nEpoch 22:Validation accuracy did not increase\n\tTrain_loss : 0.0005 Val_loss : 0.6870\n\tTrain_acc : 99.987% Val_acc : 90.791%\nEpoch 23:Validation accuracy did not increase\n\tTrain_loss : 0.0006 Val_loss : 0.6617\n\tTrain_acc : 99.983% Val_acc : 90.578%\nEpoch 24:Validation accuracy did not increase\n\tTrain_loss : 0.0009 Val_loss : 0.6491\n\tTrain_acc : 99.965% Val_acc : 90.507%\nEpoch 25:Validation accuracy did not increase\n\tTrain_loss : 0.0009 Val_loss : 0.6526\n\tTrain_acc : 99.971% Val_acc : 90.601%\n","output_type":"stream"}]},{"cell_type":"code","source":"model.load_state_dict(torch.load('./state_dict.pt'))","metadata":{"execution":{"iopub.status.busy":"2023-08-07T12:35:14.693743Z","iopub.execute_input":"2023-08-07T12:35:14.694250Z","iopub.status.idle":"2023-08-07T12:35:14.734272Z","shell.execute_reply.started":"2023-08-07T12:35:14.694224Z","shell.execute_reply":"2023-08-07T12:35:14.732822Z"},"trusted":true},"execution_count":75,"outputs":[{"execution_count":75,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"code","source":"model.eval()\ny_pred_list = []\ny_test_list = []\nfor inputs, labels in test_loader:\n inputs, labels = inputs.to(DEVICE), labels.to(DEVICE)\n test_h = model.init_hidden(labels.size(0))\n\n output, val_h = model(inputs, test_h)\n y_pred_test = torch.argmax(output, dim=1)\n y_pred_list.extend(y_pred_test.squeeze().tolist())\n y_test_list.extend(labels.squeeze().tolist())","metadata":{"execution":{"iopub.status.busy":"2023-08-07T12:35:16.753318Z","iopub.execute_input":"2023-08-07T12:35:16.754335Z","iopub.status.idle":"2023-08-07T12:35:22.994716Z","shell.execute_reply.started":"2023-08-07T12:35:16.754265Z","shell.execute_reply":"2023-08-07T12:35:22.993472Z"},"trusted":true},"execution_count":76,"outputs":[]},{"cell_type":"code","source":"print('Classification Report for Bi-LSTM :\\n', classification_report(y_test_list, y_pred_list, target_names=category))","metadata":{"execution":{"iopub.status.busy":"2023-08-07T12:35:25.819571Z","iopub.execute_input":"2023-08-07T12:35:25.819928Z","iopub.status.idle":"2023-08-07T12:35:25.877672Z","shell.execute_reply.started":"2023-08-07T12:35:25.819900Z","shell.execute_reply":"2023-08-07T12:35:25.876810Z"},"trusted":true},"execution_count":77,"outputs":[{"name":"stdout","text":"Classification Report for Bi-LSTM :\n precision recall f1-score support\n\n rumor 0.95 0.94 0.95 14122\n not_rumor 0.80 0.83 0.81 4022\n\n accuracy 0.92 18144\n macro avg 0.87 0.88 0.88 18144\nweighted avg 0.92 0.92 0.92 18144\n\n","output_type":"stream"}]},{"cell_type":"code","source":"conf_matrix(y_test_list,y_pred_list,'PyTorch Bi-LSTM Sentiment Analysis\\nConfusion Matrix', category)","metadata":{"execution":{"iopub.status.busy":"2023-08-07T12:35:34.597102Z","iopub.execute_input":"2023-08-07T12:35:34.597530Z","iopub.status.idle":"2023-08-07T12:35:34.857247Z","shell.execute_reply.started":"2023-08-07T12:35:34.597499Z","shell.execute_reply":"2023-08-07T12:35:34.855701Z"},"trusted":true},"execution_count":78,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAwAAAALkCAYAAAC4I1KuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAClDUlEQVR4nOzdd3hT5cPG8TttKW0pbYGy995D9kYFRBEREBBliAPBLU5w4caB4s89AMGBDGXvjcqq7Fn2aqFldrd0vn/wUkiTtEmbNiXn+7kuLznPWU+aNjn3Oc8wZWRkZAgAAACAIXi4ugIAAAAACg4BAAAAADAQAgAAAABgIAQAAAAAwEAIAAAAAICBEAAAAAAAAyEAAAAAAAZCAAAAAAAMhAAAAAAAGIiXqysA5NXtt9+u8PBwi/JffvlFbdq0cUGNCs5XX32lr7/+2qK8b9+++uijj1xQIwBZGfkzCsjJmDFjNHfuXIvyp59+Ws8884wLauQ8hfk7+qYPALY+WK0pWrSoAgICVKZMGTVq1Eht27ZVt27d5O3tnc+1NLdlyxYNGzYs346/evVqVapUKd+Oj5wNHTpUISEhOW5XpEgR+fr6qnjx4qpUqZJq1qypjh07qkOHDvLx8SmAmtqvbt26Vsud+SGdlpamtWvX6u+//9bevXsVGRmpmJgYZWRkqGjRoipevLjKli2r8uXLq1atWqpdu7aaNWumsmXLWhzLkc8GR934msPCwtS1a9dstx87dqyGDx9u17F//vnnHL8YDh48aNexHHX06FEtXLhQe/bs0bFjxxQdHa3ExEQVLVpUfn5+Cg4OVtmyZVW9enXVrl1bDRs2VN26deXp6Zkv9QHczaZNm7L9LKhYsaJWr14tk8lUcJWCId30AcARV65c0fnz53X+/Hnt27dPM2fOVMmSJfXCCy9owIABrq4eDCglJUUpKSmKiYlReHi4tmzZounTp6tUqVJ69tlnNWjQIFdXscCsXbtW77zzjs6ePWt1fUpKiuLi4nT27Fnt3LnTbF3r1q3166+/FkAtc+ePP/7QQw89lOOXekZGhmbMmFFAtbouMjJS48aN09q1a62uT0xMVGJioi5evKiDBw/q77//zlzn5+enWbNmqXbt2gVV3QLHHfybX2F5DxcsWJDt+vDwcG3dulWtWrUqoBrBqAzfB+DSpUt644039NJLLyk9Pd3V1QEkSRcvXtS4ceP06aefuroqBWLy5MkaNWqUzYv/nFy+fNnJNXKuEydOaNOmTTlut2HDBp04cSL/K3SDo0eP6t5777V58Z+ThIQEJSUlOblWgPtJSkrSihUrctwup5AAOIPhA8A1Cxcu1GeffebqagBmJk+erK1bt7q6Gvlqw4YN+uSTT1xdjXz3xx9/5LjN9OnTC6Am1yUnJ2vkyJGFPkAB7mDNmjWKi4vLcbtly5YpOTm5AGoEI3PbJkANGzbUnXfembmckpKisLAwrVy5UrGxsVb3mTp1qvr376/q1avna90qV66sF198MdttfvrpJ8XExFiUZ31d1gQGBuapfsg/lSpV0v3335+5nJycrFOnTmn58uVW76JmZGRo1qxZatmypdXjPfPMMzd9JylbTzk8PDzUsmVL1a9fX0FBQZlNpY4dO6b9+/crKioq2+M+9thj2X7Zbty40eZd+Zz+Pps3b57temvWrFmjyMhIq/0VJOns2bNat26dw8fNiz/++EOnT5+2uq5KlSpq1aqVypUrJy8vL8XGxioiIkL79+/XyZMnlZGRUaB1vZmtWbPG1VVAITB//ny7touJidHatWvVo0ePfK4R8lth/o522wBQp04dPf744xblL7/8sh5//HHt2bPHYl1qaqrmzp2rF154IV/rVqFCBat1u9GMGTOsBgBbrws3B1vv/VNPPaW+ffsqPj7eYp07PwE4ceKEDhw4YFEeHBysn3/+WXXq1LG6X0ZGhvbt26c1a9Zo3rx5Vrd58MEHsz33lStXbAaA/PgbS01N1cyZM/Xss89aXT9jxgylpaU5/bzZWbp0qdXyV155RY888ojNPgvnz5/XunXrtGTJEruaNgFGd+nSJf377792b79gwQICAPKV2wYAW0qWLKlPPvlEd911l9X1GzZsyAwAS5Ys0ejRoy226dy5s3766adsz7Nnzx7179/forxGjRo2v3SdLTk5WStWrNDmzZu1a9cuXbp0SdHR0fLx8VFQUJBq1KihVq1a6c4771TlypVzPJ49w1mtWrVKixYt0t69e3X+/HklJSVp2LBhev31160eMz09XevXr9emTZu0Y8cOnTt3TlFRUUpLS1OxYsVUsWJF1atXT61bt9Ztt92Wq6cbaWlpWrp0qRYtWqTQ0FBduHBB/v7+ql27tu68804NGDCgwEeCyqpq1arq0aOH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Mzpz5kzm31ft2rU1aNAgDRw4sFD/jPr06aPPPvvM7Etx3rx5euGFF5Senm5xceDn56d77703V6HXUQMHDrRrlKmEhITM9sI//PCDAgICdNddd+nxxx/PbGtuzYEDB7Ry5Uqr61588UU99thjZp8Xhw8f1uOPP27WF0u6+iW+cuVK3XHHHXa+sqveeOMNDR06NHN55MiR6tu3r0W/Lknavn272cXjjU2wbI3K1qtXrwKfCXj06NEaNWpU5nKXLl1sjiwlSd27d9fEiRMzP9eGDRum3r17Ww0N27dvtwgAvId5s337dqtNXb29vc2uCe68806rowQtXLgwTwHAWd+B9913n5o1a6YmTZpYbYZzTVRUlB599FHt3bvXrDwhIUGbNm2yOQCLvVq3bq26deta9EdYs2aNLl68qFKlSpmV29sfMzw83GozojfeeEODBw+2eozExET9999/WrFihVOaAFkL2VWqVNHcuXPN3r8bHT9+XH///bcWLVrkcLh22yZAhw4d0o8//pj537fffquxY8fqjjvusNnUwsvLy+rd1oYNG1q9G7B+/XqL9LVz506rb2KvXr3y9SJl3759OnTokNV1b7zxhtnFv3T1w+eDDz5QcHCw1X3sHa/4mvvuu09PPPGExcW/dPUpinS187S1D23p6jCYI0eOtPrB4+3trX79+umXX35xqE5+fn767LPPLP5wbA3xeG2uiMLAx8dHxYoVM8RkMG+99ZaKFSvm8H6HDx/We++9p169euWq70pB8ff31z333GNWFhsbq0WLFmnu3LkWd8t69+5t88Pe2e655x516tTJ4f1iYmI0c+ZM3Xnnndm2vbb1RPLuu+/W448/bvF5Ubt2bb322msOHcuWHj16mF04Slc/i2zd4Tx+/LhDx3eF+vXrm138S1K3bt1sdrD08fHRu+++a/a5Wq1aNbVv397q9seOHbMo4z3Mm+ya/9z4d26rGdDx48dzPRiAM78DH374Yd1yyy3ZXvxLV59m3BjCbuRIU+HsZP2dkK7W3drvl7XmP0FBQXbfkG3SpInNdb6+vurcubPef/99p3QAthZAatSoke33QfXq1fXQQw9p9uzZatGihUPnc9snANeGqnLEsGHDbI5oMXToUIt2umlpaRa9z+3tbOJsW7ZssVoeFBRkcyxhPz8/3X333Zo2bZrdx7PGZDJl2wP/mo0b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2r9/vy5fvqzY2Fh5enrK399f5cuXV40aNVS5cmWbo4ahcOA9NJ6YmBiFhITo1KlTSktLU5kyZdSoUSOro4AVpPj4eHXu3NliWOPu3bvr66+/ztXxjh49qrCwMF24cEEJCQnKyMiQr6+vgoODVaNGDdWpUydfr59Onz6tEydO6OzZs4qNjVVSUpK8vb3l7++vypUrq27dunl6qkYAyKW4uDgNHDjQYtzXMmXKaO3atYXiohoAAMDdTZw40eos6z/++KPNoWyNjqtUO23dulXbt29XWlqazp8/rzVr1lidYOuBBx7g4h8AACAfxMbGZg55HhMTo127dikkJMRiu6pVq2bO5gtLXKnaadOmTTk+RipRooSGDRtWQDUCAAAwlujoaLuG037mmWdogpYNRgFyonHjxtEuGQAAwIW6dOnistEYbxY8AXACT09Pvfzyy7rrrrtcXRUAAADDatWqlT7//HNXV6PQIwDkkre3t8qWLatWrVpp6NChatCggaurBAAAYCgeHh4KDAxU/fr11bt371wNiWlEjAIEAAAAGAgRCQAAADAQAgAAAABgIAQAAAAAwEAIAAAAAICBEAAAAAAAA2EYUACGsG/fPs2dO1c7duxQWFiY4uPjlZKSYrbN008/rWeeecZFNcy7r776yuqM5X379tVHH33kghrByLZs2aJhw4ZZlFesWFFr1qxxQY0AXEMAANxIUlKStm7dqpCQEO3YsUPnzp1TVFSU4uLi5OPjo8DAQFWrVk1169ZVx44d1apVK3l7e7u62vnuo48+0tSpU8WoxxgzZozmzp1rc32pUqW0bt06u/4ukpOT1aVLF126dMnmNjd7qATgnggAgBuIjY3V77//rmnTptm8GImLi1NcXJzCw8O1YcMGTZkyRQEBAerXr58ef/xxlSpVqoBrXTCmTZumn3/+2dXVwE3i4sWLWr58ue65554ct126dGm2F/+uxN13ANmhDwBwkwsJCdGdd96piRMnOnwxEhMTo6lTp2rHjh35VDvXmzRpkqurgJvM9OnT7drujz/+yOeaAED+4AkAcBP7/fff9cEHHygtLc3VVSmUTp48qXPnzlld16BBA3Xq1En+/v6ZZc2bNy+oqqEQ2759uw4ePKi6deva3ObAgQNuHZwBuDcCAHCTWrFihd57771s27VXrFhRbdq0UZkyZeTh4aHLly8rNDRU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xowZoxEjRljcVUtJSdHEiRM1ceJEeXh4ZHvXzdfXVy+99JJd5yxsunfvbvWufnp6uj744AN9+OGHeR6aMi0tTf/9959F521rF25Z5WUISon32F4eHh5O7/jauXNn/frrrxblaWlpGj9+vMaPH2/xc8/pfcjKx8dHTZo0yfwMuFFYWJimTJliVnb//fe7PABs3LhRv/zyi0V5QECA3nnnHUlXn4h9/PHHGjBggMVIWF999ZU6depkdRZhAOZoAgTcpAICAjR9+nS7LgQzMjIcvljt2LFjjhd22V2QeHh46MMPP1SdOnUcOm9h0blz52zrnvXn2bRpU6edO6eLf29vbz366KN5Po/R32NX6dSpkxo3bpztNjf+3KtUqaLu3bs7fJ7Bgwc7vI+rREVFacyYMVY/p15//XWzGZfr16+vJ554wmK7lJQUvfTSS0pKSsrXugLugAAA3MRKliypyZMna/To0QoICMjVMYoUKWJzSMhHH31Un376qc3hEG0JCgrSpEmT1LNnz1zVqTDw8vLSRx99ZLMt9Y2aN29ucUc1v/j4+GjixImqVauWU45n5PfYVUwmk7744oscJ12Tro6u9MMPP8jPz8/h89xzzz157rBcUMaNG2e1T8y1pj9ZjRw5Uo0aNbIoP3r0qCZMmJAfVQTcCgEAuMl5enpq1KhRWrt2rV5++WU1adLE5hCW15hMJjVu3FgvvPCC1q1bl+1sm71799by5cv1yCOPZDsTsXR1ltinn35ay5cvV4cOHXL1egqThg0b6vfff7d5dz8oKEgvvviifvvtN7uCwo0mTJigQYMGqVatWnY1MQkMDFT//v21ePFidevWzaFz5cTI77GrVKpUSX/++ae6d++e2UTvRl5eXurRo4f++usv1ahRI9fnGTdunKZOnarevXurWrVquQoS+W3evHlatmyZRfmNTX+y8vLy0scff2x1tKPffvtN//zzj9PrCbgTU0ZBzq8OoEDEx8dr9+7dunDhgqKiohQbGysfHx8FBASoWrVqql27ts27/tnJyMjQoUOHdPDgQUVFRSk+Pl7+/v4qUaKEGjRokKcLlcLu0KFD2rlzpy5fvix/f39VrVpVbdq0UZEiRfJ87Pj4eB09elRhYWG6cOGCEhISlJGRIV9fXwUHB6tGjRqqU6dOjsHOGYz8HrvKmTNnFBISonPnzsnb21vlypVT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AMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCAEAAAAAMBACAAAAACAgRAAAAAAAAMhAAAAAAAGQgAAAAAADMSUkZGR4epKAAAAACgYPAEAAAAADIQAAAAAABgIAQAAAAAwEAIAAAAAYCBerq4AAABwT2FhYZo7d64qVqyofv36ubo6AP4fTwAAAEC+CA8P19dff625c+e6uioAbkAAAAAAAAyEAAAAAAAYCAEAyIW6deuqbt26kqTly5dr8ODBatmyperWrauwsDBJ0u233262nNXQoUNVt25dbdmyxWZ5aGionnjiCbVp00bNmzfX8OHDtWfPnsxtt27dqkcffVStW7fWLbfcoscff1xHjx61We8zZ85o3Lhxuv3229WoUSO1adNGjz32mNavX291+6+++kp169bVV199pUuXLundd9/V7bffroYNG2rMmDEO/cwAFA43fn6tX79egwcP1i233KIWLVroscce0/79+23ue/nyZX3yySfq0aOHmjRpolatWmno0KFasGCBss4rOnToUA0bNkySFBISknneunXr6vbbb89V3ceMGaO6detqzpw5On36tMaMGaNOnTqpQYMG+uqrrySZf25ZM2fOHNWtW9fiM+zG8qSkJH322Wfq2rWrmjRpoh49eujXX381+zm8//77uu2229S4cWPdfffdmjPn/9q786iorjsO4F9kE5ygIGoF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"},"metadata":{}}]},{"cell_type":"code","source":"X = emotion['text'].values\ny = emotion['label'].values","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:27.711822Z","iopub.execute_input":"2023-08-31T04:53:27.712279Z","iopub.status.idle":"2023-08-31T04:53:27.717893Z","shell.execute_reply.started":"2023-08-31T04:53:27.712243Z","shell.execute_reply":"2023-08-31T04:53:27.716757Z"},"trusted":true},"execution_count":24,"outputs":[]},{"cell_type":"code","source":"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=seed_value)","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:31.962037Z","iopub.execute_input":"2023-08-31T04:53:31.962470Z","iopub.status.idle":"2023-08-31T04:53:32.002684Z","shell.execute_reply.started":"2023-08-31T04:53:31.962434Z","shell.execute_reply":"2023-08-31T04:53:32.001412Z"},"trusted":true},"execution_count":25,"outputs":[]},{"cell_type":"code","source":"X_train, X_valid, y_train, y_valid = train_test_split(X_train, y_train, test_size=0.1, stratify=y_train, random_state=seed_value)","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:33.146832Z","iopub.execute_input":"2023-08-31T04:53:33.147904Z","iopub.status.idle":"2023-08-31T04:53:33.174834Z","shell.execute_reply.started":"2023-08-31T04:53:33.147863Z","shell.execute_reply":"2023-08-31T04:53:33.173285Z"},"trusted":true},"execution_count":26,"outputs":[]},{"cell_type":"code","source":"ros = RandomOverSampler()\nX_train_os, y_train_os = ros.fit_resample(np.array(X_train).reshape(-1,1),np.array(y_train).reshape(-1,1))","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:34.507437Z","iopub.execute_input":"2023-08-31T04:53:34.507862Z","iopub.status.idle":"2023-08-31T04:53:34.535095Z","shell.execute_reply.started":"2023-08-31T04:53:34.507828Z","shell.execute_reply":"2023-08-31T04:53:34.534026Z"},"trusted":true},"execution_count":27,"outputs":[]},{"cell_type":"code","source":"X_train_os = X_train_os.flatten()\ny_train_os = y_train_os.flatten()","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:35.882942Z","iopub.execute_input":"2023-08-31T04:53:35.883375Z","iopub.status.idle":"2023-08-31T04:53:35.890551Z","shell.execute_reply.started":"2023-08-31T04:53:35.883340Z","shell.execute_reply":"2023-08-31T04:53:35.889346Z"},"trusted":true},"execution_count":28,"outputs":[]},{"cell_type":"code","source":"(unique, counts) = np.unique(y_train_os, return_counts=True)\nnp.asarray((unique, counts)).T","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:37.483323Z","iopub.execute_input":"2023-08-31T04:53:37.484038Z","iopub.status.idle":"2023-08-31T04:53:37.494420Z","shell.execute_reply.started":"2023-08-31T04:53:37.484002Z","shell.execute_reply":"2023-08-31T04:53:37.493170Z"},"trusted":true},"execution_count":29,"outputs":[{"execution_count":29,"output_type":"execute_result","data":{"text/plain":"array([[0.0000e+00, 2.9706e+04],\n [1.0000e+00, 2.9706e+04]])"},"metadata":{}}]},{"cell_type":"code","source":"from transformers import DistilBertTokenizerFast\ntokenizer = DistilBertTokenizerFast.from_pretrained('distilbert-base-uncased')","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:53:38.848009Z","iopub.execute_input":"2023-08-31T04:53:38.848431Z","iopub.status.idle":"2023-08-31T04:53:40.586520Z","shell.execute_reply.started":"2023-08-31T04:53:38.848395Z","shell.execute_reply":"2023-08-31T04:53:40.585507Z"},"trusted":true},"execution_count":30,"outputs":[{"output_type":"display_data","data":{"text/plain":"Downloading (…)okenizer_config.json: 0%| | 0.00/28.0 [00:00 best_val_accuracy:\n best_val_accuracy = val_accuracy\n best_epoch = epoch_i + 1\n# ...\n\n \n # Print performance over the entire training data\n time_elapsed = time.time() - t0_epoch\n print(\"-\"*61)\n print(f\"{'AVG TRAIN LOSS':^12} | {'VAL LOSS':^10} | {'VAL ACCURACY (%)':^9} | {'ELAPSED (s)':^9}\")\n print(\"-\"*61)\n print(f\"{avg_train_loss:^14.6f} | {val_loss:^10.6f} | {val_accuracy:^17.2f} | {time_elapsed:^9.2f}\")\n print(\"-\"*61)\n print(\"\\n\")\n \n print(\"Training complete!\")","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:54:59.617884Z","iopub.execute_input":"2023-08-31T04:54:59.618306Z","iopub.status.idle":"2023-08-31T04:54:59.643019Z","shell.execute_reply.started":"2023-08-31T04:54:59.618274Z","shell.execute_reply":"2023-08-31T04:54:59.641941Z"},"trusted":true},"execution_count":42,"outputs":[]},{"cell_type":"code","source":"bert_train(bert_classifier, train_dataloader, val_dataloader, epochs=EPOCHS)","metadata":{"execution":{"iopub.status.busy":"2023-08-31T04:55:10.509633Z","iopub.execute_input":"2023-08-31T04:55:10.510160Z"},"trusted":true},"execution_count":null,"outputs":[{"name":"stdout","text":"Start training...\n\n----------\nEpoch : 1\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.612956 | 888.27 \n 200 | 0.498534 | 877.29 \n 300 | 0.438833 | 880.25 \n 400 | 0.377991 | 881.60 \n 500 | 0.350226 | 882.52 \n 600 | 0.306684 | 879.84 \n 700 | 0.293329 | 880.93 \n 800 | 0.286234 | 880.95 \n 900 | 0.255511 | 880.95 \n 1000 | 0.256460 | 884.24 \n 1100 | 0.236700 | 882.76 \n 1200 | 0.213937 | 880.85 \n 1300 | 0.198725 | 883.31 \n 1400 | 0.224443 | 884.91 \n 1500 | 0.198403 | 881.96 \n 1600 | 0.183021 | 882.74 \n 1700 | 0.182168 | 888.24 \n 1800 | 0.183723 | 883.02 \n 1856 | 0.170627 | 491.32 \n-------------------------------------------------------------\nAVG TRAIN LOSS | VAL LOSS | VAL ACCURACY (%) | ELAPSED (s)\n-------------------------------------------------------------\n 0.290768 | 0.284368 | 88.05 | 16747.87 \n-------------------------------------------------------------\n\n\n----------\nEpoch : 2\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.122718 | 891.56 \n 200 | 0.105639 | 883.76 \n 300 | 0.117471 | 883.51 \n 400 | 0.111290 | 882.79 \n 500 | 0.117804 | 881.93 \n 600 | 0.111237 | 884.45 \n 700 | 0.106214 | 880.61 \n 800 | 0.087488 | 880.85 \n 900 | 0.089691 | 882.45 \n 1000 | 0.091216 | 881.78 \n 1100 | 0.106995 | 885.54 \n 1200 | 0.086266 | 883.56 \n 1300 | 0.091015 | 884.61 \n 1400 | 0.085402 | 884.06 \n 1500 | 0.090656 | 883.98 \n 1600 | 0.085334 | 885.62 \n 1700 | 0.067639 | 884.79 \n 1800 | 0.082778 | 883.08 \n 1856 | 0.083184 | 492.34 \n-------------------------------------------------------------\nAVG TRAIN LOSS | VAL LOSS | VAL ACCURACY (%) | ELAPSED (s)\n-------------------------------------------------------------\n 0.097182 | 0.299317 | 92.23 | 16773.52 \n-------------------------------------------------------------\n\n\n----------\nEpoch : 3\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.046844 | 894.07 \n 200 | 0.042701 | 885.16 \n 300 | 0.043705 | 884.80 \n 400 | 0.036374 | 884.34 \n 500 | 0.032019 | 880.30 \n 600 | 0.029289 | 881.38 \n 700 | 0.036292 | 883.53 \n 800 | 0.056497 | 885.01 \n 900 | 0.041489 | 884.04 \n 1000 | 0.040153 | 880.70 \n","output_type":"stream"}]},{"cell_type":"code","source":"# Calculate classification report for the best epoch\nprint(\"Best Epoch:\", best_epoch)\nprint(\"Best Validation Accuracy:\", best_val_accuracy)\n\nclassification_rep = classification_report(val_true_labels, val_preds)\nprint(\"\\nClassification Report for Best Epoch:\\n\")\nprint(classification_rep)\n","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Define Cross entropy Loss function for the multiclass classification task\nloss_fn = nn.CrossEntropyLoss()\n\ndef bert_train(model, train_dataloader, val_dataloader=None, epochs=4, evaluation=False):\n\n print(\"Start training...\\n\")\n for epoch_i in range(epochs):\n print(\"-\"*10)\n print(\"Epoch : {}\".format(epoch_i+1))\n print(\"-\"*10)\n print(\"-\"*38)\n print(f\"{'BATCH NO.':^7} | {'TRAIN LOSS':^12} | {'ELAPSED (s)':^9}\")\n print(\"-\"*38)\n\n # Measure the elapsed time of each epoch\n t0_epoch, t0_batch = time.time(), time.time()\n\n # Reset tracking variables at the beginning of each epoch\n total_loss, batch_loss, batch_counts = 0, 0, 0\n \n ###TRAINING###\n\n # Put the model into the training mode\n model.train()\n\n for step, batch in enumerate(train_dataloader):\n batch_counts +=1\n \n b_input_ids, b_attn_mask, b_labels = tuple(t.to(device) for t in batch)\n\n # Zero out any previously calculated gradients\n model.zero_grad()\n\n # Perform a forward pass and get logits.\n logits = model(b_input_ids, b_attn_mask)\n\n # Compute loss and accumulate the loss values\n b_labels = b_labels.type(torch.LongTensor)\n #logits = logits.type(torch.LongTensor)\n loss = loss_fn(logits, b_labels)\n batch_loss += loss.item()\n total_loss += loss.item()\n\n # Perform a backward pass to calculate gradients\n loss.backward()\n\n # Clip the norm of the gradients to 1.0 to prevent \"exploding gradients\"\n torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n\n # Update model parameters:\n # fine tune BERT params and train additional dense layers\n optimizer.step()\n # update learning rate\n scheduler.step()\n\n # Print the loss values and time elapsed for every 100 batches\n if (step % 100 == 0 and step != 0) or (step == len(train_dataloader) - 1):\n # Calculate time elapsed for 20 batches\n time_elapsed = time.time() - t0_batch\n \n print(f\"{step:^9} | {batch_loss / batch_counts:^12.6f} | {time_elapsed:^9.2f}\")\n\n # Reset batch tracking variables\n batch_loss, batch_counts = 0, 0\n t0_batch = time.time()\n\n # Calculate the average loss over the entire training data\n avg_train_loss = total_loss / len(train_dataloader)\n\n ###EVALUATION###\n \n # Put the model into the evaluation mode\n model.eval()\n \n # Define empty lists to host accuracy and validation for each batch\n val_accuracy = []\n val_loss = []\n\n for batch in val_dataloader:\n batch_input_ids, batch_attention_mask, batch_labels = tuple(t.to(device) for t in batch)\n \n # We do not want to update the params during the evaluation,\n # So we specify that we dont want to compute the gradients of the tensors\n # by calling the torch.no_grad() method\n with torch.no_grad():\n logits = model(batch_input_ids, batch_attention_mask)\n batch_labels = batch_labels.type(torch.LongTensor)\n loss = loss_fn(logits, batch_labels)\n\n\n val_loss.append(loss.item())\n\n # Get the predictions starting from the logits (get index of highest logit)\n preds = torch.argmax(logits, dim=1).flatten()\n\n # Calculate the validation accuracy \n accuracy = (preds == batch_labels).cpu().numpy().mean() * 100\n val_accuracy.append(accuracy)\n\n # Compute the average accuracy and loss over the validation set\n val_loss = np.mean(val_loss)\n val_accuracy = np.mean(val_accuracy)\n \n # Print performance over the entire training data\n time_elapsed = time.time() - t0_epoch\n print(\"-\"*61)\n print(f\"{'AVG TRAIN LOSS':^12} | {'VAL LOSS':^10} | {'VAL ACCURACY (%)':^9} | {'ELAPSED (s)':^9}\")\n print(\"-\"*61)\n print(f\"{avg_train_loss:^14.6f} | {val_loss:^10.6f} | {val_accuracy:^17.2f} | {time_elapsed:^9.2f}\")\n print(\"-\"*61)\n print(\"\\n\")\n \n print(\"Training complete!\")","metadata":{"execution":{"iopub.status.busy":"2023-08-08T09:29:38.422704Z","iopub.execute_input":"2023-08-08T09:29:38.423046Z","iopub.status.idle":"2023-08-08T09:29:38.439974Z","shell.execute_reply.started":"2023-08-08T09:29:38.423023Z","shell.execute_reply":"2023-08-08T09:29:38.438638Z"},"trusted":true},"execution_count":41,"outputs":[]},{"cell_type":"code","source":"bert_train(bert_classifier, train_dataloader, val_dataloader, epochs=EPOCHS)","metadata":{"execution":{"iopub.status.busy":"2023-08-08T09:29:41.206323Z","iopub.execute_input":"2023-08-08T09:29:41.206658Z"},"trusted":true},"execution_count":null,"outputs":[{"name":"stdout","text":"Start training...\n\n----------\nEpoch : 1\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.609052 | 663.18 \n 200 | 0.484862 | 652.74 \n 300 | 0.433438 | 653.92 \n 400 | 0.375797 | 662.30 \n 500 | 0.339777 | 657.94 \n 600 | 0.298725 | 654.74 \n 700 | 0.284953 | 654.97 \n 800 | 0.280043 | 660.89 \n 900 | 0.259473 | 656.71 \n 1000 | 0.259122 | 652.43 \n 1100 | 0.240318 | 654.43 \n 1200 | 0.213309 | 655.55 \n 1300 | 0.206401 | 663.76 \n 1400 | 0.215680 | 660.69 \n 1500 | 0.211225 | 661.19 \n 1600 | 0.188455 | 677.48 \n 1700 | 0.190846 | 665.87 \n 1800 | 0.186727 | 659.73 \n 1856 | 0.179407 | 372.35 \n-------------------------------------------------------------\nAVG TRAIN LOSS | VAL LOSS | VAL ACCURACY (%) | ELAPSED (s)\n-------------------------------------------------------------\n 0.289971 | 0.349013 | 86.45 | 12516.86 \n-------------------------------------------------------------\n\n\n----------\nEpoch : 2\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.128458 | 658.29 \n 200 | 0.126935 | 679.26 \n 300 | 0.125277 | 656.52 \n 400 | 0.107444 | 652.72 \n 500 | 0.140321 | 653.92 \n 600 | 0.112021 | 658.28 \n 700 | 0.125005 | 659.02 \n 800 | 0.106368 | 656.71 \n 900 | 0.112280 | 666.15 \n 1000 | 0.101106 | 658.10 \n 1100 | 0.127468 | 661.86 \n 1200 | 0.106121 | 660.17 \n 1300 | 0.108870 | 669.51 \n 1400 | 0.105566 | 653.74 \n 1500 | 0.102782 | 654.75 \n 1600 | 0.112026 | 651.57 \n 1700 | 0.095735 | 659.70 \n 1800 | 0.105765 | 662.05 \n 1856 | 0.097363 | 369.46 \n-------------------------------------------------------------\nAVG TRAIN LOSS | VAL LOSS | VAL ACCURACY (%) | ELAPSED (s)\n-------------------------------------------------------------\n 0.113374 | 0.318853 | 91.99 | 12521.81 \n-------------------------------------------------------------\n\n\n----------\nEpoch : 3\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.060977 | 674.26 \n 200 | 0.061554 | 665.19 \n 300 | 0.054191 | 666.49 \n 400 | 0.056370 | 661.05 \n 500 | 0.058739 | 661.06 \n 600 | 0.044665 | 671.37 \n 700 | 0.050842 | 657.50 \n 800 | 0.074256 | 669.21 \n 900 | 0.062092 | 653.58 \n 1000 | 0.061063 | 661.05 \n 1100 | 0.055143 | 653.58 \n 1200 | 0.060104 | 657.80 \n 1300 | 0.043927 | 658.77 \n 1400 | 0.054576 | 669.17 \n 1500 | 0.062695 | 664.34 \n 1600 | 0.070159 | 666.20 \n 1700 | 0.053370 | 660.03 \n 1800 | 0.055221 | 654.76 \n 1856 | 0.036408 | 362.74 \n-------------------------------------------------------------\nAVG TRAIN LOSS | VAL LOSS | VAL ACCURACY (%) | ELAPSED (s)\n-------------------------------------------------------------\n 0.057132 | 0.383508 | 91.78 | 12565.73 \n-------------------------------------------------------------\n\n\n----------\nEpoch : 4\n----------\n--------------------------------------\nBATCH NO. | TRAIN LOSS | ELAPSED (s)\n--------------------------------------\n 100 | 0.033532 | 675.09 \n 200 | 0.042206 | 656.18 \n 300 | 0.023480 | 664.15 \n 400 | 0.038474 | 663.17 \n 500 | 0.028646 | 656.68 \n","output_type":"stream"}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}