Skip to content

Instantly share code, notes, and snippets.

@jasonost
Created December 15, 2014 23:17
Show Gist options
  • Save jasonost/b4193f73bf242b478fe5 to your computer and use it in GitHub Desktop.
Save jasonost/b4193f73bf242b478fe5 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"worksheets": [
{
"cells": [
{
"metadata": {},
"cell_type": "code",
"input": "import codecs, string, random, math, cPickle as pickle, re, pandas as pd\nfrom matplotlib.ticker import FuncFormatter\nfrom collections import Counter\nfrom IPython.display import HTML, Javascript, display\n\nfrom __future__ import division\n\n%matplotlib inline",
"prompt_number": 1,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Load data"
},
{
"metadata": {},
"cell_type": "code",
"input": "corrections = {\"Sarcoma, Ewing's\": 'Sarcoma, Ewing',\n 'Beta-Thalassemia': 'beta-Thalassemia',\n 'Von Willebrand Disease, Type 3': 'von Willebrand Disease, Type 3',\n 'Von Willebrand Disease, Type 2': 'von Willebrand Disease, Type 2',\n 'Von Willebrand Disease, Type 1': 'von Willebrand Disease, Type 1',\n 'Felty''s Syndrome': 'Felty Syndrome',\n 'Von Hippel-Lindau Disease': 'von Hippel-Lindau Disease',\n 'Retrognathism': 'Retrognathia',\n 'Regurgitation, Gastric': 'Laryngopharyngeal Reflux',\n 'Persistent Hyperinsulinemia Hypoglycemia of Infancy': 'Congenital Hyperinsulinism',\n 'Von Willebrand Diseases': 'von Willebrand Diseases',\n 'Pontine Glioma': 'Brain Stem Neoplasms',\n 'Mental Retardation': 'Intellectual Disability',\n 'Overdose': 'Drug Overdose',\n 'Beta-Mannosidosis': 'beta-Mannosidosis',\n 'Alpha 1-Antitrypsin Deficiency': 'alpha 1-Antitrypsin Deficiency',\n 'Intervertebral Disk Displacement': 'Intervertebral Disc Displacement',\n 'Alpha-Thalassemia': 'alpha-Thalassemia',\n 'Mycobacterium Infections, Atypical': 'Mycobacterium Infections, Nontuberculous',\n 'Legg-Perthes Disease': 'Legg-Calve-Perthes Disease',\n 'Intervertebral Disk Degeneration': 'Intervertebral Disc Degeneration',\n 'Alpha-Mannosidosis': 'alpha-Mannosidosis',\n 'Gestational Trophoblastic Disease': 'Gestational Trophoblastic Neoplasms'\n }\ncond = {}\ncond_r = {}\nfor row in codecs.open('../data/condition_browse.txt','r','utf-8').readlines():\n row_id, trial_id, mesh_term = row.strip().split('|')\n if mesh_term in corrections: mesh_term = corrections[mesh_term]\n if mesh_term not in cond: cond[mesh_term] = []\n cond[mesh_term].append(trial_id)\n if trial_id not in cond_r: cond_r[trial_id] = []\n cond_r[trial_id].append(mesh_term)\n\nmesh_codes = {}\nmesh_codes_r = {}\nfor row in codecs.open('../data/mesh_thesaurus.txt','r','utf-8').readlines():\n row_id, mesh_id, mesh_term = row.strip().split('|')\n mesh_codes[mesh_id] = mesh_term\n if mesh_term not in mesh_codes_r: mesh_codes_r[mesh_term] = []\n mesh_codes_r[mesh_term].append(mesh_id)\n\n# limiting to conditions that appear in ten or more trials\ntop_cond = {c for c in cond if len(cond[c]) >= 10}\ntrials = {t for c in top_cond for t in cond[c]}\n\n# trial descriptions\ntrial_desc = pickle.load(open('../data/trial_desc.pkl','rb'))\n\n# holdout sample text counters used in classification\n# classify_text = pickle.load(open('../data/classify_text.pkl','rb'))",
"prompt_number": 2,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Load model predictions"
},
{
"metadata": {},
"cell_type": "code",
"input": "multi_preds = pickle.load(open('../data/mesh_guesses_holdout.pkl','rb'))\nsingle_preds = pickle.load(open('../data/mesh_guesses_maxent_holdout.pkl','rb'))\nknn_preds = pickle.load(open('../data/mesh_guesses_knn_holdout.pkl','rb'))",
"prompt_number": 3,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "print len(multi_preds)\nprint len(single_preds)\nprint len(knn_preds)",
"prompt_number": 4,
"outputs": [
{
"output_type": "stream",
"text": "38075\n38075\n37527\n",
"stream": "stdout"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Evaluating single-prediction model\n*What is the maximum overlap between the predicted term and the manually assigned terms?*\n\nOverlap is defined by the level of the least common hypernym in the MeSH hierarchy. A value of zero indicates that there is no overlap at all between the predicted and manually assigned terms."
},
{
"metadata": {},
"cell_type": "code",
"input": "single_accuracy = {}\nfor trial_id in list(set(single_preds.keys()) & set(cond_r.keys()) & trials):\n # initialize variables for this prediction\n accuracy = 0\n this_pred = single_preds[trial_id]\n if this_pred in mesh_codes_r:\n mesh_pred = mesh_codes_r[single_preds[trial_id]]\n\n # loop through known MeSH terms to look for greatest overlap\n for m in cond_r[trial_id]:\n if m in mesh_codes_r:\n for a in mesh_codes_r[m]:\n len_a = len(a)\n for i in range(len_a,accuracy,-4):\n for pa in mesh_pred:\n if pa[:i] == a[:i] and i > accuracy: accuracy = i\n \n single_accuracy[trial_id] = int((accuracy + 1) / 4) if accuracy > 0 else 'No match'",
"prompt_number": 5,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "c = Counter(single_accuracy.values())\nprint sum(c.values())\nax = pd.DataFrame(c.values(), index=c.keys()).plot(kind='bar',\n legend=False, \n figsize=(8,8))\nax.set_xlabel(\"Hierarchy level\")\nax.set_ylabel(\"Number of trials\")\nax.set_title(\"Evaluating MaxEnt classification using manually assigned MeSH terms:\\nMaximum depth of a matching term\")",
"prompt_number": 6,
"outputs": [
{
"output_type": "stream",
"text": "13965\n",
"stream": "stdout"
},
{
"text": "<matplotlib.text.Text at 0x14c136090>",
"output_type": "pyout",
"metadata": {},
"prompt_number": 6
},
{
"png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAItCAYAAAAkODPzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVNX/P/DXsJgbw6aCgDq5ZZgKWph+MimXksQsE5dS\naFHTFi1btPqkVp+wTdPKFj+kZppaH39qmXxs4barpVIp5ZaQIFqmIOSCyPn9wZf7YWTmXmaGmXtm\n5vV8PHg8mPW8ZjhnDve+595jEkIIEBERkc8IMDoAERERNSxO7kRERD6GkzsREZGP4eRORETkYzi5\nExER+RhO7kRERD6Gk3sDSU5ORlZWllueOzMzExMmTHDLc/syi8WCzz77zC3P/dVXX6FLly7q5T17\n9iAhIQFmsxmvvPIKJk+ejGeeeabB25WtL6xYsQLXXXed0TEMZbFY8PnnnwMAZs+ejXHjxhmcqNpl\nl12GL7/80uPtZmRk4J///KfH2yVrfje5WywWNG3aFCEhIerP/fff7/LzmkwmmEwml59HURS0adPG\n6rqZM2di8eLFLj+3LQEBAYiKisL58+fV686dO4dWrVohIMD17pGfn4+AgACr9zskJATvv/9+vfP9\n9ttvTrXdUH8TW/r164dff/1Vvfz8889jwIABOHnyJO677z68/vrreOKJJ1xqw9N9wRm33nor/vvf\n/xodw1C1+5i7+pszdu3ahauvvtrj7WqNu6VLlyIgIAAPPvig1fXr169HQEAAbr/99nq1sXv3bgwe\nPBiRkZEIDw/H5Zdfjk2bNgGwPW4A7Q2wpUuXol+/fvVq21v43eRuMpnw0UcfoaysTP1ZuHCh0bEM\nFRERoQ4MANi0aRMiIiIa9IOqtLTU6j0fOXJkvR/rDedZKigoQHx8vNExyGDe0Fc9wd77YDKZ0KFD\nB7z//vtWGxTLli1D586d6/2Zk5qaiuuuuw5Hjx7FH3/8gYULF8JsNms+xp3/7FdWVrrleV3hd5O7\nPWfPnkVYWBh2796tXvfnn3+iadOmOHbsGE6cOIGhQ4eiVatWiIiIQGpqKoqKimw+14W75mq2Xquq\nqgAAS5YsQXx8PMxmMzp06IC33noLAPD3339jyJAhOHz4MEJCQmA2m1FcXGz1fDXP9c4776Bdu3Zo\n2bIlnn32WbWt06dPIz09HREREYiPj8fzzz9v87/Y2saNG4d33nlHvfzOO+9g/PjxVgPUXmYAeO65\n53DllVeqg/X111/HZZddhoqKCu03HdW78O655x4MHToUZrMZV155pbqlXrPV0aNHD82t/cWLF6vZ\nunbtitzc3Dr32bZtG/r06YPw8HDExMTgvvvuw7lz59TbH3jgAURFRSE0NBTdu3dX+8HHH3+Mrl27\nwmw2Iy4uDi+99BIA662Da6+9Foqi4N5774XZbMa+ffvq7Jpcv349EhISEBoaio4dO6pbu670BQDY\nsGEDunbtivDwcFxzzTVWexMsFgteeukl9OjRA2FhYRg9ejTOnj1r8z3U67NLly5Fhw4dYDab0b59\ne6xcuVK9vvYWT0BAAN5880107twZ4eHhuPfee9XbqqqqMH36dLRs2RLt27fHq6++atXGhSwWC158\n8UV0794dISEhuPPOO3H06FEMGTIEoaGhGDRoEEpKStT7jxw5Eq1bt0ZYWBj69++PvLw89Tatfnbh\nawWst/IOHDiAa6+9Fi1atEDLli1x2223obS01GZm4H9b7zfccANeffVVq9u6d++O9evX23ycVn57\n/fDYsWMYOnQowsPDERkZabWlXrsspfe5oNdXPvroIyQkJCA8PBz/+Mc/8PPPP6u37dy5Ez179oTZ\nbMbo0aNx5swZu+8NAERHR6Nbt27qGDh+/Di+++47DBs2zOozZ8uWLejbty/Cw8ORkJCAL774Qn3N\n+fn5mDBhAoKCghAcHIy+ffviH//4h2a79vzyyy+YPHkyvvvuO4SEhCAiIgJA9Zzw0EMPoV27doiO\njsbkyZPV16YoCuLi4vD888+jdevWuOOOOzBnzhyMHDkS48aNg9lsRvfu3bFv3z5kZmYiKioK7dq1\nwyeffKK2a29MNRjhZywWi/j0009t3nbHHXeIxx9/XL386quviiFDhgghhPjrr7/E2rVrxenTp0VZ\nWZkYOXKkGD58uHrf5ORkkZWVJYQQYvbs2eK2225Tbzt48KAwmUzi/PnzQgghNm7cKH777TchhBBf\nfPGFaNq0qdixY4cQQghFUURcXJxVrtrPV/NcEydOFGfOnBE//vijuOiii8Svv/4qhBDi0UcfFcnJ\nyaKkpEQUFhaKbt26iTZt2th9P0wmk9i1a5eIiooSpaWl4vjx4yIqKkrs2rVLmEwm9X5amauqqsTV\nV18tZs+eLfbu3SvCw8NFbm6uVd7Kykqb7aenp4vIyEjx/fffi8rKSnHrrbeK0aNHW+U7cOCA3fxr\n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\npvj111/x+uuvq+/LDz/8gK1bt+LcuXNo2rQpGjdujMDAQJw7dw4rVqxAaWkpAgMDERISgsDAQLtZ\nar+W2h/Md955J5YsWYLPP/8cVVVVKCoqwp49e5zqC7WNHDkSGzduxOeff45z587hpZdeQuPGjdG3\nb1/dfBfS6rN//PEH1q9fj7///hvBwcFo1qyZ5vtwYZs17aalpWHBggU4fPgwSkpK8NxzzzXYt5fL\ny8tx0UUXISIiAn///Tcee+yxOjnsadmyJWJjY7F8+XKcP38eb7/9tlWfq9nSMpvNKCoqUv/xq48+\nffrAZDLhoYcestqydCS/Vj/86KOPsH//fgghYDabERgYaPMQVmc+F2reswkTJuCNN97Atm3bIITA\n33//jY0bN6K8vBx9+/ZFUFAQFi5ciHPnzmHt2rX4/vvv6/Xe9O/fH59++inuu+++Orfddttt+PDD\nD7F582acP38eZ86cgaIoKCoqQklJCWbNmoUDBw6gqqoKx44dw9tvv40+ffrotmmvH0RHR6OwsFD9\nkm1AQAAmTJiAadOm4c8//wQAFBUVWY3P+j63La6Mqfryy8k9NTXV6pjrESNGqLclJSWhefPmKC4u\nxpAhQ9Trp02bhtOnT6NFixbo27cvhgwZYndwDBw4EKNGjUL37t1xxRVXIDU1Vb1vSEgIFi5ciLS0\nNEREROC9997DjTfeqD62S5cuGDNmDNq3b4+IiAgUFxfXOYRDa1A++eSTiIuLw8UXX4zBgwdj5MiR\ndXYd1Vb7ueLj43HppZfWuU0v86RJkzB8+HBcf/31iIiIQFZWFu666y6cOHFCvU9YWJjVe/7yyy+r\nbWj9Bzx79mykp6cjPDwcH3zwQZ38t9xyCx5//HGMHTsWZrMZN998s1W7NV588UWsXLkSZrMZEydO\nxOjRo9XbTp48iYkTJyIiIgIWiwUtWrTAww8/DKC69nfxxRcjNDQUb731FlasWGEz54WXa7+uK664\nAkuWLMEDDzyAsLAwJCcn4/fff3e5L1xyySV499131br0xo0b8eGHH9qt6WodCqTVZ6uqqjB//nzE\nxsYiMjISX331FV5//XWbz2nrPam5bsKECRg8eDC6d++OXr164YYbbrA7Gdlj7z0eP3482rVrh9jY\nWFx22WXqpKr12mtfXrx4MV544QW0aNECeXl5VnuvZs2ahR07diA0NBSpqakYMWKE3ffRVjvjx4/H\nzz//bHMLtfZ9tPLb64f79+/HoEGDEBISgr59++Kee+5B//796zy/M58LNe336tULixcvxr333ouI\niAh06tRJPbomODgYa9euxdKlSxEZGYk1a9ZYfZ7qvT/XXHMNwsLC6twWFxeH9evX49lnn0WrVq3Q\ntm1bvPTSSxBCoFGjRigoKMDAgQMRGhqKbt26oUmTJli6dKlVO/bat+Xaa69F165dER0dre5af+65\n59CxY0dceeWV6tEZe/futftcen2s9mWtMVXz2VBYWGj7Tawnk3CmaExe4/XXX8eaNWts7qojMtKm\nTZswefJk5OfnGx3FrZYvX47FixcbcrY4e/i54Pv8csvdlx05cgTffPMNqqqqsGfPHsybN0/9UiCR\nkc6cOYOPP/4YlZWVKCoqwpw5c3DzzTcbHcutTp06hddeew0TJ040NAc/F/wPJ3cfU1FRgbvvvhtm\nsxkDBgzA8OHDMWXKFKNjEUEIgdmzZyMiIgI9e/ZE165d8dRTTxkdy23++9//olWrVmjdurXV93eM\nwM8F/8Pd8kRERD6GW+5EREQ+hpM7+a2QkBCv+DKXO1essreClrNuv/12RERE4Morr2yw5/Q0vWVb\njVpKlcgRnNxJShaLBRdddFGdM4ElJiYiICDA5rHsjiorK4PFYnH5ebyJK0vo6vnqq6/w6aef4vDh\nw5pn8jOC1nKfF9I7/ttdS6n64rKjZBxO7iQlk8mE9u3b47333lOvqzkPs0xrZnsjd33NpqCgABaL\npc66BDJwpM9469eQZFx2lIzDyZ2kddttt1ktRbts2bI6573fuHEjEhMTERoairZt21qdOXD16tVo\n3769ep74TZs2oXXr1uregNpbsRkZGZgyZQpSUlIQEhKino536tSpCA8Px6WXXmq10MiFW8C1l3it\nWQ7yhRdeQKtWrRATE4N169bh448/RufOnREZGYm5c+fafd1//fUXhg0bhtDQUPTu3bvOGfp+/fVX\nDBo0CJGRkejSpYvVUrgZGRm4++67MXjwYJjNZvWEOYD2Errz5s1DVFQUYmJirE4GcqHDhw9j2LBh\niIyMRKdOnfDvf/8bQPXiOBMmTFCXzbR1BkdHl04NCAjA66+/jk6dOsFsNuPJJ5/EgQMH0KdPH3VZ\n0pozipWUlNhdkvnxxx/HV199hXvvvRchISG4//77AQC7d+9W38fo6Gj1rHwmkwkVFRVIT0+H2WzG\n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\n",
"text": "<matplotlib.figure.Figure at 0x1502dd590>",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Evaluating multiple prediction models\n*How well do the (accurate) level-2 hypernym predictions rank?*\n\nWhat is the highest (i.e., lowest number) rank of a manually assigned term's level-2 hypernym?"
},
{
"metadata": {},
"cell_type": "code",
"input": "mult_accuracy = {}\nfor trial_id in list(set(multi_preds.keys()) & set(cond_r.keys()) & trials):\n # initialize variables for this prediction\n top_rank = 10000\n this_pred = {d[0]: i for i, d in list(enumerate(sorted(multi_preds[trial_id].items(),\n key=lambda x: x[1],\n reverse=True)))\n }\n\n # loop through known MeSH terms to look for greatest overlap\n for m in cond_r[trial_id]:\n if m in mesh_codes_r:\n for a in mesh_codes_r[m]:\n if a[:7] in this_pred and this_pred[a[:7]] < top_rank: top_rank = this_pred[a[:7]]\n \n if top_rank < 10000:\n mult_accuracy[trial_id] = top_rank",
"prompt_number": 7,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "low_rank = max(mult_accuracy.values())\nc = Counter(mult_accuracy.values())\nprint sum(c.values())\n\nticks = [k for k in range(low_rank) if k%10 == 0]\n\nax = pd.DataFrame([c[i] for i in range(low_rank+1)], \n index=range(low_rank+1)).plot(kind='bar',\n legend=False, \n xticks=ticks,\n figsize=(14,8))\nax.set_xticklabels(ticks)\nax.set_xlabel(\"Highest rank of matching hypernym\")\nax.set_ylabel(\"Number of trials\")\nax.set_title(\"Evaluating hypernym classifiers using manually assigned MeSH terms:\\nHighest ranking hypernym of a known term\")",
"prompt_number": 8,
"outputs": [
{
"output_type": "stream",
"text": "13745\n",
"stream": "stdout"
},
{
"text": "<matplotlib.text.Text at 0x196e25310>",
"output_type": "pyout",
"metadata": {},
"prompt_number": 8
},
{
"png": "iVBORw0KGgoAAAANSUhEUgAAA0YAAAIPCAYAAABXBM4IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlY1WXC//H3YVFROciioqCgmWNoark7mWhp7lmOC26Q\njpVWkzMtj9plaj0TadpMVubouJS7/nLS1MgyNSuz1b1ySVCBXFFxReT+/eFwHo7AcQHkNj6v6/K6\nOtv3+/6ecyDuc+77HIcxxiAiIiIiIlKCeRV3gIiIiIiISHHTwEhEREREREo8DYxERERERKTE08BI\nRERERERKPA2MRERERESkxNPASERERERESjwNjERKgOjoaGbMmFEk246Pj2fIkCFFsm0vLy9+/fXX\nItn2rS4uLo7Ro0cX2fb9/f1JTEwE4Ny5c3Tt2pUKFSrQq1cv5s+fzwMPPFBk+y6oefPmWd13M0RG\nRvLZZ58BMHbsWAYMGFDMRZfVq1ePzz///Kbvt6h/XkTk90EDIxGLREZGUrZsWfz9/V3//vKXvxR4\nuw6HA4fDUeDtrFu3jmrVqrmdN3LkSKZPn17gbcv1KazHND/p6elERkYC8P/+3//j8OHDHD9+nMWL\nF9O3b18+/vjjItt3QfXr18/qvpsh53OjKJ8n12v79u3ce++9N32/nn5eZs+ejZeXF3/729/czl+2\nbBleXl488sgj17SPHTt20L59e4KDgwkMDKRx48Z89NFHQN6/O8Hzi1azZ8+mVatW17RvESkcGhiJ\nWMThcLBixQrS09Nd/yZPnlzcWSVaZmZmcSfk62Z9P3dSUhK1a9fGy6vg/8vIysoqhCK5Hvoe98vy\nux8cDge33XYbS5Ys4dKlS67z3333XWrXrn3NA8uuXbvywAMPcOjQIQ4fPszkyZNxOp0eb1OUL3DY\n/LtLxFYaGIncAi5cuECFChXYsWOH67wjR45QtmxZjh49SlpaGl26dKFSpUoEBQXRtWtXkpOT89zW\nldNqEhMT8fLycv3BOmvWLKKionA6ndx2221MmzYNgDNnztCxY0dSUlLw9/fH6XSSmprqtr3sbb33\n3ntERERQsWJFXnnlFde+zp07R2xsLEFBQURFRTFhwoQ8X0XN6ZNPPqF27doEBgby5JNPApCRkUFw\ncDDbt293Xe/w4cOUK1eOY8eOsW7dOsLDw4mPj6dixYrUqFGD+fPnu92fzz77LBEREYSGhjJ06FDO\nnz8P4LrthAkTqFKlCoMGDWLcuHH06tWL2NhYnE4n9erV4/vvvwfgtdde409/+pNb81/+8heGDx8O\nXH5FePTo0fzxj3/E39+fbt26cfToUfr160dAQABNmzYlKSkp3+P/4osvaNmyJYGBgVSvXp333nsv\n13Wu9vjPnj2b2267DafTSc2aNV33xZ49e2jdujUVKlSgYsWK9OnTx3UbLy8v9u7dy5gxY3j55ZdZ\ntGgR/v7+zJw5M9cr2T///DPt2rUjODiYOnXqsGTJEtdlcXFxDB06lE6dOlG+fHnWrVvHqlWrXM+x\n8PBwJk2alOexX+25mt9xXdnn5eXFv/71r1zPI7g8UHvmmWeoWLEiNWvW5K233nLbx5UiIyOZOHEi\n9evXx9/fn8GDB3Po0CE6duxIQEAA7dq148SJE67r9+zZkypVqlChQgVat27Nzp073e6bJ554gi5d\nuuB0OmnevLlr6uiVxwru7y7s3buXtm3bEhISQsWKFenfvz8nT57Msxn+712jzp0789Zbb7ldVr9+\nfZYtW5bn7Tz1r1q1irp16+Z6HI8ePUqXLl0IDAwkODjY7R2iyMhI1qxZA1z990FkZCSTJk2iQYMG\nVKhQgT59+nDhwgXX5StWrKBhw4YEBgbyxz/+kW3btrku+/HHH7n77rtxOp306dPH9fOdn9DQUO68\n807XO43Hjx9n48aNdOvWzW1A9fXXX7t+Hhs2bMj69etdx5yYmMiQIUPw8fHB19eXli1b8sc//tHj\nfvPz008/MXToUDZu3Ii/vz9BQUHAjf3u6tmzJwMGDMDpdFK/fn12795NfHw8lStXJiIigk8++cS1\n3/x+pkRKCg2MRCyT16uapUuXpkePHixYsMB13uLFi4mOjiYkJARjDIMHD2b//v3s378fPz8/tz/+\ncrraq5OVK1dm5cqVnDp1ilmzZvHXv/6VH3/8kXLlypGQkEDVqlVJT0/n1KlTVKlSJc/tffnll+za\ntYs1a9bw0ksv8csvvwAwbtw49u/fz759+/jkk0+YO3fuVXtWrlzJd999x9atW1m8eDEff/wxpUqV\nok+fPsydO9d1vQULFnD//fcTHBwMwKFDhzh27BgpKSm8++67PProo+zatQuAESNGsGfPHrZs2cKe\nPXtITk7mpZdecm3r0KFDpKWlsX//fqZNm4Yxhg8//JCYmBhOnjxJt27dXPdv//79SUhIcP1RmpmZ\nyaJFi4iNjXVtb9GiRcydO5fk5GT27t1LixYtGDx4MMePH+eOO+5g3LhxeR57UlISnTp14umnn+bo\n0aNs3ryZBg0a5Lqep8f/zJkzPP300yQkJHDq1Ck2btxIw4YNARg9ejQdOnTgxIkTJCcn55q26XA4\nGDduHKNGjaJPnz6kp6czaNAgt+ucOXOGdu3a0b9/f44cOcLChQsZNmwYP/30k9tjM3r0aE6fPk3L\nli0ZPHgw06dP59SpU+zYsYO2bdvmefyenhuejisveT2PAKZNm0ZCQgJbtmzhhx9+4IMPPvC4X4fD\nwdKlS1mzZg2//PILK1asoGPHjrz66qscPnyYrKwst3d5O3fuzJ49ezhy5Ah33303/fr1c9veokWL\nGDt2LGlpadSqVYsXXnjB475ztr3wwgukpqby008/ceDAAcaOHZvvbbN/r8TFxbn93GzZsoWUlBQ6\nd+6c5+089Q8ePJhp06blehwnTZpEtWrVOHr0KIcPHyY+Pj7PY7ja7wOHw8GSJUv4+OOP2bdvH1u3\nbmX27NnA5YFP9vPo+PHjPPbYY3Tr1o2LFy+SkZFB9+7diY2NJS0tjZ49e/L+++/n+7hm3zcDBgxw\nvfCwcOFCHnzwQUqXLu26XnJyMl26dOHFF18kLS2NiRMn0qNHD44dO0ZwcDC1atWiX79+LFu2jEOH\nDuX7WFyLO+64g6lTp9KiRQvS09M5fvw4cGO/u1asWMHAgQNJS0vjrrvuol27dgCkpKQwevRoHnvs\nMcDzz9T+/fsJDAzk4MGDBTouEdtpYCRiEWMM3bt3JzAw0PUv+xXivn37snDhQtd158+fT9++fQEI\nCgrioYceokyZMpQvX55Ro0a5XsnMax+edOrUiRo1agBw77330r59ezZs2JDvbfM6b8yYMZQuXZr6\n9evToEEDtmzZAsCSJUsYNWoUAQEBhIWF8fTTT1+1Z8SIETidTqpVq0abNm3YvHkzAAMHDnQbKM6Z\nMyfXAvOXX34ZX19f7r33Xjp37szixYsxxjB9+nRef/11KlSoQPny5Rk5cqTbfevl5cW4cePw9fWl\nTJkyALRq1YoOHTrgcDjo37+/65iqVKlCq1atXO+SJCQkEBISwl133QVc/uPukUceoUaNGjidTjp2\n7Ejt2rVp27Yt3t7e9OzZkx9//DHPY58/fz7t2rWjd+/eeHt7ExQUlOfA6GqPv5eXF9u2bePcuXNU\nrlyZqKgoAEqVKkViYiLJycmUKlWKli1b5tlhjMn3cVqxYgU1atQgNjYWLy8vGjZsyMMPP+z2rlH3\n7t1p0aIFAGXKlKFUqVLs2LGDU6dOERAQ4Lqv8tqvJ/kdV16ufB5lP36LFy9m+PDhVK1alQoVKjBy\n5Mir7vepp56iYsWKVK1alVatWtGiRQsaNGhA6dKleeihh9wez7i4OMqVK4evry9jxoxhy5YtpKen\nA5efGw8//DCNGzfG29ubfv36uZ7fV3Pbbbdx33334evrS0hICH/961/z/ZnPqWvXruzatYu9e/cC\nl39u+vTpg4+PT57X99Sf3+NYqlQpUlNTSUxMxNvbO993Ta7l98Ff/vIXQkNDCQwMpGvXrq77Z9q0\naTz22GM0adIEh8PBwIEDKV26NBs3buTrr78mMzOTp59+Gm9vb3r06EGTJk2uet889NBDrFu3jlOn\nTjFnzhy3FzcA5s6dS6dOnejQoQMA999/P40bN2blypU4HA7Wrl1LZGQkzzzzDFWrVqV169bs2bPH\ndfuUlBS33+2BgYF88cUX+fZceV/c6O+ue++9l3bt2uHt7c2f/vQnjh07xogRI/D29qZ3794kJiZy\n6tQp1+3z+pmqXr06aWlphIeHX/V+FLmVaWAkYhGHw8GyZctIS0tz/Rs8eDBweRrN2bNn+eabb0hM\nTGTLli089NBDAJw9e5bHHnuMyMhIAgICaN26NSdPnryhtQUfffQRzZs3dy0gXrVqFceOHbuubYSG\nhrr+u2zZspw+fRq4/IdBzqky1/I/2fy21axZM/z8/Fi3bh0///wze/fupVu3bq7rBgYG4ufn5zod\nERFBamoqR48e5ezZszRq1Mj1x0nHjh05evSo67oVK1akVKlSbh2VK1d26zh//rxrmlNsbKzrVfi5\nc+cycODAfG9bpkwZKlWq5HY6+5iudPDgQWrWrHmVe8jz41+uXDkWLVrE1KlTqVq1Kl26dHG9gzdh\nwgSMMTRt2pR69eoxa9asq+7rSklJSWzatMntj7358+e7XjF3OBy5pku+//77rFq1isjISKKjo/n6\n66+ve7+ejisv+T2PUlNTr/s5mfPx9PPzy/X4Zm/70qVLjBgxglq1ahEQEOB6wSHnc+3KbeX3XLjS\noUOH6NOnD+Hh4QQEBDBgwIBr+jktU6YMvXr1Ys6cORhjWLhwYb6fWJeVlZWr3+FwuPrzexyfe+45\natWqRfv27bntttsYP358ntu/lt8HOR+3nPdPUlISkyZNcnveHTx4kNTUVFJSUggLC3PbTkRExFV/\nH5YpU4bOnTvz8ssvc/z4cVq0aOF2m6SkJJYsWeK2zy+//JLffvsNgLCwMN5880327NlDUlIS5cqV\nc/tdULVqVbff7Wlpadxzzz0em3I6cuTIDf3uyvn7xs/Pj5CQENe7Z9m/I0+fPn3dP1Miv0caGInc\nIry9venVqxcLFixgwYIFdO3alXLlygGXp67s2rWLb775hpMnT7J+/fp8X+UvX748Z8+edZ3O/p86\nXJ6/3qNHD55//nkOHz5MWloanTp1cm0nr6ko17NwuEqVKhw4cMB1Oud/34jsAcmcOXPo2bOn2x8E\naWlpbseZlJRE1apVCQkJwc/Pj507d7r+ODlx4oTrFdO8julqx/jggw+ydetWtm/fzsqVK3NNl7qe\nbeVUrVo11yv7nrZ1tce/ffv2rF69mt9++406deq4Pl69cuXKTJs2jeTkZP71r38xbNiw6/549OrV\nq9O6dWu3P/bS09N5++23871N48aN+eCDDzhy5Ajdu3enV69eeV7P03PV03Fdj8J4Tub3B/f8+fNZ\nvnw5a9as4eTJk+zbt8/j9XPK/tnO7/hHjRqFt7c327dv5+TJk8yZM+eaP9giNjaWefPm8emnn1K2\nbFmaNWuW5/XmzZuXqz/n8yq/x7F8+fJMnDiRvXv3snz5cl5//XXWrl2ba/s3ct9nP+erV6/OCy+8\n4Pa8O336NL1796ZKlSq51lgmJSVd08/ewIEDef311+nfv3+uy6pXr86AAQNyPdeff/75XNcNDw9n\n2LBhbusgr9eVvUXxu+tKhfEzJXIr08BIxDKe/mjKnk6XcxodXH61z8/Pj4CAAI4fP57vmhWAhg0b\n8vnnn3PgwAFOnjzpNv8/IyODjIwMQkJC8PLy4qOPPmL16tWuyytXrsyxY8fc/kd8Pe9K9erVi/j4\neNealrfeeuu6/sd95b769+/P0qVLmTdvXq53aeDylL6LFy+yYcMGVq5cSc+ePXE4HAwZMoThw4dz\n5MgR4PLagZzHebX9XsnPz48ePXrQt29fmjVrluuV75y3v577q1+/fnz66acsWbKEzMxMjh075poC\nlvMPVE+P/+HDh1m2bBlnzpzB19eXcuXK4e3tDVyeypS9ZqBChQo4HI7r/uS5zp07s2vXLubOncvF\nixe5ePEi3377LT///HOex3vx4kXmzZvHyZMn8fb2xt/f39VzJU/PVU/HdTU577tevXrxxhtvkJKS\nwokTJxg/fnyhfUrY6dOnKV26NEFBQZw5c4ZRo0bl6shPxYoVCQsLY86cOVy6dImZM2e6DZKzX+F3\nOp0kJyfz2muvXXNXixYtcDgcPPvss3n+3FxLv6fHccWKFezZswdjDE6nE29v7zyfVzfy+yD7Phsy\nZAhTp07lm2++wRjDmTNnWLlypWsdm4+PD5MnT+bixYssXbqUb7/99prum9atW/Ppp5/y1FNP5bqs\nf//+fPjhh6xevZpLly5x/vx51q1bR3JyMidOnGDMmDHs3buXrKwsjh49ysyZM11TSK/lmK4UGhrK\nwYMHuXjxInB5mlth/+7KqSA/UyK/FxoYiVima9eubt9j1KNHD9dlTZs2pXz58qSmptKxY0fX+cOH\nD+fcuXOEhITQsmVLOnbsmO8fGPfffz+9e/emfv36NGnShK5du7qu6+/vz+TJk+nVqxdBQUEsWLCA\nBx980HXbOnXqEBMTQ82aNQkKCiI1NTXXgnBPf9i8+OKLhIeHU6NGDdq3b5/rXZ4r5fXqZ87zqlWr\nxt13342Xl1euKSnZ6xKqVq3KgAEDXJ9KBjB+/Hhq1apF8+bNXZ8klv3BDNey37yuExsby/bt2/Oc\nlnTl/XOtr+pWq1aNVatWMWnSJIKDg7nrrrvYunVrru14evyzsrL4xz/+QVhYGMHBwWzYsIF33nkH\ngO+++47mzZvj7+/Pgw8+yOTJk13fXeSpOedpf39/Vq9ezcKFCwkLC6NKlSqMHDmSjIyMfI937ty5\n1KhRg4CAAKZNm8a8efPyPH5Pz1VPx3W152TOy4cMGUL79u2pX78+jRo1onPnzvn+IZ+f/O6bgQMH\nEhERQVhYGPXq1XMNSPK7X6/c1vTp03nttdcICQlh586dbmt1xowZww8//EBAQABdu3alR48e+T6P\n8trPwIED2bZtW57vjOS8jqf+/B7HPXv20K5dO/z9/WnZsiVPPPEErVu3zrX9G/l9kL3/Ro0aMX36\ndJ588kmCgoK4/fbbXR+c4Ovry9KlS5k9ezbBwcEsXrzY7ffo1e6fNm3aUKFChVyXhYeHs2zZMl55\n5RUqVapE9erVmTRpEsYYSpUqRVJSEvfffz8BAQHceeed+Pn5uT4sIntb+e0/L23btqVu3bqEhoa6\npsMVxe+ua/mZ2r9/P/7+/vrwBfndcxh9wYGIFJN33nmHxYsX5znN5loNHjyYsLAwt09mWrduHQMG\nDCjwVL3rceDAAerUqcOhQ4coX778TduvFK6PPvqIoUOHkpiYWNwpRWrOnDlMnz6dzz//vLhTXArj\n94GISEHoHSMRuWl+++03vvzyS7Kysvjll194/fXXXR8gcSMSExNZunSp6wMqiktWVhaTJk0iJiZG\ng6JbzPnz51m1ahWZmZkkJyczbtw4Hn744eLOKlJnz57l7bff5tFHHy3WjsL+fSAiUlAaGInITZOR\nkcHjjz+O0+nkvvvuo3v37gwbNuyGtjV69GjuvPNOnn/+eSIiInJdXlTfJn+lM2fO4HQ6WbNmjce1\nXWInYwxjx44lKCiIu+++m7p167q9+/h78/HHH1OpUiWqVKnitk6xOBTm7wMRkcKgqXQiIiIiIlLi\n6R0jEREREREp8TQwEpESqV69ete88DwyMpI1a9YUcVHRi46OZsaMGXle1qlTJ+bMmVPo+1y3bl2u\nL3gVd//5z3+oVq0a/v7+ro9jv1FxcXGMHj26kMpEREoWDYxE5Hcnr4HM7NmzadWqlev09u3buffe\ne69pe3l95G1BjR07Ns+P9i5Kno5j1apVN71HLnv22WeZMmUK6enpNGjQoEDbKornalG58mdSRKS4\naWAkIr87t9Ifh9cqMzOzuBNuaZcuXSruhDwZY9i/fz9RUVGFus2SQD8TIlLYNDASkRLhyoFSzneV\nzp07R2xsLEFBQURFRTFhwoRc079+/PFHGjRoQIUKFejTpw8XLlxwXbZixQoaNmxIYGAgf/zjH9m2\nbZvrsvHjxxMeHo7T6aROnTp89tlnJCQkEB8fz6JFi/D39+euu+7KszkyMpIJEyZQv359/P39uXTp\nEq+++iq1atXC6XRSt25dPvjgA9f1Z8+ezT333MNzzz1HUFAQNWvWJCEhIc9tp6amUr9+fSZNmgS4\nT7O72nb27dvHvffei9PppF27djzxxBNXfbfp9ddfp3LlylStWtX1pZfffvstoaGhbn/IL126lIYN\nGwKX31X705/+RJ8+fXA6nTRq1Mj1BbcAKSkp9OjRg0qVKlGzZk3efPNN12XZtx0wYAABAQHMnj2b\n6OhoRo8ezT333IPT6eSBBx7g2LFjAHTu3Jm33nrLrbl+/fosW7YMAC8vL9555x1uv/12nE4nL774\nInv37qVFixau58TFixfzPHZjDP/7v/9LZGQklStXJjY2llOnTnHhwgXX49qgQQNuv/32PG//9NNP\nU716dQICAmjcuDFffPGFx/s6W3p6Om3atGH48OHA5Wl2TzzxBF26dMHpdNK8eXN+/fVX1/W/+uor\nmjRpQoUKFWjatCkbN24EYO3atdSvX991vXbt2tG0aVPX6VatWrF8+XLg8nN20qRJ+f6sZPvpp58Y\nOnQoGzduxN/fn6CgIAAuXLjAs88+S0REBKGhoQwdOpTz588Dl6dlhoeHM2HCBKpUqcKgQYMYN24c\nPXv2ZMCAATidTurXr8/u3buJj4+ncuXKRERE8Mknn1zT/SUighER+Z2JjIw0n376qdt5s2bNMvfc\nc4/bddasWWOMMeZ//ud/THR0tDlx4oQ5ePCgufPOO021atVc142IiDDNmjUzqamp5vjx4+aOO+4w\nU6dONcYY88MPP5hKlSqZb775xmRlZZl3333XREZGmoyMDPPzzz+batWqmdTUVGOMMUlJSWbv3r3G\nGGPGjh1rBgwY4PE4IiIizF133WUOHjxozp8/b4wxZsmSJa7tLVq0yJQrV8789ttvrmP09fU1//73\nv01WVpZ55513TNWqVV3bi46ONjNmzDC//vqrqV27tpk+fXquy65lO82bNzfPPfecuXjxovniiy+M\n0+nM91jWrl1rfHx8zJgxY0xmZqZZtWqVKVu2rDlx4oQxxpioqCjz0Ucfua7fvXt38/rrrxtjjBkz\nZozx9fU177//vsnMzDQTJ040NWrUMJmZmebSpUvm7rvvNi+//LK5ePGi+fXXX03NmjXNxx9/7Hbb\nZcuWGWOMOXfunGndurWpVauW2b17tzl37pyJjo42I0aMMMYYs3jxYtOsWTNXx+bNm01wcLC5ePGi\nMcYYh8NhunfvbtLT082OHTtMqVKlTJs2bcy+ffvMyZMnTVRUlHn33XfzvA9mzJhhatWqZfbt22dO\nnz5tHn74Ybf7y+FwuJ4XeZk7d645fvy4uXTpkpk0aZIJDQ01Fy5cyPO6cXFxZvTo0ebo0aOmSZMm\nZvTo0a7LYmNjTXBwsPn2229NZmam6devn+nTp48xxphjx46ZChUqmLlz55pLly6ZBQsWmMDAQHP8\n+HFz9uxZU6ZMGXPs2DGTkZFhKlWqZMLDw83p06fN2bNnjZ+fnzl+/Lgx5vLPVX4/K1eaPXu228+k\nMcYMHz7cPPjggyYtLc2kp6ebrl27mpEjRxpj/u+5NGLECJORkWHOnTtnxowZY8qUKWNWr15tMjMz\nzcCBA01ERIR55ZVXTGZmppk+fbqpUaNGvvetiEhOGhiJyO9ORESEKV++vKlQoYLrX9myZU2rVq1c\n18k5MKpZs6ZZvXq167J///vfJjw83O268+bNc51+/vnnzeOPP26MMebxxx93++PTGGP+8Ic/mPXr\n15s9e/aYSpUqmU8//dRkZGS4XWfMmDGmf//+Ho8jMjLSzJo1y+N1GjZs6Prjf9asWaZWrVquy86c\nOWMcDoc5dOiQMeby4Odvf/ubiYyMNAsXLnTbzpUDo/y2k5SUZHx8fMy5c+dcl/fv3z/fY1m7dq3x\n8/Mzly5dcp1XqVIls2nTJmOMMa+++qrp16+fMebyH+dly5Z1DfTGjBljWrRo4bpdVlaWqVKlitmw\nYYP5+uuvTfXq1d329corr5hHHnnEddvWrVvnOsa///3vrtNTpkwxHTp0MMZcHjgFBgaaPXv2GGOM\neeaZZ8wTTzzhuq7D4TBfffWV63SjRo3MhAkTXKefeeYZM3z48Dzvg7Zt25p33nnHdfqXX34xvr6+\nrvvkagOjKwUGBpqtW7fmeVlcXJwZNGiQqVevnpk4cWKuy4YMGeI6vWrVKlOnTh1jjDHvvfee28DQ\nGGNatGhhZs+ebYwxplWrVmbp0qVm48aNpn379qZ3794mISHBfPbZZ6Z+/fqu23j6WbnSlS9WZGVl\nmXLlyrndF1999ZVrYLN27VpTqlQpt0HhmDFjTPv27V2nly9fbsqXL2+ysrKMMcacOnXKOBwOc/Lk\nyTwbRERy0lQ6EfndcTgcLFu2jLS0NNe/KVOm5Lv2IiUlxW3qXHh4eK7rhIaGuv7bz8+P06dPA5CU\nlMSkSZMIDAx0/Tt48CCpqancdttt/POf/2Ts2LFUrlyZmJgYUlNTr+tYrpzS995773HXXXe59rV9\n+3bXdLArO8uWLQvgajXGMG/ePMLDw+nRo4fH/ea3nZSUFIKCgihTpky+jVcKDg7Gy+v//ndTtmxZ\nV1O/fv348MMPOXv2LIsXL+bee++lcuXKruvmfCwcDgfh4eGkpKSwf/9+UlJS3O73+Ph4Dh8+nOdt\n8zqunI9jmTJl6NWrF3PmzMEYw8KFC3NND8zZ5efnl+t09raulJqa6vYlxNWrVyczM5NDhw7lc4+5\n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\naWBUiGyYVwnqsK0B1GFbA6jDtgawo8OGBlCHbQ2gDtsaQB22NYAdHQVp0MBIRERERERKPK0xEhER\nERGREkFrjERERERERDzQwKgQ2TCvEtRhWwOow7YGUIdtDWBHhw0NoA7bGkAdtjWAOmxrADs6tMZI\nRERERESkALTGSERERERESgStMRIREREREfFAA6NCZMO8SlCHbQ2gDtsaQB22NYAdHTY0gDpsawB1\n2NYA6rCtAezo0BojERERERGRAtAaIxERERERKRG0xkhERERERMQDDYwKkQ3zKkEdtjWAOmxrAHXY\n1gB2dNjQAOqwrQHUYVsDqMO2BrCjQ2uMRERERERECkBrjEREREREpETQGiMREREREREPNDAqRDbM\nqwR12NYA6rCtAdRhWwPY0WFDA6jDtgZQh20NoA7bGsCODq0xEhERERERKQCtMRIRERERkRJBa4xE\nREREREQ80MCoENkwrxLUYVsDqMO2BlCHbQ1gR4cNDaAO2xpAHbY1gDpsawA7OrTGSEREREREpAC0\nxkhEREREREoErTESERERERHxQAOjQmTDvEpQh20NoA7bGkAdtjWAHR02NIA6bGsAddjWAOqwrQHs\n6NAaIxERERERkQLQGiMRERERESkRtMZIRERERETEAw2MCpEN8ypBHbY1gDpsawB12NYAdnTY0ADq\nsK0B1GFbA6jDtgawo0NrjERERERERApAa4xERERERKRE0BojERERERERDzQwKkQ2zKsEddjWAOqw\nrQHUYVsD2NFhQwOow7YGUIdtDaAO2xrAjg6tMRIRERERESkArTESEREREZESQWuMREREREREPNDA\nqBDZMK8S1GFbA6jDtgZQh20NYEeHDQ2gDtsaQB22NYA6bGsAOzq0xkhERERERKQAtMZIRERERERK\nBK0xEhERERER8UADo0Jkw7xKUIdtDaAO2xpAHbY1gB0dNjSAOmxrAHXY1gDqsK0B7OjQGiMRERER\nEZEC0BojEREREREpEbTGSERERERExAMNjAqRDfMqQR22NYA6bGsAddjWAHZ02NAA6rCtAdRhWwOo\nw7YGsKNDa4xEREREREQKoMjWGA0aNIiVK1dSqVIltm3bBsDx48fp3bs3SUlJREZGsnjxYipUqABA\nfHw8M2fOxNvbm8mTJ9O+fXsAvv/+e+Li4jh//jydOnXijTfeyPtAtMZIREREREQ8KJY1Ro888ggJ\n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\ne2rDhg3avHmzMjMzNWTIEM8aqps8ebKeffbZqG1fkv72t78pPz9faWlpGj58uGfbfeutt9S9e3e1\nbNlSZWVlys3N1ZYtW9SzZ0/df//9atmyZcQbFi1apDFjxvjf2Y2WEydOaPny5brssss0bNgwPffc\nc3rzzTeVmpqqO++8s8Z6xUjauXOnXnzxRe3bt08XXHCBUlJSNGnSJE9ujwrbt2/XypUrdeDAAUln\nn0RGjx7t6ROqlQ4LDXTYa6DDXoOlDjRuDIzC7PLLL9fevXs92daiRYv0m9/8Rj169NDWrVu1cOFC\n3XjjjZKkzMxMbd261ZOO2bNna8OGDTp9+rQGDx6sv/71r7ruuuu0du1a5eTk6L777ot4Q05Ojnw+\nnyrfndevX69rr71WPp9Pq1atiniDJGVlZSk/P1+S9NRTT+k3v/mNxowZozVr1uj666/35FMTJSk1\nNVXvvvuu4uLidMcdd+iSSy7RuHHjtG7dOr377rt66aWXIt7QsmVLXXzxxeratasmTpyo8ePH69JL\nL434dqubNGmSTp8+raNHj6pVq1Y6cuSIxo4dq3Xr1kmSli1b5knHwoUL9eqrr2rQoEF67bXXlJGR\nodatW+ull17S4sWLNXjwYE86gPoqLCz0T/ts6j777DO1a9cu2hmIMiufLlqXUaNG6fXXX/dkW198\n8YXmzZunffv26Vvf+pYmTZrkP+/uu+/W4sWLI96wd+9ezZ07V+3atdPs2bN1zz33aNOmTcrMzNSj\njz6q9u3bN/xKQ1jz1GT16tWrzv/i4+M96+jZs6crLS11zp398Ik+ffq4X//618455zIyMjzr6NGj\nhzt16pQrKytzzZs3d8XFxc45544ePerS0tI8acjIyHCTJk1y69evd3l5eW7Dhg2uQ4cOLi8vz+Xl\n5XnSUNFRoW/fvu6TTz5xzjl35MgR17NnT886unfv7v93ZmZmlfN69+7tSUNGRoY7ffq0+9///V93\n2223uXbt2rkRI0a4pUuXupKSEk8anDv7++qcc6dOnXKXXnqpO3XqlHPOuTNnzvjP80LPnj1deXm5\nc865srIy981vftM559yePXtcenq6Jw1FRUVu5syZrlu3bq5Vq1audevWrlu3bm7mzJmuqKjIk4bz\nGTlypCfbKS4udjNnznS33HKL+5//+Z8q533ve9/zpME55z7++GM3ffp0N3PmTFdcXOymTp3qevbs\n6b7zne+4wsJCzzo+//zzKv999tlnrlOnTv7TXnjttdf8/y4qKnLTpk1zvXr1chMnTnSHDh3ypME5\n52bMmOF/7N60aZPr3Lmz69Kli7v88svdhg0bPOvIyMhwDz/8sNuxY4dn26wuPz/fZWdnu1tuucV9\n/PHHbujQoa5FixauX79+bsuWLZ51lJSUuJ/85CcuNTXVJSQkuLZt27qsrCy3ZMkSzxqcc27YsGEu\nNzfXHTx40J05c8Y559yBAwfcvHnz3LBhwzxp2Lx5c63/vf322y4xMdGTBuecGzNmjJs5c6Z76aWX\n3PXXX+/Gjh3rjh075pzz7jXotdde6xYtWuR+8YtfuJSUFDdv3jy3Z88et2jRIjd27NigrpOBURDa\nt2/vtmzZ4nbv3l3jv//4j//wrCM1NbXK6dLSUjd8+HB3zz33ePZCyzlXZVvVt+tVR3l5uXv00Ufd\nkCFD/A/WycnJnmy7srS0NP+LiuoPDF7eJjfddJN7+umnnXPOTZ061eXn5zvnnPvggw9cv379PGmo\n/vOfOHHCrVixwn372992bdu29aTBubO/J8ePH3eHDx92zZs3d5999plz7uzAvfrvUCT16tXL/6Tx\n+eefu759+1Zp9IKFJ3XnbDyxW3hSdy4yT+zB8Pl8Ljk5ucp/cXFxLjk52XXu3NmThsr7fdq0ae7+\n++93u3fvdgsWLHA33HCDJw3OuSp/xBo0aFCVx88+ffp41pGcnOx+9KMfucsvv9z169fPLViwwO3f\nv9+z7TvnXL9+/dxrr73m/vCHP7iOHTu6F154wZ05c8atW7fODRgwwLOOnJwc98wzz7iPP/7YPfro\no27u3Lnugw8+cJMnT3azZ8/2rMPCp4s2a9bMZWdn1/rfRRdd5EmDczX/yPqzn/3MDRw40H366aee\nPYZWfl11+eWX13leQzAwCsJtt93m/vrXv9Z63s033+xZR3Z2ttu6dWuVr508edJNnjzZ+Xw+zzqy\nsrJcWVmZc86506dP+79eVFRU492KSNu7d68bN26cu/vuu11SUpKn23bOuU6dOvlfVHTu3NkdOHDA\nOXf2r11eDoyKiorcrbfe6jp37uyysrL8L3CuueYat23bNk8aAj0wHjlyxJMG55z7xS9+4Tp37uxS\nUlLck08+6Xr06OGmT5/uevbs6ebPn+9Zx2OPPeZ69erlpk+f7lJSUvwD18LCQnfNNdd40mDhSd05\nG0/sFp7UnYvME3swHnnkETdixAj3zjvv+L/m9R+XKu/33r17+wfvFae90r17d/9HAPfv37/KeV6+\ny1yxP86cOeM2btzo7rrrLpeYmOiys7Pdk08+6WmDc9G9f1affVLxh6XTp097dqgW55wbOnSomz9/\nfpV3MA8ePOhyc3PdkCFDPGlITU11H3zwQa3nefm6p3v37lVe8znn3JIlS1xqaqq74oorPGmo/Lgw\nZ86cKucF+7vKwCiGffzxx+7gwYM1vn7mzBn3t7/9zbOOir+yVvfpp5+6d99917OOyl555RVP/4p0\nPmVlZW7Xrl2eb7e4uNht3brVbdq0qdb7SiS9//77nm4vkN27d/unA+3YscMtX77cswFiZf/+97/d\nn/70J/fee+95vm3nbDypO2fjid3Ck7pzkXliD9bHH3/sxo0b5+655x73xRdfeD4w6tixo3v00Ufd\nI4884jp16lRlYOTVtGznnFu0aJEbOnSoe+ONN9yDDz7ofvjDH7q8vDz305/+1H3nO9/xrKO2Afqp\nU6fc66+/7qZOnepJw1VXXeVWr17tnn/+eZeUlOReeukl55xzeXl5Lisry5MG55wbMGCA/w/SK1as\ncMOHD/ef5+XA6PPPP3f33Xeffzpyq1atXLdu3dx9993n2ZTTF154oc7nkJdfftmTBuec+/GPf+zW\nrFlT4+uvv/6669q1qycNDzzwQK1T8z/88EN30003BXWdDIwAoImw8KTunI0ndgtP6s5F5ok9VCtW\nrHBZWVmuffv2nm73wQcfdA899JD/v4o1VgcOHHCTJ0/2tGX9+vVu/PjxLiMjw/Xq1cuNHDnS/e53\nv6v1YJKR8u1vf9uzbdXlrbfecoMGDXI333yzKygocEOGDHEJCQkuMzPTbdq0ybOObdu2uX79+rmW\nLVu6gQMH+v/w9sknn7iFCxd61uGcc9u3b3dr166t8Xv7+uuve9qwbt06/zrzCpXX6TWVjnA3MDAC\nALhnnnkm2gnOOeefYtjUG5yLbkdZWZn/HX8L9w0rt4mFfeGcjQ4LDc55e99YuHChS0lJcTfccIO7\n4oorqvwhx6spuBYarHREooGBEQAgKmvyamOhw0KDc3RYa3CODmsNznnbYeHTgKs39O3bNyqfSGyh\nIxINceH/VHEAgEVpaWl1nldYWNikOiw0xErHJ598EvWGprYvrHTEwm3iZYdzTs2bN5ckJScna+PG\njbrpppu0Z8+eKsdR9LIhLy/P8wYrHZFoYGAEAE3EJ598otWrV6t169Y1zhs4cGCT6rDQQIe9Bjrs\nNVjqaN++vbZt26aMjAxJUvPmzfXqq69q+vTpevfdd5tMg5WOSDQwMAKAJuK6667TkSNHlJmZWeO8\nQYMGNakOCw102Gugw16DpY7f//73io+Pr/K1+Ph4LVu2THfeeWeTabDSEYkGn/PyfTcAAAAAMKhZ\ntAMAAAAAINoYGAEAAABo8hgYAQAAAGjyGBgBQJRUfMxohaVLl+oHP/iBJOnJJ5/Us88+G/D7K18+\nFCtXrtR7770X8vXUpfrP2RCLFi1SamqqJk+eHMai+v3MeXl5ysnJqfW8O+64Iyz7rKCgIOBHEQMA\nvMOn0gFAlPh8vjpPf/e7323w9wfr5ZdfVk5Ojnr06BHwcqdPn9YFF1zQ4OsPpfO3v/2t3njjDV12\n2WVBX0dt6vsz1+Wpp54Ka49XysvLFRfHUz8A1IZ3jADAiMofEvrQQw/p0UcflSRt2rRJvXv3VmZm\npu677z7/OwzOOR04cECjRo1SSkqKZs6c6f/+NWvWaODAgerbt68mTJigsrIySdKsWbPUs2dPpaen\n67777tObb76pV155Rffdd58yMzO1a9euKk1Tp07VXXfdpQEDBmjmzJnatGmTBg4cqD59+ugb3/iG\nPvzwQ0ln370aO3ZsrS0VPvvsMw0cOFCvv/56jfMWLFigtLQ0paWlaeHChZKku+66S7t27dLIkSP1\n2GOPVbn80qVLdeONN2r48OHq3LmznnjiCT3yyCPq06ePvv71r6uoqEjS2QFMVlaWMjIyNG7cOB07\ndkz//Oc/q/zMu3fv1o4dOzR06FBlZGSob9++2rVrl3w+n44cOaLx48erR48e+s53vuPffnZ2trZs\n2SLp7DtiDzzwgDIyMvT1r3/df/DNnTt3asCAAerdu7ceeOABJSQk1Hq7nz59Wnfeead69eqlESNG\n6Pjx49q5c6f69u3rv8xHH33kP52cnKyZM2eqd+/e6t+/v3bu3ClJ+vTTTzVu3DhlZWUpKytL//zn\nP/33pcmTJ+vqq6/Wrbfeqrlz52ratGkaPHiwunTposcff1yS9OCDD/r3vSTdf//9WrRokTZu3KhB\ngwbpxhtvVJcuXTRr1iw9++yzysrKUu/evWvcZwAgZjkAQFRccMEFLiMjw//fFVdc4X7wgx8455x7\n6KGH3KOPPuqcc65nz57uX//6l3POuVmzZrm0tDTnnHNLlixxX/va11xJSYk7fvy469Spk9u3b5/7\n9NNP3Te/+U139OhR55xzubm57j//8z/d559/7rp16+bf/hdffOGcc27q1KnuxRdfrLVx6tSpLicn\nx505c8Y551xJSYkrLy93zjm3du1ad9NNNwVscc655s2bu8LCQte/f3+3bt26Gtt4++23XVpamjt6\n9Kg7cuSI69mzp9u2bZtzzrnk5GT3+eef1/ieJUuWuK5du7ojR464Tz/91LVo0cI9+eSTzjnn7r33\nXvfYY48551yV733ggQfc448/XuvPnJWV5VasWOGcc+7EiRPu6NGjbsOGDa5ly5Zu//797syZM+7r\nX/+6+8c//uGccy47O9tt3rzZOeecz+dzr776qnPOuRkzZrif/exnzjnnrrvuOrd8+XLnnHO/+93v\nXPPmzWv8HLt373ZxcXHunXfecc45N2HCBPfcc88555wbPHiwfz/Mnj3bPfHEE/598otf/MI559zv\nf/97d/311zvnnJs4caL7+9//7pxzbs+ePa5Hjx7OOecefPBB169fP3f8+HH/6W984xvu5MmT7rPP\nPnNt27Z15eXlrqCgwPXp08c559zp06ddly5d3OHDh92GDRtcq1at3KFDh9yJEyfcZZdd5h588EHn\nnHMLFy5099xzT42fCwBiEe+nA0CUfPWrX9XWrVv9p5ctW6a33367ymW++OILHTlyRP3795ckTZo0\nSa+++qr//CFDhvjfiUhNTVVBQYGKioq0fft2/xHhT548qYEDB6ply5a66KKLNH36dF1//fW6/vrr\n/dfjAhzSbvz48f7pcMXFxbr11lu1Y8cO+Xw+lZeX19myZ88edezYUSdPntSQIUO0ePFiXXPNNTWu\n/+9//7vGjh2rr371q5KksWPH6q9//avS09PrbPL5fBo8eLAuueQSXXLJJWrVqpV/PVBaWpr/qOf/\n/ve/9cADD/j348iRI2v8zKWlpTpw4IBuuOEGSdKFF17ov0xWVpZ/Gl9GRoYKCgr8+7XChRdeqOuu\nu06S1LdvX61du1aS9K9//UurVq2SJE2cOFE//vGPa/1ZOnfurN69e/u/v6CgQJJ0++23a8mSJVqw\nYIFeeOEFbdq0yf89EydOlCTdfPPNuvfeeyVJ69atq7LuqbS0VGVlZfL5fBo9erS+8pWv+Pfddddd\np/j4eLVt21bt27dXYWGhOnXqpLZt22rbtm06dOiQ+vTpo9atW0uSrrrqKiUmJkqSunbtqhEjRkiS\nevXqpQ0bNtRxKwFAbGFgBABGBBqc1HWZihe7knTBBRf4ByrDhg3TH/7whxrfn5+frzfeeEN//vOf\n9cQTT+iNN96QFHgd0MUXX+z/909+8hMNGTJEL7/8svbs2aPs7OzztsTHx6tfv35avXp1rQMjn89X\n5edyztVrXVLl7TVr1qzKC/+KbU+dOlWrVq1SWlqali1bpry8vCrbbcg2Kv9MlVU+8nqzZs1qvUxD\ntnHs2DFJZweIc+fO1bXXXqu+ffv6BynVVfwczjm99dZbVQZ2FSrfhlLVwV/ln6tiMFZYWKhp06bV\n2lh5Xwfz8wKAVawxAgCDnHNyzqlly5ZKSEhQfn6+JGn58uUBv8/n82nAgAH6xz/+4V97UlZWpo8+\n+khlZWUqLi7WqFGjtGDBAr3zzjuSpISEBJWUlNSrq6SkxP8OypIlS+r1PT6fT88884zef/99/fKX\nv6xx/jXXXKMVK1bo2LFjKisr04oVK2odQFVWn0GkJB05ckQdOnTQqVOn9Nxzz/kHEZV/5oSEBCUl\nJWnlypWSpBMnTvgHJ6EYMGCA/vznP0s6/+1Wm4suukgjRozQ9773vSqDFEl6/vnn/f+veAdr+PDh\nWrRokf8yFbdvQ4wZM0arV6/W22+/7X9XCACaCgZGABAltX0qXcXXKv/76aef1h133KHMzEwdPXpU\nLVu2rHGZytq1a6elS5dq4sSJSk9P18CBA/XBBx+otLRUOTk5Sk9P1zXXXKNf//rXks5Ox/rVr37l\n/9CBQJ0zZszQ7Nmz1adPH50+fbrW3tq+3+fz6Y9//KPWr1+v3/3ud1XOz8zM1NSpU5WVlaUBAwbo\njjvu8E+jO9911tZY+byHH35Y/fv319VXX13lE+iq/8zPPvusFi1apPT0dF199dU6dOhQwJ+prv1T\n+Xsee+wxLViwQBkZGdq5c6f/dgv0/dVPT5o0Sc2aNdPw4cOrXKaoqEjp6el6/PHH/bfjokWL9Pbb\nbys9PV09e/bUk08+Wa9tVBYfH69rr71WEyZMaNBtCwCNgc/V989uAICoKCsr0yWXXCJJys3NVWFh\nof/FMOw6duyYf93U8uXL9fzzz+vll19u0HU88sgjKi0t1dy5c/1f69y5szZv3qw2bdqEtVeSzpw5\no759++rPf/6zunTpEvbrBwDLWGMEAMb95S9/0bx581ReXq7k5GQtXbo02kmoh82bN+sTIhpYAAAA\ncElEQVT73/++nHNq3bq1nnnmmQZ9/5gxY7R7926tX7++ytcj9Q7N9u3blZOTo7FjxzIoAtAk8Y4R\nAAAAgCaPNUYAAAAAmjwGRgAAAACaPAZGAAAAAJo8BkYAAAAAmjwGRgAAAACaPAZGAAAAAJq8/w9C\n0TYdvx77CQAAAABJRU5ErkJggg==\n",
"text": "<matplotlib.figure.Figure at 0x196e16410>",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "total = sum(c.values())\nticks = [i/10 for i in range(1,11)]\nax = pd.DataFrame([sum([c[j] for j in c if j <= i]) / total for i in range(low_rank+1)], \n index=range(low_rank+1)).plot(legend=False,\n xlim=(0,200),\n yticks=ticks,\n figsize=(8,8))\nax.set_xlabel(\"Highest ranking matching hypernym\")\nax.set_ylabel(\"Share of trials\")\nax.set_yticklabels(['%d%%' % (r*100) for r in ticks])\nax.set_title(\"Cumulative distribution of top hypernym predictions:\\nWhat share of trials have a hypernym at this rank or above?\")",
"prompt_number": 10,
"outputs": [
{
"text": "<matplotlib.text.Text at 0x15d975fd0>",
"output_type": "pyout",
"metadata": {},
"prompt_number": 10
},
{
"png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAIHCAYAAAACSl9BAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4Tdf6wPFvRIKQeZQgQdCqIWqoFEm0DdqaqjUP0YFr\nqFZbLUrRCkJN9WtVtUrM3FZblKoprVl7kSp1kSaCxJgEmaf1+2PfnOZwMiDJOSd5P89zHvYZ9n73\nXmdnv2ettdeyUEophBBCCFFhVTJ2AEIIIYQwLkkGhBBCiApOkgEhhBCigpNkQAghhKjgJBkQQggh\nKjhJBoQQQogKTpIBUeqmTZvG4MGDH/jzTZo04ddffy3BiAzz8fFhz549AMycOZNhw4aV2LptbW2J\niYkBYOjQoXzwwQcltu6RI0cSGhpaYusrrs8//xx3d3fs7OxITEws022X9DEU9woKCmLZsmUArFmz\nhs6dOz/Qep577jlWrVpVkqGJUiDJQDm2du1aWrVqha2tLZ6enjz33HMcOHCgzOOwsLAo9nsN/ZH/\n888/CQgIKOmw7pE/zvfff58vv/yyyM/k/4NZmDt37uDj46Pbzv0ck/xWrFhBhw4d9J77/PPPmTx5\n8gOt70FlZWXxzjvvsHv3bm7fvo2jo6Pe6zExMVSqVInc3NxS2f7DHENRPPmP8cCBA9mxY0eRnzGU\n+G/btu2hfgyIsiHJQDk1f/583nrrLSZPnsy1a9e4ePEio0ePZvPmzWUeS3ke16qoC1J2drbB5839\nmFy5coX09HQeffTRQt9n7vtZmILK1hSZU6zCOCQZKIdu3brF1KlTWbx4MT179qRatWpYWlry/PPP\nM3v2bODeX+ARERHUrl1bt+zj48PcuXNp1qwZtra2vPrqq1y9epVnn30We3t7goODSUpKMvjZvM/n\nVbnfrXfv3tSsWRMHBwcCAwM5ffo0AEuXLmXt2rXMmTMHW1tbevToobeuuLg4bGxs9Kqkjx8/jqur\nKzk5OQB8/fXXNG7cGCcnJ7p06UJsbGyBx2nVqlV4e3vj4uLCzJkz9V7L/wsnPT2dQYMG4eLigqOj\nI23atOHatWtMmjSJffv28frrr2Nra8sbb7wBQKVKlVi8eDENGjSgUaNGuuf+/vtv3fpv3LhBp06d\nsLOzIygoSBenoV/UebUPZ86cYcSIERw6dAhbW1ucnJwMluWXX35JgwYNcHZ2pkePHsTHx+teq1Sp\nEl988QUNGzbE0dGR119/vcDjk5GRwdixY/Hy8sLLy4u33nqLzMxMzp49q0sCHBwceOaZZ+75bF5N\njoODA7a2thw5cgSlFKGhofj4+ODu7k5ISAi3b9/W2+8vv/wSLy8vPD09mTdvXoGxASQkJNC1a1fs\n7Oxo27at7viOHj2acePG6b23e/fufPLJJ4D2fQoLC+Oxxx7DycmJV155hYyMDN17t27dip+fH46O\njrRr146TJ0/qXvPx8WHOnDm68yIqKopKlSqxcuVKvL29cXV11X2Xrly5QvXq1UlISNB9/tixY7i5\nuZGdnc2KFSto164db7/9No6Ojvj6+nLw4EGWL19OnTp1cHd3Z+XKlQXuf1BQEBMnTuSJJ57A3t6e\nnj176s6NvOP59ddf4+3trSujws6PnTt38sgjj+Dg4MCYMWP0Erm7a6ROnTpFcHAwzs7OeHh4MGvW\nLHbs2MGsWbPYsGEDtra2tGjRQhdnXu1Zcb4Dho4lwNGjR2nVqhX29vZ4eHjwzjvvFHhsxANQotzZ\nvn27qly5ssrJySnwPUOHDlUffPCBbnnv3r2qVq1aumUfHx/l7++vrl27pi5fvqzc3NxUixYt1IkT\nJ1R6erp66qmn1Icffmjws3mf3717t1JKqalTp6pBgwbpXlu+fLlKTk5WmZmZauzYscrPz6/AuO5e\n11NPPaW+/PJL3Wvjxo1TI0eOVEop9f333ytfX1915swZlZOTo0JDQ9WTTz5pcP9PnTqlatSoofbt\n26cyMjLU22+/rSpXrqzbzrRp09TgwYOVUkotWbJEdevWTaWlpanc3Fx17Ngxdfv2baWUUkFBQWrZ\nsmV667awsFCdOnVSiYmJKj09XfdcVFSUUkqpkJAQZWtrq9v2m2++qdq3b6+UUio6OlpZWFjolV3+\nbaxYsUL3XkPHbPfu3crFxUUdP35cZWRkqDFjxqiAgAC92Lp166Zu3bqlYmNjlaurq/rpp58MHqMP\nPvhA+fv7q+vXr6vr16+rJ598UredmJiYe+LMz9Dry5YtU76+vio6OlolJyerXr166Y5x3n4PGDBA\npaamqpMnTypXV1e1a9cug+sPCQlRzs7O6rffflPZ2dlq4MCBql+/fkoppY4ePao8PT1Vbm6uUkqp\n69evKxsbG3Xt2jWllFLe3t6qadOm6tKlSyohIUG1a9dOTZ48WSml1LFjx5Sbm5s6evSoys3NVeHh\n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\njy50psriTJld2PmWm5tb6JTmhU33HR8ff88EXN7e3rrppgcMGKB33rzwwgtUrVqV69evk5qaSsuW\nLXXfwWeffVZv6ue0tDSWLl3KunXrsLGxKTD+8kSSASNq27Ytt27d4ssvv9RNRmNnZ4enpydLly7F\n09NT70QzJK+n7fvvv4+lpSV//vknt27dYtWqVXp/YIrqkVujRg3mzp1LVFQUmzdvZv78+ezdu7fI\nfZg3bx5nz57l6NGj3Lp1i19++eWejoJ3T6MaGBioN43qnTt3+Oyzz+5Zt6enJwkJCXp/pGJjYw1e\nLAy530lfirs/edzd3Vm6dCmXL1/miy++YNSoUQ906+fIkSNp3Lgx58+f59atW8yYMUOv7Pr37883\n33zDhQsXOHr0KC+++CKgHcu6devqHcvbt2+zdetWg9sZMGAAPXv25NKlSyQlJTFixIgH7hhVq1Yt\n2rZty6ZNm1i9evU9F+D809/m5uZy6dIlvLy8qF27dqExP0jv8ZCQENasWcOuXbuwsbHhiSeeeKB9\nutvDnlNFTWBUlPuZsvfu9d7P97ggP//8M6GhoWzatKnA9xRnyuzC9nnNmjWFTmmuCpju28vLC09P\nz3vmnbhw4YJu28888wzXr18nMjKS9evX62Y4dXFxoVq1apw+fVr3HUxKSuL27du69Vy7dg2lVLGn\n7C4PJBkwomrVqtGqVSvmz5+vVwPQvn175s+fT2BgYKGfz39iJycnU716dezs7Lh8+TIff/yx3nuL\nmmr3xx9/5Pz58yilsLOzw9LSslgTxiQnJ1OtWjXs7e1JSEgw2Cktf5xdu3bl7NmzrF69mqysLLKy\nsvjtt984c+bMPZ+rXbs2Tz75JBMnTiQjI4M//viDr7/+mkGDBhUZF2i/fAxN92sovrzni7M/ef79\n739z6dIlABwcHB54StXk5GRsbW2xsbHhzJkzfP7553qv+/n54eLiwmuvvUaXLl2ws7MDoE2bNtja\n2jJnzhzS0tLIycnhzz//5Pfffy9wO46OjlhbW3P06FHWrl37ULdtDRkyhNmzZ/Pnn3/eM8Pkf/7z\nH910uAsXLqRq1aq0bduW1q1bFxpzQRerwi5ieTNfjhs3jiFDhhQZd/51Fbbehz2n3N3duXnzpt5F\n5n4uxg8zZe/9npeGPPbYY/z000+MHj2aLVu2GHzP/U6ZbSjOwqY0h4Kn+3722Wc5e/Ys69atIzs7\nmw0bNnDmzBm6du0KgJWVFb1792bcuHEkJiYSHBwMaJ0ahw0bxtixY3XH9/Lly/z888+6bdauXZu4\nuLgKNUXwz1gBAAAgAElEQVRyxdlTExUYGMj169f1pgvt0KEDN27cuKeJoLDpTqdOncqxY8ewt7en\nW7duvPjii3qvT5w4kdDQUBwdHZk/f/49cZw7d47g4GBsbW158sknGT16dIHJSP5fb2PHjiUtLQ0X\nFxeefPJJnn322ULjrFGjBj///DPr16/Hy8uLmjVrMnHiRDIzMw1ua926dcTExODp6UmvXr346KOP\ndLPNFfUr8qmnnip0ut8H3Z88v//+O23btsXW1pYePXqwaNEifHx8CjxmBZk7dy5r167Fzs6O4cOH\nG5xOesCAAezZs0f36wa0P2pbt27lxIkT1KtXD1dXV4YPH6538clv8eLFTJkyBTs7O6ZPn07fvn0L\njKmomAF69epFbGysrvo1/+d69OjBhg0bcHJyYs2aNWzatAlLS0ssLS0LjbmgMi1o+uw8Q4YM4eTJ\nk/ckig+yrjwPe0498sgj9O/fn3r16uHk5KS7m6C40xYXNmVvYfsE939e3h1X3v+bNWvG1q1bGTZs\nmMHpwO93yuy7FTWleWHTfTs7O7N161bmzZuHi4sLc+fOZevWrbo7h0A7b3bv3k3v3r31LuyzZ8/G\n19eXtm3bYm9vT3BwMGfPntW9funSJXx9fY1+O3aZKq3OCC+//LJyc3NTTZo00T138+ZN9cwzz6gG\nDRqo4OBglZiYqHtt5syZytfXVzVq1EjXszg9PV117txZNWnSRC1evFj33mHDhqljx46VVuhCiGLy\n9fW9pxPdtGnT1KBBg8o0jpUrV97TMVUIUXylVjPw8ssv89NPP+k9FxYWpsvAnn76acLCwgA4ffo0\nGzZs4PTp0/z000+MGjWK3NxcduzYQUBAAH/88QerVq0CIDIyEqUULVq0KK3QhRDFsGnTJiwsLHQ1\nNXlUGf+aSk1N5bPPPmP48OFlul0hypNSSwY6dOiAo6Oj3nObN28mJCQE0Dr9fP/99wD88MMP9O/f\nHysrK3x8fPD19eXo0aNYW1uTkpJCZmam7g/MlClTmD59emmFLYQohqCgIEaNGmWw42dZDiG7Y8cO\n3NzcqFmzpl4TihDi/lQuy41dvXpVd1uNu7u77nayuLg4vYlm8m5D6tGjB6tWrcLf35/33nuPzZs3\n07JlS71bYoQQZS8iIqLA16ZOnVpmcXTu3LnAWwOFEMVXpslAfsX59WBpacmaNWsAyMrKokuXLvzw\nww+8/fbbXLx4kSFDhtCtW7d7Pufl5aW711QIIYQo7+rXr8/58+cf+PNlmgy4u7tz5coVPDw8iI+P\n1/Xw9vLy0ruXNO+e5PwWL15MSEgIhw8fxsHBgblz5/LUU08ZTAbi4uIqVi/QcmbatGlMmzbN2GGI\nByBlZ96k/EpXYiIcPAipqZCW9s8jPV1/uajn09IgJQXu3AELC7C1haioh2uaK9NkoHv37oSHhzN+\n/HjCw8Pp2bOn7vkBAwbw9ttvc/nyZc6dO0ebNm10n0tMTOTHH3/k559/ZvPmzbpbRAoagEOYt/yD\nmAjzImVn3qT8SkdaGvzf/8HHH4OfH9jbQ7VqULWq9m/ew9n5n//f/Vr+R9WqUL26lgTk3W36sN10\nSi0Z6N+/P7/88gs3btygdu3afPTRR0yYMIE+ffqwbNkyfHx82LhxIwCNGzemT58+NG7cmMqVK7N4\n8WK9JoTp06fr5pvv3Lkzn332Gc2aNWPkyJGlFb4QQghRIkaOhKtXYd8+eOQRY0djmIUqh/XpDzLP\nuDAdERERBAUFGTsM8QCk7MyblF/JS06GWrXg3DlwdS297TzsdU+SASGEEKKUrF4N69dDAVOGlJiH\nve7JcMTC5BR225owbVJ25k3Kr+StXg3FnE7FqCQZEEIIIUpBfDwcOQLduxs7kqJJM4EQQghRChYs\ngMhIWLGi9LclzQRCCCGECdq4EcxllGxJBoTJkXZL8yVlZ96k/EpOVpZWK/Dkk8aOpHgkGRBCCCFK\n2JkzUKcO1Khh7EiKR/oMCCGEECVs5UrYtk27rbAsSJ8BIYQQwsScOAEtWhg7iuKTZECYHGm3NF9S\nduZNyq/kHD+uzUNgLiQZEEIIIUqQUuZXMyB9BoQQQogSFBMD7drB5ctlt03pMyCEEEKYkBMnzKuJ\nACQZECZI2i3Nl5SdeZPyKxnHj5tXEwFIMiCEEEKUKHOsGZA+A0IIIUQJUQq8vWHvXqhfv+y2+7DX\nvcolGIsQQghRLikF2dmQmgpXr2qdA8+ehb/+0mYnTEmB69e1kQe9vaFuXWNHfH+kZkCYnIiICIKC\ngowdhngAUnbmzVzLTylITITYWO0CffIknDsH167BzZuQkwO5udpDKf1/i3ouOxsyMiA9HSpVgmrV\nwMMDPD3B1xcefRS8vLRhh52c4JFHwNm57I+B1AwIIYSokP76C77+GlavhrQ0bS4AX19o2hS6ddMu\n2k5OYGWlXcgtLPT/Lc5zlStD1apQpQpYWhp7j0uP1AwIIYQwK+npMHkyrFoFL78MQ4dqv8grMqkZ\nEEIIUa5kZ2tV/PHx+o+kJC0RiIiAxx6DU6fAxcXY0ZYPUjMgTI65tlsKKTtz9zDll5AA0dFw8SLc\nvq11tEtL0x7p6ZCZqT2ysrR/s7O1R06O9u+dO/9c9G/e1Kr3a9bUfzg5adX19epBly5aNb7QSM2A\nEEIIo8jMhP374ZNPtF/r9epB7drg4KB1tKtWDWxstAu4g4PWdm9trf1rZaW1wVeurD2qV//nou/u\nrj0nyo7UDAghhLhHXg/9O3e02+ZSUrT/HzsGv/wCkZHaLXaPPAKjRsHgwdqFXxjHw173JBkQQggB\naBf/8HDYtk0bUjczE+zttV/teY8mTSAwEFq10nrvyy940yDJgAGSDJg3aXc2X1J25kkpmDIFFiyI\noEePIPr1g5YttSp7aZc3D9JnQAghxEOZPBm2b4eVK6FXL2NHI4xBagaEEKICmzVLG7Tnl1/kNj1z\nJjUDQgghHsjy5fDll3DggCQCFZ1MYSxMjsypbr6k7MzHjh0wcaLWPFCzpvaclF/FJTUDQghRAURH\nw5498Pvv2mQ+x4/Dli3QqJGxIxOmQPoMCCGEmcrN1Ub4S03VHikp2r/JydptgteuweHDsHevNgpg\nx47w5JNaAtC06T81AsL8ya2FBkgyIIQwZ9HRWoe+33+Hv//+Z9CfvIt93r/p6dqMetWrawP+5D2q\nV9eG7nV21m4R7NhRGxxIbhMsvyQZMECSAfMm96qbLym7+5Oerv16v3pV+/fCBdiwQZua95lnoHVr\nbUreGjW0R/7Bf2xstESgUgn2/JLyM19yN4EQQpiQ7Gztl3tysvbv7dsQEwNRUXDyJJw4AXFx2msA\nbm7aWPxubuDhAWPHwvPPa2P4C1FWpGZACCHuQ1wcfPed1gHvzz+1aXXzV+NnZ2u/3PN+ydvagre3\nNolPkybg56cN41u9ujaBj1Tdi5Jgls0En3zyCV999RVKKYYNG8abb75JQkICffv25cKFC/j4+LBx\n40YcHBw4cOAAo0aNwtramnXr1uHr60tSUhJ9+/Zlx44dBtcvyYAQoiQppc3Kt3gx7N4N3bvDE09o\nnfCcnPQv/nKBF8bwsNe9Mh9n4M8//+Srr77it99+IzIykq1btxIVFUVYWBjBwcGcPXuWp59+mrCw\nMADmz5/P9u3bWbhwIUuWLAEgNDSUSZMmlXXooozIvc7mq7yVXVqalgA0bgxjxmgd8WJiYMUKGDkS\n2rfXXvP21jrrVa1q3olAeSs/UXxl3mfgzJkzPPHEE1StWhWAwMBAvv32WzZv3swvv/wCQEhICEFB\nQYSFhWFlZUVKSgopKSlYW1sTFRXFpUuXCAgIKOvQhRAVQHq61gSwZw989pk2O9+SJRAQYN4XeiEK\nU+bNBGfOnKFHjx4cOnSIqlWr8swzz9CqVStWrVpFYmIiAEopnJycSExMJDIykhEjRmBjY8PKlSsZ\nN24coaGh1K9fv8BtSDOBEOJ+ZGZq/QDWrYNdu6BhQ/D3h3/9C5o1M3Z0QhTN7O4meOSRRxg/fjyd\nOnWievXq+Pn5YWlpqfceCwsLLP6Xgjdv3pxDhw4B8Ouvv+Lp6Ulubi59+/bF2tqaefPm4ebmds92\nhg4dio+PDwAODg74+fnpbpnJqwqTZVmWZVnevTuCqVMhNzeI4cPhtdciqFHDdOKTZVk2tJz3/5iY\nGEqC0e8mmDRpErVq1eKTTz4hIiICDw8P4uPj6dixI2fOnNG9TylFly5dWL9+PWPGjGHWrFlER0fz\n888/ExoaqrdOqRkwbxFyr7PZMreyU0r79R8dDT/+KLfzmVv5iX+YXQdCgGvXrgEQGxvLpk2bGDBg\nAN27dyc8PByA8PBwevbsqfeZlStX8vzzz+Po6Ehqaqqu9iA1NbXM4xdCmLeUFPjhB+jbF44dg02b\nJBEQFZtRagYCAgK4efMmVlZWLFiwgI4dO5KQkECfPn2IjY3Vu7UQIDU1la5du7Jz504sLS3Zv38/\no0aNokqVKqxdu5YGDRro75TUDAgh/icuDj7/XOsUeOoUXL8OWVnanQDdu8OQIeDoaOwohXg4ZjnO\nQGmTZEAIAdpof927Q8+e2m2BTZtqo/3VqCF3BojyxSybCYQoTP4OMsK8mFLZbd4MnTrB/PmwaBG8\n8II2zr+trSQCBTGl8hNlS+YmEEKUK9nZMGUKrFoFW7ZoIwUKIQonzQRCiHLj1CltZEBra1i7Vpv8\nR4iKQJoJhBAV3vXr8PbbEBQEffrAjh2SCAhxPyQZECZH2i3NV1mWnVLw11/w7rvQqJE2j8CpU/D6\n63DXOGaimOTcq7gkGRBCmJ3Vq7Uhgzt10voIREZqtw9KbYAQD0b6DAghzIZSMHMmfPWV1iegbVu5\nM0AIMMO5CYQQ4kFNn65NKHTwINSsaexohCg/pJlAmBxptzRfpV1269bB8uWSCJQWOfcqLkkGhBBm\nISkJLl2CJk2MHYkQ5Y/0GRBCmIWff9b6C8iPVyHuJeMMCCEqhCNHZDRBIUqLJAPC5Ei7pfkqzbI7\nfFiSgdIm517FJcmAEMLkKaXVDLRta+xIhCifpM+AEMLkRUVpQw1fvGjsSIQwTdJnQAhR7kkTgRCl\nS5IBYXKk3dJ8lVbZSRNB2ZBzr+KSZEAIYfKkZkCI0iV9BoQQJm3XLnjlFfjvf6FaNWNHI4Rpkj4D\nQohy684deO01WLpUEgEhSpMkA8LkSLul+Srpshs/Hjp2hC5dSnS1ogBy7lVcMmuhEMLkZGdDaChs\n3QqRkcaORojyT/oMCCFMRm4uHD0K770HVarAypUyQ6EQxfGw1z2pGRBClDmlIDERzp3THmfPao+I\nCHB2hmHD4I03oJI0ZApRJqRmQJiciIgIgoKCjB2GeAB3l92tW9qogTdvwokTsGcPHDsG165pHQJ9\nfaFBg38e/v7ac8I45NwzX1IzIIQwOqUgNVW76P/3vxAbC8uXw48/gpeX9mv/kUegf39YuBA8POTu\nACFMidQMCCF08qrvY2Ph6lW4fl173LihXeiTkrRf+3mPO3fg9m3t36pVwdYW7OzAxQX69oUhQ8DR\n0dh7JUT597DXPUkGhBCA1nGvd2/t4l67ttZxz8UFXF21f52dwcFBu9jb22sPOzvtYWsLlaWeUQij\nkWYCUe5Iu2XZUUq7+G/apPXg/+or6NHjwdcnZWfepPwqLkkGhCjHlNKq+GNjtY58V65o1f/nz8PJ\nk1pP/kqV4NFHtZ78jz1m7IiFEMYgzQRCmLmcHPj7bzh1Ck6f1i70eRf/ixfBxkar9q9dGzw9wc0N\nfHygaVNo1Eir5hdCmDfpM2CAJAOiPMvK0nrp790L+/fDX3+Bu7v2q/6xx7Rb87y9oU4dLQGoXt3Y\nEQshSpskAwZIMmDepN2yYAcOwMiRWoe9bt0gIACaNYMaNYwdmUbKzrxJ+Zkv6UAoRAWgFHz4odbB\nb8ECeOklsLAwdlRCiPJCagaEMHFKwYQJ8NNPsGuXdqufEELk97DXPaOM/D1r1iwee+wxmjZtyoAB\nA8jIyCAhIYHg4GAaNmxIp06dSEpKAuDAgQM0b96c1q1bc/78eQCSkpLo3LmzMUIXosxNn64lAXv2\nSCIghCgdZZ4MxMTE8OWXX3Ls2DFOnjxJTk4O69evJywsjODgYM6ePcvTTz9NWFgYAPPnz2f79u0s\nXLiQJUuWABAaGsqkSZPKOnRRRmRO9X9cuqQN37tlizboj6mTsjNvUn4VV5knA3Z2dlhZWZGamkp2\ndjapqal4enqyefNmQkJCAAgJCeH7778HwMrKipSUFFJSUrC2tiYqKopLly4REBBQ1qELUeZCQ+G1\n17RbAoUQorQYpc/A0qVLeeedd6hWrRqdO3dm1apVODo6kpiYCIBSCicnJxITE4mMjGTEiBHY2Niw\ncuVKxo0bR2hoKPXr1y9w/dJnQJQHf/8NbdpoE/+YQ62AEMJ4zK7PQFRUFAsXLiQmJoa4uDiSk5NZ\nvXq13nssLCyw+F9X6ebNm3Po0CF2795NVFQUnp6e5Obm0rdvXwYPHsy1a9fKeheEKBPTpsGYMZII\nCCFKX5nfWvj777/z5JNP4vy/v3C9evXi0KFDeHh4cOXKFTw8PIiPj8fNzU3vc0opZsyYwfr16xkz\nZgxz584lOjqaRYsWERoaes92hg4dio+PDwAODg74+fnp7p/NaxeTZdNcXrhwYYUvr8hI2L07iE8/\nNY14irucv83ZFOKRZSm/8rqc9/+YmBhKQpk3E0RGRjJw4EB+++03qlatytChQ2nTpg0XLlzA2dmZ\n8ePHExYWRlJSkq4TIUB4eDi3bt3ijTfeoFevXixatIjo6Gi+++475s+fr79T0kxg1iIq+MAn6eng\n5wczZ0KvXsaO5v5U9LIzd1J+5sssRyCcM2cO4eHhVKpUiccff5yvvvqKO3fu0KdPH2JjY/Hx8WHj\nxo04ODgAkJqaSteuXdm5cyeWlpbs37+fUaNGUaVKFdauXUuDBg30d0qSAWHGpkzRJhH67jtjRyKE\nMBdmmQyUNkkGhLk6fFgbZvjECfDyMnY0QghzYXYdCIUoSv42sYrkwgWtWWDFCvNNBCpq2ZUXUn4V\nlyQDQpiA5GTo3h3efReef97Y0QghKhppJhDCBIwbB1evwsqVMgGREOL+SZ8BAyQZEObk77+hdWs4\ndQo8PIwdjRDCHEmfAVHuVLR2y/ffh7Fjy0ciUNHKrryR8qu4ynzQISHEPw4fhv37YdkyY0cihKjI\npJlACCN67jno2ROGDzd2JEIIcyZ9BgyQZECYgzNnICgIYmKgalVjRyOEMGfSZ0CUOxWl3XLRIvjX\nv8pXIlBRyq68kvKruKTPgBBGkJAA69bBX38ZOxIhhJBmAiGMYs4c7VbC8HBjRyKEKA+kz4ABkgwI\nU5aRAfXrw5Yt0KKFsaMRQpQH0mdAlDvlvd0yPByaNSufiUB5L7vyTsqv4pI+A0KUoawsCAuD1auN\nHYkQQvxDmgmEKEMrV2qzEu7ZY+xIhBDlifQZMECSAWGKcnOhcWNYvBieesrY0QghyhPpMyDKnfLa\nbvn779qMhB07GjuS0lNey66ikPKruCQZEKKMbNkC3bvLFMVCCNMjzQRClBE/P/j0U2jf3tiRCCHK\nG2kmEMIMXLgAly+Dv7+xIxFCiHtJMiBMTnlst9y6VZuh0NLS2JGUrvJYdhWJlF/FJcmAEGVg82at\nv4AQQpgi6TMgRCm7cwe8vLRmAltbY0cjhCiPpM+AECYsKwtGjYJnn5VEQAhhuiQZECanvLRbpqXB\niy9CYqI26mBFUF7KrqKS8qu4JBkQohTcvv1PbcB330G1asaOSAghCiZ9BoQoYdeva4lAmzbauAKV\nJOUWQpQy6TMghAm5eBECAqBLF/jsM0kEhBDmQf5UCZNjru2WZ89Chw7w2msQGloxhx0217ITGim/\niquysQMQwtz997/w1VdaJ8HZs+GVV4wdkRBC3B/pMyDEA7p5E959F7Ztg6FD4dVXoUEDY0clhKiI\nHva6JzUDQtynmBhYtw4++QT69YNz52QMASGEeZM+A8LkmFK7pVLaJEObN2u1AK1aQevWEBsL27fD\nwoWSCORnSmUn7p+UX8UlNQNCGBAbC/PnQ3g42NhA06bQrp32nL8/WFkZO0IhhCg50mdAiP/JyNDa\n/1etgogIrSPgm29C7drGjkwIIQr3sNc9SQZEhZOTAykpWgfA336Dw4e1R2Sk1gwweDD07g329saO\nVAghisfsBh3673//S4sWLXQPe3t7Fi1aREJCAsHBwTRs2JBOnTqRlJQEwIEDB2jevDmtW7fm/Pnz\nACQlJdG5c+eyDl2UkZJot1RKu9gfOwZr1sCECdC1K3h7g7W1NotgQID2mqsrzJgBV67AL79o4wRI\nIvBgpM3ZvEn5VVxl3megUaNGHD9+HIDc3Fy8vLx44YUXCAsLIzg4mPfee4/Zs2cTFhZGWFgY8+fP\nZ/v27URHR7NkyRLmzp1LaGgokyZNKuvQhYm7fPmfKv6DB6FyZa2K/5FHoEkT7SLfpAnUrQuWlsaO\nVgghTIdROxDu2rULX19fateuzebNm/nll18ACAkJISgoiLCwMKysrEhJSSElJQVra2uioqK4dOkS\nAQEBxgxdlKKgoKD7en9cHEybBt98o93qN2IErF4NLi6lEp4oxP2WnTAtUn4Vl1GTgfXr19O/f38A\nrl69iru7OwDu7u5cvXoVgIkTJzJkyBBsbGxYuXIl48aNY8aMGUaLWZiWEyegWzfo318bDlgSACGE\nuH9GSwYyMzPZsmULs2fPvuc1CwsLLP43sHvz5s05dOgQAL/++iuenp7k5ubSt29frK2tmTdvHm5u\nbvesY+jQofj4+ADg4OCAn5+fLuvNaxeTZdNcXrhwYbHKKycniP79YdSoCIKCwMXFNOKvyMv525xN\nIR5ZlvIrr8t5/4+JiaFEKCP5/vvvVefOnXXLjRo1UvHx8UoppeLi4lSjRo303p+bm6s6deqkEhIS\n1MCBA1VsbKz65Zdf1KRJk+5ZtxF3S5SAvXv3Fvme7GylfHyU+umn0o9HFF9xyk6YLik/8/Ww1z2j\njUC4bt06XRMBQPfu3QkPDwcgPDycnj176r1/5cqVPP/88zg6OpKamqqrPUhNTS3TuEXpy8uAC7N5\nM7i7g9xUYlqKU3bCdEn5VVxGGWcgJSUFb29voqOjsf3fWK4JCQn06dOH2NhYfHx82LhxIw4ODgCk\npqbStWtXdu7ciaWlJfv372fUqFFUqVKFtWvX0uCu2WFknIHyr2NHGD5c6ysghBAVnQw6ZIAkA+Yt\nIiKi0F8of/wBzz6rTRgkwwKblqLKTpg2KT/zZXaDDgnxsD75BEaNkkRACCFKitQMCLNy/To0bKjd\nRujqauxohBDCNEjNgKhQli6FF1+UREAIIUqSJAPC5OS/jza/rCxYvFibSVCYpoLKTpgHKb+KS5IB\nYTa++QYaNYKmTY0diRBClC/SZ0CYjbZtYeJE6NHD2JEIIYRpkT4DokI4dUqbkKhrV2NHIoQQ5Y8k\nA8LkGGq33LULunSRqYdNnbQ5mzcpv4pLkgFhFnbvhqefNnYUQghRPkmfAWHysrO1qYnPnZNbCoUQ\nwhDpMyDKvd9/B29vSQSEEKK0SDIgTM7d7ZbSRGA+pM3ZvEn5VVySDAiTJ8mAEEKULukzIExaWprW\nPBAXB3Z2xo5GCCFMk/QZEOXa/v3QrJkkAkIIUZokGRAmJ3+75bJl0Lu38WIR90fanM2blF/FJcmA\nMFkXLsDOnfDqq8aORAghyjfpMyBM1jvvgIUFzJ1r7EiEEMK0Pex1T5IBYZJu3wYfHzh+XBtjQAgh\nRMGkA6EodyIiIli2DDp1kkTA3Eibs3mT8qu4Khs7ACHulpsLixdDeLixIxFCiIpBmgmEydm1S+sv\ncOKE1mdACCFE4aSZQJQ7S5bAiBGSCAghRFmRZECYlLg4+OmnCAYNMnYk4kFIm7N5k/KruCQZECbl\n66/hqafA1tbYkQghRMUhfQaEyVAK6teHf/8bWrY0djRCCGE+pM+AKDdOntT+ffxx48YhhBAVjSQD\nwmT88AP06AG//BJh7FDEA5I2Z/Mm5VdxSTIgTEZeMiCEEKJsSZ8BYRIuXoQWLeDKFagsQ2EJIcR9\nkT4DolzYvBmee04SASGEMAZJBoRJ+OEH6NlT+7+0W5ovKTvzJuVXcUkyIIwuORkOH9YmJhJCCFH2\npM+AMLo9e2DKFNi/39iRCCGEeZI+A8LsHT4MbdsaOwohhKi4JBkQRnfoEPj7/7Ms7ZbmS8rOvEn5\nVVxGSQaSkpJ46aWXePTRR2ncuDFHjhwhISGB4OBgGjZsSKdOnUhKSgLgwIEDNG/enNatW3P+/Hnd\n5zt37myM0EUJU0pqBoQQwtiM0mcgJCSEwMBAXnnlFbKzs0lJSWHGjBm4uLjw3nvvMXv2bBITEwkL\nC+PFF1/k//7v/4iOjua7775j7ty5jBs3ju7duxMQEGBw/dJnwHycPw8dO2rjDAghhHgwZtdn4Nat\nW+zbt49XXnkFgMqVK2Nvb8/mzZsJCQkBtGTh+++/B8DKyoqUlBRSUlKwtrYmKiqKS5cuFZgICPNy\n+LB+E4EQQoiyV+bJQHR0NK6urrz88ss8/vjjDBs2jJSUFK5evYq7uzsA7u7uXL16FYCJEycyZMgQ\nZs+ezejRo5k8eTIzZswo67BFKTHURCDtluZLys68SflVXGU+3lt2djbHjh3j008/pXXr1owdO5aw\nsDC991hYWGBhYQFA8+bNOXToEAC//vornp6e5Obm0rdvX6ytrZk3bx5ubm73bGfo0KH4+PgA4ODg\ngJ+fH0FBQcA/X3hZNv7yoUPwyCMRRET88/qJEydMJj5ZlmVZlmVTXM77f0xMDCWhzPsMXLlyBX9/\nf6KjowHYv38/s2bN4u+//2bv3r14eHgQHx9Px44dOXPmjO5zSim6dOnC+vXrGTNmDLNmzSI6Opqf\nf5y7jPMAACAASURBVP6Z0NBQ/Z2SPgNmITUVXF3h5k2oWtXY0QghhPkyuz4DHh4e1K5dm7NnzwKw\na9cuHnvsMbp160Z4eDgA4eHh9Mwbm/Z/Vq5cyfPPP4+joyOpqam62oPU1NSy3gVRAnJz4fPPoUkT\nSQSEEMLYjHI3QWRkJK+99hqZmZnUr1+f5cuXk5OTQ58+fYiNjcXHx4eNGzfi4OAAQGpqKl27dmXn\nzp1YWlqyf/9+Ro0aRZUqVVi7di0NGjTQ3ympGTBZ8fHaSINz5oCVFSxZAs2a6b8nIiJCVyUmzIuU\nnXmT8jNfD3vdM8occc2bN+e333675/ldu3YZfL+NjQ179uzRLbdv354//vij1OITDy8+Hk6d0poA\n4uPh6FFtcKHbt7UOg2PHwoAB8L+uIUIIIYxI5iYQJSYyEj79FLZtg4wMaNpU6xPg6gqtWmm3EDZs\nCJVk3EshhChRZlkzIMqXI0fg/ffhv/+FkSNh3z6oW1d+9QshhLmQ32jigaWnQ//+8OKLWpV/dDRM\nmgT16j1cIpD/1hlhXqTszJuUX8UlNQPigWRlQZ8+YGMDZ89q/wohhDBP0mdA3LeUFBg2TOsM+N13\n2l0BQgghjMfsxhkQ5ik+Hn78UesTULs25OTAv/8tiYAQQpQH95UMJCQkyC195VxODvz9N2zaBJMn\nw/PPQ82a2p0Bn3wCtWrBH3/Ahg1QrVrpxCDtluZLys68SflVXEX2GQgMDGTLli1kZ2fTsmVLXF1d\nadeuHQsWLCiL+EQpunEDNm7UxgC4cAFiYiAuDtzcwM8PHn9caw54/HGtNkDuDhBCiPKpyD4Dfn5+\nnDhxgq+++oqLFy/y4Ycf0rRpU06ePFlWMd436TNQuIsX4b33tPEAnnsOnn4afHy0R+3aUKWKsSMU\nQghxP0p9nIGcnBzi4+PZuHGjbkIgC/mJaJbS07Xhf0ND4fXX4YsvwM7O2FEJIYQwtiL7DEyZMoXO\nnTtTv3592rRpQ1RU1D1zAQjTlp4Os2dr9//v3AkHDsC0aaabCEi7pfmSsjNvUn4VV5E1A71796Z3\n79665fr16/Ptt9+WalCi5KSkQM+eYG0NP/1076RAQgghRIF9BsaMGVPwhywsWLRoUakF9bCkz4Dm\n9m3tbgBfX/jqK7C0NHZEQgghSkOp9Rlo2bKlrm/A3RuQPgPm4d13tURg2TKZHEgIIUTBZATCcurS\nJa1J4OxZcHExdjT3R+ZUN19SduZNys98lfrdBNeuXWPOnDmcPn2atLQ03Ub37NnzwBsVpe/jj+HV\nV80vERBCCFH2iqwZCA4Opm/fvsydO5cvvviCFStW4Orqypw5c8oqxvtW0WsGrl6FRx+FU6e00QOF\nEEKUbw973SsyGXj88cc5duwYzZo10w1F3KpVK37//fcH3mhpq+jJwDvvQEYGfPqpsSMRQghRFkp9\noiJra2sAPDw82Lp1K8eOHSMxMfGBNyhK186dsG4dTJpk7EgenNzrbL6k7MyblF/FVWSfgUmTJpGU\nlMS8efMYM2YMt2/flnkJTNTFizBkCKxdK80DQgghik/uJignlIIOHaBbNxg/3tjRCCGEKEuldjfB\n7NmzGT9+vMHBh0x90KGK6OBBbRbCd981diRCCCHMTYHJQOPGjQGts2B+SikZdMgEffEFDB9ePgYX\nknudzZeUnXmT8qu4CkwGunXrRk5ODn/88Qfz5s0ry5jEfUpIgM2bYf58Y0cihBDCHBXZZ6Bt27Yc\nOnTIrGoDKlqfgUWL4MgRWLPG2JEIIYQwhlIfgdDPz48ePXrQu3dvbGxsdBvt1avXA29UlBylYOlS\n+OwzY0cihBDCXBXZwpyeno6zszN79uxh69atbN26lS1btpRFbKIYIiMhPR0CAowdScmRe53Nl5Sd\neZPyq7iKrBl47bXXaN++vd5z+/fvL7WAxP359Vd4+mkwo1YcIYQQJqbYwxEX9ZwpqUh9Bnr3hu7d\nYfBgY0cihBDCWEqtz8ChQ4c4ePAg165dY/78+bqN3Llzh5ycnAfeoCg5SsH+/doMhUIIIcSDKrDP\nQGZmpu7Cf+fOHZKTk0lOTsbOzo5vvvmmLGMUBYiKAktL8PY2diQlS9otzZeUnXmT8qu4CqwZCAwM\nJDAwkKFDh+Lj41OGIYni2r9fG4JY+gsIIYR4GDI3gRl77TVo0QJGjzZ2JEIIIYyp1KcwFqZr3z64\n60YPIYQQ4r4VmAyM/9/Udxs3biyzYETxXbsGV69CkybGjqTkSbul+ZKyM29SfhVXgcnAjz/+iFKK\nWbNmlfhGfXx8aNasGS1atKBNmzYAJCQkEBwcTMOG/9/e3cdFVaf/H3+NCpo3CbqBYtviHd6BA97V\n0qqYgVlJ3qRmraGVZTf62229qXXb3KKNtjQz2299+1qiZerWanRjq5Vmsrpqa2ZZ3kJ5Q6wKqEBm\nwOf3BzoLCqLAcObMeT8fjx7LGWbmXGcuZ8/Fua5zTgQJCQnk5eUBkJ6ejtvtpnfv3uzZsweAvLw8\nBg0aVOtx2cmnn0JsbOkAoYiISE1UOjMwdepUXn75ZfLz87nkkkvKv8jl4vjx49Veadu2bfnss89o\n0aKF57Fp06bxs5/9jGnTpvHUU0+Rm5tLSkoKI0aM4PnnnycjI4Ply5fzzDPPMGXKFBITE+lXyWX3\nnDAzMHw4XHdd6Z0KRUTE2bw2M/D000+Tl5fH9ddfz4kTJ8r9V5NC4Iyzg05LSyMpKQmApKQkVqxY\nAUBAQAAFBQUUFBQQGBjI3r17OXDgQKWFgBNkZcGaNTBmjNWRiIiIP7igswmys7PZvHkzAH369CEk\nJKRGK23Xrh3Nmzenfv363HPPPUyYMIHg4GByc3OB0kKhRYsW5Obmsm3bNiZOnEjjxo1ZuHAhU6ZM\nITk5mfbt21e+UX5+ZODJJ2HfPnj5Zasj8Q7dU92+lDt7U/7sy+t3LVy2bBlTp06lf//+GGN44IEH\nePrppxk5cmS1V5qenk7r1q05fPgw8fHxdO7cudzvXS6X55bJbrebDRs2ALBu3TrCwsIoKSlh9OjR\nBAYGMmvWrBoXJ3ZSUlJaBCxdanUkIiLiL6osBpKTk9m8ebNnh3v48GEGDhxYo2KgdevWAFx22WUM\nGzaMTZs2ERoayvfff0+rVq3Iyso6ZwdvjOGJJ55gyZIlTJo0iWeeeYaMjAzmzp1LcnLyOesoe7Gk\noKAgoqOjPRXvmYlZOy5/9BHUq7eW/HwA6+PxxvKZx3wlHi1f+HJcXJxPxaNl5c9fl8/8nJmZSW2o\nsk0QFRXFF1984flLvaSkBLfbzfbt26u1wsLCQoqLi2nWrBkFBQUkJCTw6KOP8uGHH9KyZUumT59O\nSkoKeXl5pKSkeF6XmprKsWPHmDx5MsOHD2fu3LmeocLZs2eX3yg/bhPceitcfbUuNCQiIv/l9TbB\nddddx6BBg7j11lsxxrB06VIGDx5c7RVmZ2czbNgwAIqKirjttttISEigV69ejBo1ivnz5xMeHl7u\n+gaFhYWkpqayevVqAB588EGuv/56GjZsyOLFi6sdi938+CO8/z48+6zVkXjXWvUtbUu5szflz7ku\naIDwrbfeIj09HYC+fft6dua+yl+PDLz/funw4KefWh2Jd+n/kOxLubM35c++arrf070JbOSuu6Br\nV3jwQasjERERX6JioAL+WAwUF0Pr1vCvf0HbtlZHIyIivkQ3KnKI9HRo08YZhUDZaVmxF+XO3pQ/\n57qgYqCwsJCdO3d6OxY5j7//vfQSxCIiIrWtyjZBWloaU6dO5ccffyQzM5OtW7fy6KOPkpaWVlcx\nXjR/axMYA+3aQVoaREVZHY2IiPgar7cJZs6cyb/+9S+Cg4MBiImJYd++fdVeoVy8b74pnRnwx9sV\ni4iI9aosBgICAggKCir/onoaNahL778PgwfD6es++T31Le1LubM35c+5qtyrd+vWjddff52ioiJ2\n797NpEmTiI2NrYvY5LSVK0uLAREREW+ocmagsLCQ5ORkVq1aBcCgQYN45JFHaNSoUZ0EWB3+NDOQ\nn196SuGhQ9CsmdXRiIiIL/LqdQaKioqIj49nzZo11V6BFfypGEhLgzlz4OOPrY5ERER8lVcHCBs0\naEC9evXIy8ur9gqkZpzYIlDf0r6UO3tT/pyryhsVNWnShKioKOLj42nSpAlQWoHMnTvX68E5nTGl\nxcC771odiYiI+LMqZwYWLFhw7otcLpKSkrwVU435S5tg3jz4n/+BL790zpkEIiJy8XRvggr4QzGw\nZAlMmVJ6h0InXIJYRESqz+sXHdq1axc333wzXbt2pW3btrRt25Z27dpVe4VStY8/hv/3/0pbBE4s\nBNS3tC/lzt6UP+eqshgYP348EydOpEGDBqxdu5akpCRuu+22uojNkXbvhjFjYOlSXXpYRETqRpVt\ngh49evDvf/+bqKgotm/fXu4xX2XXNsGxY3DVVfDb38Ldd1sdjYiI2EVN93tVnk3QqFEjiouL6dCh\nA/PmzSMsLIyCgoJqr1AqN20axMWpEBARkbpVZZtgzpw5FBYWMnfuXLZs2cJrr71GampqXcTmKEeP\nwrJl8Kc/WR2J9dS3tC/lzt6UP+eq8shAnz59AGjWrFmFpxlK7XjlFUhMhJAQqyMRERGnqXJmYOfO\nnTzzzDNkZmZSVFRU+iKXi499+Pq4dpsZKC6GDh1Kjwz07m11NCIiYjdenxkYOXIk9957L3fddRf1\n69f3rFRqz3vvQWioCgEREbFGlcVAQEAA9957b13E4ljPPw+TJlkdhe9Yu3YtcXFxVoch1aDc2Zvy\n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\ncuQIAHv37mXw4MH06tWLfv36sXPnznPyOW3aNMaPH8/kyZO5+uqrad++PW+99RZQetvZsrdav+22\n20hLS2PBggUMHTqUhIQE2rZty7x583jmmWfo0aMHv/zlL8nNzT1nu0SqzZuXTxTxFfXr1/dcwjM6\nOtpcccUVZtKkScYYY2bOnGlmzZpljDGmW7duZuPGjcYYYx566CETFRVljDHm1VdfNe3atTPHjx83\nJ0+eNL/4xS/MgQMHzOHDh02/fv1MYWGhMcaYlJQU89hjj5mjR4+aTp06edZ/7NgxY4wx48aNM2+9\n9VaFMY4bN84MGTLElJSUGGOMOX78uCkqKjLGGLN69WozYsSI88ZijDFNmzY12dnZ5sorrzQffvih\nMcaYjIwMExkZed7XHjx40ISHh5vc3Fzz008/mb59+3o+n7IeffRR07dvX1NUVGS2bdtmLrnkEs9l\nTocNG2ZWrFhhjDEmJyfH85qxY8ead955xxhjTFxcnPnss8+MMcb8+OOPpl27dmbLli3GGGNOnDhh\nioqKzrt94eHh5ujRoyYjI8M0aNDAbNu2zRhjzKhRo8xrr7123hyWtWbNGtO8eXNz8OBBU1JSYn75\ny1+a9PR0Y4wxnTt3NkeOHDHGGDNmzBjz7rvvGmOMcblcZvHixcYYYx577DHzwAMPGGOMueaaa8zu\n3buNMcZs3LjRXHPNNcYYY5KSksrlc9y4cWbUqFHGGGN27NhhOnToYIwx5pNPPjFDhw41xhiTl5dn\n2rZta4qLi82rr75qOnToYPLz883hw4fNpZdeal566SVjjDG//e1vzZw5c87ZLpHqamB1MSJSFy65\n5BK2bt3qWU5NTWXLli3lnnPs2DHy8/O58sorAbj11lt59913Pb8fOHCg55ahXbt2JTMzk9zcXHbs\n2EFsbCwAp06dIjY2lubNm9OoUSPuvPNObrzxRm688UbP+5jzXAF85MiRnsPkeXl53H777ezZsweX\ny+X5q7uiWL799lvatGnDqVOnGDhwIH/961/p27dvheuoaDsOHz5M//79CQoK8sRx5khEWS6Xi8GD\nB1O/fn0iIyMpKSlh0KBBAERFRZGZmQmU/oX99NNPU1hYSE5ODpGRkZ7P4Mz279y5k9atW9OzZ0/g\nv/MOLper0u0rq23btnTv3h2Anj17kpmZWWUOy+rTpw9hYWEAREdHk5GRQWxsLGPHjmXRokWMGzeO\njRs38tprrwFQr149Ro8eDcCvf/1rhg8fTkFBAf/85z/LzWScOnXKsx1l8wl4biLTpUsXz33n+/Xr\nx3333ceRI0d48803ufnmm6lXr/Sg7YABA2jSpAlNmjQhKCjIM+cQFRXFF198UeF2iVSHigFxpPPt\nkCt7TsOGDT0/169f37Nzjo+PZ/Hixee8ftOmTXz00Ue8+eabzJs3j48++gg4f0+8cePGnp8feeQR\nBg4cyPLly/n222+Ji4urMpaAgAB69erFBx98UGkxUNFrz47pfJ9PYGAgULpzDAgI8Dxer149iouL\n+fHHH7n//vv57LPPaNOmDX/60588h/Cr2v6qtu98z/nhhx/Oec75tqOydYwfP54hQ4bQqFEjRo0a\n5dkxn/2+LpeLkpISgoODyxWaZZXNJ/z3szs7tttvv51FixaxdOlSFixYAJR+TmVjrFevnme5Xr16\nFX4mItWlmQFxPGMMxhiaN29Os2bNPPd0X7JkyXlf53K5uOqqq0hPT2fv3r1A6a2Yd+/eTUFBAXl5\neQwePJjZs2ezbds2AJo1a3bB0/DHjx/3/OX66quvXtBrXC4Xr7zyCt988w1/+ctfLvg1vXv35pNP\nPiEvL4+ioiLeeuutag1NGmM8O/6WLVuSn59fbnix7PZ36tSJrKwszxGaEydOUFxcfEGFWmUuNocV\nad26NWFhYSQnJzN+/HjP4yUlJZ5tWbx4MX379qVZs2a0bduWN998Eyjd/ur8xT5u3DjmzJmDy+Wi\nc+fOnveqTE0+I5GKqBgQR6jobIIzj5X9ef78+UyYMIGYmBgKCwtp3rz5Oc8p62c/+xkLFixgzJgx\nuN1uYmNj2blzJydOnGDIkCG43W769u3Ls88+C8Att9zC008/Tc+ePc8ZIDw7zmnTpvHwww/To0cP\niouLK4y3ote7XC7eeOMNPv74Y1588cVKt7WssLAwfv/739OnTx9+9atf0bZt20qn9su+vqLPtXnz\n5kyYMIHIyEiuu+46zyF7+O9QXY8ePSgpKWHp0qVMmjSJ6OhozxDg+bavsjjKLleWw4o+p8re79Zb\nb+WKK66gU6dOnseaNGnCpk2biIqKYu3atfzxj38E4PXXX2f+/PlER0cTGRlJWlpalTGe/XNISAhd\nu3YtV3ycHePZP9fWGS4iALqFsUgZBQUFNGnSBICUlBSys7M9O3J/d2bbi4qKGD58OHfeeSc33XST\n1WFdtNrI4QMPPEDPnj3L7ZybNWvGiRMnajXWMwoLC+nevTtbt271zEqI1CUdGRAp47333iMmJoao\nqCjS09P5wx/+YHVIdWbmzJmebW/Xrp0tCwGoeQ579uzJl19+6Tnd8Axv/SX+4Ycf0rVrVyZPnqxC\nQCyjIwMiIiIOpyMDIiIiDqdiQERExOFUDIiIiDicigERERGHUzEgIiLicP8f82ojfi8YPwoAAAAA\nSUVORK5CYII=\n",
"text": "<matplotlib.figure.Figure at 0x19fb14510>",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Evaluating KNN model\n*Does an exact match exist among the neighbors? At what rank?*\n\nIf not, does a hypernym match exist? At what level and rank?"
},
{
"metadata": {},
"cell_type": "code",
"input": "knn_accuracy = {}\nfor trial_id in list(set(knn_preds.keys()) & set(cond_r.keys()) & trials):\n # initialize variables for this prediction\n accuracy = {'exact': 10000,\n 'hypernym': {}}\n this_pred = dict([(k, sum([1 / (10 ** d) for d in v]))\n for k, v in knn_preds[trial_id].items()\n ])\n val_order = {j: i for i, j in enumerate(sorted(list(set(this_pred.values())), reverse=True))}\n\n hyp_pred = {m: val_order[v]\n for p, v in this_pred.items() \n if p in mesh_codes_r \n for m in mesh_codes_r[p]}\n \n # loop through known MeSH terms to look for greatest overlap\n for m in cond_r[trial_id]:\n if m in this_pred:\n this_rank = val_order[this_pred[m]]\n if this_rank < accuracy['exact']:\n accuracy['exact'] = this_rank\n elif m in mesh_codes_r:\n for a in mesh_codes_r[m]:\n len_a = len(a)\n for i in range(len_a,0,-4):\n for pa in hyp_pred:\n if pa[:i] == a[:i]:\n if i not in accuracy['hypernym'] or hyp_pred[pa] < accuracy['hypernym'][i]:\n accuracy['hypernym'][i] = hyp_pred[pa]\n\n if accuracy['exact'] == 10000: accuracy['exact'] = None\n \n knn_accuracy[trial_id] = accuracy",
"prompt_number": 11,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "c = Counter([knn_accuracy[t]['exact']+1 \n if knn_accuracy[t]['exact'] is not None\n else 'No match'\n for t in knn_accuracy.keys()])\nprint sum(c.values()), len(knn_accuracy)\n\nax = pd.DataFrame(c.values(), index=c.keys()).plot(kind='bar',\n figsize=(8,8),\n legend=False)\n\nax.set_xlabel(\"Highest rank of nearest neighbor prediction exact match\")\nax.set_ylabel(\"Number of trials\")\nax.set_title(\"Evaluating KNN predictions using manually assigned MeSH terms:\\nHighest ranking match of a known term\")",
"prompt_number": 12,
"outputs": [
{
"output_type": "stream",
"text": "13959 13959\n",
"stream": "stdout"
},
{
"text": "<matplotlib.text.Text at 0x1a596bfd0>",
"output_type": "pyout",
"metadata": {},
"prompt_number": 12
},
{
"png": "iVBORw0KGgoAAAANSUhEUgAAAf0AAAItCAYAAAAzGqM6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVGX7P/DPILghw6aAgEqKG7mnqD0l9DV9jNQsE8US\nKK3MFrOeFG0RrR7IditajNAy1zbXyDJHfco0zSVDEzeURcpwQUBBuX9/GOfHCGdAnXO4j+fzfr14\n6Wz351wMzMWca2aORQghQERERNc8l7reACIiItIHmz4REZFJsOkTERGZBJs+ERGRSbDpExERmQSb\nPhERkUmw6UsuMjISqampmqydlJSEBx54QJO1r0Xx8fF47rnnAAAbN25Ehw4drmidhx9+GC+++KIz\nN00TR44cgYeHB8z8rt7K97nNZkOLFi3qeIsuqqufoblz5+Lmm2/WPZech03fSUJCQtC4cWN4eHgo\nX48//vhVr2uxWGCxWK56neoesKZOnYo5c+Zc9drVcXFxwcGDB5XTr776KgIDA7Fnzx7YbDa4uLjg\nkUcesbvNTTfdhHnz5gG4+ODi4uKCV155xe46wcHB2LBhgybbXJPK98XNN9+MvXv31nib6h4k33vv\nPTz77LOabKMztWzZEoWFhU75+TMqZ/3+OZuMP0OHDx+Gi4sLevToYXf+8ePHUb9+fVx33XW1Wufk\nyZO4//770bx5c1itVrRv3x4vv/yycvmljy0AkJiYiDFjxjjcrvLy8sus6NrEpu8kFosFK1euRGFh\nofI1e/bsut4sKbz44ouYPXs2NmzYgI4dOwIA3N3dMX/+fGRlZSnXu/QB1sfHB7NmzcKZM2fsruMM\n58+fv6LbmflZr1nxPr88JSUl+P3335XTCxYsQOvWrWv9uztp0iQUFxdj7969OH36NJYvX47Q0FCH\nt6nN2ld6P17pY4Ws2PQ1du7cOXh5edn9Evz1119o3Lgxjh8/jhMnTmDw4MHw8/ODj48PhgwZgpyc\nnGrXuvSv2Uv/gk1LS0NYWBisVivatGmDDz/8EABQVFSE2267Dbm5ufDw8IDVakVeXp7dehVrffLJ\nJ2jVqhWaNWuG//73v0pWSUkJ4uLi4OPjg7CwMMyaNavGXZ1CCDz77LP4+OOPsWHDBrtfXC8vL8TH\nx2PGjBmqt+/YsSNuvPFGvP766w5zKsTHx2P8+PEYOHAgrFYrIiMjceTIEeVyFxcXpKSkoG3btmjf\nvj0AYOXKlejWrRu8vb3xr3/9C7/99pty/e3bt6NHjx6wWq0YNWoUzp49q1x26Z6To0eP4q677oKf\nnx+aNm2Kxx57DHv37sX48eOxadMmeHh4wMfHR9nOil3GADBnzhy0bdsWvr6+uOOOO5CXl2e3zR98\n8AHatWsHb29vPProo8pl+/fvR0REBLy8vNCsWTOMGjWq2u9LdXt5QkJC8MMPPwAAtmzZgp49e8LT\n0xMBAQF46qmnAFT9+YqMjMTzzz+Pm266CVarFf/+97/x999/K2tW/Ow0bdoUL774IkJCQrB27VrV\n+2rChAmIioqCh4cHbr75Zhw7dgwTJ06Et7c3OnbsiB07dijXT05ORmhoKKxWK66//np8/fXXymVz\n587FTTfdhKeffho+Pj5o3bo10tPT7WqtvB2X/h6NGDECzZs3h5eXFyIiIpCRkVHtNlf2yiuv4O67\n77Y77/HHH8cTTzxR7fUdbb/a/SiEwKRJk+Dv7w9PT0906dJF2bZLf4ZmzZqFwMBABAcH46OPPrJ7\nNhwfH49HHnkEgwcPhtVqRZ8+feyeKe/duxcDBgyAr68vOnTogKVLlyqX/f333xg6dCg8PT3Ru3dv\nHDhwoMbvzZgxY5Q9dgDw6aefIjY21q7p5ubmYvjw4fDz80Pr1q3x9ttvK5dt3boVMTEx8PT0BAC0\nb98ew4cPrzFXTb9+/QBcfMzx8PDA5s2bAQAff/wxwsLC4OPjg0GDBjl8rFi/fj2Cg4PxyiuvwM/P\nD4GBgfj666+xevVqtGvXDr6+vkhOTlZur/Y7JQM2fSeq7i/JBg0aYPjw4Vi4cKFy3pIlSxAZGYmm\nTZtCCIGxY8fiyJEjOHLkCBo1amT3wF5ZTX/N+vv7Y9WqVTh9+jTS0tIwadIkbN++He7u7khPT0dg\nYCAKCwtx+vRpNG/evNr1fvzxR+zbtw9r167FzJkz8ccffwAAZsyYgSNHjuDQoUP47rvvMH/+/Bq3\nZ8qUKViyZAk2bNiAkJCQKpdPmzYNX3zxBfbt26e6xsyZM/Hmm2/i5MmTDrMqLFiwAM8//zyOHz+O\nbt264Z577rG7fNmyZfjll1+QkZGB7du3Y+zYsZgzZw4KCgrw0EMPYejQoSgrK0NpaSmGDRuGuLg4\nnDhxAiNGjMAXX3xRbc0XLlzA4MGDcd111yErKws5OTmIiYlBhw4d8MEHH6Bv374oLCxEQUEBAPs9\nGj/88AOmTZuGpUuXIi8vD61atarSvFetWoWtW7di165dWLJkCdasWQMAeO655zBo0CCcPHkSOTk5\nlzVOqlzHxIkTMWnSJJw6dQoHDx5EdHS06u0WLlyIuXPn4s8//0RpaSleffVVAEBGRgYeeeQRLFy4\nEHl5eTh16hRyc3Md/owsXboUL730krL7t0+fPujVqxcKCgpw991348knn1SuGxoaiv/97384ffo0\npk+fjnvvvRf5+fnK5Vu2bEGHDh3w999/Y/LkyRg7dqxdrZW349Jtuv3227F//3789ddf6NGjR5Wf\nmerce++9SE9Px6lTpwBcfDa4ePFixMXFVXt9R9uvdj+uWbMGGzduRGZmJk6dOoWlS5cqfzhWrik9\nPR1vvPEG1q5di8zMTNhstir5ixcvRmJiIk6cOIHQ0FA888wzAC4+IRgwYADuvfde/PXXX1i0aBEm\nTJiAPXv2AAAeeeQRNG7cGMeOHcPHH3+MtLS0Gn/v77nnHixatAhCCGRkZODMmTPo3bu3cnl5eTmG\nDBmC7t27Izc3F2vXrsWbb76p/Fz36dMHzzzzDObOnYvMzMxqMy59rHX0LH7jxo0AgFOnTqGwsBC9\ne/fGsmXLkJSUhK+++grHjx/HzTffjJiYGLvbVX6sEEIgPz8f586dQ15eHmbOnIlx48bhs88+w/bt\n27Fx40bMnDlT2XPp6Heqa9euWLRokcPvoZbY9J1ECIFhw4bB29tb+ap4Ad7o0aPt7uQFCxZg9OjR\nAC7uwr7zzjvRsGFDNGnSBNOmTcP69etVMxyJiopS5mb9+vXDwIEDlR/46m5b3XnTp09HgwYN0KVL\nF3Tt2hU7d+4EcPEBetq0afD09ERQUBAmTpxY4/Z8//33GDRoEIKDg6u93N/fH+PHj8fzzz+vukbX\nrl0xYMAAu7+iHRk8eDBuuukm1K9fHy+99BI2bdpkt+dk6tSp8PLyQoMGDfDhhx/ioYceQq9evWCx\nWBAbG4sGDRpg06ZN+Pnnn3H+/HlMnDgR9erVw/Dhw9GrV69qM7ds2YK8vDy88soraNSoERo0aIAb\nb7wRQM332WeffYaxY8eiW7duqF+/PpKSkrBp0ya7Zx0JCQmwWq1o0aIFbrnlFuUZcP369XH48GHk\n5OSgfv36Sublql+/PjIzM3H8+HE0btzY7gG6MovFgvvuuw+hoaFo2LAhoqOjlW35/PPPMXToUNx4\n441wc3PDzJkzHTYHi8WCu+66C927d0eDBg1w5513wt3dHffeey8sFguio6Oxfft25fp33303AgIC\nAADR0dFo27at8owNAFq1aoWxY8cq92NeXh7+/PPPWtUfHx8Pd3d3uLm5Yfr06di5cycKCwsd3qZ5\n8+a4+eablWfF6enpaNasGbp3717t9avb/i1btgBQvx/r16+PwsJC7NmzB+Xl5Wjfvr2yRmVLlizB\n/fffj44dO6JRo0ZV9p5VfK979uyJevXq4Z577lHut5UrV+K6665DXFwcXFxc0K1bN9x1111YunQp\nLly4gC+//BIzZ85Eo0aNcP311yMuLq7Gn+ng4GC0b98e3333HT755BPExsbaXf7LL7/g+PHjePbZ\nZ+Hq6orrrrsO48aNUx4j3377bdxzzz145513cP3116Nt27Z2e24AoEePHnaPtS+//LLqz1t12/v+\n++9j6tSpaN++PVxcXDB16lTs2LEDR48eVa5T+bECANzc3PDMM8+gXr16GDlyJAoKCvDEE0/A3d0d\nYWFhCAsLUx4vHf1O7dy5U3WvnB7Y9J3EYrFg2bJlOHHihPJV8WwjMjISxcXF2LJlCw4fPoydO3fi\nzjvvBAAUFxfjoYceQkhICDw9PREREYFTp05d0fzpm2++QZ8+feDr6wtvb2+sXr3abvdrbVR+UGnc\nuLEyT8/NzbXbRazWyCtbtGgRPv/8cyQmJqpeZ/Lkyfj222+xa9cu1evMnDkT7733Xo0P4haLxW67\n3N3d4ePjg9zcXOW8yjVkZWXhtddes3vwyM7ORl5eHnJzcxEUFGS3fqtWrarNPXr0KFq1agUXl8v/\ndap4dl95m319fe3+ULn0PqloSLNmzYIQAuHh4ejUqRPS0tIuOx8AUlNTsW/fPnTs2BHh4eFYtWqV\n6nUrb0ujRo3sfj4qf+8bNWoEX19fh7l+fn7K/xs2bGh3uvLawMXRQffu3ZX7affu3XY/25d+jwDY\n3V7NhQsXkJCQgNDQUHh6eip/NB8/frzG28bFxWH+/PkAgPnz56u+kExt+ysy1O7HW265BY8++ige\neeQR+Pv746GHHqr2j5G8vLwafzf9/f2V/1f+3mZlZWHz5s12vwMLFixAfn4+jh8/jvPnz9ut3bJl\nyxq/LxV/eKWlpWHRokUYM2aM3eNZVlYWcnNz7TKTkpKU3++GDRti6tSp2Lp1K/7++29ER0djxIgR\ndnv7tm/fbvdYm5CQcFmPmVlZWcooydvbW/lZrfx7d+lIzNfXV/nDolGjRgDUv6+X8zulNzZ9HdSr\nVw/R0dFYuHAhFi5ciCFDhsDd3R0A8Nprr2Hfvn3YsmULTp06hfXr10MIUe0PcJMmTVBcXKycPnbs\nmPL/c+fOYfjw4Zg8eTL+/PNPnDhxAlFRUco61f0VfDkvimvevLndX8GV/6+mXbt2+P7775GSkmL3\n6tvKfH198cQTTzh8JXL79u1x11131fgWJSGE3XadOXMGBQUFCAwMVM6rXHPLli3xzDPP2D14nDlz\nBiNHjkTz5s2rvLai8osOK2vRogWOHDmCCxcuVLmspu9xYGAgDh8+rJwuKirC33//XeUPjur4+/vj\nww8/RE5ODj744ANMmDChyquagYt/SFT+ublw4QL++usv5XRoaCgWLFiAv/76C1OmTMHdd9+NkpKS\nGvMvrSM7O1s5XVJSctl/cKrJysrCgw8+iHfffRcFBQU4ceIEOnXqVOsHeXd3dxQVFSmn8/LylPtl\nwYIFWL58OdauXYtTp07h0KFDAOyfHardh3fccQd27dqF3bt3Y9WqVapjgZq239H9+Nhjj2Hr1q3I\nyMjAvn37qrybBbiy380KLVu2REREhN3vQGFhId599100bdoUrq6udnudKv/fkbvuugurV69GmzZt\nqvwR0qJFC1x33XV2madPn8bKlSurrOPh4YGpU6eiqKhIuW+q4+hnobr7r2XLlvjwww/ttqGoqAh9\n+vRxeLvacsbvlFbY9J3I0Q9exS7+yrv2gYuNqVGjRvD09ERBQYHDF7Z169YNGzZswNGjR3Hq1Ckk\nJSUpl5WWlqK0tBRNmzaFi4sLvvnmG2VGBlx8YPn7779x+vTpWm3vpaKjo5GUlKTMHd95551a/VKE\nhYXh+++/xyuvvIK33nqr2us8+eST2LRpkzJHrM706dORlpZW42x/9erV+PHHH1FaWornnnsOffv2\nVW2gDzzwAN5//31s2bIFQggUFRVh1apVOHPmDG688Ua4urpi9uzZKCsrw5dffolffvml2nXCw8PR\nvHlzJCQkoLi4GGfPnsVPP/0E4OL3PTs7G2VlZcr1K/9RFxMTg7S0NOzcuRPnzp3DtGnT0KdPH9Vn\nVJXvs6VLlyqN1svLCxaLpdq9De3atcPZs2exevVqlJWV4cUXX8S5c+eUy+fPn6/8EeDp6am6zqX5\nlQ0fPhwrVqzApk2bUFpaisTERIc/X5fzs1dUVASLxYKmTZuivLwcaWlp2L17d61v361bNyxatAjn\nz5/H1q1b8cUXXyiXnTlzBg0aNICPjw+Kioowbdq0Ktuptq2NGjXC8OHDMXr0aPTu3Vt171dN2692\nP27duhWbN29GWVkZGjdujIYNG6JevXpVtis6OhppaWnYu3cviouL8cILL1SpQc3tt9+Offv2Yf78\n+SgrK0NZWRl++eUX7N27F/Xq1cNdd92FxMRElJSUICMjA/PmzavV7727uzvWrVuHjz76qMpl4eHh\n8PDwwKxZs1BSUoILFy5g9+7d2Lp1KwDghRdewNatW1FaWoqzZ8/irbfegre3t/Li28vVrFkzuLi4\n2L0Icfz48fjvf/+rvDCy4jUTznI5v1N6k2MrrhFDhgyxe59+5VechoeHo0mTJsjLy8Ntt92mnP/E\nE0+gpKQETZs2xY033ojbbrtN9Zfq1ltvxciRI9GlSxf06tULQ4YMUa7r4eGB2bNnIzo6Gj4+Pli4\ncCHuuOMO5bYdOnRATEwMWrduDR8fH+XZjqMXOFX2/PPPIzg4GNdddx0GDhyIESNGoH79+qrXr7xW\nly5d8O2332LGjBn48MMPq+R6eHhg8uTJOHHihN3tK18nJCQEsbGxds9Yq8scPXo0ZsyYAV9fX2zf\nvl3Z/VpdfTfccAPmzJmDRx99FD4+Pmjbti0++eQTABfnd19++SXmzp0LX19fLFmypMoriCvWq1ev\nHlasWIH9+/ejZcuWaNGiBZYsWQIA6N+/P66//noEBAQou68r19a/f3+88MILGD58OAIDA3Ho0CG7\n139cus2Vb7t161b06dMHHh4euOOOOzB79uxqXzDp6emJlJQUjBs3DsHBwWjSpIndrstvv/0WnTp1\ngoeHByZNmoRFixYpc8zq8qvbluuvvx5vv/02Ro0ahcDAQHh4eMDPz09Z51LV/eypZYWFheGpp55C\n3759ERAQgN27d+Omm26q1W2Bi03kwIED8Pb2RmJiot0z8tjYWLRq1QpBQUHo1KkT+vbt63C7Ls2J\ni4vD7t27He7ar2n71e7H06dP48EHH4SPjw9CQkLQtGlTPP3001W2a9CgQXj88cdxyy23oF27dujb\nty8A2N2Hat8fDw8PrFmzBosWLUJQUBCaN2+OqVOnorS0FADwzjvv4MyZMwgICMD999+P+++/X7XO\n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\n",
"text": "<matplotlib.figure.Figure at 0x19fb1ed90>",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Testing random instances"
},
{
"metadata": {},
"cell_type": "code",
"input": "holdout_sample = list(set(knn_preds.keys()) & set(cond_r.keys()) & trials)\nrare_mesh = list(set(knn_preds.keys()) & set(cond_r.keys()) - trials)\nunknown_mesh = list(set(knn_preds.keys()) - set(cond_r.keys()))",
"prompt_number": 13,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "def mesh_url(this_term, this_code):\n this_term = this_term.replace(' ','+')\n url = 'http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=%s&field=entry#Tree%s' % (this_term, this_code)\n return '<a target=\"_blank\" href=%s>%s</a>' % (url, this_code)\n\ndef html_output(trial_id):\n \n if trial_id in cond_r:\n assigned = cond_r[trial_id]\n assigned_codes = set()\n for m in assigned:\n if m in mesh_codes_r: assigned_codes |= set(mesh_codes_r[m])\n assigned_hyp = set([c[:7] for c in assigned_codes if len(c) > 3])\n else:\n assigned = []\n \n if trial_id in single_preds:\n top_pred = single_preds[trial_id]\n else:\n top_pred = ''\n \n if trial_id in knn_preds:\n knn_pred = sorted([(k, sum([1 / (10 ** d) for d in v])) \n for k, v in knn_preds[trial_id].items()\n ], key=lambda x: x[1], reverse=True)\n knn_ranks = {}\n rank = 1\n for k,v in knn_pred:\n if len(knn_ranks) == 0: cur_val = v\n if v == cur_val:\n knn_ranks[k] = rank\n else:\n rank += 1\n cur_val = v\n knn_ranks[k] = rank\n rank_count = Counter(knn_ranks.values())\n else:\n knn_pred = []\n \n if trial_id in multi_preds:\n hyp_pred = sorted(multi_preds[trial_id].items(), \n key=lambda x: x[1], \n reverse=True)\n top_hyps = [c for c, v in hyp_pred[:20]]\n else:\n top_hyps = []\n \n def print_codes(cur_term, paint=False):\n code_html = ''\n if cur_term in mesh_codes_r:\n cur_codes = mesh_codes_r[cur_term][:]\n cur_codes.sort()\n for code in cur_codes:\n painting = ''\n if paint and code[:7] in top_hyps:\n painting = '&nbsp;<span style=\"background-color: #FF69BA; font-size: small;\">(hypernym in top 20)</span>'\n code_html += '<p style=\"padding-left: 30px; margin-top: 0px\">%s%s</p>' % (mesh_url(cur_term,code),\n painting)\n return code_html\n \n page = \"<p><strong>Trial ID:</strong> %s</p>\\n\" % trial_id\n page += \"<h3>Brief description</h3><p>%s</p>\\n\" % trial_desc[trial_id][0]\n page += \"<h3>Detailed description</h3><p>%s</p>\\n\" % (trial_desc[trial_id][1] \n if trial_desc[trial_id][1]\n else \"No detailed description.\")\n page += \"<h2>Current MeSH assignment (if any)</h2>\"\n if assigned:\n for t in assigned:\n additional = ''\n if t == top_pred:\n additional += '''&nbsp;<span style=\"background-color: greenyellow; \n font-weight: normal; \n font-size: small;\n font-style: normal\">(same as top single prediction)</span>'''\n if t in knn_ranks and knn_ranks[t] == 1:\n additional += '''&nbsp;<span style=\"background-color: lightsalmon; \n font-weight: normal; \n font-size: small;\n font-style: normal\">(top-ranked KNN prediction)</span>'''\n elif t in knn_ranks:\n additional += '''&nbsp;<span style=\"background-color: #FFD9CA; \n font-weight: normal; \n font-size: small;\n font-style: normal\">(KNN prediction)</span>''' \n page += '<h5 style=\"margin-top: 8px;\">%s%s</h5>' % (t, \n additional)\n page += print_codes(t, paint=True)\n else:\n page += '<p>No MeSH assignment.</p>'\n \n page += '<h2>Top single prediction</h2>'\n top_pred_style = ''\n if top_pred in assigned:\n top_pred_style = ' style=\"background-color: greenyellow;\"'\n page += '<h5 style=\"margin-top: 8px;\"><span%s>%s</span></h5>' % (top_pred_style, \n top_pred)\n page += print_codes(top_pred)\n \n page += '<h2>K Nearest Neighbor predictions</h2>'\n for this_term, cur_val in knn_pred:\n knn_style = ''\n if this_term in assigned:\n knn_style = ' style=\"background-color: %s;\"' % ('lightsalmon' if knn_ranks[this_term] == 1 else '#FFD9CA')\n knn_tie = ''\n if rank_count[knn_ranks[this_term]] > 1:\n knn_tie = ' (tie)'\n page += '<h5 style=\"margin-top: 8px;\">%d%s. <span%s>%s</span> </h5>' % (knn_ranks[this_term], \n knn_tie, \n knn_style, \n this_term)\n page += print_codes(this_term)\n \n page += '<h2>Top 20 MeSH hypernym predictions</h2>'\n hyp_rank = 1\n for code in top_hyps:\n hyp_style = ''\n if code in assigned_hyp:\n hyp_style = ' style=\"background-color: #FF69BA;\"'\n page += '<p style=\"margin-top: 0px\">%d. <span style=\"font-weight: bold;\">%s</span>' % (hyp_rank,\n mesh_url(mesh_codes[code],code))\n page += '&nbsp;&nbsp;<span%s>%s</span></p>' % (hyp_style,\n mesh_codes[code])\n hyp_rank += 1\n \n return page\n",
"prompt_number": 16,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "display(HTML(html_output(random.choice(holdout_sample))))",
"prompt_number": 39,
"outputs": [
{
"html": "<p><strong>Trial ID:</strong> NCT01404273</p>\n<h3>Brief description</h3><p>This research study is being done to examine how meditation and the relaxation response (RR) may change brain activity in attention-deficit/hyperactivity disorder (ADHD).</p>\n<h3>Detailed description</h3><p>No detailed description.</p>\n<h2>Current MeSH assignment (if any)</h2><h5 style=\"margin-top: 8px;\">Hyperkinesis&nbsp;<span style=\"background-color: #FFD9CA; \n font-weight: normal; \n font-size: small;\n font-style: normal\">(KNN prediction)</span></h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Hyperkinesis&field=entry#TreeC10.597.350.350>C10.597.350.350</a>&nbsp;<span style=\"background-color: #FF69BA; font-size: small;\">(hypernym in top 20)</span></p><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Hyperkinesis&field=entry#TreeC23.888.592.350.350>C23.888.592.350.350</a>&nbsp;<span style=\"background-color: #FF69BA; font-size: small;\">(hypernym in top 20)</span></p><h5 style=\"margin-top: 8px;\">Attention Deficit Disorder with Hyperactivity&nbsp;<span style=\"background-color: greenyellow; \n font-weight: normal; \n font-size: small;\n font-style: normal\">(same as top single prediction)</span>&nbsp;<span style=\"background-color: lightsalmon; \n font-weight: normal; \n font-size: small;\n font-style: normal\">(top-ranked KNN prediction)</span></h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Attention+Deficit+Disorder+with+Hyperactivity&field=entry#TreeF03.550.150.150>F03.550.150.150</a></p><h2>Top single prediction</h2><h5 style=\"margin-top: 8px;\"><span style=\"background-color: greenyellow;\">Attention Deficit Disorder with Hyperactivity</span></h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Attention+Deficit+Disorder+with+Hyperactivity&field=entry#TreeF03.550.150.150>F03.550.150.150</a></p><h2>K Nearest Neighbor predictions</h2><h5 style=\"margin-top: 8px;\">1. <span style=\"background-color: lightsalmon;\">Attention Deficit Disorder with Hyperactivity</span> </h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Attention+Deficit+Disorder+with+Hyperactivity&field=entry#TreeF03.550.150.150>F03.550.150.150</a></p><h5 style=\"margin-top: 8px;\">2. <span style=\"background-color: #FFD9CA;\">Hyperkinesis</span> </h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Hyperkinesis&field=entry#TreeC10.597.350.350>C10.597.350.350</a></p><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Hyperkinesis&field=entry#TreeC23.888.592.350.350>C23.888.592.350.350</a></p><h5 style=\"margin-top: 8px;\">3. <span>Respiratory Aspiration</span> </h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Respiratory+Aspiration&field=entry#TreeC08.618.749>C08.618.749</a></p><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Respiratory+Aspiration&field=entry#TreeC23.550.773>C23.550.773</a></p><h5 style=\"margin-top: 8px;\">4 (tie). <span>Cocaine-Related Disorders</span> </h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Cocaine-Related+Disorders&field=entry#TreeC25.775.300>C25.775.300</a></p><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Cocaine-Related+Disorders&field=entry#TreeF03.900.300>F03.900.300</a></p><h5 style=\"margin-top: 8px;\">4 (tie). <span>Substance-Related Disorders</span> </h5><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Substance-Related+Disorders&field=entry#TreeC25.775>C25.775</a></p><p style=\"padding-left: 30px; margin-top: 0px\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Substance-Related+Disorders&field=entry#TreeF03.900>F03.900</a></p><h2>Top 20 MeSH hypernym predictions</h2><p style=\"margin-top: 0px\">1. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Pathological+Conditions,+Anatomical&field=entry#TreeC23.300>C23.300</a></span>&nbsp;&nbsp;<span>Pathological Conditions, Anatomical</span></p><p style=\"margin-top: 0px\">2. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Signs+and+Symptoms&field=entry#TreeC23.888>C23.888</a></span>&nbsp;&nbsp;<span style=\"background-color: #FF69BA;\">Signs and Symptoms</span></p><p style=\"margin-top: 0px\">3. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Congenital+Abnormalities&field=entry#TreeC16.131>C16.131</a></span>&nbsp;&nbsp;<span>Congenital Abnormalities</span></p><p style=\"margin-top: 0px\">4. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Infant,+Newborn,+Diseases&field=entry#TreeC16.614>C16.614</a></span>&nbsp;&nbsp;<span>Infant, Newborn, Diseases</span></p><p style=\"margin-top: 0px\">5. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Infection&field=entry#TreeC01.539>C01.539</a></span>&nbsp;&nbsp;<span>Infection</span></p><p style=\"margin-top: 0px\">6. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Neurologic+Manifestations&field=entry#TreeC10.597>C10.597</a></span>&nbsp;&nbsp;<span style=\"background-color: #FF69BA;\">Neurologic Manifestations</span></p><p style=\"margin-top: 0px\">7. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Nutrition+Disorders&field=entry#TreeC18.654>C18.654</a></span>&nbsp;&nbsp;<span>Nutrition Disorders</span></p><p style=\"margin-top: 0px\">8. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Pathologic+Processes&field=entry#TreeC23.550>C23.550</a></span>&nbsp;&nbsp;<span>Pathologic Processes</span></p><p style=\"margin-top: 0px\">9. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Musculoskeletal+Abnormalities&field=entry#TreeC05.660>C05.660</a></span>&nbsp;&nbsp;<span>Musculoskeletal Abnormalities</span></p><p style=\"margin-top: 0px\">10. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Cardiovascular+Abnormalities&field=entry#TreeC14.240>C14.240</a></span>&nbsp;&nbsp;<span>Cardiovascular Abnormalities</span></p><p style=\"margin-top: 0px\">11. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Body+Constitution&field=entry#TreeG07.100>G07.100</a></span>&nbsp;&nbsp;<span>Body Constitution</span></p><p style=\"margin-top: 0px\">12. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Central+Nervous+System+Diseases&field=entry#TreeC10.228>C10.228</a></span>&nbsp;&nbsp;<span>Central Nervous System Diseases</span></p><p style=\"margin-top: 0px\">13. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Ear+Diseases&field=entry#TreeC09.218>C09.218</a></span>&nbsp;&nbsp;<span>Ear Diseases</span></p><p style=\"margin-top: 0px\">14. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Diagnostic+Techniques+and+Procedures&field=entry#TreeE01.370>E01.370</a></span>&nbsp;&nbsp;<span>Diagnostic Techniques and Procedures</span></p><p style=\"margin-top: 0px\">15. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Pregnancy+Complications&field=entry#TreeC13.703>C13.703</a></span>&nbsp;&nbsp;<span>Pregnancy Complications</span></p><p style=\"margin-top: 0px\">16. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Nervous+System+Malformations&field=entry#TreeC10.500>C10.500</a></span>&nbsp;&nbsp;<span>Nervous System Malformations</span></p><p style=\"margin-top: 0px\">17. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Bacterial+Infections&field=entry#TreeC01.252>C01.252</a></span>&nbsp;&nbsp;<span>Bacterial Infections</span></p><p style=\"margin-top: 0px\">18. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Neurobehavioral+Manifestations&field=entry#TreeF01.700>F01.700</a></span>&nbsp;&nbsp;<span>Neurobehavioral Manifestations</span></p><p style=\"margin-top: 0px\">19. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Vascular+Diseases&field=entry#TreeC14.907>C14.907</a></span>&nbsp;&nbsp;<span>Vascular Diseases</span></p><p style=\"margin-top: 0px\">20. <span style=\"font-weight: bold;\"><a target=\"_blank\" href=http://www.nlm.nih.gov/cgi/mesh/2015/MB_cgi?mode=&term=Trauma,+Nervous+System&field=entry#TreeC10.900>C10.900</a></span>&nbsp;&nbsp;<span>Trauma, Nervous System</span></p>",
"text": "<IPython.core.display.HTML at 0x196e28a90>",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "",
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
}
],
"metadata": {}
}
],
"metadata": {
"name": "",
"signature": "sha256:82b0beffa757991791e5c6ce9afa3d148011d2a4a1e1951f3f87e0dc9cf56d7f"
},
"nbformat": 3
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment