ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
02_probabilistic_latent_analysis.ipynb
(118544B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {
6 "slideshow": {
7 "slide_type": "slide"
8 }
9 },
10 "source": [
11 "# Topic Modeling: probabilistic LSA / Non-negative Matrix Factorization"
12 ]
13 },
14 {
15 "cell_type": "markdown",
16 "metadata": {},
17 "source": [
18 "Probabilistic Latent Semantic Analysis (pLSA) takes a statistical perspective on LSA and creates a generative model to address the lack of theoretical underpinnings of LSA. \n",
19 "\n",
20 "pLSA explicitly models the probability each co-occurrence of documents d and words w described by the DTM as a mixture of conditionally independent multinomial distributions that involve topics t. \n",
21 "The symmetric formulation of this generative process of word-document co-occurrences assumes both words and documents are generated by the latent topic class, whereas the asymmetric model assumes the topics are selected given the document, and words result in a second step given the topic.\n",
22 "$$P(w, d) = \\underbrace{\\sum_tP(d\\mid t)P(w\\mid t)}_{\\text{symmetric}}=\\underbrace{P(d) \\sum_tP(t\\mid d)P(w\\mid t)}_{\\text{asymmetric}}$$\n",
23 "The number of topics is a hyperparameter chosen prior to training and is not learned from the data. \n"
24 ]
25 },
26 {
27 "cell_type": "markdown",
28 "metadata": {},
29 "source": [
30 "The benefits of using a probability model is that we can now compare models by evaluating the probability they assign to new documents given the parameters learned during training."
31 ]
32 },
33 {
34 "cell_type": "markdown",
35 "metadata": {
36 "slideshow": {
37 "slide_type": "slide"
38 }
39 },
40 "source": [
41 "## Imports & Settings"
42 ]
43 },
44 {
45 "cell_type": "code",
46 "execution_count": 3,
47 "metadata": {
48 "ExecuteTime": {
49 "end_time": "2018-11-30T16:49:41.523697Z",
50 "start_time": "2018-11-30T16:49:41.520448Z"
51 },
52 "slideshow": {
53 "slide_type": "fragment"
54 }
55 },
56 "outputs": [],
57 "source": [
58 "import warnings\n",
59 "from collections import OrderedDict\n",
60 "from pathlib import Path\n",
61 "from random import randint\n",
62 "import numpy as np\n",
63 "import pandas as pd\n",
64 "\n",
65 "# Visualization\n",
66 "from ipywidgets import interact, FloatSlider\n",
67 "import matplotlib.pyplot as plt\n",
68 "from matplotlib.ticker import FuncFormatter\n",
69 "import seaborn as sns\n",
70 "\n",
71 "# sklearn for feature extraction & modeling\n",
72 "from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer, TfidfTransformer\n",
73 "from sklearn.decomposition import LatentDirichletAllocation, TruncatedSVD, NMF\n",
74 "from sklearn.model_selection import train_test_split\n",
75 "from sklearn.externals import joblib\n",
76 "\n",
77 "# gensim for alternative models\n",
78 "from gensim.models import LdaModel, LdaMulticore\n",
79 "from gensim.corpora import Dictionary\n",
80 "from gensim.matutils import Sparse2Corpus"
81 ]
82 },
83 {
84 "cell_type": "code",
85 "execution_count": 4,
86 "metadata": {
87 "ExecuteTime": {
88 "end_time": "2018-11-30T16:42:58.153285Z",
89 "start_time": "2018-11-30T16:42:58.148031Z"
90 }
91 },
92 "outputs": [],
93 "source": [
94 "%matplotlib inline\n",
95 "plt.style.use('ggplot')\n",
96 "plt.rcParams['figure.figsize'] = (14.0, 8.7)\n",
97 "warnings.filterwarnings('ignore')\n",
98 "pd.options.display.float_format = '{:,.2f}'.format"
99 ]
100 },
101 {
102 "cell_type": "markdown",
103 "metadata": {
104 "slideshow": {
105 "slide_type": "skip"
106 }
107 },
108 "source": [
109 "## Load BBC data"
110 ]
111 },
112 {
113 "cell_type": "code",
114 "execution_count": 5,
115 "metadata": {},
116 "outputs": [],
117 "source": [
118 "# change to your data path if necessary\n",
119 "DATA_DIR = Path('../data')"
120 ]
121 },
122 {
123 "cell_type": "code",
124 "execution_count": 6,
125 "metadata": {
126 "ExecuteTime": {
127 "end_time": "2018-11-30T16:00:39.606772Z",
128 "start_time": "2018-11-30T16:00:39.503364Z"
129 },
130 "slideshow": {
131 "slide_type": "skip"
132 }
133 },
134 "outputs": [],
135 "source": [
136 "path = DATA_DIR / 'bbc'\n",
137 "files = path.glob('**/*.txt')\n",
138 "doc_list = []\n",
139 "for i, file in enumerate(files):\n",
140 " with open(str(file), encoding='latin1') as f:\n",
141 " topic = file.parts[-2]\n",
142 " lines = f.readlines()\n",
143 " heading = lines[0].strip()\n",
144 " body = ' '.join([l.strip() for l in lines[1:]])\n",
145 " doc_list.append([topic.capitalize(), heading, body])"
146 ]
147 },
148 {
149 "cell_type": "markdown",
150 "metadata": {
151 "slideshow": {
152 "slide_type": "skip"
153 }
154 },
155 "source": [
156 "### Convert to DataFrame"
157 ]
158 },
159 {
160 "cell_type": "code",
161 "execution_count": 7,
162 "metadata": {
163 "ExecuteTime": {
164 "end_time": "2018-11-30T16:43:49.222349Z",
165 "start_time": "2018-11-30T16:43:49.198731Z"
166 },
167 "slideshow": {
168 "slide_type": "skip"
169 }
170 },
171 "outputs": [
172 {
173 "name": "stdout",
174 "output_type": "stream",
175 "text": [
176 "<class 'pandas.core.frame.DataFrame'>\n",
177 "RangeIndex: 2225 entries, 0 to 2224\n",
178 "Data columns (total 3 columns):\n",
179 "Category 2225 non-null object\n",
180 "Heading 2225 non-null object\n",
181 "Article 2225 non-null object\n",
182 "dtypes: object(3)\n",
183 "memory usage: 52.2+ KB\n"
184 ]
185 }
186 ],
187 "source": [
188 "docs = pd.DataFrame(doc_list, columns=['Category', 'Heading', 'Article'])\n",
189 "docs.info()"
190 ]
191 },
192 {
193 "cell_type": "markdown",
194 "metadata": {
195 "slideshow": {
196 "slide_type": "slide"
197 }
198 },
199 "source": [
200 "## Create Train & Test Sets"
201 ]
202 },
203 {
204 "cell_type": "code",
205 "execution_count": 8,
206 "metadata": {
207 "ExecuteTime": {
208 "end_time": "2018-11-30T16:43:49.714628Z",
209 "start_time": "2018-11-30T16:43:49.696696Z"
210 },
211 "slideshow": {
212 "slide_type": "fragment"
213 }
214 },
215 "outputs": [],
216 "source": [
217 "train_docs, test_docs = train_test_split(docs, \n",
218 " stratify=docs.Category, \n",
219 " test_size=50, \n",
220 " random_state=42)"
221 ]
222 },
223 {
224 "cell_type": "code",
225 "execution_count": 9,
226 "metadata": {
227 "ExecuteTime": {
228 "end_time": "2018-11-30T16:43:50.110306Z",
229 "start_time": "2018-11-30T16:43:50.100753Z"
230 },
231 "slideshow": {
232 "slide_type": "fragment"
233 }
234 },
235 "outputs": [
236 {
237 "data": {
238 "text/plain": [
239 "((2175, 3), (50, 3))"
240 ]
241 },
242 "execution_count": 9,
243 "metadata": {},
244 "output_type": "execute_result"
245 }
246 ],
247 "source": [
248 "train_docs.shape, test_docs.shape"
249 ]
250 },
251 {
252 "cell_type": "code",
253 "execution_count": 10,
254 "metadata": {
255 "ExecuteTime": {
256 "end_time": "2018-11-30T16:43:51.026899Z",
257 "start_time": "2018-11-30T16:43:51.023179Z"
258 },
259 "slideshow": {
260 "slide_type": "fragment"
261 }
262 },
263 "outputs": [
264 {
265 "data": {
266 "text/plain": [
267 "Sport 12\n",
268 "Business 11\n",
269 "Politics 9\n",
270 "Entertainment 9\n",
271 "Tech 9\n",
272 "Name: Category, dtype: int64"
273 ]
274 },
275 "execution_count": 10,
276 "metadata": {},
277 "output_type": "execute_result"
278 }
279 ],
280 "source": [
281 "pd.Series(test_docs.Category).value_counts()"
282 ]
283 },
284 {
285 "cell_type": "markdown",
286 "metadata": {
287 "slideshow": {
288 "slide_type": "slide"
289 }
290 },
291 "source": [
292 "### Vectorize train & test sets"
293 ]
294 },
295 {
296 "cell_type": "code",
297 "execution_count": 11,
298 "metadata": {
299 "ExecuteTime": {
300 "end_time": "2018-11-30T16:51:21.087814Z",
301 "start_time": "2018-11-30T16:51:20.718878Z"
302 },
303 "slideshow": {
304 "slide_type": "fragment"
305 }
306 },
307 "outputs": [
308 {
309 "data": {
310 "text/plain": [
311 "<2175x2899 sparse matrix of type '<class 'numpy.float64'>'\n",
312 "\twith 204945 stored elements in Compressed Sparse Row format>"
313 ]
314 },
315 "execution_count": 11,
316 "metadata": {},
317 "output_type": "execute_result"
318 }
319 ],
320 "source": [
321 "vectorizer = TfidfVectorizer(max_df=.2, \n",
322 " min_df=.01, \n",
323 " stop_words='english')\n",
324 "\n",
325 "train_dtm = vectorizer.fit_transform(train_docs.Article)\n",
326 "words = vectorizer.get_feature_names()\n",
327 "train_dtm"
328 ]
329 },
330 {
331 "cell_type": "code",
332 "execution_count": 12,
333 "metadata": {
334 "ExecuteTime": {
335 "end_time": "2018-11-30T16:51:24.106353Z",
336 "start_time": "2018-11-30T16:51:24.093306Z"
337 },
338 "scrolled": true,
339 "slideshow": {
340 "slide_type": "fragment"
341 }
342 },
343 "outputs": [
344 {
345 "data": {
346 "text/plain": [
347 "<50x2899 sparse matrix of type '<class 'numpy.float64'>'\n",
348 "\twith 4759 stored elements in Compressed Sparse Row format>"
349 ]
350 },
351 "execution_count": 12,
352 "metadata": {},
353 "output_type": "execute_result"
354 }
355 ],
356 "source": [
357 "test_dtm = vectorizer.transform(test_docs.Article)\n",
358 "test_dtm"
359 ]
360 },
361 {
362 "cell_type": "markdown",
363 "metadata": {},
364 "source": [
365 "### Get token counts"
366 ]
367 },
368 {
369 "cell_type": "code",
370 "execution_count": 13,
371 "metadata": {
372 "ExecuteTime": {
373 "end_time": "2018-11-30T17:03:21.503538Z",
374 "start_time": "2018-11-30T17:03:21.491554Z"
375 }
376 },
377 "outputs": [
378 {
379 "data": {
380 "text/plain": [
381 "film 41.54\n",
382 "game 36.39\n",
383 "best 36.15\n",
384 "labour 33.14\n",
385 "music 31.20\n",
386 "company 29.99\n",
387 "election 28.59\n",
388 "england 28.36\n",
389 "party 28.06\n",
390 "market 27.51\n",
391 "dtype: float64"
392 ]
393 },
394 "execution_count": 13,
395 "metadata": {},
396 "output_type": "execute_result"
397 }
398 ],
399 "source": [
400 "train_token_count = train_dtm.sum(0).A.squeeze()\n",
401 "tokens = vectorizer.get_feature_names()\n",
402 "word_count = pd.Series(train_token_count, index=tokens).sort_values(ascending=False)\n",
403 "word_count.head(10)"
404 ]
405 },
406 {
407 "cell_type": "markdown",
408 "metadata": {
409 "slideshow": {
410 "slide_type": "slide"
411 }
412 },
413 "source": [
414 "## probabilistic Latent Semantic Analysis"
415 ]
416 },
417 {
418 "cell_type": "markdown",
419 "metadata": {
420 "slideshow": {
421 "slide_type": "fragment"
422 }
423 },
424 "source": [
425 "### Implementation using Non-Negative Matrix Factorization\n",
426 "\n",
427 "pLSI [has been shown](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.8839&rep=rep1&type=pdf) to be equivalent to Non-Negative Matrix Factorization with Kullback-Leibler Divergence objective."
428 ]
429 },
430 {
431 "cell_type": "markdown",
432 "metadata": {},
433 "source": [
434 "pLSI is equivalent to Non-Negative Matrix Factorization using a Kullback-Leibler Divergence objective (see references on GitHub). Hence, we can use the [sklearn.decomposition.NMF](http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html) class to implement this model, following closely the LSA example."
435 ]
436 },
437 {
438 "cell_type": "code",
439 "execution_count": 14,
440 "metadata": {
441 "ExecuteTime": {
442 "end_time": "2018-11-30T16:51:25.868020Z",
443 "start_time": "2018-11-30T16:51:25.864269Z"
444 }
445 },
446 "outputs": [],
447 "source": [
448 "n_components = 5\n",
449 "topic_labels = ['Topic {}'.format(i) for i in range(1, n_components+1)]"
450 ]
451 },
452 {
453 "cell_type": "markdown",
454 "metadata": {},
455 "source": [
456 "Using the same train-test split of the DTM produced by the TfidfVectorizer, we fit pLSA like so:"
457 ]
458 },
459 {
460 "cell_type": "code",
461 "execution_count": 15,
462 "metadata": {
463 "ExecuteTime": {
464 "end_time": "2018-11-30T16:51:27.705459Z",
465 "start_time": "2018-11-30T16:51:26.191462Z"
466 },
467 "slideshow": {
468 "slide_type": "fragment"
469 }
470 },
471 "outputs": [
472 {
473 "data": {
474 "text/plain": [
475 "NMF(alpha=0.0, beta_loss='kullback-leibler', init=None, l1_ratio=0.0,\n",
476 " max_iter=1000, n_components=5, random_state=42, shuffle=False,\n",
477 " solver='mu', tol=0.0001, verbose=0)"
478 ]
479 },
480 "execution_count": 15,
481 "metadata": {},
482 "output_type": "execute_result"
483 }
484 ],
485 "source": [
486 "nmf = NMF(n_components=n_components, \n",
487 " random_state=42, \n",
488 " solver='mu',\n",
489 " beta_loss='kullback-leibler', \n",
490 " max_iter=1000)\n",
491 "nmf.fit(train_dtm)"
492 ]
493 },
494 {
495 "cell_type": "markdown",
496 "metadata": {},
497 "source": [
498 "We get a measure of the reconstruction error that is a substitute for the explained variance measure for LSI:"
499 ]
500 },
501 {
502 "cell_type": "code",
503 "execution_count": 16,
504 "metadata": {
505 "ExecuteTime": {
506 "end_time": "2018-11-30T16:51:28.616145Z",
507 "start_time": "2018-11-30T16:51:28.613447Z"
508 }
509 },
510 "outputs": [
511 {
512 "data": {
513 "text/plain": [
514 "316.2609400385988"
515 ]
516 },
517 "execution_count": 16,
518 "metadata": {},
519 "output_type": "execute_result"
520 }
521 ],
522 "source": [
523 "nmf.reconstruction_err_"
524 ]
525 },
526 {
527 "cell_type": "markdown",
528 "metadata": {},
529 "source": [
530 "### Explore Topics"
531 ]
532 },
533 {
534 "cell_type": "code",
535 "execution_count": 19,
536 "metadata": {
537 "ExecuteTime": {
538 "end_time": "2018-11-30T16:51:30.966598Z",
539 "start_time": "2018-11-30T16:51:30.184645Z"
540 }
541 },
542 "outputs": [
543 {
544 "data": {
545 "text/plain": [
546 "(2175, 5)"
547 ]
548 },
549 "execution_count": 19,
550 "metadata": {},
551 "output_type": "execute_result"
552 }
553 ],
554 "source": [
555 "train_doc_topics = nmf.transform(train_dtm)\n",
556 "train_doc_topics.shape"
557 ]
558 },
559 {
560 "cell_type": "code",
561 "execution_count": 20,
562 "metadata": {
563 "ExecuteTime": {
564 "end_time": "2018-11-30T16:51:30.973126Z",
565 "start_time": "2018-11-30T16:51:30.968127Z"
566 }
567 },
568 "outputs": [
569 {
570 "data": {
571 "text/plain": [
572 "Category Business\n",
573 "Heading Tokyo says deflation 'controlled'\n",
574 "Topic 1 0.02\n",
575 "Topic 2 0.01\n",
576 "Topic 3 0.08\n",
577 "Topic 4 0.00\n",
578 "Topic 5 0.00\n",
579 "dtype: object"
580 ]
581 },
582 "execution_count": 20,
583 "metadata": {},
584 "output_type": "execute_result"
585 }
586 ],
587 "source": [
588 "i = randint(0, len(train_docs))\n",
589 "(train_docs.iloc[i, :2].append(pd.Series(train_doc_topics[i], \n",
590 " index=topic_labels)))"
591 ]
592 },
593 {
594 "cell_type": "code",
595 "execution_count": 21,
596 "metadata": {
597 "ExecuteTime": {
598 "end_time": "2018-11-30T16:52:10.295507Z",
599 "start_time": "2018-11-30T16:52:10.292870Z"
600 }
601 },
602 "outputs": [],
603 "source": [
604 "train_result = pd.DataFrame(data=train_doc_topics,\n",
605 " columns=topic_labels,\n",
606 " index=train_docs.Category)"
607 ]
608 },
609 {
610 "cell_type": "code",
611 "execution_count": 22,
612 "metadata": {
613 "ExecuteTime": {
614 "end_time": "2018-11-30T16:52:21.728234Z",
615 "start_time": "2018-11-30T16:52:21.694321Z"
616 }
617 },
618 "outputs": [],
619 "source": [
620 "test_eval = pd.DataFrame(data=nmf.transform(test_dtm), \n",
621 " columns=topic_labels,\n",
622 " index=test_docs.Category)"
623 ]
624 },
625 {
626 "cell_type": "markdown",
627 "metadata": {},
628 "source": [
629 "Due to its probabilistic nature, pLSA produces only positive topic weights that result in more straightforward topic-category relationships for the test and training sets:"
630 ]
631 },
632 {
633 "cell_type": "code",
634 "execution_count": 23,
635 "metadata": {
636 "ExecuteTime": {
637 "end_time": "2018-11-30T16:52:29.072080Z",
638 "start_time": "2018-11-30T16:52:25.094553Z"
639 }
640 },
641 "outputs": [
642 {
643 "data": {
644 "image/png": "iVBORw0KGgoAAAANSUhEUgAABS8AAALICAYAAACergX9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3X+YVnWdP/7nACLBIAMzyIiwYriaIIrAuoDKiszHT5ulLCrqam1Zuv5YjWyNSMu0ZYOy3MTLH5tKVmzhWpbpd9td8mP+ABVz0Uq3lRQVAWlmRH6ICcx8/yhnm/jhCDP3fWAej+ua69zn3O/zPq8j97mv8Tnvc94Vzc3NzQEAAAAAKJgu5S4AAAAAAGBbhJcAAAAAQCEJLwEAAACAQhJeAgAAAACFJLwEAAAAAApJeAkAAAAAFJLwEgCAsrn//vszfPjwcpcBAEBBCS8BAMpgyJAhede73pXevXunqqoq48ePz0033ZSmpqY27b9s2bJUVFRk8+bNHVzp/3rwwQdTWVmZysrK9OrVKxUVFS3rlZWVefHFF99xn8cdd1x++ctfdkC1AADsCbqVuwAAgM7qRz/6Uerq6vLaa6/lpz/9aT7+8Y/n0Ucfzdy5c8td2jYde+yxWb9+fZLfhacHHnhg1qxZk27dtv0r5VtBbJcu/l4OAMDO8ZskAECZ9enTJyeddFLmz5+f22+/Pb/4xS+SJPfee2+OPPLI7LPPPhk8eHA+//nPt+wzYcKEJElVVVUqKyuzaNGi/PrXv87xxx+f6urq1NTU5KyzzsqaNWtKei7HHHNMPvvZz2bcuHHp1atXXnzxxdxyyy059NBD07t37wwdOjS33HJLS/sFCxZkyJAhLeuDBg3KV7/61YwYMSJ9+vTJmWeemd/+9rclPQcAAIpDeAkAUBBHHXVUBg0alAcffDBJ0qtXr3zzm9/MmjVrcu+99+bGG2/MD37wgyTJAw88kCRZs2ZN1q9fn3HjxqW5uTkzZszIihUr8swzz+Sll15qFXj+scMPPzxVVVXb/Lnwwgt3+jy+9a1v5bbbbsvatWszaNCgDBgwIPfee2/Wrl2br3/967n44ovz1FNPbXf/O+64I//5n/+Z5557Lj/72c/yrW99a6drAQBg9+a2cQCAAhk4cGAaGxuT/O55kG85/PDDc+aZZ+anP/1pJk+evM19DzrooBx00EFJkv79++fSSy/NVVddtd1j7ShA3BXnnHNODj300Jb1D3zgAy2vjz/++EyaNCkPPvhgDj/88G3uP23atNTW1iZJ3v/+92fJkiUdUicAAMVn5CUAQIG8/PLL6devX5Lk0UcfzcSJE9O/f//06dMnN910U+rr67e77+rVq3PGGWdk//33zz777JOzzz57h+07yuDBg1ut33PPPfnzP//z9OvXL1VVVfmP//iPHdb1VnCZJD179mx5ziYAAJ2P8BIAoCAWL16cl19+Occcc0yS5K//+q9z0kkn5aWXXsprr72W888/P83NzUmSioqKrfafMWNGKioq8tRTT2Xt2rX59re/3dJ+W4YPH95qtvA//Dn//PN3+jz+sLaNGzfm1FNPzYwZM/LKK69kzZo1OeGEE3ZYFwAAvMVt4wAAZbZ27do88MAD+fjHP56zzz47I0aMSJKsW7cu/fr1S48ePfLYY4/lX/7lX3LCCSck+d1t4V26dMlzzz2Xgw8+uKV9nz59UlVVlZdffjlf/vKXd3jcX/7ylx17Ykl++9vf5s0330z//v3TtWvX3HPPPfnJT36SMWPGdPixAQDY/Rl5CQBQJh/4wAfSu3fvDB48ODNnzsyll16auXPntrx/ww035HOf+1x69+6dq6++OlOnTm15r2fPnrn88stz9NFHp6qqKo888kiuvPLKPPHEE+nTp09OPPHETJkypRyn1UpVVVWuvfba/NVf/VX69euXO++8M+9///vLXRYAALuJimb37AAAAAAABWTkJQAAAABQSMJLAAAAAKCQhJcAAAAAQCEJLwEAAACAQupW7gI6yooVK8pdAgAAAACdwMCBA8tdwh7LyEsAAAAAoJCElwAAAABAIQkvAQAAAIBCEl4CAAAAAIUkvAQAAAAACkl4CQAAAAAUkvASAAAAACgk4SUAAAAAUEjCSwAAAACgkISXAAAAAEAhCS8BAAAAgEISXgIAAAAAhSS8BAAAAAAKSXgJAAAAABSS8BIAAAAAKCThJQAAAABQSMJLAAAAAKCQhJcAAAAAQCEJLwEAAACAQupWqgMtWbIkc+fOTVNTUyZNmpTJkye3ev/pp5/O7bffnhdeeCHTpk3L2LFjkyTLli3L17/+9WzcuDFdunTJlClTMn78+FKVDQAAAACUSUnCy6amptx666254oorUl1d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AKCQhJcAAAAAQCEJLwEAAACAQhJeAgAAAACF1K1UB1qyZEnmzp2bpqamTJo0KZMnT271/qZNm3L99dfnueeeS+/evTNt2rTsu+++2bx5c2666aY8//zzaWpqyoQJE/JXf/VXpSobAAAAACiTkoy8bGpqyq233prPfOYzufbaa/Pwww9n+fLlrdrcd9996dWrV+bMmZMTTzwx8+bNS5I88sgj2bx5c77yla9k1qxZWbBgQVavXl2KsgEAAACAMipJeLl06dLU1tZmwIAB6datW8aPH5/Fixe3avP444/nuOOOS5KMHTs2v/jFL9Lc3JwkeeONN7Jly5a8+eab6datW3r27FmKsgEAAACAMirJbeONjY2prq5uWa+urs6zzz673TZdu3ZNz549s27duowdOzaPP/54zjvvvLz55pv5m7/5m1RWVm51jAULFmTBggVJklmzZqWmpqYDzwg6js8u7F4ay13AdvguAQBoH36vgvIqSXj51gjKP1RRUdGmNkuXLk2XLl1y8803Z8OGDfnc5z6XESNGZMCAAa3a1tXVpa6urmW9vr6+naqH0vLZhd1LUWe+813Czpg9e3bq6+tTU1OT6dOnl7scACgEv1fRFgMHDix3CXuskvw/V3V1dRoaGlrWGxoa0rdv3+222bJlS15//fVUVlbmoYceysiRI9OtW7f06dMnhxxySH7961+XomwAgE6lvr4+q1at8j9pAAAURknCy6FDh2blypVZvXp1Nm/enIULF2bMmDGt2owePTr3339/kt9N0jN8+PBUVFSkpqam5fmXb7zxRp599tnsv//+pSgbAAAAACijktw23rVr15xzzjmZOXNmmpqaMnHixAwePDjz58/P0KFDM2bMmBx//PG5/vrrc/HFF6eysjLTpk1Lkrz3ve/NDTfckE9+8pNpbm7OxIkTc8ABB5SibAAAAACgjEoSXibJqFGjMmrUqFbbTj/99JbX3bt3z6WXXrrVfj169NjmdgAAAABgz1bUeQYAAAAAgE6uZCMvAQDoGP9+98p26WfD+s0ty/bo8/+etN8u9wEAQOdm5CUAAAAAUEjCSwAAAACgkISXAAAAAEAhCS8BAAAAgEIyYQ8AAFAIs2fPTn19fWpqajJ9+vRylwMAFIDwEgAAKIT6+vqsWrWq3GUAAAUivAQAIElS2atvqyUAAJSb8BIAgCTJpAnnlrsEAABoRXgJAADskpWXfaxd+tn8mzd/v3ylXfrc78u37HIfAEB5tXm28UWLFm1z+yOPPNJuxQAAAAAAvKXN4eVNN920ze0333xzuxUDAAAAAPCWt71t/JVXXkmSNDU1ZfXq1Wlubm71Xvfu3TuuOgAAAACg03rb8PKSSy5peX3xxRe3eq+qqiqnnXZa+1cFAAB0On27JknF75cAAG0IL+fPn58kufLKK3PVVVd1eEEAAEDndG4/d3UBAK21+ZmXgksAAAAAoJTeduTlW1avXp3vfOc7WbZsWd54441W7914443tXhgAAAAA0Lm1Obz82te+lgEDBuRDH/pQ9t57746sCQAAAACg7eHl8uXL84UvfCFdurT5TnMAAAAAgJ3W5iTy0EMPzbJlyzqwFAAAAACA/7XDkZdvzTSeJP3798/MmTNz1FFHpaqqqlW7008/vWOqAwAAAAA6rR2Glw0NDa3WR48enS1btmy1HQAAAACgve0wvLzwwgtLVQcAAAAAQCttnrDnlVde2eb2vfbaK1VVVSbyAQAAAADaVZvDy0suuWS773Xp0iWjR4/Oxz72sa2ehwkAAAAAsDPaHF7+7d/+bZ5++umceuqpqampSX19fe68884ccsghGTZsWObNm5dbb701n/zkJzuyXgAAAACgk2jzvd533HFHzjvvvNTW1qZbt26pra3Nueeem+9973vZf//9c+GFF+bpp5/uyFoBAAAAgE6kzeFlc3NzfvOb37TaVl9fn6ampiRJjx49smXLlvatDgAAAADotNp82/j73ve+XH311TnuuONSXV2dxsbG/L//9//yvve9L0nyxBNP5OCDD+6wQgEAAACAzqXN4eXJJ5+cAw44IIsWLcrzzz+fqqqqXHDBBRk5cmSS5KijjspRRx3VYYUCAAAAAJ1Lm8PLJBk5cmRLWAkAAAAA0JF2GF5+//vfz5QpU5Ik8+fP3267008/vX2rAgAAAAA6vR2Glw0NDdt8DQAAAADQ0XYYXp577rktry+88MIOLwYAAAAA4C3v6JmXy5cvzyOPPJLXXnstH/3oR7NixYps2rQpBxxwQEfVBwAAAAB0Ul3a2nDRokW58sor09jYmAceeCBJsnHjxnzzm9/ssOIAAAAAgM6rzSMv77jjjnz2s5/NkCFDsmjRoiTJAQcckGXLlnVUbQAAAABAJ9bmkZevvfbaVreHV1RUpKKiot2LAgAAAABo88jLd7/73XnggQfyF3/xFy3bHn744Rx00EFt2n/JkiWZO3dumpqaMmnSpEyePLnV+5s2bcr111+f5557Lr179860adOy7777JkleeOGF/PM//3M2btyYioqKfPGLX0z37t3bWjoAAAAAsBtqc3j5kY98JP/wD/+Q++67L7/97W8zc+bMrFixIldcccXb7tvU1JRbb701V1xxRaqrqzNjxoyMGTMmgwYNamlz3333pVevXpkzZ04efvjhzJs3L5/4xCeyZcuWzJkzJ3/3d3+XIUOGZN26denW7R3NMwQAAAAA7IbeNgVcuHBhhg0blv333z//9E//lJ/97GcZPXp0qqurM3r06PTo0eNtD7J06dLU1tZmwIABSZLx48dn8eLFrcLLxx9/PKeddlqSZOzYsbntttvS3NycJ598Mn/yJ3+SIUOGJEl69+69M+cJAAAAAOxm3ja8nD9/flatWpXa2toceuihGTZsWMaNG5f+/fu3+SCNjY2prq5uWa+urs6zzz673TZdu3ZNz549s27duqxcuTIVFRWZOXNm1q5dm/Hjx+fkk0/e6hgLFizIggULkiSzZs1KTU1Nm+uDIvHZhd1LY7kL2A7fJZ3NynIXsE0+h51HMT+BPoNA+/BdAuX1tuHl1772taxZsybPPPNMnnnmmfzoRz/KDTfckH79+rWEmZMmTdphH83NzVtt++OJfrbXZsuWLfnv//7vfPGLX8zee++dq6++Ou9+97szYsSIVm3r6upSV1fXsl5fX/92pwaF5LMLu5c2z3xXYr5LKAKfQ8rNZxBoD75LaIuBAweWu4Q9VpseHllVVZVx48Zl3LhxSZINGzZkwYIFueeee/LQQw+9bXhZXV2dhoaGlvWGhob07dt3m22qq6uzZcuWvP7666msrEx1dXWGDRuWffbZJ0ly5JFH5vnnn98qvAQAAAAA9ixtCi+bm5uzbNmyPPPMM3n66afzP//zP+nbt2/GjRuXQw899G33Hzp0aFauXJnVq1enX79+WbhwYS655JJWbUaPHp37778/Bx98cB555JEMHz48FRUVOeKII3L33Xfnt7/9bbp165ZnnnkmJ5544s6dLQAAAACw23jb8HLWrFl5/vnnM3DgwBxyyCGpq6vLRRddlHe9611tPkjXrl1zzjnnZObMmWlqasrEiRMz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NDQ0ZNKk330hrlq1Kl27dk3//v2TJI899li6d2/7H3g+8pGP5NOf/nSb/tC8evXqTJ06NYsXL865556bf/qnf2rzcUoSXjY3N2+1raKiok1ttrV9W+rq6lJXV7dzBbLb+PSnP51Zs2aVuwygjVyzsPtx3cLuxTULuxfXLH/sZ2e9r137G/02f5yorq7OkiVLkiSf//znU1lZmb//+7/fqWPNnTu3zW179uyZmTNn5r/+67/e8QznJXlwZHV1dRoaGlrWGxoa0rdv3+222bJlS15//fVUVlZutW9jY2P69etXirIBAAAAoFP40pe+lMMOOyyHHXZY5syZk+R3j4IcPnx4PvjBD2bEiBGZOnVqNm7cmCQ55phjWoLQe++9N6NGjcoRRxyRE044Yau+Kysrc/TRR6dHjx7vuK6ShJdDhw7NypUrs3r16mzevDkLFy7MmDFjWrUZPXp07r///iTJI488kuHDh6eioiJjxozJwoULs2nTpqxevTorV67MQQcdVIqyAQAAAGCP99hjj2XevHl57LHHsmjRotxwww156qmnkiRPP/10Lrroovz85z9Pjx49cvPNN7fad9WqVbngggty11135cknn8x3v/vddq2tJOFl165dc84552TmzJn5xCc+kXHjxmXw4MGZP39+Hn/88STJ8ccfn/Xr1+fiiy/OPffck7POOitJMnjw4IwbNy6XXnppZs6cmY9+9KNmGu/EPBoAdi+uWdj9uG5h9+Kahd2La5aievDBB3PKKaekZ8+e6d27dyZPnpyHHnooSXLggQdm7NixSZKzzz67ZftbFi1alIkTJ+aAAw5Ikna/Y7okz7xMklGjRmXUqFGttp1++uktr7t3755LL710m/tOmTIlU6ZM6dD62D34oofdi2sWdj+uW9i9uGZh9+Kapah2NOfMH89bs615bP54W3syhBEAAAAAOrEJEybkrrvuysaNG7N+/fr88Ic/zLHHHpskef7557N48eIkyXe+850cc8wxrfY9+uijc9999+WFF15I8rv5atpTyUZeAgAAAADFc9RRR+XMM8/Mn/3ZnyVJLrjggowYMaJlwp6vf/3r+ehHP5r3vOc9Oe+881rtO2DAgNx44405+eST09zcnIEDB+bf/u3ftjrGoEGD8vrrr2fTpk25884785Of/CSHHHLI29ZW0byjcaEAAAAAQKe0dOnSnHrqqS2zipeD28YBAAAAgEIy8hIAAAAAKCQjLwEAAACAQhJeAgAAAACFJLwEAAAAAApJeAkAAAAAFJLwEgAAAAA6gYaGhowcOTIjR45MbW1t9t9//5b1N9988x319ZGPfCS/+tWv2tT2xz/+cUaNGpURI0Zk9OjRuf/++9t8HLONAwAAAEAZnPDF77Vrf/8x45Q2t/385z+fysrK/P3f/3271rAtTzzxRPbbb7/st99+efLJJ/P+978/L730Upv2NfISAAAAADq5L33pSznssMNy2GGHZc6cOUmSpUuXZvjw4fngBz+YESNGZOrUqdm4cWOS5JhjjsmSJUuSJPfee29GjRqVI444IieccMJWfY8aNSr77bdfkmTEiBFZv359Nm3a1Ka6hJcAAAAA0Ik99thjmTdvXh577LEsWrQoN9xwQ5566qkkydNPP52LLrooP//5z9OjR4/cfPPNrfZdtWpVLrjggtx111158skn893vfneHx7rjjjvy53/+59lrr73aVJvwEgCgjIYMGZJ3vetd6d27d6qqqjJ+/PjcdNNNaWpqatP+y5YtS0VFRTZv3tzBlf6vBx98MJWVlamsrEyvXr1SUVHRsl5ZWZkXX3xxp/p94403UlFRkeXLl7dzxQAA7MiDDz6YU045JT179kzv3r0zefLkPPTQQ0mSAw88MGPHjk2SnH322S3b37Jo0aJMnDgxBxxwQJKkX79+2z3Oz3/+81xxxRW58cYb21xbt3d6MgAAtK8f/ehHqaury2uvvZaf/vSn+fjHP55HH300c+fOLXdp23Tsscdm/fr1SX4Xnh544IFZs2ZNunXzqyUAwO5oR1PiVFRU7HC9ubl5q23b8uKLL2bKlCn59re/nQMPPLDNtRl5CQBQEH369MlJJ52U+fPn5/bbb88vfvGLJL97htCRRx6ZffbZJ4MHD87nP//5ln0mTJiQJKmqqkplZWUWLVqUX//61zn++ONTXV2dmpqanHXWWVmzZk1Jz6WxsTEf+tCHUltbm8GDB+eqq65qGU363//93znmmGPSp0+f9O/fPx/60IdancshhxySysrK/OAHPyhpzQAAndWECRNy1113ZePGjVm/fn1++MMf5thjj02SPP/881m8eHGS5Dvf+U6OOeaYVvseffTRue+++/LCCy8k+d3vgX/s1VdfzYknnphrrrmmZRRnWwkvAQAK5qijjsqgQYPy4IMPJkl69eqVb37zm1mzZk3uvffe3HjjjS3B3gMPPJAkWbNmTdavX59x48alubk5M2bMyIoVK/LMM8/kpZdeahV4/rHDDz88VVVV2/y58MILd+oczjrrrPTp0yfPPfdcHnvssfzgBz/It771rSTJjBkzMnny5KxZsyYvvvhi/vZv/7bVufzqV7/K+vXrM3ny5J06NgAA78xRRx2VM888M3/2Z3+WsWPH5oILLsiIESOSJMOHD8/Xv/71HH744dmwYUPOO++8VvsOGDAgN954Y04++eQcccQROeuss7bq/2tf+1qef/75XHnllRk5cmRGjhyZhoaGNtVW0byjcaEAAHSoIUOG5JZbbkldXV2r7WPHjs0HPvCBXH755VvtM23atFRUVOTaa69tuW1706ZN271t+wc/+EGuuuqq/Nd//Ve717+t47/wwgsZNmxY1qxZ0/Ig9rlz5+aOO+7Iv/3bv2Xq1KnZd999c/nll7fMOpn87pmX73rXu/LSSy9l0KBB7V4rAADvzNKlS3Pqqae2zCpeDkZeAgAU0Msvv9zysPNHH300EydOTP/+/dOnT5/cdNNNqa+v3+6+q1evzhlnnJH9998/++yzT84+++wdtm9vL7zwQt54443079+/ZQTnxz/+8bzyyitJkmuvvTavv/56jjzyyBx++OH59re/XbLaAADYvQgvAQAKZvHixXn55Zdbnif013/91znppJPy0ksv5bXXXsv555/f8lD1bT0cfcaMGamoqMhTTz2VtWvX5tvf/vYOH8I+fPjwVrOF/+HP+eef/47rHzx4cCorK/Pqq69mzZo1WbNmTdauXZsnnngiSbL//vvntttuy8qVK3PdddflnHPOyYsvvtimB70DAFA6Bx10UFlHXSbCSwCAwli7dm3uueeenHHGGTn77LNbnjO0bt269OvXLz169Mhjjz2Wf/mXf2nZp3///unSpUuee+65lm3r1q1LZWVlqqqq8vLLL+fLX/7yDo/7y1/+MuvXr9/mz0033fSOz+PAAw/M2LFj86lPfSrr1q1LU1NTnn322Tz00ENJkvnz52fFihWpqKhIVVVVkqRbt27Ze++9W56TCQAAifASAKDsPvCBD6R3794ZPHhwZs6cmUsvvTRz585tef+GG27I5z73ufTu3TtXX311pk6d2vJez549c/nll+foo49OVVVVHnnkkVx55ZV54okn0qdPn5x44omZMmVKyc/pO9/5TtasWZP3vOc96devX04//fSW28YXLVqU0aNHp7KyMqeddlr++Z//OQMHDkySXH311TnttNNSVVWVu+++u+R1AwBQLCbsAQAAAAAKychLAAAAAKCQ/n/27j5Oq7LeF/9nHhwJhhRmhAkf0HALCAgCsRENRch8ZTvxKfJV1hbTk5JuUtk+HM2HDgmaWWKZucl67YOFx/S43Z6szY/oqKCgHnzCylHRzZEJZ4biUYGZ+f1hznECZZBh5oZ5v/9Zs9Z9rev+3rDue839mWutS3gJAAAAAJ1AXV1dhg0blmHDhqWqqir7779/8/qmTZt2qK+zzz47f/jDH1rVdtGiRRk6dGiGDRuWoUOH7tDtgVw2DgAAAAAd4K4fPdWm/Z39tRGtbnvttdemvLw8l156aZvWsC0bNmxIWVlZSktL88Ybb+TII4/MypUrU1y8/XGVRl4CAAAAQCd34403ZvDgwRk8eHBmzZqVJKmurs6gQYNy1llnZciQIfn85z+fjRs3JkmOOeaYLF26NEny0EMPZfjw4Rk6dGhOOOGErfru2rVrSktLk6R5/9aOpyzd6VdWoN54442OLgEAAACATqBPnz4dXcJOWbx4cebMmZPFixenoaEho0aNyrHHHpuuXbtm2bJlmT17dkaPHp0vf/nLueOOOzJ16tTmfWtqanL++efnkUceSd++fVNfX7/N51i4cGHOPffcvPbaa7n77rtTUlLSqtqMvAQAAACATuyRRx7Jaaedlq5du6Z79+6ZOHFiHn300STJIYccktGjRydJvvSlLzVvf9eiRYsybty49O3bN0nSs2fPbT7HmDFj8sILL+SJJ57I9OnTW32PTeElAAAAAHRiH3QJd1FR0QeuNzU1bbXtgwwaNChlZWVZtmxZq9oLLwEAAACgExs7dmzuv//+bNy4MevWrcsDDzyQT37yk0mSV199NUuWLEmS/PznP88xxxzTYt+jjz468+fPz2uvvZYk27xs/NVXX01DQ0Pzz9XV1c0jNbdnj73nJQAAAACwfaNGjcqZZ56ZT3ziE0mS888/P0OGDGmesOfOO+/MOeeckwEDBuS8885rsW/v3r1z++235+STT05TU1P69OmTX/3qVy3a/O53v8tNN92UvfbaKyUlJbnjjjvSo0ePVtVW1NTaqX12MybsAQAAAKA97O4T9ryf6urqnH766c2zincEl40DAAAAAAXJyEsAAAAA2Al76sjLQmDkJQAAAABQkISXAAAAAEBBEl4CAAAAAAVJeAkAAAAAFCThJQAAAAB0AnV1dRk2bFiGDRuWqqqq7L///s3rmzZt2qG+zj777PzhD3/YoX1effXVdOvWLd/73vdavY/ZxgEAAABgJ3zY2cYvv/zyNq1jxowZrW577bXXpry8PJdeemmb1vBBTjnllJSUlOSYY47J1KlTW7WPkZewk2bOnJlp06Zl5syZHV0KAAAAwIdy4403ZvDgwRk8eHBmzZqVJKmurs6gQYNy1llnZciQIfn85z+fjRs3JkmOOeaYLF26NEny0EMPZfjw4Rk6dGhOOOGEbfZ/7733ZsCAARkwYMAO1SW8hJ1UW1ubmpqa1NbWdnQpAAAAADts8eLFmTNnThYvXpxFixblhz/8YZ599tkkybJlyzJlypQ899xz6dKlS+64444W+9bU1OT888/P/fffn2eeeSa/+MUvtup/7dq1ufnmm3PVVVftcG3CSwAAAADoxB555JGcdtpp6dq1a7p3756JEyfm0UcfTZIccsghGT16dJLkS1/6UvP2dy1atCjjxo1L3759kyQ9e/bcqv+rr74606ZNS7du3Xa4ttId3gMAAAAA2GN80JQ4RUVFH7je1NS01ba/tXjx4vzP//k/c/HFF+fPf/5ziouLs/fee+f888/fbm1GXgIAAABAJzZ27Njcf//92bhxY9atW5cHHnggn/zkJ5O8M0P4kiVLkiQ///nPc8wxx7TY9+ijj878+fPz2muvJUnq6+u36n/hwoVZvnx5li9fnq9//ev55je/2argMhFeAgAAAECnNmrUqJx55pn5xCc+kdGjR+f888/PkCFDkiSDBg3KnXfemSOOOCLr16/Peeed12Lf3r175/bbb8/JJ5+coUOH5otf/GKb1lbU9EHjQtvQ0qVLc9ddd6WxsTHjx4/PxIkTWzy+bNmy/OxnP8trr72WqVOnNl9Lv3z58tx5553ZuHFjiouLc+qpp2bMmDHbfb433nhjl7wO+FvTpk1LTU1NqqqqctNNN3V0OQAAAEA769OnT0eXsEtUV1fn9NNPb55VvCO0yz0vGxsbM3v27Fx11VWpqKjIFVdckZEjR+aAAw5oblNZWZkLLrggDz74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AAC7oeLWNjz77LPzi1/8Itdcc03efvvtTJ8+PXPnzs1XvvKV7e5bXV2dqqqq9O7dO6WlpRkzZkyWLFnSos2TTz6Z4447LkkyevToPP/882lqasozzzyTgw46KAcffHCSpHv37ikubnXZAAAAAMBuartDGBcuXJjDDz88+++/f773ve/lqaeeyogRI1JRUZERI0akS5cu232S+vr6VFRUNK9XVFTkpZdeet82JSUl6dq1a9auXZuVK1emqKgo06dPz5o1azJmzJicfPLJWz3HvHnzMm/evCTJjBkzUllZud26oBA5dmH3Ut/RBbwPnyWdzcqOLmCbHIedR2EegY5BoG34LIGOtd3wcu7cuampqUlVVVUGDhyYww8/PEcddVT222+/Vj9JU1PTVtv+9l6Z79emoaEhv//973PDDTdk7733zvXXX5+Pf/zjGTJkSIu2EyZMyIQJE5rXa2trW10fFBLHLuxeCvVaAJ8lFALHIR3NMQi0BZ8ltEafPn06uoQ91nbDy+9///v585//nBdffDEvvvhiHnzwwfzwhz9Mz549m8PM8ePHf2AfFRUVqaura16vq6tLjx49ttmmoqIiDQ0N2bBhQ8rLy1NRUZHDDz88H/3oR5MkRx55ZF599dWtwksAAAAAYM/SqgEj++67b4466qhMnjw5N910U2bPnp1Pf/rTefbZZ/PjH/94u/v369cvK1euzKpVq7Jly5YsXLgwI0eObNFmxIgRWbBgQZLk8ccfz6BBg1JUVJShQ4fm9ddfz9tvv52Ghoa8+OKLLSb6AQAAAAD2TK2atrupqSnLly/Piy++mGXLluWPf/xjevTokaOOOioDBw7c7v4lJSWZPHlypk+fnsbGxowbNy4HHnhg5s6dm379+mXkyJE5/vjjc9ttt+XCCy9MeXl5pk6dmiQpLy/PSSedlCuuuCJFRUU58sgjM3z48J171QAAAABAwdtueDljxoy8+uqr6dOnT/r3758JEyZkypQp+chHPrJDTzR8+PCtQsdJkyY1/1xWVpaLL754m/uOHTs2Y8eO3aHnAwAAAAB2b9u9bPyNN95IaWlp9ttvv1RVVaWqqmqHg0sAAAAAgB213ZGXt956a4sJex566KGsXbs2/fv3z8CBAzNgwIAcfPDB7VAqAAAAANCZtOqel+9O2HPUUUclSdavX5958+bll7/8ZdasWZO5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KmpVm21t35YJEyZkxowZe/wJt7O7/PLLO7oEYAd4z8Lux/sWdi/es7B78Z6FHdcu4WVFRUXq6uqa1+vq6tKjR4/3bdPQ0JANGzakvLx8q33r6+vTs2fP9igbAAAAAOhA7RJe9uvXLytXrsyqVauyZcuWLFy4MCNHjmzRZsSIEVmwYEGS5PHHH8+gQYNSVFSUkSNHZuHChdm8eXNWrVqVlStX5tBDD22PsgEAAACADlRy7bXXXrurn6S4uDhVVVWZNWtWHn744Xzyk5/M6NGjM3fu3Lz11lvp06dPDjrooDz66KO5++67s3z58px33nkpLy/PPvvsk3Xr1uWOO+7Io48+msmTJ+/S+1lS+D7+8Y93dAnADvCehd2P9y3sXrxnYffiPQs7pqiptTeVBAAAAABoR+1y2TgAAAAAwI4SXgIAAAAABam0owug8E2aNCkHHXRQ8/rRRx+diRMnvm/7F154IaWlpenfv/8OPc/y5ctTX1+f4cOHf2C7l19+Ob/73e8yefLkHeq/rdx333059dRTO+S5oaOtXbs2119/fZLkz3/+c4qLi/PRj340SXLDDTektLR1p5Vf/OIX6d69ANG5KwAAEj9JREFUe0466aRdVivs6d57fi4uLs7kyZN3+NybJL/5zW+y995759hjj23rEoEP4b777sujjz6a4uLiFBUV5bzzzsvf/d3f7VSfH/b3c2Br755/Gxsbs//++2fKlCnZe++937f9WWedlX/9139NfX197rrrrlxyySVbffd98skns2LFig/8ng2dmfCS7SorK8tNN93U6vYvvPBCunTpskO/HDU0NGT58uV5+eWXtxte9uvXL/369Wt1323t/vvvF17SaXXv3r358+Cee+5Jly5d8rnPfa6Dq4LO6b3n56VLl+buu+/Oddddt8P9nHDCCW1dGvAh/fGPf8xTTz2VmTNnZq+99sqaNWuyZcuWneqzoaHhQ/1+Dmzbe8+/t956a/7jP/4jn/3sZ7e7X8+ePXPJJZckyVbffUeOHJmRI0fuuqJhNye85EObMmVKjj322Dz11FPZsmVLLr744uy11175j//4jxQXF+eRRx7J5MmTs//+++fHP/5x6urqkiRf+cpXMmDAgNxzzz1ZvXp13nzzzXTv3j2///3vs2nTpvz+97/PKaeckl69euWnP/1pNm3alLKyslxwwQXp06dPXnjhhTz44IO5/PLLc88996S2tjarVq1KbW1tPvOZz+Qzn/lMVq1alW9/+9sZMGBAXnrppfTt2zfHHXdc/sf/+B/5y1/+kosuuiiHHnpo3nrrrfzkJz/Jf/7nf6ahoSFnnHFGPvGJT2TBggV58skn8/bbb+dPf/pTRo0alS996UuZM2dONm3alGnTpuXAAw/MRRdd1MH/C1A4FixYkF//+tfZsmVL+vfvn8mTJ6e4uDhPP/105s6dm8bGxuyzzz656qqrkiSvv/56rrnmmtTV1eWzn/1sTjzxxA5+BbD72rhxY7p165YkLc6TSTJ79uz069cvxx13XObMmZMnn3wyJSUlOeKII/LlL3+5xR8irr322hx66KF54YUXsmHDhnzta1/LwIED09jYmDlz5mTZsmXZvHlzPv3pT+dTn/pUVq9ene9973vZsGFDGhsb89WvfjX9+/fP7bffnldeeSVJMm7cuFZ9qQOS1atXp3v37tlrr72SpPnqhilTpuSoo47KCy+8kCT5p3/6p1RVVeXNN9/M7bffnjVr1uSjH/1oLrjgglRWVuYHP/hBysvLs3z58nTr1i1/+MMfWvx+PnDgwA57jbAnGTBgQF5//fUkyb//+7/nt7/9bZLk+OOP3+oKo1WrVmXmzJmZOXNm5s6d2+K776ZNm/Lyyy/nnHPOyZ///OfceeedWbVqVZLkq1/9avr27Ztbbrkl9fX1aWxszGmnnZYxY8a074uFDiS8ZLveDevedcoppzR/UHbv3j0zZ87Mr3/96zz44IP52te+lk996lMtRmN9//vfz2c/+9kMGDAgtbW1mT59em655ZYkySuvvJJvfetbKSsry4IFC5o/sJNkw4YNue6661JSUpJnn302d999dy699NKt6nvjjTdyzTXXZOPGjZk6dWrzCJKamppcfPHFOeCAA3LFFVfk0UcfzfXXX58nn3wy9913X/75n/859913XwYPHpwLLrgg69evz5VXXpkhQ4YkeeevYTfeeGNKS0szderUnHjiifniF7+Yhx9+eIdGokJn8Prrr2fx4sX5b//tv6WkpCR33HFHFi5cmMGDB+fOO+/M9ddfn/322y/r1q1r3mflypX55je/mfXr1+cb3/hGTjjhhBQXuxUztNa75+fNmzdn9erVueaaaz6w/bp167J48eJ873vfS1FRUdavX7/Ndo2Njbnhhhvy9NNP5957783VV1+d+fPnp2vXrrnhhhuyefPmXH311Rk6dGieeOKJDB06NKeeemoaGxvz9ttvN18Kd/PNNyfJ+z4PsLWhQ4fm3nvvzT/90z9lyJAhGTNmTA4//PAkaX4P/u53v8tPf/rTXH755Zk9e3bGjh2b4447LvPnz89PfvKT/PM//3OSd86zV199dYqLi10tAbtAQ0NDli5dmmHDhuWVV17Jb3/720yfPj1JcuWVV+bwww/PIYccstV+paWlmTRpUovvvgsWLGh+/K677srhhx+eadOmpbGxMW+99VaWLl2aHj165Iorrkjyzndl6EyEl2zXB102/vd///dJko9//ONZvHjxNts899xzWbFiRfP6hg0bsnHjxiTvDI8vKyvb5n4bNmzID37wg9TU1CR55+SwLcOHD89ee+2VvfbaK/vss0/+8pe/JEl69erVfC+wAw88MEOGDElRUVEOOuigvPnmm0mSZ599Nk899VQefPDBJO98EaytrU2SDB48OF27dk2SHHDAAamtrU1lZeU2a4DO7rnnnsvLL7/cPNJr06ZNqaioSFlZWQYNGpT99tsvSVJeXt68z/Dhw1NaWpp99tkn5eXlWbNmTfbdd98OqR92R+89P//xj3/Mbbfd1hwYbstHPvKRlJWV5Uc/+lGGDx+eESNGbLPdqFGjkrxzbn931MczzzyT119/PY8//niSd87RK1euTL9+/XL77bdny5YtGTVqVA4++OD06tUrq1atyk9+8pMMHz48RxxxRFu+bNijdenSJTNnzsyLL76YF154Ibfccku++MUvJnnnvvPvLn/2s58lSV566aXmP+6PHTs2c+bMae5r9OjR/igIu8B7B/cMHDgwxx9/fH7zm99k1KhR6dKlS5J3zqUvvvjiNsPL7Xn++efz9a9/Pck797Tu2rVrDjrooPzrv/5r/vt//+8ZMWKE0dN0OsJLdsq7k3MUFxe/b7jY1NSU6dOnbzOk/KAbG8+dOzeDBg3KtGnTsmrVqve9j9d7Jwh5bx3vXm6TJEVFRc3rRUVFaWxsbK7tkksuSZ8+fVr0WV1d3WL/D3p9wDvvpXHjxuULX/hCi+1PPPFEioqKtrmP9xi0ncMOOyxr167NmjVrUlJSkqampubHNm/enCQpKSnJt7/97Tz33HNZuHBhHn744W2O1nz3vVlcXNzifHn22Wdn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\n",
645 "text/plain": [
646 "<Figure size 1332.11x720 with 2 Axes>"
647 ]
648 },
649 "metadata": {},
650 "output_type": "display_data"
651 }
652 ],
653 "source": [
654 "result = pd.melt(train_result.assign(Data='Train')\n",
655 " .append(test_eval.assign(Data='Test'))\n",
656 " .reset_index(),\n",
657 " id_vars=['Data', 'Category'],\n",
658 " var_name='Topic',\n",
659 " value_name='Weight')\n",
660 "\n",
661 "result = pd.melt(train_result.assign(Data='Train')\n",
662 " .append(test_eval.assign(Data='Test'))\n",
663 " .reset_index(),\n",
664 " id_vars=['Data', 'Category'],\n",
665 " var_name='Topic',\n",
666 " value_name='Weight')\n",
667 "\n",
668 "g =sns.catplot(x='Category', y='Weight', hue='Topic', row='Data', kind='bar', data=result, aspect=3.5)"
669 ]
670 },
671 {
672 "cell_type": "markdown",
673 "metadata": {},
674 "source": [
675 "### Most important words by topic"
676 ]
677 },
678 {
679 "cell_type": "markdown",
680 "metadata": {},
681 "source": [
682 "We can also see that the word lists that describe each topic begin to make more sense, e.g. the ‘Entertainment’ category is most directly associated with Topic 4 that includes the words ‘film’, ‘start’, etc."
683 ]
684 },
685 {
686 "cell_type": "code",
687 "execution_count": 25,
688 "metadata": {
689 "ExecuteTime": {
690 "end_time": "2018-11-30T17:03:26.838821Z",
691 "start_time": "2018-11-30T17:03:26.809137Z"
692 }
693 },
694 "outputs": [
695 {
696 "data": {
697 "text/html": [
698 "<div>\n",
699 "<style scoped>\n",
700 " .dataframe tbody tr th:only-of-type {\n",
701 " vertical-align: middle;\n",
702 " }\n",
703 "\n",
704 " .dataframe tbody tr th {\n",
705 " vertical-align: top;\n",
706 " }\n",
707 "\n",
708 " .dataframe thead th {\n",
709 " text-align: right;\n",
710 " }\n",
711 "</style>\n",
712 "<table border=\"1\" class=\"dataframe\">\n",
713 " <thead>\n",
714 " <tr style=\"text-align: right;\">\n",
715 " <th></th>\n",
716 " <th>Topic 1</th>\n",
717 " <th>Topic 2</th>\n",
718 " <th>Topic 3</th>\n",
719 " <th>Topic 4</th>\n",
720 " <th>Topic 5</th>\n",
721 " </tr>\n",
722 " </thead>\n",
723 " <tbody>\n",
724 " <tr>\n",
725 " <th>film</th>\n",
726 " <td>0.00</td>\n",
727 " <td>0.00</td>\n",
728 " <td>0.01</td>\n",
729 " <td>0.41</td>\n",
730 " <td>0.00</td>\n",
731 " </tr>\n",
732 " <tr>\n",
733 " <th>game</th>\n",
734 " <td>0.35</td>\n",
735 " <td>0.00</td>\n",
736 " <td>0.00</td>\n",
737 " <td>0.00</td>\n",
738 " <td>0.02</td>\n",
739 " </tr>\n",
740 " <tr>\n",
741 " <th>best</th>\n",
742 " <td>0.27</td>\n",
743 " <td>0.00</td>\n",
744 " <td>0.00</td>\n",
745 " <td>0.25</td>\n",
746 " <td>0.00</td>\n",
747 " </tr>\n",
748 " <tr>\n",
749 " <th>labour</th>\n",
750 " <td>0.00</td>\n",
751 " <td>0.31</td>\n",
752 " <td>0.00</td>\n",
753 " <td>0.01</td>\n",
754 " <td>0.00</td>\n",
755 " </tr>\n",
756 " <tr>\n",
757 " <th>music</th>\n",
758 " <td>0.00</td>\n",
759 " <td>0.00</td>\n",
760 " <td>0.00</td>\n",
761 " <td>0.24</td>\n",
762 " <td>0.19</td>\n",
763 " </tr>\n",
764 " <tr>\n",
765 " <th>company</th>\n",
766 " <td>0.04</td>\n",
767 " <td>0.00</td>\n",
768 " <td>0.51</td>\n",
769 " <td>0.00</td>\n",
770 " <td>0.00</td>\n",
771 " </tr>\n",
772 " <tr>\n",
773 " <th>election</th>\n",
774 " <td>0.00</td>\n",
775 " <td>0.31</td>\n",
776 " <td>0.00</td>\n",
777 " <td>0.00</td>\n",
778 " <td>0.00</td>\n",
779 " </tr>\n",
780 " <tr>\n",
781 " <th>england</th>\n",
782 " <td>0.24</td>\n",
783 " <td>0.00</td>\n",
784 " <td>0.00</td>\n",
785 " <td>0.00</td>\n",
786 " <td>0.00</td>\n",
787 " </tr>\n",
788 " <tr>\n",
789 " <th>party</th>\n",
790 " <td>0.01</td>\n",
791 " <td>0.32</td>\n",
792 " <td>0.00</td>\n",
793 " <td>0.03</td>\n",
794 " <td>0.01</td>\n",
795 " </tr>\n",
796 " <tr>\n",
797 " <th>market</th>\n",
798 " <td>0.01</td>\n",
799 " <td>0.03</td>\n",
800 " <td>0.46</td>\n",
801 " <td>0.00</td>\n",
802 " <td>0.00</td>\n",
803 " </tr>\n",
804 " </tbody>\n",
805 "</table>\n",
806 "</div>"
807 ],
808 "text/plain": [
809 " Topic 1 Topic 2 Topic 3 Topic 4 Topic 5\n",
810 "film 0.00 0.00 0.01 0.41 0.00\n",
811 "game 0.35 0.00 0.00 0.00 0.02\n",
812 "best 0.27 0.00 0.00 0.25 0.00\n",
813 "labour 0.00 0.31 0.00 0.01 0.00\n",
814 "music 0.00 0.00 0.00 0.24 0.19\n",
815 "company 0.04 0.00 0.51 0.00 0.00\n",
816 "election 0.00 0.31 0.00 0.00 0.00\n",
817 "england 0.24 0.00 0.00 0.00 0.00\n",
818 "party 0.01 0.32 0.00 0.03 0.01\n",
819 "market 0.01 0.03 0.46 0.00 0.00"
820 ]
821 },
822 "execution_count": 25,
823 "metadata": {},
824 "output_type": "execute_result"
825 }
826 ],
827 "source": [
828 "topics = pd.DataFrame(nmf.components_.T,\n",
829 " index=tokens,\n",
830 " columns=topic_labels)\n",
831 "topics.loc[word_count.head(10).index]"
832 ]
833 },
834 {
835 "cell_type": "code",
836 "execution_count": 26,
837 "metadata": {
838 "ExecuteTime": {
839 "end_time": "2018-11-30T18:12:41.423640Z",
840 "start_time": "2018-11-30T18:12:40.542548Z"
841 }
842 },
843 "outputs": [
844 {
845 "data": {
846 "image/png": "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KMoZ65xJeno6q1ev5sCBA1RWVjJx4kQApk6dyl//+lcOHDhAUVER06ZNc1uuvW2fWG42m08bz5nivv3225k1axYrVqxg7dq1TJ8+nWuvvZZ//vOfZ9yf020PwOl0MnPmTF544YVT6gUEBLj+N5lMnTa4+nT72Rnv25mWF0II0fWkJUEI4VGpqak4nU42bNjgKlNVlczMTFJTU93qbt682W1606ZNDBo0qMP1T5s2jezsbBYvXsy4cePw8vICYMqUKezbt4/FixdjNBrdrvanpqaSmZmJ3W53lf34449YLJZTYjpReHg4wcHBp7QMnK6lICYmhltvvZX//Oc/vP766/zrX//CarV2uC8n7r/NZmPHjh2u/U9LSyMrK8vVenLiX0hISIfrPRupqank5eVx9OhRV1l9fT27d+/u8H1raWlh9+7d7b5vo0aNYtu2bW6DxIUQQnQ/SRKEEB6VmprKZZddxsKFC8nIyGDfvn3cddddHDp0iAceeMCt7htvvMGSJUs4ePAgjzzyCLt27eLee+/tcP1Tp05FURReeuklV1cjaLvLUmpqKi+99BITJ07EZDK55t17772UlZVx6623kp2dzfr167nppptIT09n9OjRHW7vgQce4Pnnn+fDDz8kJyeHp59+mu+//96tzh133MGKFSs4fPgwWVlZLF26lMTExDPeWvSJJ55g5cqV7Nu3j4ULF1JXV8fChQsB+P3vf09jYyPz588nMzOTvLw8fvjhBx555BG2bdvW4XrPxpw5c0hOTubqq69my5Yt7N69m2uvvRZvb29uuukmt7p/+ctfyMjIYO/evdxyyy3YbDZuvvnm06735ptvxs/Pj9mzZ7N+/Xpyc3NZuXIlS5cu7fR9EEII0T5JEoQQHvf+++8zefJkrrnmGoYPH86OHTv49ttvSUhIcKv37LPP8ve//51hw4axZMkSFi9ezLBhwzpcd3BwMMOHD6ehocEtSYC2BKKhocFtPAK0XeVfuXIlOTk5jBo1innz5pGWlsZHH310xn156KGHWLhwIXfffTcjRoxg165dPPbYY251HA4Hv/vd7xgyZAiTJ0/G4XCwbNmyM677ueee4+GHH2b48OFs27aNZcuWER4eDkB0dDSbNm3Cx8eHOXPmkJKSwoIFCyguLnbV6Uw6nY5vvvmGiIgIpk+fzvjx47HZbKxateqUp0s/++yz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\n",
847 "text/plain": [
848 "<Figure size 864x360 with 2 Axes>"
849 ]
850 },
851 "metadata": {},
852 "output_type": "display_data"
853 }
854 ],
855 "source": [
856 "fig, ax = plt.subplots(figsize=(12,5))\n",
857 "top_words, top_vals = pd.DataFrame(), pd.DataFrame()\n",
858 "for topic, words_ in topics.items():\n",
859 " top10 = words_.nlargest(10).index\n",
860 " vals = words_.loc[top10].values\n",
861 " top_vals[topic] = vals\n",
862 " top_words[topic] = top10.tolist()\n",
863 "sns.heatmap(pd.DataFrame(top_vals), \n",
864 " annot=top_words, \n",
865 " fmt = '', \n",
866 " center=0, \n",
867 " cmap=sns.diverging_palette(0, 255, sep=1, n=256), \n",
868 " ax=ax);\n",
869 "ax.set_title('Top Words per Topic')\n",
870 "fig.tight_layout();"
871 ]
872 },
873 {
874 "cell_type": "code",
875 "execution_count": 63,
876 "metadata": {
877 "ExecuteTime": {
878 "end_time": "2018-11-30T18:21:17.137799Z",
879 "start_time": "2018-11-30T18:21:17.131534Z"
880 },
881 "slideshow": {
882 "slide_type": "slide"
883 }
884 },
885 "outputs": [
886 {
887 "data": {
888 "text/html": [
889 "<div>\n",
890 "<style scoped>\n",
891 " .dataframe tbody tr th:only-of-type {\n",
892 " vertical-align: middle;\n",
893 " }\n",
894 "\n",
895 " .dataframe tbody tr th {\n",
896 " vertical-align: top;\n",
897 " }\n",
898 "\n",
899 " .dataframe thead th {\n",
900 " text-align: right;\n",
901 " }\n",
902 "</style>\n",
903 "<table border=\"1\" class=\"dataframe\">\n",
904 " <thead>\n",
905 " <tr style=\"text-align: right;\">\n",
906 " <th></th>\n",
907 " <th>Topic 1</th>\n",
908 " <th>Topic 2</th>\n",
909 " <th>Topic 3</th>\n",
910 " <th>Topic 4</th>\n",
911 " <th>Topic 5</th>\n",
912 " </tr>\n",
913 " </thead>\n",
914 " <tbody>\n",
915 " <tr>\n",
916 " <th>10</th>\n",
917 " <td>0.26</td>\n",
918 " <td>0.00</td>\n",
919 " <td>0.29</td>\n",
920 " <td>0.00</td>\n",
921 " <td>0.00</td>\n",
922 " </tr>\n",
923 " <tr>\n",
924 " <th>100</th>\n",
925 " <td>0.04</td>\n",
926 " <td>0.06</td>\n",
927 " <td>0.06</td>\n",
928 " <td>0.00</td>\n",
929 " <td>0.09</td>\n",
930 " </tr>\n",
931 " <tr>\n",
932 " <th>100m</th>\n",
933 " <td>0.04</td>\n",
934 " <td>0.00</td>\n",
935 " <td>0.00</td>\n",
936 " <td>0.00</td>\n",
937 " <td>0.00</td>\n",
938 " </tr>\n",
939 " <tr>\n",
940 " <th>11</th>\n",
941 " <td>0.08</td>\n",
942 " <td>0.00</td>\n",
943 " <td>0.10</td>\n",
944 " <td>0.11</td>\n",
945 " <td>0.00</td>\n",
946 " </tr>\n",
947 " <tr>\n",
948 " <th>12</th>\n",
949 " <td>0.13</td>\n",
950 " <td>0.00</td>\n",
951 " <td>0.17</td>\n",
952 " <td>0.00</td>\n",
953 " <td>0.00</td>\n",
954 " </tr>\n",
955 " </tbody>\n",
956 "</table>\n",
957 "</div>"
958 ],
959 "text/plain": [
960 " Topic 1 Topic 2 Topic 3 Topic 4 Topic 5\n",
961 "10 0.26 0.00 0.29 0.00 0.00\n",
962 "100 0.04 0.06 0.06 0.00 0.09\n",
963 "100m 0.04 0.00 0.00 0.00 0.00\n",
964 "11 0.08 0.00 0.10 0.11 0.00\n",
965 "12 0.13 0.00 0.17 0.00 0.00"
966 ]
967 },
968 "execution_count": 63,
969 "metadata": {},
970 "output_type": "execute_result"
971 }
972 ],
973 "source": [
974 "topics = pd.DataFrame(nmf.components_.T,\n",
975 " index=words,\n",
976 " columns=topic_labels)\n",
977 "topics.head()"
978 ]
979 },
980 {
981 "cell_type": "code",
982 "execution_count": 64,
983 "metadata": {
984 "ExecuteTime": {
985 "end_time": "2018-11-30T18:21:19.107287Z",
986 "start_time": "2018-11-30T18:21:19.097680Z"
987 },
988 "slideshow": {
989 "slide_type": "slide"
990 }
991 },
992 "outputs": [
993 {
994 "data": {
995 "text/html": [
996 "<div>\n",
997 "<style scoped>\n",
998 " .dataframe tbody tr th:only-of-type {\n",
999 " vertical-align: middle;\n",
1000 " }\n",
1001 "\n",
1002 " .dataframe tbody tr th {\n",
1003 " vertical-align: top;\n",
1004 " }\n",
1005 "\n",
1006 " .dataframe thead th {\n",
1007 " text-align: right;\n",
1008 " }\n",
1009 "</style>\n",
1010 "<table border=\"1\" class=\"dataframe\">\n",
1011 " <thead>\n",
1012 " <tr style=\"text-align: right;\">\n",
1013 " <th></th>\n",
1014 " <th>Topic 1</th>\n",
1015 " <th>Topic 2</th>\n",
1016 " <th>Topic 3</th>\n",
1017 " <th>Topic 4</th>\n",
1018 " <th>Topic 5</th>\n",
1019 " </tr>\n",
1020 " </thead>\n",
1021 " <tbody>\n",
1022 " <tr>\n",
1023 " <th>0</th>\n",
1024 " <td>second</td>\n",
1025 " <td>minister</td>\n",
1026 " <td>company</td>\n",
1027 " <td>film</td>\n",
1028 " <td>use</td>\n",
1029 " </tr>\n",
1030 " <tr>\n",
1031 " <th>1</th>\n",
1032 " <td>win</td>\n",
1033 " <td>public</td>\n",
1034 " <td>firm</td>\n",
1035 " <td>star</td>\n",
1036 " <td>used</td>\n",
1037 " </tr>\n",
1038 " <tr>\n",
1039 " <th>2</th>\n",
1040 " <td>old</td>\n",
1041 " <td>say</td>\n",
1042 " <td>market</td>\n",
1043 " <td>tv</td>\n",
1044 " <td>users</td>\n",
1045 " </tr>\n",
1046 " <tr>\n",
1047 " <th>3</th>\n",
1048 " <td>think</td>\n",
1049 " <td>party</td>\n",
1050 " <td>2004</td>\n",
1051 " <td>including</td>\n",
1052 " <td>using</td>\n",
1053 " </tr>\n",
1054 " <tr>\n",
1055 " <th>4</th>\n",
1056 " <td>good</td>\n",
1057 " <td>labour</td>\n",
1058 " <td>sales</td>\n",
1059 " <td>won</td>\n",
1060 " <td>technology</td>\n",
1061 " </tr>\n",
1062 " <tr>\n",
1063 " <th>5</th>\n",
1064 " <td>won</td>\n",
1065 " <td>election</td>\n",
1066 " <td>growth</td>\n",
1067 " <td>best</td>\n",
1068 " <td>website</td>\n",
1069 " </tr>\n",
1070 " <tr>\n",
1071 " <th>6</th>\n",
1072 " <td>long</td>\n",
1073 " <td>general</td>\n",
1074 " <td>chief</td>\n",
1075 " <td>music</td>\n",
1076 " <td>service</td>\n",
1077 " </tr>\n",
1078 " <tr>\n",
1079 " <th>7</th>\n",
1080 " <td>team</td>\n",
1081 " <td>plans</td>\n",
1082 " <td>business</td>\n",
1083 " <td>awards</td>\n",
1084 " <td>software</td>\n",
1085 " </tr>\n",
1086 " <tr>\n",
1087 " <th>8</th>\n",
1088 " <td>did</td>\n",
1089 " <td>saying</td>\n",
1090 " <td>10</td>\n",
1091 " <td>actor</td>\n",
1092 " <td>video</td>\n",
1093 " </tr>\n",
1094 " <tr>\n",
1095 " <th>9</th>\n",
1096 " <td>game</td>\n",
1097 " <td>tony</td>\n",
1098 " <td>expected</td>\n",
1099 " <td>award</td>\n",
1100 " <td>internet</td>\n",
1101 " </tr>\n",
1102 " </tbody>\n",
1103 "</table>\n",
1104 "</div>"
1105 ],
1106 "text/plain": [
1107 " Topic 1 Topic 2 Topic 3 Topic 4 Topic 5\n",
1108 "0 second minister company film use\n",
1109 "1 win public firm star used\n",
1110 "2 old say market tv users\n",
1111 "3 think party 2004 including using\n",
1112 "4 good labour sales won technology\n",
1113 "5 won election growth best website\n",
1114 "6 long general chief music service\n",
1115 "7 team plans business awards software\n",
1116 "8 did saying 10 actor video\n",
1117 "9 game tony expected award internet"
1118 ]
1119 },
1120 "execution_count": 64,
1121 "metadata": {},
1122 "output_type": "execute_result"
1123 }
1124 ],
1125 "source": [
1126 "top_words = {}\n",
1127 "for topic, words_ in topics.items():\n",
1128 " top_words[topic] = words_.nlargest(10).index.tolist()\n",
1129 "pd.DataFrame(top_words)"
1130 ]
1131 }
1132 ],
1133 "metadata": {
1134 "celltoolbar": "Slideshow",
1135 "hide_input": false,
1136 "kernelspec": {
1137 "display_name": "Python 3",
1138 "language": "python",
1139 "name": "python3"
1140 },
1141 "language_info": {
1142 "codemirror_mode": {
1143 "name": "ipython",
1144 "version": 3
1145 },
1146 "file_extension": ".py",
1147 "mimetype": "text/x-python",
1148 "name": "python",
1149 "nbconvert_exporter": "python",
1150 "pygments_lexer": "ipython3",
1151 "version": "3.6.8"
1152 },
1153 "name": "_merged",
1154 "toc": {
1155 "base_numbering": 1,
1156 "nav_menu": {},
1157 "number_sections": true,
1158 "sideBar": true,
1159 "skip_h1_title": true,
1160 "title_cell": "Table of Contents",
1161 "title_sidebar": "Contents",
1162 "toc_cell": false,
1163 "toc_position": {
1164 "height": "47px",
1165 "left": "1203px",
1166 "right": "1064px",
1167 "top": "97px",
1168 "width": "212px"
1169 },
1170 "toc_section_display": true,
1171 "toc_window_display": true
1172 }
1173 },
1174 "nbformat": 4,
1175 "nbformat_minor": 2
1176 }