├── _config.yml ├── README.md └── news_exploration_using_gensim_and_sklearn.ipynb /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Welcome to GitHub Pages 2 | 3 | You can use the [editor on GitHub](https://github.com/AshishSalunkhe/Topic-Modelling/edit/master/README.md) to maintain and preview the content for your website in Markdown files. 4 | 5 | Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. 6 | 7 | ### Markdown 8 | 9 | Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for 10 | 11 | ```markdown 12 | Syntax highlighted code block 13 | 14 | # Header 1 15 | ## Header 2 16 | ### Header 3 17 | 18 | - Bulleted 19 | - List 20 | 21 | 1. Numbered 22 | 2. List 23 | 24 | **Bold** and _Italic_ and `Code` text 25 | 26 | [Link](url) and ![Image](src) 27 | ``` 28 | 29 | For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/). 30 | 31 | ### Jekyll Themes 32 | 33 | Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/AshishSalunkhe/Topic-Modelling/settings). The name of this theme is saved in the Jekyll `_config.yml` configuration file. 34 | 35 | ### Support or Contact 36 | 37 | Having trouble with Pages? Check out our [documentation](https://help.github.com/categories/github-pages-basics/) or [contact support](https://github.com/contact) and we’ll help you sort it out. 38 | -------------------------------------------------------------------------------- /news_exploration_using_gensim_and_sklearn.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "news-exploration-using-gensim-and-sklearn.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "toc_visible": true, 11 | "include_colab_link": true 12 | }, 13 | "kernelspec": { 14 | "display_name": "Python 3", 15 | "language": "python", 16 | "name": "python3" 17 | } 18 | }, 19 | "cells": [ 20 | { 21 | "cell_type": "markdown", 22 | "metadata": { 23 | "id": "view-in-github", 24 | "colab_type": "text" 25 | }, 26 | "source": [ 27 | "\"Open" 28 | ] 29 | }, 30 | { 31 | "metadata": { 32 | "id": "_9x5AP04Ukn8", 33 | "colab_type": "code", 34 | "outputId": "82df4bbb-e1b9-4b27-c445-8f0a91f4af27", 35 | "colab": { 36 | "base_uri": "https://localhost:8080/", 37 | "height": 359 38 | } 39 | }, 40 | "cell_type": "code", 41 | "source": [ 42 | "import nltk\n", 43 | "nltk.download('punkt')\n", 44 | "nltk.download('wordnet')\n", 45 | "nltk.download('stopwords')\n", 46 | "!pip install -U seaborn\n", 47 | "from seaborn import lineplot" 48 | ], 49 | "execution_count": 0, 50 | "outputs": [ 51 | { 52 | "output_type": "stream", 53 | "text": [ 54 | "[nltk_data] Downloading package punkt to /root/nltk_data...\n", 55 | "[nltk_data] Package punkt is already up-to-date!\n", 56 | "[nltk_data] Downloading package wordnet to /root/nltk_data...\n", 57 | "[nltk_data] Package wordnet is already up-to-date!\n", 58 | "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", 59 | "[nltk_data] Unzipping corpora/stopwords.zip.\n", 60 | "Requirement already up-to-date: seaborn in /usr/local/lib/python3.6/dist-packages (0.9.0)\n", 61 | "Requirement already satisfied, skipping upgrade: numpy>=1.9.3 in /usr/local/lib/python3.6/dist-packages (from seaborn) (1.14.6)\n", 62 | "Requirement already satisfied, skipping upgrade: matplotlib>=1.4.3 in /usr/local/lib/python3.6/dist-packages (from seaborn) (3.0.2)\n", 63 | "Requirement already satisfied, skipping upgrade: pandas>=0.15.2 in /usr/local/lib/python3.6/dist-packages (from seaborn) (0.22.0)\n", 64 | "Requirement already satisfied, skipping upgrade: scipy>=0.14.0 in /usr/local/lib/python3.6/dist-packages (from seaborn) (1.1.0)\n", 65 | "Requirement already satisfied, skipping upgrade: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=1.4.3->seaborn) (2.5.3)\n", 66 | "Requirement already satisfied, skipping upgrade: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=1.4.3->seaborn) (2.3.1)\n", 67 | "Requirement already satisfied, skipping upgrade: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=1.4.3->seaborn) (0.10.0)\n", 68 | "Requirement already satisfied, skipping upgrade: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=1.4.3->seaborn) (1.0.1)\n", 69 | "Requirement already satisfied, skipping upgrade: pytz>=2011k in /usr/local/lib/python3.6/dist-packages (from pandas>=0.15.2->seaborn) (2018.9)\n", 70 | "Requirement already satisfied, skipping upgrade: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.1->matplotlib>=1.4.3->seaborn) (1.11.0)\n", 71 | "Requirement already satisfied, skipping upgrade: setuptools in /usr/local/lib/python3.6/dist-packages (from kiwisolver>=1.0.1->matplotlib>=1.4.3->seaborn) (40.8.0)\n" 72 | ], 73 | "name": "stdout" 74 | } 75 | ] 76 | }, 77 | { 78 | "metadata": { 79 | "trusted": true, 80 | "_uuid": "d66fe46ba267ad1f8130604c2a6840b6df9f1070", 81 | "id": "p5wJDv5y8dHv", 82 | "colab_type": "code", 83 | "outputId": "ec0edee0-7ed3-44cd-d1b3-c101a3793952", 84 | "colab": { 85 | "base_uri": "https://localhost:8080/", 86 | "height": 293 87 | } 88 | }, 89 | "cell_type": "code", 90 | "source": [ 91 | "import pandas as pd\n", 92 | "import seaborn as sns\n", 93 | "import matplotlib.pyplot as plt\n", 94 | "import string\n", 95 | "import multiprocessing\n", 96 | "\n", 97 | "news = pd.read_csv(\"uci-news-aggregator.csv\")\n", 98 | "\n", 99 | "# Convert date\n", 100 | "news['TIMESTAMP'] = pd.to_datetime(news['TIMESTAMP'], unit='ms')\n", 101 | "\n", 102 | "# columns.\n", 103 | "news[[\"TITLE\", \"PUBLISHER\", \"CATEGORY\", \"HOSTNAME\", \"TIMESTAMP\"]].head()" 104 | ], 105 | "execution_count": 0, 106 | "outputs": [ 107 | { 108 | "output_type": "execute_result", 109 | "data": { 110 | "text/html": [ 111 | "
\n", 112 | "\n", 125 | "\n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | "
TITLEPUBLISHERCATEGORYHOSTNAMETIMESTAMP
0Fed official says weak data caused by weather,...Los Angeles Timesbwww.latimes.com2014-03-10 16:52:50.698
1Fed's Charles Plosser sees high bar for change...Livemintbwww.livemint.com2014-03-10 16:52:51.207
2US open: Stocks fall after Fed official hints ...IFA Magazinebwww.ifamagazine.com2014-03-10 16:52:51.550
3Fed risks falling 'behind the curve', Charles ...IFA Magazinebwww.ifamagazine.com2014-03-10 16:52:51.793
4Fed's Plosser: Nasty Weather Has Curbed Job Gr...Moneynewsbwww.moneynews.com2014-03-10 16:52:52.027
\n", 179 | "
" 180 | ], 181 | "text/plain": [ 182 | " TITLE PUBLISHER \\\n", 183 | "0 Fed official says weak data caused by weather,... Los Angeles Times \n", 184 | "1 Fed's Charles Plosser sees high bar for change... Livemint \n", 185 | "2 US open: Stocks fall after Fed official hints ... IFA Magazine \n", 186 | "3 Fed risks falling 'behind the curve', Charles ... IFA Magazine \n", 187 | "4 Fed's Plosser: Nasty Weather Has Curbed Job Gr... Moneynews \n", 188 | "\n", 189 | " CATEGORY HOSTNAME TIMESTAMP \n", 190 | "0 b www.latimes.com 2014-03-10 16:52:50.698 \n", 191 | "1 b www.livemint.com 2014-03-10 16:52:51.207 \n", 192 | "2 b www.ifamagazine.com 2014-03-10 16:52:51.550 \n", 193 | "3 b www.ifamagazine.com 2014-03-10 16:52:51.793 \n", 194 | "4 b www.moneynews.com 2014-03-10 16:52:52.027 " 195 | ] 196 | }, 197 | "metadata": { 198 | "tags": [] 199 | }, 200 | "execution_count": 14 201 | } 202 | ] 203 | }, 204 | { 205 | "metadata": { 206 | "trusted": true, 207 | "_uuid": "820460e59374a4ec89b07805ed41ae129432a9ce", 208 | "id": "YeiIHMnv8dIL", 209 | "colab_type": "code", 210 | "outputId": "dbca10ae-a599-41e6-805c-0c7f9ee3d705", 211 | "colab": { 212 | "base_uri": "https://localhost:8080/", 213 | "height": 35 214 | } 215 | }, 216 | "cell_type": "code", 217 | "source": [ 218 | "def date_printer(date):\n", 219 | " return \"{}/{}/{}\".format(date.day, date.month, date.year)\n", 220 | "\n", 221 | "start, end = news['TIMESTAMP'].min(), news['TIMESTAMP'].max() \n", 222 | "print(\"dataset timeline starts at {} and ends at {}\".format(date_printer(start), date_printer(end)))" 223 | ], 224 | "execution_count": 0, 225 | "outputs": [ 226 | { 227 | "output_type": "stream", 228 | "text": [ 229 | "dataset timeline starts at 10/3/2014 and ends at 30/4/2014\n" 230 | ], 231 | "name": "stdout" 232 | } 233 | ] 234 | }, 235 | { 236 | "metadata": { 237 | "trusted": true, 238 | "_uuid": "ed5abed6435a80cda6ba023624d25096137c7fd0", 239 | "id": "QfHITP4A8dId", 240 | "colab_type": "code", 241 | "outputId": "52d5bb1c-0c2e-45bc-abb9-8e253479b540", 242 | "colab": { 243 | "base_uri": "https://localhost:8080/", 244 | "height": 295 245 | } 246 | }, 247 | "cell_type": "code", 248 | "source": [ 249 | "news['MONTH'] = news['TIMESTAMP'].apply(lambda date: date.month)\n", 250 | "news['DAY'] = news['TIMESTAMP'].apply(lambda date: date.day)\n", 251 | "\n", 252 | "# Some months have 30 and others have 30 days. The first and last months in our dataset and not whole.\n", 253 | "month_days = {\n", 254 | " 3: 21,\n", 255 | " 4: 30,\n", 256 | " 5: 31,\n", 257 | " 6: 30,\n", 258 | " 7: 31,\n", 259 | " 8: 27\n", 260 | "}\n", 261 | "articles_per_day = {}\n", 262 | "for month in month_days:\n", 263 | " n_articles = len(news[news['MONTH'] == month])\n", 264 | " articles_per_day[month] = n_articles / month_days[month]\n", 265 | "\n", 266 | "ax = sns.barplot(x=list(articles_per_day.keys()), y=list(articles_per_day.values()))\n", 267 | "ax.set_title(\"Normalized Counts\")\n", 268 | "ax.set_xlabel(\"Month\")\n", 269 | "ax.set_ylabel(\"Articles Per Day\")\n", 270 | "plt.show()" 271 | ], 272 | "execution_count": 0, 273 | "outputs": [ 274 | { 275 | "output_type": "display_data", 276 | "data": { 277 | "image/png": "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\nlv8PQgCy5RbPtkgAAAAASUVORK5CYII=\n", 278 | "text/plain": [ 279 | "
" 280 | ] 281 | }, 282 | "metadata": { 283 | "tags": [] 284 | } 285 | } 286 | ] 287 | }, 288 | { 289 | "metadata": { 290 | "trusted": true, 291 | "_uuid": "4f0695b9599729b3dea61b26f2f8eab74a20e080", 292 | "id": "48-h_aFY8dIw", 293 | "colab_type": "code", 294 | "outputId": "b9a84d6c-e011-459e-82c7-e327b461d973", 295 | "colab": { 296 | "base_uri": "https://localhost:8080/", 297 | "height": 343 298 | } 299 | }, 300 | "cell_type": "code", 301 | "source": [ 302 | "cat_map = {\n", 303 | " 'b': 'Business',\n", 304 | " 't': 'Science',\n", 305 | " 'e': 'Entertainment',\n", 306 | " 'm': 'Health'\n", 307 | "}\n", 308 | "ax = sns.countplot(news['CATEGORY'])\n", 309 | "ax.set_title(\"Category Counts\")\n", 310 | "ax.set_xlabel(\"Category\")\n", 311 | "# Manipulate the labels \n", 312 | "ax.set_xticklabels([cat_map[x.get_text()] for x in ax.get_xticklabels()], rotation=45)\n", 313 | "plt.show()" 314 | ], 315 | "execution_count": 0, 316 | "outputs": [ 317 | { 318 | "output_type": "display_data", 319 | "data": { 320 | "image/png": "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\nTkSuQmCC\n", 321 | "text/plain": [ 322 | "
" 323 | ] 324 | }, 325 | "metadata": { 326 | "tags": [] 327 | } 328 | } 329 | ] 330 | }, 331 | { 332 | "metadata": { 333 | "_uuid": "fa4b9a401a84aac1774ebc82c727ec7c98f18fb3", 334 | "id": "hAZgGp9F8dI8", 335 | "colab_type": "text" 336 | }, 337 | "cell_type": "markdown", 338 | "source": [ 339 | "As we can see, the category feature is rather balanced, with the only exception of `Health` which is a bit low in comparison to other values." 340 | ] 341 | }, 342 | { 343 | "metadata": { 344 | "trusted": true, 345 | "_uuid": "13ad2a96810aae1779f02b5c75a6ed88b6efc936", 346 | "id": "jUZUKsSO8dJI", 347 | "colab_type": "code", 348 | "outputId": "dc033a08-9c20-4435-b569-f5ca293a0b53", 349 | "colab": { 350 | "base_uri": "https://localhost:8080/", 351 | "height": 124 352 | } 353 | }, 354 | "cell_type": "code", 355 | "source": [ 356 | "from collections import Counter\n", 357 | "\n", 358 | "# style print output\n", 359 | "def emphasize(s):\n", 360 | " \n", 361 | " red = '\\x1b[1;31m'\n", 362 | " stop = '\\x1b[0m'\n", 363 | " return red + str(s) + stop\n", 364 | "\n", 365 | "nunique = news['PUBLISHER'].nunique()\n", 366 | "print(\"There are {} different publishers. Below some of the most common:\".format(emphasize(nunique)))\n", 367 | "for key, value in Counter(news['PUBLISHER']).most_common(5):\n", 368 | " print(\" {} posted {} articles\".format(emphasize(key), emphasize(value)))" 369 | ], 370 | "execution_count": 0, 371 | "outputs": [ 372 | { 373 | "output_type": "stream", 374 | "text": [ 375 | "There are \u001b[1;31m8517\u001b[0m different publishers. Below some of the most common:\n", 376 | " \u001b[1;31mReuters\u001b[0m posted \u001b[1;31m1491\u001b[0m articles\n", 377 | " \u001b[1;31mHuffington Post\u001b[0m posted \u001b[1;31m1149\u001b[0m articles\n", 378 | " \u001b[1;31mContactmusic.com\u001b[0m posted \u001b[1;31m1029\u001b[0m articles\n", 379 | " \u001b[1;31mExaminer.com\u001b[0m posted \u001b[1;31m998\u001b[0m articles\n", 380 | " \u001b[1;31mLos Angeles Times\u001b[0m posted \u001b[1;31m884\u001b[0m articles\n" 381 | ], 382 | "name": "stdout" 383 | } 384 | ] 385 | }, 386 | { 387 | "metadata": { 388 | "trusted": true, 389 | "_uuid": "ed16dc23550a2c17a2b968f6f2e3da1e121617ac", 390 | "id": "Irsznyn68dJd", 391 | "colab_type": "code", 392 | "colab": {} 393 | }, 394 | "cell_type": "code", 395 | "source": [ 396 | "from nltk import word_tokenize\n", 397 | "from nltk.stem import WordNetLemmatizer\n", 398 | "from nltk.corpus import stopwords\n", 399 | "\n", 400 | "def tokenize(s, lemmatize=True, decode=False):\n", 401 | " \n", 402 | " # NLTK data \n", 403 | " try:\n", 404 | " if decode:\n", 405 | " s = s.decode(\"utf-8\")\n", 406 | " tokens = word_tokenize(s.lower())\n", 407 | " except LookupError:\n", 408 | " nltk.download('punkt')\n", 409 | " tokenize(s)\n", 410 | " \n", 411 | "\n", 412 | " \n", 413 | " ignored = stopwords.words(\"english\") + [punct for punct in string.punctuation]\n", 414 | " clean_tokens = [token for token in tokens if token not in ignored]\n", 415 | " \n", 416 | " #lemmatize the output to reduce the number of unique words and address overfitting.\n", 417 | " if lemmatize:\n", 418 | " lemmatizer = WordNetLemmatizer()\n", 419 | " return [lemmatizer.lemmatize(token) for token in clean_tokens]\n", 420 | " return clean_tokens\n", 421 | "\n", 422 | "\n", 423 | "def test_tokenize():\n", 424 | " \n", 425 | " # With lemmatization\n", 426 | " text = \"Mr. X correctly diagnosed his patients.\"\n", 427 | " expected_result = ['mr.', 'x', 'correctly', 'diagnosed', 'patient']\n", 428 | " assert tokenize(text) == expected_result\n", 429 | " \n", 430 | " # Without lemmatization\n", 431 | " expected_result = ['mr.', 'x', 'correctly', 'diagnosed', 'patients']\n", 432 | " assert tokenize(text, lemmatize=False) == expected_result\n", 433 | " \n", 434 | "test_tokenize()" 435 | ], 436 | "execution_count": 0, 437 | "outputs": [] 438 | }, 439 | { 440 | "metadata": { 441 | "trusted": true, 442 | "_uuid": "b0f78b7cf385914f1806100a30bb464004b30ff5", 443 | "id": "2lWwj-pa8dJo", 444 | "colab_type": "code", 445 | "colab": {} 446 | }, 447 | "cell_type": "code", 448 | "source": [ 449 | "from sklearn.model_selection import train_test_split\n", 450 | "from sklearn.feature_extraction.text import CountVectorizer\n", 451 | "from sklearn.preprocessing import LabelEncoder\n", 452 | "\n", 453 | "# Bag of Words Representation using tokenizer.\n", 454 | "vectorizer = CountVectorizer(lowercase=False, tokenizer=tokenize)\n", 455 | "x = vectorizer.fit_transform(news['TITLE'])\n", 456 | "\n", 457 | "# Create numerical labels.\n", 458 | "encoder = LabelEncoder()\n", 459 | "y = encoder.fit_transform(news['CATEGORY'])\n", 460 | "\n", 461 | "encoder_mapping = dict(zip(encoder.transform(encoder.classes_), encoder.classes_))\n", 462 | "\n", 463 | "# Split into a training and test set.\n", 464 | "seed = 42\n", 465 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=seed)" 466 | ], 467 | "execution_count": 0, 468 | "outputs": [] 469 | }, 470 | { 471 | "metadata": { 472 | "trusted": true, 473 | "_uuid": "d66e502a1a8f0b00e906209fd60b1e33fbad6ef0", 474 | "id": "PenPs4og8dJ8", 475 | "colab_type": "code", 476 | "outputId": "7604f886-3473-47f1-9069-ed2a145d7e2a", 477 | "colab": { 478 | "base_uri": "https://localhost:8080/", 479 | "height": 108 480 | } 481 | }, 482 | "cell_type": "code", 483 | "source": [ 484 | "from sklearn.ensemble import RandomForestClassifier\n", 485 | "\n", 486 | "def report_accuracy(trained_clf):\n", 487 | " train_score = trained_clf.score(x_train, y_train)\n", 488 | " test_score = trained_clf.score(x_test, y_test)\n", 489 | " print(\"Training set accuracy score is: {}\".format(emphasize(train_score)))\n", 490 | " print(\"Test set accuracy score is: {}\".format(emphasize(test_score)))\n", 491 | " \n", 492 | "n_cores = max(multiprocessing.cpu_count(), 1)\n", 493 | "\n", 494 | "rf = RandomForestClassifier(n_jobs=n_cores)\n", 495 | "rf.fit(x_train, y_train)\n", 496 | "report_accuracy(rf)" 497 | ], 498 | "execution_count": 0, 499 | "outputs": [ 500 | { 501 | "output_type": "stream", 502 | "text": [ 503 | "/usr/local/lib/python3.6/dist-packages/sklearn/ensemble/forest.py:246: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n", 504 | " \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n" 505 | ], 506 | "name": "stderr" 507 | }, 508 | { 509 | "output_type": "stream", 510 | "text": [ 511 | "Training set accuracy score is: \u001b[1;31m0.9946475262010473\u001b[0m\n", 512 | "Test set accuracy score is: \u001b[1;31m0.9253411362517021\u001b[0m\n" 513 | ], 514 | "name": "stdout" 515 | } 516 | ] 517 | }, 518 | { 519 | "metadata": { 520 | "trusted": true, 521 | "_uuid": "8e6d82e961dd9aa38412468ac397c7344edd60f2", 522 | "id": "0S_LfCjT8dKO", 523 | "colab_type": "code", 524 | "outputId": "c4d8e629-0ce8-4848-e7c3-011696e360f6", 525 | "colab": { 526 | "base_uri": "https://localhost:8080/", 527 | "height": 530 528 | } 529 | }, 530 | "cell_type": "code", 531 | "source": [ 532 | "#confusionmatrix\n", 533 | "from sklearn.metrics import confusion_matrix\n", 534 | "import numpy as np\n", 535 | "\n", 536 | "def print_confusion_matrix(confusion_matrix, class_names, figsize = (10,7), fontsize=14, normalize=False):\n", 537 | " \n", 538 | " if normalize:\n", 539 | " confusion_matrix = confusion_matrix.astype('float') / confusion_matrix.sum(axis=1)[:, np.newaxis]\n", 540 | " fmt = '.2f'\n", 541 | " title = 'Normalized Confusion Matrix'\n", 542 | " else:\n", 543 | " fmt = 'd'\n", 544 | " title = 'Confusion Matrix'\n", 545 | " \n", 546 | " df_cm = pd.DataFrame(confusion_matrix, index=class_names, columns=class_names)\n", 547 | " fig = plt.figure(figsize=figsize)\n", 548 | " heatmap = sns.heatmap(df_cm, annot=True, fmt=fmt)\n", 549 | "\n", 550 | " heatmap.yaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=0, ha='right', fontsize=fontsize)\n", 551 | " heatmap.xaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=45, ha='right', fontsize=fontsize)\n", 552 | " heatmap.set_ylabel('True label')\n", 553 | " heatmap.set_xlabel('Predicted label')\n", 554 | " heatmap.set_title(title)\n", 555 | " return fig\n", 556 | "\n", 557 | "conf_mat = confusion_matrix(y_test, rf.predict(x_test))\n", 558 | "\n", 559 | "# readable labels\n", 560 | "labels = [cat_map[encoder_mapping[label]] for label in sorted(encoder_mapping.keys())]\n", 561 | "ax = print_confusion_matrix(conf_mat, labels, normalize=True)\n", 562 | "plt.show()" 563 | ], 564 | "execution_count": 0, 565 | "outputs": [ 566 | { 567 | "output_type": "display_data", 568 | "data": { 569 | "image/png": "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\nVNcwioiIiITNvdwWM7vCzKbGLFdsYzTnAH3cvR7QEehnZnFzQlUYRURERMJWjkPS7v4S8NJWdmcD\n9WPW6wXbYl0KdAj6mmRmuwL7Asu29p6qMIqIiIhUHFOAg8zsADPLAM4GPirR5hegDYCZNQF2BZbH\n61QVRhEREZGwJWjSi7tvNLNrgBFAOvCau88ysweBqe7+EXAz8LKZ3Uh0AsxF7u7x+lXCKCIiIhK2\nBN64292HE71VTuy2e2O+ng0cty19akhaREREROJShVFEREQkbHqWtIiIiIjEFf8SwZ2ehqRFRERE\nJC5VGEVERETCpiFpEREREYkrxRNGDUmLiIiISFyqMIqIiIiELYH3YQyDEkYRERGRkHmBZkmLiIiI\nSAWmCqOIiIhI2FJ80osSRhEREZGwpfg1jBqSFhEREZG4VGEUERERCVuKT3pRwigiIiISthS/hlFD\n0iIiIiISlyqMIiIiImFL8QqjEkYRERGRsHlqX8OoIWkRERERiUsVRhEREZGwaUhaREREROJK8dvq\naEhaREREROJShVFEREQkbCn+aEAljCIiIiJhS/EhaSWMwl5/PTvZIch2Wr1oXLJDkB2wW+YJyQ5B\ndsC6/A3JDkEkYZQwioiIiITMNUtaREREROLSkLSIiIiIxJXik150Wx0RERERiUsVRhEREZGwaUha\nREREROJK8UkvGpIWERERkbhUYRQREREJm4akRURERCQuzZIWERERkYpMFUYRERGRsGlIWkRERETi\nSfVHA2pIWkRERETiUoVRREREJGwakhYRERGRuFI8YdSQtIiIiIjEpQqjiIiISNhS/D6MShhFRERE\nwqYhaRERERGpyFRhFBEREQmZp3iFUQmjiIiISNhSPGHUkLSIiIiIxKUKo4iIiEjYUvzRgEoYRURE\nRMKmIWkRERERqchUYRQREREJW4pXGJUwioiIiITMPbUTRg1Ji4iIiEhcqjCKiIiIhE1D0iIiIiIS\nV4onjBqSFhEREZG4VGEUERERCZmeJS0iIiIi8aV4wqghaRERERGJSxVGERERkbCl9qOklTCKiIiI\nhC3Vr2HUkLSIiIiIxKUKo4iIiEjYUrzCqIRRREREJGwpfg2jhqRFREREJC5VGEVERERCpkkvlYSZ\nuZmdmew4REREJAUVlOOSBKEmjGbWJ0i0Si6Ty/j6hkH75uUUT6ugv3234+V1gSHlEUfYyvtz25md\n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\n9jYAAAAASUVORK5CYII=\n", 570 | "text/plain": [ 571 | "
" 572 | ] 573 | }, 574 | "metadata": { 575 | "tags": [] 576 | } 577 | } 578 | ] 579 | }, 580 | { 581 | "metadata": { 582 | "trusted": true, 583 | "_uuid": "722393cd3732942c77518d3dcd0ea0a29c254374", 584 | "id": "pa8adg6c8dKk", 585 | "colab_type": "code", 586 | "outputId": "33170502-5e58-4878-b980-3c996d7e200b", 587 | "colab": { 588 | "base_uri": "https://localhost:8080/", 589 | "height": 350 590 | } 591 | }, 592 | "cell_type": "code", 593 | "source": [ 594 | "news['WEEK'] = news['TIMESTAMP'].apply(lambda date: date.week)\n", 595 | "\n", 596 | "# Aggregate by week\n", 597 | "aggregated = news[['WEEK', 'MONTH', 'CATEGORY']]\n", 598 | "grouped = aggregated.groupby(['WEEK', 'CATEGORY']).size().reset_index(name='article_count')\n", 599 | "grouped['CATEGORY'] = grouped['CATEGORY'].apply(lambda x: cat_map[x])\n", 600 | "\n", 601 | "plt.figure(figsize=(7, 5))\n", 602 | "ax = sns.lineplot(x='WEEK', y='article_count', hue='CATEGORY', data=grouped, ci=None)\n", 603 | "ax.set_xticks(list(range(11, 36)))\n", 604 | "ax.set_xlabel(\"Week of the year\")\n", 605 | "ax.set_ylabel(\"Number of articles\")\n", 606 | "ax.set_title(\"Articles published per week\")\n", 607 | "plt.show()" 608 | ], 609 | "execution_count": 0, 610 | "outputs": [ 611 | { 612 | "output_type": "display_data", 613 | "data": { 614 | "image/png": "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\nU1VVhwwZos8++6yqqj7//PN62223qarqY489pk8//XTV9d/85jd17dq1qqp6+PBhHTlyZNV5EydO\n1NOnT6uq6p/+9Ce96667qq7Lzc3VsrIyVVVdvny5XnvttaqqumrVKr3sssuq7jF9+nQtLi7WjIwM\n7dWrl5aWluqhQ4c0MDBQt23bphUVFTpx4kS95ZZbtLKyUt9//3296qqrVFX14Ycf1j//+c+qqpqd\nna0JCQlaUFCgf/rTnzQ+Pl5zcnK0qKhIBw8erKmpqaqqGhER0eDvqr7/XsAmbWZbYsO2xjelhZCV\nDGO/3vS5MW7QUMZe6N7fv/UypiP5+KHqXYdaS7+xcGnjc5iNDdt6byv27rvv1nvOihUr2LVrV9Xn\nvLw8CgoKALjyyisJDw+v97rc3Fxuuukm9u/fj4hQVlZW73mXXXYZoaGhhIaG0qdPH9LT0wGIj49n\n7FgnhiIpKYm5c+ciIowdO7bGFmgffvhh1SbdxcXFpKamAjB37lyio52RsNGjR3P48GEGDRpU/y+p\nlVnjaXyTvgtQ3xK+x7rLVTL3wbA5fq2WMaZx9W0rVltlZSVffPEFYWFhdY5FREQ0eO9HH32UOXPm\n8N5775GSksLs2bMbrUPteniXBwQEVH0OCAiosQXaO++8w4gRI2rcc/369Q3ety1Y42l8k+7+Nd23\ngbR83iL7Qmi0rfU0Z58meogdRVRUFHl51Zt2z5s3j+eee477778fcKJqPbu01L4uPz+/6nNubi4D\nBgwAnDlIf5g/fz7PPfcczz33HCLCl19+WbU7TEOCg4MpKysjODjYL3UCCxgyvkrb7jSIPQY3fa6I\nG3Fry1WMaQueABnP66GHHmr0/CuuuIL33nuvKmDo2WefZdOmTYwbN47Ro0fz4osv1nvdnDlz2LVr\nV1XA0AMPPMDDDz/MhAkT/Nbre/TRRykrK2PcuHEkJSXx6KOPNnnNnXfeybhx4/waMGRbkhnf/PFi\nCAyBW5pe4wXA+3fB/mVw/37/1suYdmZbknUutiWZaTuVFc6cZ3M2uI5NhMKTUJTtv3oZY0w7scbT\nNO3UISgr9G2+06Mqx60N3Rpjuh6/NZ4i8qqInBSRHV5lT4vIHhHZJiLviUgPr2MPi8gBEdkrIvO9\nyhe4ZQdE5CGv8ngRWe+WvyUiIf76Lmc9T7BQc3ueYJmGjDFdkj97nouABbXKlgNjVHUcsA94GEBE\nRgM3AEnuNb8XkUARCQSeBy4FRgPfdM8FeAp4RlWHA9nAbX78Lme3tO0QEASxI32/pscQZ99Pi7g1\nxnRBfms8VXUNcKpW2TJV9YRkfQEMdH++CnhTVUtU9RBwAJjqvg6o6kFVLQXeBK4SEQEuAt52r38N\nuNpf3+Wsl7bDSXwQXHcNWIMCAiEmwSJujTFdUnvOed4KfOz+PAA44nXsqFvWUHlvIMerIfaUG39o\nag/PhsQkWs/TGNMltUvjKSI/AcqBv7bR8+4UkU0isikjI6MtHtl1FGZB/vHmBQt5xCRCTiqUFbV+\nvYwxVSIjI2t8XrRoET/4wQ9adC/vpO61ty67+eabefvttxu69KzS5o2niNwMXA58W6sXmR4DvBMS\nDnTLGirPAnqISFCt8nqp6kuqOllVJ8fGxrbK9zhrtCRYyCM2EVDItLWexnRGLd3382zQpo2niCwA\nHgCuVNXTXoc+BG4QkVARiQcSgA3ARiDBjawNwQkq+tBtdFcBX3Ovvwn4oK2+x1kl7QwazxivHLfG\nmHbR0HZjDW0n5lHf1mUAa9asYcaMGQwdOvSs7oX6LbetiLwBzAZiROQo8BhOdG0osNyJ+eELVf2e\nqu4Ukb8Du3CGc+9S1Qr3Pj8AlgKBwKuqutN9xIPAmyLyS+BL4BV/fZezWtoOiDoHImKaf23v4SAB\nNu9pjJ950vN5nDp1iiuvvBKAe++9lx/+8Iecf/75pKamMn/+fHbv3s3IkSNZu3YtQUFBrFixgkce\neYR33nmn6h5xcXF873vfIzIykh//+McAvPLKK5w4cYLPPvuMPXv2cOWVV/K1r32Ns5HfGk9V/WY9\nxQ02cKr6OPB4PeUfAXVywqnqQZxoXONPLQ0WAic6t8cQW+tpzhpPbXiKPaf2tOo9R/YayYNTH2z0\nnNpbki1atAhPGtKGthvzdTux2q6++moCAgIYPXp01dZiZyPbVcU0rLzEafgS5zd9bkNiR9icpzHt\nqKHtxn7wgx/4tJ1Ybd7bgJ1tudG9WeNpGpaxByrLW97zBCfiNvkTqCiHQPufm+namuohtoeGthvz\nZTux2luXmWqW29Y0LM3NrHgmjWfsCKgohZzDrVMnY0yzNLTdmC/bidXeusxUsy3JTMM+fgi2vAYP\nH3UyBrXEkY3wysVwwxswcmHr1s+YDsC2JOtcbEsy43/pO6DP6JY3nGAJ4o0xXZI1nqZ+qpC27cyG\nbAHCoiGyn21NZozpUqzxNPXLPQLFudCvBWn5aotNtJ6nMaZLscbT1K8qWGjcmd8rZoTT8zzL5teN\nMV2XNZ6mfmnbAXHmPM9U7AgozYf8E2d+L2OM6QCs8TT1S98OvYZCaGTT5zYlxg0asjR9xpguwhpP\nU78zSctXW6wliDfG3x5//HGSkpIYN24c48ePZ/369fWet2nTJu655542rl3XYylfTF3FeZCdAhO+\n0zr3i+wLodHW8zTGT9atW8fixYvZsmULoaGhZGZmUlpaWu+5kydPZvLkZi1pNPWwnqepK93duKY1\ngoUARNyIW+t5GuMPJ06cICYmpirvbExMDP3792fjxo3MmDGDc889l6lTp5Kfn19js+vCwkJuvfVW\npk6dyoQJE/jgA2dnx0WLFnHttdeyYMECEhISeOCBB6qetWTJEiZOnMi5557L3LlzG71PV2Y9T1NX\nuhtp27cVlql4xIyA/cta737GmCrz5s3j5z//OYmJiVx88cVcf/31TJ8+neuvv5633nqLKVOmkJeX\nR3h4eI3rHn/8cS666CJeffVVcnJymDp1KhdffDHg5MD98ssvCQ0NZcSIEdx9992EhYVxxx13sGbN\nGuLj4zl16lSj94mIiGjz30VbscbT1JW2DcJ7Qff+rXfP2ETY+hcoyobwnq13X2M6kLQnnqBkd+tu\nSRY6aiT9Hnmk0XMiIyPZvHkza9euZdWqVVx//fX85Cc/4ZxzzmHKlCkAdO/evc51y5Yt48MPP+Q3\nv/kNAMXFxaSmpgIwd+5coqOjARg9ejSHDx8mOzubWbNmER8fD0CvXr0avU9XTltojaepK227kxzB\n2bC8dcS4QUMZ+2Dwea13X2MMAIGBgcyePZvZs2czduxYnn/++SavUVXeeecdRowYUaN8/fr1NbYe\nCwwMbDB5fGP36cqs8TQ1VZTDyd0w5fbWva93jltrPE0X1VQP0V/27t1LQEAACQkJgDPkOmrUKJYs\nWcLGjRuZMmUK+fn5dYZt58+fz3PPPcdzzz2HiPDll18yYcKEBp8zbdo0vv/973Po0KGqYdtevXo1\n+z5dgTWeHYFq6/byzkTWASgvbr1lKh49hkBgqEXcGuMHBQUF3H333eTk5BAUFMTw4cN56aWXuOWW\nW7j77rspKioiPDycFStW1Lju0Ucf5b777mPcuHFUVlYSHx/P4sWLG3xObGwsL730Etdeey2VlZX0\n6dOH5cuXN/s+XYFtSdbeDqyEv98Id2+BqL7tXRvY/ja8cxt87/PWyWvr7YWZzjzqt//Ruvc1ph3Z\nlmSdi21J1lVs+zuUFsCxze1dE0faNggMqc4K1JpiEq3naYzpEqzxbE+VFdXLNzxrK9tb2g4nI1BQ\nSOvfO3YE5KRCWVHr39sYY9pH5cy8AAAgAElEQVSQNZ7t6ehGKHLWSXGyozSe21svOUJtMYmAQuZ+\n/9zfGGPaiDWe7WnfEggIgrgLOkbPMz8dCk+2bnIEb5bj1nRRZ1vsSGfVmv+drPFsT3uXwJAZMHia\nE+Xa3sOZ6dud99aOtPXoPRwkwOY9TZcSFhZGVlaWNaAdnKqSlZVFWFhYq9zPlqq0l+wUyNgNE2+E\n7ueAVjqNSv/x7VenNE/j6aeeZ1Ao9Ixz1noa00UMHDiQo0ePkpGR0d5VMU0ICwtj4MCBrXIvazzb\nyz43UChxvtNwgjN0266N5w6IHuTf9HkxI5wsQ8Z0EcHBwVXp6szZw4Zt28u+j6F3AvQe5mw6HRQG\nJ3e1b51acw/PhsQmOkPUFQ2n+jLGmI7Ob42niLwqIidFZIdXWS8RWS4i+933nm65iMizInJARLaJ\nyESva25yz98vIjd5lU8Ske3uNc+KdJQUPT4oyYeUz2DEAudzQCDEjqzezaQ9lBVB1n7/BQt5xIyA\nyjJn2NoYYzopf/Y8FwELapU9BKxU1QRgpfsZ4FIgwX3dCbwATmMLPAacB0wFHvM0uO45d3hdV/tZ\nHVfyKqgohUSvKvdNat+I25O7nOFjv/c8PRG3Nu9pjOm8/NZ4quoa4FSt4quA19yfXwOu9ip/XR1f\nAD1E5BxgPrBcVU+pajawHFjgHuuuql+oE+L2ute9Or59SyEsGgZ5JUjvmwSFGVBwsn3qlOb2ev0V\nLOQR4ySutohbY0xn1tZznn1V9YT7cxrgSeY6ADjidd5Rt6yx8qP1lHd8lZWwfykMvwQCg6vL+yY5\n7+3V+0zbDiFR0CPOv88Ji4aoc2ytpzGmU2tW4ykiASJSd0fVFnB7jG2yMEpE7hSRTSKyqd3DyY9v\ncXqYibVGmfu4jWd7BQ2l73Aa8IA2+HvKctwaYzq5Jv+lFJG/iUh3EYkAdgC7ROT+Fj4v3R1yxX33\njFEeAwZ5nTfQLWusfGA95fVS1ZdUdbKqTo6NjW1h1VvJviUggTB8bs3yyFiI6NM+Pc/KSmfY1t/z\nnR6xI5wUfbao3BjTSfnSzRitqnk4c4ofA/HAd1v4vA8BT8TsTcAHXuU3ulG304Bcd3h3KTBPRHq6\ngULzgKXusTwRmeZG2d7oda+Obe8SJ6NQt151j/VNap+I25wUKM1vu8YzJtF5Xt7xtnmeMca0Ml8a\nz2ARCcZpPD9U1TJ8GG4VkTeAdcAIETkqIrcBTwKXiMh+4GL3M8BHwEHgAPAy8H0AVT0F/ALY6L5+\n7pbhnvNH95pknIa9Y8s96qTAS5xf//G+Sc5wZluvgWyrYCEPz3ZnFnFrjOmkfMkw9AcgBfgKWCMi\nQ4C8pi5S1W82cGhu7QJ3/vOuBu7zKvBqPeWbgDb6176V7FvivCdeWv/xvklQXgynDjrJBNpK2nYn\n52yf0W3zvKrlKvth2EVt80xjjGlFTfY8VfVZVR2gqgvdpSSHgTltULeuZ99S6BlfvVyjNk/j1dbb\nk6XvcLIdBYe3zfMi+0JotAUNGWM6LV8ChvqKyCsi8rH7eTTV85bGV6WFcPBTGHEpeCVDSs06zY//\n8RXFZRVOliEJaPugobZIy+dNxOlZ23IVY0wn5cuc5yKcwJ3+7ud9wH3+qlCXdfBTqCipM9/5+roU\n3t58lB3HciE4zOkBtmXjWZQNuUfabr7TI2aE9TyNMZ2WL41njKr+HagEUNVyoMKvteqK9i2B0O4w\neEZVkaqybFc6AAczCp3CvqPbtvH0bEPWtw17nuD0PAtPOo23McZ0Mr40noUi0hs3wtazlMSvtepq\nKiud+c5hF0FQSFXxnrR8Uk+dBiA5s8Ap7JsEOYed5PFt4ch6533AxMbPa20xbtCQbU9mjOmEfGk8\nf4SzDnOYiHyOk0f2br/WqqtJ+woK0upkFVq2M92Z/osKre55VmUa2t02dUtdD7Gj6l936k+xtlzF\nGNN5NblURVW3iMiFwAhAgL3uWk/jq71LAIGEeTWKl+5MY+LgnsRGhrL/pNvTrMpxuwMGTfVvvSor\n4cgGGHONf59Tnx5DIDDU5j2NMZ1Sg42niFzbwKFEEUFV3/VTnbqefUuchjCid1XRkVOn2XUij4cv\nHUluURkr96RTXlFJUI/BToL2tpj3zNgNJbkweLr/n1VbQKCzZMcibo0xnVBjPc8rGjmmgDWevsg7\nASe2wtyf1ij2BArNS+rH5sPZlFUoR7KLiI+JcIOG2iBBfOo65917a7S2FJMIxza3z7ONMeYMNNh4\nquotbVmRLmv/Uue9VlahZTvTSOwbSXxMBNmnSwFIPlngNp5JsP0dJ3G615rQVpe6HiL7Qc84/z2j\nMbEjYOd7UFbUdgkajDGmFfiSJOEJEenh9bmniPzSv9XqQvYthejB0GdUVVFWQQkbU04xP6kfAMNi\nIgE46Im47TPaGU7Na3CjmNaR+gUMPs+/DXRjYhIBddL0GWNMJ+JLtO2lqprj+aCq2cBC/1WpCykr\nguRVMGJBjQZq5Z6TVCrMG+00ntHdgukdEeK11tNNWODPec/cY5Cb2j7znR5VOW5t3tMY07n40ngG\nikio54OIhAOhjZxvPA6thfKiOlmFlu1Mo390GGMGVO8rPjQ2omaiBPDv9mRHvnDe22u+E6D3cCcd\noUXcGmM6GV8az78CK0XkNndbseXAa/6tVhex72MIjoAh51cVFZaUs2Z/JvOS+iFevdGhMZHVw7Zh\n0RA9yL9BQ6nrnbr1G+e/ZzQlKNSZb7W1nsaYTsaXXVWeAh4HRrmvX6jqr/1dsU5P1c0qNMfJWeta\nsy+D0vJK5iX1rXH60NgIMgtKyS1yl9D2TfLvsG3qOhg4CQJ92ZXOj2JGWJYhY0yn40vPE1X9WFV/\n7L6W+rtSXUL6Difgp3ZWoV3p9OgWzNS4mhl9hsW6QUMZXkFDWfuhvKT161aS79SvPec7PWITIetA\n228AbowxZ6DBxlNEPnPf80Ukz+uVLyJNboZ91tvrbnztlVWorKKSlbvTmTuyL0GBNX/1Q2MjAO8E\n8UlQWe6fYJqjG0Er23e+0yNmBFSWQXZKe9fEGGN81mDjqarnu+9Rqtrd6xWlqt0bus649i2BAZMg\nqnp4dv3BU+QVl9cZsgUY1KsbQQFCsqfn6c+I29T1TqDOwCmtf+/msohbY0wn5Ms6zz/7Uma8FJx0\nMufUGrJdujONsOAAZiXE1rkkODCAwb27Vfc8ew+DwBA/NZ7rnJ5tWAf4G6jXUOfdep7GmE7ElznP\nJO8PIhIETPJPdbqI/csArdF4VlYqy3elMyshlvCQwHovqxFxGxjs9Mpau/GsKIejmzrGfCdAeE8n\nl681nsaYTqSxOc+HRSQfGOc93wmkAx+0WQ07o70fQ1R/6Fe9wfS2Y7mk5RVXZRWqz7DYCFKyTlNR\nqU5BnyQ42crLVdK3Q1lhx5jvBCd5RM84azyNMZ1KY3OevwKigddrzXf2VtWH266KnUx5iZNVKHF+\njaxCy3amERggzB3Vp8FLh8ZGUFpeybHsIqegbxLkn4DCrNarX6q7+XVH6XkC9BxijacxplNpdNhW\nVSuBDhBV0omkfOb07EbUTAS/dGca58X3oke3kAYvHeouV0n2DN169vY82YpDt6nrnAQM0QNa755n\nqmcc5Bx21sYaY0wn4Muc5xYRsQbUV/uWQFA4xM+qKjpwsoDkjELmja4bZeuteq2n13IVaL1MQ6pw\nZD0MntY692stPeOgvBgK0tu7JsYY4xNfGs/zgHUikiwi20Rku4hs83fFOiVVp/EcOrvGFlvLdqUB\nzt6dtRXv3s3hm26moqCAXhEh9OgWXJ0oIbIvdOvdejlucw47w8AdZb7Tw7Mlmg3dGmM6CV8az/nA\nMOAinA2yL6fxjbLPXid3Q05qPYng0xk7IJr+PeruWZn9tzc4vX49RZudTaGHxkRUr/UUcTINtVbQ\nkB/mOw9nFXLV859zKLOw5TexxtMY08n4ktv2sKoeBooA9XqZ2va5WYW8Gs+03GK2Hslhfj2JEbS8\nnPwVKwAo2u70LofGRlYP24KTLOHkbqisOPP6pa6D0O419hY9U8+vOsBXR3L42/rDLb9J9CBAIPsM\n7mGMMW3IlyQJV4rIfuAQ8CmQAnzs53p1TvuWwDnnQvf+VUXLdzvzePUN2Z7euJGK7GwICKBouzMS\nPjQ2gpP5JeQXeyWILzvdOr2yI+th0FQIqH+daXOdyC1i/ZqtPLp+EZ99tqN6iU1zBYc5vzPreRpj\nOglfhm1/AUwD9qlqPDAX+OJMHioiPxSRnSKyQ0TeEJEwEYkXkfUickBE3hKREPfcUPfzAfd4nNd9\nHnbL94rI/Iae1yYKs+DIhrqJ4HemER8TQUKfyDqX5C1ZioSH033BAoq370BVGRrjnFc1DFq1t+cZ\nRtwWZTvDv4NaL1joTyt28/AXi5hxYgfnb1vJv5MzW36zHrZcxRjTefjSeJapahYQICIBqroKmNzS\nB4rIAOAeYLKqjgECgRuAp4BnVHU4kA3c5l5yG5Dtlj/jnoeIjHavSwIWAL8XkdbpUrXEgeXUziqU\nW1TGuuQs5o3uW2PvTgCtqCB/+XIiZ19It6lTqDh1irJjxxlWO0F87ChAzrzxPLLReW+lSNtTBSX0\n+sNvGZyfTvDwBC4+spkPNxxq+Q0tUYIxphPxpfHMEZFIYA3wVxH5HXAG0SEABAHhbqq/bsAJnICk\nt93jrwFXuz9fRfXm228Dc8Vpia4C3lTVElU9BBwApp5hvVpu78dOdOw546uKVu05SXmlNjBku4mK\nU6foPn8+YWOcTETFO7YzuHc3AsRra7KQbk7+1zNd65m6DgKCnGT1rWDV0y9yYepmAm65k34PP0j3\n0kJyl6/gdGkLtxbrGQf5x6GsuFXqZ4wx/uRL43kVcBr4IbAESOYMom1V9RjwGyAVp9HMBTYDOarq\n+Zf3KOBZxT8AOOJeW+6e39u7vJ5rahCRO0Vkk4hsysjIaGnVG1ZeCsmfONuPBVT/SpftSiM2KpQJ\ng3rUuSRv6RIkLIzIWbMIS0xAQkIo2rad0KBABvXqRrJ39GprbIx9ZD30G+c0xmfo1OatJPzjZQ4O\nHceIH99DxPTpVPY7hzkH/s3yXS1cq+mJuM090uhpxhjTEfgSbVuoqpWqWq6qr6nqs+4wbouISE+c\nBjke6A9E4Ay7+o2qvqSqk1V1cmxs3R1Nzljqv6Ekr0ZWoeKyClbvzeCS0X0JCKhvyHYFkRdeSEC3\nbkhICGGjRlG8zQkaGlZfxO2pQ1Dawg5/eamzy0srLFEpz84m9e57OBXanX5PPYUEBCABAfS5/huM\nz0xm9crNLbtxzyHOuw3dGmM6AV96nq3tYuCQqmaoahnwLjAT6OEO4wIMBI65Px8DBkHVji7RQJZ3\neT3XtK19SyEwFOIvrCr6/EAmp0sr6s0qdHrzZioyM+k+v3qj7LCxYynatQutqGBoTASHMguo9ESv\n9h0NKJzc07L6nfjKyeAz+MySI2hlJcceeJCAnGzev/oHTBobV3Wsx3XXUhkQQO/VH5ORX9L8m9ta\nT2NMJ9IejWcqME1Eurlzl3OBXcAq4GvuOTdRvXPLh+5n3OOfqKq65Te40bjxQAKwoY2+QzVVZ74z\n/gIIrY6oXbozjajQIGYMi6lzSf6SpUhoKJEXVje24ePGoqdPU5KczNDYSIrLKjme65UgHlqeaSh1\nnfN+hpG2mS++yOm1a3lx7JVcfcPFNY4F9+lD4IwLmHt4I4s3t2C9ZmRfCAqzxtMY0yk0tiXZSvf9\nqdZ8oKquxwn82QJsd+vwEvAg8CMROYAzp/mKe8krQG+3/EfAQ+59dgJ/x2l4lwB3qWorZBJopsz9\nkH2oRpRtRaWyYvdJZo/sQ0hQzV+xVlaSt3wZkbNmERARUVVeFTS0fQdDa0fc9oiD4IiWZxo6sh56\nxkNU47l1G1Pw2edkPvd/bBg+lZTp87kwse7w98DvfpMepYXsf++j5j/AtiYzxnQiQY0cO0dEZgBX\nisibQI2JO1Xd0tKHqupjwGO1ig9ST7SsqhYDX2/gPo8Dj7e0Hq1ir9tQeGUV2pRyilOFpfVmFSra\nsoWKjEyiFtRclhoSN4SAqCiKtm9j6LyFgBNxOysx1glC6jOqZUFDqpD6hRPM1EJlJ05w/Mc/pnTg\nEJ4YeRW/mTO8ztIbgIjzz6ekVyxJW1Zx4ORtDO8T1bwH9YyzLEPGmE6hsWHbnwKP4swl/hb4H6/X\nb/xftU5iz2InirXH4KqiZbvSCQkMqLd3lrdkKRISQuSFs2uUS0AAYWOSKN6+g9jIUKJCgzhYJ+J2\nR/O37cpKhtOZLZ7v1NJSjt53H1pWxu9m3Ua/vj25dEz9G3pLYCA9vnYdEzP2sXR5C/628iRKsK3J\njDEdXGObYb+tqpcCv1bVObVeF7VhHTuuvBNwdCOMql65o6os3ZnGzOG9iQoLrnG6VlaSv2wZEbMu\nIDAyovbdCB87juK9e9HSUobGRtSKuE1ysgTlpzWvjp75zhZG2qb/+mmKv9pG7t0P8klhOP8xaxhB\ngQ3/zTXgW9dTKULRB+9VBzz5qmcclObD6VMtqqsxxrQVX5aq/MLNb/sb93V5W1SsU9j7L+fdq/Hc\nfSKfo9lF9SZGKNq6lfKTJ+k+v/6VOWFjx0B5OSV79rgJ4guqD1YFDTVz6PbIFxDeE3onNO86IPdf\n/yL7L3+h10038bvyQfSJCuW6SY1voh3crx+nJ5zH9L3/ZlNyM9fUWsStMaaT8CUx/K+Ae3ECc3YB\n94rIE/6uWKewezH0GgaxI6uKlu5MQwQuHlV3vjNvyRJnyHbO7HpvFz5uHABF27YzLDaC47nF1Rl7\n+rg5bpubaSj1CyfKNqB5gdUlycmcePSnhE+cSNoNt/P5gSxuOz+e0KCmMyDG3/QtepXks+mtfzav\nrp7GMyeledcZY0wb8+Vf1MuAS1T1VVV9FSehgfU+i7IhZS2MutyJFHUt25XOpME9iY0KrXG6VlaS\nv3QZEeefT2Bk3STxAMF9+xIUG0vxju0MjXXOqRq67dYLovo3r+dZmAlZB5o931lZWMjRe+4lIDyc\nAc/8lt9/lkL3sCC+dd7gpi8Ges+dQ2FUT6JX/ovismYEQHvmja3naYzp4Hztjnjnl4v2R0U6nX3L\noLIcRlYP2R45dZrdJ/KYX9+Q7VdfUZ6eTvcFjW/+EjZuHEXbtlcvVzmTNH2p7uY3zZjvVFVOPPpT\nSg8dYsD//IbD0o2lO9O5cXpcnTnchkhQEFx6BeNP7GHtZ9t9r29oJETEWuNpjOnwfGk8fwV8KSKL\nROQ1nDy07bs8pCPY/SFE9quRaH3pTieYZ149S1TylyxFgoOJnDOn0duGjx1D6aFDDAquQLwTxIOT\naShjL1SU+VbHI19AYEiNZPVNyf7r38j76CNi77mHiGnTePHTg4QFB3DLzDif7wGQdPt3ADj617ea\ndZ2t9TTGdAa+BAy9gbOf57vAO8B0VW3mv4hdTOlpOLASRl5WMxH8znRG9otiSO+akbRaWUnesmVE\nzJxJYFTjax/DxjrJEti3hwE9wuvmuK0scxIz+CJ1PfSf6Gw27YOirVtJf+opImfPpvedd3A8p4j3\nvzzGDVMG0zsytOkbeAkfPIiTI8YzfPMqsvNO+36hrfU0xnQCPg3bquoJVf3QfTVzrUQXlPwJlBc5\n852uzIISNh0+VW8u2+Lt2yk/caJOYoT6hI8ZA+AO3UZyMLOeiFtfMg2VFcHxL32e7yzPzuboD39E\ncJ8+9H/qSSQggJfXHgTg9gvifbpHbbHf/AYxRbl89rfFvl/UMw5yj/reuzbGmHbQHrltO789iyEs\nGuIuqCpauTudSqXeJSp5S5ZCcDBRFzW9PDYwOpqQIUOcoKGYCA5lFKKepAG9E5w9OX3JcXv8S6eX\n6sN8p1ZUcPzH91ORlcWA3/2OwOhoThWW8uaGI1w5vj8De7ZsG7PR1y4kL7w75R+86/tFPYaAVjgN\nqDHGdFDWeDZXRZmTCD5xAQRWB9As25nOgB7hJPXvXuN0VSV/6VIiZkwnsHv32nerlydoaFhsBIWl\nFaTnubuUBIVAzAhI96HnWZUMvumeZ+bvX6Dw88/p+18/IXyM07td9O8Uisoq+N6Fw3yqc30CQkLI\nnjWPhEPbSNmT4ttFttbTGNMJNNp4ikigiLRwH6wu6vDnUJwDI6uHbAtKyll7IJN5SX3r5Hwt3rGD\nsuPHG0yMUJ/wsWMoT09neEAxUE/QkC8Rt6nrnYa2W69GTyvauZPM3/+e6KuvpsfXnRTChSXlvPbv\nFC4Z3ZfEvs3MT1tL0h3fJRBl+x//7NsF1ngaYzqBRhtPd5eSvSLi2wK/s8Huxc7WWcPnVhWt2ZdB\naXkl80bXN2S7BIKCiLqo8Shbb56goQHphwBIrp1pKO+os860IZWVTqStD/Od+UuWQGAgfR95uKrh\nf2NDKrlFZfy/2S3vdXoMGpPIwcGj6Ll6CZXl5U1f0L0/BARDjgUNGWM6Ll+GbXsCO0VkpYh86Hn5\nu2IdUmUl7PkXDJsLIdURtUt3ptGzWzBT4nrWOF1VyV+ylIjp0wns0aP23RoUNmoUBAURlryXiJBA\nkmtH3AKc3N3wDTL3QnGuT/Od+Z+sotuUyVVDyiXlFby89iDThvZi4uCeTVztm8Arr6F3wSm2f7i8\n6ZMDAqHHIOt5GmM6NF8az0dxMgr9nJo7q5x9jn8J+cdrRNmWllfyyZ6TzB3Vt07C9OKduyg7dqzJ\nxAi1BYSFEZqYQPH27cTHRtRMlOBJ09fY0K2P852lhw9TmpxM1JzqQKb3vzxGel4J3589vFl1bsy0\nG68jJzSS9L/5uMLJ1noaYzo4X9Z5fgqkAMHuzxtxNrI+++z5J0hgjY2v1x/KIr+4vN6sQvlLnSHR\nSB+ibGsLHzOWoh07GNo7ouacZ/f+ENajicZzPUT0gV5DG31G/qpVAES6Q8oVlcqLnx4kqX93LkiI\naXadG9KjezcOTryQc3ZupCgtvekLrPE0xnRwviSGvwN4G/iDWzQAeN+fleqwdi+GuPNrBOF8ujeD\nkMAAzh9es7FRVfKWLCVi2jSCejZ/+DN83Fgq8/IYQx7Hcoqqc8SKNJ2mL3WdM99Zz4bV3go+WUVo\nYiIhAwcCzvDzocxCvj+7/s2uz0T/b99AkFay7Y9/bfrknnHOnG5xbqvWwRhjWosvw7Z3ATOBPABV\n3Q/08WelOqSMvZC1v8b2YwCfHchk0pCehIfU3G2kZPduyo4c8SkxQn08QUMJ2UdQhZSsWjluT+5y\n5mBryzvhBNs0Md9ZkZPD6c2bq9IFqiq/X32A+JgIFjSw2fWZmDl7Irv6DEf/9QFaX729VUXcWtCQ\nMaZj8qXxLFHVUs8HEQkCmrnLcRew291ea+RlVUWZBSXsSctn5vDedU7PW7IUAgOJuvjiFj0udNgw\nJDycPseSAepujF1aALmpdS884iaDHzSt0fsXrF0LFRVVUcCfHchkx7E8/mPWUAIDWrfXCRASFED2\nRQuJzj5J5prPGz+5xxDn3YZujTEdlC+N56ci8ggQLiKXAP8AmrlRYxew+59OEvju/auK1iVnATCz\nviHbpUuIOG9qi4ZswdmZJGz0aMKTnWW2NeY9+zSyMXbqeggKh3PGNXr/glWrCIyJqerh/n5VMn27\nh3LNxMY3uz4TE759DXnB3Uj+UxNDt7bW0xjTwfnSeD4EZADbgf8APgL+y5+V6nByjsCJrTUSIwB8\nfiCTqNAgxg6ouUtbyd69lB1OJaoZiRHqEz52LKV79jAoKrjmcpU+o5z3+jINpa6DgZNrZD+qTUtL\nKVizlqg5s5GAAL5MzWbdwSxuP3+oT5tdt9TE4X3ZmDiNyI2fUX7qVMMnhvdwgqKs8TTGdFC+RNtW\nAq8BvwD+G3hNq5KtniX2/Mt5rzXf+XlyJtOG9a6zRCVvyRIICCDqkpYN2XqEjR2DlpQwlZyaPc/Q\nSKd3VjvHbUkBpG2HwY0P2Z7etInKgoKq+c4XVicTHR7MN33c7LqlRISQq64hsLKCI2/8o/GTe8ZZ\nogRjTIflS7TtZUAy8Czwf8ABEbnU3xXrUPYsdlLdxSRUFaVmnebIqSJmDqs53+lJjNBt6lSCejWe\nGq8p4eOcoddxhcc46J0gHpxkCbWHbY9tcpKqNzHfmf/JKiQ0lIjp00nOKGDZrnRumj6EyNCgM6qv\nL+YtnM7OXnGc+vs/aPRvsJ5DrOdpjOmwfBm2/R9gjqrOVtULgTnAM/6tVgdSmOXksx1Va8g2OROA\n82uthyzZt5/SlJRmJ0aoT/DAgQT26EFcRgr5JeVkFJRUH+ybBKeSna3HPFLXAwKDpjR4T1WlYNUq\nImbMICA8nPe/PEaAwHemDznj+voiLiaCXZMuolv6MU5v3NjwiT3jICcVKivapF7GGNMcvjSe+ap6\nwOvzQSDfT/XpePZ9DFpZ73xnn6hQhsVG1ijPX+oO2bYwytabiBA2diy9jtQTcdtntFOvDK+8/anr\nnEY1LJqGlOzbT9mxY0TOmY2q8s+vjjN9WG/6RPm2YXZrGHrdFRQEhZH62t8aPqlnHFSUQv6JNquX\nMcb4qsHGU0SuFZFrgU0i8pGI3CwiN+FE2jbSZehidi+G7gOh/4SqospK5d/JWcwcHlMjmYAnMUK3\nyZMJimmdDD3hY8cSlHqI0PKSWstV3By3nqChinI4urHJ+c6CVZ8AEDl7NjuP55GSdZorxvVv9JrW\ntnDKUFYNnkTFp59Qnt1Agntb62mM6cAa63le4b7CgHTgQmA2TuRtuN9r1hGUFEDyJ87aTq9Gck9a\nPqcKS+ssUSk9cIDSgwdbnBihPmFjx0BlJaMLT9QMGuoV7yxJ8cx7ntzprP30Yb4zbNw4gvv04Z/b\njhMUIH5JitCYXhEhnJpzKYHlZeR80MAeA7ZcxRjTgTUYIaKqt/jroSLSA/gjMAYn4cKtwF7gLSAO\nJ5fuN1Q1W5yu3e+AhR04X8gAACAASURBVMBp4GZV3eLe5yaql838UlVfa9WKHlgBFSV15zsPOPOd\ntZMj5C1ZCiJ0v+SSVqtCuLsOc2pxGvu9E8QHBEKfkdURt6nrnfdGep7lGRkUb9tG7H33oqos/uoE\n5yfE0KNbSKvV11cXzJ/BnncHU/HXN+h904110wFGDwIJsMbTGNMh+RJtGy8ivxWRd1txS7LfAUtU\ndSRwLrAbZz3pSlVNAFa6nwEuBRLc153AC269egGPAecBU4HHRKR19tDy2LMYwnvB4Bk1ij9PzmRo\nbATnRNfsgOctXUK3SZMIio1ttSoExcQQ1P8cRucdq7mvJ1Sn6QNnvrP7AGc7rwbkr14NQOScOXx5\nJIdjOUVtPmTrMXdUH1YNn0HgkcMUffll3RMCg53hcms8jTEdkC8BQ+/j9ASfoxW2JBORaGAW8AqA\nqpaqag5wFc56Utz3q92frwJeV8cXQA8ROQeYDyxX1VOqmg0sB84sK4G38lLYtwxGLITA6g56aXkl\nGw6dYuawWlG2Bw5QeiCZqAWtVwWP8LHjGJh2kCOnTlNS7hV92icJCjOg4CSkftH0fOcnqwju35/Q\nxEQWf3WCkMAALknq2+r19UVYcCBRCy7ldFAomW80sFWZLVcxxnRQvjSexar6rKquUtVPPa8zeGY8\nzrzpn0TkSxH5o4hEAH1V1RNamQZ4/lUfABzxuv6oW9ZQeetIWQMluXWGbLceyeF0aUWd+c68pc6Q\nbVQrDtl6hI8dQ7esdCKLC0nNOl19oK+bpm/fEmef0UbmOyuLiij897+JvOgiVOFf249z4YhYuoc1\nnInI3y6fNoxVAyeSv2QJFbn17KBiiRKMMR2UL43n70TkMRGZLiITPa8zeGYQMBF4QVUnAIVUD9EC\n4GYwarUsRiJyp4hsEpFNGRkZvl20ezEER8DQOTWKPz+QSYDA/2/vzuOjqu7Gj3++2VeyQICwhrCE\nnYBBdgTUoNa6PNati3ufV7V2eSoW7dPWVtufWmm1tU+xVm3tbjetW1UkQXYI+yoQ1rCEbASyQNbz\n++PekMkyk7nJJDMh3/frNa/M3Hu/c04mJ/nmnnvuOTNSm17vLPvgQyKnTCG0n+8XnImYYE2WMLI0\nr+k0fQ3JM+dV66uHM8+KdesxVVXELphPzpESTp+r4vqJyT6vqxPThiWyZdxsgmqqKbe7lJtIGArl\np6G6suU+pZTyI2+S5wTgy8AzNHbZLulAmceB48YYe4QL/8BKpqft7ljsrwX2/hOA64W8QfY2d9tb\nMMa8bIzJMMZkJHlzPbK+zpqSb+RVENr0/se1B4sYPzCOuKjGM7aqQ4eoOnCAXgt9N8rWVcS4cSBC\n2pljHCpyue4Z3Qdi+lnz7obFNibTVpRnZxEUE0NURgbv7jhFRGgQV43xT5dtg6AgYdKV0ykPjaRk\n3YaWByQMs77q2adSKsB4kzxvBVKNMVcYY+bbjwXtLdAYkw/kiUiavelKYA/wNnC3ve1u4N/287eB\nu8QyHThrd+9+CGSKSII9UCjT3tZxx3OgogBGN53LtqKqlq3HSlt02ZZ9aBUbuzDTJ8U3FxwTTdjw\nVMaXnWx6ryc0JszBU60RuK0w9fWUZa8ges5s6oJDeH/nKa4c3Y/oLpiOry03TB7Ert7DKF3fyq3D\neruKUipAeZM8dwHxPi73a8CfRGQHkA78P6wz26tF5ABwlf0arFVcDgG5wG+AhwCMMSVYk9Xn2I8n\n7W0dt/cdCAqFUU2T4cbDJdTWmxaDhc5d7LLtvDO5yPETGHnmGIcKmk3u1Hes9dXD9c4LO3dSV1RE\n7IIFrD9UQnFFtd+7bBuM7h/L4QGjiMg/Tm3zLnWdKEEpFaC8OfWIBz4VkRzg4uSqxpgb2luoMWYb\nkNHKritbOdYAX3XzPq8Br7W3Hm4qZ92iMmxui2nuVucWERYSREZK4x0xVYcPU7VvH/0ef6z5O/lU\nxMQJxLz1FqVHj2OMabwvsr91H6in651l2dkQHEzMnDm8u/wY0WHBzB/t+2uz7SEihE6ZAlveomLT\nJuKudVlzIKq3dd1ZzzyVUgHGm+T5RKfXIpCc3m39sZ71jRa71uQWkTE0gYjQxu7RsmUfAxCb2Tld\ntg0i7UFDA04doqSimt4x4daOcTcDAilz3MaWZ2UTNWUKdTG9+GB3PleP7dfke/C34TMu4/xvw8hf\ntb5p8hSxzj41eSqlAkybybODt6V0P5++CwikfabJ5qLyKj7NL+PRhWlNtpdnZRExbhyhyZ3bDRqR\nNgoTEsqo0jwOFVU0Js+QcJh0u9u46uPHqdq/n76LF7Mmt4jSyhqu99PECO7MTOvHmsShjM7Z1HJn\nQgqUHOryOimllCfezDBUJiLn7McFEakTkXNdUTm/2PsuDL4cYptev1x7sBigyWCh2qIizm/fTsyV\n7R4/5TUJCyN41ChGnclrOsdtG8qzsgGInT+Pd3acJDYihDmjfDNpva8M7R3F0YGjiMw73PJ+z4Z7\nPXvY+utKqcDWZvI0xsQaY3oZY3phTQh/C/CrTq+ZP5w5Aqd3tlh+DGBtbhGxESFMGNh4HbR8xQow\nhtgFnZ88AWLTJzGy9DiHTnv/v0v5imzCUlOpHziYZbtPc824/oSHBE6XLVjXPUMmT0EwVGze0nRn\nQgrUVFozKSmlVIDwZrTtRfYUeW9hTY136dn7rvV1TMvkuTq3iBmpvQkOapzAvGx5ljXdXVpai+M7\nQ9TECUTVVnFm30Gvjq8rK6NiYw6xC+bzyf5CyqpquX5SYHXZNkidczk1QcGc+GRt0x0J9iLdet1T\nKRVA2rzmaa/p2SAIa5TshU6rkT99+q61TmZiapPNx4orOX7mPF+e07i9Ybq7+FtvbbkiSCdpWGEl\nZP8erCl/PatYtQpqa4lZsIB3d5wiISqUmcN7txnnD9PHDGBdwhCG5jS739P1Xs/Bl3d1tZRSqlXe\nnHl+1uWxECjDm7/c3U3D5OqtdNmuOdiwBFnjtcKKtWsvTnfXVcKGDaMmPJLEvFxq6urbPL4sK5vg\nhATMmHF8vOc0105IJjTYUWdDlxmUEMWxgaOIOpJLfYXLRBDxQ6yveuaplAog3oy27bR1PQPKvvcB\n47bLtl+vcIYnRV/cVpaVRVBsLFFTp3ZZFSUoiKrhaYw8eYy8kkpSk2LcHmtqaihfuZLYBQvIPlDM\n+Zq6gJkYwZ3QKVMI3vEh5Vu30Wv2LHtjJMQm60QJSqmA4jZ5isj3PcQZY8xTnVAf/9n7LsQPtbpt\nXdTXG9YdLGbeqKSL3bOmro7y7BXEzJmDhHbtqiThE8YzbO9fOHjyjMfkWbllK/XnzhGzYD7vbj9F\nUmw404YFZpdtg5QrZlD3O+HYijWMb0ieYP1c9MxTKRVAPPXhVbTyALgfWNzJ9epaF87CoRUw5rPW\njfku9uafo6SiukmX7fntO6grKemSW1Sa65sxmVBTR+HWnR6PK8/KshL71Olk7yvguvH9mwx2CkTT\nxw3mYPxAyja2ct1Tk6dSKoC4TZ7GmJ82PICXsW5TuRf4K5DqLq5bOrAM6mvc3KLS8v7O8qzlEBJC\nzBz3s/p0lt4ZkwGo2rXb7THGGMqys4maMZ2sI2VU1dbz2QAdZeuqb68I8ganEXNwH/XV1Y07ElLg\n3AmorXIbq5RSXcnj6BERSRSRHwE7sNfhNMYsNsYUeIrrdva+A9FJrY7mXHOwiOFJ0fSPa1yarCwr\nm+jLpxLcq1dX1hKAkP79KYvqRfjBT90eU33oEDXHjhE7fz7vbD9JclwEU4YkuD0+kISkX0ZIXQ3l\n27Y3bkxIAQyU5rkLU0qpLuU2eYrIc1irlZQBE4wxPzDGnOmymnWVmguQ+zGkXddiSa/q2no2HCpp\nctZZdfgw1YcOETO/67tswZpQoHTISPqecH+vZ1lWFgBm+mxWHijkMxOSCQrwLtsGKfNnAHA4a03j\nxobbVUqPdHl9lFKqNZ7OPB8BBgDfBU66TNFXdklNz3doBVSXW9c7m9mWV8r5mjpmDnftsrWnu+vC\nW1Saqxs1muRzBZwpaP1/mfKsbCLGjuXjYqipM92iy7bB5ZNSOdyrP2UbNzZu1IkSlFIBxtM1zyBj\nTKTr9Hz2I9aequ/ScP4MJA63liBrZnVuEUECM1IbR6mWZWcRPno0oQMHdmUtm4iZNIkgDEfXb26x\nr7a4mPPbthFjd9kOSYxi4qC4Vt4lMCVGh3FicBoxuXsxtbXWxpj+EByuyVMpFTAC8475rpR+J3xt\ns7U6STNrc4uYMDCOuCjrdpTaM2c4v2Vrl81l686A6VMAKN2yrcW+8k9WgjHUzZjN2oPFfGZicpfN\ngOQrIelTCK++QNnuPdaGoCDr7FOTp1IqQGjyhBa3pwCUV9WyLa+06SjbFZ9AfT0xfk6eQ1KSORnd\nm7q9e1rsK8/OIqRfP5bXxlNXbwJ+YoTWDJk3E4Dcj1c3bkxI0YkSlFIBQ5OnGxsPF1Nbb1rcohLS\nrx8R48b6sWYQGhzEyf7DiDm8v8n2+qoqylevIWbBfN7ZcYrUpGjGJne/HvaMjDRORvfm7AaX654N\nEyXo0mRKqQCgydONNbnFhIcEcdlQ6xYP18QUCN2g5cNG0etcMbWFjUt1Va5fjzl/nrpps9hwuITr\nJw4IiLo6FRcZyokho4ndvxtTb8/hm5ACVeesa9RKKeVnmjzdWJNbREZKAhGh1u0rFevWYc6fJ3bB\nlX6umSVozDgAKnY0zjRUlp2NREWxPGIwxsBnu2GXbYPg9MlEXyjn3KcHrA2uq6sopZSfafJsRVF5\nFZ/ml7W4RSUoKoqoaYGxLFbipAnUSRAFG63Fo40xlGdlEzNrFm/vLWZ0/1hG9ov1cy3bb8g8a27b\n/ctWWhs0eSqlAogmz1asPWhNyTfbvt5p6uspy84ies4cgsLC/Fm1i4YN6s2R2P4Xzzwv7N5DbUEB\ntdNns/nomW45UMjV5GnjKIqIo3S9fd2z4V7PUh00pJTyP02erVhzoIheESGMH2jdH3lh1y7qCouI\n9cNE8O6kJsWwP2EwQfv32medWSBCdvxIAK6f2H0mRmhNTETDdc9dGGMgPBaieuuZp1IqIGjybMYY\nw+rcImYM731xFZKy5VkQHEzM3JYTKfhLYnQYx/ulEFpRRk1eHmUrsomcPJm3DlcwYWAcKX2i236T\nABecPpm4ilJKcw9bG3R1FaVUgNDk2cyxkkpOlJ5vdotKFlGXXUZwfLwfa9ZS1fA0AMo++oiqPXup\nnT6L7cfPdvsu2waD7fs9P/3I5bqnJk+lVADQ5NnMmmZLkFXn5VF14AAxnTSX7e7i3Tzw0QOcq3Y+\nXXBU2iiqgkMpfuVVAFb1GQPAZy6R5Dlp9mTOhkVTuq7humeKtbJKXa1f66WUUpo8m1lzsIj+vSJI\ntbs9y+0VSjprSr7nNz3PhlMb+Pjox45jU/vHkxs3kLrSUkKHDuFvBcFMHhLPoISoTqhp14sMC+Hk\nkDRi9tu348QPBVNnre2plFJ+5LfkKSLBIrJVRN61Xw8TkQ0ikisib4hImL093H6da+9PcXmPx+3t\n+0RkYUfrVF9vWJtbxMwRvS9OLlCWlU34yBGEDRnS0bdvYVP+Jjbkb0AQPjzyoeP41KRo9icMBqBu\n2mz25pfx2W4+UKi5oEmT6XOuiOIjeXq7ilIqYPjzzPMbwF6X188CzxtjRgBngPvt7fcDZ+ztz9vH\nISJjgTuAccA1wK9EpOmCnA7tzT/Hmcqai7eo1JWWUrlpEzGdNDHCS9tfondEb74w5gtsOLWB0gul\njuKHJ0WzJzEFgHUDxiNy6XTZNhhs3++5+4NVmjyVUgHDL8lTRAYBnwFesV8LsAD4h33I68BN9vMb\n7dfY+6+0j78R+KsxpsoYcxjIBTo0g8Ga3CKg8Xpn+apVUFfXKWt3bj69mQ35G7hv/H3cMPwG6kwd\ny48td/QeQxKjWT9oImv/5xn+UJHA1JRE+vWK8Hld/Wn83AwqQ8IpXb8Beg2EoBBNnkopv/PXmecL\nwLcBe+JSegOlxpiGkSDHgYYFMwcCeQD2/rP28Re3txLTLmtyixnRN+ZiAipbnkVwUh8iJkzoyNu2\naun2pfSO6M2tabcyOnE0Q2KHOO66DQsJYlBiNH+piOdgYUW3WvTaW+HhoZwaPIqYfbsgOATiButE\nCUopv+vy5Cki1wMFxpiWKzl3Xpn/LSKbRGRToctE6q6qa+vZeLiEWcOtha/rq6upWLWK2HnzkSDf\nfkxbTm9hw6kN3Dv+XiJDIhERMlMy2Zi/kTMXnE18npoUQ25BOUEC147v79N6BgqZNJnkMyc5nZev\n63oqpQKCP848ZwE3iMgR4K9Y3bU/B+JFJMQ+ZhDQMKTyBDAYwN4fBxS7bm8lpgljzMvGmAxjTEZS\nUlKrldp67Azna+qYaXfZVm7YSH1FBTGdMKvQ0u1LSYxI5La02y5uW5iysF1dtw2jgmcO70OfmJYL\nel8KBl1h3e+5+8OVeq+nUiogdHnyNMY8bowZZIxJwRrwk2WM+QKQDXzOPuxu4N/287ft19j7s4wx\nxt5+hz0adxgwEnBZANKZNQeLCRKYnmqdeZZnZyGRkURPn97et2zV1oKtrD+1nvvG30dkSOTF7WkJ\naQztNdRx121qUgzAJTMxQmvGzJtGdXAoZ9ZttJJnZTFccH5frFJK+Uog3ee5GPiWiORiXdN81d7+\nKtDb3v4t4DEAY8xu4G/AHuAD4KvGmLr2Fr4mt4gJg+KJiwzFGENZVjbRs2YSFOHbAThLt1lnnbeO\nurXJdhEhc2gmOfk5lFwo8fr9rhrblzsvH8L1l+D1zgZhkRHkDxxB9L6djSNu9bqnUsqP/Jo8jTEr\njDHX288PGWMuN8aMMMbcaoypsrdfsF+PsPcfcon/sTFmuDEmzRjzn/bWo7yqlu15pcweYZ11Xtiz\nh9r8fJ+v3bmtYBvrTq3j3nH3EhXaciKD9nTd9o2N4On/mkBMeEjbB3dnE9MZVJRHQbU1WT9nNHkq\npfwnkM48/Wbj4WJq6w2z7PU7y5dnQVAQMfOu8Gk5rV3rdDUqYRQpvVL46MhHPi33UjBo3kyCMezM\nsS9r63VPpZQfafIEVh8oJjwkiClDEwAoy7ZWKAlJTPRZGdsKtrH25FruGXdPq2edYHXdXj30ajbm\nb3TUddsTpM2bQa0EUZCzG8LjNHkqpfxKkyew9mARU1MSiQgNpubECar27vX5xAgvbX+JhPAEbk+7\n3eNxC1MWUm/q2zXX7aUsJCaawgGpRO/bidHbVZRSftbjk2dhWRWf5pcx077eWZa9AoAYH04Ev61g\nG2tOruGe8e7POhtc7Lo9ql23LUxMJ6XwKBVhA3XAkFLKr3p88lx70JqSr2E+2/KsLMKGDSN82DCf\nldFw1nlH2h1tHtswYUJOfg7F54t9VodLwcArZhJq6sg7EWoNGKqvbztIKaU6QY9PnlFhIcwdlcS4\nAXHUlZVRkZNDrA8nRtheuJ01J9dw97i72zzrbNDQdet0woRL3fD5M6lHOH3wAtRVQXm+v6uklOqh\nenzyvHpsP35/3+UEBwkVq1ZBTY1Pu2yXbl9KfHg8d46+0+uYkfEjGRY3TEfdNhMSF0dx/yFUH7EH\nU+l1T6WUn/T45OmqbHkWwYmJRE6a5JP321G4gzUn1ngcYduaixMmnM6h6HyRT+pyyZiQTt/CAkw9\nmjyVUn6jydNmamooX7mSmHnzkOAOLQt6UXvOOhtc7Lo9ql23rgbOnUF4XS3nz4TpRAlKKb/R5Gmr\n3LSJ+rIyn13v3Fm4k9UnVju61ulqRPwIUuNSddRtM0PmWZPEFxcl6JmnUspvNHnayrKykfBwomfM\n8Mn7Ld2+lLjwuHaddULjqNtNpzdp162L0KQkSvsMoPR0OEaTp1LKTzR5AsYYypcvJ3rmTIKinJ8l\nNrezcCerTqzinnH3EB0a3e73WThUJ0xoTf2EdKSwnprCQ20frJRSnUCTJ1C1fz81J08S46NZhV7a\n8VKHzjobjEgYwfC44dp128yAuTMIrqmn/lQJ1Jz3d3WUUj2QJk+gbPlyECF23rwOv9euol2sPL6S\nu8fe3aGzzgaZKZlsyteuW1cNi2NXFoZD6TE/10Yp1RNp8gTKs7KJnDiRkKSkDr9XR691Npc5NBOD\nYdnRZT55v0tB6IABnI+Lo7IwjLriw/6ujlKqB+rxybPm9Gku7Nrlk4kRdhftZuXxldw19i5iwmJ8\nUDur63ZE/IhOnTChvLq80967s9SNm0hlQRinjuzxd1WUUj1Qj0+e5dnZAD65RWXp9qX0CuvF50d/\nvsPv5SpzaCabT2+msLLQp+8L8OaBN5nxlxn8YO0PulUS7TdvHnVVwZTs2O7vqiileqAenzwj09Pp\n87WHCRs+vEPvs7t4N58c/8SnZ50NMlM6p+t2X8k+frzhxwyOHcybuW9yy9u3sPHURp+W0Vn6zbFu\nKar/9KCfa6KU6ol6fPKMGD2apK9+FRHp0Pu8tO0l66xzjG/POgGGxw+3um59OOq2oqaCRZ8sIjYs\nlt9f+3tev+Z1QoNDuf+j+3l247Ocrw3sUaxhKSkQGUz4iRJq6nR1FaVU1+rxydMXdhfvZsXxFdw1\n9i5iw2I7pYzMlEy2nN5CQWVBh9/LGMMP1/6QY2XH+Mncn9Ansg/pfdP52/V/4/OjP88f9/6R2965\nje2FgdslKiIEp/QmuLCWHXln/F0dpVQPo8nTB17a/hKxYbGdctbZYOHQhT7ruv37/r/znyP/4eH0\nh5naf+rF7VGhUTw+7XFeyXyFqroq7vrPXfxiyy+orqvucJmdodekNOoqg9m7dr2/q6KU6mE0eXbQ\n7qLdrMjr3LNOgNT4VEYmjOzwqNs9xXt4ZuMzzBo4i/sn3N/qMdOSp/HPG/7JjcNv5Dc7f8Od793J\nvpJ9HSq3M8RPnwZA1boV/q2IUqrH0eTZAZU1lXxn9XfoHdGbL4z5QqeXlzk0k60FWzldcbpd8WXV\nZTyy4hESIhJ4evbTBIn7H39sWCxPznqSXy74JSUXSrjjvTt4ecfL1NbXtrf6Phc+aRpBofUk5O7i\nQk2dv6ujlOpBNHl2wLM5z3L47GGenvN0p551NmgYdfvxMedz3RpjeGLtE5yqOMWSK5aQEJHgVdwV\ng6/gzRve5KohV/Hi1he56z93cehsYMwpK71TiUqqZnDhabYeK/V3dZRSPYgmz3Z6/9D7/OvAv3hg\nwgPMGOCblVjakhrX/q7bP3/6Z5YdXcY3p3yTyX0nO4qNj4jnuSue47m5z3Gs7Bi3vXMbf9jzB+qN\nn0e5hkUROTCUmPLz1Bbp9IVKqa6jybMd8s7l8eT6J0lPSufB9Ae7tOyFQxeypWCLo67bnYU7WbJp\nCfMGzePucXe3u+xrhl3DWze+xfTk6fwk5yfc/+H9HC873u73M8ZwofYCZdVl7X6P6FHJAEzS5cmU\nUl0oxN8V6G5q6mr49spvEyRBPDv3WUKDQru0/MyUTH657ZcsO7qML479YpvHn606y6JPFtE3si8/\nmv2jDt/P2ieyDy8ueJG3ct/i2ZxnueXtW/jGlG8wtNdQymvKqaipoLza/mq/dn1eXlNORXXj6zpj\nXat8Yf4LXDnkSsf1iUgbQdLlRUSMTuvQ96WUUk50efIUkcHA74F+gAFeNsb8XEQSgTeAFOAIcJsx\n5oxYf+1/DlwHVAL3GGO22O91N/Bd+61/ZIx5vbPr/4utv2BX8S5+Nu9nDIgZ0NnFtTAsbhijEkbx\n0dGP2kyexhi+u/q7FJwv4PVrXicuPM4ndRARbh55M9OSp/H9Nd/n6Y1Pt3pcZEgkMaExRIdGEx0a\nTUxoDINjBhMTFnPxdXRoNP8++G+W5Cxh7sC5hAY7+2dE+qTSZ/i/YFDX/yyUUj2XP848a4FHjDFb\nRCQW2Cwiy4B7gOXGmGdE5DHgMWAxcC0w0n5MA5YC0+xk+wSQgZWEN4vI28aYTrtjftXxVfxu9++4\nPe12rh56dWcV06aFKQt5ceuL5Ffk0z+6v9vjXt/9OiuOr2Dx1MVMTJro83oMiBnAy5kvs6NwB0Bj\nQgyLJiokipAg75rX6MTRfOXjr/CXT//CXePuclaJhBQw9XA2D3p3bIpFpZTyVpdf8zTGnGo4czTG\nlAF7gYHAjUDDmePrwE328xuB3xvLeiBeRJKBhcAyY0yJnTCXAdd0Vr0LKgv439X/y8iEkSzKWNRZ\nxXglc2gmAB8fdT/qdlvBNl7Y8gJXDbmqU2+jCZIg0vumk943nZEJI0mOSaZXWC+vEyfArIGzmDVg\nFr/e8WvOVp11VoGEFOurXvNUSnUhvw4YEpEUYDKwAehnjDll78rH6tYFK7HmuYQdt7e52+5zdfV1\nfGfVd7hQd4Elc5cQERLRGcV4LSUuhbSEND488mGr+89cOMOiTxaRHJ3Mk7Oe7PB1zq7wSMYjlNeU\n89L2l5wFJqRAZAJUtX/QkVJKOeW35CkiMcA/gW8aY8657jPGGKyuWF+V9d8isklENhUWOl/W67Vd\nr7EhfwOPXf4YqfGpvqpWhyxMWci2wm3kV+Q32V5v6nl89eOUXCjhp/N+2iX3n/rCyISR3DziZv66\n768cO3fM+8C4gbD4CIy7qc1DlVLKV/ySPEUkFCtx/skY8y9782m7Oxb7a8MM6CeAwS7hg+xt7ra3\nYIx52RiTYYzJSEpKclTXrQVb+b9t/8e1Kddy84ibHcV2pswUq+u2+Vy3r+16jTUn1rB46mLG9h7r\nj6q128OTHyY0KJQXtrzg76oopZRHXZ487dGzrwJ7jTE/c9n1NtBwE+LdwL9dtt8llunAWbt790Mg\nU0QSRCQByLS3+czZqrMsXrmY5OhkvjfjewHV/Tm011BGJ45u0nWbk5/Di1tf5NqUa7kt7TY/1q59\n+kT24b7x97Hs6DK2nN7i7+oopZRb/jjznAV8CVggItvsx3XAM8DVInIAuMp+DfA+cAjIBX4DPARg\njCkBngJy7MeT5IyTbAAAEFNJREFU9jafaJjOrrCykOeueC4guz8Xpixke+F28ivyKTpfxOKVixkS\nO4QnZj4RUIneibvG3kXfyL4s2bQEq/deKaUCT5ffqmKMWQ24+8ve4i55+/rnV92812vAa76rXaM3\n9r3B8mPLWZSxiPF9xndGER2WOTSTn2/5OR8c/oDVJ1dzrvocS69aSnRotL+r1m5RoVF8bcrX+N6a\n7/HBkQ+4dti1/q6SUkq1oNPztWJfyT6ey3mO2QNn86WxX/J3ddwa0msIYxLH8OLWF9lwagPfmfYd\n0hK7/0w7n039LKMTR/PC5heoqqvyd3WUUqoFTZ7NVNZU8ujKR+kV3osfzfqRx2W7AkFmSibV9dXc\nMPyGgBrQ1BHBQcE8kvEIJytO8ue9f/Z3dZRSqgWd27aZZzY+w5GzR3g582V6R/b2d3XadOuoW6mp\nr+HusXd32+ucrZmePJ25g+bymx2/4aYRN3m9hJpSSnWFwD6t6mLvHXqPN3Pf5IEJDzA9ebq/q+OV\nuPA4Hpz0IFGhUf6uis89ctkjVNZWsnT7Un9XRSmlmtDkacs7l8dT659ict/JPJT+kL+ro4DU+FRu\nGXkLf9/3dw6fPezv6iil1EWaPLGWGXt05aPWMmNznnU0L6vqXA+lP0R4SDjPb37e31VRSqmLNHkC\nP9/yc3YX7+apmU+RHJPs7+ooF70je/PAhAfIzssmJz/H39VRSilAkycrj6/k9T2vc3va7Vw51Pli\nzKrzfXHMF+kf3Z8lm5ZQb+r9XR2llNLkGSRBTOs/jUenPurvqig3IkIi+Prkr7OneA/vHXrP39VR\nSimkp02BlpGRYTZt2tRkmzHmkrrN41JUb+q58707KblQwjs3veP3ZeGUUpcOEdlsjMlwEtPjzzwB\nTZzdQJAEsShjEfkV+fxx7x/9XR2lVA+nyVN1G1P7T2X+4Pm8svMVis8X+7s6SqkeTJOn6la+ddm3\nqKqt4lfbfuXvqiilejBNnqpbSYlL4da0W/nngX9ysPSgv6ujlOqhNHmqbufBSQ8SFRLFzzb/rO2D\nlVKqE2jyVN1OQkQCX574ZVYeX8n6U+v9XR2lVA+kyVN1S58f83kGRA9gSc4S6urr/F0dpVQPo8lT\ndUvhweF887Jvsu/MPt459I6/q6OU6mE0eapu65qUa5jYZyIvbnmRyppKf1dHKdWDaPJU3ZaIsGjq\nIgrOF/DOQT37VEp1HV17S3Vrk/tO5rWFr3FZv8v8XRWlVA+iyVN1e1P7T/V3FZRSPYx22yqllFIO\nafJUSimlHNLkqZRSSjmkyVMppZRySJOnUkop5ZAmT6WUUsqhbp88ReQaEdknIrki8pi/66OUUurS\n162Tp4gEA/8HXAuMBe4UkbH+rZVSSqlLXbdOnsDlQK4x5pAxphr4K3Cjn+uklFLqEtfdk+dAIM/l\n9XF7WxMi8t8isklENhUWFnZZ5ZRSSl2aesT0fMaYl4GXAUSkUESONjukD1DUgSJ6enwg1EHjNV7j\nNb690pwGdPfkeQIY7PJ6kL3NLWNMUvNtIrLJGJPR3kr09PhAqIPGa7zGa3xH4p3GdPdu2xxgpIgM\nE5Ew4A7gbT/XSSml1CWuW595GmNqReRh4EMgGHjNGLPbz9VSSil1ievWyRPAGPM+8H4H3+Zlje8w\nf9dB4zVe4zW+y+LFGNPBMpVSSqmepbtf81RKKaW6XI9LniLymogUiMgul223ishuEakXEY8jttzE\nPycin4rIDhF5U0TiHcY/ZcduE5GPRGSAk3iXfY+IiBGRPg7L/4GInLDL3yYi1zktX0S+Zn8Gu0Xk\nJw7Lf8Ol7CMiss1hfLqIrLfjN4nI5Q7jJ4nIOhHZKSLviEgvD/GDRSRbRPbY3+s37O2JIrJMRA7Y\nXxMcxnvVBj3Ee9UGPcR71Qbdxbvs99gGPZTvVRv0VL43bdBD+V61QQ/xXrVBD/FO2mCEiGwUke32\ne/zQ3j5MRDaINVXpG2INonQS/7Ad29bfEHfxfxJrqtRdYv2ehTqMf9XetkNE/iEiMU7iXfb/QkTK\n21H/34nIYZd2kO7uPQAwxvSoBzAXmALsctk2Bus+nxVARjviM4EQ+/mzwLMO43u5PP868JKTeHv7\nYKyBU0eBPg7L/wGwqAOf33zgYyDcft3Xaf1d9v8U+L7D8j8CrrWfXwescBifA1xhP78PeMpDfDIw\nxX4eC+zHmhryJ8Bj9vbH3LUBD/FetUEP8V61QQ/xXrVBd/HetkEP5XvVBj3Ee9UGPdXfmzbooXyv\n2qCHeCdtUIAY+3kosAGYDvwNuMPe/hLwoMP4yUAKcMTdz6+N+OvsfQL8pR3lu7bBn2H/Pnkbb7/O\nAP4AlLej/r8DPtdWG2x49LgzT2PMSqCk2ba9xph9HYj/yBhTa79cj3W/qZP4cy4vowG3F6Jbi7c9\nD3zbU2wb8V5xE/8g8Iwxpso+pqA95YuIALdh/eI5iTdAw3/qccBJh/GjgJX282XALR7iTxljttjP\ny4C9WLNa3Qi8bh/2OnCTk3hv26CHeK/aoId4r9qgh+8fvGiDbcS3yUO8V22wrfLbaoMe4r1qgx7i\nnbRBY4xpOLMKtR8GWAD8w97uqQ22Gm+M2WqMOeKuXC/i37f3GWAj7tugu/hzcPFnEIn7NthqvFhz\nnT+H1QYd17+t77u5Hpc8u8B9wH+cBonIj0UkD/gC8H2HsTcCJ4wx252W6+Jhu7vkNXHT5ejBKGCO\n3WX0iYhMbWcd5gCnjTEHHMZ9E3jO/vyWAI87jN9N45zIt9J04g23RCQF67/1DUA/Y8wpe1c+0M9h\nvGMe4r1qg83jnbZB1/j2tMFW6u+oDTaLd9wG3Xx+XrfBZvGO22CzeEdtUESC7a7lAqxkexAodfkH\nqtWpSt3FG2MctUFP8XZ37ZeAD5zGi8hvsX5/RgMvOox/GHjb5fewPfX/sd0GnxeRcI9v4u0p6qX0\nwOqaaNFtiBfdtm3E/y/wJvYoZqfx9r7HgR96Gw9EYf3yxdmvj+Chy6W18rH+0Adj/TP1Y6z7ZZ3E\n78Jq6II1Wf9hT5+Bh89vKfCI088f+AVwi/38NuBjh/GjsbrdNgNPAMVe1CHGPv6/7NelzfafcRLf\njjboLt7bNthqvIM2eDG+nW2w+efntA02j3faBt19ft62weblO22DzeMdt0E7Lh7IBmZjLZLRsH1w\na79jHuLHu2xr8+fXRvxvgBc6EB8M/Aq410H8XGA1jZcu3Hbbuisfq0tdgHCsM3e3l4+MMZo8m21f\nQTuTJ3APsA6Iam/59r4hbTV6mibPCVj/PR2xH7XAMaB/O8t3u8/dMVj/Yc53eX0QSHL4+YUAp4FB\nTj8/4CyNt10JcK4Dn/8oYGMb8aFY1/a+5bJtH5BsP08G9jmJd9IG3cV72wY9le9NG2we77QNelG+\nxzbo5vP3ug16+Py8aoNuyve6DXrx/bfZBpsd/33gUay5XRuSxwzgQwfxi1xeH8HL5Nk8HivxvwUE\ntSfeZdtc4F0H8U9gnbE2tMF6XP6ZaEf589oqX7ttfUBErsHqZ7/BGFPZjviRLi9vBD71NtYYs9MY\n09cYk2KMScHqrplijMl3UH6yy8ubsf6Ld+ItrAEbiMgoIAznkzRfBXxqjDnuMA6s60tX2M8XAI66\nfUWkr/01CPgu1mALd8cK8Cqw1xjzM5ddbwN328/vBv7tMN7burYa720b9BDvVRtsLd5JG/RQvldt\n0MPn51UbbOPzb7MNeoj3qg16+P6dtMEksUdTi0gkcDXWtdNs4HP2YZ7aYGvxXv/NcRcvIg8AC4E7\njTH1DuP3icgIe5sAN7irk5v4zcaY/i5tsNIYM8Jh/ZNdyr+Jtv4OevvfwaXywBoIcAqowfolvx/r\nl/U4UIX1n6fb/9jcxOdiLY22zX54Gi3bWvw/7R/UDuAdrAEcXsc3238EzyPlWiv/D8BOu/y3sc+g\nHMSHAX+0v4ctwAKn9cca6faVdv78ZmN1d23H6j68zGH8N7BGPe4HnsFzd99srMEFO1x+3tcBvYHl\nWH80PwYSHcZ71QY9xHvVBj3Ee9UG3cV72wY9lO9VG/QQ71Ub9FR/b9qgh/K9aoMe4p20wYnAVvs9\ndmF3LwKpWAN1coG/Y488dhD/dbsN1mL9M/CKw/harDP+hu/L3YjlFvFY3fVr7DawC/gTLqNvvSm/\n2TGeRtu6q3+WS/l/xB6R6+6hMwwppZRSDmm3rVJKKeWQJk+llFLKIU2eSimllEOaPJVSSimHNHkq\npZRSDmnyVMqH7Gm9vuny+kMRecXl9U9F5FvtfG+3K0V4Eft1EdkrIn9qtj1dXFYwEWt1k0XtLUep\nnkKTp1K+tQaYCRdveO8DjHPZPxNY64d6PQRcbYz5QrPt6Vj3GQYsEQnxdx2Uak6Tp1K+tRZrajSw\nkuYuoExEEuyJpsdg3cSPiDwqIjn2RNQX1yQUkS+Ktd7gNhH5tVirReCyv49Yaz9+pnnhIvItsdZT\n3NVwBiwiL2HdQP8fEfkfl2PDgCeB2+2ybrd3jRWRFSJySES+7qBeC0TkLZfXV4vIm/bzTLvOW0Tk\n72Kv1Sgi37c/g10i8rI9uwt2+S+IyCasCQSUCiiaPJXyIWPMSaBWRIZgnWWuw5pxZgbWWoM7jTHV\nIpIJjMSaxDwduExE5orIGOB2YJYxJh2ow1rlBAAR6Qe8hzUrynuuZYvIZcC9wDSs9Qm/LCKTjTFf\nwZoxZr4x5nmXulZjze7yhjEm3Rjzhr1rNNY0a5cDT4hIaFv1smUDo0UkyX59L/CaWAsrfxe4yhgz\nBdgENHRd/9IYM9UYMx5rGarrXd4vzBiTYYz5aRsfu1JdTrtDlPK9tViJcybWor4D7ednsbp1wVq8\nOhNrmjCwVtkYiTV12GVAjn0SFok16TpYE4ovB75qjPmklXJnA28aYyoARORfWEtsbW3lWE/eM9a6\nmFUiUoC14smVHuoFWOskisgfgC+KtbTUDOAu4BqsBZ/X2LFhWP9UAMwXkW9jrcySiLU01zv2vjdQ\nKkBp8lTK9xque07A6rbNAx4BzgG/tY8R4GljzK9dA0Xka8DrxpjW1oOsxZo/dSHQWvL0lSqX53VY\nfyfEQ71c/RYr+V0A/m6MqbW7YpcZY+50PVBEIrCWnsowxuSJyA+ACJdDKjr2bSjVebTbVinfW4vV\n/VhijKkzxpRgrRs4g8bBQh8C97lc+xtor6yxHPicyyobiSIy1I4xWAtdjxaRxa2Uuwq4SUSiRCQa\na7L5VW3UtQyI9eJ78lSvi+xu65NY3bQN/yisB2a5rJoRLdbKJw2Jssj+HD7X/P2UClSaPJXyvZ1Y\no2zXN9t21hhTBGCM+Qj4M7BORHYC/wBijTF7sBLPRyKyA1iGtT4odlwdcCewQEQeci3UGLMFa2WQ\njVjXWV8xxrTVZZuNNUDIdcBQC23Vq5k/AXnGmL12bCHWWqN/sWPXAaONMaVYCyfvwvpnIqeNuioV\nMHRVFaWUT4nIL4GtxphX/V0XpTqLJk+llM+IyGasa5VX24OOlLokafJUSimlHNJrnkoppZRDmjyV\nUkophzR5KqWUUg5p8lRKKaUc0uSplFJKOaTJUymllHLo/wMessSfRHaHNAAAAABJRU5ErkJggg==\n", 615 | "text/plain": [ 616 | "
" 617 | ] 618 | }, 619 | "metadata": { 620 | "tags": [] 621 | } 622 | } 623 | ] 624 | }, 625 | { 626 | "metadata": { 627 | "trusted": true, 628 | "_uuid": "17edbadee337f950812ab631b063bb2d9842cd18", 629 | "id": "GU0knVwz8dKw", 630 | "colab_type": "code", 631 | "outputId": "f5230dbd-33e0-4ff7-8a89-283187a1537a", 632 | "colab": { 633 | "base_uri": "https://localhost:8080/", 634 | "height": 35 635 | } 636 | }, 637 | "cell_type": "code", 638 | "source": [ 639 | "from gensim import corpora\n", 640 | "import numpy\n", 641 | "import random\n", 642 | "\n", 643 | "# reuse the tokenizer to clean the text.\n", 644 | "clean_text = news['TITLE'].apply(tokenize)\n", 645 | "\n", 646 | "# Reproducible topics.\n", 647 | "numpy.random.seed(seed)\n", 648 | "random.seed(seed)\n", 649 | "\n", 650 | "# Create Dictionary and a Corpus (basic Gensim structures)\n", 651 | "id2word = corpora.Dictionary(clean_text)\n", 652 | "id2word.filter_extremes(no_below=5, no_above=0.05)\n", 653 | "print(id2word)\n", 654 | "corpus = [id2word.doc2bow(text) for text in clean_text]" 655 | ], 656 | "execution_count": 0, 657 | "outputs": [ 658 | { 659 | "output_type": "stream", 660 | "text": [ 661 | "Dictionary(14251 unique tokens: ['caused', 'data', 'fed', 'official', 'say']...)\n" 662 | ], 663 | "name": "stdout" 664 | } 665 | ] 666 | }, 667 | { 668 | "metadata": { 669 | "trusted": true, 670 | "_uuid": "137144ecd494ce8a6e7f4ef4236083567ab94395", 671 | "id": "c12AGufP8dLF", 672 | "colab_type": "code", 673 | "outputId": "9bb405cc-02af-4040-f425-f6079424ec5f", 674 | "colab": { 675 | "base_uri": "https://localhost:8080/", 676 | "height": 88 677 | } 678 | }, 679 | "cell_type": "code", 680 | "source": [ 681 | "import gensim\n", 682 | "import re\n", 683 | "\n", 684 | "num_topics = 4\n", 685 | "lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=id2word, num_topics=num_topics, random_state=seed)\n", 686 | "\n", 687 | "# inspect the discovered topics.\n", 688 | "def print_model(model):\n", 689 | " \n", 690 | " def print_topic(topic):\n", 691 | " topic_no, topic_repr = topic\n", 692 | " parts = topic_repr.split(\"+\")\n", 693 | " words = [re.search('\"(.*)\"', part).group(1) for part in parts]\n", 694 | " return \"{}: {}\".format(topic_no, words)\n", 695 | " \n", 696 | " for topic in model.print_topics():\n", 697 | " print(print_topic(topic))\n", 698 | " \n", 699 | " \n", 700 | "print_model(lda_model)" 701 | ], 702 | "execution_count": 0, 703 | "outputs": [ 704 | { 705 | "output_type": "stream", 706 | "text": [ 707 | "0: ['apple', 'fcc', 'air', 'may', 'car', 'woman', 'say', 'animal', 'user', 'fda']\n", 708 | "1: ['u', 'sale', 'deal', 'earnings', 'samsung', 'stock', 'china', 'profit', 'price', 'galaxy']\n", 709 | "2: ['2014', 'video', 'nokia', 'selena', 'gomez', 'google', 'bieber', 'justin', 'star', 'show']\n", 710 | "3: ['microsoft', 'one', 'internet', 'xbox', 'time', 'net', 'launch', 'tv', 'review', 'neutrality']\n" 711 | ], 712 | "name": "stdout" 713 | } 714 | ] 715 | }, 716 | { 717 | "metadata": { 718 | "trusted": true, 719 | "_uuid": "14375deab941d580e1bb1693921cefbe8b5ea2aa", 720 | "id": "ejTBuNgA8dLT", 721 | "colab_type": "code", 722 | "outputId": "e060f5eb-4c55-4b2c-89a6-8f82937385cd", 723 | "colab": { 724 | "base_uri": "https://localhost:8080/", 725 | "height": 124 726 | } 727 | }, 728 | "cell_type": "code", 729 | "source": [ 730 | "num_topics = 6\n", 731 | "lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=id2word, num_topics=num_topics, random_state=seed)\n", 732 | "print_model(lda_model)" 733 | ], 734 | "execution_count": 0, 735 | "outputs": [ 736 | { 737 | "output_type": "stream", 738 | "text": [ 739 | "0: ['woman', 'twitter', 'may', 'car', 'user', 'z', 'jay', 'animal', 'america', 'mers']\n", 740 | "1: ['google', 'u', 'sale', 'earnings', 'stock', 'china', 'galaxy', 'price', 'facebook', 'share']\n", 741 | "2: ['amazon', 'apple', 'samsung', 'net', '2014', 'air', 'netflix', 'q1', 'macbook', '“']\n", 742 | "3: ['microsoft', 'one', 'internet', 'xbox', 'nokia', 'review', 'first', 'season', 'launch', 'beyonce']\n", 743 | "4: ['show', 'selena', 'gomez', 'video', 'bieber', 'throne', 'game', 'justin', 'tour', 'hbo']\n", 744 | "5: ['fcc', 'profit', 'deal', 'neutrality', 'ceo', 'cable', 'comcast', 'company', 'fda', 'land']\n" 745 | ], 746 | "name": "stdout" 747 | } 748 | ] 749 | }, 750 | { 751 | "metadata": { 752 | "_uuid": "2a9153ea9b11220f3edc43523512ce355373febb", 753 | "trusted": true, 754 | "id": "YzehNzqI8dLf", 755 | "colab_type": "code", 756 | "outputId": "ea88a59e-bfdc-4ad6-d675-66eabb8dc6f9", 757 | "colab": { 758 | "base_uri": "https://localhost:8080/", 759 | "height": 359 760 | } 761 | }, 762 | "cell_type": "code", 763 | "source": [ 764 | "topic_mapping = {\n", 765 | " 0: \"Social Media\",\n", 766 | " 1: \"Business\",\n", 767 | " 2: \"Company\",\n", 768 | " 3: \"Technology\",\n", 769 | " 4: \"Entertainment\",\n", 770 | " 5: \"Other\"\n", 771 | "}\n", 772 | "\n", 773 | "unseen_headlines = [\n", 774 | " \"Twitter keeps your direct messages, even years after you delete them\",\n", 775 | " \"Samsung releases new product - stock rises\",\n", 776 | " \"View: Towards creating a profit-oriented and productive company\",\n", 777 | " \"Music maverick A.R. Rahman attends 61st Grammy Awards\",\n", 778 | " \"Google,Apple may have multibillion-dollar US fine over privacy lapses\",\n", 779 | " \"Brilliant, Brilliant, Brilliant Brilliant Brilliant by Joel Golby – review\"\n", 780 | "]\n", 781 | "\n", 782 | "def rank_headline(headline):\n", 783 | " bow_vector = id2word.doc2bow(tokenize(headline))\n", 784 | " lda_vector = lda_model[bow_vector]\n", 785 | " top_topic = topic_mapping[max(lda_vector, key=lambda item: item[1])[0]]\n", 786 | " distribution = {topic_mapping[topic_no]: proportion for topic_no, proportion in lda_vector}\n", 787 | " return top_topic, distribution\n", 788 | "\n", 789 | "for headline in unseen_headlines:\n", 790 | " top_topic, distribution = rank_headline(headline)\n", 791 | " print(\"{}: {} \\n Topic Mix: {}\\n\".format(headline, emphasize(top_topic), distribution))" 792 | ], 793 | "execution_count": 0, 794 | "outputs": [ 795 | { 796 | "output_type": "stream", 797 | "text": [ 798 | "Twitter keeps your direct messages, even years after you delete them: \u001b[1;31mBusiness\u001b[0m \n", 799 | " Topic Mix: {'Social Media': 0.27798557, 'Business': 0.3037616, 'Company': 0.21544191, 'Technology': 0.02093739, 'Entertainment': 0.16092257, 'Other': 0.020951008}\n", 800 | "\n", 801 | "Samsung releases new product - stock rises: \u001b[1;31mBusiness\u001b[0m \n", 802 | " Topic Mix: {'Social Media': 0.027778333, 'Business': 0.3626493, 'Company': 0.3400906, 'Technology': 0.21392478, 'Entertainment': 0.027779246, 'Other': 0.02777779}\n", 803 | "\n", 804 | "View: Towards creating a profit-oriented and productive company: \u001b[1;31mCompany\u001b[0m \n", 805 | " Topic Mix: {'Social Media': 0.19447207, 'Business': 0.027782252, 'Company': 0.36109138, 'Technology': 0.027778478, 'Entertainment': 0.19437334, 'Other': 0.19450253}\n", 806 | "\n", 807 | "Music maverick A.R. Rahman attends 61st Grammy Awards: \u001b[1;31mEntertainment\u001b[0m \n", 808 | " Topic Mix: {'Social Media': 0.23345962, 'Business': 0.033333622, 'Company': 0.033505592, 'Technology': 0.03335983, 'Entertainment': 0.6330076, 'Other': 0.033333756}\n", 809 | "\n", 810 | "Google,Apple may have multibillion-dollar US fine over privacy lapses: \u001b[1;31mBusiness\u001b[0m \n", 811 | " Topic Mix: {'Social Media': 0.01888541, 'Business': 0.56769323, 'Company': 0.23154752, 'Technology': 0.1448142, 'Entertainment': 0.018519243, 'Other': 0.018540384}\n", 812 | "\n", 813 | "Brilliant, Brilliant, Brilliant Brilliant Brilliant by Joel Golby – review: \u001b[1;31mCompany\u001b[0m \n", 814 | " Topic Mix: {'Social Media': 0.01852453, 'Business': 0.018518616, 'Company': 0.6838496, 'Technology': 0.13125987, 'Entertainment': 0.12932873, 'Other': 0.018518636}\n", 815 | "\n" 816 | ], 817 | "name": "stdout" 818 | } 819 | ] 820 | }, 821 | { 822 | "metadata": { 823 | "_uuid": "5884b4083819b90886bd538ae963e0a471b91f57", 824 | "trusted": true, 825 | "scrolled": true, 826 | "id": "4_hs3aFU8dME", 827 | "colab_type": "code", 828 | "outputId": "6f12e1bf-0e7d-4e29-f16c-bd5146ba3860", 829 | "colab": { 830 | "base_uri": "https://localhost:8080/", 831 | "height": 73 832 | } 833 | }, 834 | "cell_type": "code", 835 | "source": [ 836 | "unseen_headlines = [\n", 837 | " \"The President send social media messages via twitter in America.”\",\n", 838 | " \"Apple develops new IRIS technology in phone.\"\n", 839 | "]\n", 840 | "\n", 841 | "\n", 842 | "for headline in unseen_headlines:\n", 843 | " top_topic, distribution = rank_headline(headline)\n", 844 | " print(\"{}: {} - {}\".format(headline, emphasize(top_topic), distribution))" 845 | ], 846 | "execution_count": 0, 847 | "outputs": [ 848 | { 849 | "output_type": "stream", 850 | "text": [ 851 | "The President send social media messages via twitter in America.”: \u001b[1;31mSocial Media\u001b[0m - {'Social Media': 0.41352424, 'Business': 0.19892, 'Company': 0.21933755, 'Technology': 0.016666682, 'Entertainment': 0.1344204, 'Other': 0.017131094}\n", 852 | "Apple develops new IRIS technology in phone.: \u001b[1;31mCompany\u001b[0m - {'Social Media': 0.03337152, 'Business': 0.033333346, 'Company': 0.6227204, 'Technology': 0.24390158, 'Entertainment': 0.033333346, 'Other': 0.03333976}\n" 853 | ], 854 | "name": "stdout" 855 | } 856 | ] 857 | }, 858 | { 859 | "metadata": { 860 | "id": "IROJwJ9PKuH6", 861 | "colab_type": "code", 862 | "colab": {} 863 | }, 864 | "cell_type": "code", 865 | "source": [ 866 | "-" 867 | ], 868 | "execution_count": 0, 869 | "outputs": [] 870 | } 871 | ] 872 | } --------------------------------------------------------------------------------