{ "cells": [ { "cell_type": "markdown", "id": "c3d7cc88", "metadata": {}, "source": [ "# Resume Analyzer" ] }, { "cell_type": "markdown", "id": "9459843e", "metadata": {}, "source": [ "### Install Dependencies" ] }, { "cell_type": "code", "execution_count": 1, "id": "9a1fa2ec", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: scikit-learn in c:\\program files\\python311\\lib\\site-packages (1.5.0)\n", "Requirement already satisfied: numpy>=1.19.5 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (1.26.4)\n", "Requirement already satisfied: scipy>=1.6.0 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (1.11.3)\n", "Requirement already satisfied: joblib>=1.2.0 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (1.3.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (3.5.0)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "# Scikit-learn (for ML models)\n", "!pip install scikit-learn" ] }, { "cell_type": "code", "execution_count": 2, "id": "f759f287", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: spacy in c:\\program files\\python311\\lib\\site-packages (3.7.2)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.0.8)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.0.9)\n", "Requirement already satisfied: thinc<8.3.0,>=8.1.8 in c:\\program files\\python311\\lib\\site-packages (from spacy) (8.2.1)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.0.10)\n", "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (0.3.3)\n", "Requirement already satisfied: typer<0.10.0,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (0.9.0)\n", "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in c:\\program files\\python311\\lib\\site-packages (from spacy) (6.4.0)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (4.67.1)\n", "Requirement already satisfied: requests<3.0.0,>=2.13.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.32.3)\n", "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.4.2)\n", "Requirement already satisfied: jinja2 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.1.2)\n", "Requirement already satisfied: setuptools in c:\\program files\\python311\\lib\\site-packages (from spacy) (65.5.0)\n", "Requirement already satisfied: packaging>=20.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (24.0)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.3.0)\n", "Requirement already satisfied: numpy>=1.19.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.26.4)\n", "Requirement already satisfied: annotated-types>=0.4.0 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (2.10.1)\n", "Requirement already satisfied: typing-extensions>=4.6.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (4.12.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (2023.7.22)\n", "Requirement already satisfied: blis<0.8.0,>=0.7.8 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy) (0.7.11)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy) (0.1.3)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm<5.0.0,>=4.38.0->spacy) (0.4.6)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in c:\\program files\\python311\\lib\\site-packages (from typer<0.10.0,>=0.3.0->spacy) (8.1.7)\n", "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in c:\\program files\\python311\\lib\\site-packages (from weasel<0.4.0,>=0.1.0->spacy) (0.16.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from jinja2->spacy) (2.1.3)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting en-core-web-sm==3.7.1\n", " Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl (12.8 MB)\n", " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", " - -------------------------------------- 0.5/12.8 MB 4.2 MB/s eta 0:00:03\n", " ------ --------------------------------- 2.1/12.8 MB 6.9 MB/s eta 0:00:02\n", " ------- -------------------------------- 2.4/12.8 MB 6.7 MB/s eta 0:00:02\n", " ------- -------------------------------- 2.4/12.8 MB 6.7 MB/s eta 0:00:02\n", " --------- ------------------------------ 2.9/12.8 MB 3.1 MB/s eta 0:00:04\n", " ---------------- ----------------------- 5.2/12.8 MB 4.5 MB/s eta 0:00:02\n", " ------------------ --------------------- 6.0/12.8 MB 4.7 MB/s eta 0:00:02\n", " ---------------------- ----------------- 7.3/12.8 MB 4.6 MB/s eta 0:00:02\n", " --------------------------- ------------ 8.7/12.8 MB 5.1 MB/s eta 0:00:01\n", " -------------------------------- ------- 10.5/12.8 MB 5.4 MB/s eta 0:00:01\n", " --------------------------------------- 12.6/12.8 MB 5.8 MB/s eta 0:00:01\n", " ---------------------------------------- 12.8/12.8 MB 5.8 MB/s eta 0:00:00\n", "Requirement already satisfied: spacy<3.8.0,>=3.7.2 in c:\\program files\\python311\\lib\\site-packages (from en-core-web-sm==3.7.1) (3.7.2)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.0.8)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.0.9)\n", "Requirement already satisfied: thinc<8.3.0,>=8.1.8 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (8.2.1)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.0.10)\n", "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.3.3)\n", "Requirement already satisfied: typer<0.10.0,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.9.0)\n", "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (6.4.0)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (4.67.1)\n", "Requirement already satisfied: requests<3.0.0,>=2.13.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.32.3)\n", "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.4.2)\n", "Requirement already satisfied: jinja2 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.1.2)\n", "Requirement already satisfied: setuptools in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (65.5.0)\n", "Requirement already satisfied: packaging>=20.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (24.0)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.3.0)\n", "Requirement already satisfied: numpy>=1.19.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.26.4)\n", "Requirement already satisfied: annotated-types>=0.4.0 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.10.1)\n", "Requirement already satisfied: typing-extensions>=4.6.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (4.12.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2023.7.22)\n", "Requirement already satisfied: blis<0.8.0,>=0.7.8 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.7.11)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.1.3)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm<5.0.0,>=4.38.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.4.6)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in c:\\program files\\python311\\lib\\site-packages (from typer<0.10.0,>=0.3.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (8.1.7)\n", "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in c:\\program files\\python311\\lib\\site-packages (from weasel<0.4.0,>=0.1.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.16.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from jinja2->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.1.3)\n", "\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n", "You can now load the package via spacy.load('en_core_web_sm')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\koppo\\AppData\\Roaming\\Python\\Python311\\site-packages\\torch\\utils\\_pytree.py:185: FutureWarning: optree is installed but the version is too old to support PyTorch Dynamo in C++ pytree. C++ pytree support is disabled. Please consider upgrading optree using `python3 -m pip install --upgrade 'optree>=0.13.0'`.\n", " warnings.warn(\n", "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "# SpaCy (for NLP)\n", "!pip install spacy\n", "!python -m spacy download en_core_web_sm\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "e8b9c94d", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: nltk in c:\\program files\\python311\\lib\\site-packages (3.8.1)\n", "Requirement already satisfied: click in c:\\program files\\python311\\lib\\site-packages (from nltk) (8.1.7)\n", "Requirement already satisfied: joblib in c:\\program files\\python311\\lib\\site-packages (from nltk) (1.3.2)\n", "Requirement already satisfied: regex>=2021.8.3 in c:\\program files\\python311\\lib\\site-packages (from nltk) (2023.10.3)\n", "Requirement already satisfied: tqdm in c:\\program files\\python311\\lib\\site-packages (from nltk) (4.67.1)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from click->nltk) (0.4.6)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[nltk_data] Downloading package punkt to\n", "[nltk_data] C:\\Users\\koppo\\AppData\\Roaming\\nltk_data...\n", "[nltk_data] Package punkt is already up-to-date!\n", "[nltk_data] Downloading package stopwords to\n", "[nltk_data] C:\\Users\\koppo\\AppData\\Roaming\\nltk_data...\n", "[nltk_data] Package stopwords is already up-to-date!\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NLTK (for NLP preprocessing)\n", "!pip install nltk\n", "import nltk\n", "nltk.download('punkt')\n", "nltk.download('stopwords')\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "a6a1a611", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: pdfminer.six in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (20250506)\n", "Requirement already satisfied: charset-normalizer>=2.0.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pdfminer.six) (3.2.0)\n", "Requirement already satisfied: cryptography>=36.0.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pdfminer.six) (44.0.2)\n", "Requirement already satisfied: cffi>=1.12 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from cryptography>=36.0.0->pdfminer.six) (1.15.1)\n", "Requirement already satisfied: pycparser in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from cffi>=1.12->cryptography>=36.0.0->pdfminer.six) (2.21)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "# PDFMiner (to extract text from PDF resumes)\n", "!pip install pdfminer.six" ] }, { "cell_type": "code", "execution_count": 5, "id": "04d566f0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: xgboost in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (3.0.0)\n", "Requirement already satisfied: numpy in c:\\program files\\python311\\lib\\site-packages (from xgboost) (1.26.4)\n", "Requirement already satisfied: scipy in c:\\program files\\python311\\lib\\site-packages (from xgboost) (1.11.3)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "# XGBoost (for boosted tree models)\n", "!pip install xgboost" ] }, { "cell_type": "code", "execution_count": 6, "id": "b152893d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: matplotlib in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (3.7.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (1.1.0)\n", "Requirement already satisfied: cycler>=0.10 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (4.42.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (1.4.5)\n", "Requirement already satisfied: numpy>=1.20 in c:\\program files\\python311\\lib\\site-packages (from matplotlib) (1.26.4)\n", "Requirement already satisfied: packaging>=20.0 in c:\\program files\\python311\\lib\\site-packages (from matplotlib) (24.0)\n", "Requirement already satisfied: pillow>=6.2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (10.0.0)\n", "Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "# Matplotlib (for plotting)\n", "!pip install matplotlib" ] }, { "cell_type": "code", "execution_count": 7, "id": "2d21e571", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: seaborn in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (0.13.2)\n", "Requirement already satisfied: numpy!=1.24.0,>=1.20 in c:\\program files\\python311\\lib\\site-packages (from seaborn) (1.26.4)\n", "Requirement already satisfied: pandas>=1.2 in c:\\program files\\python311\\lib\\site-packages (from seaborn) (2.2.2)\n", "Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from seaborn) (3.7.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.1.0)\n", "Requirement already satisfied: cycler>=0.10 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.42.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.5)\n", "Requirement already satisfied: packaging>=20.0 in c:\\program files\\python311\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (24.0)\n", "Requirement already satisfied: pillow>=6.2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (10.0.0)\n", "Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\program files\\python311\\lib\\site-packages (from pandas>=1.2->seaborn) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in c:\\program files\\python311\\lib\\site-packages (from pandas>=1.2->seaborn) (2024.1)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "# Seaborn (for visual analytics)\n", "!pip install seaborn" ] }, { "cell_type": "code", "execution_count": 8, "id": "98ca75e6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: python-docx in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (1.1.2)\n", "Requirement already satisfied: lxml>=3.1.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-docx) (5.4.0)\n", "Requirement already satisfied: typing-extensions>=4.9.0 in c:\\program files\\python311\\lib\\site-packages (from python-docx) (4.12.1)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "!pip install python-docx" ] }, { "cell_type": "code", "execution_count": 9, "id": "17364abc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: pdfminer.six in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (20250506)\n", "Requirement already satisfied: charset-normalizer>=2.0.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pdfminer.six) (3.2.0)\n", "Requirement already satisfied: cryptography>=36.0.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pdfminer.six) (44.0.2)\n", "Requirement already satisfied: cffi>=1.12 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from cryptography>=36.0.0->pdfminer.six) (1.15.1)\n", "Requirement already satisfied: pycparser in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from cffi>=1.12->cryptography>=36.0.0->pdfminer.six) (2.21)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: python-docx in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (1.1.2)\n", "Requirement already satisfied: lxml>=3.1.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-docx) (5.4.0)\n", "Requirement already satisfied: typing-extensions>=4.9.0 in c:\\program files\\python311\\lib\\site-packages (from python-docx) (4.12.1)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "!pip install pdfminer.six\n", "!pip install python-docx" ] }, { "cell_type": "code", "execution_count": 10, "id": "351c1057", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: ipywidgets in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (8.1.5)\n", "Requirement already satisfied: comm>=0.1.3 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipywidgets) (0.2.0)\n", "Requirement already satisfied: ipython>=6.1.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipywidgets) (8.17.2)\n", "Requirement already satisfied: traitlets>=4.3.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipywidgets) (5.13.0)\n", "Requirement already satisfied: widgetsnbextension~=4.0.12 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipywidgets) (4.0.13)\n", "Requirement already satisfied: jupyterlab-widgets~=3.0.12 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipywidgets) (3.0.13)\n", "Requirement already satisfied: decorator in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\n", "Requirement already satisfied: jedi>=0.16 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\n", "Requirement already satisfied: matplotlib-inline in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipython>=6.1.0->ipywidgets) (0.1.6)\n", "Requirement already satisfied: prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipython>=6.1.0->ipywidgets) (3.0.39)\n", "Requirement already satisfied: pygments>=2.4.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipython>=6.1.0->ipywidgets) (2.16.1)\n", "Requirement already satisfied: stack-data in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from ipython>=6.1.0->ipywidgets) (0.4.6)\n", "Requirement already satisfied: parso<0.9.0,>=0.8.3 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.3)\n", "Requirement already satisfied: wcwidth in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30->ipython>=6.1.0->ipywidgets) (0.2.9)\n", "Requirement already satisfied: executing>=1.2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\n", "Requirement already satisfied: asttokens>=2.1.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\n", "Requirement already satisfied: pure-eval in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\n", "Requirement already satisfied: six>=1.12.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "!pip install ipywidgets" ] }, { "cell_type": "code", "execution_count": 11, "id": "9b970a94", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]\n", " [--paths] [--json] [--debug]\n", " [subcommand]\n", "\n", "Jupyter: Interactive Computing\n", "\n", "positional arguments:\n", " subcommand the subcommand to launch\n", "\n", "options:\n", " -h, --help show this help message and exit\n", " --version show the versions of core jupyter packages and exit\n", " --config-dir show Jupyter config dir\n", " --data-dir show Jupyter data dir\n", " --runtime-dir show Jupyter runtime dir\n", " --paths show all Jupyter paths. Add --json for machine-readable\n", " format.\n", " --json output paths as machine-readable json\n", " --debug output debug information about paths\n", "\n", "Available subcommands: dejavu events execute kernel kernelspec lab\n", "labextension labhub migrate nbconvert notebook run server troubleshoot trust\n", "\n", "Jupyter command `jupyter-nbextension` not found.\n" ] } ], "source": [ "!jupyter nbextension enable --py widgetsnbextension" ] }, { "cell_type": "code", "execution_count": 12, "id": "ebdb2ee4", "metadata": {}, "outputs": [], "source": [ "from IPython.display import display, HTML\n", "import html" ] }, { "cell_type": "markdown", "id": "ce436add", "metadata": {}, "source": [ "### Create Resume Upload & Text Extraction Section" ] }, { "cell_type": "code", "execution_count": 13, "id": "c501080f", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# from tkinter import Tk\n", "# from tkinter.filedialog import askopenfilename\n", "# from pdfminer.high_level import extract_text\n", "# from docx import Document\n", "\n", "# def extract_text_from_pdf(file_path):\n", "# return extract_text(file_path)\n", "\n", "# def extract_text_from_docx(file_path):\n", "# doc = Document(file_path)\n", "# return '\\n'.join([p.text for p in doc.paragraphs])\n", "\n", "# def extract_resume_text_with_dialog():\n", "# Tk().withdraw() # Hide the root window\n", "# file_path = askopenfilename(title=\"Select a Resume File (.pdf or .docx)\",\n", "# filetypes=[(\"PDF files\", \"*.pdf\"), (\"Word files\", \"*.docx\")])\n", "\n", "# if not file_path:\n", "# print(\"❌ No file selected.\")\n", "# return None\n", "\n", "# if file_path.endswith(\".pdf\"):\n", "# text = extract_text_from_pdf(file_path)\n", "# elif file_path.endswith(\".docx\"):\n", "# text = extract_text_from_docx(file_path)\n", "# else:\n", "# print(\"❌ Unsupported file format.\")\n", "# return None\n", "\n", "# print(\"\\n✅ Resume text preview:\\n\")\n", "# print(text[:500])\n", "# return text\n", "\n", "# # Run the picker\n", "# resume_text = extract_resume_text_with_dialog()\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "d9926991", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "488aff8c21b64a639436f7eac3fecdaa", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HTML(value='Upload your resume (.pdf or .docx):')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "465e79f8ff054313bf8ccc0075b51a8d", "version_major": 2, "version_minor": 0 }, "text/plain": [ "FileUpload(value=(), accept='.pdf,.docx', description='Upload')" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import io\n", "import ipywidgets as widgets\n", "from IPython.display import display\n", "from pdfminer.high_level import extract_text_to_fp\n", "from docx import Document\n", "\n", "# Upload widget\n", "uploader = widgets.FileUpload(\n", " accept='.pdf,.docx', # Only accept PDFs and DOCX\n", " multiple=False\n", ")\n", "\n", "display(widgets.HTML(\"Upload your resume (.pdf or .docx):\"))\n", "display(uploader)" ] }, { "cell_type": "code", "execution_count": 22, "id": "12528f2e", "metadata": {}, "outputs": [], "source": [ "def extract_text_from_uploaded_file(uploader):\n", " if not uploader.value:\n", " print(\"⚠️ No file uploaded yet.\")\n", " return None\n", "\n", " # uploader.value is a tuple of dicts\n", " file_info = uploader.value[0]\n", " file_name = file_info['name']\n", " content = io.BytesIO(file_info['content'])\n", "\n", " if file_name.endswith('.pdf'):\n", " output = io.StringIO()\n", " extract_text_to_fp(content, output)\n", " return output.getvalue()\n", "\n", " elif file_name.endswith('.docx'):\n", " doc = Document(content)\n", " return '\\n'.join([p.text for p in doc.paragraphs])\n", "\n", " else:\n", " print(\"❌ Unsupported file type.\")\n", " return None\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "6ef959f7", "metadata": {}, "outputs": [], "source": [ "def preview_resume_text(text, max_lines=30):\n", " if not text:\n", " print(\"❌ No text to display.\")\n", " return\n", " \n", " # Clean and split text into lines\n", " lines = [line.strip() for line in text.splitlines() if line.strip()]\n", " \n", " # Limit number of lines\n", " lines = lines[:max_lines]\n", " \n", " # Escape HTML and number the lines\n", " numbered = [f\"{i+1:02d}: {html.escape(line)}\" for i, line in enumerate(lines)]\n", "\n", " # Format with
 for alignment\n",
    "    html_content = \"
\"\n",
    "    html_content += \"\\n\".join(numbered)\n",
    "    html_content += \"
\"\n", "\n", " display(HTML(html_content))\n" ] }, { "cell_type": "code", "execution_count": 24, "id": "ac518e33", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Extracted successfully. Preview below:\n" ] }, { "data": { "text/html": [ "
01: BHANUREDDYCHOLAPALLI(cid:131)9505043644#rbhanu504@gmail.com(cid:239)bhanu-reddy1973§bhanreddy1973Leetcode-170+solvedCodechef-2*Duolingo-JapaneseEducationIndianInstituteOfInformationTechnologyKottayamNov.2022–May2026BachelorofTechnologyinComputerScienceandEngineering(ArtificialIntelligenceAndDataScience)Kottayam,KeralaTechnicalSkillsProgrammingLanguages:Java,Python,JavaScript/TypeScript,C/C++,PHP,SQLWebTechnologies:HTML5/CSS3,RESTfulAPIs,Ajax,React.js,Next.js,Node.js,Express.jsDevelopmentPractices:Agile,TDD,XP,Scrum,CI/CD,CodeReviewsSystemDesign:Microservices,Caching,LoadBalancing,Scalability,Multi-threadingDatabases:MySQL,MongoDB,PostgreSQL,RDBMS,DatabaseOptimizationOperatingSystems:Linux,Windows,ShellScriptingRelevantCoursework•DataStructures•AlgorithmsAnalysis•DatabaseManagement•OperatingSystems•SoftwareEngineering•WebTechnologies•SystemDesign•ConcurrentProgrammingRelevantExperienceFrontendDeveloper-DrdotNov2024-Present•ImplementedRESTfulAPIsusingNode.jsandExpress.jswithpropererrorhandlingandvalidation.•DevelopedbackendserviceswithJavaSpringBootfordataprocessingandbusinesslogic.•PracticedTest-DrivenDevelopment(TDD)with85%codecoverageusingJestandJUnit.•ParticipatedindailyScrummeetingsandsprintplanningsessionsforagileprojectmanagement.ProjectsReact-BasedAISaaSChatBot|React.js,Node.js,MongoDB,ExpressMay2024-July2024•Designedandimplementedascalablemicroservicesarchitecturewithhorizontalpartitioningfordatabasesharding.•DevelopedRESTfulAPIswithproperauthentication,ratelimiting,andcomprehensiveerrorhandling.•ImplementedcachingstrategiesusingRedistoreducedatabaseloadby40%andimproveresponsetimes.•Utilizedmulti-threadingforconcurrentrequestprocessingandimplementedproperthreadsynchronization.ExpenseTracker|React,Redux,ApolloGraphQL,Node.jsAug2024-Present•Implementedcleanarchitecturewithseparationofconcernsanddependencyinjectionformaintainablecode.•DevelopedbackendservicesusingJavawithSpringBootandimplementedpropertransactionmanagement.•PracticedExtremeProgramming(XP)withpairprogramming,continuousintegration,andfrequentreleases.•Optimizeddatabasequeriesandimplementedconnectionpoolingtohandle1000+concurrentusers.Gene-DiseaseLinkPrediction§|PyTorch,DGLFeb–Mar2025•LeddevelopmentofGNNframeworkanalyzinggraphwith20Knodesand100Kedges,achieving0.994AUC.•Enhancedmodelwith8-headattentionandresidualconnections,improvingpredictionstabilityby15%.•CreatedinteractivevisualizationtoolkitusingNetworkXandPlotly,processing1000+nodesubgraphs.KeyCertifications•GoogleCloudPlatform:ProfessionalCloudArchitect,ML/AIonGCPDeepLearningSpecialization:DeepLearning.AI–Completedall5coursesAWSSolutionsArchitect:AssociateLevelCertification(Expected:May2025)Leadership&VolunteeringBetaLabsIIITKottayamInternetofThingsandCloudsClub•LeadSept2024-Present•LedAgiledevelopmentteamsindeliveringmultiplesuccessfulprojectswithpropersprintplanningandretrospectives.•Sub-LeadNov2023-Sept2024
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resume_text = extract_text_from_uploaded_file(uploader)\n", "if resume_text:\n", " print(\"✅ Extracted successfully. Preview below:\")\n", " preview_resume_text(resume_text)" ] }, { "cell_type": "markdown", "id": "bd9df665", "metadata": {}, "source": [ "## Resume–Job Description Analyzer (With or Without JD Input)" ] }, { "cell_type": "markdown", "id": "03942a66", "metadata": {}, "source": [ "### Step 1: Install Required Libraries" ] }, { "cell_type": "code", "execution_count": 25, "id": "04ef6903", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: datasets in c:\\program files\\python311\\lib\\site-packages (3.3.2)\n", "Requirement already satisfied: scikit-learn in c:\\program files\\python311\\lib\\site-packages (1.5.0)\n", "Requirement already satisfied: nltk in c:\\program files\\python311\\lib\\site-packages (3.8.1)\n", "Requirement already satisfied: spacy in c:\\program files\\python311\\lib\\site-packages (3.7.2)\n", "Requirement already satisfied: tqdm in c:\\program files\\python311\\lib\\site-packages (4.67.1)\n", "Requirement already satisfied: filelock in c:\\program files\\python311\\lib\\site-packages (from datasets) (3.13.1)\n", "Requirement already satisfied: numpy>=1.17 in c:\\program files\\python311\\lib\\site-packages (from datasets) (1.26.4)\n", "Requirement already satisfied: pyarrow>=15.0.0 in c:\\program files\\python311\\lib\\site-packages (from datasets) (19.0.1)\n", "Requirement already satisfied: dill<0.3.9,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from datasets) (0.3.8)\n", "Requirement already satisfied: pandas in c:\\program files\\python311\\lib\\site-packages (from datasets) (2.2.2)\n", "Requirement already satisfied: requests>=2.32.2 in c:\\program files\\python311\\lib\\site-packages (from datasets) (2.32.3)\n", "Requirement already satisfied: xxhash in c:\\program files\\python311\\lib\\site-packages (from datasets) (3.5.0)\n", "Requirement already satisfied: multiprocess<0.70.17 in c:\\program files\\python311\\lib\\site-packages (from datasets) (0.70.16)\n", "Requirement already satisfied: fsspec<=2024.12.0,>=2023.1.0 in c:\\program files\\python311\\lib\\site-packages (from fsspec[http]<=2024.12.0,>=2023.1.0->datasets) (2024.2.0)\n", "Requirement already satisfied: aiohttp in c:\\program files\\python311\\lib\\site-packages (from datasets) (3.11.13)\n", "Requirement already satisfied: huggingface-hub>=0.24.0 in c:\\program files\\python311\\lib\\site-packages (from datasets) (0.29.3)\n", "Requirement already satisfied: packaging in c:\\program files\\python311\\lib\\site-packages (from datasets) (24.0)\n", "Requirement already satisfied: pyyaml>=5.1 in c:\\program files\\python311\\lib\\site-packages (from datasets) (6.0.1)\n", "Requirement already satisfied: scipy>=1.6.0 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (1.11.3)\n", "Requirement already satisfied: joblib>=1.2.0 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (1.3.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in c:\\program files\\python311\\lib\\site-packages (from scikit-learn) (3.5.0)\n", "Requirement already satisfied: click in c:\\program files\\python311\\lib\\site-packages (from nltk) (8.1.7)\n", "Requirement already satisfied: regex>=2021.8.3 in c:\\program files\\python311\\lib\\site-packages (from nltk) (2023.10.3)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.0.8)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.0.9)\n", "Requirement already satisfied: thinc<8.3.0,>=8.1.8 in c:\\program files\\python311\\lib\\site-packages (from spacy) (8.2.1)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in c:\\program files\\python311\\lib\\site-packages (from spacy) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.0.10)\n", "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (0.3.3)\n", "Requirement already satisfied: typer<0.10.0,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (0.9.0)\n", "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in c:\\program files\\python311\\lib\\site-packages (from spacy) (6.4.0)\n", "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in c:\\program files\\python311\\lib\\site-packages (from spacy) (2.4.2)\n", "Requirement already satisfied: jinja2 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.1.2)\n", "Requirement already satisfied: setuptools in c:\\program files\\python311\\lib\\site-packages (from spacy) (65.5.0)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in c:\\program files\\python311\\lib\\site-packages (from spacy) (3.3.0)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm) (0.4.6)\n", "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (2.5.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (1.3.2)\n", "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->datasets) (23.1.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (1.5.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (6.1.0)\n", "Requirement already satisfied: propcache>=0.2.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (0.3.0)\n", "Requirement already satisfied: yarl<2.0,>=1.17.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (1.18.3)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\program files\\python311\\lib\\site-packages (from huggingface-hub>=0.24.0->datasets) (4.12.1)\n", "Requirement already satisfied: annotated-types>=0.4.0 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (2.10.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (2023.7.22)\n", "Requirement already satisfied: blis<0.8.0,>=0.7.8 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy) (0.7.11)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy) (0.1.3)\n", "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in c:\\program files\\python311\\lib\\site-packages (from weasel<0.4.0,>=0.1.0->spacy) (0.16.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from jinja2->spacy) (2.1.3)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pandas->datasets) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\program files\\python311\\lib\\site-packages (from pandas->datasets) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in c:\\program files\\python311\\lib\\site-packages (from pandas->datasets) (2024.1)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.2->pandas->datasets) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n", ":128: RuntimeWarning: 'nltk.downloader' found in sys.modules after import of package 'nltk', but prior to execution of 'nltk.downloader'; this may result in unpredictable behaviour\n", "[nltk_data] Downloading package stopwords to\n", "[nltk_data] C:\\Users\\koppo\\AppData\\Roaming\\nltk_data...\n", "[nltk_data] Package stopwords is already up-to-date!\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting en-core-web-sm==3.7.1\n", " Using cached https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl (12.8 MB)\n", "Requirement already satisfied: spacy<3.8.0,>=3.7.2 in c:\\program files\\python311\\lib\\site-packages (from en-core-web-sm==3.7.1) (3.7.2)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.0.8)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.0.9)\n", "Requirement already satisfied: thinc<8.3.0,>=8.1.8 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (8.2.1)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.0.10)\n", "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.3.3)\n", "Requirement already satisfied: typer<0.10.0,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.9.0)\n", "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (6.4.0)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (4.67.1)\n", "Requirement already satisfied: requests<3.0.0,>=2.13.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.32.3)\n", "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.4.2)\n", "Requirement already satisfied: jinja2 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.1.2)\n", "Requirement already satisfied: setuptools in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (65.5.0)\n", "Requirement already satisfied: packaging>=20.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (24.0)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.3.0)\n", "Requirement already satisfied: numpy>=1.19.0 in c:\\program files\\python311\\lib\\site-packages (from spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.26.4)\n", "Requirement already satisfied: annotated-types>=0.4.0 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.10.1)\n", "Requirement already satisfied: typing-extensions>=4.6.1 in c:\\program files\\python311\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (4.12.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests<3.0.0,>=2.13.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2023.7.22)\n", "Requirement already satisfied: blis<0.8.0,>=0.7.8 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.7.11)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in c:\\program files\\python311\\lib\\site-packages (from thinc<8.3.0,>=8.1.8->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.1.3)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm<5.0.0,>=4.38.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.4.6)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in c:\\program files\\python311\\lib\\site-packages (from typer<0.10.0,>=0.3.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (8.1.7)\n", "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in c:\\program files\\python311\\lib\\site-packages (from weasel<0.4.0,>=0.1.0->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (0.16.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from jinja2->spacy<3.8.0,>=3.7.2->en-core-web-sm==3.7.1) (2.1.3)\n", "\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n", "You can now load the package via spacy.load('en_core_web_sm')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\koppo\\AppData\\Roaming\\Python\\Python311\\site-packages\\torch\\utils\\_pytree.py:185: FutureWarning: optree is installed but the version is too old to support PyTorch Dynamo in C++ pytree. C++ pytree support is disabled. Please consider upgrading optree using `python3 -m pip install --upgrade 'optree>=0.13.0'`.\n", " warnings.warn(\n", "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "%pip install datasets scikit-learn nltk spacy tqdm\n", "!python -m nltk.downloader stopwords\n", "!python -m spacy download en_core_web_sm" ] }, { "cell_type": "markdown", "id": "f8227768", "metadata": {}, "source": [ "token : \"YOUR_TOKEN_HERE\"" ] }, { "cell_type": "markdown", "id": "02a240ec", "metadata": {}, "source": [ "### Load Job Descriptions Dataset from Hugging Face" ] }, { "cell_type": "code", "execution_count": 19, "id": "f7383cd0", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "778503c705214194b942c2f0d5262a50", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(HTML(value='
kagglehub[hf-datasets]) (3.13.1)\n", "Requirement already satisfied: numpy>=1.17 in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (1.26.4)\n", "Requirement already satisfied: pyarrow>=15.0.0 in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (19.0.1)\n", "Requirement already satisfied: dill<0.3.9,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (0.3.8)\n", "Requirement already satisfied: xxhash in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (3.5.0)\n", "Requirement already satisfied: multiprocess<0.70.17 in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (0.70.16)\n", "Requirement already satisfied: fsspec<=2024.12.0,>=2023.1.0 in c:\\program files\\python311\\lib\\site-packages (from fsspec[http]<=2024.12.0,>=2023.1.0->datasets->kagglehub[hf-datasets]) (2024.2.0)\n", "Requirement already satisfied: aiohttp in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (3.11.13)\n", "Requirement already satisfied: huggingface-hub>=0.24.0 in c:\\program files\\python311\\lib\\site-packages (from datasets->kagglehub[hf-datasets]) (0.29.3)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests->kagglehub[hf-datasets]) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests->kagglehub[hf-datasets]) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests->kagglehub[hf-datasets]) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests->kagglehub[hf-datasets]) (2023.7.22)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm->kagglehub[hf-datasets]) (0.4.6)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pandas->kagglehub[hf-datasets]) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\program files\\python311\\lib\\site-packages (from pandas->kagglehub[hf-datasets]) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in c:\\program files\\python311\\lib\\site-packages (from pandas->kagglehub[hf-datasets]) (2024.1)\n", "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (2.5.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (1.3.2)\n", "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (23.1.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (1.5.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (6.1.0)\n", "Requirement already satisfied: propcache>=0.2.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (0.3.0)\n", "Requirement already satisfied: yarl<2.0,>=1.17.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets->kagglehub[hf-datasets]) (1.18.3)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\program files\\python311\\lib\\site-packages (from huggingface-hub>=0.24.0->datasets->kagglehub[hf-datasets]) (4.12.1)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.2->pandas->kagglehub[hf-datasets]) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "pip install kagglehub[hf-datasets]" ] }, { "cell_type": "code", "execution_count": 29, "id": "d0dcf353", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: kaggle in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (1.7.4.5)\n", "Requirement already satisfied: bleach in c:\\program files\\python311\\lib\\site-packages (from kaggle) (6.1.0)\n", "Requirement already satisfied: certifi>=14.05.14 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (2023.7.22)\n", "Requirement already satisfied: charset-normalizer in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (3.2.0)\n", "Requirement already satisfied: idna in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (3.4)\n", "Requirement already satisfied: protobuf in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (5.29.4)\n", "Requirement already satisfied: python-dateutil>=2.5.3 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (2.8.2)\n", "Requirement already satisfied: python-slugify in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (8.0.4)\n", "Requirement already satisfied: requests in c:\\program files\\python311\\lib\\site-packages (from kaggle) (2.32.3)\n", "Requirement already satisfied: setuptools>=21.0.0 in c:\\program files\\python311\\lib\\site-packages (from kaggle) (65.5.0)\n", "Requirement already satisfied: six>=1.10 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (1.16.0)\n", "Requirement already satisfied: text-unidecode in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (1.3)\n", "Requirement already satisfied: tqdm in c:\\program files\\python311\\lib\\site-packages (from kaggle) (4.67.1)\n", "Requirement already satisfied: urllib3>=1.15.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from kaggle) (1.26.16)\n", "Requirement already satisfied: webencodings in c:\\program files\\python311\\lib\\site-packages (from kaggle) (0.5.1)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm->kaggle) (0.4.6)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "pip install kaggle" ] }, { "cell_type": "code", "execution_count": 30, "id": "0c7c78fc", "metadata": {}, "outputs": [], "source": [ "import os\n", "import json\n", "\n", "# Get the user's home directory\n", "home = os.path.expanduser(\"~\")\n", "kaggle_dir = os.path.join(home, \".kaggle\")\n", "kaggle_path = os.path.join(kaggle_dir, \"kaggle.json\")\n", "\n", "# Create the directory if it doesn't exist\n", "os.makedirs(kaggle_dir, exist_ok=True)\n", "\n", "# Replace with your actual credentials or securely load from environment variables\n", "kaggle_json = {\n", " \"username\": \"sathvikkirank\",\n", " \"key\": \"4e476a595ed72c041efbd856398c5bee\"\n", "}\n", "\n", "# Write the file\n", "with open(kaggle_path, \"w\") as f:\n", " json.dump(kaggle_json, f)\n", "\n", "# Set file permissions (required for Kaggle CLI to work)\n", "os.chmod(kaggle_path, 0o600)\n" ] }, { "cell_type": "code", "execution_count": 31, "id": "ce656b75", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataset URL: https://www.kaggle.com/datasets/gauravduttakiit/resume-dataset\n", "License(s): CC0-1.0\n", "resume-dataset.zip: Skipping, found more recently modified local copy (use --force to force download)\n" ] } ], "source": [ "!kaggle datasets download -d gauravduttakiit/resume-dataset" ] }, { "cell_type": "code", "execution_count": null, "id": "61447abf", "metadata": {}, "outputs": [], "source": [ "import zipfile\n", "\n", "with zipfile.ZipFile(\"resume-dataset.zip\", 'r') as zip_ref:\n", " zip_ref.extractall(\"resume_dataset\")" ] }, { "cell_type": "code", "execution_count": 35, "id": "a585043b", "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "os.chdir(r\"F:\\New folder (2)\\resume-analyzer\")\n", "df = pd.read_csv(\"resume_dataset/UpdatedResumeDataSet.csv\")\n" ] }, { "cell_type": "code", "execution_count": 36, "id": "63f7fd63", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 962 entries, 0 to 961\n", "Data columns (total 2 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Category 962 non-null object\n", " 1 Resume 962 non-null object\n", "dtypes: object(2)\n", "memory usage: 15.2+ KB\n" ] }, { "data": { "text/plain": [ "Category 0\n", "Resume 0\n", "dtype: int64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "df = pd.read_csv(\"resume_dataset/UpdatedResumeDataSet.csv\") # or .json if applicable\n", "df.head()\n", "df.info()\n", "df.describe(include='all')\n", "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 37, "id": "9736043a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: pandas in c:\\program files\\python311\\lib\\site-packages (2.2.2)\n", "Requirement already satisfied: datasets in c:\\program files\\python311\\lib\\site-packages (3.3.2)\n", "Requirement already satisfied: numpy>=1.23.2 in c:\\program files\\python311\\lib\\site-packages (from pandas) (1.26.4)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from pandas) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\program files\\python311\\lib\\site-packages (from pandas) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in c:\\program files\\python311\\lib\\site-packages (from pandas) (2024.1)\n", "Requirement already satisfied: filelock in c:\\program files\\python311\\lib\\site-packages (from datasets) (3.13.1)\n", "Requirement already satisfied: pyarrow>=15.0.0 in c:\\program files\\python311\\lib\\site-packages (from datasets) (19.0.1)\n", "Requirement already satisfied: dill<0.3.9,>=0.3.0 in c:\\program files\\python311\\lib\\site-packages (from datasets) (0.3.8)\n", "Requirement already satisfied: requests>=2.32.2 in c:\\program files\\python311\\lib\\site-packages (from datasets) (2.32.3)\n", "Requirement already satisfied: tqdm>=4.66.3 in c:\\program files\\python311\\lib\\site-packages (from datasets) (4.67.1)\n", "Requirement already satisfied: xxhash in c:\\program files\\python311\\lib\\site-packages (from datasets) (3.5.0)\n", "Requirement already satisfied: multiprocess<0.70.17 in c:\\program files\\python311\\lib\\site-packages (from datasets) (0.70.16)\n", "Requirement already satisfied: fsspec<=2024.12.0,>=2023.1.0 in c:\\program files\\python311\\lib\\site-packages (from fsspec[http]<=2024.12.0,>=2023.1.0->datasets) (2024.2.0)\n", "Requirement already satisfied: aiohttp in c:\\program files\\python311\\lib\\site-packages (from datasets) (3.11.13)\n", "Requirement already satisfied: huggingface-hub>=0.24.0 in c:\\program files\\python311\\lib\\site-packages (from datasets) (0.29.3)\n", "Requirement already satisfied: packaging in c:\\program files\\python311\\lib\\site-packages (from datasets) (24.0)\n", "Requirement already satisfied: pyyaml>=5.1 in c:\\program files\\python311\\lib\\site-packages (from datasets) (6.0.1)\n", "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (2.5.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (1.3.2)\n", "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->datasets) (23.1.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (1.5.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (6.1.0)\n", "Requirement already satisfied: propcache>=0.2.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (0.3.0)\n", "Requirement already satisfied: yarl<2.0,>=1.17.0 in c:\\program files\\python311\\lib\\site-packages (from aiohttp->datasets) (1.18.3)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\program files\\python311\\lib\\site-packages (from huggingface-hub>=0.24.0->datasets) (4.12.1)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\koppo\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.32.2->datasets) (2023.7.22)\n", "Requirement already satisfied: colorama in c:\\program files\\python311\\lib\\site-packages (from tqdm>=4.66.3->datasets) (0.4.6)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[notice] A new release of pip is available: 25.0.1 -> 25.1.1\n", "[notice] To update, run: python.exe -m pip install --upgrade pip\n" ] } ], "source": [ "!pip install pandas datasets" ] }, { "cell_type": "code", "execution_count": 38, "id": "6cc7d729", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Datasets cleaned, normalized, and merged!\n", "📊 Final shape: (8056, 4)\n" ] } ], "source": [ "import pandas as pd\n", "from datasets import load_dataset\n", "import re\n", "\n", "# Load Hugging Face datasets\n", "ds1 = load_dataset(\"jacob-hugging-face/job-descriptions\", split='train')\n", "ds2 = load_dataset(\"facehuggerapoorv/resume-jd-match\", split='train')\n", "\n", "# Convert to pandas\n", "df1 = ds1.to_pandas()\n", "df2 = ds2.to_pandas()\n", "df3 = pd.read_csv(\"resume_dataset/UpdatedResumeDataSet.csv\") # Adjust path\n", "\n", "# Rename columns to standard format\n", "df1 = df1.rename(columns={'job_description': 'job_description'}) # already ok\n", "df1['resume'] = df1['position_title'] + \" \" + df1['company_name'] # synthesize a 'resume'\n", "df1['source'] = 'huggingface1'\n", "\n", "df2 = df2.rename(columns={'text': 'resume'})\n", "df2['job_description'] = \"\" # no job desc provided\n", "df2['source'] = 'huggingface2'\n", "\n", "df3 = df3.rename(columns={'Resume': 'resume'})\n", "df3['job_description'] = \"\" # assume resumes only\n", "df3['source'] = 'kaggle'\n", "\n", "# Define cleaning function\n", "def clean_text(text):\n", " if pd.isna(text):\n", " return \"\"\n", " text = re.sub(r'<[^>]+>', '', text)\n", " text = re.sub(r'[^a-zA-Z0-9\\s.,;:?!-]', '', text)\n", " text = re.sub(r'\\s+', ' ', text)\n", " return text.strip().lower()\n", "\n", "# Clean text\n", "for df in [df1, df2, df3]:\n", " df['resume'] = df['resume'].apply(clean_text)\n", " df['job_description'] = df['job_description'].apply(clean_text)\n", " df['has_jd'] = df['job_description'].apply(lambda x: bool(x.strip()))\n", "\n", "# Final merge on unified structure\n", "final_df = pd.concat(\n", " [df1[['resume', 'job_description', 'has_jd', 'source']],\n", " df2[['resume', 'job_description', 'has_jd', 'source']],\n", " df3[['resume', 'job_description', 'has_jd', 'source']]],\n", " ignore_index=True\n", ")\n", "\n", "# Shuffle and save\n", "final_df = final_df.sample(frac=1).reset_index(drop=True)\n", "final_df.to_csv(\"cleaned_resume_dataset.csv\", index=False)\n", "\n", "print(\"✅ Datasets cleaned, normalized, and merged!\")\n", "print(f\"📊 Final shape: {final_df.shape}\")\n" ] }, { "cell_type": "code", "execution_count": 40, "id": "aca9ae8f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " Advocate 1.00 1.00 1.00 3\n", " Arts 1.00 1.00 1.00 6\n", " Automation Testing 1.00 1.00 1.00 5\n", " Blockchain 1.00 1.00 1.00 7\n", " Business Analyst 1.00 1.00 1.00 4\n", " Civil Engineer 1.00 1.00 1.00 9\n", " Data Science 1.00 1.00 1.00 5\n", " Database 1.00 1.00 1.00 8\n", " DevOps Engineer 1.00 0.93 0.96 14\n", " DotNet Developer 1.00 1.00 1.00 5\n", " ETL Developer 1.00 1.00 1.00 7\n", " Electrical Engineering 1.00 1.00 1.00 6\n", " HR 1.00 1.00 1.00 12\n", " Hadoop 1.00 1.00 1.00 4\n", " Health and fitness 1.00 1.00 1.00 7\n", " Java Developer 1.00 1.00 1.00 15\n", " Mechanical Engineer 1.00 1.00 1.00 8\n", "Network Security Engineer 1.00 1.00 1.00 3\n", " Operations Manager 1.00 1.00 1.00 12\n", " PMO 0.88 1.00 0.93 7\n", " Python Developer 1.00 1.00 1.00 10\n", " SAP Developer 1.00 1.00 1.00 7\n", " Sales 1.00 1.00 1.00 8\n", " Testing 1.00 1.00 1.00 16\n", " Web Designing 1.00 1.00 1.00 5\n", "\n", " accuracy 0.99 193\n", " macro avg 0.99 1.00 1.00 193\n", " weighted avg 1.00 0.99 0.99 193\n", "\n" ] } ], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.metrics import classification_report\n", "\n", "# Use Kaggle part (df3) where categories may exist\n", "cat_df = df3.copy() # Use df3, which contains the 'Category' column\n", "cat_df = cat_df[cat_df['resume'].str.strip() != \"\"] # Ensure no blanks\n", "\n", "# Vectorize resume text\n", "vectorizer = TfidfVectorizer(max_features=3000)\n", "X = vectorizer.fit_transform(cat_df['resume'])\n", "\n", "# Assume category exists\n", "y = cat_df['Category']\n", "\n", "# Train/test split\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", "\n", "# Train classifier\n", "model = LogisticRegression(max_iter=1000)\n", "model.fit(X_train, y_train)\n", "\n", "# Evaluate\n", "y_pred = model.predict(X_test)\n", "print(classification_report(y_test, y_pred))\n" ] }, { "cell_type": "markdown", "id": "b121c42f", "metadata": {}, "source": [ "### Visualize results" ] }, { "cell_type": "code", "execution_count": 41, "id": "a6370863", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABEMAAAQDCAYAAACMBOWOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1RUx98G8GdpSy9iARQERIqICLFiYidgi4gKKhaMGlssUewRwYZdgz02ULHGlliwo5HYI9iIsRFNxIaAoggKvH/4sr9sQGWVZVnn+Zxzz5Fb5pnvvTGJ48y9kvz8/HwQEREREREREQlCQ9UdICIiIiIiIiIqTRwMISIiIiIiIiKhcDCEiIiIiIiIiITCwRAiIiIiIiIiEgoHQ4iIiIiIiIhIKBwMISIiIiIiIiKhcDCEiIiIiIiIiITCwRAiIiIiIiIiEgoHQ4iIiIiIiIhIKBwMISIiIrV0/fp1fPnllzAxMYFEIsHOnTtLtP3k5GRIJBJERUWVaLvqrGnTpmjatKmqu0FERPTROBhCREREH+zmzZvo378/7O3toaurC2NjYzRq1Ag//PADsrKylJrdq1cvXLp0CdOmTcO6detQp04dpeaVpuDgYEgkEhgbGxd5H69fvw6JRAKJRII5c+Yo3P69e/cQFhaGhISEEugtERGR+tFSdQeIiIhIPe3ZswedO3eGVCpFz549UbNmTeTk5ODEiRMYNWoUrly5gh9//FEp2VlZWTh58iQmTJiAb7/9VikZVatWRVZWFrS1tZXS/vtoaWnhxYsX+OWXXxAQECB3LCYmBrq6unj58uUHtX3v3j2Eh4fD1tYWtWvXLvZ1Bw4c+KA8IiKisoaDIURERKSw27dvo0uXLqhatSqOHDkCS0tL2bHBgwfjxo0b2LNnj9LyHz16BAAwNTVVWoZEIoGurq7S2n8fqVSKRo0aYePGjYUGQzZs2IA2bdpg27ZtpdKXFy9eQF9fHzo6OqWSR0REpGxcJkNEREQKmzVrFjIzM7Fq1Sq5gZACDg4OGDZsmOzn169fY8qUKahWrRqkUilsbW0xfvx4ZGdny11na2uLtm3b4sSJE6hXrx50dXVhb2+PtWvXys4JCwtD1apVAQCjRo2CRCKBra0tgDfLSwp+/W9hYWGQSCRy+w4ePIjPP/8cpqamMDQ0hJOTE8aPHy87/rZ3hhw5cgRffPEFDAwMYGpqivbt2yMpKanIvBs3biA4OBimpqYwMTFB79698eLFi7ff2P/o1q0b9u3bh/T0dNm+s2fP4vr16+jWrVuh8588eYKQkBC4ubnB0NAQxsbGaNWqFRITE2XnxMXFoW7dugCA3r17y5bbFNTZtGlT1KxZE+fPn0fjxo2hr68vuy//fWdIr169oKurW6h+Hx8fmJmZ4d69e8WulYiIqDRxMISIiIgU9ssvv8De3h5eXl7FOr9v374IDQ2Fp6cn5s+fjyZNmiAiIgJdunQpdO6NGzfQqVMneHt7Y+7cuTAzM0NwcDCuXLkCAPD398f8+fMBAF27dsW6deuwYMEChfp/5coVtG3bFtnZ2Zg8eTLmzp2Lr776CvHx8e+87tChQ/Dx8cHDhw8RFhaGESNG4LfffkOjRo2QnJxc6PyAgAA8e/YMERERCAgIQFRUFMLDw4vdT39/f0gkEmzfvl22b8OGDXB2doanp2eh82/duoWdO3eibdu2mDdvHkaNGoVLly6hSZMmsoEJFxcXTJ48GQDwzTffYN26dVi3bh0aN24sayc1NRWtWrVC7dq1sWDBAjRr1qzI/v3www+oUKECevXqhdzcXADA8uXLceDAASxcuBBWVlbFrpWIiKhU5RMREREpICMjIx9Afvv27Yt1fkJCQj6A/L59+8rtDwkJyQeQf+TIEdm+qlWr5gPIP378uGzfw4cP86VSaf7IkSNl+27fvp0PIH/27Nlybfbq1Su/atWqhfowadKk/H//b8/8+fPzAeQ/evTorf0uyFizZo1sX+3atfMrVqyYn5qaKtuXmJiYr6Ghkd+zZ89CeV9//bVcmx06dMg3Nzd/a+a/6zAwMMjPz8/P79SpU36LFi3y8/Pz83Nzc/MtLCzyw8PDi7wHL1++zM/NzS1Uh1QqzZ88ebJs39mzZwvVVqBJkyb5APKXLVtW5LEmTZrI7du/f38+gPypU6fm37p1K9/Q0DDfz8/vvTUSERGpEmeGEBERkUKePn0KADAyMirW+Xv37gUAjBgxQm7/yJEjAaDQu0Vq1KiBL774QvZzhQoV4OTkhFu3bn1wn/+r4F0ju3btQl5eXrGuSUlJQUJCAoKDg1GuXDnZ/lq1asHb21tW578NGDBA7ucvvvgCqampsntYHN26dUNcXBzu37+PI0eO4P79+0UukQHevGdEQ+PN/97l5uYiNTVVtgTo999/L3amVCpF7969i3Xul19+if79+2Py5Mnw9/eHrq4uli9fXuwsIiIiVeBgCBERESnE2NgYAPDs2bNinf/XX39BQ0MDDg4OcvstLCxgamqKv/76S26/jY1NoTbMzMyQlpb2gT0uLDAwEI0aNULfvn1RqVIldOnSBVu2bHnnwEhBP52cnAodc3FxwePHj/H8+XO5/f+txczMDAAUqqV169YwMjLC5s2bERMTg7p16xa6lwXy8vIwf/58VK9eHVKpFOXLl0eFChVw8eJFZGRkFDuzcuXKCr0sdc6cOShXrhwSEhIQGRmJihUrFvtaIiIiVeBgCBERESnE2NgYVlZWuHz5skLX/fcFpm+jqalZ5P78/PwPzih4n0UBPT09HD9+HIcOHUKPHj1w8eJFBAYGwtvbu9C5H+NjaikglUrh7++P6Oho7Nix462zQgBg+vTpGDFiBBo3boz169dj//79OHjwIFxdXYs9AwZ4c38UceHCBTx8+BAAcOnSJYWuJSIiUgUOhhAREZHC2rZti5s3b+LkyZPvPbdq1arIy8vD9evX5fY/ePAA6enpsi/DlAQzMzO5L68U+O/sEwDQ0NBAixYtMG/ePFy9ehXTpk3DkSNHcPTo0SLbLujntWvXCh37448/UL58eRgYGHxcAW/RrVs3XLhwAc+ePSvypbMFfvrpJzRr1gyrVq1Cly5d8OWXX6Jly5aF7klxB6aK4/nz5+jduzdq1KiBb775BrNmzcLZs2dLrH0iIiJl4GAIERERKWz06NEwMDBA37598eDBg0LHb968iR9++AHAm2UeAAp98WXevHkAgDZt2pRYv6pVq4aMjAxcvHhRti8lJQU7duyQO+/JkyeFrq1duzYAFPrcbwFLS0vUrl0b0dHRcoMLly9fxoEDB2R1KkOzZs0wZcoULFq0CBYWFm89T1NTs9Csk61bt+Kff/6R21cwaFPUwJGixowZgzt37iA6Ohrz5s2Dra0tevXq9db7SEREVBZoqboDREREpH6qVauGDRs2IDAwEC4uLujZsydq1qyJnJwc/Pbbb9i6dSuCg4MBAO7u7ujVqxd+/PFHpKeno0mTJjhz5gyio6Ph5+f31s+2foguXbpgzJgx6NChA4YOHYoXL15g6dKlcHR0lHuB6OTJk3H8+HG0adMGVatWxcOHD7FkyRJUqVIFn3/++Vvbnz17Nlq1aoWGDRuiT58+yMrKwsKFC2FiYoKwsLASq+O/NDQ08P3337/3vLZt22Ly5Mno3bs3vLy8cOnSJcTExMDe3l7uvGrVqsHU1BTLli2DkZERDAwMUL9+fdjZ2SnUryNHjmDJkiWYNGmS7FO/a9asQdOmTTFx4kTMmjVLofaIiIhKC2eGEBER0Qf56quvcPHiRXTq1Am7du3C4MGDMXbsWCQnJ2Pu3LmIjIyUnbty5UqEh4fj7NmzGD58OI4cOYJx48Zh06ZNJdonc3Nz7NixA/r6+hg9ejSio6MRERGBdu3aFeq7jY0NVq9ejcGDB2Px4sVo3Lgxjhw5AhMTk7e237JlS8TGxsLc3ByhoaGYM2cOGjRogPj4eIUHEpRh/PjxGDlyJPbv349hw4bh999/x549e2BtbS13nra2NqKjo6GpqYkBAwaga9euOHbsmEJZz549w9dffw0PDw9MmDBBtv+LL77AsGHDMHfuXJw6dapE6iIiIippknxF3uBFRERERERERKTmODOEiIiIiIiIiITCwRAiIiIiIiIiEgoHQ4iIiIiIiIhIKBwMISIiIiIiIqIy4fjx42jXrh2srKwgkUiwc+fOQuckJSXhq6++gomJCQwMDFC3bl3cuXNHoRwOhhARERERERFRmfD8+XO4u7tj8eLFRR6/efMmPv/8czg7OyMuLg4XL17ExIkToaurq1AOvyZDRERERERERGWORCLBjh074OfnJ9vXpUsXaGtrY926dR/VNmeGEBEREREREZHSZGdn4+nTp3Jbdna2wu3k5eVhz549cHR0hI+PDypWrIj69esXuZTmfbQUvoKIStSlvzNVklvdwlAluUREREREZZmumv4pWc/jW1V34a3GtC+P8PBwuX2TJk1CWFiYQu08fPgQmZmZmDFjBqZOnYqZM2ciNjYW/v7+OHr0KJo0aVLsttT0MRMRERERERGROhg3bhxGjBght08qlSrcTl5eHgCgffv2+O677wAAtWvXxm+//YZly5ZxMISIiIiIiIiIygapVPpBgx//Vb58eWhpaaFGjRpy+11cXHDixAmF2uJgCBEREREREZG6k3z6rwTV0dFB3bp1ce3aNbn9f/75J6pWrapQWxwMISIiIiIiIqIyITMzEzdu3JD9fPv2bSQkJKBcuXKwsbHBqFGjEBgYiMaNG6NZs2aIjY3FL7/8gri4OIVy+GldIhXjC1SJiIiIiMoOtX2BqudQVXfhrbJ+jyz2uXFxcWjWrFmh/b169UJUVBQAYPXq1YiIiMDff/8NJycnhIeHo3379gr1iYMhRCrGwRAiIiIiorJDbQdDPhum6i68Vdb5H1TdhUI+/UVFRERERERERET/wsEQIiIiIiIiIhIKB0OoTAkLC0Pt2rVV3Q0iIiIiIiL1ItEou1sZVDZ7RZ+UkydPQlNTE23atFF1Vz5IcHAw/Pz8VN0NAMD+n7diRN9A9GjXGD3aNcb4b4Px++n4UsvftCEGrbybo66HG4K6dMalixeZ+wlkMpfPlrnql8lcPlvmql8mcz/9XFIvHAwhpVu1ahWGDBmC48eP4969e6rujlozL18J3fsNwayl6zFzyTrU9KiLWaEjcDf5ptKzY/ftxZxZEeg/aDA2bd0BJydnDOzfB6mpqcxV40zm8tkyV/0ymctny1z1y2Tup59L6oeDIaRUmZmZ2Lx5MwYOHIg2bdrIPoVUYMaMGahUqRKMjIzQp08fvHz5UnbswIED0NXVRXp6utw1w4YNQ/PmzWU/b9u2Da6urpBKpbC1tcXcuXPlzs/OzsaYMWNgbW0NqVQKBwcHrFq1CgCQm5uLPn36wM7ODnp6enBycsIPP/zvTcdhYWGIjo7Grl27IJFIIJFIZN+vvnv3LgICAmBqaopy5cqhffv2SE5O/vib9g51vBrDs/7nsKxiAyvrqujWZzB09fTx59VLSs0FgHXRa+DfKQB+HTqimoMDvp8UDl1dXezcvo25apzJXD5b5qpfJnP5bJmrfpnM/fRzywSJpOxuZRAHQ0iptmzZAmdnZzg5OaF79+5YvXo1Cr7mvGXLFoSFhWH69Ok4d+4cLC0tsWTJEtm1LVq0gKmpKbZt+9+/uHJzc7F582YEBQUBAM6fP4+AgAB06dIFly5dQlhYGCZOnCg36NKzZ09s3LgRkZGRSEpKwvLly2Fo+Oazsnl5eahSpQq2bt2Kq1evIjQ0FOPHj8eWLVsAACEhIQgICICvry9SUlKQkpICLy8vvHr1Cj4+PjAyMsKvv/6K+Ph4GBoawtfXFzk5Ocq+rbJ7ceLIfrx8mQXHGrWUmvUqJwdJV6+gQUMv2T4NDQ00aOCFi4kXmKummcwtnVyRahUtV6RaRcsVqVbRckWqlbmll0vqSU2/oEzqYtWqVejevTsAwNfXFxkZGTh27BiaNm2KBQsWoE+fPujTpw8AYOrUqTh06JBsdoimpia6dOmCDRs2yM45fPgw0tPT0bFjRwDAvHnz0KJFC0ycOBEA4OjoiKtXr2L27NkIDg7Gn3/+iS1btuDgwYNo2bIlAMDe3l7WP21tbYSHh8t+trOzw8mTJ7FlyxYEBATA0NAQenp6yM7OhoWFhey89evXIy8vDytXroTk/0c616xZA1NTU8TFxeHLL78s8n5kZ2cjOztbbl9O9ivoSKXFvqd/3bqOCUN6IycnB7p6ehgdPgfWtvbvv/AjpKWnITc3F+bm5nL7zc3Ncfv2LeaqaSZzSydXpFpFyxWpVtFyRapVtFyRamVu6eWSeuLMEFKaa9eu4cyZM+jatSsAQEtLC4GBgbIlKklJSahfv77cNQ0bNpT7OSgoCHFxcbJ3jcTExKBNmzYwNTWVtdGoUSO5axo1aoTr168jNzcXCQkJ0NTURJMmTd7az8WLF+Ozzz5DhQoVYGhoiB9//BF37tx5Z22JiYm4ceMGjIyMYGhoCENDQ5QrVw4vX77EzZtvf39HREQETExM5LaVi+e+9fyiWFnbYvaPGxGxOBo+X3XCopmTcDeZ/3InIiIiIhKaqr8Yo2Zfk+HMEFKaVatW4fXr17CyspLty8/Ph1QqxaJFi4rVRt26dVGtWjVs2rQJAwcOxI4dOwq9d+Rd9PT03nl806ZNCAkJwdy5c9GwYUMYGRlh9uzZOH369Duvy8zMxGeffYaYmJhCxypUqPDW68aNG4cRI0bI7bv+6NU7s/5LW1sblpWtAQDVHF1w49pV7N2+Ef1HTFCoHUWYmZpBU1Oz0IunUlNTUb58eeaqaSZzSydXpFpFyxWpVtFyRapVtFyRamVu6eWSeiqbQzSk9l6/fo21a9di7ty5SEhIkG2JiYmwsrLCxo0b4eLiUmjQ4dSpU4XaCgoKQkxMDH755RdoaGjIfaLXxcUF8fHyn5aNj4+Ho6MjNDU14ebmhry8PBw7dqzIfsbHx8PLywuDBg2Ch4cHHBwcCs3s0NHRQW5urtw+T09PXL9+HRUrVoSDg4PcZmJi8tb7IpVKYWxsLLcpskSmKPl5eXj1SrnvKdHW0YFLDVecPnVSti8vLw+nT59ELXcP5qppJnNLJ1ekWkXLFalW0XJFqlW0XJFqZW7p5ZJ64swQUordu3cjLS0Nffr0KTQ40LFjR6xatQohISEIDg5GnTp10KhRI8TExODKlSty7/QA3gyGhIWFYdq0aejUqROk/xo8GDlyJOrWrYspU6YgMDAQJ0+exKJFi2QvYrW1tUWvXr3w9ddfIzIyEu7u7vjrr7/w8OFDBAQEoHr16li7di32798POzs7rFu3DmfPnoWdnZ0sw9bWFvv378e1a9dgbm4OExMTBAUFYfbs2Wjfvj0mT56MKlWq4K+//sL27dsxevRoVKlSRSn3NWblQnjUa4TyFS2Q9eI5ThyJxZXE8/h+RvFm2nyMHr16Y+L4MXB1rYmabrWwfl00srKy4NfBn7lqnMlcPlvmql8mc/lsmat+mcz99HPLhDL61ZayioMhpBSrVq1Cy5Yti5wl0bFjR8yaNQsuLi6YOHEiRo8ejZcvX6Jjx44YOHAg9u/fL3e+g4MD6tWrhzNnzmDBggVyxzw9PbFlyxaEhoZiypQpsLS0xOTJkxEcHCw7Z+nSpRg/fjwGDRqE1NRU2NjYYPz48QCA/v3748KFCwgMDIREIkHXrl0xaNAg7Nu3T3Z9v379EBcXhzp16iAzMxNHjx5F06ZNcfz4cYwZMwb+/v549uwZKleujBYtWsDY2LjkbuR/ZKSlYeGMUKQ9eQx9A0NUta+O72csgnudBkrLLODbqjXSnjzBkkWRePz4EZycXbBk+UqYK3nKoUi5ItUqWq5ItYqWK1KtouWKVKtouSLVytzSyyX1I8kv+M4pEanEpb8zVZJb3cJQJblERERERGWZrppOGdCrP0rVXXirrNOzVd2FQtT0MRMRERERERGRTBn9aktZxbtFRERERERERELhYAgRERERERERCYXLZIiIiIiIiIjUHb8moxDODCEiIiIiIiIioXAwhIiIiIiIiIiEwmUyREREREREROqOX5NRCO8WEREREREREQmFgyFEREREREREJBQukyEiIiIiIiJSd/yajEI4GEKkYtUtDFWSu+HCnVLP7OZhU+qZRERERERE/8VlMkREREREREQkFM4MISIiIiIiIlJ3/JqMQni3iIiIiIiIiEgoHAwhIiIiIiIiIqFwmQwRERERERGRuuPXZBTCmSFEREREREREJBQOhhARERERERGRULhMhoiIiIiIiEjd8WsyCuHdIiIiIiIiIiKhcDCEhHTy5EloamqiTZs2xTo/LCwMtWvXVm6nFLBpQwxaeTdHXQ83BHXpjEsXLyo989mTx/hlyQz8MMAfc3u3waqx/ZBy65rScwHV1KuqXJFqFS1XpFpFyxWpVtFyRapVtFyRamVu6eWSeuFgCAlp1apVGDJkCI4fP4579+699bz8/Hy8fv26FHv2frH79mLOrAj0HzQYm7bugJOTMwb274PU1FSlZb58/gzrJw+HhqYmOo+ajj4zV6J5UH/oGhgpLbOAKupVVa5ItYqWK1KtouWKVKtouSLVKlquSLUyt/RyywSJRtndyqCy2SsiJcrMzMTmzZsxcOBAtGnTBlFRUbJjcXFxkEgk2LdvHz777DNIpVKsX78e4eHhSExMhEQigUQiQVRUFPLz8xEWFgYbGxtIpVJYWVlh6NChSu//uug18O8UAL8OHVHNwQHfTwqHrq4udm7fprTMU79shnG5CmjTfxSsqjnDtKIl7NzqwKySldIyC6iiXlXlilSraLki1Sparki1ipYrUq2i5YpUK3NLL5fUDwdDSDhbtmyBs7MznJyc0L17d6xevRr5+fly54wdOxYzZsxAUlISvL29MXLkSLi6uiIlJQUpKSkIDAzEtm3bMH/+fCxfvhzXr1/Hzp074ebmptS+v8rJQdLVK2jQ0Eu2T0NDAw0aeOFi4gWl5d74/SQs7B2xM3IyFg7qjDUTBiDh6F6l5RVQVb2qyBWpVtFyRapVtFyRahUtV6RaRcsVqVbmll4uqScOhpBwVq1ahe7duwMAfH19kZGRgWPHjsmdM3nyZHh7e6NatWqoXLkyDA0NoaWlBQsLC1hYWEBPTw937tyBhYUFWrZsCRsbG9SrVw/9+vV7Z3Z2djaePn0qt2VnZxe772npacjNzYW5ubncfnNzczx+/LjY7Sgq/VEKLhz+BWaVKiNgdAQ8WrTD4bWLcen4AaVlAqqrVxW5ItUqWq5ItYqWK1KtouWKVKtouSLVytzSyy0zNCRldyuDOBhCQrl27RrOnDmDrl27AgC0tLQQGBiIVatWyZ1Xp06d97bVuXNnZGVlwd7eHv369cOOHTve+36RiIgImJiYyG2zZ0Z8eEGlJD8vH5Vsq6NJYB9UsnVA7eZt4N6sNRKO7FZ114iIiIiIiBTGwRASyqpVq/D69WtYWVlBS0sLWlpaWLp0KbZt24aMjAzZeQYGBu9ty9raGteuXcOSJUugp6eHQYMGoXHjxnj16tVbrxk3bhwyMjLktlFjxhW7/2amZtDU1Cz0AqjU1FSUL1++2O0oytC0HMpb2cjtM7eywdPUh0rLBFRXrypyRapVtFyRahUtV6RaRcsVqVbRckWqlbmll0vqiYMhJIzXr19j7dq1mDt3LhISEmRbYmIirKyssHHjxrdeq6Ojg9zc3EL79fT00K5dO0RGRiIuLg4nT57EpUuX3tqOVCqFsbGx3CaVSotdg7aODlxquOL0qZOyfXl5eTh9+iRquXsUux1FVXZ0xZOUv+X2Pbn/N4zLV1JaJqC6elWRK1KtouWKVKtouSLVKlquSLWKlitSrcwtvdwyQ9VfjFGzr8loqboDRKVl9+7dSEtLQ58+fWBiYiJ3rGPHjli1ahVmz55d5LW2tra4ffs2EhISUKVKFRgZGWHjxo3Izc1F/fr1oa+vj/Xr10NPTw9Vq1ZVah09evXGxPFj4OpaEzXdamH9umhkZWXBr4O/0jLr+nbE+snDcHLXBjjXb4KUW9eQeHQvfL4errTMAqqoV1W5ItUqWq5ItYqWK1KtouWKVKtouSLVytzSyyX1w8EQEsaqVavQsmXLQgMhwJvBkFmzZuHixYtFXtuxY0ds374dzZo1Q3p6OtasWQNTU1PMmDEDI0aMQG5uLtzc3PDLL78UemFTSfNt1RppT55gyaJIPH78CE7OLliyfCXMlTj1z7KaEzoMD8OxzasQv3M9TCpYoHn3gXBt1EJpmQVUUa+qckWqVbRckWoVLVekWkXLFalW0XJFqpW5pZdL6keS/99vihJRqXr57neuKs2GC3dKPbObh837TyIiIiIiUiFdNZ0yoNdiuqq78FZZh8eruguFlM3FO0RERERERERESsLBECIiIiIiIiISippOACIiIiIiIiIimTL61ZayineLiIiIiIiIiITCwRAiIiIiIiIiEgqXyRARERERERGpO4lE1T1QK5wZQkRERERERERC4WAIEREREREREQmFy2SIiIiIiIiI1B2/JqMQ3i0iIiIiIiIiEgpnhhAJqpuHTalnHkx6UOqZAODtUkkluUREREREVDZxMISIiIiIiIhI3fFrMgrhMhkiIiIiIiIiEgoHQ4iIiIiIiIhIKFwmQ0RERERERKTu+DUZhfBuEREREREREZFQOBhCRERERERERELhMhkiIiIiIiIidcevySiEM0Pog9ja2mLBggWq7kaJSU5OhkQiQUJCgqq7QkRERERERErGwZASdvLkSWhqaqJNmzYfdH1YWBhq165dsp36CFFRUTA1NS20/+zZs/jmm2+UlhscHAyJRPLWzdbW9qPa9vPzk9tnbW2NlJQU1KxZ8+M6Xko2bYhBK+/mqOvhhqAunXHp4sVPMnf/5tUI6dRYbps5tLtSM/9NFfdZlGcrYq5ItYqWK1KtouWKVKtouSLVytzSyyX1wsGQErZq1SoMGTIEx48fx71791TdHaWpUKEC9PX1ldb+Dz/8gJSUFNkGAGvWrJH9fPbs2RLN09TUhIWFBbS0yv7Ksdh9ezFnVgT6DxqMTVt3wMnJGQP790FqauonmVvJ2g6hK3bItm+nLlJqXgFV1CvasxUpV6RaRcsVqVbRckWqVbRckWplbunllgkSjbK7lUFls1dqKjMzE5s3b8bAgQPRpk0bREVFyR0vapbFzp07Ifn/tV1RUVEIDw9HYmKibAZEQRt37txB+/btYWhoCGNjYwQEBODBgweydgpmlKxevRo2NjYwNDTEoEGDkJubi1mzZsHCwgIVK1bEtGnT5PLnzZsHNzc3GBgYwNraGoMGDUJmZiYAIC4uDr1790ZGRoasP2FhYQAKL5Mpbv/WrVsHW1tbmJiYoEuXLnj27FmR99LExAQWFhayDQBMTU1lPz948ACtWrWCoaEhKlWqhB49euDx48ey63/66Se4ublBT08P5ubmaNmyJZ4/f46wsDBER0dj165dspri4uIKLZOJi4uDRCLB4cOHUadOHejr68PLywvXrl2T6+fUqVNRsWJFGBkZoW/fvhg7dqzSZ/asi14D/04B8OvQEdUcHPD9pHDo6upi5/Ztn2SupqYmjM3MZZuBsalS8wqool7Rnq1IuSLVKlquSLWKlitSraLlilQrc0svl9QPB0NK0JYtW+Ds7AwnJyd0794dq1evRn5+frGvDwwMxMiRI+Hq6iqbAREYGIi8vDy0b98eT548wbFjx3Dw4EHcunULgYGBctffvHkT+/btQ2xsLDZu3IhVq1ahTZs2+Pvvv3Hs2DHMnDkT33//PU6fPi27RkNDA5GRkbhy5Qqio6Nx5MgRjB49GgDg5eWFBQsWwNjYWNafkJCQQv1WpH87d+7E7t27sXv3bhw7dgwzZsxQ5BYDANLT09G8eXN4eHjg3LlziI2NxYMHDxAQEAAASElJQdeuXfH1118jKSkJcXFx8Pf3R35+PkJCQhAQEABfX19ZTV5eXm/NmjBhAubOnYtz585BS0sLX3/9texYTEwMpk2bhpkzZ+L8+fOwsbHB0qVLFa5HEa9ycpB09QoaNPxfnzU0NNCggRcuJl745HIB4FHK35jcrwOmDwpEzILJSHv04P0XfSRV1CvasxUpV6RaRcsVqVbRckWqVbRckWplbunlknoq+2sC1MiqVavQvfub9xn4+voiIyMDx44dQ9OmTYt1vZ6eHgwNDaGlpSWbDQEABw8exKVLl3D79m1YW1sDANauXQtXV1ecPXsWdevWBfBmUGL16tUwMjJCjRo10KxZM1y7dg179+6FhoYGnJycMHPmTBw9ehT169cHAAwfPlyWY2tri6lTp2LAgAFYsmQJdHR0YGJiAolEItef/zp8+HCx+xcVFQUjIyMAQI8ePXD48OFCs1XeZ9GiRfDw8MD06dNl+1avXg1ra2v8+eefyMzMxOvXr+Hv74+qVasCANzc3OTuc3Z29jtrKjBt2jQ0adIEADB27Fi0adMGL1++hK6uLhYuXIg+ffqgd+/eAIDQ0FAcOHBANrNGGdLS05Cbmwtzc3O5/ebm5rh9+9Ynl2tTvQa6DB6HClY2eJaeigNb1mDxxG8RMj8aunrKW6alinpFe7Yi5YpUq2i5ItUqWq5ItYqWK1KtzC293DKDX5NRCGeGlJBr167hzJkz6Nq1KwBAS0sLgYGBWLVq1Ue3nZSUBGtra9lAAwDUqFEDpqamSEpKku2ztbWVDTQAQKVKlVCjRg1oaGjI7Xv48KHs50OHDqFFixaoXLkyjIyM0KNHD6SmpuLFixdK75+lpaVcX4orMTERR48ehaGhoWxzdnYG8Gb2ibu7O1q0aAE3Nzd07twZK1asQFpamsI5AFCrVi25/gKQ9fnatWuoV6+e3Pn//fm/srOz8fTpU7ktOzv7g/omAhfPBnD3agYr22pwql0PfSfMwssXmUj87Yiqu0ZERERERGqMgyElZNWqVXj9+jWsrKygpaUFLS0tLF26FNu2bUNGRgaAN1O0/rts5tWrVyXWB21tbbmfJRJJkfvy8vIAvPmcbNu2bVGrVi1s27YN58+fx+LFiwEAOTk5Jdavd/WvoC+KyMzMRLt27ZCQkCC3Xb9+HY0bN4ampiYOHjyIffv2oUaNGli4cCGcnJxw+/btj+pzwbtdPqTPBSIiImBiYiK3zZ4ZUezrzUzNoKmpWegFUKmpqShfvvwH96us5v6XnoERyltaI/X+P0rNUUW9oj1bkXJFqlW0XJFqFS1XpFpFyxWpVuaWXi6pJw6GlIDXr19j7dq1mDt3rtwfzhMTE2FlZYWNGzcCePMFlmfPnuH58+eyawte2FlAR0cHubm5cvtcXFxw9+5d3L17V7bv6tWrSE9PR40aNT643+fPn0deXh7mzp2LBg0awNHRsdAXcIrqz38pq39v4+npiStXrsDW1hYODg5ym4GBAYA3AxeNGjVCeHg4Lly4AB0dHezYsaPYNRWHk5NToa/avO8rN+PGjUNGRobcNmrMuGJnauvowKWGK06fOinbl5eXh9OnT6KWu4diBShAVbn/lZ31AqkP/oGRqfn7T/4IqqhXtGcrUq5ItYqWK1KtouWKVKtouSLVytzSyy0zVP3FGDX7mgzfGVICdu/ejbS0NPTp0wcmJiZyxzp27IhVq1ZhwIABqF+/PvT19TF+/HgMHToUp0+fLvTFGVtbW9y+fRsJCQmoUqUKjIyM0LJlS7i5uSEoKAgLFizA69evMWjQIDRp0gR16tT54H47ODjg1atXWLhwIdq1a4f4+HgsW7asUH8yMzNx+PBhuLu7Q19fv9AndZXVv7cZPHgwVqxYga5du2L06NEoV64cbty4gU2bNmHlypU4d+4cDh8+jC+//BIVK1bE6dOn8ejRI7i4uMhq2r9/P65duwZzc/NCz6y4hgwZgn79+qFOnTrw8vLC5s2bcfHiRdjb27/1GqlUCqlUKrfv5WvFcnv06o2J48fA1bUmarrVwvp10cjKyoJfB/8PKaNM5/4SvRg16jSCWYVKePrkMfZvWQMNDQ14fN5SaZkFVFGvSM9WtFyRahUtV6RaRcsVqVbRckWqlbmll0vqh4MhJWDVqlVo2bJlkX+o7tixI2bNmoWLFy+iVq1aWL9+PUaNGoUVK1agRYsWCAsLwzfffCN3/vbt29GsWTOkp6djzZo1CA4Oxq5duzBkyBA0btwYGhoa8PX1xcKFCz+q3+7u7pg3bx5mzpyJcePGoXHjxoiIiEDPnj1l53h5eWHAgAEIDAxEamoqJk2aJPu8bgGJRKKU/r2NlZUV4uPjMWbMGHz55ZfIzs5G1apV4evrCw0NDRgbG+P48eNYsGABnj59iqpVq2Lu3Llo1aoVAKBfv36Ii4tDnTp1kJmZiaNHj8LW1lbhfgQFBeHWrVsICQnBy5cvERAQgODgYJw5c6aEK5bn26o10p48wZJFkXj8+BGcnF2wZPlKmCt56p8qcjNSHyFmQTieP3sKQ2NT2Dm7Ycj0ZTA0MVVaZgFV1CvSsxUtV6RaRcsVqVbRckWqVbRckWplbunlkvqR5Cvy7Vcieidvb29YWFhg3bp1xb5G0Zkh6uxgkvI/i1sUb5dKKsklIiIiIvWjq6ZTBvTaLVF1F94q65dBqu5CIWr6mIlU78WLF1i2bBl8fHygqamJjRs34tChQzh48KCqu0ZERERERETvwMEQog8kkUiwd+9eTJs2DS9fvoSTkxO2bduGli2V/z4LIiIiIiIi+nAcDCH6QHp6ejh06JCqu0FERERERARIJKrugVopm9+4ISIiIiIiIiJSEg6GEBEREREREZFQuEyGiIiIiIiISN1JONdBEbxbRERERERERCQUDoYQERERERERkVC4TIaIiIiIiIhI3fFrMgrhzBAiIiIiIiIiEgpnhhBRqfF2qaSS3LnHbqgkd2QTB5XkEhERERGpq+PHj2P27Nk4f/48UlJSsGPHDvj5+RV57oABA7B8+XLMnz8fw4cPVyiHM0OIiIiIiIiI1J1Eo+xuCnj+/Dnc3d2xePHid563Y8cOnDp1ClZWVh90uzgzhIiIiIiIiIjKhFatWqFVq1bvPOeff/7BkCFDsH//frRp0+aDcjgYQkRERERERERKk52djezsbLl9UqkUUqlU4bby8vLQo0cPjBo1Cq6urh/cJy6TISIiIiIiIlJ3EkmZ3SIiImBiYiK3RUREfFCZM2fOhJaWFoYOHfpRt4szQ4iIiIiIiIhIacaNG4cRI0bI7fuQWSHnz5/HDz/8gN9//x2Sj/yUMGeGEBEREREREZHSSKVSGBsby20fMhjy66+/4uHDh7CxsYGWlha0tLTw119/YeTIkbC1tVWoLc4MISIiIiIiIlJzHztTQh306NEDLVu2lNvn4+ODHj16oHfv3gq1xcEQIiIiIiIiIioTMjMzcePGDdnPt2/fRkJCAsqVKwcbGxuYm5vLna+trQ0LCws4OTkplMNlMlTikpOTIZFIkJCQUCbai4qKgqmp6Uf3QyKRYOfOnR/dDhERERERERXt3Llz8PDwgIeHBwBgxIgR8PDwQGhoaInmcDCEFBYcHAyJRCLbzM3N4evri4sXL6q6a0qVkpLy3u9dl5ZNG2LQyrs56nq4IahLZ1wqpXsvSu6273tj7aA2hbbTm5YoNRcQ5x6LmCtSraLlilSraLki1Sparki1Mrf0clXt339GK2ubIpo2bYr8/PxCW1RUVJHnJycnY/jw4QrfLw6G0Afx9fVFSkoKUlJScPjwYWhpaaFt27aq7pZSWVhYfNBLfkpa7L69mDMrAv0HDcamrTvg5OSMgf37IDU1lbklpM2YBegcsU62tRw6FQBQ1fNzpWUCYt1j0XJFqlW0XJFqFS1XpFpFyxWpVuaWXi6pHw6G0AeRSqWwsLCAhYUFateujbFjx+Lu3bt49OhRkecfO3YM9erVg1QqhaWlJcaOHYvXr1/Ljufl5WHWrFlwcHCAVCqFjY0Npk2bVmRbubm5+Prrr+Hs7Iw7d+4AANLT09G/f39UqlQJurq6qFmzJnbv3i133f79++Hi4gJDQ0PZYE6Bs2fPwtvbG+XLl4eJiQmaNGmC33//Xe76fy+TKVi6s337djRr1gz6+vpwd3fHyZMnFb6XiloXvQb+nQLg16Ejqjk44PtJ4dDV1cXO7duYW0J0jUygZ1JOtv1z6SyMKliiUnU3pWUCYt1j0XJFqlW0XJFqFS1XpFpFyxWpVuaWXi6pHw6G0EfLzMzE+vXr4eDgUOhlNgDwzz//oHXr1qhbty4SExOxdOlSrFq1ClOnTpWdM27cOMyYMQMTJ07E1atXsWHDBlSqVKlQW9nZ2ejcuTMSEhLw66+/wsbGBnl5eWjVqhXi4+Oxfv16XL16FTNmzICmpqbsuhcvXmDOnDlYt24djh8/jjt37iAkJER2/NmzZ+jVqxdOnDiBU6dOoXr16mjdujWePXv2ztonTJiAkJAQJCQkwNHREV27dpUb5Clpr3JykHT1Cho09JLt09DQQIMGXriYeIG5SpD7+hVunTkKh4beSn1Dt2j3WKRckWoVLVekWkXLFalW0XJFqpW5pZdbZkjK8FYG8Wsy9EF2794NQ0NDAMDz589haWmJ3bt3Q0Oj8PjakiVLYG1tjUWLFkEikcDZ2Rn37t3DmDFjEBoaiufPn+OHH37AokWL0KtXLwBAtWrV8Pnn8ksSMjMz0aZNG2RnZ+Po0aMwMTEBABw6dAhnzpxBUlISHB0dAQD29vZy17569QrLli1DtWrVAADffvstJk+eLDvevHlzufN//PFHmJqa4tixY+9c/hMSEoI2bdoAAMLDw+Hq6oobN27A2dn5/TfxA6SlpyE3N7fQoJO5uTlu376llEwRc//tbuIp5GRlolqDlu8/+SOIdo9FyhWpVtFyRapVtFyRahUtV6RamVt6uaSeODOEPkizZs2QkJCAhIQEnDlzBj4+PmjVqhX++uuvQucmJSWhYcOGcn+r3qhRI2RmZuLvv/9GUlISsrOz0aJFi3dmdu3aFc+fP8eBAwdkAyEAkJCQgCpVqsgGQoqir68vGwgBAEtLSzx8+FD284MHD9CvXz9Ur14dJiYmMDY2RmZmpmwZztvUqlVLrk0Acu3+V3Z2Np4+fSq3ZWdnvzODVOv6bwdQuUYd6JsWnvVERERERETqiYMh9EEMDAzg4OAABwcH1K1bFytXrsTz58+xYsUKhdvS09Mr1nmtW7fGxYsXC72XozjXa2try/0skUiQn58v+7lXr15ISEjADz/8gN9++w0JCQkwNzdHTk5OsdstGOzJy8t76/kREREwMTGR22bPjHhv/wuYmZpBU1Oz0AugUlNTUb58+WK3oyjRcgtkpj7E/T8S4NDoS6VniXaPRcoVqVbRckWqVbRckWoVLVekWplberllhaq/GFNSX5MpLRwMoRIhkUigoaGBrKysQsdcXFxw8uRJucGH+Ph4GBkZoUqVKqhevTr09PRw+PDhd2YMHDgQM2bMwFdffYVjx47J9teqVQt///03/vzzzw/uf3x8PIYOHYrWrVvD1dUVUqkUjx8//uD23mbcuHHIyMiQ20aNGVfs67V1dOBSwxWnT/1vQCgvLw+nT59ELXePEu+vqLkFbpw8CF0jE1SpWU/pWaLdY5FyRapVtFyRahUtV6RaRcsVqVbmll4uqSe+M4Q+SHZ2Nu7fvw8ASEtLw6JFi5CZmYl27doVOnfQoEFYsGABhgwZgm+//RbXrl3DpEmTMGLECGhoaEBXVxdjxozB6NGjoaOjg0aNGuHRo0e4cuUK+vTpI9fWkCFDkJubi7Zt22Lfvn34/PPP0aRJEzRu3BgdO3bEvHnz4ODggD/++AMSiQS+vr7Fqqd69epYt24d6tSpg6dPn2LUqFHFnrGiCKlUWujzvC8VfN9qj169MXH8GLi61kRNt1pYvy4aWVlZ8OvgX4I9ZW5+Xh5unjoI+wYtoPGvl/Eqk2j3WKRckWoVLVekWkXLFalW0XJFqpW5pZdL6oeDIfRBYmNjZe/IMDIygrOzM7Zu3YqmTZsiOTlZ7tzKlStj7969GDVqFNzd3VGuXDn06dMH33//veyciRMnQktLC6Ghobh37x4sLS0xYMCAIrOHDx+OvLw8tG7dGrGxsfDy8sK2bdsQEhIie6+Ig4MDZsyYUex6Vq1ahW+++Qaenp6wtrbG9OnT5b42U5b4tmqNtCdPsGRRJB4/fgQnZxcsWb4S5kqe+idabsofCXj+5BGqN1T+EpkCot1jkXJFqlW0XJFqFS1XpFpFyxWpVuaWXm5ZUFaXo5RVkvx/r10golKn6MwQUtzcYzdUkjuyiYNKcomIiIjow+mq6ZQBo8BoVXfhrZ5t7qXqLhTCd4YQERERERERkVDUdMyLiIiIiIiIiApwmYxiODOEiIiIiIiIiITCwRAiIiIiIiIiEgqXyRARERERERGpOS6TUQxnhhARERERERGRUDgYQkRERERERERC4TIZIiIiIiIiInXHVTIK4cwQIiIiIiIiIhIKB0OIiIiIiIiISChcJkNEn7yRTRxUknshOV0luR62pirJJSIiIiLV4ddkFMOZIUREREREREQkFA6GEBEREREREZFQuEyGiIiIiIiISM1xmYxiODOEiIiIiIiIiITCwRAiIiIiIiIiEgqXyRARERERERGpOS6TUQxnhhARERERERGRUDgYQkRERERERERC4WCIYOLi4iCRSJCenq7qrqhccHAw/Pz8VN0NIiIiIiKijyaRSMrsVhZxMKQMCQ4OlvsHxtzcHL6+vrh48WKJZXh5eSElJQUmJiYl1qYyZGVloVy5cihfvjyys7NV3Z33ioqKgqmpaanlbdoQg1bezVHXww1BXTrjUgn+M8Jc1ecCwO4t0QhuUx8xP84rlTzR7rEqckWqVbRckWoVLVekWkXLFalW5pbu/8OR+uBgSBnj6+uLlJQUpKSk4PDhw9DS0kLbtm1LrH0dHR1YWFiU2dG5Atu2bYOrqyucnZ2xc+dOVXenTIndtxdzZkWg/6DB2LR1B5ycnDGwfx+kpqYy9xPIBYBbf15FXOwOWNs5KD0LEO8eqyJXpFpFyxWpVtFyRapVtFyRamVu6f4/HKkXDoaUMVKpFBYWFrCwsEDt2rUxduxY3L17F48ePQJQ9DKXhIQESCQSJCcnAwD++usvtGvXDmZmZjAwMICrqyv27t1b5PUFMxr2798PFxcXGBoaygZk/m3lypVwcXGBrq4unJ2dsWTJEtmxnJwcfPvtt7C0tISuri6qVq2KiIgIAEB+fj7CwsJgY2MDqVQKKysrDB069L33YdWqVejevTu6d++OVatWFToukUiwcuVKdOjQAfr6+qhevTp+/vln2fHc3Fz06dMHdnZ20NPTg5OTE3744Ye35q1duxbm5uaFZqH4+fmhR48eAIDExEQ0a9YMRkZGMDY2xmeffYZz584hLi4OvXv3RkZGhmxWT1hY2Htr/FDrotfAv1MA/Dp0RDUHB3w/KRy6urrYuX2b0jKZW3q5L7NeYPnsUPQeMh76hsZKzSog2j1WRa5ItYqWK1KtouWKVKtouSLVytzSyy0TJGV4K4M4GFKGZWZmYv369XBwcIC5uXmxrxs8eDCys7Nx/PhxXLp0CTNnzoShoeFbz3/x4gXmzJmDdevW4fjx47hz5w5CQkJkx2NiYhAaGopp06YhKSkJ06dPx8SJExEdHQ0AiIyMxM8//4wtW7bg2rVriImJga2tLYA3Mzzmz5+P5cuX4/r169i5cyfc3Nze2f+bN2/i5MmTCAgIQEBAAH799Vf89ddfhc4LDw9HQEAALl68iNatWyMoKAhPnjwBAOTl5aFKlSrYunUrrl69itDQUIwfPx5btmwpMrNz587Izc2VG1B5+PAh9uzZg6+//hoAEBQUhCpVquDs2bM4f/48xo4dC21tbXh5eWHBggUwNjaWzer59/0rSa9ycpB09QoaNPSS7dPQ0ECDBl64mHhBKZnMLb1cAFi3dDbc6zaCq0c9peYUEO0eqyJXpFpFyxWpVtFyRapVtFyRamVu6eWSetJSdQdI3u7du2UDF8+fP4elpSV2794NDY3ij1vduXMHHTt2lA062Nvbv/P8V69eYdmyZahWrRoA4Ntvv8XkyZNlxydNmoS5c+fC398fAGBnZ4erV69i+fLl6NWrF+7cuYPq1avj888/h0QiQdWqVeX6YmFhgZYtW0JbWxs2NjaoV+/df8hbvXo1WrVqBTMzMwCAj48P1qxZU2i2RXBwMLp27QoAmD59OiIjI3HmzBn4+vpCW1sb4eHhsnPt7Oxw8uRJbNmyBQEBAYUy9fT00K1bN6xZswadO3cGAKxfvx42NjZo2rSprJZRo0bB2dkZAFC9enXZ9SYmJpBIJLCwsHhnbR8rLT0Nubm5hQbHzM3Ncfv2Leaqee6pYwfw141rCF2wRmkZ/yXaPVZFrki1ipYrUq2i5YpUq2i5ItXK3NLLJfXEmSFlTLNmzZCQkICEhAScOXMGPj4+aNWqVZEzI95m6NChmDp1Kho1aoRJkya99wWs+vr6soEQALC0tMTDhw8BvBmQuXnzJvr06QNDQ0PZNnXqVNy8eRPAm0GJhIQEODk5YejQoThw4ICsrc6dOyMrKwv29vbo168fduzYgdevX7+1L7m5uYiOjkb37t1l+7p3746oqCjk5eXJnVurVi3Zrw0MDGBsbCzrNwAsXrwYn332GSpUqABDQ0P8+OOPuHPnzluz+/XrhwMHDuCff/4B8GYJUcFLbQFgxIgR6Nu3L1q2bIkZM2bI6ldEdnY2nj59KrepwwtiSflSHz3Ahh/nof+ocOjoSFXdHSIiIiJSM6r+Ygy/JkMfxcDAAA4ODnBwcEDdunWxcuVKPH/+HCtWrAAA2QyR/Px82TWvXr2Sa6Nv3764desWevTogUuXLqFOnTpYuHDhWzO1tbXlfpZIJLL2MzMzAQArVqyQDdIkJCTg8uXLOHXqFADA09MTt2/fxpQpU5CVlYWAgAB06tQJAGBtbY1r165hyZIl0NPTw6BBg9C4ceNCfS6wf/9+/PPPPwgMDISWlha0tLTQpUsX/PXXXzh8+PB7+10wYLJp0yaEhISgT58+OHDgABISEtC7d2/k5OS89T54eHjA3d0da9euxfnz53HlyhUEBwfLjoeFheHKlSto06YNjhw5gho1amDHjh1vba8oERERMDExkdtmz4wo9vVmpmbQ1NQs9AKo1NRUlC9fXqG+KIK5ys9NvvEHnqanYdLQXvi6nRe+bueFa5d+x6Gft+Drdl7Iy81VSq5I91hVuSLVKlquSLWKlitSraLlilQrc0svl9QTB0PKOIlEAg0NDWRlZQEAKlSoAAByLzhNSEgodJ21tTUGDBiA7du3Y+TIkbLBFEVVqlQJVlZWuHXrlmyQpmCzs7OTnWdsbIzAwECsWLECmzdvxrZt22Tv79DT00O7du0QGRmJuLg4nDx5EpcuXSoyb9WqVejSpYvcwEtCQgK6dOlS5ItU3yY+Ph5eXl4YNGgQPDw84ODgUKyZHH379kVUVBTWrFmDli1bwtraWu64o6MjvvvuOxw4cAD+/v5Ys+bNcgYdHR3kFuMPq+PGjUNGRobcNmrMuGLXpa2jA5carjh96qRsX15eHk6fPola7h7FbkdRzFV+bg33Opi6eAMmL1wn2+yqu6BBUx9MXrgOGpqaSskV6R6rKlekWkXLFalW0XJFqlW0XJFqZW7p5ZJ64jtDypjs7Gzcv38fAJCWloZFixYhMzMT7dq1AwA4ODjA2toaYWFhmDZtGv7880/MnTtXro3hw4ejVatWcHR0RFpaGo4ePQoXF5cP7lN4eDiGDh0KExMT+Pr6Ijs7G+fOnUNaWhpGjBiBefPmwdLSEh4eHtDQ0MDWrVthYWEBU1NTREVFITc3F/Xr14e+vj7Wr18PPT09ufeKFHj06BF++eUX/Pzzz6hZs6bcsZ49e6JDhw548uQJypUr994+V69eHWvXrsX+/fthZ2eHdevW4ezZs3IDOEXp1q0bQkJCsGLFCqxdu1a2PysrC6NGjUKnTp1gZ2eHv//+G2fPnkXHjh0BALa2tsjMzMThw4fh7u4OfX196OvrF2pfKpVCKpVfAvHy7auGitSjV29MHD8Grq41UdOtFtavi0ZWVhb8Ovgr1pCCmKvcXD19A1SxrSa3T0dXD4bGJoX2lzRR7rEqc0WqVbRckWoVLVekWkXLFalW5pZebllQVpejlFUcDCljYmNjYWlpCQAwMjKCs7Mztm7dKnuJp7a2NjZu3IiBAweiVq1aqFu3LqZOnSp76Sfw5r0bgwcPxt9//w1jY2P4+vpi/vz5H9ynvn37Ql9fH7Nnz8aoUaNgYGAANzc3DB8+XNbPWbNm4fr169DU1ETdunWxd+9eaGhowNTUFDNmzMCIESOQm5sLNzc3/PLLL0V+HWft2rUwMDBAixYtCh1r0aIF9PT0sH79+mJ9mrd///64cOECAgMDIZFI0LVrVwwaNAj79u1753UmJibo2LEj9uzZAz8/P9n+gul2PXv2xIMHD1C+fHn4+/vLXtLq5eWFAQMGIDAwEKmpqZg0aZLSPq/r26o10p48wZJFkXj8+BGcnF2wZPlKmCt56h9zSydXFUS7x6rIFalW0XJFqlW0XJFqFS1XpFqZ+2n/Pxx9HEn+v18+QURo0aIFXF1dERkZWSp5is4MIfVxITldJbketqYqySUiIiL6FOiq6ZSBCr03q7oLb/VoTaCqu1CImj5mopKXlpaGuLg4xMXFYcmSJaruDhERERERUbFxmYxiOBhC9P88PDyQlpaGmTNnwsnJSdXdISIiIiIiIiXhYAjR/0tOTlZ1F4iIiIiIiKgUcDCEiIiIiIiISN1xlYxCNFTdASIiIiIiIiKi0sTBECIiIiIiIiISCpfJEBEREREREak5fk1GMZwZQkRERERERERC4WAIEREREREREQmFy2SIiIiIiIiI1ByXySiGgyFEREriYWuqktxeMRdKPTM6yKPUM4mIiIiIPhSXyRARERERERGRUDgYQkRERERERERC4TIZIiIiIiIiIjXHd4YohjNDiIiIiIiIiEgoHAwhIiIiIiIiIqFwmQwRERERERGRmuMyGcVwZggRERERERERCYWDIUREREREREQkFA6GEIA3U6p27txZ7PNtbW2xYMGCD75eWaKiomBqaqrqbhAREREREZUuSRneyiAOhgjg/v37GDJkCOzt7SGVSmFtbY127drh8OHDsnNSUlLQqlWrYrd59uxZfPPNN8U+Pzg4GBKJpNDm6+urUC3vExgYiD///LNE2yyLNm2IQSvv5qjr4YagLp1x6eJF5n4iuarI1NXSQK+6lbGooyvWBbljcqvqqGaur/RcgM+2NDCXz5a56pXJXD5b5qpvLqkXDoZ84pKTk/HZZ5/hyJEjmD17Ni5duoTY2Fg0a9YMgwcPlp1nYWEBqVRa7HYrVKgAfX3F/rDk6+uLlJQUuW3jxo0KtfE+enp6qFixYom2+SFycnKU1nbsvr2YMysC/QcNxqatO+Dk5IyB/fsgNTVVaZnMLZ1cVdXa38sGblZGWHwiGSE/J+HivWf4/ksHmOlrKzWXz/bTrFW0XJFqFS1XpFpFyxWpVuaWXi6pHw6GfOIGDRoEiUSCM2fOoGPHjnB0dISrqytGjBiBU6dOyc779zIXLy8vjBkzRq6dR48eQVtbG8ePHwdQeJlMcUilUlhYWMhtZmZmcn1YuXIlOnToAH19fVSvXh0///yzXBs///wzqlevDl1dXTRr1gzR0dGQSCRIT08HUHiZTFhYGGrXro1169bB1tYWJiYm6NKlC549eyY7Jy8vDxEREbCzs4Oenh7c3d3x008/yeVevnwZrVq1gqGhISpVqoQePXrg8ePHsuNNmzbFt99+i+HDh6N8+fLw8fFR6N4oYl30Gvh3CoBfh46o5uCA7yeFQ1dXFzu3b1NaJnNLJ1cVmdqaEtSvaoqYc/eQ9OA5HjzLwU+J93H/WTa+dCqvtFyAz/ZTrVW0XJFqFS1XpFpFyxWpVuaWXm5ZUNRM/LKylUUcDPmEPXnyBLGxsRg8eDAMDAwKHX/buzWCgoKwadMm5Ofny/Zt3rwZVlZW+OKLL5TVXQBAeHg4AgICcPHiRbRu3RpBQUF48uQJAOD27dvo1KkT/Pz8kJiYiP79+2PChAnvbfPmzZvYuXMndu/ejd27d+PYsWOYMWOG7HhERATWrl2LZcuW4cqVK/juu+/QvXt3HDt2DACQnp6O5s2bw8PDA+fOnUNsbCwePHiAgIAAuZzo6Gjo6OggPj4ey5YtK8G78j+vcnKQdPUKGjT0ku3T0NBAgwZeuJh4QSmZzC2dXFXVqimRQFNDgle5eXL7c17nwali4X9vlBQ+20+zVtFyRapVtFyRahUtV6RamVt6uaSeOBjyCbtx4wby8/Ph7Oys0HUBAQG4d+8eTpw4Idu3YcMGdO3a9aNG9Xbv3g1DQ0O5bfr06XLnBAcHo2vXrnBwcMD06dORmZmJM2fOAACWL18OJycnzJ49G05OTujSpQuCg4Pfm5uXl4eoqCjUrFkTX3zxBXr06CF7X0p2djamT5+O1atXw8fHB/b29ggODkb37t2xfPlyAMCiRYvg4eGB6dOnw9nZGR4eHli9ejWOHj0q936S6tWrY9asWXBycoKTk1ORfcnOzsbTp0/ltuzs7GLfw7T0NOTm5sLc3Fxuv7m5udxMlZLGXOXnqqrWl6/zcO1hJvzdLWCmpwWJBPjc3gyOFQxgpqe8ZTJ8tp9mraLlilSraLki1Sparki1Mrf0ckk9aam6A6Q8/57ZoYgKFSrgyy+/RExMDL744gvcvn0bJ0+elA0OfKhmzZph6dKlcvvKlSsn93OtWrVkvzYwMICxsTEePnwIALh27Rrq1q0rd369evXem2trawsjIyPZz5aWlrI2b9y4gRcvXsDb21vumpycHHh4eAAAEhMTcfToURgaGhZq++bNm3B0dAQAfPbZZ+/tS0REBMLDw+X2TZg4Cd+Hhr33WiJlWXziLwzwssGyADfk5uXj9pMXiL+dBvtSeokqEREREX28srocpaziYMgnrHr16pBIJPjjjz8UvjYoKAhDhw7FwoULsWHDBri5ucHNze2j+mNgYAAHB4d3nqOtLf830RKJBHl5eW85u3je1WZmZiYAYM+ePahcubLceQUvlM3MzES7du0wc+bMQm1bWlrKfl3UUqT/GjduHEaMGCG3L1+z+C+uNTM1g6amZqEXQKWmpqJ8eeW934G5ys9VVa0A8OBZDsL334BUSwN62hpIz3qNYY1t8SCz+LOWFMVn+2nWKlquSLWKlitSraLlilQrc0svl9QTl8l8wsqVKwcfHx8sXrwYz58/L3S84KWjRWnfvj1evnyJ2NhYbNiwAUFBQUrsafE4OTnh3LlzcvvOnj37UW3WqFEDUqkUd+7cgYODg9xmbW0NAPD09MSVK1dga2tb6JziDID8m1QqhbGxsdymyFd8tHV04FLDFadPnZTty8vLw+nTJ1HL3UOhviiCucrPVVWt/5b9Og/pWa9hoKMJ98pGOHcnQ2lZfLafZq2i5YpUq2i5ItUqWq5ItTK39HJJPXFmyCdu8eLFaNSoEerVq4fJkyejVq1aeP36NQ4ePIilS5ciKSmpyOsMDAzg5+eHiRMnIikpCV27dv3ovmRnZ+P+/fty+7S0tIo9Stu/f3/MmzcPY8aMQZ8+fZCQkICoqCgAHz4lzMjICCEhIfjuu++Ql5eHzz//HBkZGYiPj4exsTF69eqFwYMHY8WKFejatStGjx6NcuXK4caNG9i0aRNWrlwJTU3ND8r+UD169cbE8WPg6loTNd1qYf26aGRlZcGvgz9z1TxXVbW6W71ZRnbvaTYsjKToXscK9zKyEXdDuZ+g47P9NGsVLVekWkXLFalW0XJFqpW5pZdbFnCZjGI4GPKJs7e3x++//45p06Zh5MiRSElJQYUKFfDZZ58Ven/HfwUFBaF169Zo3LgxbGxsProvsbGxcstKgDezPYq7jMfOzg4//fQTRo4ciR9++AENGzbEhAkTMHDgQIVmV/zXlClTUKFCBURERODWrVswNTWFp6cnxo8fDwCwsrJCfHw8xowZgy+//BLZ2dmoWrUqfH19oaFR+pOrfFu1RtqTJ1iyKBKPHz+Ck7MLlixfCXMlT/1jrvJzVVWrnrYmun5mBXN9bWRm5+L0nXRs+v0ecj/stUPFxmf7adYqWq5ItYqWK1KtouWKVCtzSy+X1I8k/0PfsklUBkybNg3Lli3D3bt3Vd2VD/bytap7QJ+aXjGl/+m46CBOPSUiIqJPg66aThmwHrxL1V14q7uL26u6C4Wo6WMmUS1ZsgR169aFubk54uPjMXv2bHz77beq7hYREREREZFqcZWMQjgYQmrl+vXrmDp1Kp48eQIbGxuMHDkS48aNU3W3iIiIiIiISI1wMITUyvz58zF//nxVd4OIiIiIiIjUGAdDiIiIiIiIiNQcvyajmNL/FAYRERERERERkQpxMISIiIiIiIiIhMJlMkRERERERERqjstkFMOZIUREREREREQkFA6GEBEREREREZFQuEyGiIiIiIiISM1xmYxiOBhCRPSJiQ7yKPXMg0kPSj0TALxdKqkkl4iIiIjUG5fJEBEREREREZFQODOEiIiIiIiISM1xmYxiODOEiIiIiIiIiMqE48ePo127drCysoJEIsHOnTtlx169eoUxY8bAzc0NBgYGsLKyQs+ePXHv3j2FczgYQkRERERERERlwvPnz+Hu7o7FixcXOvbixQv8/vvvmDhxIn7//Xds374d165dw1dffaVwDpfJEBEREREREam7T2SVTKtWrdCqVasij5mYmODgwYNy+xYtWoR69erhzp07sLGxKXYOZ4YQERERERERkVrKyMiARCKBqampQtdxZggRERERERERKU12djays7Pl9kmlUkil0o9q9+XLlxgzZgy6du0KY2Njha7lzBAiIiIiIiIiNSeRSMrsFhERARMTE7ktIiLio+p99eoVAgICkJ+fj6VLlyp8PQdD6JMRFhaG2rVrq7obRERERERE9C/jxo1DRkaG3DZu3LgPbq9gIOSvv/7CwYMHFZ4VAnAwREjBwcGyETptbW1UqlQJ3t7eWL16NfLy8hRqKyoqSuG1WW9z+/ZtdOvWDVZWVtDV1UWVKlXQvn17/PHHH8W6PiQkBIcPHy6RvpR1mzbEoJV3c9T1cENQl864dPEicz+RXFFq3b95NUI6NZbbZg7trtTMf+OzZa66ZzKXz5a56pfJ3E8/l95OKpXC2NhYbvvQJTIFAyHXr1/HoUOHYG5u/kHtcDBEUL6+vkhJSUFycjL27duHZs2aYdiwYWjbti1ev35d6v159eoVvL29kZGRIfs80ubNm+Hm5ob09PRitWFoaPjBvxHUSey+vZgzKwL9Bw3Gpq074OTkjIH9+yA1NZW5ap4rUq0AUMnaDqErdsi2b6cuUmpeAT5b5qp7JnP5bJmrfpnM/fRz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sYGOjg4WLlyIAQMG4PLly5gyZco7+5OQkIBJkyahR48eqFGjBnR0dHDs2DGsXr0aY8aMAQB07doV06dPh5+fHyIiImBpaYkLFy7AyspK9s6OfwsPD8fQoUNhYmICX19fZGdn49y5c0hLSys0O+Ntxo0bBzc3NwwaNAgDBgyAjo4Ojh49is6dO6N8+fIICQnBd999h7y8PHz++efIyMhAfHw8jI2N5d5LUpJ69OqNiePHwNW1Jmq61cL6ddHIysqCXwd/peQxt/RyRar1l+jFqFGnEcwqVMLTJ4+xf8saaGhowOPzlkrLLMBny1x1z2Quny1z1S+TuZ9+LqkfDoYIKjY2FpaWltDS0oKZmRnc3d0RGRmJXr16QUPjzYQhd3d3zJs3DzNnzsS4cePQuHFjREREyAZLgDdflBkwYAACAwORmpqKSZMmISwsDFFRURg/fjwiIyPh6emJOXPm4Kuvvnprf6pUqQJbW1uEh4fLPnlb8PN3330H4M0slAMHDmDkyJFo3bo1Xr9+jRo1amDx4sVFttm3b1/o6+tj9uzZGDVqFAwMDODm5ib3Utj3cXR0xIEDBzB+/HjUq1cPenp6qF+/Prp27QoAmDJlCipUqICIiAjcunULpqamsk8VK4tvq9ZIe/IESxZF4vHjR3BydsGS5SthruSpf8xVfq5ItWakPkLMgnA8f/YUhsamsHN2w5Dpy2BoYqq0zAJ8tsxV90zm8tkyV/0ymfvp55L6keTn5+eruhNEInv5WtU9IPp4B5OU/1nconi7VFJJLhEREX26dNV0yoDj6FhVd+Gt/pzlq+ouFMJ3hhARERERERGRUDgYQkRERERERERCUdMJQERERERERERUoKx+taWs4swQIiIiIiIiIhIKB0OIiIiIiIiISChcJkNERERERESk5rhKRjGcGUJEREREREREQuFgCBEREREREREJhctkiIiIiIiIiNSchgbXySiCM0OIiIiIiIiISCicGUJERB/N26WSSnJH/pKkkty57VxUkktEREREJYODIURERERERERqjl+TUQyXyRARERERERGRUDgYQkRERERERERC4TIZIiIiIiIiIjUn4ToZhXBmCBEREREREREJhYMhRERERERERCQULpMhIiIiIiIiUnNcJaMYzgyhT1JcXBwkEgnS09NV3RUiIiIiIiIqYzgYQkoRHBwMiUQC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GW5ubhg4cKBCW8HBwZg1axZq1apV7HkfM2bMgJWVFSIjI3HlyhVYWFjA29sbkyZNKrFf3t7e+P777zFt2jTMmDEDNjY2iIiIQEhIiMJ5Y8aMwYkTJxAeHg4zMzMsWrQIfn5+AJ4vFdq5cycmT56Mfv364fbt27C2tkbz5s3xzjvvvO2lU5p/QHtk3b2L5cuicOfObbi6uWP5yjWQq3jqH3NVnytSraLlilSraLki1Sparki1VvRc12omWNzVQ/o8rLk9AGD3+QzM25eG+JP/wKCSLka3doSJfiWc/ecBJvyQirz8N1sq/jIV+RozVzOU4skK9AJZ4Zs+EIJUav369fj888/xzz//SEtjSDXs7e0xatQojBo1Si35T5+pJZaIiIioQmi//MjrT1KBncMavf4k0koGWjpl4Pw/Zfecm7JWp/rrn69Y3rT0Nldcjx8/Rnp6OubMmYPBgwdzIISIiIiIiIiojPEBqhpm3rx5cHNzg7W1NSZOnKju7hAREREREZEWkGnwpom4TIZIzbhMhoiIiOjNcZkMlTVtXSaTqsHLZNw1cJkMZ4YQERERERERkVC0dMyLiIiIiIiIiCSauh5FQ3FmCBEREREREREJhYMhRERERERERCQULpMhIiIiIiIi0nIyrpNRCmeGEBEREREREZFQOBhCREREREREREKRFRYWFqq7E0Qie/pM3T0gIiIiImUtPHhZLbljWjirJVckBlr6MImLtx6ruwsv5WptpO4uFMOZIUREREREREQkFA6GEBEREREREZFQtHQCEBEREREREREV4btklMOZIUREREREREQkFA6GEBEREREREZFQuEyGiIiIiIiISNtxnYxSODOEiIiIiIiIiITCwRAiIiIiIiIiEgoHQ6hCCQsLQ4MGDdTdDSIiIiIionIl0+D/aSIOhlQAt2/fxtChQ1GzZk3o6+vD2toafn5+SEpKKnbukSNHoKuri8DAwGLHrl27BplMJm1yuRwffPABTp069dLsmJgY6XxdXV1YWlri/fffR0REBO7fv1+mddL/xG+IQ0C71mjo5YngXt1x9swZ5laQXJFqFS1XpFpFyxWpVtFyRapVtNzyztwypR/WDQsstiXHL1dpbhGR7q06c0m7cDCkAujatStOnTqF2NhY/Pnnn9i+fTtatmyJzMzMYud+8803+Oyzz3Do0CH8888/Jba3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jqTskv+G4oSQ/0mbNm2Qnp6OSpUqSZW/f/8ebdq04W1XCvb/txL81j///MPpzipfS0xMxIgRI3DlypUS68Lnlop87lDwPQ0aNMDixYvh4uKCixcvYtOmTQC+rHFRuXJl3nKzs7OhqakpU/727Vuoqanxktm/f3907doVEyZMkCo/ePAgjh8/jlOnTvGSW8zd3R3u7u7IyclBVlaWzN8T1549eyazsj0AFBUVIT8/n7dcNTW1EncJSEhIQMWKFXnJLCoqKvFv859//oGOjg4vmcXCwsIQFhaGV69eoaioSOq2HTt2cJ7Hx85DvyI1NVWueQkJCZJ59ocOHULLli2xd+9eREVFoX///lLrWXHF0tISd+7ckTknnz59WrLzCF8Ulf369esSz0nZ2dklvg5zQVF/tx4eHrhy5Qq6dOkCGxsb2NnZgTGGhw8fIjExET169MDUqVM5z1XEuRFQzOstACxZsgTBwcFYsWIFRo8eLSmvXbs2AgICMHLkSM4zCwsLERQU9N1zMl875yjyvSMpu6gzhJAy4nudEhkZGTL71XPByckJIpEIIpEIzs7OUFb+v9NFYWEhUlNTeVs4b9iwYVBWVsZff/1V4va2XDt+/Dg6duwIFRUVHD9+/If37datG+f5q1evhru7O44ePYp58+ZJPjyHhobKbBfKpd9++w27du3CokWLAHxZlLeoqAgrVqz44TaA/0V0dDRWrVolU966dWvMmzePl8xinz59AmMMmpqa0NTUxOvXrxEQEAB7e3u4urrykmlvb4/Lly/LfKgKDQ0tcTFXrnTr1g2+vr44ePAggC+/27S0NMyePRu9evXiJbN4keetW7dKMuWxyLOPjw98fX3RoEEDuZwvAPD6u/tV7P8vwMhnuxljkg8058+fR5cuXQAApqamePPmDS+Z06dPx8SJE5GbmwvGGK5fv459+/bBz88P27dv5yVT0dkNGjTAyZMnMXnyZAD/9zvdvn07b9usK+rvViwW49ChQzhw4AD27duHR48eAQBsbW2xcOFC9O/fn5dcRZwbAcW83gLArl27sHXrVjg7O2PcuHGS8rp160oec655eHggKCgInTt3lizcKg/yfu9IyglFDUkhhPycnj17sp49ezKxWMw6deokud6zZ0/WrVs3ZmFhwdq3b8957sKFC9nChQuZSCRiM2fOlFxfuHAhW7p0Kdu7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zpIiIq339OlTrFy5Es2bN0fDhg3lToeItMiWLVtKHYPaqlUrbN68WYaMdIe5uXmxr759+6JGjRoljuuaLVu2oHPnzjA0NERsbKx6e9njx48xY8YMmbMT14wZMzB//nyEhYUhICAAAQEB2LhxI+bPn69zPysR0au4MoSItNbBgwexZs0abNmyBTVq1EDPnj3xySefoFmzZnKnRkRaolKlSrhw4QKcnZ2LHb969SoaNGiA58+fy5QZlVWNGjXCqFGj0K9fP5iamiIuLg5OTk44e/YsvLy8kJaWJneKojExMcG5c+dK/P1cuXIFjRo1QmZmpkyZERFJjytDiEirpKWlYdasWahVqxb+97//wczMDC9evMC2bdswa9YsFkKIqBhnZ2fs2bOnxPE///xT50fAkjQuX76Mtm3bljhubm6OjIwMzSckIR8fH2zdurXE8T/++AMff/yxDBkREWkOp8kQkdbo2rUrDh48iC5duiAoKAienp7Q09PD8uXL5U6NiLTU6NGjMWzYMDx48AAeHh4AChtCzp07l/1C6F+pVq0arl69CkdHx2LHDx8+LGmBLSwsDJ999lmp58aNG4eff/5Z9JguLi6YPn06YmJiivUMOXLkCMaMGYOFCxeq7/tqXx4iorKO22SISGtUqFABAQEBGDx4MGrVqqU+XrFiRcTFxcHFxUXG7IhIWy1btgzTp0/HnTt3AACOjo6YPHky+vXrJ3NmVBbNnDkTv/76K9auXYuOHTti9+7duHHjBkaNGoVJkyaVGH0rFgsLC4SFhcHLy6vY8VGjRiE8PBx3794VPea7TgZSKBRITk4WPT4RkZxYDCEirXH8+HGsWbMGmzZtQr169fDFF1+gT58+qF69OoshRPRWDx48gKGhIUxMTOROhcowQRAwY8YMzJw5E9nZ2QAAAwMDjB07FlOnTpUs7q5du+Dr64udO3eqJ9YMHz4cERERiIyMRN26dSWLTURUHrEYQkRaJysrC5s2bcLatWtx8uRJ5OfnY968efD394epqanc6RGRlsnLy0NMTAyuXbuGzz//HKamprhz5w7MzMxYGKF/LScnB1evXkVmZiZcXFw08lzauHEjhg0bhn379mHNmjX4448/EB0djdq1a0sa9++//wYAWFtbSxqHiEibsBhCRFrt8uXLWLNmDdavX4+MjAx07NgR27dvlzstItISN27c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IiIqVzhNhoiIiIhIZnp6erh//36J4+np6dDT05MhIyIi3cZiCBERERGRzF63WPvFixfQ19fXcDZERLqvgtwJEBERERGVVwsXLgQAKBQKrF69GiYmJupz+fn5OHjwIOrWrStXekREOos9Q4iIiIiIZKJSqQAAN27cwHvvvVdsS4y+vj4cHR0xZcoUfPjhh3KlSESkk1gMISIiIiKSmbu7OyIiImBpaSl3KkRE5QKLIUREREREWiInJwcpKSmoWbMmKlTgjnYiIqmwgSoRERERkcyePXuGgQMHwsjICPXr10dqaioAYPjw4Zg1a5bM2RER6R4WQ4iIiIiIZBYYGIi4uDjExMSgUqVK6uMdOnTApk2bZMyMiEg3ce0dEREREZHMtm3bhk2bNqFFixZQKBTq4/Xr18e1a9dkzIyISDdxZQgRERERkcwePHgAGxubEsezsrKKFUeIiEgcLIYQEREREcmsadOm2LVrl/p2UQFk9erVaNmypVxpERHpLG6TISIiIiKS2YwZM+Dl5YWEhATk5eVhwYIFSEhIwNGjR3HgwAG50yMi0jlcGUJEREREJLPWrVvj3LlzyMvLg6urK/766y/Y2Njg2LFjaNKkidzpERHpHIUgCILcSRARERERERERaQpXhhARERERERFRucKeIUREREREMlEqlW+dFqNQKJCXl6ehjIiIygcWQ4iIiIiIZLJ169bXnjt27BgWLlyIgoICDWZERFQ+sGcIEREREZEWuXz5MgIDA7Fjxw74+vpiypQpcHBwkDstIiKdwp4hRERERERa4M6dO/jqq6/g6uqKvLw8nDt3DiEhISyEEBFJgMUQIiIiIiIZPX78GOPHj4ezszMuXryIyMhI7NixAw0aNJA7NSIincWeIUREREREMpkzZw5mz56NatWqISwsDN26dZM7JSKicoE9Q4iIiIiIZKJUKmFoaIgOHTpAT0/vtfeLiIjQYFZERLqPK0OIiIiIiGTSr1+/t47WJSIi8XFlCBERERERERGVK2ygSkRERERERETlCoshRERERERERFSusBhCREREREREROUKiyFEREREREREVK6wGEJERET0Dw0YMADdu3dX327Xrh1Gjhyp8TxiYmKgUCiQkZGh8dhERERlGYshREREpDMGDBgAhUIBhUIBfX19ODs7Y8qUKcjLy5M0bkREBKZOnfpO92UBg4iISH4V5E6AiIiISEyenp5Yt24dXrx4gd27d2Po0KGoWLEivvvuu2L3y8nJgb6+vigxraysRHkcIiIi0gyuDCEiIiKdYmBggGrVqsHBwQGDBw9Ghw4dsH37dvXWlunTp6NGjRqoU6cOAODmzZv49NNPYWFhASsrK3Tr1g3Xr19XP15+fj5Gjx4NCwsLVK5cGd9++y0EQSgW89VtMi9evMD48eNhZ2cHAwMDODs7Y82aNbh+/Trc3d0BAJaWllAoFBgwYAAAoKCgADNnzoRKpYKhoSEaNmyIzZs3F4uze/du1K5dG4aGhnB3dy+WJxEREb07FkOIiIhIpxkaGiInJwcAEBkZicuXL2Pfvn3YuXMncnNz0blzZ5iamuLQoUM4cuQITExM4Onpqf5v5s6di+DgYKxduxaHDx/Gw4cPsXXr1jfG7NevH8LCwrBw4UJcunQJK1asgImJCezs7LBlyxYAwOXLl3H37l0sWLAAADBz5kyEhoZi+fLluHjxIkaNGoW+ffviwIEDAAqLNj179kTXrl1x7tw5fPnllwgMDJTq10ZERKTTuE2GiIiIdJIgCIiMjMTevXsxfPhwPHjwAMbGxli9erV6e8yvv/6KgoICrF69GgqFAgCwbt06WFhYICYmBp06dUJQUBC+++479OzZEwCwfPly7N2797Vxk5KS8Ntvv2Hfvn3o0KEDAMDJyUl9vmhLjY2NDSwsLAAUriSZMWMG9u/fj5YtW6r/m8OHD2PFihVwc3PDsmXLULNmTcydOxcAUKdOHZw/fx6zZ88W8bdGRERUPrAYQkRERDpl586dMDExQW5uLgoKCvD5559j8uTJGDp0KFxdXYv1CYmLi8PVq1dhampa7DGeP3+Oa9eu4fHjx7h79y4+/PBD9bkKFSqgadOmJbbKFDl37hz09PTg5ub2zjlfvXoV2dnZ6NixY7HjOTk5aNSoEQDg0qVLxfIAoC6cEBER0T/DYggRERHpFHd3dyxbtgz6+vqoUaMGKlT4v7c7xsbGxe6bmZmJJk2aYMOGDSUep0qVKv8qvqGh4T/+bzIzMwEAu3btgq2tbbFzBgYG/yoPIiIiej0WQ4iIiEinGBsbw9nZ+Z3u27hxY2zatAk2NjYwMzMr9T7Vq1fHiRMn0LZtWwBAXl4ezpw5g8aNG5d6f1dXVxQUFODAgQPqbTIvK1qZkp+frz7m4uICAwMDpKamvnZFSb169bB9+/Zix44fP/72H5KIiIhKYANVIiIiKrd8fX1hbW2Nbt264dChQ0hJSUFMTAwCAgJw69YtAMCIESMwa9YsbNu2DYmJiRgyZAgyMjJe+5iOjo7o378//P39sW3bNvVj/vbbbwAABwcHKBQK7Ny5Ew8ePEBmZiZMTU0xduxYjBo1CiEhIbh27RpiY2OxaNEihISEAAAGDRqEK1euYNy4cbh8+TI2btyI4OBgqX9FREREOonFECIiIiq3jIyMcPDgQdjb26Nnz56oV68eBg4ciOfPn6tXiowZMwZffPEF+vfvj5YtW8LU1BQ9evR44+MuW7YMvXr1wpAhQ1C3bl189dVXyMrKAgDY2trip59+QmBgIKpWrYphw4YBAKZOnYpJkyZh5syZqFevHjw9PbFr1y6oVCoAgL29PbZs2YJt27ahYcOGWL58OWbMmCHhb4eIiEh3KYTXdf8iIiIiIiIiItJBXBlCREREREREROUKiyFEREREREREVK6wGEJERERERERE5QqLIURERERERERUrrAYQkRERERERETlCoshRERERERERFSusBhCREREREREROUKiyFEREREREREVK6wGEJERERERERE5QqLIURERERERERUrrAYQkRERERERETlCoshRERERERERFSu/D925uw3wZkSWAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.metrics import confusion_matrix\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "cm = confusion_matrix(y_test, y_pred, labels=model.classes_)\n", "plt.figure(figsize=(12,10))\n", "sns.heatmap(cm, annot=True, fmt='d', xticklabels=model.classes_, yticklabels=model.classes_, cmap='Blues')\n", "plt.title(\"Confusion Matrix\")\n", "plt.xlabel(\"Predicted\")\n", "plt.ylabel(\"Actual\")\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "a476b209", "metadata": {}, "source": [ "### Save the model and vectorizer:" ] }, { "cell_type": "code", "execution_count": 43, "id": "b9cbb351", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Model and vectorizer saved to 'models/' directory.\n" ] } ], "source": [ "import os\n", "import pickle\n", "\n", "# Ensure the models directory exists\n", "os.makedirs('models', exist_ok=True)\n", "\n", "# Save vectorizer and model\n", "with open('models/vectorizer.pkl', 'wb') as f:\n", " pickle.dump(vectorizer, f)\n", "\n", "with open('models/model.pkl', 'wb') as f:\n", " pickle.dump(model, f)\n", "print(\"✅ Model and vectorizer saved to 'models/' directory.\")" ] }, { "cell_type": "markdown", "id": "91077d9b", "metadata": {}, "source": [ "### Deploy a prediction function" ] }, { "cell_type": "code", "execution_count": 44, "id": "b6c825c8", "metadata": {}, "outputs": [], "source": [ "def predict_resume_category(text):\n", " vec = vectorizer.transform([text])\n", " return model.predict(vec)[0]\n", "def predict_resume_category_with_dialog():\n", " Tk().withdraw() # Hide the root window\n", " file_path = askopenfilename(title=\"Select a Resume File (.pdf or .docx)\",\n", " filetypes=[(\"PDF files\", \"*.pdf\"), (\"Word files\", \"*.docx\")])\n", "\n", " if not file_path:\n", " print(\"❌ No file selected.\")\n", " return None\n", "\n", " if file_path.endswith(\".pdf\"):\n", " text = extract_text_from_pdf(file_path)\n", " elif file_path.endswith(\".docx\"):\n", " text = extract_text_from_docx(file_path)\n", " else:\n", " print(\"❌ Unsupported file format.\")\n", " return None\n", "\n", " category = predict_resume_category(text)\n", " print(f\"✅ Predicted Category: {category}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "330dcb0c", "metadata": { "vscode": { "languageId": "markdown" } }, "outputs": [ { "data": { "text/markdown": [ "### Upload your resume to get top-3 role predictions" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "70d6bb20a07c403ab8ecf96583681ea2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "FileUpload(value=(), accept='.pdf,.docx', description='Upload Resume')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "290b0db22da1443e9e67a4db8a2d655c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Button(button_style='success', description='Predict Role', style=ButtonStyle())" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "### ✅ Top Resume Role Predictions" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**1. Data Science** — Confidence: `27.52%`" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**2. Python Developer** — Confidence: `7.15%`" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**3. Blockchain** — Confidence: `4.75%`" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import ipywidgets as widgets\n", "from IPython.display import display, Markdown\n", "import numpy as np\n", "import os\n", "\n", "# Upload widget\n", "upload_widget = widgets.FileUpload(\n", " accept='.pdf,.docx', # Only accept PDFs and DOCX\n", " multiple=False,\n", " description=\"Upload Resume\"\n", ")\n", "\n", "# Display the widget\n", "display(Markdown(\"### Upload your resume to get top-3 role predictions\"))\n", "display(upload_widget)\n", "\n", "# Function to handle predictions\n", "def predict_resume(file_upload, top_n=3):\n", " if not file_upload.value:\n", " print(\"❌ Please upload a resume.\")\n", " return\n", "\n", " # Get uploaded file\n", " try:\n", " uploaded_file = file_upload.value[0] if isinstance(file_upload.value, tuple) else next(iter(file_upload.value.values()))\n", " filename = uploaded_file['metadata']['name'] if 'metadata' in uploaded_file else uploaded_file['name']\n", " file_content = uploaded_file['content']\n", " except Exception as e:\n", " print(f\"❌ Error accessing uploaded file: {e}\")\n", " return\n", "\n", " extension = os.path.splitext(filename)[1].lower()\n", " temp_path = f\"./temp_resume{extension}\"\n", " with open(temp_path, 'wb') as f:\n", " f.write(file_content)\n", "\n", " # Extract text\n", " if extension == '.pdf':\n", " text = extract_text_from_pdf(temp_path)\n", " elif extension == '.docx':\n", " text = extract_text_from_docx(temp_path)\n", " else:\n", " print(\"❌ Unsupported file type.\")\n", " return\n", "\n", " os.remove(temp_path)\n", "\n", " if not text or not text.strip():\n", " print(\"❌ No text could be extracted.\")\n", " return\n", "\n", " # Predict\n", " input_vec = vectorizer.transform([text])\n", " probs = model.predict_proba(input_vec)[0]\n", " top_indices = np.argsort(probs)[::-1][:top_n]\n", " labels = model.classes_[top_indices]\n", " scores = probs[top_indices]\n", "\n", " # Display predictions\n", " display(Markdown(\"### ✅ Top Resume Role Predictions\"))\n", " for i in range(top_n):\n", " display(Markdown(f\"**{i+1}. {labels[i]}** — Confidence: `{scores[i]*100:.2f}%`\"))\n", "\n", "# Button to trigger prediction\n", "predict_button = widgets.Button(description=\"Predict Role\", button_style=\"success\")\n", "display(predict_button)\n", "\n", "# Bind button click to prediction function\n", "def on_predict_button_click(b):\n", " predict_resume(upload_widget)\n", "\n", "predict_button.on_click(on_predict_button_click)\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }