Created
August 24, 2024 23:08
-
-
Save alexmazaltov/5694bee09cce1640ff0ae0194f5a8fa5 to your computer and use it in GitHub Desktop.
08.sentiment-analysis-with-bert.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"provenance": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"accelerator": "GPU" | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/alexmazaltov/5694bee09cce1640ff0ae0194f5a8fa5/08-sentiment-analysis-with-bert.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "PGnlRWvkY-2c" | |
}, | |
"source": [ | |
"# Sentiment Analysis with BERT\n", | |
"\n", | |
"> TL;DR In this tutorial, you'll learn how to fine-tune BERT for sentiment analysis. You'll do the required text preprocessing (special tokens, padding, and attention masks) and build a Sentiment Classifier using the amazing Transformers library by Hugging Face!\n", | |
"\n", | |
"- [Read the tutorial](https://www.curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/)\n", | |
"- [Run the notebook in your browser (Google Colab)](https://colab.research.google.com/drive/1PHv-IRLPCtv7oTcIGbsgZHqrB5LPvB7S)\n", | |
"- [Read the `Getting Things Done with Pytorch` book](https://github.com/curiousily/Getting-Things-Done-with-Pytorch)\n", | |
"\n", | |
"You'll learn how to:\n", | |
"\n", | |
"- Intuitively understand what BERT is\n", | |
"- Preprocess text data for BERT and build PyTorch Dataset (tokenization, attention masks, and padding)\n", | |
"- Use Transfer Learning to build Sentiment Classifier using the Transformers library by Hugging Face\n", | |
"- Evaluate the model on test data\n", | |
"- Predict sentiment on raw text\n", | |
"\n", | |
"Let's get started!" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "fH8xHMfdX974", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 441 | |
}, | |
"cellView": "form", | |
"outputId": "d05f3e10-0e83-4188-fc7d-28dd6dc31448" | |
}, | |
"source": [ | |
"#@title Watch the video tutorial\n", | |
"\n", | |
"from IPython.display import YouTubeVideo\n", | |
"YouTubeVideo('8N-nM3QW7O0', width=720, height=420)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/html": [ | |
"\n", | |
" <iframe\n", | |
" width=\"720\"\n", | |
" height=\"420\"\n", | |
" src=\"https://www.youtube.com/embed/8N-nM3QW7O0\"\n", | |
" frameborder=\"0\"\n", | |
" allowfullscreen\n", | |
" ></iframe>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.lib.display.YouTubeVideo at 0x7f4aa4252e48>" | |
], | |
"image/jpeg": "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\n" | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 2 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "NJ6MhJYYBCwu", | |
"outputId": "781f20fd-a698-4da5-d928-32ffcdb50fa1", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"source": [ | |
"!nvidia-smi" | |
], | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"/bin/bash: line 1: nvidia-smi: command not found\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Tbodro8Fpmwr" | |
}, | |
"source": [ | |
"## What is BERT?\n", | |
"\n", | |
"BERT (introduced in [this paper](https://arxiv.org/abs/1810.04805)) stands for Bidirectional Encoder Representations from Transformers. If you don't know what most of that means - you've come to the right place! Let's unpack the main ideas:\n", | |
"\n", | |
"- Bidirectional - to understand the text you're looking you'll have to look back (at the previous words) and forward (at the next words)\n", | |
"- Transformers - The [Attention Is All You Need](https://arxiv.org/abs/1706.03762) paper presented the Transformer model. The Transformer reads entire sequences of tokens at once. In a sense, the model is non-directional, while LSTMs read sequentially (left-to-right or right-to-left). The attention mechanism allows for learning contextual relations between words (e.g. `his` in a sentence refers to Jim).\n", | |
"- (Pre-trained) contextualized word embeddings - [The ELMO paper](https://arxiv.org/abs/1802.05365v2) introduced a way to encode words based on their meaning/context. Nails has multiple meanings - fingernails and metal nails.\n", | |
"\n", | |
"BERT was trained by masking 15% of the tokens with the goal to guess them. An additional objective was to predict the next sentence. Let's look at examples of these tasks:\n", | |
"\n", | |
"### Masked Language Modeling (Masked LM)\n", | |
"\n", | |
"The objective of this task is to guess the masked tokens. Let's look at an example, and try to not make it harder than it has to be:\n", | |
"\n", | |
"That's `[mask]` she `[mask]` -> That's what she said\n", | |
"\n", | |
"### Next Sentence Prediction (NSP)\n", | |
"\n", | |
"Given a pair of two sentences, the task is to say whether or not the second follows the first (binary classification). Let's continue with the example:\n", | |
"\n", | |
"*Input* = `[CLS]` That's `[mask]` she `[mask]`. [SEP] Hahaha, nice! [SEP]\n", | |
"\n", | |
"*Label* = *IsNext*\n", | |
"\n", | |
"*Input* = `[CLS]` That's `[mask]` she `[mask]`. [SEP] Dwight, you ignorant `[mask]`! [SEP]\n", | |
"\n", | |
"*Label* = *NotNext*\n", | |
"\n", | |
"The training corpus was comprised of two entries: [Toronto Book Corpus](https://arxiv.org/abs/1506.06724) (800M words) and English Wikipedia (2,500M words). While the original Transformer has an encoder (for reading the input) and a decoder (that makes the prediction), BERT uses only the decoder.\n", | |
"\n", | |
"BERT is simply a pre-trained stack of Transformer Encoders. How many Encoders? We have two versions - with 12 (BERT base) and 24 (BERT Large).\n", | |
"\n", | |
"### Is This Thing Useful in Practice?\n", | |
"\n", | |
"The BERT paper was released along with [the source code](https://github.com/google-research/bert) and pre-trained models.\n", | |
"\n", | |
"The best part is that you can do Transfer Learning (thanks to the ideas from OpenAI Transformer) with BERT for many NLP tasks - Classification, Question Answering, Entity Recognition, etc. You can train with small amounts of data and achieve great performance!" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "wmj22-TcZMef" | |
}, | |
"source": [ | |
"## Setup\n", | |
"\n", | |
"We'll need [the Transformers library](https://huggingface.co/transformers/) by Hugging Face:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Kj_7Tz0-pK69" | |
}, | |
"source": [ | |
"!pip install -q -U watermark" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Jjsbi1u3QFEM" | |
}, | |
"source": [ | |
"!pip install -qq transformers" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "AJqoaFpVpoM8", | |
"outputId": "88b5415f-9104-4937-c782-09c6025945c6", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 136 | |
} | |
}, | |
"source": [ | |
"%reload_ext watermark\n", | |
"%watermark -v -p numpy,pandas,torch,transformers" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"CPython 3.6.9\n", | |
"IPython 5.5.0\n", | |
"\n", | |
"numpy 1.18.2\n", | |
"pandas 1.0.3\n", | |
"torch 1.4.0\n", | |
"transformers 2.8.0\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "w68CZpOwFoly", | |
"outputId": "9c1a0321-1650-4224-cf9c-3c8dc8661ed3", | |
"cellView": "form", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"#@title Setup & Config\n", | |
"import transformers\n", | |
"from transformers import BertModel, BertTokenizer, AdamW, get_linear_schedule_with_warmup\n", | |
"import torch\n", | |
"\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"import seaborn as sns\n", | |
"from pylab import rcParams\n", | |
"import matplotlib.pyplot as plt\n", | |
"from matplotlib import rc\n", | |
"from sklearn.model_selection import train_test_split\n", | |
"from sklearn.metrics import confusion_matrix, classification_report\n", | |
"from collections import defaultdict\n", | |
"from textwrap import wrap\n", | |
"\n", | |
"from torch import nn, optim\n", | |
"from torch.utils.data import Dataset, DataLoader\n", | |
"import torch.nn.functional as F\n", | |
"\n", | |
"%matplotlib inline\n", | |
"%config InlineBackend.figure_format='retina'\n", | |
"\n", | |
"sns.set(style='whitegrid', palette='muted', font_scale=1.2)\n", | |
"\n", | |
"HAPPY_COLORS_PALETTE = [\"#01BEFE\", \"#FFDD00\", \"#FF7D00\", \"#FF006D\", \"#ADFF02\", \"#8F00FF\"]\n", | |
"\n", | |
"sns.set_palette(sns.color_palette(HAPPY_COLORS_PALETTE))\n", | |
"\n", | |
"rcParams['figure.figsize'] = 12, 8\n", | |
"\n", | |
"RANDOM_SEED = 42\n", | |
"np.random.seed(RANDOM_SEED)\n", | |
"torch.manual_seed(RANDOM_SEED)\n", | |
"\n", | |
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n", | |
"device" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"device(type='cuda', index=0)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 65 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "ufzPdoTtNikq" | |
}, | |
"source": [ | |
"## Data Exploration\n", | |
"\n", | |
"We'll load the Google Play app reviews dataset, that we've put together in the previous part:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "SgPRhuMzi9ot", | |
"outputId": "846be435-6864-4157-9510-5325cc75bced", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 153 | |
} | |
}, | |
"source": [ | |
"!gdown --id 1S6qMioqPJjyBLpLVz4gmRTnJHnjitnuV\n", | |
"!gdown --id 1zdmewp7ayS4js4VtrJEHzAheSW-5NBZv" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Downloading...\n", | |
"From: https://drive.google.com/uc?id=1S6qMioqPJjyBLpLVz4gmRTnJHnjitnuV\n", | |
"To: /content/apps.csv\n", | |
"100% 134k/134k [00:00<00:00, 50.2MB/s]\n", | |
"Downloading...\n", | |
"From: https://drive.google.com/uc?id=1zdmewp7ayS4js4VtrJEHzAheSW-5NBZv\n", | |
"To: /content/reviews.csv\n", | |
"7.17MB [00:00, 33.4MB/s]\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "mUKLyKc7I6Qp", | |
"outputId": "81441fd4-74b2-4b5b-b4f1-76c41cb6ce6a", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 632 | |
} | |
}, | |
"source": [ | |
"df = pd.read_csv(\"reviews.csv\")\n", | |
"df.head()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>userName</th>\n", | |
" <th>userImage</th>\n", | |
" <th>content</th>\n", | |
" <th>score</th>\n", | |
" <th>thumbsUpCount</th>\n", | |
" <th>reviewCreatedVersion</th>\n", | |
" <th>at</th>\n", | |
" <th>replyContent</th>\n", | |
" <th>repliedAt</th>\n", | |
" <th>sortOrder</th>\n", | |
" <th>appId</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>Andrew Thomas</td>\n", | |
" <td>https://lh3.googleusercontent.com/a-/AOh14GiHd...</td>\n", | |
" <td>Update: After getting a response from the deve...</td>\n", | |
" <td>1</td>\n", | |
" <td>21</td>\n", | |
" <td>4.17.0.3</td>\n", | |
" <td>2020-04-05 22:25:57</td>\n", | |
" <td>According to our TOS, and the term you have ag...</td>\n", | |
" <td>2020-04-05 15:10:24</td>\n", | |
" <td>most_relevant</td>\n", | |
" <td>com.anydo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Craig Haines</td>\n", | |
" <td>https://lh3.googleusercontent.com/-hoe0kwSJgPQ...</td>\n", | |
" <td>Used it for a fair amount of time without any ...</td>\n", | |
" <td>1</td>\n", | |
" <td>11</td>\n", | |
" <td>4.17.0.3</td>\n", | |
" <td>2020-04-04 13:40:01</td>\n", | |
" <td>It sounds like you logged in with a different ...</td>\n", | |
" <td>2020-04-05 15:11:35</td>\n", | |
" <td>most_relevant</td>\n", | |
" <td>com.anydo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>steven adkins</td>\n", | |
" <td>https://lh3.googleusercontent.com/a-/AOh14GiXw...</td>\n", | |
" <td>Your app sucks now!!!!! Used to be good but no...</td>\n", | |
" <td>1</td>\n", | |
" <td>17</td>\n", | |
" <td>4.17.0.3</td>\n", | |
" <td>2020-04-01 16:18:13</td>\n", | |
" <td>This sounds odd! We are not aware of any issue...</td>\n", | |
" <td>2020-04-02 16:05:56</td>\n", | |
" <td>most_relevant</td>\n", | |
" <td>com.anydo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Lars Panzerbjørn</td>\n", | |
" <td>https://lh3.googleusercontent.com/a-/AOh14Gg-h...</td>\n", | |
" <td>It seems OK, but very basic. Recurring tasks n...</td>\n", | |
" <td>1</td>\n", | |
" <td>192</td>\n", | |
" <td>4.17.0.2</td>\n", | |
" <td>2020-03-12 08:17:34</td>\n", | |
" <td>We do offer this option as part of the Advance...</td>\n", | |
" <td>2020-03-15 06:20:13</td>\n", | |
" <td>most_relevant</td>\n", | |
" <td>com.anydo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Scott Prewitt</td>\n", | |
" <td>https://lh3.googleusercontent.com/-K-X1-YsVd6U...</td>\n", | |
" <td>Absolutely worthless. This app runs a prohibit...</td>\n", | |
" <td>1</td>\n", | |
" <td>42</td>\n", | |
" <td>4.17.0.2</td>\n", | |
" <td>2020-03-14 17:41:01</td>\n", | |
" <td>We're sorry you feel this way! 90% of the app ...</td>\n", | |
" <td>2020-03-15 23:45:51</td>\n", | |
" <td>most_relevant</td>\n", | |
" <td>com.anydo</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" userName ... appId\n", | |
"0 Andrew Thomas ... com.anydo\n", | |
"1 Craig Haines ... com.anydo\n", | |
"2 steven adkins ... com.anydo\n", | |
"3 Lars Panzerbjørn ... com.anydo\n", | |
"4 Scott Prewitt ... com.anydo\n", | |
"\n", | |
"[5 rows x 11 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 8 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "dB2jE6am7Dpo", | |
"outputId": "19acca28-2336-43f1-b714-29d993bc114c", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"df.shape" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(15746, 11)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 9 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "TWqVNHJbn10l" | |
}, | |
"source": [ | |
"We have about 16k examples. Let's check for missing values:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "VA_wGSLQLKCh", | |
"outputId": "9468ddba-47d0-46a8-d7bb-6ff51c4bdb8c", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 323 | |
} | |
}, | |
"source": [ | |
"df.info()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"RangeIndex: 15746 entries, 0 to 15745\n", | |
"Data columns (total 11 columns):\n", | |
" # Column Non-Null Count Dtype \n", | |
"--- ------ -------------- ----- \n", | |
" 0 userName 15746 non-null object\n", | |
" 1 userImage 15746 non-null object\n", | |
" 2 content 15746 non-null object\n", | |
" 3 score 15746 non-null int64 \n", | |
" 4 thumbsUpCount 15746 non-null int64 \n", | |
" 5 reviewCreatedVersion 13533 non-null object\n", | |
" 6 at 15746 non-null object\n", | |
" 7 replyContent 7367 non-null object\n", | |
" 8 repliedAt 7367 non-null object\n", | |
" 9 sortOrder 15746 non-null object\n", | |
" 10 appId 15746 non-null object\n", | |
"dtypes: int64(2), object(9)\n", | |
"memory usage: 1.3+ MB\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "H3cL_1qVn_6h" | |
}, | |
"source": [ | |
"Great, no missing values in the score and review texts! Do we have class imbalance?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Wwh_rW4Efhs3", | |
"outputId": "e39b9955-3c5e-45f3-f960-38bfa03447c4", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 506 | |
} | |
}, | |
"source": [ | |
"sns.countplot(df.score)\n", | |
"plt.xlabel('review score');" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdIAAAPTCAYAAAC0evs4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdfXSfdX3/8Vd6k7TQpjcW6iqUVpGOZtxsdjtH7YDa7niYQwaKax168LSW4plUipuw2QnqgDNk4hnotlZa+Dng6Jk9UAUGtMUiFo+tp4VZTwROgUJdTqDEEEqbxOT3B6dZ0uT76V1qIH08zvGcK/lc1/v7+ca/eHJxXVWdnZ2dAQAAAAAA+jRkoDcAAAAAAABvZkI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQMGwgd4Ab15bt27Nnj17MnTo0NTU1Az0dgAAAAAADtmePXvy29/+NjU1NZk+ffpBXSukU9GePXvS0dGRjo6OtLW1DfR2AAAAAAAO2549ew76GiGdioYOHZqOjo4MGTIkxxxzzEBvBwAAAADgkO3atSsdHR0ZOnToQV8rpFNRTU1N2tracswxx2TatGkDvR0AAAAAgENWX1+flpaWQ3qMtZeNAgAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUCCkAwAAAABAgZAOAAAAAAAFQjoAAAAAABQI6QAAAAAAUDBsoDfQ31544YXMnj37gM7dsGFDxo8f3+dae3t77r777qxevTrbtm1La2trJk2alDlz5uSSSy6peF13O3fuzMqVK/Pwww9nx44dqa6uztSpU3Peeedl7ty5GTZs/3/++vr63H777dmwYUNeeumljBkzJnV1dZk7d25mzZp1QN8TAAAAAIBDV9XZ2dk50JvoT/0R0l999dXMnz8/W7Zs6fO64447LsuWLcupp55acfbWrVuzcOHCNDY29rl+5plnZvny5Rk9enTFGatWrcrSpUvT1tbW5/q8efNyzTXXVLz+cNXX16elpSWjRo3KtGnTjtjnAAAAAAAcaYfTOwfdHend/cd//EdmzJhRcf3YY4/t8/dLlizJli1bUlVVlUsvvTQf+chHMmLEiPz4xz/Oddddl8bGxlx66aW59957M3bs2F7XNzU1ZdGiRWlsbExtbW2uvvrqzJw5M7t3785//dd/5d///d+zefPmLFmyJMuWLetzD5s2bcoXv/jFtLe355RTTskXvvCFTJ8+Pb/+9a/zzW9+Mw8//HDuuuuuvOMd78inP/3pQ/sDAQAAAACwX4M6pI8YMaJiLK/kRz/6UdavX58kWbx4cS677LKutQsvvDCTJ0/OxRdfnIaGhixfvjyf//zne81YtmxZGhoaUlVVlW9961s9Yv4VV1yRESNG5Oabb8769euzfv36nHXWWb1m3HDDDWlvb8+ECRNyxx13ZNy4cUmS8ePH55Zbbsn8+fPz2GOP5Zvf/GY+8pGPHNCjZgAAjkbPfmnqQG8BBo0p124b6C0AAAwILxvdx5133pkkGTduXObPn99rfcaMGTnnnHOSJN/73vfS3t7eY729vT3f/e53kyTnnHNOn3fEz58/v+tO9r2f192TTz6ZJ554IkmyYMGCroi+V1VVVa688sokya5du3LPPfcczFcEAAAAAOAgCOnd7N69Oxs2bEiSzJ49O9XV1X2ed+655yZ54xEumzZt6rG2cePGNDc39zhvX9XV1ZkzZ06S5Cc/+Ul2797dY33dunW9PmtfdXV1mTx5cpJk7dq1xe8FAAAAAMChOypCemtr6wGd99RTT2XPnj1J3ngZaCXd137xi1/0WOv+84HM2LNnT55++uk+Z0ycODFvf/vbK84444wz+twDAAAAAAD9Z1A/I/0rX/lKXnzxxezatSvV1dWZMmVK/vRP/zSf/OQn+wzU27b93/P+TjjhhIpzJ02alCFDhqSjo6PHNd1nDBkyJJMmTao4o/v8bdu25Q/+4A96zTjxxBOL32/vjNdeey0NDQ2ZOHFi8XwAAAAAAA7eoA7pTz31VNdxa2trfvWrX+VXv/pV7rrrrnz1q1/Nhz70oR7nv/LKK13Hb3vb2yrOHT58eGpra9PU1JSmpqY+Z9TW1mb48OEVZ3R/OWilGaU97Lve1NR0xEJ6S0tLr0fYAAC82b3nPe8Z6C3AoOWfDwCAo82gC+lDhgzJzJkz86EPfSh1dXX5vd/7vdTU1OS5557LD3/4w9x2223ZtWtX/vZv/zZjxozJzJkzu659/fXXu45ramqKn7N3fdeuXT1+v3fG/q4fMWJE13GlGZWe0X4gMwAAAAAA6B+DLqRPmjQp3/72t3v9/pRTTskpp5ySs88+O5dcckn27NmTr3zlK7nvvvsydOjQAdjpW8eoUaMybdq0gd4GAADwJuG/+AAA3orq6+vT0tJySNceFS8b7e6P/uiP8olPfCJJ8uyzz+aJJ57oWhs5cmTX8d6Xjlayd/2YY47p8fu9M/Z3/e7du7uOK83Y30tSSzMAAAAAAOgfR11IT5IPfOADXcdbt27tOh43blzX8csvv1zx+ra2tjQ3NydJxo4d22Nt74zm5ua0t7dXnLFz586u40ozSnvYd33fGQAAAAAA9I+jMqR3f0nnq6++2nU8derUruMXXnih4vU7duxIR0dHr2u6/9zR0ZEXX3yx4ozu8yvN2L59e8Xru8849thjj9iLRgEAAAAAjnZHZUh/6aWXuo5Hjx7ddfzud7+76yWhW7ZsqXj95s2bu47r6up6rHX/+UBm1NTU5OSTT+5zRkNDQxoaGirO2Dt/3z0AAAAAANB/jsqQ/tBDD3Udd4/QI0aMyHvf+94kyZo1ayo+o/yBBx5I8sbjVPZ9yc6MGTNSW1vb47x9tba2Zu3atUmS973vfRkxYkSP9VmzZnUd33///X3O2Lp1a55//vkkPR9VAwAAAABA/xp0If1///d/i+s//elPc+eddyZJpkyZktNPP73H+sc//vEkbzzDfMWKFb2u37RpUx555JEkyUUXXZRhw4b1WB82bFg+9rGPJUnWrVuXTZs29ZqxYsWKrmek7/287k477bSufS1fvjxNTU091js7O3PTTTcleeMlo+eff37xOwMAAAAAcOiGXnPNNdcM9Cb605w5c7Jly5a0trZm6NChGTJkSHbv3p2nnnoqt912W7761a+mra0tw4YNy9e+9rWcdNJJPa6fMmVKnnjiiTz33HP56U9/mvb29rzjHe9Ia2trHnzwwVx11VXZvXt3Jk6cmBtvvLHX3eTJG3e5r169Oi0tLXn44YczYcKETJgwITt37sxtt92WW2+9NZ2dnTnrrLPy2c9+ts/v8a53vSv33HNPWlpasn79+px00kkZNWpUnn322Xz5y1/OunXrkiSLFy/OzJkz+/8PmTdeZtra2prq6upMmDDhiHwGAMCR1vTINwZ6CzBojJ31uYHeAgDAITuc3lnV2dnZeYT2NSBmzJjR4wWifRkzZkz+6Z/+KX/2Z3/W53pzc3MWLFhQ8Rnnxx13XJYtW5ZTTz214mds3bo1CxcuTGNjY5/rZ555ZpYvX97jGe37WrVqVZYuXZq2trY+1+fOnZtrr7224vWHq76+Pi0tLRk1alSmTZt2xD4HAOBIevZLU/d/EnBAply7baC3AABwyA6ndw66kP7QQw9l48aN2bJlSxoaGtLU1JS2traMGTMmJ598cmbOnJmPfvSjGTduXHFOe3t77r777tx7773Ztm1b2traMmnSpMyePTuf+tSnMn78+P3uZe/jYdasWZMdO3Zk+PDheec735nzzjsvc+fO7fVYmL7U19dn5cqVefzxx9PY2JgxY8akrq4u8+bN6/Es9SNBSAcABgMhHfqPkA4AvJUJ6RwRQjoAMBgI6dB/hHQA4K3scHrnoHvZKAAAAAAA9CchHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoGDbQG/hd2rlzZ84999w0NTUlSS644ILccMMNFc9vb2/P3XffndWrV2fbtm1pbW3NpEmTMmfOnFxyySUZP378AX3mypUr8/DDD2fHjh2prq7O1KlTc95552Xu3LkZNmz//xfU19fn9ttvz4YNG/LSSy9lzJgxqaury9y5czNr1qwD/wMAAAAAAHDQjqqQft1113VF9P159dVXM3/+/GzZsqXH75955pk888wz+f73v59ly5bl1FNPrThj69atWbhwYRobG7t+9/rrr2fz5s3ZvHlzVq9eneXLl2f06NEVZ6xatSpLly5NW1tb1+8aGxvzyCOP5JFHHsm8efNyzTXXHNB3AgAAAADg4B01j3b58Y9/nNWrV+fEE088oPOXLFmSLVu2pKqqKosWLcpDDz2URx99NNdff31Gjx6dxsbGXHrppRXDfFNTUxYtWpTGxsbU1tbm+uuvz6OPPpqHHnooixYtSlVVVTZv3pwlS5ZU3MOmTZvyxS9+MW1tbTnllFPy7W9/Oxs2bMj3v//9zJkzJ0ly1113ZdmyZQf/BwEAAAAA4IAcFSH99ddf77pre+nSpfs9/0c/+lHWr1+fJFm8eHGuuOKKTJ48Occff3wuvPDC/Nu//VuqqqrS0NCQ5cuX9zlj2bJlaWhoSFVVVb71rW/lwgsvzPHHH5/JkyfniiuuyOLFi5Mk69ev7/qsfd1www1pb2/PhAkTcscdd2TmzJkZP3586urqcsstt+T9739/kuSb3/xmdu7cebB/FgAAAAAADsBREdL/9V//Ndu3b88HP/jBnH322fs9/84770ySjBs3LvPnz++1PmPGjJxzzjlJku9973tpb2/vsd7e3p7vfve7SZJzzjknM2bM6DVj/vz5GTt2bI/P6+7JJ5/ME088kSRZsGBBxo0b12O9qqoqV155ZZJk165dueeee/b7vQAAAAAAOHiDPqT/8pe/zO23355jjz02//AP/7Df83fv3p0NGzYkSWbPnp3q6uo+zzv33HOTvPEIl02bNvVY27hxY5qbm3uct6/q6uqux7P85Cc/ye7du3usr1u3rtdn7auuri6TJ09Okqxdu7b4vQAAAAAAODSDOqR3dHRk6dKlaW9vz+LFizNx4sT9XvPUU09lz549SZIzzzyz4nnd137xi1/0WOv+84HM2LNnT55++uk+Z0ycODFvf/vbK84444wz+twDAAAAAAD9Y1CH9DvuuCNPPvlk6urqcvHFFx/QNdu2bes6PuGEEyqeN2nSpAwZMqTXNd1/HjJkSCZNmlRxRvf5lWbs7+Woe2e89tpraWhoKJ4LAAAAAMDBGzbQGzhSduzYkW984xsZMmRIrrnmmgwdOvSArnvllVe6jt/2trdVPG/48OGpra1NU1NTmpqa+pxRW1ub4cOHV5wxfvz4ruNKM0p72He9qanpgO66P1gtLS29Hl8DAPBm9573vGegtwCDln8+AACONoP2jvQvf/nL2bVrV+bOnZvTTz/9gK97/fXXu45ramqK5+5d37VrV58z9nf9iBEjuo4rzaj0jPYDmQEAAAAAwOEblHek33fffVm3bl2OO+64LFmyZKC385Y3atSoTJs2baC3AQAAvEn4Lz4AgLei+vr6tLS0HNK1g+6O9Obm5lx33XVJkquuuiqjR48+qOtHjhzZdbz3paOV7F0/5phj+pyxv+t3797ddVxpRmtr6yHPAAAAAADg8A26kH7LLbeksbEx73//+/MXf/EXB339uHHjuo5ffvnliue1tbWlubk5STJ27Ng+ZzQ3N6e9vb3ijJ07d3YdV5pR2sO+6/vOAAAAAADg8A26R7u88MILSZLHHntsv48jWbVqVVatWpUkufXWWzNnzpxMnTq116y+7NixIx0dHUnS45ruP3d0dOTFF1/MSSedVNxrpRnPPfdctm/fXvwOe2cce+yxR+RFowAAAAAAR7tBd0f64Xr3u9/d9ZLQLVu2VDxv8+bNXcd1dXU91rr/fCAzampqcvLJJ/c5o6GhIQ0NDRVn7J2/7x4AAAAAAOgfg+6O9Kuvvjqf/exni+f85V/+ZZJk1qxZWbx4cZLkhBNOSJKMGDEi733ve/PII49kzZo1+cd//MdUV1f3mvHAAw8keeNxKvu+aGfGjBmpra1Nc3NzHnjggXz4wx/udX1ra2vWrl2bJHnf+96XESNG9FifNWtWbr311iTJ/fffn0suuaTXjK1bt+b5559PknzgAx8ofmcAAAAAAA7NoLsj/cQTT8ypp55a/N9eY8eO7fpd95eSfvzjH0/yxjPMV6xY0eszNm3alEceeSRJctFFF2XYsJ7/PmLYsGH52Mc+liRZt25dNm3a1GvGihUrup6RvvfzujvttNNy+umnJ0mWL1+epqamHuudnZ256aabkrzxktHzzz+//IcBAAAAAOCQDLqQ3h/OPvvsnHXWWUmSm2++OTfffHO2b9+exsbGrFq1Kpdddlk6OjoyceLELFiwoM8Zn/70pzNx4sR0dHTksssuy6pVq9LY2Jjt27fn61//em6++eYkyVlnndX1Wfu66qqrMmzYsDQ2NuYTn/hEHnvssezcuTO//OUvc/nll+fHP/5xkuQzn/lMxo8ffwT+EgAAAAAAVHV2dnYO9CZ+1/a+hPSCCy7IDTfc0Oc5zc3NWbBgQcVnnB933HFZtmxZjzvc97V169YsXLgwjY2Nfa6feeaZWb58eY+74fe1atWqLF26NG1tbX2uz507N9dee23F6w9HfX19WlpaMmrUqP2+uBUA4M3q2S9N3f9JwAGZcu22gd4CAMAhO5zeOeiekd5famtrc+edd+buu+/Ovffem23btqWtrS2TJk3K7Nmz86lPfWq/d4FPnz499957b1asWJE1a9Zkx44dGT58eN75znfmvPPOy9y5c3s9FmZfF1xwQaZPn56VK1fm8ccfT2NjY8aMGZO6urrMmzcvs2bN6s+vDQAAAADAPo7KO9I5MO5IBwAGA3ekQ/9xRzoA8FZ2OL3TM9IBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoR0AAAAAAAoENIBAAAAAKBASAcAAAAAgAIhHQAAAAAACoYN9Ab6269//eusXbs2//M//5P6+vq8/PLL2blzZ4YOHZqJEyfmD//wD/PRj340M2bM2O+s9vb23H333Vm9enW2bduW1tbWTJo0KXPmzMkll1yS8ePH73fGzp07s3Llyjz88MPZsWNHqqurM3Xq1Jx33nmZO3duhg3b//8F9fX1uf3227Nhw4a89NJLGTNmTOrq6jJ37tzMmjXrgP4uAAAAAAAcmqrOzs7Ogd5Ef/rOd76Tr3zlK/s976KLLsq1116boUOH9rn+6quvZv78+dmyZUuf68cdd1yWLVuWU089teJnbN26NQsXLkxjY2Of62eeeWaWL1+e0aNHV5yxatWqLF26NG1tbX2uz5s3L9dcc03F6w9HfX19WlpaMmrUqEybNu2IfAYAwJH27JemDvQWYNCYcu22gd4CAMAhO5zeOege7VJTU5Ozzz47f/d3f5eVK1fmvvvuy+OPP577778/N910U1f4/t73vpevf/3rFecsWbIkW7ZsSVVVVRYtWpSHHnoojz76aK6//vqMHj06jY2NufTSS9PU1NTn9U1NTVm0aFEaGxtTW1ub66+/Po8++mgeeuihLFq0KFVVVdm8eXOWLFlScQ+bNm3KF7/4xbS1teWUU07Jt7/97WzYsCHf//73M2fOnCTJXfWNauoAACAASURBVHfdlWXLlh3GXwwAAAAAgJJBd0f6/rS2tuav/uqvsnXr1owcOTIbNmzIyJEje5zzox/9KAsXLkySfO5zn8tll13WY33jxo25+OKL09nZmU9/+tP5/Oc/3+tzbrzxxixfvjxVVVX5zne+0+tRMt/61rdy8803J0mWLVuWs846q9eMiy66KE888UQmTJiQH/zgBxk3blzXWmdnZ+bPn5/HHnssxxxzTNasWXNAj5o5GO5IBwAGA3ekQ/9xRzoA8FbmjvSDUF1dnQ9/+MNJktdffz3PPPNMr3PuvPPOJMm4ceMyf/78XuszZszIOeeck+SNO9vb29t7rLe3t+e73/1ukuScc87p83ns8+fPz9ixY3t8XndPPvlknnjiiSTJggULekT0JKmqqsqVV16ZJNm1a1fuueeeyl8aAAAAAIBDdtSF9CQ9XvBZXV3dY2337t3ZsGFDkmT27Nm91vc699xzk7zxCJdNmzb1WNu4cWOam5t7nLev6urqrsez/OQnP8nu3bt7rK9bt67XZ+2rrq4ukydPTpKsXbu2z3MAAAAAADg8R11I7+joyH//938nSWprazNlypQe60899VT27NmT5I2XgVbSfe0Xv/hFj7XuPx/IjD179uTpp5/uc8bEiRPz9re/veKMM844o889AAAAAADQP46KkN7Z2ZmXXnopjz32WObPn5+f/exnSZLLL7+81x3n27b93zP/TjjhhIozJ02alCFDhvS6pvvPQ4YMyaRJkyrO6D6/0owTTzyx4vXdZ7z22mtpaGgongsAAAAAwMEbtv9T3rouv/zyrrvPu3vb296Wyy+/PHPnzu219sorr/Q4r5Lhw4entrY2TU1NaWpq6nNGbW1thg8f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ePDgDmds3Lgxra2tnc5Yv35923FnM0p72HN9zxkAAAAAAOy/Xh/S161bl6uvvjp//OMfM2DAgNx555057bTTOj1/xIgRbcevv/56p+etWbMmO3fu3Oua3b/euXNn3njjjU5n7D6/sxmrV6/u9PrdZxx55JE1+aBRAAAAAID3ul4d0t96661cffXVefXVV9O3b9/853/+Z84444ziNSNHjmz7kNDly5d3et6yZcvajhsbG9ut7f51V2b0799/r3fI75qxdu3arF27ttMZu+bvuQcAAAAAAA6MXhvSN2/enClTpuR3v/td+vTpk//4j//IJz7xiX1eN2DAgIwbNy5J8sgjj3T6jPKf/exnSd55nMqeD8IfO3Zs6uvr2523px07dmThwoVJkjPPPDMDBgxot37uuee2HT/00EMdzlixYkVee+21JMl5551X/LkAAAAAAOieXhnSd+zYkWuvvTbPPfdckuTmm2/ORRdd1OXrL7/88iTvPMN8zpw5e60vXbo0ixcvTpJccsklqaura7deV1eXSy+9NEmyaNGiLF26dK8Zc+bMaXtG+q7X292HP/zhtkfQzJ49O83Nze3Wq9Vqbr311iTvfMjopz/96S7/fAAAAAAAdF2vC+lvv/12vvKVr+SZZ55Jknz5y1/ORRddlM2bN3f6p1qttpvxiU98ImeffXaSZObMmZk5c2ZWr16dpqamLFiwINdee2127tyZoUOHZsqUKR3u43Of+1yGDh2anTt35tprr82CBQvS1NSU1atX57vf/W5mzpyZJDn77LPbXmtPN954Y+rq6tLU1JQrr7wyTz75ZNavX58XXnghX/7yl/PEE08kSb7whS+koaHhgPz+AAAAAABor1LdsyL/jXv99ddz/vnnv6trHnnkkZxwwgntvrdx48ZMmTKl02ecH3vssZk1a1ZOPfXUTueuWLEiU6dOTVNTU4frY8aMyezZszNo0KBOZyxYsCA33XRTWlpaOlyfNGlSvv3tb3d6/f5YuXJlNm3alIEDB2bUqFE1eY09nbxg1UF5HXgveOXiEfs+6W/Yq0t6988HB9NJ43r3v7+vftP9Ag6Uk77dy+8XI6b39Bag1zhp1a09vYWa+v6rH+jpLUCvceVJLx+019qf3lm371Pem+rr63PPPfdk3rx5uf/++7Nq1aq0tLRk2LBhOf/883P11Vfv813go0eP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AFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAAQIGQDgAAAAAABUI6AAAAAAAUCOkAAAAAAFAgpAMAAAAA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\n", | |
"text/plain": [ | |
"<Figure size 864x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"image/png": { | |
"width": 745, | |
"height": 489 | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "nZM0GKviobjM" | |
}, | |
"source": [ | |
"That's hugely imbalanced, but it's okay. We're going to convert the dataset into negative, neutral and positive sentiment:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ei0xmdi1Chp0" | |
}, | |
"source": [ | |
"def to_sentiment(rating):\n", | |
" rating = int(rating)\n", | |
" if rating <= 2:\n", | |
" return 0\n", | |
" elif rating == 3:\n", | |
" return 1\n", | |
" else:\n", | |
" return 2\n", | |
"\n", | |
"df['sentiment'] = df.score.apply(to_sentiment)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "V-155O-SFSqE" | |
}, | |
"source": [ | |
"class_names = ['negative', 'neutral', 'positive']" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "y3tY3ECJDPaz", | |
"outputId": "4b137fa5-3637-4fa6-f641-ee96fb28aee6", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 745 | |
} | |
}, | |
"source": [ | |
"ax = sns.countplot(df.sentiment)\n", | |
"plt.xlabel('review sentiment')\n", | |
"ax.set_xticklabels(class_names);" | |
], | |
"execution_count": 21, | |
"outputs": [ | |
{ | |
"metadata": { | |
"tags": null | |
}, | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"<ipython-input-21-15c40b0fa175>:3: UserWarning: FixedFormatter should only be used together with FixedLocator\n", | |
" ax.set_xticklabels(class_names);\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 1200x800 with 1 Axes>" | |
], | |
"image/png": "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AIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJKaq1AOUs61bt8asWbNi0aJFsWLFiqirq4uBAwdGU1NT1NTUdNkcixcvjjlz5sSbb74ZLS0t0bNnz+jbt2+MHDkyhg8fHhUVfmYDAAAAAAAAoJyI+Tuhra0tJk+eHLfffnssX778PX9eU1MTRx11VEycODHq6+s7ZYZsNht33XVX3HbbbfH3v/99u/c1NDTEV7/61Tj11FOjurq6U2YBAAAAAAAAoLgy2Ww2W+ohysnatWtj/PjxMWvWrA+8d7fddotJkybFyJEjizpDc3NzfOtb34onnngi7z0f/ehH41//9V9j4MCBRZ0lX83NzTF//vzcurGxMWpra0syCwAAAAAAAEAxdUYPFfM7YMuWLXHWWWfFo48+mvts0KBBcfTRR0dDQ0OsXLkyZs6cGXPmzMn9+YABA2Lq1KkxYMCAosyQzWbjG9/4Rjz++OO5z7p16xZjx46NAw44IOrr62PdunXx/PPPx1/+8pfYsGFD7r5hw4bF7373u+jZs2dRZukIMR8AAAAAAAD4sOqMHuo1+x1w6623tgv5n//85+PKK69s9/r6CRMmxJQpU+KKK66IbDYby5Yti0svvTRuvvnmoszwhz/8oV3IHzZsWNx4442xxx57vOfeZcuWxTnnnJP74YKFCxfG5MmT49xzzy3KLAAAAAAAAAB0jopSD1Aumpub45ZbbsmtR44cGVddddX7/h76U045JU4++eTc+qGHHoqnn366KHNMmzYtd11RURE//elP3zfkR7z9VoBf/vKXUVNTk/ts+vTpRZkDAAAAAAAAgM4j5udp2rRpsXr16tx64sSJUVW1/RcbnH/++e1eZz9lypSizDFv3rzc9b777huNjY07vL9///7xmc98JrdeuHBhbNy4sSizAAAAAAAAANA5xPw83XfffbnrhoaGOPjgg3d4f+/evePwww/PrR9++OHYvHlzwXOsWbMmdz1kyJC89uy+++7bPQMAAAAAAACA9Ij5edi4cWM88cQTufXo0aMjk8l84L7Ro0fnrtevX1+UV+3X1dXlrltaWvLas2HDhtx1ZWVl9OnTp+A5AAAAAAAAAOg8Yn4eFixYEK2trbn1fvvtl9e+Aw44oN16/vz5Bc+y//77566feeaZvJ72f/zxx3PX++67b3Tv3r3gOQAAAAAAAADoPGJ+Hl5++eV266FDh+a1r6GhISorK3PrBQsWFDzLSSedlLteuXJl/PKXv9zh/b/5zW/ixRdfzK1PO+20gmcAAAAAAAAAoHOJ+Xl47bXX2q0HDhyY177Kysro169fbr148eKCZxkzZkyccMIJufWkSZPi4osvjpdeeqndfYsXL44rrrgiLrvsstxnX/nKV+KII44oeAYAAAAAAAAAOldVqQcoB83Nze3W9fX1ee+tq6uLpUuXRkTE+vXrizLPZZddFrvuumvccsst0draGr/97W/jt7/9bfTu3Tvq6uqiubk51qxZk7u/d+/ecfbZZ3sqHwAAAAAAAKBMeDI/Dy0tLe3WHfmd8z169NjuOTursrIyzj///Piv//qvOPjgg3Ofr1u3LpYsWdIu5I8aNSp+/etfx+mnnx6ZTKYo3w8AAAAAAABA5xLz87Bp06Z2627duuW9t7q6One9cePGos30m9/8Jk466aR4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YsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAAAACAxIj5AAAAAAAAAJAYMR8AAAAAAAAAEiPmAwAAAAAAAEBixHwAAAAAAAAASIyYDwAAAAAAAACJEfMBAAAAAAAAIDFiPgAAAAAAAAAkRswHAAAAAAAAgMSI+QAAAAAAAACQGDEfAAAAAAAAABIj5gMAAAAAAABAYsR8AAAAAAAAAEiMmA8AAAAAAAAAiRHzAQAAAAAAACAxYj4AAAAAAAAAJEbMBwAAAAAAAIDEiPkAAAAAAAAAkBgxHwAAAAAAAAASI+YDAAAAAAAAQGLEfAAAAAAAAABIjJgPAAAAAAAAAIkR8wEAAAAAAAAgMWI+AAAAAAAAACRGzAcAAAAA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z1NLS0u7dffu3fPe26NHj+2e01Fr165tt77qqqtiy5Yt0atXr7j44ovjsccei4cffjj++te/xgMPPBCnnnpqZDKZiIjIZrNxxRVXxDPPPFPQDAAAAAAAAAB0LjE/T5s2bWq37tatW957q6urc9cbN24saI4NGza0W7e2tkaPHj3iV7/6VZx66qnt3hgwaNCguPjii+OHP/xh7rMtW7bENddcU9AMAAAAAAAAAHQuMT9P734Sv7W1Ne+9mzdvzl1v+5R+MeaIiJgwYUKMGjVqu3tOOOGE+Id/+Ifc+sknn4wXX3yxoDkAAAAAAAAA6Dxifp5qamrard/9pP6ObPs0/rvPKXSOysrK+OpXv/qB+772ta+1W//1r38taA4AAAAAAAAAOo+Yn6fa2tp26zVr1uS9d926dbnrXr16FXWOPffcM3bZZZcP3PfJT34yKir+95/7b3/7W0FzAAAAAAAAANB5xPw8DR48uN36jTfeyGtfW1tbLF++PLceMmRIUecYNGhQXvt69eoVdXV1ufWqVasKmgMAAAAAAACAziPm52n48OHt1osWLcpr35IlS6KtrW2753TUnnvu2W5dXV2d995t721tbS1oDgAAAAAAAAA6j5ifp+HDh0e3bt1y62eeeSavfbNnz2633muvvQqeY9so35HX/a9duzZ3XV9fX9AcAAAAAAAAAHQeMT9PPXv2jKamptz6sccei2w2+4H7Hn300dx1TU1NHHjggQXNUV1dHQcffHBuPX/+/Lz2vfrqq7Fx48bc+t2v6wcAAAAAAAAgHWJ+B4wbNy53/dprr8Vjjz22w/vXrVsX9957b249ZsyYDr0Wf3sOO+yw3PWqVaviiSee+MA9284REXHQQQcVPAcAAAAAAAAAnUPM74Cjjz663evpr7nmmtiyZct277/++utjw4YNufUpp5yy3XvHjh0bjY2N0djYGGPHjt3hHEcddVT069cvt/7JT34SW7du3e79K1eujH/7t3/LrXfbbTcxHwAAAAAAACBhYn4H9O7dO84888zceu7cuXHRRRdFa2vre+69/fbb44477sitx4wZU/Ar9t9RU1MTZ599dm49e/bsuPDCC9v94MA7li1bFmeeeWasWrUq99n48eOL8oYAAAAAAAAAADpHVakHKDennXZaPPLII/H4449HRMT06dNj1qxZ8YUvfCEGDx4cK1eu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HwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACmTv6sHsLurqKiImTNnxoIFC+K9996LVq1aRZcuXWLgwIFRWFjY4NfftGlTzJ07N956661YuXJllJaWRqtWraJbt27Rv3//aNWqVYOPAQAAAAAAAID6JczfQeXl5XHrrbfGxIkTY/ny5dWOFxYWxpFHHhnnn39+tG7dul6vvWTJkpgyZUo89dRTMXPmzCgtLa2xXU5OTgwbNizOOOOMGDhwYL2OAQAAAAAAAICGk1NZWVm5qwexu1m7dm2ceeaZMXPmzG227dy5c9x0002x//7718u1n3nmmTj99NNje362nJycOPnkk2PcuHGRm7trvqxQUlISc+bMSeri4uIoKiraJWMBAAAAAAAAqE8NkYeamb+dysrK4gc/+EFGkN+1a9c4+uijo1u3brFy5cp47LHH4tVXX42IiKVLl8ZZZ50V99xzT3Tq1Gmnr79p06aMIL+goCAOOOCA+MxnPhOdO3eO5s2bx7Jly+K///1vvPDCCxERUVlZGbfffnts2rQpLrvssp0eAwAAAAAAAAANS5i/nf785z/Hs88+m9RHHXVUXHXVVdGkSZNk31lnnRUTJkyIK6+8MiorK2PZsmVx8cUXx5/+9Kd6G0evXr3i61//enzlK1+JNm3aVDv+ve99L/7zn//Ej3/841izZk1ERNx9991x2GGHxcEHH1xv4wAAAAAAAACg/u2aNdd3UyUlJXHLLbck9f777x/XXHNNRpC/xcknnxxjxoxJ6qeeeiqZKb8z2rZtG1dccUVMmTIlvvnNb9YY5G9x8MEHxw033BA5OTnJvvp8oQAAAAAAAACAhiHM3w4PPPBArF69OqnPP//8yM+vfXGDc889N5o3b57UEyZM2OkxDBgwII477rjIy8vLqv3gwYNj2LBhST1z5sxYt27dTo8DAAAAAAAAgIYjzN8Ojz/+eLLdrVu3OOigg+ps37Jlyzj88MOT+umnn47Nmzc32PhqM3jw4GS7vLw83n333UYfAwAAAAAAAADZE+ZnadOmTTF9+vSkHjp0aMby9bUZOnRosr1+/fp6WWp/e7Vo0SKj3rhxY6OPAQAAAAAAAIDsCfOzNG/evCgtLU3qT3/601n169+/f0Y9Z86ceh1XNhYtWpRRt2vXrtHHAAAAAAAAAED2hPlZeuuttzLqnj17ZtWvW7duGd+3nzdvXr2OKxuPPfZYst2hQ4fo3r17o48BAAAAAAAAgOwJ87O09ez2Ll26ZNUvLy8vOnTokNQLFy6s13Fty5NPPhnz589P6sMPPzyrzwMAAAAAAAAAsOsI87NUUlKSUbdu3Trrvq1atUq2169fX29j2paSkpK4/PLLk7pp06ZxxhlnNNr1AQAAAAAAANgxwvwsbdiwIaNu2rRp1n2bNWtW63kaSmVlZVx00UWxePHiZN/ZZ58dnTp1apTrAwAAAAAAALDjhPlZ+uCDDzLqgoKCrPs2adIk2d60aVO9jakuN954YzzyyCNJPWjQoDj99NMb5doAAAAAAAAA7Bxhfpa2nolfWlqadd/Nmzcn21Vn6TeUu+++O2688cak3nPPPePXv/515Ob6uQEAAAAAAAB2B9LdLBUWFmbUW8/Ur0vV2fhbn6e+TZkyJS655JKk7tChQ9x2223Rvn37Br0uAAAAAAAAAPVHmJ+loqKijHrNmjVZ9123bl2y3aJFi3ob09aeeuqpGDt2bFRUVERERJs2beLPf/5z9OjRo8GuCQAAAAAAAED9E+ZnqXv37hn1kiVLsupXXl4ey5cvT+qGCtafe+65OOecc5Ll/4uKiuKWW26JT3ziEw1yPQAAAAAAAAAajjA/S717986oFyxYkFW/xYsXR3l5ea3nqQ8vvvhifOc730mW/m/evHn88Y9/jL59+9b7tQAAAAAAAABoeML8LPXu3TsKCgqS+qWXXsqq34svvphR9+nTpz6HFf/73//ijDPOiA0bNkREREFBQdx4441x4IEH1ut1AAAAAAAAAGg8wvwsNW/ePAYOHJjUU6dOjcrKym32e/bZZ5PtwsLCeg3Z33rrrTjttNNi7dq1ERGRn58f48ePj8997nP1dg0AAAAAAAAAGp8wfzscdthhyfaiRYti6tSpdbZft25dPPLII0k9bNiwaNKkSb2MZeHChXHKKafEypUrIyIiNzc3rrrqqowxAgAAAAAAALB7EuZvh6OPPjpat26d1Ndff32UlZXV2n78+PGxcePGpD755JNrbTt8+PAoLi6O4uLiGD58eJ3jWLZsWZxyyimxbNmyZN+ll14aRx99dDa3AQAAAAAAAEDKCfO3Q8uWLeP0009P6tdeey3GjRsXpaWl1dpOnDgxJk2alNTDhg2rlyX2V69eHaeddlosXLgw2XfhhRfG8ccfv9PnBgAAAAAAACAd8nf1AHY3p5xySjzzzDMxbdq0iIiYPHlyzJw5M0aOHBndu3ePlStXxmOPPRavvPJK0qdDhw5xxRVX1Mv1J02aFG+88UZS5+XlxaRJkzJeHNiWk046qc5VAgAAAAAAAADYtYT526mgoCBuuOGGOPPMM+PFF1+MiIjFixfHH/7whxrbd+zYMW666abo3LlzvVy/oqIioy4vL48FCxZs1znWrFlTL2MBAAAAAAAAoGFYZn8HtG7dOiZNmhTnnXdedOjQocY2hYWFceyxx8bkyZPjgAMOaOQRAgAAAAAAALA7y6msrKzc1YPYnZWXl8fMmTPjnXfeiffffz9atWoVXbp0iUGDBkVhYeGuHl5qlJSUxJw5c5K6uLg4ioqKduGIAAAAAAAAAOpHQ+ShltnfSXl5eTFw4MAYOHDgrh4KAAAAAAAAAB8RltkHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAA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KCsri/z8bf+MZWVlsXHjxnobx/Zq0qRJdOzYsVGvCQAAAAAAALC7ssx+lrp3755RL1myJKt+5eXlsXz58qTu0aNHvY2jvLw8li1bllW/pUuXRkVFRb2NAwAAAAAAAICGI8zPUu/evTPqBQsWZNVv8eLFUV5eXut5GmscCxcurPM8AAAAAAAAAKSHMD9LvXv3joKCgqR+6aWXsur34osvZtR9+vTZqXEUFxdn1LtqHAAAAAAAAAA0HGF+lpo3bx4DBw5M6qlTp0ZlZeU2+z377LPJdmFhYRx44IE7NY6ePXtGz549azx/tuPo1atXxjkAAAAAAAAASBdh/nY47LDDku1FixbF1KlT62y/bt26eOSRR5J62LBh0aRJk50ex4gRI5LtGTNmxPz58+tsP3/+/JgxY0ZSDx8+fKfHAAAAAAAAAEDDEeZvh6OPPjpat26d1Ndff32UlZXV2n78+PGxcePGpD755JNrbTt8+PAoLi6O4uLibYbtJ554YrLkf2VlZVxzzTV1tr/66quT7YKCgvj6179eZ3sAAAAAAAAAdi1h/nZo2bJlnH766Un92muvxbhx46K0tLRa24kTJ8akSZOSetiwYTu9xP4We+65Z4wePTqpn3jiibjuuuuqLftfWVkZ1157bTz55JPJvq9+9avRo0ePehkHAAAAAAAAAA0jpzKbD7+TKC0tjdNOOy2mTZuW7OvWrVuMHDkyunfvHitXrozHHnssXnnlleR4hw4d4t57743OnTvXet7hw4fH4sWLk/M98cQTdY6jpKQkvva1r8Wbb76Z7Ntnn33iy1/+cnTq1CmWLVsWDz30UMybNy85/olPfCLuuuuuKCoq2u77BgAAAAAAAKDxCPN3wJo1a+LMM8+MF198cZttO3bsGDfddFMccMABdbbb3jA/ImLRokXx7W9/OyOwr03v3r3j5ptvju7du2+zLQAAAAAAAAC7lmX2d0Dr1q1j0qRJcd5550WHDh1qbFNYWBjHHntsTJ48eZtB/o7q3r173H///XHqqadG69atax3rqaeeGvfff78gHwAAAAAAAGA3YWb+TiovL4+ZM2fGO++8E++//360atUqunTpEoMGDYrCwsJGG8fmzZtjxowZsXjx4li1alXsscce0a1btxg4cGA0adKk0cYBAAAAAAAAwM4T5gMAAAAAAABAylhmHwAAAAAAAABSRpgPAAAAAAAAACkjzAcAAAAAAACAlBHmAwAAAAAAAEDKCPMBAAAAAAAAIGWE+QAAAAAAAACQMsJ8AAAAAAAAAEgZYT4AAAAAAAAApIwwHwAAAAAAAABSRpgPAAAAAAAAACkjzKdBnXTSSVFcXBzFxcVxww031Pv5p02blpy/uLi42vFx48Ylx8aNG1fv1wcAAAAAAABoCMJ8aAA33HBD8hLBSSedtKuHAwAAAAAAAOxm8nf1ACAi4rHHHovXX389IiL222+/OOywwzKOV53VP2rUqOjevXujjg8AAAAAAACgMQnzSYU777wznnnmmYiIGDBgQLUw/8Ybb0y2Bw0aJMwHAAAAAAAAPtKE+TSoiRMnZtXuvffeS7YXLFiQ9fkHDx4cc+bMqfX41VdfHVdffXXW5wMAAAAAAABIg9xdPQAAAAAAAAAAIJMwHwAAAAAAAABSxjL7DWTdunUxbdq0WLJkSWzatCnat28fBx54YPTo0SNp895778ULL7wQS5cujfLy8ujcuXMMGTIk2rZtW+M5Z8+eHXPmzIn3338/Kisro3379tGvX7/o2bNnRERs3LgxZsyYEe+++26sWbMmWrZsGZ06dYpBgwZFy5YtazznypUr47nnnoulS5dGbm5udOnSJQYMGBAdOnSIiIiFCxfGrFmzYvny5bF+/fooKCiIVq1aRbdu3aJPnz7RsWPHGs9bVlYWb7zxRrz11lvx3nvvxcaNG6Nly5bRrl27GDBgQHTq1GlnHm+qlZaWxqJFi5J66dKl8cgjj8TAgQOjbdu2sXLlynjhhRdi+fLlUVJSEnvssUf06tUrBgwYEPn5/pUEAAAAAAAAInIqKysrd/Ugdlfjxo2L+++/PyIiRo0aFVdffXWUlJTEtddeGw888EBs2rSpWp/PfvazcfbZZ8df/vKXePzxx6OsrCzjeH5+fowYMSIOPfTQKCkpifXr18fs2bNjxowZGd+Vr2qfffaJjh07xsyZM2u8ZkFBQQwYMCAOPvjgyM3NjcrKymjatGn85z//if/+9781juFTn/pUbNiwIWbPnl3nM9hzzz3jyCOPjHPPPTc2bdoUjz76aEyZMiWmT58e69evr7XfAQccECeccEL89Kc/rfP822vOnDnJdkVFRYwaNSrjHv785z/H0KFDk/rUU0+N//73vxER0a9fv/jBD34Q77zzTqxbty5ycnLiwQcfjLlz50ZERP/+/eOuu+5K+q5YsSI+//nPR3l5eUREjB07NhYsWBD/+Mc/oqSkpNrYcnNzo2XLlrF27dqo6V+7Nm3axEknnRRnnHFGNGnSZCefBAAAAAAAALA7E+bvhK3D/LPPPjtOO+20mD9/fp39cnJyagxzd1ctW7aM559/Pp588sk466yzdulY5syZE5WVlXH77bfHn//851i6dGnG8YMPPjhuvvnmpL7pppti/PjxWZ17yJAh8etf/zpZOeEvf/lLXHXVVRERkZeXF82aNavzBYZs7bvvvvHnP/+51hUaAAAAAAAAgI++3F09gI+KjRs3xne/+92YP39+NG3aNL785S/HhRdeGP3796/Wdusgv1+/fnHiiSdmtcR6s2bN4nvf+15cdtllcfjhh1c73qlTp/j+978fP/rRj6JNmzZZj79fv35x+eWXx3HHHZexPycnJ7p06VKt/YgRI2rcv0WbNm1ixIgR0bx582Rf+/bt49BDD428vLysx1WTjh07xp577hl77rlntXssLS2NM888M6666qpqQX5ExGuvvZZRP/LII1lf97nnnouvfvWryUz9yZMnJ8cqKioygvyuXbsm21WfwRY5OTkxZsyY+MUvfhHnnXdext/J7Nmz41vf+lZs3rw567EBAAAAAAAAHy3C/Hry6KOPxpw5c+KAAw6IKVOmxPjx4+Nb3/pW9OrVK2mTk5NTY9/OnTvHzJkzo6ysLHJz6/5JNm3aFE899VQceeSR8b///a/a8ZUrV8b+++8fEyZMiNWrV2/z2lu89NJLsWrVqnj77beTfU2bNo3KyspYtmxZtfYXXXRR/Pvf/4677747vvSlLyX7+/fvH7///e/jmWeeid///vfRokWL5Fj79u3jD3/4Qzz00ENRXFycMbaCgoKkzs3NTcL6Lf9Udf3118e//vWv+Ne//hXf+c53Mo5dc8018dRTT0XEh0v577vvvhnH33///YxAf+vn3bp167jwwgvjyiuvjO7du1e773fffTfOOuusmDVrVsyaNSvZv+UFjY4dO8akSZNi9OjRybGNGzcm21ueR2VlZfznP/+JI488Ms4666y466674rrrrkuew5w5c+K3v/1ttesDAAAAAAAAHw/C/HpSUVER3bp1i7/85S81hsAR1Wfkb1H1RYBHH320WgA9duzY+NrXvpbUs2bNiiuvvDIWLlyY7OvRo0dEfDgz/YILLogVK1ZERERBQUFceumlcd1111W77vDhw+OII45I6t/+9rcxc+bMpL7hhhuisLAwKioqar3vfv36xRVXXBEREUOHDo277rorRowYkRHOb22vvfaK2267LVlGvrKyMvbYY4/keNu2bZOwfss/2Zo4cWI0adIkfvnLX8bf/va32G+//aq1qTqjvkWLFhkvI6xZsyYOOuigGDRoUCxatCjZf9RRRyUvRCxevDi556patWoVkyZNigMPPLDGsQ0fPjwefvjhZDWBhQsXxn333ZccP/roo+NnP/tZUk+YMCFWrVqV5Z0DAAAAAAAAHyXC/Hr04x//OFq2bFlnmwMOOKDavq1fBNj6u+tLly6Nn/70pxkz1B9++OFku0+fPvHrX/86qdesWZNs//KXv4wTTjghRo4cWW1Z/LFjx8b111+fhM9lZWUZwf3gwYPjm9/8Zp33U1XTpk2zbtu+ffsYM2ZMUpeUlGTdd1suv/zyOOqoo2o9/tBDDyX3ecstt8Qvf/nLjJcJJk+eHP/4xz+SukWLFvGLX/wiYxWAl19+udp5zz333GqrCGzRvHnz+MUvfhEdO3aMs846K9l/9913Z7Q7/vjjk1ULPvjgg3jggQfqulUAAAAAAADgI0qYX09atGgRX/ziF7fZrury61VteRFg9uzZGTPuIyKefPLJaNKkSRxzzDHJvqqB/7HHHht9+/aNvffeO6Pfl770pTj88MOTeuul9pcuXRp5eXlx0UUX1Timl156qdbx1oeDDjoo2d60aVO9nLNv374Zz6kmy5cvj2nTpkXEhy8g5Ofnx5e//OXk+EMPPZQxe/8LX/hCNGvWLM4444woLCyMiKi2WkFhYWEce+yxtV7zqKOOSlYi+MpXvpLsnzNnTqxcuTKj7dFHH51sT506tc57AQAAAAAAAD6ahPn15JOf/GTk5+fX2aZNmzYxaNCgavurvghQdZn7LRYuXBhr1qyJfv361XjeYcOGRUREz549M/affPLJyfamTZti2bJlGcdfeeWVZOz77LNPtfOOGzculixZEp06darjrnZc+/btk+26lvLfHlWD8q0VFRUl2w8++GDGsaoB+rvvvhtvvfVWUo8cOTIiPpxdX9tvMHjw4IyVCTZv3pxxfMtvFPHhZwS6deuW1K+++mpG20996lO1HgMAAAAAAAA+HoT59aRqMF2bffbZJ5o3b15tf9UXAebMmVNj3/nz50fHjh2r7W/atGn06tUrIjJnt+fn50f//v2TeunSpVFeXl7tnFtUDZC3WLJkSZx88smxdu3a2m+qBhUVFTF16tS4/PLLY/Xq1cn+2bNnR3FxcfJPNisZbK/awvaIiB49eiTbjz76aHzwwQdJ3b9//4zjW3To0CFjBYEts+u31rt374z6/fffz6i3XjWh6t/L1i9ZtGvXLuM8paWlNV4TAAAAAAAA+Oiqeyo5Wcvme/FVQ9qqqga7VcPvqo4//vga93/wwQex3377VdvfvHnzyM39/+9q1BTIV91XdWwdO3aM5cuXJ/XGjRur9Z00aVKcfPLJ0aVLl4z9r7zySlx88cUxe/bsGsfb0Gr7Zn3Eh2H+66+/HhERJSUl8eSTT8aXvvSliIh47733Ys8996z2iYMVK1bE/vvvv83r3nrrrXHrrbfWevzII4+s9djFF18cF198ca3H161bV+tLBAAAAAAAAMBHkzC/EdUW+Ffdv27dunq51rp166K4uLjONo899liNbfbdd9/49re/HTfffHNGqF/VbbfdFhMnTowTTjghzj///GjatGlMmzYtzjjjjIwVAqrKy8uLrl27Rk5OTkRElJeXx+LFi7fzzurWokWLOo/1798/XnzxxYiImDx5cgwfPjxuvPHGuO2221I7A76mlykAAAAAAACAjzZhfiOquqx7bZo1a1bj/g4dOkRBQUG8++67Gfvz8vKS768vX7681iB9e2zatClOPvnkGDNmTEybNi1+/vOfx4IFC6q1Ky0tjYkTJ8bs2bPjpptuinHjxiXXLygoiBNOOCEeeOCBZAWAT3ziE/HAAw8k/RcuXBiHHXbYTo+3qi2fK6jNyJEjkzD/qaeeiu985zvxzDPP1Nq+a9euyTkrKyszZu7n5uZGRUVFRES0adMmWrVqlRx77733YsOGDUmdl5eXvMSwtZYtW0bLli13+J4AAAAAAACAjx4pYSPa+jvqNWnTpk2N+3/3u99Fu3btYsSIERn78/Pz45FHHonc3Nz4zne+E0888UREfPhSQMeOHZN2Nc2Cb9GiRY1L/2/pl5eXF0OHDq0xaM7Ly4vy8vKIiJgxY0ZcfvnlyYsGubm5cfPNN8dBBx0U//znP2u91/pahWB7fPnLX46rrroqSktLo7S0NCPI79OnT8ybNy/Kysoi4sN7nDx5chQVFUVExJQpU+K8885L2jdt2jSZNX/iiSfGueeemxwbN25c3H///Un98MMP1/kJAAAAAAAAAICqhPmN6M0339xmm7322qvG/b169aox/P7ggw/i7bffjr333jvjRYBPfvKTcccdd2S0HTx4cKxevTqpzzzzzDjzzDPrHM/mzZtrHPcNN9wQP/rRj5Iw++mnn06Offazn42DDjooIiKZuV6TRYsW1XnthtC2bdv43Oc+F08++WTG/qFDh8Zxxx2XEdaXl5fHo48+GqNHj46IiAcffDCjT6tWrZL7X7ZsWcaxPfbYI6NetmyZMB8AAAAAAADIWu6uHsDHyerVq2Pu3Ll1thk0aFC1fXvuuWe0bt261j5bZpdXfRFg63A5IpLl+Lf41Kc+VedYIj4M6Wv6PEDPnj3j+OOPT+o1a9Yk2/vuu2+yXdd36KdNm1bj/srKymr7qi41X9cLAtkYOXJktX3nnntuPPzww9X2T548OSI+/O22Xo6/6qoGzz//fMaxwsLCjHr69Ok7PF4AAAAAAADg40eY38jqWnY+IqJv377RqVOnjH2HHHJInX3uvffeqKioyHgRYNGiRbFkyZKMdps3b86ot152vya33HJLjfuXL18evXr1SuqqAfyW8L+srCzWr19fY/9169bFAw88UOOxLcv3V1U1HK/tnNkaMWJENG/ePGNft27dqs3Wj4h47rnnYvny5fHwww9XezGhW7dukZv74b9CCxYsiKeeeqrWa95zzz3Vnj8AAAAAAABAbYT5jeyhhx6q83heXl60bds2Y1/Vme41mTt3bkycODH69u2bMfv+//7v/5LtKVOmxBtvvJHR7/rrr4/58+cn9erVq6OkpCSp//jHP8bMmTNrvObLL7+cscpAixYtku2nn346Kioq4tFHH611Fv2ll15a42cDImoO67t27Zpsb2t1g21p1qxZtRUQHn744SRsz8/Pj2bNmkXEh6sATJkyJZmhX1VRUVF84QtfSOpLLrkk3nvvvRqvuWTJkrjiiiuq7a9p1YPtOQ4AAAAAAAB8NAnzG1Fubm6Ns8632Lx5c1xxxRXx+uuvZ+y/7LLLYtKkSVFWVpaxv0uXLsn2NddcEzfffHPsvffeyb7bb789pk+fHo899lhceOGF1a63atWq+NrXvhb33HNPbNiwIebMmROHHnpo/PznP49zzjknfvWrX0Vubm7G8v1b3HHHHXHPPfckddVw/O23345LL700rrvuumr9SkpK4sILL4zJkycns9q3VlpaGn/+858z7vfTn/50sn3XXXfFnDlzauybra985SsZ9e9///tke9iwYXHYYYcl9cSJE6sto7/FBRdcEG3atImIiHfffTeOO+64+O9//1tj27vvvju+//3vx5IlS2LmzJnxk5/8JL773e9Wa1dSUhIPPvhgfO1rX9vmyx8AAAAAAADAR1NOZU0fKCcr48aNi/vvvz8iIkaNGhVXX311nW0OP/zweP3112PBggUZbfr37x+DBg2KKVOmxMKFC5P9ubm5GTPb27ZtGytXrkzq4447Lu677746XxDY+hy5ubkxdOjQat9/z8vLi4KCgti0aVPG/n333Tfy8/Nj1qxZtV6jbdu2MXny5BgzZkzGTP+ttW7dOnJzc2PVqlUREfH9738/fvvb39bavrCwMLp27Rr5+fmxcePGeOeddzKOd+zYMSoqKjJmw28d8tf2G1VUVMQBBxxQ47P71a9+FUVFRXHGGWfUOraq53vmmWfiu9/9bsYs+qq/VVFRUcaKB1X16tUrzjjjjFi3bl0sWrQoZs+eHS+99FKypP9VV10Vo0ePrnMcAAAAAAAAwEePmfmNqLCwMH72s59V2//iiy/GH//4x4wgv127djFhwoTo379/sq9qkB/x4XfY6wryIyIjyM/JyYmjjjoqjjjiiDj44IMjJycnOVZeXl4tyI+ImD17dp1Bfl5eXnzpS1+Kp556KkaMGBH5+fm1tl2zZk2sWrUqcnJy4rvf/W612fFbf05gw4YN8eabb8bs2bOrBfkREcuXL691Wfttyc3NjYMOOqja/vz8/Fi+fHksX748mjdvXu149+7dq+373Oc+FxMmTIgOHTok+6r+VrUF+RER8+fPj4suuiiuuuqqmDhxYsyYMSMJ8reMEwAAAAAAAPj4qT15pUHUtGR9Vfn5+XH44YfHT37yk2jXrl3ccccdMWXKlLj11lvjf//7X519c3Jyoq6FFiorK+PBBx+MBx98sM7zdOrUKVavXp3V99rLy8vjjjvu2Ga7Lfbdd9/44Q9/GJ///Odj0aJFGcd+8pOfxI9//ONYtmxZrf0/85nPRM+ePeOVV16JpUuX1hmUb8sPf/jDaisUlJWV1bjCwha9evWqNu6IiH79+sWjjz4aEyZMiLvuuiuWLFmyw+Pq3LlzfO5zn4uRI0fG4MGDd/g8AAAAAAAAwO7LMvsNrLZl3qvu79u3b3z5y1+Ozp07x5AhQ6Jdu3Y1nuuVV16J4447LqnPPPPM2HPPPaNXr17Rp0+fyM/PjxkzZsS7774ba9asiRYtWsTixYvj2WefrfMb87m5ufHJT34yhg8fHsccc0x07do1SktL44033oj58+fHxRdfnITmX/3qV+Pggw+Ou+66K6ZOnVrtXE2bNo2jjz46vvGNb8Ts2bNjwoQJ8dprr0VExIgRIzK+TV+TtWvXxr333hv/+c9/4s0334y1a9dmvFRw9tlnxznnnJPU06ZNi5NPPjmp67rPmlRWVsbtt98eN910U6xevbra8cLCwhg5cmSMHTs2ioqKsvq0QkTEpZdemrzk0K1btzj55JOjXbt20bt37+jZs2fMmjUrFi1aFKtWrYqKioooKiqKrl27xj777BM9evTYrnsAAAAAAAAAPnqE+Q0s2/C3oa1YsSJefPHFWLFiRaxduzaaNGkSrVu3Tl4EaNWqVY395s6dGyNHjkzqyZMnR58+fSIiYuHChfH888/HihUromnTptG1a9cYNGhQtG7dulHuqT598MEH8cILL8Sbb74ZGzZsiD322CM6d+4cgwYNqnG5fQAAAAAAAICGZJn9j4kOHTrEF7/4xe3ud/PNNyfbXbp0iX322Sepe/To8ZGZRd60adMYOnRoDB06dFcPBQAAAAAAACByd/UAaHyvvPJKZLMgwx133BEPPvhgUo8ePTpyc/3JAAAAAAAAADQ0M/M/hq644orYuHFjjB49Og4++ODo3bt35OTkREREaWlpvPzyyzFhwoR45JFHkj6dOnWKU045ZVcNGQAAAAAAAOBjRZj/MTV37ty4+uqr4+qrr45mzZpFmzZtory8PFavXh2lpaUZbQsLC+P666+Pli1b7qLRAgAAAAAAAHy8CPM/hvLzM3/2TZs2xdKlS2ts26dPn7jyyiujb9++jTE0AAAAAAAAAEKY/7F02223xdNPPx3PPfdcvPbaa7Fo0aJYu3ZtlJWVRcuWLaN9+/bRr1+/OOSQQ2LEiBGRm5u7q4cMAAAAAAAA8LGSU1lZWbmrBwEAAAAAAAAA/H+mXAMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAAAAAAABIGWE+AAAAAAAAAKSMMB8AAAAAAAAAUkaYDwAAAAAAAAApI8wHAAAAAAAAgJQR5gMAAAAAAABAygjzAQAAAAAAACBlhPkAAAAAAAAAkDLCfAAAANhO9913XxQXFyf/TJs2bVcPCRI33HBDxt/nokWLdvWQAAAA2AHCfAAAAAAAAABIGWE+AAAAQIpMmzYtY2b9fffdt6uHxE6wUgIAALCjhPkAAAAAAAAAkDLCfAAAAAAAAABImfxdPQAAAADY3YwePTpGjx69q4cBNTrnnHPinHPO2dXDAAAAYCeZmQ8AAAAAAAAAKSPMBwAAAAAAAICUscw+AAAA9W79+vXxwgsvxLJly2LlypXRrFmzOPjgg2Ovvfaqs997770XL730UqxYsSLWrFkTLVu2jA4dOsSBBx4Ybdu2baTRN47NmzfHSy+9FIsXL473338/cnNzo23btrHvvvvGvvvuu6uH1+gWLlwYs2fPjqVLl8b69esjNzc3mjdvHp06dYo999wz9tlnn8jP37H/N0ZjPuuFCxfGa6+9FkuXLo3y8vJo165dfOYzn4kePXrU63Uay/Lly+Pll1+OpUuXxsaNG6Njx44xaNCg6Nq1a539Vq5cGc8//3wsWrQoysrKkufQq1evnR7T2rVrY+bMmbF8+fJYtWpVNG/ePNq3bx/9+/ePLl267PT5q3r11Vdj3rx5sWzZsmjWrFl06tQpBg0aFHvssUe9XgcAAKAmOZWVlZW7ehAAAADsXu6777648MILk3rChAkxePDgWLZsWVx33XXx2GOPxcaNGzP6XHjhhfGtb32r2rkqKyvjn//8Z9x6663x2muvRU3/mZqbmxsDBgyI8847Lw488MCsx3XRRRfFN7/5ze26t6lTp2aM89RTT40LLrigzutsuf9szJs3L373u9/FE088ERs2bKixTadOneKUU06JMWPGRJMmTWo915VXXhm33357RETk5+fHtGnToqioqNb2//3vf+PUU0/N2Ddp0qQ6n+mqVavioIMOSn6XM888M374wx/W2n57VFZWxt/+9reYMGFCzJkzp862zZs3j8985jPx1a9+NY444oiszl+fz3qLk046KaZPnx4REd26dYsnnngiIiJefvnl+NWvfhXTpk2r8W/405/+dFx44YXRv3//Ws89fPjwWLx4cTa3lhg0aFBMnDgxY98NN9wQN954Y1I//vjj0b179xr719Z29uzZMX78+PjPf/4T5eXlGX1yc3PjS1/6Uvz0pz+Ndu3aZRxbsmRJXH/99fHwww9HWVlZjeO95JJLYu+9996u+4yIeOaZZ+KPf/xjvPDCC9XGtMV+++0X55xzTowYMSKrcxYXFyfbo0aNiquvvjoiIv7+97/Hn/70p3jrrbeq9cnNzY0vf/nLcf7559f68sCiRYuyHkNVZ599dpxzzjnb3Q8AAPhossw+AAAA9eLZZ5+No48+OiZPnlwtyK/NihUr4sQTT4zzzjsvZs2aVWMIGhFRUVERzz//fIwZMyauvPLKWtsdfvjhUVhYmNQPPPDAdt/H/fffn1GPGjVqu89Rk8rKyvjNb34TI0eOjH/84x+1hssREcuWLYurr746Ro8eHUuWLKm13UEHHZRsl5WVxfPPP1/nGKZOnVpt33PPPVdnn63D6arX3BkbN26M008/PX7yk59sM8jf0n5LmLstDfGs6zJx4sQYM2ZMPPfcc7X+bb788stx0kknxZQpU3boGo3pkUceieOOOy6efPLJGkPzioqKmDJlShx//PGxbNmyZP8LL7wQxxxzTPzjH/+oMciPiJg+fXqceOKJMXv27KzHU1JSEt/5znfitNNOi+nTp9ca5EdEvP766/Hd7343fvCDH8TmzZuzvsYWmzdvjrFjx8YFF1xQY5Af8eH9P/TQQ3HcccfFm2++ud3XAAAAyJZl9gEAANhp77zzTlxzzTVRUlISERFt2rSJAw44INq0aRMrV66M//3vf9X6LFiwIL71rW9Vm4ncoUOH2G+//aJVq1axfv36mDVrVqxYsSI5fvvtt8f69evjF7/4RbVztmjRIr7whS8kIf5rr70Wc+fOjT59+mR1H+vXr49//etfSf3JT34y6751qaysjAsuuKDaywXNmjWL/fffPzp27BgRHz6T119/PQmE33jjjTjhhBPi3nvvjQ4dOlQ778CBAyMvLy8JN6dOnRqHHHJIreOoKcyfOnVqnH322Vn1adKkSQwYMKD2G90OF198cTzzzDMZ+1q3bh3FxcXRvn37yMvLi5KSknj33Xdj3rx5UVpamtV5G+pZ1+aBBx6IK664Iqn79OkTe+65ZzRp0iQWLFiQsdpEaWlpXHjhhbH//vvXy3LzDWHmzJlx0UUXJc977733jt69e0deXl7Mmzcv5s6dm7RdtGhR/PjHP46JEyfGW2+9Fd/+9rdj/fr1EfHhqgV9+vSJwsLCWLBgQcbLOmvWrIkf/OAHMXny5G2uhrBy5co49dRT4/XXX8/Y36ZNm/jkJz8Ze+yxR2zYsCHmzp0bixYtSo4//PDDUVJSEjfffHPk5mY/l+Wyyy5L/nYKCgrigAMOiM6dO0dZWVnMnTs33nnnnaTtihUr4gc/+EHcf//9Wa3qAAAAsL2E+QAAAOy0q666KjZs2BAdOnSIiy66KA4//PDIy8tLjm/evDlWr16dUZ9zzjkZQf5nPvOZ+NGPfhSf+cxnqp3/8ccfj0svvTSZBXzvvffGkCFDYuTIkdXajho1KiPIvf/++6stk1+bRx99NGMWd33Nyr/55pszxtS6des477zzYvTo0dG0adOMtgsXLowrr7wyWb596dKlMW7cuLjlllsiJycno21RUVH07ds3XnrppYioOazfYu3atdUC0YgPZ4xv2LAhY0WDqqrO3O/fv3+18e6IuXPnxuTJk5O6Xbt28fOf/zwOO+ywjL+bLTZv3hwzZsyIhx9+ON544406z91Qz7omq1atiosvvjgiIg477LAYO3Zs9OzZM6PNW2+9Feedd16y+sCmTZti/PjxMX78+Grnu+OOO6KsrCxefvnljE8ZjB07Ng4//PAax1Afv0dVl19+eZSWlka/fv3ikksuif322y/j+LRp0+L73/9+8u/z9OnT44knnojx48fH+vXrY++9946f//zn1T47MXv27Pje976XBO7z58+Pe+65J8aMGVPrWCorK2Ps2LEZf7d9+vSJH//4x3HwwQdX+41mzJgRl1xySTJb/plnnok//elPcdZZZ2V1708++WSsXr06cnNz49vf/nacfvrp0apVq4w2//73v+P888+PtWvXRkTEm2++Gffee298/etfz2jXuXPnePzxxyPiwxeQJkyYkBybNGlSdO7cucYxbH09AADg480y+wAAAOy0LUH+nXfeGUcccUS1QLZJkybJjOiID7/TXXWZ7dGjR8fEiRNrDPIjIkaMGBH33HNPdOrUKdl37bXX1jhbe8iQIdG1a9eknjx5cp3LcldVdYn9goKCOPLII7PqV5c33ngjfvOb3yR1586d47777osTTzyxxiC2R48e8fvf/z5Gjx6d7HvmmWfiqaeeqvH8Q4YMSbbnzp0bK1eurLFd1eXJ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\n" | |
}, | |
"metadata": { | |
"image/png": { | |
"width": 1017, | |
"height": 693 | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "tOssB4CKnAX2" | |
}, | |
"source": [ | |
"The balance was (mostly) restored." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "9aHyGuTFgyPO" | |
}, | |
"source": [ | |
"## Data Preprocessing\n", | |
"\n", | |
"You might already know that Machine Learning models don't work with raw text. You need to convert text to numbers (of some sort). BERT requires even more attention (good one, right?). Here are the requirements:\n", | |
"\n", | |
"- Add special tokens to separate sentences and do classification\n", | |
"- Pass sequences of constant length (introduce padding)\n", | |
"- Create array of 0s (pad token) and 1s (real token) called *attention mask*\n", | |
"\n", | |
"The Transformers library provides (you've guessed it) a wide variety of Transformer models (including BERT). It works with TensorFlow and PyTorch! It also includes prebuild tokenizers that do the heavy lifting for us!\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "E7Mj-0ne--5t" | |
}, | |
"source": [ | |
"PRE_TRAINED_MODEL_NAME = 'bert-base-cased'" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "fMSr7C-F_sey" | |
}, | |
"source": [ | |
"> You can use a cased and uncased version of BERT and tokenizer. I've experimented with both. The cased version works better. Intuitively, that makes sense, since \"BAD\" might convey more sentiment than \"bad\"." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "NiLb-ltM-ZRz" | |
}, | |
"source": [ | |
"Let's load a pre-trained [BertTokenizer](https://huggingface.co/transformers/model_doc/bert.html#berttokenizer):" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "H3AfJSZ8NNLF" | |
}, | |
"source": [ | |
"tokenizer = BertTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "CfrSbwTQ-wi_" | |
}, | |
"source": [ | |
"We'll use this text to understand the tokenization process:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "HZMitwrqm2eb" | |
}, | |
"source": [ | |
"sample_txt = 'When was I last outside? I am stuck at home for 2 weeks.'" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "yO2qBTVl_KPs" | |
}, | |
"source": [ | |
"Some basic operations can convert the text to tokens and tokens to unique integers (ids):" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "iTFhpHpsoWO7", | |
"outputId": "b20afc9d-6481-4d95-8fa9-c398d0d167db", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 88 | |
} | |
}, | |
"source": [ | |
"tokens = tokenizer.tokenize(sample_txt)\n", | |
"token_ids = tokenizer.convert_tokens_to_ids(tokens)\n", | |
"\n", | |
"print(f' Sentence: {sample_txt}')\n", | |
"print(f' Tokens: {tokens}')\n", | |
"print(f'Token IDs: {token_ids}')" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
" Sentence: When was I last outside? I am stuck at home for 2 weeks.\n", | |
" Tokens: ['When', 'was', 'I', 'last', 'outside', '?', 'I', 'am', 'stuck', 'at', 'home', 'for', '2', 'weeks', '.']\n", | |
"Token IDs: [1332, 1108, 146, 1314, 1796, 136, 146, 1821, 5342, 1120, 1313, 1111, 123, 2277, 119]\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "bzbbKLR8lZbu" | |
}, | |
"source": [ | |
"### Special Tokens\n", | |
"\n", | |
"`[SEP]` - marker for ending of a sentence\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "EXwz47bQvCbc", | |
"outputId": "aa94d74a-326a-41df-80b4-a59ac690ee9b", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"tokenizer.sep_token, tokenizer.sep_token_id" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"('[SEP]', 102)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 19 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Mip_eGeXwLFF" | |
}, | |
"source": [ | |
"`[CLS]` - we must add this token to the start of each sentence, so BERT knows we're doing classification" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "_6K4it5HwE6l", | |
"outputId": "73351498-edf2-410d-b444-8d7ba31781e7", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"tokenizer.cls_token, tokenizer.cls_token_id" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"('[CLS]', 101)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 20 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Qi6O-yEY09gl" | |
}, | |
"source": [ | |
"There is also a special token for padding:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Vx7gD5xf1AFK", | |
"outputId": "fa5cf8e7-5cd5-4056-afd4-5a781797515d", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"tokenizer.pad_token, tokenizer.pad_token_id" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"('[PAD]', 0)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 21 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "6GWCfijM0TWB" | |
}, | |
"source": [ | |
"BERT understands tokens that were in the training set. Everything else can be encoded using the `[UNK]` (unknown) token:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "4cmfFsbEKQDT", | |
"outputId": "2a7d9f8e-6c61-443b-d0f1-d7206cfbb00a", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"tokenizer.unk_token, tokenizer.unk_token_id" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"('[UNK]', 100)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 22 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "W9ap7jdL0LYU" | |
}, | |
"source": [ | |
"All of that work can be done using the [`encode_plus()`](https://huggingface.co/transformers/main_classes/tokenizer.html#transformers.PreTrainedTokenizer.encode_plus) method:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Vea9edaaxSPO", | |
"outputId": "389562b7-89d5-4fb3-e2d7-23a41fc15bb5", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"encoding = tokenizer.encode_plus(\n", | |
" sample_txt,\n", | |
" max_length=32,\n", | |
" add_special_tokens=True, # Add '[CLS]' and '[SEP]'\n", | |
" return_token_type_ids=False,\n", | |
" pad_to_max_length=True,\n", | |
" return_attention_mask=True,\n", | |
" return_tensors='pt', # Return PyTorch tensors\n", | |
")\n", | |
"\n", | |
"encoding.keys()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"dict_keys(['input_ids', 'attention_mask'])" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 23 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "sS69c8WvdOED" | |
}, | |
"source": [ | |
"The token ids are now stored in a Tensor and padded to a length of 32:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "YzBmcOla0yQR", | |
"outputId": "921d377a-4fd6-4939-e4a4-76ce57d4ed34", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 85 | |
} | |
}, | |
"source": [ | |
"print(len(encoding['input_ids'][0]))\n", | |
"encoding['input_ids'][0]" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"32\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"tensor([ 101, 1332, 1108, 146, 1314, 1796, 136, 146, 1821, 5342, 1120, 1313,\n", | |
" 1111, 123, 2277, 119, 102, 0, 0, 0, 0, 0, 0, 0,\n", | |
" 0, 0, 0, 0, 0, 0, 0, 0])" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 24 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "itAyVPsNdyc1" | |
}, | |
"source": [ | |
"The attention mask has the same length:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Wiv5LLiw03Ox", | |
"outputId": "8fd1b81a-a5b4-461a-f6f9-53d5ca497562", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 68 | |
} | |
}, | |
"source": [ | |
"print(len(encoding['attention_mask'][0]))\n", | |
"encoding['attention_mask']" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"32\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,\n", | |
" 0, 0, 0, 0, 0, 0, 0, 0]])" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 25 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "m1RvhC4jNHHy" | |
}, | |
"source": [ | |
"We can inverse the tokenization to have a look at the special tokens:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "IagGoafKLUwW", | |
"outputId": "a93cdc3c-518a-4d23-d708-f9cee1aea079", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 561 | |
} | |
}, | |
"source": [ | |
"tokenizer.convert_ids_to_tokens(encoding['input_ids'][0])" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"['[CLS]',\n", | |
" 'When',\n", | |
" 'was',\n", | |
" 'I',\n", | |
" 'last',\n", | |
" 'outside',\n", | |
" '?',\n", | |
" 'I',\n", | |
" 'am',\n", | |
" 'stuck',\n", | |
" 'at',\n", | |
" 'home',\n", | |
" 'for',\n", | |
" '2',\n", | |
" 'weeks',\n", | |
" '.',\n", | |
" '[SEP]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]',\n", | |
" '[PAD]']" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 26 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "waKjYxTDuaWt" | |
}, | |
"source": [ | |
"### Choosing Sequence Length\n", | |
"\n", | |
"BERT works with fixed-length sequences. We'll use a simple strategy to choose the max length. Let's store the token length of each review:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "BUnE5CT9hbeZ" | |
}, | |
"source": [ | |
"token_lens = []\n", | |
"\n", | |
"for txt in df.content:\n", | |
" tokens = tokenizer.encode(txt, max_length=512)\n", | |
" token_lens.append(len(tokens))" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "tI4goUrHf6da" | |
}, | |
"source": [ | |
"and plot the distribution:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "SzE1j4jxmUtd", | |
"outputId": "cf03f40b-88a7-43b0-bc2c-32eb6e16c935", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 506 | |
} | |
}, | |
"source": [ | |
"sns.distplot(token_lens)\n", | |
"plt.xlim([0, 256]);\n", | |
"plt.xlabel('Token count');" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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woUL09jYmNGjR6e+vj6XXXZZzjnnnF1eVy6X88ILL2TJkiVdXytWrEhLS8c25nnz5mXChAm7vXdTU1PmzZuXJ598MsuXL89rr72WlpaWjBkzJvX19bnwwgvzh3/4hxk8ePAu17jxxhsze/bsd/ycH//4x/PXf/3X7zjvQFMu79hWZay2KoX3n2qTJ9Yl61qT9W3Jz9ckF42tdFUAAAAAHOz6NRz/0pe+lJkzZ+7wvVdffTU//vGPM2fOnHz1q1/NxRdf3Of1Z8+enVtuuaUr0E6ShoaGPProo3n00Udz+eWX58tf/vJOr121alUuuOCCPt97yZIlufzyy9Pa2vq2c2+88UbeeOONzJ8/P//4j/+YO++8M7W1tTtZhfVtybbtfaVHDkpG7fr3CBTEsEHJxXXJva93jB9em/yHmo5d5QAAAACwr/RbOH7XXXd1BePTpk3LtddemyOOOCLLli3L7bffnueeey433XRTjj766EyZMqXX6y9atCg333xzWltbc/zxx+eGG27I5MmT89prr2XGjBl5+OGHc//99+eoo47KNddcs9u1xo8fn5NOOilr167NU089tUf337x5c1pbW1NTU5MLL7wwZ511Vo477riMGDEiL7zwQr7//e9n7ty5+fWvf53PfOYzuf/++zNo0K671kyZMiV33XXXLs8PGXJwJoM7tFSxa5ztPnBoMn9t8tLWpKWczG5IPnlkpasCAAAA4GDWLz3Hm5qaMmPGjCTJ1KlTM3369NTX16e2tjZTp07Nfffdl7q6urS2tub222/v0z1uu+22tLa2pq6uLvfdd1+mTp2a2tra1NfXZ/r06TnzzDOTJDNmzEhTU9Pbrq+pqcmdd96ZJ554Ir/4xS8yffr0nH766Xt8/0MOOSQ33HBDHnvssdx8880566yzcsQRR6Smpibvf//78+1vfzt/8id/kiRZvHhxHnrood2uN3jw4IwaNWqXX0OHHpzJ8RtexslODColHz28e/yrN5MXNleuHgAAAAAOfv0Sjs+ePTubNm1Kklx//fUplUo7nB8zZkyuvvrqJMnTTz+dpUuX9mr9Z555JkuWLEmSXH311RkzZswO50ulUr7whS8kSTZt2pQHHnjgbWtUV1dn2rRpGTu2b82MJ0+enKuuuirDhg3b5ZzPf/7zXbvFH3/88T7d52DXs994nXCcHo4bmbyvunv8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9viz1atX56677sq9996bL3/5y/nQhz7U7/vffffd+fznP98daCdJY2NjHnzwwTz44IM5++yzc9VVV+31va+99lo+8IEP9PvZXbZs2ZILLrggTz31VI8///Wvf51f//rXWbZsWW666aa89a1v7fUezz77bD7xiU+ksbGx+8927NiRJ598Mk8++WTuvffe3HzzzZkyZUqv96g24Tj03bzO7vGfbunYf3d98um+fRcHAAAAwCCp2FiVm266qTsYP+WUU7Js2bI89thj+cY3vpE3v/nNaW5uzpVXXpknnniiX/d/4okn8rnPfS4tLS1585vfnG984xt57LHHsmzZspxyyilJkjvuuCM33XTTfu81b968nHrqqTn22GMPuI7Pfvazeeqpp1IoFHLxxRfnhz/8YR5++OFce+21mTJlShobG/OHf/iHaWpq2uv7m5qacvHFF6exsTFTp07Ntddem4cffjg//OEPc/HFF6dQKOTJJ5/MZz/72QOu7WAqD8enC8dhv8pnjz9j9jgAAABA1VUkHN+wYUNuvPHGJMkJJ5yQG264IUuWLMnMmTNzwgkn5Pbbb099fX1aW1tz3XXX9esZX/nKV9La2pr6+vrcfvvtOeGEEzJz5swsWbIkN9xwQ971rnclSW688cZs2LBhj/dPnz49f/VXf5VHHnkkP/7xj3PDDTfk+OOPP6AafvzjH+ehhx5KkvzxH/9xPvOZz2ThwoWZM2dOzjzzzPz1X/91CoVCGhoacvPNN+/1HjfddFMaGhpSKBTy9a9/PWeeeWbmzJmThQsX5jOf+Uz++I//OEny0EMPdT9rKNI5Dgdm3rjkN8v+Y5Dvmj0OAAAAUFUVCcfvvvvubN++PUlHZ3WhUOjx+owZM3LhhRcmSZ566qk888wzB3T/X/7yl3n66aeTJBdeeGFmzJjR4/VCoZDLLrssSbJ9+/Z85zvf2eMekydPzimnnJLZs2cf0LPLffvb307S8fNccMEFe7x+7LHH5sQTT0yS/P3f/31aW1t7vN7a2pq/+7u/S5KceOKJe+1cv+CCCzJ9+vQezxtq2orJ5rbSfqpwHPrkA7t1j7+oexwAAACgaioSji9fvjxJsnDhwixZsmSv17z//e/vXj/wwAP9uv/u9ym3ZMmSLFy4sF/374udO3fmscceS5KcfPLJqaur2+t1XfU1NTXtMULmZz/7WTZv3tzjut3V1dV1j4n5l3/5l+zcubMi9VdSU2vHwYJJMnlMUlvY5+VApz26x9dVrxYAAACA0a4i4XhXJ/gxxxzT6zXz5s3L3Llze1x/oPefO3du5s2b1+t1Xc8/0Pv3xa9+9avs2rUrSfL2t7+91+vKX9u9jvJ9X+6xa9euvPDCC/2qdzCtK52HmmljqlcHDEcfqC91jz+7vaODHAAAAICDb8DheENDQ/dIlcMOO2yf1x566KFJkpdeeumAntF1fV/vv23btjQ0NBzQM/paQ/lz9mbBggWpqanZ4z3l+5qamixYsKDXe5Tf/0D/XR0M68vDcSNV4IDMq0v+/dTS/rY11asFAAAAYDQbcLS5cePG7vWsWbP2eW3X601NTf16Rl/v3/WMrk71Sujrzzl27NhMnTo1TU1Ne/ycXfeYOnVqxo4d2+s9Zs6c2b0+0H9XB2Lr1q17jH7Zn/r6+qxsmplkcpJkzK6teeWV4X+y4LbaWdnWnLyycvj/LF38TEPXMe21+UkWpJhCfrolufu5NVm4dXW1yzrgzwNg5PO5AJTzmQDszucCUG44fiYMuHO8q2s8ScaNG7fPa7te37btwOYI7NjRcWpdb3O+u4wfP36vdVVCVw1J33/O3Wvousf+3j+YP0clbGgr/bWZnLZ9XAnszaya1iypKX0OfnXjtCpWAwAAADA6GYoxik2ePDmLFi064Pdt31TsXi+cNS2Hzxj+wd6kycmk5uTwwydXu5SK8TMNbR9uTp55qeNw24d3TMiut/5GfmtadU637fpmd+nSpVV5PjD0+FwAyvlMAHbncwEoV+3PhOeeey5bt27t13sH3Dk+ceLE7nXXgZW96Xp90qRJB/SMCRMmJEmam5v3ed3OnTv3WlcldNWQ9P3n3L2Grnvs7/2D+XNUwobW0trMceifuXXJcWWzx68eescLAAAAAIxoAw7HZ8yY0b1ev37fc4C7Xp8+fXq/ntHX+/fnGX2tYX91tLS0ZPPmzXutoesemzdvTmtr6x7v7bJhw4budaV/jkpY50BOqIj3zyp9CP9wY/JoU3Gf1wMAAABQOQMOx+fMmdPd3bxy5cp9Xrtq1aokyZFHHnlAz+i6vq/3nzRpUkUP4yyvofw5e7N69eq0t7fv8Z7yfXt7e1577bVe71F+/wP9d3UwrBeOQ0XMrUtOLZ2/m6tfrlopAAAAAKPOgMPxQqGQJUuWJEmefvrpXq9bu3ZtGhoakqT7+r7qur6hoaH7Hnvz1FNP9ev+ffGmN72p+yDNrufszZNPPtm93r2O8n1f7jFu3Li88Y1v7Fe9g6WtWMyG8nB8TPVqgZHgnHnJmM5R4z/amDyiexwAAADgoBhwOJ4kJ510UpLklVdeyYoVK/Z6zQ9+8IPu9Xvf+95+3T9Jvv/97+/1mmeffTavvvpqv+7fF+PHj8873/nOJMn999/f6/zzrp9z+vTpewyhP/bYYzN16tQe1+2uubk5DzzwQJLkt37rtzJ+/PiK1F8p61qS9s71xJpkbEX+BsHodei45GNl/6HLl16uWikAAAAAo0pFos0zzjije7TK9ddfn2KxZ+djU1NTbr755iTJMcccc8Cd3UcffXTe9ra3JUluvvnmNDU19Xi9WCzm+uuvT9JxgOXpp5/er59jfz7ykY8k6ZgJfuutt+7x+hNPPJEHH3wwSfLhD384tbU9Z47U1tbmD/7gD5Iky5cv7z7Jtdytt97aPXO863lDyZqys0SnG6kCFXHl4brHAQAAAA62ioTjM2fOzCWXXJIkefjhh3PppZdmxYoV2bBhQx599NGcc845aWxsTG1tbS6//PI93r9s2bIsWrQoixYtyrJly/b6jCuuuCK1tbVpbGzMOeeck0cffTQbNmzIihUrcumll+aRRx5JklxyySWZOXPmXu/xwgsv5Mknn+z+Z+3atd2vrVixosdr5YdidnnPe96Td7/73UmSr371q/nqV7+alStXprGxMXfffXc++clPpr29PXPnzs2FF1641xouuuiizJ07N+3t7fnkJz+Zu+++O42NjVm5cmX+4i/+Il/96leTJO9+97u7nzWUrC5rmJ8qHIeKeOPEQs4p6x43exwAAABg8FUs3rzooouyatWq3Hnnnbnvvvty33339Xh97Nixueaaa/YYNdJXS5cuzTXXXJPPf/7zef7553P++efvcc1ZZ52Viy66qNd7XH311fnJT36y19c+9alP9dhfe+21OfPMM/e47vrrr8+FF16Yp556Kl//+tfz9a9/vcfrs2fPzt/8zd9k+vTpe33O9OnT89d//df5xCc+kcbGxlxxxRV7XPP2t789f/7nf97rz1FNOsdhcFx5RPKthqStmNy/MXm4qZjfnl6odlkAAAAAI1ZF482rr746J554Yu64444888wz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9u095mvTpk2dtA8AAACA7xEcBwAAQLMXEBCg2NhYr+ktWrRwbHft2lWdOnWqj2YBAAAAqEMsqwIAAAAAAAAAaHaYOQ4AAAD4wIULF7R8+XJt2rRJ6enpunDhgtq0aaPY2FgNGzZM//mf/6mAgIBanWPt2rV6/vnnZbFY1KNHD6WkpCg6Otolz8mTJ7V8+XLt3LlTJ0+eVGFhocLCwhQfH6/hw4drxIgR8vf3/M+AZ599VmvXrpUk/fTTTzKbzVq+fLnWrVunjIwMmc1mderUScOGDdPDDz+sVq1a1ao/drm5ufroo4+0Y8cOpaen6/z58woICFDHjh3Vu3dvJSYmauDAgfLz8/NYfvPmzfrkk0+Umpqqs2fPKigoSB06dNCAAQP04IMPqmPHjl7PPWTIEJ08eVL9+vXT0qVLveZbs2aNZs6cKUn64IMPdNNNN7mkv/7661q4cKEkaePGjerYsaM++eQTrV69WmlpaSoqKlKHDh00aNAgTZs2Te3atXMp7+mhsDNnznSc066ydgIAAKDqCI4DAAAAtbRv3z499thjysnJcTmek5OjnJwc7dy5U++//77effddde7cuUbneOedd/SXv/xFknTDDTforbfeclvj/L333tOrr74qs9nscjw7O1vZ2dnaunWrli5dqrfeektRUVEVni83N1dTpkxxrLVul5aWprS0NH399ddaunSp2rZtW6P+2K1Zs0Zz585VUVGRy3Gz2ew416pVq/TJJ58oPj7eJU9hYaFmzJihLVu2uBwvLS1VQUGBDh8+rA8//FB/+MMfNHbs2Fq1szpKSko0ZcoUbdu2zeV4RkaG3n//fX355Zf68MMPa/zfAgAAAHyD4DgAAABQC0ePHtXEiRMdwd277rpLI0aMUGRkpE6ePKmPP/5Y27ZtU3p6uh588EF9+umn1Qool5eX66WXXtKHH34oSbr99tu1YMECBQUFueRznrncrVs33XffferWrZvatWunM2fO6Ouvv9Ynn3yiAwcOaPLkyfroo49c1lK/1GOPPaaffvpJ999/v4YOHarw8HBlZmYqJSVF+/fvV1pamubPn6958+ZV9yNz+PDDDzV37lxJtnXfR48erYEDB6pDhw4ym81KT0/Xzp07tWHDBreyVqtV06dP144dOyRJ3bt314QJExQXFyeTyaRt27bp/fffV0lJiZ5//nmFhITorrvuqnFbq+P555/XP//5T40YMULDhw9XdHS0zpw5o6VLl2r79u3KysrSc8895zID3P5Q2B9++EH/7//9P0nSk08+6TabPCQkpF76AAAA0BwQHAcAAABqYdasWY7A+Jw5c3Tfffc50hISEjRs2DDNnz9fixYtUlZWVrUCyqWlpXrmmWf01VdfSZLGjRun2bNny2h0fXTQnj179MYbb0iSpk6dqqeeesolT0JCggYPHqwhQ4Zo+vTpOnz4sJYsWaJHH33U67n379+v5ORk3XzzzY5jPXv21G233aYxY8boyJEj+uyzz/S73/1O4eHhVeqPsyNHjjg+h/DwcL333nvq2bOnS54+ffpo1KhRys/Pd+vzqlWrHIHxfv36KSUlxeUHg379+ikxMVHjx49XcXGx5syZo9tuu02tW7eudlura+/evUpKStLo0aMdx3r27KmBAwfq4Ycf1q5du7R79279+OOPuvrqqyX9+lDYc+fOOcpERUVV+KBYAAAA1A4P5AQAAABq6MCBA9qzZ48k6dZbb3UJjDt7+umnddVVV0mSPvvsM509e7bSuvPz8/Xwww87AuPTp0/XH//4R7cgsSS9/fbbslqt6tWrl2bMmOExj2SbdT5s2DBJ0sqVKys8/wMPPOASGLcLDg7WAw88IMm29Mm+ffsq7YsnycnJjuVf5s6d6xYYdxYaGuq2vvkHH3wgyRZUfvnll91m0ktS7969NW3aNElSQUGBVq9eXaO2VldiYqJLYNzOaDRq4sSJjv3vvvuuXtoDAAAAzwiOAwAAADVkn7ks2WZ1e+Pv7+9Y89psNuvbb7+tsN6srCw98MAD+u677+Tn56cXX3xRjz/+uMe8hYWF2rlzpyTpzjvvlMFgqLDufv36SZJOnTql06dPe8139913e0279tprHduZmZkVns8Tq9XqWCe8a9euSkxMrFb57OxsHT58WJIcy7B4c++99zp+LHD+vupSXX52AAAA8B2WVQEAAABq6KeffnJs9+nTp8K81113nUu54cOHe8z3888/695779Uvv/yi4OBgvfrqqxoyZIjXeg8ePCiLxSJJSkpKUlJSUpXbf+bMGUVHR3tMu/LKK72WCwsLc2xfuHChyuezO3HihPLy8iT9GqyvDntgXKr8cw8PD1eXLl2Unp7u8n3Vpbr87AAAAOA7zBwHAAAAasge4DUajWrXrl2FeSMiItzKefLFF1/ol19+kSTNmDGjwsC4pCot0eKNyWTymlbRwzqdZ6eXl5dX+7y5ubmO7fbt21e7vPPnFxkZWWl+e56KPndfquihmc5L3tTkswMAAIDvMHMcAAAAaEBuvfVW7d27V4WFhXrttdcUHx9f4ezqsrIyx/ZTTz1VaTDdWadOnWrVVgAAAKAxIzgOAAAA1JB9iYzy8nKdPXvWZXb4pXJyctzKedK7d289/vjjmjx5sgoKCjR16lS99dZb6t+/v8f84eHhjm1/f3/FxsZWtxv1zrnNZ86cqXZ5588vOzu70vz2PJ4+d/tM7spmcRcXF1eniQAAAGgEWFYFAAAAqKG4uDjH9r59+yrM+89//tOxffXVV1eYt0+fPlq8eLHatGmj4uJiTZs2Tdu2bfOYNz4+3hHg/f7776va9MuqU6dOjkD17t27q13e+XNPTU2tMG9ubq4yMjIkef7cW7ZsKUnKz8+vsJ6jR49Wt5k1UtkDVQEAAOA7BMcBAACAGhowYIBj++OPP/aar6ysTKtWrZIkBQQE6Kabbqq07muvvVZLlixRWFiYSkpK9Oijj2rLli1u+cLCwnTjjTdKkrZu3aq0tLRq9qL+GQwGx/Ivx44d04YNG6pVPiIiwhEg37p1q06fPu0178qVKx2zwm+55Ra39CuuuEKSlJ6e7vUBmSUlJfr666+r1caaCg4OdmyXlpbWyzkBAACaK4LjAAAAQA317NlTffv2lSR98803Wrlypcd8r776qo4cOSJJGjFihMuyIpXV//777ys8PFylpaV6/PHHPQaSp0+fLoPBoLKyMj3++OPKzMyssN6jR4/q888/r1Ib6srkyZMVEBAgSZo1a5YOHTrkNW9BQYFb4Pq3v/2tJFsA+fe//73HQPIPP/ygt99+W5IUGhqq0aNHu+Wxr+duNpu1ZMkSt/Ty8nLNmTOnSsu3+ILzA0qPHTtWL+cEAABorlhzHAAAAKiFuXPnasyYMSoqKtLzzz+v3bt366677lJERIROnTqljz/+WFu3bpUkRUVF6Xe/+1216r/66qu1dOlSjR8/Xjk5OXryySe1YMEC/eY3v3HkufHGG/XEE0/otdde07FjxzRixAiNGjVKt9xyi6Kjox1roh86dEjffPON9u3bpxEjRujOO+/06WdRHVdddZVmzpypF154Qbm5uRo7dqxGjx6tQYMGKSoqShaLRRkZGdq1a5e++uor/e1vf1N8fLyj/JgxY/TFF19ox44d+sc//qHRo0drwoQJiouLk8lk0vbt27VkyRKZTCZJ0pw5c9S6dWu3dowYMUILFy7U+fPntXDhQuXl5enf//3fFRwcrJ9//lnLly/X3r17df3112vv3r11/rlER0erY8eOOnnypFatWqXu3bvrmmuucfyQEBISopiYmDpvBwAAQHNAcBwAAACohSuvvFKLFy/WY489ppycHK1bt07r1q1zy9etWze9++67atu2bbXP0b17d0eA/MyZM5oxY4ZeeeUVDR8+3JHnkUceUXh4uObNm6eioiItW7ZMy5Yt81qnp0BxfXvggQcUGBiol156ScXFxfroo4/00UcfVamswWDQ66+/rhkzZmjLli1KS0vTc88955YvMDBQf/jDH7z+ENC2bVslJSXpiSeekNls1tKlS7V06VKX8zzyyCPq3LlzvQTHJenxxx/XzJkzVVBQ4Nanfv36ubQPAAAANUdwHAAAAKilPn366KuvvtKyZcu0adMmpaenq7CwUKGhoYqLi9OwYcM0ZswYBQYG1vgcV155pT788EONHz9ev/zyi5555hlZLBbdfffdjjz33nuvhg0bppUrV2rHjh06evSo8vLyZDQaFRYWpq5du+q6667TkCFD1Lt3b190vdbGjh2rwYMHa9myZdq+fbsyMjJUUFCg4OBgdezYUX369NFvfvMbrw/TfOedd7Rp0yZ98sknSk1NVW5urgIDAxUTE6NbbrlFDz30kDp27FhhG4YOHapVq1bp3Xff1e7du5WXl6ewsDD16tVLDz30kPr37681a9bU1UfgZvTo0YqMjNTy5cv1r3/9S7m5uTKbzfV2fgAAgObCYLVarZe7EQAAAAAAAAAA1CceyAkAAAAAAAAAaHYIjgMAAAAAAAAAmh2C4wAAAAAAAACAZofgOAAAAAAAAACg2SE4DgAAAAAAAABodgiOAwAAAAAAAACaHYLjAAAAAAAAAIBmh+A4AAAAAAAAAKDZITgOAAAAAAAAAGh2CI4DAAAAAAAAAJodguMAAAAAAAAAgGaH4DgAAAAAAAAAoNkhOA4AAAAAAAAAaHYIjgMAAAAAAAAAmh2C4wAAAAAAAACAZofgOAAAAAAAAACg2SE4DgAAAAAAAABodgiOAwAAAAAAAACaHYLjAAAAAAAAAIBm5/8DsOPQvHmlo5wAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 864x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"image/png": { | |
"width": 739, | |
"height": 489 | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "oW6ajl30t6du" | |
}, | |
"source": [ | |
"Most of the reviews seem to contain less than 128 tokens, but we'll be on the safe side and choose a maximum length of 160." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "t7xSmJtLuoxW" | |
}, | |
"source": [ | |
"MAX_LEN = 160" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "XvvcoU6nurHy" | |
}, | |
"source": [ | |
"We have all building blocks required to create a PyTorch dataset. Let's do it:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "E2BPgRJ7YBK0" | |
}, | |
"source": [ | |
"class GPReviewDataset(Dataset):\n", | |
"\n", | |
" def __init__(self, reviews, targets, tokenizer, max_len):\n", | |
" self.reviews = reviews\n", | |
" self.targets = targets\n", | |
" self.tokenizer = tokenizer\n", | |
" self.max_len = max_len\n", | |
"\n", | |
" def __len__(self):\n", | |
" return len(self.reviews)\n", | |
"\n", | |
" def __getitem__(self, item):\n", | |
" review = str(self.reviews[item])\n", | |
" target = self.targets[item]\n", | |
"\n", | |
" encoding = self.tokenizer.encode_plus(\n", | |
" review,\n", | |
" add_special_tokens=True,\n", | |
" max_length=self.max_len,\n", | |
" return_token_type_ids=False,\n", | |
" pad_to_max_length=True,\n", | |
" return_attention_mask=True,\n", | |
" return_tensors='pt',\n", | |
" )\n", | |
"\n", | |
" return {\n", | |
" 'review_text': review,\n", | |
" 'input_ids': encoding['input_ids'].flatten(),\n", | |
" 'attention_mask': encoding['attention_mask'].flatten(),\n", | |
" 'targets': torch.tensor(target, dtype=torch.long)\n", | |
" }" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "x2uwsvCYqDJK" | |
}, | |
"source": [ | |
"The tokenizer is doing most of the heavy lifting for us. We also return the review texts, so it'll be easier to evaluate the predictions from our model. Let's split the data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "B-vWzoo81dvO" | |
}, | |
"source": [ | |
"df_train, df_test = train_test_split(df, test_size=0.1, random_state=RANDOM_SEED)\n", | |
"df_val, df_test = train_test_split(df_test, test_size=0.5, random_state=RANDOM_SEED)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xz3ZOQXVPCwh", | |
"outputId": "dd8d2844-3b22-425d-dc40-725f7f46e52a", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"df_train.shape, df_val.shape, df_test.shape" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"((14171, 12), (787, 12), (788, 12))" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 32 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "J4tQ1x-vqNab" | |
}, | |
"source": [ | |
"We also need to create a couple of data loaders. Here's a helper function to do it:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "KEGqcvkuOuTX" | |
}, | |
"source": [ | |
"def create_data_loader(df, tokenizer, max_len, batch_size):\n", | |
" ds = GPReviewDataset(\n", | |
" reviews=df.content.to_numpy(),\n", | |
" targets=df.sentiment.to_numpy(),\n", | |
" tokenizer=tokenizer,\n", | |
" max_len=max_len\n", | |
" )\n", | |
"\n", | |
" return DataLoader(\n", | |
" ds,\n", | |
" batch_size=batch_size,\n", | |
" num_workers=4\n", | |
" )" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "vODDxMKsPHqI" | |
}, | |
"source": [ | |
"BATCH_SIZE = 16\n", | |
"\n", | |
"train_data_loader = create_data_loader(df_train, tokenizer, MAX_LEN, BATCH_SIZE)\n", | |
"val_data_loader = create_data_loader(df_val, tokenizer, MAX_LEN, BATCH_SIZE)\n", | |
"test_data_loader = create_data_loader(df_test, tokenizer, MAX_LEN, BATCH_SIZE)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "A6dlOptwqlhF" | |
}, | |
"source": [ | |
"Let's have a look at an example batch from our training data loader:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Y93ldSN47FeT", | |
"outputId": "ee6eaa1a-3f03-4e18-c059-02dbf8b8bc14", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"data = next(iter(train_data_loader))\n", | |
"data.keys()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"dict_keys(['review_text', 'input_ids', 'attention_mask', 'targets'])" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 35 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "IdU4YVqb7N8M", | |
"outputId": "1f67fe37-6634-484f-caa2-1517e80a29d9", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 68 | |
} | |
}, | |
"source": [ | |
"print(data['input_ids'].shape)\n", | |
"print(data['attention_mask'].shape)\n", | |
"print(data['targets'].shape)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"torch.Size([16, 160])\n", | |
"torch.Size([16, 160])\n", | |
"torch.Size([16])\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "H63Y-TjyRC7S" | |
}, | |
"source": [ | |
"## Sentiment Classification with BERT and Hugging Face" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "440Nd31VTHER" | |
}, | |
"source": [ | |
"There are a lot of helpers that make using BERT easy with the Transformers library. Depending on the task you might want to use [BertForSequenceClassification](https://huggingface.co/transformers/model_doc/bert.html#bertforsequenceclassification), [BertForQuestionAnswering](https://huggingface.co/transformers/model_doc/bert.html#bertforquestionanswering) or something else.\n", | |
"\n", | |
"But who cares, right? We're *hardcore*! We'll use the basic [BertModel](https://huggingface.co/transformers/model_doc/bert.html#bertmodel) and build our sentiment classifier on top of it. Let's load the model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "0P41FayISNRI" | |
}, | |
"source": [ | |
"bert_model = BertModel.from_pretrained(PRE_TRAINED_MODEL_NAME)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "aFE7YSbFdY4t" | |
}, | |
"source": [ | |
"And try to use it on the encoding of our sample text:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "s1aoFxbQSn15" | |
}, | |
"source": [ | |
"last_hidden_state, pooled_output = bert_model(\n", | |
" input_ids=encoding['input_ids'],\n", | |
" attention_mask=encoding['attention_mask']\n", | |
")" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "mLLu8zmqbaHV" | |
}, | |
"source": [ | |
"The `last_hidden_state` is a sequence of hidden states of the last layer of the model. Obtaining the `pooled_output` is done by applying the [BertPooler](https://github.com/huggingface/transformers/blob/edf0582c0be87b60f94f41c659ea779876efc7be/src/transformers/modeling_bert.py#L426) on `last_hidden_state`:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "mUJHXNpIbcci", | |
"outputId": "74906d2c-153b-4f40-e682-b6f501d1ecfd", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"last_hidden_state.shape" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"torch.Size([1, 32, 768])" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 39 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Q4dAot4zbz8k" | |
}, | |
"source": [ | |
"We have the hidden state for each of our 32 tokens (the length of our example sequence). But why 768? This is the number of hidden units in the feedforward-networks. We can verify that by checking the config:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "nsxB7Qy7b5YN", | |
"outputId": "8aa72ce7-ff62-4075-c36f-4a4f7cda8182", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"bert_model.config.hidden_size" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"768" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 40 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "wTKi8-rTd_j4" | |
}, | |
"source": [ | |
"\n", | |
"\n", | |
"You can think of the `pooled_output` as a summary of the content, according to BERT. Albeit, you might try and do better. Let's look at the shape of the output:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2jIAtRhaSz9c", | |
"outputId": "907e30cd-ad8b-4686-9d50-516f29703ebe", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"pooled_output.shape" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"torch.Size([1, 768])" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 41 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "0o_NiS3WgOFf" | |
}, | |
"source": [ | |
"We can use all of this knowledge to create a classifier that uses the BERT model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "m_mRflxPl32F" | |
}, | |
"source": [ | |
"class SentimentClassifier(nn.Module):\n", | |
"\n", | |
" def __init__(self, n_classes):\n", | |
" super(SentimentClassifier, self).__init__()\n", | |
" self.bert = BertModel.from_pretrained(PRE_TRAINED_MODEL_NAME)\n", | |
" self.drop = nn.Dropout(p=0.3)\n", | |
" self.out = nn.Linear(self.bert.config.hidden_size, n_classes)\n", | |
"\n", | |
" def forward(self, input_ids, attention_mask):\n", | |
" _, pooled_output = self.bert(\n", | |
" input_ids=input_ids,\n", | |
" attention_mask=attention_mask\n", | |
" )\n", | |
" output = self.drop(pooled_output)\n", | |
" return self.out(output)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "UJg8m3NQJahc" | |
}, | |
"source": [ | |
"Our classifier delegates most of the heavy lifting to the BertModel. We use a dropout layer for some regularization and a fully-connected layer for our output. Note that we're returning the raw output of the last layer since that is required for the cross-entropy loss function in PyTorch to work.\n", | |
"\n", | |
"This should work like any other PyTorch model. Let's create an instance and move it to the GPU:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "i0yQnuSFsjDp" | |
}, | |
"source": [ | |
"model = SentimentClassifier(len(class_names))\n", | |
"model = model.to(device)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "VCPCFDLlKIQd" | |
}, | |
"source": [ | |
"We'll move the example batch of our training data to the GPU:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "mz7p__CqdaMO", | |
"outputId": "7a933577-8c04-42f3-c3ea-ecb9c1c30a5b", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 51 | |
} | |
}, | |
"source": [ | |
"input_ids = data['input_ids'].to(device)\n", | |
"attention_mask = data['attention_mask'].to(device)\n", | |
"\n", | |
"print(input_ids.shape) # batch size x seq length\n", | |
"print(attention_mask.shape) # batch size x seq length" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"torch.Size([16, 160])\n", | |
"torch.Size([16, 160])\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Hr1EgkEtKOIB" | |
}, | |
"source": [ | |
"To get the predicted probabilities from our trained model, we'll apply the softmax function to the outputs:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2rTCj46Zamry", | |
"outputId": "04ecb643-ccda-461f-886f-aefe01f9a248", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 289 | |
} | |
}, | |
"source": [ | |
"F.softmax(model(input_ids, attention_mask), dim=1)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"tensor([[0.5879, 0.0842, 0.3279],\n", | |
" [0.4308, 0.1888, 0.3804],\n", | |
" [0.4871, 0.1766, 0.3363],\n", | |
" [0.3364, 0.0778, 0.5858],\n", | |
" [0.4025, 0.1040, 0.4935],\n", | |
" [0.3599, 0.1026, 0.5374],\n", | |
" [0.5054, 0.1552, 0.3394],\n", | |
" [0.5962, 0.1464, 0.2574],\n", | |
" [0.3274, 0.1967, 0.4759],\n", | |
" [0.3026, 0.1118, 0.5856],\n", | |
" [0.4103, 0.1571, 0.4326],\n", | |
" [0.4879, 0.2121, 0.3000],\n", | |
" [0.3811, 0.1477, 0.4712],\n", | |
" [0.3354, 0.1354, 0.5292],\n", | |
" [0.3999, 0.2822, 0.3179],\n", | |
" [0.5075, 0.1684, 0.3242]], device='cuda:0', grad_fn=<SoftmaxBackward>)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 45 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "g9xikRdtRN1N" | |
}, | |
"source": [ | |
"### Training" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "76g7FV85H-T8" | |
}, | |
"source": [ | |
"To reproduce the training procedure from the BERT paper, we'll use the [AdamW](https://huggingface.co/transformers/main_classes/optimizer_schedules.html#adamw) optimizer provided by Hugging Face. It corrects weight decay, so it's similar to the original paper. We'll also use a linear scheduler with no warmup steps:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "5v-ArJ2fCCcU" | |
}, | |
"source": [ | |
"EPOCHS = 10\n", | |
"\n", | |
"optimizer = AdamW(model.parameters(), lr=2e-5, correct_bias=False)\n", | |
"total_steps = len(train_data_loader) * EPOCHS\n", | |
"\n", | |
"scheduler = get_linear_schedule_with_warmup(\n", | |
" optimizer,\n", | |
" num_warmup_steps=0,\n", | |
" num_training_steps=total_steps\n", | |
")\n", | |
"\n", | |
"loss_fn = nn.CrossEntropyLoss().to(device)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "A8522g7JIu5J" | |
}, | |
"source": [ | |
"How do we come up with all hyperparameters? The BERT authors have some recommendations for fine-tuning:\n", | |
"\n", | |
"- Batch size: 16, 32\n", | |
"- Learning rate (Adam): 5e-5, 3e-5, 2e-5\n", | |
"- Number of epochs: 2, 3, 4\n", | |
"\n", | |
"We're going to ignore the number of epochs recommendation but stick with the rest. Note that increasing the batch size reduces the training time significantly, but gives you lower accuracy.\n", | |
"\n", | |
"Let's continue with writing a helper function for training our model for one epoch:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "bzl9UhuNx1_Q" | |
}, | |
"source": [ | |
"def train_epoch(\n", | |
" model,\n", | |
" data_loader,\n", | |
" loss_fn,\n", | |
" optimizer,\n", | |
" device,\n", | |
" scheduler,\n", | |
" n_examples\n", | |
"):\n", | |
" model = model.train()\n", | |
"\n", | |
" losses = []\n", | |
" correct_predictions = 0\n", | |
"\n", | |
" for d in data_loader:\n", | |
" input_ids = d[\"input_ids\"].to(device)\n", | |
" attention_mask = d[\"attention_mask\"].to(device)\n", | |
" targets = d[\"targets\"].to(device)\n", | |
"\n", | |
" outputs = model(\n", | |
" input_ids=input_ids,\n", | |
" attention_mask=attention_mask\n", | |
" )\n", | |
"\n", | |
" _, preds = torch.max(outputs, dim=1)\n", | |
" loss = loss_fn(outputs, targets)\n", | |
"\n", | |
" correct_predictions += torch.sum(preds == targets)\n", | |
" losses.append(loss.item())\n", | |
"\n", | |
" loss.backward()\n", | |
" nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)\n", | |
" optimizer.step()\n", | |
" scheduler.step()\n", | |
" optimizer.zero_grad()\n", | |
"\n", | |
" return correct_predictions.double() / n_examples, np.mean(losses)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "E4PniYIte0fr" | |
}, | |
"source": [ | |
"Training the model should look familiar, except for two things. The scheduler gets called every time a batch is fed to the model. We're avoiding exploding gradients by clipping the gradients of the model using [clip_grad_norm_](https://pytorch.org/docs/stable/nn.html#clip-grad-norm).\n", | |
"\n", | |
"Let's write another one that helps us evaluate the model on a given data loader:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "CXeRorVGIKre" | |
}, | |
"source": [ | |
"def eval_model(model, data_loader, loss_fn, device, n_examples):\n", | |
" model = model.eval()\n", | |
"\n", | |
" losses = []\n", | |
" correct_predictions = 0\n", | |
"\n", | |
" with torch.no_grad():\n", | |
" for d in data_loader:\n", | |
" input_ids = d[\"input_ids\"].to(device)\n", | |
" attention_mask = d[\"attention_mask\"].to(device)\n", | |
" targets = d[\"targets\"].to(device)\n", | |
"\n", | |
" outputs = model(\n", | |
" input_ids=input_ids,\n", | |
" attention_mask=attention_mask\n", | |
" )\n", | |
" _, preds = torch.max(outputs, dim=1)\n", | |
"\n", | |
" loss = loss_fn(outputs, targets)\n", | |
"\n", | |
" correct_predictions += torch.sum(preds == targets)\n", | |
" losses.append(loss.item())\n", | |
"\n", | |
" return correct_predictions.double() / n_examples, np.mean(losses)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "a_rdSDBHhhCh" | |
}, | |
"source": [ | |
"Using those two, we can write our training loop. We'll also store the training history:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "1zhHoFNsxufs", | |
"outputId": "2f11710a-700e-4933-b57e-5d50e5ed1f78", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 901 | |
} | |
}, | |
"source": [ | |
"%%time\n", | |
"\n", | |
"history = defaultdict(list)\n", | |
"best_accuracy = 0\n", | |
"\n", | |
"for epoch in range(EPOCHS):\n", | |
"\n", | |
" print(f'Epoch {epoch + 1}/{EPOCHS}')\n", | |
" print('-' * 10)\n", | |
"\n", | |
" train_acc, train_loss = train_epoch(\n", | |
" model,\n", | |
" train_data_loader,\n", | |
" loss_fn,\n", | |
" optimizer,\n", | |
" device,\n", | |
" scheduler,\n", | |
" len(df_train)\n", | |
" )\n", | |
"\n", | |
" print(f'Train loss {train_loss} accuracy {train_acc}')\n", | |
"\n", | |
" val_acc, val_loss = eval_model(\n", | |
" model,\n", | |
" val_data_loader,\n", | |
" loss_fn,\n", | |
" device,\n", | |
" len(df_val)\n", | |
" )\n", | |
"\n", | |
" print(f'Val loss {val_loss} accuracy {val_acc}')\n", | |
" print()\n", | |
"\n", | |
" history['train_acc'].append(train_acc)\n", | |
" history['train_loss'].append(train_loss)\n", | |
" history['val_acc'].append(val_acc)\n", | |
" history['val_loss'].append(val_loss)\n", | |
"\n", | |
" if val_acc > best_accuracy:\n", | |
" torch.save(model.state_dict(), 'best_model_state.bin')\n", | |
" best_accuracy = val_acc" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Epoch 1/10\n", | |
"----------\n", | |
"Train loss 0.7330631300571541 accuracy 0.6653729447463129\n", | |
"Val loss 0.5767546480894089 accuracy 0.7776365946632783\n", | |
"\n", | |
"Epoch 2/10\n", | |
"----------\n", | |
"Train loss 0.4158683338330777 accuracy 0.8420012701997036\n", | |
"Val loss 0.5365073362737894 accuracy 0.832274459974587\n", | |
"\n", | |
"Epoch 3/10\n", | |
"----------\n", | |
"Train loss 0.24015077009679367 accuracy 0.922023851527768\n", | |
"Val loss 0.5074492372572422 accuracy 0.8716645489199493\n", | |
"\n", | |
"Epoch 4/10\n", | |
"----------\n", | |
"Train loss 0.16012676668187295 accuracy 0.9546962105708843\n", | |
"Val loss 0.6009970247745514 accuracy 0.8703939008894537\n", | |
"\n", | |
"Epoch 5/10\n", | |
"----------\n", | |
"Train loss 0.11209654617575301 accuracy 0.9675393409074872\n", | |
"Val loss 0.7367783848941326 accuracy 0.8742058449809403\n", | |
"\n", | |
"Epoch 6/10\n", | |
"----------\n", | |
"Train loss 0.08572274737026433 accuracy 0.9764307388328276\n", | |
"Val loss 0.7251267762482166 accuracy 0.8843710292249047\n", | |
"\n", | |
"Epoch 7/10\n", | |
"----------\n", | |
"Train loss 0.06132202987342602 accuracy 0.9833462705525369\n", | |
"Val loss 0.7083295831084251 accuracy 0.889453621346887\n", | |
"\n", | |
"Epoch 8/10\n", | |
"----------\n", | |
"Train loss 0.050604159273123096 accuracy 0.9849693035071626\n", | |
"Val loss 0.753860274553299 accuracy 0.8907242693773825\n", | |
"\n", | |
"Epoch 9/10\n", | |
"----------\n", | |
"Train loss 0.04373276197092931 accuracy 0.9862395032107826\n", | |
"Val loss 0.7506809896230697 accuracy 0.8919949174078781\n", | |
"\n", | |
"Epoch 10/10\n", | |
"----------\n", | |
"Train loss 0.03768671146314381 accuracy 0.9880036694658105\n", | |
"Val loss 0.7431786182522774 accuracy 0.8932655654383737\n", | |
"\n", | |
"CPU times: user 29min 54s, sys: 13min 28s, total: 43min 23s\n", | |
"Wall time: 43min 43s\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "4r8-5zWsiVur" | |
}, | |
"source": [ | |
"Note that we're storing the state of the best model, indicated by the highest validation accuracy." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "wLQf52c7fbzr" | |
}, | |
"source": [ | |
"Whoo, this took some time! We can look at the training vs validation accuracy:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "-FWG7kBm372V", | |
"outputId": "9dd7f8cf-8f36-4280-dfff-bdaa8b9b89f2", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 523 | |
} | |
}, | |
"source": [ | |
"plt.plot(history['train_acc'], label='train accuracy')\n", | |
"plt.plot(history['val_acc'], label='validation accuracy')\n", | |
"\n", | |
"plt.title('Training history')\n", | |
"plt.ylabel('Accuracy')\n", | |
"plt.xlabel('Epoch')\n", | |
"plt.legend()\n", | |
"plt.ylim([0, 1]);" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAABbgAAAP1CAYAAACjSomqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeZyVdf3//8c5sy/syCKLgAoKKipqRXxM0BaprFxBM1u0zPTz05ZPWu6mVt/6+jON+mWlSaKiooapH8VAw0QRd0BQGRBQmGEdZp855/r9cWY7M2fOLMw+j/vtdm5zXdf7fV3X+xxwhOe8eF2hIAgCJEmSJEmSJEnqYcJdvQBJkiRJkiRJktrCgFuSJEmSJEmS1CMZcEuSJEmSJEmSeiQDbkmSJEmSJElSj2TALUmSJEmSJEnqkQy4JUmSJEmSJEk9kgG3JEmSJEmSJKlHMuCWJEmSJEmSJPVIBtySJEmSJEmSpB7JgFuSJEmSJEmS1CMZcEuSJEmSJEmSeiQDbkmSJEmSJElSj2TALUmSJEmSJEnqkQy4JUmSpCbccccdTJo0iUmTJrFly5YOu8+WLVtq73PHHXd02H0626JFi2rf18svv7xf16q5zpVXXtlOq5MkSVJvkNrVC5AkSVLfsGXLFk4++eT9vs7XvvY1fvnLX7bDiiRJkiT1dFZwS5IkSerTrA6XJEnquazgliRJUqcYPnw4ixcvbnL8qquu4p133gHgL3/5C8OGDUs4b8CAAR2yvkQuu+wyLrvssg6/z+jRo1m3bl2H36cn8/ORJElSIgbckiRJ6hRpaWlMnDixyfHs7Oza7XHjxjF69OjOWJYkSZKkHswWJZIkSZIkSZKkHskKbkmSJHV79R9Qeemll3LZZZexatUqHnjgAVatWkVBQQEVFRWsXLmS/v37A7Br1y6effZZVqxYwbvvvsu2bduoqKigX79+HHLIIZx44onMnTuXfv36NXnfO+64gzvvvBOA5557rlFVecPxUaNG8dhjj/HII4/w3nvvUVJSwsiRIznppJP43ve+x5AhQ1r8/pobX7t2Lffccw+vvPIKBQUF9OvXj6lTp/Ltb3+bE044odnP9N133+Xuu+9mxYoV7Ny5k4EDBzJlyhTmzJnDzJkzWbRoEVdddRUA9957L5/4xCeavWZLLFmyhAceeIC1a9eyd+9ehg0bxvTp0/ne977HmDFjmjxv0qRJQNMPGQ2CgKeeeorFixezdu1adu7cSSgUYtCgQQwaNIijjjqKGTNmMGvWLFJTY38NmjVrFlu3bq29xqOPPsqjjz7a6NqJ2qNUVFTw8MMP88wzz7B+/XoKCwvJzc1lwoQJzJo1i7lz55KTk9Pi97N+/Xr+/ve/s2LFCvLz8yktLeWxxx7jN7/5DcuXLyczM5Ply5cn/f0KcOutt3LPPffUvp/JkycnnS9JktTTGXBLkiSpx/n973/PHXfcQRAETc753Oc+x759+xod3717NytXrmTlypXMnz+fP/zhDxxxxBH7vaby8nIuuugi/v3vf8cd37RpE3/72994+umn+fvf/87YsWP3+14PPvggN910E5WVlbXHdu3axdKlS1m2bBnXXXcdc+fObfL8++67j1tuuYWqqqraYwUFBSxbtoxly5Zx7rnncuSRR+73OuuLRqNcddVVLFq0KO741q1beeihh3j66af561//ylFHHdXqa5eWlnLJJZfwn//8p9HYtm3b2LZtG2vXruXBBx/k+eefZ8SIEW1+HwB5eXlcfPHFbNy4Me747t27WbVqFatWreKee+5h3rx5LXo/Dz/8MNdff33cr2eNOXPmsHz5csrKyvjHP/7Beeed1+R1KioqeOyxxwA44ogjDLclSVKfYMAtSZKkHmXJkiW8++67TJgwgQsuuIDDDz+cSCTCG2+8QVpaWu28SCTCsccey4knnshhhx3GkCFDiEQifPTRRzzzzDM888wz5Ofn8/3vf59//OMfDBo0aL/WdfXVV/P666/z5S9/mdmzZzNixAjy8/OZP38+y5cvZ/v27fz85z9n/vz5+3WfF198kTfffJODDz6YCy64gEmTJlFVVcULL7zAn//8ZyorK7n55pv55Cc/yfjx4xudv2TJEm688UYA0tPTOf/88/nMZz5DdnY2H3zwAX/7299YsGABRx999H6ts6Hf/e53vPbaa5x00kmcfvrpjB49mj179rBo0SKeeOIJ9u3bx49//GOefPLJ2grrlrrzzjtrw+2pU6dy5plnctBBB9G/f3+KiorIy8vj5ZdfZunSpXHn/eUvf6GyspIvf/nLAJx88slcfvnlSe+1a9cuzj//fAoKCgA48cQTOeussxg1ahQFBQUsXryYJ554goKCAr75zW+yaNEixo0b1+T13nnnHRYvXszQoUP55je/ydSpU0lJSWH16tUMGDCAQw89lGHDhpGfn8/DDz+cNOBesmQJe/bsAeDss89u9nOTJEnqDQy4JUmS1KO8++67nHDCCdx1111kZmbWHj/22GPj5j366KMJg8VjjjmGL37xi7z44otceOGF5Ofnc99993HppZfu17pee+01br31Vk4//fTaY5MnT+bEE0/k29/+Ni+99BKvvPIK7777Locddlib7/P6668zY8YM/vCHP5Cenl57/Nhjj2XcuHH89Kc/pbKykgceeKC2xUiNiooKbrjhBiD20M+7776b4447rnb8yCOP5Itf/CIXX3wxy5cvb/MaE3nttdcStl/59Kc/TXp6OosWLWLTpk08//zzte1YWuqf//wnEFv/fffdF/eDDoDjjz+es88+m6KiorjPrOEPAPr375/0QagQawFSE25fdNFF/PjHP44bP+mkkzjmmGO46aabKC4u5pprrkn6Q4333nuPQw45hL///e9xP2SZOnVq7faZZ57JvHnzWLNmDe+8806T/+Jg4cKFQOyBrV/60peSvg9JkqTewodMSpIkqUcJh8PccsstceF2IsmqZiEWrNYEqc8888x+r+uUU06JC7drhMNhvvWtb9Xur1y5cr/uk5GRwa9+9au4oLbGaaedxgEHHNDkfZ577jny8/MBOP/88+PC7RppaWnccsstjULi/TV58uQmf4hw4YUX1m635fPZsWMHANOmTUu67tzc3ISfW2vu89RTTwEwceJErrjiioTzvv71rzN9+nQAXnnlFdauXZv0utddd13Sf0Fw9tlnk5KSAsBDDz2UcM7mzZtZsWIFAF/84heT9v+WJEnqTQy4JUmS1KMcc8wxSR9GmEgQBOzYsYO8vDzWr19f+6oJFd9///2E/Y9b47TTTmtyrH4/682bN+/XfaZPn87QoUMTjoXDYaZMmdLkfV566aXa7TPOOKPJewwfPpwZM2bs1zob+vKXv0woFEo4dvDBB5OdnQ207fMZPnw4AP/617/YuXNn2xfZjJdffrn298kZZ5xRGzonUr8HerJq+BEjRjT7UNCRI0dy4oknAvDEE09QWlraaM7DDz9c25Pe9iSSJKkvsUWJJEmSepTWtPd4+umneeihh3jttdcoKSlpcl4kEqGwsJAhQ4a0eV0TJkxocmzgwIG120VFRW2+BzRuq9HQgAEDmrzP+vXrgVgLi4MPPjjpdY444ohGPav3R7LPB2LrLikpadPnc9ZZZ3Hbbbfx4Ycfcsopp/DZz36W6dOnM3XqVMaNG9dksN5aNZ8fxH7Qkkz98XXr1jU5r6W/n+fMmcPSpUspKiriqaeeivvXApFIpPbhnYcddlibHtQpSZLUUxlwS5IkqUfp379/s3MqKir44Q9/yLPPPtvi65aVle3PssjKympyLByu+4eT0Wh0v+5TU+nc3L0S3afmAYSDBw9uNvRtqkq8rZJ9PpB83c357ne/y549e5g/fz4lJSU8/vjjPP7440Dsvc6YMYOzzjqr2Urp5uzevbt2u7nPZ8iQIYRCIYIgqP3cE2nJ72eIPczywAMP5KOPPmLhwoVxAfeyZctqW89YvS1JkvoaW5RIkiSpR0nWFqLGn/70p9pwe9KkSdxyyy08+eSTrFq1ijVr1rBu3TrWrVvHJZdcUntOTXsH9TzhcJgrr7ySZ555hh/96EfMmDGD3NxcAHbt2sU//vEPzj//fK644or9bkXT3lry+xli7/Gss84CYg8a/eCDD2rHavpyZ2VlJW2VI0mS1BsZcEuSJKnXeeCBBwAYO3YsCxcu5IwzzuDggw8mNzc3LlAsLCzsqiV2iZpWKbt27Wo20O/IXtYdZdSoUXz3u9/lL3/5CytXruTRRx/lsssuq622fvLJJ/n973/f5uvXfxBkzYMtm7Jz587az7h+i5r9ceaZZ5KaGvtHuAsXLgRg+/btvPDCCwCceuqp9OvXr13uJUmS1FMYcEuSJKlX2b17NwUFBQDMmjWLzMzMJue+8847nbWsbmHixIkAlJSUsGHDhqRz33777c5YUocJh8NMnjyZSy+9lAcffLC2RcqTTz7Z5mtOmjSpdvuNN95IOvf111+v3W5N3/hkhg0bxqxZswB4/PHHqaioYNGiRUQiEYDaCm9JkqS+xIBbkiRJvUpN2AdQWlra5LzVq1c3G1L2Np/61Kdqt2seSphIfn4+L774YmcsqVOMHj269uGcu3btajRe80OQioqKpNf5xCc+QVpaGgAPP/xw0n7hDz74YO32jBkzWr3mpsyZMweI/SDn2Wef5eGHHwbg0EMP5dhjj223+0iSJPUUBtySJEnqVQYPHlz74L6lS5cmfMDfjh07+MlPftLZS+tyJ598MsOGDQPg3nvvjasyrlFVVcXVV1/dbNjbXezZs4clS5YkDZu3bt1a27N6zJgxjcZrPpONGzcmvdeQIUOYPXs2AOvXr+f2229POG/BggUsX74cgBNOOKHdKrgBpk+fztixYwG49dZb2bJlC2D1tiRJ6rtSu3oBkiRJUnsKh8N85StfYf78+eTn53POOedw4YUXMnHiRKqqqli1ahX33HMPu3fv5phjjkkY8vZW6enpXHfddfzgBz+goqKCCy64gG984xuceOKJZGdn8/7773PvvfeyevVqjj766NoK91Ao1MUrb1pRURE/+MEPGDZsGKeccgpTp05lzJgxZGdns3v3bt566y3uu+8+ysvLAfj617/e6BrHHXccH374IatXr+b2229n5syZ5OTk1I4ffPDBtdtXXnkl//nPfygoKOCPf/wj7777LmeeeSYHHnggO3bsYPHixSxevBiAnJwcbrrppnZ9v6FQiLPPPpvf/OY3ta14MjIy+OpXv9qu95EkSeopDLglSZLU61x++eW88cYbvP3222zcuJGrr746bjwtLY2rr76aXbt29amAG+CUU07h2muv5eabb6a8vJy77rqLu+66K27Oueeey5QpU2oD7oyMjK5Yaqvk5+ezYMECFixYkHA8HA5z8cUXc8YZZzQa+853vsNTTz1FaWkp8+bNY968eXHj69atq90ePHgw8+fP5+KLL2bjxo0sW7aMZcuWNbrmAQccwLx58xg3btx+va9EzjjjDG6//XYqKysB+NznPseAAQPa/T6SJEk9gQG3JEmSep3c3FwWLFjAvffeyz//+U/y8vIIgoADDjiAT3ziE5x33nlMnjyZO+64o6uX2iXOO+88pk2bxl//+ldefvlldu7cycCBA5k8eTJz5sxh1qxZ3H333bXzc3Nzu3C1yY0aNYpHHnmE5cuX88Ybb7BlyxZ27NhBYWEhWVlZjB49muOPP56zzjor7iGR9R1yyCE88sgj/PWvf+XVV19l+/btSfu3jx8/nsWLF/PQQw/x7LPPsm7dOvbt20dOTg4TJkzg5JNPZu7cuXFV4O1p8ODBnHTSSTz77LMAnHPOOR1yH0mSpJ4gFARB0NWLkCRJktS9XHXVVSxatIi0tDRee+010tPTu3pJqufzn/88GzduZPz48Tz99NNdvRxJkqQu40MmJUmSJMUpLi7mueeeA2DKlCmG293Myy+/XPtATKu3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Lv379y/LNV5++eXcfPPNefTRRzNz5sysWrUqPXv2zEc+8pEcdNBBGTlyZNq1a1eWawEAAAAA0KCqA/e3v/3tjB49+j3vvfbaaxkzZkzuuuuufPe7382wYcM26hrXXnttrrrqqixfvvw970+fPj3Tp0/PQw89lKOOOirbb7/9Rl0HAAAAAID3qtrAfe211zbG7aOOOirnnXdettlmmzz//PO54oorMmXKlHzjG99I3759s99++23QNX7605/mqquuSpIceeSRGTlyZPr37582bdpk5syZefzxx3PHHXeU7W8CAAAAAKBJVQbuuXPn5pprrkmSHHroobn66qtTKpUa1wMGDMhxxx2XN998M1dccUVuvvnm9b7GU089lZ/85CdJkq9+9av5whe+8J7Pu3Xrlj333DOf//znN/KvAQAAAABgTaryRyZvu+22LF68OEly8cUXN8bt1bp169YYnp955plMnDhxva9xxRVXpCiKDB48+H1xGwAAAACA5leVgfuhhx5KkvTr1y8DBgxY455jjjmm8fWDDz64XuefPHlynn766STJmWeeuWFDAgAAAACwUaoycK++I3ufffb5wD19+vRJ796937N/Xf3ud79LkrRq1SqDBw9+z2crV65cr3MBAAAAALBhqu4Z3LNmzWp8PEnfvn3Xunf77bfPrFmz8vLLL6/XNZ577rnG49u2bZt77rknN9xwQyZOnJhly5ale/fuOfDAA3P22Wdn4MCBG/aHAAAAAACwVlV3B/e8efMaX/fo0WOte1d/Pn/+/PW6xsyZM5MkXbp0yXe+8518+ctfzlNPPZVly5YlafiRy3vuuSennnpqrr/++vU6NwAAAAAA66bq7uBeffd2krRt23ate1d/vmjRovW6xttvv50kmTRpUiZMmJBdd901l156afbff/+sXLky48ePzw9+8IPMnDkzP/jBD7LTTjtlyJAh6/eHrKOFCxfmz3/+c7Oce3O1pf29QHn47gDWl+8NYEP47gDWl+8N2DhVdwf3plAURZJkxYoV6d27d0aNGpW///u/T/v27bPVVlvlk5/8ZG644YZ06NAhSXLllVe25LgAAAAAAFWp6u7gXh2VkzQ+MuSDrP68Y8eOG3yNM844I127dn3fnn79+mXEiBEZNWpUpkyZkunTp3/oM8E3RKdOndK/f/+yn3dztPpfNPfbb78WngSoJL47gPXlewPYEL47gPXlewPea/LkyVm4cOF6H1d1d3B369at8fWcOXPWunf152sK1Ot6jf333/8D9737s7/+9a/rdQ0AAAAAANau6gJ3r169Gu+wnj59+lr3zpgxI0my0047rdc1dt5558bXnTt3/sB9Xbp0aXy9If/6AAAAAADAB6u6wF0qlTJgwIAkyYQJEz5w3+uvv55Zs2YlSeP+dbXXXns1vp4/f/4H7nv3Z1tttdV6XQMAAAAAgLWrusCdJIcffniSZOrUqZk0adIa99x7772Nr4844oj1Ov+QIUNSW9vw+PI//elPH7jvD3/4Q+PrPfbYY72uAQAAAADA2lVl4B4+fHjjY0quvPLKFEXxns/nz5+f6667Lkmyzz77rPcd3F27ds1xxx2XJLnhhhvW+Kzvl156KbfffnuShmdx9+7de73/DgAAAAAAPlhVBu7u3bvnvPPOS5I8+uijueiiizJp0qTMnTs348ePz+mnn57Zs2entrY2l1566fuOr6urS//+/dO/f//U1dWt8Rpf/vKX07Vr17z55pv59Kc/nd/+9reZM2dO3njjjdx2220544wzsnTp0rRu3XqN1wAAAAAAYOPUtvQAzeULX/hCZsyYkdGjR+e+++7Lfffd957PW7dune9973vZb7/9Nuj822yzTX72s5/lvPPOy9SpU3PRRRe9b0+HDh3ywx/+MAMHDtygawAAAAAA8MGqNnAnyWWXXZYhQ4bkxhtvzMSJE7NgwYJsvfXWOeigg3LmmWemf//+G3X+v/u7v8u4cePyy1/+Mg8++GBeffXV1NfXZ7vttsuhhx6aM888M9tuu22Z/hoAAAAAAN6tqgN30vCDk6t/dHJdjRgxIiNGjFinvd27d8/FF1+ciy++eEPGAwAAAABgA1XlM7gBAAAAAKh+AjcAAAAAABVJ4AYAAAAAoCIJ3AAAAAAAVCSBGwAAAACAiiRwAwAAAABQkQRuAAAAAAAqksANAAAAAEBFErgBAAAAAKhIAjcAAAAAABVJ4AYAAAAAoCIJ3AAAAAAAVCSBGwAAAACAilT2wP3//t//y4IFC8p9WgAAAAAAeI+yB+7vf//7+djHPpZLLrkkf/rTn8p9egAAAAAASNJMjyhZtmxZxo4dmzPOOCOf/OQnc/3112fu3LnNcSkAAAAAALZQZQ/cP/3pTzNkyJDU1NSkKIq88sor+eEPf5jDDjssF198cZ544olyXxIAAAAAgC1QbblPeOSRR+bII4/MrFmzMmbMmNTV1WXGjBlZsWJF7rnnntxzzz3p27dvTjrppJx44onp0aNHuUcAAAAAAGAL0CyPKEmS3r1757zzzssDDzyQX/ziFznmmGNSW1uboigybdq0/PjHP85hhx2Wiy66KI8++mhzjQEAAAAAQJUq+x3ca3LwwQfn4IMPzrx583L77bfn1ltvzUsvvZSVK1fm/vvvz/33359tttkmJ598ckaMGJHevXtvirEAAAAAAKhgzXYH95p069YtZ511VsaNG5ff/OY3GT58eNq1a5eiKPLaa6/lqquuypFHHpnzzz8/jz/++KYcDQAAAACACrNJA/e7tW/fPm3btk2rVq1SKpVSKpVSFEVWrlyZBx98MOecc05GjhyZyZMnt9SIAAAAAABsxjbJI0pWW7hwYcaOHZubb745kyZNSpIURZEk2WOPPTJixIhMmTIl48aNy+LFi/P0009n5MiRGT16dPr3778pRwUAAAAAYDO3SQL3U089lVtuuSX33ntvli5d2hi127dvn2OOOSYjR47MwIEDG/d/7Wtfy6hRo3LNNddk6dKl+clPfpKrr756U4wKAAAAAECFaLbAPX/+/Pf8oGTSdLf2rrvumlNPPTXDhg1Lp06d3ndsx44dc+6556ZDhw65/PLL8/TTTzfXmAAAAAAAVKiyB+7HH388t9xyS/7nf/4nK1asaIzabdq0ySc+8YmMHDky++233zqd66CDDkqSzJkzp9xjAgAAAABQ4coeuM8+++zGH4xMkh133DGnnnpqhg8fnq5du67Xudq2bVvu8QAAAAAAqBLN8oiSVq1a5eMf/3hOPfXUxruwN0Tv3r1zww03lHEyAAAAAACqRdkD98UXX5yTTjop3bt33+hztW3bNoMGDSrDVAAAAAAAVJuyB+4vfvGL5T4lAAAAAAC8T01LDwAAAAAAABui7IF71qxZueCCC3LBBRfk9ddf/9D9r7/+ei644IJceOGFmTNnTrnHAQAAAACgSpU9cN9xxx154IEH8tprr6VPnz4fur9Pnz6ZOXNmHnjggdx1113lHgcAAAAAgCpV9sD9+9//PqVSKR//+MfX+ZhPfOITKYoijz32WLnHAQAAAACgSpU9cE+ZMiVJMnDgwHU+Zq+99kqSvPjii+Ue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HAAAAAAAqlTZA/cDDzyQJDnqqKPSqVOnD93fqVOnHH300SmKIvfee2+5xwEAAAAAoEqVPXA/88wzKZVKGTx48Dofc/DBBzceCwAAAAAA66LsgfvVV19Nkuy8887rfMwOO+zwnmMBAAAAAODDlD1wL1++PEnSunXrdT6mtrbhty6XLl1a7nEAAAAAAKhSZQ/cXbt2TZLMnDlznY+ZNWtWkqzTM7sBAAAAACBphsC90047JUkeeeSRdT7m4YcfTpLsuOOO5R4HAAAAAIAqVfbAfcghh6QoitTV1eWFF1740P0vvPBC6urqUiqVcuihh5Z7HAAAAAAAqlTZA/epp56a9u3bZ8WKFTnnnHPy4IMPfuDeBx98MOecc05WrFiRdu3a5TOf+Uy5xwEAAAAAoErVlvuE3bp1y7e+9a380z/9U+bOnZvzzz8/O+ywQwYNGpRevXolSd5444388Y9/zNSpU1MURUqlUr75zW+me/fu5R4HAAAAAIAqVfbAnSQjRozI4sWL84Mf/CArV67M1KlTM3Xq1PftK4oitbW1+frXv54TTzyxOUYBAAAAAKBKlf0RJat99rOfzR133JETTjghnTt3TlEU7/mvS5cuGT58eO68886cdtppzTUGAAAAAABVqlnu4F5tl112yRVXXJEkmT59eubNm5ek4TEmffv2fd/+J598Mvvvv39zjgQAAAAAQJVo1sD9bn379l1j1J41a1Zuv/321NXVZfr06Xn++ec31UgAAAAAAFSwTRa4323FihV54IEHUldXl8cffzz19fWNPzYJAAAAAADrYpMG7kmTJmXMmDG566678tZbbyVp+KHJJGnTpk0OO+ywTTkOAAAAAAAVrNkD9/z583PXXXelrq4uL7zwQpKmqN26desceuihOeaYY3LkkUemY8eOzT0OAAAAAABVolkCd1EUeeSRR1JXV5eHHnooK1asaHw/SUqlUs4666ycd9556dSpU3OMAAAAAABAlStr4J46dWrGjBmTO+64I2+88UaSpqi9/fbbZ9iwYbn66quTJHvttZe4DQAAAADABtvowL148eLcc889GTNmTP7yl78kaYraHTt2zCc/+ckMHz48+++/f5I0Bm4AAAAAANgYGxW4v/71r+e3v/1tlixZ0hi1a2pqMnjw4AwbNixHH3102rVrV5ZBAQAAAADg3TYqcN92222Nr3fccccMHz48w4YNS+/evTd6MAAAAAAAWJuNfkRJqVRKx44dc9xxx2Xo0KHiNgAAAAAAm0TNxhzcpUuXFEWRhQsX5qc//WmOPvronH766bn11luzaNGics0IAAAAAADvs1GB+9FHH82PfvSjHHLIISmVSqmvr8+TTz6Zb33rWzn00ENzySWXZPz48Y3P5wYAAAAAgHLZqEeUtGnTJscee2yOPfbYzJo1K2PGjMntt9+eadOmZcmSJRk7dmzGjh2bXr165YQTTsgJJ5xQrrkBAAAAANjCbdQd3O/Wu3fvnHfeebnvvvvyq1/9KieccELatWuXoigya9asXHvttTnuuOMa969atapclwYAAAAAYAtUtsD9bgcccECuuOKKPPbYY/nOd76TfffdN0VRpCiKlEqlJMnXv/71nH322bnllluyYMGC5hgDAAAAAIAq1iyBe7WOHTvmlFNOyejRo3P33Xfn7LPPTo8ePVIURVauXJknnngi//zP/5xDDjkkn//851NXV9ec4wAAAAAAUEWaNXC/284775x//Md/zCOPPJL//M//zFFHHZVWrVo1xu7HHnss3/zmNzfVOAAAAAAAVLiN+pHJDVFTU5PDDz88hx9+eObOnZs77rgjdXV1efHFF1MUxaYeBwAAAACACrXJA/e7de/ePWeddVbOOuusTJgwwSNKAAAAAABYZy0auN9t4MCBGThwYEuPAQAAAABAhdhkz+AGAAAAAIByErgBAAAAAKhIAjcAAAAAABVJ4AYAAAAAoCIJ3AAAAAAAVCSBGwAAAACAiiRwAwAAAABQkQRuAAAAAAAqksANAAAAAEBFqm3pAZrbQw89lNGjR2fixIlZsGBBevbsmcGDB+dzn/tc+vfvX9ZrFUWRM844I3/84x+TJNttt10efPDBsl4DAAAAAIAGVX0H97e//e38wz/8Qx5++OHMnj07y5cvz2uvvZYxY8bkpJNOyu23317W6916662NcRsAAAAAgOZVtYH72muvzejRo5MkRx11VOrq6vLEE0/k5z//eXbbbbcsX7483/jGN/LnP/+5LNd7880386//+q+pra1Nnz59ynJOAAAAAAA+WFUG7rlz5+aaa65Jkhx66KG5+uqrM2DAgHTv3j3/P3t3HqVVdeeL+1NMKqAyiChTRyVdUaNeG1vFWVpRIw4g0Xu1JcSWpOMQb9TEuMQ4tkYT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Ls3SpUvzwQcfpGfPnmnTpk2z1AMAAABbIgH3V8yKFStqwu3tttsuHTt2zNZbb50WLb78q9UsW7YsSdKuXbtmrgQokuZ6dnzyySdZvXp1qqqqUlFRkZUrV+bNN9/Mrrvumlat/OcXAAAAmsKXP9WkSS1durQm3O7WrVvatm1biHAboGhatGiRNm3apFOnTvna176WbbbZJmvWrMmSJUuauzQAAADYYkg2v2I+/PDDJEnHjh1TUlLSzNUAfDW0bNkynTt3ThIBNwAAADQhAfdXzKpVq5JYzxrgi1a9RMrKlSubuRIAAADYcgi4v2KqN5a0LAnAF6v6t2aKtsEvAAAAfJlJOQHgC2BZKAAAAGh6Am4AAAAAAApJwA0AAAAAQCEJuAEAAAAAKCQBNwAAAAAAhSTghi1YWVlZSktLU1pamqlTpzZ3OQAAAADQpATc0ERuueWWlJaWpl+/fs1dCgAAAAB8JQi4AQAAAAAopFbNXQCw+fTo0SNz5sxp7jIAAAAAYLMwgxsAAAAAgEIygxs20dSpUzNkyJCaP5eXl6e0tHS9Nvvvv39GjBhRq/3EiROz7bbb5ne/+10mTpyY8vLyLF++PI8//nh23333JMn8+fMzadKkTJ48Oa+//noqKyvTpk2bdOvWLX379s13vvOd9OjRo87aysrK8i//8i9JknvvvTcHHHDAesf79euX8vLynHfeeTn//PMzceLE3H///XnttdeybNmydOvWLccee2yGDRuW9u3bN2p8Vq9enRdffDGTJk3KCy+8kLfeeisrVqzItttum3/8x3/Msccem8GDB6dNmzb19rNmzZqMHTs2f/zjH/Pqq6+moqIi7du3z0477ZS99torAwYMqHV/1d5///3cd999mTJlShYsWJDly5enS5cu6d69e/r27ZtTTjklXbt2rWl/yy235NZbb0337t0zadKkDdZ05plnZtq0aRk4cGB+/vOfr3fspz/9aUaNGlXzs3/ppZcyYsSITJ8+Pe+//3569+6d0aNHN9sYPfHEE7n44ouTJE8++WR22223Dfb7yiuvZPDgwUmS22+/PUcccUS9dQAAAAB8UQTc0IwWLFiQSy+9NO+8806dxz/88MP079+/1vurVq3K3LlzM3fu3Dz22GP59a9/ncMOO2yTarnuuutyzz33rPfem2++mf/zf/5PnnnmmTzwwANp165dg/u9//77c91119V6v6KiIlOnTs3UqVMzatSo3HHHHenQoUOdfZSXl+fcc8/NrFmzavVRUVGRWbNm5amnnsqLL75Y69yxY8dm+PDh+eijj2r1WV5enmnTpqWioiKXXXZZg+9tYz3wwAO59tprs2bNmjqPN8cY9e/fP9ttt12WLl2aUaNG1YTddRk5cmSSpEuXLjn00EM36p4BAAAAvggCbthE++23X2bMmJHbb789t99+e7p165axY8eu16Zly5Z1nnvJJZfk448/zuWXX57DDz887dq1y5w5c9KlS5eaNnvvvXeOOeaY7LXXXunSpUs6duyYysrKzJo1K3fddVdefvnlXHjhhXnyySez4447NuoeRo8enQULFuTUU0/Nqaeemp49e+aDDz7Ivffem4ceeiizZ8/O7bffngsvvLDBfW+99dYZMGBADj300Oy6667p0qVLttpqqyxcuDATJ07MiBEj8vLLL+eKK67Ir3/961rnL1myJEOGDElZWVlatmyZ0047LSeddFJ69eqVTz75JPPmzcuUKVMyYcKEWueOHz8+F110UZKka9eu+f73v5+DDz44HTt2zNKlS/Pqq69m/PjxadVq8z0K//73v+c//uM/ss8+++Tcc8/N7rvvno8//jhz585t1jHaaqutcsIJJ+T+++/P6NGj86Mf/ajOz+nKlSvzhz/8IUly8sknb/CzDAAAANAcBNywiVq2bJl27dqldevWSZKSkpKNnum8ePHiPProozXLkSRJ3759a15vu+22efTRR2ud17Fjx+yyyy7p379/zjzzzMyYMSMPPvhgLrjggkbdw4IFC/K///f/zg9+8IOa9zp06JCrrroqCxcuzNNPP52RI0c2KuA+7bTTctppp9V6v1OnTtl9993Tv3//nHzyyfnTn/6Ut956K7169Vqv3U033ZSysrKUlJTkP//zP2vNaN9hhx3yz//8zzn//PPXe3/58uUZPnx4kuRrX/taHnjggXTu3Lnm+Pbbb5+ePXvmuOOOy+rVqxt8Xxvr/fffT58+fXL33Xevt8RIt27dal431xgNHjw4999/f957771MmTIlhx9+eK0aJkyYkCVLliRJBg0a1PABAAAAANiMBNzU6aa31uaqN5OquldUaCZt//9/r210D+1bJld8LbmoV0mTVLSpTjnllPXC7YZq1apVBgwYkBkzZuS5555rdMC9884753vf+94Ga3z66aezaNGivPPOO9l5550bXW9d/vEf/zF77LFHXnnllTz33HPrhbdVVVUZNWpUkuSkk06qc7mWap+dhT1mzJhUVlYmSa666qr1wu3PO7epXXLJJZ+7fnZ9NtcY7bHHHtlzzz0zc+bMjBo1qs6Au3p5kn333Te77rpro+8BAAAAYHMQcFOnXy34soXbTaNqzbp7u6jX57f9ImzsZn2TJ0/O448/nldffTXvvfdeli9fXqvNm2++2eg6DjrooA0uPbHLLrvUvF60aFGjAu5ly5bl0UcfzTPPPJO5c+dmyZIlWbVqVa12n72H6dOnZ+XKlUmSgQMHNuiazz//fJJ1M6UPPPDABtfcVDp06JB99tnnc9s1xxgl677AmDlzZiZOnJglS5Zk++23rzm2cOHCPPvsszXtAAAAAL5sBNzU6cKe+RLO4N507Vuuu7cvi5496y9m9erVueSSS2qt6V2XDz/8sNF11Ld299Zbb13zesWKFQ3u+4033sjZZ5+dt99++3PbfvYe3nrrrZrXDZ3pvmDBgiTJN77xjQad19Q+72ecNN8YJckJJ5yQG264IR9//HHGjh2bM844o+bY448/nk8++SRt27bNcccd1+C+AQAAADY3ATd1uqhXyZdmlnO1ZcuWJclGr29dBJ8Oj+tyxx131ITbRx11VAYOHJjevXtn++23r1nyYsyYMbnyyiuzZk3jv43Y2I0D165t2PIwq1evzvnnn5+33347bdu2zdChQ3PwwQenR48eadeuXVq0aJEkOfvsszNjxoxa91BVVVXzuqE/9+pzm/vzss0229R7vDnHKEm222679O/fP0888URGjRq1XsBdvfTJMccck/bt2ze4bwAAAIDNTcANX2IPPfRQkuT444/Pr371qzrbfPzxx19kSQ3ywgsv5I033kiS3HzzzTn00EPrbFfXkivJ+oHtsmXL1ls+4/NUn1v9xUhDlJRs3BrtTbE5ZXOOUbVvf/vbeeKJJ/LKK69k7ty5+frXv54ZM2Zk3rx5SWwuCQAAAHx5tWjuAoC6VVZW5t13302SfOtb39pgu9dff/2LKqnBZs+enSTZfvvtNxjcrly5siZI/ax/+Id/qHk9a9asBl27eiPGOXPmNOi8JDWz4z9vSZb33nuvwX1/VnOOUbX999+/ZryqN5Ws/nevXr3yz//8z43qFwAAAGBzE3BDE2nVat0vRGzKUiGfVr1xYJJ88skndbZZvnx5Jk6c2CTX2xyq76G+MRk/fvwGZ6H36dMnW221VZJ160E3xMEHH5wkKS8vz9SpUxt0bvWa5IsXL86SJUvqbPP3v/89ZWVlDeq3Ls05RtVKSkpqNpF84oknUlVVlaeeeirJuo0rN3ZGOwAAAMAXTcANTaRDhw5J1oWiTbF0RadOndK2bdskydNPP11nm+uvvz6VlZWbfK3NpUePHknWrRM9bdq0WscXLVqUX/ziFxs8v3379hk4cGCSdeHthAkTNtj2s2M+YMCAmp/JFVdckcWLF2/0uXvvvXeSdWuO1xUar169Otddd90G+2uI5hyjTxs4cGBatmyZRYsW5fLLL09VVVVatGhR0zcAAADAl5GAG5rInnvumWTdjNybb745CxcuzKpVq7J69epGzepu1apVjj766CTrlou4/vrrM3fu3FRUVGTGjBk577zz8sgjj2S33XZr0vtoSoceemjNGtEXXnhhxowZk3fffTcLFy7MmDFjctppp6WysjLdu3ffYB8XXnhhevTokbVr1+aCCy7Itddem7/97W+pqKjIBx98kBkzZuSWW27JySefvN55bdu2zbXXXpskmTdvXgYNGpQHHngg8+fPz9KlS1NWVpYJEybk4osvrrW++a677pp99903SfLLX/4y9913XxYuXJjFixfn2WefzdChQzN16tR07dq10GP0aV27ds1hhx2WJHnyySeTJAcddFB23nnnTb5HAAAAgM3FJpPQRPbee+/su+++eemll3L77bfn9ttvrzm2//77Z8SIEQ3u88c//nFefPHFlJeX5+67787dd9+93vFjjjkmhx12WC677LJNLX+z2G677XLllVfmkksuyaJFi/LjH/94veNt2rTJDTfckAcffDDl5eV19rH99tvnnnvuyQ9+8IO8/vrrGTFiRJ1jue2229Z67+ijj86NN96Yyy+/PO+8806uuuqqOq8xZMiQWu9dc801+dd//ddUVlbmmmuuyTXXXFNn3QsXLqx3DD5Pc4/Rpw0ePHi93xawuSQAAADwZWcGNzShO+64I//2b/+W3r17Z+utt97k/rp06ZLHHnssZ555Zrp3757WrVunY8eO2X///XP99dfn5ptvTosWX+6/xieeeGLuvffeHHbYYdluu+3SunXrdOvWLSeffHIeffTRejfQrNajR4+MGjUq1157bQ455JB07tw5rVu3TufOnbPnnntm6NCh+d3vflfnuSeddFLGjx+fs88+O9/4xjfSvn37bLXVVunevXv69u2b4cOH5/vf/36t877+9a/nsccey6BBg9K1a9e0bt06O+64YwYMGLDRdW+s5h6jakcccUR22GGHJOtC8+rfIAAAAAD4sipZu3bt2uYugoabM2dOqqqq0r59+5SWlm70ebNmzUqS7L777purtM1m2bJlSVKznAPQtD755JP069cv77zzTk4//fRcccUVzV1Sk/gyPTuK/AyGr5Lp06cnWbeRL8DG8uwAGspzA9bX2Lzzyz31E4AvzPPPP5933nknSXLKKac0czUAAAAAn0/ADUCS5N57702ybsPUb37zm81cDQAAAMDns8kkwFfU2rVrs2bNmixbtiyPPPJInnnmmSTJsGHDmrcwAAAAgI0k4Ab4ipo2bVqGDBmy3nsHHXRQjjvuuGaqCAAAAKBhBNwAX3EtWrTIzjvvnKOPPjrnn39+c5cDAAAAsNEE3ABfUQcccEDmzJnT3GUAAAAANJpNJgEAAAAAKCQBNwAAAAAAhSTgBgAAAACgkATcAAAAAAAUkoAbAAAAAIBCEnADAAAAAFBIAm4AAAAAAApJwA0AAAAAQCEJuAEAAAAAKCQBNwAAAAAAhSTgBgAAAACgkATcAAAAAAAUkoAbthBnnnlmSktL89Of/rTWsZEjR6a0tDSlpaWN7v+WW25JaWlp+vXrtyllbrL67hMAAACArxYBN9DsysrKagL4qVOnNnc5AAAAABSEgBsAAAAAgEJq1dwFAJvfoEGDMmjQoOYuo0mMGDGiuUsAAAAA4EvCDG4AAAAAAArJDG7YREuWLMkhhxySlStX5sILL8z3v//9etsfddRRWbBgQQYMGJCbbrqp5v2qqqpMmTIlkyZNyssvv5x33303q1evTqdOnbL33nvn29/+dg4//PBG1Thy5MhceumlSZI5c+bU2Wb16tW5//778/jjj2fevHlp06ZNdtttt5x66qkZOHDg515j/vz5mTRpUiZPnpzXX389lZWVadOmTbp165a+ffvmO9/5Tnr06FHrvH79+qW8vLzmz0OGDKnVZuLEiTXnnnnmmZk2bVoGDhyYn//853XWUlVVlfvvvz8TJkzIm2++mRUrVqRz587p06dPTj/99PTp06fO86ZOnVpz/YkTJ6ZTp0753e9+lz/+8Y8pKytLy5Yts8cee+SMM87Iscce+7ljsiEVFRX585//nEmTJmXmzJlZtGhRkmSHHXbIvvvumzPOOCP/9E//9Ln9vP/++7nvvvsyZcqULFiwIMuXL0+XLl3SvXv39O3bN6ecckq6du1a57kvvPBCfv/732f69OlZtGhRWrRokZ122im9e/fO0UcfnWOPPTatW7euaV/9czrvvPNy/vnn19lnWVlZ/uVf/iVJcu+99+aAAw5Y73j1JqfXX399TjrppDz00EN54oknMm/evFRWVubSSy/N0KFDm3yM7rrrrjz//PMpLy+vd4zOOuusPPvss9lnn33yyCOP1Nvv1Vdfnfvvvz9dunTJM888k1at/OcUAAAAmoP/I4dNtP322+eII47IuHHj8sQTT9QbcL/00ktZsGBBkuTEE09c79gll1ySCRMm1Dpn4cKFGT9+fMaPH59vf/vbufbaa5v2BpIsX748w4YNy4svvljz3kcffZQZM2ZkxowZef7559OzZ88Nnv/hhx+mf//+td5ftWpV5s6dm7lz5+axxx7Lr3/96xx22GFNXv+nzZkzJ8OGDcvChQvXe/+dd97J2LFjM3bs2Jx11ln5yU9+kpKSkg328/777+d73/te3njjjfXenzZtWqZNm5YLLrgg55xzTqNq/O53v5tZs2bVer+8vDzl5eUZO3ZsfvjDH+bcc8/dYB9jx47N8OHD89FHH9XZx7Rp01JRUZHLLrtsveMrVqzIZZddlrFjx9bq84033sgbb7yRP/3pT+ndu3d23333Rt3f51m5cmWGDh2aadOmbbBNc4zR4MGD8+yzz+Zvf/tb3njjjey2224brL96/E466SThNgAAADQj/1cOTeDEE0/MuHHjMnfu3Lz22mvZY4896mw3ZsyYJEnnzp1z8MEHr3esc+fOGTJkSA444IB07949Xbp0yerVq1NWVpbRo0fn97//fR599NHsvvvuOeOMM5q0/p/97Gc14faJJ56YoUOHplu3bikvL89dd92V0aNH1zn7+tP23nvvHHPMMdlrr73SpUuXdOzYMZWVlZk1a1buuuuuvPzyy7nwwgvz5JNPZscdd6w57w9/+EPKy8tz/PHHJ0l+85vfZL/99luv77Zt227UfVRUVOTf/u3fsmjRomy99dY599xzc+yxx6Z9+/aZM2dObr755syYMSO/+93v0qlTpwwbNmyDfV188cWpqqrKz372sxx22GFp3759Zs+eneuuuy6vv/56br311hxzzDEbDEHr07179xx66KHZb7/9stNOO6VLly756KOPMn/+/DzyyCN56qmncvPNN+eb3/xmnbP2x48fn4suuihJ0rVr13z/+9/PwQcfnI4dO2bp0qV59dVXM378+DqD14suuqjmi5RDDjkkQ4YMye67757WrVvn3XffzdSpUzN69OgG31ND3HbbbVm0aFHOOuusnHzyyenatWveeeed9do05RjtuOOOOeuss3LkkUfWO0ZHHXVUOnTokMrKyowaNSoXX3xxnfVPmDAhS5YsSZItZm17AAAAKCoBNzSBww8/vCYYGzNmTJ0B9+rVq/PUU08lSY4//vha4ePVV19dZ9877bRT9ttvv+yxxx658sorc+edd+b000+vd/ZxQ7zyyit54oknkiSnnnpqrrnmmppjHTt2zE033ZQ2bdpk5MiRG+xj2223zaOPPlrr/Y4dO2aXXXZJ//79c+aZZ2bGjBl58MEHc8EFF9S02WabbbL11lvX/HnrrbdOu3btGnUv1cFpSUlJbr311hx66KE1x/r27Zs+ffpk6NChmT59em6++eYMGjQonTt3rrOvDz74II899th6AXbfvn1z5513pn///lmxYkW9IWh9/uu//qvO97t3756DDjooPXr0yB133JHf/OY3tcLb5cuXZ/jw4UmSr33ta3nggQfWu4ftt98+PXv2zHHHHZfVq1evd+4f/vCHmnB7yJAhtWZ3d+zYMbvvvnuGDh1a69ymtHDhwlxxxRU5/fTTa97r0KHDem2acozuvPPOdOrUqeZztaExatOmTU444YSMGDEio0ePzo9+9KO0bNmyVg3Vfxf23XffRn3BAQAAADQdm0xCE2jTpk2OOeaYJOtCxE8++aRWm8mTJ6eioiJJ7eVJNsbJJ5+cJHn77bczb968Tah2faNGjUqSbLXVVhsMa3/yk5+kTZs2jb5Gq1atMmDAgCTJc8891+h+6rNmzZqaeznqqKPWC7ertWnTpib4XLlyZc2M+rqceeaZdYaXXbt2zUEHHZRk3ZcDm0P1z/qll16qtbzGmDFjUllZmSS56qqrNhjQJ6n1Jcq9996bJOnVq1cuueSSemvYnMtu7LbbbuuF243RkDHq1KnTBvv57H1++9vfTpK89957mTJlSq32CxcurPkMm70NAAAAzc8MbupWeVNScWWytqq5K6nRuDm9n1HSPul4ZdLhoqbobT0nnXRSHn744bz33nv561//WhOCVqueJb3rrrtmr732qrOP8vLyPPTQQ/nrX/+a+fPnp6qqKmvWrKnV7s0338yuu+7aJHVPnz49SbL//vtn++23r7NNx44ds//++9cZ+H3a5MmT8/jjj+fVV1/Ne++9l+XLl9dq8+abb25yzXV5/fXX8+GHHyZJvRtA7rHHHunVq1feeuutvPjii/nud79bZ7v61grfZZddkqxbp7ux5s6dm4cffjgvvvhiysrKsmzZslpfjKxZsyZvvfVWzeaMSfL8888nSbp165YDDzxwo69XVVVVE8ifcMIJzbpu9MZultpUY7Rs2bKNrq20tDR77bVXXnnllYwaNapWraNHj86aNWuyzTbb5Fvf+tZG9wsAAABsHgJu6rbkpi9VuN1k1latu7fNEHD36dMnPXr0SFlZWcaMGbNewF1VVZVJkyYlWRcu1uWpp57KpZdeWms2al2qg9ymUF5eniSfG5jvuuuuGwy4V69enUsuuaTOjQs/qylr/7Tq+0iS3r1719u2d+/eeeutt/L2229vsM2n1wn/rG222SZJNupnVZd77rknN95440YtA/LZ8arepPQb3/hGg65ZXl5e82XJ5to8cmN93nruSfOMUbXBgwfnlVdeycSJE7NkyZL1vvipXp6kf//+ad++faP6BwAAAJqOgJu6bX/Rl24Gd5Moab/u3jaTE088MbfddlvGjRuXK6+8smZt6QkTJuSjjz5KSUlJncuTLFiwID/5yU+ycuXK9OzZM9/97nfzP/7H/0jXrl2z9dZbp6SkJGvXrk2fPn2SpM5Z3Y1VPcv68zZyrO/4HXfcURNuH3XUURk4cGB69+6d7bffvmZpkzFjxuTKK69s0to/7dOzdD/vXqrXYq5vZm+LFptnBafp06fnuuuuS7IugB0yZEi++c1vpkuXLmnTpk1KSkry9ttv1yzp8tnxqqpa93eyoeuUV5/XmHObWvUXBBvSXGNUbcCAAfn5z3+ejz76KGPHjq3Z1PWll16qWR7olFNOaVTfAAAAQNMScFO3DhdtllnOm6I6jGzucK4+1QH3smXLMnHixBx//PFJUrPW8z/90z/VOXv197//fVauXJltt902Dz/8cJ3rKi9dunSz1Ny2bdt8+OGHdS4n8mn1HX/ooYeSrNs881e/+lWdbT7++OPGF7kRPv252Nh7aY7PUvVY9ezZMw8//PB6G2xWq2/W8saE8/Wd15hzN1ZTfXnRXGNUrX379jn22GMzatSojBw5sibgrp693aNHj+y///6N6hsAAABoWjaZhCa0yy67ZO+9907y/9bcXrRoUf76178m2fDmkrNnz06SHHDAARvcNPD1119v6nKTJN27d0+S/P3vf6+33YaOV1ZW5t13302Setck3lz1V/v0Fwf//d//XW/b6uPV9/5Fqv5Z9+vXr87gNknmzJmzwfN79er1uW3q0qNHj7Rs2TJJMmvWrAadm6zbhDRJVqxYscE27733XoP7rUtzjdGnDR48OEny6quvZu7cuVmxYkWefPLJJMnAgQNTUlLS6L4BAACApiPghiZWHWJPmTIlixcvzh/+8IesWbMmrVu3znHHHVfnOatWrUpS/wzY6lngTa162ZNp06ZtcJZ4RUVFpk2bVuexlStX1rz+7AaA1ZYvX56JEydusIbWrVt/bh+f5+tf/3q23XbbJMm4ceM22G727NmZP39+kv9371+k6vGq7z6rvxypy8EHH5xk3ZraU6dO3ejrtm/fvubLl7Fjx27U2taf1qVLlySpWaKjLpMnT25QnxvSXGP0afvtt1++9rWvJVk3c/tPf/pTqqqq0qJFiwwaNKhRfQIAAABNT8ANTez4449Pq1atsmrVqjz11FM1wfQRRxyx3mZ1n1Y9k/ill15KZWVlreMvvPBCHnvssc1S78CBA5OsW0LkF7/4RZ1tbrzxxvWC7E/r1KlTzZrXTz/9dJ1trr/+X+im/gAAIABJREFU+jrvq9p2221XMyN24cKFG137p7Vs2bLmXsaNG5fnnnuuVptVq1bl2muvTbJuRvJJJ53UqGttiuqZ5lOmTKlzTMeMGbPBzTyTdetDd+jQIUlyxRVXZPHixRts+9kQe8iQIUmS+fPn55e//GW9dX72y5Z99tknSfLcc8/VOVP7jTfeyIgRI+rtc2M19RhVVFRssG19QX/1OttPPPFEzd+/Aw88MN26dfv8mwAAAAC+EAJuaGKdOnXKIYcckiT57W9/m5kzZybZ8PIkSWpmdldWVubss8/O888/nw8++CDz58/Pb37zm3zve9+rmU3a1Pbaa6+ccMIJSZJHHnkkP/nJT/Laa6+lsrIyM2fOzEUXXZSRI0fWuXZ4krRq1SpHH310knUzXa+//vrMnTs3FRUVmTFjRs4777w88sgj2W233TZYwzbbbFNz/L777svs2bPz0UcfZfXq1Q2aaXzOOeekS5cuWbt2bc4999zccccdWbBgQSoqKvL8889n6NCheeGFF5Ik559/fjp16rTRfTeV6p/1vHnz8oMf/CAvvfRSFi9enP/+7//OL37xi1x66aX1jlXbtm1rQvp58+Zl0KBBeeCBBzJ//vwsXbo0ZWVlmTBhQi6++OJa66F/61vfylFHHZUkueuuuzJs2LD85S9/yaJFi1JZWZnZs2fnvvvuy6BBg2otKXPyySenZcuW+eijj2o+o5WVlSkrK8v999+fM844IzvssMOXcozOOOOMPProoxs1Rp82cODAtGrVKosWLar5DQabSwIAAMCXi00mYTM46aST8swzz6S8vDzJuhnKRxxxxAbb9+3bN6eddloefvjhvPLKKxk6dOh6x3fcccfccsst9a5xvSmuvvrqvPPOO3nxxRczevTojB49er3jJ5xwQv7hH/4ht956a53n//jHP86LL76Y8vLy3H333bn77rvXO37MMcfksMMOy2WXXbbBGoYMGZKf/exneeWVV2rNrJ44ceIGA/ZP69ixY377299m2LBhWbhwYX75y1/WOVP5rLPOytlnn/25/W0OAwcOzLhx4/LnP/85U6ZMqTUTedddd811112X0047bYN9HH300bnxxhtz+eWX55133slVV11VZ7vqGdufdtNNN+WnP/1pnnrqqfzlL3/JX/7yl42qe7fddssFF1yQX/3qV5kzZ06tz+huu+32uXVvrKYeo3fffTfXX399rr/++lrt6hqjal26dMnhhx9es7zOdtttV/NlDgAAAPDlIOCGzaBfv35p3759qqqqkiTHHnts2rRpU+85V199dfbaa688/PDDmTt3blq0aJGddtopRx55ZM4+++zNOtu4bdu2ueeee3Lfffdl9OjRmTdvXlq1apXevXtn8ODBGTx4cG655ZYNnt+lS5c89thjue222zJp0qS89957ad++fb7+9a9n4MCBGTRoUEaOHFlvDaeddlratWuXhx9+OHPmzMmHH37YqPW4S0tL8+STT+a+++7LhAkT8uabb2bFihXZYYcd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\n", | |
"text/plain": [ | |
"<Figure size 864x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"image/png": { | |
"width": 732, | |
"height": 506 | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "ZsHqkLAuf8pv" | |
}, | |
"source": [ | |
"The training accuracy starts to approach 100% after 10 epochs or so. You might try to fine-tune the parameters a bit more, but this will be good enough for us.\n", | |
"\n", | |
"Don't want to wait? Uncomment the next cell to download my pre-trained model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "zoGUH8VZ-pPQ" | |
}, | |
"source": [ | |
"# !gdown --id 1V8itWtowCYnb2Bc9KlK9SxGff9WwmogA\n", | |
"\n", | |
"# model = SentimentClassifier(len(class_names))\n", | |
"# model.load_state_dict(torch.load('best_model_state.bin'))\n", | |
"# model = model.to(device)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "U3HZb3NWFtFf" | |
}, | |
"source": [ | |
"## Evaluation\n", | |
"\n", | |
"So how good is our model on predicting sentiment? Let's start by calculating the accuracy on the test data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "jS3gJ_qBEljD", | |
"outputId": "21f968b6-fd29-4e74-dee0-8dc9eacd301e", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"test_acc, _ = eval_model(\n", | |
" model,\n", | |
" test_data_loader,\n", | |
" loss_fn,\n", | |
" device,\n", | |
" len(df_test)\n", | |
")\n", | |
"\n", | |
"test_acc.item()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"0.883248730964467" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 52 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "mdQ7-ylCj8Gd" | |
}, | |
"source": [ | |
"The accuracy is about 1% lower on the test set. Our model seems to generalize well.\n", | |
"\n", | |
"We'll define a helper function to get the predictions from our model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "EgR6MuNS8jr_" | |
}, | |
"source": [ | |
"def get_predictions(model, data_loader):\n", | |
" model = model.eval()\n", | |
"\n", | |
" review_texts = []\n", | |
" predictions = []\n", | |
" prediction_probs = []\n", | |
" real_values = []\n", | |
"\n", | |
" with torch.no_grad():\n", | |
" for d in data_loader:\n", | |
"\n", | |
" texts = d[\"review_text\"]\n", | |
" input_ids = d[\"input_ids\"].to(device)\n", | |
" attention_mask = d[\"attention_mask\"].to(device)\n", | |
" targets = d[\"targets\"].to(device)\n", | |
"\n", | |
" outputs = model(\n", | |
" input_ids=input_ids,\n", | |
" attention_mask=attention_mask\n", | |
" )\n", | |
" _, preds = torch.max(outputs, dim=1)\n", | |
"\n", | |
" probs = F.softmax(outputs, dim=1)\n", | |
"\n", | |
" review_texts.extend(texts)\n", | |
" predictions.extend(preds)\n", | |
" prediction_probs.extend(probs)\n", | |
" real_values.extend(targets)\n", | |
"\n", | |
" predictions = torch.stack(predictions).cpu()\n", | |
" prediction_probs = torch.stack(prediction_probs).cpu()\n", | |
" real_values = torch.stack(real_values).cpu()\n", | |
" return review_texts, predictions, prediction_probs, real_values" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "dkbnBTI7kd_y" | |
}, | |
"source": [ | |
"This is similar to the evaluation function, except that we're storing the text of the reviews and the predicted probabilities (by applying the softmax on the model outputs):" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "zHdPZr60-0c_" | |
}, | |
"source": [ | |
"y_review_texts, y_pred, y_pred_probs, y_test = get_predictions(\n", | |
" model,\n", | |
" test_data_loader\n", | |
")" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "gVwoVij2lC7F" | |
}, | |
"source": [ | |
"Let's have a look at the classification report" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "L8a9_8-ND3Is", | |
"outputId": "9b2c48cc-b62e-41f3-dba5-af90457a37de", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 187 | |
} | |
}, | |
"source": [ | |
"print(classification_report(y_test, y_pred, target_names=class_names))" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
" precision recall f1-score support\n", | |
"\n", | |
" negative 0.89 0.87 0.88 245\n", | |
" neutral 0.83 0.85 0.84 254\n", | |
" positive 0.92 0.93 0.92 289\n", | |
"\n", | |
" accuracy 0.88 788\n", | |
" macro avg 0.88 0.88 0.88 788\n", | |
"weighted avg 0.88 0.88 0.88 788\n", | |
"\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "rFAekw3mmWUi" | |
}, | |
"source": [ | |
"Looks like it is really hard to classify neutral (3 stars) reviews. And I can tell you from experience, looking at many reviews, those are hard to classify.\n", | |
"\n", | |
"We'll continue with the confusion matrix:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "6d1qxsc__DTh", | |
"outputId": "14b8839c-4e14-430c-b185-46b09bd4231e", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 533 | |
} | |
}, | |
"source": [ | |
"def show_confusion_matrix(confusion_matrix):\n", | |
" hmap = sns.heatmap(confusion_matrix, annot=True, fmt=\"d\", cmap=\"Blues\")\n", | |
" hmap.yaxis.set_ticklabels(hmap.yaxis.get_ticklabels(), rotation=0, ha='right')\n", | |
" hmap.xaxis.set_ticklabels(hmap.xaxis.get_ticklabels(), rotation=30, ha='right')\n", | |
" plt.ylabel('True sentiment')\n", | |
" plt.xlabel('Predicted sentiment');\n", | |
"\n", | |
"cm = confusion_matrix(y_test, y_pred)\n", | |
"df_cm = pd.DataFrame(cm, index=class_names, columns=class_names)\n", | |
"show_confusion_matrix(df_cm)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAABaoAAAQJCAYAAAAn5j+TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeZiWdb0/8PcDzDDIKooLSOYC5EaouKCChlRKooJparaYSmiLG+eodTp6/FUuZWGe415kHTU1sQNqWOIC5oJLSLmRuSEoi2yyDwy/P5CRkRkEwe5H5/W6rrmum+d739/n88zj4PCZz7zv0ooVK1YEAAAAAAAK0qToAgAAAAAAaNw0qgEAAAAAKJRGNQAAAAAAhdKoBgAAAACgUBrVAAAAAAAUSqMaAAAAAIBCaVQDAAAAAFAojWoAAAAAAAqlUQ0AAAAAQKE0qgEAAAAAKJRGNQAAAAAAhdKoBgAAAACgUBrVAAAAAAAUqlnRBcCHreOQEUWXAMA7nrpkQNElAPCOdi0rii4BgHdU6dDVarH7t4suYb0s+ut/F13Cx4aJagAAAAAACqVRDQAAAABAofxiAQAAAABQHkrmahsr7zwAAAAAAIXSqAYAAAAAoFAa1QAAAAAAFEpGNQAAAABQHkqloiugICaqAQAAAAAolEY1AAAAAACFEv0BAAAAAJSHkrnaxso7DwAAAABAoTSqAQAAAAAolEY1AAAAAACFklENAAAAAJSHUqnoCiiIiWoAAAAAAAqlUQ0AAAAAQKFEfwAAAAAA5aFkrrax8s4DAAAAAFAojWoAAAAAAAol+gMAAAAAKA+lUtEVUBAT1QAAAAAAFEqjGgAAAACAQmlUAwAAAABQKBnVAAAAAEB5KJmrbay88wAAAAAAFEqjGgAAAACAQon+AAAAAADKQ6lUdAUUxEQ1AAAAAACF0qgGAAAAAKBQGtUAAAAAABRKRjUAAAAAUB5K5mobK+88AAAAAACF0qgGAAAAAKBQoj8AAAAAgPJQKhVdAQUxUQ0AAAAAQKE0qgEAAAAAKJToDwAAAACgPJTM1TZW3nkAAAAAAAqlUQ0AAAAAQKE0qgEAAAAAKJSMagAAAACgPJRKRVdAQUxUAwAAAABQKI1qAAAAAAAKJfoDAAAAACgPJXO1jZV3HgAAAACAQmlUAwAAAABQKI1qAAAAAAAKJaMaAAAAACgPMqobLe88AAAAAACFMlENAAAAAFBGlixZknHjxuWhhx7KxIkTM3ny5CxcuDCtWrVKly5d0rdv3xxzzDFp1apVvdePGDEi55133vs+T5cuXXLnnXeu9ZxZs2bl17/+de69995MnTo1lZWV2W677TJgwIAce+yxadZs47SYNaoBAAAAgPLQpFR0BWWhV69eWbBgwRqPz5kzJ48//ngef/zx3HDDDbniiivSvXv3D62OZ599NoMHD86MGTNqH1u0aFEmTJiQCRMmZNSoUbn++uvTunXrDX4ujWoAAAAAgDKyYMGCVFRUpF+/funXr1922223tGvXLtOnT8/IkSPzq1/9Km+++WZOPvnkjBo1KltuuWWDez311FMNrjVt2rTBtTlz5mTIkCGZMWNG2rRpk/POOy8HHHBAFi9enNtvvz3XXHNNJkyYkLPOOivXXXfdBr3eRKMaAAAAAKCsHH/88TnttNPSoUOHOo+3bds2Z599drp27ZqhQ4dm7ty5ueqqq3LBBRc0uFfLli0/UA3XXXddpk2bllKplKuuuio9e/asXTvzzDNTVVWVYcOGZezYsRk7dmz69OnzgZ5nFTdTBAAAAADKQ6nJR+vjQ3L++eev0aRe3YABA9K1a9ckydixYzf68y9btiy33nprkuSggw6q06Re5aSTTkq7du2SJDfddNMGP6dGNQAAAADAR0yXLl2SJNOnT9/oez/xxBOZN29ekuTQQw+t95zKysr069cvSfLwww9n8eLFG/ScGtUAAAAAAB8xM2fOTJJ1vpHh0qVL13nvZ555pva4R48eDZ63am3JkiV58cUX13n/+sioBgAAAAD4CJk5c2btTRJ33333tZ47cODA/OMf/0h1dXU22WST7LzzzvnsZz+bY445Jptsskm917z88stJkiZNmqRjx44N7r3NNtvUuWbXXXdd35dSS6MaAAAAACgPpVLRFayXESNG5I477ljn8wcOHJhBgwZt8PNedtllqa6uTpIcd9xxaz332WefrT1euHBhnnjiiTzxxBP53//93/z3f/93PvWpT61xzezZs5Mkbdq0SUVFRYN7t2/fvvZ4zpw56/Ua3kujGgAAAADgA5gyZUrGjx+/zufvvffeG/ycI0eOzIgRI5Ikffv2Te/evdc4p6qqKgMHDky/fv2yww47ZKuttsry5cvz/PPP56abbspdd92VyZMn56STTsqIESOy5ZZb1rl+0aJFSZLmzZuvtZaqqqra44ULF27Q69KoBgAAAAD4ADp16rRezedOnTpt0PNNnDgxP/jBD5IkW2+9dX70ox/Ve17//v3Tv3//NR7v2bNnevbsme7du+eiiy7KzJkzM2zYsFx00UUbVNfGoFENAAAAAJSHUpOiK1gvgwYN2ihRHuvipZdeyuDBg7N48eK0a9cu119/fZ3ojfXx9a9/PXfddVcmTpyY0aNH58ILL6wT8dGiRYskK2+SuDaLFy+uPW4o73pdfbTeeQAAAACARmbq1Kn5xje+kdmzZ6dly5a57rrrsuOOO27Qnn379k2yMrLj1VdfrbO26aabJknmzZuXZcuWNbjHrFmzao/btWu3QfVoVAMAAAAAlKmZM2fmxBNPzBtvvJGqqqpcffXV6d69+wbvu9lmm9Uez5s3r87adtttlySpqanJlClTGtzj9ddfX+OaD0qjGgAAAACgDM2dOzcnnnhiXnnllVRUVOQXv/jFRrkhY5LMmDGj9rhNmzZ11nbZZZfa46effrrBPSZMmJBk5U0XN3TCW6MaAAAAACgPpdJH6+NDtGDBgpx88smZNGlSmjRpkksvvTQHHnjgRtt/zJgxSZKWLVtm2223rbPWs2fP2ub16NGj671+6dKlue+++5Ik++23X6qqqjaoHo1qAAAAAIAysnTp0px66qmZOHFikuTCCy9M//791+na+fPnZ/78+Ws959prr80zzzyTJDn00EPr3EgxSZo1a5ZjjjkmSXL//ffnySefXGOP4cOH12ZUH3/88etU29o02+AdAAAAAADYKJYvX54zzjgjjz32WJLku9/9bvr3758FCxY0eM0mm2yS0jsT3pMnT85Xv/rV9O/fP3369EmXLl3Stm3bLF26NM8//3xuvvnm2mnqDh065Lvf/W69e55yyikZNWpUpk2bllNPPTXnnXdeDjjggCxevDi///3vc+211yZJ+vTpkz59+mzw6y6tWLFixQbvAmWs45ARRZcAwDueumRA0SUA8I52LSve/yQA/iWqjJLWavG5nxRdwnpZ9Kd/2+h7vv766zn44IPX65oxY8Zkm222SZI899xzOfLII9/3mh133DGXX375WrOln3322QwePLhOnvXqevTokeuvvz6tW7der3rr48sAAAAAAOBj4hOf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C5cszzk3/rX2z4f39AMqoHH53gU/zqBjjl+jSb26L3356+n6qZ2TJK++/FL++Y8X1vt5Xpz0fP7xwnNJkh127JpP7bzrBysYgCTJJT/+YRYsWJBNN9203ib16po0aZKmTZv+C6sDNprSR+yDjUajGuBf5OFJM2qPt9+yVYGVJM9NmZdZ85esrGWLYmsBKFe77/lu3Mfk115d7+vvHvVuNEj/w01TA2yI1ydPzoMP3J8k+dJxX15rkxqAjybRH43cPvvskxdeWP8JIWD9VTR992eDy8sgEnpVPcv9SiRAvaqrq2uPmzRZv/mO6urq3Dv6riRJRUVFPnvIgI1aG0Bjc8/ou2ujPPoe/NnaxxctWpQZ06enqkVVNttsc1PUAB9hGtUA/yL7detQe/yPN+YVWEmy2yfapXWLiiTJpIJrAShXf33y8drjT26/w3pd+5ex92fu3DlJkv16fyZt27XbqLUBNDZPT1gZXdesWbPssOOOeerJJ3L1lf+dx8c/lpqalVMgLVu2zP4H9M7Jg09Nt099qshygQ1QKsnTaKw+ltEf781nfv755zN06ND06dMnu+66a3r37p1zzz03r7322lr3mTt3bq688socffTR2WeffbLrrrumT58+Oeuss/LXv/51rdeuet4zzzwzBxxwQHbbbbf07ds3F1xwQaZMmZIk6datW7p165YRI0asce2SJUvywAMP5D//8z8zYMCA7L777tl1112z//7755RTTsmoUaNq/2e8uhEjRqRbt265446Vv2o6fvz42udZ9XHuuefWnv/YY4/VPv7666/XPn7jjTemW7du2WmnnTJt2rS1vs7HH3+8do+//OUv9Z7zyCOP5Oyzz85nPvOZ7Lbbbtlzzz1z1FFH5dprr83ChQvf93MJH3WHfHrr7NRp5U0RJ746O/+cNr/Qes7s/+437n8YP7nASgDK07gHxuTlf/4jSdL1UzvnE9tut17X//FOsR8AG9OLL678O7l169b5/a235KSvfyWPPfpInX8XL1iwIH+6Z3SO/9JRGfH724oqFYAP6GPZqF7d3XffnaOPPjqjRo3KtGnTUl1dnenTp+eOO+7IF7/4xQZjLx599NF87nOfy+WXX56JEydmzpw5qa6uzrRp03LXXXfl2GOPzeWXX97g844cOTJHHXVU7r777syYMSNLly7NlClTcvPNN2fQoEH5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H02vXr3W6/oePXqkVCplxYoVue+++7LbbrvVe96YMWMa3GNVlMjaIj1WxW40pNk7OVwbIxZkhx12yC677JJnnnkmI0eOzOc///naGJCDDjoorVuv+Y+61q1bp3v37pkwYULuvvvunHDCCRtcB5Sr/xi0a048aIckyRtzFuX82yZm601bZOtNG/6V7zdmL8q8RdV1HtukedMctkenOo/tsk3b2uPP7LxlOm9W99fRb33ktTp/3rRlZW4784DssOXKr8s7xk/O6KffSLeObdb6Gl6YOm+t6wAfJ1f94rLccdvNSZLNO2yRb515TmZMnzWoeOEAACAASURBVJYZ06c1eE2HLbZM69YN/136x1F/qB1yOPSwIzduwQAkSU755qkZ++ADeemfL+ZnP700zz37bL4w4PBs3qFDpr3xRu4Y8fs8cP99SZL2m22WfzvnvIIrBj4IGdWNl0b1exxwwAHp2rVrJk2alAsuuCA33nhjNt988wbPf/3117PFFluksrIyycobOO633375y1/+kt/+9rc56qijss0229S5ZvLkyfntb3/b4J6rzn/55Zfz6quvZtttt62z/s9//jNXX331Wl9Hu3btkiTTp09f63nr6vDDD88zzzyTBx98MI8//njt1Peqaev6nHjiiTn99NPz5JNPZvjw4TnxxBMbPHf58uV5/fXX13it8FEwYM93m8tbt2uRPwx9/6ibM254Yo0mc/tWzTPsaz0bvObbh3Rb47H37vGpTm3SZet3GykD9+6cgXt3ft96Og4Z8b7nAHxcPPDODQ+TZOaM6fnuN7/2vtec+58/bLABXVNTk9F3/V+SpGnTZvl8/zVj0QDYcK1atcrV1/4yp3/ntDz37DP549135o9337nGedt07pxhV1yZrd5zLyUAypvoj/colUq5+OKLU1VVlVdeeSVHHHFEfvnLX2bSpEmZO3du3nrrrTz33HO57bbbMmTIkHzuc59bIyt66NChadq0ad5+++2ccMIJGTVqVGbMmJEZM2Zk5MiROeGEE9K+ffsGa/jc5z6XJk2apLq6OoMHD86YMWMyY8aMTJ06NTfddFO+/OUvp0WLFrXN6PrssssuSVY2xW+88ca89dZbWbZsWZYtW5aampr1/rwcdthhadq0aaqrq3POOeckWdkM79OnT4PXHHLIIfnCF76QJLn44ovzrW99Kw8++GCmTZuWefPmZcqUKRk7dmx+8pOfpF+/frnhhhvWuy4AgKI98dgjtdPY++7fO+03a3jIAYANs+VWW+V/b74151/4w+zba79svnmHNGtWkXbt2qXnXnvnnO/9R0b8313p0qVr0aUCsJ5MVNdjl112yfDhw3PGGWdk2rRpufTSS3PppZfWe27Tpk3TtGnTOo/tvPPO+fGPf5zvfe97eeONNzJ06NA6623bts0VV1yRo48+unaP1X3yk5/MGWeckZ/97Gd55ZVXctppp9VZb926da644oqcc845mTNnTr11feYzn0nnzp0zefLkXHjhhbnwwgtr1wYOHJiLL7543T4Z79h8882z3377Zdy4cZkyZWXe16GHHpqKioq1XnfxxRenVatWueWWW3Lvvffm3nvvbfDc99sLytU+37/n/U9aB6+/tXCDJ5sfmTTTdDTA+7jl//60Uffbu9f+eXD83zfqngA0rFmzZhl01NEZdNTRRZcCfBgkfzRaGtUN2GOPPXLPPffk9ttvz3333ZcXXnghc+fOTdOmTbP55punS5cu6dWrVw455JC0bdt2jeuPPPLIdO3aNddcc00ef/zxzJs3Lx06dMgBBxyQwYMHZ9NNN609t2XLlmtc/81vfjM77LBDbrjhhjzzzDNZtmxZttxyy+y///456aSTam/62JCqqqrceOONufLKK/PII4/kzTffzJIlSzboc3LEEUdk3LhxtX8+/PD3/7XWysrKXHjhhfnSl76UW265JU888URtLa1atUrnzp3To0ePHHTQQdlvv/02qD4AAAAA4KOptGLVXV/4l3r22WczcODAJMntt9+eXXfdteCKPr5MlwKUj6cuGVB0CQC8o11Lv9EIUC6qjJLW2uxrNxddwnp564bjii7hY8OXQUHuu2/lnYgrKyvTtavsLAAAAAAolWR/NFZupvghaSg7OkleeeWVDB8+PEnSt2/fVFZW/qvKAgAAAAAoOyaqPyT//u//npYtW+YLX/hCdtlll7Rs2TIzZszIuHHjcvXVV2f+/PmpqKhY40aJAAAAAACNjUb1h2T58uW5++67c/fdd9e7XllZmUsuuSTdunX7F1cGAAAAAFBeNKo/JN/5znfStWvXPP7445k2bVpmz56dysrKdOzYMb169cpXv/rVdO7cuegyAQAAAKBsyKhuvDSqPyQ9evRIjx49ii4DAAAAAKDs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4Pnbbbdd7fHrr7/e4HlTp05NTU3NGtes/ueamppMmTIl2267bb17rL7/e/dYXyaqAQAAAADK0Ny5c3PiiSfmlVdeSUVFRX7xi1+8byZ2ly5dam+C+PTTTzd43oQJE2qPd9lllzprq/95XfZo3rx5gxPe60qjGgAAAACgzCxYsCAnn3xyJk2alCZNmuTSSy/NgQce+L7XVVVVpVevXkmSMWPGZOnSpfWeN3r06CQrIzv23HPPOms9e/ZMmzZt6pz3XkuXLs19992XJNlvv/1SVVW1bi+sARrVAAAAAEBZKJU+Wh8flqVLl+bUU0/NxIkTkyQXXnhh+vfvv87XH3/88UlWZkgPHz58jfUnn3wyDzzwQJLk6KOPTrNmdROimzVrlmOOOSZJcv/99+fJJ59cY4/hw4fXZlSver4NoVENAAAAAFAmli9fnjPOOCOPPfZYkuS73/1u+vfvnwULFjT4sWLFijp7HHjggenTp0+SZNiwYRk2bFgmT56cGTNm5I477sipp56ampqabLnlljn55JPrreOUU07JlltumZqampx66qm54447MmPGjEyePDk///nPM2zYsCRJnz59ap9rQ5RWvPdVwMdMxyEjii4BgHc8dcmAoksA4B3tWlYUXQIA76hq9v7nNBZd/73+mIlyNenSQzb6nq+//noOPvjg9bpmzJgx2Wabbeo8Nm/evJx88skNZkx36NAh1113XXbaaacG93322WczePDgzJgxo971Hj165Prrr0/r1q3Xq976+DIAAAAAAMpC6cPM02hk2rRpk5tuuim/+93vMnLkyLz88suprq5Ox44dc/DBB+fEE09M+/bt17rHzjvvnJEjR2b48OEZM2ZMpk6dmoqKimy//fYZMGBAjj322DViQz4oE9V87JmoBigfJqoByoeJaoDyYaL6Xd3OuafoEtbLC5d8vugSPjZkVAMAAAAAUCiNagAAAAAACuUXCwAAAACAsiCiuvEyUQ0AAAAAQKE0qgEAAAAAKJToDwAAAACgLDRpIvujsTJRDQAAAABAoTSqAQAAAAAolEY1AAAAAACFklENAAAAAJSFkojqRstENQAAAAAAhdKoBgAAAACgUKI/AAAAAICyUJL90WiZqAYAAAAAoFAa1QAAAAAAFEr0BwAAAABQFiR/NF4mqgEAAAAAKJRGNQAAAAAAhdKoBgAAAACgUDKq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qpOFCxfm9ddfz+uvv57bb789F110Ufr27bvK/u+9917N44022qjW161Xr1423HDDzJo1K7Nmzfr0F/4JCKqTnHvuubnrrruy2267ZciQIRk5cmRuuOGGjBo1Ku+//37atGmT/fffP6effnqaN29e6+u89tprufnmm/PMM89k2rRpqaysTIcOHbLPPvvkxBNPTMuWLWs99vnnn89tt92WF154IdOnT09ZWVlatmyZ1q1bp3v37jnwwAOzww47rHLMmm6muHLZ+nIf7qlu3759HnroodW2r3wzxTfeeKPmN/qgQYNyyCGH1Lr2+fPnZ88998y8efNyxhln5Oyzz15tnwkTJuSWW27J008/nXfeeSdLlixJmzZt0rt375xyyilp1271HjKo6+bNm7faczNmTM+wP9+Ze4ffnTO/81/5xmlnFLAyAMa/seIvDHPnzsnxXzki06dPW2WfJUuW5JWxL+ei83+Uhx78awZeclkaNmq0vpcKUNIO3WeHml7q58dOzrhJq55Lu27ZtuZxp003zp8uOz3Nmq56Lq1frzK9d+mc3rt0zo1/fipn/vT2LF26dLWv9fs/PJZtO7XJaV/tnfO+eXC6dd0stwx7JhPfnpkNN2iU7l/qmP86Yb+0bNYkb0yeltPPv/UzeMfAR1mPbRqfijvvvDN33XXXOu/fr1+/mvytNuXl5enVq1f69u2b7bbbLm3btk2DBg0yadKk3Hvvvbn++uZrNA8AACAASURBVOszb968nHPOOWnWrFl69epVc+z8+fNrHjdo0GCtX2f59jXlD0UQVH/I0KFDc8EFF2TJkhWXG02ePDnXX3997rnnntx0003p1KnTasddd911ufTSS1c5rqqqKq+++mpeffXV3H777bniiivSvXv3NR77y1/+crXnp0yZkilTpuTFF1/MuHHjctVVV31K7/KjbbXVVtluu+0yZsyYDBs2bK1B9d///vea39CHHXbYatuvv/76DBo0KNXVq16KNXHixEycODF/+tOfctlll2Xffff9dN8EfE5t3KpVDjzoy+nRs1c6d946zZo3z/z58zPu9ddy95/vzN133ZnFixfnt7++LPXq1cuJJ59a9JIB6pz3Z8+ueXzFr3+Vqqqq9Oy9d0457Yx03nrbVFUtyIinn8rlgwflnXem5KknHssvf3ZhfnzhzwpcNUBp2WSjphl83tFJln2497+//vNq+7RstqJCafC5R6dRw/oZMuwf+fWQhzJu0rQ026BhDtlnh/z0u4dl4xYb5KQj9sw//zUrF19132qvtXTp0pz1sz/kvsdeytlf3z8H9dwuB/XcbpV93nt/Xv6/39yda/74RGbPnb/aawB82Ntvv50RI0as8/677bbbR+7Trl27XHfddas9v/XWW2frrbfO3nvvnZNOOilVVVW58MILc99996WiomINr/T5IqheyaRJk3LRRRdlu+22y9lnn50uXbpkzpw5ueeee3LllVdm2rRp+da3vpVhw4at8onE8OHDa4LmrbfeOmeffXZ23HHHVFVV5eGHH86vf/3rzJ49O6eddlqGDRuWDh061Bw7YcKEDBo0KEnSo0ePnHrqqdlyyy2zwQYb5P3338/48ePz+OOPZ86cOev0Htq3b5/nn38+w4cPz09+8pMky6a1V7aul50edthhGTNmTJ588sm8++67tU6EDxs2LEmy3XbbZcstt1xl26233ppf/OIXSZIDDzwwxx13XDp37pzy8vKMHTs2l19+eV544YWcddZZ+dOf/pStt956tdeHuubmW4fWdJ0u17Rp03TbZdd022XX7L3Pfhlw9n9l8eLFufw3g3PAQV9Ou3btC1otQN00f/6KqZOqqqrs0+eA/PzSwTXn7wYNGmT/gw7Ojjvvkv7HHpX33p2Ze4f/Occe3z9bb9ulqGUDlIwG9Stzx69OS7vWy65a/u2tD+eREavfKLFJ4xV/927UsH5+e8tD+Z9Bd9Y8N/29ubnhrqcy4qWJeXzIgDRqWD/fP2n/XPunxzN15up/j968/Ubpf+geq1SKrKzFho1z7P/rnrenzcrt9478T98mUAe0b99+ncLnlff/T3Xr1i39+/fPtddem4kTJ2b06NHZeeedkySNVrqCb/lNFWuzfHvjxqVxXxVB9UqmTp2abbfdNkOGDKn5RW3ZsmW+/e1vp0OHDjnnnHMyceLE3HrrrTnllFOSLOuGGThwYJKkU6dOuf3227PBBhvUvObxxx+fnXfeOcccc0zmzZuXX/ziF7n88strtj/xxBNZvHhxNtpoo1x99dWpX79+zbYNN9wwm266afbee+91fg9lZWVp0qTJKq/TpEmTT/Tz0bdv3/zyl79MdXV17r333vTv33+1fd599908+eSTSVafpp42bVpNJcnJJ5+cc889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b58kmThxYqqra+/VGjduxR+Sy49Zk44dO+aII47IRRddlEceeST9+/dPkrz88ss1n3Ssbz169EirVss+mV4eTo8ePToTJ05MsubajyTp0KFDkmX/EwHr5rFHH/nID75uuO6a/OX+e5Ms66E6vN/6v7swAMmJp55WU+Xx84svyPz5q5+/X31lbG675aYkScOGjXLoEc7ZQN1y2Q++mm98pVeS5Lmxk3PIt67I+3PXLaRe7ufXPpAkadigXi7/0bGrVHwsd1Cvrjnm4F2TJG9PfS93P7RqL+vDI16rCccP23fHHNx7+zV+rY2aN8nFZx1e8+Phj7gJLrD+VVdX569//Wt+8IMf5JBDDskee+yRPfbYI1/96ldz4403ZtGiRWnWrFkGDx5c6/32Bg0alB133DFLlizJlVdemf333z+9evXKueeem9mzZ6dVq1a56qqr0rx58/X87mpnonol8+bNy5NPPpm99tprjdsffPDBJMlWW22VDTfcMEmyyy675Kabbsr8+fPz+OOPZ999913jsQ88sOwP1oqKiuy8885r3OfDKisr893vfjdDhgxJkowfP76mz3pdjl1u8eLF/1EfYkVFRQ455JDccMMNue+++3LeeefV1H60atUqe+655ptL9OzZM2PGjMkTTzyR999/v+bnDKjdTTdclx/+YED23ne/dOu2azpuvnk22KBpFiyYn3HjXs/wu/+cUS++kGRZR9+PL7gwzZu3KHjVAJ8/b02elFEvPL/KczNnrpiau+fuu1bZttHGG6dHz96rPLflVp3z9ZO/kRuuvSpjXhqdk447Osd//eR03nqbVC2syjNPP5Wht9yUqgXLgpGzBvxPWrbcKAB1xcVnHZ4zjt07STJl2qz84NL/S/tNmqf9JrWHIm9PnZXZc+ev8txfnxyb2+8dka/13S2H7rtjHrr+7Fxx+yN5feLUbLhBoxy6zw457ejeKS8vz+LFS3Lmhbdn4aJVB8nen7sgA6++Pz87u18qKspzx6++mZuH/SPDHx6dKdNmZYPGDdJjp0759nH7pm2rZkmSF199K7fdO+JT/lkB+GgDBw7Ms88+m1GjRmXq1KmZNWtWTTi91VZbpVevXvnKV76SFi1qzwM23HDD3HbbbRk6dGiGDRuWCRMmZNGiRWnXrl369OmTk08+OS1btlyP7+qjCao/ZNCgQenevXsaNWq0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Wn5/gOXn07WdVysrK7PBBhtk+vTpeeONN/Lyyy/nhBNOcC4G+IwsP78OHjw4Dz/8cLp27ZpLLrkkp59+evbee+8cfPDB2WWXXTJr1qyMHz8+b731VrbZZpu0bt264JUDsL74aBLgY1q6dGkWL168xueTZUH1+++/nx49emTfffdNsiw8qaysTJI8/vjjOeecc/Lmm28mSRYsWLDaJY8ArLvl5+XlnaYvvfRSfvGLX+SCCy7ImWeemT//+c+ZOnVqzf5LlixJkmy++eY54IAD0rp160yYMCE333xzkqzxHA/AuvvwhdvLf/zHP/4xd911Vzp27Jif/vSn2WOPPbJ06dKa83K3bt1y4oknprKyMiNGjMjQoUPz3nvvrff1A1CMyqIXAPB5U1ZWloqKikyePDnPP/98vvzlL6dhw4YpKyvL0qVL8/jjjydJ9t577zRp0iRJUlFRkfHjx+eyyy7Lgw8+mGRZb/V5552XffbZp6i3AvC5t/xS8oqKikydOjWXXnpphg8fvso+Dz30UL70pS/l3HPPzS677LJKLcguu+ySAw88MLfcckt+9atfpV+/fmnatKleVIBPYPmHhiufP1c+nz711FNJkr59+2b77bev2b9evXpZsGBBrrnmmlx55ZU1wXWnTp3SokWL9f9GACiEoBrgE3jsscdy2mmnpVmzZjniiCOSrLjkvHnz5kmS2bNnJ0nmzJmTq666Ktdee22SpF69evn+97+fk046qeb1Vp4EBGDdLQ8/7r333gwcODAzZsxIZWVl+vXrl7Zt29Zse+mll3LJJZfk29/+dnr37l0z3bfJJpukT58+GTlyZF577bUMGjQo559/vqAa4BNY/v3sgw8+mDfffDMn197EVAAAIABJREFUn3xy6tWrlySZPn16Xn311TRs2DA77bTTKvvfc889+dWvfpUpU6YkSQ499NAMGDAgm2yySQHvAoCiCKoBPoF58+alUaNGqayszIsvvpiddtopFRUVqaqqysKFC5Mk7733Xm666aZcffXVmTlzZpLk6KOPzve+972aMHvhwoWprKxMRUVFpk2bpoMP4COs6WaHTz75ZAYPHpwZM2bkoIMOyn//93+nY8eOqa6uTv369XPQQQflzDPPzMsvv5ybb74522+/fVq0aJHq6upUVlZm++23z5e//OW89tprGTp0aI499thsu+22bqwI8AlceOGFufXWW3PAAQekXr16NQMZzZo1y+zZs7NgwYKa8Pr555/PZZddlpEjRyZJdthhh5x33nnZeeedkySLFi1KZWWlDw4B6gjfeQN8As2aNcv8+fNTXV2d6urqJMumohs0aJDu3bsnSYYOHZqBAwdm5syZ2W233XLnnXfmpz/9aZo3b57q6uosWbIk9evXT3l5ed54441cdtlleeKJJ4p8WwAla3kP9YeD43fffTcDBw7MtGnTcu655+biiy/OFltskfLy8tSvXz+jR4/OT37yk0yaNCnV1dV57rnncscddyRJzb0DmjZtmr322is9e/ZMkgwcODBJhNQAH8PKdR1JMmbMmMydOzcVFRVZunRp5s6dm2222SYVFRW5//7788Mf/jDHHXdcRo4cmebNm2fgwIG54447svPOO2fp0qVZtGhR6tWrl7KysppJ6+VfA4AvJt99A3XSzJkzM3369DVuW5ebaO22227ZbLPNMnv27Lz22mtJVtwkpm/fvmnRokXmz5+fDTfcMBdffHFuvvnmdO3aNUuWLKm5seLyyZDx48fn4osvzl133ZUXX3zRN+AAH7JyD/W7776bCy64oObmiB988EG23HLLHHvssenXr1822GCDJMuuavnRj36Uo48+Os8++2w23njjdOnSJfPnz8/dd9+dcePGJUnNh42dO3fOQQcdlMaNG+eZZ57J3/72tyRurAiwrpZ/uNe4ceM0btw4SfL6668nWVbT1LJly2y00UZZvHhx7rzzztx5551J/n/27js+qjpd/PhnWiaTXklPSEgPSSih9y4oVRQEG8girC4IeFHWsqy6iAvCurp6d1ddRcHlokjvRURIIZQkJCSE9EwyhJBGSCBtfn/kN0cCqHv3ugTJ8/4HyJk5c+a8eH358pynwK9+9Su+/fZbJk+eDLSuyyqVSsm63rFjB/PmzaO0tBS1Wn3LoEYhhBD3DglUCyE6nE2bNjFgwABWrlx52+P/Sq/o2tpawsPDAThz5oxSPg7g7u7Oww8/DLQGVzw9PZV2IDeeX6VSUVpayvvvv09SUhI9e/ZkypQpksEnhBD/n+XBneXB3tatWxk3bhxffPEFa9euBcDHx4fnn3+eZcuW4ejoCMC2bdsYP348X375JQBz587lu+++45lnnsHFxYXCwkI+//xzoDWr2lLh0rdvX0aOHAl8n1Ut8wOE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\n", | |
"text/plain": [ | |
"<Figure size 864x576 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"image/png": { | |
"width": 725, | |
"height": 516 | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "wx0U7oNsnZ3A" | |
}, | |
"source": [ | |
"This confirms that our model is having difficulty classifying neutral reviews. It mistakes those for negative and positive at a roughly equal frequency.\n", | |
"\n", | |
"That's a good overview of the performance of our model. But let's have a look at an example from our test data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "iANBiY3sLo-K" | |
}, | |
"source": [ | |
"idx = 2\n", | |
"\n", | |
"review_text = y_review_texts[idx]\n", | |
"true_sentiment = y_test[idx]\n", | |
"pred_df = pd.DataFrame({\n", | |
" 'class_names': class_names,\n", | |
" 'values': y_pred_probs[idx]\n", | |
"})" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "-8D0rb1yfnv4", | |
"outputId": "3c2aa437-9c0d-4421-adf6-9d12e87f4a83", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 187 | |
} | |
}, | |
"source": [ | |
"print(\"\\n\".join(wrap(review_text)))\n", | |
"print()\n", | |
"print(f'True sentiment: {class_names[true_sentiment]}')" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"I used to use Habitica, and I must say this is a great step up. I'd\n", | |
"like to see more social features, such as sharing tasks - only one\n", | |
"person has to perform said task for it to be checked off, but only\n", | |
"giving that person the experience and gold. Otherwise, the price for\n", | |
"subscription is too steep, thus resulting in a sub-perfect score. I\n", | |
"could easily justify $0.99/month or eternal subscription for $15. If\n", | |
"that price could be met, as well as fine tuning, this would be easily\n", | |
"worth 5 stars.\n", | |
"\n", | |
"True sentiment: neutral\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "f7hj_IZFnn2X" | |
}, | |
"source": [ | |
"Now we can look at the confidence of each sentiment of our model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "qj4d8lZyMkhf", | |
"outputId": "3e1e4f5d-3ae0-41bd-8ddc-348e85c13e98", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 506 | |
} | |
}, | |
"source": [ | |
"sns.barplot(x='values', y='class_names', data=pred_df, orient='h')\n", | |
"plt.ylabel('sentiment')\n", | |
"plt.xlabel('probability')\n", | |
"plt.xlim([0, 1]);" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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dy4AAAAAAABFdss7F6666qrce++9OeqoozJp0qQsWrQoP/vZzzJnzpysXLkye++9d4499tiMGTMmn/3sZ7d5noaGhkyePDmPP/54XnnllaxduzY9evTIEUcckVGjRuXQQw/d7hyLFi3KLbfckrlz56ahoSE9e/bMsGHDMnr06PTt2zd1dXVJkuuvvz5/+Zd/udmx69aty6xZszJ9+vTMnz8/y5Yty4YNG9K9e/cMGDAgZ5xxRk499dS0a7d5H5o6dWrGjRvX8v2cOXNartNs5MiRmTBhQpIPFnQ+99xzkySPPfZYPvOZzyRJJk+enPHjx6ddu3b57//+7/Tu3Xub73Pu3Lk555xzkiS33XZbjj322C32mTVrVn71q1/l6aefzltvvZXa2tr0798/X/3qV3POOeekc+fO2/1ZAgAAAACw69gt48KHPfzwwxk7dmzWr1/f8tobb7yRe++9N9OnT8+kSZO2+OV7ksyePTuXXnppVq1atdnrK1asyEMPPZSHHnooY8aMyaWXXrrV695///0ZN25cNm7c2PLa8uXLc9ddd+U///M/c+utt2537n/5l3/JHXfcscXrb731VmbOnJmZM2fmgQceyE9+8pPU1tZu91wfxymnnJLrr78+GzZsyAMPPJALLrhgm/s+8MADSZKePXtm6NChm21bt25drr766jz44IObvb5+/fo8//zzef755/PLX/4yP/vZz9K/f/9Wfx8AAAAAALS+3fqxSEuWLMnYsWPzpS99KbfddltmzZqVGTNm5Oqrr05tbW0aGhpy7bXXbnHcggULMnr06KxatSoDBgzID3/4wzz++OOZM2dO7rnnnpa7DG6++eZMmTJli+MXLVrUEhZ69+6dG264IU888USeeOKJ3HDDDamtrc1ll1223dm7deuWr33ta/nRj36Ue+65JzNnzsyTTz6ZKVOm5Pzzz0+nTp0yY8aM/OhHP9rsuDPOOCNPP/10Tj/99CTJ4Ycfnqeffnqzf+PHj//In93ee++d4447LskHoWRb1q9fn0ceeSRJctppp21xJ8U//uM/5sEHH0yHDh1y/vnn55577slTTz2VGTNm5Hvf+17233//LF26NBdddFHee++9j5wLAAAAAIC2t1vfubBixYocd9xxmThxYtq3/8Nb/cY3vpHGxsZMmDAh8+fPz0svvZQDDzywZfu4ceOyfv36DBkyJJMmTdrszoDu3bvn+uuvT8+ePXPLLbfkxhtvzOmnn55OnTq17PP9738/GzduTNeuXTN58uT069evZduIESMyZMiQnHnmmdud/dvf/vZWX+/Zs2cGDx6coUOHZvTo0bnrrrsyZsyYdO3aNUnSvn37ln9JUlNTky5duhT81P5gxIgRmT59eurr6/Piiy/m4IMP3mKfmTNnpqGhoWX/D/uv//qvPProo6lUKvnxj3+cv/iLv9hs+5lnnpljjjkmI0eOzMsvv5y77ror3/zmNz/WrAAAAAAA7Dy79Z0LSXLNNddsFhaajRw5suXr5557ruXr2bNnp76+Pkly3XXXbfORQ2PGjEnnzp2zcuXKPPnkky2vv/HGG/mf//mfJMmoUaM2CwvNPve5z2XUqFEf7w39f8OGDUuPHj3y3nvvZf78+Z/oXNsyfPjwdOvWLcm2715ofv0LX/hCDjnkkM223XnnnUmSk08+eYuw0Gy//fbL17/+9SR/eLwSAAAAAAC7tt06LvTr1y8HHHDAVrfttdde6dGjR5IP1jFoNmvWrCRJnz59st9++2Xt2rVb/bdp06aWcz///PMtxz/zzDNpampK8sEv57dlW79s/7CVK1fm3/7t3/I3f/M3OeaYYzJw4MDU1dW1/Fu5cmWSZPHixR95ro+jtrY2J510UpLkwQcfbHlfzVavXp3HH388yQePY/qw999/P//7v/+bJDn66KO3+XNcu3Ztyx0R9fX1m62NAQAAAADArmm3fixSr169trt9jz32SJL8/ve/b3nt5ZdfTpK8+uqrOeyww3boOs2/5E8+WLS52ec///ltHrO9bUny29/+NhdffPEWC0pvzerVq3dgyo/njDPOyJQpU/Laa69lzpw5Ofroo1u2PfLII1m/fn0qlUrLGg/Nli5dmg0bNiRJrr322q2ubfHHGhsb09DQkJ49e7bumwAAAAAAoFXt1nGhpqZmh/b78F/kf5xf1H/4r+0/vChxc7zYms6dO29z2+rVq3PJJZdk1apV2WeffXLeeeflqKOOyv7775/OnTunUqkkSU499dS89tpr2bRpU/HMO+rII49M3759s3z58tx///2bxYXmxxgdeeSR2X///bd4Dx/HunXrPv6wAAAAAADsFLt1XPg4mn/pP3jw4EyZMuVjH5988Gig5oWW/9iHI8Qfe+SRR/LOO++kXbt2ufPOO3PQQQdtdb81a9YUz1eqUqnktNNOyy233JJHH3001157bWpra/P6669n7ty5SbZ8JFKSzRaR/ulPf5o/+7M/q/qsAAAAAADsHLv1mgsfR/MCzEuXLt1ijYEd0adPn5avmx+xtDXb29a8oHRdXd02w8Jrr71W1cchfdiIESOSbL7GwoMPPpjGxsZ07NixZV2GD+vbt2/atfvgf6+lS5fulDkBAAAAANg5xIU/cuyxxyZJ3nnnncyePbv4+CFDhrQ8tmj69Onb3O+xxx7b5rbmxyxt73FHzY8k2pb27dt/5Dl21IEHHpiBAwcmSe6///7N/nv88cenW7duWxzTrVu3DB48OEny8MMPf+IZAAAAAADYdYgLf+QrX/lKDj744CTJd7/73bz11lvb3X/ZsmWbrbnQq1evfPnLX06STJo0KcuWLdvimKVLl2bSpEnbPOdnPvOZJB/c3bBkyZIttr/00kuZOHHidufaa6+9kiRvvPHGdvfbUc2PPpoxY0bmzp3bcndF810NW3PeeeclSebNm5fbb799u+fftGnTVt8rAAAAAAC7HnHhj1QqlUyYMCGdOnXK4sWLM2LEiNx666158cUX09DQkLfffjsvvPBCpkyZkosuuignnnjiFmsfXHHFFampqcnq1atzzjnn5IEHHsibb76ZN998M/fff3/OOeec9OjRY5sznHjiiWnXrl02bNiQb33rW3nsscfy5ptv5tVXX82///u/5+tf/3r22GOPloCwNc13GixdujSTJ0/O22+/nY0bN2bjxo1pbGws/rmcdtppqampyYYNGzJ27NgkHwSMYcOGbfOYk046KaeeemqSZMKECbn44oszY8aMrFixIu+++26WL1+emTNn5vvf/35OOOGE3HHHHcVzAQAAAACw81nQeSsGDhyY22+/PZdddllWrFiRG264ITfccMNW962pqUlNTc1mrw0YMCDXXXddrr766rz22mu54oorNtvevXv33HTTTTnrrLNazvFh/fv3z2WXXZYbb7wxixcvzpgxYzbb3q1bt9x0000ZO3ZsVq1atdW5/vzP/zz9+vXL0qVLM378+IwfP75l28iRIzNhwoQd+2H8f/vuu2++/OUv54knnsjy5cuTJCeffHI6dOiw3eMmTJiQrl275u677860adMybdq0be77UecCAAAAAGDXIC5sw2GHHZZHH30099xzT6ZPn576+vo0NDSkpqYm++67b77whS9k6NChOemkk9K9e/ctjj/zzDNz8MEH55ZbbsncuXPz7rvvpmfPnvnKV76Sb33rW9l7771b9u3SpcsWx1944YU58MADc8cdd2TBggXZuHFjevfunWOPPTbf/OY3Wxae3pZOnTpl8uTJufnmmzNr1qy8/vrrWbdu3Sf6mYwYMSJPPPFEy/fNj0rantra2owfPz5nn3127r777vz2t79tmaVr167p169fhgwZkuOPP77lcVIAAAAAAOzaKk1NTU1tPcSfooULF2bkyJFJknvuuSeDBg1q44l2T/X19VmzZk26du2aurq6th4H2IXNmzcvSXL44Ye38STArs7nBbAjfFYAO8rnBbCjmj8vdpXfdVpzoY1Mnz49yQd/2d+8gDQAAAAAAHwaiAtVsq21EJJk8eLFuf3225Mkw4cPT21t7c4aCwAAAAAAPjFrLlTJlVdemS5duuTUU0/NwIED06VLl7z55pt54oknMnHixKxZsyYdOnTYYrFmAAAAAADY1YkLVbJp06Y8/PDDefjhh7e6vba2Nt/73vd2iWdjAQAAAABACXGhSr797W/n4IMPzty5c7NixYq88847qa2tTZ8+fTJ06NCce+656devX1uPCQAAAAAAxcSFKhkyZEiGDBnS1mMAAAAAAECrs6AzAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACjSvq0HAIBdweGHH97WIwCfEj4vgB3hswLYUT4vgE8rdy4AAAAAAABF3LnAn4Tfv/tUFs86qa3HAAAAAADYqv5DX27rEYq4cwEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFGlfjZO++uqrSZLevXunpqZmh47ZtGlTVqxYkSTp06dPNcYCAAAAAABaQVXiwvDhw9OuXbvcf//9Oeigg3bomCVLluSUU05Ju3btsnDhwmqMBQAAAAAAtIKqPRapqalppx4HAAAAAADsHLvcmguVSqWtRwAAAAAAALZjl4kLDQ0NSZJOnTq18SQAAAAAAMD27DJx4b777kuS9O3bt40nAQAAAAAAtqdVFnQ+99xzt/r6uHHjsscee2z32PXr1+eVV17JO++8k0qlkmOOOaY1RgIAAAAAAKqkVeLCnDlztlgroampKc8///wOHd+8iPO+++6bCy64oDVGAgAAAAAAqqRV4kKfPn02+/7VV19NpVJJz5490779ti9RqVTSqVOn9OrVK4cffnj++q//Ovvss09rjAQAAAAAAFRJq8SF6dOnb/b9F7/4xSTJbbfdloMOOqg1LgEAAAAAAOwiWiUu/LEjjzwyST5yvQUAAAAAAODTpypxYdKkSdU4LQAAAAAAsAto19YDAAAAAAAAny7iAgAAAAAAUKQqj0VqtmTJkvziF7/InDlzsmzZsqxZsyaNjY3bPaZSqWThwoXVHAsAAAAAAPgEqhYX7r777vzzP/9zNmzYkCRpamqq1qUAAAAAAICdqCpxYe7cufnud7+b5IOosO+++2bQoEHp3r172rXzJCYAAAAAAPg0q0pcuO2229LU1JTa2tqMHz8+I0aMSKVSqcalAAAAAACAnawqceGZZ55JpVLJBRdckDPPPLMalwAAAAAAANpIVZ5RtHr16iTJsGHDqnF6AAAAAACgDVUlLvTs2TNJUlNTU43TAwAAAAAAbagqceHII49Mkrz44ovVOD0AAAAAANCGqhIX/vZv/zY1NTW54447smHDhmpcAgAAAAAAaCNViQuHHHJIvvOd7+R3v/tdLr744qxcubIalwEAAAAAANpA+2qc9Cc/+UmSZPDgwZk5c2aGDx+eoUOH5vOf/3z22GOPjzz+kksuqcZYAAAAAABAK6g0NTU1tfZJv/jFL6ZSqbR839TUtNn3H+WFF15o7ZH4E1VfX581a9akfeOCdN94bVuPAwAAAACwVf2Hvrzd7fPmzUuSdO3aNXV1dTtjpO2qyp0LyQdBYXvfb0tJhAAAAAAAAHa+qsSFxx57rBqnBQAAAAAAdgFViQt9+/atxmkBAAAAAIBdQLu2HgAAAAAAAPh0ERcAAAAAAIAiVVvQudl7772XRx99NE8//XTefPPNvP/++7nuuus2e3TSypUrs3bt2tTW1qZ3797VHgkAAAAAAPgEqhoX7rvvvlx//fV59913kyRNTU2pVCp5//33N9tv+vTp+c53vpOOHTvmySefTNeuXas5FgAAAAAA8AlU7bFIkydPzrhx49LQ0JCmpqZ07959m/uOGDEie+65Z9atW5dp06ZVayQAAAAAAKAVVCUuvPLKK7n++uuTJIcddlgefPDBzJ49e5v7d+jQISeccEKamprym9/8phojAQAAAAAAraQqceHOO+/Mxo0b89nPfja33XZbDjrooI885tBDD02S1NfXV2MkAAAAAACglVQlLjz11FOpVCo599xz06lTpx06pn///kmS1157rRojAQAAAAAAraQqceHVV19NkgwaNGiHj2lexPm9996rxkgAAAAAAEArqUpc2LhxY5KkUqns8DFr165Nkuyxxx7VGAkAAAAAAGglVYkL++yzT5Jk2bJlO3zMokWLkiS9evWqxkgAAAAAAEArqUpcaH4c0qxZs3b4mKlTp6ZSqbQs7AwAAAAAAOyaqhIXTjrppDQ1NeW+++7LkiVLPnL/iRMnZsGCBUmSU089tRojAQAAAAAAraQqceHkk0/OgAEDsmHDhpx33nmZOXPmZtub12JYuHBh/uEf/iE//vGPU6lUctRRR2Xo0KHVGAkAAAAAAGgllaampqZqnHj58uU5++yz89Zbb6VSqaRbt2559913U6lU0rt376xevTrvvfdekqSpqSl9+vTJ3XffnZ49e1ZjHP5E1dfXZ82aNWnfuCDdN6rHFLIAACAASURBVF7b1uMAAAAAAGxV/6Evb3f7vHnzkiRdu3ZNXV3dzhhpu6py50KS9O3bN1OnTs2xxx6bpqamvPvuuy3bXn/99axduzZNTU1pamrKMcccIywAAAAAAMCnRPtqnrxXr1659dZb8+yzz+bXv/51nn322axcuTIbN25Mjx49MnDgwJx44ok54ogjqjkGAAAAAADQiqoaF5oNHjw4gwcP3hmXAgAAAAAAqqxqj0UCAAAAAAB2T+ICAAAAAABQRFwAAAAAAACKVHXNhf/7v//LL3/5y8yZMyfLly/PmjVr0tjYuN1jKpVKFi5cWM2xAAAAAACAT6BqceHnP/95fvCDH2TTpk1JkqampmpdCgAAAAAA2ImqEhemT5+eCRMmtHzfp0+f1NXVZc8990y7dp7EBAAAAAAAn2ZViQu33357kqRr16654YYbMnz48GpcBgAAAAAAaANVuY3ghRdeSKVSySWXXCIsAAAAAADAbqYqcaF5fYUjjzyyGqcHAAAAAADaUFXiQt++fZMkv//976txegAAAAAAoA1VJS589atfTZI89dRT1Tg9AAAAAADQhqoSF84555zsv//++fnPf57FixdX4xIAAAAAAEAbqUpc6N69eyZOnJguXbrk7LPPzl133ZWGhoZqXAoAAAAAANjJKk3Nqy9XwfLly3PWWWflnXfeSaVSyd57751OnTptf6BKJdOmTavWSOxipk6dmnHjxiVJ6uvrW/389fX1WbNmTdo3Lkj3jde2+vkBAAAAAFpD/6Evb3f7vHnzkiRdu3ZNXV3dzhhpu9pX68TTpk3L1VdfndWrVydJGhsb8/bbb3/kcZVKpVoj/ckbNWpU5syZk5EjR2bChAltPQ4AAAAAAJ9SVYkLzz77bC677LJs2rQpTU1N6dixYz73uc9lzz33FA8AAAAAAOBTripxYeLEidm4cWM6dOiQK6+8MmedddZHPg4JAAAAAAD4dKhKXHjuuedSqVRy4YUXZtSoUdW4BAAAAAAA0EbaVeOkzessDBs2rBqnbxNXXXVV6urqWmLJokWLcsUVV2TYsGEZNGhQjjvuuFx11VV55ZVXtnuehoaG3HzzzTnrrLNy9NFHZ9CgQRk2bFguv/zyzJ8/f5vHjRo1KnV1dbnqqqu2e/66urrU1dVl6tSpLa/ddNNNqaury5w5c5Ik9957b8t+zf9uuummLfYfPnx4kuR3v/tdrrnmmgwfPjyDBg3KEUcc0bJvU1NTnnnmmfzwhz/M1772tRx11FEZOHBgjjrqqPzVX/1VfvrTn2bNmjXbnRkAAAAAgE+Xqty50Lt374/8Jfun2cMPP5yxY8dm/fr1La+98cYbuffeezN9+vRMmjRpq6t1z549O5deemlWrVq12esrVqzIQw89lIceeihjxozJpZdeWvX3sKOmTZuWyy+/POvWrWt57cOPuHrsscdy8cUXb3FcQ0ND5s+fn/nz5+dXv/pVbr311vTr12+nzAwAAAAAQHVVJS4cd9xxmTx5cubPn5/BgwdX4xJtZsmSJRk7dmy+9KUv5e/+7u9yyCGHZP369Xn00Ufzgx/8IA0NDbn22mvzi1/8YrPjFixYkNGjR2f9+vUZMGBARo8enSFDhqRLly5ZunRpJk+enKlTp+bmm29Onz59ctZZZ7XazBdeeGHOP//8jB49OvPmzcvpp5+ef/qnf9psnw4dOmxxXENDQ6688sp89rOfzd///d/n0EMPTWNjY5577rmWfdq3b5/hw4dn+PDhOfDAA9OrV6906dIlb7zxRmbNmpXbb789S5YsyeWXX54pU6a02nsCAAAAAKDtVCUunH/++fmP//iP3HrrrTn99NPTo0ePalymTaxYsSLHHXdcJk6cmPbt//Dj+8Y3vpHGxsZMmDAh8+fPz0svvZQDDzywZfu4ceOyfv36DBkyJJMmTUptbW3Ltu7du+f6669Pz549c8stt+TGG2/M6aef3mqLYNfW1qa2tjY1NTVJPggCXbp0+cjj1qxZk/79++euu+5Kt27dWl7v3bt3y9fHH398jj/++C2O3XvvvVNXV5dTTjklp512Wp599tnMmjUrQ4cO/eRvCAAAAACANlWVNRf69OmTf/3Xf826dety9tlnZ8aMGdW4TJu55pprNgsLzUaOHNny9Yf/un/27Nmpr69Pklx33XWbhYUPGzNmTDp37pyVK1fmySefbOWpP55LL710s7BQqlevXi1B4Te/+U1rjQUAAAAAQBuqyp0L5557bpJkr732ypIlS3LRRRelW7du6d+//0f+NX6lUskdd9xRjbFaRb9+/XLAAQdsddtee+2VHj16ZOXKlXnrrbdaXp81a1aSD6LLfvvtl7Vr127z/AcccEAWLFiQ559/PieccELrDl+oUqns0KLcGzZsyH333Zdf//rXWbRoUVatWrXZGg3NFi9eXIUpAeD/sXfv0VaXBf7HP5sDcl2iiEgoaoKSkFjeEi8rTcZx1DCd1eRA5Cq0MdNRJ/PSOFNNmmaSMzWaYZmKJpnieBlbthQ00rxEghMKonIAL8NFlIsHoXPYvz9c5wzIpfPg2Rzw93qtxfKc73c/3/1sXeu7XPvN830AAACALa0mceGpp55KpVJJ8u4X1NVqNcuWLVvnb/NvSLVabRm3terTp88mz3ft2jVJ8s4777QcmzNnTpLktddeywEHHNCq91myZMlmzrDt7LjjjunRo8cmX7No0aJ86UtfygsvvPAXr7d8+fK2mhoAAAAAAO2oJnGhX79+tbjsVqF534K/pFqttvy8OV+qr169unhMW2sOJZty4YUX5oUXXkinTp0yatSoHHXUUdl9993To0ePlkdH/eu//mvuv//+NDU11XrKAAAAAABsATWJC5MmTarFZbdZ3bp1S5IMHTo0v/rVr2r2Po2NjTW79obMmzevZR+FSy+9NKeeeuoGX7dy5cotOS0AAAAAAGqsJhs6s67+/fsnSebPn7/OioYSnTt3TrLu45bea+HChZt17c01c+bMlp9POOGEjb6uNY9MAgAAAABg2yEubAGHH354kuTNN9/ME088sVnX2HnnnZP83/4NGzJlypRNXqP5MUVt9XiitR/dtLFrTps2LfPnz2+T9wMAAAAAYOsgLmwBRxxxRPbZZ58kybe+9a0sXrx4k69/5ZVX1ttzYf/990/y7mqBtVcMNFu8eHGuvfbaTV53hx12SNJ2Kxx22223lp8nT5683vm333473/72t9vkvQAAAAAA2HqIC1tApVLJlVdemS5duqS+vj4nnXRSfvazn+WFF17I0qVL88Ybb+T555/Pr371q5x55pk59thjs2LFinWucdxxx6V79+5JkrPOOisPP/xw3nzzzSxYsCD33HNP/u7v/q7l0UkbM2TIkCTJ1KlT8+tf/zpvvfVWGhsb09jYmDVr1hR/rv32268lMFx22WW57bbbMn/+/Lzxxht5+OGHc+qpp2bmzJn58Ic/XHxtAAAAAAC2Xu9rQ+cvfOELSd798vzmm29e7/jmeO+1PiiGDBmSn//85znvvPOyYMGCXHXVVbnqqqs2+Nq6urrU1dWtc2yHHXbIt771rVx00UV59dVXc9ZZZ61zfpdddsm4ceM2uffBSSedlHHjxmXp0qU577zz1jl39tln55xzzin6THV1dbn88svz5S9/OStWrMi//du/rXO+Q4cOueiiizJz5sxNPs4JAAAAAIBty/uKC0899VQqlUqrj/8l1Wp1s8ZtKw444IA8+OCDueuuuzJp0qTMmjUrS5cuTV1dXXr37p299947w4YNy3HHHZeePXuuN37EiBH50Ic+lHHjxuXZZ59NQ0ND+vbtm+HDh+eMM85Ir169Nvn+O++8cyZMmJDrr78+Tz/9dBYtWpQ///nP7+szHXroobnjjjty3XXX5amnnsqKFSuy44475uMf/3hGjx6dgw8+OBdffPH7eg8AAAAAALYulWq1Wt3cwZ/61Kdafp40adIGj2+Ota8F78esWbOyYsWKdFwzIz0bv9ne0wEAAAAA2KA9h2366S9Tp05NkvTo0SODBg3aElPapPe1cmFjEUAcAAAAAACADy4bOgMAAAAAAEXEBQAAAAAAoMj7eizSxlxyySWpVCo577zz0qdPn1aNWbRoUX7wgx+kUqnku9/9bi2mBQAAAAAAtIGarFy4++67c/fdd2fZsmWtHrN8+fKWcQAAAAAAwNbLY5EAAAAAAIAiW01caGxsTJJ07FiTJzUBAAAAAABtZKuJCy+++GKSpGfPnu08EwAAAAAAYFPaZJnA008/vcHj//M//5M333xzk2NXr16d+vr6/PSnP02lUslHPvKRtpgSAAAAAABQI20SF0aPHp1KpbLOsWq1mm984xutvka1Wk2lUskpp5zSFlMCAAAAAABqpM02OKhWq606tjFdu3bNmDFjcvzxx7fVlAAAAAAAgBpok7hwxRVXrPP7JZdckkqlknPPPTe77LLLRsdV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LgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXtmGjR4/OoEGDcvHFF7+v6wwaNCiDBg3KxIkT22hmAAAAAAB8kIkLH1ATJ05siQYAAAAAANCWxAUAAAAAAKBIx/aeAJtv/PjxbXKdWbNmtcl1AAAAAAD4/4OVCwAAAAAAQBErF5JcfPHFufvuu3PIIYdk/Pjxefrpp/Pzn/8806dPz7Jly9K3b98MHz48//AP/5Addthho9eZNWtWbrnlljz55JNZuHBhOnbsmP79++eoo47Kaaedll69em107B//+Mf84he/yDPPPJNFixalUqmkV69e6dOnTw4++OAce+yxGTp06DpjRo8enaeeeionn3xyrrzyyiTJK6+8kmOOOWad171334Vdd901kyZNWu/8FVdckVNOOSVJ8uKLL+aEE05IkowdOzYnnnjiRue+cuXKHHbYYWloaMiZZ56Z888/f73XzJkzJ7feemt+//vf5/XXX8+aNWvSt2/fHHnkkfnSl76Ufv36bfT6AAAAAABsXcSF95gwYUK+/e1vZ82aNS3H5s2blxtvvDH3339/br755uy1117rjfvZz36Wq6++ep1xq1atysyZMzNz5szcfvvtufbaa3PwwQdvcOxVV1213vHXXnstr732WqZNm5bZs2fnJz/5SRt9yr9s4MCBGTJkSGbMmJF77713k3Hh4YcfTkNDQ5JkxIgR652/8cYbM3bs2DQ2Nq5zvL6+PvX19bnzzjtzzTXX5Oijj27bDwEAAAAAQE2IC2uZO3duLrvssgwZMiTnn39+9t133yxfvjz3339/fvzjH2fhwoX5yle+knvvvTedO3duGXffffe1xIF99tkn559/fvbff/+sWrUqkydPzn/8x39k6dKl+fKXv5x77703/fv3bxk7Z86cjB07NkkybNiwjBkzJgMGDEiPHj2ybNmyvPTSS5kyZUqWL1/eqs+w66675o9//GPuu+++fPOb30zy7qqItXXo0LqnYY0YMSIzZszIY489liVLlmx05cW9996bJBkyZEgGDBiwzrnbbrst3/ve95Ikxx57bEaOHJm99947HTp0yHPPPZf//M//zDPPPJNzzz03d955Z/bZZ59WzQ0AAAAAgPZjz4W1LFiwIAMGDMj48eNz+OGHp1evXtljjz3y1a9+Nd/97neTvPu37W+77baWMatXr84VV1yRJNlrr71y++2351Of+lR22mmn9OvXL6NGjcpNN92U7bbbLg0NDS1ftDf73e9+l6ampuy0004ZN25cjjzyyPTr1y/bb799dtttt3zyk5/MpZdeut64jalUKunevXu22267lmPdu3df50/Xrl1bda0TTjghdXV1aWxszH//939v8DVLlizJY489YwdIgAAAIABJREFUlmT9VQsLFy5seVzTF7/4xfzoRz/KsGHD0rt37/Tq1StHHHFExo8fn4MPPjirVq1qiSwAAAAAAGzdxIX3+NrXvrbBL99HjBjRsufBxIkTW45PmjQpb7zxRpLkggsuSI8ePdYbO3jw4Hzuc59ref2SJUtazjU1NSVJevXqtU4Q2BrsvPPOGTZsWJJ3V2dsyAMPPJDGxsbU1dWt9+ikCRMmZPXq1enbt28uuOCCDY7v1KlTzj333CTJo48+mmXLlrXhJwAAAAAAoBbEhbV069Ythx9++EbP/9Vf/VWSdzc7bv4SfOrUqUmSrl275pOf/ORGxx533HFJ3o0Jaz+maN99902SzJ49O1dffXXefPPN9/ch2thJJ52UJJk+fXrmzp273vnm6NC8ImFtjz/+eJK0rEx4++23N/in+VFK1Wo1M2bMqOXHAQAAAACgDdhzYS177LFH6urqNnq+eSPnarWa1157Ldtvv31ee+21JMmee+6Zjh03/q9z7733bvm5eUySfOITn8jw4cPz0EMP5YYbbsiNN96Yj370oznwwANz0EEHZdiwYenWrdv7/Wibbfjw4enWrVsaGhpy77335pxzzmk5N2/evEybNi3JhjdynjNnTpJ3A8TGVj6819qrOgAAAAAA2DpZubCWv/Ql/trn33777XX++ZfGdu/efb2xzf793/89F154Yfr375+mpqZMnz49N954Y84666wcdthh+c53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FBEXAAAAAACAIuICAAAAAABQRFwAAAAAAACKiAsAAAAAAEARcQEAAAAAACgiLgAAAAAAAEXEBQAAAAAAoIi4AAAAAAAAFBEXAAAAAACAIuICAAAAAABQpGN7TwBaY/LkyZkwYUJmzJiRpUuXpnfv3hk2bFhOO+20DBo06H1ff9asWbn55pvz+9//PosXL07Pnj0zZMiQnHrqqTn66KPb4BMAW0It7hXVajVTp07NlClTMnXq1Lz88stZtmxZOnfunN122y2HHXZYRo4cmf79+7fxpwFqqdb/b7G2arWaL3zhC3nqqaeSJLvuumsmTZrUpu8B1M6WuF/MmTMnd9xxR6ZMmZLXX389TU1N6d27dwYOHJhDDz00p556arp06dIm7wXUTi3vF8uXL8/tt9+eyZMn5+WXX86KFSvSpUuX7L777hn2/9q796io6/yP4y/kolAq4AXNy0q6ouJlXTkUhWVAW6ZrYnkhM8nLWh7dMs1LiQWWtW1ua5qnXXXXA6IYBbiptCpeSFMpS4UQWMlU+CV5wZRLgjC/PzwzB2RABpgZsufjHI5f5/P5fj6f75zjm/Hzns/nExCgiRMnqkuXLk30JACswWAw6LvvvtPx48dNP9nZ2SovL5ckpaSkqGvXrk3Sl63mOh0MBoOhyVoDrOC1115TXFyc2TIXFxctXbpUo0ePbnD7iYmJioiIMP1DvllYWJhef/31BrcPwDasFSuee+457dmzp846rVq1UkREhJ588kmL2wdge9b+bHGz+Ph4LV682PR3kgvAL4ct4sWaNWv0/vvvq6ysrNY6TTnZAMA6rBkvMjMzNWPGDP3444+11nF1ddWyZcv02GOPNagPANaXl5en4ODgWsub6ve9Lec62RYJzdqaNWtMv5xDQkKUkJCggwcPat26derdu7fKysr06quv6siRIw1q/8iRI1q8eLHKy8vVu3dvrVu3TgcPHlRCQoJCQkIkSZs2bdKaNWua7JkAND1rxori4mJJkp+fn5YsWaL//Oc/OnTokFJSUhQZGSkPDw/9/PPPWrx4sfbu3duUjwXACqz92eJmFy5c0F//+lc5OTmpU6dOTdImANuwRbz44IMP9O6776qsrEzBwcFas2aNUlNTdejQISUmJurll19W7969m+qRAFiJNeNFUVGRKbHg7OysKVOmKCkpSQcPHtSnn36qF154QW5u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\n", | |
"text/plain": [ | |
"<Figure size 864x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"image/png": { | |
"width": 779, | |
"height": 489 | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "7WL5pDmvFyaU" | |
}, | |
"source": [ | |
"### Predicting on Raw Text\n", | |
"\n", | |
"Let's use our model to predict the sentiment of some raw text:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "QEPi7zQRsDhH" | |
}, | |
"source": [ | |
"review_text = \"I love completing my todos! Best app ever!!!\"" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "GaN4RnqMnxYw" | |
}, | |
"source": [ | |
"We have to use the tokenizer to encode the text:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "zA5Or4D2sLc9" | |
}, | |
"source": [ | |
"encoded_review = tokenizer.encode_plus(\n", | |
" review_text,\n", | |
" max_length=MAX_LEN,\n", | |
" add_special_tokens=True,\n", | |
" return_token_type_ids=False,\n", | |
" pad_to_max_length=True,\n", | |
" return_attention_mask=True,\n", | |
" return_tensors='pt',\n", | |
")" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "et8xlDrKpH60" | |
}, | |
"source": [ | |
"Let's get the predictions from our model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Qr_t3rUksumr", | |
"outputId": "4a69d750-c56a-40c1-822a-0b3e7df16b3e", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 51 | |
} | |
}, | |
"source": [ | |
"input_ids = encoded_review['input_ids'].to(device)\n", | |
"attention_mask = encoded_review['attention_mask'].to(device)\n", | |
"\n", | |
"output = model(input_ids, attention_mask)\n", | |
"_, prediction = torch.max(output, dim=1)\n", | |
"\n", | |
"print(f'Review text: {review_text}')\n", | |
"print(f'Sentiment : {class_names[prediction]}')" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Review text: I love completing my todos! Best app ever!!!\n", | |
"Sentiment : positive\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "PVhwzq7bpPRl" | |
}, | |
"source": [ | |
"## Summary\n", | |
"\n", | |
"Nice job! You learned how to use BERT for sentiment analysis. You built a custom classifier using the Hugging Face library and trained it on our app reviews dataset!\n", | |
"\n", | |
"- [Read the tutorial](https://www.curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/)\n", | |
"- [Run the notebook in your browser (Google Colab)](https://colab.research.google.com/drive/1PHv-IRLPCtv7oTcIGbsgZHqrB5LPvB7S)\n", | |
"- [Read the `Getting Things Done with Pytorch` book](https://github.com/curiousily/Getting-Things-Done-with-Pytorch)\n", | |
"\n", | |
"You learned how to:\n", | |
"\n", | |
"- Intuitively understand what BERT is\n", | |
"- Preprocess text data for BERT and build PyTorch Dataset (tokenization, attention masks, and padding)\n", | |
"- Use Transfer Learning to build Sentiment Classifier using the Transformers library by Hugging Face\n", | |
"- Evaluate the model on test data\n", | |
"- Predict sentiment on raw text\n", | |
"\n", | |
"Next, we'll learn how to deploy our trained model behind a REST API and build a simple web app to access it." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Wf39tauBa2V2" | |
}, | |
"source": [ | |
"## References\n", | |
"\n", | |
"- [BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding](https://arxiv.org/abs/1810.04805)\n", | |
"- [L11 Language Models - Alec Radford (OpenAI)](https://www.youtube.com/watch?v=BnpB3GrpsfM)\n", | |
"- [The Illustrated BERT, ELMo, and co.](https://jalammar.github.io/illustrated-bert/)\n", | |
"- [BERT Fine-Tuning Tutorial with PyTorch](https://mccormickml.com/2019/07/22/BERT-fine-tuning/)\n", | |
"- [How to Fine-Tune BERT for Text Classification?](https://arxiv.org/pdf/1905.05583.pdf)\n", | |
"- [Huggingface Transformers](https://huggingface.co/transformers/)\n", | |
"- [BERT Explained: State of the art language model for NLP](https://towardsdatascience.com/bert-explained-state-of-the-art-language-model-for-nlp-f8b21a9b6270)" | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment