{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "The documents to be explored are from fictions of three authors.\n", "- AChristmasCarol_Dickens.txt\n", "- ATaleofTwoCities_Dickens.txt\n", "- GreatExpectations_Dickens.txt\n", "\n", "\n", "- Emma_Austen.txt\n", "- Persuasion_Austen.txt\n", "- PrideandPrejudice_Austen.txt\n", "\n", "\n", "- HenryV_Shakespeare.txt\n", "- Macbeth_Shakespeare.txt\n", "- Richard3_Shakespeare.txt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- We will first take a look at the length of each text.\n", "- Next, we will measure and visualize the distance of the texts.\n", "- Last, we will generate a dendrogram to show the authorship grouping." ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "import sklearn.feature_extraction.text as text\n", "\n", "data_dir = 'Fictions/'\n", "\n", "filenames = np.array(sorted(os.listdir(data_dir)))\n", "\n", "filenames_with_path = [os.path.join(data_dir, fn) for fn in filenames] # join the path with filenames" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Fictions/AChristmasCarol_Dickens.txt',\n", " 'Fictions/ATaleofTwoCities_Dickens.txt',\n", " 'Fictions/Emma_Austen.txt',\n", " 'Fictions/GreatExpectations_Dickens.txt',\n", " 'Fictions/HenryV_Shakespeare.txt',\n", " 'Fictions/Macbeth_Shakespeare.txt',\n", " 'Fictions/Persuasion_Austen.txt',\n", " 'Fictions/PrideandPrejudice_Austen.txt',\n", " 'Fictions/Richard3_Shakespeare.txt']" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filenames_with_path" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": true }, "outputs": [], "source": [ "vectorizer = text.CountVectorizer(input='filename')" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dtm = vectorizer.fit_transform(filenames_with_path)\n" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": true }, "outputs": [], "source": [ "vocab = np.array(vectorizer.get_feature_names())" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 31549]\n", " [135479]\n", " [157653]\n", " [179083]\n", " [ 28605]\n", " [ 19700]\n", " [ 83924]\n", " [121170]\n", " [ 33849]]\n" ] } ], "source": [ "# sum over rows to calculate lengths(the numbers in a row are word frequency of a document,so sum the numbers to get the word count of each document)\n", "lengths = np.sum(dtm, axis=1)\n", "print lengths\n", "\n" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 4., 0., 0., 0., 1., 0., 1., 1., 1., 1.]),\n", " array([ 19700. , 35638.3, 51576.6, 67514.9, 83453.2, 99391.5,\n", " 115329.8, 131268.1, 147206.4, 163144.7, 179083. ]),\n", " )" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "# plot histogragh\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "plt.hist(lengths,edgecolor='black',facecolor='blue')\n", "\n" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.title(\"Fiction length in words\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(179083, 'GreatExpectations_Dickens.txt')" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# find the longest and the shortest texts\n", "\n", "(np.max(lengths), filenames[np.argmax(lengths)])" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(19700, 'Macbeth_Shakespeare.txt')" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(np.min(lengths), filenames[np.argmin(lengths)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Measure of distance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Multidimensional scaling\n", "\n", "Multidimensional scaling (MDS) seeks a low-dimensional representation of the data in which the distances respect well the distances in the original high-dimensional space." ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.manifold import MDS\n", "from sklearn.metrics.pairwise import cosine_similarity" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dist = 1 - cosine_similarity(dtm)" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mds = MDS(n_components=2, dissimilarity=\"precomputed\", random_state=1)\n", "pos = mds.fit_transform(dist) # shape (n_components, n_samples)\n" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# create very short names for plotting\n", "# filenames have form: AChristmasCarol_Dickens.txt\n", "\n", "authors = [] \n", "names = []" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for fn in filenames:\n", " author = fn.split('_')[1]\n", " authors.append(author)\n", " names.append(fn)" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plt.figure(figsize=(11, 7)) " ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Austen.txt', 'Dickens.txt', 'Shakespeare.txt']\n" ] } ], "source": [ "xs, ys = pos[:, 0], pos[:, 1]\n", "authors_unique = sorted(set(authors)) # get unique authors\n", "print authors_unique" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "colors = [authors_unique.index(a) for a in authors] # get a unique color for texts of each author \n", "\n", "plt.scatter(xs, ys,c=colors,cmap='viridis')\n" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for x, y, name in zip(xs, ys, names):\n", " plt.text(x, y, name, alpha=0.5, fontsize=10)" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1QAAAHwCAYAAAChcy6MAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlUVGei9/vvU8WMCAgICoIiggOKCokajcYhzkGj6cRo\nt5mcYqdve/r8cftm3XXPm/ddx/fcc8/pYw9RO1ObTkxMq92O0USj0SQ4oVFBDYoKDiigyCAIBVX7\n/oFUg4BDhbTR8/us5ZLa+9l7P7VB2b9nKmNZFiIiIiIiInLvbPe7AiIiIiIiIg8qBSoREREREREP\nKVCJiIiIiIh4SIFKRERERETEQwpUIiIiIiIiHlKgEhERERER8ZAClYiIiIiIiIcUqERERERERDyk\nQCUiIiIiIuIhr/tdgbYUHh5ude3a9X5XQ0RERETkgXPw4MErlmVF3O96PGgeqkDVtWtXMjMz73c1\nREREREQeOMaY/PtdhweRhvyJiIiIiIh4SIFKRERERETEQwpUIiIiIiIiHlKgEhERERER8ZAClYiI\niIiIiIcUqERERERERDykQCUiIiIiIuIhBSoREREREREPKVCJiIiIiIh4SIFKRERERETEQwpUIiIi\nIiIiHlKgEhERERER8ZAClYiIiIiIiIcUqERERERERDykQCUiIiIiIuIhBSoREREREREPKVCJiIiI\niIh4SIFKRERERETEQwpUIiIiIiIiHlKgEhERERER8ZAClYiIiIiIiIcUqERERERERDykQCUiIiIi\nIuIhBSoREREREREPKVCJiIiIiIh4SIFKRERERETEQwpUIiIiIiIiHlKgEhERERER8VCbBCpjzHhj\nTI4xJtcY8+sW9htjzO9u7j9qjBl4c3uSMeZwoz/lxphFN/f9D2PMxUb7JrZFXUVERERERNqK1/c9\ngTHGDrwJPAlcAA4YYzZYlnW8UbEJQI+bfwYBy4BBlmXlAP0bneci8LdGx/2XZVn/8X3rKCIiIiIi\n8kNoix6qR4Fcy7LOWJblAFYBU24pMwX4s1VvLxBijOl0S5nRwGnLsvLboE4iIiIiIiI/uLYIVNHA\n+UavL9zcdq9lZgAf37LtFzeHCL5njAlt6eLGmHnGmExjTGZxcfG9115ERERERMRDP4pFKYwxPkA6\nsLrR5mVAPPVDAi8B/9nSsZZlvWVZVpplWWkRERE/eF1FREREREQafO85VNTPe+rS6HXMzW33UmYC\n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\nsAqYckuZKcCfrXp7gRBjTKc7nHcK8P7Nr98HprZBXUVERERERNpMWwSqaOB8o9cXbm672zIWsN0Y\nc9AYM69RmUjLsho+kvsyENnSxY0x84wxmcaYzOLiYk/fg4iIiIiIyD37MSxKMcyyrP7UDwv8uTFm\n+K0FrPq13Vtc392yrLcsy0qzLCstIiLiB66qiIiIiIjI37VFoLoIdGn0OubmtrsqY1lWw99FwN+o\nH0IIUNgwLPDm30VtUFcREREREZE20xaB6gDQwxjTzRjjA8wANtxSZgMw++Zqf4OBMsuyLhljAo0x\nQQDGmEBgLJDd6JgXbn79ArC+DeoqIiIiIiLSZr73B/tallVnjHkN+AywA+9ZlnXMGLPg5v7lwKfA\nRCAXqAJeunl4JPA3Y0xDXT6yLGvrzX3/BvzFGPMKkA88+33rKiIiIiIi0pZM/fSkh0NaWpqVmZl5\n54IiIiIiItKEMebgLR9jJHfhx7AohYiIiIiIyANJgUpERERERMRDClQiIiIiIiIeUqASERERERHx\nkAKViIiIiIiIhxSoREREREREPKRAJSIiIiIi4iEFKhEREREREQ8pUImIiIiIiHhIgUpERERERMRD\nClQiIiIiIiIeUqASERERERHxkAKViIiIiIiIhxSoREREREREPKRAJSIiIiIi4iEFKhEREREREQ8p\nUImIiIiIiHhIgUpERERERMRDClQiIiIiIiIeUqASERERERHxkAKViIiIiIiIhxSoREREREREPKRA\nJSIiIiIi4iEFKhEREREREQ8pUImIiIiIiHhIgUpERERERMRDClQiIiIiIiIeUqASERERERHxkAKV\niIiIiIiIhxSoREREREREPKRAJSIiIiIi4iEFKhEREREREQ8pUImIiIiIiHhIgUpERERERMRDClQi\nIiIiIiIeUqASERERERHxkAKViIiIiIiIhxSoREREREREPKRAJSIiIiIi4iEFKhEREREREQ8pUImI\niIiIiHhIgUpERERERMRDClQiIiIiIiIeUqASERERERHxkAKViIiIiIiIhxSoREREREREPKRAJSIi\nIiIi4iEFKhEREREREQ8pUImIiIiIiHhIgUpERERERMRDClQiIiIiIiIeUqASERERERHxkAKViIiI\niIiIhxSoREREREREPNQmgcoYM94Yk2OMyTXG/LqF/cYY87ub+48aYwbe3N7FGLPTGHPcGHPMGPPL\n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\nLY7uezr9+/f/Ur/dnYxtODnZt29fFixYAOz6pC5A//79G/t//PHHnHLKKRQUFNCtWzdKS0ubHfea\na66hvr6eyZMnM2/evGZhq6kTTzyRX/ziFyxZsoTFixdz7733cvvttwPQr1+/pm8tqCUXdFYCpRFx\nLlAEdAY+5e+B6ipgfkppan65GOhNLgBB7urQamAbuStRIyPiI3K32TWYn7/i9XlEbAB6AScAfSKi\n4VaTTuQCUxVwUUQcR+7qUXfg8HybTSml1a3UsVsppU8j4n3geuDfU0p1rfVpyln+dGio37SrDQw9\n/SQuvPDCZpe3IffDrOHszJw5cxrXn3DCCY1XVoBmIWz+/PmN/xYXFze2nz59emObyspKIBcatm/f\nnunprFmzpjEopJRYu3YtRx555G777Or5QO6H+FVXXcWjjz5KdXU1hx12GD169Gh8PimlxrrXr19P\ncXExw4YNo0uXLlRVVQG5XxZbt26ltraWhQsXUlJSQv/+/fnwww/ZsmULkPtebdy4ke3bt1NUVESn\nTp3YvHnzLmfo210dTe38vdy4cSPvvPMO48aNY8mSJaxevbrFdpIk7ZUdi6BuFfD3v6eLOgTjxnTl\nl7fWk1Livffe26tdNpxMbXoStOGk7u23387111/f4knHPVVQUMCQIUMaw9qudO7cmVNOOYVRo0bR\nr18/Pv7442b1Nd1l/urQlcATKaV7gFk0vxCzitwtcw3rAliWUro3/3V3SumZlFI9uatQH5K7wnVj\nK08ngMlN9nNXSmkpcAq5ADUhpXQvudvxGo5ds1P/L9XRyjEb9CEXAA9vreHOvEKlQ0PHs2D7a+RO\nWjRR2JfuR/TjrLOKv9Tl3HPPZeLEiUydOrXxFjqAM844g88//5zx48dTUFDAN7/5Tc4880wgFxjG\njx9PYWEh3//+9wG4/PLLmTRpEuPHj6e+vp7jjjuOESNGMGjQIJ544gkWLVrUOCnFntqyZQvPPvss\ndXW5H+j9+vVrrGFXLrzwQp588kk6depEaWkpGzdubLa9pKSESy+9lIcffpgf//jHjBo1ikmTJjF1\n6lTq6+sZMmQI3/jGN5gyZQqff/45AKWlpfTp04fKykr69evH448/3jgpxTHHHAPAd77zHR566CFS\nShQUFHDllVdSXFxM3759+f3vf0/37t0pKSnZZd27qmPRokVUVFQwbNgwSktL+etf/8q9997Leeed\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# tight_layout automatically adjusts subplot params so that the subplot(s) fits in to the figure area.\n", "# tight_layout: https://matplotlib.org/users/tight_layout_guide.html\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dendrogram\n", "A dendrogram is a tree diagram frequently used to illustrate the arrangement of the clusters produced by hierarchical clustering. Here, we will use dendrogram to show the authorship cluster.\n" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Performs Ward’s linkage on a condensed or redundant distance matrix.\n", "from scipy.cluster.hierarchy import ward, dendrogram\n", "linkage_matrix = ward(dist)" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plt.figure(figsize=(8, 6)) " ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dendrogram(linkage_matrix, orientation=\"right\", labels=names, leaf_font_size=10);" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n6/Vy14+JH95up7wSOLCqzqa75fXO1v5G4PFJFtHdojmsbd8HeEWSBXSzULu37W8Edmv1zQe2rqpr\ngHOTLGrrVI4BZrY2LwUua+c3ut2gTwNrtGO+Trdg9xaW7sHA3Lbe6CvAv43TFuCIdi6XA4+jW+dy\n62CDqrqEbh3Nj1rbj4za/w26kHEi3S2pPYEPtrbDdLf1xvNiYFGreRvgS3DHx9Q3a20+A5yS5Mwk\nu7ZaP1hVxwC3Jnn5BNdRkqQVli6/rL6S3FBVG0x3Hbp7zJw5s+bNmzdxw1XByBqc1WXNkCSthpLM\nr6qZE7Xzm4wlSVLvLO+X860y+jR70z6h9qRRmz9eVV+YjnokSVpdrfYBp0+q6nXTXYMkSX3gLSpJ\nktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7\nBhxJktQ7/l9U0lQaHoZZs1b+uLNnw377rfxxJWkV5QyOtLobHoZjj53uKiRpleIMjjSVhoZg7tyV\nO+Z0zBhJ0irOGRxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7\nBhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJktQ7BhxJ\nktQ7KxxwkuyRpJJslWTbJMPt59okV7TnPxjn+LWS/GkFxn9Lkp8luWpg7FuTXNyev295+279PynJ\nuUkuS3JRkiOTrJtkzyRvbm32TPKogWMOT7Lziow70Nf+SX7fxr48yclJHj/ZsdrxH56KWiZR612u\nwzjtDkqyzsqoSZJ0z7TWFPSxN3AOsHdVvRsYAkgyBzipqr45BWOM57XAk6vqtyMbkvwa2Lmqljs4\ntX4eDBwL/FNVzUsS4CXAvUed157AX4DLAarqkBUZdwxfqqqDWk3PAL6b5ElV9d93w1gr4i7XYRwH\nAUcCt07Y4+LFMGvWChe2UgwPw9DQdFchSWIFZ3CSbAA8GXgF3R/+8dreN8kPk1yYZGGS5y2l3SFJ\nzm9t3jWw/a1JFrWf17dtRwMPA05P8oZxxr4syfpJ1kxyfZIXt+3HJdk5yb2TfKXN+sxP8uR26BuB\no6pqHkB1vlpV147MjCTZDXgm8Ik2Y/TQJF8bOb8kT0xyVuv35CQPbNsPajNPC5N8cRKXm1bDacAX\n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\nAxyZ5GZgx0n2dQzw3SQXA/OAy9r2bYEjktze6n1N2/5OurUklyb5C12oeVdVLUhyUTv+f+lu4yzN\ny1qd96a73fbySdYK3SLqW4B70d1S2310g6o6JckQMC/JrXSB5u0D+z/SbpV9mW4Ga1/gq0nuNXCO\nl49Tw5taGLydbnbu+wBJhgfW3XwGWNhu2Z0K3FZVx7ZZpx8neQpwNjCyjmhOVX10Ga6DJEmTkqqa\n7hqkpZo5c2bNmzdvusuQ+m3kqxhc0K/VQJL5VTXh97v5TcaSJKl3pvKL/rQCknwbePiozW+rqlOn\nox5JklZnBpxVRFW9cLprkCSpL7xFJUmSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseA\nI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mS\neseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSeseAI0mSemet6S5AkjT9Zg1/DGZNdxXqs9mz\nYb/9Vt54zuBIkqS71fAwHHvsyh3TGRxJEnOH3gRz5053GeqpWbNW/pjO4EiSpN4x4EiSpN4x4EiS\npN4x4EiSpN4x4EiSpN4x4EiSpN5ZoYCTZEmS4SSLknwjyb2X0u7kJBuNsf3QJAetSA2TqPGOMZLM\nSXJFq/nCJDsuY18vSHLIMh4zJ8me7fnRSbZeluMn0f/HkvwmyXK/l0netLT3bjn6mpFk9iTazUqy\n01SMKUnSaCs6g3NzVQ1V1TbArcD+gzvTWaOqnlNVf1rBsabKwVU1BBwCHDV6Z5KlfjdQVZ1YVYcv\n78BV9cqqunR5jx+thZoXAv8L7LoCXb0JmJKAA8wAJgw4dN+ZasCRJN0tpvKL/s4GtksyAzgV+Cmw\nA/CcJD8CZlbV1UneAbwM+D3dH+b5AEm2AP4TeABwE/CqqrosyfOBdwLrANcA+1TV75IcCjwMeER7\n/FhVfaL1NeYYo5wF/H1rPxcYBp4MfDXJl4AjW78Ab6qqc5Ps287jgCRzgJOq6putjxuqaoMkAT4J\nPL2NfevIgG2cg6pqXpJnAe8H1gSurqqnJlm/HbsNsDZwaFWdMM41nwVcAnwd2Bs4s41zKHBDVX24\nvV4EPA/4A3Ac8JA27nuABwGbAWcmubqqdkvyDODfgXsBvwBeXlU3JLkS+CLw/Fbfi6rqslE1HQ48\nOslwawuwbVX9a5Jtga8CL6YLw0uS/DPw+qo6e8wzXLx4er4hClb+94pLkqbMlAScNuvxbOCUtumR\nwMuq6ry2f6TdDsBLgKE29oXcGT4+A+xfVT9P8gTg08BTgHOAJ1ZVJXkl8FbgwHbMVsBuwH2AxUn+\nC9hunDEGPR+4eOD1OlU1s9V5LPDRqjonycPoAtujJ3k5XghsCWxNFx4uBT4/6no9APgssEtVXZFk\n47brHcAPWxjYCDg/yQ+q6saljLU3XWA4AXh/krWr6rZxansWcFVVPbfVsWFVXZfkLcBuLYBuQhco\nn1ZVNyZ5G/AW4LDWx9VVtX2S1wIHAa8cNcYhdCHueW2MNYC5SV7Yzu/VVXVpkiMZCGGrnOHh7tGA\nI0mrpRUNOOu1f6lDN4PzObrZgF+NhJtRdga+XVU3ASQ5sT1uQHe74hsjYYhu9gC62YavJ9mUbhbn\nioH+vldVtwC3JPk9XaAYc4wBRyR5J91sxisGtn994PnTgK0Harlvq3EydgG+WlVLgKuS/HCMNk8E\nzqqqKwCq6tq2/RnACwbWJa1LN4v0s9EdJFkHeA7wlqq6PslPgWcCJ41T28XAfyT5IN3s01izJk+k\nC2fntvNfB/jJwP5vtcf5wD+OMxbt3G5vM18LgaOq6tyJjrmLLbecnq+Pn65ZI0nSlFjRgHNzW89y\nh/ZHcWkzDkuzBvCn0X01nwQ+UlUnJpkFHDqw75aB50uY3PkcPHJbaZTBmtegmzX6y2CDgcAD8NfW\nbmSWYp1JjD2RAP9UVYsn0faZwEbAxa2uewM30wWcO2pr1gWoqsuTbE8XjN6b5IyqOoy7CnB6Ve29\nlHFHrvlkrzd0M3o30IVfSZLudiv7Y+JnAXskWS/JfehuE1FVfwauSPIiuGNx8mPaMRsCv2nPX7a8\nYyyj04DXj7xIMlbwupJujRHAC+jWpIyMv1eSNdus025jHHsesEuSh7f+R25RnQq8vq3jIcljx6lx\nb+CVVTWjqmYADwee3j4NdSWwfetj+7aPJJsBN1XVV4AjRtoA19Pd5hup7UlJRtYnrZ/kUePUMdpg\nXyTZEPgE3czW/Uc+UTa6nSRJU2mlBpyqupDuVtAC4PvABQO79wFekWQB3cLZ3dv2Q+luXc0Hrl7B\nMSbrDcDMJAuTXMpdPx1W7fGzwK6t3h25cwbo28DP6dbefIm73t4ZqfEPwH7At9rxI7fH3kMXlBYm\nuaS9/hstxDwL+N5AnzfSrVd6PnA8sHHr4wDg8tZsW7p1PcPAu4H3tu2fAU5JcmarbV+6xdYLW/1b\nLf1SQZKZSY5uLxfSLR5ekOTNwEeB/6yqy+luCR6e5IHAd4EXpvvI/s7j9S9J0rJKVU3cSgAkORC4\nb1W9e7pruaeYOXNmzZs3b+UPPLIGZzrW/0grm7/vuptN5a9YkvkjHwoaz1R+TLzXkuxPN7Mx4cJa\nSZI0vQw4k1RVR9J9N85KleSZwAdHbb6iql64smuRJGl1YcBZxVXVqXSLjyVJ0iT5n21KkqTeMeBI\nkqTeMeBIkqTeMeBIkqTeMeBIkqTeMeBIkqTeMeBIkqTeMeBIkqTeMeBIkqTeMeBIkqTeMeBIkqTe\n8f+ikpZmeBhmzVr242bPhv32m/JyJEmT5wyONJWGh+HYY6e7Ckm6x3MGR1qaoSGYO3fZjlmeGR9J\n0pRzBkeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWO\nAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPVOrwJO\nkiVJhpMsSvKNJPee7ppGJDk6ydZ3Q7/DSb62AsdvlOS1U1jPrCQ7TaLdvkk2m6pxJUkatNZ0FzDF\nbq6qIYAkxwD7Ax+ZzIFJ1qyqJXdXYVX1yqnuM8mjgTWBnZOsX1U3Lkc3GwGvBT49RWXNAm4AfjxB\nu32BRcBV47ZavBhmzZqCspbR8DAMDa38cSVJU6JXMzijnA38PUCSf05yfpvtOCrJmm37DUn+I8kC\nYMckhye5NMnCJB9ubeYk2XOk0yQ3tMcNkpyR5MIkFyfZvW1fP8n3kixoM0l7te1zk8xsz/duxyxK\n8sHBvpO8rx17XpIHTXCOewNfBk4Ddh/oZ3CsTZJc2Z7/w8B1WJjkkcDhwBZt2xGt3cFJLmht/r1t\nm5HkZ0k+m+SSJKclWW+wmCQz6ELlm1t/Oyc5IclL2/5XJzmmXc+ZwDGt3V36WSUMDcHs2dNdhSRp\nOfVtBgeAJGsBzwZOabMcewFPqqrbknwa2Af4ErA+8NOqOjDJ/YHPAVtVVSXZaIJh/gK8sKr+nGQT\n4LwkJwLPAq6qque2WjYcVdtmwAeBHYA/Aqcl2aOqvtPqOa+q3pHkQ8CrgPeOU8NewNOBrYDXA8dO\n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\nRbXaSPJy4I2jNp9bVcu6MPpuVVX7TncNkiRNNwPOJFXVF1jKR8UlSdKqxVtUkiSpdww4kiSpdww4\nkiSpdww4kiSpdww4kiSpdww4kiSpdww4kiSpdww4kiSpdww4kiSpdww4kiSpdww4kiSpd/y/qKSe\nGv7tMLPmzFrq/tnbzma/HfZbeQVJ0krkDI50DzT822GOvfjY6S5Dku42zuBIPTX0d0PM3XfumPvG\nm9mRpD5wBkeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeS\nJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPWOAUeSJPXO\nKh1wktww6vW+ST51N495ZpJnjtr2piT/tZT2ayT5RJJFSS5OckGSh7d9N4x1zDhjH5rkoOWvfvol\nGUrynEm02yPJ1iujJknSPc9a013AdEgSIFV1+xi7vwq8BDh1YNtLgLcupbu9gM2A7arq9iQPAW6c\nynpXBUnWrKolk2g6BMwETp6g3R7AScCl4zVafM1iZs2ZNakadafh3w4z9HdD012GJE2bVXoGZzxJ\nHpDk+DZjckGSJ7Xthyb5fJK5SX6Z5A1t+4wki5N8CVgE/L8kHxvo71VJPgp8E3huknVGjqMLMGcv\npZRNgf8bCUtV9euq+uNAv+9LsiDJeUke1LY9P8lPk1yU5Acj20ed36uSfD/Jekm2SHJKkvlJzk6y\nVWvzojZztCDJWW3bvklOaOf/8yTvHujzn5Ocn2Q4yVFJ1mzb/yvJvCSXJPn3gfZXJvlgkguBFy2t\njoH26wCHAXu1MfZK8vEk72r7n5nkrCQ7AS8Ajmjtthj3zdYyG/q7IWZvO3u6y5CkabOqz+Csl2R4\n4PXGwInt+ceBj1bVOUkeRjfj8ui2bytgN+A+wOKB20uPBF5WVecl2QBYkOTgqroNeDnw6qq6Nsn5\nwLOBE+hmb46rqlpKjccB5yTZGTgD+EpVXdT2rQ+cV1XvSPIh4FXAe4FzgCdWVSV5Jd3s0IEjHSY5\nAHg6sEdV3ZLkM8D+VfXzJE8APg08BXgX8Myq+k2SjQZqejywDXATcEGS79HNKu0FPKmqbkvyaWAf\n4EvAO9p5rwmckWS7qlrY+rqmqrZvdZ2xlDoAqKpbW5iZWVUHtGO+22o4G/gE8Jyq+kWSE4GTquqb\n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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Charles John Huffam Dickens (1812-1870)\n", "- Jane Austen (1775-1817)\n", "- William Shakespeare (1564-1616)\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Reference: \n", "\n", "https://de.dariah.eu/tatom/case_study_racine.html\n", "\n", "https://en.wikipedia.org/wiki/Dendrogram\n", "\n", "http://scikit-learn.org/stable/modules/manifold.html#multidimensional-scaling" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }