{ "nbformat": 4, "nbformat_minor": 4, "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" }, "colab": { "name": "Processing.ipynb", "provenance": [], "collapsed_sections": [], "toc_visible": true } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "4PY3YZOvJTaR" }, "source": [ "## Loading Data" ] }, { "cell_type": "code", "metadata": { "id": "cRPHIvZD6Moj" }, "source": [ "import pandas as pd\n", "import numpy as np\n", "from sklearn.model_selection import train_test_split\n", "\n", "df = pd.read_csv('./data_clear.csv')\n", "data = df['texts'].values.astype('U')\n", "label = df['label'].values" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "526XRZiF8Qe5", "outputId": "9b9ea9b6-574e-4cc0-93c1-ff6386092a4d" }, "source": [ "len(data)" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "30000" ] }, "metadata": { "tags": [] }, "execution_count": 17 } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 146 }, "id": "LxpwL2VW7ucy", "outputId": "c415ce50-3472-47b1-dfbc-f679e6599fd3" }, "source": [ "data[0]" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'forma digitalmente assinado documento juiz novembro intime cite conciliação audiência consoante constante formulado defiro exposto acima promovente pleito necessário assim fica ser deve obrigação portanto objeto endereço consta contrato proferida vista tendo autor pretensão acolhimento merece cpc prevista artigo dispõe conforme mérito resolução extinção casos magistrado civil código novo possibilidade ante pedido apenas inicialmente desta motivo sendo nova município demanda deu juízo feito eis material erro existência síntese alegando contra id declaração embargos etc vistos sentença sa ré autora cep rua comarca cível especial juizado estado judiciário poder'" ] }, "metadata": { "tags": [] }, "execution_count": 18 } ] }, { "cell_type": "code", "metadata": { "id": "pnn-jZMlGTqv" }, "source": [ "treino, teste, treino_y, teste_y = train_test_split(data, label, test_size=0.2, shuffle=True, random_state=0)" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "ympSrAVVJiTY" }, "source": [ "## Make TFidf transformer" ] }, { "cell_type": "code", "metadata": { "id": "Dl6ecTdAJiTZ" }, "source": [ "from sklearn.feature_extraction.text import TfidfVectorizer\n", "\n", "tfidf_transformer = TfidfVectorizer()\n", "X_train_tfidf = tfidf_transformer.fit_transform(treino)\n", "X_test_tfidf = tfidf_transformer.transform(teste)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uMIIzP9iJiTa", "outputId": "2d70e90c-5bdc-41d8-a036-74cc154cb4c0" }, "source": [ "X_train_tfidf.shape" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(24000, 851)" ] }, "metadata": { "tags": [] }, "execution_count": 23 } ] }, { "cell_type": "markdown", "metadata": { "id": "_gSs1T3KimfQ" }, "source": [ "## Train model of Random Forest" ] }, { "cell_type": "code", "metadata": { "id": "yRiidduZpoTZ" }, "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "import time\n", "clf = RandomForestClassifier(criterion='entropy', max_depth = 20)\n", "ini_rf = time.time()\n", "clf.fit(X_train_tfidf, treino_y)\n", "fim_rf = time.time()\n", "pred = clf.predict(X_test_tfidf)\n", "pre_rf = time.time()\n", "treino_rf = fim_rf - ini_rf\n", "time_prev_rf = pre_rf - fim_rf" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Dy2laU4Ap0x3", "outputId": "159d612c-9017-4506-f0f7-d07da4be6eee" }, "source": [ "from sklearn.metrics import confusion_matrix, classification_report, accuracy_score\n", "print(confusion_matrix(teste_y, pred))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[563 0 0 4 1 0 3 10 8 0]\n", " [ 4 585 34 5 1 1 1 0 0 1]\n", " [ 0 38 538 1 1 0 0 0 0 0]\n", " [ 8 7 1 546 12 1 1 2 0 2]\n", " [ 1 7 7 9 604 0 0 6 0 0]\n", " [ 0 1 1 0 0 554 0 3 0 30]\n", " [ 4 0 0 1 0 0 568 16 1 1]\n", " [ 7 1 0 5 8 3 14 550 2 0]\n", " [ 4 0 0 0 0 0 1 4 623 0]\n", " [ 0 0 0 0 0 12 0 2 0 571]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "cBZoZHFaL1QZ", "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "outputId": "ef17c4ca-40a2-4c50-9b16-503d049d10c1" }, "source": [ "import seaborn as sns\n", "ax = sns.heatmap(confusion_matrix(teste_y, pred), annot=True, fmt=\"d\")" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAD4CAYAAADSIzzWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd3wVxRqGn+8kISSU0EOJCojYUHovEpqAIKgIoigoigpi4dpAFBFU9CpFRaVJ7yig9K6AQELondB7N0CoSeb+cTa5QZOck2R3T3EefvNjz+zuvDN7Nl8ms7PzilIKjUaj0diPw9MV0Gg0mn8rOgBrNBqNh9ABWKPRaDyEDsAajUbjIXQA1mg0Gg8RaLXAtbVTbZlmkbteDztkbEds1PLH+TB2Xr8AR4BtWsrGbysxKck2rYQbx7L9ld08u9/tixNUqLSdt8g/0D1gjUaj8RCW94A1Go3GVpISPV0Dt9EBWKPR+BeJCZ6ugdvoAKzRaPwKpewbs84uegxYo9H4F0lJ7icXiEg+EZkhIrtEZKeI1BSRAiKyWET2Gv/nN44VEflGRGJFZIuIVHJVvg7AGo3Gv1BJ7ifXDAEWKKXuAcoDO4H3gaVKqbuApcZngGbAXUbqAvzgqnCPBeBm/xnIEx98R9sPv6d9nx9T8ictXkur97/hsZ7fMmjqQgC27jtK2w+/p+2H3/Nk76EsXb/DlDo83KQ+27f9wa4dq3j3nW6mlOkNWg6Hg+iohcyaOdZSnRHDv+b40c1s2rjUUh2w7/oFBwfz5+o5xKxfzKZNy/joo/+YWv6wYf/l8OENxMQsTsnLnz+MuXMnsm3b78ydO5F8+cJM1QR4vfuLbNywhA0xSxg37juCg4NN10jGzns9TZIS3U8ZICJhQD1gFIBS6oZS6i+gFZD8wzUWaG1stwLGKSdrgXwiUiwjDY/2gEe+/zzT+nVlct9XAIjauZ8VG3YxvV9XZn7eneea1QagTEQRJn38MtP6deX7t5+j35jfSEjM3pNOh8PBN0M+pUXLDjxQPpJ27Vpz7713ZbtNntYC5w/bzl17LSs/mXHjpvFIi2cs17Hz+l2/fp3GTdpSuUpjqlRpwsNN6lO9msu/JN1m/PjpPProc7fkvf12N5YvX025cg+xfPlq3n67q2l6AMWLF6Vbt+epWasFlSo3IsDhoG3bR03VSMbuez1NMtEDFpEuIrI+VeqSqqRSwBlgtIhsFJGRIpILCFdKnTCOOQmEG9slgCOpzj9q5KWLywAsIveIyHvG2MY3xva97l6LzDB9aTQvtKhLjiDns8GCeXMDEBKcg8AA5yT36zcTEBOmTlerWpF9+w5y4MBhbt68ybRps3m05cPZL9jDWiVKFKNZs4b89NNkS8pPzcpV6zh/4S/Ldey8fgDx8VcACAoKJCgoCDOXbF21KooLf7tmLVs2ZsKEGQBMmDCDRx9tYppeMgGBgYSE5CQgIIDQ0BBOnDhlugbY/12lhUpMcD8pNVwpVSVVGp6qqECgEvCDUqoiEM//hxucWs6bI8s3SIYBWETeA6bgfKEoykgCTBaR9zM61x1e+e84nvroB2YsXw/AoVPn2LD7EM/0HcYLn41i2/5jKcdu2XeEx3p+S5sPhtK7Y8uUgJxVipcoypGjx1M+Hz12guLFi2arTG/Q+vrrvvTs2Z8kG99esho7rx84e3Hroxdx/NgWliz9g6jojZZpARQpUoiTJ08DcPLkaYoUKWRq+cePn2TwoGHE7l3LoYMxxF28xJIlf5iqkYzd31WamPcQ7ihwVCm1zvg8A2dAPpU8tGD8f9rYfwy4LdX5EUZeurjqAXcGqiqlBiilJhhpAFDN2Jcmqbv1o2YtSfOYMR+8yNRPXmXo288ydek6YnYdJCExibj4q0z4qAtvtXuYd4ZOTel9PHjnbcz8vDuTPn6ZUXNWcv3GTRdV//fRvHkjzpw+y4aNWz1dFZ8mKSmJKlWbULJUFapWqcj9999tq77ZHgn58oXRomUT7r6nFiVLVSFXaCjt2z9mrog3YdJDOKXUSeCIiCTfAA2BHcCvQEcjryMw29j+FXjOmA1RA4hLNVSRJq4CcBJQPI38Ysa+9Cqe0q3v3LpRmseEF8gLOIcZGlS+l237jxJeIC8Nq9yLiPDAnRE4RLhw6cot55UuXpjQnDmIPXY6rWLd5vixk9wW8f+mRZQoxvHjJ7NVpqe1atWqQosWTdi7Zy0TJ3xPZGRtxo75xnQdu7Hzu0pNXNxFVvy+miZN6luqc/r0WYoWLQJA0aJFOHPmrKnlN2hQh4MHj3D27HkSEhKYNXs+NWtUMVUjGU99V7dg0kM4g+7ARBHZAlQAPgMGAI1FZC/QyPgMMA/YD8QCIwCXg/muAvCbwFIRmS8iw420AOfUizfcqX1aXLl+g/ir11O212zbR5mIcCIr3Uv0zgMAHDx5lpuJieTPE8rRMxdSHrodP/sXB0+cpXihfFmVByB6/SbKlClFyZK3ERQURNu2rfhtzqJslelprd69B1CqdBXuKluDZzp0Zfny1XTs9LrpOnZj53dVqFABwsKcnYOcOXPSqGE9du/eZ4lWMnPmLKZDhzYAdOjQht9+W+zijMxx5MgxqlerSEhITgAiI2uzy6KHtHZ+V+li4jQ0pdQmozP5oFKqtVLqglLqnFKqoVLqLqVUI6XUeeNYpZTqppS6Uyn1gFJqvavyM3wTTim1QETK4hxySH6adwyIVkpleRrC+bjLvPWN8yFRQmISzWs+SO0H7+JmQgIfjZzF472+IygwgH4vPY6IsHHPIX6as5KgwABEhF7PtSB/nlxZlQcgMTGRN97szby5kwhwOBgzdio7duzJVpneoGUnE8YP5aF6NSlUqAAH96+n7ydfMXrMFNN17Lx+xYqF89OowQQEOBCHgxkzfmPevLSH0bLCuHHfUrduTQoVyk9s7Dr69x/IV199z8SJP9CpUzsOHz7GM8+8apoeQHT0Jn6ZOY91a+eTkJDIps3bGDlqkqkayXjFve5DryKL1aacejnK7KGXo8weejnK7ONry1Fe37LQ7YsT/ODDHl2OUq8FodFo/Ips/HFuOzoAazQa/8KHFuPRAVij0fgXPjQHXgdgjUbjX+gesEaj0XiIRN95SUsHYI1G41/oIYj/k8em6WHxG8fZogMQUcvc1aoyIu5avG1aVk9J9AR2tijBh7zI/Bo9BKHRaDQeQveANRqNxkPoAKzRaDSeQemHcBqNRuMh9BiwRqPReAg9BKHRaDQewod6wF5pS2+2q2/Tl3vz+Jv9ebLHZzz1jnPt5F0HjvDMe1+m5G3dexCA6G17qNWhB0/2+Iwne3zGj9PmZUkzODgHC5dNZ/mq2axcO4d3e3a/Zf9nX3zAwWMbstWu9Nizew0bYpYQHbWQNX/OtUQD7HNFttN92U4tsM9B2E6nYruv4T8wz5LIcrwyAFvh6jvqkzeZPrAXU/7rtLIbNG4mr7R7hOkDe9HtqRYMGjcz5dhK95Zh+sBeTB/Yi1faNs+S3vXrN3i8ZUci67Qisk5rGjSqS+Uq5QEoX7EcYRZYj6emcZMnqVrtYWrWesQyDbtcke3SsVvLLgdhu52K7byGaWLiguxW43UB2C5XXxEh/spVAC5duUrhAuYHxFvddQNRSuFwOPj4k3f55KP/mq5nN3a5ItulY7eWXQ7CdjsV23kN0yQhwf3kYbIcgEXkeTMrkowlrr4ivNz3W9q9/TkzFq0C4N0X2jBw3Ewav9SLgWN/4Y1nWqUcvnn3Adq89Smv9vuO2MPH0yvVJQ6Hg+UrZ7Ez9k9WLP+TDTFbeLFLBxbMX8qpU2ey3az0UCjmzZ3E2jXz6NzZgz0RTYbY5SDsFU7FduJDPeDsPITrC4xOa4eIdAG6ADgCwnA43LMPSu3qW69ezWxU7VbGfvofwgvm49xfl3i57zeULBHOkjUbeef5NjSuWZGFq2Po8/0ERnz8BveWvo2Fw/oRGpKTlTHbePOLYcwZ2jdLuklJSUTWbU3esDyMnTCUmrWq8GjrprR65FnT2pYWkZGPc/z4SQoXLsj8eZPZvTuWVavWuT5Ro/EHvGBs110y7AGLyJZ00lYgPL3zUrsiuxt8wTpX3/CCTgPPgvny0KB6ebbtPcivK9bSqEYFAJrUqsS2vYcAyB0aQqhhXli3cjkSEhK5cPFytvQvxl1i1cp11K5bnVKlbydq4yJitiwlJDSEqI3mGxYmu9CeOXOO2bMXULVqBdM1NNnHLgdhr3AqthMf6gG7GoIIB54DWqaRzpldGStcfa9cu0781Wsp22s276TM7cUpnD+M9dudD/rWbd3N7cUKA3D2QlzKojRb9x4kSSnyZcEAtGDB/OQNywNAzpzB1I+sxeZN27m/bB0qP9iQyg825OqVq1Sr2CRb7fs7oaEh5M6dK2W7UaN6bN++21QNjTnY5SDsFU7FduJDsyBcDUHMAXIrpTb9fYeIrLCkRiZz/q9LvPnFMMBpLtisbhXqVLqf0JBgvhg1ncTEJHLkCKLPq86x0sVrNjJt4UoCHA6CcwTxZY8XEMm8b1940SJ89+MAHI4AHA5h9swFLF64wsympa0bXpjp00YCEBgYwJQps1i0yBpdu1yR7dKxW8suB2G7nYrtvIZp4gU9W3ex3BU5KEcJW1YEvKyXo8w2SX64HKXGtzDDFfnqtE/cvpFD2n6kXZE1Go3GNHyoI6EDsEaj8S+8YGzXXbzuRQyNRqPJFiY+hBORgyKyVUQ2ich6I6+AiCwWkb3G//mNfBGRb0Qk1pgtVslV+ToAazQa/8L8aWiRSqkKSqkqxuf3gaVKqbuApcZngGbAXUbqAvzgqmAdgDUajX+RmOh+yhqtgOSVwsYCrVPlj1NO1gL5RKRYRgVZPgZs13B4rorPUSg0ry1ah6d1d32QSeRp+bltWhqNX5CJMeDUb+0aDFdKDU/1WQGLREQBw4x94UqpE8b+k/z/pbQSwJFU5x418k6QDn7zEM6u4KvRaLycTARgI6AOz+CQOkqpYyJSBFgsIrv+dr4ygnOW0EMQGo3GvzBxDFgpdcz4/zQwE6gGnEoeWjD+P20cfgy4LdXpEUZeuugArNFo/AqVpNxOGSEiuUQkT/I20ATYBvwKdDQO6wjMNrZ/BZ4zZkPUAOJSDVWkid8MQWg0Gg1g5jzgcGCmsRRBIDBJKbVARKKBaSLSGTgEtDWOnwc0B2KBK4DLJXt1ANZoNP5F1mc33IJSaj9QPo38c0DDNPIVkCm/Jx2ANRqNf+FDb8LpAKzRaPwLHwrAXvcQzkr31uDgHMxfOpWlq2by+5rfeKfnawDUqVeDRb//zJKVvzB7/gRKlro9yxrNPh5Dm88n0faLyTz936kADJ27licHOPNeGTqL03HOBd4vXb3O68N+o+2ASTz+2URmrd2R7Tb6q4Owna6+/qjlj21KF6XcTx7G8uUoAzOxHKXD4WDn9pU0bd6eo0dPsHbNPDo825WdO107JLs7Dzg0VyhX4q8QGBjIrwsm0Pv9z/n2xwF0erobe/fsp1Pn9lSs/ABvdO2VbhkHpqZ/UzX7eAyT3m5H/twhKXmXr94gd0gOACb9vpn9J8/Tu10kIxdFc/nqDd5sVZvzl67S+tPxLO3fmaDAgJRzM/siRt061bl8OZ7Ro4dQoeI/hqlMxS6t7NwXWsu32mTGcpRXBr7kdswJ7THCo8tRuuwBi8g9ItJQRHL/Lb+p2ZWxw731Siqn4sCgIJRSKKXIncfZvDx5c3PyxOmMisg0ycEX4Or1myR/44IQf/0mSimu3rhBWGhOAhzZ+6PEHx2E7XT19Uctf2xThiQp95OHyXAMWERex/lUbycwSkTeUEolz3n7DFhgZmXScm+tVrWimRI4HA4W/T6DUqVuZ/TIyWyM2cJ/Xv+QidOHce3qNS5fukzzxk9luXxBePX72QjwRO1ytKldDoBv56xhTtQucofkYMRrjwPwVL0HeWP4HBp/+BPx127yxfMP43B49BeyV2LHfeHPWv7YpgwxaRaEHbjqbr0EVFZKtQbqAx+KyBvGvnQjhYh0EZH1IrI+Kck+Rwd3SEpKolHdx6l4fyQVKz/APffeRZeuHXnmyZepdH8kUybOpO+n77suKB1Gv/kEU959iqGvPsq0lVuIiXW+CNO9RU0WfvI8zSvfzZSVmwH4c+dh7o4ozOJ+LzD1vacYMP0PLl+9YUo7NZp/Kyopye3kaVwFYIdS6jKAUuogziDcTEQGkkEAzqorsp3urRfjLrF6ZRQNGtXl/nJ3szFmCwCzZ86narWsuwiH53MOZRTIE0rkg3ey7dCpW/Y3r3I3Szfvc2qt20HD8qUREW4vnI8SBfNy4PT5LGv7K3beF/6o5Y9tyhAfGoJwFYBPiUhKNDKCcQugEPCA2ZWx2r31707F9erXZO+e/eTJm4fSd5YEoF5kLfbs2Z+l8q9ev0n8tRsp22t2HaZMsYIcOv3/cdIVW/dTqkh+AIrlz8O63UcBOHfxCgdPXyCiYFhWm+e32Onq649a/timDPEhW3pX84CfAxJSZyilEnC+7zzM7MpY7d5apGhhvvnhcwICAnCIg19nOZ2K337jI0aNG0KSSiLur4u82e2DLJV/7tIVeoycC0BCkqJZ5bLUvu8O/jNqHgdPX8AhQrH8efigXSQALzWtykcTltDm80koFG8+WuuW2RNZwR8dhO109fVHLX9sU4Z4Qc/WXbxqGlp2sHM5yoymoZmNXg9Y82/CjGlo8R895XbMyfXJFO2KrNFoNKbhBUML7qIDsEaj8S98aAhCB2CNRuNXeMP0MnfRAVij0fgXuges0Wg0HkIH4P+T3bUN3OX81Uu26IC9MxMuze9jm1b+R/rbppWQ5Duvi2p8DB96FVn3gDUajV/hyuvNm9ABWKPR+Bc6AGs0Go2H0LMgNBqNxkPoHrBGo9F4CB2ANRqNxjOoRN8ZgvA6U87Xu7/Ixg1L2BCzhHHjviM4ONgSnbJlSxMdtTAlnT2zk+7dO1uiZYV5ZbPeI2jTfyxtPxvH0wMm3LJv3JL1VOj6NRcuX0nJi95zhLafjePxfmPoPHBqljSHDfsvhw9vICZmcUreZ5/1YvPmZURHL2Tq1OGEhZm/KJK/Go1GRBRnyaLpbNm8nM2bltH9NWvuP7DPKNPONqWLH60HbCvFixelW7fnqVmrBZUqNyLA4aBt20ct0dqzZz9Vqz1M1WoPU71GM65cucrs2aY6LKUwbtw0HmnxjOnljnjzSab1eo5J73dIyTt5/iJrdh6kWIE8KXkXr1zj8ylLGPJKa375sBP/falllvTGj5/Oo48+d0vesmUrqVSpMVWrPszevQd4x4Ifbquun6e1EhISeOfdvjxYPpLadVry6quduPfeu0zXcTgcfDPkU1q07MAD5SNp1661JTpgX5syQiUpt5On8aoADBAQGEhISE4CAgIIDQ3hxIlTrk/KJg0a1GH//kMcPnzMkvLtNMr86ucVvPlYPVIblsyP3kWDCndRrICzd1ogT2iWyl61KooLf2vHkiUrSTQmvkdFbSAiomjWKp4B/mg0CnDy5Gk2btoGwOXL8ezatZcSxc2/fnYaZdrVpgzxpx6wiFQTkarG9n0i0kNEmltRmePHTzJ40DBi967l0MEY4i5eYsmSP6yQuoW2Tz7K1GmzXR/oRYjAq9/+TPvPxzNjldNOafnmWAqH5ebuiCK3HHvo9AUuXrlG50FTaf/5eH5bu92SOnXs2I6FC1dYUra/c8cdEVQoX451URtNLzsto8ziNgRFK9uUIUmZSG4gIgEislFE5hifS4nIOhGJFZGpIpLDyA82Psca+0u6KjvDACwifYBvgB9E5HPgOyAX8L6IpGsbkdqUMzHxsnutBPLlC6NFyybcfU8tSpaqQq7QUNq3f8zt87NCUFAQLVo04eef51iqYzaj//MUU3o+y9DXnmDa75uI2XuUUQvX0bVl7X8cm5iUxM7Dp/mu6+N83/0Jhs9fy6FT5nrPvffeayQkJDB58kxTy/03kCtXKNOmjqDH2324dMn9nxdvxpNtUglJbic3eQOnM3wyXwCDlFJlgAtA8kB3Z+CCkT/IOC5DXPWA2wC1gXo47elbK6X6AQ8D7dI7KbUpZ0BAbld1SKFBgzocPHiEs2fPk5CQwKzZ86lZo4rb52eFpk0j2bhpK6dPn7VUx2zC8znHeAvkCSWyfBli9h7h2Nk42n46jma9R3D6r0u0/3wCZ+PiCc+Xm5r33UFIcBD5c4dSuUwEu4+dMa0uzz7bhmbNGtKp0+umlflvITAwkOlTRzB58kxmzZpviYbdRpl2tClDTOwBi0gE8Agw0vgsQANghnHIWKC1sd3K+Iyxv6FxfLq4CsAJSqlEpdQVYJ9S6iKAUuqqe9XPHEeOHKN6tYqEhOQEIDKyNrt27TVb5hbatW3F1Km+NfzwD/PPnQe5/46iLP+yK/P7v8T8/i9RJF8eJvfsQKGwXNR/sAyb9h0nITGJqzdusvXgCUoXLWhKXRo3fogePV6lTZvOXL16zZQy/02MGP41O3fFMnjIcMs07DbKtKNNGZGZh3Cp/1o3Upe/FTcYeJf/x7uCwF+GNybAUaCEsV0COAIp3plxxvHp4ioA3xCR5Cc2lZMzRSQMCwJwdPQmfpk5j3Vr57MhZgkOh4ORoyaZLZNCaGgIDRvWs/y39ITxQ1n1x6/cXfZODu5fz/OdnspWeecuxfP811No++k4nvlyInXLlab2/aXSPb50sYLUuq8kbT8dS4cvJvJY7QcoU7xQpnXHjfuWFStmUbZsaWJj19GpUzsGD+5Hnjy5mDt3IuvWzefbbz/LTtPSxOzr5y1atWtV5dkObYiMrMX66EWsj15Es6YNTNdJbZS5bcsKZsz4zTKjTLvalCGZ6AGn/mvdSCm/NUSkBXBaKRVjVVUzNOUUkWCl1PU08gsBxZRSW10JBOe8zZZHjVabi6YmyUYtvRyl5t+EGaac5x97yO0f0AIzf09Xz3ju9SxOZ/icQF5gJs4h2KJKqQQRqQl8rJR6WEQWGttrRCQQOAkUVhkEpwx7wGkFXyP/rDvBV6PRaGzHpDFgpVRPpVSEUqok8BSwTCn1DLAc5/MxgI5A8hjmr8ZnjP3LMgq+oF9F1mg0fkbK6Kx1vAdMEZH+wEZglJE/ChgvIrHAeZxBO0N0ANZoNH6FFa70SqkVwApjez9QLY1jrgFPZqZcHYA1Go1/4Ttr8egArNFo/AsresBWoQOwRqPxK3QATkWiTfYgjoxfOPFZrXyP9LNN69Ju+15ICb0rayuyeTN23hd2ToX0NVSifd9DdtE9YI1G41foHrBGo9F4CJWke8AajUbjEXQPWKPRaDyEUroHrNFoNB5B94A1Go3GQyT50CwIr/OEs8uV1k5XZDu1Xuv2AhtilrBxwxLTHGkvXo6nxyeDaPnCf3i083/YtGMPcRcv89J7n/JIp7d46b1Pifub68G23fuo0PQZFv2xzpQ62OXqa7dWWFhepkwextYtK9iyeTnVq1eyRMdfr19aqCRxO3maDJejNIPAHCUyJVC3TnUuX45n9OghVKjY0O3zsjMH0+FwcPDAeurUbWmZMWdWtVwsqH8L9913NxPGD6V2nRbcuHGTOb+N57XXerFv/0G3zk9vHvAHX35PpQfu4YlmDbh5M4Gr168zcvIs8ubJzYtPtWLklNnOIP3i0wAkJibR5f1PyZEjB489XJ8m9ar/o8zMzAN2OBzs3L6Sps3bc/ToCdaumUeHZ7uyc6f5i/VnRysr9+CokYNYtTqK0aMnExQURGhoCHFxF12el5l5wL5y/cCc5SgPVmjs9sUpuWmxR6NwpnvAIjLOiookY6crbTJWuyLbpXXPPWWIit7I1avXSExM5I+V62jdumm2yrwUf4WYrbt4vGkkAEFBgeTNnYvla2Jo1bgeAK0a12P5n+tTzpk0ewGN6lanQL682dJOxk5XXzu18ubNQ5261Rk9ejIAN2/edCv4ZhZ/vX7poZT7ydO4MuX89W/pN+Dx5M821dFy7HRFtlJrx/bd1KldjQIF8hESkpOmD0cSkcoLLCscO3ma/Pny0vurH3ny1ffpM3A4V65e49yFOAoXzA9AoQL5OHchDoBTZ8+zdHU07Vo0ynZ7krHT1ddOrVIlb+PsmfOMHDGQqHUL+PGH/xIaGmK6jr9ev/TwpSEIVz3gCOAiMBD42kiXUm2nSWqfpaSkeLPqagl2uiJbrbVrdyxfff09c+dM5LffJrBlyw4SE7PnPJGYmMjOvQdo16Ix038YQEjOYEZNvfV3r4iA8ef3Fz+M460Xn8bh8LrHC15HQGAgFSuWY9jw8VSr3pT4K1c8MmbqbyglbidP4+qnpAoQA3wAxBlrYl5VSv2ulPo9vZNS+yw5HLnMq60F2OmKbIfWmDFTqVnrERo1asOFv+LYu/dAtsoLL1SQ8MIFePDeMgA0rludnbEHKJg/jDPnLgBw5twFChrDDTv27Ofdz77h4We7s3jlOj799ieWro7OVh3sdPW1U+vYsRMcPXqC6OiNAPzyy1wqVHzAdB1/vX7pkZgobidP48qSKEkpNQh4HvhARL7Dz6au2emKbIdW4cJOE9bbbitO61ZNmTJ1VrbKK1QgH0ULF+TAEeefles2buPO2yOoX6Mysxf/AcDsxX8QWdPp2bpg/DcsHP8tC8d/S+O61fmg+ws0rF01W3Ww09XXTq1Tp85w9OhxypYtDUCDyDqWPBjz1+uXHr7UA3YrmCqljgJPisgjOIckLGPC+KE8VK8mhQoV4OD+9fT95CtGj5liiVayK3LXbu9bUr4ntKZMGU7BAvm4eTOBN97sbcpDnZ7dOvH+gO+4mZBARNFw+r39Mkop3u4/hJkLVlAsvBBff/CGCbVPm9SuvgEOB2PGTrXM1ddOLYC33vqQsWO+JUeOHBw4cIgXX/qP6Rr+fP3SwhvGdt3F66ahZRU7lwK0k8xMQ8suejnK7KGXo8w+ZkxD23lXc7cvzr1753k0cPjVcIJGo9H4Ug9YB2CNRuNXJCb5zgwcHYA1Go1f4UujMzoAazQavyLJC2Y3uIsOwBqNxq/whull7qIDsEaj8Sv0EIQH8NdpOXbeTXZODbu05FNbdHZfmr4AACAASURBVPI0+sAWHQCrp3R6inw5vftt1r/jS0MQvvO4UKPRaNwgMcnhdsoIEckpIlEisllEtotIXyO/lIisE5FYEZkqIjmM/GDjc6yxv6SruuoArNFo/AqVieSC60ADpVR5oALQVERqAF8Ag5RSZYALQLLzQWfggpE/yDguQ3QA1mg0fkWSErdTRignyVYvQUZSQANghpE/FmhtbLcyPmPsbyguXmXVAVij0fgVmVmMJ/XSuUbqkrosEQkQkU3AaWAxsA/4SymVYBxyFChhbJcAjjjroBKAOKBgRnX1m4dwGo1GA5AZU2Sl1HBgeAb7E4EKIpIPmAnck83q3YLuAWs0Gr9CIW4nt8tU6i9gOVATyCciyZ3XCCDZX+wYcBuAsT8MOJdRuV4XgO1yVLXLfdluLV93v232/ve0+XgkbfuO4un+owH44deVNH7nW9r2HUXbvqNYuTX2lnNOnIuj5mtfMXahbzkwBwcH8+fqOcSsX8ymTcv46CPzl6JMxso2BQfnYNHyGaxY/Sur1s3lvV6vA3D7HREsXDadqE2LGTl6MEFBQabqpkeCErdTRohIYaPni4iEAI2BnTgDcRvjsI5A8jKCvxqfMfYvUy7mJnpVAHY4HHwz5FNatOzAA+UjadeuNffee5clWuPGTeORFs9YUrantOy8flZqjfjP00zr05lJvZ9PyevQqBrT+nRmWp/O1H2gzC3Hfz1tKbXL3WmKtp3X8Pr16zRu0pbKVRpTpUoTHm5Sn+rVzLelt7pN16/f4LEWz1G/9qPUr92KBo3qUrlqeT7q+zY/Dh1DtQqN+euvODo818Z1YSZgYg+4GLBcRLYA0cBipdQc4D2gh4jE4hzjHWUcPwooaOT3AFwu/p2pACwidUSkh4g0ycx57mKno6qd7st2af3b3G8Blm3cQ/FC+bizeCFTyrO7XfHxVwCn23RQUJAlL3PY0aZb2hEYiFKKug/V5NdZCwCYMnkmzUw0as2IpEykjFBKbVFKVVRKPaiUKqeU+sTI36+UqqaUKqOUelIpdd3Iv2Z8LmPs3++qrq5ckaNSbb8EfAfkAfqIiOnWDt7gqOrL+IP7rQCvDp5C+36jmfHHxpT8KctjePLjkfQZM5eL8VcBuHLtBmMWrOGVlnWyrZuM3fegw+FgffQijh/bwpKlfxAVvdH1SZnEjjY5HA6Wr5rNzn1rWLF8NQf3HyEu7mKKKezxYycpVizcVM30sGIM2CpczYJIPWjTBWislDojIl8Ba4EBaZ1kTOXoAiABYXi7MafGexj93rOE58/D+YvxvDJoCqWKFqRt/Up0aVEbQRg6+w++nr6Mvp0e4cffVvJMo2qE5szh6WpnmaSkJKpUbUJYWF5mTB/F/fffzfbtuz1drUyTlJREZJ1W5A3Lw7iJQ7nL8LnzSF08ppx5XAVgh4jkx9lTFqXUGQClVLyIJKR3UuqpHZmxJPIGR1Vfxh/cb8Pz5wGgQN5cRFYsy7YDJ6hc9vaU/Y/XLc/r304HYOv+4yyO2c3gn5dz6co1HCIEBwXwVIMqWdb31D0YF3eRFb+vpkmT+qYHYDvbdDHuEqtWrqNqtQqEheUlICCAxMREipcoyokTpyzR/DuJXtCzdRdXY8BhOG3p1wMFRKQYgIjkBvNb6Q2Oqr6Mr7vfXr1+g/hr11O21+w4QJkShTjz1+WUY5Zt3EOZEoUBZ295/oCuzB/QlWcaVaVz81rZCr5g7zUsVKgAYWF5AciZMyeNGtZj9+59putY3aaCBfOTN8z5izNnzmAeiqzNnj37WPXHWh5t3RSAp9o/xvy51s8CAkgS95OnybAHrJQqmc6uJOAxsytjp6Oqne7Ldmn5uvvtuYvx9Pj+FwASEpNoVv0+ape7kw9G/cruI6cRoHihMHp3aGZCC9LGzmtYrFg4P40aTECAA3E4mDHjN+bNW2K6jtVtCi9ahO9+/IKAAAcOh4PZM+ezaMEKdu/ax4jRg+j54Zts3byDieOmm6aZEUk+1AP2G1dkjW/hj8tR2vljb+cPlZ3LUZ69uCfbl3FW0afdvjytT07SrsgajUZjFv70EE6j0Wh8iqSMFyDzKnQA1mg0fkWipyuQCXQA1mg0foU3zG5wFx2ANRqNX+FLsyAsD8D++mRYkz3smp1wefU3tugAFHzIutXM/s71hJu2af11Ld42LTPwpTjgNz1gX7roGo3GOvQQhEaj0XgIPQ1No9FoPESi7gFrNBqNZ9A9YI1Go/EQOgBrNBqNh3Bh9eZV6ACs0Wj8Cl/qAXuVKWcyDoeD6KiFzJo51lIdX3cQTgvtwOw+zd78kifeH0LbXt/S/sOhKfmTFv1Jq3cG8th7gxk0eT4ANxMS6f3jdJ54fwit3x3EqF9XZEnzhx+/5ODB9URHL7wl/5VXOrJh41Ki1y+if3/T3b781gU8LRIzkTyNVwbg17u/yM5dey3V8BcH4b+jHZgzx8gPXmTaZ92Z3M8Z1KN27GNFzE6mf/Y6M794k+ea1wVgcdRWbiQk8POAN5jcrxszlkVx7MyFTOtNGD+D1q073pJXr15NWrRoTI3qzahapQlDhozIfsP+hj+6gKeHLy3I7sqUs7qI5DW2Q0Skr4j8JiJfiEiYFRUqUaIYzZo15KefJltRfAr+6iCsHZizx/Ql63ih5UPkCHKOzhUMyw2AIFy9fpOExESu30ggMDCA3CHBmS5/9eoozp+PuyXvxZee4euvf+DGjRsAnDlzLput+Cf+6AKeHma5ItuBqx7wT8AVY3sITouiL4y80VZU6Ouv+9KzZ3+Skqy9PP7gIOxJ/OL6ifDKgNE81fs7ZixzGoAfOnmODbsP8kyf73mh/3C27TsKQKNq5QgJDqLRa5/z8Jtf0LF5XcJyh2a/DsBdd5WmVu1qrPh9FgsWTqVS5QdNKfffii8FYJemnEqpZPPNKkqpSsb2KhHZlN5JqV2RHZlwRW7evBFnTp9lw8at1KtX061zNJqsMubDLoQXCONc3GVe+eInShUvTEJSInGXrzDh41fZtv8o73w3mXkD32bb/qMEOBws/rYnF+Ov8ny/4dQoV4aIIgWyXY/AgADy5w+j/kOtqVylPOPHD+X+++qa0MJ/J760LIGrHvA2EXne2N4sIlUARKQskO5qIEqp4UqpKkqpKpmxpK9VqwotWjRh7561TJzwPZGRtRk7xprFVPzBQdiT+MP1Cy/gHEUrGJabBpXvY9u+o4TnD6Nh1fsRER648zYcIly4FM/8PzdR68GyBAUGUDAsNxXK3sH2/UezXQeAY8dP8uts50O5mPWbSUpKolCh7Af2fyt+MwYMvAg8JCL7gPuANSKyHxhh7DOV3r0HUKp0Fe4qW4NnOnRl+fLVdOz0utkygO87CHsaX79+V67dIP7q9ZTtNdtiKRMRTmSV+4jesR+AgyfOcjMhkfx5clG0YD6itu9LOX5r7GFKFS+cvYYZ/PbbIuo9VAOAMmVKkSNHEGfPnjel7H8jvjQLwpUrchzQyXgQV8o4/qhS6pQdlbMSX3cQTg/twOwe5y9e5q3BEwCnA3PzWuWpXb4sNxMS+Gj4Lzz+/mCCAgLp93IbRISnGtfgo+E/89h7g0EpWtWrTNnbi2Vad8yYb6hbrwYFC+Znz9419O8/iHFjp/Hjj18SHb2QGzdv0uUl85e19EcX8PRIMmkQQkRuA8YB4ThHNoYrpYaISAFgKlASOAi0VUpdEBHB+aysOc7nZJ2UUhsy1LDaFTnIJldkXxr30diHXg/Yt0i4cSzbAwP97njG7XDw4aGJ6eqJSDGgmFJqg4jkAWKA1kAn4LxSaoCIvA/kV0q9JyLNge44A3B1YIhSqnpG+l45D1ij0WiyispEyrAcpU4k92CVUpeAnUAJoBWQ/JbYWJxBGSN/nHKyFshnBPF00QFYo9H4FZmZhiYiXURkfarUJa0yRaQkUBFYB4QrpU4Yu07iHKIAZ3A+kuq0o0Zeuui1IDQajV+RIO4PSCqlhgPDMzpGRHIDPwNvKqUuSirbe6WUEsmE4N/QPWCNRuNXmDUEASAiQTiD70Sl1C9G9qnkoQXj/9NG/jHgtlSnRxh56aIDsEaj8SvMehPOmNUwCtiplBqYatevQPKCHh2B2anynxMnNYC4VEMVaWK9K7LYM9vZ6tkcnsJh0/UD+74rwPJXzZPJX6+HLToA5+f3sU0rT5MPbdPyNcyahgbUBp4FtqZ687cXMACYJiKdgUNAW2PfPJwzIGJxTkN7HhfoMWCNRuNXmBV+lVKrgPR6JQ3TOF4BmVorVQdgjUbjV3jDIjvuogOwRqPxKxJ96LUsHYA1Go1foXvAGo1G4yGU7gFrNBqNZ/ClHrBXzQMuW7Y00VELU9LZMzvp3r2zJVp2GwfaaWC5Z/caNsQsITpqIWv+nGuZzuvdX2TjhiVsiFnCuHHfERyceYsedwgODubP1XOIWb+YTZuW8dFH5i568+OP/+XQoRjWr//nEpdvvPESV68eomDB/Fkuv1mvH2jTdxRt+43m6U+dSwj88NsqGr83lLb9RtO232hWbt2Xcvyo+Wto2XsYrT4awZ/b92dZN5mIiOIsWTSdLZuXs3nTMrq/Zs3PVDJ23utpkYRyO3kar+oB79mzn6rVnF5fDoeDgwfWM3v2Aku0xo2bxvffj2b06CGWlJ+aZFPJps3bc/ToCdaumcdvcxaxc6d1xqONmzzJuXOZN410l+LFi9Kt2/OUr9CQa9euMXHC97Rt+yjjx083Xev69es0btKW+PgrBAYG8vuKmSxcsJx1URmu9Oc248dP58cfxzJy5MBb8iMiitGwYV0OH87+wusj/tOe/H+zMOrQsAodm9y6WNa+42dZuH4nP/fpzJm4y7w8aCqz+71EgCPrfaWEhATeebcvGzdtI3fuXEStW8CSpX9Ycv954l7/O54Pq+7jVT3g1DRoUIf9+w9x+HCGb/JlGTuNA+00lbSTgMBAQkJyEhAQQGhoCCdOWLdMdHy805owKCiQoKAgU1+8cRpl/vNe+PLLj/jgg89tfclnxea9PFzlXnIEBVKiUD5uK5KPbQcyfJnKJSdPnmbjpm0AXL4cz65deylhkX+fN9zrCSi3k6dx5Yr8urEose20ffJRpk6b7fpAH8BuU06FYt7cSaxdM4/Ona2xBz9+/CSDBw0jdu9aDh2MIe7iJZYs+cMSLXD2rNZHL+L4sS0sWfoHUdEbLdMCaNGiMcePn2Tr1p3ZLksQXh08jfafjmHGH/+3UpyyYgNPfvITfcbO42L8NQBO/3WZovnzphwTnj8Pp/+6lO06JHPHHRFUKF+OdVHWXD9vMKBVmfjnaVz1gPsB60RkpYh0FRG3PFhSL/GWlBif6UoFBQXRokUTfv55TqbP1UBk5ONUr9GMlo8+y6uvdKROnQzXhM4S+fKF0aJlE+6+pxYlS1UhV2go7ds/ZrpOMklJSVSp2oSSpapQtUpF7r//bsu0QkJy8u673fjkk4GuD3aD0e88w5TenRja/Umm/b6BmD1HaPtQReb0f5mpvZ+nUFhuvp6xzBStjMiVK5RpU0fQ4+0+XLp02XI9T+FLrsiuAvB+nCv69AMqAztEZIGIdDRWiE+TW0w5A9w35UymadNINm7ayunTZzN9rjditylnctlnzpxj9uwFVK1awXSNBg3qcPDgEc6ePU9CQgKzZs+nZo0qpuv8nbi4i6z4fTVNmtS3TKN06Tu4447biIqaz65dqyhRohhr1swlPDxrHnDh+Z0/KgXy5iKyQlm2HTxOwby5CHA4cDiEx+uUZ9tB5zBDkXy5OXnhYsq5py5coki+dH/U3CYwMJDpU0cwefJMZs2an+3y0sMbDGj9qQeslFJJSqlFSqnOQHHge6ApzuBsCe3atmLqVP8YfgB7DSxDQ0PInTtXynajRvXYvn236TpHjhyjerWKhITkBCAysja7dlnzoKVQoQKEhTn/LM+ZMyeNGtZj9+59Ls7KOtu37+aOOypzzz11uOeeOhw7doKaNR/h1KkzmS7r6vUbxF+7nrK9ZscByhQvzJm4//dAl23aQ5nihQB4qHwZFq7fyY2bCRw7+xeHT1+gXKnMe8/9nRHDv2bnrlgGD8lw6dts4w0GtL7UA3Y1C+KWhSiUUjdxLrn2q4iEpn1K9ggNDaFhw3p07fa+FcWnYKdxoJ0GluHhhZk+bSQAgYEBTJkyi0WLVpiuEx29iV9mzmPd2vkkJCSyafM2Ro6aZLoOQLFi4fw0ajABAQ7E4WDGjN+YN2+JaeWPHfsNdevWpFCh/MTGrqVfv0GMHTvVlLLPXbxCjx+dy8gmJCbRrNp91C5Xmg9+msPuI6cQEYoXDKN3B+eDqjLFC9O48j08/vEoAgIc9GzfOFszIABq16rKsx3asGXrDtZHO4Phhx8OYP4C84c97LzX062DD62MmKEpp4iUVUpl6+rlCI6w5Wok+dBFzwx6OcrsERhg30xLvRxl9jHDlPPpOx5zOxhMOjTTvps+DVzZ0tv7q0uj0WiyiTeM7bqLV72IodFoNNnFG8Z23UUHYI1G41d4wyvG7qIDsEaj8Sv0EIRGo9F4CF+aBaEDsEaj8Sv0EEQq/NWt2C5snV7nh9/VzcQE27Ty2jg17OrxlbZphRSva5uWGeiHcBqNRuMh9BiwRqPReAg9BKHRaDQewpeGPXUA1mg0foW2pddoNBoP4UtDEF5rSaTRaDRZQSnldnKFiPwkIqdFZFuqvAIislhE9hr/5zfyRUS+EZFYEdkiIpVcle+VAdjhcBAdtZBZM8daqmOne6tdWv7YJju17HbLNvtev3jpMm990J+W7V+i5dNd2LRtJ199N5KW7V/isede5fWen3DRcMPYumM3T3TsxhMdu/F4x64s+X21KXXwM1fkMTjXP0/N+8BSpdRdwFLjM0Az4C4jdQF+cFV4hstRmkFQjhKZFnjzjS5UqvwgefPkofVjHd06J7MiDoeDndtX3uLe2uHZrpY5xdqh5Y9tslurbp3qXL4cz+jRQ6hQsWGmzs3KuoZZudcBrqQzD7hXv6+oVL4cbR5tys2bN7l67Tpbd+ymeuUKBAYGMPD7UQD06NqZq9euERQYRGBgAGfOnueJjl1ZNnsigYEBt5SZmXnA2f2uzFiOsn5EI7fDwYqjS1zqiUhJYI5SqpzxeTdQXyl1QkSKASuUUneLyDBje/Lfj0uvbFemnDlE5DkRaWR8flpEvhORbiIS5GYbM0WJEsVo1qwhP/002YriU7DTvdUuLX9sk91adrplm32vX7ocT8zmbTxhXJugoCDy5slN7eqVU4Lqg/ffwynD6iskZ86U/Os3boAJ60F7gytyolJup9T+lUbq4oZEeKqgehIIN7ZLAEdSHXfUyEsXV0MQo4FHgDdEZDzwJLAOqAqMdKOimebrr/vSs2d/yxfsttO91S4tf2yT3Vp2Yva9fuz4SfLnC6P3pwNp06kbH30+mCtXr91yzMy5i6hTs2rK5y3bd9HqmZd57LlX+eid1/7R+80s3vBdZWYIIrV/pZEy5dmknEMIWR5GcBWAH1BKtQMeA5oAbZRS44HngYrpnXSLK3KS+67IzZs34szps2zYuNXtczQaX8SKez0hMZGde2Jp99gjzBgzlJCQnIwaPy1l/7CxkwkICKBFk8iUvAfvv4fZE4cxZeQQRo6fxvXrN0yrj6cweQw4LU4ZQw8Y/5828o8Bt6U6LsLISxdXAdghIjmAPEAoEGbkBwPpDkHc4orscN8VuVatKrRo0YS9e9YyccL3REbWZuyYb9w+PzPY6d5ql5Y/tsluLbuw4l4vWqQQ4YUL8eD99wDQpH4dduyJBWDW3MX8sTqKL/q8m6b11J0lbyc0JIS9+w9mqw7e8F2ZOQsiHX4FkgfsOwKzU+U/Z8yGqAHEZTT+C64D8ChgF7AJ+ACYLiIjgGjAdAfL3r0HUKp0Fe4qW4NnOnRl+fLVdOz0utkygL3urXZp+WOb7NayCyvu9UIFC1C0SGEOHDoKwNqYTdxZ8nZWrV3PT5Om8+0XfQjJmTPl+KPHT5KQkAjA8ZOnOHDoCCWKhadZtrt4w3dlZg9YRCYDa4C7ReSoiHQGBgCNRWQv0Mj4DDAPp1t8LDAC6OqqfFeecINEZKqxfVxExhmCI5RSUS5r78XY6d5ql5Y/tsluLTvdsq2g11uv8l7fL7mZcJPbihejX6+3eOrFN7hx8yYvvfkB4Bx26PNudzZs2c6o8dMIDAzE4RB6v92N/PnCXChkjDe4Ipu5GI9Sqn06u/4xRcYYD87UvDuvnIaWFXzn3ReNv2KnvW5609CswM7lKM2YhlapWB23w8GGE6u81xVZo9FofA29GI9Go9F4CF9aC0IHYI1G41foBdk1Go3GQ9hq45VNdADWaDR+he4BazQajYdIVL5jy2m9K7LVAhqfJNCRvTUH3CUhKdEWHbD3XrdzatjlNUNt0zIDPQSh0Wg0HkIPQWg0Go2H0D1gjUaj8RC6B6zRaDQeIlHZN+6fXXQA1mg0foV+FVmj0Wg8hC+9iux1rsj+6LRrp5a/tGnYsP9y+PAGYmIWp+R99lkvNm9eRnT0QqZOHU5YWF5TNZOx6xpGRBRnyaLpbNm8nM2bltH9tc6WaVnRpmavD+CJ9wbRtudg2n/gXEz+nW8m0rbnYNr2HEyz1wfQtudgAP66FE/n/sOo8fyHfDZ6lin66WHDguymYflylIGZWI7SX512tSvyP3E1D7hOnWpcvnyFUaMGUblyYwAaNarL8uV/kpiYSP/+PQHo3fvzDMvJ7DxgO69h0aJFKFa0CBs3bSN37lxErVvAE21e8Lr7Ir15wM1eH8Ck/t3Jnzdt15uvJswhd2hOXnm8EVeu3WDXwWPEHj1F7JGT9Hq+dZrn5KzcOtvLQxbLd5/bMefEXzs8uhylyx6wiJQWkbdFZIiIDBSRV0TEkq6HvzrtalfkzLNqVRQX/uZOvGTJShITnQE1KmoDERHmmz3aeQ1PnjzNxk3bALh8OZ5du/ZSwgIDS084FSulWLR2C81qVgAgNGcOKt1TiuAg60c9VSb+eRpXtvSvAz8COXE6IQfjNJ1bKyL1za6Mvzrtaldk8+nYsR0LF64wvVxPteuOOyKoUL4c66I2ml62ZW0SeGXASJ7q9Q0zlq67ZdeGXQcoGJabO4oVyr5OJklUSW4nT+Pq19FLQAWlVKKIDATmKaXqi8gwnEZ0aToji0gXoAuABISRGWNOjcYV7733GgkJCUyePNPTVTGFXLlCmTZ1BD3e7sOlS5c9XR23GdPnVcILhHEu7jKvfD6SUsULU/ne0gDM/3MzTWtV8Ei9vGFs113ceQiXHKSDgdwASqnDWOCK7K9Ou9oV2TyefbYNzZo1pJNFZq12tyswMJDpU0cwefJMZs2ab4mGVW0KL+D0jysYlpsGVe5n274jACQkJrI0ehtNazyYbY2skKSU28nTuArAI4Fowwl5DTAUQEQKA+fNroy/Ou1qV2RzaNz4IXr0eJU2bTpz9eo1SzTsbteI4V+zc1csg4cMt0zDijZduXaD+KvXU7bXbN1DmducwxrrtsVSqnhhwgvmy3bds4IvzYJw5Yo8RESWAPcCXyuldhn5Z4B6ZlfGX512tSty5hk37lvq1q1JoUL5iY1dR//+A3nnnW4EB+dg7tyJAERFbaR7916maYK917B2rao826ENW7buYH20MyB++OEA5i9YZqqOFW06H3eJtwaNB5w93ua1K1K7/N0ALFiT9vBDs9cHcPnqNW4mJLI8Zjs/vv8id0aEZ6seaeFL84C9ahqa5t+DPy5H6a/YuRylGdPQ8uYq7XbMuRi/X7siazQajVl4w+wGd9EBWKPR+BXe8HDNXXQA1mg0foU3PFxzF69bC0Kj0Wiyg5lvwolIUxHZLSKxIvK+2XXVPWCNRuNXmNUDFpEAnFNvGwNHcU7J/VUptcMUAXQA1mg0foaJY8DVgFil1H4AEZkCtAJ8JwAn3DiWpWkeItJFKWXd7HSbdbSWb2n5Y5v8WSs1mYk5qZdNMBieqs4lgCOp9h0Fqme/hv/Hm8eAu7g+xKd0tJZvafljm/xZK0ukXjbBSLb+wvDmAKzRaDSe5BjO1R+TiTDyTEMHYI1Go0mbaOAuESklIjmAp4BfzRTw5odwdv0pYOefHFrLd7T8sU3+rGU6SqkEEXkNWAgEAD8ppbabqWH5WhAajUajSRs9BKHRaDQeQgdgjUaj8RBeF4CtfvUvlc5PInJaRLZZpZFK6zYRWS4iO0Rku4i8YaFWThGJEpHNhlZfq7QMvQAR2SgicyzWOSgiW0Vkk4ist1grn4jMEJFdIrJTRGpapHO30Z7kdFFE3rRI6y3jftgmIpNFJKcVOobWG4bOdqva4zdkZvV4qxPOge59QGkgB7AZuM8irXpAJWCbDe0qBlQytvMAeyxslwC5je0gYB1Qw8K29QAmAXMsvoYHgUJWf1eG1ljgRWM7B5DPBs0A4CRwhwVllwAOACHG52lAJ4vaUQ7YBoTifMi/BChjx/fmi8nbesApr/4ppW4Aya/+mY5S6g8ssFVKR+uEUmqDsX0J2Inzh8IKLaWUSnZ2DDKSJU9aRSQCeASndZVfICJhOH85jwJQSt1QSv1lg3RDYJ9S6pBF5QcCISISiDM4HndxfFa5F1inlLqilEoAfgcet0jL5/G2AJzWq3+WBCpPISIlcbpJr8v4yGxpBIjIJuA0sFgpZZXWYOBdwI4VsBWwSERijNdHraIUcAYYbQytjBQRO2y9nwImW1GwUuoY8BVwGDgBxCmlrDK62wbUFZGCIhIKNOfWlxk0qfC2AOzXiEhu4GfgTaXURat0lFKJSqkKON/cqSYi5czWEJEWwGmlVIzZZadDHaVUJaAZ0E1ETPckNAjEOTT1g1KqIhAPWPYsAsCY5P8oMN2i8vPj/EuyFFAcyCUiHazQUkrtBL4AFgELgE2A9oVKB28LwJa/JkDCGwAAAZNJREFU+ucpRCQIZ/CdqJT6xQ5N40/n5UBTC4qvDTwqIgdxDhU1EJEJFugAKb04lFKngZk4h6us4ChwNNVfDTNwBmQraQZsUEqdsqj8RsABpdQZpdRN4BeglkVaKKVGKaUqK6XqARdwPvPQpIG3BWDLX/3zBCIiOMcUdyqlBlqsVVhE8hnbITjXMt1lto5SqqdSKkIpVRLn97RMKWVJr0pEcolInuRtoAnOP3VNRyl1EjgiIncbWQ0xcfnBdGiPRcMPBoeBGiISatyLDXE+h7AEESli/H87zvHfSVZp+Tpe9SqysuHVv2REZDJQHygkIkeBPkqpUVZo4ewtPgtsNcZmAXoppeZZoFUMGGssJu0ApimlLJ0iZgPhwExn7CAQmKSUWmChXndgotEJ2A88b5WQ8QulMfCyVRpKqXUiMgPYACQAG7H2NeGfRaQgcBPoZtNDTJ9Ev4qs0Wg0HsLbhiA0Go3mX4MOwBqNRuMhdADWaDQaD6EDsEaj0XgIHYA1Go3GQ+gArNFoNB5CB2CNRqPxEP8DVePb8AK5O9MAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "St-RTjWwVmNb", "outputId": "cba160a0-9c41-46f6-f815-5a56ec946c5b" }, "source": [ "print(classification_report(teste_y, pred))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 196 0.95 0.96 0.95 589\n", " 198 0.92 0.93 0.92 632\n", " 200 0.93 0.93 0.93 578\n", " 219 0.96 0.94 0.95 580\n", " 220 0.96 0.95 0.96 634\n", " 339 0.97 0.94 0.96 589\n", " 458 0.97 0.96 0.96 591\n", " 461 0.93 0.93 0.93 590\n", " 463 0.98 0.99 0.98 632\n", " 785 0.94 0.98 0.96 585\n", "\n", " accuracy 0.95 6000\n", " macro avg 0.95 0.95 0.95 6000\n", "weighted avg 0.95 0.95 0.95 6000\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "ZbKGoIVzk68j" }, "source": [ "## Naive Bayes" ] }, { "cell_type": "code", "metadata": { "id": "9ohRuP8Ik9fK" }, "source": [ "from sklearn.naive_bayes import MultinomialNB\n", "clf_nb = MultinomialNB()\n", "\n", "ini_nb = time.time()\n", "clf_nb.fit(X_train_tfidf, treino_y)\n", "fim_nb = time.time()\n", "pred_nb = clf_nb.predict(X_test_tfidf)\n", "pre_nb = time.time()\n", "treino_nb = fim_nb - ini_nb\n", "time_prev_nb = pre_nb - fim_nb\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "8QmOj4VGliBo", "outputId": "76126ba2-349c-4213-b416-3e49290ee930" }, "source": [ "print(confusion_matrix(teste_y, pred_nb))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[488 18 0 2 2 0 40 19 20 0]\n", " [ 1 513 88 15 8 0 3 2 2 0]\n", " [ 0 67 505 1 4 1 0 0 0 0]\n", " [ 7 17 0 521 15 6 2 5 7 0]\n", " [ 3 18 10 36 560 1 2 2 2 0]\n", " [ 4 8 3 3 1 537 2 6 1 24]\n", " [ 5 2 0 1 0 0 554 16 13 0]\n", " [ 5 3 3 10 66 0 69 411 23 0]\n", " [ 1 0 0 4 1 0 4 23 599 0]\n", " [ 1 0 2 2 0 47 1 2 5 525]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "XeA3gEWKL9er", "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "outputId": "ae2d17e6-a31f-4ec8-e3a0-9b41ee367d44" }, "source": [ "ax = sns.heatmap(confusion_matrix(teste_y, pred_nb), annot=True, fmt=\"d\")" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lpmW1cgmlioy", "outputId": "8b100b1a-087d-4a07-a2c0-0951051ec61e" }, "source": [ "print(classification_report(teste_y, pred_nb))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 196 0.95 0.83 0.88 589\n", " 198 0.79 0.81 0.80 632\n", " 200 0.83 0.87 0.85 578\n", " 219 0.88 0.90 0.89 580\n", " 220 0.85 0.88 0.87 634\n", " 339 0.91 0.91 0.91 589\n", " 458 0.82 0.94 0.87 591\n", " 461 0.85 0.70 0.76 590\n", " 463 0.89 0.95 0.92 632\n", " 785 0.96 0.90 0.93 585\n", "\n", " accuracy 0.87 6000\n", " macro avg 0.87 0.87 0.87 6000\n", "weighted avg 0.87 0.87 0.87 6000\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "MfrNzFBQmFwc" }, "source": [ "## Adaboost" ] }, { "cell_type": "code", "metadata": { "id": "Siahv8t7ma9o" }, "source": [ "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import AdaBoostClassifier\n", "\n", "clf_tree = DecisionTreeClassifier(criterion='entropy', max_depth = 20)\n", "clf_ada_tree = AdaBoostClassifier(clf_tree)\n", "ini_ada_tree = time.time()\n", "clf_ada_tree.fit(X_train_tfidf, treino_y)\n", "fim_ada_tree = time.time()\n", "pred_ada_tree = clf_ada_tree.predict(X_test_tfidf)\n", "pre_ada_tree = time.time()\n", "treino_ada_tree = fim_ada_tree - ini_ada_tree\n", "time_prev_ada_tree = pre_ada_tree - fim_ada_tree\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "xA7JAtCTMDse", "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "outputId": "6e2a2bf8-f7d8-4aa8-b04d-8f6d5161f678" }, "source": [ "ax = sns.heatmap(confusion_matrix(teste_y, pred_ada_tree), annot=True, fmt=\"d\")" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "UUP0VLAyma9q", "outputId": "90396755-de04-4e42-e425-0590ad13281e" }, "source": [ "print(confusion_matrix(teste_y, pred_ada_tree))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[562 3 0 0 0 3 4 10 7 0]\n", " [ 3 569 47 6 1 2 1 2 0 1]\n", " [ 0 54 523 1 0 0 0 0 0 0]\n", " [ 5 8 0 550 11 0 2 2 0 2]\n", " [ 0 4 9 13 601 1 1 4 0 1]\n", " [ 0 2 2 0 0 560 0 2 0 23]\n", " [ 2 0 0 1 0 0 571 16 1 0]\n", " [ 2 3 1 2 9 2 13 557 1 0]\n", " [ 3 1 0 1 0 1 1 4 621 0]\n", " [ 0 1 0 0 0 13 0 1 0 570]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JikKgSmIma9u", "outputId": "075f00a9-ed9c-46c5-ac4a-1023e7e64fcd" }, "source": [ "print(classification_report(teste_y, pred_ada_tree))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 196 0.97 0.95 0.96 589\n", " 198 0.88 0.90 0.89 632\n", " 200 0.90 0.90 0.90 578\n", " 219 0.96 0.95 0.95 580\n", " 220 0.97 0.95 0.96 634\n", " 339 0.96 0.95 0.96 589\n", " 458 0.96 0.97 0.96 591\n", " 461 0.93 0.94 0.94 590\n", " 463 0.99 0.98 0.98 632\n", " 785 0.95 0.97 0.96 585\n", "\n", " accuracy 0.95 6000\n", " macro avg 0.95 0.95 0.95 6000\n", "weighted avg 0.95 0.95 0.95 6000\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "SiZya-A5us0G", "outputId": "48bef0a3-da68-4fba-b52b-08b468f67595" }, "source": [ "clf_ada_tree.get_params(deep=True)" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'algorithm': 'SAMME.R',\n", " 'base_estimator': DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='entropy',\n", " max_depth=20, max_features=None, max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, presort='deprecated',\n", " random_state=None, splitter='best'),\n", " 'base_estimator__ccp_alpha': 0.0,\n", " 'base_estimator__class_weight': None,\n", " 'base_estimator__criterion': 'entropy',\n", " 'base_estimator__max_depth': 20,\n", " 'base_estimator__max_features': None,\n", " 'base_estimator__max_leaf_nodes': None,\n", " 'base_estimator__min_impurity_decrease': 0.0,\n", " 'base_estimator__min_impurity_split': None,\n", " 'base_estimator__min_samples_leaf': 1,\n", " 'base_estimator__min_samples_split': 2,\n", " 'base_estimator__min_weight_fraction_leaf': 0.0,\n", " 'base_estimator__presort': 'deprecated',\n", " 'base_estimator__random_state': None,\n", " 'base_estimator__splitter': 'best',\n", " 'learning_rate': 1.0,\n", " 'n_estimators': 50,\n", " 'random_state': None}" ] }, "metadata": { "tags": [] }, "execution_count": 40 } ] }, { "cell_type": "markdown", "metadata": { "id": "MVyRct5Lqgl-" }, "source": [ "## KNN" ] }, { "cell_type": "code", "metadata": { "id": "yqo0Vjw1qjx6" }, "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "\n", "clf_knn = KNeighborsClassifier(n_neighbors = 5)\n", "ini_knn = time.time()\n", "clf_knn.fit(X_train_tfidf, treino_y)\n", "fim_knn = time.time()\n", "pred_knn = clf_knn.predict(X_test_tfidf)\n", "pre_knn = time.time()\n", "treino_knn = fim_knn - ini_knn\n", "time_prev_knn = pre_knn - fim_knn" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "WSv4U36vMHv3", "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "outputId": "7656ec16-65f9-4cb9-e84b-e38fe872daa9" }, "source": [ "ax = sns.heatmap(confusion_matrix(teste_y, pred_knn), annot=True, fmt=\"d\")" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "z_BLgf6iqjeX", "outputId": "87ae88cc-51cc-4b63-97fb-22e6ad57c498" }, "source": [ "print(confusion_matrix(teste_y, pred_knn))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[558 3 1 0 1 0 11 5 10 0]\n", " [ 4 544 53 11 8 4 3 0 3 2]\n", " [ 1 42 523 1 6 1 2 0 0 2]\n", " [ 5 5 0 556 9 1 2 0 2 0]\n", " [ 6 1 5 48 569 1 1 1 2 0]\n", " [ 1 3 2 6 4 547 1 2 1 22]\n", " [ 4 0 0 2 0 0 572 10 2 1]\n", " [ 13 4 4 10 28 5 27 482 17 0]\n", " [ 3 0 0 0 0 1 2 3 623 0]\n", " [ 2 0 0 1 0 19 1 1 1 560]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "qeOZJDN6qjAl", "outputId": "908b6983-57a9-4c0c-c944-0bf370e2a6e7" }, "source": [ "print(classification_report(teste_y, pred_knn))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 196 0.93 0.95 0.94 589\n", " 198 0.90 0.86 0.88 632\n", " 200 0.89 0.90 0.90 578\n", " 219 0.88 0.96 0.92 580\n", " 220 0.91 0.90 0.90 634\n", " 339 0.94 0.93 0.94 589\n", " 458 0.92 0.97 0.94 591\n", " 461 0.96 0.82 0.88 590\n", " 463 0.94 0.99 0.96 632\n", " 785 0.95 0.96 0.96 585\n", "\n", " accuracy 0.92 6000\n", " macro avg 0.92 0.92 0.92 6000\n", "weighted avg 0.92 0.92 0.92 6000\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "2LE_9Q49j4P2" }, "source": [ "## SVM" ] }, { "cell_type": "code", "metadata": { "id": "bR6eH3JZj6JQ" }, "source": [ "from sklearn.svm import SVC\n", "clf_svm = SVC()\n", "ini_svm = time.time()\n", "clf_svm.fit(X_train_tfidf, treino_y)\n", "fim_svm = time.time()\n", "pred_svm = clf_svm.predict(X_test_tfidf)\n", "pre_svm = time.time()\n", "treino_svm = fim_svm - ini_svm\n", "time_prev_svm = pre_svm - fim_svm" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "CG6fx9AYMLy7", "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "outputId": "516bb60a-640b-40c7-a8ac-7e0a23b6c8b9" }, "source": [ "ax = sns.heatmap(confusion_matrix(teste_y, pred_svm), annot=True, fmt=\"d\")" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAD4CAYAAADSIzzWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd3wVxfqHnzcFKYHQAwIKitiR3uWCIAKKgiKKDa8oYkHh/iyIYgNRr4CgggIiRaQrooB0sFFC771pEAQBgYSaZH5/nE0MmuSc5OzuOdn7Pnzmk93Z3fnunN3zMmd2dr5ijEFRFEVxn4hQn4CiKMr/KhqAFUVRQoQGYEVRlBChAVhRFCVEaABWFEUJEVFOC5xZ8aUrwyxiGj7jhoySx4gQcVHLvfZMqkl1Ucu9kVLJ5/YHfcHO/7E74BOOLnmZezdIJmgLWFEUJUQ43gJWFEVxldSUUJ9BwGgAVhTFW6Qkh/oMAkYDsKIonsK42D8eLNoHrCiKt0hNDTz5QUSKishUEdkqIltEpL6IFBeReSKyw/pbzNpXROQDEdkpIutFpIa/8jUAK4riLUxq4Mk/g4HZxpirgBuALUBPYIEx5gpggbUO0Aq4wkpdgI/9FR6yANyq+3+5q+dgOvT6kI69h6Tnj5+7hDueH0i7Fwfx/oTvADifnMIrn0zhrp6DafvC+4z8ZrEt53BLiyZs2vgDWzf/xAvPP2VLmaHW8mKd3Nbavm0pq1fNZ0X8HJYumWlr2cOGvccvv6xm1ap56XnFisUyc+YXbNz4PTNnfkHRorG2agLExhZh4oRhbFi/mPXrFlG3rt/GWa5x81plSmpK4CkbRCQWaAyMBDDGnDPG/AncAYyxdhsDtLWW7wDGGh/LgKIiUjY7jZC2gD99+VEm9+vGhD6+ixS/eReLV21hSr9nmPZudx5qfSMA8+I3cC45mS/feZYJfZ5i6sJ49h8+FpR2REQEHwx+i9vaPMD1NzTlnnvacvXVVwRdp1BqebFObmulcXOLu6ld5xbqN7jV1nI//3wKt9/+0AV5zz33FIsW/cx11/2LRYt+5rnnnrRVE2DggDeYM3cx11dtQs1aLdi6daftGhCaa/UPctACFpEuIrIyQ+qSoaRKwGFglIisEZFPRaQQEGeMOWDtcxCIs5bLAb9mOD7ByssSvwFYRK4SkRetvo0PrOWrA/0scsKU+ct5pM2/yBftezZYIjbGdw4Ip8+eJzklhbPnkomKiiSmwEVBadWpXZ1du/ayZ88vnD9/nsmTp3N7m1uCrkMotbxYJ7e1nOann+I5duzPC/LatLmZceOmAjBu3FRuv72FrZpFihSm0Y11GTVqAgDnz5/n+PETtmqkEQ7XyqQkB56MGW6MqZUhDc9QVBRQA/jYGFMdSOKv7gaflm8+31y/qZJtABaRF4GJgADxVhJggoj0zO5Yv4jQ9Z1R3PvKR0xdGA/AvoNHWL1tL/e/NpRH+g5n464EAJrXuY4CF0XT/Om3uaX7u3RqfSOxMQWDkr+4XBl+TfgtfT1h/wEuvrhMUGWGWsuLdXJbC8BgmDVzPMuWzqJz5/sd00mjdOmSHDx4CICDBw9RunRJW8uvVLECfxw+yqcjBhK/fDaffPweBQsWsFUjDbevVabY9xAuAUgwxiy31qfiC8i/p3UtWH8PWdv3AxUyHF/eyssSfy3gzkBtY8w7xphxVnoHqGNty5SMzfqR0+Zlus/o3l2Y9NbTDHn+YSbNX8aqrXtITk3heOIpxr3+BD06tuL5jyZgjGHj7gQiIyKY9+FLzBr4PGNn/UTCoaN+Tl1RckfTpndSt14r2tz+IE907USjRnVd1bf7zd/IqCiqV7+OYcM/p07dliSdOhWavlm3sOkhnDHmIPCriFxpZTUDNgPfAJ2svE7AdGv5G+AhazREPeB4hq6KTPEXgFOBizPJL2tty+rE05v1ndvdnOk+ccV9DxpKxMZwU81r2LgrgbhisTSrfS0iwvWXVyBChGMnk/huyVoaVK1CdFQkJWJjqFblUjbtTvBz6tnz2/6DVCj/V9XKlyvLb78dDKrMUGt5sU5uawHpZR8+fITp02dTu3Y1x7QADh36gzJlSgNQpkxpDh/+w9by9+8/QELCAVasWAPAV1/NpFr1623VSMPta5UpNj2Es+gGfCEi64FqQD/gHeBmEdkBNLfWAWYBu4GdwAjAb2e+vwDcHVggIt+JyHArzcY39OLZQM4+M06dOUfS6bPpy0s37qRy+Tia1rqGFZt3A7D3wB+cT06hWOFClClRlPhNu9L337DzFypdXCq38gCsWLmWypUrUbFiBaKjo+nQ4Q6+nTE3qDJDreXFOrmtVbBgAWJiCqUvN2/emE2btjmilcaMGfN44IH2ADzwQHu+/TbzX4255fffD5OQ8BtVqlwGwE1NG7Flyw5bNdJw81pliY3D0Iwxa63GZFVjTFtjzDFjzBFjTDNjzBXGmObGmKPWvsYY85Qx5nJjzPXGmJX+ys/2TThjzGwRqYKvyyHtad5+YIUxJtcvXB89kUiPQeMASE5JpXWDG2h4QxXOJyfz6vCvuLPnIKIjo+jzeHtEhHtvrserw7+k3YuDwBjuaFyTKpdkO7rDLykpKTzb/RVmzRxPZEQEo8dMYvPm7UGVGWotL9bJba24uFJMmfwpAFFRkUyc+DVz5y62rfyxYz/kxhvrU7JkMXbuXE7fvgPp338oX3zxMQ8/fA+//LKf++9/wja9NHr06M2Y0R+SL18+9uzZx6OP/Z/tGuDutcr6JPLOq8jitCmnTkephBKdjtIOrbw1HeXZ9XMCPuGLqt4S0ukodS4IRVE8RRA/zl1HA7CiKN4iD03GowFYURRvEcAkO+GCBmBFUbyFtoAVRVFCRMr5UJ9BwGgAVhTFW2gXxF+4NTzs1NZprugAlLnB+fkB0jh59pRrWu4NNnIPN4dQpeahp++eRrsgFEVRQoS2gBVFUUKEBmBFUZTQYPQhnKIoSojQPmBFUZQQoV0QiqIoISIPtYDDypa+fPmLmT93CuvXLWLd2oV0ezpL040ccUunHrR74iXaP/Uy9zzzKgDbdu/j/h5v0O6Jl3j6tQEkJp0G4HxyMi/3H0a7J17i9i4v8umkb3KlWa5cGabP/JylK75jSfwsHn/CN4H+yNGD+P7nb/j+529Yu3ER3/+cu/Kz4qKLLmLJzzNYtXIea9cu5NVXnZl20KlrlRVedWBWt2wHsM+SyHHCqgWcnJzM8y+8wZq1G4mJKUT88tnMX/CDLZNHf/ZOL4rFFk5ff23QSP7v0Y7Urno10+Z8z6gvZ9LtofbM/TGec+fPM+3jtzl95ixtH+9Jqyb1KReXswngk5NT6N3rbdav20xMTCEW/jiNxQt/pvPD3dP36dOvJyeOJwZdt4ycPXuWm1t0ICnpFFFRUXy/eBpzZi9iefxqW3WcvFZ/J81pt2XrjiQkHGDZ0ll8O2OuaoWZjttaWaIt4Nxx8OAh1qzdCEBiYhJbt+6gnEOGfvv2H6TW9VcBUL/Gdcz/aQUAIsLpM2ctB+ZzREdHEZMLA8Pffz/M+nWbAV9dtm/bRdmL4y7Yp2271nw59dsga/JPkpJ8L29ER0cRHR2NE3M+u3mtvOrArG7ZDpGcHHgKMbkOwCLybztP5O9ceml5qt1wHcvj1wRdlgg8/vK7dOjWmymzFgJw+aXlWLh0FQBzfozn4B8+k8+bG9WmQP6LuOm+brR4qDud7mxFbOGYoPQrXFKOqlWvYdXKdel59RvW5tChP9i9a19QZWdGREQEK1fM5bf965m/4AfiVwT/GWaHndcqM7zqwKxu2Q5hoyWR0wTTBfEGMCqzDSLSBegCIJGxREQUylHBhQoVZPKkEfznudc4eTL4n+hj+vcmrmRxjvx5nC693qVShYt5s8djvPPx5wybMJ2m9aoTHeX7KDZu201ERAQLvviAE4lJPPxcX+pVv44KZUvnSrtQoYKMGfcRvXq+dUFd7mp/G19NnRF03TIjNTWVWrVbEBtbhKlTRnLttVc65mtm97VSlKAJg77dQMk2AFtOoJluAuKy2IYxZjgwHCAqX7kc/f6NiopiyqQRTJgwja+//i4nh2ZJXMniAJQoGkuzBrXYuG0XD7e/leH9XgRgb8IBfoj3tU5nLl5Co1pViY6KokTRWKpdU4VNO/bkKgBHRUUxZtxHTJ38DTO++cuYMDIykttub8FNN7azoXZZc/z4CRZ//zMtWjRxJAA7ca0yw6sOzOqW7RBh0LINFH9dEHHAQ0CbTNIRJ05oxPABbNm6k0GDh9tS3qkzZ0g6dTp9ecnqDVSuWIEjfx4HfK3F4ROn06H1TQCULVWS5Vbf7akzZ1i/dSeVKuTOAPSDIf3Yvm0XQz+68IdCk6YN2LF9tyM3ZsmSxYmNLQJA/vz5ad6sMdu27bJdB+y/VlnhVQdmdct2CA+NgpgBxBhj1v59g4gstvtkGjaozYMPtGf9hs2sXOG7aL17v8N3sxfmuswjx07Qvc8gAFJSUmndpD6NalVl3NdzmDhjPgDNGtSibYvGAHRs05xXBg6n7eM9McbQtkVjrqx0SY5169avyb33tWPTxq3pQ836vDGA+XO/p1372/hyijPdD2XLxvHZyEFERkYgERFMnfots2bNt13HiWuVFV51YFa3bIfIQy1gx12Rc9oFkVt0Osrg8eJ0lErewg5X5NOT3wz4Vi7Q4VV1RVYURbENF+eADhYNwIqieIsw6NsNlLB6EUNRFCVobHwIJyJ7RWSDiKwVkZVWXnERmSciO6y/xax8EZEPRGSniKwXkRr+ytcArCiKt7D/RYymxphqxpha1npPYIEx5gpggbUO0Aq4wkpdgI/9FawBWFEUb5GSEnjKHXcAY6zlMUDbDPljjY9lQFERyXYMq2f6gAte1Y7C+XI+Z0Nu+O3bnv53sonCt7zmmpaieIIc9AFnfGvXYrj1IlkaBpgrIgYYZm2LM8YcsLYf5K+X0soBv2Y4NsHKO0AWeCYAuxV8FUUJc3IQgDO+tZsFjYwx+0WkNDBPRLb+7XhjBedcoV0QiqJ4Cxv7gI0x+62/h4BpQB3g97SuBevvIWv3/UCFDIeXt/KyRAOwoiiewqSagFN2iEghESmctgy0ADYC3wCdrN06AdOt5W+Ah6zREPWA4xm6KjLFM10QiqIogJ3jgOOAaSICvlg53hgzW0RWAJNFpDOwD+hg7T8LaA3sBE4Bfqfs1QCsKIq3yP3ohgswxuwGbsgk/wjQLJN8A+TIg0kDsKIo3iIPvQmnAVhRFG+RhwJw2D2Ec9JRtVy5snwzaxxLV85myYrvePzJTunbHuv6IMtXz2HJiu94o88LudZo1WsY7d8cRYe+o7mv39gLto2dt4JqXd/jWKJvhrOTp8/yzJCv6NBnNHe+8RlfL9mQa900RgwfwG8J61i7ZkHQZWWHm67IbtUpDS86CHuxTlliTOApxIRVC9hpR9Xk5GReeelt1q/bRExMIRb9+DWLF/5MqdIlaX1rc26s14Zz585RslTxoHRG/OceisUUvCDv4NETLN2yl7LFi6TnTVq8hsvKluCDp+7k6MlTtH1tJLfWuYboqMhca48dO5mhQ0cxatTgXJcRCG66IrtVJ/Cmg7AX65QtXmoBi8hVItJMRGL+lt/S7pNx2lHV51S8CcjgVFw2jkcevY9BA4Zx7tw5AP44fNQ2zTT6T1lE9zv/dUGeCCSdOYcxhtNnzxFbKD+REcH9KPnxp+UcPfZnUGUEgpuuyG7VCbzpIOzFOmVLqgk8hZhsv+0i8gy+MW7dgI0ickeGzf3sPhk3HVUrXFKOqjf4nIorV65I/Ya1mbdoKjNmj6d6jetzXa6I8MTgKXTsN5apP/p85hat3UGpojFcWf5CX7l7m9Rgz8Ej3Pzix7TvM5rnO9xERERI54fOFU67IruJFx2EvVinbHF+Lgjb8NcF8RhQ0xiTKCIVgakiUtEYMxifMWemBOuK7DSFChVk7BdDeOnFvpw8mUhUVBTFisVyc9P21KhZlVFjP6DadU1zVfao5zoSV6wwR08k0XXwFCqVKc7I2cv5+Nm7/7Hvkk17uLJ8aUb0uIdfD/9J18FTqFG5PDEFLgq2iq6hrshKuGE81AURYYxJBDDG7AWaAK1EZCDZBGBjzHBjTC1jTK2cBF83HFWjoqIY88UQpkz6y6l4//6DfGstr161ntRUQ4mSuesHjitWGIDiRQrRtNoVrNr+K/uPHKdDn9G06jWMQ3+epONbY/njeCLTl26kWfUqiAiXlC5GuZKx7Dlof/eHU7jliuwmXnQQ9mKdssUrXRD43nmulrZiBePbgJJA7n+nZ4EbjqofDn2b7dt2MvSjz9LzZs2Yx42N6wJweeWK5MsXzZE/ch4IT589R9KZc+nLS7fs5dqKZVn03lN81+9xvuv3OKWLFmbCyw9RMjaGssULs3zrPgCOnEhi78GjlC8Va0Mt3cEtV2Q38aKDsBfrlC32zwfsGP66IB4CkjNmGGOS8b3vPMzuk3HaUbVeBqfiH5ZYTsWvD2Dc2Kl89PE7LImfxblz53ni8edzVf6RE6f4zydfA5Ccmkqr2lfT8NpKWe7/WOsGvDpmFu3fHIUBut/Z+B+jJ3LKuM+H8K/G9SlZsjh7d6/kjTf7M2r0xKDKzAw3XZHdqhN400HYi3XKljBo2QaKZ1yR3ZyOUucDVhRnsMMVOenVewOOOYXenKiuyIqiKLYRBl0LgaIBWFEUb5GHuiA0ACuK4iny0jA0DcCKongLbQEriqKECA3AfxEh7jxkTDp/xhUdcHdkQuL3/V3TKtIkd8PvckNqGMxEpXiUMHjFOFC0Bawoiqfw5/UWTmgAVhTFW2gAVhRFCRE6CkJRFCVEaAtYURQlRGgAVhRFCQ0mJe90QYSdKWdsbBEmThjGhvWLWb9uEXXr1vCElt1Gha3+733uemUoHXp/TMfXfRPTfTxtEc27D6BD74/p0Ptjflznm4XqfHIyvT/9mrteGcrdvT9mxZY9QesDbN+2lNWr5rMifg5Ll8y0pczMcNOUU7WCJ+SmnHloPuCwawEPHPAGc+Yu5t6OjxMdHU3Bgs7NcuaWllNGhZ++2IlihS+c8P7BW+rRqVXDC/K+XLza97fvkxw5kchTA75g/GuPERGk/xzAzS3u5siRY0GXkx1umnKqVnCEgylnXhqGFlYt4CJFCtPoxrqMGjUBgPPnz3P8+Ik8rxVqo8Ldvx2mztW+eYlLFImhcMH8bNr7m5+jwgc3TTlVKzhCfa8DeaoFHIgrch0RqW0tXyMi/xGR1k6cTKWKFfjj8FE+HTGQ+OWz+eTj9xxrlbqp5YhRoQhd+3/Ova8NY+rilenZE+fH0/6Vobw68mtOJJ0GoMolcXy/ZhvJKSkkHD7Glr2/8fuR4P+zMRhmzRzPsqWz6Nz5/qDLU/I+YWHKmZqDFAAiEikia0RkhrVeSUSWi8hOEZkkIvms/Ius9Z3W9or+yvbnivwa8AHwsYi8DXwEFAJ6isjL2RzXRURWisjK1JSkwGoJREZFUb36dQwb/jl16rYk6dQpx/qQ3NRygtEvP8KkN7oy5P/uZ9KCFazatpcON9VmxnvPMvnNrpSKLUz/iXMAaHtjdeKKF+G+14fz3vjZ3HBFBVvcl5s2vZO69VrR5vYHeaJrJxo1qht0mYoSLCY5NeAUIM8CWzKsvwu8b4ypDBwDOlv5nYFjVv771n7Z4q8F3B5oCDQGngLaGmP6ALcA92R10AWmnJGBm3Lu33+AhIQDrFjhszf/6quZVKtuu/Wc61pOGBXGFSsC+LoUbqpxFRt376dEbAyRERFERERw579qsHH3fgCiIiN5/r6WTO7zBIOf7cjJU2e4tEyJoPSB9DocPnyE6dNnU7t2NT9HKF4nPEw5c5D8ICLlgVuBT611AW4Cplq7jAHaWst3WOtY25tZ+2eJvwCcbIxJMcacAnYZY04AGGNOB3b6OeP33w+TkPAbVapcBsBNTRs51nnvppbdRoWnzp4j6fTZ9OWlm3ZRuVxpDv95Mn2fhau3UrlcacBnEHrqrM8sdOnGXURGRHC5tS23FCxYgJiYQunLzZs3ZtOmbUGVqeR9wsGU06SagFPGX+tW6vK34gYBL/BXvCsB/Gl5YwIkAOWs5XLAr5DunXnc2j9L/I2COCciBa0AXDMtU0RicSAAA/To0Zsxoz8kX7587Nmzj0cf+z8nZFzVstuo8OjxRHp8OAmA5JRUWte7noZVr6DXsK/Y9utBBLi4ZFF6P9zGt/+JJJ4YMI4IEUoXK8xbXe4Muk5xcaWYMvlTAKKiIpk48Wvmzl0cdLmZ4aYpp2oFR3iYcga+qzFmOJCprbeI3AYcMsasEpEmtpzb3zWyM+UUkYuMMWczyS8JlDXGbPAnkO+i8qF/1Ggzbk6lqNNRKv9L2GHKebTdvwK+uYpP+z5LPeu514P4nOHzA0WAafi6YMsYY5JFpD7wujHmFhGZYy0vFZEo4CBQymQTZLPtgsgs+Fr5fwQSfBVFUVzHpj5gY8xLxpjyxpiKwL3AQmPM/cAifM/HADoB063lb6x1rO0Lswu+EIYvYiiKogRDeu+sc7wITBSRvsAaYKSVPxL4XER2AkfxBe1s0QCsKIqncMKV3hizGFhsLe8G6mSyzxng7pyUqwFYURRvkXfm4tEArCiKt3CiBewUGoAVRfEUGoAz4MXhRm45PYO7Q8OS9s5zTavApc1d03ILN+8LL36v7MKkuHcdgkVbwIqieAptASuKooQIk6otYEVRlJCgLWBFUZQQYYy2gBVFUUKCtoAVRVFCRGoeGgURVp5w4J6jqpsuseCuA7PdbsUnTibS49V3afPgU7R56GnWbtrKnMU/c8fD3bi+aTs2bt35j2MO/H6Y2i3vZdTEr4PW96p7MLjnLO2mU7Hbn+HfMakScAo1YRWA0xxVb2vzANff0JR77mnL1Vdf4YjW2LGTufU293zM0hyYr6/ahJq1WrA1k6BlJze3uJvadW6hfoNbgy7rnY9G0rBODb79fAhfjXyfyy4pT+VKlzDozZ7UrHpNpsf8d8hn3GjTfzJuXiu37wuw91plhpvfKwjNZ5gRTwdgERnrxImAu46qbjrSuunAbDcnE5NYtW4Td93qe3EiOjqaIoVjuPzSClS6pFymxyz4cRnlysZxecUKtpyDF92D3cRtp+JQf4bGBJ5CjT9Tzm/+lr4F7kxbt/tkwsJR1QHcdGAGe92K9x/4nWJFY3nlnQ9o/2gPXv3vR5w6fSbL/U+dOs1nE6bxZKcsLQOVDLjhLO3V71VWeKkFXB44AQwEBljpZIblTLnAFTk1cFdkr+K2A7OdbsXJKals2b6Le+5oxdRP36dAgfyMHP9llvsPGT2RB+9u4+h/MF5CnaXtxxgJOIUafwG4FrAKeBk4bs2JedoY870x5vusDrrAFTkicFfksHBUdQA3HZjBXrfiMqVKEFeqBFWvqQJAi3/VZ/OO3Vnuv2HLdgZ+MoYW9zzGuKnfMuKLqYz/yrmHS3kdN5ylvfq9yoqUFAk4hRp/lkSpxpj3gX8DL4vIRzg4dC0cHFWdwE0HZrvdikuWKEaZ0iXZ84vP4n7ZqvVcfmnWfbtjP3ybuZNGMHfSCB5o34bH7m/PfXc683Apr+OWs7RXv1dZkZdawAEFU2NMAnC3iNyKr0vCEdx0VHXTkRbcc2B2wq241zOP8WLfgZxPTqZC2Tj69HyG+T8u4+3BIzh6/DhPvtSHqypXYvh7rwdfgUzwonswuOcs7bZTsdvfrb8TDn27gZKtK7IdROUrFwbPGu3FzWkH3USnowwOnY4yeOxwRd5yReuAP5yrd8wK6ZdZ34RTFMVT5KUWsAZgRVE8RUpqWL1fli0agBVF8RR5qXdGA7CiKJ4iNQxGNwSKBmBFUTxFOAwvCxQNwIqieArtgvA4Tg/du0DLNSV3h4Yl/jTIFZ2YRt1d0QF37ws3yR+VL9SnkCPyUhdE3nlcqCiKEgApqREBp+wQkfwiEi8i60Rkk4i8YeVXEpHlIrJTRCaJSD4r/yJrfae1vaK/c9UArCiKpzA5SH44C9xkjLkBqAa0FJF6wLvA+8aYysAxoLO1f2fgmJX/vrVftmgAVhTFU6QaCThlh/GRaK1GW8kANwFTrfwxQFtr+Q5rHWt7M5HsX4/UAKwoiqfIyWQ8GafOtVKXjGWJSKSIrAUOAfOAXcCfxphka5cEIM2ZoBzwq+8cTDJwHCiR3bnqQzhFUTxFTkyRjTHDgeHZbE8BqolIUWAacFWQp3cB2gJWFMVTGCTgFHCZxvwJLALqA0VFJK3xWh7Yby3vByoAWNtjgSPZlRt2AdhN91a3tC666CKW/DyDVSvnsXbtQl591ZmpKCHvf36tevTnrpc+pMPLH9Hx1aHp+ePnLuWOFwbRrucHvD9hNgD7Dx+jziOv0+Hlj+jw8kf0GTXdlnPQ+yJnDP3kXfbsXUH8itnpeddXvZqFi79iybKZ/PDTdGrWusFWzexINhJwyg4RKWW1fBGRAsDNwBZ8gbi9tVsnIO3G+8Zax9q+0PgZmxhWXRBp7q0tW3ckIeEAy5bO4tsZcx2ZvNxNrbNnz3Jziw4kJZ0iKiqK7xdPY87sRSyPX22rjlc+v097PUKxwn85qcRv3s3i1VuY8tbT5IuO4sjxxPRt5UsXZ/JbTwetmYbeFznni8+/ZNgnYxkx4i+Xsr59X+LtfoOZN/d7WtzShL59e9KqZUdb9PyRk5atH8oCY0QkEl9jdbIxZoaIbAYmikhfYA0w0tp/JPC5iOwEjgL3+hPIUQtYRBqJyH9EpEVOjgsUN91b3XaKTUo6BUB0dBTR0dGODNr36uc3ZUE8j9zWmHzRvvZCidgYR3RA74vc8PPP8Rw7eqELsjGGIoV91ym2SGEOHPjdNj1/pOYgZYcxZr0xproxpqox5jpjzJtW/m5jTB1jTGVjzN3GmLNW/hlrvbK1PWvvLgt/rsjxGZYfAz4CCgOviUhPf4XnFDfdW912io2IiGDlirn8tn898xf8QLzlD2cnXvn8ur47mnt7D2XqwhUA7Dv4B6u37eP+1z7hkb6fsnF3Qvq++w8fo8MrQ3ik76es3rY3aG29LxkE/44AABr8SURBVOzhxRfepG+/l9i6/WfeersXr736nqN6GXGiD9gp/LWAozMsdwFuNsa8AbQAsvTQVlfkf5Kamkqt2i2oWKkWtWtV59prrwz1KYUlo3t3YVLfpxjy3ENMmr+cVVv3kJySyvGk04x7/XF6dGzJ8x9OxBhDqaKFmTPoeSb3fYrn7m9Fz6GTSTx9JtRVyBFevS8efewBer7Ql6uqNKTnC30Z+vE7rmnb1QJ2A38BOEJEiolICXz2RYcBjDFJQHJWB+UFV+RQOcUeP36Cxd//TIsWTWwv2wufX1zxIoCvm+GmWlezcdd+4orH0qzWNYgI119enogI4djJU+SLjqJo4YIAXFOpHBVKF2ffgWwfOvtF7wt7uO/+O5k+3fdQ7quvZrr6EC4FCTiFGn8BOBafLf1KoLiIlAUQkRiw/+zddG91U6tkyeLExvoCS/78+WnerDHbtu2yXSevf36nzpwj6fTZ9OWlG3ZSuUJpmta8mhVbfN1pew/8wfnkFIoVLsjRE0mkpPraMQmHjrLv9yOUL10s7OqVFV68L9I4eOAQN95YF4AmTRqwa9deR/UykiqBp1CT7SgIY0zFLDalAu3sPhk33Vvd1CpbNo7PRg4iMjICiYhg6tRvmTVrvu06ef3zO3oikR6DxgOQnJpK6/pVaVi1CueTk3l1xDTu7PkB0VGR9OlyFyLC6m17GfLlAqIjIxARXnn4DmJjCoZdvbLCK/fFqNGDubFxPUqUKMa2HUt4q+8gnn7qJf7b/1WiIqM4c/Ys3Z7uZZueP1LDoGUbKOqKnAvcvLye+/AsvDgdpVfvCzeno0w8tSfoj/HrMvcF/PG0PTheXZEVRVHsIhwergWKBmBFUTxFavYTkIUVGoAVRfEUKaE+gRygAVhRFE8RDqMbAkUDsKIoniIvjYJwPAB78cmwV0cmuIlboxMS44e5ogMQW+8J17TSxj+7wZnkc65p2UFe+n56pgWclz50RVGcQ7sgFEVRQoQOQ1MURQkRKdoCVhRFCQ3aAlYURQkRGoAVRVFChB+rt7BCA7CiKJ4iL7WAw84VGXw2LSvi5/D1tDGO6uR1B+HMGDF8AL8lrGPtmgWOaaThVp3Kl7+Y+XOnsH7dItatXUi3pzvbUm6rp/ty13Pv0eGFAXR86X0Anh80lg4vDKDDCwNo9XRfOrzgM5rcf+godR54MX1bnxFTbTmHp596hNWr5rNm9Xzb6pUZXrzXsyIlBynUhGUL+Jluj7Jl6w6KFC7smIZXHIT/ztixkxk6dBSjRg22veyMuFmn5ORknn/hDdas3UhMTCHil89m/oIf7HFgfvUJihX5y+Tzve4PpS/3H/sNMQXzp6+XjyvJ5P/aZx1/zTVX8sgj99Gw0W2cO3eeGd9+zqxZC9i1e69tGuDdez0r8tI4YH+mnHVFpIi1XEBE3hCRb0XkXRGJdeKEypUrS6tWzfjsswlOFJ+OVx2Ef/xpOUeP/el/xyBxs04HDx5izdqNACQmJrF16w7KOWwqaYxh7rK1tGpY3TGNq66qTPyKNZw+fYaUlBR++HE5bdu2tF3Hq/d6VnjJE+4z4JS1PBifRdG7Vt4oJ05owIA3eOmlvqQ6/KqlVxyEQ0Wo6nTppeWpdsN1LI+3wz1Y6PrWcO7t+T5T5y+9YMvqLbspEVuYS8uWSs/bf/goHV4cwCOvD2H1Fr+O437ZvGkbjRrWoXjxohQokJ+WtzSlfAbvNrv4X7vX81IA9tcFEWGMSTPfrGWMqWEt/yQia7M6SES64HNRJiIylkCNOVu3bs7hQ3+wes0GGjeuH9Axyv8OhQoVZPKkEfznudc4eTIx6PJGv/k0ccVjOXL8JF37DqPSxaWpec3lAHy3ZA0tG/zV+i1VrAhzhrxC0cKF2Lz7V7r3H8VX/V+4oIsip2zdtpP+A4Yyc8YXJJ06zfr1m0lJCYeeybxNXpqWwF8LeKOI/NtaXicitQBEpApwPquDcuuK3KBBLW67rQU7ti/ji3FDadq0IWNGfxDw8TnBCw7CocTtOkVFRTFl0ggmTJjG119/Z0uZccV9vWglYgtzU53r2bjrFwCSU1JYEL+Blg2qpe/rc2D23cvXXFaBCnEl2XfgcNDnMHr0JOo3uJXmzdtz7M/j7NixJ+gy/87/2r2el0w5/QXgR4F/icgu4BpgqYjsBkZY22zllVfeodJltbiiSj3uf+BJFi36mU4PP2O3DJD3HYRDjdt1GjF8AFu27mTQ4OG2lHfqzFmSTp9JX166fhuVK5QFYPmGHVS6uDRxJYqm73/0ROJfDsy/H2HfgcOUjysR9HmUKuUro0KFi2l7R0smTvo66DL/zv/ave6ZURDGmOPAw9aDuErW/gnGmN/dODknyesOwlkx7vMh/KtxfUqWLM7e3St5483+jBo90XYdN+vUsEFtHnygPes3bGblCt+XuXfvd/hu9sJcl3n0eCI9+vseYySnptK6YQ0aVrsKgNlL1tDybw/fVm/ZzZDJs4mOjPQ5MD/WPmgHZoCJE4dTonhRzp9P5tnur3D8+Imgy/w7Xr3XsyLVpk4IEakAjAXi8PVsDDfGDBaR4sAkoCKwF+hgjDkmIoLvWVlrfM/JHjbGrM5Ww2lX5GiXXJHzUr+P4h46H3DeIvnc/qA7Bvpcen/A4aD3vi+y1BORskBZY8xqESkMrALaAg8DR40x74hIT6CYMeZFEWkNdMMXgOsCg40xdbPTD8sXMRRFUXKLyUHKthxjDqS1YI0xJ4EtQDngDiDtLbEx+IIyVv5Y42MZUNQK4lmiAVhRFE+Rk2FoItJFRFZmSF0yK1NEKgLVgeVAnDHmgLXpIL4uCvAF518zHJZg5WVJWL4JpyiKkluSJfAOSWPMcCDbJ7siEgN8CXQ3xpyQDLb3xhgjkgPBv6EtYEVRPIVdXRAAIhKNL/h+YYz5ysr+Pa1rwfp7yMrfD1TIcHh5Ky9LNAAriuIp7HoTzhrVMBLYYowZmGHTN0Ana7kTMD1D/kPiox5wPENXRaZoF4SSToS4NzI91eHRN2kUqdvVFR2AEz85OwFSRmIaOjM+3gvYNQwNaAg8CGzI8OZvL+AdYLKIdAb2AR2sbbPwjYDYiW8Y2r/xgwZgRVE8hV3h1xjzE5BVq6RZJvsbIEfzb2oAVhTFU+SlEdIagBVF8RQpeei1LA3AiqJ4Cm0BK4qihAijLWBFUZTQkJdawGE5DthrppxuGmU6ZWD5d6pUuYwV8XPS0x+Ht9CtW943lXSiXq26/5e7eg6mQ68P6dh7SHr++LlLuOP5gbR7cRDvT/DNcTzz57V06PVheqr24Mts3fdbVkUHhFv3RBqhNuVMxQScQk1YtoC9ZsrpllEmOGtgmZHt23dTu47P6ysiIoK9e1YyffpsWzXScPNaOVWvT19+lGKF/zIniN+8i8WrtjCl3zPki47iyHGfw8etDatxa0PfRPA7fj1I9/fHcdWlwdkUuXVPQHiYcoY+rAZO2LWAvWjK6ZZRJoTGwPKmmxqxe/c+fvkl27cuc02ojB6drNeU+ct5pM2/yBftawOViI35xz7fLVlHy3pVg9Zy854IB1POZEzAKdT4c0V+xpqU2DW8aMoZKuw1sMyaDnffzqTJ0/3vmEtCda1sq5cIXd8Zxb2vfMTUhfEA7Dt4hNXb9nL/a0N5pO9wNu5K+Mdhc5ZvoGX94ANwRpy+J8Lhe2Vy8C/U+GsB9wGWi8iPIvKkiJTysz9w4RRvqalJAZ9MRlNOJTjsNrDMiujoaG67rQVffjnDMY1QYGe9RvfuwqS3nmbI8w8zaf4yVm3dQ3JqCscTTzHu9Sfo0bEVz380gYzmCOt3/kr+fNFcUcG+4OXWPRFq8pIrsr8AvBvfjD59gJrAZhGZLSKdrBniM0VNOUOLEwaWWdGyZVPWrN3AoUN/OKYRimtlZ73+Mv+M4aaa17BxVwJxxWJpVvtaRITrL69AhAjHTv7VWJmzbD2t6t8QtHYabt0T4fC98lIL2BhjUo0xc40xnYGLgaFAS3zB2Va8asrpNnYbWGbHPR3uYNIk57ofIDTXyq56nTpzjqTTZ9OXl27cSeXycTStdQ0rNvu+QnsP/MH55JT0h3Spqam2dz+4dU+Ew/cqL7WA/Y2CuGAiCmPMeXxTrn0jIsE7EoYQLxplgjMGlllRsGABmjVrzJNP9bS97Iy4bfRoZ72Onkikx6BxACSnpNK6wQ00vKEK55OTeXX4V9zZcxDRkVH0ebw9aRN9r9q6lzLFYylfunjQ+uDuPREOppwpLs20ZwfZmnKKSBVjTFCfnppy5h28OB2lm3XS6SiDxw5TzvsubRfwzTV+3zT3bpBM8GdL7+5/XYqiKEESDn27gRKWL2IoiqLklnDo2w0UDcCKoniKcHjFOFA0ACuK4im0C0JRFCVE5KVREBqAFUXxFNoFoeRJ3Boa5iZu1qlIo2dd0zr924+uaRW4+EbXtOxAH8IpiqKECO0DVhRFCRHaBaEoihIisnu7N9zQAKwoiqdQW3pFUZQQkZe6IMLOkkhRFCUYjDEBJ3+IyGcickhENmbIKy4i80Rkh/W3mJUvIvKBiOwUkfUiUsNf+WEZgL3miuymlhfr5KaWmw7WANu3LWX1qvmsiJ/D0iUzgy7vxMlEerzclzYdH6PNfV1Yu3EL/T/6lDYdH6PdQ0/wzEtvcsJyw1gSv5oOj3Sj3YNP0OGRbixftTZoffCcK/JofPOfZ6QnsMAYcwWwwFoHaAVcYaUuwMf+Cs92Oko7yM10lN2f7UKNmlUpUrgwbdt1CuiYnIpERESwZdOPF7i3PvDgk445xbqh5cU6ua11Y6O6JCYmMWrUYKpVb5az88zF1Jfbty2lfoPWHDlyLEfHJe3/IdP8Xn36U+OG62h/e0vOnz/P6TNn2bB5G3VrViMqKpKBQ0cC8J8nO7Nl+05KFCtG6VIl2LF7L4/3eIWF08f9o8ycjAMO9lrZMR1lk/LNAw4HixPm+9UTkYrADGPMddb6NqCJMeaAiJQFFhtjrhSRYdbyhL/vl1XZ/kw584nIQyLS3Fq/T0Q+EpGnRCQ6wDrmCC+6Irul5cU6ua3lpoO13ZxMTGLVuo3cZX020dHRFCkcQ8O6NYmKigSg6rVX8btls3R1lcqULlUCgMqVLuXM2bOcO3cuqHMIB1fkFGMCThn9K63UJQCJuAxB9SAQZy2XA37NsF+ClZcl/rogRgG3As+KyOfA3cByoDbwaQAnmmO86IrslpYX6+S2ltsYDLNmjmfZ0ll07nx/UGXt/+0gxYrG8spbA2n/8FO8+vYgTp0+c8E+02bOpVH92v84dt7in7jmysrky5cvqHMIh2uVky6IjP6VVsqRZ5PxdSHkuhvBXwC+3hhzD9AOaAG0N8Z8DvwbqJ7VQeqKrCiB0bTpndSt14o2tz/IE1070ahR3VyXlZySwpbtO7mn3a1MHT2EAgXyM/Lzyenbh42ZQGRkJLe1aHrBcTt372Pg0M949fluudYOJ2zuA86M362uB6y/h6z8/UCFDPuVt/KyxF8AjhCRfEBhoCAQa+VfBGTZBaGuyKHR8mKd3NZym7R6HD58hOnTZ1O7drVcl1WmdEniSpWk6rVXAdCiSSM2b98JwNcz5/HDz/G8+9oL6d5zAAcPHebZXn3o1/s5LsnwGeeWcLhWdo6CyIJvgLSHU52A6RnyH7JGQ9QDjmfX/wv+A/BIYCuwFngZmCIiI4AVgO2ukl51RXZLy4t1clvLTQoWLEBMTKH05ebNG7Np07Zcl1eyRHHKlC7Fnn0JACxbtZbLK17CT8tW8tn4KXz47msUyJ8/ff8TJxN58vnX6N7139Soem1wlbEIh2tlZwtYRCYAS4ErRSRBRDoD7wA3i8gOoLm1DjALn1v8TmAE8KS/8v15wr0vIpOs5d9EZKwlOMIYE+/37MMYN91b3dLyYp3c1nLTwTourhRTJvsepURFRTJx4tfMnbs4qDJ79XiCF9/4L+eTz1Ph4rL06dWDex99lnPnz/NY95cB34O4117oxoQvv+XXhN/4ZNR4Phk1HoDhg96iRLGiudYPB1dkOyfjMcZ0zGLTP4bIWP3BORp3F5bD0HJD3nn3RfEqbjowZzUMzQncnI7SjmFoNco2CjgcrD7wU/i6IiuKouQ1dDIeRVGUEJGX5oLQAKwoiqfQCdkVRVFCRF6y1tIArCiKp9AWsKIoSohIMXnHltPxAJx3/i9S3CQqItIVneTUFFd0wN2fvm4ODUtc5ndWxbBCuyAURVFChHZBKIqihAhtASuKooQIbQEriqKEiBTjXr9/sGgAVhTFU+iryIqiKCEiL72KHHauyF502nVTy01XXyfrNGzYe/zyy2pWrZqXnnfnnbeyevV8Tp3aS40aVW3Vy4hb16p8+YuZP3cK69ctYt3ahXR7urNjWk7UqVW3ftz1wgA69BxIx16DAXh+8Dg69BxIh54DadWtHx16DgTgz5NJdO7zCfUefpl+o6bZop8VLkzIbhuOT0cZlYPpKL3qtJtXXH1zQrB18jcOuFGjOiQmnmLkyPepWfNmAK68sjKpqakMGfI2PXu+xerV6/3q5HQcsJvXqkyZ0pQtU5o1azcSE1OI+OWzuav9I2Hnlp3VOOBW3fox/q1nKVYkc9eb/p9/S0zB/HS962ZOnTnH1r372fnrQXYmHKTXv9tlekz+GrcHPT1k2aLXBBxzDvy5OaTTUfptAYvIZSLynIgMFpGBItJVRIo4cTJeddr1oquv03X66ad4jv2tHtu27WTHjt22aWSGm9fq4MFDrFm7EYDExCS2bt1BOQcMLEPhVGyMYe6ydbRq4LNYKpg/HzWuqsRF+Zzv9TQ5+Bdq/NnSPwN8AuTH54R8ET7TuWUi0sTuk/Gq0244OMXajRfrBKGr16WXlqfaDdexPH6N7WU7VieBrm+P4N5eg5i6YNkFm1Zv3UOJ2MJcWrZU8Do5JMWkBpxCjb//jh4DqhljUkRkIDDLGNNERIbhM6LL1BlZRLoAXQAkMpacGHMqyv8ahQoVZPKkEfznudc4eTIx1KcTMKNff4q44rEcOZ5I137DqXRxaWpefRkA3y1ZQ8sGuTcYDYZw6NsNlEAewqUF6YuAGABjzC844IrsVafdcHCKtRsv1gncr1dUVBRTJo1gwoRpfP31d45oOFWnuOI+k/QSsTHcVPs6Nu76BYDklBQWxG+kZf0bgtbIDanGBJxCjb8A/CmwwnJCXgoMARCRUsBRu0/Gq0674eAUazderBO4X68RwwewZetOBg0e7piGE3U6deYcSafPpC8vXb+dyuV93RrLN+yg0sWliSuRe3PPYMhLoyD8uSIPFpH5wNXAAGPMViv/MNDY7pPxqtOuF119na7T2LEfcuON9SlZshg7dy6nb9+BHD36JwMHvkmpUsWZNm0U69dvpk2bB23TBHevVcMGtXnwgfas37CZlSt8AbF373f4bvZCW3WcqNPR4yfpMXAMAMkpqbRuWJ2G1a4CYPbStZl2P7Tq1o/E02c4n5zCopWb+OSlx7i8fFxQ55EZeWkccFgNQ1P+d/DidJRexc3pKO0Yhlak0GUBx5wTSbvVFVlRFMUuwmF0Q6BoAFYUxVOEw8O1QNEArCiKpwiHh2uBEnZzQSiKogSDnW/CiUhLEdkmIjtFpKfd56otYEVRPIVdLWARicQ39PZmIAHfkNxvjDGbbRFAA7CiKB7Dxj7gOsBOY8xuABGZCNwB5J0AnHxuf66GeYhIF2OMc6PTXdZRrbyl5cU6eVkrIzmJORmnTbAYnuGcywG/ZtiWANQN/gz/Ipz7gLv43yVP6ahW3tLyYp28rJUrMk6bYCVX/8MI5wCsKIoSSvbjm/0xjfJWnm1oAFYURcmcFcAVIlJJRPIB9wLf2CkQzg/h3Pop4OZPDtXKO1perJOXtWzHGJMsIk8Dc4BI4DNjzCY7NRyfC0JRFEXJHO2CUBRFCREagBVFUUJE2AVgp1/9y6DzmYgcEpGNTmlk0KogIotEZLOIbBKRZx3Uyi8i8SKyztJ6wyktSy9SRNaIyAyHdfaKyAYRWSsiKx3WKioiU0Vkq4hsEZH6DulcadUnLZ0Qke4OafWw7oeNIjJBRPI7oWNpPWvpbHKqPp4hJ7PHO53wdXTvAi4D8gHrgGsc0moM1AA2ulCvskANa7kwsN3BegkQYy1HA8uBeg7W7T/AeGCGw5/hXqCk09fK0hoDPGot5wOKuqAZCRwELnWg7HLAHqCAtT4ZeNihelwHbAQK4nvIPx+o7MZ1y4sp3FrA6a/+GWPOAWmv/tmOMeYHHLBVykLrgDFmtbV8EtiC70vhhJYxxqQ5O0ZbyZEnrSJSHrgVn3WVJxCRWHz/OY8EMMacM8b86YJ0M2CXMWafQ+VHAQVEJApfcPzNz/655WpguTHmlDEmGfgeuNMhrTxPuAXgzF79cyRQhQoRqYjPTXq5gxqRIrIWOATMM8Y4pTUIeAFwYwZsA8wVkVXW66NOUQk4DIyyulY+FRE3bL3vBSY4UbAxZj/QH/gFOAAcN8Y4ZXS3EbhRREqISEGgNRe+zKBkINwCsKcRkRjgS6C7MeaEUzrGmBRjTDV8b+7UEZHr7NYQkduAQ8aYVXaXnQWNjDE1gFbAUyJiuyehRRS+rqmPjTHVgSTAsWcRANYg/9uBKQ6VXwzfL8lKwMVAIRF5wAktY8wW4F1gLjAbWAuoL1QWhFsAdvzVv1AhItH4gu8Xxpiv3NC0fjovAlo6UHxD4HYR2Yuvq+gmERnngA6Q3orDGHMImIavu8oJEoCEDL8apuILyE7SClhtjPndofKbA3uMMYeNMeeBr4AGDmlhjBlpjKlpjGkMHMP3zEPJhHALwI6/+hcKRETw9SluMcYMdFirlIgUtZYL4JvLdKvdOsaYl4wx5Y0xFfFdp4XGGEdaVSJSSEQKpy0DLfD91LUdY8xB4FcRudLKaoaN0w9mQUcc6n6w+AWoJyIFrXuxGb7nEI4gIqWtv5fg6/8d75RWXiesXkU2Lrz6l4aITACaACVFJAF4zRgz0gktfK3FB4ENVt8sQC9jzCwHtMoCY6zJpCOAycYYR4eIuUAcMM0XO4gCxhtjZjuo1w34wmoE7Ab+7ZSQ9R/KzcDjTmkYY5aLyFRgNZAMrMHZ14S/FJESwHngKZceYuZJ9FVkRVGUEBFuXRCKoij/M2gAVhRFCREagBVFUUKEBmBFUZQQoQFYURQlRGgAVhRFCREagBVFUULE/wMIvRnUAHbD8gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "E-CW63zhkHF6", "outputId": "f5186578-885d-4e5c-8610-bdd582a5cecc" }, "source": [ "print(confusion_matrix(teste_y, pred_svm))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[568 0 0 0 0 0 5 10 6 0]\n", " [ 2 598 27 3 2 0 0 0 0 0]\n", " [ 0 26 548 1 2 1 0 0 0 0]\n", " [ 6 6 0 559 5 1 1 1 1 0]\n", " [ 0 1 6 5 614 1 1 5 0 1]\n", " [ 0 0 3 0 0 565 0 3 0 18]\n", " [ 4 0 0 1 0 2 575 9 0 0]\n", " [ 4 0 1 2 7 0 7 567 2 0]\n", " [ 4 0 0 0 0 0 1 5 622 0]\n", " [ 0 0 0 1 0 11 0 2 0 571]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "H_2vXd61kH3V", "outputId": "a1742353-0f15-4fe4-f7cd-cc12f4fff4d0" }, "source": [ "print(classification_report(teste_y, pred_svm))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 196 0.97 0.96 0.97 589\n", " 198 0.95 0.95 0.95 632\n", " 200 0.94 0.95 0.94 578\n", " 219 0.98 0.96 0.97 580\n", " 220 0.97 0.97 0.97 634\n", " 339 0.97 0.96 0.97 589\n", " 458 0.97 0.97 0.97 591\n", " 461 0.94 0.96 0.95 590\n", " 463 0.99 0.98 0.98 632\n", " 785 0.97 0.98 0.97 585\n", "\n", " accuracy 0.96 6000\n", " macro avg 0.96 0.96 0.96 6000\n", "weighted avg 0.96 0.96 0.96 6000\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "rxrFFGeqefzk" }, "source": [ "## Learning with MLP" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "p9Lgtknn9ipL", "outputId": "f927d4d7-dfe2-4494-9caf-d4e9ef06f842" }, "source": [ "mapping = {}\n", "for x in range(len(np.unique(treino_y))):\n", " mapping[np.unique(treino_y)[x]] = x\n", "print(mapping)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "{196: 0, 198: 1, 200: 2, 219: 3, 220: 4, 339: 5, 458: 6, 461: 7, 463: 8, 785: 9}\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "oka6YDDM93-u" }, "source": [ "treino_mlp_y = []\n", "teste_mlp_y = []\n", "for x in range(len(treino_y)):\n", " treino_mlp_y.append(mapping[treino_y[x]])\n", "for x in range(len(teste_y)):\n", " teste_mlp_y.append(mapping[teste_y[x]])\n", "treino_mlp_y = np.array(treino_mlp_y)\n", "teste_mlp_y = np.array(teste_mlp_y)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6Ag1FtwNenuD", "outputId": "7e8bb867-2592-4c69-e358-bbc01932f345" }, "source": [ "import tensorflow\n", "\n", "modelo = tensorflow.keras.Sequential()\n", "#modelo.add(tensorflow.keras.layers.Embedding(input_dim=X_train_tfidf.shape[1]+1, output_dim=100))\n", "modelo.add(tensorflow.keras.layers.Dense(X_train_tfidf.shape[1], activation='relu', dtype= 'float32', input_dim= X_train_tfidf.shape[1]))\n", "modelo.add(tensorflow.keras.layers.Dense(400, activation='relu', dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dropout(rate=0.4, dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dense(160, activation='relu', dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dropout(rate=0.4, dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dense(120, activation='relu', dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dropout(rate=0.4, dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dense(60, activation='relu', dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dense(30, activation='relu', dtype= 'float32'))\n", "modelo.add(tensorflow.keras.layers.Dense(len(mapping), activation='softmax', dtype= 'float32'))\n", "\n", "adam = tensorflow.keras.optimizers.Adam(lr=0.002)\n", "early_stopping = tensorflow.keras.callbacks.EarlyStopping(patience=4)\n", "model_checkpoint = tensorflow.keras.callbacks.ModelCheckpoint(filepath = './cnn_embedding.h5', monitor='val_accuracy', save_best_only=True)\n", "\n", "modelo.compile(optimizer=adam, \n", " loss='sparse_categorical_crossentropy',\n", " metrics=['accuracy'])\n", "\n", "historico = modelo.fit(X_train_tfidf.toarray(), treino_mlp_y, \n", " batch_size = 40,\n", " epochs=10, validation_split=0.2,\n", " callbacks= [early_stopping, model_checkpoint])" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "Epoch 1/10\n", "480/480 [==============================] - 8s 16ms/step - loss: 1.0141 - accuracy: 0.6224 - val_loss: 0.2419 - val_accuracy: 0.9360\n", "Epoch 2/10\n", "480/480 [==============================] - 7s 14ms/step - loss: 0.2145 - accuracy: 0.9449 - val_loss: 0.2113 - val_accuracy: 0.9496\n", "Epoch 3/10\n", "480/480 [==============================] - 7s 14ms/step - loss: 0.1533 - accuracy: 0.9648 - val_loss: 0.2257 - val_accuracy: 0.9506\n", "Epoch 4/10\n", "480/480 [==============================] - 7s 14ms/step - loss: 0.1266 - accuracy: 0.9696 - val_loss: 0.2262 - val_accuracy: 0.9531\n", "Epoch 5/10\n", "480/480 [==============================] - 7s 14ms/step - loss: 0.1062 - accuracy: 0.9751 - val_loss: 0.2532 - val_accuracy: 0.9506\n", "Epoch 6/10\n", "480/480 [==============================] - 7s 14ms/step - loss: 0.0842 - accuracy: 0.9807 - val_loss: 0.2602 - val_accuracy: 0.9485\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "1flaSXRDhYgr", "outputId": "40984058-0e4c-4a03-9e6b-43b4ca3ad230" }, "source": [ "%%time\n", "prev_mlp = np.argmax(modelo.predict(X_test_tfidf.toarray()), axis=1)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "CPU times: user 1.09 s, sys: 56 ms, total: 1.15 s\n", "Wall time: 799 ms\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "7xCO-vxuMPsS", "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "outputId": "2c5217cf-5fc7-4b7a-a4fd-424efd5ca844" }, "source": [ "ax = sns.heatmap(confusion_matrix(teste_mlp_y, prev_mlp), annot=True, fmt=\"d\")" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAD4CAYAAADSIzzWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd3wUxfvH388lIRACARIIIfAVEOwKSK/SpIkdoygKomAFFRtVpIhYQEBB6b3zozeVYkNKqBKpERAIJTQDhJpkfn/cJgZNcpdkd+9yzpvXvtib3Z3PzO7ek7nZ2fmIUgqNRqPR2I/D0wXQaDSa/yo6AGs0Go2H0AFYo9FoPIQOwBqNRuMhdADWaDQaD+FvtcDlnybZMsyiUNNedsjYjni6ABZh19gbP4d9bQx/h59tWteTk2zTSrFxpFTStbhc3/LXTx9wu8ABYeU9+hXTLWCNRqPxEJa3gDUajcZWUpI9XQK30QFYo9H4FjZ2z+QWHYA1Go1PoVSKp4vgNroPWKPR+BYpKe4vLhCRIiIyT0T2iMhuEaktIsVE5HsR2W/8X9TYV0RkhIjEishvInKvq/x1ANZoNL6FSnF/cc1wYKVS6jagErAb6A6sVkpVBFYbnwFaAhWNpTPwtavMPRaAW3YfRZsPxxHVbzxPD5wIwNeLf+b+d78kqt94ovqN5+edsQDsPHgsLS2q33jWbN1rShmaN2vI7zE/sWfXL7z37mum5OkNWg6Hg+hN37JwwWTLNAIDA/l13VK2bP6e7dvX8MEHb1umBfaev65dXmTb1lVs3bKKKVO+IjAw0LS8v/7mUw4d2kx09LdpaT17vcn+2A2s37Cc9RuW07x5Q9P0UgkJKcysmaPZ+dsP/LZjLTVrumyc5Rg7r1WGpCS7v2SBiIQADYDxAEqpa0qpv4CHgdQv12TgEWP9YWCKcrIBKCIiEVlpeLQPeOzbT1O0UNANae2a1qB985o3pFUoVZwZvZ/H38/Bqb8uEtV/PA0qVcTfL+d/PxwOByOGf0SLVm05evQ4G9YvZ8nS79i9e3+O8/QGLXAGkN179lO4UCFL8ge4evUq9zeLIjHxEv7+/vz4wwK+XbmWjZu2mq5l5/krVaokr732PJUqN+HKlStMnzaKqKiHmDp1rin5T5s6j9HfTGbs2KE3pH/15XiGDx9rikZGDB3Sj2+/+4Gn2r5EQEAAQUEFLNGx+17PkGz0AYtIZ5yt1VTGKKXGGOvlgFPARBGpBGwB3gDClVLHjX1OAOHGeiRwJF1eR42042SCywgmIreJyPtG38YIY/12N+pmGgUCA9KC7bXrSaa8nFCjehX++OMQBw8e5vr168yZs4iHHmxuQs6e1YqMjKBlyyZMmDDTkvzTk5h4CYCAAH8CAgKwampTO88fgJ+/PwUK5MfPz4+goAIcP37StLzXrdvE2bMJpuXnDoULF6Je/ZpMnOi8J65fv05CwnlLtOy+VhmhkpPcX5Qao5Sqlm4Zky4rf+Be4GulVBUgkb+7G5xazps+xzd+lgFYRN4HZuF8IWuTsQgwU0S6Z3WsKwR4Zdgs2g6YyLyftqWlz1q7hSc+HEffScs4n3g5LX3ngTge+2AsbfqNo3e7Frlq/QKUiizJkaPH0j4fjTtOqVIlc5WnN2gNGdKPHj0GkuLGA4bc4nA42Bz9HcfifmPV6p/YFL3N9UE5wM7zd+zYCYZ9MZrY/Rv489AWEs5fYNWqnyzRSs9LL7dn48YVfP3NpxQpUtjUvMuVLcPpU2cZN3Yomzau5JuvP7OsBWzntcoU8x7CHQWOKqU2Gp/n4QzIJ1O7Foz/443tcUCZdMeXNtIyxVUUewGorpQarJSaZiyDgRrGtgwRkc4isllENo9f/EOG+0x8/1lm9enIyDeimLN2K1v2HSaq4b0sHfQysz94gbCQYIbMXZO2/93lI5nfvxPTe3Vg/Ir1XL2ed8b62UWrVk05FX+ardt22qKXkpJCterNKFuuGtWrVeHOO2+1RddKihQJofWDzbj1tjqULVeNgkFBtG37qKWa48ZO4647G1CrVitOnIjn48G9Tc3fz9+fKlXuYvSYqdSo2YLES5c80zdrFyY9hFNKnQCOiEjqjd0E2AUsBtobae2BRcb6YuA5YzRELSAhXVdFhrgKwClAqQzSI4xtmRU8rVn/wkMNM9wnvKizf7JY4YI0qnILMQePE1q4IH4OBw6H8Fj9SsQcPPav48pHhBEUmI/YuFMuip41x+JOUKb031UrHRnBsWMncpWnp7Xq1KlG69bN2L9vA9OnjaJRo7pMnjTCdJ1/kpBwnh9+XEezZg0tyd/Oa9W4cT0OHTrC6dNnSUpKYuGiFdSuVc0SrVTi40+TkpKCUoqJE2ZRrWolU/OPizvO0aPHiTZ+ocyfv4zKVe42VSMVO69Vppj0EM6gCzBdRH4DKgODgMHA/SKyH2hqfAZYDhwAYoGxwKuuMncVgN8EVovIChEZYywrcQ69eMOd0mfE5avXSLxyNW19/a6DVIgM49RfF9P2WbNtHxUiiwMQd+ovkpKd8f7YmQQOnThDqdCQnMoDEL15OxUqlKNs2TIEBAQQFfUwS5Z+l6s8Pa3Vu/dgypWvRsVbavFMu1dZu3Yd7Tt0NV0HICysGCEhzp/K+fPnp2mTBuzd+4clWnZeqyNH4qhZowoFCuQHoFGjuuzZY+0DpJIli6etP/RQc37ftc/U/E+ePMXRo8e45ZbyADRuVM+yh2J2XqtMMXEYmlJqu9GYvEcp9YhS6pxS6oxSqolSqqJSqqlS6qyxr1JKvaaUulkpdbdSarOr/LMcBaGUWikit+Dscog0kuOAaKVUjl+4PnM+kW6j5gOQlJxCy5p3UPeum+k1fjF7j8QjQKmwEHq3awnAttgjTFixAX8/Z+u4xzPN/zV6IrskJyfzxpu9Wb5sBn4OB5Mmz2aXyTe+J7TsIiIinAnjh+Hn50AcDubNW8Ly5ass0bLz/EVHb2f+guVs3LCCpKRktu+IYdz4GablP2nSCOo3qEVoaFH27V/PwIFf0KB+Le655w6UUvx5+Chdu/Q0TS+Vt97qw+RJX5IvXz4OHvyTFztZM2zQK+71PPQqslhtyqmno8wdejrK3KGno8w9eW06yqu/fet2gQPvae7Rr5ieC0Kj0fgUufhxbjs6AGs0Gt8iD03GowOwRqPxLWwYA28WOgBrNBrfQreANRqNxkMkX/d0CdxGB2CNRuNb6C6Ivyls0/Cwiz8Ndb2TSdz94Ke2aR1MsO8tIjvH49illWzjl9FOLU0W6C4IjUaj8RB56A+hDsAajca30AFYo9FoPIPSD+E0Go3GQ+g+YI1Go/EQugtCo9FoPEQeagF7lS29VU67Ld8eyuO9viKqzyja9v0mLX3G9xt4uPsIHu3xJV/MdrrU/nXxEi98PIFanQcyaMrSXOkWKhzMlxM+YeWv/8fKdfOoXO1uQooUZtLckXy/cQGT5o6kcIi5xpljxwzh2NEdbN+22tR8/4mdrsi+7MBsl5Zd9wV4gyuyaZZEluNVLWArnXbHdX+eooUKpn3etPsAP2zdw9wBr5IvwJ8z552TwecL8Oe1x5sQezSe2KO5M2PsPehdflqzni4d3ycgwJ/8BfLzypsd+fXnaMaMmETnrh14qWsHPhvwZa500jNlyhxGjZrIxInDTcszI+x0RfZVB2Y7tey6L/KaK7Kn8aoWMNjntDt3dTQdW9cnX4Dzb1Bo4WAAggLzce8tNxEYkLu/TcGFgqleqwpzpy0E4Pr1JC6cv0iTlvexYLazZb1g9lKatmqYK51/8vMvGzl77i9T88wMu66VnVq+6pZt133hDa7IJCW5v3iYHAdgEXnezIKkYpXT7sufTeGpD75m3lqnS8ifJ8+wde+fPNNvNB0HjSfmQJbmpdmmzE2lOHvmHJ98+SGL1kznoy/6UCAoP2HFQzl18jQAp06eJqx4qKm6dmKXK7KdWr7qlm0XXlEnEy2JrCY3LeB+mW1I74qckpKYrUytcNqd1OtFZvd/hZHvPMvs1RvZsucQSckpJCReZtoHnXnryea8O3K2qa0qPz8/7rznNmZMnMfDjZ/h8qXLvNT133+zrHYksRI7XZF90YFZYxF5qA84ywAsIr9lsuwEwjM7Lr0rssNRMLPdssRMp93wYk7zyNDCwTSuejsxB44SXqwwTardjohw982lcYhw7sKlXGulcuJ4PCeOxbNjawwAK5es4s57buP0qTMUDw8DoHh4GGdOnzVN01NY7Ypsp5YvumXbiVfUyYdawOHAc8CDGSxnzC6MFU67l65eI/Hy1bT19TF/UKF0OI3uvZ3o3QcBOHTiNNeTk3Nt9Jme0/FnOH7sJOVuvgmA2vVrELv3AGtW/sSjT7YG4NEnW7N6xY+madqJna7IvurA7BUOwibjFXXKQy1gV0+algLBSqnt/9wgIj+YXRgrnHbPJlzkrREzAacDc6va91D3nopcT0rig3ELeaznVwT4+zGg02OIOOfoavn2UC5evsr1pGTWbt3DN+8+x82RJbKtPaDHpwz5ZiABAQEc+TOO7l0/xOFwMHzcYJ545mHijhznjRe756p+/2Ta1JHc16A2YWHFOHRgM/36f87ESbNM1QB7XZF91YHZTi277guvcEX2gpatu1juihyQL9KWTs4LejrKXOOLDsx5t4f9v4kZrsiX5/R3+7IXiPpAuyJrNBqNaeShB9s6AGs0Gt/CC/p23cXrXsTQaDSaXGHiQzgROSQiO0Vku4hsNtKKicj3IrLf+L+okS4iMkJEYo3RYve6yl8HYI1G41uYPwytkVKqslKqmvG5O7BaKVURWG18BmgJVDSWzsDXrjLWAVij0fgWycnuLznjYWCysT4ZeCRd+hTlZANQREQissrI8j5gu7rDgxt0o2C+/LZonVhqj9EoQKFmfWzTspO885hEk+fIRh+wiHTG2VpNZYxSaky6zwr4TkQUMNrYFq6UOm5sP8HfL6VFAkfSHXvUSDtOJvjMQzi7gq9Go/FyshGAjYA6Jotd6iml4kSkBPC9iOz5x/HKCM45QndBaDQa38LEPmClVJzxfzywAKgBnEztWjD+jzd2jwPKpDu8tJGWKToAazQan0KlKLeXrBCRgiJSKHUdaAbEAIuB9sZu7YFFxvpi4DljNEQtICFdV0WG+EwXhEaj0QBmjgMOBxYYUxT4AzOUUitFJBqYIyIvAH8CUcb+y4FWQCxwCXA5Za8OwBqNxrfI+eiGG1BKHQAqZZB+BmiSQboCsuXBpAOwRqPxLfLQm3A6AGs0Gt8iDwVgr3sIZ6WjamRkBEuWT2fj5pVsiF7By692AKBXn7dYt2EZP/+6hAWLJlGyZPanngRo2fNr2vQbT9SAiTz90eQbtk35fhOVX/qEcxedk76fT7zCW1/P54n+E3jm4ynExp3KVd1SsdP9FpxWQdGbvmXhgsmud84hdtfJF12RfbFOmaKU+4uH8aoAnOqo2vrBdtxdqRFPPvkIt99e0bT8k5KS6N1jEDWrtaBpozZ06tSOW2+rwIhhY6lb6wHq13mQlSvX8n6PLjnWGPt2W+b0eZ4ZvdqnpZ04e571uw4SYThzAIxbsZ5bS5dg7gcdGfj8A3w625zgMmXKHB5o/YwpeblD1y4vsnuPtY63dtbJ6nvQE1q+WKcsyUMTsrsMwCJym4g0EZHgf6S3MLswVjuqnjx5ih07fgfg4sVE9u6NpVREOBcuXEzbp2BQAdN92j6fu5o3H2t0w4S7B46fpsZtTreMciVDOXYmgTPns+eflxF2uiJHRkbQsmUTJkyYaamOnXXyRVdkX6xTlqQo9xcP48oTrivOMW5dgBgReTjd5kFmF8ZOR9X//S+SeyrdyebNOwDo0/dtft/zC088+TAfDRyWozwF4ZVhc2j70STm/eQ0EVm7fT/FixTi1jI3dmvcUroEq7c5nQJ2HjzG8bMJnDx3IecV8gBDhvSjR4+BpHhBS8IsfNEV2RfrlCXWzwVhGq5awJ2AqkqpR4CGQB8RecPYlulM8rlxRbaDggWDmDp9FD3eH5DW+h3Qbwh33laPubMX0fmlZ3OU78R3n2FW7w6M7PIEc37cypZ9Rxi/Yj2vPlT/X/t2bFGLC5euEDVgIrPWbuXWMuE4HHnHk6JVq6acij/N1m07PV0UjeYGVEqK24uncTUKwqGUugiglDokIg2BeSJyE1kE4PTvV/tnw5LIDkdVf39/pk4fyZzZi1iy+N9mgXNmL2Lu/Al8/NHwbOcdXrQQAMUKF6RR5VvYsv8wcWcSiBowAYD4cxdoO3AS03o8R1hIMP07PAA4relb9fqG0mFFclEze6lTpxqtWzejRYvG5M8fSOHChZg8aQTtO3T1dNFyhS+6IvtinbLEC7oW3MVVC/ikiFRO/WAE49ZAGHC32YWxw1H1q1GD2bv3D0Z+NSEtrfzNZdPWW7W+n/37su+4e/nqNRKvXE1bX7/rIHfeFMHaz7uwYtArrBj0CiWKFmJm7w6EhQRz/tIVric5fwLN/2UHVSuWIbhAYO4qZyO9ew+mXPlqVLylFs+0e5W1a9fl+eALvumK7It1ypI8ZEvvqgX8HJCUPkEplYTzfefRZhfGakfVWrWr0vbpR4mJ2cPPvy4BoP+HQ3iu/RNUqFielJQUjhyO4603sj8F5Jnzl+j2zXzA6b7cssYd1L2rfKb7Hzx+hj6TliEi3BwRxofPtcxZpf6BXe63dmJnnXzRFdkX65QleagFbLkrcna6IHKDndNR+up8wHb2QOedr4jGTsxwRU784Cm3b6+C/WdpV2SNRqMxDS/oWnAXHYA1Go1vkYe6IHQA1mg0PoU3DC9zFx2ANRqNb6FbwBqNRuMhdAD+G7seMV5JumaTkr0jEy6s+sg2rSI21is5D/1M1OQxvOAVY3fRLWCNRuNTuPJ68yZ0ANZoNL6FDsAajUbjIfJQ95YOwBqNxrfQLWCNRqPxEDoAazQajWdQyboLIkcEBgayds3/ERgYiJ+/H/PnL6N//yGW6XXt8iLPP/8USkHM73vo1Oltrl69aolW82YNGTq0P34OBxMmzuTTz0bmKr+W3UdRMH8+HCL4+zmY0ft5vl78M/N/3k7R4CAAujx2H/XvrsDOg8cYMGVF2rEvP1iPxvfemit9gNdf60jHjk8jAhMmzOTLr8bnOs+MGDtmCA+0akr8qdNUrtLEEg1PaJUuXYpJE4ZTIjwMpRTjxk235BzapZOKnecwQ/JQC9jy2dACsjkbWsGCQSQmXsLf358ff1hAt2592bhpq8vjHI7s+YuWKlWStWv+j0qVm3DlyhWmTxvFym/XMnXqXJfHZncMq8PhYPfvP9OiVVuOHj3OhvXLaffsq+ze7drMMrNxwC27j2JGrw4ULRSUlvb14p8JCsxH++Y1b9j38tXrBPj74e/n4NRfF4nqP57vP+uCv9+N5yw744DvuONWpk0dSd16rbl27TpLl0zl9dd78seBQ24dn51zWL9eTS5eTGTixOGWf6Ht1CpZsgQRJUuwbXsMwcEF2bRxJY+36ejWfeGNOqnk5hyaMRtawvNN3Y45IRNXeXQ2NK9yRQZITHTatgcE+BMQEGC6QWZ6/Pz9KVAgP35+fgQFFeD48ZOW6HjaqLBAYEBasL12PcmUl2Nuu60Cm6K3cfnyFZKTk/np54088ojpPq2AvaacdmqdOBHPtu0xgNMkds+e/URa4J9ml04qdp7DDPEVU04AEakhItWN9TtEpJuItLKsQA4Hm6O/41jcb6xa/RObordZonPs2AmGfTGa2P0b+PPQFhLOX2DVqp8s0bLCqFCAV4bNou2Aicz76e9zNGvtFp74cBx9Jy3jfOLltPSdB+J47IOxtOk3jt7tWvyr9Ztddv2+l3p1a1CsWBEKFMhPi+aNKJ3OikaTPW66qTSVK93Fxk3W3O9263iUlGwsbiAifiKyTUSWGp/LichGEYkVkdkiks9IDzQ+xxrby7rK25Urcl9gBPC1iHwMfAUUBLqLSKazkufGlDMlJYVq1ZtRtlw1qlerwp135r6vMiOKFAmh9YPNuPW2OpQtV42CQUG0bfuoJVpWMPH9Z5nVpyMj34hiztqtbNl3mKiG97J00MvM/uAFwkKCGTJ3Tdr+d5ePZH7/Tkzv1YHxK9Zz9XpSFrm7Zs/eWD4fMoplS6ezZMk0fvttF8l56BVQb6JgwSDmzB5Lt3f6ppnE5mUdT6OSUtxe3OQNYHe6z58AXyilKgDngBeM9BeAc0b6F8Z+WeKqGdQGqAs0AF4DHlFKDQCaA09mdpBSaoxSqppSqprDUdBVGTIkIeE8P/y4jmbNGuboeFc0blyPQ4eOcPr0WZKSkli4aAW1a1WzRMsKo8IbDECr3ELMweOEFi6In8OBwyE8Vr8SMQeP/eu48hFhBAXmIzbuVK70ASZNmk3tOg/QtGkbzv2VwP79B3Od538Nf39/5s4ey8yZC1i4cIXrA7xcxyswsQUsIqWBB4BxxmcBGgPzjF0mA48Y6w8bnzG2NzH2zxRXAThJKZWslLoE/KGUOg+glLrsXvGzR1hYMUJCCgOQP39+mjZpwN692TfIdIcjR+KoWaMKBQo4rYwaNarLnj3WPJQw26gwIwPQCpFhnPrr71bNmm37qBBZHIC4U3+RZAzNOXYmgUMnzlAqNCQXNXJSvHgoAGXKlOKRh1swa/bCXOf5X2PsmCHs3hPLsOFjfELHG1Apyu0l/a91Y+n8j+yGAe/xd7wLBf4yvDEBjgKRxnokcATSvDMTjP0zxdUwtGsiEmQE4KqpiSISggUBOCIinAnjh+Hn50AcDubNW8Ly5avMlgEgOno78xcsZ+OGFSQlJbN9Rwzjxs+wRMtso8Iz5xPpNiqdAWjNO6h71830Gr+YvUfiEaBUWAi92zmNPrfFHmHCig34+zlbxz2eaX7D6ImcMmvWGEKLFeH69STeeLM3CQnnc51nRthpymmnVt061Xm2XRt+27mLzdHOP8h9+gxmxco1Lo70Tp1UPG4Mm43IpJQaA2T4V0lEWgPxSqktItLQlLL9UyOrUQYiEqiU+tfAWBEJAyKUUjtdCWR3GFpOye4wtNxg51SKejpKzX8JM4ahnX30PrdjTrEFP2aqZzz3ehanM3x+oDCwAGcXbEmlVJKI1AY+VEo1F5FvjfX1IuIPnACKqyyCbJZRK6Pga6Sfdif4ajQaje2Y1AeslOqhlCqtlCoLPAWsUUo9A6zF+XwMoD2wyFhfbHzG2L4mq+ALXvYmnEaj0eQWlbsBPu7wPjBLRAYC24DU1wrHA1NFJBY4izNoZ4kOwBqNxqewwpVeKfUD8IOxfgCokcE+V4AnspOvDsAajca3yEOPF3QA1mg0PoUVLWCr0AFYo9H4FDoAp8Ou6S5SbBzW5GfjkDc7h4Zd2L/UNq2gmy2bTsRj2Hlf6GF8maOSPTrBWbbQLWCNRuNT6BawRqPReAiVolvAGo1G4xF0C1ij0Wg8hFK6BazRaDQeQbeANRqNxkOk5KFREF7nCde8WUN+j/mJPbt+4b13X7NMJzAwkF/XLWXL5u/Zvn0NH3zwtmVa4HRg3rZ1FVu3rGLKlK8IDAy0ROf11zqydcsqtm1dRZfXX3B9gBucv5hIt35DePD5N3mo41ts37WPhPMX6fTeAB5o35VO7w0gIZ3DQvT232nz0rs88kI3OnTra0oZ7Lov7Nay677w1fOXESpF3F48jVcFYIfDwYjhH9H6wXbcXakRTz75CLffXtESratXr3J/syiqVrufatWa0bxZQ2rWuNcSrVKlSvLaa89Tu05r7q3aFD+Hg6ioh0zXueOOW+nY8Wnq1mtNterNadWqCTeXL5vrfD8ZOZG61SuzZOIw/m/0Z5T/XyTjZy2kZpW7WTZ5BDWr3M34Wc7J2M9fTGTgiHF82f99Fo4fypA+3XKtb+d9YaeWXfeFr56/zPDpACwiU6woCNjvHuxrDsxWOBVfuHiJLTt381jLxoDzXBUOLsjaX6N5uNl9ADzc7D7WrosGYPnqX2hSryYR4WEAhBbNvfOGnfeF3fegHfeFL5+/jFDK/cXTuDLlXPyPZQnwWOpnswtjhXtwVviaA7MVTsVxJ+IpGlKY3p+N4omX3qPvkG+4dPkKZ84lUDy0KABhxYpw5lwCAH/GHef8xYs83+1Dol55n8Xf/Zjretl5X9ipZdd94avnLzN8qQVcGjgPDAWGGMuFdOsZkhtXZDvxNQdmK5yKk5OT2b3/IE8+2Iy5oz+lQP7AtO6GVEQEDO/BpORkdu87yMiPujN6cC9GT/8/Dh39tzmoJu87c3srSonbi6dxFYCrAVuAXkCCMSfmZaXUj0qpTJs2OXVFtsI92B18yYHZbKfi8OKhhBcP5R6jH+/+BrXYvf8goUVDOHXmHACnzpwjtIjTTDU8LJQ61SsRVCA/RUMKU/Xu29n7x5+5KoOd94WdWnbdF756/jIjOVncXjyNK0uiFKXUF8DzQC8R+QoLh66Z7R6cFb7qwGy2U3FYsSKULB7KwSPOVuzGrTu5+abSNKxdjUVG98Ki736kUZ3qADSuU41tMXtISk7m8pWr7NwTS/n/RWaavzvYeV/YqWXXfeGr5y8z8lIL2K1gqpQ6CjwhIg/g7JKwBLPdg7PCVx2YrXAq7vF6R7p/PILr15MoHVGCAe++ikpRvDPwCxasXENEieIM6fMWAOVvKk3dapV5vNM7OBwOHmvZmIrl/pcrfTvvCzu17LovfPX8ZYY39O26S5auyGbgb5Mrsp2n3E4HZjvR01HmDj0dZe4xwxV5d8VWbsec2/cv92i01m/CaTQanyIvtYB1ANZoND5Fckre+YWqA7BGo/EpvOEFC3fRAVij0fgUKV4wusFddADWaDQ+hTcML3MXHYA1Go1PobsgPICd59xOB2Y762Xn0LCLqwfbohPcpLstOmDvfWEnBfPl93QRskVe6oLIO48LNRqNxg2SUxxuL1khIvlFZJOI7BCR30Wkn5FeTkQ2ikisiMwWkXxGeqDxOdbYXtZVWXUA1mg0PoXKxuKCq0BjpVQloDLQQkRqAZ8AXyilKgDngFTngxeAc0b6F8Z+WaIDsEaj8SlSlLi9ZIVykmr1EmAsCmgMzDPSJxUQMeUAACAASURBVAOPGOsPG58xtjcRkSxFdADWaDQ+RXYm40k/da6xdE6fl4j4ich2IB74HvgD+EsplWTschRInW0qEjjiLINKAhKA0KzK6jMP4TQajQYgO49ClVJjgDFZbE8GKotIEWABcFsui3cDugWs0Wh8CoW4vbidp1J/AWuB2kAREUltvJYG4oz1OKAMgLE9BDiTVb5eF4B91b3V4XAQvelbFi6Y7HrnXFC6dClWfTeX33asZcf2NaY5I9ul0/L9L3m872ii+o2l7YDxAHy96EeavjOcqH5jieo3lp9/iwUg7vRf1HhlcFr6gKnLTSmDL94XVtYpMjKCJcuns3HzSjZEr+DlVzsAMGBgd6K3fse6DcuYNvNrQkIKmaqbGUlK3F6yQkSKGy1fRKQAcD+wG2cgbmPs1h5YZKwvNj5jbF+jXEw36VVdEKmOqi1ateXo0eNsWL+cJUu/Y/du8yeptlMLnPbju/fsp3Aha2/CpKQk3n2vH9u2xxAcXJBNG1eyavVPptfLSp1x7zxL0UJBN6Q9e38N2jev/a99Sxcvypy+nXKtmYov3hdW1ykpKYnePQaxY8fvBAcX5MefF7F2zS+sXfMLH/b9jOTkZPr1f49ub79C3w8+NUUzK7LTsnVBBDBZRPxwNlbnKKWWisguYJaIDAS2AeON/ccDU0UkFjgLPOVKIFstYBGpJyLdRKRZdo5zF191b42MjKBlyyZMmDDTkvzTc+JEPNu2xwBw8WIie/bsJ9ICU0S7dOzGF+8Lq+t08uQpduz4HXDeC3v3xlIqIpw1a35J8ySMjt5OqUh77o+UbCxZoZT6TSlVRSl1j1LqLqVUfyP9gFKqhlKqglLqCaXUVSP9ivG5grH9gKuyunJF3pRuvRPwFVAI6Csipr9i5KvurUOG9KNHj4G2vyl1002lqVzpLjZussbt2RIdgZe/mMFT/ccx78etacmz1mymTd8xfDBxCecTL6elx53+i6h+Y+n46RS27juca3lfvC/srNP//hfJPZXuZPPmHTekt3u2Dd+b4JDtDlb0AVuFqy6IgHTrnYH7lVKnRORzYAOQ4fukxlCOzgDiF0J2jDl9jVatmnIq/jRbt+2kQYN//4S2ioIFg5gzeyzd3unLhQsXXR/gJTqT3m9PeNHCnDmfyMtDp1MuIpSohlXp/GB9BGHkwh/4fM4q+j//IMVDgvn20y4UCQ5i16HjvDlyDvP7v0xwgUATamYtnrovrKRgwSCmTh9Fj/cH3HAvvPPuqyQlJzNn9qIsjjaPvPRCuKsuCIeIFBWRUJz2RacAlFKJQFJmB+UFV2S7tOrUqUbr1s3Yv28D06eNolGjukyeNMJ0nfT4+/szd/ZYZs5cwMKFK/KUTnhRp1FqaOGCNK5yKzEHjxEaEoyfw4HDITzWoAoxB52tuXwB/hQJdvYV31E2gjLFi/LnySwfOrvEF+8LO+rk7+/P1OkjmTN7EUsW/23C+fQzj9O8RSM6dXzLVL2sSEbcXjyNqwAcgtOWfjNQTEQiAEQkGAts2HzRvbV378GUK1+NirfU4pl2r7J27Trad+hquk56xo4Zwu49sQwbnunwRq/UuXT1GolXrqatr991kAqRJTj114W0fdZs3UuFyOIAnL2QmOaNdvTUOf6MP0fpsKK5KoMv3hd21OmrUYPZu/cPRn41IS2tSdMGvPFWJ5568iUuX75iql5WpIj7i6fJsgtCKVU2k00pwKNmF+a/5t5qBXXrVOfZdm34becuNkc7v2R9+gxmxco1Xq9z9nwib42cC0BSSgqtatxF3btupue4hew9chJBKBUWQp9nnbO2bd13mJGLfiTAzw8RoXe7loQEF8hVvXzxvrC6TrVqV6Xt048SE7OHn39dAkD/D4fw6WcfkC8wHwsXO4fYbY7ezltv9DFNNzNSvKBl6y4+44psJ3ZeXp87eQa+OB2lr94Xdk5HmXDxj1yfxoUln3b79DxyYoZ2RdZoNBqzyEsP4XQA1mg0PkVK1hOQeRU6AGs0Gp8i2dMFyAY6AGs0Gp/CG0Y3uIsOwBqNxqfIS6MgdADOAb46MsFO7BqdcHH9SFt0AELrv2mb1tWk67ZpJV6zbwyvGeSl76cOwBqNxqfQXRAajUbjIfQwNI1Go/EQyboFrNFoNJ5Bt4A1Go3GQ+gArNFoNB7ChdWbV6EDsEaj8SnyUgvYq1yR7XL0TcUu99uxY4Zw7OgOtm9bbZmGJ7TyuoN1y66Defz9L4jqMYy2vZyTob87YjpRPYYR1WMYLbsOJqrHsLT9xy9aS+u3PuWhtz9j3Y69OdL8+ptPOXRoM9HR36al9ez1JvtjN7B+w3LWb1hO8+YNc1WvjLDrWtn9Hc6I5GwsnsarpqMsWbIEESVL3OC0+3ibjpa5Iu/+/ecbnGLbPfuqJVr169Xk4sVEJk4cTuUqTUzP3xNadp6/3Ghl9SJGy66DmTGwC0ULZ+za8vm0pQQH5eflx5ryx9GTdP9qJtMHvE78ufO8NGgsi4e+i5/j7zaMOy9i1K1bg8TERMaOHUr16k5jzJ693iTxYiLDh491eXwq2XkRw85rldvvcNK1uFx3IAz/Xzu3Y84bh6d5tMPClSlnTREpbKwXEJF+IrJERD4RkRCzC2On066d7rc//7KRs+f+siRvT2n5qoN1KkopvtvwGy1rVwbghy27aFG7EvkC/CldohhlwkOJiT2S7XzXrdvE2bMJZhc3S+w8f97glm2WK7IduOqCmABcMtaH47Qo+sRIm2hhuSx39LXTKdYX8QkHa4GXB4/jqZ4jmLd64w2btu45SGhIMDdFhAFw8mwC4aF/tznCQ0OIP2deIH3p5fZs3LiCr7/5lCJFCpuWL3juXrfLlfuf+FIAdiilUs03qyml3lRK/aKU6geUz+wgEeksIptFZHNKSmK2C2WXo6/mv82kvq8we9AbjHy/I7O/X8+W3QfStq34dQct6lS2pRzjxk7jrjsbUKtWK06ciOfjwb1t0bUST36HVTYWT+MqAMeIyPPG+g4RqQYgIrcAmXZC5dQVGexz9LXTgdkX8QUH6/BizhZtaEgwjavdScwfzi6FpORkVkfH0KLWPTfse/LM3y3ek2cSKFHUnF64+PjTpKSkoJRi4oRZVKtayZR8U7H7XrfrO5wZecmU01UAfhG4T0T+AO4A1ovIAWCssc107HL0tdOB2RfJ6w7Wl65cI/Hy1bT19Tv3UaGM82f5xphYypUqTnhokbT976t6OyvX7+Da9SSOxp/l8Ikz3FWhTK7KkErJksXT1h96qDm/m2wCave9btd3ODPy0igIV67ICUAH40FcOWP/o0qpk1YUxi5HX7DX/Xba1JHc16A2YWHFOHRgM/36f87ESbPytFZed7A+m3CBt76YCjhbvK3qVqFupVsBWLn+390PFUqXpFmte3j03SH4+Tno+fzDN4yAcJdJk0ZQv0EtQkOLsm//egYO/IIG9Wtxzz13oJTiz8NH6dqlZ67q9k/svFZ2foczI8WkzgURKQNMAcJx9liMUUoNF5FiwGygLHAIiFJKnRMRwfmsrBXO52QdlFJbs9TwpmFoGo3Z6PmA8xZmDEMbcNMzbsecPn9Oz1RPRCKACKXUVhEpBGwBHgE6AGeVUoNFpDtQVCn1voi0ArrgDMA1geFKqZpZ6XvVixgajUaTW8x6CKeUOp7aglVKXQB2A5HAw8BkY7fJOIMyRvoU5WQDUMQI4pmiA7BGo/EpsjMMLf2ILWPpnFGeIlIWqAJsBMKVUseNTSdwdlGAMzinHxx+1EjLFD0XhEaj8SmSxP1eT6XUGCDLp4UiEgz8H/CmUuq8pLO9V0opkWwI/gPdAtZoND6FmeOARSQAZ/CdrpSabySfTO1aMP6PN9LjgPRDY0obaZmiA7BGo/EpzHoTzhjVMB7YrZQamm7TYqC9sd4eWJQu/TlxUgtISNdVkSGWd0HkZKhOTkhO8YYXC83HzrHifg4/27SSUuwZhRlW/y1bdABOL7PvDbZCzfvappXXMGsYGlAXeBbYKSLbjbSewGBgjoi8APwJRBnbluMcARGLcxja87hA9wFrNBqfwqzwq5T6hczbQP+aalA5x/Rma65PHYA1Go1PkZd+C+sArNFofIpkr5hmxz10ANZoND6FbgFrNBqNh1C6BazRaDSeIS+1gL1uHHDXLi+ybesqtm5ZxZQpXxEYGGiZli+acoLTAyx607csXDDZ9c7ZYPTozzh8eCtbtnyfljZoUE927FhDdPS3zJ49hpAQc90cUrHyWo365hMOHopmU/TKtLS777mdNT/M59cNy/jpl0VUrZbzOXpb9hxNm/4TiRo4iacHTblh25Tvo6n88mecu3gpLS1672GiBk7isX4TeGHIzBzrpsdXzVozIgXl9uJpvCoAlypVktdee57adVpzb9Wm+DkcREU9ZImWw+FgxPCPaP1gO+6u1Ignn3yE22+vaInWlClzeKD1M5bknRFdu7zI7j3mGy5OnTqXhx567oa0NWt+5t5776d69ebs33+Qdy34wll9raZP/T8eeaTDDWkDB/bg40HDqVPrAQYO+IKBA7vnSmNstyeZ07sDM3r+ff5OnD3P+t2HiCj29x+t85eu8PHMVQx/9THm9+3IZ53Muf/tugft/F5lhi85YtiOn78/BQrkx8/Pj6CgAhw/bsnUwz5ryhkZGUHLlk2YMMGcllN6fvllE+f+UY9Vq34mOdn5UsWmTVspXdp8rzGrr9W6dZs4d/bGeimlKFwoGICQwoUsuQ8/n7uWNx+774a0FZt207hKxbSgXCwTx+bs4otmrZmRhHJ78TRZ9gGLSFdggVIq+/avOeDYsRMM+2I0sfs3cPnyFVat/olVq36yRCsjo8Ia1atYomUnQ4b0o0ePgQQbwcNO2rd/knnzlpieryeu1fvv9Wfh4sl89HFPHA4HTRq1yXFeIsIrw+ciIjxevxJt6ldi7fb9FC8SzK2lS9yw75/x50hKTuaFIbO4dPUaTze+lwdr3ZXb6tiGN3yv8tJDOFct4AHARhH5WUReFZHiLvYHbpziLTnZfUO+IkVCaP1gM269rQ5ly1WjYFAQbds+6vbx/3VatWrKqfjTbN2203bt999/naSkJGbOXGC7thW82Kkd3d8byG231KX7ewMZ9fXgHOc18Z22zOrVnpGvP86cH7axZf8Rxq/cyKsP1fvXvsnJKew+fJKvXn+MUV3bMGbZev48eTY3VfnP4UuuyAdwzugzAKgK7BKRlSLS3pghPkPSm3L6+bnfEmvcuB6HDh3h9OmzJCUlsXDRCmrXqub28dnBF00569SpRuvWzdi/bwPTp42iUaO6TJ40wnLdZ59tQ8uWTejQoasl+XviWj39zGMsWuR8KDd//rJcPYQLL+r8qhQrXJBGlSuyZd8R4s4kEDVgEi17jib+rwu0/WgKpxMuEl60ELXvKEuBwHwUDQ6iasUy7D16ypQ62YE3fK9UNv55GlcBWCmlUpRS3ymlXgBKAaOAFjiDs6kcORJHzRpVKFAgPwCNGtVljwUPk8A3TTl79x5MufLVqHhLLZ5p9ypr166jvUVBMZX777+Pbt1eoU2bF7h8+YolGp64VieOx1O/vtNNpmHDOvzxx6Ec5XP56jUSr1xLW1+/+xB3lo1g7WevsWLQS6wY9BIlihRiZq/nCAsJpmGlCmyPjSMpOYXL166z89BxypcsZla1LMcbvld5qQXsahzwDRNRKKWu45xybbGIBJldmOjo7cxfsJyNG1aQlJTM9h0xjBs/w2wZwHdNOa1kypQvqV+/NmFhRYmN3cjAgUN5993XCAzMx7Jl0wHYtGkbXfKYqeTEScPTjDL37v+VjwYO4/XXevDp5x/g7+fPlatX6fJ6zup05vwlun2zEICklBRaVr+duneWy3T/8hGh1LmzHFEDJiEO4dG6d1Mh0q2evyzxRbPWTMtgsc+lmWRpyikityilcnX2AvOXseVs6Okoc48vTkeZ3z+fLToAp5b1sk3LV6ejNMOU8+mbHnU75sz4c4GdX7F/4cqW3t4/XRqNRpNLvKFv1130q8gajcanyEu/hXUA1mg0PoU3vGLsLjoAazQan0J3QWg0Go2HyEujIHQA1mg0PoXugkhHio8OD7MLO28lu4aG2cmVpGu2aYW0+NA2rcvHfrZNq0Cp+rZpmUFeiji6BazRaHwK3Qes0Wg0HkJ3QWg0Go2HyOrtXm9DB2CNRuNTaFt6jUaj8RB5qQvC6yyJNBqNJjcopdxeXCEiE0QkXkRi0qUVE5HvRWS/8X9RI11EZISIxIrIbyJyr6v8vSoABwYG8uu6pWzZ/D3bt6/hgw/etlTPF12R7XSk9UWt0qVLseq7ufy2Yy07tq+hy+svWKYFsG/verZuWUX0pm9Z/+uyXOd3/sJF3uo1kAfbduLBpzuzPWY3n381jgfbduLR516ha4/+nL/gdKn5K+E8z7/+PtWbPspHQ0blWjsVH3NFnoRz/vP0dAdWK6UqAquNzwAtgYrG0hn42lXmWU5HaQYB+SKzJVCwYBCJiZfw9/fnxx8W0K1bXzZu2uryuOzWwuFwsPv3n2nRqi1Hjx5nw/rltHv2VXbvNn8C+Pr1anLxYiITJw6ncpUmpuefip118lWtkiVLEFGyBNu2xxAcXJBNG1fyeJuObmk5JPszG+7bu57adVpx5sy5bB2XGJexV2LPAZ9zb6W7aPNQC65fv87lK1fZuWsvNatWxt/fj6GjxgPQ7dUXuHT5Cnv2xbL/wJ/EHviTXm+/mmGe2RkHnNtrZcZ0lA1LN3U7HPxwdJVLPREpCyxVSt1lfN4LNFRKHReRCOAHpdStIjLaWJ/5z/0yyzvLFrCI5BOR50SkqfH5aRH5SkReE5EAN+uYLRITLwEQEOBPQECAZU80fdEV2c46+arWiRPxbNvu/LV58WIie/bsJ7KU+U7PVnDhYiJbdsTwuHFuAgICKFwomLo1q+Lv75zr+Z47b+Nk/GkAggrk595KdxGYz7w5k73BFTlZKbeX9P6VxtLZDYnwdEH1BBBurEcC6Q2MjxppmeKqC2Ii8ADwhohMBZ4ANgLVgXFuFDTbOBwONkd/x7G431i1+ic2RW+zQiZD99ZSeeSLlhl21slXtdJz002lqVzpLjZusuYeBOdLA8uXzWDD+uW88MIzucor7tgJihYJofdHQ2nT4TU++HgYl/5hE7Vg2XfUq109VzpZ4Q3fq+x0QaT3rzSWMdnRUs4WYo5bia4C8N1KqSeBR4FmQBul1FTgeSBTr+n0f1VSUhKzVaCUlBSqVW9G2XLVqF6tCnfeeWu2jtdozKBgwSDmzB5Lt3f6cuGC+87e2aVRo8eoWaslDz70LK+83J569WrmOK+k5GR274vlyUcfYN6kkRQokJ/xU+ekbR89eSZ+fn60btbIjKJ7LSb3AWfESaPrAeP/eCM9DiiTbr/SRlqmuArADhHJBxQCgoAQIz0QyLQLIv1fFYejoAuJjElIOM8PP66jWbOGOTreFd7g3mo2dtbJV7UA/P39mTt7LDNnLmDhwhWW6QBp9Th16gyLFq2kevXKOc6rZIkwwouHcc+dtwHQrGE9du2LBWDhsu/5ad0mPun7HpKDvmp38YbvlZmjIDJhMdDeWG8PLEqX/pwxGqIWkJBV/y+4DsDjgT3AdqAXMFdExgLRgOmOfmFhxQgJKQxA/vz5adqkAXv3/mG2DOAd7q1mY2edfFULnKNWdu+JZdjwbP0azTZBQQUIDi6Ytt60aQN+/31vjvMLCy1GyRLFOfjnUQA2bNnOzWX/xy8bNjNhxly+/KQvBfLnN6XsmeEN3yszW8AiMhNYD9wqIkdF5AVgMHC/iOwHmhqfAZbjdIuPBcYCGT/VTIcrT7gvRGS2sX5MRKYYgmOVUptclj6bRESEM2H8MPz8HIjDwbx5S1i+fJXZMoBvuiLbWSdf1apbpzrPtmvDbzt3sTnaGTj69BnMipVrTNcKDy/O3DnORyn+/n7MmrWQ7777IVd59nzrFd7v9ynXk65TplQEA3q+xVMvvsG169fp9KbTNPSeO2+j73tdAGj2eHsuJl7ielISa37+lTFffMTN5W7Ksb43uCKbORmPUqptJpv+NZzJ6A/O1rg7rxuGllPyzrsvGl8lJ8PQckpmw9CswM7pKM0YhnZvRD23w8HW4794ryuyRqPR5DX0ZDwajUbjIfLSXBA6AGs0Gp9CT8iu0Wg0HiJFd0FoNBqNZ9AtYI1Go/EQySrv2HJaHoDzzt8ijZ34O/xs0bHT6dnOn752Dg27uMHlrIpehe6C0Gg0Gg+huyA0Go3GQ+gWsEaj0XgI3QLWaDQaD5Gs7Ov3zy06AGs0Gp9Cv4qs0Wg0HiIvvYrsVa7I4JtOu3Zq+YoD8+jRn3H48Fa2bPk+La1o0RCWLZtOTMyPLFs2nSJFQrLIIWfYef7y+rVq2WUQj783hKjuQ2nbczgA7w6fRlT3oUR1H0rLLoOI6j4UgPW/7eOpnsN4/L0hPNVzGBtjYk0pQ0bYMCG7aVg+HaV/Nqaj9FWnXe3A/G9cjQOuV68GFy9eYvz4L6ha9X4APvqoJ+fO/cXnn4/inXdepUiREHr3/jjLfLI7Dtiu82enVm6vVWbjgFt2GcSMj96gaOGMXW8+n7qE4KD8vPz4/ew+GEdoSDAlioWw/8gJXvl4LKtG9fnXMfnvfSjX00NGFLnD7Zhz/K9dHp2O0mULWETKi8g7IjJcRIaKyMsiUtiKwviq0652YM4+v/yyiXP/qMeDD97PtGnzAJg2bR4PPdTMNL1U7Dp/dmp5wqlYKcV3G3bQso7TYun2cpGUKOb8xVKhdDhXr13n2vUka7Sz8c/TuLKl7wp8A+TH6YQciNN0boOINDS7ML7qtOsNTrFm44k6lSgRxokTTv/DEyfiKVEizFI9X8GyayXw8sdjearnMOat3nDDpq17DhIaUoibIor/67BVm3Zye7lI8gVY8wgqWaW4vXgaV2egE1BZKZUsIkOB5UqphiIyGqcRXYbOyCLSGegMIH4h5NSYU6PJCi/owvtPM+nD1wgvFsKZhIu8PGgM5UqVoOrt5QFY8es2WtT5t8Fo7JETDJuxjG96drKsXN7Qt+su7jyESw3SgUAwgFLqMBa4Ivuq0643OMWajSfqFB9/mpIlSwBQsmQJTp06bamer2DVtQo3uhRCQ4JpXP0uYv44DEBScjKrN8XQonalG/Y/eeYv3ho6mYGvPkWZcOt+vaQo5fbiaVwF4HFAtOGEvB4YCSAixYGzZhfGV512vcEp1mw8UaelS7+nXbs2ALRr14YlS753cYQGrLlWl65cI/HylbT19b/to0JpZ7fGxp37KVeqBOGhRdL2P594mdc/ncAbbVtR5dZyudJ2RV4aBeHKFXm4iKwCbgeGKKX2GOmngAZmF8ZXnXa1A3P2mTLlS+rXr01YWFFiYzcycOBQPv98FNOnf02HDk9y+HAczzzziml6qdh1/uzUsuJanU24wFtDJwOQlJxCq7pVqFv5NgBWrt/+r+6HWd+u4/DJ04yZ/z1j5jv/cH7dozOhIcG5KkdG5KVxwF41DE3z38EXp6P0VeycjtKMYWiFC5Z3O+acTzygXZE1Go3GLLxhdIO76ACs0Wh8Cm94uOYuOgBrNBqfwhserrmL180FodFoNLnBzDfhRKSFiOwVkVgR6W52WXULWKPR+BRmtYBFxA/n0Nv7gaM4h+QuVkrtMkUAHYA1Go2PYWIfcA0gVil1AEBEZgEPA3knACddi8vRMA8R6ayUGmN2eTylo7XylpYv1smXtdKTnZiTftoEgzHpyhwJHEm37ShQM/cl/Btv7gPu7HqXPKWjtfKWli/WyZe1ckT6aROMxdY/GN4cgDUajcaTxOGc/TGV0kaaaegArNFoNBkTDVQUkXIikg94ClhspoA3P4Sz66eAnT85tFbe0fLFOvmylukopZJE5HXgW8APmKCU+t1MDcvngtBoNBpNxuguCI1Go/EQOgBrNBqNh/C6AGz1q3/pdCaISLyIxFilkU6rjIisFZFdIvK7iLxhoVZ+EdkkIjsMrX5WaRl6fiKyTUSWWqxzSER2ish2EdlssVYREZknIntEZLeI1LZI51ajPqnLeRF50yKtt4z7IUZEZopIfit0DK03DJ3fraqPz5Cd2eOtXnB2dP8BlAfyATuAOyzSagDcC8TYUK8I4F5jvRCwz8J6CRBsrAcAG4FaFtatGzADWGrxOTwEhFl9rQytycCLxno+oIgNmn7ACeAmC/KOBA4CBYzPc4AOFtXjLiAGCML5kH8VUMGO65YXF29rAae9+qeUugakvvpnOkqpn7DAVikTreNKqa3G+gVgN84vhRVaSil10fgYYCyWPGkVkdLAAzitq3wCEQnB+cd5PIBS6ppSyg6f+ibAH0qpPy3K3x8oICL+OIPjMRf755TbgY1KqUtKqSTgR+Axi7TyPN4WgDN69c+SQOUpRKQsTjfpjRZq+InIdiAe+F4pZZXWMOA9wI4ZsBXwnYhsMV4ftYpywClgotG1Mk5E7LD1fgqYaUXGSqk44HPgMHAcSFBKWWXgFwPUF5FQEQkCWnHjywyadHhbAPZpRCQY+D/gTaXUeat0lFLJSqnKON/cqSEid5mtISKtgXil1Baz886Eekqpe4GWwGsiYronoYE/zq6pr5VSVYBEwLJnEQDGIP+HgLkW5V8U5y/JckApoKCItLNCSym1G/gE+A5YCWwHtC9UJnhbALb81T9PISIBOIPvdKXUfDs0jZ/Oa4EWFmRfF3hIRA7h7CpqLCLTLNAB0lpxKKXigQU4u6us4ChwNN2vhnk4A7KVtAS2KqVOWpR/U+CgUuqUUuo6MB+oY5EWSqnxSqmqSqkGwDmczzw0GeBtAdjyV/88gYgIzj7F3UqpoRZrFReRIsZ6AZxzme4xW0cp1UMpVVopVRbndVqjlLKkVSUiBUWkvHCZZAAAAPRJREFUUOo60AznT13TUUqdAI6IyK1GUhNMnH4wE9piUfeDwWGglogEGfdiE5zPISxBREoY//8PZ//vDKu08jpe9SqysuHVv1REZCbQEAgTkaNAX6XUeCu0cLYWnwV2Gn2zAD2VUsst0IoAJhuTSTuAOUopS4eI2UA4sMAZO/AHZiilVlqo1wWYbjQCDgDPWyVk/EG5H3jJKg2l1EYRmQdsBZKAbVj7mvD/iUgocB14zaaHmHkS/SqyRqPReAhv64LQaDSa/ww6AGs0Go2H0AFYo9FoPIQOwBqNRuMhdADWaDQaD6EDsEaj0XgIHYA1Go3GQ/w/aPN/cC4pahEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VLz90PlxhkCu", "outputId": "abfbc5fe-fba9-4aff-b20d-f9e4c8c41b24" }, "source": [ "print(confusion_matrix(teste_mlp_y, prev_mlp))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "[[553 0 0 4 3 0 8 15 6 0]\n", " [ 3 561 60 1 3 3 0 0 1 0]\n", " [ 0 23 549 1 4 1 0 0 0 0]\n", " [ 3 8 0 553 9 1 1 2 2 1]\n", " [ 0 3 8 9 606 0 0 8 0 0]\n", " [ 0 0 4 2 2 555 0 4 0 22]\n", " [ 2 0 1 1 0 0 570 15 0 2]\n", " [ 8 0 1 4 12 0 18 546 1 0]\n", " [ 3 0 1 0 0 0 2 5 621 0]\n", " [ 0 0 0 1 0 10 1 1 0 572]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "iRPgZNuVhk5S", "outputId": "c79abe53-7b60-423a-9f13-165b6f2b5f13" }, "source": [ "print(classification_report(teste_mlp_y, prev_mlp))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 0.97 0.94 0.95 589\n", " 1 0.94 0.89 0.91 632\n", " 2 0.88 0.95 0.91 578\n", " 3 0.96 0.95 0.96 580\n", " 4 0.95 0.96 0.95 634\n", " 5 0.97 0.94 0.96 589\n", " 6 0.95 0.96 0.96 591\n", " 7 0.92 0.93 0.92 590\n", " 8 0.98 0.98 0.98 632\n", " 9 0.96 0.98 0.97 585\n", "\n", " accuracy 0.95 6000\n", " macro avg 0.95 0.95 0.95 6000\n", "weighted avg 0.95 0.95 0.95 6000\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "NxTfI4gAx18O", "outputId": "cfb9a220-1803-4148-8c84-1fb10d30d453" }, "source": [ "print('Random Forest times: train: '+str(treino_rf)+ ' prediction: '+str(time_prev_rf))\n", "print('KNN times: train: '+str(treino_knn)+ ' prediction: '+str(time_prev_knn))\n", "print('Naive Bayes times: train: '+str(treino_nb)+ ' prediction: '+str(time_prev_nb))\n", "print('Adaboost tree: times: train: '+str(treino_ada_tree)+ ' prediction: '+str(time_prev_ada_tree))\n", "print('SVM times: train: '+str(treino_svm)+ ' prediction: '+str(time_prev_svm))" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "Random Forest times: train: 86.4323673248291 prediction: 0.24769353866577148\n", "KNN times: train: 0.023966312408447266 prediction: 20.796252012252808\n", "Naive Bayes times: train: 0.055977582931518555 prediction: 0.008681058883666992\n", "Adaboost tree: times: train: 1437.0614805221558 prediction: 0.38110852241516113\n", "SVM times: train: 231.9555778503418 prediction: 79.28628158569336\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "W9TC_OypEytE" }, "source": [ "" ], "execution_count": null, "outputs": [] } ] }