Skip to content

Instantly share code, notes, and snippets.

@shawngraham
Created November 17, 2019 21:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shawngraham/d1dc36a0de925487ada66875dbfafe2e to your computer and use it in GitHub Desktop.
Save shawngraham/d1dc36a0de925487ada66875dbfafe2e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#slightly modified version of\n",
"#https://tm4ss.github.io/docs/Tutorial_6_Topic_Models.html"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Registered S3 methods overwritten by 'ggplot2':\n",
" method from \n",
" [.quosures rlang\n",
" c.quosures rlang\n",
" print.quosures rlang\n",
"Registered S3 method overwritten by 'rvest':\n",
" method from\n",
" read_xml.response xml2\n",
"── \u001b[1mAttaching packages\u001b[22m ─────────────────────────────────────── tidyverse 1.2.1 ──\n",
"\u001b[32m✔\u001b[39m \u001b[34mggplot2\u001b[39m 3.1.1 \u001b[32m✔\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.2 \n",
"\u001b[32m✔\u001b[39m \u001b[34mtibble \u001b[39m 2.1.1 \u001b[32m✔\u001b[39m \u001b[34mdplyr \u001b[39m 0.8.0.\u001b[31m1\u001b[39m\n",
"\u001b[32m✔\u001b[39m \u001b[34mtidyr \u001b[39m 0.8.3 \u001b[32m✔\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0 \n",
"\u001b[32m✔\u001b[39m \u001b[34mreadr \u001b[39m 1.3.1 \u001b[32m✔\u001b[39m \u001b[34mforcats\u001b[39m 0.4.0 \n",
"── \u001b[1mConflicts\u001b[22m ────────────────────────────────────────── tidyverse_conflicts() ──\n",
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n",
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n"
]
}
],
"source": [
"library(tidyverse)\n",
"library(tidytext)\n",
"ja <- read_csv( \"http://www.themacroscope.org/2.0/datafiles/johnadams-for-stmt.csv\",\n",
" col_names = c(\"row\", \"date\", \"text\"),\n",
" col_types = cols(col_character(), col_character(), col_character()))\n",
"\n",
"ja_df <- tibble(id = ja$row, text = ja$text, date = ja$date)\n",
"\n",
"tidy_ja <- ja_df %>%\n",
" unnest_tokens(word, text)\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Joining, by = \"word\"\n"
]
}
],
"source": [
"data(stop_words)\n",
"\n",
"tidy_ja <- tidy_ja %>%\n",
" anti_join(stop_words)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"diary_words <- tidy_ja %>%\n",
" count(date, word, sort = TRUE)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"dtm <- diary_words %>%\n",
" cast_dtm(date, word, n)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>1003</li>\n",
"\t<li>8338</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1003\n",
"\\item 8338\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1003\n",
"2. 8338\n",
"\n",
"\n"
],
"text/plain": [
"[1] 1003 8338"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# have a look at the number of documents and terms in the matrix\n",
"dim(dtm)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"K = 20; V = 8338; M = 1003\n",
"Sampling 500 iterations!\n",
"Iteration 25 ...\n",
"Iteration 50 ...\n",
"Iteration 75 ...\n",
"Iteration 100 ...\n",
"Iteration 125 ...\n",
"Iteration 150 ...\n",
"Iteration 175 ...\n",
"Iteration 200 ...\n",
"Iteration 225 ...\n",
"Iteration 250 ...\n",
"Iteration 275 ...\n",
"Iteration 300 ...\n",
"Iteration 325 ...\n",
"Iteration 350 ...\n",
"Iteration 375 ...\n",
"Iteration 400 ...\n",
"Iteration 425 ...\n",
"Iteration 450 ...\n",
"Iteration 475 ...\n",
"Iteration 500 ...\n",
"Gibbs sampling completed!\n"
]
}
],
"source": [
"require(topicmodels)\n",
"# number of topics\n",
"K <- 20\n",
"# set random number generator seed\n",
"set.seed(9161)\n",
"# compute the LDA model, inference via 1000 iterations of Gibbs sampling\n",
"topicModel <- LDA(dtm, K, method=\"Gibbs\", control=list(iter = 500, verbose = 25))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<strong>$names</strong> = <ol class=list-inline>\n",
"\t<li>'terms'</li>\n",
"\t<li>'topics'</li>\n",
"</ol>\n"
],
"text/latex": [
"\\textbf{\\$names} = \\begin{enumerate*}\n",
"\\item 'terms'\n",
"\\item 'topics'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"**$names** = 1. 'terms'\n",
"2. 'topics'\n",
"\n",
"\n"
],
"text/plain": [
"$names\n",
"[1] \"terms\" \"topics\"\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# have a look a some of the results (posterior distributions)\n",
"tmResult <- posterior(topicModel)\n",
"# format of the resulting object\n",
"attributes(tmResult)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"8338"
],
"text/latex": [
"8338"
],
"text/markdown": [
"8338"
],
"text/plain": [
"[1] 8338"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ncol(dtm) # lengthOfVocab"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>20</li>\n",
"\t<li>8338</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 20\n",
"\\item 8338\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 20\n",
"2. 8338\n",
"\n",
"\n"
],
"text/plain": [
"[1] 20 8338"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# topics are probability distribtions over the entire vocabulary\n",
"beta <- tmResult$terms # get beta from results\n",
"dim(beta) "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>1003</li>\n",
"\t<li>20</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1003\n",
"\\item 20\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1003\n",
"2. 20\n",
"\n",
"\n"
],
"text/plain": [
"[1] 1003 20"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# for every document we have a probability distribution of its contained topics\n",
"theta <- tmResult$topics \n",
"dim(theta) "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<caption>A matrix: 10 × 20 of type chr</caption>\n",
"<thead>\n",
"\t<tr><th scope=col>Topic 1</th><th scope=col>Topic 2</th><th scope=col>Topic 3</th><th scope=col>Topic 4</th><th scope=col>Topic 5</th><th scope=col>Topic 6</th><th scope=col>Topic 7</th><th scope=col>Topic 8</th><th scope=col>Topic 9</th><th scope=col>Topic 10</th><th scope=col>Topic 11</th><th scope=col>Topic 12</th><th scope=col>Topic 13</th><th scope=col>Topic 14</th><th scope=col>Topic 15</th><th scope=col>Topic 16</th><th scope=col>Topic 17</th><th scope=col>Topic 18</th><th scope=col>Topic 19</th><th scope=col>Topic 20</th></tr>\n",
"</thead>\n",
"<tbody>\n",
"\t<tr><td>3 </td><td>french </td><td>country</td><td>morning </td><td>4 </td><td>court </td><td>dined </td><td>evening </td><td>hill </td><td>town </td><td>people </td><td>conversation</td><td>mind </td><td>5 </td><td>day </td><td>board </td><td>de </td><td>england </td><td>house </td><td>2 </td></tr>\n",
"\t<tr><td>son </td><td>written </td><td>st </td><td>heard </td><td>brother</td><td>law </td><td>home </td><td>dr </td><td>brought </td><td>rode </td><td>public </td><td>life </td><td>english </td><td>common </td><td>read </td><td>pleasure</td><td>la </td><td>told </td><td>chamber</td><td>business</td></tr>\n",
"\t<tr><td>adams </td><td>yesterday</td><td>world </td><td>colledge</td><td>days </td><td>governor </td><td>coll </td><td>spent </td><td>billings</td><td>returned</td><td>letters </td><td>office </td><td>church </td><td>body </td><td>night</td><td>wind </td><td>le </td><td>franklin</td><td>called </td><td>half </td></tr>\n",
"\t<tr><td>13 </td><td>time </td><td>deacon </td><td>8 </td><td>dont </td><td>quincy </td><td>boston </td><td>afternoon</td><td>air </td><td>clock </td><td>justice </td><td>20 </td><td>story </td><td>laws </td><td>adams</td><td>river </td><td>les </td><td>congress</td><td>means </td><td>time </td></tr>\n",
"\t<tr><td>9 </td><td>passages </td><td>master </td><td>warm </td><td>16 </td><td>judge </td><td>company </td><td>gentlemen</td><td>grass </td><td>fine </td><td>friend </td><td>children </td><td>12 </td><td>matter </td><td>set </td><td>arrived </td><td>qui </td><td>jay </td><td>told </td><td>found </td></tr>\n",
"\t<tr><td>american</td><td>officers </td><td>james </td><td>speech </td><td>york </td><td>character</td><td>family </td><td>otis </td><td>bass </td><td>walked </td><td>government</td><td>late </td><td>america </td><td>center </td><td>met </td><td>ship </td><td>des </td><td>america </td><td>party </td><td>1 </td></tr>\n",
"\t<tr><td>meeting </td><td>gentleman</td><td>day </td><td>reason </td><td>field </td><td>action </td><td>dinner </td><td>gentleman</td><td>wall </td><td>city </td><td>religion </td><td>thro </td><td>table </td><td>natural</td><td>ten </td><td>7 </td><td>en </td><td>letter </td><td>bad </td><td>land </td></tr>\n",
"\t<tr><td>france </td><td>church </td><td>school </td><td>9 </td><td>street </td><td>attention</td><td>smith </td><td>cooper </td><td>sullivan</td><td>drank </td><td>gentleman </td><td>horse </td><td>poor </td><td>6 </td><td>horse</td><td>sail </td><td>paris </td><td>received</td><td>account</td><td>10 </td></tr>\n",
"\t<tr><td>friends </td><td>47 </td><td>dined </td><td>office </td><td>king </td><td>bar </td><td>lee </td><td>major </td><td>load </td><td>miles </td><td>system </td><td>colony </td><td>daughter</td><td>weight </td><td>10 </td><td>11 </td><td>france</td><td>dr </td><td>terms </td><td>island </td></tr>\n",
"\t<tr><td>french </td><td>11 </td><td>duke </td><td>warren </td><td>fair </td><td>found </td><td>attended</td><td>fire </td><td>barley </td><td>wife </td><td>untill </td><td>wood </td><td>johnson </td><td>motion </td><td>law </td><td>europe </td><td>par </td><td>agreed </td><td>consent</td><td>life </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 10 × 20 of type chr\n",
"\\begin{tabular}{llllllllllllllllllll}\n",
" Topic 1 & Topic 2 & Topic 3 & Topic 4 & Topic 5 & Topic 6 & Topic 7 & Topic 8 & Topic 9 & Topic 10 & Topic 11 & Topic 12 & Topic 13 & Topic 14 & Topic 15 & Topic 16 & Topic 17 & Topic 18 & Topic 19 & Topic 20\\\\\n",
"\\hline\n",
"\t 3 & french & country & morning & 4 & court & dined & evening & hill & town & people & conversation & mind & 5 & day & board & de & england & house & 2 \\\\\n",
"\t son & written & st & heard & brother & law & home & dr & brought & rode & public & life & english & common & read & pleasure & la & told & chamber & business\\\\\n",
"\t adams & yesterday & world & colledge & days & governor & coll & spent & billings & returned & letters & office & church & body & night & wind & le & franklin & called & half \\\\\n",
"\t 13 & time & deacon & 8 & dont & quincy & boston & afternoon & air & clock & justice & 20 & story & laws & adams & river & les & congress & means & time \\\\\n",
"\t 9 & passages & master & warm & 16 & judge & company & gentlemen & grass & fine & friend & children & 12 & matter & set & arrived & qui & jay & told & found \\\\\n",
"\t american & officers & james & speech & york & character & family & otis & bass & walked & government & late & america & center & met & ship & des & america & party & 1 \\\\\n",
"\t meeting & gentleman & day & reason & field & action & dinner & gentleman & wall & city & religion & thro & table & natural & ten & 7 & en & letter & bad & land \\\\\n",
"\t france & church & school & 9 & street & attention & smith & cooper & sullivan & drank & gentleman & horse & poor & 6 & horse & sail & paris & received & account & 10 \\\\\n",
"\t friends & 47 & dined & office & king & bar & lee & major & load & miles & system & colony & daughter & weight & 10 & 11 & france & dr & terms & island \\\\\n",
"\t french & 11 & duke & warren & fair & found & attended & fire & barley & wife & untill & wood & johnson & motion & law & europe & par & agreed & consent & life \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 10 × 20 of type chr\n",
"\n",
"| Topic 1 | Topic 2 | Topic 3 | Topic 4 | Topic 5 | Topic 6 | Topic 7 | Topic 8 | Topic 9 | Topic 10 | Topic 11 | Topic 12 | Topic 13 | Topic 14 | Topic 15 | Topic 16 | Topic 17 | Topic 18 | Topic 19 | Topic 20 |\n",
"|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
"| 3 | french | country | morning | 4 | court | dined | evening | hill | town | people | conversation | mind | 5 | day | board | de | england | house | 2 |\n",
"| son | written | st | heard | brother | law | home | dr | brought | rode | public | life | english | common | read | pleasure | la | told | chamber | business |\n",
"| adams | yesterday | world | colledge | days | governor | coll | spent | billings | returned | letters | office | church | body | night | wind | le | franklin | called | half |\n",
"| 13 | time | deacon | 8 | dont | quincy | boston | afternoon | air | clock | justice | 20 | story | laws | adams | river | les | congress | means | time |\n",
"| 9 | passages | master | warm | 16 | judge | company | gentlemen | grass | fine | friend | children | 12 | matter | set | arrived | qui | jay | told | found |\n",
"| american | officers | james | speech | york | character | family | otis | bass | walked | government | late | america | center | met | ship | des | america | party | 1 |\n",
"| meeting | gentleman | day | reason | field | action | dinner | gentleman | wall | city | religion | thro | table | natural | ten | 7 | en | letter | bad | land |\n",
"| france | church | school | 9 | street | attention | smith | cooper | sullivan | drank | gentleman | horse | poor | 6 | horse | sail | paris | received | account | 10 |\n",
"| friends | 47 | dined | office | king | bar | lee | major | load | miles | system | colony | daughter | weight | 10 | 11 | france | dr | terms | island |\n",
"| french | 11 | duke | warren | fair | found | attended | fire | barley | wife | untill | wood | johnson | motion | law | europe | par | agreed | consent | life |\n",
"\n"
],
"text/plain": [
" Topic 1 Topic 2 Topic 3 Topic 4 Topic 5 Topic 6 Topic 7 Topic 8 \n",
" [1,] 3 french country morning 4 court dined evening \n",
" [2,] son written st heard brother law home dr \n",
" [3,] adams yesterday world colledge days governor coll spent \n",
" [4,] 13 time deacon 8 dont quincy boston afternoon\n",
" [5,] 9 passages master warm 16 judge company gentlemen\n",
" [6,] american officers james speech york character family otis \n",
" [7,] meeting gentleman day reason field action dinner gentleman\n",
" [8,] france church school 9 street attention smith cooper \n",
" [9,] friends 47 dined office king bar lee major \n",
"[10,] french 11 duke warren fair found attended fire \n",
" Topic 9 Topic 10 Topic 11 Topic 12 Topic 13 Topic 14 Topic 15\n",
" [1,] hill town people conversation mind 5 day \n",
" [2,] brought rode public life english common read \n",
" [3,] billings returned letters office church body night \n",
" [4,] air clock justice 20 story laws adams \n",
" [5,] grass fine friend children 12 matter set \n",
" [6,] bass walked government late america center met \n",
" [7,] wall city religion thro table natural ten \n",
" [8,] sullivan drank gentleman horse poor 6 horse \n",
" [9,] load miles system colony daughter weight 10 \n",
"[10,] barley wife untill wood johnson motion law \n",
" Topic 16 Topic 17 Topic 18 Topic 19 Topic 20\n",
" [1,] board de england house 2 \n",
" [2,] pleasure la told chamber business\n",
" [3,] wind le franklin called half \n",
" [4,] river les congress means time \n",
" [5,] arrived qui jay told found \n",
" [6,] ship des america party 1 \n",
" [7,] 7 en letter bad land \n",
" [8,] sail paris received account 10 \n",
" [9,] 11 france dr terms island \n",
"[10,] europe par agreed consent life "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"terms(topicModel, 10)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"top5termsPerTopic <- terms(topicModel, 5)\n",
"topicNames <- apply(top5termsPerTopic, 2, paste, collapse=\" \")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"\n",
"exampleIds <- c(2, 100, 200)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Attaching package: ‘reshape2’\n",
"\n",
"The following object is masked from ‘package:tidyr’:\n",
"\n",
" smiths\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC91BMVEUAAAAAujgBAQECAgID\nAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERETExMUFBQVFRUW\nFhYXFxcaGhobGxsdHR0fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyss\nLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs9PT0+Pj4/\nPz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBR\nUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFhnP9i\nYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0\ndHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OEhISFhYWG\nhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eY\nmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamq\nqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8\nvLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3O\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g\n4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy\n8vLz8/P09PT19fX29vb39/f4dm34+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///99FOq3AAAACXBI\nWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO29e5xV5X3vPyf2NJfG9JzkpJc0zaU9PadJekLa\nk/bXpp7m9L5nBgZmYByInAiihorEKBHFkagMjhq8REOJCFYKWhwDCAgSoxJqaryAiigaWiQY\nQHBghrlk358/fuv7rLWe69qzL8+avWbg8369mL33s571PM+e73qz11oM82lgAABnGpJeAABn\nAhAJgBiASADEAEQCIAYgEgAxAJEAiAGIBEAMQCQAYgAixca/J0FvstOL2Y8nO33yQKTY2J8E\nx5OdXsx+NNnpkwcixUYihxJEGiNApNhI5FCCSGMEiBQbiRxKEGmMAJFiI5FDCSKNESBSbCRy\nKEGkMQJEio1EDiWINEaASLGRyKEEkcYIECk2EjmUINIYASLFRiKHEkQaI0Ck2KjxYNjQ9vnf\nmFXzoeQs0u1//z8+8WfLap1ezF6rSMu//Du/9YWr9rpOnzwQKTZqPBge/Prdf5igSH+74P6H\nL/uNW2rcW8xeq0grbv2X7y/95BzX6ZMHIsVGjQeDx58mKBLnb/6uxh3F7E6ndnP+0HX65IFI\nsVH7gZS4SF/uqHFHMbuDSPs2f+Fi1+mTByLFRu2HUtIi3f6xjTXuKWavWaS9H/vN35i9z3X6\n5IFIsVHroZS4SMs/fk+tu4rZaxbp9W2bbvnvV7pOnzwQKTZqPZSSFumW315Z875idqdrpNt+\n8wXH6ZMHIsVG7QdSoiJd88m1Nc8ek0hLf+PHjtMnD0SKjRqPope3bPmjti1ba9zbWaR/+Ngt\nW7ZsebzGvcXstYo09zs967/1qYmu0ycPRIqNGg+GLb9BfKzGvZ1F+u98+i/UuLeYvVaRvvHH\nn/jU/3fdS67TJw9Eio0aDwY38CNCYwSIFBuJHEoQaYwAkWIjkUMJIo0RIFJsJHIoQaQxAkSK\njUQOJYg0RoBIsZHIoQSRxggQKTYSOZQg0hgBIsVGIocSRBojQKTYSORQgkhjBIgUG4kcShBp\njACRYuO0Rzo7cFpnIGM0nB7KDplNVp/B7LDZlB40W7Lebhlt+ow9kD2OvcS0vURrsuglitlp\niIGsNdBw5KKNySKWaLbYSxymJSZR5hJApNg47pFmvcd13s0ZDccHWL/ZVDAbTrIhsyl90mxh\n2ePHB7XpC9ZA/dY4Gfau0dKbNfsMsr6yS+xjg8fl5+FpGoelzU7D1jjFvNlyetBsybITRsvJ\njNlniJ1Spk8eiBQbVF6IpAORQNVQeSGSDkQCVUPlhUg6EAlUDZUXIulAJFA1VN70Lwi14PUV\n6T9xlD71Fen/EWoniASqhsoLkSAScITKC5EgEnCEyguRIBJwhMoLkSAScITKC5EgEnCEyguR\nIBJwhMoLkSAScITKC5EgEnCEyguRINIYoau71JZlix0G4Tuv6khtrGI8vXs0O5vEUyovRIJI\n9aXYOS/nPazsOMV2XNsxZd7j4YbSIm0ve1QLokXa2/jqQJZe3HZjJeOJ7iMBkXwgUlIT93as\nZGx34/OMXb3muVe/l9oatJcWqQqiRdreHrzwRSqH6D4SEMkHIiU283ONL/bNWBG+WnhN8KSr\n+8EZLYu9b9HVtO3JSYy9elXrlK8947vQdfPamW2L3/W2PDF30oUrhuTW8DEYZNPMVur2wtXt\nU77uyUo7d6c8er3nd9KTrf543T1fmXJL+plLJ197QhmU8LsXH7qweVZPUVmOWEJh1flTlm6G\nSByIlNzUy2csmitOnb4RfoZ0td58aP/8+UVx5Obb7jty7Lk9gUgTH8wMXLmEsc3nP3lk3/wu\nsVX08geZduube+d43X6089Dhtc1v+Ttv1T+R+HhTv/3T56Z2Xr3v9UuVQX149/WTd7y9rWWj\nKlK4hAdbnz7SMxUicSBSclNnOhoPhs93NL8RPOvqyDB2OLVbHLmnUi/5W/iBP9d78lQrK7TT\nRdWB1Mlwq+jlDzIrz9jjrcGrb64pLdKsgmd040neWwzq96LuxTZvX7a6XRUpWEKx7SHvyVIu\n0roFCxZ8K+2R5yKlFTLFtEGOZc0mq0+W5c2mgrUXK9CXED6OL5I6mT0OyxgtmULNS9Rmz/gi\nqZ3y9qLt70fEEq3JrCXmaYluB2CsJCjSU02TtgRPd7Y8HbZ2ddLX9g3yyL29edFDB1lw4C/1\nnuxJpX+e8tkntoaP/iDeBwbbnUqz3hXzLpje8u3SIlHH9TO9L8+rg3Ko+/HUHr6tVxEpWMI7\nqb3eE//U7poJEyZ8me/ERYr7OzUCxt0QX6Q6zq+vg4uUwOxjgOREOta2bkPLz/jTrS0/Fs1C\npIV05D7hHbns4COdTT3BgU9ngHtSw4dTL4Q7BFvFIx8k6MYuX/jy0d7O7tIiUcf1s70vL2iD\n8lV53d8RIonlhGMfS9GvVdvORXr38OHDP+/1yHCRehVO5nsNBtmA2VQwG/rZsNmU6TNbWK63\nd0gsl4/ji6T0GbDGybJTRsupnNlniJ0uu8TTtEQxO72lPl8ktVPaGqdofz+GzJYcO2m09GXN\nPsOsX5k+eRITqXDVlYXionneKRhbN2WPbA9O7V5k3bd5r1ZP8lvvn62LlJ92tzIWbVUfRbf+\n1Mve6dksU6Q7+L8gWSLpgxqndmI54djFtse8J9/FNRIH10hJTbyu7Zj3N3n7asZWNG89cODA\nIcZ2XTXo32x4Y/68Itsx9TDb2z6JHb7/tRMHrrxBF4k92vjAwcP/9m2xVfTyBwkP9o5Vxfyq\nZkUkvvmhmYf6MrZIYlC/F/fu4fBmQ7gcuYS1F/6c7W2DSByIlNC8rzc/SQ/PNL7C2vmFiXcw\nb0z10XG6dnrL9e8wll85Y/qSnkns+I0XTJyxrM8Qie38ekvrZWvFVtErGCTotnfe9Nmrlyoi\n8c19nW3i9jdTRAoH9XtxkcTt73A5cuz8fe0XLFoPkTgQKekFnDlQeSESRAKOUHkhEkQCjlB5\nIRJEAo5QeSESRAKOUHkhEkQCjlB5IRJEAo5QeSESRAKOUHkhEkQCjlB5IRJEAo5QeSESRAKO\nUHkhEkQCjlB5IRJEAo5QeZHYpwORQNVQeSGSDkQCVUPlhUg6EAlUDZU3bVwhJXGNpPXBNVKd\ngEixQeWFSBAJOELlhUgQCThC5YVIEAk4QuWFSBAJOELlhUgQCThC5YVIEAk4QuWFSBAJOELl\nhUgQCThC5YVIEAk4QuWFSBApBmqOrSy3Y1UD068itoOWlYzKGBDjR0Rf6gWHSDoQqQLOYJGM\n2FmIBJF0xrNI+ejOEEkBItWJmEUKMpDtCGORlazmHTP2w3mT2q87FRGerKcki4RmsXvX0lVf\nacqoY6i5y/6BHvbVU5NL5C/LmcOwZTXeOchvFu+Lxi8VxqwXHCLpQKQKEBnIVoSxyErW8443\nNa8/dPDR3ojwZD0lWSQ0i927mu8fHi6qY2i5y/RH9NVTk0vkL8uZg7BlPd7Z/0QS74vGV4b9\n6bPPPvvCKQ9K7Dul0Z8/ZTDEBs2motlwmqXNpuxps4XlaLAQauEiaX0G7XFYnzlZzuwzzAbK\nLnGAlihmp7fU74ukdsrYb7VgtgxZS8xVsMQ0LTHOg9eReEUKMpDtCOMwK1nPOy5MW6nv6EPh\nyVpKskholrt3zS4yfQyxayCS6KumJrOR85f5zEHYsh7vzEWS78sbXx1Wy5CN4ztZMREZsnWd\nX18HMmTjIcxAjogwDrKS9bzjt1Mv6jvK8GQtJVkEy8rdu24I5hRjaLnL3h/RV01NZqxU/rKc\nOQhb1uOduUjyfXnjq8M+vXr16gcHPHKeSAMag4UBgwxLm01Fs2GIZc2m3JDZwvIDA8Pim8/H\nIZG0PmlrnDwbNCfL20scLrvEYVqimH2IL5qLpC3afqv29yNiiWaLvcQsLTGOgzYm4r/ZsCc1\nHBFhHGQl63nH3meMvqMMT9aj9EKR5O7i9oMYQ8td9v6IvmpqMjNGlgPqM/NQQDXemYv0jiqS\nMSyukXCNFBsyp9iKMCbun830vGN5ameFJxsiBQnNcnchUjiGnrvs/RF9jdTk6PxlY2YuElPi\nnXl+s3FqVyKMWS84RNKBSBUgjkErwlhkJet5xxub1x86tKU3IjzZEClMaBa78+3qGHruMv0R\nfUVqsgxqtvKXjZm9tejxzn5+88PqzYZSYcx6wSGSDkSqACGSFWEsspL1vGP2+Nzm9s5TEeHJ\nhkhhQrPYnW/XxtByl/nt77CvSE2WQc12/rI+s7cWPd7Zz2/Wbn+XCmPWCw6RdCASKAOVFyJB\nJOAIlRciQSTgCJUXIkEk4AiVFyJBJOAIlRciQSTgCJUXIkEk4AiVFyJBJOAIlRciQSTgCJUX\nIkEk4AiVFyJBJOAIlRciQSTgCJUXiX06EAlUDZUXIulAJFA1VF6IpAORQNVQeSGSDkQCVUPl\npZsN+t2Gs+9mgwpEAlVD5YVIEAk4QuWFSBAJOELlhUgQCThC5YVIEAk4QuWFSBAJOELlhUgQ\nCThC5YVIEAk4QuWFSBAJOELlhUgQaTSxA/QEpZL0IjLxVnWkNpYaRvwu8Oi8vpgYcWAqL0SC\nSKNJJSKVDZfc2/jqgBEHJNFE2l7SN0dGHJjKC5Eg0mgSi0jb24MnUdmxmkg1UyKVtjKovBAJ\nIrkj8l3DFNb8ve1+yiod3XZIqxbCWjaltZs69PrZsfZYJNLRi5dkxKmd2OITBM2K4e01Bqm0\n4ZsIE2TVJFntfTzZQjlXT07qD6eg8kIkiOSMzHcNUljZmqm7jm5uD0SyQlqNbNeRU1o9ttIn\nkp8da4/lifTm9BVFeY0ktnDCoFkxvL1Gf+TwTYQJsnqSrPo+sh2bvJZv3ibeP5UXIkEkV5R8\n1yCFtdhKeXfLmpTzLTWk1ch2HTmllYUihdmx+lieSD9p/T61CpHCLXxtQRqZHN5eIx9ZvIkw\nQVZPktXex+pLGftZ6lV6eeN55503sehBGbK/KGqwoklFLVZTdB950chbSCSrX7mRa10iHywg\ny1sskSqavqYlMm365IlPJCXfNUhhPcajYh8LRLJCWo1s15FTWlkoEs+OtQNfu77S9ATvJUQK\ntxBh0Kwc3l4jH1m+iTBBVkuS1d7HscZX2ffm+mtvbGycnvcokkh5lUIxb1BgBbOJ2X2s3Yr2\nXl4fKRJvIZHKTF+0J6t9iWL2DO9ji2SPU8H0lSyxSEuM5cCNh/hEMvJd96SGj6Ve855sDUSy\nQlqNENayKa2+SPymgh342rVw7kKeVilEUhMsw6BZOby9Rt6iZNyGCbJqkqz2Ptji27Ltm+U3\ngE44cGqHUztXjHxXCrJUT+3skFYjhLVsSqsUKSLwtau7//Jv0NV/pEgRp3bWGnmLnnEbJsiK\nJFntfbDnWjZNlgcyRIJI8aDnu9Ix7F/IN/tWWCGtRrbrSCmtvIMUKWIs78nglfP6IkTSwmrF\n8PYa/c+68E2ECbJ6kqz2Plhx9sQ7lfdP5YVIEMkdLd+VDlJ+a7lnin9kWyGtRrbrSCmtvINy\namePRU+Gr/lary2SFjQrb39bawz+JSp4E2GCrJ4kq70Pxtan3lTePpUXIkGk0WL55aM+hTOV\nrrG7W3u5fL76isoLkSDSKHDkB0ePbZ24bTSncKaKNebeuvBflJen90zeqW6m8kIkiDQKHLmi\ndfJlO0ZzBneqWOOeKTco9xbYxZPv0f4hg8oLkSAScITKC5EgEnCEyguRIBJwhMoLkSAScITK\nC5EgEnCEyguRIBJwhMoLkSAScITKC5EgEnCEyguRIBJwhMqLoDEdiASqhsoLkXQgEqgaKi9E\n0oFIoGqovBBJByKBqqHyps17DQncbAjhfRK62RB2gkigaqi8EAkiAUeovBAJIgFHqLwQCSIB\nR6i8EAkiAUeovBAJIgFHqLwQCSIBR6i8EAkiAUeovBAJIgFHqLwQCSKdidgBtXagXyUtpVH6\nUnkhEkQ6Exl9kZRUWSovRIJIZyKjL5IClRciQaQzDJk/G6bCcrQ0W9Fi97GyZPVBr17BKD8W\np3YhECnpBYwWIn9WRNtytDRb0WL3MbNkg0HbfnR0w1SIREAkjTNVJJE/K6NtOVoKbNhi97Gy\nZINBKZXsVluk7Xfeeef3hjzynkhDGsOFIYMsy5hNRbMhzXJmUz5ttrACdQzh46gi8T4Zexw2\nbLTUtsQMLVHMTmMOS5HCTjl70fZAWbOlwMyWdN5sybG0Mn3ynKkiifxZmQrL0VJgwxa7j50l\n6w9KPbbaIl0zYcKEL/Munkh1eoc+Wf2lKlIC6xAi1XXuMcGZKpLIn1VSYQk9BTZosftEZMny\nQUORFpJITwiRfvrss8++cMoj44l0SqM/f8pgiA2aTUWz4TRLm03Z02YLy9FgIdSindrxPoP2\nOKzPnCxn9hlmA2WXOEBLFLPTW+qXIoWdMvZbLZgtQ9YScxUsMU1LjPOIceRMFUnkz+qpsEYK\nbNBi94nOkpWndt23eU9W4xpJzI5rpKQXMFqI/FkRbWunwIYtdh8rS9bfsrZt19GNdLNhx9TD\nbG87RBKzQ6SkFzBaiPxZEW1rp8CKFruPmSXrb/EGnbyEbn/nV86YvqQHIonZIVLSCxh/2P/K\n60PlhUgQCVQIROJAJA2IVDUQiQORNCBSbFB5IRJEAo5QeSESRAKOUHkhEkQCjlB5IRJEAo5Q\neSESRAKOUHkhEkQCjlB5IRJEAo5QeSESRAKOUHkhEkQCjlB5kdinA5FA1VB5IZIORAJVQ+WF\nSDoQCVQNlXcsXCNpfRK6RgqvkiASqBoqL0SCSMARKi9EgkjAESovRIJIwBEqL0SCSMARKi9E\ngkjAESovRIJIwBEqL0SCSMARKi9EgkjAESovRIJIwBEqL0SCSPHQ1V2+T2WRlDVhD2NMVdM8\nI+ykDE/lhUgQKR4SFknJRo6eyu5Q06hRw1N5IRJEiocyIuX9ByeR8lUtSJtqpF0jtuXLzweR\nfCBSzON1dT84o2Wx9w6LD13YPKunqEQfdy1d9ZWmjAxJ5t277r2wlbprAchilzAJWQTk+WNo\n2cl7GvsZ65jOWH/jy3yYrpvXzmxb/K6ax8zE9F6HH0ymPXc298kJg2GZtdqRdtKHh0gQKU66\nWm8+tH/+/CJbP3nH29taNirRx13N9w8PF0VIst+9+YH88I1edy0SOdxFJCFLkfgYWnZytmUX\nOzh58kG2qyXrizTxwczAlUuUPOZgKtrV6zA8hfJhO5coE/rbqJex2pF2UoZ/e9++fftPelBi\n30mNvvxJgyE2aDYVzIbTLG02ZfrNFpajwUL4OCSS1mfQGifL+oyWvpzZZ5gNlF3iABs+eVLM\nTv37VJGCRVvjFK3vx+Cw2ZJjp4yW/qzZJ81OK9MnT+widXh/sR9O7S62Udjx6vagmaKPu2YX\nlZDkoPvMAmMnGndHRCJ7u4gkZCkSjWF0vPYetrGzcxO7e5H/wdY112t8qtWainblHW5fwFhv\n07PKOP42gVjtSDupw4+pDNm6zq+vQxEpkVUkSOwiddLX9g3HU94HCXs+1Sujj7tuYEpIctCd\nXxpN36AHIItdwiRkKRKNYWQnr5/DvvVIzw3soocDkZZ6jXtSaXMq2pV3eCV1hPV05JVx/G2E\nvtqRdlKH33DTTTctG/agVPNhjXRh2CDLsmZT0WzIsJzZlM+YLcwbWqaa83FIJH0yexyWNlrs\nJeaYNVn0ErXZ06pIJRdtDWQvscCsyaKXGN9x68xoifSOEElEH/P7ECIkOeh+HX2dtkEPQJZp\nyUESssg+5mMY2clvpI60HjjQdiT1ZiAS9dmTGjan4rdBqENx9hr2tZXqOPIWib7akXYyhsc1\nEq6R4iQ4tXtRnNrJ6GN+UIqQ5KB7u/dX6lupF7UAZD0tmZKQRfYxH8PITi5Ou+v8YvH8u9qL\nukjmVMIJtu6r+1MH1XGESMZqR9rJGB4iQaQ4oZsNb8yfV2QPBzcbZPSxf1CKkGSebtzVuvTQ\n/svnFbUAZLGLSEIW2cf+GHp2MlvSfLN3sdJMNx9UkcyppBPHGufN18bh26iXudqRdhLDB1B5\nIRJEioeu7rXTW65/R7n9LaKP/YNShCTzdGPRXYtEDncRScgi+zj46NCyk9mW1DbGtqW2MkMk\ncyrGwn+vuja1WRuHb+O9jNWOtJOMe/ah8kIkiJQIlf0gxPiAyguRIFIiQCQORNKASFUDkTgQ\nSQMindVQeSESRAKOUHkhEkQCjlB5IRJEAo5QeSESRAKOUHkhEkQCjlB5IRJEAo5QeSESRAKO\nUHkhEkQCjlB5kdinA5FA1VB5IZIORAJVQ+WFSDoQCVQNlRci6UAkUDVUXtxsMDF3g0igDFRe\niASRgCNUXogEkYAjVF6IBJGAI1ReiASRgCNUXogEkYAjVF6IBJGAI1ReiASRgCNUXogEkYAj\nVF6IBJHGAnaSX217afl/5X/lV23TmlB5IRJEGgvEJZIW+ipEuu3GWKc1R6TyQiSINBYY8Ygu\nmeVaxgOIpAGRRoUxI5JIZA1TXJ9sGWCULtZPW43sWJH0asTEhumxdGqXv7fd39TVvWlmq9d6\nJ+WDbfV72gPI8Njunq9MuSX9zKWTrz0hU2w54kWwDnVEiASRxgQikTVMcc12bPKav3kb32pk\nx4qkVyMmNkyPJZHWTN11dHM7iTTt1jf3zlmifX7YA8jw2Knf/ulzUzuv3vf6pUtkii0hXoh1\n4BMpBCIlvYAAI/CVUlxXX8rYz1Kv8tdR2bFeHzMmNkiPJZGKrT3ei2Uk0izvpPDxVvvUzh6A\nh8fOKjC2vPEk30ek2BLhC7mOcMS7Ozo6Lsl5FD2RcjpF43WuwPJmEzMb8qxgNhXtvbyhM2J1\nvIVE0geyx7Enq32JYvYMb4kQKWrRxmS1L9HliIuZsSKSTGQVKa7HGl9l35vrbzayY8M+Zkxs\nkB5LIh3jEbOPkUjehxHb7bUqItkDyPBY6r5+JqPgzrRIseUEL+Q6whERxmyFMYckspoEGCsi\nyURWGSC7+LZsu5/tZWbHhn2iYmIpYoyL9Jr3YmuT0qqIZA+gh8eun+19ecHbJ0yx9fFfyHXg\n1C4Ep3ZJLyBAJLIqAbLPtWyaHBwoenas6BMVExuIpJzaha13iH9dsgcwwmOlSMxPsRV4L2T2\n7B3qv1dReSESREqYMJFVpriy4uyJd2oBsFbIbFRMbCBScLOhWWl9aOahvowRFWtPq4kkUmxp\nL/FCxMj6IwZQeSESREoYkcgqUly9wzn1phYAa4XMRsXEhiLx2989U5TWvs621FYjKtaeVhNJ\npNjSXuKFWIc/YgCVFyJBpDHI8vnOI1wexzoqg8oLkSDSmOP0nsk7HXY/8oOjx7ZO3BbbcspC\n5YVIEGnMcfHke4oOux+5onXyZTtiW015qLwQCSIBR6i8EAkiAUeovBAJIgFHqLwQCSIBR6i8\nEAkiAUeovBAJIgFHqLwQCSIBR6i8EAkiAUeovBAJIgFHqLwIGtNB0BioGiovRNKBSKBqqLwQ\nSQcigaqh8kIkHYgEqobKSzcb6kWpmw0+wfGW0M2GsBNEAlVD5YVIEAk4QuWFSBAJOELlhUgQ\nCThC5YVIEAk4QuWFSBAJOELlhUgQCThC5YVIEAk4QuWFSBAJOELlhUgQaRxTIiXWDOLTkmXj\nh8oLkSDS6FLsnEdpNis7TrHNPBNlT4yD10MkP3iiZHomg0gQqS70dqxkbHfj84xtbj/gMRzj\n2ImKJKJtqbwQCSKNNs81vtg3Y4X3ZPN0rf2H8ya1X3eKFR+6sHlWT9HMcNVfyU5hWiynq/vB\nGS2Ljyvbw2hYLYiWRAqjYvc0ek0d3kr6G1/Wg2L1GcP+flxsGBobZtkG0bY+VF6IBJFGneUz\nFs2lYLfNzdOnXbkrbN3UvP7QwUd72frJO97e1rLRyHA1XslOYVosp6v15kP7588vyu1hNKwW\nREsiiYTall3s4OTJB9mulqwWFGvMKKJl1U8kkSHrR9sGO1J5IRJEGnUyHY0H6fGl7a+/fFdq\no99YmLaSPxbb1nhfV7cbGa76K6VTmBbL6erIUJ7fbrFdRsOqQbTi1I6iYq+9h23s7NzE7l6k\nB8Ua84v+ikgyQ5ZH23o8vXr16gcHPHJ1FGmA5QcG5BkyTV+UIg34pLMDBnk2aLQM5c0+GTZs\nNhXNhmHmDS1mH6JxpEhhp1zaGqdgTRaxRLPFXmKWlhjDURkXdRTpqaZJW8SLpTP8x7dTL/LH\n4/zuw/OpXiPDVXuldArTYjldnfS1fYPYLqNh1SBaEklExa6fw771SM8N7KKHmR4Uq88v+isi\nyQxZHm3LjAzZesHni8iQ9XGpVA0YGbJ1nn0MUD+RjrWt29Dys/DVxpQfSe19jvDHd6QjWvSk\n9srotCeIphQiie1KtqwSREsiiajYN1JHWg8caDtCWWZaUKw+v+iviCQzZMO7HK/s2LHj6X6P\nbB1F6mf5/n75iUTTK59I/T5DmX6DHDtttAzkzT5pNmQ2Fc2GIeYNLWYfpHGkSGGnrD1OwWwZ\nTpsteXuJObNPhqZ0PSZjpG4iFa66slBcNC+8x7U0uOMQcWpXWiSjkxTJP7V7UTm1E9myShCt\nJ5KMii1Ou+v8YvH8u9qDSxwRFKvNKPv7cbH8q8yQ1W4X0pk7rpFwjTTKrGs7xti77asZ+84T\n+/bcmXokyH3d2Lz+0KEtvexhcR+htEhGJxLJz45tvfnQG/PnFeV2kS2rBtFSRLNMqF3SfLPn\nc3MXY1pQrKGu6O/HxfpfRYYsRAqBSHWa5/XmJ+nhmcZX2IqLWqZ9g7L4eJore3xuc3undvub\nlRRJ70QiBdmxa6e3XP+OcvtbRMOqQbR0aicTarektjG2jW5ma0Gxxoyivx8XG4TGhhmyECkE\nIiW9gFHHPYi2Qqi8EAkinZk4BtFWA5UXIkGkMxPHINpqoPJCJIgEHKHyQiSIBByh8kIkiAQc\nofJCJIgEHKHyQiSIBByh8kIkiAQcofJCJIgEHKHyQiSIBByh8kIkiAQcofJCJIgEHKHyIrFP\nByKBqqHyQrXDpkkAACAASURBVCQdiASqhsoLkXQgEqgaKi9dI+kFr69IxhVSYtdI4VUSRAJV\nQ+WFSBAJOELlhUgQCThC5YVIEAk4QuWFSBAJOELlhUgQCThC5YVIEAk4QuWFSBAJOELlhUgQ\nCThC5YVIEAk4QuWFSBApEew0SjOvstRe6p7R0ZclAjEr3l4tVF6IBJESYftGs6VSkdQ94xRp\npLhlzv4lF6bupCc7ru2YMu9xuYHKC5Eg0hihUpFUqhEpX2b7SHHLnJdWPXURF+nqNc+9+j36\nlfoBVF6IBJHqhJ51TEqIYOUwQTlAJB6H2/P3tvvbw1O7MES5q3vTzFYRzRzGO4vWqykC+slJ\nIjvZ3M4JxgrilmXsBe2yXY109rjsTvF2Fl4jnlJ5IRJEqhN61jEXKQxWDhOUfWTicbh9zdRd\nRze3S5FEiHLXtFvf3DsnjGYO451FqxSJZydb2wkxlv+JJFOfaZeMGunMNJG+wT/Whvr6+vpP\neJBIJzR6cycMBthps6lgNpxiw2ZT+pTZwrInTkiR+DihSKLPaWucDOs1Wk5mzT6DrL/sEvvY\nkLeEEHpLJ1WRgkVb4xTzZsvAkNmSZe8aLacyZp8h1qdMnzz1F0nLOuYiBcHKMkGZUBKPw+2t\nlE65TIokQpS7ZuVldHKYAShbpUiUnWxvJ8RYXCQlGpDHLauRzkwVaUfzG/SgZcjG+d0qS4kM\n2bquQa5DEanuK0iY+oukZR1zkYJgZZmgTCiJx8H2Y95zxh5TTu3CEGU+5u4gmjmMd5atUqQb\nIrdzwrG4SErqM49bViOdmSLSzpan+eN9l1xyyZVZj4InUlanaLzO5lnebLL65FjBbCrkzBbm\n7ZYRi+LjhCLJyexxmNkStURrsuglitnTvEURaaRFG5PZ3w5ribmIt5HLGn+LJEoC10hMCcTj\nIgXpe0qCMrMSj/n217wnWxWRwhBlLVE2jHeWrQtJpCcmBS32dp9gLC6SkfqsRTozKdLWlh8r\n74zO3HGNhGukOlFaJCVBmVmJx7TdPLXjUIiypoQ8dQtbu+niZnUokr1dQGPxuGUj9VmLdGZC\npHVT9qjvjMoLkSBSnSgtkkxQ5qHIeuIxbfdvNjQLkUSIsh7NHMY7i9YdUw+zve2hSPZ22kuM\n5cct66nPWqRz5sCBi5cc+HfGVjRvPXDgwCHxzqi8EAki1YkRRBIJyn5Ks5Z4zLfT7e+eKUIk\nEaKsRzOH8c5yv5Uzpi/pESJZ22kvMZYft6ynPjM10vkAv3TzVtnOn8wW74zKC5Eg0jhh+eXJ\nTFs+0pnKC5Eg0tjnyA+OHts6cVsCM1cU6UzlhUgQaexz5IrWyZftSGLmiiKdqbwQCSIBR6i8\nEAkiAUeovBAJIgFHqLwQCSIBR6i8EAkiAUeovBAJIgFHqLwQCSIBR6i8EAkiAUeovBAJIgFH\nqLxI7NOBSKBqqLwQSQcigaqh8kIkHYgEqobKC5F0IBKoGiov3Wz4hXbD4ey82RB2gkigaqi8\nEAkiAUeovBAJIgFHqLwQCSIBR6i8EAkiAUeovBAJIgFHqLwQCSIBR6i8EAkiAUeovBAJIgFH\nqLwQCSKNDexQWW0T37yqI2UlZobQtuJ32lLbH7isxhWIID8tqbaCIEEqL0SCSEnjJ3zZobKC\nMDl2b+OrA6UCPfi25ya9MZB7Zk2pcWT263OXTZr5z+YvrBMi0VwQqeQSIZJGQiLl7aayKcjh\nQb29vXQfvm3j7NIdmJL9+nrT8oNPtDxgbNaiZS2RIhYeQuWFSBDJjSCXVf7y+SD49QeTh7yt\nO5v7lExYnuQa5r++cHX7lK8/z8LwVjpyrUF8glOtburYK0bjhHt0pySXyVXpnTmU/brkUu/J\nmilp/S2IaNnw1E5E2wYRtFa2bQCVFyJBJCfCXFaZvRoEvw5PoZOoziVqJizFsubCzNYf7Tx0\neG3zW+EnEh251iA+4YG9lT51xGgcsQff9gh9ItE1UrgqvTOHsl+n3+s92cdzAFlE9Gw4n4i2\n9SNo7WzbACovRIJILoThXUpAVxD8ym5fwFhv07NqJizFsorMVs431ygiRQzCgk1CJDmaPq0m\nUrgqvTOHsl+LKQouO5Lapb0FGS0bzCejbf0IWivb1mPdggULvpX2yAcipQWZYtogx7Jmk9Un\ny/JmU8HaixXoSwgfJxRJTmaPwzJGS6ZQ8xK12TNSpLBT3l60/f2IWKI1mbXEPC2xgkOz5X0V\ndIqBeEQKc1mV7NUg+JW9kjrCejryaiYsj2UNM1t7V8y7YHrLtxWRIgZhwSYhkhxNn1YTKVyV\n3png2a+6SHa0bDCfjLblC7ezbZkRxvyLegYyj9Ew5rrPX5KYRdrf+VL0hnhECnNZjexVSvEq\nzl7DvrbSyoQVma2XL3z5aG9ntyJSxCAs2CREkqPp02oihavSOzOR/aqd2tnRssF8Mto2iKA1\ns229r0N9fX39FFofntrJGPvenBlsP8BOm00Fs+EUGzab0qfMFpY9cUKe2vFxQpFEn9PWOBnW\na7SczJp9Bll/2SX2sSFvCSH0lk5KkcSirXGKebNlYMhsybJ3jZZTGbPPEOtTpi9NzCI92mDe\nnAoYtVM7cZSt++r+1EErE5Zz/2zWn3rZ221WdxDeapzalRRJjqZPG3lqp3eW2a/azQY7Wlac\n2oXRtnyLnW0bDktn7rhGGmvXSONLJJHLqmev8qPsWOM8nnanZ8KGma3FjlXF/Krm7jC8lY5e\nexAe3qrdbBCj8U0PR99sCFeldxbZr3T7+4d0+zs6ejacT0Tb+n8D2Nm2AVReiDR2RDo648O/\n8mf/6ot08usff++vtb9JT3PLPv8r537mOq+2Dc/R66YPel/WN3z/7t953+89zN5s+q8fmsYv\npnO3fe79535pO9/48NJPv/djN3pXyJ0NxJciZovr9neQy6pnr/pH2bWpzbyLlgkrMlv3zps+\ne/XS7jC8Vb/9rWXDaiKJ0fgmsYcuUrgqvbPMfv3JZRMvWFNkJaJnw/lEtG3wUWpl2wZQeSHS\nmBHp9O+eM2fFJR/8PRJp4DMN5999+fs+/Lrnx181fGnpPZf9ninSn3yic8nHzun59enL2hvo\nIMr/zTltd93yufespY2f+OvHfnxhw3cZ+48lDQuffHJ3xHRj5ycbxj1UXog0ZkRaTAc++17D\n+/jzm7yv2xv+ivT5B/pZloIp0m95f5e+0vAe2qfpHG/guxvu855mP//rOW/jF+h27ac9+Ub9\n1A5ApDEm0mc/kvO+Fn6TRPrsufy84Y/P6WMTPnA66KCLRLdg2UfP9QRjdzT8mLH//WvDxC0N\nz3sb76CN095bgEj1gMoLkcaMSB/8In/4CxLp3M/x5xc1vMQ+9Jmwgy7Senr+u/+Tvj7Q4F2L\n/GpDwFZv4yPUPKfhFESqB1ReiDR2RPpj/vB/SKQP/gF/TiKd+9mww+2+SH8X3Gyg57/LhXug\n4VHPvU//2OdkuHFOw0mIVA+ovBBpzIj02f9mndr9iXZq908NdEuO/W60SJ9/b9hPE2kzRBp1\nqLwQacyIdH3DP3pf7+M3G65voB+03NHwl3RCdzltLTL2bAP9s0xPQ7RItzfM4f/B5m1dpKf9\n6yUbiBQbVF6INGZE6v/0OZes+Nq5/u3v32/ouGf++z/8GmPZv2j485u/+3W6GPriObNu/+pH\nPhMtUu7vG/7ophWLvvxRXaRT7//Ud9c9ETEdRIoNKi9EGjMisSMd//VX/jT8B9n5v/XLH53G\n/0E22/2Z93/os9d7zw41n/vB//tyU7RIrLD8i+e+/+PND+gisUc+975R/QdZAJHGmEj1BSLF\nBpUXIkEk4AiVFyJBJOAIlRciQSTgCJUXiX06EAlUDZUXIulAJFA1VF6IpAORQNVQedP6BdLx\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# load libraries for visualization\n",
"library(\"reshape2\")\n",
"library(\"ggplot2\")\n",
"N <- length(exampleIds)\n",
"# get topic proportions form example documents\n",
"topicProportionExamples <- theta[exampleIds,]\n",
"colnames(topicProportionExamples) <- topicNames\n",
"vizDataFrame <- melt(cbind(data.frame(topicProportionExamples), document = factor(1:N)), variable.name = \"topic\", id.vars = \"document\") \n",
"\n",
"ggplot(data = vizDataFrame, aes(topic, value, fill = document), ylab = \"proportion\") + \n",
" geom_bar(stat=\"identity\") +\n",
" theme(axis.text.x = element_text(angle = 90, hjust = 1)) + \n",
" coord_flip() +\n",
" facet_wrap(~ document, ncol = N)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"2.5"
],
"text/latex": [
"2.5"
],
"text/markdown": [
"2.5"
],
"text/plain": [
"[1] 2.5"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#topic distributions\n",
"# see alpha from previous model\n",
"attr(topicModel, \"alpha\") "
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"K = 20; V = 8338; M = 1003\n",
"Sampling 500 iterations!\n",
"Iteration 25 ...\n",
"Iteration 50 ...\n",
"Iteration 75 ...\n",
"Iteration 100 ...\n",
"Iteration 125 ...\n",
"Iteration 150 ...\n",
"Iteration 175 ...\n",
"Iteration 200 ...\n",
"Iteration 225 ...\n",
"Iteration 250 ...\n",
"Iteration 275 ...\n",
"Iteration 300 ...\n",
"Iteration 325 ...\n",
"Iteration 350 ...\n",
"Iteration 375 ...\n",
"Iteration 400 ...\n",
"Iteration 425 ...\n",
"Iteration 450 ...\n",
"Iteration 475 ...\n",
"Iteration 500 ...\n",
"Gibbs sampling completed!\n"
]
}
],
"source": [
"topicModel2 <- LDA(dtm, K, method=\"Gibbs\", control=list(iter = 500, verbose = 25, alpha = 0.2))\n",
"tmResult <- posterior(topicModel2)\n",
"theta <- tmResult$topics\n",
"beta <- tmResult$terms\n",
"topicNames <- apply(terms(topicModel2, 5), 2, paste, collapse = \" \") # reset topicnames"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC91BMVEUAAAAAujgBAQECAgID\nAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERETExMUFBQVFRUW\nFhYXFxcaGhobGxsdHR0fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyss\nLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs9PT0+Pj4/\nPz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBR\nUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFhnP9i\nYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0\ndHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OEhISFhYWG\nhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eY\nmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamq\nqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8\nvLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3O\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g\n4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy\n8vLz8/P09PT19fX29vb39/f4dm34+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///99FOq3AAAACXBI\nWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO29e3xU13nvLeK+zaVxek7yppc0zaU9PadJeuK0\nJ+3bk/o0vZ12JIGEBDKQQAHjOMSYJI5jYlsmthmQg6+1TYmJ7ZpiXCzHYIyxiUNCiNMU22Ab\n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\nSBAJxABEgkjJEJn3Wvnf7QqbWSYPkDrSOnsy/1+l/ULWQCSIlAxxisQiLMckkp0eK4WoIEk2\ndJ0HRIJIyVCZSGVTZKsWSS6oMNa23DqIBJHqDuW9yqhXFtFqv1w3zmmxw2bdFFn68/YUQVa4\np8NdLoNtZUasjf3aVjm34Qmz1MF/aUfzqYWWFEtBuri003pDpISgvFcZ9aoiWoWd/7Lq2MGl\nS0teiiylu5JI62fsPrm1wxZJBtv6fiKpnNvwhFnqEBBJzpct9KRY6geRtN7jT6SWdxi8LA1I\nViRf3qsd9SojWm3Ss7JuVKCTIqsiwKRIpTY7J++WJhZsG3Zp5+TchifMUoeASHK+bMGSYgXr\np4uE6EufSHH3Hnv0ZcwiHex8IbyQrEgq75WiXmVEq0260/7Y8aibIqvSXaVIPU6i7BNNLNjW\nJ5LKuQ1PmKUOAZG8+aqFSooVrJ8uEsKYfSJF9q5bGHPMIj3W8EB4IVmRVN6rSpD1IlptlEh2\nQaW7ynTZntQr1oNtTYEsWAf7ta3n3AYTZqNFovmyhZYUS/1waaf1fstf2o1TkSjvlSXIehGt\nNt6F1/NeuCZd2sl0WXZpp2fBOlivbV/ObSBhVnWIEkm1sKGkWIgU3ns8iXRyznt/7X//2BWp\n78sffPtvdDhBi/lbPvlr53/sWutb1rDHHje92/qwqeG7d/7eO/7gYXG46b++Z2afM2/1J955\n/meedIoPr/zo2z9wg3Up2dlg85mQbgnfbJB5ryrq1Yto9cJmVx07tHRJybvbTOmulC7r3glo\nDmTBOqvtZGU95zaQMKs6RIlELSgpVkXYQqTxLNLZ3z9v0dovvPsPbJEGP9Zw0Z2Xv+O9r1p+\n/E3DZ1beddkf+EX6sw91rvjAed2/OfuWjgbrv9Wi8Hfntd9x0yfetsEufuhvn/jJ/Ia7hfj5\nioZlO3fuDWmXsEiU96oSaN2IVj1s1hWJbn9Tuqxzb7p7eiAL1lltv7b1nNtgwqwWZxsqkmxB\nSbEqwhYijWeRltsvfPHthnc4j2+0Pj7Z8De2Pl+yb1IU/SL9jvVdfanhbfaapvNOCXFnw3es\nh7lP/mbeKn7KWlL8qCXfeL20C2WUiNbg/Mtrcx6mLSDSuBDp4+/LWx+Lv22L9PHzM/ahPz2v\nX1zwLnnKukj2zSXx/vPtGxi3NfxEiP/1GxmbmxqetYq32cWZby9OJJFGjWjlnPjeyZ5tU7fX\n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\nf5uKqloqyetwAAAAAElFTkSuQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# get topic proportions form example documents\n",
"topicProportionExamples <- theta[exampleIds,]\n",
"colnames(topicProportionExamples) <- topicNames\n",
"vizDataFrame <- melt(cbind(data.frame(topicProportionExamples), document = factor(1:N)), variable.name = \"topic\", id.vars = \"document\") \n",
"\n",
"ggplot(data = vizDataFrame, aes(topic, value, fill = document), ylab = \"proportion\") + \n",
" geom_bar(stat=\"identity\") +\n",
" theme(axis.text.x = element_text(angle = 90, hjust = 1)) + \n",
" coord_flip() +\n",
" facet_wrap(~ document, ncol = N)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"library(lda) #after having install.packages('lda')\n",
"#topic ranking\n",
"# re-rank top topic terms for topic names\n",
"topicNames <- apply(lda::top.topic.words(beta, 5, by.score = T), 2, paste, collapse = \" \")"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<dl class=dl-horizontal>\n",
"\t<dt>evening dined dr spent home</dt>\n",
"\t\t<dd>0.0852333215182136</dd>\n",
"\t<dt>house rode town dined miles</dt>\n",
"\t\t<dd>0.0835696500246018</dd>\n",
"\t<dt>day read time colledge morning</dt>\n",
"\t\t<dd>0.065928344958016</dd>\n",
"\t<dt>congress jay franklin letter america</dt>\n",
"\t\t<dd>0.0627241611204409</dd>\n",
"\t<dt>court boston office province day</dt>\n",
"\t\t<dd>0.0596412898277547</dd>\n",
"\t<dt>day brought billings land meadow</dt>\n",
"\t\t<dd>0.0587189652725897</dd>\n",
"\t<dt>people public friends life america</dt>\n",
"\t\t<dd>0.0524388697925108</dd>\n",
"\t<dt>board wind morning son night</dt>\n",
"\t\t<dd>0.0486497112609508</dd>\n",
"\t<dt>character pleasure mind eyes attention</dt>\n",
"\t\t<dd>0.0476192514206541</dd>\n",
"\t<dt>3 13 war france french</dt>\n",
"\t\t<dd>0.0459981765907401</dd>\n",
"\t<dt>heard 32 words church tree</dt>\n",
"\t\t<dd>0.0435306719119187</dd>\n",
"\t<dt>conversation knowledge found dr ill</dt>\n",
"\t\t<dd>0.0431916470126044</dd>\n",
"\t<dt>de la le les des</dt>\n",
"\t\t<dd>0.042922052759513</dd>\n",
"\t<dt>trees 5 st duke james</dt>\n",
"\t\t<dd>0.040962738198486</dd>\n",
"\t<dt>street half family chamber bed</dt>\n",
"\t\t<dd>0.0396335423869087</dd>\n",
"\t<dt>people tea merchants mind colony</dt>\n",
"\t\t<dd>0.0370699616579661</dd>\n",
"\t<dt>matter center common laws body</dt>\n",
"\t\t<dd>0.0361581502095145</dd>\n",
"\t<dt>4 read speech account spirits</dt>\n",
"\t\t<dd>0.0355229925403701</dd>\n",
"\t<dt>french english written passages quidam</dt>\n",
"\t\t<dd>0.0352504443334665</dd>\n",
"\t<dt>governor rent taking lost hot</dt>\n",
"\t\t<dd>0.0352360572027794</dd>\n",
"</dl>\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[evening dined dr spent home] 0.0852333215182136\n",
"\\item[house rode town dined miles] 0.0835696500246018\n",
"\\item[day read time colledge morning] 0.065928344958016\n",
"\\item[congress jay franklin letter america] 0.0627241611204409\n",
"\\item[court boston office province day] 0.0596412898277547\n",
"\\item[day brought billings land meadow] 0.0587189652725897\n",
"\\item[people public friends life america] 0.0524388697925108\n",
"\\item[board wind morning son night] 0.0486497112609508\n",
"\\item[character pleasure mind eyes attention] 0.0476192514206541\n",
"\\item[3 13 war france french] 0.0459981765907401\n",
"\\item[heard 32 words church tree] 0.0435306719119187\n",
"\\item[conversation knowledge found dr ill] 0.0431916470126044\n",
"\\item[de la le les des] 0.042922052759513\n",
"\\item[trees 5 st duke james] 0.040962738198486\n",
"\\item[street half family chamber bed] 0.0396335423869087\n",
"\\item[people tea merchants mind colony] 0.0370699616579661\n",
"\\item[matter center common laws body] 0.0361581502095145\n",
"\\item[4 read speech account spirits] 0.0355229925403701\n",
"\\item[french english written passages quidam] 0.0352504443334665\n",
"\\item[governor rent taking lost hot] 0.0352360572027794\n",
"\\end{description*}\n"
],
"text/markdown": [
"evening dined dr spent home\n",
": 0.0852333215182136house rode town dined miles\n",
": 0.0835696500246018day read time colledge morning\n",
": 0.065928344958016congress jay franklin letter america\n",
": 0.0627241611204409court boston office province day\n",
": 0.0596412898277547day brought billings land meadow\n",
": 0.0587189652725897people public friends life america\n",
": 0.0524388697925108board wind morning son night\n",
": 0.0486497112609508character pleasure mind eyes attention\n",
": 0.04761925142065413 13 war france french\n",
": 0.0459981765907401heard 32 words church tree\n",
": 0.0435306719119187conversation knowledge found dr ill\n",
": 0.0431916470126044de la le les des\n",
": 0.042922052759513trees 5 st duke james\n",
": 0.040962738198486street half family chamber bed\n",
": 0.0396335423869087people tea merchants mind colony\n",
": 0.0370699616579661matter center common laws body\n",
": 0.03615815020951454 read speech account spirits\n",
": 0.0355229925403701french english written passages quidam\n",
": 0.0352504443334665governor rent taking lost hot\n",
": 0.0352360572027794\n",
"\n"
],
"text/plain": [
" evening dined dr spent home house rode town dined miles \n",
" 0.08523332 0.08356965 \n",
" day read time colledge morning congress jay franklin letter america \n",
" 0.06592834 0.06272416 \n",
" court boston office province day day brought billings land meadow \n",
" 0.05964129 0.05871897 \n",
" people public friends life america board wind morning son night \n",
" 0.05243887 0.04864971 \n",
"character pleasure mind eyes attention 3 13 war france french \n",
" 0.04761925 0.04599818 \n",
" heard 32 words church tree conversation knowledge found dr ill \n",
" 0.04353067 0.04319165 \n",
" de la le les des trees 5 st duke james \n",
" 0.04292205 0.04096274 \n",
" street half family chamber bed people tea merchants mind colony \n",
" 0.03963354 0.03706996 \n",
" matter center common laws body 4 read speech account spirits \n",
" 0.03615815 0.03552299 \n",
"french english written passages quidam governor rent taking lost hot \n",
" 0.03525044 0.03523606 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# What are the most probable topics in the entire collection?\n",
"# Approach 1: We sort topics according to their probability within the entire collection:\n",
"topicProportions <- colSums(theta) / nrow(dtm) # mean probablities over all paragraphs\n",
"names(topicProportions) <- topicNames # assign the topic names we created before\n",
"sort(topicProportions, decreasing = TRUE) # show summed proportions in decreased order"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<dl class=dl-horizontal>\n",
"\t<dt>evening dined dr spent home</dt>\n",
"\t\t<dd>133</dd>\n",
"\t<dt>house rode town dined miles</dt>\n",
"\t\t<dd>126</dd>\n",
"\t<dt>congress jay franklin letter america</dt>\n",
"\t\t<dd>79</dd>\n",
"\t<dt>day read time colledge morning</dt>\n",
"\t\t<dd>78</dd>\n",
"\t<dt>court boston office province day</dt>\n",
"\t\t<dd>68</dd>\n",
"\t<dt>day brought billings land meadow</dt>\n",
"\t\t<dd>60</dd>\n",
"\t<dt>board wind morning son night</dt>\n",
"\t\t<dd>52</dd>\n",
"\t<dt>people public friends life america</dt>\n",
"\t\t<dd>50</dd>\n",
"\t<dt>de la le les des</dt>\n",
"\t\t<dd>45</dd>\n",
"\t<dt>character pleasure mind eyes attention</dt>\n",
"\t\t<dd>44</dd>\n",
"\t<dt>3 13 war france french</dt>\n",
"\t\t<dd>39</dd>\n",
"\t<dt>trees 5 st duke james</dt>\n",
"\t\t<dd>32</dd>\n",
"\t<dt>conversation knowledge found dr ill</dt>\n",
"\t\t<dd>31</dd>\n",
"\t<dt>street half family chamber bed</dt>\n",
"\t\t<dd>29</dd>\n",
"\t<dt>heard 32 words church tree</dt>\n",
"\t\t<dd>29</dd>\n",
"\t<dt>people tea merchants mind colony</dt>\n",
"\t\t<dd>25</dd>\n",
"\t<dt>matter center common laws body</dt>\n",
"\t\t<dd>25</dd>\n",
"\t<dt>4 read speech account spirits</dt>\n",
"\t\t<dd>23</dd>\n",
"\t<dt>french english written passages quidam</dt>\n",
"\t\t<dd>20</dd>\n",
"\t<dt>governor rent taking lost hot</dt>\n",
"\t\t<dd>15</dd>\n",
"</dl>\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[evening dined dr spent home] 133\n",
"\\item[house rode town dined miles] 126\n",
"\\item[congress jay franklin letter america] 79\n",
"\\item[day read time colledge morning] 78\n",
"\\item[court boston office province day] 68\n",
"\\item[day brought billings land meadow] 60\n",
"\\item[board wind morning son night] 52\n",
"\\item[people public friends life america] 50\n",
"\\item[de la le les des] 45\n",
"\\item[character pleasure mind eyes attention] 44\n",
"\\item[3 13 war france french] 39\n",
"\\item[trees 5 st duke james] 32\n",
"\\item[conversation knowledge found dr ill] 31\n",
"\\item[street half family chamber bed] 29\n",
"\\item[heard 32 words church tree] 29\n",
"\\item[people tea merchants mind colony] 25\n",
"\\item[matter center common laws body] 25\n",
"\\item[4 read speech account spirits] 23\n",
"\\item[french english written passages quidam] 20\n",
"\\item[governor rent taking lost hot] 15\n",
"\\end{description*}\n"
],
"text/markdown": [
"evening dined dr spent home\n",
": 133house rode town dined miles\n",
": 126congress jay franklin letter america\n",
": 79day read time colledge morning\n",
": 78court boston office province day\n",
": 68day brought billings land meadow\n",
": 60board wind morning son night\n",
": 52people public friends life america\n",
": 50de la le les des\n",
": 45character pleasure mind eyes attention\n",
": 443 13 war france french\n",
": 39trees 5 st duke james\n",
": 32conversation knowledge found dr ill\n",
": 31street half family chamber bed\n",
": 29heard 32 words church tree\n",
": 29people tea merchants mind colony\n",
": 25matter center common laws body\n",
": 254 read speech account spirits\n",
": 23french english written passages quidam\n",
": 20governor rent taking lost hot\n",
": 15\n",
"\n"
],
"text/plain": [
" evening dined dr spent home house rode town dined miles \n",
" 133 126 \n",
" congress jay franklin letter america day read time colledge morning \n",
" 79 78 \n",
" court boston office province day day brought billings land meadow \n",
" 68 60 \n",
" board wind morning son night people public friends life america \n",
" 52 50 \n",
" de la le les des character pleasure mind eyes attention \n",
" 45 44 \n",
" 3 13 war france french trees 5 st duke james \n",
" 39 32 \n",
" conversation knowledge found dr ill street half family chamber bed \n",
" 31 29 \n",
" heard 32 words church tree people tea merchants mind colony \n",
" 29 25 \n",
" matter center common laws body 4 read speech account spirits \n",
" 25 23 \n",
"french english written passages quidam governor rent taking lost hot \n",
" 20 15 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Approach 2: We count how often a topic appears as a primary topic within a paragraph This method is also called Rank-1\n",
"countsOfPrimaryTopics <- rep(0, K)\n",
"names(countsOfPrimaryTopics) <- topicNames\n",
"for (i in 1:nrow(dtm)) {\n",
" topicsPerDoc <- theta[i, ] # select topic distribution for document i\n",
" # get first element position from ordered list\n",
" primaryTopic <- order(topicsPerDoc, decreasing = TRUE)[1] \n",
" countsOfPrimaryTopics[primaryTopic] <- countsOfPrimaryTopics[primaryTopic] + 1\n",
"}\n",
"sort(countsOfPrimaryTopics, decreasing = TRUE)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"ename": "ERROR",
"evalue": "Error in aggregate.data.frame(as.data.frame(x), ...): arguments must have same length\n",
"output_type": "error",
"traceback": [
"Error in aggregate.data.frame(as.data.frame(x), ...): arguments must have same length\nTraceback:\n",
"1. aggregate(theta, by = list(decade = ja$decade), mean)",
"2. aggregate.default(theta, by = list(decade = ja$decade), mean)",
"3. aggregate.data.frame(as.data.frame(x), ...)",
"4. stop(\"arguments must have same length\")"
]
}
],
"source": [
"#topics over time\n",
"# append decade information for aggregation\n",
"ja$decade <- paste0(substr(ja$date, 0, 3), \"0\")\n",
"# get mean topic proportions per decade\n",
"topic_proportion_per_decade <- aggregate(theta, by = list(decade = ja$decade), mean)\n",
"# set topic names to aggregated columns\n",
"colnames(topic_proportion_per_decade)[2:(K+1)] <- topicNames\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>1025</li>\n",
"\t<li>4</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1025\n",
"\\item 4\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1025\n",
"2. 4\n",
"\n",
"\n"
],
"text/plain": [
"[1] 1025 4"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>1003</li>\n",
"\t<li>20</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1003\n",
"\\item 20\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1003\n",
"2. 20\n",
"\n",
"\n"
],
"text/plain": [
"[1] 1003 20"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dim(ja)\n",
"dim(theta)\n",
"# so somehow 22 documents disappeared?"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<caption>A matrix: 6 × 20 of type dbl</caption>\n",
"<thead>\n",
"\t<tr><th></th><th scope=col>1</th><th scope=col>2</th><th scope=col>3</th><th scope=col>4</th><th scope=col>5</th><th scope=col>6</th><th scope=col>7</th><th scope=col>8</th><th scope=col>9</th><th scope=col>10</th><th scope=col>11</th><th scope=col>12</th><th scope=col>13</th><th scope=col>14</th><th scope=col>15</th><th scope=col>16</th><th scope=col>17</th><th scope=col>18</th><th scope=col>19</th><th scope=col>20</th></tr>\n",
"</thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1778-03-04</th><td>0.0016129032</td><td>0.001612903</td><td>0.0016129032</td><td>0.0016129032</td><td>0.001612903</td><td>0.001612903</td><td>0.0016129032</td><td>0.9451612903</td><td>0.0016129032</td><td>0.0016129032</td><td>0.0016129032</td><td>0.001612903</td><td>0.001612903</td><td>0.0096774194</td><td>0.0016129032</td><td>0.009677419</td><td>0.001612903</td><td>0.0016129032</td><td>0.0016129032</td><td>0.0096774194</td></tr>\n",
"\t<tr><th scope=row>1754-04-03</th><td>0.0014705882</td><td>0.008823529</td><td>0.0014705882</td><td>0.0014705882</td><td>0.001470588</td><td>0.001470588</td><td>0.0014705882</td><td>0.0014705882</td><td>0.0088235294</td><td>0.0014705882</td><td>0.0014705882</td><td>0.001470588</td><td>0.001470588</td><td>0.0014705882</td><td>0.0014705882</td><td>0.001470588</td><td>0.957352941</td><td>0.0014705882</td><td>0.0014705882</td><td>0.0014705882</td></tr>\n",
"\t<tr><th scope=row>1778-02-26</th><td>0.0211538462</td><td>0.001923077</td><td>0.0019230769</td><td>0.0019230769</td><td>0.021153846</td><td>0.001923077</td><td>0.0019230769</td><td>0.9153846154</td><td>0.0019230769</td><td>0.0019230769</td><td>0.0019230769</td><td>0.001923077</td><td>0.001923077</td><td>0.0019230769</td><td>0.0019230769</td><td>0.001923077</td><td>0.001923077</td><td>0.0115384615</td><td>0.0019230769</td><td>0.0019230769</td></tr>\n",
"\t<tr><th scope=row>1760-07-26</th><td>0.0065573770</td><td>0.001092896</td><td>0.0010928962</td><td>0.0010928962</td><td>0.001092896</td><td>0.028415301</td><td>0.0229508197</td><td>0.0010928962</td><td>0.0448087432</td><td>0.0393442623</td><td>0.0010928962</td><td>0.716939891</td><td>0.001092896</td><td>0.0174863388</td><td>0.0010928962</td><td>0.001092896</td><td>0.006557377</td><td>0.0666666667</td><td>0.0393442623</td><td>0.0010928962</td></tr>\n",
"\t<tr><th scope=row>1778-04-03</th><td>0.0237037037</td><td>0.608888889</td><td>0.0014814815</td><td>0.1422222222</td><td>0.008888889</td><td>0.008888889</td><td>0.0014814815</td><td>0.1570370370</td><td>0.0014814815</td><td>0.0014814815</td><td>0.0162962963</td><td>0.001481481</td><td>0.001481481</td><td>0.0014814815</td><td>0.0014814815</td><td>0.001481481</td><td>0.001481481</td><td>0.0014814815</td><td>0.0162962963</td><td>0.0014814815</td></tr>\n",
"\t<tr><th scope=row>1754-04-01</th><td>0.0008733624</td><td>0.027074236</td><td>0.0008733624</td><td>0.0008733624</td><td>0.005240175</td><td>0.005240175</td><td>0.0008733624</td><td>0.0008733624</td><td>0.0008733624</td><td>0.0008733624</td><td>0.0008733624</td><td>0.005240175</td><td>0.005240175</td><td>0.0008733624</td><td>0.0008733624</td><td>0.005240175</td><td>0.935371179</td><td>0.0008733624</td><td>0.0008733624</td><td>0.0008733624</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 6 × 20 of type dbl\n",
"\\begin{tabular}{r|llllllllllllllllllll}\n",
" & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20\\\\\n",
"\\hline\n",
"\t1778-03-04 & 0.0016129032 & 0.001612903 & 0.0016129032 & 0.0016129032 & 0.001612903 & 0.001612903 & 0.0016129032 & 0.9451612903 & 0.0016129032 & 0.0016129032 & 0.0016129032 & 0.001612903 & 0.001612903 & 0.0096774194 & 0.0016129032 & 0.009677419 & 0.001612903 & 0.0016129032 & 0.0016129032 & 0.0096774194\\\\\n",
"\t1754-04-03 & 0.0014705882 & 0.008823529 & 0.0014705882 & 0.0014705882 & 0.001470588 & 0.001470588 & 0.0014705882 & 0.0014705882 & 0.0088235294 & 0.0014705882 & 0.0014705882 & 0.001470588 & 0.001470588 & 0.0014705882 & 0.0014705882 & 0.001470588 & 0.957352941 & 0.0014705882 & 0.0014705882 & 0.0014705882\\\\\n",
"\t1778-02-26 & 0.0211538462 & 0.001923077 & 0.0019230769 & 0.0019230769 & 0.021153846 & 0.001923077 & 0.0019230769 & 0.9153846154 & 0.0019230769 & 0.0019230769 & 0.0019230769 & 0.001923077 & 0.001923077 & 0.0019230769 & 0.0019230769 & 0.001923077 & 0.001923077 & 0.0115384615 & 0.0019230769 & 0.0019230769\\\\\n",
"\t1760-07-26 & 0.0065573770 & 0.001092896 & 0.0010928962 & 0.0010928962 & 0.001092896 & 0.028415301 & 0.0229508197 & 0.0010928962 & 0.0448087432 & 0.0393442623 & 0.0010928962 & 0.716939891 & 0.001092896 & 0.0174863388 & 0.0010928962 & 0.001092896 & 0.006557377 & 0.0666666667 & 0.0393442623 & 0.0010928962\\\\\n",
"\t1778-04-03 & 0.0237037037 & 0.608888889 & 0.0014814815 & 0.1422222222 & 0.008888889 & 0.008888889 & 0.0014814815 & 0.1570370370 & 0.0014814815 & 0.0014814815 & 0.0162962963 & 0.001481481 & 0.001481481 & 0.0014814815 & 0.0014814815 & 0.001481481 & 0.001481481 & 0.0014814815 & 0.0162962963 & 0.0014814815\\\\\n",
"\t1754-04-01 & 0.0008733624 & 0.027074236 & 0.0008733624 & 0.0008733624 & 0.005240175 & 0.005240175 & 0.0008733624 & 0.0008733624 & 0.0008733624 & 0.0008733624 & 0.0008733624 & 0.005240175 & 0.005240175 & 0.0008733624 & 0.0008733624 & 0.005240175 & 0.935371179 & 0.0008733624 & 0.0008733624 & 0.0008733624\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 6 × 20 of type dbl\n",
"\n",
"| <!--/--> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |\n",
"|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
"| 1778-03-04 | 0.0016129032 | 0.001612903 | 0.0016129032 | 0.0016129032 | 0.001612903 | 0.001612903 | 0.0016129032 | 0.9451612903 | 0.0016129032 | 0.0016129032 | 0.0016129032 | 0.001612903 | 0.001612903 | 0.0096774194 | 0.0016129032 | 0.009677419 | 0.001612903 | 0.0016129032 | 0.0016129032 | 0.0096774194 |\n",
"| 1754-04-03 | 0.0014705882 | 0.008823529 | 0.0014705882 | 0.0014705882 | 0.001470588 | 0.001470588 | 0.0014705882 | 0.0014705882 | 0.0088235294 | 0.0014705882 | 0.0014705882 | 0.001470588 | 0.001470588 | 0.0014705882 | 0.0014705882 | 0.001470588 | 0.957352941 | 0.0014705882 | 0.0014705882 | 0.0014705882 |\n",
"| 1778-02-26 | 0.0211538462 | 0.001923077 | 0.0019230769 | 0.0019230769 | 0.021153846 | 0.001923077 | 0.0019230769 | 0.9153846154 | 0.0019230769 | 0.0019230769 | 0.0019230769 | 0.001923077 | 0.001923077 | 0.0019230769 | 0.0019230769 | 0.001923077 | 0.001923077 | 0.0115384615 | 0.0019230769 | 0.0019230769 |\n",
"| 1760-07-26 | 0.0065573770 | 0.001092896 | 0.0010928962 | 0.0010928962 | 0.001092896 | 0.028415301 | 0.0229508197 | 0.0010928962 | 0.0448087432 | 0.0393442623 | 0.0010928962 | 0.716939891 | 0.001092896 | 0.0174863388 | 0.0010928962 | 0.001092896 | 0.006557377 | 0.0666666667 | 0.0393442623 | 0.0010928962 |\n",
"| 1778-04-03 | 0.0237037037 | 0.608888889 | 0.0014814815 | 0.1422222222 | 0.008888889 | 0.008888889 | 0.0014814815 | 0.1570370370 | 0.0014814815 | 0.0014814815 | 0.0162962963 | 0.001481481 | 0.001481481 | 0.0014814815 | 0.0014814815 | 0.001481481 | 0.001481481 | 0.0014814815 | 0.0162962963 | 0.0014814815 |\n",
"| 1754-04-01 | 0.0008733624 | 0.027074236 | 0.0008733624 | 0.0008733624 | 0.005240175 | 0.005240175 | 0.0008733624 | 0.0008733624 | 0.0008733624 | 0.0008733624 | 0.0008733624 | 0.005240175 | 0.005240175 | 0.0008733624 | 0.0008733624 | 0.005240175 | 0.935371179 | 0.0008733624 | 0.0008733624 | 0.0008733624 |\n",
"\n"
],
"text/plain": [
" 1 2 3 4 5 \n",
"1778-03-04 0.0016129032 0.001612903 0.0016129032 0.0016129032 0.001612903\n",
"1754-04-03 0.0014705882 0.008823529 0.0014705882 0.0014705882 0.001470588\n",
"1778-02-26 0.0211538462 0.001923077 0.0019230769 0.0019230769 0.021153846\n",
"1760-07-26 0.0065573770 0.001092896 0.0010928962 0.0010928962 0.001092896\n",
"1778-04-03 0.0237037037 0.608888889 0.0014814815 0.1422222222 0.008888889\n",
"1754-04-01 0.0008733624 0.027074236 0.0008733624 0.0008733624 0.005240175\n",
" 6 7 8 9 10 \n",
"1778-03-04 0.001612903 0.0016129032 0.9451612903 0.0016129032 0.0016129032\n",
"1754-04-03 0.001470588 0.0014705882 0.0014705882 0.0088235294 0.0014705882\n",
"1778-02-26 0.001923077 0.0019230769 0.9153846154 0.0019230769 0.0019230769\n",
"1760-07-26 0.028415301 0.0229508197 0.0010928962 0.0448087432 0.0393442623\n",
"1778-04-03 0.008888889 0.0014814815 0.1570370370 0.0014814815 0.0014814815\n",
"1754-04-01 0.005240175 0.0008733624 0.0008733624 0.0008733624 0.0008733624\n",
" 11 12 13 14 15 \n",
"1778-03-04 0.0016129032 0.001612903 0.001612903 0.0096774194 0.0016129032\n",
"1754-04-03 0.0014705882 0.001470588 0.001470588 0.0014705882 0.0014705882\n",
"1778-02-26 0.0019230769 0.001923077 0.001923077 0.0019230769 0.0019230769\n",
"1760-07-26 0.0010928962 0.716939891 0.001092896 0.0174863388 0.0010928962\n",
"1778-04-03 0.0162962963 0.001481481 0.001481481 0.0014814815 0.0014814815\n",
"1754-04-01 0.0008733624 0.005240175 0.005240175 0.0008733624 0.0008733624\n",
" 16 17 18 19 20 \n",
"1778-03-04 0.009677419 0.001612903 0.0016129032 0.0016129032 0.0096774194\n",
"1754-04-03 0.001470588 0.957352941 0.0014705882 0.0014705882 0.0014705882\n",
"1778-02-26 0.001923077 0.001923077 0.0115384615 0.0019230769 0.0019230769\n",
"1760-07-26 0.001092896 0.006557377 0.0666666667 0.0393442623 0.0010928962\n",
"1778-04-03 0.001481481 0.001481481 0.0014814815 0.0162962963 0.0014814815\n",
"1754-04-01 0.005240175 0.935371179 0.0008733624 0.0008733624 0.0008733624"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"head(theta)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# reshape data frame, for when I get the topics over time thing sorted\n",
"vizDataFrame <- melt(topic_proportion_per_decade, id.vars = \"decade\")\n",
"\n",
"# plot topic proportions per deacde as bar plot\n",
"require(pals)\n",
"ggplot(vizDataFrame, aes(x=decade, y=value, fill=variable)) + \n",
" geom_bar(stat = \"identity\") + ylab(\"proportion\") + \n",
" scale_fill_manual(values = paste0(alphabet(20), \"FF\"), name = \"decade\") + \n",
" theme(axis.text.x = element_text(angle = 90, hjust = 1))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "3.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment