Commit 38d55b75 authored by Nirmal M.D.S's avatar Nirmal M.D.S

Naive Bayes Model

parent 5d4b4a8b
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "pIPRzpKBdHYW",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "8e883495-ed72-4704-ee9d-f9c5a6465ebf"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Mounted at /content/drive\n"
]
}
],
"source": [
"from google.colab import drive\n",
"drive.mount('/content/drive')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "EQWrFYcidIGL",
"outputId": "6035b7de-c51d-4374-b143-01fa48ba3934"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"/content/drive/My Drive/PP1 Practice\n"
]
}
],
"source": [
"%cd \"/content/drive/My Drive/PP1 Practice/\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "7cIHFinPt0KH"
},
"outputs": [],
"source": [
"#import packages\n",
"import pandas as pd\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.naive_bayes import MultinomialNB\n",
"\n",
"from sklearn.metrics import classification_report\n",
"from sklearn.metrics import accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "rl4NpPiKt4Y-",
"outputId": "d2a60f7e-080a-456e-bf64-07586069b272"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" ProjectName TaskDescription \\\n",
"0 E-commerce Website Implement a user registration and login system... \n",
"1 Mobile App Development Develop a push notification feature for the mo... \n",
"2 Data Analytics Platform Build a data visualization module that present... \n",
"3 CRM System Upgrade Enhance the existing customer relationship man... \n",
"4 Bug Tracking Tool Create a web-based bug tracking tool that allo... \n",
"\n",
" Level \n",
"0 Low \n",
"1 Low \n",
"2 Low \n",
"3 Low \n",
"4 Low "
],
"text/html": [
"\n",
" <div id=\"df-65fab58d-70aa-44dc-b052-21323b44bec0\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ProjectName</th>\n",
" <th>TaskDescription</th>\n",
" <th>Level</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>E-commerce Website</td>\n",
" <td>Implement a user registration and login system...</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Mobile App Development</td>\n",
" <td>Develop a push notification feature for the mo...</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Data Analytics Platform</td>\n",
" <td>Build a data visualization module that present...</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>CRM System Upgrade</td>\n",
" <td>Enhance the existing customer relationship man...</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bug Tracking Tool</td>\n",
" <td>Create a web-based bug tracking tool that allo...</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-65fab58d-70aa-44dc-b052-21323b44bec0')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-65fab58d-70aa-44dc-b052-21323b44bec0 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-65fab58d-70aa-44dc-b052-21323b44bec0');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-1451cc01-be01-4fc6-b22d-3ae6b9dcce52\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-1451cc01-be01-4fc6-b22d-3ae6b9dcce52')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-1451cc01-be01-4fc6-b22d-3ae6b9dcce52 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 5
}
],
"source": [
"#import data\n",
"df = pd.read_csv(\"/content/drive/MyDrive/PP1 Practice/TaskDescCopy3.csv\")\n",
"\n",
"#inspect dataset\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 210
},
"id": "N7VfsALBt7E1",
"outputId": "bf9728f0-4cb3-4ab1-c280-35d27c427a98"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" ProjectName \\\n",
" count unique top freq \n",
"Level \n",
"High 54 47 Recommendation System Evaluation 2 \n",
"Low 94 82 Progressive Web Application 2 \n",
"\n",
" TaskDescription \\\n",
" count unique \n",
"Level \n",
"High 54 47 \n",
"Low 94 84 \n",
"\n",
" \n",
" top freq \n",
"Level \n",
"High Evaluate and fine-tune the performance of a re... 2 \n",
"Low Develop a custom data visualization library fo... 2 "
],
"text/html": [
"\n",
" <div id=\"df-03695561-a5c6-4a46-bad1-590895806da8\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"4\" halign=\"left\">ProjectName</th>\n",
" <th colspan=\"4\" halign=\"left\">TaskDescription</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>unique</th>\n",
" <th>top</th>\n",
" <th>freq</th>\n",
" <th>count</th>\n",
" <th>unique</th>\n",
" <th>top</th>\n",
" <th>freq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Level</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>High</th>\n",
" <td>54</td>\n",
" <td>47</td>\n",
" <td>Recommendation System Evaluation</td>\n",
" <td>2</td>\n",
" <td>54</td>\n",
" <td>47</td>\n",
" <td>Evaluate and fine-tune the performance of a re...</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Low</th>\n",
" <td>94</td>\n",
" <td>82</td>\n",
" <td>Progressive Web Application</td>\n",
" <td>2</td>\n",
" <td>94</td>\n",
" <td>84</td>\n",
" <td>Develop a custom data visualization library fo...</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-03695561-a5c6-4a46-bad1-590895806da8')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-03695561-a5c6-4a46-bad1-590895806da8 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-03695561-a5c6-4a46-bad1-590895806da8');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-95404b73-c644-4d4d-9790-d47c084d8012\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-95404b73-c644-4d4d-9790-d47c084d8012')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-95404b73-c644-4d4d-9790-d47c084d8012 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 6
}
],
"source": [
"df.groupby('Level').describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "N55IenEMBV85"
},
"outputs": [],
"source": [
"df['high'] = df['Level'].apply(lambda x: 1 if x == 'High' else 0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"id": "CpYAkj8iDqum",
"outputId": "337669eb-4119-4c77-fb75-a397ecd83764"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" ProjectName \\\n",
"0 E-commerce Website \n",
"1 Mobile App Development \n",
"2 Data Analytics Platform \n",
"3 CRM System Upgrade \n",
"4 Bug Tracking Tool \n",
".. ... \n",
"143 Gamification Feature \n",
"144 Natural Language Understanding \n",
"145 Conversational Surveys \n",
"146 Data Privacy Impact Assessment \n",
"147 A/B Testing Platform \n",
"\n",
" TaskDescription Level high \n",
"0 Implement a user registration and login system... Low 0 \n",
"1 Develop a push notification feature for the mo... Low 0 \n",
"2 Build a data visualization module that present... Low 0 \n",
"3 Enhance the existing customer relationship man... Low 0 \n",
"4 Create a web-based bug tracking tool that allo... Low 0 \n",
".. ... ... ... \n",
"143 Implement gamification features to enhance use... Low 0 \n",
"144 Implement natural language understanding (NLU)... Low 0 \n",
"145 Develop conversational surveys to collect feed... Low 0 \n",
"146 Conduct a data privacy impact assessment (DPIA... High 1 \n",
"147 Design and develop an A/B testing platform for... Low 0 \n",
"\n",
"[148 rows x 4 columns]"
],
"text/html": [
"\n",
" <div id=\"df-05b5924d-8eb6-41e7-bd96-af2144ab6f3f\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ProjectName</th>\n",
" <th>TaskDescription</th>\n",
" <th>Level</th>\n",
" <th>high</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>E-commerce Website</td>\n",
" <td>Implement a user registration and login system...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Mobile App Development</td>\n",
" <td>Develop a push notification feature for the mo...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Data Analytics Platform</td>\n",
" <td>Build a data visualization module that present...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>CRM System Upgrade</td>\n",
" <td>Enhance the existing customer relationship man...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bug Tracking Tool</td>\n",
" <td>Create a web-based bug tracking tool that allo...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>143</th>\n",
" <td>Gamification Feature</td>\n",
" <td>Implement gamification features to enhance use...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>Natural Language Understanding</td>\n",
" <td>Implement natural language understanding (NLU)...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>145</th>\n",
" <td>Conversational Surveys</td>\n",
" <td>Develop conversational surveys to collect feed...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>146</th>\n",
" <td>Data Privacy Impact Assessment</td>\n",
" <td>Conduct a data privacy impact assessment (DPIA...</td>\n",
" <td>High</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>147</th>\n",
" <td>A/B Testing Platform</td>\n",
" <td>Design and develop an A/B testing platform for...</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>148 rows × 4 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-05b5924d-8eb6-41e7-bd96-af2144ab6f3f')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-05b5924d-8eb6-41e7-bd96-af2144ab6f3f button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-05b5924d-8eb6-41e7-bd96-af2144ab6f3f');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-63938025-cce3-48cd-80a4-282bf55d5152\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-63938025-cce3-48cd-80a4-282bf55d5152')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-63938025-cce3-48cd-80a4-282bf55d5152 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 8
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9XVubeEMDwJN"
},
"outputs": [],
"source": [
"#train test split\n",
"x_train, x_test, y_train, y_test = train_test_split(df.TaskDescription, df.high, test_size=0.2)"
]
},
{
"cell_type": "code",
"source": [
"x_train"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "XkomH8f2215K",
"outputId": "e56869db-7caa-4fca-d370-38fa26c1f2cd"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"127 Optimize cloud costs by analyzing resource usa...\n",
"111 Design and develop an A/B testing platform for...\n",
"146 Conduct a data privacy impact assessment (DPIA...\n",
"90 Implement a speech recognition system to conve...\n",
"45 Develop an inventory management system to trac...\n",
" ... \n",
"18 Redesign the company website to make it more m...\n",
"123 Implement voice biometrics for user authentica...\n",
"129 Perform sales funnel analysis to identify bott...\n",
"3 Enhance the existing customer relationship man...\n",
"39 Develop a chatbot feature for customer support...\n",
"Name: TaskDescription, Length: 118, dtype: object"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "code",
"source": [
"x_train.describe()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "hAaehk3024w2",
"outputId": "694b3746-a488-4081-b7ae-f3290e300772"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"count 118\n",
"unique 109\n",
"top Design and implement a data lake architecture ...\n",
"freq 2\n",
"Name: TaskDescription, dtype: object"
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"source": [
"#find the word count and storing data in a numerical matrix\n",
"cv = CountVectorizer()\n",
"x_train_count = cv.fit_transform(x_train.values) #turning the descriptions in train dataset into a matrix\n"
],
"metadata": {
"id": "_td_dr0s3CBN"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"x_train_count"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "S5ufUn1-4dpf",
"outputId": "898b7896-84b8-4aec-843b-01fd75a40b37"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<118x798 sparse matrix of type '<class 'numpy.int64'>'\n",
"\twith 2333 stored elements in Compressed Sparse Row format>"
]
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"source": [
"x_train_count.toarray()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "n5WzCLqX4h9M",
"outputId": "a76ef34f-2172-4db1-9894-7c1e9e579337"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]])"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"#train model\n",
"model = MultinomialNB()\n",
"model.fit(x_train_count, y_train) #training the model using our converted x train value set and y_train data"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 75
},
"id": "OejJluIB4pO8",
"outputId": "f7ddef8e-ff54-4716-e005-e204644b0491"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"MultinomialNB()"
],
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>MultinomialNB()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MultinomialNB</label><div class=\"sk-toggleable__content\"><pre>MultinomialNB()</pre></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"source": [
"#validation\n",
"task1 = [\"Machine learning pplatform to predict Cardiac Diseases\"]\n",
"task1_count = cv.transform(task1) #Using CountVectorizer Function\n",
"model.predict(task1_count)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5w0z9Rt47nGS",
"outputId": "a2b3d4aa-70dc-4ba6-a90e-7d08de4f9d34"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([1])"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "code",
"source": [
"#validation\n",
"task2 = [\"Refactor a code\"]\n",
"task2_count = cv.transform(task2) #Using CountVectorizer Function conversion is done\n",
"model.predict(task2_count)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "bzZMZ3G58Oco",
"outputId": "e4dbf420-4d6b-4ff8-b67a-4f406b0def0d"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([0])"
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "code",
"source": [
"#testing the model\n",
"x_test_count = cv.transform(x_test) #converting test data to matrix form\n",
"model.score(x_test_count, y_test) #testing against the y labels of the testing data"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8rEHDqXF9BoP",
"outputId": "4b28b1d8-ff18-4eea-ab00-27719e8d8439"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.8333333333333334"
]
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"source": [
"#make predictions using testing data\n",
"y_pred = model.predict(x_test_count)"
],
"metadata": {
"id": "qWGXwN2X9y-W"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#Evaluate the performance of the classifier\n",
"print(classification_report(y_test,y_pred))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kPbI2biv-g-F",
"outputId": "1920de39-9ab0-4035-8b54-25eec764d369"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.89 0.84 0.86 19\n",
" 1 0.75 0.82 0.78 11\n",
"\n",
" accuracy 0.83 30\n",
" macro avg 0.82 0.83 0.82 30\n",
"weighted avg 0.84 0.83 0.83 30\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Calculate the accuracy of the model\n",
"accuracy = accuracy_score(y_test, y_pred)\n",
"print(\"Accuracy:\", accuracy)"
],
"metadata": {
"id": "thbdaDaA-tsF",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "f6f373c6-0057-43eb-e1f4-ddaaf1860675"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Accuracy: 0.8333333333333334\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import f1_score\n",
"f1 = f1_score(y_test, y_pred)\n",
"print(\"F1 score:\", f1)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "favBrnZWJnLt",
"outputId": "a22dc8c6-fdab-4e8a-867a-67e8107983cf"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"F1 score: 0.7826086956521738\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import recall_score\n",
"recall = recall_score(y_test, y_pred)\n",
"print(\"Recall:\", recall)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Scr5KlNdJ5xw",
"outputId": "cfedfba5-a751-4876-c201-0202bff54196"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Recall: 0.8181818181818182\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import precision_score\n",
"precision = precision_score(y_test, y_pred)\n",
"print(\"Precision:\", precision)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5Th4pX7NKqF2",
"outputId": "21fb8a68-6405-438e-cafc-4536b7ff4158"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Precision: 0.75\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import accuracy_score,confusion_matrix\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns"
],
"metadata": {
"id": "o7clj6nahd4E"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"cm=confusion_matrix(y_test,y_pred)\n",
"fig=plt.figure(figsize=(12,8))\n",
"sns.heatmap(\n",
" cm,\n",
" annot=True,\n",
")\n",
"plt.title(\"Confusion Matrix for Naive Bayes Classifier\")\n",
"cm"
],
"metadata": {
"id": "mWEuzWnZLiPN",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 691
},
"outputId": "4723b7fb-4caf-427c-8959-54dfe5f8d9a2"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[16, 3],\n",
" [ 2, 9]])"
]
},
"metadata": {},
"execution_count": 31
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x800 with 2 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA3wAAAKqCAYAAABhBFykAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDtUlEQVR4nO3dd5hV1dk/7mdoA1IGUaoFsCJqMCoaRQUikSCixAJYKTH2ijFKbGAbNb6KLbZERdS8GGPvDUKM2MVeQFBjASKKCMKIzP794Zf5sWFABgfOsN779jrX5eyzz97PPhzOxTOftdcqyrIsCwAAAJJTq9AFAAAAsGpo+AAAABKl4QMAAEiUhg8AACBRGj4AAIBEafgAAAASpeEDAABIlIYPAAAgURo+AACARGn4gJxJkybFHnvsESUlJVFUVBT33ntvtR7/ww8/jKKiorjllluq9bhrsm7dukW3bt2q7Xhz5syJww8/PFq1ahVFRUVx0kknVduxV6dx48ZFUVFRjBs3rtCl/J9VE/6+tmvXLgYNGpTbVtn31C233BJFRUXx4YcfFqROgJpKwwc10AcffBBHHnlkbLTRRlG/fv1o0qRJdOnSJa644oqYN2/eKj33wIED44033ogLLrggRo8eHdtvv/0qPd/qNGjQoCgqKoomTZpU+j5OmjQpioqKoqioKC699NIqH/+zzz6L4cOHx8SJE6uh2pV34YUXxi233BJHH310jB49Og499NBVer527dpFUVFRHH/88Us9t6hpu+uuu1ZpDdVpUc2LP5o1axa/+MUv4vbbby90edVm3Lhxse+++0arVq2iXr160aJFi+jTp0/cfffdhS7tR6X8PQVQ3eoUugAg76GHHooDDjggiouL47DDDoutttoqvvvuu3jmmWfi1FNPjbfeeituuOGGVXLuefPmxYQJE+KMM86I4447bpWco23btjFv3ryoW7fuKjn+j6lTp058++238cADD0S/fv1yz91+++1Rv379mD9//kod+7PPPosRI0ZEu3btYptttlnh1z3++OMrdb5lefrpp+MXv/hFnHPOOdV63B9z4403xrBhw6JNmzbVcrzddtst5s2bF/Xq1auW41XVCSecEJ07d46IiJkzZ8aYMWPikEMOiVmzZsWxxx5bkJqqyznnnBPnnntubLrppnHkkUdG27ZtY+bMmfHwww/HfvvtF7fffnscdNBBhS4zIiLee++9qFXr///99LK+pw499NAYMGBAFBcXF6JMgBpLwwc1yNSpU2PAgAHRtm3bePrpp6N169YVzx177LExefLkeOihh1bZ+f/73/9GRETTpk1X2TmKioqifv36q+z4P6a4uDi6dOkSf/vb35Zq+O64447o3bt3/OMf/1gttXz77bex1lprVXtDM2PGjOjYsWO1He/777+P8vLy5da55ZZbxnvvvRcXXXRRXHnlldVy3lq1ahX0s7LrrrvG/vvvX/Hz0UcfHRtttFHccccda3TDd9ddd8W5554b+++/f9xxxx25X76ceuqp8dhjj8WCBQsKWGHekg3csr6nateuHbVr1662886dOzcaNmxYbccDKBRDOqEGueSSS2LOnDnx17/+NdfsLbLJJpvEiSeeWPHz999/H+edd15svPHGUVxcHO3atYs//vGPUVZWlntdu3btYq+99opnnnkmdthhh6hfv35stNFGceutt1bsM3z48Gjbtm1E/PCPvqKiomjXrl1E/DAUctH/L2748OFRVFSU2/bEE0/ELrvsEk2bNo1GjRrF5ptvHn/84x8rnl/WPUFPP/107LrrrtGwYcNo2rRp7LPPPvHOO+9Uer7JkyfHoEGDomnTplFSUhKDBw+Ob7/9dtlv7BIOOuigeOSRR2LWrFkV21588cWYNGlSpanGl19+Gb///e9j6623jkaNGkWTJk2iV69e8dprr1XsM27cuIo0aPDgwRVDARddZ7du3WKrrbaKl19+OXbbbbdYa621Kt6XJe/hGzhwYNSvX3+p6+/Zs2esvfba8dlnn1V6XYuGIk6dOjUeeuihihoW3dM0Y8aM+O1vfxstW7aM+vXrR6dOnWLUqFG5Yyz687n00ktj5MiRFZ+tt99+e7nvabt27eKwww6LG2+8cZn1LfLRRx/FMcccE5tvvnk0aNAg1llnnTjggAOWuvdqyXv4jjvuuGjUqFGlf9YHHnhgtGrVKhYuXFix7ZFHHqn4TDVu3Dh69+4db7311nJrW5569erF2muvHXXq5H9XevPNN8cvf/nLaNGiRRQXF0fHjh3j2muvze0zcODAWHfddSttpPbYY4/YfPPNc9tuu+222G677aJBgwbRrFmzGDBgQPznP//J7TNp0qTYb7/9olWrVlG/fv1Yf/31Y8CAAfH1118v9zrOOuusaNasWdx0002VJu09e/aMvfbaa5mvf/3112PQoEEVQ85btWoVQ4YMiZkzZ+b2++abb+Kkk06Kdu3aRXFxcbRo0SJ+9atfxSuvvFKla1j8Hr7lfU8t6x6+FfkcDBo0KBo1ahQffPBB7LnnntG4ceM4+OCDl/s+AqwpJHxQgzzwwAOx0UYbxc4777xC+x9++OExatSo2H///eOUU06J559/PkpLS+Odd96Je+65J7fv5MmTY//994/f/va3MXDgwLjpppti0KBBsd1228WWW24Z++67bzRt2jROPvnkOPDAA2PPPfeMRo0aVan+t956K/baa6/42c9+Fueee24UFxfH5MmT49///vdyX/fkk09Gr169YqONNorhw4fHvHnz4qqrroouXbrEK6+8slSz2a9fv2jfvn2UlpbGK6+8En/5y1+iRYsWcfHFF69Qnfvuu28cddRRcffdd8eQIUMi4od0r0OHDrHtttsutf+UKVPi3nvvjQMOOCDat28f06dPj+uvvz66du0ab7/9drRp0ya22GKLOPfcc+Pss8+OI444InbdddeIiNyf5cyZM6NXr14xYMCAOOSQQ6Jly5aV1nfFFVfE008/HQMHDowJEyZE7dq14/rrr4/HH388Ro8evcwhk1tssUWMHj06Tj755Fh//fXjlFNOiYiI5s2bx7x586Jbt24xefLkOO6446J9+/bx97//PQYNGhSzZs3K/SIh4ocmZv78+XHEEUdEcXFxNGvW7Eff1zPOOCNuvfXWH035XnzxxXj22WdjwIABsf7668eHH34Y1157bXTr1i3efvvtWGuttSp9Xf/+/eOaa66pGPa8yKIhuoMGDapIeEaPHh0DBw6Mnj17xsUXXxzffvttXHvttbHLLrvEq6++WukvMJb0zTffxBdffBERPzT9d9xxR7z55pvx17/+NbfftddeG1tuuWXsvffeUadOnXjggQfimGOOifLy8ook8NBDD41bb701HnvssVwzNW3atHj66adzw28vuOCCOOuss6Jfv35x+OGHx3//+9+46qqrYrfddotXX301mjZtGt9991307NkzysrK4vjjj49WrVrFp59+Gg8++GDMmjUrSkpKKr2mSZMmxbvvvhtDhgyJxo0b/+h7UJknnngipkyZEoMHD45WrVpVDDN/66234rnnnqv4JdBRRx0Vd911Vxx33HHRsWPHmDlzZjzzzDPxzjvvxLbbbrtS11DV76mqfA6+//776NmzZ+yyyy5x6aWXLvNzCLDGyYAa4euvv84iIttnn31WaP+JEydmEZEdfvjhue2///3vs4jInn766Yptbdu2zSIiGz9+fMW2GTNmZMXFxdkpp5xSsW3q1KlZRGR/+tOfcsccOHBg1rZt26VqOOecc7LFv0Yuv/zyLCKy//73v8use9E5br755opt22yzTdaiRYts5syZFdtee+21rFatWtlhhx221PmGDBmSO+ZvfvObbJ111lnmORe/joYNG2ZZlmX7779/tvvuu2dZlmULFy7MWrVqlY0YMaLS92D+/PnZwoULl7qO4uLi7Nxzz63Y9uKLLy51bYt07do1i4jsuuuuq/S5rl275rY99thjWURk559/fjZlypSsUaNGWd++fX/0GrPshz/v3r1757aNHDkyi4jstttuq9j23XffZTvttFPWqFGjbPbs2RXXFRFZkyZNshkzZlT5fIMHD87q16+fffbZZ1mWZdnYsWOziMj+/ve/V+z/7bffLnWMCRMmZBGR3XrrrRXbFr127NixWZZlWXl5ebbeeutl++23X+61d955Z+7z/c0332RNmzbNfve73+X2mzZtWlZSUrLU9iUtOu+Sj1q1amUXXHDBUvtXdj09e/bMNtpoo4qfFy5cmK2//vpZ//79c/tddtllWVFRUTZlypQsy7Lsww8/zGrXrr3Ued54442sTp06FdtfffXVpd7XFXHfffdlEZFdfvnlK7R/ZX9fK7vev/3tb0t9x5SUlGTHHnvsMo+9otfQtm3bbODAgUvVtOT31M0335xFRDZ16tQsy6r2ORg4cGAWEdnpp5++3FoA1kSGdEINMXv27IiIFf6t+8MPPxwREUOHDs1tX5TqLHmvX8eOHStSp4gfUp/NN988pkyZstI1L2nRPTX33XdflJeXr9BrPv/885g4cWIMGjQolyL97Gc/i1/96lcV17m4o446KvfzrrvuGjNnzqx4D1fEQQcdFOPGjatIWKZNm7bMSSqKi4srJo1YuHBhzJw5s2K46uLD035McXFxDB48eIX23WOPPeLII4+Mc889N/bdd9+oX79+XH/99St8riU9/PDD0apVqzjwwAMrttWtWzdOOOGEmDNnTvzzn//M7b/ffvtF8+bNq3yeM888M77//vu46KKLlrlPgwYNKv5/wYIFMXPmzNhkk02iadOmy30/i4qK4oADDoiHH3445syZU7F9zJgxsd5668Uuu+wSET8kULNmzYoDDzwwvvjii4pH7dq1Y8cdd4yxY8eu0LWcffbZ8cQTT8QTTzwRY8aMiQMPPDDOOOOMuOKKK5Z5PV9//XV88cUX0bVr15gyZUrF0MRatWrFwQcfHPfff3988803FfvffvvtsfPOO0f79u0jIuLuu++O8vLy6NevX672Vq1axaabblpR+6L067HHHqvScOaqfs9UZvHrnT9/fnzxxRfxi1/8IiIi9+fXtGnTeP7555c5xHdlr2FFrczn4Oijj672OgAKTcMHNUSTJk0iInL/GFyejz76KGrVqhWbbLJJbnurVq2iadOm8dFHH+W2b7jhhksdY+21146vvvpqJSteWv/+/aNLly5x+OGHR8uWLWPAgAFx5513Lrf5W1TnkvcwRfwwRPGLL76IuXPn5rYveS1rr712RESVrmXRfTpjxoyJ22+/PTp37rzUe7lIeXl5XH755bHppptGcXFxrLvuutG8efN4/fXXf/R+qcWtt956VZqg5dJLL41mzZrFxIkT48orr4wWLVqs8GuX9NFHH8Wmm26am+0w4of3eNHzi1vUgFTVRhttFIceemjccMMN8fnnn1e6z7x58+Lss8+ODTbYIPd+zpo160ffz/79+8e8efPi/vvvj4gf1hx8+OGH44ADDqgYSjhp0qSIiPjlL38ZzZs3zz0ef/zxmDFjxgpdy9Zbbx09evSIHj16RL9+/eK2226LvfbaK04//fSKiUMiIv79739Hjx49Ku4/bd68ecX9mYtfz2GHHRbz5s2rGG793nvvxcsvv5xbNmPSpEmRZVlsuummS9X+zjvvVNTevn37GDp0aPzlL3+JddddN3r27BnXXHPNj75/Vf2eqcyXX34ZJ554YrRs2TIaNGgQzZs3r/i8LH7+Sy65JN58883YYIMNYocddojhw4fnfsG0stewoqr6OahTp06sv/761XJugJrEPXxQQzRp0iTatGkTb775ZpVet+SkKcuyrNnrsixb6XMsPkFGxA+/+R8/fnyMHTs2HnrooXj00UdjzJgx8ctf/jIef/zxaptB76dcyyLFxcWx7777xqhRo2LKlCkxfPjwZe574YUXxllnnRVDhgyJ8847L5o1axa1atWKk046aYWTzIh8MrIiXn311Yp/lL7xxhu5dG5Vq2qtizvjjDNi9OjRcfHFF0ffvn2Xev7444+Pm2++OU466aTYaaedKhbPHjBgwI++n7/4xS+iXbt2ceedd8ZBBx0UDzzwQMybNy/69+9fsc+iY4wePTpatWq11DGWnHSlKnbfffd48MEH44UXXojevXvHBx98ELvvvnt06NAhLrvssthggw2iXr168fDDD8fll1+eu56OHTvGdtttF7fddlscdthhcdttt0W9evVys8WWl5dHUVFRPPLII5V+zhe/X+1//ud/YtCgQXHffffF448/HieccEKUlpbGc889t8zGpUOHDhHxw+dpZfXr1y+effbZOPXUU2ObbbaJRo0aRXl5efz617/OXW+/fv1i1113jXvuuScef/zx+NOf/hQXX3xx3H333dGrV6+VvoYVVdXPweJJPkBKNHxQg+y1115xww03xIQJE2KnnXZa7r5t27aN8vLymDRpUkVKExExffr0mDVrVsVMdtVh7bXXzs1ouciSqVDED0PXdt9999h9993jsssuiwsvvDDOOOOMGDt2bPTo0aPS64j4Ie1Y0rvvvhvrrrvuKpsa/aCDDoqbbropatWqFQMGDFjmfnfddVd07959qck6Zs2aFeuuu27FzyvafK+IuXPnxuDBg6Njx46x8847xyWXXBK/+c1vKmYCraq2bdvG66+/HuXl5bl/1L777rsVz1eXjTfeOA455JC4/vrrY8cdd1zq+bvuuisGDhwY//M//1Oxbf78+ZV+xirTr1+/uOKKK2L27NkxZsyYaNeuXcWQwkXnj4ho0aJFpZ+5n+L777+PiKgYUvrAAw9EWVlZ3H///bnkeVnDRg877LAYOnRofP755xXLgCxKqBfVnmVZtG/fPjbbbLMfrWfrrbeOrbfeOs4888x49tlno0uXLnHdddfF+eefX+n+m222WWy++eZx3333xRVXXFHliZm++uqreOqpp2LEiBFx9tlnV2xflKYtqXXr1nHMMcfEMcccEzNmzIhtt902LrjggoqGb2WuYUWtys8BwJrEr7KgBvnDH/4QDRs2jMMPPzymT5++1PMffPBBxf1De+65Z0REjBw5MrfPZZddFhERvXv3rra6Nt544/j666/j9ddfr9j2+eefLzUT6JdffrnUaxctQL7kUhGLtG7dOrbZZpsYNWpU7h/8b775Zjz++OMV17kqdO/ePc4777y4+uqrK00AFqldu/ZS6eHf//73+PTTT3PbFjWmK9q4LM9pp50WH3/8cYwaNSouu+yyaNeuXQwcOHCZ7+OP2XPPPWPatGkxZsyYim3ff/99XHXVVdGoUaPo2rXrT655cWeeeWYsWLAgLrnkkqWeq+z9vOqqq5ZKjJelf//+UVZWFqNGjYpHH310qfUUe/bsGU2aNIkLL7yw0mUQFh+OWVUPPvhgRER06tQpIv7/tHnx6/n666/j5ptvrvT1Bx54YBQVFcWJJ54YU6ZMiUMOOST3/L777hu1a9eOESNGLPUeZVlWsfTB7NmzK5rPRbbeeuuoVavWj35GRowYETNnzozDDz98qWNERDz++OMV17mkyq43YunvoYULFy41NLNFixbRpk2bivp+yjWsiFX5OQBYk0j4oAbZeOON44477oj+/fvHFltsEYcddlhstdVW8d1338Wzzz5bMY1+xA//4Bw4cGDccMMNMWvWrOjatWu88MILMWrUqOjbt29079692uoaMGBAnHbaafGb3/wmTjjhhIqpzTfbbLPcJA3nnntujB8/Pnr37h1t27aNGTNmxJ///OdYf/31KybUqMyf/vSn6NWrV+y0007x29/+tmJZhpKSkuUOtfypatWqFWeeeeaP7rfXXnvFueeeG4MHD46dd9453njjjbj99ttjo402yu238cYbR9OmTeO6666Lxo0bR8OGDWPHHXes8v1wTz/9dPz5z3+Oc845p2KZiJtvvjm6desWZ511VqVN1I854ogj4vrrr49BgwbFyy+/HO3atYu77ror/v3vf8fIkSN/0iQelVmU8i25zl/ED+/n6NGjo6SkJDp27BgTJkyIJ598MtZZZ50VOva2224bm2yySZxxxhlRVlaWG84Z8cPw6GuvvTYOPfTQ2HbbbWPAgAHRvHnz+Pjjj+Ohhx6KLl26xNVXX/2j5/nXv/4V8+fPj4gffplx//33xz//+c8YMGBAxdDIPfbYI+rVqxd9+vSJI488MubMmRM33nhjtGjRotJ7GJs3bx6//vWv4+9//3s0bdp0qV/MbLzxxnH++efHsGHD4sMPP4y+fftG48aNY+rUqXHPPffEEUccEb///e/j6aefjuOOOy4OOOCA2GyzzeL777+P0aNHR+3atWO//fZb7nX1798/3njjjbjgggvi1VdfjQMPPDDatm0bM2fOjEcffTSeeuqpuOOOOyp9bZMmTWK33XaLSy65JBYsWBDrrbdePP744zF16tTcft98802sv/76sf/++0enTp2iUaNG8eSTT8aLL75Ykez+lGtYEdX1OQBY4xVqelBg2d5///3sd7/7XdauXbusXr16WePGjbMuXbpkV111VTZ//vyK/RYsWJCNGDEia9++fVa3bt1sgw02yIYNG5bbJ8sqn6Y/y5ZeDmBZ051nWZY9/vjj2VZbbZXVq1cv23zzzbPbbrttqWUZnnrqqWyfffbJ2rRpk9WrVy9r06ZNduCBB2bvv//+UudYcumCJ598MuvSpUvWoEGDrEmTJlmfPn2yt99+O7fPovMtuezDktOxL8viyzIsy7KWZTjllFOy1q1bZw0aNMi6dOmSTZgwodLlFO67776sY8eOWZ06dXLX2bVr12zLLbes9JyLH2f27NlZ27Zts2233TZbsGBBbr+TTz45q1WrVjZhwoTlXsOy/rynT5+eDR48OFt33XWzevXqZVtvvfVSfw7L+wxU9XyTJk3KateuvdTU+1999VVFHY0aNcp69uyZvfvuu0tNv7/ksgyLO+OMM7KIyDbZZJNl1jV27NisZ8+eWUlJSVa/fv1s4403zgYNGpS99NJLy72eypZlqFevXtahQ4fsggsuyL777rvc/vfff3/2s5/9LKtfv37Wrl277OKLL85uuummZX4mFy0jccQRRyyzhn/84x/ZLrvskjVs2DBr2LBh1qFDh+zYY4/N3nvvvSzLsmzKlCnZkCFDso033jirX79+1qxZs6x79+7Zk08+udxrW9yiv68tWrTI6tSpkzVv3jzr06dPdt9991XsU9nf108++ST7zW9+kzVt2jQrKSnJDjjggOyzzz7LIiI755xzsizLsrKysuzUU0/NOnXqlDVu3Dhr2LBh1qlTp+zPf/5zxXFW9BpWdlmGRVbkc7Ai3w0Aa6qiLKvCLAcAwE9y3333Rd++fWP8+PG5pVIAYFXQ8AHAarTXXnvFO++8E5MnT67WiX4AoDLu4QOA1eB///d/4/XXX4+HHnoorrjiCs0eAKuFhA8AVoOioqJo1KhR9O/fP6677rqftB4gAKwoyzIAwGqQZVl888038Ze//EWzB0CMHz8++vTpE23atImioqK49957l9rnnXfeib333jtKSkqiYcOG0blz5/j4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WIcvT8IHAACQKAkfAACQDMsy5En4AAAAEiXhAwAAklEu48uR8AEAACRKwwcAAJAoQzoBAIBkWJYhT8IHAACQKAkfAACQDFO25En4AAAAEqXhAwAASJQhnQAAQDJM2pIn4QMAAEiUhA8AAEhGeVGhK6hZJHwAAACJkvABAADJKLcwQ46EDwAAIFEaPgAAgEQZ0gkAACTDgM48CR8AAECiJHwAAEAyLLyeJ+EDAABIlIYPAAAgUYZ0AgAAybAOX56EDwAAIFESPgAAIBnyvTwJHwAAQKIkfAAAQDIsy5An4QMAAEiUhg8AACBRGj4AACAZ5ZEV7FFVn376aRxyyCGxzjrrRIMGDWLrrbeOl156qVrfD/fwAQAArGZfffVVdOnSJbp37x6PPPJING/ePCZNmhRrr712tZ5HwwcAACRjTVmW4eKLL44NNtggbr755opt7du3r/bzGNIJAABQDcrKymL27Nm5R1lZWaX73n///bH99tvHAQccEC1atIif//znceONN1Z7TRo+AACAalBaWholJSW5R2lpaaX7TpkyJa699trYdNNN47HHHoujjz46TjjhhBg1alS11lSUZVmNSD3r1Fuv0CUAUA2ea9G50CUAUA22/+TeQpewUk5sN6Bg577kvVFLJXrFxcVRXFy81L716tWL7bffPp599tmKbSeccEK8+OKLMWHChGqryT18AAAA1WBZzV1lWrduHR07dsxt22KLLeIf//hHtdak4QMAAJKRrSHTtnTp0iXee++93Lb3338/2rZtW63ncQ8fAADAanbyySfHc889FxdeeGFMnjw57rjjjrjhhhvi2GOPrdbzaPgAAIBklBfwURWdO3eOe+65J/72t7/FVlttFeedd16MHDkyDj744JW88soZ0gkAAFAAe+21V+y1116r9BwSPgAAgERJ+AAAgGSUryGTtqwuEj4AAIBESfgAAIBkyPfyJHwAAACJ0vABAAAkypBOAAAgGSZtyZPwAQAAJErCBwAAJKO80AXUMBI+WIVO+8NxMeHZh+Krme/FZ5+8Fv+466+x2WYbF7osAFZCrYb1Y4Phv42tn7shtp08Jjrce1Gs1WmTQpcFsFwaPliFdtv1F3HttaOiy6594td7Hhh169SNRx66I9Zaq0GhSwOgitr96bhosmunmHriyHirx4kxe/zE2OxvI6Juq2aFLg1YTFbA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8AEAAMkol/DlSPgAAAASpeEDAABIlCGdAABAMjLLMuRI+AAAABIl4QMAAJJhWYY8CR8AAECiNHwAAACJMqQTAABIRrlJW3IkfAAAAImS8AEAAMkwaUuehA8AACBREj4AACAZ5RK+HAkfAABAojR8AAAAiTKkEwAASIZJW/IkfAAAAImS8AEAAMmw8HqehA8AACBRGj4AAIBEGdIJAAAkw6QteRI+AACAREn4AACAZJRL+HIkfAAAAImS8AEAAMnILMuQI+EDAABIlIYPAAAgUYZ0AgAAyTBpS56EDwAAIFESPgAAIBkWXs+T8AEAACRKwwcAAJAoQzoBAIBkWIcvT8IHAACQKAkfAACQDJO25En4AAAAEiXhAwAAkiHhy5PwAQAArGalpaXRuXPnaNy4cbRo0SL69u0b7733XrWfR8MHAACwmv3zn/+MY489Np577rl44oknYsGCBbHHHnvE3Llzq/U8RVkNyTzr1Fuv0CUAUA2ea9G50CUAUA22/+TeQpewUgrZV3z/3acr/dr//ve/0aJFi/jnP/8Zu+22W7XV5B4+AACAalBWVhZlZWW5bcXFxVFcXPyjr/36668jIqJZs2bVWlONSfggdWVlZVFaWhrDhg1bob/0ANRMvs+BZRk+fHiMGDEit+2cc86J4cOHL/d15eXlsffee8esWbPimWeeqdaaNHywmsyePTtKSkri66+/jiZNmhS6HABWku9zYFlWNuE7+uij45FHHolnnnkm1l9//WqtyZBOAACAarCiwzcXd9xxx8WDDz4Y48ePr/ZmL0LDBwAAsNplWRbHH3983HPPPTFu3Lho3779KjmPhg8AAGA1O/bYY+OOO+6I++67Lxo3bhzTpk2LiIiSkpJo0KBBtZ3HOnywmhQXF8c555zjBn+ANZzvc6A6XHvttfH1119Ht27donXr1hWPMWPGVOt5TNoCAACQKAkfAABAojR8AAAAidLwAQAAJErDBwAAkCgNH6wG11xzTbRr1y7q168fO+64Y7zwwguFLgmAKho/fnz06dMn2rRpE0VFRXHvvfcWuiSAH6Xhg1VszJgxMXTo0DjnnHPilVdeiU6dOkXPnj1jxowZhS4NgCqYO3dudOrUKa655ppClwKwwizLAKvYjjvuGJ07d46rr746IiLKy8tjgw02iOOPPz5OP/30AlcHwMooKiqKe+65J/r27VvoUgCWS8IHq9B3330XL7/8cvTo0aNiW61ataJHjx4xYcKEAlYGAMD/BRo+WIW++OKLWLhwYbRs2TK3vWXLljFt2rQCVQUAwP8VGj4AAIBEafhgFVp33XWjdu3aMX369Nz26dOnR6tWrQpUFQAA/1do+GAVqlevXmy33Xbx1FNPVWwrLy+Pp556KnbaaacCVgYAwP8FdQpdAKRu6NChMXDgwNh+++1jhx12iJEjR8bcuXNj8ODBhS4NgCqYM2dOTJ48ueLnqVOnxsSJE6NZs2ax4YYbFrAygGWzLAOsBldffXX86U9/imnTpsU222wTV155Zey4446FLguAKhg3blx07959qe0DBw6MW265ZfUXBLACNHwAAACJcg8fAABAojR8AAAAidLwAQAAJErDBwAAkCgNHwAAQKI0fAAAAInS8AEAACRKwwcAAJAoDR8AAECiNHwAAACJ0vABAAAkSsMHAACQqP8PrTMoIDdtjLoAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "DkNbZ5zbhLBc"
},
"execution_count": null,
"outputs": []
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment