{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "collapsed_sections": [ "5Pbtf3u3yda9", "tj1vodKuyd6x" ] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "## Downloading & preparing the Dataset" ], "metadata": { "id": "boYPdllt-5Pg" } }, { "cell_type": "code", "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import warnings\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import accuracy_score,classification_report, ConfusionMatrixDisplay\n", "import re\n", "import string\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.naive_bayes import MultinomialNB\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", "from xgboost import XGBClassifier\n", "from lightgbm import LGBMClassifier\n", "from sklearn.svm import SVC\n", "# Ignore FutureWarning messages\n", "warnings.simplefilter(action='ignore', category=FutureWarning)" ], "metadata": { "id": "VGIADD_ndICM" }, "execution_count": 1, "outputs": [] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "LPDrKCy-cjhV", "outputId": "293b3b4a-3456-4470-c710-616b82261939" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Downloading sentiment-analysis-dataset, 57092644 bytes compressed\n", "[==================================================] 57092644 bytes downloaded\n", "Downloaded and uncompressed: sentiment-analysis-dataset\n", "Data source import complete.\n" ] } ], "source": [ "import os\n", "import sys\n", "from tempfile import NamedTemporaryFile\n", "from urllib.request import urlopen\n", "from urllib.parse import unquote, urlparse\n", "from urllib.error import HTTPError\n", "from zipfile import ZipFile\n", "import tarfile\n", "import shutil\n", "\n", "CHUNK_SIZE = 40960\n", "DATA_SOURCE_MAPPING = 'sentiment-analysis-dataset:https%3A%2F%2Fstorage.googleapis.com%2Fkaggle-data-sets%2F989445%2F1808590%2Fbundle%2Farchive.zip%3FX-Goog-Algorithm%3DGOOG4-RSA-SHA256%26X-Goog-Credential%3Dgcp-kaggle-com%2540kaggle-161607.iam.gserviceaccount.com%252F20240418%252Fauto%252Fstorage%252Fgoog4_request%26X-Goog-Date%3D20240418T100202Z%26X-Goog-Expires%3D259200%26X-Goog-SignedHeaders%3Dhost%26X-Goog-Signature%3D37697dd0d9910676a3f12986b24306fc3726be4de82536c784ffb79deff0ba33d8973d6d612a53bcf9ed39bd7ad8a1d69bb34c42a34c7d6cffee6dd3048a9ef68f047745664f48ea6f3773a1f263129a6f78d48923235cc363b4081daadea014b0958575bf8376d565858404a8b1be7e5f317bdd9f5823ce4777f0b7052445c648bcda039294c804978828087705abe4416a6f9a0e0743388667017128a5ab2ef5ab2dade0d40d1659f4313296501907b4baec3161131e151e6f5b982eee9a6f7eb1b022da9c874f216d7fac981dc1351e9001ee56d03d1da8b2e0d4c97320f18d7e9b00ec63f4ba7444d81595cc8edff2b05f13aef4b204dd2710d0fddf0ef9'\n", "\n", "KAGGLE_INPUT_PATH='/kaggle/input'\n", "KAGGLE_WORKING_PATH='/kaggle/working'\n", "KAGGLE_SYMLINK='kaggle'\n", "\n", "!umount /kaggle/input/ 2> /dev/null\n", "shutil.rmtree('/kaggle/input', ignore_errors=True)\n", "os.makedirs(KAGGLE_INPUT_PATH, 0o777, exist_ok=True)\n", "os.makedirs(KAGGLE_WORKING_PATH, 0o777, exist_ok=True)\n", "\n", "try:\n", " os.symlink(KAGGLE_INPUT_PATH, os.path.join(\"..\", 'input'), target_is_directory=True)\n", "except FileExistsError:\n", " pass\n", "try:\n", " os.symlink(KAGGLE_WORKING_PATH, os.path.join(\"..\", 'working'), target_is_directory=True)\n", "except FileExistsError:\n", " pass\n", "\n", "for data_source_mapping in DATA_SOURCE_MAPPING.split(','):\n", " directory, download_url_encoded = data_source_mapping.split(':')\n", " download_url = unquote(download_url_encoded)\n", " filename = urlparse(download_url).path\n", " destination_path = os.path.join(KAGGLE_INPUT_PATH, directory)\n", " try:\n", " with urlopen(download_url) as fileres, NamedTemporaryFile() as tfile:\n", " total_length = fileres.headers['content-length']\n", " print(f'Downloading {directory}, {total_length} bytes compressed')\n", " dl = 0\n", " data = fileres.read(CHUNK_SIZE)\n", " while len(data) > 0:\n", " dl += len(data)\n", " tfile.write(data)\n", " done = int(50 * dl / int(total_length))\n", " sys.stdout.write(f\"\\r[{'=' * done}{' ' * (50-done)}] {dl} bytes downloaded\")\n", " sys.stdout.flush()\n", " data = fileres.read(CHUNK_SIZE)\n", " if filename.endswith('.zip'):\n", " with ZipFile(tfile) as zfile:\n", " zfile.extractall(destination_path)\n", " else:\n", " with tarfile.open(tfile.name) as tarfile:\n", " tarfile.extractall(destination_path)\n", " print(f'\\nDownloaded and uncompressed: {directory}')\n", " except HTTPError as e:\n", " print(f'Failed to load (likely expired) {download_url} to path {destination_path}')\n", " continue\n", " except OSError as e:\n", " print(f'Failed to load {download_url} to path {destination_path}')\n", " continue\n", "\n", "print('Data source import complete.')" ] }, { "cell_type": "code", "source": [ "import numpy as np # linear algebra\n", "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", "\n", "# Input data files are available in the read-only \"../input/\" directory\n", "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n", "\n", "import os\n", "for dirname, _, filenames in os.walk('/kaggle/input'):\n", " for filename in filenames:\n", " print(os.path.join(dirname, filename))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Yzb-IFDGc1uc", "outputId": "0040685f-8549-4e6e-ec26-278fc2ac5e1a" }, "execution_count": 3, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/kaggle/input/sentiment-analysis-dataset/testdata.manual.2009.06.14.csv\n", "/kaggle/input/sentiment-analysis-dataset/test.csv\n", "/kaggle/input/sentiment-analysis-dataset/training.1600000.processed.noemoticon.csv\n", "/kaggle/input/sentiment-analysis-dataset/train.csv\n" ] } ] }, { "cell_type": "code", "source": [ "d = pd.read_csv('/kaggle/input/sentiment-analysis-dataset/train.csv',encoding='latin1');\n", "f = pd.read_csv('/kaggle/input/sentiment-analysis-dataset/test.csv',encoding='latin1');\n", "df = pd.concat([d,f])" ], "metadata": { "id": "5Gk5uINXc75b" }, "execution_count": 4, "outputs": [] }, { "cell_type": "code", "source": [ "print(df.shape)\n", "display(df.info())\n", "display(df)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 997 }, "id": "gZ8lChobdQFs", "outputId": "f21d4c96-06e3-4177-b7cf-3bc4d0360b40" }, "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(32296, 10)\n", "\n", "Index: 32296 entries, 0 to 4814\n", "Data columns (total 10 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 textID 31015 non-null object \n", " 1 text 31014 non-null object \n", " 2 selected_text 27480 non-null object \n", " 3 sentiment 31015 non-null object \n", " 4 Time of Tweet 31015 non-null object \n", " 5 Age of User 31015 non-null object \n", " 6 Country 31015 non-null object \n", " 7 Population -2020 31015 non-null float64\n", " 8 Land Area (Km²) 31015 non-null float64\n", " 9 Density (P/Km²) 31015 non-null float64\n", "dtypes: float64(3), object(7)\n", "memory usage: 2.7+ MB\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "None" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ " textID text \\\n", "0 cb774db0d1 I`d have responded, if I were going \n", "1 549e992a42 Sooo SAD I will miss you here in San Diego!!! \n", "2 088c60f138 my boss is bullying me... \n", "3 9642c003ef what interview! leave me alone \n", "4 358bd9e861 Sons of ****, why couldn`t they put them on t... \n", "... ... ... \n", "4810 NaN NaN \n", "4811 NaN NaN \n", "4812 NaN NaN \n", "4813 NaN NaN \n", "4814 NaN NaN \n", "\n", " selected_text sentiment Time of Tweet Age of User \\\n", "0 I`d have responded, if I were going neutral morning 0-20 \n", "1 Sooo SAD negative noon 21-30 \n", "2 bullying me negative night 31-45 \n", "3 leave me alone negative morning 46-60 \n", "4 Sons of ****, negative noon 60-70 \n", "... ... ... ... ... \n", "4810 NaN NaN NaN NaN \n", "4811 NaN NaN NaN NaN \n", "4812 NaN NaN NaN NaN \n", "4813 NaN NaN NaN NaN \n", "4814 NaN NaN NaN NaN \n", "\n", " Country Population -2020 Land Area (Km²) Density (P/Km²) \n", "0 Afghanistan 38928346.0 652860.0 60.0 \n", "1 Albania 2877797.0 27400.0 105.0 \n", "2 Algeria 43851044.0 2381740.0 18.0 \n", "3 Andorra 77265.0 470.0 164.0 \n", "4 Angola 32866272.0 1246700.0 26.0 \n", "... ... ... ... ... \n", "4810 NaN NaN NaN NaN \n", "4811 NaN NaN NaN NaN \n", "4812 NaN NaN NaN NaN \n", "4813 NaN NaN NaN NaN \n", "4814 NaN NaN NaN NaN \n", "\n", "[32296 rows x 10 columns]" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
textIDtextselected_textsentimentTime of TweetAge of UserCountryPopulation -2020Land Area (Km²)Density (P/Km²)
0cb774db0d1I`d have responded, if I were goingI`d have responded, if I were goingneutralmorning0-20Afghanistan38928346.0652860.060.0
1549e992a42Sooo SAD I will miss you here in San Diego!!!Sooo SADnegativenoon21-30Albania2877797.027400.0105.0
2088c60f138my boss is bullying me...bullying menegativenight31-45Algeria43851044.02381740.018.0
39642c003efwhat interview! leave me aloneleave me alonenegativemorning46-60Andorra77265.0470.0164.0
4358bd9e861Sons of ****, why couldn`t they put them on t...Sons of ****,negativenoon60-70Angola32866272.01246700.026.0
.................................
4810NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4811NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4812NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4813NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4814NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

32296 rows × 10 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "df", "summary": "{\n \"name\": \"df\",\n \"rows\": 32296,\n \"fields\": [\n {\n \"column\": \"textID\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 31015,\n \"samples\": [\n \"de78baa02c\",\n \"b0794b5a7e\",\n \"ed036f1d74\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 31014,\n \"samples\": [\n \" I was afraid you were going to say that.\",\n \" part 2: social networking??.. there is even room for people\",\n \"i miss the one who would do anything to spend 5 min with me... the one who used to say just tell me when and where\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"selected_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 22430,\n \"samples\": [\n \"that is why I drive a (teeny tiny) honda civic\",\n \"Sorry...but, I bet they aren`t that bad...\",\n \"yummy\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sentiment\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"neutral\",\n \"negative\",\n \"positive\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Time of Tweet\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"morning\",\n \"noon\",\n \"night\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Age of User\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"0-20\",\n \"21-30\",\n \"70-100\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Country\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 195,\n \"samples\": [\n \"Philippines\",\n \"Belgium\",\n \"Sierra Leone\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Population -2020\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 150084504.4053449,\n \"min\": 801.0,\n \"max\": 1439323776.0,\n \"num_unique_values\": 195,\n \"samples\": [\n 109581078.0,\n 11589623.0,\n 7976983.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Land Area (Km\\u00b2)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1811038.6572147855,\n \"min\": 0.0,\n \"max\": 16376870.0,\n \"num_unique_values\": 193,\n \"samples\": [\n 2267050.0,\n 1280000.0,\n 100250.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Density (P/Km\\u00b2)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2008.4507293311128,\n \"min\": 2.0,\n \"max\": 26337.0,\n \"num_unique_values\": 136,\n \"samples\": [\n 400.0,\n 71.0,\n 331.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Preprocessing the dataset" ], "metadata": { "id": "5GLaYntUf0e1" } }, { "cell_type": "code", "source": [ "df.dropna(inplace=True)" ], "metadata": { "id": "YwLU8XIkdUhy" }, "execution_count": 6, "outputs": [] }, { "cell_type": "code", "source": [ "df['sentiment'].value_counts(normalize=True).plot(kind='bar');" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 496 }, "id": "rxtOBkQWd-hM", "outputId": "473c0377-e4fb-422d-a373-9154696c0f98" }, "execution_count": 7, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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67XXXlNMTIxWrFih+Ph4DR482NvlwcccP35ckydP1rJlyyRJ//znP5WQkKDJkycrJiZGjz/+uJcrbNsILD5q3rx5Z9XPZrMRWOAVr7/+uu666y6NGzdOn376qerq6iRJVVVVeuqpp7RmzRovVwhfk5OTo82bN6ukpETp6emudrvdrunTpxNYzjOedAvASNdcc40eeughZWRkqGPHjtq8ebMSEhL06aefatiwYXI6nd4uET6ma9euWrVqlQYOHOj2ndy1a5f69eun6upqb5fYprGGBYCRduzYoRtuuKFJe2hoqI4ePXrhC4LPO3TokMLDw5u019bWymazeaEi38IlIUiS9u3bpz//+c+qqKhQfX29276CggIvVQVfFhkZqV27dikuLs6tfe3atUpISPBOUfBpycnJeuuttzR58mRJcoWUxYsXKzU11Zul+QQCC+RwOHTrrbcqISFBn3/+ua6++mqVl5fLsiz169fP2+XBR2VlZemBBx7QkiVLZLPZtH//fpWWlurhhx/WtGnTvF0efNBTTz2lYcOGadu2bTp16pSee+45bdu2TevWrdMHH3zg7fLaPNawQAMGDNCwYcM0Y8YM13XZ8PBwjRs3Tunp6Zo4caK3S4QPsixLTz31lPLz83X8+HFJUmBgoB5++GHNmjXLy9XBV+3evVuzZ8/W5s2bVVNTo379+umxxx5Tnz59vF1am0dggTp27KhNmzapW7du6ty5s9auXaurrrpKmzdv1ogRI1ReXu7tEuHD6uvrtWvXLtXU1Kh3797q0KGDt0sC4AUsuoXat2/vWrcSFRWl3bt3u/YdPnzYW2XBx7388ss6fvy4AgIC1Lt3bw0YMICwAq+y2+1aunQpdwN5CYEFGjhwoNauXStJGj58uH75y1/qySef1C9+8QsNHDjQy9XBVz300EMKDw/XnXfeqTVr1qihocHbJcHHXXXVVcrJyVFkZKTuuOMO/elPf9LJkye9XZbP4JIQ9MUXX6impkaJiYmqra3VL3/5S61bt049evRQQUGBunbt6u0S4YNOnTql4uJivfLKK/rTn/6k4OBg3XHHHRo3bpwGDRrk7fLgoxobG/Xee+9p5cqV+uMf/yh/f3+NGjVK48aN04033ujt8to0AouPa2ho0IcffqjExER16tTJ2+UAzTp+/Lj++Mc/auXKlXrvvfd0xRVXuF26BLzhxIkT+stf/qInn3xS//jHP5gFPM+4rdnH+fv7a+jQodq+fTuBBcYKDg5WWlqavv76a/3rX//S9u3bvV0SfJzT6dSrr76ql19+WVu2bNGAAQO8XVKbxxoW6Oqrr9YXX3zh7TKAJo4fP67f/e53Gj58uGJiYlRYWKjbbrtNn332mbdLgw+qrq7WSy+9pB//+MeKjY3VwoULdeutt2rnzp366KOPvF1em8clIai4uFg5OTmaNWuW+vfvr/bt27vtDwkJ8VJl8GVjxozRm2++qeDgYP3P//yPxo0bx9NE4VXt2rVT586dNXr0aI0bN07JycneLsmnEFggP79vJ9r+830YlmXJZrNxXRZeMW7cOI0bN05paWny9/f3djmA3n33XQ0ZMsTtv5m4cAgs+M5HSrPyHQDgbSy6heLj4xUbG9vkbaOWZWnv3r1eqgq+aP78+br33nsVFBSk+fPnn7HvlClTLlBV8GX9+vWTw+FQ586ddc0115zxrcwbN268gJX5HgILFB8frwMHDjR5bfpXX32l+Ph4Lgnhgpk3b57GjRunoKAgzZs3r8V+NpuNwIILYsSIEQoMDHT9fKbAgvOLS0KQn5+fKisrdfnll7u1/+tf/1Lv3r1VW1vrpcoAADiNGRYflp2dLen031anTZum4OBg176GhgaVlZUpKSnJS9XB182cOVMPP/yw2/dSkv7973/rmWeeUW5urpcqg69KSEjQxx9/rMsuu8yt/ejRo+rXrx+PhzjPmGHxYTfffLOk04tuU1NTFRAQ4NoXEBCguLg4Pfzww+rRo4e3SoQP8/f3b/ZS5ZEjRxQeHs6lSlxwfn5+cjqdTb6TlZWVio2Ndb1EFucHMyw+7P3335ckZWZm6rnnnuN5KzDKN7fV/7fNmzerS5cuXqgIvurPf/6z6+e3335boaGhrs8NDQ1yOByKj4/3Rmk+hRkWAEbp3LmzbDabqqqqFBIS4hZaGhoaVFNTo/vuu08LFizwYpXwJd88d8Vms+m//8i89NJLFRcXp2effVY/+clPvFGezyCwQD/60Y/OuP9vf/vbBaoEkJYtWybLsvSLX/xChYWFbn+b/eZSJU+8hTfEx8fr448/VlhYmLdL8UlcEoL69u3r9vnkyZPatGmTtm7dqvHjx3upKviqb75z8fHxGjRokC699FIvVwSctmfPHm+X4NOYYUGLpk+frpqaGs2dO9fbpcBHVFdXu9ZSVVdXn7Eva67gDbW1tfrggw9UUVHRZJEtzwY6vwgsaNGuXbs0YMAAffXVV94uBT7iP+8M8vPza3bRLe+4grd8+umnGj58uI4fP67a2lp16dJFhw8fVnBwsMLDw7mt+TzjkhBaVFpaqqCgIG+XAR/yt7/9zXUH0Dd3sQGmeOihh/TTn/5URUVFCg0N1UcffaRLL71UP//5z/XAAw94u7w2jxkW6Gc/+5nbZ8uydODAAX3yySeaNm2a8vLyvFQZAJijU6dOKisr05VXXqlOnTqptLRUvXr1UllZmcaPH6/PP//c2yW2abwjGwoNDXXbunTpoptuuklr1qwhrMBriouLtXbtWtfnBQsWKCkpSXfeeae+/vprL1YGX3XppZe6bnEODw9XRUWFpNP/DeVFsecfMywAjNSnTx89/fTTGj58uP7xj38oOTlZv/zlL/X++++rZ8+eeumll7xdInzM0KFDNWHCBN15553KysrSli1bNGXKFK1YsUJff/21ysrKvF1im0ZggaTT78J47bXXtHv3bj3yyCPq0qWLNm7cqIiICMXExHi7PPigDh06aOvWrYqLi9P06dO1detWvfbaa9q4caOGDx8up9Pp7RLhYz755BMdO3ZMN998sw4ePKiMjAytW7dOPXr00JIlS5o8IgLnFotuoS1btmjIkCHq1KmTysvLlZWVpS5duuiNN95QRUWFli9f7u0S4YMCAgJ0/PhxSdJ7772njIwMSVKXLl2+85Zn4HxITk52/RweHq7i4mIvVuN7WMMCZWdnKzMzUzt37nS7K2j48OH6+9//7sXK4MsGDx6s7OxszZo1S+vXr9ctt9wiSfrnP/+pK664wsvVAbjQmGGBPv74Y/3mN79p0h4TE8O0O7zmhRde0P3336/XXntNCxcudF2a/Otf/6r09HQvVwdfdM011zT7bCCbzaagoCB1795dEyZM0M033+yF6to+AgsUGBjY7BT7P//5T11++eVeqAiQfvCDH+jNN99s0j5v3jwvVANI6enpWrhwofr06aMBAwZIOv0Xvi1btmjChAnatm2b7Ha73njjDY0YMcLL1bY9LLqF7rnnHh05ckS///3v1aVLF23ZskX+/v4aOXKkbrjhBhUWFnq7RPiohoYGrV69Wtu3b5ckXXXVVbr11lvl7+/v5crgi7KysvSDH/xA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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "df['sentiment'] = df['sentiment'].astype('category').cat.codes\n", "df['sentiment'].value_counts(normalize=True).plot(kind='bar');" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 444 }, "id": "M7HswPcdeCkd", "outputId": "ceb470f4-44b7-48aa-be8c-168b770216ae" }, "execution_count": 8, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "df['Time of Tweet'] = df['Time of Tweet'].astype('category').cat.codes\n", "# Convert Country column to categorical variable\n", "df['Country'] = df['Country'].astype('category').cat.codes\n", "# convert Age of User to integer\n", "df['Age of User']=df['Age of User'].replace({'0-20':18,'21-30':25,'31-45':38,'46-60':53,'60-70':65,'70-100':80})" ], "metadata": { "id": "tbthdXH-eIYk" }, "execution_count": 9, "outputs": [] }, { "cell_type": "code", "source": [ "df.info()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "eaL6GXe_eNkD", "outputId": "1e763452-c8a6-4ab4-8e13-750605c9782c" }, "execution_count": 10, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Index: 27480 entries, 0 to 27480\n", "Data columns (total 10 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 textID 27480 non-null object \n", " 1 text 27480 non-null object \n", " 2 selected_text 27480 non-null object \n", " 3 sentiment 27480 non-null int8 \n", " 4 Time of Tweet 27480 non-null int8 \n", " 5 Age of User 27480 non-null int64 \n", " 6 Country 27480 non-null int16 \n", " 7 Population -2020 27480 non-null float64\n", " 8 Land Area (Km²) 27480 non-null float64\n", " 9 Density (P/Km²) 27480 non-null float64\n", "dtypes: float64(3), int16(1), int64(1), int8(2), object(3)\n", "memory usage: 1.8+ MB\n" ] } ] }, { "cell_type": "code", "source": [ "df.drop(columns=['textID','Time of Tweet', 'Age of User', 'Country', 'Population -2020', 'Land Area (Km²)', 'Density (P/Km²)'])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "M5N7UAfKeQ-8", "outputId": "5ff56d5f-ec34-40cb-b04d-150451095f7e" }, "execution_count": 11, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " text \\\n", "0 I`d have responded, if I were going \n", "1 Sooo SAD I will miss you here in San Diego!!! \n", "2 my boss is bullying me... \n", "3 what interview! leave me alone \n", "4 Sons of ****, why couldn`t they put them on t... \n", "... ... \n", "27476 wish we could come see u on Denver husband l... \n", "27477 I`ve wondered about rake to. The client has ... \n", "27478 Yay good for both of you. Enjoy the break - y... \n", "27479 But it was worth it ****. \n", "27480 All this flirting going on - The ATG smiles... \n", "\n", " selected_text sentiment \n", "0 I`d have responded, if I were going 1 \n", "1 Sooo SAD 0 \n", "2 bullying me 0 \n", "3 leave me alone 0 \n", "4 Sons of ****, 0 \n", "... ... ... \n", "27476 d lost 0 \n", "27477 , don`t force 0 \n", "27478 Yay good for both of you. 2 \n", "27479 But it was worth it ****. 2 \n", "27480 All this flirting going on - The ATG smiles. Y... 1 \n", "\n", "[27480 rows x 3 columns]" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
textselected_textsentiment
0I`d have responded, if I were goingI`d have responded, if I were going1
1Sooo SAD I will miss you here in San Diego!!!Sooo SAD0
2my boss is bullying me...bullying me0
3what interview! leave me aloneleave me alone0
4Sons of ****, why couldn`t they put them on t...Sons of ****,0
............
27476wish we could come see u on Denver husband l...d lost0
27477I`ve wondered about rake to. The client has ..., don`t force0
27478Yay good for both of you. Enjoy the break - y...Yay good for both of you.2
27479But it was worth it ****.But it was worth it ****.2
27480All this flirting going on - The ATG smiles...All this flirting going on - The ATG smiles. Y...1
\n", "

27480 rows × 3 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "summary": "{\n \"name\": \"df\",\n \"rows\": 27480,\n \"fields\": [\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27480,\n \"samples\": [\n \" Enjoy! Family trumps everything\",\n \" --of them kinda turns me off of it all. And then I buy more of them and dig a deeper hole, etc. ;;\",\n \"Clive it`s my birthday pat me http://apps.facebook.com/dogbook/profile/view/6386106\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"selected_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 22430,\n \"samples\": [\n \"that is why I drive a (teeny tiny) honda civic\",\n \"Sorry...but, I bet they aren`t that bad...\",\n \"yummy\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sentiment\",\n \"properties\": {\n \"dtype\": \"int8\",\n \"num_unique_values\": 3,\n \"samples\": [\n 1,\n 0,\n 2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 11 } ] }, { "cell_type": "code", "source": [ "def wp(text):\n", " text = text.lower()\n", " text = re.sub('\\[.*?\\]', '', text)\n", " text = re.sub(\"\\\\W\",\" \",text)\n", " text = re.sub('https?://\\S+|www\\.\\S+', '', text)\n", " text = re.sub('<.*?>+', '', text)\n", " text = re.sub('[%s]' % re.escape(string.punctuation), '', text)\n", " text = re.sub('\\n', '', text)\n", " text = re.sub('\\w*\\d\\w*', '', text)\n", " return text" ], "metadata": { "id": "l5b-DFoTeWcO" }, "execution_count": 12, "outputs": [] }, { "cell_type": "code", "source": [ "df['selected_text'] = df[\"selected_text\"].apply(wp)" ], "metadata": { "id": "oqGJZ2Q-eak0" }, "execution_count": 13, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Training and testing split " ], "metadata": { "id": "zbKFLLQqgGg8" } }, { "cell_type": "code", "source": [ "X=df['selected_text']\n", "y= df['sentiment']" ], "metadata": { "id": "he7JiVVbedwU" }, "execution_count": 14, "outputs": [] }, { "cell_type": "code", "source": [ "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2,random_state=42)\n", "print(X_train.shape)\n", "print(X_test.shape)\n", "print(y_train.shape)\n", "print(y_test.shape)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nlBZGR80etR8", "outputId": "356c3a5d-8c69-4401-c722-d864405231f9" }, "execution_count": 15, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(21984,)\n", "(5496,)\n", "(21984,)\n", "(5496,)\n" ] } ] }, { "cell_type": "code", "source": [ "vectorization = TfidfVectorizer()\n", "XV_train = vectorization.fit_transform(X_train)\n", "XV_test = vectorization.transform(X_test)" ], "metadata": { "id": "ZegxViCmexLk" }, "execution_count": 16, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Random forest and boosting methods" ], "metadata": { "id": "9GzfZgWyp7x-" } }, { "cell_type": "markdown", "source": [ "### Random forest" ], "metadata": { "id": "NQdHJSqdvP7y" } }, { "cell_type": "code", "source": [ "rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)\n", "rf_classifier.fit(XV_train, y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "o8UmDP74t5X-", "outputId": "28868d7f-a136-450f-c222-d7e88e5414b9" }, "execution_count": 17, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "RandomForestClassifier(random_state=42)" ], "text/html": [ "
RandomForestClassifier(random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 17 } ] }, { "cell_type": "code", "source": [ "rf_pred = rf_classifier.predict(XV_test)" ], "metadata": { "id": "qv-dWmTCvEym" }, "execution_count": 18, "outputs": [] }, { "cell_type": "code", "source": [ "print(\"Random Forest Accuracy:\", accuracy_score(y_test, rf_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0_LJ9oaVvIqQ", "outputId": "32929fac-ac96-4cc6-dc6b-26a41718b194" }, "execution_count": 19, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Random Forest Accuracy: 0.8133187772925764\n" ] } ] }, { "cell_type": "code", "source": [ "print(\"\\nRandom Forest Classification Report:\")\n", "print(classification_report(y_test, rf_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cHz1Oq_-vMsk", "outputId": "46aacff2-cf7b-4aa6-d7e5-d9b293d16162" }, "execution_count": 20, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Random Forest Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.79 0.76 0.77 1572\n", " 1 0.77 0.90 0.83 2236\n", " 2 0.92 0.76 0.83 1688\n", "\n", " accuracy 0.81 5496\n", " macro avg 0.83 0.80 0.81 5496\n", "weighted avg 0.82 0.81 0.81 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test, rf_pred);" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 454 }, "id": "OhYSgGFP0sYo", "outputId": "5bd9f7b2-5212-4ae4-ceef-564a723f54be" }, "execution_count": 21, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Adaboost boosting method" ], "metadata": { "id": "oXUSaOTGv5vQ" } }, { "cell_type": "code", "source": [ "ada_classifier = AdaBoostClassifier()\n", "ada_classifier.fit(XV_train, y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "uQyf4s8mwItf", "outputId": "e800520c-f383-4839-92ff-660ee0757539" }, "execution_count": 22, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "AdaBoostClassifier()" ], "text/html": [ "
AdaBoostClassifier()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 22 } ] }, { "cell_type": "code", "source": [ "ada_pred = ada_classifier.predict(XV_test)" ], "metadata": { "id": "3jxZikaKwKZ1" }, "execution_count": 23, "outputs": [] }, { "cell_type": "code", "source": [ "print(\"AdaBoost Accuracy:\", accuracy_score(y_test, ada_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "e63DxRLmwO8Q", "outputId": "a7286500-070d-4479-8db8-d9330805cbb7" }, "execution_count": 24, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "AdaBoost Accuracy: 0.6990538573508006\n" ] } ] }, { "cell_type": "code", "source": [ "print(\"\\nAdaBoost Classification Report:\")\n", "print(classification_report(y_test, ada_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "rXLQ2SojwPjc", "outputId": "c4976e68-6453-4c9a-fb22-ae2567b3640a" }, "execution_count": 25, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "AdaBoost Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.55 0.79 0.65 1572\n", " 1 0.76 0.74 0.75 2236\n", " 2 0.89 0.55 0.68 1688\n", "\n", " accuracy 0.70 5496\n", " macro avg 0.73 0.70 0.69 5496\n", "weighted avg 0.74 0.70 0.70 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test, ada_pred);" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "wHQUtlSP10BS", "outputId": "885197ec-e722-4114-bea9-8348002d707c" }, "execution_count": 26, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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2bJFCxOJiIg0Ui4nBGFhYQ6vvby86NChAzNmzGDAgAE1FpiIiIjUHZcSAqvVyl133UW3bt1o1qxZbcUkIiJS8+p4lkFj49KgQm9vbwYMGKCnGoqISKNT148/bmxcnmXQtWtXfvjhh9qIRUREROqJywnBk08+ycMPP8yKFSs4fPgwxcXFDpuIiEiDpSmHZ1TtMQQzZszgr3/9K9dddx0AN954o8MSxoZhYDKZsFqtNR+liIiIuzSGwKlqJwTTp0/nvvvu4/PPP6/NeERERKQeVDshMIyq1Oiqq66qtWBERERqixYmcs6laYfOnnIoIiLSoKnLwCmXEoILLrjgD5OCgoICtwISERGRuudSQjB9+vRTVioUERFpDNRl4JxLCcGIESOIjIysrVhERERqj7oMnKr2OgQaPyAiItJ0uTzLQEREpFFShcCpaicENputNuMQERGpVRpD4JzLjz8WERFplFQhcMrlZxmIiIhI06MKgYiIeAZVCJxSQiAiIh5BYwicU5eBiIiIqEIgIiIeQl0GTikhEBERj6AuA+fUZSAiIiKqEIiIiIdQl4FTSghERMQzKCFwSl0GIiIiogqBiIh4BtMvmzvnN2VKCERExDOoy8ApJQQiIuIRNO3QOY0hEBEREVUIRETEQ6jLwClVCERExHMYbmxn4eDBg9x22200b96cwMBAunXrxpYtW34NxzCYOnUqLVu2JDAwkISEBHbt2uVwjYKCAkaOHInZbCY8PJxRo0ZRUlJydgE5oYRARESkFhw9epTLL78cX19f/vOf//Ddd9/x97//nWbNmtnbzJw5k7lz55KWlsamTZsIDg4mMTGRsrIye5uRI0eyfft20tPTWbFiBevWrWPMmDE1Hq+6DERExCPU9aDCZ599ltjYWBYsWGDfFxcXZ/9/wzCYPXs2jz/+OEOGDAFg0aJFREVFsWzZMkaMGMGOHTtYuXIlmzdvplevXgDMmzeP6667jueff56YmJizv6HfUYVAREQ8gzvdBb/pNiguLnbYysvLT/t2H330Eb169eJPf/oTkZGRXHTRRbz22mv243v37iU3N5eEhAT7vrCwMPr06UNGRgYAGRkZhIeH25MBgISEBLy8vNi0aVMN/FB+pYRARETEBbGxsYSFhdm31NTU07b74YcfePnllzn//PP573//y/3338+DDz7Im2++CUBubi4AUVFR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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Gradient Boosting" ], "metadata": { "id": "FoBXooWoFO1l" } }, { "cell_type": "code", "source": [ "from sklearn.ensemble import GradientBoostingClassifier\n", "# Gradient Boosting Machine (GBM)\n", "gbm_classifier = GradientBoostingClassifier()\n", "gbm_classifier.fit(XV_train, y_train)\n", "y_pred_gbm = gbm_classifier.predict(XV_test)\n", "accuracy_gbm = accuracy_score(y_test, y_pred_gbm)\n", "print(\"\\nGradient Boosting Machine (GBM) Model:\")\n", "print(\"Accuracy:\", accuracy_gbm)\n", "report_gbm = classification_report(y_test, y_pred_gbm)\n", "print(\"Gradient Boosting Machine (GBM) Classification Report:\")\n", "print(report_gbm)\n", "# If you want to display confusion matrix for GBM, you can use:\n", "ConfusionMatrixDisplay.from_predictions(y_test, y_pred_gbm)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 709 }, "id": "nr4_GJesFDyn", "outputId": "5f06e1dc-5892-4625-dda5-fb1bda257dc0" }, "execution_count": 27, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Gradient Boosting Machine (GBM) Model:\n", "Accuracy: 0.7472707423580786\n", "Gradient Boosting Machine (GBM) Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.62 0.78 0.69 1572\n", " 1 0.77 0.82 0.79 2236\n", " 2 0.93 0.62 0.75 1688\n", "\n", " accuracy 0.75 5496\n", " macro avg 0.77 0.74 0.74 5496\n", "weighted avg 0.77 0.75 0.75 5496\n", "\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 27 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGwCAYAAAA0bWYRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABM2ElEQVR4nO3deVxU5f4H8M8ZYIZ92IQBHRE1933Jy801FVyuZdbt5haZSxlaaubyywU1xbTMLK9WN7W6WrZakdfEFU20xMidRFFANhVlZJ3t/P4gxiYYZZyBAc7n/XqdV5xznnPmOxLMl+/znOcRRFEUQURERJIlc3QARERE5FhMBoiIiCSOyQAREZHEMRkgIiKSOCYDREREEsdkgIiISOKYDBAREUmcs6MDsIXRaERWVha8vLwgCIKjwyEiIiuJoojbt28jJCQEMlnN/X1aWloKrVZr833kcjlcXV3tEFHdUq+TgaysLKjVakeHQURENsrIyECTJk1q5N6lpaUIC/VETp7B5nupVCqkpaU1uISgXicDXl5eAIDOH78AJ3eFg6OhmuYd27B++Ogeks46OgKqBXrocBg7Tb/Pa4JWq0VOngFXkprB2+v+qw+a20aEdr8MrVbLZKAuqegacHJXwMmDyUBD5+zcsH746B4EF0dHQLXhjwnxa6Or19NLgKfX/b+OEQ23O7peJwNERETVZRCNMNiwGo9BNNovmDqGyQAREUmCESKMuP9swJZr6zo+WkhERCRxrAwQEZEkGGGELYV+266u25gMEBGRJBhEEQbx/kv9tlxb17GbgIiISOJYGSAiIkngAELLmAwQEZEkGCHCwGSgSuwmICIikjhWBoiISBLYTWAZKwNERCQJFU8T2LJZIyEhASNGjEBISAgEQcCOHTvMzguCUOW2evVqU5tmzZpVOr9y5Uqz+5w8eRJ9+vSBq6sr1Go1Vq1aZfW/DZMBIiKiGlBUVITOnTtj/fr1VZ7Pzs422zZt2gRBEPD444+btVu6dKlZu+nTp5vOaTQaREREIDQ0FElJSVi9ejViYmLw/vvvWxUruwmIiEgSjH9stlwPlH8A/5lCoYBCUXmxvKFDh2Lo0KEW76dSqcz2v/32WwwYMADNmzc3O+7l5VWpbYWtW7dCq9Vi06ZNkMvlaN++PZKTk7FmzRpMmTKlGu+qHCsDREQkCYY/niawZQMAtVoNpVJp2mJjY22OLTc3Fz/88AMmTpxY6dzKlSvh7++Prl27YvXq1dDr9aZziYmJ6Nu3L+RyuelYZGQkUlJScPPmzWq/PisDREQkCQYRNq5aWP7fjIwMeHt7m45XVRWw1kcffQQvLy+MGjXK7PiLL76Ibt26wc/PD0eOHMH8+fORnZ2NNWvWAABycnIQFhZmdk1QUJDpnK+vb7Ven8kAERGRFby9vc2SAXvYtGkTxo4dC1dXV7Pjs2bNMn3dqVMnyOVyPPfcc4iNjbVLElKB3QRERCQJRjtsNeHQoUNISUnBpEmT7tm2V69e0Ov1uHz5MoDycQe5ublmbSr2LY0zqAqTASIikgQjBBhs2IwQaiSuDz/8EN27d0fnzp3v2TY5ORkymQyBgYEAgPDwcCQkJECn05naxMfHo3Xr1tXuIgCYDBAREdWIwsJCJCcnIzk5GQCQlpaG5ORkpKenm9poNBp88cUXVVYFEhMTsXbtWvz222+4dOkStm7dipkzZ2LcuHGmD/oxY8ZALpdj4sSJOHPmDLZv3463337brHuhOjhmgIiIJMEolm+2XG+N48ePY8CAAab9ig/oqKgobNmyBQDw2WefQRRFjB49utL1CoUCn332GWJiYlBWVoawsDDMnDnT7INeqVRi9+7diI6ORvfu3REQEIBFixZZ9VghAAiiWH8XaNZoNFAqlej25Uw4edhvIAXVTcoYN0eHQLXp51OOjoBqgV7U4QC+RUFBgd0H5VWo+Kw4dkYFT6/7L4gX3jaiV/ucGo3VUdhNQEREJHHsJiAiIkmoGAhoy/UNFZMBIiKSBKMowCje/we6LdfWdewmICIikjhWBoiISBLYTWAZkwEiIpIEA2Qw2FAQN9gxlrqGyQAREUmCaOOYAZFjBoiIiKihYmWAiIgkgWMGLGMyQEREkmAQZTCINowZqLfz9d4buwmIiIgkjpUBIiKSBCMEGG34G9iIhlsaYDJARESSwDEDlrGbgIiISOJYGSAiIkmwfQAhuwmIiIjqtfIxAzYsVMRuAiIiImqoWBkgIiJJMNq4NgGfJiAiIqrnOGbAMiYDREQkCUbIOM+ABRwzQEREJHGsDBARkSQYRAEGG5YhtuXauo7JABERSYLBxgGEBnYTEBERUUPFygAREUmCUZTBaMPTBEY+TUBERFS/sZvAMnYTEBERSRwrA0REJAlG2PZEgNF+odQ5TAaIiEgSbJ90qOEW0xvuOyMiIqJqYWWAiIgkwfa1CRru389MBoiISBKMEGCELWMGOAMhERFRvcbKgGVMBhzE6VQJFF/dhFNqGWT5BhQtUEH/d8/yk3oRrh/fgPMvxZDl6CB6yKDv4o7SCf4Q/cu/ZUKuDq6f5sP5txIINw0w+jlB97AXyv7lB7hUzl5lWVp4Ts8AZAI0XzSvzbdKf/GPIb9j+JDfERRYBAC4kq7E1s874viJxvDyLMP40SfRrUsWAgOKUaBR4MgxNT7a1hnFxXLTPaZO+gXt215DaNNbyMhU4oWZwx31dsgK/5qWi4eGFUDdsgzaUhnOHnfHh8uDkXnRFQAQ1ESLj38+V+W1r00JxaE4n1qMlqSkTiQD69evx+rVq5GTk4POnTvjnXfewYMPPujosGqUUGqEIUwBbYQ3PF7LMT9ZZoQstQxlo31haK6AUGiE68ZrcF+SjaJ1agCAU4YWMAIl0wNhCHaB0xUt3NblQSgVUTopwPx+ehFur+dC394NzudKa+kdkiXXbrhj0yddcTXLC4IADB5wCTHzDyJ61jBAAPz9ivHBlu5Iz1AisFERXnz+GPz9SvDaqr5m9/lxTwu0aXUdYc1uOeaNkNU6hRfh+y0B+D3ZHU7OIp6Zl40Vn17C5H6tUVbihGtZLniqczuza4aNu4Enpl7DL/u8HBR1w2H7pEOsDNSY7du3Y9asWdi4cSN69eqFtWvXIjIyEikpKQgMDHR0eDVG39MD+p4eVZ/0cELxisZmh0pfaATPGZkQ8nQQA12g7+EBfY871+uDXVCW6QPFzoJKyYDrxzdgbCKHvguTgbrg2C9NzPa3bO2Cfwz5HW1aX8ePe1pi2ev9TOeyc7ywZWsXzJn5E2QyI4zG8l9GG/7TEwCgVJYyGahHXh1rXpV7c0ZTfH76DB7oVILTxzxhNAq4ec3FrM3fhxYg4XsflBY71WaoDZJRFGC0ZZ6BBrxqocPTnDVr1mDy5MmYMGEC2rVrh40bN8Ld3R2bNm1ydGh1S5ERogCInpZ/IQhFRhj/ct4puRguhwtREt2opiOk+yCTGdGv92UoXPU4dz6gyjYe7loUF7uYEgFqODy8DQCA27eq/rlu2bEYLTuU4sdP/WozLJIgh1YGtFotkpKSMH/+fNMxmUyGQYMGITExsVL7srIylJWVmfY1Gk2txOlwWiPcNt+Arp8n4F71B4IsSwvF9wUomeRvOiZoDHB/Kw/Fs4MsXkeO0Sz0Jtau/BFyuQElpc5YurIf0jN9KrXz9irFmCdP43+7H6j9IKlGCYKI55dcxemf3XElxa3KNkNG5+PK7wqcPW6hikhWMdrYTcBJh2rI9evXYTAYEBQUZHY8KCgIOTk5ldrHxsZCqVSaNrVaXVuhOo5ehHtsDiACJdOq7jYRruvhvjAbut6e0A1Rmo67rcuDtr8nDB2r/kVDjpN51RsvzByOF+cMQdz/WmH2i0fQtMktszbublosW7gf6RlKfPJZJ8cESjVm2oqrCG1TitipoVWel7saMeCxm6wK2FHFqoW2bA1VvXpn8+fPR0FBgWnLyMhwdEg1649EQJanR9HykCr/uhdu6OEx7yoMbV1R8qJ5V4DzbyVQfHUL3v9Ihfc/UuH2dh6EIiO8/5EKl90SqarUUXq9E7JyvJB60R+b/9sVaZd9MXLEedN5N1cdli/eh5ISFyxZ2Q8GQ736UaV7iF6eiV6DNZjzRAtcz5ZX2abP8FtQuInY8wWTAap5Dv0NExAQACcnJ+Tm5podz83NhUqlqtReoVDA29vbbGuwKhKBLB2KVjSG6F25T1G4rofH3KswPKBAycxAQGY+uKXwzSYofFdt2srG+UF0E1D4rhq6cJYd6xJBEOHiUr4MirubFiti9kKnl2Hx8v7Q6ThwrOEQEb08E38fUoA5/2yB3AyFxZaRo/NxdLc3CvIdPs67wTBAsHmzRkJCAkaMGIGQkBAIgoAdO3aYnX/mmWcgCILZNmTIELM2+fn5GDt2LLy9veHj44OJEyeisLDQrM3JkyfRp08fuLq6Qq1WY9WqVVb/2zg0GZDL5ejevTv27t1rOmY0GrF3716Eh4c7MLJaUGKE7GIZZBfLx0DIcvWQXSyDkKcrTwRW5MDpQhmKXwkCDCKEfD2EfD2gK19PW7heXhEQA51ROjEAQoHhTps/GJvKYWymuLP5OwMyAcZmCsCLHzCOMmHcr+jQLhdBgYVoFnoTE8b9ik4dcrH/YNgficA+uLrq8da74XB318HXpwS+PiWQye6smRaiuo3mYfnw8ymFXK5H87B8NA/Lh7OzwYHvjO5l2oqreHjUTayMDkVJoQy+jXTwbaSD3NV8PbyQZmXo+Lci7NrGqoA91XY3QVFRETp37oz169dbbDNkyBBkZ2ebtk8//dTs/NixY3HmzBnEx8cjLi4OCQkJmDJlium8RqNBREQEQkNDkZSUhNWrVyMmJgbvv/++VbE6POWcNWsWoqKi0KNHDzz44INYu3YtioqKMGHCBEeHVqOcLpTCc16Wad/tg+sAAO0gL5SO9YPL0fIJabymmXeFFK4MgaGTO5x/LYZTlg7I0sH76ctmbQp2tqzZ4MkmPj6leGXGEfj5lqC4yAVpV3zx6pKBOPFbMDp1yEHb1uX/L2zZ+K3ZdU9PGYncvPKJqWZMS0TnDnmmcxve2lmpDdU9I565AQB44+uLZsffmKFG/Od3Pvgjn8rH9WwXJB3k3AL12dChQzF06NC7tlEoFFVWwgHg3Llz2LVrF3755Rf06NEDAPDOO+9g2LBheOONNxASEoKtW7dCq9Vi06ZNkMvlaN++PZKTk7FmzRqzpOFeHJ4M/Otf/8K1a9ewaNEi5OTkoEuXLti1a1elQYUNjaGT+10/tO/1ga4b7I2CwdZ1k+gGe0Nn5TVkf2+9a7nqdfK0CpEjx93zHnMWRNgzJKolkSGdq9Vu88pgbF4ZXMPRSI8BsLrU/9frgcpPsikUCigUlrt87ubAgQMIDAyEr68vHn74Ybz22mvw9y9/KiwxMRE+Pj6mRAAABg0aBJlMhmPHjuGxxx5DYmIi+vbtC7n8ztiTyMhIvP7667h58yZ8fX2rFUedGJU0bdo0XLlyBWVlZTh27Bh69erl6JCIiKiBsVc3gVqtNnuyLTY29r7iGTJkCD7++GPs3bsXr7/+Og4ePIihQ4fCYChPO3JycipNvufs7Aw/Pz/TE3c5OTlVPpFXca66HF4ZICIiqg32WqgoIyPDbAD7/VYFnnrqKdPXHTt2RKdOndCiRQscOHAAAwcOvO8470edqAwQERHVF399qu1+k4G/at68OQICApCamgoAUKlUyMvLM2uj1+uRn59vGmegUqmqfCKv4lx1MRkgIiJJECHAaMMm2jDeoDoyMzNx48YNBAeXjxcJDw/HrVu3kJSUZGqzb98+GI1GU3d6eHg4EhISoNPpTG3i4+PRunXrao8XAJgMEBGRRFR0E9iyWaOwsBDJyclITk4GAKSlpSE5ORnp6ekoLCzEK6+8gqNHj+Ly5cvYu3cvHn30UbRs2RKRkZEAgLZt22LIkCGYPHkyfv75Z/z000+YNm0annrqKYSEhAAAxowZA7lcjokTJ+LMmTPYvn073n77bcyaNcuqWJkMEBER1YDjx4+ja9eu6Nq1K4DyR+m7du2KRYsWwcnJCSdPnsQjjzyCVq1aYeLEiejevTsOHTpk1u2wdetWtGnTBgMHDsSwYcPQu3dvszkElEoldu/ejbS0NHTv3h0vv/wyFi1aZNVjhQAHEBIRkUTU9hLG/fv3hyiKFs//+OOP97yHn58ftm3bdtc2nTp1wqFDh6yK7a+YDBARkSQYbFy10JZr67qG+86IiIioWlgZICIiSajtboL6hMkAERFJghEyGG0oiNtybV3XcN8ZERERVQsrA0REJAkGUYDBhlK/LdfWdUwGiIhIEjhmwDImA0REJAnin1YevN/rG6qG+86IiIioWlgZICIiSTBAgMGGxYZsubauYzJARESSYBRt6/c3Wp5ZuN5jNwEREZHEsTJARESSYLRxAKEt19Z1TAaIiEgSjBBgtKHf35Zr67qGm+YQERFRtbAyQEREksAZCC1jMkBERJLAMQOWNdx3RkRERNXCygAREUmCETauTdCABxAyGSAiIkkQbXyaQGQyQEREVL9x1ULLOGaAiIhI4lgZICIiSeDTBJYxGSAiIklgN4FlDTfNISIiomphZYCIiCSBaxNYxmSAiIgkgd0ElrGbgIiISOJYGSAiIklgZcAyJgNERCQJTAYsYzcBERGRxLEyQEREksDKgGVMBoiISBJE2PZ4oGi/UOocJgNERCQJrAxYxjEDREREEsfKABERSQIrA5YxGSAiIklgMmAZuwmIiIgkjpUBIiKSBFYGLGMyQEREkiCKAkQbPtBtubauYzcBERFRDUhISMCIESMQEhICQRCwY8cO0zmdToe5c+eiY8eO8PDwQEhICJ5++mlkZWWZ3aNZs2YQBMFsW7lypVmbkydPok+fPnB1dYVarcaqVausjpXJABERSYIRgs2bNYqKitC5c2esX7++0rni4mKcOHECCxcuxIkTJ/D1118jJSUFjzzySKW2S5cuRXZ2tmmbPn266ZxGo0FERARCQ0ORlJSE1atXIyYmBu+//75VsbKbgIiIJKG2xwwMHToUQ4cOrfKcUqlEfHy82bF3330XDz74INLT09G0aVPTcS8vL6hUqirvs3XrVmi1WmzatAlyuRzt27dHcnIy1qxZgylTplQ7VlYGiIiIrKDRaMy2srIyu9y3oKAAgiDAx8fH7PjKlSvh7++Prl27YvXq1dDr9aZziYmJ6Nu3L+RyuelYZGQkUlJScPPmzWq/NisDREQkCfYaQKhWq82OL168GDExMbaEhtLSUsydOxejR4+Gt7e36fiLL76Ibt26wc/PD0eOHMH8+fORnZ2NNWvWAABycnIQFhZmdq+goCDTOV9f32q9PpMBIiKSBHt1E2RkZJh9YCsUCpvi0ul0ePLJJyGKIjZs2GB2btasWaavO3XqBLlcjueeew6xsbE2v+6fMRkgIiJJsFdlwNvb2ywZsEVFInDlyhXs27fvnvft1asX9Ho9Ll++jNatW0OlUiE3N9esTcW+pXEGVeGYASIiIgeoSAQuXLiAPXv2wN/f/57XJCcnQyaTITAwEAAQHh6OhIQE6HQ6U5v4+Hi0bt262l0EQAOpDHi+6QFnZ1dHh0E17McdWxwdAtWiIaEPOjoEqgWCKAC6e7ezB9HGbgJrqwqFhYVITU017aelpSE5ORl+fn4IDg7GE088gRMnTiAuLg4GgwE5OTkAAD8/P8jlciQmJuLYsWMYMGAAvLy8kJiYiJkzZ2LcuHGmD/oxY8ZgyZIlmDhxIubOnYvTp0/j7bffxltvvWVVrA0iGSAiIroXEYAo2na9NY4fP44BAwaY9iv6/6OiohATE4PvvvsOANClSxez6/bv34/+/ftDoVDgs88+Q0xMDMrKyhAWFoaZM2eajSNQKpXYvXs3oqOj0b17dwQEBGDRokVWPVYIMBkgIiKqEf3794d4l+zjbucAoFu3bjh69Og9X6dTp044dOiQ1fH9GZMBIiKSBCMECFbOIvjX6xsqJgNERCQJXKjIMj5NQEREJHGsDBARkSQYRaH86QUbrm+omAwQEZEkiKKNTxPYcG1dx24CIiIiiWNlgIiIJIEDCC1jMkBERJLAZMAyJgNERCQJHEBoGccMEBERSRwrA0REJAl8msAyJgNERCQJ5cmALWMG7BhMHcNuAiIiIoljZYCIiCSBTxNYxmSAiIgkQfxjs+X6hordBERERBLHygAREUkCuwksYzJARETSwH4Ci5gMEBGRNNhYGUADrgxwzAAREZHEsTJARESSwBkILWMyQEREksABhJaxm4CIiEjiWBkgIiJpEAXbBgE24MoAkwEiIpIEjhmwjN0EREREEsfKABERSQMnHbKIyQAREUkCnyawrFrJwHfffVftGz7yyCP3HQwRERHVvmolAyNHjqzWzQRBgMFgsCUeIiKimtOAS/22qFYyYDQaazoOIiKiGsVuAstsepqgtLTUXnEQERHVLNEOWwNldTJgMBiwbNkyNG7cGJ6enrh06RIAYOHChfjwww/tHiARERHVLKuTgeXLl2PLli1YtWoV5HK56XiHDh3wn//8x67BERER2Y9gh61hsjoZ+Pjjj/H+++9j7NixcHJyMh3v3Lkzzp8/b9fgiIiI7IbdBBZZnQxcvXoVLVu2rHTcaDRCp9PZJSgiIiKqPVYnA+3atcOhQ4cqHf/yyy/RtWtXuwRFRERkd6wMWGT1DISLFi1CVFQUrl69CqPRiK+//hopKSn4+OOPERcXVxMxEhER2Y6rFlpkdWXg0Ucfxffff489e/bAw8MDixYtwrlz5/D9999j8ODBNREjERER1aD7WpugT58+iI+Pt3csRERENYZLGFt23wsVHT9+HOfOnQNQPo6ge/fudguKiIjI7rhqoUVWdxNkZmaiT58+ePDBB/HSSy/hpZdeQs+ePdG7d29kZmbWRIxERET1TkJCAkaMGIGQkBAIgoAdO3aYnRdFEYsWLUJwcDDc3NwwaNAgXLhwwaxNfn4+xo4dC29vb/j4+GDixIkoLCw0a3Py5En06dMHrq6uUKvVWLVqldWxWp0MTJo0CTqdDufOnUN+fj7y8/Nx7tw5GI1GTJo0yeoAiIiIakXFAEJbNisUFRWhc+fOWL9+fZXnV61ahXXr1mHjxo04duwYPDw8EBkZaTbV/9ixY3HmzBnEx8cjLi4OCQkJmDJlium8RqNBREQEQkNDkZSUhNWrVyMmJgbvv/++VbFa3U1w8OBBHDlyBK1btzYda926Nd555x306dPH2tsRERHVCkEs32y5Hij/AP4zhUIBhUJRqf3QoUMxdOjQKu8liiLWrl2LBQsW4NFHHwVQPqlfUFAQduzYgaeeegrnzp3Drl278Msvv6BHjx4AgHfeeQfDhg3DG2+8gZCQEGzduhVarRabNm2CXC5H+/btkZycjDVr1pglDfdidWVArVZXObmQwWBASEiItbcjIiKqHXaaZ0CtVkOpVJq22NhYq0NJS0tDTk4OBg0aZDqmVCrRq1cvJCYmAgASExPh4+NjSgQAYNCgQZDJZDh27JipTd++fc2WB4iMjERKSgpu3rxZ7XisrgysXr0a06dPx/r1600BHj9+HC+99BLeeOMNa29HRERUr2RkZMDb29u0X1VV4F5ycnIAAEFBQWbHg4KCTOdycnIQGBhodt7Z2Rl+fn5mbcLCwirdo+Kcr69vteKpVjLg6+sLQbjTV1JUVIRevXrB2bn8cr1eD2dnZzz77LMYOXJktV6YiIioVtlp0iFvb2+zZKAhqFYysHbt2hoOg4iIqIbVoUcLVSoVACA3NxfBwcGm47m5uejSpYupTV5entl1er0e+fn5putVKhVyc3PN2lTsV7SpjmolA1FRUdW+IREREd1dWFgYVCoV9u7da/rw12g0OHbsGKZOnQoACA8Px61bt5CUlGSay2ffvn0wGo3o1auXqc2rr74KnU4HFxcXAEB8fDxat25d7S4C4D4GEP5ZaWkpNBqN2UZERFQn1fJCRYWFhUhOTkZycjKA8kGDycnJSE9PhyAImDFjBl577TV89913OHXqFJ5++mmEhISYutvbtm2LIUOGYPLkyfj555/x008/Ydq0aXjqqadMA/bHjBkDuVyOiRMn4syZM9i+fTvefvttzJo1y6pYrR5AWFRUhLlz5+Lzzz/HjRs3Kp03GAzW3pKIiKjm1XI3wfHjxzFgwADTfsUHdFRUFLZs2YI5c+agqKgIU6ZMwa1bt9C7d2/s2rULrq6upmu2bt2KadOmYeDAgZDJZHj88cexbt0603mlUondu3cjOjoa3bt3R0BAABYtWmTVY4XAfSQDc+bMwf79+7FhwwaMHz8e69evx9WrV/Hee+9h5cqV1t6OiIioQerfvz/EuyxoIAgCli5diqVLl1ps4+fnh23btt31dTp16oRDhw7dd5zAfSQD33//PT7++GP0798fEyZMQJ8+fdCyZUuEhoZi69atGDt2rE0BERER1QguYWyR1WMG8vPz0bx5cwDlj1fk5+cDAHr37o2EhAT7RkdERGQnFTMQ2rI1VFZXBpo3b460tDQ0bdoUbdq0weeff44HH3wQ33//PXx8fGogRGn4x+DzGBHxO4IalS9AcSXTB//9shN+SW4CAHhj8S50bm/++EhcfCu8/UG4af+FCcfQvnUemqlvIeOqEs/PeaT23gBZdOqoB774dyAunHJHfq4LFn+Yhr8PLTCdLymS4cPlwUj8UQnNTWeo1Fo8OvEa/vF0+ZgczU0nfPKGCicOeiEvSw6lnx5/H1KAqDnZ8PA2mu7z6yFPfLQqGJfPu8LV3YhB/8zHhHnZcLrvtUnJ3sbNuIpxM7PMjmWkumLywI6m/bbdChH1SibadCmCwQBcOuuOV8e3hrbMpvHeRHdl9a+JCRMm4LfffkO/fv0wb948jBgxAu+++y50Oh3WrFlj1b0SEhKwevVqJCUlITs7G998841kJy26nu+BD7d1w9Vsb0AQEdHvIpbM2Y+pc/6BK5nlj4f8sOcBfLS9q+maMq1Tpfv8uP8BtGl5Dc1Dqz8NJdWs0mIZmrcvQeTofCydGFbp/HsxIUj+yQtz3klHkFqLEwe98M78JvAP0iE8UoP8XBfcyHXB5EVZaNqqFHmZcqyb1wQ3cl2w8IPLAICLZ1yxcHxzPPViLl5ZdwU3clywbq4aRoOAKYuzKr0mOc7lFDfMH3tnbReD/s65tt0K8dpHv2P7v4OxYVEoDAYgrG0J7tLtTNaoQ/MM1DVWJwMzZ840fT1o0CCcP38eSUlJaNmyJTp16mTVvSpWdHr22WcxatQoa0NpUI4mqc32N3/WDf+ISEHbB66bkoGyMmfcLHCzeI9/by5/7lTpXcpkoA7p+fBt9Hz4tsXzZ497YPA/89H57+VVoWHjbuCHT/yRkuyO8EgNmrUpxaL/XDa1D2mmxTNzs7FqeigMesDJGTj4nS/C2pZi3Kzy6lHjMC0mLcjC8uebYdzLOXD3NFb10uQABj1w85pLleemLEzHt1sC8fmGO5PQZF6y/DNPZC82FxBDQ0MRGhp6X9febUUnKZMJRvQNvwJXhR5nf29kOv5wn0sY2OcS8m+54WhSE2z9qjPKtKwB13ftehTh6G4lIp/Kh79Kh9+OeOLqJQWeX2I5gSjSOMHd02jqAtBpBbgozD/w5a5GaEtluHDS3ZRokOM1DivD1p+ToS2T4dwJD2x+vQmuZSmg9Nehbbci7P/WH2u+PovgpmXIuOiGj1Y3xpnjXo4Ou0EQYOOqhXaLpO6p1ifJn59pvJcXX3zxvoO5l7KyMpSVlZn2G9okR83UN7Fu+U7IXQwoKXXGkjcGIP2qDwBg3+HmyLvugev57mgeehOTxiZBHaLBkjcH3P2mVOe98NpVvD1HjbHd28PJWYRMJuKl1Rno+LeiKtsX3HDCtrUqDB133XSsR7/b2PFBI+z/xgd9H7mFm3ku2PpW+VSk+blMGOuK88keePPlMGRecoVfoA5jZ1zFG1+cx/MRHRDctPx327gZV/HBcjUunXXHwFE3ELstBc9HdEDWZdd73J3o/lXrt8Rbb71VrZsJglCjyUBsbCyWLFlSY/d3tMwsbzz/ygh4uOvQ52+X8Ur0Yby8eAjSr/pg595WpnaXM3yRf9MNqxfvRnCQBtm5DWvBDKn5dlMAzie5Y8mWSwhsosWpo55Y/3/lYwa69TX/i77otgwLn26Opq1KMf7lHNPx7v1vY9LCLKybp8aqF0PhIjdi7IxcnD7mCYHjzuqM4wd8TF+nnS9PDj7+6ST6/iMf6anlH/Y7twYi/ovyiuDFMx7o+pAGkU9ew+ZV6qpuSdbgo4UWVSsZSEtLq+k4qmX+/PlmUyxqNBqo1Q3nB0RvcELWHx/sF9L80brFDTw27JzZEwMVzqcGAAAaq24zGajHykoEbFkZjEUfXkavQeWVrubtSnHpjBu+3BholgwUF8rw6pgWcPMwYvGHaXD+S7fz489dw6gp15Cf6wxPpQG5mXJsig1BcGgZqG4q0jjjapoCIaGlSD5S/nNckRRUSE91RaPGWkeE1/BwAKFF9epvBoVCYVo6siEuIflXgkyE3KXq6Z1bNCsfIHjjJgcX1Wd6vQC9TgaZzPy3jMxJhPinIQBFt2X4v9Et4CIXsWTLJchdq/6tJAiAv0oPhZuI/d/4olGIFi07ltTkWyAbuLobEBxahvw8OXIz5Lie44ImzUvN2jRuXoa8TIWDIiSpYGdiHfHs6CT8ktwYedc94eaqw8O9L6FzuxzMXz4YwUEaPNw7DT+faAJNoQLNm+bj+ahfcPJsENLS/Uz3CAnSwM1VDz+fEsjlBrQILZ8Q6kqmEnpD5ccQqXaUFMmQlXbnl3lOhhwXT7vBy0ePwCY6dAovxAfLQiB3vYqgJlqcTPTEni/9MGXxVQB3EoGyEhnmvJOG4kInFP9RMFD66+H0x7f2i383Qo8BtyHIgJ92KvH5+kC8uvGK6Tw53qRX03Fsjw/yrirgF6TF+JlZMBgEHPjOD4CAL99TYfzMLFw6546LZ9wx+InrULcowfLnWzg69IaBlQGLHJoMFBYWIjU11bRfsaKTn58fmjZt6sDIap+PshRzog/Dz7cERcVypF3xxfzlg3HiVAga+RehW8dsjBp2Dq4KHa7d8MChY6HY9rX5o5yznj9iNjHRxtXfAwDGRT+O3Guetfp+6I7ff3PHnCdamvbfi2kMABj8ZD5mr03H/A2XsWlFMF6f1hS3bzkjsHH5o4MVkw6lnnLH+RMeAIAJf29ndu+Pjp2FSl1eQv5lvzc+XaeCTiugebsSxGxOu+sjjVT7AlQ6zHvnErx89CjId8aZX7wwc2RbFOSX9/ns2KSCXCHiuYXp8PIx4NI5N/zf2NbITufgQXuwdRbBhjwDoSDebRWFGnbgwAGzFZ0qVKzodC8ajQZKpRJ9wxfA2Zk/LA1d/OdbHB0C1aIhoQ86OgSqBXpRh/26L1BQUFBjXb8VnxXNli+HzPX+PyuMpaW4/OqrNRqrozi0MnCvFZ2IiIjsht0EFt3XAMJDhw5h3LhxCA8Px9Wr5f2an3zyCQ4fPmzX4IiIiOxGtMPWQFmdDHz11VeIjIyEm5sbfv31V9MkQAUFBVixYoXdAyQiIqKaZXUy8Nprr2Hjxo344IMP4OJy50Hnhx56CCdOnLBrcERERPbCJYwts3rMQEpKCvr27VvpuFKpxK1bt+wRExERkf1xBkKLrK4MqFQqs8cBKxw+fBjNmze3S1BERER2xzEDFlmdDEyePBkvvfQSjh07BkEQkJWVha1bt2L27NmYOnVqTcRIRERENcjqboJ58+bBaDRi4MCBKC4uRt++faFQKDB79mxMnz69JmIkIiKyGScdsszqZEAQBLz66qt45ZVXkJqaisLCQrRr1w6enpzhjoiI6jDOM2DRfU86JJfL0a5du3s3JCIiojrN6mRgwIABEATLIyr37dtnU0BEREQ1wtbHA1kZuKNLly5m+zqdDsnJyTh9+jSioqLsFRcREZF9sZvAIquTgbfeeqvK4zExMSgsLLQ5ICIiIqpd97U2QVXGjRuHTZs22et2RERE9sV5Biyy26qFiYmJcLVhaUgiIqKaxEcLLbM6GRg1apTZviiKyM7OxvHjx7Fw4UK7BUZERES1w+pkQKlUmu3LZDK0bt0aS5cuRUREhN0CIyIiotphVTJgMBgwYcIEdOzYEb6+vjUVExERkf3xaQKLrBpA6OTkhIiICK5OSERE9Q6XMLbM6qcJOnTogEuXLtVELEREROQAVicDr732GmbPno24uDhkZ2dDo9GYbURERHUWHyusUrXHDCxduhQvv/wyhg0bBgB45JFHzKYlFkURgiDAYDDYP0oiIiJbccyARdVOBpYsWYLnn38e+/fvr8l4iIiIqJZVOxkQxfKUqF+/fjUWDBERUU3hpEOWWfVo4d1WKyQiIqrT2E1gkVXJQKtWre6ZEOTn59sUEBEREdUuq5KBJUuWVJqBkIiIqD5gN4FlViUDTz31FAIDA2sqFiIioppTy90EzZo1w5UrVyodf+GFF7B+/Xr0798fBw8eNDv33HPPYePGjab99PR0TJ06Ffv374enpyeioqIQGxsLZ2e7rTMIwIpkgOMFiIiIqu+XX34xe9z+9OnTGDx4MP75z3+ajk2ePBlLly417bu7u5u+NhgMGD58OFQqFY4cOYLs7Gw8/fTTcHFxwYoVK+waq9VPExAREdVLdqoM/HWCPYVCAYVCUal5o0aNzPZXrlyJFi1amD2V5+7uDpVKVeXL7d69G2fPnsWePXsQFBSELl26YNmyZZg7dy5iYmIgl8tteDPmqj0DodFoZBcBERHVW/Zam0CtVkOpVJq22NjYe762VqvFf//7Xzz77LNmlfatW7ciICAAHTp0wPz581FcXGw6l5iYiI4dOyIoKMh0LDIyEhqNBmfOnLHfPwzuYwljIiKieslOlYGMjAx4e3ubDldVFfirHTt24NatW3jmmWdMx8aMGYPQ0FCEhITg5MmTmDt3LlJSUvD1118DAHJycswSAQCm/ZycHBveSGVMBoiIiKzg7e1tlgxUx4cffoihQ4ciJCTEdGzKlCmmrzt27Ijg4GAMHDgQFy9eRIsWLewWb3VYvVARERFRvWTLIkU2VBWuXLmCPXv2YNKkSXdt16tXLwBAamoqAEClUiE3N9esTcW+pXEG94vJABERSYK9xgxYa/PmzQgMDMTw4cPv2i45ORkAEBwcDAAIDw/HqVOnkJeXZ2oTHx8Pb29vtGvX7v6CsYDdBERERDXEaDRi8+bNiIqKMpsb4OLFi9i2bRuGDRsGf39/nDx5EjNnzkTfvn3RqVMnAEBERATatWuH8ePHY9WqVcjJycGCBQsQHR1drXEK1mAyQERE0uCAtQn27NmD9PR0PPvss2bH5XI59uzZg7Vr16KoqAhqtRqPP/44FixYYGrj5OSEuLg4TJ06FeHh4fDw8EBUVJTZvAT2wmSAiIgkwRHTEUdERFQ5T49ara40+2BVQkNDsXPnTutf2EocM0BERCRxrAwQEZE0cAlji5gMEBGRNDAZsIjdBERERBLHygAREUmC8Mdmy/UNFZMBIiKSBnYTWMRkgIiIJMERjxbWFxwzQEREJHGsDBARkTSwm8AiJgNERCQdDfgD3RbsJiAiIpI4VgaIiEgSOIDQMiYDREQkDRwzYBG7CYiIiCSOlQEiIpIEdhNYxmSAiIikgd0EFrGbgIiISOIaRGXAqHCC0dnJ0WFQDRs24AlHh0C1KOV9paNDoFpgLCkFptbOa7GbwLIGkQwQERHdE7sJLGIyQERE0sBkwCKOGSAiIpI4VgaIiEgSOGbAMiYDREQkDewmsIjdBERERBLHygAREUmCIIoQxPv/896Wa+s6JgNERCQN7CawiN0EREREEsfKABERSQKfJrCMyQAREUkDuwksYjcBERGRxLEyQEREksBuAsuYDBARkTSwm8AiJgNERCQJrAxYxjEDREREEsfKABERSQO7CSxiMkBERJLRkEv9tmA3ARERkcSxMkBERNIgiuWbLdc3UEwGiIhIEvg0gWXsJiAiIpI4JgNERCQNoh02K8TExEAQBLOtTZs2pvOlpaWIjo6Gv78/PD098fjjjyM3N9fsHunp6Rg+fDjc3d0RGBiIV155BXq9/n7e/V2xm4CIiCRBMJZvtlxvrfbt22PPnj2mfWfnOx+7M2fOxA8//IAvvvgCSqUS06ZNw6hRo/DTTz8BAAwGA4YPHw6VSoUjR44gOzsbTz/9NFxcXLBixYr7fyNVYDJARERUQ5ydnaFSqSodLygowIcffoht27bh4YcfBgBs3rwZbdu2xdGjR/G3v/0Nu3fvxtmzZ7Fnzx4EBQWhS5cuWLZsGebOnYuYmBjI5XK7xcluAiIikgY7dRNoNBqzrayszOJLXrhwASEhIWjevDnGjh2L9PR0AEBSUhJ0Oh0GDRpkatumTRs0bdoUiYmJAIDExER07NgRQUFBpjaRkZHQaDQ4c+aMHf5B7mAyQEREklDxNIEtGwCo1WoolUrTFhsbW+Xr9erVC1u2bMGuXbuwYcMGpKWloU+fPrh9+zZycnIgl8vh4+Njdk1QUBBycnIAADk5OWaJQMX5inP2xG4CIiKSBjvNM5CRkQFvb2/TYYVCUWXzoUOHmr7u1KkTevXqhdDQUHz++edwc3O7/zhqACsDREREVvD29jbbLCUDf+Xj44NWrVohNTUVKpUKWq0Wt27dMmuTm5trGmOgUqkqPV1QsV/VOARbMBkgIiJJsFc3wf0qLCzExYsXERwcjO7du8PFxQV79+41nU9JSUF6ejrCw8MBAOHh4Th16hTy8vJMbeLj4+Ht7Y127drZFsxfsJuAiIikoZZXLZw9ezZGjBiB0NBQZGVlYfHixXBycsLo0aOhVCoxceJEzJo1C35+fvD29sb06dMRHh6Ov/3tbwCAiIgItGvXDuPHj8eqVauQk5ODBQsWIDo6utrViOpiMkBERFQDMjMzMXr0aNy4cQONGjVC7969cfToUTRq1AgA8NZbb0Emk+Hxxx9HWVkZIiMj8e9//9t0vZOTE+Li4jB16lSEh4fDw8MDUVFRWLp0qd1jZTJARESSUNtrE3z22Wd3Pe/q6or169dj/fr1FtuEhoZi586d1r3wfWAyQERE0sBVCy3iAEIiIiKJY2WAiIgkgUsYW8ZkgIiIpKGWnyaoT9hNQEREJHGsDBARkSSwm8AyJgNERCQNRrF8s+X6BorJABERSQPHDFjEMQNEREQSx8oAERFJggAbxwzYLZK6h8kAERFJA2cgtIjdBERERBLHygAREUkCHy20jMkAERFJA58msIjdBERERBLHygAREUmCIIoQbBgEaMu1dR2TASIikgbjH5st1zdQ7CYgIiKSOFYGiIhIEthNYBmTASIikgY+TWARkwEiIpIGzkBoEccMEBERSRwrA0REJAmcgdAyJgN1xIiB5/DIw+cR1KgQAHAl0wef7OiCn0+qAQDBgRo8P/pndGiVBxcXA3452RjvfhyOmxo30z2aqAow5alf0KFVLpydjbiU7ostX3VH8rlgh7wnqtqTY87j732y0KTpbWjLnHDujB82vd8RVzO8TG2mzTqBrt3y4BdQgtISZ5w944/N73VAZoa32b0GRV7GY/+8gMbqQhQXueDwwcb499tda/st0R/cUm7D93+5cL1SDOdbOlyd3gJF3XzuNBBF+O/IhvLgNciKDSh5wBN545tCp3I1NQmbfQouN7Rm9732RGPcHK6q9HouuaUIjTkHURBw8d9dauhdNSDsJrCIyUAdcT3fAx983gNXc7whCEBE7wtYOnMvnlvwKHKve2LVnB9xMd0Ps2OHAAAmPHECr82Kx7QlIyCK5QtrLp8Vj8xcb8yOHYoyrRMeH3IGr70cj/EvP4GbBe6OfHv0Jx06X0fcjub4PcUPTk5GRE06g+WrDuO5CYNRVlr+I5n6uw8O7FEjL9cdXt5ajI06h9dWH8azY4bCaCz/fj/2z9/x2D8vYNN7HXH+nB9cXQ0IUhU58q1JnlBmRJnaDZo+/gh591Kl8747c+ETn4ecSc2gayRHwNdZaLzmAq4sbw/R5U6v7fXHQlDQL8C0b3StokdXLyJ4YxpKHvCEayq/72Qbh44ZiI2NRc+ePeHl5YXAwECMHDkSKSkpjgzJYRJ/bYqff1Pjaq4SmTlKbPqyB0pKndGu5TW0fyAPQY0Kser9PkjL9ENaph9ef68vWoVdR9d2WQAAb89SNAnW4LPvO+FShh+u5irxwfaecFPoEdbkpoPfHf3Zorm9sefHZki/7I20iz5Ys7IHAlXFeKDVne/TrrjmOH2yEfJyPXDxgi8+3tQegUElCPzjw97TU4vxz57Fmyt74sDepsjJ8sTlS0ocOxLiqLdFAIo7KXHj8cYo7O5b+aQowjc+F/kjVCjq5gOt2h05k8PgfFMHzxO3zJoaXWUwKF1Mm6hwqnS7gK+vQhvsitsPVvFaVCXBaPvWUDk0GTh48CCio6Nx9OhRxMfHQ6fTISIiAkVF0s5yZYIRA/52Ca4KPc5eaAS5iwEQAZ3+zi8Erc4JoiigQ6tcAICmUIH0LCUG906Fq0IHmcyIfzx8HjcLXPF7WoCll6I6wMNDBwC4rZFXeV7hqsfgIZeRneWO63nlFZ6uPfIgk4nwDyjBxi278fHnOzF/8VEENCqutbjJOi7XtHAu0KO4/Z2uHqO7E0pbeFT6y97vhxy0mJaMpovPwvd/OYDBvDztdlYDz+M3kTe+aa3E3mBUdBPYsjVQDu0m2LVrl9n+li1bEBgYiKSkJPTt27dS+7KyMpSVlZn2NRpNjcdYm8Ka5OOdxXGQuxhQUuqCxW8PxJUsX9y67YqSMmdM/tcv+PCLHhAEEZOePA4nJxH+PiV/XC3glZVDsHTGHnz//icQRQE3Na6YtzoShcUKh74vskwQRDw37TecOeWPK5eVZueGP3oRzz53Cm5uBmSke+LVV/pAry/P31XBRRAEEf8aex7vvdsZRYUueHriGSx/4xCiJw42taO6w6mgPOnTe7uYHTd4u8D5j3MAcHNwIMpC3WHwcIJbahECvrwK51s6XBtdPn5IVqiH6sPLyJkSBqNb5YoB0f2oU78xCgoKAAB+fn5Vno+NjYVSqTRtarW6NsOrcRnZSkx5dSSiY0bgu31tMHfKIYSG3ETBbTcsfedhhHfNQNwHH+O79/4LT3ctfk/zh/GP8QKAiBejEnHrthtmvDYc0YtH4KekULw2Kx5+Sv61WFe98NKvCA3TYOXSByud27+nKaZPHog5L/XF1QwvzF98DC4uBgCAIBPh4iJi4ztdcOIXFVLO+eP1Zb0Q0rgQnbrm1fbbIDu6FRmEkjZe0KrdUTCgEa79qwl89uZB0JXXqIM2X8Htv/mhpLXXPe5ElYh22BqoOjOA0Gg0YsaMGXjooYfQoUOHKtvMnz8fs2bNMu1rNJoGlRDoDU7IyisvIV64HIDWYdcwKvIs3tr8EJJON8b42f+Et2cpDEYBRcUKfPHOp8jOK/+F0LVdNv7WNQMjnxuL4tLycvOFjwLQvUMWIvpcwGdxnR32vqhqU1/8FQ+G52DOS/1w43rlAZ7FRS4oLnJB1lUvnD/rj8+/+w5/75OFg/vUuHmjfPR5+uU7HwiaAgU0BQo0CiypdC9yPIOyvCLgrNHB4HOnOuCk0aFMbXmAb2kLDwgGwPm6FrpgV7ifuw1Z8i347irvIsQfj8s9MDEJuVGh0PRlt6AlnI7YsjqTDERHR+P06dM4fPiwxTYKhQIKhXRK3jIZTH8JVtAUln8IdGmXBR/vEhw5Ud5n6KrQA8CfKgXlRBGQmR8ihxMx9cVkhPfOwryZfZGb43HvSwQREO78/3D2tD8AoEnTQlMi4emlhbeyDHm5fHKkLtI1kkOvdIb72dsoa1r+PZKVGOB6sQgFAxpZvE6RXgxRAAze5b+uMxa0Nls9z/PXW/DdmYOMV9tA7+ti4S5Ed1cnkoFp06YhLi4OCQkJaNKkiaPDcYiJTx7Hz781Qd4ND7i76vDw3y+hc5tszFsdCQCI7PM70rN8cOu2K9q3zEP0uGP4ald7ZOaU9zOfuRCIwiI55j6XgE92dIFW64xh/VOgalSIo79J89+0rnphRjL6D8zA0gXhKCl2ga9vKQCgqMgFWq0TVMGF6DsgEyeOB6HglgIBjUrwz9Ep0JY54Zdj5c+aX830QuLhYDw37Te882Y3FBc545nJp5GZ4YWTv1r+YKGaJZQaIM+7M67J5VoZFOnFMHg4Q+8vx83BQfD7PhvaIAV0AQoEfHMVel8XFP4xF4FraiFcLxWhuI0XRFcnuF4sRKNPM6EJ94PRo/zXtTbEzew19ZeLAEGAton5caoC5xmwyKHJgCiKmD59Or755hscOHAAYWFhjgzHoXy9SzDvuQT4+RSjqESOS+m+mLc6EkmnGwMA1MEFmPRkErw8y5B7zRNbv+uML3e1N12vKSwfLPjsE0l4c94uODkbcSXTB4veGohL6f6OeltUhX88Wv78+aq1CWbH16zsjj0/NoNW64T2Ha/j0cdT4emlxa2brjh9MgAvT++Pglt3Jqd5I7YnpkSfREzsTxCNAk79FoCFc3rDYKhTQ4EkxfVyMdSv/27aD/wsEwBQ8JA/cic1w81hQZBpjQjacqV80qFWnrg66wHTHAOiswxex27Cf0c2BL0RukYK3IwIxK3IIIe8nwZHhFlV5b6ub6AEUXRcqvPCCy9g27Zt+Pbbb9G6dWvTcaVSCTe3e2e5Go0GSqUSvfsvhrOz6z3bU/2myCxwdAhUi87NU967EdV7xpJSZE5dgoKCAnh7e9/7gvtQ8VnxcNd5cHa6/88KvaEU+35dWaOxOopD/4TYsGEDCgoK0L9/fwQHB5u27du3OzIsIiIiSXF4NwEREVGtEGHjmAG7RVLn1IkBhERERDWOAwgt4kgjIiIiiWNlgIiIpMEIwJZ5VxrwQkVMBoiISBI4A6Fl7CYgIiKqAbGxsejZsye8vLwQGBiIkSNHIiUlxaxN//79IQiC2fb888+btUlPT8fw4cPh7u6OwMBAvPLKK9Dr9XaNlZUBIiKShloeQHjw4EFER0ejZ8+e0Ov1+L//+z9ERETg7Nmz8PC4Mw355MmTsXTpUtO+u/udKcUNBgOGDx8OlUqFI0eOIDs7G08//TRcXFywYsWK+38vf8FkgIiIpKGWk4Fdu3aZ7W/ZsgWBgYFISkpC3759Tcfd3d2hUqmqvMfu3btx9uxZ7NmzB0FBQejSpQuWLVuGuXPnIiYmBnK53Pr3UQV2ExAREVlBo9GYbWVlZfe+CEBBQfksqn5+fmbHt27dioCAAHTo0AHz589HcfGdZecTExPRsWNHBAXdmZI6MjISGo0GZ86cscO7KcfKABERSYOdKgNqtdrs8OLFixETE3PXS41GI2bMmIGHHnoIHTp0MB0fM2YMQkNDERISgpMnT2Lu3LlISUnB119/DQDIyckxSwQAmPZzcnLu/738BZMBIiKSBjs9WpiRkWG2NoFCobjnpdHR0Th9+jQOHz5sdnzKlCmmrzt27Ijg4GAMHDgQFy9eRIsWLWwI1jrsJiAiIkmoeLTQlg0AvL29zbZ7JQPTpk1DXFwc9u/fjyZN7r6kfK9evQAAqampAACVSoXc3FyzNhX7lsYZ3A8mA0RERDVAFEVMmzYN33zzDfbt24ewsLB7XpOcnAwACA4OBgCEh4fj1KlTyMvLM7WJj4+Ht7c32rVrZ7dY2U1ARETSUMtPE0RHR2Pbtm349ttv4eXlZerjVyqVcHNzw8WLF7Ft2zYMGzYM/v7+OHnyJGbOnIm+ffuiU6dOAICIiAi0a9cO48ePx6pVq5CTk4MFCxYgOjq6Wt0T1cVkgIiIpMEoAoINyYDRums3bNgAoHxioT/bvHkznnnmGcjlcuzZswdr165FUVER1Go1Hn/8cSxYsMDU1snJCXFxcZg6dSrCw8Ph4eGBqKgos3kJ7IHJABERUQ0Q71FJUKvVOHjw4D3vExoaip07d9orrCoxGSAiImngEsYWMRkgIiKJsDEZQMNNBvg0ARERkcSxMkBERNLAbgKLmAwQEZE0GEXYVOq38mmC+oTdBERERBLHygAREUmDaCzfbLm+gWIyQERE0sAxAxYxGSAiImngmAGLOGaAiIhI4lgZICIiaWA3gUVMBoiISBpE2JgM2C2SOofdBERERBLHygAREUkDuwksYjJARETSYDQCsGGuAGPDnWeA3QREREQSx8oAERFJA7sJLGIyQERE0sBkwCJ2ExAREUkcKwNERCQNnI7YIiYDREQkCaJohGjDyoO2XFvXMRkgIiJpEEXb/rrnmAEiIiJqqFgZICIiaRBtHDPQgCsDTAaIiEgajEZAsKHfvwGPGWA3ARERkcSxMkBERNLAbgKLmAwQEZEkiEYjRBu6CRryo4XsJiAiIpI4VgaIiEga2E1gEZMBIiKSBqMICEwGqsJuAiIiIoljZYCIiKRBFAHYMs9Aw60MMBkgIiJJEI0iRBu6CUQmA0RERPWcaIRtlQE+WkhEREQNFCsDREQkCewmsIzJABERSQO7CSyq18lARZam15c5OBKqDU4Gfp+lxFhS6ugQqBYYS8p/rmvjr249dDbNOaSHzn7B1DGCWI/rHpmZmVCr1Y4Og4iIbJSRkYEmTZrUyL1LS0sRFhaGnJwcm++lUqmQlpYGV1dXO0RWd9TrZMBoNCIrKwteXl4QBMHR4dQajUYDtVqNjIwMeHt7OzocqkH8XkuHVL/Xoiji9u3bCAkJgUxWc2PaS0tLodVqbb6PXC5vcIkAUM+7CWQyWY1lkvWBt7e3pH5pSBm/19Ihxe+1Uqms8ddwdXVtkB/i9sJHC4mIiCSOyQAREZHEMRmohxQKBRYvXgyFQuHoUKiG8XstHfxekyPV6wGEREREZDtWBoiIiCSOyQAREZHEMRkgIiKSOCYDREREEsdkoJ5Zv349mjVrBldXV/Tq1Qs///yzo0OiGpCQkIARI0YgJCQEgiBgx44djg6JakhsbCx69uwJLy8vBAYGYuTIkUhJSXF0WCQxTAbqke3bt2PWrFlYvHgxTpw4gc6dOyMyMhJ5eXmODo3srKioCJ07d8b69esdHQrVsIMHDyI6OhpHjx5FfHw8dDodIiIiUFRU5OjQSEL4aGE90qtXL/Ts2RPvvvsugPK1GdRqNaZPn4558+Y5ODqqKYIg4JtvvsHIkSMdHQrVgmvXriEwMBAHDx5E3759HR0OSQQrA/WEVqtFUlISBg0aZDomk8kwaNAgJCYmOjAyIrKngoICAICfn5+DIyEpYTJQT1y/fh0GgwFBQUFmx4OCguyyLCcROZ7RaMSMGTPw0EMPoUOHDo4OhySkXq9aSETUkERHR+P06dM4fPiwo0MhiWEyUE8EBATAyckJubm5Zsdzc3OhUqkcFBUR2cu0adMQFxeHhIQESS/NTo7BboJ6Qi6Xo3v37ti7d6/pmNFoxN69exEeHu7AyIjIFqIoYtq0afjmm2+wb98+hIWFOTokkiBWBuqRWbNmISoqCj169MCDDz6ItWvXoqioCBMmTHB0aGRnhYWFSE1NNe2npaUhOTkZfn5+aNq0qQMjI3uLjo7Gtm3b8O2338LLy8s0BkipVMLNzc3B0ZFU8NHCeubdd9/F6tWrkZOTgy5dumDdunXo1auXo8MiOztw4AAGDBhQ6XhUVBS2bNlS+wFRjREEocrjmzdvxjPPPFO7wZBkMRkgIiKSOI4ZICIikjgmA0RERBLHZICIiEjimAwQERFJHJMBIiIiiWMyQEREJHFMBoiIiCSOyQAREZHEMRkgstEzzzyDkSNHmvb79++PGTNm1HocBw4cgCAIuHXrlsU2giBgx44d1b5nTEwMunTpYlNcly9fhiAISE5Otuk+RFRzmAxQg/TMM89AEAQIggC5XI6WLVti6dKl0Ov1Nf7aX3/9NZYtW1atttX5ACciqmlcqIgarCFDhmDz5s0oKyvDzp07ER0dDRcXF8yfP79SW61WC7lcbpfX9fPzs8t9iIhqCysD1GApFAqoVCqEhoZi6tSpGDRoEL777jsAd0r7y5cvR0hICFq3bg0AyMjIwJNPPgkfHx/4+fnh0UcfxeXLl033NBgMmDVrFnx8fODv7485c+bgr8t7/LWboKysDHPnzoVarYZCoUDLli3x4Ycf4vLly6bFiHx9fSEIgmlhGqPRiNjYWISFhcHNzQ2dO3fGl19+afY6O3fuRKtWreDm5oYBAwaYxVldc+fORatWreDu7o7mzZtj4cKF0Ol0ldq99957UKvVcHd3x5NPPomCggKz8//5z3/Qtm1buLq6ok2bNvj3v/9tdSxE5DhMBkgy3NzcoNVqTft79+5FSkoK4uPjERcXB51Oh8jISHh5eeHQoUP46aef4OnpiSFDhpiue/PNN7FlyxZs2rQJhw8fRn5+Pr755pu7vu7TTz+NTz/9FOvWrcO5c+fw3nvvwdPTE2q1Gl999RUAICUlBdnZ2Xj77bcBALGxsfj444+xceNGnDlzBjNnzsS4ceNw8OBBAOVJy6hRozBixAgkJydj0qRJmDdvntX/Jl5eXtiyZQvOnj2Lt99+Gx988AHeeustszapqan4/PPP8f3332PXrl349ddf8cILL5jOb926FYsWLcLy5ctx7tw5rFixAgsXLsRHH31kdTxE5CAiUQMUFRUlPvroo6IoiqLRaBTj4+NFhUIhzp4923Q+KChILCsrM13zySefiK1btxaNRqPpWFlZmejm5ib++OOPoiiKYnBwsLhq1SrTeZ1OJzZp0sT0WqIoiv369RNfeuklURRFMSUlRQQgxsfHVxnn/v37RQDizZs3TcdKS0tFd3d38ciRI2ZtJ06cKI4ePVoURVGcP3++2K5dO7Pzc+fOrXSvvwIgfvPNNxbPr169Wuzevbtpf/HixaKTk5OYmZlpOva///1PlMlkYnZ2tiiKotiiRQtx27ZtZvdZtmyZGB4eLoqiKKalpYkAxF9//dXi6xKRY3HMADVYcXFx8PT0hE6ng9FoxJgxYxATE2M637FjR7NxAr/99htSU1Ph5eVldp/S0lJcvHgRBQUFyM7ORq9evUznnJ2d0aNHj0pdBRWSk5Ph5OSEfv36VTvu1NRUFBcXY/DgwWbHtVotunbtCgA4d+6cWRwAEB4eXu3XqLB9+3asW7cOFy9eRGFhIfR6Pby9vc3aNG3aFI0bNzZ7HaPRiJSUFHh5eeHixYuYOHEiJk+ebGqj1+uhVCqtjoeIHIPJADVYAwYMwIYNGyCXyxESEgJnZ/P/3T08PMz2CwsL0b17d2zdurXSvRo1anRfMbi5uVl9TWFhIQDghx9+MPsQBsrHQdhLYmIixo4diyVLliAyMhJKpRKfffYZ3nzzTatj/eCDDyolJ05OTnaLlYhqFpMBarA8PDzQsmXLarfv1q0btm/fjsDAwEp/HVcIDg7GsWPH0LdvXwDlfwEnJSWhW7duVbbv2LEjjEYjDh48iEGDBlU6X1GZMBgMpmPt2rWDQqFAenq6xYpC27ZtTYMhKxw9evTeb/JPjhw5gtDQULz66qumY1euXKnULj09HVlZWQgJCTG9jkwmQ+vWrREUFISQkBBcunQJY8eOter1iaju4ABCoj+MHTsWAQEBePTRR3Ho0CGkpaXhwIEDePHFF5GZmQkAeOmll7By5Urs2LED58+fxwsvvHDXOQKaNWuGqKgoPPvss9ixY4fpnp9//jkAIDQ0FIIgIC4uDteuXUNhYSG8vLwwe/ZszJw5Ex999BEuXryIEydO4J133jENynv++edx4cIFvPLKK0hJScG2bduwZcsWq97vAw88gPT0dHz22We4ePEi1q1bV+VgSFdXV0RFReG3337DoUOH8OKLL+LJJ5+ESqUCACxZsgSxsbFYt24dfv/9d5w6dQqbN2/GmjVrrIqHiByHyQDRH9zd3ZGQkICmTZti1KhRaNu2LSZOnIjS0lJTpeDll1/G+PHjERUVhfDwcHh5eeGxxx676303bNiAJ554Ai+88ALatGmDyZMno6ioCADQuHFjLFmyBPPmzUNQUBCmTZsGAFi2bBkWLlyI2NhYtG3bFkOGDMEPP/yAsLAwAOX9+F999RV27NiBzp07Y+PGjVixYoVV7/eRRx7BzJkzMW3aNHTp0gVHjhzBwoULK7Vr2bIlRo0ahWHDhiEiIgKdOnUye3Rw0qRJ+M9//oPNmzejY8eO6NevH7Zs2WKKlYjqPkG0NPKJiIiIJIGVASIiIoljMkBERCRxTAaIiIgkjskAERGRxDEZICIikjgmA0RERBLHZICIiEjimAwQERFJHJMBIiIiiWMyQEREJHFMBoiIiCTu/wGmfz/yxRy8WwAAAABJRU5ErkJggg==\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### LightGBM" ], "metadata": { "id": "wDptOcP6GcC-" } }, { "cell_type": "code", "source": [ "import lightgbm as lgb\n", "from sklearn.metrics import accuracy_score, classification_report, ConfusionMatrixDisplay\n", "\n", "# LightGBM\n", "lgb_classifier = lgb.LGBMClassifier()\n", "lgb_classifier.fit(XV_train, y_train)\n", "y_pred_lgb = lgb_classifier.predict(XV_test)\n", "accuracy_lgb = accuracy_score(y_test, y_pred_lgb)\n", "print(\"\\nLightGBM Model:\")\n", "print(\"Accuracy:\", accuracy_lgb)\n", "report_lgb = classification_report(y_test, y_pred_lgb)\n", "print(\"LightGBM Classification Report:\")\n", "print(report_lgb)\n", "# If you want to display confusion matrix for LightGBM, you can use:\n", "ConfusionMatrixDisplay.from_predictions(y_test, y_pred_lgb)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 848 }, "id": "9VO7PbdNGJWu", "outputId": "5f7422cf-36a4-4fab-ce27-1ae2bf078049" }, "execution_count": 62, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.108072 seconds.\n", "You can set `force_row_wise=true` to remove the overhead.\n", "And if memory is not enough, you can set `force_col_wise=true`.\n", "[LightGBM] [Info] Total Bins 29568\n", "[LightGBM] [Info] Number of data points in the train set: 21984, number of used features: 805\n", "[LightGBM] [Info] Start training from score -1.264315\n", "[LightGBM] [Info] Start training from score -0.906401\n", "[LightGBM] [Info] Start training from score -1.159663\n", "\n", "LightGBM Model:\n", "Accuracy: 0.7967612809315866\n", "LightGBM Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.71 0.80 0.75 1572\n", " 1 0.80 0.85 0.82 2236\n", " 2 0.91 0.72 0.80 1688\n", "\n", " accuracy 0.80 5496\n", " macro avg 0.80 0.79 0.79 5496\n", "weighted avg 0.81 0.80 0.80 5496\n", "\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 62 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGwCAYAAAA0bWYRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMcklEQVR4nO3de1wU9foH8M+ysMt1l4tyU0TUQklBIyMqUdNA81ge6/QrrShvpWCmaeopFTXFtKws0y5e8hxNOye1Io+JlmKJlhjeUkpFQbmpCAso7LIzvz+ItQ1WWXeXhZ3P+/Wa13FmvjP7rHtyn32e78zIRFEUQURERJLlZO8AiIiIyL6YDBAREUkckwEiIiKJYzJAREQkcUwGiIiIJI7JABERkcQxGSAiIpI4Z3sHYAlBEFBQUAAvLy/IZDJ7h0NERGYSRREVFRUIDg6Gk5Ptfp9WV1dDq9VafB6FQgFXV1crRNSytOpkoKCgACEhIfYOg4iILJSfn4/27dvb5NzV1dUIC/VEUYne4nMFBgYiNzfX4RKCVp0MeHl5AQC6rZkIubvSztGQrQWk2DsCak76E7/bOwRqBrXQ4QdsM/x7bgtarRZFJXqcy+oIldetVx80FQJCo89Cq9UyGWhJ6lsDcnclkwEJcJbbOwJqTjKZi71DoObwxw3xm6PV6+klg6fXrb+OAMdtR7fqZICIiKip9KIAvQVP49GLgvWCaWGYDBARkSQIECHg1rMBS45t6XhpIRERkcSxMkBERJIgQIAlhX7Ljm7ZmAwQEZEk6EURevHWS/2WHNvSsU1AREQkcawMEBGRJHACoWlMBoiISBIEiNAzGWgU2wREREQSx8oAERFJAtsEpjEZICIiSeDVBKaxTUBERCRxrAwQEZEkCH8slhzvqJgMEBGRJOgtvJrAkmNbOiYDREQkCXoRFj610HqxtDScM0BERCRxrAwQEZEkcM6AaUwGiIhIEgTIoIfMouMdFdsEREREEsfKABERSYIg1i2WHO+omAwQEZEk6C1sE1hybEvHNgEREZHEsTJARESSwMqAaUwGiIhIEgRRBkG04GoCC45t6dgmICIisoGMjAwMHToUwcHBkMlk2Lp1q9F+mUzW6LJkyRLDmI4dOzbYv2jRIqPzHDlyBH369IGrqytCQkKwePFis2NlZYCIiCShudsEVVVViIqKwqhRozB8+PAG+wsLC43W//e//2H06NF49NFHjbbPmzcPY8eONax7eXkZ/qzRaBAfH4+BAwdi5cqVOHr0KEaNGgVvb2+MGzeuybEyGSAiIknQwwl6CwriejPHDx48GIMHDza5PzAw0Gj9yy+/RP/+/dGpUyej7V5eXg3G1lu/fj20Wi1Wr14NhUKBO+64A9nZ2Vi6dKlZyQDbBEREJAniH3MGbnUR/5gzoNFojJaamhqLYysuLsY333yD0aNHN9i3aNEi+Pn5oVevXliyZAlqa2sN+zIzMxEXFweFQmHYlpCQgJycHFy5cqXJr89kgIiIyAwhISFQq9WGJTU11eJzfvrpp/Dy8mrQTnjxxRexceNGfP/993j++eexcOFCvPLKK4b9RUVFCAgIMDqmfr2oqKjJr882ARERSYK15gzk5+dDpVIZtiuVSotjW716NUaOHAlXV1ej7VOmTDH8OTIyEgqFAs8//zxSU1Ot8rr1mAwQEZEk6EUn6EUL5gz8cTtilUpllAxYau/evcjJycGmTZtuOjYmJga1tbU4e/YswsPDERgYiOLiYqMx9eum5hk0hm0CIiIiO1q1ahWio6MRFRV107HZ2dlwcnKCv78/ACA2NhYZGRnQ6XSGMenp6QgPD4ePj0+TY2AyQEREkiBABgFOFizmtRgqKyuRnZ2N7OxsAEBubi6ys7ORl5dnGKPRaPCf//wHY8aMaXB8ZmYm3nnnHRw+fBhnzpzB+vXrMXnyZDz11FOGL/oRI0ZAoVBg9OjROH78ODZt2oR3333XqL3QFGwTEBGRJDT3fQYOHjyI/v37G9brv6ATExOxdu1aAMDGjRshiiKefPLJBscrlUps3LgRKSkpqKmpQVhYGCZPnmz0Ra9Wq7Fjxw4kJSUhOjoabdq0wezZs826rBAAZKIottqHMmo0GqjVanTfNBVyd+tNpKCWKXCmvSOg5qQ/nmPvEKgZ1Io67MaXKC8vt2of/s/qvyu+OtIZHl7yWz5PVYUeD0eetmms9sLKABERSYLlEwhb7W/nm2IyQEREklA3Z8CCBxU58FMLOYGQiIhI4lgZICIiSRAsfDaBALYJiIiIWjXOGTCNyQAREUlC/f0Cbv14x00GOGeAiIhI4lgZICIiSdCLMuhFC246ZMGxLR2TASIikgS9hRMI9WwTEBERkaNiZYCIiCRBEJ0gWHA1gcCrCYiIiFo3tglMY5uAiIhI4lgZICIiSRBg2RUBgvVCaXGYDBARkSRYftMhxy2mO+47IyIioiZhZYCIiCTB8mcTOO7vZyYDREQkCQJkEGDJnAHegZCIiKhVY2XANCYDduJy7CrctpTC+XQ15KV6lP8zGNp7vOp21orw+PclKLIqIS/SQfBwgi7KA1XPtIXgd/0j8x1zGvKSWqPzVj7TBtce86tb0Qrw+qC47jXytdD29oTm1XbN9RbJhMefOIF77z+P9iEV0NbIceJXP6z+JBIXzqsAAP4BVVj7728aPXbh/Fj8kBECAIjqVYynE4+hY1g5qqudsSs9FJ+u7gFBcNx/sBzN48nFGP3PImz5uA1WzmkHL+9aPD21CHf2rYR/sBblpc7Yt12NTxcH4mqF3N7hkgNrEcnA8uXLsWTJEhQVFSEqKgrvvfce7r77bnuHZVOyGgG1YUpUD1RDnVrQYJ/z6Wpc/T8/1HZ0haxSD89PSqBacB5lSzsaja0a4YdrCd6GddHtT18EAiAqZLj2Nx8o91XY8N2QObpHXkTaV13wW44v5HIRiaOOYsGiDDw/ZhBqqp1x6aIbRj4+1OiYQUPO4NF/5ODgT4EAgLBOZZj3+l5s/Kwb3lp8N/zaXEPypCw4OYlY9VFPO7wrMtftUVcx5KlSnDnuatjmG6CDX0AtPp4XhLzfXOHfXosXF52HX4AOr4/raL9gHYTlNx1y3ETb7u9s06ZNmDJlCubMmYNDhw4hKioKCQkJKCkpsXdoNqWN9sTVp9pCG+vVYJ/oIUf5/BDU3K+Cvr0CtV3dUPm8P1xO1cDpos54rJsTRB9nwwLXP32krk6onBCI6gRvCD4tIu8jALP/GYedO8KQd06N3DPeWLqkN/wDruK2264AAATBCVeuuBkt9953AXv3hKC62gUAENcvD7m5anz27ztQWOCFY0f8sfrjKPzt4dNwc9Pd6OWpBXB112P6++fwzrT2qCi//ov/XI4b5o/tiAPpahSeU+Lwj15Y+0YQYh7UwEnuuHe/ay6CKLN4cVR2TwaWLl2KsWPH4rnnnkNERARWrlwJd3d3rF692t6htSiyKgGiDBA9jD8y9y9K4Tfyd3hPOgu3zaWAnv9gtDYeHnVf3hUVikb3d7mtFJ27lGHH9jDDNhcXAVqtcdlYWyOHUqlHlz+SCmq5khdewE+7VPhlb8MfA3/lodLjaqUTBL3jfhGR/dn156JWq0VWVhZmzpxp2Obk5ISBAwciMzOzwfiamhrU1NQY1jUaTbPEaXdaAR6fXkRNnBdE9+tfANf+5oPazq4QPJ3gcrIaHusuwulKLapG+9sxWDKHTCbi+fHZOH6sDc6dVTc6Jn5QLvLOqXDi1zaGbVkHA/HI339H3/552LunPXx8qjHiqeMAAF+/6maJnW5N30euoEuPa5j40G03HavyrcWIl4rxv3/7NUNkjk+wsE3Amw7ZyKVLl6DX6xEQEGC0PSAgAEVFRQ3Gp6amQq1WG5aQkJDmCtV+akWoFhcAIlA53vjv6dowX+h6uEMf5orqwd6oGuUPt7QrgM6Rb5rpWCZMPITQjuVYtOCeRvcrFLXo90Aevv1TVQAAfskKxOqPI5E8KQtfbvsCH6/5H37+KQgAIPLjb7HaBmsxfl4B3kjuAF3Njf/5dffUY/66XOT95op/vRXYTBE6tvqnFlqyOKpW1UieOXMmpkyZYljXaDSOnRD8kQjIS2pR9nqIUVWgMbpwV8j0gLy4Fvr2jZecqeUYn3wId8cU4JWX++PyJfdGx9wfdx5KpR670kMb7NvyRTi2fHE7fP2qUVnhgoDAq3huzFEUFnraOnS6RV0ir8GnbS2Wf/ubYZvcGehxTxUefu4S/tYxEoIgg5uHHgs2nMG1KifMHd0R+lq2CMi27JoMtGnTBnK5HMXFxUbbi4uLERjYMBNWKpVQKpXNFZ591ScCBVqULQiBqLr5ZUXOZ2ogOgGCNy9BatlEjE/+BbH3XcCMqf1QXGT6yzt+UC4OZAZDU+5qYoQMpZfdAAB9++ehpMQdp095Wz9ksorsvZ4Y1/92o20vv52P/FOu+Hx5WwiCDO6edYmATivDnGfDblpBoKbTQwa9BTcOsuTYls6uyYBCoUB0dDR27dqFYcOGAQAEQcCuXbuQnJxsz9Bs75oAeaHWsCov1kF+phqilxyCjzNUiwrgfKYa5bPaAQIgu1J3PwHRUw64yOB88hpccq5BG+kO0a1uzoDnqhLU9FXVjak/b14NUCtCVqmH7JoA+Zm6frK+k6kvF7K1CRMPod8DeZg35z5cu+oMH59rAICqKhdotdf/kwwKrkD3Hhcx59U+jZ7n0X+cRNbPgRBEGe67/zz+8X8nsej1WN5noAW7ViXHuRw3o23VV51QcaVuu7unHgs/OwOlm4DFEzvC3VMPd089AKD8sjMEwXG/jJqDpaV+tglsaMqUKUhMTMRdd92Fu+++G++88w6qqqrw3HPP2Ts0m3I5VQ3vV/MN656rLgIAqh9QoerJNlD+VAkA8J10zui4sgUh0PVwB1xkUO6tgPvGy5DpROgDXHD1YR9cG+ZjNF4977zRjYl8X6o738Wvwm3yvujm/vbwaQDA4rd2G21fuqQ3du64PjcgflAuLl1yx6GsxvvFd/Uuwv+NOAEXFwG5Z9SYP+c+HPw5yGZxk+116XEN3aKvAgDWZp402vfM3d1QfJ7tP7INmSiKdr8W7f333zfcdKhnz55YtmwZYmJibnqcRqOBWq1G901TIXeXSPtAwgJn3nwMOQ798Rx7h0DNoFbUYTe+RHl5OVQqlU1eo/67YvaBgXD1dLnl81RX6jAvZqdNY7UXu1cGACA5Odnx2wJERGRXbBOY1iKSASIiIlvjg4pMc9x3RkRERE3CygAREUmCCBkECy4PFHlpIRERUevGNoFpjvvOiIiIqElYGSAiIkmw9DHEjvwIYyYDREQkCXoLn1poybEtneO+MyIiImoSJgNERCQJ9W0CSxZzZGRkYOjQoQgODoZMJsPWrVuN9j/77LOQyWRGy6BBg4zGlJaWYuTIkVCpVPD29sbo0aNRWVlpNObIkSPo06cPXF1dERISgsWLF5v9d8NkgIiIJEGAk8WLOaqqqhAVFYXly5ebHDNo0CAUFhYals8++8xo/8iRI3H8+HGkp6cjLS0NGRkZGDdunGG/RqNBfHw8QkNDkZWVhSVLliAlJQUfffSRWbFyzgAREZENDB48GIMHD77hGKVSicDAxh9GduLECWzfvh0///wz7rrrLgDAe++9h4ceeghvvvkmgoODsX79emi1WqxevRoKhQJ33HEHsrOzsXTpUqOk4WZYGSAiIknQizKLF6Du1/ifl5qamluOaffu3fD390d4eDjGjx+Py5cvG/ZlZmbC29vbkAgAwMCBA+Hk5IQDBw4YxsTFxUGhuP5Ey4SEBOTk5ODKlStNjoPJABERSYK15gyEhIRArVYbltTU1FuKZ9CgQVi3bh127dqFN954A3v27MHgwYOh1+sBAEVFRfD39zc6xtnZGb6+vigqKjKMCQgIMBpTv14/pinYJiAiIkkQLXxqofjHsfn5+UaPMFYqlbd0vieeeMLw5x49eiAyMhKdO3fG7t27MWDAgFuO81awMkBERGQGlUpltNxqMvBXnTp1Qps2bXDq1CkAQGBgIEpKSozG1NbWorS01DDPIDAwEMXFxUZj6tdNzUVoDJMBIiKSBD1kFi+2dP78eVy+fBlBQUEAgNjYWJSVlSErK8sw5rvvvoMgCIiJiTGMycjIgE6nM4xJT09HeHg4fHx8mvzaTAaIiEgSBNHSeQPmvV5lZSWys7ORnZ0NAMjNzUV2djby8vJQWVmJadOmYf/+/Th79ix27dqFRx55BF26dEFCQgIAoFu3bhg0aBDGjh2Ln376CT/++COSk5PxxBNPIDg4GAAwYsQIKBQKjB49GsePH8emTZvw7rvvYsqUKWbFymSAiIjIBg4ePIhevXqhV69eAIApU6agV69emD17NuRyOY4cOYKHH34Yt99+O0aPHo3o6Gjs3bvXqO2wfv16dO3aFQMGDMBDDz2E+++/3+geAmq1Gjt27EBubi6io6Px8ssvY/bs2WZdVghwAiEREUmEYOEEQnOP7devH0TRdDnh22+/vek5fH19sWHDhhuOiYyMxN69e82K7a+YDBARkSQIkEGwoO9vybEtHdsEREREEsfKABERScKf7yJ4q8c7KiYDREQkCc09Z6A1cdx3RkRERE3CygAREUmCgOvPF7jV4x0VkwEiIpIE0cKrCUQmA0RERK3bn588eKvHOyrOGSAiIpI4VgaIiEgSeDWBaUwGiIhIEtgmMM1x0xwiIiJqElYGiIhIEvhsAtOYDBARkSSwTWAa2wREREQSx8oAERFJAisDpjEZICIiSWAyYBrbBERERBLHygAREUkCKwOmMRkgIiJJEGHZ5YGi9UJpcZgMEBGRJLAyYBrnDBAREUkcKwNERCQJrAyYxmSAiIgkgcmAaWwTEBERSRwrA0REJAmsDJjGZICIiCRBFGUQLfhCt+TYlo5tAiIiIoljZYCIiCRBgMyimw5ZcmxLx2SAiIgkgXMGTGObgIiISOJYGSAiIkngBELTmAwQEZEksE1gGpMBIiKSBFYGTOOcASIiIolziMpAwD91cJYzr3F02/ZstncI1IwGd7rH3iFQM3ASnYDq5nkt0cI2gSNXBhwiGSAiIroZEYAoWna8o+LPaSIiIoljZYCIiCRBgAwy3oGwUawMEBGRJNRfTWDJYo6MjAwMHToUwcHBkMlk2Lp1q2GfTqfD9OnT0aNHD3h4eCA4OBjPPPMMCgoKjM7RsWNHyGQyo2XRokVGY44cOYI+ffrA1dUVISEhWLx4sdl/N0wGiIiIbKCqqgpRUVFYvnx5g31Xr17FoUOHMGvWLBw6dAibN29GTk4OHn744QZj582bh8LCQsMyceJEwz6NRoP4+HiEhoYiKysLS5YsQUpKCj766COzYmWbgIiIJEEQZZBZ4aZDGo3GaLtSqYRSqWwwfvDgwRg8eHCj51Kr1UhPTzfa9v777+Puu+9GXl4eOnToYNju5eWFwMDARs+zfv16aLVarF69GgqFAnfccQeys7OxdOlSjBs3rsnvjZUBIiKSBFG0fAGAkJAQqNVqw5KammqV+MrLyyGTyeDt7W20fdGiRfDz80OvXr2wZMkS1NbWGvZlZmYiLi4OCoXCsC0hIQE5OTm4cuVKk1+blQEiIiIz5OfnQ6VSGdYbqwqYq7q6GtOnT8eTTz5pdO4XX3wRd955J3x9fbFv3z7MnDkThYWFWLp0KQCgqKgIYWFhRucKCAgw7PPx8WnS6zMZICIiSbDW7YhVKpXRF7aldDodHn/8cYiiiBUrVhjtmzJliuHPkZGRUCgUeP7555GammqVJKQe2wRERCQJzX01QVPUJwLnzp1Denr6TZOMmJgY1NbW4uzZswCAwMBAFBcXG42pXzc1z6AxTAaIiEgS6p9aaMliTfWJwO+//46dO3fCz8/vpsdkZ2fDyckJ/v7+AIDY2FhkZGRAp9MZxqSnpyM8PLzJLQKAbQIiIiKbqKysxKlTpwzrubm5yM7Ohq+vL4KCgvDYY4/h0KFDSEtLg16vR1FREQDA19cXCoUCmZmZOHDgAPr37w8vLy9kZmZi8uTJeOqppwxf9CNGjMDcuXMxevRoTJ8+HceOHcO7776Lt99+26xYmQwQEZEk/PmKgFs93hwHDx5E//79Dev1/f/ExESkpKTgq6++AgD07NnT6Ljvv/8e/fr1g1KpxMaNG5GSkoKamhqEhYVh8uTJRvMI1Go1duzYgaSkJERHR6NNmzaYPXu2WZcVAkwGiIhIIuqSAUsmEJo3vl+/fhBvcNCN9gHAnXfeif3799/0dSIjI7F3717zgvsLzhkgIiKSOFYGiIhIEqx1aaEjYjJARESSIP6xWHK8o2KbgIiISOJYGSAiIklgm8A0JgNERCQN7BOYxGSAiIikwdJbCjtwZYBzBoiIiCSOlQEiIpKE5r4DYWvCZICIiCSBEwhNY5uAiIhI4lgZICIiaRBllk0CdODKAJMBIiKSBM4ZMI1tAiIiIoljZYCIiKSBNx0yickAERFJAq8mMK1JycBXX33V5BM+/PDDtxwMERERNb8mJQPDhg1r0slkMhn0er0l8RAREdmOA5f6LdGkZEAQBFvHQUREZFNsE5hm0dUE1dXV1oqDiIjItkQrLA7K7GRAr9dj/vz5aNeuHTw9PXHmzBkAwKxZs7Bq1SqrB0hERES2ZXYysGDBAqxduxaLFy+GQqEwbO/evTs++eQTqwZHRERkPTIrLI7J7GRg3bp1+OijjzBy5EjI5XLD9qioKJw8edKqwREREVkN2wQmmZ0MXLhwAV26dGmwXRAE6HQ6qwRFREREzcfsZCAiIgJ79+5tsP2///0vevXqZZWgiIiIrI6VAZPMvgPh7NmzkZiYiAsXLkAQBGzevBk5OTlYt24d0tLSbBEjERGR5fjUQpPMrgw88sgj+Prrr7Fz5054eHhg9uzZOHHiBL7++ms8+OCDtoiRiIiIbOiWnk3Qp08fpKenWzsWIiIim+EjjE275QcVHTx4ECdOnABQN48gOjraakERERFZHZ9aaJLZycD58+fx5JNP4scff4S3tzcAoKysDPfeey82btyI9u3bWztGIiIisiGz5wyMGTMGOp0OJ06cQGlpKUpLS3HixAkIgoAxY8bYIkYiIiLL1U8gtGRxUGZXBvbs2YN9+/YhPDzcsC08PBzvvfce+vTpY9XgiIiIrEUm1i2WHO+ozE4GQkJCGr25kF6vR3BwsFWCIiIisjrOGTDJ7DbBkiVLMHHiRBw8eNCw7eDBg5g0aRLefPNNqwZHREREttekyoCPjw9ksuu9kqqqKsTExMDZue7w2tpaODs7Y9SoURg2bJhNAiUiIrIIbzpkUpOSgXfeecfGYRAREdkY2wQmNSkZSExMtHUcREREZCe3fNMhAKiuroZWqzXaplKpLAqIiIjIJlgZMMnsCYRVVVVITk6Gv78/PDw84OPjY7QQERG1SM381MKMjAwMHToUwcHBkMlk2Lp1q3E4oojZs2cjKCgIbm5uGDhwIH7//XejMaWlpRg5ciRUKhW8vb0xevRoVFZWGo05cuQI+vTpA1dXV4SEhGDx4sXmBYpbSAZeeeUVfPfdd1ixYgWUSiU++eQTzJ07F8HBwVi3bp3ZARARETmiqqoqREVFYfny5Y3uX7x4MZYtW4aVK1fiwIED8PDwQEJCAqqrqw1jRo4ciePHjyM9PR1paWnIyMjAuHHjDPs1Gg3i4+MRGhqKrKwsLFmyBCkpKfjoo4/MitXsNsHXX3+NdevWoV+/fnjuuefQp08fdOnSBaGhoVi/fj1Gjhxp7imJiIhsr5mvJhg8eDAGDx7c+KlEEe+88w5ee+01PPLIIwCAdevWISAgAFu3bsUTTzyBEydOYPv27fj5559x1113AQDee+89PPTQQ3jzzTcRHByM9evXQ6vVYvXq1VAoFLjjjjuQnZ2NpUuXGiUNN2N2ZaC0tBSdOnUCUDc/oLS0FABw//33IyMjw9zTERERNYv6OxBasgB1v8b/vNTU1JgdS25uLoqKijBw4EDDNrVajZiYGGRmZgIAMjMz4e3tbUgEAGDgwIFwcnLCgQMHDGPi4uKgUCgMYxISEpCTk4MrV640OR6zKwOdOnVCbm4uOnTogK5du+Lzzz/H3Xffja+//trw4CIy3+Mjc3BvXAHad6iEtsYJJ475YfWHd+BCvlcjo0XMW5yJu2KKMf/VGGT+0PDOj16qGixf9R3a+FfjH0OGoKpS0ch5qDkc3e+B/3zgj9+PuqO02AVzVuXi3sHlhv1XLjpj1YJgZO3xQlW5HN3vqUTS6+fRrtP1ybnaahk+mhuM3V/5QFcjQ3S/CkxMPQ+ftrVGr7Vjky82f9QW588o4e6pR9zfypCceqHZ3ivdmJOTiJGTzuOBYZfh01aL0mIF0r9oi8/eDwZw/VdnSOdrGDU9Dz1iKiCXi8g75YbXJ9yGiwVK+wVPBiEhIUbrc+bMQUpKilnnKCoqAgAEBAQYbQ8ICDDsKyoqgr+/v9F+Z2dn+Pr6Go0JCwtrcI76fU2dy2d2MvDcc8/h8OHD6Nu3L2bMmIGhQ4fi/fffh06nw9KlS806V0ZGBpYsWYKsrCwUFhZiy5Ytkr1pUfeoS0jb0gm/nfSBXC4icexxLHjzRzyfOBA11cYf07B/nL7pc7VfeuUX5J5Ro41/9Y0Hks1VX3VCpzuuIeHJUswbbfwfrSgCc0eFQe4sImXNGbh7Ctj8UVvM+L8u+HjPSbi6CwCAlSnt8NNOFV778Cw8VHosf7U95o3uiLe/OmU41xcftsUXH7bFmNcK0PXOq6i+6oTifCaBLck/XijAkJEleGtaJ5z7zR23R1Zi8htnUFUhx1efBgIAgjpU483Pf8W3n7fFv99pj6uVcnS47Rq0NWYXcumvrHQ1QX5+vtGVc0pl60/SzE4GJk+ebPjzwIEDcfLkSWRlZaFLly6IjIw061z1kytGjRqF4cOHmxuKQ5n9yn1G60tTo7Hxq2247fYyHDvSxrC9U5cyDH/8d0x6vj/Wb/lfo+d66JEz8PDU4bNPu6L3PcU2jZturvcDFej9QEWj+y6cUeJElgc+/P4kOobXJW4TF53HE1F34Pst3hg8shRVGid8+5kvZiw/h573180inrI0D2P7dsOJLHd0i76KijI5Pn0jCHM/PYNefa7PNO4UwWSwJel2ZyX27/TBz9/X/VoruaBE36GXER51/TNLfDkfP+9WY/UbHQzbCvNcmz1WMk2lUll8GX1gYF3yV1xcjKCgIMP24uJi9OzZ0zCmpKTE6Lja2lqUlpYajg8MDERxsfG/8/Xr9WOawuJUMzQ0FMOHDzc7EQDqJle8/vrr+Pvf/25pGA7Hw7PuYVAVFdd/2SmVtXhl1kF88E4UrpQ2/o9DSKgGIxJP4q2F0RAc+JpYR6HT1pWGFUrBsM3JCXBRiDj+sycA4Pcj7qjVORl9yXe4rQb+7bQ4keUBADiU4QVBBC4VuWBMXFeMjI7A68+HouSCSzO+G7qZE4c80fPecrQLuwYACOtahTvuqsDBPd4AAJlMRO/+ZbiQ64bX157EZz9l4e3NxxD7YKkdo3YcMlg4Z8CKsYSFhSEwMBC7du0ybNNoNDhw4ABiY2MBALGxsSgrK0NWVpZhzHfffQdBEBATE2MYk5GRYfQAwfT0dISHh5t1uX+TKgPLli1r8glffPHFJo81V01NjdFEDY1GY7PXsieZTMTzyUdw/IgvzuVezz7HJh/FiWO+2P9j40+HdHbRY/rsn7FqRXdcLHFHYHBVc4VMtyikSzX822mxOjUIk944D1f3ujbBpUIFSovr/vMsLXGGi0KAp1pvdKx3Wx1KS+rGFJ1TQBSAjcsCMH7+BXh46bH2jSDMfKIzVu7KgYuCmWFL8PmKYLh76vFR+hEIehmc5CI+fas9vv+yrvrn7aeDu6eAx18owKdL22P1GyGI7luO11b8jhkjuuHoT7ypW2tSWVmJU6eut/Jyc3ORnZ0NX19fdOjQAS+99BJef/113HbbbQgLC8OsWbMQHBxsaJd369YNgwYNwtixY7Fy5UrodDokJyfjiSeeMDwleMSIEZg7dy5Gjx6N6dOn49ixY3j33Xfx9ttvmxVrk5KBpp5UJpPZNBlITU3F3LlzbXb+lmLC5MMIDavA1Ilxhm0x9xYi6s6LmDjmAZPHPTfuOPLPeeH79A4mx1DL4uwCzF6Vi6VTOuCxiB5wkovo1acCvR/Q3HReyJ8JIlCrc8KE+RcQ3a+uJTFzxVk8GdUdh/d54q5+jbcpqHnFDSlF/4cvY/FLXXDudzd06laF52flobRYgZ2b20L2R602c6cPtq6uKx2fOeGBiDsr8NDIEiYDlmrmSwsPHjyI/v37G9anTJkCoO4W/2vXrsUrr7yCqqoqjBs3DmVlZbj//vuxfft2uLper/yuX78eycnJGDBgAJycnPDoo48a/UBXq9XYsWMHkpKSEB0djTZt2mD27NlmXVYINDEZyM3NNeuktjJz5kzDXyZQVxn466zO1m78pMO4O7YIr0zsg8sX3Qzbo+68iKDgKvwnLc1o/D/nHcDxI20w46U+iOx1CR07leP+vlvrdv5xHczGL7dh47/DsX5Nt+Z6G2SG2yKvYcXOHFRpnKDTyeDtp8eLQ27D7ZFXAQC+/rXQaZ1QWS43qg6UXXSBr3+tYQwAdLj9+hwBbz89VL61bBW0IKNn5OHzD4OwJ80PAHA2xx3+7bR4fHwBdm5uC80VZ9TqZMj73c3ouPzTboiIZkJnsWa+HXG/fv0g3iCrl8lkmDdvHubNm2dyjK+vLzZs2HDD14mMjMTevXvNC+4vLHo2QXNTKpUOMWuzcSLGTzqC2D4FmDGpD4qLPIz2/mfD7fj2m45G21as3YWPl0fiwI91k0QWzL4byj/1nm/vegWTZxzCtBf7oPCCp83fAVnGQ1X32V04o8Dvh92ROK3u0qHbIq/C2UXALz94os+QuksS808pUXJBgW7Rda2gO3rX/e/500q0Da7rHWquyKEpdUZAO91fX4rsROkmQBSMf10KAgwVgVqdE3474oH2na4ZjWnXsRolvKyQbKhVJQOObMLkw+g34DzmvXoPrl1zho9v3S+8qkoXaLVyXCl1bXTS4MViN0PiUFRg/IWvUtfNr8g/58X7DNjRtSonFORe/4e8KF+B08fc4OVdC//2OmR8rYbaTw//dlrknnDFytntETuo3FDu91AJSHiyFB+ltIOXtx4eXnWXFnaLrkK36LrqQfvONYhNKMeK2e0waXE+PLwErF4YhPZdqhF1H39RthQHdnnjiQkXUFKgwLnf3NHljioMH1WEHf9taxjzxcdBmLHsFI79VILD+1W4K64MMQOuYPqICDtG7iD4oCKT7JoM3GxyhZT8bVhdK2bxMuNSz9LUO7Fze6g9QiIr+e2wO155rIth/cOUdgCABx8vxdR38lBa7IIPU9qh7JIzfP1rMfAfpRjxkvGlQi+kXICTTMT8sR2hq5Hhrn4VSE49bzRm2rJz+HBOO8x+phNkTkDkPZVYsP4MnNklaDFWzO2IZ6acR9K8s/D206G0WIFtn/ljw3vtDGP27fDF+7M64vHxBXhhzlmcP1N3w6HjBxu7ARmZ4893EbzV4x2VTLxRQ8PGdu/ebTS5ol795Iqb0Wg0UKvVGNB5EpzlLKE5um17Nts7BGpGgzvdY+8QqBnUilp8V/05ysvLLb5235T674qOCxbAyfXW79kgVFfj7Kuv2jRWe7FrZeBmkyuIiIishm0Ck27ppkN79+7FU089hdjYWFy4UHff83/961/44YcfrBocERGR1YhWWByU2cnAF198gYSEBLi5ueGXX34x3ASovLwcCxcutHqAREREZFtmJwOvv/46Vq5ciY8//hguLtdnJt133304dOiQVYMjIiKyFms9wtgRmT1nICcnB3FxcQ22q9VqlJWVWSMmIiIi62vmOxC2JmZXBgIDA40uB6z3ww8/oFOnTlYJioiIyOo4Z8Aks5OBsWPHYtKkSThw4ABkMhkKCgqwfv16TJ06FePHj7dFjERERGRDZrcJZsyYAUEQMGDAAFy9ehVxcXFQKpWYOnUqJk6caIsYiYiILMabDplmdjIgk8nw6quvYtq0aTh16hQqKysREREBT0/e+56IiFow3mfApFu+6ZBCoUBEBO+VTURE1NqZnQz0798fMpnpGZXfffedRQERERHZhKWXB7IycF3Pnj2N1nU6HbKzs3Hs2DEkJiZaKy4iIiLrYpvAJLOTgbfffrvR7SkpKaisrLQ4ICIiImpet/RsgsY89dRTWL16tbVOR0REZF28z4BJVntqYWZmJlwteDQkERGRLfHSQtPMTgaGDx9utC6KIgoLC3Hw4EHMmjXLaoERERFR8zA7GVCr1UbrTk5OCA8Px7x58xAfH2+1wIiIiKh5mJUM6PV6PPfcc+jRowd8fHxsFRMREZH18WoCk8yaQCiXyxEfH8+nExIRUavDRxibZvbVBN27d8eZM2dsEQsRERHZgdnJwOuvv46pU6ciLS0NhYWF0Gg0RgsREVGLxcsKG9XkOQPz5s3Dyy+/jIceeggA8PDDDxvdllgURchkMuj1eutHSUREZCnOGTCpycnA3Llz8cILL+D777+3ZTxERETUzJqcDIhiXUrUt29fmwVDRERkK7zpkGlmXVp4o6cVEhERtWhsE5hkVjJw++233zQhKC0ttSggIiIial5mJQNz585tcAdCIiKi1oBtAtPMSgaeeOIJ+Pv72yoWIiIi22GbwKQm32eA8wWIiIgck9lXExAREbVKrAyY1ORkQBAEW8ZBRERkU5wzYJrZjzAmIiJqlVgZMMnsZxMQERGRY2FlgIiIpIGVAZOYDBARkSRwzoBpbBMQERHZQMeOHSGTyRosSUlJAIB+/fo12PfCCy8YnSMvLw9DhgyBu7s7/P39MW3aNNTW1lo9VlYGiIhIGpq5TfDzzz9Dr9cb1o8dO4YHH3wQ//jHPwzbxo4di3nz5hnW3d3dDX/W6/UYMmQIAgMDsW/fPhQWFuKZZ56Bi4sLFi5ceOvvoxFMBoiISBKs1SbQaDRG25VKJZRKZYPxbdu2NVpftGgROnfubPT0X3d3dwQGBjb6ejt27MCvv/6KnTt3IiAgAD179sT8+fMxffp0pKSkQKFQ3Pqb+Qu2CYiIiMwQEhICtVptWFJTU296jFarxb///W+MGjXK6I6+69evR5s2bdC9e3fMnDkTV69eNezLzMxEjx49EBAQYNiWkJAAjUaD48ePW/U9sTJARETSYKU2QX5+PlQqlWFzY1WBv9q6dSvKysrw7LPPGraNGDECoaGhCA4OxpEjRzB9+nTk5ORg8+bNAICioiKjRACAYb2oqMiCN9IQkwEiIpIGKyUDKpXKKBloilWrVmHw4MEIDg42bBs3bpzhzz169EBQUBAGDBiA06dPo3PnzhYEaj62CYiIiGzo3Llz2LlzJ8aMGXPDcTExMQCAU6dOAQACAwNRXFxsNKZ+3dQ8g1vFZICIiCRBZoXlVqxZswb+/v4YMmTIDcdlZ2cDAIKCggAAsbGxOHr0KEpKSgxj0tPToVKpEBERcYvRNI5tAiIikgY73IFQEASsWbMGiYmJcHa+/pV7+vRpbNiwAQ899BD8/Pxw5MgRTJ48GXFxcYiMjAQAxMfHIyIiAk8//TQWL16MoqIivPbaa0hKSmrSPAVzMBkgIiJJsMcdCHfu3Im8vDyMGjXKaLtCocDOnTvxzjvvoKqqCiEhIXj00Ufx2muvGcbI5XKkpaVh/PjxiI2NhYeHBxITE43uS2AtTAaIiIhsJD4+HqLYMIsICQnBnj17bnp8aGgotm3bZovQjDAZICIiaeCDikxiMkBERNLhwF/oluDVBERERBLHygAREUkCH2FsGpMBIiKSBs4ZMIltAiIiIoljZYCIiCSBbQLTmAwQEZE0sE1gEtsEREREEucYlQFnOSCX2zsKsrEhMX+zdwjUjM5/Zt4jYql10l+tAUY0z2uxTWCaYyQDREREN8M2gUlMBoiISBqYDJjEOQNEREQSx8oAERFJAucMmMZkgIiIpIFtApPYJiAiIpI4VgaIiEgSZKIImXjrP+8tObalYzJARETSwDaBSWwTEBERSRwrA0REJAm8msA0JgNERCQNbBOYxDYBERGRxLEyQEREksA2gWlMBoiISBrYJjCJyQAREUkCKwOmcc4AERGRxLEyQERE0sA2gUlMBoiISDIcudRvCbYJiIiIJI6VASIikgZRrFssOd5BMRkgIiJJ4NUEprFNQEREJHGsDBARkTTwagKTmAwQEZEkyIS6xZLjHRXbBERERBLHygAREUkD2wQmMRkgIiJJ4NUEpjEZICIiaeB9BkzinAEiIiIbSElJgUwmM1q6du1q2F9dXY2kpCT4+fnB09MTjz76KIqLi43OkZeXhyFDhsDd3R3+/v6YNm0aamtrrR4rKwNERCQJ9mgT3HHHHdi5c6dh3dn5+tfu5MmT8c033+A///kP1Go1kpOTMXz4cPz4448AAL1ejyFDhiAwMBD79u1DYWEhnnnmGbi4uGDhwoW3/kYawWSAiIikwQ4TCJ2dnREYGNhge3l5OVatWoUNGzbggQceAACsWbMG3bp1w/79+3HPPfdgx44d+PXXX7Fz504EBASgZ8+emD9/PqZPn46UlBQoFAoL3owxtgmIiIjMoNFojJaamhqTY3///XcEBwejU6dOGDlyJPLy8gAAWVlZ0Ol0GDhwoGFs165d0aFDB2RmZgIAMjMz0aNHDwQEBBjGJCQkQKPR4Pjx41Z9T0wGiIhIEurbBJYsABASEgK1Wm1YUlNTG329mJgYrF27Ftu3b8eKFSuQm5uLPn36oKKiAkVFRVAoFPD29jY6JiAgAEVFRQCAoqIio0Sgfn/9Pmtim4CIiKTBSlcT5OfnQ6VSGTYrlcpGhw8ePNjw58jISMTExCA0NBSff/453Nzcbj0OG2BlgIiIyAwqlcpoMZUM/JW3tzduv/12nDp1CoGBgdBqtSgrKzMaU1xcbJhjEBgY2ODqgvr1xuYhWILJABERSYK12gS3qrKyEqdPn0ZQUBCio6Ph4uKCXbt2Gfbn5OQgLy8PsbGxAIDY2FgcPXoUJSUlhjHp6elQqVSIiIiwLJi/YJuAiIikoZmvJpg6dSqGDh2K0NBQFBQUYM6cOZDL5XjyySehVqsxevRoTJkyBb6+vlCpVJg4cSJiY2Nxzz33AADi4+MRERGBp59+GosXL0ZRURFee+01JCUlNbka0VRMBoiIiGzg/PnzePLJJ3H58mW0bdsW999/P/bv34+2bdsCAN5++204OTnh0UcfRU1NDRISEvDBBx8YjpfL5UhLS8P48eMRGxsLDw8PJCYmYt68eVaPlckAERFJQnPfdGjjxo033O/q6orly5dj+fLlJseEhoZi27Zt5r3wLWAyQERE0iCIdYslxzsoJgNERCQNfISxSbyagIiISOJYGSAiIkmQwcI5A1aLpOVhMkBERNJgpTsQOiK2CYiIiCSOlQEiIpKE5r60sDVhMkBERNLAqwlMYpuAiIhI4lgZICIiSZCJImQWTAK05NiWjskAERFJg/DHYsnxDoptAiIiIoljZYCIiCSBbQLTmAwQEZE08GoCk5gMEBGRNPAOhCZxzgAREZHEsTJARESSwDsQmsZkoIV4/MmTuPf+C2jfoQLaGjlO/OqH1R/1wIXzXkbjukZcRuKoYwjvWgpBkOHMaW+8Nr0PtFq50ThnFz3efv87dO5SjuRxA3HmtHczvhu6kX8knsK9/YrQPrSy7rM+6oM173fFhTxPwxgXhR5jJp1A3IMFcHERcOhAW3ywuDvKSpUAgLDbNPjHM6cREVUKlVqLkkI3bNsSiq82hdnrbREAxfEqeG69DJfT1ZBfqUXpjPaojlHV7awV4bWhBK5ZlZAXayG6y1ET5QHN0/4QfF0AAPISLTw/vwTl0SrIy2qh93HGtb5qVDzWFnCpe2ae4lgVPL66DMWpasiu6qEPUqByWBtc66u219tuPdgmMInJQAvRPfIi0r7qjN9O+kAuF5E4+hgWLN6L50fFo6a67mPqGnEZ81P34vPPumLFez2h1zuhU+cyCI38/3P0uKMoveyGzl3Km/md0M306FWKb/4bit9+9YbcWUTi+JN4fdlPeOGJOMNnPfalX9H7vhKkzrwTV6tc8MLUY3h1URamjbsXANClaznKrijw5pyeuFTshm6RpUieeRSCXoa0/3a047uTNlm1AF1HV1wd4A3fN84b76sRoDhTjYrH20DX0RVOlXqoVxXBd2E+Lr3ZCQDgfF4LmSiifHwQagMVcM6rgfcHBZDVCNA8GwgAUJy8itqOrqgc3gaC2hmuByvgvewCBHcn1PT2ahATUVPYNRlITU3F5s2bcfLkSbi5ueHee+/FG2+8gfDwcHuGZRezZ/YxWl+6uDc2bv4at912BceOtgUAjBt/GF9t6YL/bOxqGPfXygEA3HV3IXpFF2PB3Fj0jimybeBkttkv3W20vnReFD77die6dC3H8Ww/uHvoEP9wPpbM7oUjWW0AAO/Mj8KHn+9BePcryDnmg/SvQ4zOUVTgjq49ynBv/yImA3ZUE+2FmujGv5BFDzkup4Qa1vUAyscGoe0ruZBf1EHf1gU1d3qi5s7rFSJ9oAKVF/zg8e0VQzJQ+Vhbo/NWDfWD8nAV3PZXMBm4CZlQt1hyvKOy6wTCPXv2ICkpCfv370d6ejp0Oh3i4+NRVVVlz7BaBA8PHQCgokIBAFB7V6NrRCnKylzx5rLvsP6/X+ONpbsR0f2S0XHePtV4ccohvLWoN2qq5Q3OSy2Ph2ctAKBSU/dZd+laDhcXEdk/tTGMOX/OEyWFbujW/Yrp83joUKFxsW2wZFWyq3qIMkDwMP1PsdNVAYLnjf9bllXpIXhxPvhN1bcJLFkclF0rA9u3bzdaX7t2Lfz9/ZGVlYW4uLgG42tqalBTU2NY12g0No/RHmQyEc8nZeP4UT+cO1vXBwwMqkuQRib+ilUrI3H6tBoDHjyH1CUZGD/mQRRc8AIgYsorP2Pb153w+2++8A9gUtXSyWQixk3+FccP++DcmbpfdT5+NdBpnVBVafzFfqVUAR+/msZOg249StHnwUKkTOlt85jJSrQCVOtKcK2PCqJ741/28kItPLaVQpMYYPI0rj+WQ3GqGuXjg2wVKUlAi0oly8vr+tu+vr6N7k9NTYVarTYsISEhjY5r7Sa8+AtCO2qw6PUYwzanP6ax/i8tDOnfdsSZUz74eEVPnD/vhfhBZwEAD//9FNzcavH5Z10bOy21QOOnHUNopwq88VqvWz5HaKcKzFqShQ2f3IZfDrS9+QFkf7UifN+sm1NQ/nzjX+JOl3Xwm3cO1+5V4Wq8T6NjFEer4P1eAcomBKG2g6vNwnUYohUWB9ViJhAKgoCXXnoJ9913H7p3797omJkzZ2LKlCmGdY1G43AJwfiJv+DuewrxyuR+uHzJ3bC9tNQNAJB3TmU0Pv+cF9r6XwUARPW6iK4Rl/Hl9s1GY95dsQvf7+qApW/wV2NL8sLUY7j7/hJMfz4Wl0vcDNuvXFbCRSHAw1NnVB3w8dXiymWl0TlCwiqwYPl+bN8agk1rbmu22MkCtSJ83jwP+UUdLs0NbbQq4FSqQ5tZ56Dt6m7yF7/iWBV8F+ZBMyoQ1/p72zhox8DbEZvWYpKBpKQkHDt2DD/88IPJMUqlEkql0uT+1k3E+InZiL3/AmZM6YviIg+jvcVF7rh0yRXt21cYbW/XvhIHf64rIa58vyfWrb7DsM/X7xoWLP4Bi+bH4OSJxqstZA8iXph6HLF9izBzQiyKC92N9p46qYZOJ0NU70vY933dF0G7DpXwD7qGE8eu/0LsEFaBhR/sx65v2mPdSlaDWoU/EgHnAi0uzw+FqGr4T7DT5T8Sgc6uKEsOBpxkDcYojlXBd0EeNE8HmKwaEJmjRSQDycnJSEtLQ0ZGBtq3b2/vcOxiwou/oN+AfMybdS+uXXWBj081AKCqyuWPewjI8MWmcDyVeBxnznjjzClvDIw/i/YdNFgw9x4AwMUS4y+Va9fqPt7CAk+jKgPZ14Rpx9A3oQDzp92Fa1Vy+Pj+6bOukeNqlQt2fBWCsZNOoFLjUndp4cvHcOKIN3L+SAZCO1Vg4fL9OHSgLbZuCDOcQy/IoClz1IS55ZNdEyAv0hrW5cU6OOdWQ/SUQ+/jDJ/F+VCcqcblVzsAAuB0pW7yqOApB1xkhkRA39YFmmcD4KTRG84l+NT996w4WpcIVP3NF9WxKsM5RGcZRC9OGr4h3mfAJLsmA6IoYuLEidiyZQt2796NsDDp3jDlb4+cAQAsfnuP0fali+/Czm87AgC+3HwbFAo9xo0/DC8vLc6cUePVV+JQVOj519NRCzbksTwAwBsr9xttf3teJHZ+U9f2+vidCIjiCfwz9RBcFAIO7W+DDxZfb5/d90AhvH21eGDwBTww+IJhe3GBG0b9/YFmeBfUGJfT19Bm1jnDunpNMQDgan81Kp5oC7efKwEA/lPOGB13aX4otN09oDxcBedCLZwLtQgc87vRmIItEQAA9+/L4FQjwuuLy/D64rJhf80d7rj8ekdbvC3HIQKw5PJAx80FIBNF+6U6EyZMwIYNG/Dll18a3VtArVbDzc3tBkfW0Wg0UKvVGBA+Bc5y/hpydLLKa/YOgZpR3jLVzQdRq6e/WoOcEW+gvLwcKpVtPvP674oHes2As/zWJ1rW6qvx3S+LbBqrvdj1aoIVK1agvLwc/fr1Q1BQkGHZtGmTPcMiIiKSFLu3CYiIiJqFCAvnDFgtkhanRUwgJCIisjlOIDSpRd10iIiIiJofKwNERCQNAoCGt20w73gHxWSAiIgkgXcgNI1tAiIiIoljZYCIiKSBEwhNYjJARETSwGTAJLYJiIiIJI6VASIikgZWBkxiZYCIiKRBsMJihtTUVPTu3RteXl7w9/fHsGHDkJOTYzSmX79+kMlkRssLL7xgNCYvLw9DhgyBu7s7/P39MW3aNNTW1pr77m+IlQEiIpKE5r60cM+ePUhKSkLv3r1RW1uLf/7zn4iPj8evv/4KDw8Pw7ixY8di3rx5hnV39+uPnNfr9RgyZAgCAwOxb98+FBYW4plnnoGLiwsWLlx4y+/lr5gMEBERmUGj0RitK5VKKJUNn5y7fft2o/W1a9fC398fWVlZiIuLM2x3d3dHYGBgo6+1Y8cO/Prrr9i5cycCAgLQs2dPzJ8/H9OnT0dKSgoUCoUV3hHbBEREJBX1cwYsWQCEhIRArVYbltTU1Ca9fHl5OQDA19fXaPv69evRpk0bdO/eHTNnzsTVq1cN+zIzM9GjRw8EBAQYtiUkJECj0eD48eOW/o0YsDJARETSIIiAzIJJgELdsfn5+VCpVIbNjVUFGhwqCHjppZdw3333oXv37obtI0aMQGhoKIKDg3HkyBFMnz4dOTk52Lx5MwCgqKjIKBEAYFgvKiq69ffyF0wGiIiIzKBSqYySgaZISkrCsWPH8MMPPxhtHzdunOHPPXr0QFBQEAYMGIDTp0+jc+fOVom3KdgmICIiabBSm8BcycnJSEtLw/fff4/27dvfcGxMTAwA4NSpUwCAwMBAFBcXG42pXzc1z+BWMBkgIiKJsDQRMC8ZEEURycnJ2LJlC7777juEhYXd9Jjs7GwAQFBQEAAgNjYWR48eRUlJiWFMeno6VCoVIiIizIrnRtgmICIisoGkpCRs2LABX375Jby8vAw9frVaDTc3N5w+fRobNmzAQw89BD8/Pxw5cgSTJ09GXFwcIiMjAQDx8fGIiIjA008/jcWLF6OoqAivvfYakpKSmjRXoalYGSAiImlo5jbBihUrUF5ejn79+iEoKMiwbNq0CQCgUCiwc+dOxMfHo2vXrnj55Zfx6KOP4uuvvzacQy6XIy0tDXK5HLGxsXjqqafwzDPPGN2XwBpYGSAiImkQzC/1Nzy+6cSbJA8hISHYs2fPTc8TGhqKbdu2mfXa5mJlgIiISOJYGSAiImkQhbrFkuMdFJMBIiKSBj610CQmA0REJA3NPGegNeGcASIiIoljZYCIiKSBbQKTmAwQEZE0iLAwGbBaJC0O2wREREQSx8oAERFJA9sEJjEZICIiaRAEABbcK0Bw3PsMsE1AREQkcawMEBGRNLBNYBKTASIikgYmAyaxTUBERCRxrAwQEZE08HbEJjEZICIiSRBFAaIFTx605NiWjskAERFJgyha9uuecwaIiIjIUbEyQERE0iBaOGfAgSsDTAaIiEgaBAGQWdD3d+A5A2wTEBERSRwrA0REJA1sE5jEZICIiCRBFASIFrQJHPnSQrYJiIiIJI6VASIikga2CUxiMkBERNIgiICMyUBj2CYgIiKSOFYGiIhIGkQRgCX3GXDcygCTASIikgRRECFa0CYQmQwQERG1cqIAyyoDvLSQiIiIHBQrA0REJAlsE5jGZICIiKSBbQKTWnUyUJ+l1epr7BwJNQeZwM9ZSvRX+XlLQf3n3By/umuhs+ieQ7XQWS+YFkYmtuK6x/nz5xESEmLvMIiIyEL5+flo3769Tc5dXV2NsLAwFBUVWXyuwMBA5ObmwtXV1QqRtRytOhkQBAEFBQXw8vKCTCazdzjNRqPRICQkBPn5+VCpVPYOh2yIn7V0SPWzFkURFRUVCA4OhpOT7ea0V1dXQ6vVWnwehULhcIkA0MrbBE5OTjbLJFsDlUolqX80pIyftXRI8bNWq9U2fw1XV1eH/BK3Fl5aSEREJHFMBoiIiCSOyUArpFQqMWfOHCiVSnuHQjbGz1o6+FmTPbXqCYRERERkOVYGiIiIJI7JABERkcQxGSAiIpI4JgNEREQSx2SglVm+fDk6duwIV1dXxMTE4KeffrJ3SGQDGRkZGDp0KIKDgyGTybB161Z7h0Q2kpqait69e8PLywv+/v4YNmwYcnJy7B0WSQyTgVZk06ZNmDJlCubMmYNDhw4hKioKCQkJKCkpsXdoZGVVVVWIiorC8uXL7R0K2diePXuQlJSE/fv3Iz09HTqdDvHx8aiqqrJ3aCQhvLSwFYmJiUHv3r3x/vvvA6h7NkNISAgmTpyIGTNm2Dk6shWZTIYtW7Zg2LBh9g6FmsHFixfh7++PPXv2IC4uzt7hkESwMtBKaLVaZGVlYeDAgYZtTk5OGDhwIDIzM+0YGRFZU3l5OQDA19fXzpGQlDAZaCUuXboEvV6PgIAAo+0BAQFWeSwnEdmfIAh46aWXcN9996F79+72DockpFU/tZCIyJEkJSXh2LFj+OGHH+wdCkkMk4FWok2bNpDL5SguLjbaXlxcjMDAQDtFRUTWkpycjLS0NGRkZEj60exkH2wTtBIKhQLR0dHYtWuXYZsgCNi1axdiY2PtGBkRWUIURSQnJ2PLli347rvvEBYWZu+QSIJYGWhFpkyZgsTERNx11124++678c4776CqqgrPPfecvUMjK6usrMSpU6cM67m5ucjOzoavry86dOhgx8jI2pKSkrBhwwZ8+eWX8PLyMswBUqvVcHNzs3N0JBW8tLCVef/997FkyRIUFRWhZ8+eWLZsGWJiYuwdFlnZ7t270b9//wbbExMTsXbt2uYPiGxGJpM1un3NmjV49tlnmzcYkiwmA0RERBLHOQNEREQSx2SAiIhI4pgMEBERSRyTASIiIoljMkBERCRxTAaIiIgkjskAERGRxDEZICIikjgmA0QWevbZZzFs2DDDer9+/fDSSy81exy7d++GTCZDWVmZyTEymQxbt25t8jlTUlLQs2dPi+I6e/YsZDIZsrOzLToPEdkOkwFySM8++yxkMhlkMhkUCgW6dOmCefPmoba21uavvXnzZsyfP79JY5vyBU5EZGt8UBE5rEGDBmHNmjWoqanBtm3bkJSUBBcXF8ycObPBWK1WC4VCYZXX9fX1tcp5iIiaCysD5LCUSiUCAwMRGhqK8ePHY+DAgfjqq68AXC/tL1iwAMHBwQgPDwcA5Ofn4/HHH4e3tzd8fX3xyCOP4OzZs4Zz6vV6TJkyBd7e3vDz88Mrr7yCvz7e469tgpqaGkyfPh0hISFQKpXo0qULVq1ahbNnzxoeRuTj4wOZTGZ4MI0gCEhNTUVYWBjc3NwQFRWF//73v0avs23bNtx+++1wc3ND//79jeJsqunTp+P222+Hu7s7OnXqhFmzZkGn0zUY9+GHHyIkJATu7u54/PHHUV5ebrT/k08+Qbdu3eDq6oquXbvigw8+MDsWIrIfJgMkGW5ubtBqtYb1Xbt2IScnB+np6UhLS4NOp0NCQgK8vLywd+9e/Pjjj/D09MSgQYMMx7311ltYu3YtVq9ejR9++AGlpaXYsmXLDV/3mWeewWeffYZly5bhxIkT+PDDD+Hp6YmQkBB88cUXAICcnBwUFhbi3XffBQCkpqZi3bp1WLlyJY4fP47Jkyfjqaeewp49ewDUJS3Dhw/H0KFDkZ2djTFjxmDGjBlm/514eXlh7dq1+PXXX/Huu+/i448/xttvv2005tSpU/j888/x9ddfY/v27fjll18wYcIEw/7169dj9uzZWLBgAU6cOIGFCxdi1qxZ+PTTT82Oh4jsRCRyQImJieIjjzwiiqIoCoIgpqeni0qlUpw6daphf0BAgFhTU2M45l//+pcYHh4uCoJg2FZTUyO6ubmJ3377rSiKohgUFCQuXrzYsF+n04nt27c3vJYoimLfvn3FSZMmiaIoijk5OSIAMT09vdE4v//+exGAeOXKFcO26upq0d3dXdy3b5/R2NGjR4tPPvmkKIqiOHPmTDEiIsJo//Tp0xuc668AiFu2bDG5f8mSJWJ0dLRhfc6cOaJcLhfPnz9v2Pa///1PdHJyEgsLC0VRFMXOnTuLGzZsMDrP/PnzxdjYWFEURTE3N1cEIP7yyy8mX5eI7ItzBshhpaWlwdPTEzqdDoIgYMSIEUhJSTHs79Gjh9E8gcOHD+PUqVPw8vIyOk91dTVOnz6N8vJyFBYWIiYmxrDP2dkZd911V4NWQb3s7GzI5XL07du3yXGfOnUKV69exYMPPmi0XavVolevXgCAEydOGMUBALGxsU1+jXqbNm3CsmXLcPr0aVRWVqK2thYqlcpoTIcOHdCuXTuj1xEEATk5OfDy8sLp06cxevRojB071jCmtrYWarXa7HiIyD6YDJDD6t+/P1asWAGFQoHg4GA4Oxv/393Dw8NovbKyEtHR0Vi/fn2Dc7Vt2/aWYnBzczP7mMrKSgDAN998Y/QlDNTNg7CWzMxMjBw5EnPnzkVCQgLUajU2btyIt956y+xYP/744wbJiVwut1qsRGRbTAbIYXl4eKBLly5NHn/nnXdi06ZN8Pf3b/DruF5QUBAOHDiAuLg4AHW/gLOysnDnnXc2Or5Hjx4QBAF79uzBwIEDG+yvr0zo9XrDtoiICCiVSuTl5ZmsKHTr1s0wGbLe/v37b/4m/2Tfvn0IDQ3Fq6++ath27ty5BuPy8vJQUFCA4OBgw+s4OTkhPDwcAQEBCA4OxpkzZzBy5EizXp+IWg5OICT6w8iRI9GmTRs88sgj2Lt3L3Jzc7F79268+OKLOH/+PABg0qRJWLRoEbZu3YqTJ09iwoQJN7xHQMeOHZGYmIhRo0Zh69athnN+/vnnAIDQ0FDIZDKkpaXh4sWLqKyshJeXF6ZOnYrJkyfj008/xenTp3Ho0CG89957hkl5L7zwAn7//XdMmzYNOTk52LBhA9auXWvW+73tttuQl5eHjRs34vTp01i2bFmjkyFdXV2RmJiIw4cPY+/evXjxxRfx+OOPIzAwEAAwd+5cpKamYtmyZfjtt99w9OhRrFmzBkuXLjUrHiKyHyYDRH9wd3dHRkYGOnTogOHDh6Nbt24YPXo0qqurDZWCl19+GU8//TQSExMRGxsLLy8v/P3vf7/heVesWIHHHnsMEyZMQNeuXTF27FhUVVUBANq1a4e5c+dixowZCAgIQHJyMgBg/vz5mDVrFlJTU9GtWzcMGjQI33zzDcLCwgDU9fG/+OILbN26FVFRUVi5ciUWLlxo1vt9+OGHMXnyZCQnJ6Nnz57Yt28fZs2a1WBcly5dMHz4cDz00EOIj49HZGSk0aWDY8aMwSeffII1a9agR48e6Nu3L9auXWuIlYhaPploauYTERERSQIrA0RERBLHZICIiEjimAwQERFJHJMBIiIiiWMyQEREJHFMBoiIiCSOyQAREZHEMRkgIiKSOCYDREREEsdkgIiISOKYDBAREUnc/wPDMGo/nM4OEAAAAABJRU5ErkJggg==\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## SVM(Support Vector Machine)" ], "metadata": { "id": "WIkFXqr8uC2P" } }, { "cell_type": "markdown", "source": [ "### Kernel ---> 'Linear'" ], "metadata": { "id": "UhmdSv6AyWOl" } }, { "cell_type": "code", "source": [ "svm_classifier = SVC(kernel='linear')\n", "svm_classifier.fit(XV_train, y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "XMD3h9QQuH7C", "outputId": "615d9e3a-abc7-47ca-d382-d9e6a852aa62" }, "execution_count": 29, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "SVC(kernel='linear')" ], "text/html": [ "
SVC(kernel='linear')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 29 } ] }, { "cell_type": "code", "source": [ "svm_pred = svm_classifier.predict(XV_test)" ], "metadata": { "id": "iOJuuYNjy9Ow" }, "execution_count": 30, "outputs": [] }, { "cell_type": "code", "source": [ "svm_accuracy = accuracy_score(y_test, svm_pred)\n", "print(f\"SVM with linear kernel Accuracy:\", svm_accuracy)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "sVduCXPmy9ld", "outputId": "19630016-00a5-4e39-e9a3-d6fbf2009060" }, "execution_count": 31, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "SVM with linear kernel Accuracy: 0.8324235807860262\n" ] } ] }, { "cell_type": "code", "source": [ "print(\"\\nSVM ( Kernel='linear' ) Classification Report:\")\n", "print(classification_report(y_test, svm_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "LrUICxcDy99X", "outputId": "34071a3e-f702-47c5-80c3-481447efbf7c" }, "execution_count": 32, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "SVM ( Kernel='linear' ) Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.81 0.79 0.80 1572\n", " 1 0.80 0.88 0.84 2236\n", " 2 0.91 0.81 0.86 1688\n", "\n", " accuracy 0.83 5496\n", " macro avg 0.84 0.83 0.83 5496\n", "weighted avg 0.84 0.83 0.83 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test,svm_pred);" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "XD9KgFQu14VI", "outputId": "67166835-fe08-4e85-fe00-47d25a17aa7b" }, "execution_count": 33, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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guzsbKjVauNmlUp110NXrlyJ/v37IygoyLht3Lhxxj9HREQgMDAQjz32GDIyMnDfffdZEajl2E1ARESyUPVooTULAKjVapPlbsnAhQsXsGPHDrz44ot3bBcZGQkASE9PBwBoNBrk5eWZtKlaNzfO4F4xGSAiIqpFq1evhr+/PwYOHHjHdqmpqQCAwMBAAEBUVBSOHTuGK1euGNskJSVBrVYjPDzcpjGym4CIiOTBDjMQiqKI1atXIzY2Fo6Ot265GRkZWL9+PQYMGABfX18cPXoUkyZNQs+ePdGxY0cAQHR0NMLDw/Hss89i4cKFyM3NxZtvvom4uLgadU1YgskAERHJRx3PIrhjxw5kZWXhhRdeMNmuVCqxY8cOLFmyBGVlZQgODsawYcPw5ptvGts4ODhg69atGD9+PKKiouDm5obY2FiTeQlshckAERFRLYmOjoYkVc9AgoODsWfPnrseHxISgm3bttVGaCaYDBARkSzw3QTmMRkgIiJ54FsLzeLTBERERDLHygAREckCuwnMYzJARETywG4Cs9hNQEREJHONojIglpRCFLT2DoNq2cCHnrB3CFSHyr+z5pUy1FDoyyqAwXXzWewmMK9RJANERER3xW4Cs5gMEBGRPDAZMItjBoiIiGSOlQEiIpIFjhkwj8kAERHJA7sJzGI3ARERkcyxMkBERLIgSBKE27xB0JLjGysmA0REJA/sJjCL3QREREQyx8oAERHJAp8mMI/JABERyQO7CcxiNwEREZHMsTJARESywG4C85gMEBGRPLCbwCwmA0REJAusDJjHMQNEREQyx8oAERHJA7sJzGIyQEREstGYS/3WYDcBERGRzLEyQERE8iBJlYs1xzdSTAaIiEgW+DSBeewmICIikjlWBoiISB74NIFZTAaIiEgWBLFyseb4xordBERERDLHygAREckDuwnMYjJARESywKcJzGMyQERE8sB5BszimAEiIiKZY2WAiIhkgd0E5rEyQERE8iDZYLFAQkICBEEwWdq2bWvcX15ejri4OPj6+sLd3R3Dhg1DXl6eyTmysrIwcOBAuLq6wt/fH1OnToVer7+Xq78jVgaIiIhqSfv27bFjxw7juqPjrdvupEmT8MMPP+Drr7+Gp6cn4uPjMXToUPz8888AAIPBgIEDB0Kj0WD//v3IycnBc889BycnJ8yfP9+mcTIZICIi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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Kernel--->'Poly'" ], "metadata": { "id": "5Pbtf3u3yda9" } }, { "cell_type": "code", "source": [ "svm_classifier = SVC(kernel='poly')\n", "svm_classifier.fit(XV_train, y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "8yQkH2B9y8m5", "outputId": "e400211e-c500-4acd-ff70-55cef2fdbf8c" }, "execution_count": 34, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "SVC(kernel='poly')" ], "text/html": [ "
SVC(kernel='poly')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 34 } ] }, { "cell_type": "code", "source": [ "svm_pred = svm_classifier.predict(XV_test)" ], "metadata": { "id": "-xkcgbdGy-j-" }, "execution_count": 35, "outputs": [] }, { "cell_type": "code", "source": [ "svm_accuracy = accuracy_score(y_test, svm_pred)\n", "print(f\"SVM with poly kernel Accuracy:\", svm_accuracy)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VR61C9vny-02", "outputId": "7a245bf5-18a0-436b-8829-7ced828e63ce" }, "execution_count": 36, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "SVM with poly kernel Accuracy: 0.7807496360989811\n" ] } ] }, { "cell_type": "code", "source": [ "print(\"\\nSVM ( Kernel='Poly' ) Classification Report:\")\n", "print(classification_report(y_test, svm_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "avPoQe9Hy_Hk", "outputId": "344eefae-dd28-45a4-f77b-fff56b25f18b" }, "execution_count": 37, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "SVM ( Kernel='Poly' ) Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.93 0.60 0.73 1572\n", " 1 0.67 0.97 0.79 2236\n", " 2 0.96 0.70 0.81 1688\n", "\n", " accuracy 0.78 5496\n", " macro avg 0.85 0.76 0.78 5496\n", "weighted avg 0.83 0.78 0.78 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test,svm_pred);" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "RgKJjvST18Or", "outputId": "69dafacd-29af-4044-d8d0-55457fc2af02" }, "execution_count": 38, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Kernel--->'RBF'" ], "metadata": { "id": "tj1vodKuyd6x" } }, { "cell_type": "code", "source": [ "svm_classifier = SVC(kernel='rbf')\n", "svm_classifier.fit(XV_train, y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "UQYg6m2xy_hG", "outputId": "6246ee3c-3c7c-4ca8-eb3c-88d8c635107a" }, "execution_count": 39, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "SVC()" ], "text/html": [ "
SVC()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 39 } ] }, { "cell_type": "code", "source": [ "svm_pred = svm_classifier.predict(XV_test)" ], "metadata": { "id": "lACMBO1ny_4W" }, "execution_count": 40, "outputs": [] }, { "cell_type": "code", "source": [ "svm_accuracy = accuracy_score(y_test, svm_pred)\n", "print(f\"SVM with rbf kernel Accuracy:\", svm_accuracy)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "tEhZoO1szAHp", "outputId": "5945e6fa-e97d-4b72-c68c-9d3b0179e26b" }, "execution_count": 41, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "SVM with rbf kernel Accuracy: 0.8382459970887919\n" ] } ] }, { "cell_type": "code", "source": [ "print(\"\\nSVM ( Kernel='RBF' ) Classification Report:\")\n", "print(classification_report(y_test, svm_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "v3TXq7GuzAjc", "outputId": "99d7cb2b-9a11-49d9-8847-311547d6ffc9" }, "execution_count": 42, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "SVM ( Kernel='RBF' ) Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.83 0.78 0.81 1572\n", " 1 0.79 0.91 0.84 2236\n", " 2 0.93 0.80 0.86 1688\n", "\n", " accuracy 0.84 5496\n", " macro avg 0.85 0.83 0.84 5496\n", "weighted avg 0.85 0.84 0.84 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test,svm_pred);" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "4tZDNBF_2A-C", "outputId": "72b8bc5e-47d1-46a7-e2e3-de5eb6df8225" }, "execution_count": 43, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Decision Tree" ], "metadata": { "id": "JF3nLG5t2Sur" } }, { "cell_type": "code", "source": [ "from sklearn.tree import DecisionTreeClassifier, plot_tree\n", "decision_tree=DecisionTreeClassifier(max_depth=20)\n" ], "metadata": { "id": "hmUvFJ042O1Z" }, "execution_count": 44, "outputs": [] }, { "cell_type": "code", "source": [ "decision_tree.fit(XV_train,y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "uZZbbpYj2mF3", "outputId": "9020a0a7-ceae-498e-dd1f-4c073bf34de2" }, "execution_count": 45, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "DecisionTreeClassifier(max_depth=20)" ], "text/html": [ "
DecisionTreeClassifier(max_depth=20)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 45 } ] }, { "cell_type": "code", "source": [ "dt_pred=decision_tree.predict(XV_test)" ], "metadata": { "id": "WKaCATor6KvL" }, "execution_count": 46, "outputs": [] }, { "cell_type": "code", "source": [ "dt_accuracy=accuracy_score(y_test,dt_pred)\n", "print(f\"Decision Tree Accuracy with depth=20:\", dt_accuracy)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "XsJLofpq6Wrg", "outputId": "841f642d-499b-40be-afdc-ad5998b94967" }, "execution_count": 47, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Decision Tree Accuracy with depth=20: 0.6417394468704513\n" ] } ] }, { "cell_type": "code", "source": [ "print(\"\\nDecision Tree Classification Report:\")\n", "print(classification_report(y_test, dt_pred))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "YzJCg1og6fCN", "outputId": "c70f3426-cf80-4d07-c93e-c7fa547cdbca" }, "execution_count": 48, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Decision Tree Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.47 0.83 0.60 1572\n", " 1 0.77 0.66 0.71 2236\n", " 2 0.91 0.44 0.59 1688\n", "\n", " accuracy 0.64 5496\n", " macro avg 0.72 0.64 0.64 5496\n", "weighted avg 0.73 0.64 0.64 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test,dt_pred);" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "XQGyQkaZD9OD", "outputId": "eb232758-d836-44c4-fef0-1e59107bdd86" }, "execution_count": 49, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Logistic Regression" ], "metadata": { "id": "-2opx1cz7hu9" } }, { "cell_type": "code", "source": [ "logistic_model = LogisticRegression(max_iter=100)" ], "metadata": { "id": "OTSLfEoY7pxI" }, "execution_count": 50, "outputs": [] }, { "cell_type": "code", "source": [ "logistic_model.fit(XV_train, y_train)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "khZTxhqN8ucP", "outputId": "96b9a042-07b8-4d28-c8bd-db927e4f781d" }, "execution_count": 51, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "LogisticRegression()" ], "text/html": [ "
LogisticRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 51 } ] }, { "cell_type": "code", "source": [ "y_pred_logistic = logistic_model.predict(XV_test)" ], "metadata": { "id": "favvR2RT8yL7" }, "execution_count": 52, "outputs": [] }, { "cell_type": "code", "source": [ "accuracy_logistic = accuracy_score(y_test, y_pred_logistic)\n", "print(\"Logistic Regression Model:\")\n", "print(f\"Accuracy: {accuracy_logistic}\")" ], "metadata": { "id": "PNN84n3O_Ud0", "outputId": "f66c4acd-4622-44fc-e862-b38dfa7d1eb9", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 53, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Logistic Regression Model:\n", "Accuracy: 0.8309679767103348\n" ] } ] }, { "cell_type": "code", "source": [ "report_logistic = classification_report(y_test, y_pred_logistic)\n", "print(\"Logistic Regression Classification Report:\")\n", "print(report_logistic)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "z-Em4C8R86pe", "outputId": "fa6fcee0-0611-4722-8c8a-cbbbd1abaac6" }, "execution_count": 54, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Logistic Regression Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.81 0.79 0.80 1572\n", " 1 0.79 0.88 0.84 2236\n", " 2 0.91 0.81 0.85 1688\n", "\n", " accuracy 0.83 5496\n", " macro avg 0.84 0.82 0.83 5496\n", "weighted avg 0.84 0.83 0.83 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test,y_pred_logistic);" ], "metadata": { "id": "UvLHoiCf_WeT", "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "outputId": "2b24e2e7-301d-4cdc-9eb4-c437f8c5808b" }, "execution_count": 55, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Naive Bayes" ], "metadata": { "id": "iRqFL_1cmPMs" } }, { "cell_type": "code", "source": [ "nb_classifier = MultinomialNB()" ], "metadata": { "id": "uEfLIgi9mXkH" }, "execution_count": 56, "outputs": [] }, { "cell_type": "code", "source": [ "nb_classifier.fit(XV_train, y_train)\n", "\n", "y_pred = nb_classifier.predict(XV_test)" ], "metadata": { "id": "6Khzrk3to_qO" }, "execution_count": 57, "outputs": [] }, { "cell_type": "code", "source": [ "accuracy = accuracy_score(y_test, y_pred)\n", "print(\"Naive Bayes Model:\")\n", "print(\"Accuracy:\", accuracy)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "YZ2HmEQinXaP", "outputId": "652a3eb0-24b5-4381-aea3-6adc14b67fff" }, "execution_count": 58, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Naive Bayes Model:\n", "Accuracy: 0.7780203784570596\n" ] } ] }, { "cell_type": "code", "source": [ "report_naive_bayes = classification_report(y_test, y_pred)\n", "print(\"Naive Bayes Classification Report:\")\n", "print(report_naive_bayes)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_A6CZxXspMj-", "outputId": "d1fcc920-71be-4185-e075-91b574ef0f18" }, "execution_count": 59, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Naive Bayes Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.91 0.58 0.71 1572\n", " 1 0.68 0.95 0.79 2236\n", " 2 0.91 0.73 0.81 1688\n", "\n", " accuracy 0.78 5496\n", " macro avg 0.84 0.75 0.77 5496\n", "weighted avg 0.82 0.78 0.77 5496\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "ConfusionMatrixDisplay.from_predictions(y_test,dt_pred);" ], "metadata": { "id": "b1XC3GDm27Sj", "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "outputId": "59748a82-56fc-44f9-edde-49783ac3a2fd" }, "execution_count": 60, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# K Nearest Neightbors (KNN)" ], "metadata": { "id": "JyLxIcnGGk62" } }, { "cell_type": "code", "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.metrics import accuracy_score, classification_report, ConfusionMatrixDisplay\n", "\n", "# K-Nearest Neighbors (KNN)\n", "knn_classifier = KNeighborsClassifier()\n", "knn_classifier.fit(XV_train, y_train)\n", "y_pred_knn = knn_classifier.predict(XV_test)\n", "accuracy_knn = accuracy_score(y_test, y_pred_knn)\n", "print(\"K-Nearest Neighbors (KNN) Model:\")\n", "print(\"Accuracy:\", accuracy_knn)\n", "report_knn = classification_report(y_test, y_pred_knn)\n", "print(\"K-Nearest Neighbors (KNN) Classification Report:\")\n", "print(report_knn)\n", "# If you want to display confusion matrix for KNN, you can use:\n", "ConfusionMatrixDisplay.from_predictions(y_test, y_pred_knn)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 696 }, "id": "6292a6lVFBQ-", "outputId": "6bf290a9-d775-463e-ae0a-c5bc6de36b3d" }, "execution_count": 61, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "K-Nearest Neighbors (KNN) Model:\n", "Accuracy: 0.5081877729257642\n", "K-Nearest Neighbors (KNN) Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.37 0.95 0.54 1572\n", " 1 0.73 0.07 0.12 2236\n", " 2 0.90 0.68 0.77 1688\n", "\n", " accuracy 0.51 5496\n", " macro avg 0.67 0.57 0.48 5496\n", "weighted avg 0.68 0.51 0.44 5496\n", "\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 61 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Test" ], "metadata": { "id": "vrBSpnf5Lpro" } }, { "cell_type": "code", "source": [ "def output_lable(n):\n", " if n == 0:\n", " return \"The Text Sentement is Negative\"\n", " elif n == 1:\n", " return \"The Text Sentement is Neutral\"\n", " elif n == 2:\n", " return \"The Text Sentement is Positive\"\n", "\n", "def manual_testing(news):\n", " testing_news = {\"text\":[news]}\n", " new_def_test = pd.DataFrame(testing_news)\n", " new_def_test[\"text\"] = new_def_test[\"text\"].apply(wp)\n", " new_x_test = new_def_test[\"text\"]\n", " new_xv_test = vectorization.transform(new_x_test)\n", " pred_lr = logistic_model.predict(new_xv_test)\n", " pred_svm = svm_classifier.predict(new_xv_test)\n", "\n", " return print((output_lable(pred_lr[0])))\n", "\n", "text = input(\"Enter Text to Classify \")\n", "manual_testing(text)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "mXDWHL5J9p2c", "outputId": "97f87ac0-5580-4381-e36b-73473953d096" }, "execution_count": 68, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Enter Text to Classify Hey there\n", "The Text Sentement is Neutral\n" ] } ] }, { "cell_type": "code", "source": [ "pip install gradio" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "GSN11M9xj4CM", "outputId": "bd587c98-eccb-45df-adfa-e2049f730909" }, "execution_count": 71, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting gradio\n", " Downloading gradio-4.27.0-py3-none-any.whl (17.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m17.1/17.1 MB\u001b[0m \u001b[31m23.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting aiofiles<24.0,>=22.0 (from gradio)\n", " Downloading aiofiles-23.2.1-py3-none-any.whl (15 kB)\n", "Requirement already satisfied: altair<6.0,>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (4.2.2)\n", "Collecting fastapi (from gradio)\n", " Downloading fastapi-0.110.2-py3-none-any.whl (91 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m91.9/91.9 kB\u001b[0m \u001b[31m10.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting ffmpy (from gradio)\n", " Downloading ffmpy-0.3.2.tar.gz (5.5 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting gradio-client==0.15.1 (from gradio)\n", " Downloading gradio_client-0.15.1-py3-none-any.whl (313 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m313.6/313.6 kB\u001b[0m \u001b[31m31.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting httpx>=0.24.1 (from gradio)\n", " Downloading httpx-0.27.0-py3-none-any.whl (75 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.6/75.6 kB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: huggingface-hub>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from gradio) (0.20.3)\n", "Requirement already satisfied: importlib-resources<7.0,>=1.3 in /usr/local/lib/python3.10/dist-packages (from gradio) (6.4.0)\n", "Requirement already satisfied: jinja2<4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.1.3)\n", "Requirement already satisfied: markupsafe~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.1.5)\n", "Requirement already satisfied: matplotlib~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.7.1)\n", "Requirement already satisfied: numpy~=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.25.2)\n", "Collecting orjson~=3.0 (from gradio)\n", " Downloading orjson-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m141.1/141.1 kB\u001b[0m \u001b[31m13.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from gradio) (24.0)\n", "Requirement already satisfied: pandas<3.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.0.3)\n", "Requirement already satisfied: pillow<11.0,>=8.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (9.4.0)\n", "Requirement already satisfied: pydantic>=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.7.0)\n", "Collecting pydub (from gradio)\n", " Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n", "Collecting python-multipart>=0.0.9 (from gradio)\n", " Downloading python_multipart-0.0.9-py3-none-any.whl (22 kB)\n", "Requirement already satisfied: pyyaml<7.0,>=5.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (6.0.1)\n", "Collecting ruff>=0.2.2 (from gradio)\n", " Downloading ruff-0.4.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.7/8.7 MB\u001b[0m \u001b[31m47.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting semantic-version~=2.0 (from gradio)\n", " Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n", "Collecting tomlkit==0.12.0 (from gradio)\n", " Downloading tomlkit-0.12.0-py3-none-any.whl (37 kB)\n", "Collecting typer<1.0,>=0.12 (from gradio)\n", " Downloading typer-0.12.3-py3-none-any.whl (47 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m47.2/47.2 kB\u001b[0m \u001b[31m4.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: typing-extensions~=4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (4.11.0)\n", "Requirement already satisfied: urllib3~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.0.7)\n", "Collecting uvicorn>=0.14.0 (from gradio)\n", " Downloading uvicorn-0.29.0-py3-none-any.whl (60 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.8/60.8 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from gradio-client==0.15.1->gradio) (2023.6.0)\n", "Collecting websockets<12.0,>=10.0 (from gradio-client==0.15.1->gradio)\n", " Downloading websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (129 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.9/129.9 kB\u001b[0m \u001b[31m14.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: entrypoints in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (0.4)\n", "Requirement already satisfied: jsonschema>=3.0 in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (4.19.2)\n", "Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (0.12.1)\n", "Requirement already satisfied: anyio in /usr/local/lib/python3.10/dist-packages (from httpx>=0.24.1->gradio) (3.7.1)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx>=0.24.1->gradio) (2024.2.2)\n", "Collecting httpcore==1.* (from httpx>=0.24.1->gradio)\n", " Downloading httpcore-1.0.5-py3-none-any.whl (77 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m77.9/77.9 kB\u001b[0m \u001b[31m8.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx>=0.24.1->gradio) (3.7)\n", "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from httpx>=0.24.1->gradio) (1.3.1)\n", "Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx>=0.24.1->gradio)\n", " Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m5.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (3.13.4)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (2.31.0)\n", "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (4.66.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (4.51.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.4.5)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio) (2023.4)\n", "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio) (2024.1)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->gradio) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.18.1 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->gradio) (2.18.1)\n", "Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio) (8.1.7)\n", "Collecting shellingham>=1.3.0 (from typer<1.0,>=0.12->gradio)\n", " Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n", "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio) (13.7.1)\n", "Collecting starlette<0.38.0,>=0.37.2 (from fastapi->gradio)\n", " Downloading starlette-0.37.2-py3-none-any.whl (71 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.9/71.9 kB\u001b[0m \u001b[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (23.2.0)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (2023.12.1)\n", "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.34.0)\n", "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.18.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib~=3.0->gradio) (1.16.0)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (2.16.1)\n", "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio->httpx>=0.24.1->gradio) (1.2.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.19.3->gradio) (3.3.2)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio) (0.1.2)\n", "Building wheels for collected packages: ffmpy\n", " Building wheel for ffmpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for ffmpy: filename=ffmpy-0.3.2-py3-none-any.whl size=5584 sha256=57b5a476e80eeb1394b312386f918b075f2ac34429ebc6674b05741eee9d50d1\n", " Stored in directory: /root/.cache/pip/wheels/bd/65/9a/671fc6dcde07d4418df0c592f8df512b26d7a0029c2a23dd81\n", "Successfully built ffmpy\n", "Installing collected packages: pydub, ffmpy, websockets, tomlkit, shellingham, semantic-version, ruff, python-multipart, orjson, h11, aiofiles, uvicorn, starlette, httpcore, typer, httpx, fastapi, gradio-client, gradio\n", " Attempting uninstall: typer\n", " Found existing installation: typer 0.9.4\n", " Uninstalling typer-0.9.4:\n", " Successfully uninstalled typer-0.9.4\n", "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "spacy 3.7.4 requires typer<0.10.0,>=0.3.0, but you have typer 0.12.3 which is incompatible.\n", "weasel 0.3.4 requires typer<0.10.0,>=0.3.0, but you have typer 0.12.3 which is incompatible.\u001b[0m\u001b[31m\n", "\u001b[0mSuccessfully installed aiofiles-23.2.1 fastapi-0.110.2 ffmpy-0.3.2 gradio-4.27.0 gradio-client-0.15.1 h11-0.14.0 httpcore-1.0.5 httpx-0.27.0 orjson-3.10.1 pydub-0.25.1 python-multipart-0.0.9 ruff-0.4.1 semantic-version-2.10.0 shellingham-1.5.4 starlette-0.37.2 tomlkit-0.12.0 typer-0.12.3 uvicorn-0.29.0 websockets-11.0.3\n" ] } ] }, { "cell_type": "code", "source": [ "import gradio as gr\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# Function to classify sentiment\n", "def classify_sentiment(text):\n", " # Preprocess the text\n", " processed_text = wp(text)\n", " # Vectorize the text\n", " vectorized_text = vectorization.transform([processed_text])\n", " # Predict sentiment using logistic regression model\n", " prediction = logistic_model.predict(vectorized_text)[0]\n", " # Output sentiment label\n", " sentiment_label = output_label(prediction)\n", " # Get probabilities for each sentiment class\n", " probabilities = logistic_model.predict_proba(vectorized_text)[0]\n", "\n", " # Plot probabilities\n", " plt.figure(figsize=(8, 6))\n", " sns.barplot(x=[\"Negative\", \"Neutral\", \"Positive\"], y=probabilities)\n", " plt.xlabel(\"Sentiment\")\n", " plt.ylabel(\"Probability\")\n", " plt.title(\"Sentiment Probability Distribution\")\n", " plt.ylim([0, 1])\n", " plt.tight_layout()\n", " plt.savefig(\"sentiment_probabilities.png\")\n", "\n", " return sentiment_label, \"sentiment_probabilities.png\"\n", "\n", "# Input and output components for the interface\n", "inputs = gr.Textbox(lines=10, label=\"Enter the text you want to analyze:\")\n", "outputs = [\n", " gr.Textbox(label=\"Sentiment Prediction\"),\n", " gr.Image(label=\"Sentiment Probability Distribution\")\n", "]\n", "\n", "# Create the Gradio interface\n", "interface = gr.Interface(fn=classify_sentiment, inputs=inputs, outputs=outputs, title=\"Sentiment Classification\", description=\"Enter a piece of text and analyze its sentiment.\")\n", "interface.launch()\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 646 }, "id": "PrpjtM9KnymH", "outputId": "3acd5d88-506e-4451-da0a-953ecfb56648" }, "execution_count": 87, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Setting queue=True in a Colab notebook requires sharing enabled. Setting `share=True` (you can turn this off by setting `share=False` in `launch()` explicitly).\n", "\n", "Colab notebook detected. To show errors in colab notebook, set debug=True in launch()\n", "Running on public URL: https://70457f221b0873aea7.gradio.live\n", "\n", "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "
" ] }, "metadata": {} }, { "output_type": "execute_result", "data": { "text/plain": [] }, "metadata": {}, "execution_count": 87 } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "dXeVo3unnzIu" }, "execution_count": null, "outputs": [] } ] }