{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## How much does the minimum document frequency or \"sparsity\" influence document similarity? \n", "\n", "This notebook does the following using the ten chapters plus appendix of Frederick Douglass's _Narrative of the Life of Frederick Douglass_ (1845):\n", " - compares similarity scores using different minimum document frequency (df) values\n", " - compare cosine similarity scores with the Euclidean distance metric\n", " - uses MDS to show (dis)similarity between chapters\n", " - visualizes the matrix\n", " - clusters together using Seaborn\n", " - calcuates variance between selected chapters and displays top fifty most variant terms\n", "\n", "Revisions:\n", "
\n",
    "12/05/2018: James E. Dobson (james.e.dobson@dartmouth.edu): Created initial notebook.\n",
    "12/06/2018: Added Cosine Similarity Comparison\n",
    "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import sklearn\n", "import numpy as np\n", "from sklearn.feature_extraction.text import CountVectorizer\n", "\n", "from sklearn.metrics import euclidean_distances\n", "from sklearn.metrics.pairwise import cosine_similarity\n", "\n", "from operator import itemgetter\n", "import nltk\n", "import pandas\n", "\n", "import seaborn as sn\n", "sn.set(style=\"white\")\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "texts=[\"Douglass/01\",\n", " \"Douglass/02\",\n", " \"Douglass/03\",\n", " \"Douglass/04\",\n", " \"Douglass/05\",\n", " \"Douglass/06\",\n", " \"Douglass/07\",\n", " \"Douglass/08\", \n", " \"Douglass/09\", \n", " \"Douglass/10\", \n", " \"Douglass/11\"]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DF: 1 Documents: 11 Vocabulary: 3996\n", "DF: 2 Documents: 11 Vocabulary: 1527\n", "DF: 3 Documents: 11 Vocabulary: 805\n", "DF: 4 Documents: 11 Vocabulary: 463\n", "DF: 5 Documents: 11 Vocabulary: 287\n", "DF: 6 Documents: 11 Vocabulary: 183\n", "DF: 7 Documents: 11 Vocabulary: 114\n", "DF: 8 Documents: 11 Vocabulary: 68\n", "DF: 9 Documents: 11 Vocabulary: 38\n", "DF: 10 Documents: 11 Vocabulary: 20\n", "DF: 11 Documents: 11 Vocabulary: 9\n" ] } ], "source": [ "similarity_chart=list()\n", "\n", "# check minimum for minimum document frequencies from 1-13\n", "for df_factor in range(1,12):\n", " vectorizer = CountVectorizer(input='filename', stop_words='english',\n", " strip_accents='unicode',lowercase=True,\n", " min_df=df_factor)\n", " dtm_matrix = vectorizer.fit_transform(texts).toarray()\n", " \n", " # tell us about the model\n", " documents, vocabulary = dtm_matrix.shape\n", " print(\"DF: {0} Documents: {1} Vocabulary: {2}\".format(df_factor,documents,vocabulary))\n", "\n", " # calculate distances between texts\n", " dist_matrix = euclidean_distances(dtm_matrix)\n", " \n", " row = [df_factor]\n", " \n", " #display distance from the first text\n", " for x,y in sorted(enumerate(np.round(dist_matrix[0],3)), key=itemgetter(1)):\n", " b,d,c = texts[x].partition('/')\n", " v = '{0} ({1:.1f})'.format(c,y)\n", " row.append(v)\n", " similarity_chart.append(row) " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234567891011
0101 (0.0)06 (44.7)08 (48.0)05 (48.2)09 (49.2)03 (50.6)02 (53.2)04 (53.6)07 (55.2)11 (90.6)10 (194.7)
1201 (0.0)06 (40.9)08 (43.1)05 (44.4)09 (44.6)03 (46.4)04 (47.0)02 (49.0)07 (49.2)11 (82.5)10 (185.5)
2301 (0.0)06 (38.7)08 (39.7)09 (41.6)05 (41.9)03 (44.0)04 (44.3)02 (44.5)07 (45.9)11 (76.1)10 (168.4)
3401 (0.0)06 (35.5)08 (36.4)09 (38.8)05 (39.4)04 (41.0)02 (41.0)03 (41.7)07 (41.7)11 (72.1)10 (162.0)
4501 (0.0)06 (31.6)08 (33.2)09 (35.8)05 (36.0)07 (37.4)02 (37.5)03 (38.2)04 (38.8)11 (63.2)10 (153.4)
5601 (0.0)06 (28.2)08 (29.9)09 (32.8)07 (32.9)05 (33.0)02 (34.4)03 (35.9)04 (36.8)11 (60.4)10 (146.5)
6701 (0.0)06 (24.9)08 (27.4)07 (29.9)05 (30.4)09 (30.5)02 (32.0)03 (34.2)04 (34.7)11 (54.2)10 (137.1)
7801 (0.0)06 (20.2)03 (22.9)08 (23.1)07 (25.1)09 (26.5)02 (27.2)05 (27.8)04 (30.0)11 (48.2)10 (128.7)
8901 (0.0)06 (15.9)08 (17.8)07 (19.0)05 (19.8)03 (20.3)02 (23.5)09 (23.9)04 (27.3)11 (31.7)10 (119.4)
91001 (0.0)06 (14.0)07 (14.6)08 (14.7)05 (15.1)03 (17.7)02 (19.0)09 (19.5)04 (26.1)11 (29.1)10 (110.8)
101101 (0.0)08 (4.9)05 (9.8)07 (11.1)06 (12.0)02 (12.2)03 (14.5)09 (16.2)11 (23.8)04 (24.9)10 (102.1)
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 \\\n", "0 1 01 (0.0) 06 (44.7) 08 (48.0) 05 (48.2) 09 (49.2) 03 (50.6) \n", "1 2 01 (0.0) 06 (40.9) 08 (43.1) 05 (44.4) 09 (44.6) 03 (46.4) \n", "2 3 01 (0.0) 06 (38.7) 08 (39.7) 09 (41.6) 05 (41.9) 03 (44.0) \n", "3 4 01 (0.0) 06 (35.5) 08 (36.4) 09 (38.8) 05 (39.4) 04 (41.0) \n", "4 5 01 (0.0) 06 (31.6) 08 (33.2) 09 (35.8) 05 (36.0) 07 (37.4) \n", "5 6 01 (0.0) 06 (28.2) 08 (29.9) 09 (32.8) 07 (32.9) 05 (33.0) \n", "6 7 01 (0.0) 06 (24.9) 08 (27.4) 07 (29.9) 05 (30.4) 09 (30.5) \n", "7 8 01 (0.0) 06 (20.2) 03 (22.9) 08 (23.1) 07 (25.1) 09 (26.5) \n", "8 9 01 (0.0) 06 (15.9) 08 (17.8) 07 (19.0) 05 (19.8) 03 (20.3) \n", "9 10 01 (0.0) 06 (14.0) 07 (14.6) 08 (14.7) 05 (15.1) 03 (17.7) \n", "10 11 01 (0.0) 08 (4.9) 05 (9.8) 07 (11.1) 06 (12.0) 02 (12.2) \n", "\n", " 7 8 9 10 11 \n", "0 02 (53.2) 04 (53.6) 07 (55.2) 11 (90.6) 10 (194.7) \n", "1 04 (47.0) 02 (49.0) 07 (49.2) 11 (82.5) 10 (185.5) \n", "2 04 (44.3) 02 (44.5) 07 (45.9) 11 (76.1) 10 (168.4) \n", "3 02 (41.0) 03 (41.7) 07 (41.7) 11 (72.1) 10 (162.0) \n", "4 02 (37.5) 03 (38.2) 04 (38.8) 11 (63.2) 10 (153.4) \n", "5 02 (34.4) 03 (35.9) 04 (36.8) 11 (60.4) 10 (146.5) \n", "6 02 (32.0) 03 (34.2) 04 (34.7) 11 (54.2) 10 (137.1) \n", "7 02 (27.2) 05 (27.8) 04 (30.0) 11 (48.2) 10 (128.7) \n", "8 02 (23.5) 09 (23.9) 04 (27.3) 11 (31.7) 10 (119.4) \n", "9 02 (19.0) 09 (19.5) 04 (26.1) 11 (29.1) 10 (110.8) \n", "10 03 (14.5) 09 (16.2) 11 (23.8) 04 (24.9) 10 (102.1) " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pandas.DataFrame(similarity_chart)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results Using Euclidean Distance" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DF: 1 Documents: 11 Vocabulary: 3996\n" ] } ], "source": [ "# recalculate with no minimum df\n", "df_factor=1\n", "vectorizer = CountVectorizer(input='filename',stop_words='english',\n", " strip_accents='unicode',lowercase=True,\n", " min_df=df_factor)\n", "dtm_matrix = vectorizer.fit_transform(texts).toarray()\n", " \n", "# tell us about the model\n", "documents, vocabulary = dtm_matrix.shape\n", "print(\"DF: {0} Documents: {1} Vocabulary: {2}\".format(df_factor,documents,vocabulary))\n", "\n", "# calculate distances between texts\n", "dist_matrix = euclidean_distances(dtm_matrix)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Douglass/01 (0.0)\n", "Douglass/06 (44.71018)\n", "Douglass/08 (48.02083)\n", "Douglass/05 (48.19751)\n", "Douglass/09 (49.15282)\n", "Douglass/03 (50.5569)\n", "Douglass/02 (53.20714)\n", "Douglass/04 (53.57238)\n", "Douglass/07 (55.22681)\n", "Douglass/11 (90.60353)\n", "Douglass/10 (194.71774)\n" ] } ], "source": [ "#display distance from the first text\n", "for x,y in sorted(enumerate(np.round(dist_matrix[0],5)), key=itemgetter(1)):\n", " print('{0} ({1})'.format(texts[x],y))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrZCxWIzr169TUFBAPB4nmUwyceLEXpztR4fBJ0mSJKnHEokEtbW1HDt2jJycHBKJRI/GKy8v7/Ll\n5+oeg0+SJElSr0gkEt3exqk7o8+9noAkSZIk6c4w+CRJkiQpogw+SZIkSYoog0+SJEmSIsrgkyRJ\nkqSIMvgkSZIkKaIMPkmSJEmKKINPkiRJkiLK4JMkSZKkiDL4JEmSJCmiDD5JkiRJiiiDT5IkSZIi\nyuCTJEmSpIgy+CRJkiQpogw+SZIkSYoog0+SJEmSIsrgkyRJkqSIMvgkSZIkKaIMPkmSJEmKKINP\nkiRJkiLK4JMkSZKkiDL4JEmSJCmiDD5JkiRJiiiDT5IkSZIiyuCTJEmSpIgy+CRJkiQpogw+SZIk\nSYoog0+SJEmSIsrgkyRJkqSIMvgkSZIkKaIMPkmSJEmKKINPkiRJkiLK4JMkSZKkiDL4JEmSJCmi\nDD5JkiRJiiiDT5IkSZIiyuCTJEmSpIgy+CRJkiQpogw+SZIkSYoog0+SJEmSIsrgkyRJkqSIMvgk\nSZIkKaIMPkmSJEmKKINPkiRJD4zDhw/z6KOPUlJSwtNPP838+fPZu3dvr4y9c+dOXnzxxV4Zq6Oj\ng2eeeYbW1lbKysooKipi8eLFNDU13T7n+vXrzJ8/n9OnT/fKNaUPYvBJkiTpgZKXl8f27dv52te+\nxle/+lWqqqp455137vW0ujh27BjZ2dm89tprPPLII3z9619nzpw5VFZWAvD2229TXFzM2bNn7/FM\nFXWxez0BSZIkqbsSiQSFhYXs27eP3bt3U19fD8Ds2bMpLS1l5cqV5OfnM3XqVOrq6ti7dy/r16+n\npqaGHTt2MGDAAOLxOPn5+V3Graio4OTJk1y+fJmxY8eybt066uvr2bBhA7FYjIyMDDZv3kxjYyOr\nVq0iFovR2dlJRUUFQ4YM4eDBgzz11FO89NJLLFq0CICpU6feDr7vf//7/NEf/RGf//zn7+4N00eO\nwSdJkqQH2uDBg6mqqiIIAqqrq2lvb6eoqIi8vLwPPL+pqYmqqip27dpFeno6Cxcu7PJ+c3MzWVlZ\nbNu2jc7OTmbNmsXFixfZv38/M2fOpLS0lNraWq5cucKhQ4dIJpMsX76co0ePcvXqVYYMGUJDQwOj\nR4+mubmZ/v37Azfj9OrVqwDk5ube2Zsi3eKWTkmSJD3Qzp07x5w5c5g4cSJpaWnE43EmTJjwY5+N\n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\nT5IkSZIS6v8DswB0wCHM5IoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# reduce using MDS and allow MDS to calculate Euclidean distances\n", "from sklearn.manifold import MDS\n", "mds = MDS(n_components=2, dissimilarity=\"euclidean\", random_state=1)\n", "pos = mds.fit_transform(dtm_matrix)\n", "\n", "# plot!\n", "import matplotlib.pyplot as plt\n", "xs, ys = pos[:, 0], pos[:, 1]\n", "fig = plt.figure(figsize=(15, 10),)\n", "\n", "for x, y, text in zip(xs, ys, texts):\n", " plt.scatter(x, y, c='black',s=10)\n", " plt.text(x, y, text)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# display the similarity matrix (white=similar, dark blue=different)\n", "sn.heatmap(dist_matrix, cmap='Blues',linewidths=.5)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAI+CAYAAABOjlUJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuUZWV95+Hv7i6kOlnQgEBMZlzpcOkXTeIlEkAUhCii\nqDE6a5KsmcR4iYkTjcZxqS1epoYEgxLN0piMGdSgxsxMxshEMYiKiHgBRjQREnmbS4gz4w25q91o\ny54/qkjatk691d1VvXdVPc9atag6Ve/m1+fU5dPv3n2q6/s+AABMtm7oAQAAxk4wAQA0CCYAgAbB\nBADQIJgAABoEEwBAw9RC79zw8Bcsy3MObPv8W7rlOC4AwHJYMJiybv0+GgMAYLwWDqb1++2jMQAA\nxqsRTAu/GwBgLbDDBADQIJjYI13XbUkyPfQca9D2vu/PGXoIgLVm4WCackqOiab7vp8Zeoi1puu6\nmaFnAFiL7DABADS46BsAoMEOEwBAg2ACAGhwSg4AoGHBIlq3zu/mBQBYOJjWCyYAgNEGUynl+CSv\nq7WeUko5PMl5SQ5Osj7JM2qtN5ZSnpvkN5PsSPJ7tdYLBxsYAFi1Fgym9evX76s5vk8p5WVJfjXJ\nt+Zuen2S99Ra/7KUcmqSY0op30rywiTHZvYZpz9ZSvlIrfWeQYYGAFatBbeQ1q1ftywvi3Bjkqfv\n9PajkvzrUspHk/z7JB9PclyST9Va76m13pnkhiQP2ZM7AQBgIaMMplrrXyX57k43bUpye631cUm+\nlOTlSQ5McudOH3N3ko27+ecHAGga5Sm5edya5P1zr38gydlJPpvkgJ0+5oAkd+zjuQCANWC0F33v\n4pNJzkjy7iQnJ/n7JFclObuUMp1k/yQPSnLtYBMCAKvWSgmmlyR5WynlP2T2NNy/q7XeXkp5c5LL\nM3tq8ZW11u1DDgkArE6jPSVXa705yQlzr/9TktPm+ZjzMvt0AwAAy2al7DABAAymscMkmAAAGsHU\n7as5AABGa8FgmpqywwQA4JQcAECDU3IAAA12mAAAGuwwAQA02GECAGgYbTCVUo5P8rpa6ymllIcl\n+aMk30tyT5Jn1Fq/Vkp5bpLfTLIjye/VWi8cbGAAYNVasIjWr++W5aWllPKyJG9LMj1305uS/Hat\n9ZQk70vy8lLKA5K8MMmjkpye5PdLKfvv+V0BADC/hZ+HabgdphuTPD3Ju+fe/uVa61fmXp9Ksj3J\ncUk+VWu9J8k9pZQbkjwkyf/e18MCAKtbI5iGuei71vpXpZRNO739lSQppZyY5AVJTs7srtKdOy27\nO8nGfTgmALBGLHwN07rxXPRdSvmlJK9M8qRa6y2llLuSHLDThxyQ5I5BhgMAVrVR7jDtqpTyK5m9\nuPuUWuttczdfleTsUsp0kv2TPCjJtQONCACsYmO9humflVLWJ3lzki8leV8pJUkuq7X+p1LKm5Nc\nntmL119Za90+3KQAwGq1cDCtG26HqdZ6c5IT5t48ZMLHnJfkvH01EwCwNjWuYRrHKTkAgCGN9okr\nAQDGYrSn5AAAxmL0F30DAAxtRTytAADAkBqn5OwwAQAsGEz72WECABBMAAAtCweTfyUHAGCHCQCg\nZZTPw1RK2S/JO5NsSvK9JM9NsiPJ+Un6zP6S3efXWu8dZEAAYE1Z8J/B7be+W5aXRTgjyVSt9cQk\nZyU5O8kbk7yq1npSki7JU/fyzw4AsChjPSW3NclUKWVdkgOTfDezv4j3srn3X5Tk8UkuGGY8AGAt\nGetF39/M7Om465IcmuTJSU6utfZz7787ycZhRgMA1pqx7jC9OMnFtdZXlFIemORjSe630/sPSHLH\nIJMBAGvOgtcwTa3vluVlEW5Pcufc67cl2S/J50spp8zd9sQkl+/hnxkAYLcs/K/kusF2mP4wyTtK\nKZdndmfpzCSfTXJeKeV+Sb6Y5L1DDQcArC2jfFqBWus3k/ziPO96zL6eBQDAL98FAGgY6yk5AIDR\nWDCY1vtdcgAArR0mp+QAAEZ50TcAwJgIJgCAhoWvYXJKDgDADhMAQIunFQAAaFgwmLoBg6mUcniS\nq5OclmRHkvOT9EmuTfL8Wuu9gw0HAKwpC16ktG7d8ry0lFL2S/KnSbbN3fTGJK+qtZ6UpEvy1L37\nYwMALN6C+bK+65blZRH+IMlbk3x57u1HJLls7vWLkjxuT//AAAC7q7HD1C3Ly0JKKc9Mckut9eKd\nbu5qrf3c63cn2bg3f2gAgN2x4DVM64a5hunZSfpSyuOSPCzJu5IcvtP7D0hyxxCDAQBr08LBNMDT\nMNVaT77v9VLKx5M8L8m5pZRTaq0fT/LEJJfu+8kAgLWq8cSVo3lagZckOa+Ucr8kX0zy3oHnAQDW\nkMYO07DBVGs9Zac3HzPUHKw8XddtSTI99BzLYFPXdTNDD7EMtvd9f87QQwBMMsZrmGApTPd9PzP0\nECzOKo1AYBUZ3TVMAABjs1KuYQIAGMyor2ECABgD1zABADQsfErONUwAAHaYAABaXMMEANDgX8kB\nADSM8nmYSinrkvxJkocmuSfJr9dabxhmGgBgrVswidZ33bK8LMIvJJmutT4yyZYkb1iCPysAwB5Z\nMJjWreuW5WURHp3kQ0lSa70iybF7/0cFANgzCwdT1y3LyyIcmOTOnd7+XillwdOHAADLZcEI2bBf\nhrrq+64kB+z09rpa646BZgEA1rixPjXlp5KckSSllBOSXDPsOADAWjbW01wXJDmtlPLpJF2SZw08\nDwCwho0ymGqt9yZ53tBzAAAk4z0lBwAwGqPcYYK1oOu6LUmmh55jJDZ1XTcz9BAjsb3v+3OGHgL4\nfoIJhjPd9/3M0EOMjZDMMeJRNDI+ggmY14DhsinJzQP8f9fcD+kRx+kYo3HNfX7w/QQTMMmod8CW\n4Yf9Uv+QXgk/YNfaY7w3xhZxK+Hza1URTMBKNfYf9jNDz7AKjP0xHjLohgq4NRtqggkA9syogy6x\nE7uUBBMArF6jjrqVtBPreZgAABoEEwBAg2ACAGgQTAAADYIJAKBBMAEANAgmAIAGwQQA0CCYAAAa\nBBMAQINgAgBo6Pq+H3oGAIBRs8MEANAwNfQA7DO2EgFY7brlOrBgWkO27xh6gvlNz30Wbnj624cd\nZAHb3vecbDjxzKHHmGjbp1+bDY940dBjTLTt6jclSTY8/AUDTzLZts+/JRtOePnQY0y07YrXZcPP\nnT30GBNt+9grk2T0n4cbjn/p0GNMtO3Kc0f/NZKM9+v4vvmWi1NyAAANggkAoEEwAQA0CCYAgAbB\nBADQIJgAABoEEwBAg2ACAGgQTAAADYIJAKBBMAEANAgmAIAGwQQA0CCYAAAaBBMAsKaUUrrdXTO1\nHIMAAIxJKeXIJH+c5EFJfqyUcnWSm5L8x1rrV1vr7TABAGvBHyd5Ya31x5OclOTSJG9I8vbFLN6j\nHaau67Ykmd6Ttexbfd/PDD0DAIzAxlrr1iSptV5RSnl9rfUVpZSDF7N4T0/JTftBDACsIDeVUt6a\n5KIkT07y2VLKk5J8azGLnZIDANaCZyW5Jsnjk1yV5KVJbk3yy4tZ7KJvAGDVq7V+J7PXMe3sisWu\nt8MEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg2ACAGgQ\nTAAADYIJAKBBMAEANHR93+/+oq6b6ft+ZunHYRnt/gMNACtLt1wHtsMEANAwNfQA7Dsbnv72oUeY\n17b3PSdJsn3HwIMsYHoqOesjNww9xkSvOe2ovPTCOvQYE5375JIkedkHxzvj659UsuVvtg49xkTn\nnLF59J+DSXLmiO/D156xOa+5+Pqhx5jorNOPzsyHxzvfzOOPTpLR3odnnX70sh7fDhMAQINgAgBo\nEEwAAA2CCQCgQTABADQIJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbB\nBADQIJgAABoEEwBAw9TQAwAA7AullKcmeVySjUnuSHJ5kvfWWvvWWsG0RLqu25Jkeug5dtX3/czQ\nMwDA0Eopf5zZM2sXJbk7yQFJnpjk9CS/3lovmJbOtDgBgNH6qVrrY3a57f2llE8tZrFrmACAtWBd\nKeWknW8opZyc5LuLWWyHCQBYC56Z5I2llP+WpEtyb5LPJXnuYhYLJgBg1au13pjkqXu6XjABAKte\nKeXSJPvP975a64mt9YIJAFgLtiQ5L8nTkuzY3cWCCQBY9WqtV5ZS3p3kIbXWC3Z3vWACANaEWuu5\ne7rW0woAADQIJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgIau7/vdX9R1\nM33fzyz9OCvXCrhPdv+BBoCVpVuuA/tdcmvIhhPPHHqEeW379GuTJGd95IaBJ5nsNacdle27/but\n953pqeSCL3x16DEmetpDHpAk+eC1Xx94ksme9FOH5wPXfG3oMSZ6yk//SD7097cMPcZET/jJw5Ik\nH/7ieGd8/IMOy6X11qHHmOjUcv9cct03hh5joscec2iS5Iob7xh4kvmdcORBy3p8p+QAABoEEwBA\ng2ACAGgQTAAADYIJAKBBMAEANAgmAIAGwQQA0CCYAAAaBBMAQINgAgBoEEwAAA2CCQCgQTABADQI\nJgCABsEEAKw5pZRDSyndYj9+ajmHAQAYg1LKs5I8MMmFSf4iyfYkP1RK+a1a60db6+0wAQBrwW8l\neUOSc5P8fK31YUlOSfL7i1lsh2mEuq7bkmR6KY7V9/3MUhwHAFa479Zav1VKuTvJTUlSa/1yKaVf\nzGLBNE7TQgcAltT7Syl/neTaJBeWUi5O8oQkH1vMYqfkAIBVr9Z6TpI3JumSfCnJ4UneXGvdspj1\ndpgAgDWh1npZksv2ZK0dJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgIY9\nfabv7V3XzSzlIKvApqEHAACWxx4FU9/35yz1ICudgASA1cspOQCABsEEANAgmAAAGgQTAEBD1/f9\n0DOsCl3XzfR9PzO2Y+3EAw3Aatct14H39GkFWIE2POJFQ48wr21XvylJ8tIL68CTTHbuk0su+MJX\nhx5joqc95AHZvmPoKSabnvtO85kb7hh2kAU88qiD8omttw09xkQnbz4kl1z3jaHHmOixxxyaJLn4\nH24ZeJLJTn/wYaN/jMf+NZIkn7z+9oEnmd+jjz54WY/vlBwAQINgAgBoEEwAAA2CCQCgQTABADQI\nJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg2AC\nAGiYGnoAFtZ13ZYk03u6vu/7maWbBgBWplLKpUn23+XmLklfaz2xtV4wjd+06AGAvbYlyXlJnpZk\nx+4uFkwAwKpXa72ylPLuJA+ptV6wu+sFEwCwJtRaz93TtS76BgBoEEwAAA2CCQCgQTABADQIJgCA\nBsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbBBADQIJgAABq6vu+HnmFV6Lpu\npu/7maU+1hIe1wMNwGrXLdeB7TABADRMDT0A+86Gh79g6BHmte3zb0mSvOyDdeBJJnv9k0o+eO3X\nhx5joif91OH5zA13DD3GRI886qAkyfYdAw+ygOmp5Kqb7hx6jImOO2JjPl5vG3qMiU4phyRJLrnu\nGwNPMtljjzl09F8nn7r+9qHHmOhRRx+cZLxfJ8cdsXFZj2+HCQCgQTABADQIJgCABsEEANAgmAAA\nGvwruaWzveu6mSU61qYlOg4AsAQE0xLp+/6cpTrWEoYXALAEnJIDAGgQTCPWdd2WOD0HAIMTTOM2\nneTmoYcAgLVOMAEANAgmAIAGwQQA0CCYAAAaBBMAQINgAgDWpFLK/ov9WMEEAKxqpZSnlFL+qZRy\nQynll3Z610WLPYZgAgBWu1cmeViS45P8Zinl1+Zu7xZ7AL9LbgWYe8bv6T1Z2/f9zNJOAwArzndq\nrbcnSSnlqUk+Vkr5UpJ+sQcQTCvDtPABgD12cynljUleXWu9u5Ty9CQXJzlosQdwSg4AWO2eneQL\nmdtRqrX+nySnJvnLxR7ADhMAsKrVWnckOX+X276W5HcWeww7TAAADYIJAKBBMAEANAgmAIAGwQQA\n0CCYAAAaBBMAQINgAgBoEEwAAA2CCQCgQTABADQIJgCABsEEANAgmAAAGrq+74eegV10XTfT9/1M\n13Uz993W9/3M5BWL4oEGYLXrluvAdpjGb3uSTUMPAQBr2dTQA7Cwvu/P2XmnaW9sOOHlS3GYJbft\nitclSbb8zdaBJ5nsnDM25wPXfG3oMSZ6yk//SD6x9bahx5jo5M2HJEmuuunOgSeZ7LgjNmb7jqGn\nmGx6Krl86+1DjzHRSZsPTpJc/A+3DDzJZKc/+LDRf52shMf4yhvH+XV8/JEbl/X4dpgAABoEEwBA\ng2ACAGgQTAAADYIJAKBBMAEANAgmAIAGwQQA0CCYAAAaBBMAQINgAgBoEEwAAA2CCQCgQTABADQI\nJgCABsEEAKw5pZQNpZT9F/vxU8s5DADAGJRSHpzktUluT/KeJG9L8r1SyotqrRe21gsmAGAteGuS\nVyfZlOS9STYn2Z7koiSCaZXY3nXdzJ4s7Pt+j9YBwCqzrtZ6WZLLSimn1lq/niSllB2LWSyYVoC+\n788ZegYAWOFqKeVtSX6j1vrMJCmlbEny1cUsdtE3ALAWPDfJB2qt9+502/9N8qzFLLbDBACsenOh\n9Ne73Pbni11vhwkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg2ACAGgQTAAADYIJAKBBMI3Tfb9s\nd9PAcwAA8atRRum+X7Y7F00AwMDsMAEANAgmAIAGwQQA0CCYAAAaur7vh56BCbqum+n7fmaJDueB\nBmC165brwP6V3Bqy4efOHnqEeW372CuTJGd95IaBJ5nsNacdlQ/9/S1DjzHRE37ysFxy3TeGHmOi\nxx5zaJLk4/W2gSeZ7JRySC7fevvQY0x00uaDs33H0FNMNj330+TSeuuwgyzg1HL/XHHjHUOPMdEJ\nRx6UT2wd79fIyZsPSZLR3ocnHHnQsh7fKTkAgAbBBADQIJgAABoEEwBAg2ACAGgQTAAADYIJAKBB\nMAEANAgmAIAGwQQA0CCYAAAaBBMAQINgAgBoEEwAAA2CCQCgQTABAGtOKeV+pZQNi/34qeUcBgBg\nDEopm5O8Nsl3krw5ybuSTJVSXlFr/R+t9YIJAFgLzkvyu0k2JrkwyUOT3JHko0kE0wr36K7rZvbm\nAH3f79V6AFglpmqtHy2ldEleW2v9f0lSSvnuohYv62jsrSnBAwBL4uZSyn/PbPt8s5RydpI7k3xl\nMYsFEwCwFvxakjOSbE3yzSQvTvLtJM9ezGLBBACserXWHUnev9NNL9md9Z5WAACgQTABADQIJgCA\nBsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg2ACAGjo\n+r4fegYm6Lru433fn7JEh/NAA7Dadct14KnlOjDjs+ERLxp6hHltu/pNSZIz/2brwJNM9tozNufD\nX7xl6DEmevyDDsvF/zDe+U5/8GFJkkuu+8bAk0z22GMOHf19eGm9degxJjq13D9Jsn3HwIMsYHoq\nufLGO4ceY6Ljj9yYq24a73zHHbExSXLFDXcMPMn8TjjqoGU9vlNyAAANggkAoEEwAQA0CCYAgAbB\nBADQIJgAABoEEwBAg2ACAGgQTAAADYIJAKBBMAEANAgmAIAGwQQA0CCYAAAaBBMAQINgAgBWvVLK\ngXuzXjCN281DDwAAq8RXSynP2dPFgmncbh56AABYJf4uycNLKR8rpTxmdxdPLcNALKGu67Ykmd7T\n9X3fzyzdNACwYm2rtb6glHJskleUUt6S5JIkN9Va39xaLJjGb1r0AMBe65Kk1vrZJP+mlLIxyclJ\nymIWCyYAYC04f+c3aq13JvnA3EuTa5gAgFWv1vrOvVkvmAAAGgQTAECDYAIAaBBMAAANggkAoEEw\nAQA0CCYAgAbBBADQIJgAABoEEwBAg2ACAGgQTAAADYIJAKBBMAEANAgmAICGru/7oWdggq7rZpKk\n7/uZJTicBxqA1a5brgPbYQIAaJgaegD2nQ3Hv3ToEea17cpzkySvufj6gSeZ7KzTj86l9dahx5jo\n1HL/fGLrbUOPMdHJmw9JknzmhjsGnmSyRx510OjvwytuHO/9d8KRByVJrrzxzoEnmez4Izdm+46h\np5hsemr891+SfPYf7xp4kvkd+xMHLuvx7TABADQIJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAAN\nggkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg2Aat+1JNg09BACsdYJpxPq+PyfJzUPPAQBrnWAC\nANaUUspu98/UcgwCADAmpZQjkrwxybFJdsxF0zVJXlxr3dpaL5gAgLXgbUleUWu98r4bSiknJPmz\nJI9qLRZMK0DXdVuSTO/J2r7vZ5Z2GgBYkaZ3jqUkqbVeUUpZ1GLBtDJMCx8A2Ct/V0p5R5IPJbkz\nyQFJzkjyhcUsFkwAwFrwW0l+IcmjkxyY5K4kFya5YDGLBRMAsOrVWvvMxtGiAmlXnlYAAKBBMAEA\nNAgmAIAGwQQA0CCYAAAaBBMAQINgAgBoEEwAAA2CCQCgQTABADQIJgCABsEEANAgmAAAGgQTAECD\nYAIAaOj6vh96BhbQdd1MkvR9P7OXh/JAA7Dadct14KnlOjDjs+HhLxh6hHlt+/xbkiQzH75+4Ekm\nm3n80bnkum8MPcZEjz3m0HzmhjuGHmOiRx51UJLkU9ffPvAkkz3q6INz+dbxznfS5oPzia23DT3G\nRCdvPiRJctVNdw48yWTHHbExV9443vmOP3Jjtu8YeorJpueK4XM33zXsIBP8zKYDl/X4TskBADQI\nJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoEEwjd/2JJuGHgIA1jLBNHJ935+T5Oah5wCA\ntUwwAQA0CCYAgAbBBADQIJgAABoEEwBAg2ACANaUUsrhu7tmajkGAQAYi1LK5l1uelcp5RlJUmvd\nuphjCCYAYLX7aJJvJ/lyki5JSfKnSfokP7eYAwimFaLrui1Jpnd3Xd/3M0s/DQCsKMcmeWuS/1Jr\n/Ugp5dJa66m7cwDBtHJMix8A2H211q+XUn4xyR+UUn52T47hom8AYNWrte6otf5OZk/L7Xb/2GEC\nANaMWuv5Sc7f3XV2mAAAGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBA\ng2ACAGgQTAAADYIJAKBBMAEANAgmAICGru/7oWegoeu6mSTp+35mLw7jgQZgteuW68BTy3VgltT2\nJMfs7UE2PPwFSzDK0tv2+bckSV5z8fUDTzLZWacfnStuvGPoMSY64ciD8snrbx96jIkeffTBSZKr\nbrpz4EkmO+6IjbnyxvHOd/yRG0f/OZgkV9ww4hmPOiif/ce7hh5jomN/4sB87ubxzvczmw5Mkmzf\nMfAgE0wvc9E4JbcC9H1/TpKbh54DANYqwQQA0CCYAAAaBBMAQINgAgBoEEwAAA2CCQCgQTABADQI\nJgCABsEEANAgmAAAGgQTAECDYAIAaBBMAAANggkAoGFq6AEAAPalUsq6JD+a5Cu11nsXs8YOEwCw\n6pVS3j733+OTbE3yviTXllJOWMx6wQQArAU/Mfffs5M8sdZ6fJLHJXndYhY7JbdybO+6bmZ3F/V9\nv9trAGAV+16t9fokqbV+ee70XJNgWiH6vj9n6BkAYAXbWEq5OskPl1Kek+Q9Sd6Q5J8Ws1gwAQCr\nXq31EaWU/ZM8NMm3k9yb5Jokb1/MesEEAKwJtdZ7kly1001vXexaF30DADQIJgCABsEEANAgmAAA\nGgQTAECDYAIAaBBMAAANggkAoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg2ACAGgQTAAADV3f90PP\nwL7hgQZgteuW68BTy3VgRmfZPokAYLVzSg4AoEEwAQA0CCYAgAbBBADQIJgAABoEEwBAg6cVYLeU\nUvZP8mdJjkhyV5Ln11qvH3aqWaWU45O8rtZ6SinlqCTnZ/b5p67N7Jz3DjnffUopr0jy80nul+RP\naq1vH3ikH7DzfTn0LLsqpeyX5B1JNiXZP8nv1VrfP+hQOymlrE9yXpKS2c+/59Varx12qn8xd/+9\nM7P33/eSPLfWet2gQ+2ilPLMJM+ce3M6ycOSPKDWesdQM+2slLIuyZ8keWiSe5L8eq31hmGn+kGl\nlMOTXJ3ktLE9xklSSvlcZn+OJMk/1lqfNeQ8LXaY2F3PTfLNWusJSX47yVsGnidJUkp5WZK3Zfab\na5K8Mcmraq0nZfY5qJ461Gw7K6WckuTEJI9K8pgkDxx0oHnMc1+Oza8kuXXusX1CRvI5uJOnJEmt\n9VFJXpXk7GHH+QFnJJmqtZ6Y5KyMb77UWs+vtZ4yF+xXJ3nhWGJpzi8kma61PjLJliRvGHieHzAX\nxn+aZNvQs8ynlDKdpLvvcR57LCWCid334CQXJUmttSZ50LDj/LMbkzx9p7cfkeSyudcvSvK4fT7R\n/E5Pck2SC5J8IMmFw44zr13vy7H5n0lePfd6l2THgLP8gFrr/0ryG3Nv/niSMf2gT5KtSabmdkkO\nTPLdgeeZqJRybJKfrLX+16Fn2cWjk3woSWqtVyQ5dthx5vUHSd6a5MtDDzLBQ5P8UCnlw6WUj5VS\nThh6oBbBxO762yRPLqV0c5/g/2ruFMSgaq1/le//xt/VWu/7dTB3J9m476ea16GZ/eb6b5M8L8l7\nSimjehb2ee7LUam1frPWencp5YAk783sLs6o1Fp3lFLemeSPkrxn6Hl28c3Mno67LrOnDt886DQL\nOzPJfx56iHkcmOTOnd7+XillNJe4zJ3SvKXWevHQsyzg25mNutPzL98LR3Mfzkcwsbvekdlzzpcn\neVqSq2s+BlwKAAAB6UlEQVSt3xt2pHntfL3SARnP3/JvTXJxrfU7czt025McNvBMK04p5YFJLk3y\n7lrrXww9z3xqrb+WZHOS80opPzz0PDt5cWY/Bzdn9m/575w7PTIqpZSDkpRa66VDzzKPuzL7feU+\n62qtY9rpfHaS00opH8/s9V/vKqU8YNiRfsDWJH9ea+1rrVsz+73xRweeaUGCid31s0kuqbU+OrOn\nRm4aeJ5JPj93vVCSPDGzgTcGn0zyhLkduh9L8sOZ/UbBIpVSfiTJh5O8vNb6jqHn2VUp5VfnLuxP\nZv8WfW++P+CHdnv+ZXfktiT7JRl8l3geJye5ZOghJvhUZq8Fy9xO+zXDjvP9aq0n11ofM3cN2N8m\neUat9asDj7WrZ2fu2q+574UHJvnKoBM1jHr7i1G6PsnvllJemdldm+cMPM8kL8ns3+zvl+SLmT11\nM7ha64WllJOTXJXZv7A8f6Q7dGN2ZpKDk7y6lHLftUxPrLWO5eLW9yX5s1LKJzIbI78zotmS5A+T\nvKOUcnlm/6XmmbXWbw0803xKxvsXsgsyu4Pz6cxeRzf6C5ZH6O1Jzi+lfDKz/5r02SPbpfsBXd/3\n7Y8CAFjDnJIDAGgQTAAADYIJAKBBMAEANAgmAIAGwQQA0CCYAAAaBBMAQMP/B3u/11KYAHdpAAAA\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# cluster the chapters together\n", "sn.clustermap(dist_matrix,cmap='Blues',fmt='g',linewidths=.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results Using Cosine Similarity" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Douglass/01 (0.0)\n", "Douglass/09 (0.50372)\n", "Douglass/08 (0.52118)\n", "Douglass/10 (0.54317)\n", "Douglass/02 (0.58984)\n", "Douglass/07 (0.62011)\n", "Douglass/11 (0.62676)\n", "Douglass/03 (0.62862)\n", "Douglass/06 (0.62962)\n", "Douglass/05 (0.65433)\n", "Douglass/04 (0.6901)\n" ] } ], "source": [ "# recalcuate distance matrix using cosine (dis)similarity\n", "dist_matrix = 1 - cosine_similarity(dtm_matrix)\n", "\n", "#display distance from the first text\n", "for x,y in sorted(enumerate(np.round(dist_matrix[0],5)), key=itemgetter(1)):\n", " print('{0} ({1})'.format(texts[x],y))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA34AAAI+CAYAAADjBtjMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X1wVddhsPtHcI6IcoSg0NxEc/k0HxuH5DCSMCPfBHDt\nN35B0A5yTASSQc1b0WDP6I5RTEEudRO37wCNhSFpZaYoJZRgcqWG8hFTZgpSrCa0cBGkmJCc21hO\ngZoPNSpFEohIOuf+YVtFidMkkrDs7ef3T7TPXlp7ac94hid7aSstlUohSZIkSQqvYUO9AEmSJEnS\n3WX4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSEXGeoFAARBMAK4D7gM9AzxciRJkiTpnTYc\nyAb+30QicXuwJ39XhB9vRN8/DPUiJEmSJGmIzQW+M9iTvlvC7zLAnj17+MhHPjLUa5EkSZKkd9SV\nK1coKSmBN9tosL1bwq8H4CMf+Qjjxo0b6rVIkiRJ0lC5K7/65stdJEmSJCnkDD9JkiRJCjnDT5Ik\nSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+SJEmSQs7wkyRJkqSQM/wkSZIkKeQMP0mSJEkK\nOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnkDD9JkiRJCjnDT5IkSZJCzvCTJEmSpJCLDPUCJEkaiBMn\nTvDkk08ydepUUqkU3d3drFy5koKCggHPvW/fPpqbm3nqqacGPFdPTw/l5eVs2bKFtWvX8pOf/IRY\nLMbmzZvp6emhoqKid+wPfvADPv/5z7N8+fIBX1eSJDD8JEkhkJ+fz/PPPw9AR0cHK1asYPLkydx7\n771DvLL/cvr0aXJycti7dy/Tp0+nvLycl156ierqajZs2MDu3bsBOHPmDM8//zyf+cxnhnjFkqQw\nMfwkSaESi8UoKiriyJEjHDhwgKamJgAWL15MaWkp69evp6CggHnz5tHY2Mjhw4fZtGkTdXV17Nmz\nh1GjRhGNRn/uiWFVVRXnzp3j+vXrzJgxg40bN9LU1MTmzZuJRCJkZGSwbds2WlpaqKysJBKJkEwm\nqaqqIjs7m4aGBh555BG2bt1KWVkZAPPmzaO6urr3GqlUij/5kz/hueeeY/jw4e/cTZMkhZ7hJ0kK\nnbFjx1JTU0MQBNTW1tLd3U1xcTH5+flvO761tZWamhr2799Peno6K1eu7HO+vb2drKwsdu7cSTKZ\nZNGiRVy9epWjR4+ycOFCSktLqa+v58aNGxw/fpx4PM7atWs5deoUbW1tZGdn09zczNSpU2lvb2fk\nyJHAG5Ha1tbWe536+nqmTZvGPffcc/dujiTpfcmXu0iSQuf1119nyZIlzJ49m7S0NKLRKLNmzeLV\nV1/tMy6VSgFw4cIFpkyZQkZGBsOHDycnJ6fPuBEjRtDa2kpFRQXPPPMMN2/epKuri9WrV3Pt2jVK\nS0s5cuQIkUiERx99lKysLMrKytizZw/Dhw/n4sWLjBs3DoDMzEw6OjqAN7alZmVl9V7n4MGDbvGU\nJN0Vhp8k6T2po6ODxsZGOjs7+3ze3t5OXV0dmZmZvds8u7q6OHPmDBMnTiQ9PZ2WlhYAzp8/D8CE\nCRNobm6ms7OTZDLJ2bNn+8zZ2NjI5cuX2bJlCxUVFXR2dpJKpTh48CCFhYXs3r2badOmUVtby7Fj\nx8jLy2PXrl0sWLCAmpoaGhoaeOCBBwDIzc3l5Zdf7p03Ly+v9zrnzp0jNzf3rtwvSdL7m1s9JUnv\nOR0dHTz44IOcPHmSnJwc0tPTWbFiBcOGDet9e+bDDz/MlStXKCoqoquriwULFjBz5kyWLl3K008/\nzaFDh5g0aRIAY8aMYdWqVRQXFzN69Ghu375NJBKhu7sbgHg8TnV1NSUlJaSlpTF+/HiuXbtGPB5n\nw4YNZGRkMGzYMJ599llSqRTr1q3jhRdeIJlMUllZyfbt21m2bBkAy5cvZ926dSxfvpxoNEpVVRXw\nxnbTzMxM0tLShuSeSpLCLe2tbS5DKQiCScBrx44d690KI0nSL9LY2Mj8+fP7HM+dO7ff83V3d7Nj\nxw4ef/xxUqkUJSUlrFmzhvvuu28wlitJ0i916dIlHnroIYDJiUTix4M9v0/8JEnvOXl5ecyZM4eT\nJ08yZ86cAW+PjEQi3Lp1i8LCQqLRKPF4nNmzZw/SaiVJGnqGnyTpPScWi1FfX8/p06fJzc0lFosN\neM6Kioo+f0RdkqQwMfwkSe9JsVhsQNs7JUl6P/GtnpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIk\nSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkh\nZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEn\nSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmS\nJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRy\nhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6S\nJEmSFHKR/nxTEATDgGpgFnAbKEskEj96mzEvAQcSicT2gS5UkiRJktQ//X3itwT4QCKRuB9YD1S9\nzZg/BX6jvwuTJEmSJA2O/obfJ4EjAIlE4p+A2XeeDILgUSD51hhJkiRJ0tDpb/hlAf95x3FPEAQR\ngCAIPgYUA88McG2SJEmSpEHQr9/xA24AI+84HpZIJLrf/Hol8H8C9cAk4KdBEPw4kUj49E+SJEmS\nhkB/w++7wG8DtUEQ5AOvvHUikUj8wVtfB0HwBeCK0SdJkiRJQ6e/4fe3wKeCIDgOpAGfDYKgAvhR\nIpE4OGirkyRJUuidOHGCJ598kqlTp5JKpeju7mblypUUFBQMeO59+/bR3NzMU089NeC5enp6KC8v\nZ8uWLaxdu5af/OQnxGIxNm/ezJgxYzh79iybNm0ilUrxoQ99iC996UuMGDFiwNeVBkO/wi+RSCSB\n1T/z8Q/fZtwX+jO/JEmS3l/y8/N5/vnnAejo6GDFihVMnjyZe++9d4hX9l9Onz5NTk4Oe/fuZfr0\n6ZSXl/PSSy9RXV3NH/7hH/JHf/RHfPnLX2bixInU1dXxb//2b9xzzz1DvWwJ6P8TP0mSJOmuiMVi\nFBUVceTIEQ4cOEBTUxMAixcvprS0lPXr11NQUMC8efNobGzk8OHDbNq0ibq6Ovbs2cOoUaOIRqM/\n98SwqqqKc+fOcf36dWbMmMHGjRtpampi8+bNRCIRMjIy2LZtGy0tLVRWVhKJREgmk1RVVZGdnU1D\nQwOPPPIIW7dupaysDIB58+ZRXV3Na6+9xujRo/na177Gv/zLvzB//nyjT+8qhp8kSZLedcaOHUtN\nTQ1BEFBbW0t3dzfFxcXk5+e/7fjW1lZqamrYv38/6enprFy5ss/59vZ2srKy2LlzJ8lkkkWLFnH1\n6lWOHj3KwoULKS0tpb6+nhs3bnD8+HHi8Thr167l1KlTtLW1kZ2dTXNzM1OnTqW9vZ2RI994z2Es\nFqOtrY3/+I//4MyZMzzzzDNMmDCB1atX87GPfYz777//rt8r6VfR3z/nIEmSJN01r7/+OkuWLGH2\n7NmkpaURjUaZNWsWr776ap9xqVQKgAsXLjBlyhQyMjIYPnw4OTk5fcaNGDGC1tZWKioqeOaZZ7h5\n8yZdXV2sXr2aa9euUVpaypEjR4hEIjz66KNkZWVRVlbGnj17GD58OBcvXmTcuHEAZGZm0tHRAbyx\nLTUrK4vRo0czceJEpkyZQjQaZe7cuZw7d+4duFPSr8bwkyRJ0pDp6Ojg7NmzdHd3937W3t5OXV0d\nmZmZvds8u7q6OHPmDBMnTiQ9PZ2WlhYAzp8/D8CECRNobm6ms7OTZDLJ2bNn+1ynsbGRy5cvs2XL\nFioqKujs7CSVSnHw4EEKCwvZvXs306ZNo7a2lmPHjpGXl8euXbtYsGABNTU1NDQ08MADDwCQm5vL\nyy+/3DtvXl4e48ePp6Ojg3/9138F4NSpU0ybNu2u3jvp1+FWT0mSJA2Jjo4OHnzwQV555RUmTJhA\ncXEx0Wi09+2ZDz/8MFeuXKGoqIiuri4WLFjAzJkzWbp0KU8//TSHDh1i0qRJAIwZM4ZVq1ZRXFzM\n6NGjuX37NpFIpDco4/E41dXVlJSUkJaWxvjx47l27RrxeJwNGzaQkZHBsGHDePbZZ0mlUqxbt44X\nXniBZDJJZWUl27dvZ9myZQAsX76cdevWsXz5cqLRKFVVVaSnp/O///f/5vOf/zypVIqcnJzeUJTe\nDdLeejw+lIIgmAS8duzYsd5H6JIkSQq3xsZG5s+f3+d47ty5/Zqru7ubHTt28Pjjj5NKpSgpKWHN\nmjXcd999g7Vc6a66dOkSDz30EMDkRCLx48Ge3yd+kiRJGhJ5eXnMmTOHkydPMmfOHHJzc/s9VyQS\n4datWxQWFhKNRonH48yePXsQVyu9txl+kiRJGhKxWIz6+npOnz5Nbm4usVhsQPNVVFRQUVExSKuT\nwsXwkyRJ0pCJxWL93t4p6VfnWz0lSZIkKeQMP0mSJEkKOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnk\nDD9JkiRJCjnDT5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+SJEmSQs7wkyRJkqSQM/wk\nSZIkKeQMP0mSJEkKOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnkDD9JkiRJCjnDT5IkSZJCzvCTJEmS\npJAz/CRJkiQp5Aw/SZIkSQo5w0+SJEmSQs7wkyRJkqSQM/wkSZIkKeQMP0mSJEkKOcNPkiRJkkLO\n8JMkSZKkkDP8JEmSJCnkDD9JkiRJCjnDT5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+S\nJEmSQs7wkyRJkqSQM/wkSZIkKeQMP0mSJEkKOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnkDD9JkiRJ\nCjnDT5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+SJEmSQs7wkyRJkqSQM/wkSZIkKeQM\nP0mSJEkKOcPvV3TixAnuv/9+VqxYwWOPPcayZcs4fPjwoMy9b98+nnvuuUGZq6enhyeeeILOzk7K\ny8spLi5m1apVtLa2AnDw4EEKCwv59Kc/zYsvvjgo15QkSZL07hYZ6gW8l+Tn5/P8888D0NHRwYoV\nK5g8eTL33nvvEK/sv5w+fZqcnBz27t3L9OnTKS8v56WXXqK6upoNGzbwZ3/2Z3zrW9/igx/8IIsW\nLWLRokWMGjVqqJctSZIk6S4y/PopFotRVFTEkSNHOHDgAE1NTQAsXryY0tJS1q9fT0FBAfPmzaOx\nsZHDhw+zadMm6urq2LNnD6NGjSIajVJQUNBn3qqqKs6dO8f169eZMWMGGzdupKmpic2bNxOJRMjI\nyGDbtm20tLRQWVlJJBIhmUxSVVVFdnY2DQ0NPPLII2zdupWysjIA5s2bR3V1NQBBENDW1kYkEiGV\nSpGWlvbO3jhJkiRJ7zjDbwDGjh1LTU0NQRBQW1tLd3c3xcXF5Ofnv+341tZWampq2L9/P+np6axc\nubLP+fb2drKysti5cyfJZJJFixZx9epVjh49ysKFCyktLaW+vp4bN25w/Phx4vE4a9eu5dSpU7S1\ntZGdnU1zczNTp06lvb2dkSNHAm9EaltbGwDTpk3j05/+NBkZGXzqU58iKyvr7t4kSZIkSUPO3/Eb\ngNdff50lS5Ywe/Zs0tLSiEajzJo1i1dffbXPuFQqBcCFCxeYMmUKGRkZDB8+nJycnD7jRowYQWtr\nKxUVFTzzzDPcvHmTrq4uVq9ezbVr1ygtLeXIkSNEIhEeffRRsrKyKCsrY8+ePQwfPpyLFy8ybtw4\nADIzM+no6ADe2JaalZXFD3/4Q7797W9z7Ngx6uvraW1t5e/+7u/egTslSZIkaSgZfr9ER0cHjY2N\ndHZ29vm8vb2duro6MjMze7d5dnV1cebMGSZOnEh6ejotLS0AnD9/HoAJEybQ3NxMZ2cnyWSSs2fP\n9pmzsbGRy5cvs2XLFioqKujs7CSVSvW+kGX37t1MmzaN2tpajh07Rl5eHrt27WLBggXU1NTQ0NDA\nAw88AEBubi4vv/xy77x5eXmMHDmSD3zgA4wYMYLhw4czZswYbty4cTdvnyRJkqR3Abd6/jc6Ojp4\n8MEHOXnyJDk5OaSnp7NixQqGDRtGT08P5eXlPPzww1y5coWioiK6urpYsGABM2fOZOnSpTz99NMc\nOnSISZMmATBmzBhWrVpFcXExo0eP5vbt20QiEbq7uwGIx+NUV1dTUlJCWloa48eP59q1a8TjcTZs\n2EBGRgbDhg3j2WefJZVKsW7dOl544QWSySSVlZVs376dZcuWAbB8+XLWrVvH8uXLiUajVFVV8aEP\nfYiioiKKi4uJRqNMmDCBwsLCobq9kiRJkt4haW9tQxxKQRBMAl47duxY71bFd4PGxkbmz5/f53ju\n3Ln9nq+7u5sdO3bw+OOPk0qlKCkpYc2aNdx3332DsVxJkiRJ71GXLl3ioYceApicSCR+PNjz+8Tv\nv5GXl8ecOXM4efIkc+bMITc3d0DzRSIRbt26RWFhIdFolHg8zuzZswdptZIkSZL09gy//0YsFqO+\nvp7Tp0+Tm5tLLBYb8JwVFRVUVFQMwuokSZIk6Vdj+P0SsVhsQNs7JUmSJGmo+VZPSZIkSQo5w0+S\nJEmSQs7wkyRJkqSQM/wkSZIkKeQMP0mSJEkKOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnkDD9JkiRJ\nCjnDT5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+SJEmSQs7wkyRJkqSQM/wkSZIkKeQM\nP0mSJEkKOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnkDD9JkiRJCjnDT5IkSZJCzvCTJEmSpJAz/CRJ\nkiQp5CL9+aYgCIYB1cAs4DZQlkgkfnTH+TXAsjcPDycSiS8OdKGSJEmSpP7p7xO/JcAHEonE/cB6\noOqtE0EQ3AOUAP8XkA88HARBfKALlSRJkiT1T3/D75PAEYBEIvFPwOw7zl0EFiQSiZ5EIpECokDn\ngFYpSZIkSeq3fm31BLKA/7zjuCcIgkgikehOJBJdwL8HQZAGfAk4k0gk/r+BLlSSJEmS1D/9feJ3\nAxh55zyJRKL7rYMgCD4A7HlzzBP9X54kSZIkaaD6G37fBQoAgiDIB15568SbT/oOAP+cSCQ+l0gk\nega8SkmSJElSv/V3q+ffAp8KguA4kAZ8NgiCCuBHwHBgPjAiCIKFb46vTCQS/zjg1UqSJEmSfm39\nCr9EIpEEVv/Mxz+84+sP9HtFkiRJkqRB5R9wlyRJkqSQM/wkSZIkKeQMP0mSJEkKOcNPkiRJkkLO\n8JMkSZKkkDP8JEmSJCnkDD9JkiRJCjnDT5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+S\nJEmSQs7wkyRJkqSQM/wkSZIkKeQMPylkTpw4wf3338+KFSt47LHHWLZsGYcPHx6Uufft28dzzz03\nKHP19PTwxBNP0NnZSXl5OcXFxaxatYrW1tbeMbdu3WLZsmW8+uqrg3JNSZKk9yvDTwqh/Px8du/e\nzde//nW++tWvUlNTww9+8IOhXlYfp0+fJicnh7179zJ9+nRefPFFlixZQnV1NQCvvPIKJSUlXLx4\ncYhXKkmS9N4XGeoFSLq7YrEYRUVFHDlyhAMHDtDU1ATA4sWLKS0tZf369RQUFDBv3jwaGxs5fPgw\nmzZtoq6ujj179jBq1Cii0SgFBQV95q2qquLcuXNcv36dGTNmsHHjRpqamti8eTORSISMjAy2bdtG\nS0sLlZWVRCIRkskkVVVVZGdn09DQwCOPPMLWrVspKysDYN68eb3h99Of/pS/+Iu/4A/+4A/e2Rsm\nSZIUQoaf9D4wduxYampqCIKA2tpauru7KS4uJj8//23Ht7a2UlNTw/79+0lPT2flypV9zre3t5OV\nlcXOnTtJJpMsWrSIq1evcvToURYuXEhpaSn19fXcuHGD48ePE4/HWbt2LadOnaKtrY3s7Gyam5uZ\nOnUq7e3tjBw5EngjUtva2gDIy8u7uzdFkiTpfcStntL7wOuvv86SJUuYPXs2aWlpRKNRZs2a9XO/\nO5dKpQC4cOECU6ZMISMjg+HDh5OTk9Nn3IgRI2htbaWiooJnnnmGmzdv0tXVxerVq7l27RqlpaUc\nOXKESCTCo48+SlZWFmVlZezZs4fhw4dz8eJFxo0bB0BmZiYdHR0AdHR0kJWV9Q7cEUmSpPcXw08K\nkY6ODs6ePUt3d3fvZ+3t7dTV1ZGZmdm7zbOrq4szZ84wceJE0tPTaWlpAeD8+fMATJgwgebmZjo7\nO0kmk5w9e7bPdRobG7l8+TJbtmyhoqKCzs5OUqkUBw8epLCwkN27dzNt2jRqa2s5duwYeXl57Nq1\niwULFlBTU0NDQwMPPPAAALm5ubz88su98/qkT5IkafC51VMKiY6ODh588EFeeeUVJkyYQHFxMdFo\nlJ6eHsrLy3n44Ye5cuUKRUVFdHV1sWDBAmbOnMnSpUt5+umnOXToEJMmTQJgzJgxrFq1iuLiYkaP\nHs3t27eJRCK9QRmPx6murqakpIS0tDTGjx/PtWvXiMfjbNiwgYyMDIYNG8azzz5LKpVi3bp1vPDC\nCySTSSorK9m+fTvLli0DYPny5axbt47ly5cTjUapqqoaqlsoSZIUWmlvbe0aSkEQTAJeO3bsWO/2\nL0m/nsbGRubPn9/neO7cuf2aq7u7mx07dvD444+TSqUoKSlhzZo13HfffYO1XEmSJN3h0qVLPPTQ\nQwCTE4nEjwd7fp/4SSGRl5fHnDlzOHnyJHPmzCE3N7ffc0UiEW7dukVhYSHRaJR4PM7s2bMHcbWS\nJEl6Jxl+UkjEYjHq6+s5ffo0ubm5xGKxAc1XUVFBRUXFIK1OkiRJQ8nwk0IkFov1e3unJEmSwsu3\nekqSJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJ\nkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIk\nhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmS3jdO\nnDjB/fffz4oVK3jsscdYtmwZhw8fHpS59+3bx3PPPTcocwVBMDwIgv13HBcGQfDi24z5myAIFvyy\n+SKDsipJkiRJeo/Iz8/n+eefB6Cjo4MVK1YwefJk7r333iFeWR+fAI4DBEGwDfifwPfeOhkEwRTg\nr4FxQM0vm8zwkyRJkvS+FYvFKCoq4siRIxw4cICmpiYAFi9eTGlpKevXr6egoIB58+bR2NjI4cOH\n2bRpE3V1dezZs4dRo0YRjUYpKCjoM29VVRXnzp3j+vXrzJgxg40bN9LU1MTmzZuJRCJkZGSwbds2\nWlpaqKyspKen561vzQZ+DCwGvvbmZ8eB/cDn7rhEJlAGrPtVfk63ekqSpFB7r2zr6unp4Yknnug9\n/vu//3s+//nP9x5/73vfY+nSpSxbtow///M/H5RrSnrD2LFjOXz4MJcuXaK2tpYXX3yRb33rWyQS\nibcd39raSk1NDXv37uWv/uqvuHXrVp/z7e3tZGVlsXPnTr75zW/yve99j6tXr3L06FEWLlzI17/+\ndZYvX86NGzc4fvw48XicL33pS299+8g3//feRCJxHiCRSPw/QOrOayQSiX9OJBI/+FV/Rp/4SZKk\n0HsvbOs6ffo0OTk5APzpn/4p3/nOd/qs74//+I/5yle+wvjx4/n93/99zp8/z0c/+tGhWq4UKq+/\n/jpLliwhFouRlpZGNBpl1qxZvPrqq33GpVJvtNeFCxeYMmUKGRkZAL3/7b5lxIgRtLa2UlFRwQc/\n+EFu3rxJV1cXq1evZvv27ZSWlvLhD3+YeDzOo48+yo4dO1i/fv1b394TBME9QPNg/ow+8ZMkSe8r\nd27r2rRpE0uXLmXp0qXs2rULgPXr19PY2AhAY2Nj7z/G6urqWLJkCaWlpZSVlbFv374+81ZVVfHZ\nz36WwsJCKisrAWhqauIzn/kMxcXF/N7v/R7t7e289tprLFu2jMcee4zi4mIuX74MQENDA7/1W78F\nQG5uLl/4whd6525vb+enP/0pEyZMIC0tjU9+8pMcP378rt4nKWw6OjpobGyks7Ozz+ft7e3U1dWR\nmZnZu82zq6uLM2fOMHHiRNLT02lpaQHg/PnzAEyYMIHm5mY6OztJJpOcPXu2z5yNjY1cvnyZLVu2\nUFFRQWdnJ6lUioMHD1JYWMju3buZNm0atbW1HDt2jLy8vDt3D6zmjW2eLw3mz+8TP0mS9L4zduxY\nampqCIKA2tpauru7KS4uJj8//23Hv7Wta//+/aSnp7Ny5co+5+/c1pVMJlm0aFGfbV2lpaXU19f3\n2da1du1aTp06RVtbG9nZ2TQ3NzN16lQACgoKOHHiRJ/5MzMze49jsRgXL168C3dGCqeOjg4efPBB\nTp48SU5ODunp6axYsYJhw4bR09NDeXk5Dz/8MFeuXKGoqIiuri4WLFjAzJkzWbp0KU8//TSHDh1i\n0qRJAIwZM4ZVq1ZRXFzM6NGjuX37NpFIhO7ubgDi8TjV1dWUlJSQlpbG+PHjuXbtGvF4nA0bNpCR\nkcGwYcN49tlnSaVSrFu3jmQy+dZyvwb8L2D7YN4Dw0+SJL3vvBu2dZWVlTFy5EjWrFnDxYsXGTdu\n3C9cb2ZmJh0dHb3HHR0dZGVlDdbtkEKvqamJkydPAnDmzBkaGxuZO3fuz41bt+7n35Py8Y9/nEOH\nDvX5rLu/ttf1AAAgAElEQVS7m2vXrrFv3z5SqRQlJSVkZ2dz33339Y755je/+bZrqa2t/bnP9u7d\ny6VLl3jooYcAvp9IJD79s2MSicS3gW+/zee/+7YX+hlu9ZQkSaH0bt/WtWvXLhYsWEBNTQ0NDQ08\n8MADv/BnyczMJBqNcuHCBVKpFN/5zneYPXv2IN4tKdzy8vKYM2cOAHPmzCE3N3dA80UiEW7dukVh\nYSFFRUV89KMffdf/N+kTP0mSFDrvhW1dL7zwAslkksrKSrZv386yZcv+25/pi1/8Ik899RQ9PT18\n8pOfZNasWXf7NkqhEYvFqK+v5/Tp0+Tm5hKLxQY8Z0VFBRUVFYOwundG2ltbGIZSEASTgNeOHTv2\n325zkCRJ+lU0NjYyf/78Psdvt63rV9Xd3c2OHTt4/PHHe7d1rVmzps+2LkkaiDu2ek5OJBI/Huz5\nfeInSZJC561tXSdPnhz0bV3RaJR4PP6u39YlSXcy/CRJUui4rUuS+jL8JElSKMVisQFt75SkMPGt\nnpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmS\nJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJ\nIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIkhZzh\nJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJ\nkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRykf5+YxAEw4BqYBZwGyhLJBI/uuP8KuBzQDfwp4lE\n4lsDXKskSZIkqR8G8sRvCfCBRCJxP7AeqHrrRBAEHwH+b+ATwP8ENgZBMGIgC5UkSZIk9c9Awu+T\nwBGARCLxT8DsO87NAb6bSCRuJxKJ/wR+BMQHcC1JkiRJUj8NJPyygP+847gnCILILzjXBowawLUk\nSZIkSf00kPC7AYy8c65EItH9C86NBK4P4FqSJEmSpH4aSPh9FygACIIgH3jljnMngblBEHwgCIJR\nwL3AuQFcS5IkSZLUT/1+qyfwt8CngiA4DqQBnw2CoAL4USKROBgEwZeBf+CNuPzDRCLROfDlSpIk\nSZJ+Xf0Ov0QikQRW/8zHP7zj/A5gR3/nlyRJkiQNDv+AuyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+\nkiRJkhRyhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIk\nSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkh\nZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEn\nSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmS\nJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRy\nhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZI0hE6cOMH9\n99/PihUreOyxx1i2bBmHDx8elLn37dvHc889Nyhz9fT08MQTT9DZ2Ul5eTnFxcWsWrWK1tZWAPbv\n389v//ZvU1xcTF1d3aBcU5I0eCJDvQBJkt7v8vPzef755wHo6OhgxYoVTJ48mXvvvXeIV/ZfTp8+\nTU5ODnv37mX69OmUl5fz0ksvUV1dzRNPPMGXv/xl9u3bR1ZWFr/7u7/L/fffz7hx44Z62ZKkNxl+\nkiS9i8RiMYqKijhy5AgHDhygqakJgMWLF1NaWsr69espKChg3rx5NDY2cvjwYTZt2kRdXR179uxh\n1KhRRKNRCgoK+sxbVVXFuXPnuH79OjNmzGDjxo00NTWxefNmIpEIGRkZbNu2jZaWFiorK4lEIiST\nSaqqqsjOzqahoYFHHnmErVu3UlZWBsC8efOorq7md37ndwiCgNGjRwPw8Y9/nH/+5382/CTpXcTw\nkyTpXWbs2LHU1NQQBAG1tbV0d3dTXFxMfn7+245vbW2lpqaG/fv3k56ezsqVK/ucb29vJysri507\nd5JMJlm0aBFXr17l6NGjLFy4kNLSUurr67lx4wbHjx8nHo+zdu1aTp06RVtbG9nZ2TQ3NzN16lTa\n29sZOXIk8EaktrW1MXHiRH70ox/x7//+78RiMf7xH/+RSZMm3e3bJEn6NRh+kiS9y7z++ussWbKE\nWCxGWloa0WiUWbNm8eqrr/YZl0qlALhw4QJTpkwhIyMDgJycnD7jRowYQWtrKxUVFXzwgx/k5s2b\ndHV1sXr1arZv305paSkf/vCHicfjPProo+zYsYOysjJGjhzJmjVruHjxYu/Tu8zMTDo6OoA3tqVm\nZWUxatQoKisrKS8vZ/To0cycOZPf+I3fuNu3SZL0a/DlLpIkDYGOjg4aGxvp7Ozs83l7ezt1dXVk\nZmb2bvPs6urizJkzTJw4kfT0dFpaWgA4f/48ABMmTKC5uZnOzk6SySRnz57tM2djYyOXL19my5Yt\nVFRU0NnZSSqV4uDBgxQWFrJ7926mTZtGbW0tx44dIy8vj127drFgwQJqampoaGjggQceACA3N5eX\nX365d968vDy6u7s5f/48L774Itu2baO5uZnc3Ny7efskSb8mn/hJkvQO6+jo4MEHH+TkyZPk5OSQ\nnp7OihUrGDZsGD09PZSXl/Pwww9z5coVioqK6OrqYsGCBcycOZOlS5fy9NNPc+jQod7tlGPGjGHV\nqlUUFxczevRobt++TSQSobu7G4B4PE51dTUlJSWkpaUxfvx4rl27RjweZ8OGDWRkZDBs2DCeffZZ\nUqkU69at44UXXiCZTFJZWcn27dtZtmwZAMuXL2fdunUsX76caDRKVVUVkcgb/5woLCxkxIgRfPaz\nn2XMmDFDcm8lSW8v7a1tIkMpCIJJwGvHjh3zF8ElSaHX2NjI/Pnz+xzPnTu33/N1d3ezY8cOHn/8\ncVKpFCUlJaxZs4b77rtvMJYrSXoHXLp0iYceeghgciKR+PFgz+8TP0mS3mF5eXnMmTOHkydPMmfO\nnAFvi4xEIty6dYvCwkKi0SjxeJzZs2cP0molSWFg+EmS9A6LxWLU19dz+vRpcnNzicViA56zoqKC\nioqKQVidJCmMDD9JkoZALBYb0PZOSZJ+Hb7VU5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5\nw0+SJEmSQs7wkyRJkqSQM/wkSZIkKeQMP0mSJEkKOcNPkiRJkkLO8JMkSZKkkDP8JEmSJCnkDD9J\nkiRJCjnDT5IkSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQo5w0+SJEmSQs7wkyRJkqSQM/wkSZIk\nKeQMP0mSJEkKOcNPkiRJkkIuMtQLeD84ceIETz75JFOnTiWVStHd3c3KlSspKCgY8Nz79u2jubmZ\np556asBz9fT0UF5ezpYtW1i7di0/+clPiMVibN68mTFjxvCtb32LXbt2MXz4cKZPn84XvvAFhg3z\n/zuQJEmS3u38V/s7JD8/n927d/P1r3+dr371q9TU1PCDH/xgqJfVx+nTp8nJyWHv3r1Mnz6dF198\nkSVLllBdXU1nZydbt27lr//6r/nGN75Be3s7DQ0NQ71kSZIkSb8Cn/gNgVgsRlFREUeOHOHAgQM0\nNTUBsHjxYkpLS1m/fj0FBQXMmzePxsZGDh8+zKZNm6irq2PPnj2MGjWKaDT6c08Mq6qqOHfuHNev\nX2fGjBls3LiRpqYmNm/eTCQSISMjg23bttHS0kJlZSWRSIRkMklVVRXZ2dk0NDTwyCOPsHXrVsrK\nygCYN28e1dXVpKen841vfIOMjAwAuru7GTFixDt74yRJkiT1i+E3RMaOHUtNTQ1BEFBbW0t3dzfF\nxcXk5+e/7fjW1lZqamrYv38/6enprFy5ss/59vZ2srKy2LlzJ8lkkkWLFnH16lWOHj3KwoULKS0t\npb6+nhs3bnD8+HHi8Thr167l1KlTtLW1kZ2dTXNzM1OnTqW9vZ2RI0cCb0RqW1sbw4YN4zd/8zcB\n2L17Nzdv3uQTn/jE3b1JkiRJkgaFWz2HyOuvv86SJUuYPXs2aWlpRKNRZs2axauvvtpnXCqVAuDC\nhQtMmTKFjIwMhg8fTk5OTp9xI0aMoLW1lYqKCp555hlu3rxJV1cXq1ev5tq1a5SWlnLkyBEikQiP\nPvooWVlZlJWVsWfPHoYPH87FixcZN24cAJmZmXR0dADQ0dFBVlYWAMlkks2bN/Pd736Xr3zlK6Sl\npd3t2yRJkiRpEBh+d1lHRwdnz56lu7u797P29nbq6urIzMzs3ebZ1dXFmTNnmDhxIunp6bS0tABw\n/vx5ACZMmEBzczOdnZ0kk0nOnj3b5zqNjY1cvnyZLVu2UFFRQWdnJ6lUioMHD1JYWMju3buZNm0a\ntbW1HDt2jLy8PHbt2sWCBQuoqamhoaGBBx54AIDc3Fxefvnl3nnz8vIAeOaZZ7h9+zbV1dW9Wz4l\nSZIkvfu51fMu6ujo4MEHH+SVV15hwoQJFBcXE41Ge9+e+fDDD3PlyhWKioro6upiwYIFzJw5k6VL\nl/L0009z6NAhJk2aBMCYMWNYtWoVxcXFjB49mtu3bxOJRHqDMh6PU11dTUlJCWlpaYwfP55r164R\nj8fZsGEDGRkZDBs2jGeffZZUKsW6det44YUXSCaTVFZWsn37dpYtWwbA8uXLWbduHcuXLycajVJV\nVcX3v/99/uZv/obZs2dTWloKwMqVK/nUpz41JPdWkiRJ0q8u7a2thEMpCIJJwGvHjh3r3W4YBo2N\njcyfP7/P8dy5c/s1V3d3Nzt27ODxxx8nlUpRUlLCmjVruO+++wZruZIkSZKGyKVLl3jooYcAJicS\niR8P9vw+8buL8vLymDNnDidPnmTOnDnk5ub2e65IJMKtW7coLCwkGo0Sj8eZPXv2IK5WkiRJUlgZ\nfndRLBajvr6e06dPk5ubSywWG9B8FRUVVFRUDNLqJEmSJL1fGH53WSwW6/f2TkmSJEkaDL7VU5Ik\nSZJCzvCTJEmSpJAz/CRJkiQp5Aw/SZIkSQq5fr3cJQiCDODrwP8BtAGliUSi5WfGfAn45JvX+MtE\nIrFjgGuVJEmSJPVDf5/4PQ68kkgk5gJ/DWy482QQBL8FTE0kEvfzRvytC4LgNwa0UkmSJElSv/Q3\n/D4JHHnz678D/sfPnP9H4H+9+XUKGA509fNakiRJkqQB+KVbPYMg+D1gzc98fBX4zze/bgNG3Xky\nkUh0Ap1BEESBXbyx1bN94MuVJEmSJP26fmn4JRKJrwJfvfOzIAj2ASPfPBwJXP/Z73tza+ffAN9O\nJBIbB75USZIkSVJ/9Her53eBgje/Xgj8w50n33z5yzHgrxKJxJ/0f3mSJEmSpIHq11s9gReAXUEQ\nfAf4KVAMEATBn/HGU75PAPcAq4IgWPXm93w2kUi8NsD1SpIkSZJ+Tf0Kv0QicRNY+jaf/8GbX54E\nnh/AuiRJkiRJg8Q/4C5JkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElS\nyBl+kiRJkhRyhp8kSZIkhZzhJ0mSJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4\nSZIkSVLIGX6SJEmSFHKGnyRJkiSFnOEnSZIkSSFn+EmSJElSyBl+kiRJkhRyhp8kSZIkhZzhJ0mS\nJEkhZ/hJkiRJUsgZfpIkSZIUcoafJEmSJIWc4SdJkiRJIWf4SZIkSVLIGX6SJEmSFHKGnyRJkiSF\nXGSoFyBJkiRJJ06c4Mknn2Tq1KmkUim6u7tZuXIlBQUFA5573759NDc389RTTw14rp6eHsrLy9my\nZQtr167lJz/5CbFYjM2bNzNmzBi+9rWvUVdXx5gxYwD44he/yD333DPg6w6U4SdJkiTpXSE/P5/n\nn38egI6ODlasWMHkyZO59957h3hl/+X06dPk5OSwd+9epk+fTnl5OS+99BLV1dVs2LCBc+fOsXnz\nZj72sY8N9VL7MPwkSZIkvevEYjGKioo4cuQIBw4coKmpCYDFixdTWlrK+vXrKSgoYN68eTQ2NnL4\n8GE2bdpEXV0de/bsYdSoUUSj0Z97YlhVVcW5c+e4fv06M2bMYOPGjTQ1NbF582YikQgZGRls27aN\nlpYWKisriUQiJJNJqqqqyM7OpqGhgUceeYStW7dSVlYGwLx586iurgbg+9//Pn/5l39JS0sLDzzw\nAJ/73Ofe2Rv3Cxh+kiRJkt6Vxo4dS01NDUEQUFtbS3d3N8XFxeTn57/t+NbWVmpqati/fz/p6ems\nXLmyz/n29naysrLYuXMnyWSSRYsWcfXqVY4ePcrChQspLS2lvr6eGzducPz4ceLxOGvXruXUqVO0\ntbWRnZ1Nc3MzU6dOpb29nZEjRwJvRGpbWxsAixYtori4mMz/v727j63qvhM0/tjca8a5xmGJNF20\nQHhJcoJYXYQNFmzLS2GWBUIqTEHGNuDOFlqIwkq2JmPM0mgXzSrJTJyQUWPo4m6GyaBE0LIEGkLb\nAMUzZRaGlwlESKcqbgUICN66afAFExvf/cNAcBZIaoxtDs/nr+t7j3/3q6ufwI/P4ZCTw7PPPsve\nvXv5+te/fm8/qC/Bm7tIkiRJ6pXOnj3LnDlzGDt2LBkZGcTjcUaPHs3Jkyc7HJdOpwE4deoUI0aM\nIDs7mz59+jBmzJgOx/Xt25fGxkYqKip4/vnnuXTpEi0tLSxbtowLFy5QVlbGrl27iMVizJs3j9zc\nXJYsWcKmTZvo06cPp0+fZtCgQQDk5OSQSqWA9stSc3NzSafTlJWVMWDAALKyspg8eTInTpzohk/q\nixl+kiRJknpMKpWirq6O5ubmDs83NTWxZcsWcnJyblzm2dLSwtGjR3n00UfJysqioaEB4EZcDRky\nhPr6epqbm2lra+PYsWMd1qyrq+PcuXO88sorVFRU0NzcTDqdZvv27RQWFvLmm2/y+OOPs3nzZnbv\n3k1+fj4bN25kxowZ1NbWsnfvXqZMmQJAXl4e+/btu7Fufn4+TU1NzJ49m1QqRTqd5sCBA73m3/p5\nqackSZKkHpFKpZg6dSoHDx5kzJgxZGVlsWjRIjIzM2/cPXP69OmcP3+eoqIiWlpamDFjBqNGjWL+\n/PmsWrWKHTt2MHToUAAGDBjA0qVLKSkpoX///ly5coVYLEZraysAyWSSmpoaSktLycjIYPDgwVy4\ncIFkMsnq1avJzs4mMzOTNWvWkE6nqaysZN26dbS1tVFVVcX69etZsGABAMXFxVRWVlJcXEw8Hqe6\nupp+/fpRXl7O4sWLycrKYsKECUyePLmnPt4OMq6fFu1JQRAMBX6ze/fuG6dOJUmSJEVbXV1dhzCq\nq6tj4sSJnV6vtbWVDRs2sHz5ctLpNKWlpZSXlzNu3LiuGPeeOnPmDNOmTQMYFobhb7t6fc/4SZIk\nSeoR+fn5FBQUcPDgQQoKCsjLy7ur9WKxGJcvX6awsJB4PE4ymWTs2LFdNO39zfCTJEmS1CMSiQR7\n9uzhyJEj5OXlkUgk7nrNiooKKioqumC6aDH8JEmSJPWYRCJxV5d36svxrp6SJEmSFHGGnyRJkiRF\nnOEnSZIkSRFn+EmSJElSxBl+kiRJkhRxhp8kSZIkRZzhJ0mSJEkRZ/hJkiRJUsQZfpIkSZIUcYaf\nJEmSJEWc4SdJkiRJEWf4SZIkSVLEGX6SJEmSFHGGnyRJkiRFnOEnSZIkSRFn+EmSJElSxBl+kiRJ\nkhRxhp8kSZIkRZzhJ0mSJEkRZ/hJkiRJUsQZfpIkSZIUcYafJEmSJEWc4SdJkiRJEWf4SZIkSVLE\nGX6SJEmSFHGGnyRJkiRFnOEnSZIkSRFn+EmSJElSxBl+kiRJkhRxhp8kSZIkRZzhJ0mSJEkRZ/hJ\nkiRJUsQZfpIkSZIUcYafJEmSJEWc4SdJkiRJEWf4SZIkSVLEGX6SJEmSFHGGnyRJkiRFnOEnSZIk\nSRFn+EmSJElSxBl+kiRJkhRxhp8kSZIkRZzhJ0mSJEkRZ/hJkiRJUsQZfpIkSZIUcYafJEmSJEWc\n4SdJkiRJEWf4SZIkSVLEGX6SJEmSFHGGnyRJkiRFnOEnSZIkSRFn+EmSJElSxBl+kiRJkhRxhp8k\nSZIkRZzhJ0mSJEkRF+vMNwVBkA38A/CnwEWgLAzDhlsc9xCwH1gZhuGuuxlUkiRJktQ5nT3jtxw4\nHobhRODvgdW3Oe51IN3J95AkSZIkdYHOht/XgOtn8N4D/uzzBwRB8Be0n+37oJPvId0XDhw4wIQJ\nE1i0aBELFy5kwYIF7Ny5s0vW3rp1Ky+//HKXrHX16lWeeeYZmpubWbFiBSUlJSxdupTGxsYOx33v\ne9/rsveUJElS7/CFl3oGQfBtoPxzT38E/OHa44vAw5/7nmnA42EYfjcIgq92xaBSbzZ+/HheffVV\nAFKpFIsWLWLYsGGMHDmyhyf7zJEjRxgzZgxvvfUWTzzxBCtWrODdd9+lpqaG1avbT9q//fbb/OpX\nv2LcuHE9PK0kSZK60heGXxiGPwR+ePNzQRBsBfpd+7If8PHnvu3bwKNBEPwCeBLIC4LgfBiG/3rX\nE0u9XCKRoKioiF27dvHOO+9w+PBhAGbPnk1ZWRkrV65k1qxZTJo0ibq6Onbu3MmLL77Ili1b2LRp\nEw8//DDxeJxZs2Z1WLe6upoPP/yQjz/+mCeffJIXXniBw4cP89JLLxGLxcjOzua1116joaGBqqoq\nYrEYbW1tVFdXM3DgQPbu3cvcuXNZu3YtS5YsAWDSpEnU1NQA7WH4wQcfUFRURH19ffd+aJIkSbqn\nOnVzF+CXwCzgIDAT+MebXwzDsOT64yAI/g542+jTg+SRRx6htraWIAjYvHkzra2tlJSUMH78+Fse\n39jYSG1tLdu2bSMrK4vFixd3eL2pqYnc3FzeeOMN2traeOqpp/joo494//33mTlzJmVlZezZs4dP\nPvmE/fv3k0wmee655zh06BAXL15k4MCB1NfX89hjj9HU1ES/fu2/t0kkEly8eJELFy7w+uuv8/3v\nf5/33nvvnn8+kiRJ6l6dDb91wMYgCP4J+BQoAQiC4K+BH4VheLCL5pPuS2fPnmXOnDkkEgkyMjKI\nx+OMHj2akydPdjgunW6/99GpU6cYMWIE2dnZAIwZM6bDcX379qWxsZGKigoeeughLl26REtLC8uW\nLWP9+vWUlZXxla98hWQyybx589iwYQNLliyhX79+lJeXc/r0aQYNGgRATk4OqVQKaL8sNTc3l127\ndvH73/+e73znOzQ0NNDc3Mzw4cOZO3fuvf6oJEmS1A06FX5hGF4C5t/i+b+8xXPf6sx7SPeDVCrF\nsWPHaG1tvfFcU1MTW7ZsYd68eRw6dIhvfetbtLS0cPToUQoLC8nKyqKhof1/Pzlx4gQAQ4YMob6+\nnubmZrKysjh27BjDhw+/sWZdXR3nzp1j7dq1NDY28vOf/5x0Os327dspLCyksrKSH/zgB2zevJnh\nw4eTn5/Ps88+y09+8hNqa2sZOXIkU6ZMASAvL499+/aRTCapq6sjPz+fxYsX3zjLuHXrVurr640+\nSZKkCOnsGT/pgZdKpZg6dSrHjx9nyJAhlJSUEI/HuXr1KitWrGD69OmcP3+eoqIiWlpamDFjBqNG\njWL+/PmsWrWKHTt2MHToUAAGDBjA0qVLKSkpoX///ly5coVYLHYjKJPJJDU1NZSWlpKRkcHgwYO5\ncOECyWSS1atXk52dTWZmJmvWrCGdTlNZWcm6detoa2ujqqqK9evXs2DBAgCKi4uprKykuLiYeDxO\ndXV1T32EkiRJ6iYZ1y8160lBEAwFfrN79+4bl6NJvV1dXR2TJ0/u8PXEiRM7tVZraysbNmxg+fLl\npNNpSktLKS8v9+6akiRJD4gzZ84wbdo0gGFhGP62q9f3jJ/USfn5+RQUFHDw4EEKCgrIy8vr9Fqx\nWIzLly9TWFhIPB4nmUwyduzYLpxWkiRJDzLDT+qkRCLBnj17OHLkCHl5eSQSibtar6KigoqKii6a\nTpIkSfqM4SfdhUQi0enLOyVJkqTuktnTA0iSJEmS7i3DT5IkSZIizvCTJEmSpIgz/CRJkiQp4gw/\nSZIkSYo4w0+SJEmSIs7wkyRJkqSIM/wkSZIkKeIMP0mSJEmKOMNPkiRJkiLO8JMkSZKkiDP8JEmS\nJCniDD9JkiRJijjDT5IkSZIizvCTJEmSpIgz/CRJkiQp4gw/SZIkSYo4w0+SJEmSIs7wkyRJkqSI\nM/wkSZIkKeIMP0mSJEmKOMNPkiRJkiLO8JMk9WoHDhxgwoQJLFq0iIULF7JgwQJ27tzZJWtv3bqV\nl19+uUvWunr1Ks888wzNzc2sWLGCkpISli5dSmNjIwA//elP+eY3v8m8efPYuHFjl7ynJElfVqyn\nB5Ak6YuMHz+eV199FYBUKsWiRYsYNmwYI0eO7OHJPnPkyBHGjBnDW2+9xRNPPMGKFSt49913qamp\noaqqiurqan784x/z0EMPMWvWLJ5++mkGDBjQ02NLkh4Qhp8k6b6SSCQoKipi165dvPPOOxw+fBiA\n2bNnU1ZWxsqVK5k1axaTJk2irq6OnTt38uKLL7JlyxY2bdrEww8/TDweZ9asWR3Wra6u5sMPP+Tj\njz/mySef5IUXXuDw4cO89NJLxGIxsrOzee2112hoaKCqqopYLEZbWxvV1dUMHDiQvXv3MnfuXNau\nXQSMhX4AAAg5SURBVMuSJUsAmDRpEjU1NfTp04edO3cSi8X43e9+R1tbG1lZWd3+2UmSHlyGnyTp\nvvPII49QW1tLEARs3ryZ1tZWSkpKGD9+/C2Pb2xspLa2lm3btpGVlcXixYs7vN7U1ERubi5vvPEG\nbW1tPPXUU3z00Ue8//77zJw5k7KyMvbs2cMnn3zC/v37SSaTPPfccxw6dIiLFy8ycOBA6uvreeyx\nx2hqaqJfv35Ae6RevHgRgFgsxs9+9jPWrFnD5MmTyc7OvrcfkiRJN/Hf+EmS7jtnz55lzpw5jB07\nloyMDOLxOKNHj+bkyZMdjkun0wCcOnWKESNGkJ2dTZ8+fRgzZkyH4/r27UtjYyMVFRU8//zzXLp0\niZaWFpYtW8aFCxcoKytj165dxGIx5s2bR25uLkuWLGHTpk306dOH06dPM2jQIABycnJIpVJA+2Wp\nubm5N95n+vTp1NXV0dLSwrZt2+7lRyRJUgeGnySp10qlUhw7dozW1tYbzzU1NbFlyxZycnJuXObZ\n0tLC0aNHefTRR8nKyqKhoQGAEydOADBkyBDq6+tpbm6mra2NY8eOdXifuro6zp07xyuvvEJFRQXN\nzc2k02m2b99OYWEhb775Jo8//jibN29m9+7d5Ofns3HjRmbMmEFtbS179+5lypQpAOTl5bFv374b\n6+bn59PU1MTChQv59NNPyczMJDs7m8xM/wqWJHUfL/WUJPVKqVSKqVOncvz4cYYMGUJJSQnxeJyr\nV6+yYsUKpk+fzvnz5ykqKqKlpYUZM2YwatQo5s+fz6pVq9ixYwdDhw4FYMCAASxdupSSkhL69+/P\nlStXiMViN4IymUxSU1NDaWkpGRkZDB48mAsXLpBMJlm9evWNUFuzZg3pdJrKykrWrVtHW1sbVVVV\nrF+/ngULFgBQXFxMZWUlxcXFxONxqqurycnJ4emnn6a0tJRYLEYQBHzjG9/oqY9WkvQAyrh+GUxP\nCoJgKPCb3bt337hURpL0YKurq2Py5Mkdvp44cWKn1mptbWXDhg0sX76cdDpNaWkp5eXljBs3rqvG\nlSTprpw5c4Zp06YBDAvD8Lddvb5n/CRJvVJ+fj4FBQUcPHiQgoIC8vLyOr1WLBbj8uXLFBYWEo/H\nSSaTjB07tgunlSSpdzP8JEm9UiKRYM+ePRw5coS8vDwSicRdrVdRUUFFRUUXTSdJ0v3F8JMk9VqJ\nRKLTl3dKkqTPeEsxSZIkSYo4w0+SJEmSIs7wkyRJkqSIM/wkSZIkKeIMP0mSJEmKOMNPkiRJkiLO\n8JMkSZKkiDP8JEmSJCniDD9JkiRJijjDT5IkSZIizvCTJEmSpIgz/CRJkiQp4gw/SZIkSYo4w0+S\nJEmSIs7wkyRJkqSIM/wkSZIkKeIMP0mSJEmKOMNPkiRJkiLO8JMkSZKkiDP8JEmSJCniYj09wDV9\nAM6fP9/Tc0iSJElSt7uphfrci/V7S/gNBCgtLe3pOSRJkiSpJw0ETnb1or0l/P4FmAicA6728CyS\nJEmS1N360B59/3IvFs9Ip9P3Yl1JkiRJUi/hzV0kSZIkKeIMP0mSJEmKOMNPkiRJkiLO8JMkSZKk\niOstd/XsFYIgyAb+AfhT4CJQFoZhwy2OewjYD6wMw3BX904pdc6X2d9BEPwN8DXa/2z4n2EYbuj2\nQaU/QhAEmUANMBq4AiwJw/DXN72+FPgu0Ar8VRiGP+mRQaVO+BL7uxxYcO3LnWEY/vfun1LqnC/a\n3zcd8y7wThiG67t/ymjxjF9Hy4HjYRhOBP4eWH2b414HvB2q7jd33N9BEHwdeCwMwwm0x19lEAT/\npvvHlP4oc4A/ubZvVwLV118IguDfAv8F+Crwn4AXgiDo2yNTSp1zp/09HCgF/gMwHpgeBEGyR6aU\nOue2+/smfwX4s0gXMfw6+hpw/Qzee8Cfff6AIAj+gvazfR9041xSV/ii/f3PwH++9jhN+/8l09I9\no0mddmNfh2H4f4CxN71WAPwyDMMrYRj+Afg14A/Gup/caX+fBmaEYXg1DMM0EAeau39EqdPutL8J\ngmAe0MZnP7voLj2wl3oGQfBtoPxzT38E/OHa44vAw5/7nmnA42EYfjcIgq/e+ymlzunM/g7DsBlo\nDoIgDmyk/VLPpns9q3SXcvlsXwNcDYIgFoZh6y1e+//2vdTL3XZ/h2HYAvzfIAgygL8BjoZh+Kse\nmVLqnNvu7yAI/j1QAswDnu+R6SLogQ2/MAx/CPzw5ueCINgK9Lv2ZT/g489927eBR4Mg+AXwJJAX\nBMH5MAz/9R6PK/1ROrm/uXZp54+AX4Rh+MK9nlPqAp/w2b4GyLwWfbd67Zb7XurF7rS/CYLgT4D/\nRfsvNZ7p5tmku3Wn/b0Y+HfAHmAo8GkQBL/13hp354ENv9v4JTALOAjMBP7x5hfDMCy5/jgIgr8D\n3jb6dB+54/6+dvOX3UB1GIabun88qVN+CTwNbA6CYDxw/KbXDgL/49oPx32BkcCH3T+i1Gm33d/X\nzvS9A+wJw/ClHppPuhu33d9hGP7l9cdBEPw34LzRd/cMv47WARuDIPgn4FPaTzETBMFfAz8Kw/Bg\nTw4n3aU77m/ab4AxHFh67U6IAH8ehuFvemJY6Uv638B/DIJgP5AB/HkQBBXAr8Mw3B4Ewd/S/kuO\nTOC/XrukWbpf3HZ/0/7vsCcDfYMgmHnt+KowDP+5Z0aV/mh3/PO7Z0eLpox02ptTSpIkSVKUeVdP\nSZIkSYo4w0+SJEmSIs7wkyRJkqSIM/wkSZIkKeIMP0mSJEmKOMNPkiRJkiLO8JMkSZKkiDP8JEmS\nJCni/h+yekUWsfpadgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# reduce using MDS \n", "from sklearn.manifold import MDS\n", "mds = MDS(n_components=2, dissimilarity='precomputed', random_state=1)\n", "pos = mds.fit_transform(dist_matrix)\n", "\n", "# plot!\n", "import matplotlib.pyplot as plt\n", "xs, ys = pos[:, 0], pos[:, 1]\n", "fig = plt.figure(figsize=(15, 10),)\n", "\n", "for x, y, text in zip(xs, ys, texts):\n", " plt.scatter(x, y, c='black',s=10)\n", " plt.text(x, y, text)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# display the similarity matrix (white=similar, dark blue=different)\n", "sn.heatmap(dist_matrix, cmap='Blues',linewidths=.5)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nr2fHzqFTjDa98Jfm37/gA8MGWcHt731ODvytTw0dY6Qvve4X8x9e9pGhY4z01XOPSZLs89z3DZxk\ntDve//zs95JLho4x0q3vODYzR7116BgjzX38FUkysRnvzTcuTskBADQoTAAADQoTAECDwgQA0KAw\nAQA0KEwAAA0KEwBAg8IEANCgMAEANChMAAANChMAQIPCBADQoDABADQoTAAADQoTAECDwgQAbCql\nlH3XOmZqHEEAACZFKeURSza9t5TygiSptd60mmMoTADARvdnSb6T5NYkXZKS5B1J+iT/z2oOsK6F\nqeu6U5NMr+fX3Oz6vp8dOgMADOygJG9P8ge11j8tpVxRaz1iLQdY7xmmaU/gAMB6qrV+vZTyrCRv\nKqX85/tzDIu+AYANr9a6s9b6ysyflltz/7GGCQDYNGqtFya5cK3jzDABADQoTAAADQoTAECDwgQA\n0KAwAQA0KEwAAA0KEwBAg8IEANCgMAEANChMAAANChMAQIPCBADQoDABADQoTAAADQoTAEBD1/f9\n2gd13Wzf97PrNY5dYu0PNADsXrpxHdgMEwBAw9TQAVg/M8deMHSEZc1dckKS5IBTtg+cZLRbtm3N\nw0768NAxRrrtvGfk37/gA0PHGOn29z4nSbJj58BBVjA9lRzyhs8MHWOkq199ePZ7ySVDxxjp1ncc\nmyR5/FuuGjjJaFeefGge89tXDB1jpOtee8TE/51Jkof/yqUDJ1neP/7B08d6fDNMAAANChMAQIPC\nBADQoDABADQoTAAADQoTAECDwgQA0KAwAQA07PILV3Zdd2qS6RG799/VXw8AYNzGcaXv6VHvF9d1\n3bLbAQAmmVNyAAANChMAQIPCBADQoDABADQoTAAADQoTALCplFLW3H/GcVkBAICJUkr5ySRvTnJQ\nkp0Lpen6JCfXWm9qjVeYAIDN4Pwkr6m1/uW9G0opByd5d5JDW4MnujA1rhrOKoy6iCgAbDLTi8tS\nktRarymlrGrwRBemrHDVcACANfhSKeVdSS5PckeSvZI8NcnfrGbwpBcmAIBd4WVJjklyWJK9k9yZ\n5GNJLl3NYIUJANjwaq195svRqgrSUi4rAADQoDABADQoTAAADQoTAECDwgQA0KAwAQA0KEwAAA0K\nEwBAg8IEANCgMAEANChMAAANChMAQIPCBADQoDABADR0fd+vfVDXzfZ9P7sr9+2K+7OitT/QALB7\n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\nMAEANPz/yow1JQ+HZasAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# cluster the chapters together\n", "sn.clustermap(dist_matrix,cmap='Blues',fmt='g',linewidths=.5)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.5" } }, "nbformat": 4, "nbformat_minor": 2 }