{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6c32ee61",
   "metadata": {},
   "outputs": [],
   "source": [
    "# from tkinter import *\n",
    "from tkinter import messagebox\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "3b5f7d1b",
   "metadata": {},
   "outputs": [],
   "source": [
    "l1=['itching','skin_rash','nodal_skin_eruptions','continuous_sneezing','shivering','chills','joint_pain',\n",
    "    'stomach_pain','acidity','ulcers_on_tongue','muscle_wasting','vomiting','burning_micturition','spotting_ urination','fatigue',\n",
    "    'weight_gain','anxiety','cold_hands_and_feets','mood_swings','weight_loss','restlessness','lethargy','patches_in_throat',\n",
    "    'irregular_sugar_level','cough','high_fever','sunken_eyes','breathlessness','sweating','dehydration','indigestion',\n",
    "    'headache','yellowish_skin','dark_urine','nausea','loss_of_appetite','pain_behind_the_eyes','back_pain','constipation',\n",
    "    'abdominal_pain','diarrhoea','mild_fever','yellow_urine','yellowing_of_eyes','acute_liver_failure','fluid_overload',\n",
    "    'swelling_of_stomach','swelled_lymph_nodes','malaise','blurred_and_distorted_vision','phlegm','throat_irritation',\n",
    "    'redness_of_eyes','sinus_pressure','runny_nose','congestion','chest_pain','weakness_in_limbs','fast_heart_rate',\n",
    "    'pain_during_bowel_movements','pain_in_anal_region','bloody_stool','irritation_in_anus','neck_pain','dizziness','cramps',\n",
    "    'bruising','obesity','swollen_legs','swollen_blood_vessels','puffy_face_and_eyes','enlarged_thyroid','brittle_nails',\n",
    "    'swollen_extremeties','excessive_hunger','extra_marital_contacts','drying_and_tingling_lips','slurred_speech','knee_pain','hip_joint_pain',\n",
    "    'muscle_weakness','stiff_neck','swelling_joints','movement_stiffness','spinning_movements','loss_of_balance','unsteadiness','weakness_of_one_body_side',\n",
    "    'loss_of_smell','bladder_discomfort','foul_smell_of urine','continuous_feel_of_urine','passage_of_gases','internal_itching','toxic_look_(typhos)',\n",
    "    'depression','irritability','muscle_pain','altered_sensorium','red_spots_over_body','belly_pain','abnormal_menstruation','dischromic _patches',\n",
    "    'watering_from_eyes','increased_appetite','polyuria','family_history','mucoid_sputum','rusty_sputum','lack_of_concentration','visual_disturbances',\n",
    "    'receiving_blood_transfusion','receiving_unsterile_injections','coma','stomach_bleeding','distention_of_abdomen','history_of_alcohol_consumption',\n",
    "    'fluid_overload','blood_in_sputum','prominent_veins_on_calf','palpitations','painful_walking','pus_filled_pimples','blackheads','scurring','skin_peeling',\n",
    "    'silver_like_dusting','small_dents_in_nails','inflammatory_nails','blister','red_sore_around_nose','yellow_crust_ooze']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "2d922e2c",
   "metadata": {},
   "outputs": [],
   "source": [
    "disease=['Fungal infection','Allergy','GERD','Chronic cholestasis','Drug Reaction',\n",
    "        'Peptic ulcer diseae','AIDS','Diabetes','Gastroenteritis','Bronchial Asthma','Hypertension',\n",
    "        ' Migraine','Cervical spondylosis',\n",
    "        'Paralysis (brain hemorrhage)','Jaundice','Malaria','Chicken pox','Dengue','Typhoid','hepatitis A',\n",
    "'Hepatitis B','Hepatitis C','Hepatitis D','Hepatitis E','Alcoholic hepatitis','Tuberculosis',\n",
    "'Common Cold','Pneumonia','Dimorphic hemmorhoids(piles)',\n",
    "'Heartattack','Varicoseveins','Hypothyroidism','Hyperthyroidism','Hypoglycemia','Osteoarthristis',\n",
    "'Arthritis','(vertigo) Paroymsal  Positional Vertigo','Acne','Urinary tract infection','Psoriasis',\n",
    "'Impetigo']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "1193c99f",
   "metadata": {},
   "outputs": [],
   "source": [
    "l2=[]\n",
    "for x in range(0,len(l1)):\n",
    "    l2.append(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "3e64d7e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TESTING DATA\n",
    "tr=pd.read_csv(\"Testing.csv\")\n",
    "tr.replace({'prognosis':{'Fungal infection':0,'Allergy':1,'GERD':2,'Chronic cholestasis':3,'Drug Reaction':4,\n",
    "'Peptic ulcer diseae':5,'AIDS':6,'Diabetes ':7,'Gastroenteritis':8,'Bronchial Asthma':9,'Hypertension ':10,\n",
    "'Migraine':11,'Cervical spondylosis':12,\n",
    "'Paralysis (brain hemorrhage)':13,'Jaundice':14,'Malaria':15,'Chicken pox':16,'Dengue':17,'Typhoid':18,'hepatitis A':19,\n",
    "'Hepatitis B':20,'Hepatitis C':21,'Hepatitis D':22,'Hepatitis E':23,'Alcoholic hepatitis':24,'Tuberculosis':25,\n",
    "'Common Cold':26,'Pneumonia':27,'Dimorphic hemmorhoids(piles)':28,'Heart attack':29,'Varicose veins':30,'Hypothyroidism':31,\n",
    "'Hyperthyroidism':32,'Hypoglycemia':33,'Osteoarthristis':34,'Arthritis':35,\n",
    "'(vertigo) Paroymsal  Positional Vertigo':36,'Acne':37,'Urinary tract infection':38,'Psoriasis':39,\n",
    "'Impetigo':40}},inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "a1bc03c5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# tr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "cc856b5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,\n",
       "       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,\n",
       "       34, 35, 36, 37, 38, 39, 40], dtype=int64)"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test= tr[l1]\n",
    "y_test = tr[[\"prognosis\"]]\n",
    "np.ravel(y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "7f5df428",
   "metadata": {},
   "outputs": [],
   "source": [
    "# TRAINING DATA\n",
    "df=pd.read_csv(\"Training.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "6d9d4db9",
   "metadata": {},
   "outputs": [],
   "source": [
    "df.replace({'prognosis':{'Fungal infection':0,'Allergy':1,'GERD':2,'Chronic cholestasis':3,'Drug Reaction':4,\n",
    "'Peptic ulcer diseae':5,'AIDS':6,'Diabetes ':7,'Gastroenteritis':8,'Bronchial Asthma':9,'Hypertension ':10,\n",
    "'Migraine':11,'Cervical spondylosis':12,\n",
    "'Paralysis (brain hemorrhage)':13,'Jaundice':14,'Malaria':15,'Chicken pox':16,'Dengue':17,'Typhoid':18,'hepatitis A':19,\n",
    "'Hepatitis B':20,'Hepatitis C':21,'Hepatitis D':22,'Hepatitis E':23,'Alcoholic hepatitis':24,'Tuberculosis':25,\n",
    "'Common Cold':26,'Pneumonia':27,'Dimorphic hemmorhoids(piles)':28,'Heart attack':29,'Varicose veins':30,'Hypothyroidism':31,\n",
    "'Hyperthyroidism':32,'Hypoglycemia':33,'Osteoarthristis':34,'Arthritis':35,\n",
    "'(vertigo) Paroymsal  Positional Vertigo':36,'Acne':37,'Urinary tract infection':38,'Psoriasis':39,\n",
    "'Impetigo':40}},inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "1220837a",
   "metadata": {},
   "outputs": [],
   "source": [
    "X= df[l1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "731a2d2f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0,  0,  0, ..., 38, 39, 40], dtype=int64)"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = df[[\"prognosis\"]]\n",
    "np.ravel(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "b7e370fd",
   "metadata": {},
   "outputs": [],
   "source": [
    "def message():\n",
    "    if (Symptom1.get() == \"None\" and  Symptom2.get() == \"None\" and Symptom3.get() == \"None\" and Symptom4.get() == \"None\" and Symptom5.get() == \"None\"):\n",
    "        messagebox.showinfo(\"OPPS!!\", \"ENTER  SYMPTOMS PLEASE\")\n",
    "    else :\n",
    "        NaiveBayes()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "df488916",
   "metadata": {},
   "outputs": [],
   "source": [
    "def NaiveBayes():\n",
    "    from sklearn.naive_bayes import MultinomialNB\n",
    "    gnb = MultinomialNB()\n",
    "    gnb=gnb.fit(X,np.ravel(y))\n",
    "    from sklearn.metrics import accuracy_score\n",
    "    y_pred = gnb.predict(X_test)\n",
    "    print(accuracy_score(y_test, y_pred))\n",
    "    print(accuracy_score(y_test, y_pred, normalize=False))\n",
    "\n",
    "    psymptoms = [Symptom1.get(),Symptom2.get(),Symptom3.get(),Symptom4.get(),Symptom5.get()]\n",
    "\n",
    "    for k in range(0,len(l1)):\n",
    "        for z in psymptoms:\n",
    "            if(z==l1[k]):\n",
    "                l2[k]=1\n",
    "\n",
    "    inputtest = [l2]\n",
    "    predict = gnb.predict(inputtest)\n",
    "    predicted=predict[0]\n",
    "\n",
    "    h='no'\n",
    "    for a in range(0,len(disease)):\n",
    "        if(disease[predicted] == disease[a]):\n",
    "            h='yes'\n",
    "            break\n",
    "\n",
    "    if (h=='yes'):\n",
    "        t3.delete(\"1.0\", END)\n",
    "        t3.insert(END, disease[a])\n",
    "    else:\n",
    "        t3.delete(\"1.0\", END)\n",
    "        t3.insert(END, \"No Disease\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1be3755a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "80eb0a7a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'bd': ('bd', '-borderwidth'),\n",
       " 'borderwidth': ('borderwidth',\n",
       "  'borderWidth',\n",
       "  'BorderWidth',\n",
       "  <string object: '0'>,\n",
       "  0),\n",
       " 'class': ('class', 'class', 'Class', 'Toplevel', 'Tk'),\n",
       " 'menu': ('menu', 'menu', 'Menu', '', ''),\n",
       " 'relief': ('relief', 'relief', 'Relief', <string object: 'flat'>, 'flat'),\n",
       " 'screen': ('screen', 'screen', 'Screen', '', ''),\n",
       " 'use': ('use', 'use', 'Use', '', ''),\n",
       " 'background': ('background',\n",
       "  'background',\n",
       "  'Background',\n",
       "  <string object: 'SystemButtonFace'>,\n",
       "  'SystemButtonFace'),\n",
       " 'bg': ('bg', '-background'),\n",
       " 'colormap': ('colormap', 'colormap', 'Colormap', '', ''),\n",
       " 'container': ('container', 'container', 'Container', 0, 0),\n",
       " 'cursor': ('cursor', 'cursor', 'Cursor', '', ''),\n",
       " 'height': ('height', 'height', 'Height', <string object: '0'>, 0),\n",
       " 'highlightbackground': ('highlightbackground',\n",
       "  'highlightBackground',\n",
       "  'HighlightBackground',\n",
       "  <string object: 'SystemButtonFace'>,\n",
       "  'SystemButtonFace'),\n",
       " 'highlightcolor': ('highlightcolor',\n",
       "  'highlightColor',\n",
       "  'HighlightColor',\n",
       "  <string object: 'SystemWindowFrame'>,\n",
       "  'SystemWindowFrame'),\n",
       " 'highlightthickness': ('highlightthickness',\n",
       "  'highlightThickness',\n",
       "  'HighlightThickness',\n",
       "  <string object: '0'>,\n",
       "  0),\n",
       " 'padx': ('padx', 'padX', 'Pad', <string object: '0'>, <string object: '0'>),\n",
       " 'pady': ('pady', 'padY', 'Pad', <string object: '0'>, <string object: '0'>),\n",
       " 'takefocus': ('takefocus', 'takeFocus', 'TakeFocus', '0', '0'),\n",
       " 'visual': ('visual', 'visual', 'Visual', '', ''),\n",
       " 'width': ('width', 'width', 'Width', <string object: '0'>, 0)}"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "root = Tk()\n",
    "root.title(\" Disease Prediction From Symptoms\")\n",
    "root.configure()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "c8159b13",
   "metadata": {},
   "outputs": [],
   "source": [
    "Symptom1 = StringVar()\n",
    "Symptom1.set(None)\n",
    "Symptom2 = StringVar()\n",
    "Symptom2.set(None)\n",
    "Symptom3 = StringVar()\n",
    "Symptom3.set(None)\n",
    "Symptom4 = StringVar()\n",
    "Symptom4.set(None)\n",
    "Symptom5 = StringVar()\n",
    "Symptom5.set(None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "364b0dc0",
   "metadata": {},
   "outputs": [],
   "source": [
    "w2 = Label(root, justify=LEFT, text=\" Disease Prediction From Symptoms \")\n",
    "w2.config(font=(\"Elephant\", 30))\n",
    "w2.grid(row=1, column=0, columnspan=2, padx=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "45d3004b",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'Label' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_5980/1174286540.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mNameLb1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mLabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mroot\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtext\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mNameLb1\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconfig\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfont\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Elephant\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m20\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0mNameLb1\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgrid\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolumn\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpady\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m  \u001b[0msticky\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mW\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mS1Lb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mLabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mroot\u001b[0m\u001b[1;33m,\u001b[0m  \u001b[0mtext\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"Symptom 1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'Label' is not defined"
     ]
    }
   ],
   "source": [
    "NameLb1 = Label(root, text=\"\")\n",
    "NameLb1.config(font=(\"Elephant\", 20))\n",
    "NameLb1.grid(row=5, column=1, pady=10,  sticky=W)\n",
    "\n",
    "S1Lb = Label(root,  text=\"Symptom 1\")\n",
    "S1Lb.config(font=(\"Elephant\", 15))\n",
    "S1Lb.grid(row=7, column=1, pady=10 , sticky=W)\n",
    "\n",
    "S2Lb = Label(root,  text=\"Symptom 2\")\n",
    "S2Lb.config(font=(\"Elephant\", 15))\n",
    "S2Lb.grid(row=8, column=1, pady=10, sticky=W)\n",
    "\n",
    "S3Lb = Label(root,  text=\"Symptom 3\")\n",
    "S3Lb.config(font=(\"Elephant\", 15))\n",
    "S3Lb.grid(row=9, column=1, pady=10, sticky=W)\n",
    "\n",
    "S4Lb = Label(root,  text=\"Symptom 4\")\n",
    "S4Lb.config(font=(\"Elephant\", 15))\n",
    "S4Lb.grid(row=10, column=1, pady=10, sticky=W)\n",
    "\n",
    "S5Lb = Label(root,  text=\"Symptom 5\")\n",
    "S5Lb.config(font=(\"Elephant\", 15))\n",
    "S5Lb.grid(row=11, column=1, pady=10, sticky=W)\n",
    "\n",
    "lr = Button(root, text=\"Predict\",height=2, width=20, command=message)\n",
    "lr.config(font=(\"Elephant\", 15))\n",
    "lr.grid(row=15, column=1,pady=20)\n",
    "\n",
    "OPTIONS = sorted(l1)\n",
    "\n",
    "S1En = OptionMenu(root, Symptom1,*OPTIONS)\n",
    "S1En.grid(row=7, column=2)\n",
    "\n",
    "S2En = OptionMenu(root, Symptom2,*OPTIONS)\n",
    "S2En.grid(row=8, column=2)\n",
    "\n",
    "S3En = OptionMenu(root, Symptom3,*OPTIONS)\n",
    "S3En.grid(row=9, column=2)\n",
    "\n",
    "S4En = OptionMenu(root, Symptom4,*OPTIONS)\n",
    "S4En.grid(row=10, column=2)\n",
    "\n",
    "S5En = OptionMenu(root, Symptom5,*OPTIONS)\n",
    "S5En.grid(row=11, column=2)\n",
    "\n",
    "NameLb = Label(root, text=\"\")\n",
    "NameLb.config(font=(\"Elephant\", 20))\n",
    "NameLb.grid(row=13, column=1, pady=10,  sticky=W)\n",
    "\n",
    "NameLb = Label(root, text=\"\")\n",
    "NameLb.config(font=(\"Elephant\", 15))\n",
    "NameLb.grid(row=18, column=1, pady=10,  sticky=W)\n",
    "\n",
    "t3 = Text(root, height=2, width=30)\n",
    "t3.config(font=(\"Elephant\", 20))\n",
    "t3.grid(row=20, column=1 , padx=10)\n",
    "\n",
    "root.mainloop()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c709f002",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}