Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
N
NLP-Project
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
almohanad.hafez
NLP-Project
Commits
b2228e32
Commit
b2228e32
authored
Nov 22, 2024
by
Almouhannad Hafez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(5) Use N-Grams with dep. parsing features
parent
28e67496
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
937 additions
and
768 deletions
+937
-768
5.1.Dep_parsing_classifier.ipynb
5/5.1.Dep_parsing_classifier.ipynb
+936
-768
README.md
README.md
+1
-0
Results.xlsx
Results.xlsx
+0
-0
No files found.
5/5.1.Dep_parsing_classifier.ipynb
View file @
b2228e32
...
...
@@ -185,13 +185,53 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"#### ***Usage example***"
"### ***Features extraction***\n",
"**Dependency Relation Tuples:** \n",
"- `(head_word, dependent_word, dependency_relation)`\n",
"- `n1 -> n2 grams`"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def extract_dependency_features_with_n_grams(row_id, n1=1, n2=2):\n",
" doc = get_doc_by_id(row_id)\n",
" feature_tuples = set() # Use a set to avoid duplicates\n",
" \n",
" # Extract dependency relations\n",
" for sentence in doc.sentences:\n",
" for word in sentence.words:\n",
" # Dependency relation tuples\n",
" if word.head > 0: # If not root\n",
" head = sentence.words[word.head - 1] # Adjust head index\n",
" feature_tuples.add((head.lemma, word.lemma, word.deprel))\n",
" \n",
" # Extract n-grams from n1 to n2\n",
" for sentence in doc.sentences:\n",
" words = [word.lemma for word in sentence.words]\n",
" \n",
" for n in range(n1, n2 + 1): # Loop from n1 to n2 inclusive\n",
" for i in range(len(words) - n + 1):\n",
" n_gram = tuple(words[i:i+n]) # Create a tuple for the n-gram\n",
" feature_tuples.add(n_gram)\n",
" \n",
" return feature_tuples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### ***Usage example***"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
...
...
@@ -207,7 +247,7 @@
},
{
"cell_type": "code",
"execution_count": 9
,
"execution_count": 10
,
"metadata": {},
"outputs": [
{
...
...
@@ -235,7 +275,7 @@
" ('painful', '.', 'punct')]"
]
},
"execution_count": 9
,
"execution_count": 10
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -253,7 +293,7 @@
},
{
"cell_type": "code",
"execution_count": 10
,
"execution_count": 11
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -272,7 +312,7 @@
},
{
"cell_type": "code",
"execution_count": 11
,
"execution_count": 12
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -294,7 +334,7 @@
},
{
"cell_type": "code",
"execution_count": 12
,
"execution_count": 13
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -361,7 +401,7 @@
},
{
"cell_type": "code",
"execution_count": 13
,
"execution_count": 14
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -382,7 +422,7 @@
},
{
"cell_type": "code",
"execution_count": 14
,
"execution_count": 15
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -422,7 +462,7 @@
},
{
"cell_type": "code",
"execution_count": 15
,
"execution_count": 16
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -439,7 +479,7 @@
},
{
"cell_type": "code",
"execution_count": 16
,
"execution_count": 17
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -460,7 +500,7 @@
},
{
"cell_type": "code",
"execution_count": 17
,
"execution_count": 18
,
"metadata": {},
"outputs": [
{
...
...
@@ -482,7 +522,7 @@
},
{
"cell_type": "code",
"execution_count": 18
,
"execution_count": 19
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -499,7 +539,7 @@
},
{
"cell_type": "code",
"execution_count": 19
,
"execution_count": 20
,
"metadata": {},
"outputs": [
{
...
...
@@ -536,7 +576,7 @@
},
{
"cell_type": "code",
"execution_count": 20
,
"execution_count": 21
,
"metadata": {},
"outputs": [
{
...
...
@@ -573,7 +613,7 @@
},
{
"cell_type": "code",
"execution_count": 21
,
"execution_count": 22
,
"metadata": {},
"outputs": [
{
...
...
@@ -634,7 +674,7 @@
},
{
"cell_type": "code",
"execution_count": 22
,
"execution_count": 23
,
"metadata": {},
"outputs": [
{
...
...
@@ -667,7 +707,7 @@
},
{
"cell_type": "code",
"execution_count": 23
,
"execution_count": 24
,
"metadata": {},
"outputs": [
{
...
...
@@ -697,7 +737,7 @@
},
{
"cell_type": "code",
"execution_count": 24
,
"execution_count": 25
,
"metadata": {},
"outputs": [
{
...
...
@@ -745,6 +785,134 @@
"model = MultinomialNB(alpha=0.01)\n",
"evaluate_model(X_train, X_test, y_train, y_test, chi2, 7500, model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ***Use Dependecy features with N-Grams***\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train set shape after features extraction: (4320, 84052)\n",
"Test set shape after features extraction: (480, 84052)\n"
]
}
],
"source": [
"n1 = 1\n",
"n2 = 3\n",
"def extractor(row_id):\n",
" return extract_dependency_features_with_n_grams(row_id, n1, n2)\n",
"\n",
"\n",
"train_df[\"features\"] = train_df[\"Id\"].apply(extractor)\n",
"test_df[\"features\"] = test_df[\"Id\"].apply(extractor)\n",
"\n",
"all_features_train = train_df['features'].apply(flatten_tuples)\n",
"all_features_flat_train = [' '.join(features) for features in all_features_train]\n",
"all_features_test = test_df['features'].apply(flatten_tuples)\n",
"all_features_flat_test = [' '.join(features) for features in all_features_test]\n",
"\n",
"vectorizer = TfidfVectorizer()\n",
"X_train = vectorizer.fit_transform(all_features_flat_train)\n",
"X_test = vectorizer.transform(all_features_flat_test)\n",
"print(f\"Train set shape after features extraction: {X_train.shape}\")\n",
"print(f\"Test set shape after features extraction: {X_test.shape}\")\n",
"\n",
"y_train = train_df[\"label\"]\n",
"y_test = test_df[\"label\"]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Closest Point 1: Number of Features = 66000, Train Accuracy = 1.0, Test Accuracy = 0.975\n",
"Closest Point 2: Number of Features = 68000, Train Accuracy = 1.0, Test Accuracy = 0.975\n",
"Closest Point 3: Number of Features = 67000, Train Accuracy = 1.0, Test Accuracy = 0.975\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAIjCAYAAADvBuGTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAACisElEQVR4nOzdd3gU1f7H8fcmpJOEkkAAgUCkSBGkKkixQJSigkpTaYrolStcrldBkWZB/SmCimIDlCKIgIIgEkFEROkg0qSK0msChNSd3x/DLlmyqWyyu8nn9Tx5sjtz9syZ2bOw35wz32MxDMNAREREREREromPuxsgIiIiIiJSFCi4EhERERERcQEFVyIiIiIiIi6g4EpERERERMQFFFyJiIiIiIi4gIIrERERERERF1BwJSIiIiIi4gIKrkRERERERFxAwZWIiIiIiIgLKLgSEbfq27cv0dHR7m5GvrRt25a2bdu6uxkibtG3b19Klizp7mbk2tKlS2nYsCGBgYFYLBbOnTvn7iaJSBGk4EpEnLJYLLn6Wblypbub6rFGjx6dq2voqgBtyZIljB49Ol+vbdasGRaLhQ8++MAlbRHXaNu2LRaLhc6dO2fad/DgQSwWC2+++aYbWuZdTp8+Tbdu3QgKCmLSpElMnz6dkJAQp2WnTZuW5Wd12LBhBdK+NWvWMHr0aAV8IkVACXc3QEQ80/Tp0x2ef/7558TFxWXafsMNN1zTcT7++GOsVus11eGpunbtyvXXX29/fuHCBZ588km6dOlC165d7dvLly/vkuMtWbKESZMm5TnA2rNnD+vXryc6OpqZM2fy5JNPuqQ94jrffvstGzdupHHjxu5uildav34958+f56WXXuLOO+/M1WvGjh1LtWrVHLbVq1evIJrHmjVrGDNmDH379qVUqVIFcgwRKRwKrkTEqYcfftjh+W+//UZcXFym7VdLTEwkODg418fx8/PLV/u8wY033siNN95of37q1CmefPJJbrzxxhyvY2GaMWMG5cqV46233uKBBx7g4MGDHjlV02q1kpKSQmBgoLubUqiqVKnC+fPnGTNmDAsXLnR3cwqVYRgkJSURFBR0TfWcOHECIE+By913302TJk2u6bjudvHixSxH6ESkYGhaoIjkW9u2balXrx4bN26kdevWBAcH8/zzzwPwzTff0LFjRypWrEhAQAAxMTG8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aNiwISVLlsRqtXLXXXfl6t/BvL6fkPn6Wa1WLBYL3333ndP3NWP/e+utt+jbt6/935mnn36acePG8dtvv3Hdddfl2F4RUXAlIgVg5cqVnD59mvnz59O6dWv79gMHDhT4sb/66ituu+02Pv30U4ft586ds98onhdVq1YFzL/+3n777fbtqampHDhwgAYNGuS7rba/+Pv5+eVq7Z0yZcrQr18/+vXrx4ULF2jdujWjR4+2B1d5mX538eJFvvnmG7p3784DDzyQaf/TTz/NzJkzue222+w3///xxx9ZttN2Ln/88Ue2xy1durTThVLzMsowb948AgMD+f777wkICLBvnzp1qkO5mJgYrFYrO3bsoGHDhtnW2bt3b4YOHcrRo0eZNWsWHTt2dJiWmp1u3boxceJEEhISmDNnDtHR0fapXxndfPPN3HzzzbzyyivMmjWLhx56iNmzZ+cpOLaNXo0ePdqeAS8jW5vPnTvnMIXzWkdxsmK1Wtm/f799tArgzz//BLAndYiJieGHH36gZcuWLg2cbJ/N3bt3O3w2bdts+13N9nkoV65ctp/bs2fPsnz5csaMGcPIkSPt251N7c3qs5vx/cwoL+9nTEwMhmFQrVo1h/cpK/Xr16d+/fqMGDGCNWvW0LJlSyZPnszLL7+c62OKFGeaFigiLmf762jGv3KnpKTw/vvvF8qxr/7r+ty5cx1SM+dFkyZNiIyMZPLkyaSkpNi3T5s2zWmQkBflypWjbdu2fPjhhxw9ejTT/oyZwjKmbgbzr83XX3+9w9Qy23o2uWnXggULuHjxIk899RQPPPBApp9OnToxb948kpOTadSoEdWqVWPChAmZ6rZd68jISFq3bs2UKVM4dOiQ0zJgftGLj493mNJ49OhR+5S83PD19cVisTj89f7gwYN8/fXXDuXuu+8+fHx8GDt2bKZRgqv7SM+ePbFYLAwePJj9+/fnaR2y7t27k5yczGeffcbSpUszjXidPXs20/FswV5epwYC9nvfMmbjs7F98V+1apV928WLF/nss8/yfJzceu+99+yPDcPgvffew8/PjzvuuAMwg8/09HReeumlTK9NS0vL9+eoSZMmlCtXjsmTJztcx++++46dO3c6ZI10pdjYWMLCwnj11Ved3kNn+9w6+3cQcDrimNVnNywsjIiICIf3E8jTv6Vdu3bF19eXMWPGZGqL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ypXjnnvuKYg2SnaudVqgiIiIiIi4RL5TsQPUqlWLN954g3/++YcvvvjCVW2SvHDFtEAREREREblm1xRc2fj6+nLfffexcOFCV1QneWFLxX6t0wJFREREROSauCS4Ejey3XOVn3WuRERERETEZRRcebtU2yLCGrkSEREREXEnBVfezjYtUPdciYiIiIi4lYIrb2ZNh7Qk87GfgisREREREXdScOXNbJkCQdMCRURERETcTMGVN7NNCbT4QIlA97ZFRERERKSYU3Dlzexp2EPAYnFvW0REREREijkFV94sRZkCRUREREQ8hYIrb2a750qZAkVERERE3E7BlTfLOC1QRERERETcSsGVN9MaVyIiIiIiHkPBlTezTwvUPVciIiIiIu6m4MqbpVwwf/spuBIRERERcTcFV94sxTZyVdK97RAREREREQVXXk3TAkVEREREPIaCK29mmxaohBYiIiIiIm6n4Mqb2aYFKhW7iIiIiIjbKbjyZpoWKCIiIiLiMRRceTNNCxQRERER8RgKrryZpgWKiIiIiHgMBVfeLOWi+VvTAkVERERE3E7BlTdLtQVXGrkSEREREXE3BVfeTNMCRUREREQ8hoIrb5aikSsREREREU+h4Mqb2VOxK7gSEREREXE3BVfeyjCujFz5KaGFiIiIiIi7KbjyVmnJYKSbjzVyJSIiIiLidgquvJVtSiAouBIRERER8QAKrrxVygXzt28A+Pi6ty0iIiIiIqLgymulKJmFiIiIiIgnUXDlrbSAsIiIiIiIR1Fw5a20xpWIiIiIiEdRcOWtbNMClYZdRERERMQjKLjyVraEFhq5EhERERHxCAquvFWqElqIiIiIiHgSBVfeStMCRUREREQ8ioIrb6VpgSIiIiIiHkXBlbfStEAREREREY+i4MpbaVqgiIiIiIhHUXDlrTQtUERERETEoyi48laaFigiIiIi4lEUXHmrlIvmb00LFBERERHxCAquvJUtuNLIlYiIiIiIR1Bw5a00LVBERERExKMouPJWGrkSEREREfEoHhFcTZo0iejoaAIDA2nevDnr1q3Lsmxqaipjx44lJiaGwMBAGjRowNKlSx3KjBs3jqZNmxIaGkq5cuW477772L17d0GfRuGyp2JXcCUiIiIi4gncHlzNmTOHoUOHMmrUKDZt2kSDBg2IjY3lxIkTTsuPGDGCDz/8kHfffZcdO3bwxBNP0KVLFzZv3mwv89NPP/HUU0/x22+/ERcXR2pqKu3bt+fixYuFdVoFz56KXQktREREREQ8gduDq/HjxzNgwAD69etHnTp1mDx5MsHBwUyZMsVp+enTp/P888/ToUMHqlevzpNPPkmHDh1466237GWWLl1K3759qVu3Lg0aNGDatGkcOnSIjRs3FtZpFTzdcyUiIiIi4lFKuPPgKSkpbNy4keHDh9u3+fj4cOedd/Lrr786fU1ycjKBgYEO24KCgli9enWWx4mPjwegTJkyWdaZnJxsf56QkACYUxBTU1NzdzL5ZKs/T8expuOXlmS+zuIPBdxGkXz1U5FCpD4q3kD9VLyB+mlmebkWbg2uTp06RXp6OuXLl3fYXr58eXbt2uX0NbGxsYwfP57WrVsTExPD8uXLmT9/Punp6U7LW61WhgwZQsuWLalXr57TMuPGjWPMmDGZti9btozg4MKZdhcXF5frsiXSL9Hx8uOlK37G6uNfMI0SuUpe+qmIO6iPijdQPxVvoH56RWJiYq7LujW4yo+JEycyYMAAateujcViISYmhn79+mU5jfCpp57ijz/+yHZka/jw4QwdOtT+PCEhgcqVK9O+fXvCwsJcfg4ZpaamEhcXR7t27fDz88vdi84fg9/BsPhwV8d7wWIp0DaK5KufihQi9VHxBuqn4g3UTzOzzWrLDbcGVxEREfj6+nL8+HGH7cePHycqKsrpayIjI/n6669JSkri9OnTVKxYkWHDhlG9evVMZQcNGsS3337LqlWruO6667JsR0BAAAEBAZm2+/n5FVqnytOxjBQALH4h+Plr1EoKT2F+JkTyQ31UvIH6qXgD9dMr8nId3JrQwt/fn8aNG7N8+XL7NqvVyvLly7nllluyfW1gYCCVKlUiLS2NefPmce+999r3GYbBoEGDWLBgAStWrKBatWoFdg5uoTWuREREREQ8jtunBQ4dOpQ+ffrQpEkTmjVrxoQJE7h48SL9+vUDoHfv3lSqVIlx48YBsHbtWg4fPkzDhg05fPgwo0ePxmq18uyzz9rrfOqpp5g1axbffPMNoaGhHDt2DIDw8HCCgoIK/yRdzZ4pUGnYRUREREQ8hduDq+7du3Py5ElGjhzJsWPHaNiwIUuXLrUnuTh06BA+PlcG2JKSkhgxYgT79++nZMmSdOjQgenTp1OqVCl7mQ8++ACAtm3bOhxr6tSp9O3bt6BPqeDZ1rjSAsIiIiIiIh7D7cEVmPdGDRo0yOm+lStXOjxv06YNO3bsyLY+wzBc1TTPlKI1rkREREREPI3bFxGWfNC0QBERERERj6PgyhvZpwUquBIRERER8RQKrryRfVpgSfe2Q0RERERE7BRceSN7KnaNXImIiIiIeAoFV94oVetciYiIiIh4GgVX3sg2LVCp2EVEREREPIaCK2+kaYEiIiIiIh5HwZU30rRAERERERGPo+DKG2laoIiIiIiIx1Fw5Y1SNHIlIiIiIuJpFFx5o1TdcyUiIiIi4mkUXHkj28iVpgWKiIiIiHgMBVfeyHbPlaYFioiIiIh4DAVX3ihVwZWIiIiIiKdRcOVtDANSLpiP/XTPlYiIiIiIp1Bw5W3SksGwmo81ciUiIiIi4jEUXHkbWzILUHAlIiIiIuJBFFx5G1sa9hKB4OPr3raIiIiIiIidgitvY8sUqPutREREREQ8ioIrb2ObFqgpgSIiIiIiHkXBlbdJVXAlIiIiIuKJFFx5G00LFBERERHxSAquvI1tjSuNXImIiIiIeBQFV94m9fLIlYIrERERERGPouDK29gSWmhaoIiIiIiIR1Fw5W2ULVBERERExCMpuPI2mhYoIiIiIuKRFFx5G00LFBERERHxSAquvI2mBYqIiIiIeCQFV95G0wJFRERERDySgitvo5ErERERERGPpODK2+ieKxERERERj6Tgytto5EpERERExCMpuPI2uudKRERERMQjKbjyNimXgys/BVciIiIiIp5EwZW3Sblg/vbXPVciIiIiIp5EwZW30bRAERERERGPpODKm1jTIS3JfKxpgSIiIiIiHkXBlTexZQoEjVyJiIiIiHgYBVfexDYl0OIDJQLc2xYREREREXGg4Mqb2BcQDgGLxb1tERERERERBwquvIkWEBYRERER8VgKrryJPVOg0rCLiIiIiHgaBVfexLbGlTIFioiIiIh4HAVX3iRFa1yJiIiIiHgqBVfexH7PlaYFioiIiIh4GgVX3iRVCS1ERERERDyVgitvYpsWqHuuREREREQ8joIrb6JpgSIiIiIiHkvBlTfRtEAREREREY+l4Mqb2EauNC1QRERERMTjKLjyJilaRFhERERExFMpuPImmhYoIiIiIuKxFFx5E00LFBERERHxWAquvIl9WqCCKxER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DcOGDaNmzZrMnz8/U5kpU6ZQt25dAgICqFChAoMGDbLvO3fuHAMHDqR8+fIEBgZSr149vv32WwBGjx5Nw4YNHeqaMGEC0dHR9ud9+/blvvvu45VXXqFixYrUqlULgOnTp9OkSRNCQ0OJioqiV69e9rWobLZv306nTp0ICwsjNDSUVq1asW/fPlatWoWfnx/Hjh1zKD9kyBBatWqV4zW5FlrnyhukahFhERERkatdSk2nzsjvr6kOqwEvfrOdF7/ZnqfX7RgbS7C/a75KDxs2jDfffJPq1atTunRp/v77bzp06MArr7xCQEAAn3/+OZ07d2b37t1UqVIly3rGjBnDG2+8wf/93//x7rvv8tBDD/HXX39RpkyZLF8zdepUOnbsSHh4OA8//DBTp06lU6dO9v0ffPABQ4cO5bXXXuPuu+8mPj6eX375BTDXxLr77rs5f/48M2bMICYmhh07duR5najly5cTFhZGXFycfVtqaiovvfQStWrV4sSJEwwdOpS+ffuyZMkSAA4fPkzr1q1p27YtK1asICwsjF9++YW0tDRat25N9erVmT59Ov/73//s9c2cOZM33ngjT23LKwVX3kDTAkVERESKrLFjx9KuXTv78zJlytCgQQP785deeokFCxawcOFCh1Gjq/Xt25eePXsC8Oqrr/LOO++wbt067rrrLqflrVYr06ZN49133wWgR48e/Pe//+Wvv/6ifv36ALz88sv897//ZfDgwfbXNW3aFIAffviBdevWsXPnTmrWrAlA9erV83z+ISEhfPLJJ/j7+9u39e/f3/64evXqvPPOOzRt2pQLFy5QsmRJJk2aRHh4OLNnz8bPzw/A3gaARx99lKlTp9qDq0WLFpGUlES3bt3y3L68UHDlDWwJLTQtUERERMQuyM+XHWNj8/SaY/FJ3Dn+J6wZZvX5WOCHoW2ICg/M07FdpUmTJg7PL1y4wOjRo1m8eDFHjx4lLS2NS5cucejQoWzrufHGG+2PQ0JCCAsLyzSVLqO4uDguXrxIhw4dAIiIiODOO+9kxowZvP7665w4cYIjR45wxx13OH39li1buO666xyCmvyoX7++Q2AFsHHjRkaPHs3WrVs5e/YsVqsVgEOHDlGnTh22bNlCq1at7IHV1fr27cuIESP47bffuPnmm5k2bRrdunUjJKRgBysUXHmDVGULFBEREbmaxWLJ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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Make sure to update step in plotting before running this cell\n",
"model = MultinomialNB(alpha = 0.01)\n",
"plot_accuracies(X_train, X_test, y_train, y_test, model)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train Accuracy: 1.0\n",
"Test Accuracy: 0.975\n",
"Difference: 0.025000000000000022\n",
"+---------------------------------+--------------------+--------------------+------------+-----------+\n",
"| Class | Precision | Recall | F1-score | Support |\n",
"|---------------------------------+--------------------+--------------------+------------+-----------|\n",
"| Acne | 1.0 | 1.0 | 1 | 21.0 |\n",
"| Arthritis | 1.0 | 1.0 | 1 | 20.0 |\n",
"| Bronchial Asthma | 1.0 | 0.9473684210526315 | 0.972973 | 19.0 |\n",
"| Cervical spondylosis | 0.9130434782608695 | 1.0 | 0.954545 | 21.0 |\n",
"| Chicken pox | 0.75 | 1.0 | 0.857143 | 15.0 |\n",
"| Common Cold | 1.0 | 1.0 | 1 | 21.0 |\n",
"| Dengue | 1.0 | 0.7727272727272727 | 0.871795 | 22.0 |\n",
"| Dimorphic Hemorrhoids | 1.0 | 1.0 | 1 | 19.0 |\n",
"| Fungal infection | 1.0 | 1.0 | 1 | 26.0 |\n",
"| Hypertension | 1.0 | 0.9444444444444444 | 0.971429 | 18.0 |\n",
"| Impetigo | 0.9583333333333334 | 1.0 | 0.978723 | 23.0 |\n",
"| Jaundice | 1.0 | 1.0 | 1 | 22.0 |\n",
"| Malaria | 1.0 | 1.0 | 1 | 17.0 |\n",
"| Migraine | 1.0 | 1.0 | 1 | 24.0 |\n",
"| Pneumonia | 1.0 | 1.0 | 1 | 22.0 |\n",
"| Psoriasis | 1.0 | 0.8823529411764706 | 0.9375 | 17.0 |\n",
"| Typhoid | 0.9473684210526315 | 1.0 | 0.972973 | 18.0 |\n",
"| Varicose Veins | 1.0 | 0.96 | 0.979592 | 25.0 |\n",
"| allergy | 0.9375 | 1.0 | 0.967742 | 15.0 |\n",
"| diabetes | 1.0 | 0.9411764705882353 | 0.969697 | 17.0 |\n",
"| drug reaction | 1.0 | 1.0 | 1 | 16.0 |\n",
"| gastroesophageal reflux disease | 0.9545454545454546 | 1.0 | 0.976744 | 21.0 |\n",
"| peptic ulcer disease | 1.0 | 0.9444444444444444 | 0.971429 | 18.0 |\n",
"| urinary tract infection | 0.9583333333333334 | 1.0 | 0.978723 | 23.0 |\n",
"| accuracy | | | 0.975 | |\n",
"| macro avg | 0.9757968341885676 | 0.9746880831013959 | 0.973375 | |\n",
"| weighted avg | 0.9784746510441948 | 0.975 | 0.975031 | |\n",
"+---------------------------------+--------------------+--------------------+------------+-----------+\n"
]
}
],
"source": [
"model = MultinomialNB(alpha=0.01)\n",
"evaluate_model(X_train, X_test, y_train, y_test, chi2, 66000, model)"
]
}
],
"metadata": {
...
...
README.md
View file @
b2228e32
...
...
@@ -124,6 +124,7 @@
| Text + (2,4)Gram | 0.9975 | 0.9375 | 6.0 | 0.9366 | 0.9334 | 0.9311 | alpha=0.01, 16600features |
| Stanza Dep. Relation tuples | 0.9995 | 0.9521 | 4.7 | 0.9513 | 0.9503 | 0.9484 | alpha=0.01, 8000features |
| Stanza Dep.Relation+POS Relations+Headwords tuples | 0.9986 | 0.9479 | 5.1 | 0.9481 | 0.9471 | 0.9440 | alpha=0.01, 7500features |
| Stanza Dep. Relation tuples + (1,3) Grams | 1.0000 | 0.9750 | 2.5 | 0.9758 | 0.9747 | 0.9734 | alpha=0.01, 66000features |
---
> ***Applied features selection and model's hyperparameters tuning***
...
...
Results.xlsx
View file @
b2228e32
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment