{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "2f2f2c25-83e3-413a-8db6-687cdcb71481",
   "metadata": {},
   "outputs": [],
   "source": [
    "# ==========================\n",
    "# 1) Imports & Config\n",
    "# ==========================\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import re, string\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from sklearn.model_selection import train_test_split, GridSearchCV\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer\n",
    "from sklearn.metrics import (confusion_matrix, accuracy_score,\n",
    "                             precision_score, recall_score, f1_score,\n",
    "                             classification_report)\n",
    "\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "DATA_PATH = \"training.1600000.processed.noemoticon.csv\"\n",
    "  # ملف \n",
    "RANDOM_SEED = 42\n",
    "TEST_SIZE   = 0.30\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "983dce78-3ada-4f23-8845-30ee28a23113",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>sentiment</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>negative</td>\n",
       "      <td>@switchfoot http://twitpic.com/2y1zl - Awww, t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>negative</td>\n",
       "      <td>is upset that he can't update his Facebook by ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>negative</td>\n",
       "      <td>@Kenichan I dived many times for the ball. Man...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>negative</td>\n",
       "      <td>my whole body feels itchy and like its on fire</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>negative</td>\n",
       "      <td>@nationwideclass no, it's not behaving at all....</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  sentiment                                               text\n",
       "0  negative  @switchfoot http://twitpic.com/2y1zl - Awww, t...\n",
       "1  negative  is upset that he can't update his Facebook by ...\n",
       "2  negative  @Kenichan I dived many times for the ball. Man...\n",
       "3  negative    my whole body feels itchy and like its on fire \n",
       "4  negative  @nationwideclass no, it's not behaving at all...."
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "# 2) Read Sentiment140 & basic columns\n",
    "# ==========================\n",
    "# تنسيق Sentiment140: target, ids, date, flag, user, text\n",
    "cols = [\"target\",\"ids\",\"date\",\"flag\",\"user\",\"text\"]\n",
    "df_raw = pd.read_csv(DATA_PATH, encoding=\"ISO-8859-1\", header=None, names=cols)\n",
    "\n",
    "# احتفظ بفئتي 0 (سلبي) و 4 (إيجابي) فقط\n",
    "df_raw = df_raw[df_raw[\"target\"].isin([0, 4])].copy()\n",
    "label_map = {0: \"negative\", 4: \"positive\"}\n",
    "df_raw[\"sentiment\"] = df_raw[\"target\"].map(label_map)\n",
    "\n",
    "df_raw = df_raw[[\"sentiment\", \"text\"]].dropna()\n",
    "df_raw.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "3d6fa90e-c6d8-4a8d-947b-819c17f96035",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>sentiment</th>\n",
       "      <th>clean_text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>541200</th>\n",
       "      <td>negative</td>\n",
       "      <td>ahhh i hope your ok</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>750</th>\n",
       "      <td>negative</td>\n",
       "      <td>cool i have no tweet apps for my razr</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>766711</th>\n",
       "      <td>negative</td>\n",
       "      <td>i know just family drama its lamehey next time...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>285055</th>\n",
       "      <td>negative</td>\n",
       "      <td>school email wont open and i have geography st...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>705995</th>\n",
       "      <td>negative</td>\n",
       "      <td>upper airways problem</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       sentiment                                         clean_text\n",
       "541200  negative                                ahhh i hope your ok\n",
       "750     negative              cool i have no tweet apps for my razr\n",
       "766711  negative  i know just family drama its lamehey next time...\n",
       "285055  negative  school email wont open and i have geography st...\n",
       "705995  negative                              upper airways problem"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "# 3) Clean text\n",
    "# ==========================\n",
    "url_pat   = re.compile(r'https?://\\S+|www\\.\\S+')\n",
    "mention_h = re.compile(r'[@#]\\w+')\n",
    "num_pat   = re.compile(r'\\d+')\n",
    "punct_tbl = str.maketrans(\"\", \"\", string.punctuation)\n",
    "\n",
    "def to_clean(s: str) -> str:\n",
    "    s = s.lower()\n",
    "    s = url_pat.sub(\" \", s)\n",
    "    s = mention_h.sub(\" \", s)\n",
    "    s = num_pat.sub(\" \", s)\n",
    "    s = s.translate(punct_tbl)\n",
    "    s = re.sub(r'\\s+', ' ', s).strip()\n",
    "    return s\n",
    "\n",
    "df_raw[\"clean_text\"] = df_raw[\"text\"].astype(str).apply(to_clean)\n",
    "df_raw = df_raw[[\"sentiment\", \"clean_text\"]].dropna()\n",
    "df_raw.sample(5, random_state=RANDOM_SEED)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "6234d8b1-9206-428b-ac2b-28e9c0cfc63f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sentiment\n",
      "negative    1000\n",
      "positive    1000\n",
      "Name: count, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<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>sentiment</th>\n",
       "      <th>clean_text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>negative</td>\n",
       "      <td>oh no where did u order from thats horrible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>negative</td>\n",
       "      <td>a great hard training weekend is over a couple...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>negative</td>\n",
       "      <td>right off to work only hours to go until im fr...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>negative</td>\n",
       "      <td>i am craving for japanese food</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>negative</td>\n",
       "      <td>jean michel jarre concert tomorrow gotta work ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  sentiment                                         clean_text\n",
       "0  negative        oh no where did u order from thats horrible\n",
       "1  negative  a great hard training weekend is over a couple...\n",
       "2  negative  right off to work only hours to go until im fr...\n",
       "3  negative                     i am craving for japanese food\n",
       "4  negative  jean michel jarre concert tomorrow gotta work ..."
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "# 4) Balanced Sampling (1000 per class)\n",
    "# ==========================\n",
    "\n",
    "df_list = []\n",
    "for label, subset in df_raw.groupby('sentiment'):\n",
    "    df_list.append(subset.sample(n=1000, random_state=RANDOM_SEED))\n",
    "df = pd.concat(df_list).reset_index(drop=True)\n",
    "\n",
    "print(df['sentiment'].value_counts())\n",
    "df.head()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "f530d648-1cf4-483a-9d7c-bb5f99141cf0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2000, 21462)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "# 5) TF-IDF features\n",
    "# ==========================\n",
    "X_text = df['clean_text'].values\n",
    "y      = df['sentiment'].values\n",
    "\n",
    "vectorizer = TfidfVectorizer(ngram_range=(1, 2))\n",
    "X = vectorizer.fit_transform(X_text)\n",
    "X.shape\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "0e26b645-24cf-4e49-803c-f8c5d81e70a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1400, 21462), (600, 21462))"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "# 6) Train/Test split\n",
    "# ==========================\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    X, y, test_size=TEST_SIZE, random_state=RANDOM_SEED, stratify=y\n",
    ")\n",
    "X_train.shape, X_test.shape\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "001cbc58-79e9-47f1-ab6f-ffbfe6df0f9f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# ==========================\n",
    "# 7) Evaluation helper\n",
    "# ==========================\n",
    "def evaluate_model(model_name, y_true, y_pred):\n",
    "    accuracy  = accuracy_score(y_true, y_pred)\n",
    "    precision = precision_score(y_true, y_pred, average='weighted', zero_division=0)\n",
    "    recall    = recall_score(y_true, y_pred, average='weighted', zero_division=0)\n",
    "    f1        = f1_score(y_true, y_pred, average='weighted', zero_division=0)\n",
    "    cm        = confusion_matrix(y_true, y_pred)\n",
    "\n",
    "    print(f\"\\n=== {model_name} ===\")\n",
    "    print(f\"Accuracy : {accuracy:.4f}\")\n",
    "    print(f\"Precision: {precision:.4f}\")\n",
    "    print(f\"Recall   : {recall:.4f}\")\n",
    "    print(f\"F1-score : {f1:.4f}\\n\")\n",
    "    print(classification_report(y_true, y_pred, zero_division=0))\n",
    "\n",
    "    plt.figure(figsize=(4,4))\n",
    "    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', cbar=False,\n",
    "                xticklabels=np.unique(y_true), yticklabels=np.unique(y_true))\n",
    "    plt.title(f'Confusion Matrix - {model_name}')\n",
    "    plt.xlabel('Predicted'); plt.ylabel('True')\n",
    "    plt.tight_layout(); plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "3c0fb9a5-837e-4378-9b17-0b41b5ef6062",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== RandomForestClassifier ===\n",
      "Accuracy : 0.6867\n",
      "Precision: 0.6867\n",
      "Recall   : 0.6867\n",
      "F1-score : 0.6867\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.68      0.69      0.69       300\n",
      "    positive       0.69      0.68      0.68       300\n",
      "\n",
      "    accuracy                           0.69       600\n",
      "   macro avg       0.69      0.69      0.69       600\n",
      "weighted avg       0.69      0.69      0.69       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best params: {'max_depth': 20, 'n_estimators': 300}\n"
     ]
    }
   ],
   "source": [
    "# ==========================\n",
    "# 8) RandomForest + GridSearchCV\n",
    "# ==========================\n",
    "rf = RandomForestClassifier(random_state=RANDOM_SEED)\n",
    "rf_grid = {\n",
    "    'n_estimators': [100, 200, 300],\n",
    "    'max_depth'   : [None, 10, 20, 30],\n",
    "}\n",
    "rf_gs = GridSearchCV(rf, rf_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "rf_gs.fit(X_train, y_train)\n",
    "\n",
    "rf_best = rf_gs.best_estimator_\n",
    "rf_pred = rf_best.predict(X_test)\n",
    "evaluate_model(\"RandomForestClassifier\", y_test, rf_pred)\n",
    "\n",
    "print(\"Best params:\", rf_gs.best_params_)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "c87cbe94-d8f6-4f02-b95a-d7930d1bcdbc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== RandomForestClassifier ===\n",
      "Accuracy : 0.6867\n",
      "Precision: 0.6867\n",
      "Recall   : 0.6867\n",
      "F1-score : 0.6867\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.68      0.69      0.69       300\n",
      "    positive       0.69      0.68      0.68       300\n",
      "\n",
      "    accuracy                           0.69       600\n",
      "   macro avg       0.69      0.69      0.69       600\n",
      "weighted avg       0.69      0.69      0.69       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best params: {'max_depth': 20, 'n_estimators': 300}\n"
     ]
    }
   ],
   "source": [
    "# ==========================\n",
    "# 8) RandomForest + GridSearchCV\n",
    "# ==========================\n",
    "rf = RandomForestClassifier(random_state=RANDOM_SEED)\n",
    "rf_grid = {\n",
    "    'n_estimators': [100, 200, 300],\n",
    "    'max_depth'   : [None, 10, 20, 30],\n",
    "}\n",
    "rf_gs = GridSearchCV(rf, rf_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "rf_gs.fit(X_train, y_train)\n",
    "\n",
    "rf_best = rf_gs.best_estimator_\n",
    "rf_pred = rf_best.predict(X_test)\n",
    "evaluate_model(\"RandomForestClassifier\", y_test, rf_pred)\n",
    "\n",
    "print(\"Best params:\", rf_gs.best_params_)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "b0652923-0026-4961-a628-505f73a358a4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Support Vector Machine ===\n",
      "Accuracy : 0.7000\n",
      "Precision: 0.7006\n",
      "Recall   : 0.7000\n",
      "F1-score : 0.6998\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.69      0.73      0.71       300\n",
      "    positive       0.71      0.67      0.69       300\n",
      "\n",
      "    accuracy                           0.70       600\n",
      "   macro avg       0.70      0.70      0.70       600\n",
      "weighted avg       0.70      0.70      0.70       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best params: {'kernel': 'rbf'}\n"
     ]
    }
   ],
   "source": [
    "# ==========================\n",
    "# 11) SVM + GridSearchCV\n",
    "# ==========================\n",
    "svm = SVC(random_state=RANDOM_SEED)\n",
    "svm_grid = {'kernel': ['linear', 'rbf', 'poly']}\n",
    "svm_gs = GridSearchCV(svm, svm_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "svm_gs.fit(X_train, y_train)\n",
    "\n",
    "svm_best = svm_gs.best_estimator_\n",
    "svm_pred = svm_best.predict(X_test)\n",
    "evaluate_model(\"Support Vector Machine\", y_test, svm_pred)\n",
    "\n",
    "print(\"Best params:\", svm_gs.best_params_)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "a57681f7-ff9e-41de-a7db-831ba567392c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== K-Nearest Neighbors ===\n",
      "Accuracy : 0.6467\n",
      "Precision: 0.6573\n",
      "Recall   : 0.6467\n",
      "F1-score : 0.6406\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.70      0.52      0.59       300\n",
      "    positive       0.62      0.78      0.69       300\n",
      "\n",
      "    accuracy                           0.65       600\n",
      "   macro avg       0.66      0.65      0.64       600\n",
      "weighted avg       0.66      0.65      0.64       600\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\lenovo\\anaconda3\\envs\\TurkiS2\\Lib\\site-packages\\sklearn\\model_selection\\_search.py:1108: UserWarning: One or more of the test scores are non-finite: [0.51214286 0.51214286 0.545      0.545      0.62071429 0.62071429\n",
      " 0.61928571 0.61928571 0.65       0.65              nan 0.50714286\n",
      "        nan 0.50642857        nan 0.51857143        nan 0.51428571\n",
      "        nan 0.50714286 0.51214286 0.51214286 0.545      0.545\n",
      " 0.62071429 0.62071429 0.61928571 0.61928571 0.65       0.65\n",
      "        nan 0.50714286        nan 0.50642857        nan 0.51857143\n",
      "        nan 0.51428571        nan 0.50714286 0.51214286 0.51214286\n",
      " 0.545      0.545      0.62071429 0.62071429 0.61928571 0.61928571\n",
      " 0.65       0.65              nan 0.50714286        nan 0.50642857\n",
      "        nan 0.51857143        nan 0.51428571        nan 0.50714286\n",
      " 0.51214286 0.51214286 0.545      0.545      0.62071429 0.62071429\n",
      " 0.61928571 0.61928571 0.65       0.65              nan 0.50714286\n",
      "        nan 0.50642857        nan 0.51857143        nan 0.51428571\n",
      "        nan 0.50714286]\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "image/png": "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vHhxadiwobpCmoiInh+XCAynT59Wo48uXbokRYoUscyamitXLvn999+lgM0MoERElMz7GHr37q0K/3/++UcNUcXjwoULatZVrCMiIjerMWCupL///lu7W1umTJlk/PjxaqQSERG5WY0B02bfv38/xnJM94xrHIiIyM0Cw5tvvindunWTnTt3qqm28UANArf1RAc0ERG5WWD46quvVB8DbuPp4+OjHrijW8GCBWXy5MnOTh4RkVtxiT6GDBkyyPLly9XopKNHj6plmDsJgYGIiNwwMMD3338vEydOlFOnTqnnhQoVkr59+0qXLl2cnTQiIrfiEoFh2LBh8uWXX0qvXr1UcxLs2LFD+vXrp4atjhql34OYiIiS+ZQYAQEBqp+hVatW2vJffvlFBYubN2/Ga3+cEoNcCafEIFeRpO7gFhUVJRUqVIixvHz58vLoEUt5IqLnySUCQ9u2bdWsqramT58u77zzjlPSRETkrlyij8HsfF6zZo289NJL6jmuaUD/Qrt27bTbe6IvgoiIknlgOHz4sJQrV079HRwcrP7PnDmzemCdycPDw2lpJCJyFy4RGDZu3OjsJBARkSv1MRARketgYCAiIg0DAxERaRgYiIhIw8BAREQaBgYiItIwMBARkYaBgYiINAwMRESkYWAgIiINAwMREWkYGIiISMPAQEREGgYGIiLSMDAQEZGGgYGIiDQMDEREpGFgICIiDQMDERFpGBiIiEjDwEBERBoGBiIi0jAwEBGRhoGBiIg0DAxERKRhYCAiIg0DAxERaRgYiIhIw8BAREQaBgYiItIwMBARkYaBgYiINAwMRESkYWAgIiINAwMREWkYGIiISMPAQEREGgYGIiLSMDAQEZGGgYGIiDQMDEREpGFgICIiDQMDERFpGBiIiEjDwEBERBoGBiIi0jAwEBGRxsMwDENfRCQSEREh48aNk8GDB4u3t7ezk0NujHnx+WNgILvu3bsnfn5+EhISIunTp3d2csiNMS8+f2xKIiIiDQMDERFpGBiIiEjDwEB2oZNv+PDh7Owjp2NefP7Y+UxERBrWGIiISMPAQEREGgYGemYjRoyQMmXKODsZlMxs2rRJPDw85O7du3FulzdvXpk0adJzS5c7YB8DxQt+qEuXLpXGjRtblj148EBdnZopUyanpo2Sl8jISLl9+7ZkyZJF5bsffvhB+vbtGyNQ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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best params: {'algorithm': 'auto', 'metric': 'euclidean', 'n_neighbors': 9, 'weights': 'uniform'}\n"
     ]
    }
   ],
   "source": [
    "# ==========================\n",
    "# 12) KNN + GridSearchCV\n",
    "# ==========================\n",
    "knn = KNeighborsClassifier()\n",
    "knn_grid = {\n",
    "    'n_neighbors': [1, 3, 5, 7, 9],\n",
    "    'weights'    : ['uniform', 'distance'],\n",
    "    'metric'     : ['euclidean', 'manhattan'],\n",
    "    'algorithm'  : ['auto', 'ball_tree', 'kd_tree', 'brute']\n",
    "}\n",
    "knn_gs = GridSearchCV(knn, knn_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "knn_gs.fit(X_train, y_train)\n",
    "\n",
    "knn_best = knn_gs.best_estimator_\n",
    "knn_pred = knn_best.predict(X_test)\n",
    "evaluate_model(\"K-Nearest Neighbors\", y_test, knn_pred)\n",
    "\n",
    "print(\"Best params:\", knn_gs.best_params_)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "5cf56972-18d4-47df-8919-afd190717ed5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1400, 600)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# X,y من df المتوازن\n",
    "X_text = df['clean_text'].values\n",
    "y      = df['sentiment'].values\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "RANDOM_SEED = 42\n",
    "TEST_SIZE   = 0.30\n",
    "\n",
    "X_train_text, X_test_text, y_train, y_test = train_test_split(\n",
    "    X_text, y, test_size=TEST_SIZE, random_state=RANDOM_SEED, stratify=y\n",
    ")\n",
    "\n",
    "len(X_train_text), len(X_test_text)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "4e9d2684-bff6-430a-984b-57ffc9593720",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1400, 15866), (600, 15866))"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.feature_extraction.text import TfidfVectorizer\n",
    "\n",
    "vectorizer = TfidfVectorizer(ngram_range=(1,2))  # Unigram+Bigram\n",
    "X_train = vectorizer.fit_transform(X_train_text) # fit على train فقط\n",
    "X_test  = vectorizer.transform(X_test_text)\n",
    "\n",
    "X_train.shape, X_test.shape\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "8b9ef21c-2644-4bea-9a1a-ce2a23ecb662",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import accuracy_score, precision_recall_fscore_support, classification_report, confusion_matrix\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "def evaluate(model_name, y_true, y_pred):\n",
    "    acc = accuracy_score(y_true, y_pred)\n",
    "    p,r,f1,_ = precision_recall_fscore_support(y_true, y_pred, average='weighted', zero_division=0)\n",
    "    print(f\"\\n=== {model_name} ===\")\n",
    "    print(f\"Accuracy : {acc:.4f}\\nPrecision: {p:.4f}\\nRecall   : {r:.4f}\\nF1-score : {f1:.4f}\\n\")\n",
    "    print(classification_report(y_true, y_pred, zero_division=0))\n",
    "\n",
    "    cm = confusion_matrix(y_true, y_pred, labels=np.unique(y_true))\n",
    "    plt.figure(figsize=(4,4))\n",
    "    plt.imshow(cm, interpolation=\"nearest\")\n",
    "    plt.title(f\"Confusion Matrix - {model_name}\")\n",
    "    plt.xticks(range(len(np.unique(y_true))), np.unique(y_true), rotation=45)\n",
    "    plt.yticks(range(len(np.unique(y_true))), np.unique(y_true))\n",
    "    for (i,j), v in np.ndenumerate(cm):\n",
    "        plt.text(j,i,str(v), ha=\"center\", va=\"center\")\n",
    "    plt.xlabel(\"Predicted\"); plt.ylabel(\"True\"); plt.tight_layout(); plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "1b3e48b3-8e28-4229-a3bb-8b44060d8b4c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Logistic Regression ===\n",
      "Accuracy : 0.6900\n",
      "Precision: 0.6908\n",
      "Recall   : 0.6900\n",
      "F1-score : 0.6897\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.68      0.72      0.70       300\n",
      "    positive       0.70      0.66      0.68       300\n",
      "\n",
      "    accuracy                           0.69       600\n",
      "   macro avg       0.69      0.69      0.69       600\n",
      "weighted avg       0.69      0.69      0.69       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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IEREZIQBhIiIjDCAEBGREQYQIiIywgBCRERGGECIiMgIAwgRERlhACEiIiMMIERElHoBZO3atfLcc89JnTp15PTp03rbrFmzZN26dWZrQUREnh9A5s+fL82aNZOAgADZvn27hIeH6+3Xrl2T0aNHp8Q6EhGRJwSQkSNHytSpU2X69OmSKVMmx+316tWTbdu2Jff6ERGRpwSQ/fv3S/369ePcnj17drl69WpyrRcREXlaAClQoIAcOnQozu2of5QsWTK51ouIiDwtgHTv3l369u0rmzdvFi8vLzlz5ozMnj1bBgwYIC+99FLKrCUREaU5vkl9wKBBgyQmJkaaNGkiYWFhms7y8/PTANK7d++UWUsiIkpzvCzLskweGBERoams0NBQqVixomTLli351y6DCQkJ0VrSlQMlJSiQh+jQv5oVrOruVaA0JMqKlDWySEe+BgUFpa8eiC1z5swaOIiIKGNKcgBp1KiR1j4S8uuvv97tOhERkScGkKpVY3enIyMjZceOHbJnzx7p1KlTcq4bERF5UgAZP358vLcPGzZM6yFERJQxJFulFnNjffHFF8n1dERElMYZF9Fdbdy4Ufz9/ZPr6TK0x59qL74+fu5eDUoj2u9d5e5VoDTkZmiUrKkp6TOAPP7447GuYxTw2bNnZevWrTJkyJDkXDciIkrDkhxAcJyCM29vbylXrpyMGDFCHn744eRcNyIi8pQAEh0dLV26dJHKlStLzpw5U26tiIjIs4roPj4+2svgrLtERJTkUViVKlWSI0eOpMzaEBGRZ59QChMn/vTTT1o8x/xNzhciIsoYEl0DQZG8f//+0rx5c73eqlWrWFOaYDQWrqNOQkREni/RAWT48OHSs2dPWb16dcquEREReVYAsWd9b9CgQUquDxEReWIN5Haz8BIRUcaSpONAypYte8cgcvny5btdJyIi8rQAgjqI65HoRESUMSUpgDz99NOSL1++lFsbIiLyvBoI6x9ERGQUQOxRWERERElKYcXExPATIyKi5D8jIRERZSwMIEREZIQBhIiIjDCAEBGREQYQIiIywgBCRERGGECIiMgIAwgRERlhACEiIiMMIEREZIQBhIiIjDCAEBGREQYQIiIywgBCRERGGECIiMgIAwgRERlhACEiIiMMIEREZIQBhIiIjDCAEBGREQYQIiIywgBCRERGGECIiMgIAwgRERlhACEiIiMMIEREZIQBhIiIjDCAEBGREQYQIiIywgBCRERGGECIiMgIAwgRERlhACEiIiMMIEREZIQBhIiIjDCAEBGREQYQIiIywgBCRERGGECIiMgIAwgRERlhACEiIiMMIEREZIQBhIiIjPiaPYwo6a5cPy7Hzm2QkLAzEhEZKlVKPSX5cpZ33G9Zlhw+s0ZOX9wmUVG3JEe2IlK+2GOS1T+3Y5ntB+dI6M1zEhF5Q3x9AyR3YEkpXfgh8c8c6KZ3RXfjwB/XZPnnp+T4Xzfk2oUIeWlyBan20H/fd8jFCJn/4TH5e/1VCbseJWVrBsnTb5eS/MUD9P6Lp27Jmw9tjfe5X5xQXmo+kifV3ktGlOF6IGvWrBEvLy+5evXqbZcrXry4TJgwIdXWKyOIjomQwCz5pULR5vHef+zcejl5frNUKPqY1KrQTXx8Msv2A19LdEyUY5lcgcWlcsknpW6lXlKlVHsJC78suw5/l4rvgpJT+M1oKVw+mzz7Tsk496FBMeWVvRokXplSQYb8UFVyFfSX8V33SHhYtC6TK9hPPlhbK9alVe+i4pfFRyo9mNMN7yhjyXABpG7dunL27FnJnj27Xv/yyy8lR44ccZb7448/5MUXX3TDGnquPNnLSOlCjSVfzgrx7ixOnN8sJYLra68Egeae4m0kPPK6XLi6z7FcsQJ1JEe2whLgl0N7KMWDH5BrN05JTMy/OxRKXyrXzyVtXi0m1ZrG7SmcP3ZLjuy8Lh2GlpLilQOlQMks0mFYKYm8FSNbllzQZbx9vCR73syxLttXXpKaj+YR/6w+bnhHGUuGCyCZM2eWAgUKaC/kdvLmzStZsmRJtfXK6G5GXNW0Vu6g/1qimXz9JShrYbkaejLex0RG3ZRzl3ZrIPH25s7C00RGxOhfX7//dlPe3l7im9lLDv0ZEu9jju8JlZN7b8gDT+RPtfXMyNJkAGnYsKH06tVLL+gp5MmTR4YMGaKtVLhy5Yp07NhRcubMqTv5Rx99VA4ePOh4/PHjx6Vly5Z6f9asWeWee+6RpUuXxklh4f9dunSRa9eu6W24DBs2LE4K69lnn5Wnnnoq1jpGRkbqen311Vd6PSYmRsaMGSMlSpSQgIAAqVKlisybNy/VPrP0DsEDMvtmjXW7X6asWu9wdvDUClm1bbSs2TFWbkVckyqln07VdaXUUaBkgOQq6CcLPjouN65FSVREjPwy/ZRcOReh9ZL4rJt/ToJLBUip6kGpvr4ZUZoMIDBz5kzx9fWVLVu2yMcffywfffSRfPbZZ3pf586dZevWrbJ48WLZuHGjBpbmzZvrTh1eeeUVCQ8Pl99//112794t77//vmTLli3edBaCRFBQkKa1cBkwYECc5Tp06CA//vijhIb+u5ODZcuWSVhYmLRt21avI3ggmEydOlX++usv6devnzz33HPy22+/JfgesY4hISGxLnRnxfLXk/sr9pDqZZ7ToP/X0YWOxgV5Dt9M3vLSxAryz7Gb0q/2JulVbYPs33xVKtXPKV7ecTMIEbeiZctPF6Qeex+pJs2OwipSpIiMHz9edxDlypXTQIDr6J0gcKxfv14DAMyePVuXX7hwoTz55JNy4sQJeeKJJ6Ry5cp6f8mScQt0djoLPRy8BtJaCWnWrJn2ZBYsWCDPP/+83vbNN99Iq1atJDAwUAPB6NGjZeXKlVKnTh3Ha65bt06mTZsmDRo0iPd5EXSGDx9+15+VJ8ic6d8AHxF1Q/ycRlSFR97QekjsZbPoBaOzsgbklbW7xmsdBKks8izFKmWTdxZW0xFY0ZGWBObKJKPb75DileKOuvtz2SWJuBUjddowgEhG74Hcf//9seoU2DEjTfX3339rz6R27dqO+3Lnzq1BZu/evXq9T58+MnLkSKlXr54MHTpUdu3adVfrgtdr3769Biq4ceOGLFq0SHsmcOjQIe2NNG3aVHs69gU9ksOHDyf4vIMHD9b0mX05eTL+XH9GEJA5hwaRSyFHHLdFRYdLyB0Cg93zYBHds2UJ9NXggd4I6hxVGueKs8z6eeekSqNcuhxl8B7I3ejWrZv2GpYsWSLLly/Xlv64ceOkd+/exs+JYIGexPnz52XFihVa53jkkUf0Pju1hdcrVKhQrMf5+fkl+Jy473b3e5qo6Ai5GX7Zcf1m+BW5HnZOfH0CJMAvuxTNV1uOnl0rWfxza0A5fGa1+GUKlLw5/j1W5FroKbkWdkZyZisqvj7++vhDp1dLgF9OHZlF6c+tG9Fy4cRNx3UM2T25N1SyZPeV3AX9ZesvFyUwp68O3z194IbMHXVEqjbJLfc8EHuI7vnjN+Xg1hDp/ek9bngXGVeaDSCbN2+OdX3Tpk1SpkwZqVixokRFRen9dgrr0qVLsn//fr3PhpRWz5499YKW/vTp0+MNIEhjRUffufWK18Jzzp07V37++WdNlWXK9G9LB6+LQIDUWULpKhIJuXFG/jww03H9wKnl+jc4dxWpVKKNFC9QT6JjImXvsR8lKhoHEhaVamWfEx/vfzdTb+9Mcv7KXjlyeo0eU5I5U6DkyV5KSgS3E+//X4bSl+N7rsu4Tnsc179/76j+rdMmn3R5r6xcOx8h3793REIuReoQ3Tqt88ljL8Xtka6f/4/kKOAnFevFHZJPKSfN/uqwM37ttdekR48esm3bNpk0aZL2IhBEWrduLd27d9f6AmoQgwYN0pY/bodXX31VR2aVLVtWR2ytXr1aKlSIe+yBPdoKPYhVq1bpyCmM6kpo+C5GY6FIfuDAAX1OG9YBxXcUzjEa64EHHtCUFOo0KNB36tQphT6l9CVXUHFpWnNogvcjZVm6UCO9xAe1kJrl+Fl6knK1c8in+x5I8P4mHQvq5U7avlZcL5S60mwNBMN0b968KbVq1dJRVX379nUc2DdjxgypUaOGtGjRQmsjyINjmK7dI0CPAo9B0ECaCYFkypQpCfYs0EvBMF0c+zF27NjbprFQg0GwQn3F2bvvvqtDjZEus18XKS0M6yUi8kReVhoc/4iRVlWrVs1wU4lgGC9GhTWqNkh8fTJObYRu78mvV7l7FSgNuRkaJX1rbtIsBzIc7pRmeyBERJS2MYAQEZHnFNExxQgREaVt7IEQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiM+Jo9jFKCZVn6Nyo63N2rQmnIzdAod68CpSG3/n97sPcX7uRlpYW1IHXq1CkpUqSIu1eDiNKBkydPSuHChd26DgwgaUhMTIycOXNGAgMDxcvLSzKykJAQDab4kQQFBbl7dcjNuD38B7vs69evS8GCBcXb271VCKaw0hBsDO5uUaQ12Flk9B0G/Yfbw7+yZ88uaQGL6EREZIQBhIiIjDCAUJrk5+cnQ4cO1b9E3B7SJhbRiYjICHsgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiIyAgDCHncfGLx4Wh1ouTHubDIo4KHPbncli1bJCoqSiIjI6VBgwYZfnLKjLwtOP8/vutkjgGEPAJ6GPZO4c0335SFCxfqjuLWrVty//33y7Rp09LMBHSUspwDxOTJk2XXrl06i2/Lli2lbdu2Ehwc7O5V9BgMw+QR7B7GuHHj5NNPP5Uvv/xS/v77b+nRo4d89913snfvXnevIqUSO3gMHDhQRowYIeXKlZMKFSrIxIkT5aWXXtJGBSUPBhDyqF7I7t27ZcyYMVKrVi3thYwdO1Y++eQT7YVwx5FxbNiwQb//H3/8Ufr37y9NmzaV48ePaw/E39/f3avnMRhAKN1yLYwjQGzatEkyZcoka9askU6dOmkwQS8E9RD8f9GiRW5bX0q9beHKlSs68WLt2rVl/vz58tRTT8n48eN1mwgLC5MlS5awQZEMGEAo3aetZsyYIX/++acEBATIs88+K19//bU0b95cdxg9e/Z07FC2bt0qJ06ccPNaU0puC6dPn9a/Pj4+ki9fPg0eXbp0kffff9+xLaxdu1Z7JufOnXPrOnsCBhBK1xAQ/ve//+lOAe677z5NVaDlWadOHb0Npwnu3LmzBpGXX37ZzWtMKWXKlCnSu3dv/T9G3h05ckSefPJJ+eCDD7T2Aeh1fPzxx3Lt2jUpVqyYm9c4/eN07pTuvfrqq/LTTz/J/v37teU5Z84cGTlypKY1fH19tWeCkTnIiyO9FR0drcuRZ1m1apU0a9ZMexePPvqo9kpR87jnnnu0AYHvHYMrzp49K9u3b9dtA9sIh3ibYwChdAN1DPzoXa+jZ9GwYUNp166dDBkyRO/btm2btkAPHDgg5cuXl9atW2vQcH0OSp9cd/wIDuHh4VrvwnBtjMbD971nzx7tfWAbyZkzp5QsWVKDCBsSyYMBhNI8jKZp06aN4/q3336rLc0sWbJoofTmzZsyePBgHaq7ePHiBM9axx1G+ocDQ7Hzt12+fFly5crluI4Rd2+//bb2PooXL+743i9evKijr4KCgjTwsCGRPFgDoTQN+WoUyZGCQlsH9Q2krGrUqCGvv/66FsaRonrttdd0BNbnn3+e4HMxeKRvSEOtXr3acR3bRatWrbRQjpFVgN7GvffeK2+88YYGG/t7z58/v/ZMEDzs1CbdPQYQStMef/xx+eGHH/TgsJ07d2rhE6NnMKIGxfG6devKgAED5NChQ5q++vnnn/V28izoRQQGBkqjRo0ctyElVaVKFenQoYM8//zzeswP4P8okmObANckC2seyYcpLEoXU1IsW7ZMh+gOHTpU+vTpo7eh1Yn0FlqiKIxiugrkwVFMrVevnpvXnpKL69xVU6dOlRw5cugIK/QuMO8ZBk4sWLBA01ZIbw4bNkwbFqNGjXLruns6BhBKkxAI7FrGqVOntN6B4IEUBobiOg/HRY8DyyBtgWGa69evZ7rKQ9i7J+deQ+PGjeWff/7RINGiRQtNYaIOFhoaqmnN69evazB58MEH5bfffnPj2ns+BhBKc77//ns9IAy1jr59+8rKlSvlr7/+koMHD+pYf6SpcJ99YJg9Isd5Z8OCuWfARIioacCkSZN0Sprq1atrahPHAA0aNEgHWDgPnMDou40bN+rR5xyqm7JYSaI0B5MgDh8+XMfzY7y+3YosU6aMo+cxYcIE3Slg2KbrqBqkPBg80j8c14MDQjHCDulKzKz7xx9/6HeLwjkCx3vvvaffP/6fOXNmfRyG6uICHG2VwtADIUpr6tSpY/n4+FgDBw6Mc9/Bgwetfv36WRUrVrQ+/PBDt6wfpZzLly/r3ytXrljTp0+3/P39raCgIOvkyZN6e1hYmP6NjIy0HnvsMatatWrWd999Z926dcut650RcRQWpSloMQIO/kPvAtNQYCgv8tuAdETp0qW1J4JpS9AiZRbWc7z44os6igpQKMdxGxEREfodY7AEoOaBWhd6FhhEUbhwYR1YgdoXpTJ3RzCi6OjoBO8bNmyY5e3tbU2YMMEKDQ113H78+HHr5s2bjsfGxMSkyrpSysL3GhERof+/ceOG/n/Pnj3W1KlTrRw5clhvvfWWY1n7u4+KirIGDx6sfyl1MTlIaWaI5tKlS+XSpUuay8Zsuhj3j5FXyHFjSCZaopjjCDlxjPP//fff4zwHpW9FixbVv1988YWOqsPgCcxllTdvXu11oDaGGgj+4jtHER3DeUePHq2P4+CJ1MVRWOQ2zqNjsCPAHEWlSpWSHTt26PDMXr166VBMwHh+zG9UoEABnZJi8+bNsaa0oPTNtRGAOcxw3A9SlxhEgSPJL1y4oMd7YKoSnCAqJCREDh8+rKPzGDTcJJV7PERxoBBeuHBha8uWLXp92rRplpeXl9WyZUvrt99+cyy3ceNGvW6nKlBEJc9KYeI7RhoLDh06ZN1///1WqVKlrHPnzjkK6/Pnz7eaN29ude3a1ZHuYvrKPRhAyK0uXrxo9ejRw5oxY4Zenzdvnua63377batgwYJW48aNrdWrV8d5HHcYnhc8UMeoXLmybgOof8CBAwc0iJQsWdI6e/ZsvM/BhoT7MIBQqnItdmNHsWrVKuvSpUvW9u3bdUeBgjnMnDnT8vPzsxo2bGht27bNTWtMqeGdd96x8ufPby1fvty6fv16rPuOHTtm1apVyypbtqx1+vTpWPdx8IR7sfJIbql54LSzOJIYU5TgzIGYkhvnMcdcRjhvtT2dCYrpGKaJSfPIM+HIcRwYOG3aNK1toFiOOhgmR/zuu+90As158+Zpgbxfv36xHssjzN2Lo7Ao1Yuk2Dng+I6vvvpKZs2apQVS3H/+/HktmtrnbsBZBjFd9wsvvBDnOchzoACOkXcYWYdpa1AoxwnB0IDAEeg4GRSOCUIDIzg42N2rS074a6RU6XnYO35MPfH+++/rkFxMjIiDxjDvFe7HdBSYvgJBo2LFinL06FHp2LFjnOeg9AuNAFcICgULFpSPPvpIZ9LFwYPYTnAKYkxfg5NGAXqiCDboiVDawB4IpTg7zfDhhx/qcFykK7AzWLJkif4fQQRDeGvVqqUtUOw48BicHAhHG3M+I8/g3IPEMTzobWIoNtJWixYt0lkFcD+2Axtm2XUdosshu2kHjwOhVIG8dvv27aVSpUqOg74A6Yp3331XihQpogePFSpUKFathAeGeR5MuT579mzJli2bHseBOhdqG5imHTAdO475eOWVV/Q8LzjrJBsQaRNzApQqUNPATgApKmfPPPOM1K9fX1asWKG1Dpzbw3lqdgYPz4JTDqP2hTmsMOU6ah2YfQAHia5du1aXQV0MAymQ5kSvBNsN01ZpEwMIpUqeGwEBqQmcZhRHFtuTJkLVqlW17oFggZE3OJc1R9d47vk9MLsAtgX7lLSfffaZjsRC4IBu3brpOe6XL1+uKS5sK2xIpE1MYVGKnoYWI2igdevW2pLEOa3RssQcVzjtLHYQzz33nO5UMPoKwzU3bdqkw3opfXMdNYddDXqZSEvhpGC4Hz0LbANIZaLmhQBjz4cFTGGmbeyBULKydxgDBw7UliRal5gIEaNrkI5AkRzHfmBCRNRDcIY5TJiHFmeTJk10J4Phm+Q5wQN1DqQm8d127txZGxYYPIH77fnM0LjAPGjZs2eP9TwMHmkbK1OUInlupCNwRsEaNWroAWIoiKI3gloIUhNIYyFwYMimfeAgTmWL4ZyYhZfSL+ch15gkEyOsUBTHrLqYORfHAKHXiVFYDz/8sAYJnOsDxwNhe6D0gyksSpFRNuhFTJw4UebOnasHgY0ZM0ZTFBhhg9apc0tzy5YtGnC++eYbPTbEPgc2pe+ex7fffqujq6ZOnSpXr17VUxVjm8BJoypUqKDnu0fQwAmiMCILqUv0SHjAaPrBHgjdFecht4AfP6YoQWoKI2yQxkKLs2fPnnofWpoIHmiB2ukJFFCxLI40rly5shvfDd0te8eP73LVqlV6Tg/UvwDTr6O+gV4Jgsvu3btl3759mr5CihPbA4/5SV/YAyFjzi1FBAG0IvPly6fzFyEthV4IxvtjqC4gZfH444/rCJyRI0fGei7sXJi+8Aznzp2TBx54QKemQS3srbfectyHo8q7du2qx/1MmjQp1uNYME9/2E8kY3bwePPNNx3Tj6DFiZRE7969dYoKpChwNDEKqch/YwcybNiwOM/F4OE5cNKvH374QRsT+Lt9+3bHfRhdlydPHh3O7YrBI/1hAKG7Os4DhW8cGIYeRZ8+fWTdunXa68BOol27dpqaKF++vDzxxBPaA8HBYzwwzPOhjoXgge95woQJOoEmoAa2d+9e7YFQ+scUFhnDfEYYjomDwZCWgMWLF2tqAgeJde/eXUdVoXiKc1rjiHP0WpjnzjjQ+0C9Cz3PmjVr6qy7mCQTBXP837WGRukLeyBknOdG0MAkiKhf2JDKQk8E01NMmTJFW5xIXTVs2FCDB1qkDB4ZR7Vq1XQkHtKamK4dEydiwASCB2ccSP8YQOiu8tz4u3TpUh1RY2vZsqX0799f89w4BgA4t1XGhQNGsa1gBgIED7v+YR9ESOkXU1h0V3bu3CldunTR9ATG9eNgMRumZa9duzaDBjnSWRjOXbJkSZ3KBrUxSt/YA6G7gvoHjjz/888/5eOPP9Z6h61u3bo8ARDFSmdNnjxZ58JynbKE0if2QCjZWpc44hznr8aMuiVKlHD3KlEaPjcMprSh9I89EErW1iXmsUIQIUoIg4fnYA+EkpU9LJPzGRF5PgYQSnYc20+UMbCJSMmOwYMoY2AAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEKUhnTu3FnatGnjuI5ZjF999dVUXw+ckhaj6XAuc6KEMIAQJXLHjh0qLpiKvHTp0jJixAg9t0lKwiy27777bqKW5U6fUhtPzECUSI888ojMmDFDz/WOKexfeeUVnZJ88ODBsZbDtOUIMskBp4AlSqvYAyFKJD8/Pz3/Ceb6eumll+Shhx7SMzDaaadRo0bpGRjLlSuny588eVLat28vOXLk0EDQunVrOXbsmOP5MEvxa6+9pvfnzp1bzyfvOjGEawoLwWvgwIF6SlisD3pCmA0Zz9uoUSNdBmeDRE8E6wWYVmbMmDE6wSVO7IQZlOfNmxfrdRAQy5Ytq/fjeZzXkyghDCBEhrCzRW8DVq1aJfv375cVK1bITz/9pGfbw/ngMbnk2rVrZf369ZItWzbtxdiPGTdunJ7R8YsvvtBzyeO0rwsWLLjta3bs2FHmzJkjEydO1HOLT5s2TZ8XAQWnFwasB6ZMx/T6gOCB89ZPnTpV/vrrL+nXr5+eZva3335zBLrHH39cTwSGc5d369ZNBg0alMKfHnkEzIVFRLfXqVMnq3Xr1vr/mJgYa8WKFZafn581YMAAvS9//vxWeHi4Y/lZs2ZZ5cqV02VtuD8gIMBatmyZXg8ODrbGjh3ruD8yMtIqXLiw43WgQYMGVt++ffX/+/fvR/dEXzs+q1ev1vuvXLniuO3WrVtWlixZrA0bNsRa9oUXXrCeeeYZ/f/gwYOtihUrxrp/4MCBcZ6LyBVrIESJhJ4FWvvoXSAt9Oyzz8qwYcO0FlK5cuVYdQ+cqRGnbkUPxPVcGIcPH9bzg6OXgDM22nCueJzZMaH5TdE7wAm6GjRokOh1xjqEhYXpucidoReEKfgBPRnn9YA6deok+jUo42IAIUok1AY++eQTDRSodWCHb8uaNWusZUNDQ6VGjRoye/bsOM+TN29e45RZUmE9YMmSJVKoUKFY96GGQnQ3GECIEglBAkXrxKhevbrMnTtX8uXLJ0FBQfEuExwcLJs3b5b69evrdQwJxqmB8dj4oJeDng9qFyjgu7J7QM6nEK5YsaIGihMnTiTYc6lQoYIOBnC2adOmRL1PythYRCdKAR06dJA8efLoyCsU0Y8eParHafTp00dOnTqly/Tt21fee+89Wbhwoezbt09efvnl2x7DUbx4cenUqZN07dpVH2M/53fffaf3Y3QYRl8h1XbhwgXtfSCFNmDAAC2cz5w5U9Nn27Ztk0mTJul16Nmzpxw8eFBef/11LcB/8803WtwnuhMGEKIUkCVLFvn999+laNGiOsIJrfwXXnhBayB2j6R///7y/PPPa1BAzQE7+7Zt2972eZFCa9eunQab8uXLS/fu3eXGjRt6H1JUw4cP1xFU+fPnl169euntOBBxyJAhOhoL64GRYEhp2eetxzpiBBeCEob4YrTW6NGjU/wzovSPZyQkIiIj7IEQEZERBhAiIjLCAEJEREYYQIiIyAgDCBERGWEAISIiIwwgRERkhAGEiIiMMIAQEZERBhAiIjLCAEJEREYYQIiISEz8H4iFdiUHzaZJAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Linear SVM (LinearSVC) ===\n",
      "Accuracy : 0.7083\n",
      "Precision: 0.7094\n",
      "Recall   : 0.7083\n",
      "F1-score : 0.7080\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.69      0.74      0.72       300\n",
      "    positive       0.72      0.67      0.70       300\n",
      "\n",
      "    accuracy                           0.71       600\n",
      "   macro avg       0.71      0.71      0.71       600\n",
      "weighted avg       0.71      0.71      0.71       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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BIv27dsn0VZK/XJneURvcfHzDZByhe7uV/IsU/dXve9zfP285dWhRfTmTtOeBfRGqV+K7TNC6vatW7ekSpUqmh3Xu3dvxyDUqVOnSuXKlaVRo0bal4S2Z6Ru2zUV1HTwGgQgNKUhKE2aNCnOGg9qT0jdRubbmDFj7tlUhz4rBD70Rzn74IMPNP0cTYL256LZDqneRER0b16WPXgnBUHGXMWKFdPcdDxI7UZ239MVBugYHCJ4+YdlpleBUpBboZHyRuUt2vqClhdPkWJrRkRElHYwGBERkXEpMoEB0/QQEVHawZoREREZx2BERETGMRgREZFxDEZERGQcgxERERnHYERERMYxGBERkXEMRkREZByDERERGcdgRERExjEYERGRcQxGRERkHIMREREZx2BERETGMRgREZFxDEZERGQcgxERERnHYERERMYxGBERkXEMRkREZByDERERGcdgRERExjEYERGRcQxGRERkHIMREREZx2BERETGMRgREZFxDEZERGQcgxERERnHYERERMYxGBERkXEMRkREZByDERERGcdgRERExjEYERGRcQxGRERkHIMREREZx2BERETGMRgREZFxDEZERGQcgxERERnHYERERMYxGBERkXEMRkREZByDERERGcdgRERExjEYERGRcQxGRERkHIMREREZx2BERETGMRgREZFxDEZERGQcgxERERnHYERERMYxGBERkXEMRkREZJyP6RWgf1iWpX8jo8JNrwqlILdCI02vAqUgt0KjYpwvPIWX5WnfKBU7deqUFChQwPRqEFEqcPLkScmfP794CgajFCQ6OlrOnDkjgYGB4uXlJWlZSEiIBmb84IKCgkyvDhnG4+EfOGXfuHFD8ubNK97entPTwma6FAQHlieVdBIDTjxp/eRD/+DxcFdwcLB4Gs8Jq0RElGoxGBERkXEMRpQi+fn5ydChQ/UvEY8Hz8cEBiIiMo41IyIiMo7BiIiIjGMwIiIi4xiMiIjIOAYjIiIyjsGIiIiMYzAij5vfzx2OYCBK2Tg3HXlUILInjty8ebNERkZKRESE1K5dO81PPJuWjwXn/7u7TykDgxF5BNR87BPMu+++KwsWLNCTzu3bt6Vq1aoyZcoUj5xckmJzDjYTJ06Uv/76S2f7fuGFF6RZs2aSJ08e06tIbrB4QB7BrvmMHTtWvvrqK/nuu+9k79690rVrV/nxxx9l3759pleRkokdiAYMGCAjRoyQUqVKSZkyZeTzzz+X7t27awGFUh4GI/Ko2tGuXbtk9OjRUqVKFa0djRkzRr788kutHfEklHb89ttvuv9/+eUX6du3rzz77LNy/PhxrRllyJDB9OqRGwxGlGq5JiUg2Pzxxx/i6+sra9askfbt22tgQu0I/Uf4/8KFC42tLyXfsXD16lWdVPXJJ5+UefPmyYsvvijjxo3TYyIsLEwWL17MwkkKw2BEqb5pburUqbJ161bx9/eXV155RWbMmCENGzbUk0+3bt0cJ6ctW7bIiRMnDK81JeWxcPr0af2bLl06yZkzpwaijh07yscff+w4FtavX681pnPnzhldZ4qJwYhSNQSXL774Qk8w8MQTT2hzDErE1apV08dwKfcOHTpoQHrjjTcMrzEllUmTJknPnj31/8igPHLkiLRq1Uo++eQT7SsC1IY+++wzuX79uhQqVMjwGpMzXkKCUr233npLFi1aJPv379cS8ezZs2XkyJHadOPj46M1JmRYoR8BTXhRUVH6PPIsK1eulPr162ut5/nnn9faMvqIHnnkES2MYL8jseXs2bOyfft2PTZwjDDtP2VgMKJUA/0+OIG43keNp06dOtKyZUsZMmSILtu2bZuWjA8cOCClS5eWJk2aaAByfQ9KnVyDCAJNeHi49g8ihR9Zldjfu3fv1loRjpEsWbJI0aJFNSCxUJLyMBhRioesqKZNmzru//DDD1oCzpgxo3ZS37p1SwYNGqTp2z///HOcVwPlySf1wyBmBBLblStXJGvWrI77yJx87733tFZUuHBhx36/dOmSZtEFBQVpEGOhJOVhnxGlaGjfR4ICmtlQbkJ/EJrlKleuLO+8844mJaAZrk+fPppJ980338T5XgxEqRua2lavXu24j+OicePGmqSADDlALahChQrSv39/DVz2fs+VK5fWmBCI7OZbSlkYjChFa968ufz3v//VgYw7d+7UTmdkQSEzCokJ1atXl379+smhQ4e0iW7p0qX6OHkW1G4CAwOlbt26jsfQ7Pboo49KmzZt5NVXX9UxZYD/I0EBxwS4Nv6wjyhlYjMdpYppXX799VdN2x46dKj06tVLH0NpGE14KCGjUxpTvqDfAB3ZNWrUMLz2lFhc55KbPHmyZM6cWTPlUOvBPIRIWpk/f742zaEJd9iwYVpI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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Multinomial Naive Bayes ===\n",
      "Accuracy : 0.7050\n",
      "Precision: 0.7106\n",
      "Recall   : 0.7050\n",
      "F1-score : 0.7030\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.68      0.79      0.73       300\n",
      "    positive       0.75      0.62      0.68       300\n",
      "\n",
      "    accuracy                           0.70       600\n",
      "   macro avg       0.71      0.70      0.70       600\n",
      "weighted avg       0.71      0.70      0.70       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.naive_bayes import MultinomialNB\n",
    "\n",
    "# Logistic Regression\n",
    "lr = LogisticRegression(max_iter=300, solver='liblinear')\n",
    "lr.fit(X_train, y_train)\n",
    "lr_pred = lr.predict(X_test)\n",
    "evaluate(\"Logistic Regression\", y_test, lr_pred)\n",
    "\n",
    "# Linear SVM\n",
    "svm = LinearSVC()\n",
    "svm.fit(X_train, y_train)\n",
    "svm_pred = svm.predict(X_test)\n",
    "evaluate(\"Linear SVM (LinearSVC)\", y_test, svm_pred)\n",
    "\n",
    "# Multinomial Naive Bayes\n",
    "nb = MultinomialNB()\n",
    "nb.fit(X_train, y_train)\n",
    "nb_pred = nb.predict(X_test)\n",
    "evaluate(\"Multinomial Naive Bayes\", y_test, nb_pred)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "24a19a7f-827f-4939-b819-d50efd4db245",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best SVM params: {'C': 2}\n",
      "\n",
      "=== Linear SVM (GridSearch) ===\n",
      "Accuracy : 0.7117\n",
      "Precision: 0.7127\n",
      "Recall   : 0.7117\n",
      "F1-score : 0.7113\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.70      0.75      0.72       300\n",
      "    positive       0.73      0.68      0.70       300\n",
      "\n",
      "    accuracy                           0.71       600\n",
      "   macro avg       0.71      0.71      0.71       600\n",
      "weighted avg       0.71      0.71      0.71       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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gv79+0tMTIzUrVtXwsPDtVkvICBAA1P37t2TZi2JiCjN8LEsy7qXF966dUub9MLCwqRcuXKSOXPmxF+7NCY0NFT76i7vKy5ZgjjEjG6rn79iSq8CGSTKipRlMl8zobNkySLeKME1Jlv69Ok1IBEREaVoYHriiSe0bykuf//99/2uExERpWEJDkwVK7o2K0RGRsq2bdtk586d0rZt28RcNyIiSoMSHJhGjRrl8fFBgwZpfxMREdH9SLQedsyd9/333yfW2xERURp1z8kP7tauXSsZMmRIrLdL05q3aCl+6QJSejXIEK3/XZjSq0AGuREWJcsqi1dLcGBq1qyZy31km58+fVo2bdokH3zwQWKuGxERpUEJDkwYZ+PM19dXQkJCZMiQIfL0008n5roREVEalKDAFB0dLe3bt5cKFSpItmzZkm6tiIgozUpQ8kO6dOm0VsRZxImIyJisvPLly8uhQ4eSZm2IiCjNu6cLBWLC1t9//12THjC/m/ONiIgoWfqYkNzQu3dvadiwod5v1KiRy9REyM7DffRDERERJXlgGjx4sHTp0kWWLl16zx9GRESUaIHJvjpG7dq14/sSIiKipO1jutOs4kRERMk+jql06dJ3DU6XLl2633UiIqI0LEGBCf1M7jM/EBERpVhgevHFFyV37tyJugJERET31MfE/iUiIjIqMNlZeUREREY05cXExCTpihARESXqFWyJiIgSAwMTEREZhYGJiIiMwsBERERGYWAiIiKjMDAREZFRGJiIiMgoDExERGQUBiYiIjIKAxMRERmFgYmIiIzCwEREREZhYCIiIqMwMBERkVEYmIiIyCgMTEREZBQGJiIiMgoDExERGYWBiYiIjMLARERERmFgIiIiozAwERGRURiYiIjIKAxMRERkFAYmIiIyCgMTEREZhYGJiIiMwsBERERGYWAiIiKjMDAREZFRGJiIiMgoDExERGQUBiYiIjIKAxMRERmFgYmIiIzCwEREREZhYCIiIqMwMBERkVEYmIiIyCgMTEREZBQGJiIiMgoDExERGYWBiYiIjOKX0itAaVtUdIQcOL1Mzl35V25FXZegjHmlTIH6EpypgD6/cOsQj68rlf8pKZanejKvLSWm3yedlM0LL8mZQzfEP4OvlHw4SFr2KSz5igc6lomMiJGfPjkq6xdclKhbMVK+ZlZ5dWBRCc6ZXp8P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f0/3yTwMTOQVUCOyTzbvvvuuzJs3T09AN2/elKpVq8qkSZO8fuJLih14xo0bJ//884/OSv78889L06ZNJV++fCm9inQXLDaQV7BrRJ9//rl8/fXXMmXKFNm9e7d07txZZs+eLXv27EnpVaRkYgelfv36yZAhQyQkJETKli0rX375pXTt2lULK2Q2BibyqlrTjh07ZPjw4VKlShWtNY0cOVImTJigtSaekNKONWvW6P7/7bffpHfv3lKvXj05evSo1pgyZMiQ0qtHd8HARKmWe0IDAs+6devE399fli1bJm3bttUghVoT+pvw//nz56fY+lLyHQuXL1/WCV8fe+wx+eWXX+SFF16QUaNG6TERHh4uf/zxBwsqBmNgolTffDd58mTZvHmzBAYGyssvvyw//vijNGzYUE9EXbp0cZyoNm3aJMeOHUvhtaakPBZOnjypf9OlSye5c+fWoNS+fXsZMWKE41hYuXKl1qTOnDmToutMcWNgolQNgearr77Skw08+uij2mSDknK1atX0MVyuvl27dhqcunXrlsJrTEll/Pjx0r17d/0/MjEPHTokLVu2lE8//VT7lgC1pDFjxsjVq1elSJEiKbzGFBde9oJSvbfeekt+//132bt3r5aUZ86cKUOHDtXmHT8/P61JIVML/Q5o5ouOjtblyLssWbJE6tevr7WhZ555RmvR6FN64IEHtGCC/Y6kmNOnT8vWrVv12MAxwqEE5mFgolQD/UQ4mbjfR02oTp060qJFC/nggw/0uS1btmiJed++fVKmTBlp3LixBiP396DUyT2gIOhERERofyKGBSA7E/t7586dWlvCMZItWzYpXry4BicWUMzGwETGQ3ZVkyZNHPd/+uknLRlnzJhRO7hv3LghAwYM0JTwX3/9Nc6rnPJElPphwDSCiu3SpUuSPXt2x31kYL7//vtaWypatKhjv1+4cEGz8bJkyaIBjQUUs7GPiYyG/gAkN6ApDmUo9B+h6a5y5cryzjvvaEIDmup69eqlGXnfffddnO/FoJS6oTlu6dKljvs4Lho1aqQJDsi0A9SOHnzwQenbt68GMXu/58mTR2tSCEp2Ey+Zi4GJjNasWTP53//+p4Mmt2/frh3WyKZChhWSGqpXry59+vSRAwcOaDPen3/+qY+Td0GtJygoSJ544gnHY2iae+ihh6R169by6quv6pg1wP+R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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best LR params: {'C': 10, 'max_iter': 300, 'solver': 'liblinear'}\n",
      "\n",
      "=== Logistic Regression (GridSearch) ===\n",
      "Accuracy : 0.7050\n",
      "Precision: 0.7057\n",
      "Recall   : 0.7050\n",
      "F1-score : 0.7048\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.69      0.73      0.71       300\n",
      "    positive       0.72      0.68      0.70       300\n",
      "\n",
      "    accuracy                           0.70       600\n",
      "   macro avg       0.71      0.70      0.70       600\n",
      "weighted avg       0.71      0.70      0.70       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAccAAAGGCAYAAAAO+Ep7AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQrFJREFUeJzt3Qd0VFXXxvEdWui99yZNUGwgoBRRsSP2SlFQUYoCKqhIUeHFCuKrWLGiWF5FRT9AiogFFRAVEKRI770IhGS+9Ry848whgQDp+f/WmpVkZjJz5947Z5+zT7kxoVAoZAAAICzHv78CAAAhOAIA4CE4AgDgITgCAOAhOAIA4CE4AgDgITgCAOAhOAIA4CE4AgCQXYLjn3/+aeeff74VKVLEYmJi7JNPPknR1//rr7/c677++usp+rqZWcuWLd0tu5g2bZo7B/QzJehc0uvp3ELKGDhwoNun6WXlypWWN29e+/bbb1PtPapWrWodO3bMVufX6/98lp9//vmIzz3zzDPtvvvuy1jBccmSJXb77bdb9erV3QlSuHBha9asmY0YMcL+/vvv1Hxr69Chg/3222/22GOP2VtvvWWnn366ZRX6IujE0P5MbD+qYqDHdXvyySeP+vXXrFnjCpVffvnFMgsVEJdccollBkOGDEnxylpShUdwy5Url1WoUMGdO6tXr07V98a/Bg8ebI0bN3blnu+bb76xa665xh2XPHnyuIq8nqv/Wb9+fZpsX0JCgr355pvufYsXL26FChWyWrVqWfv27e2HH36wrOD++++3//73v7Zu3bqj+8dQKvn8889D+fLlCxUtWjTUo0eP0EsvvRR67rnnQtddd10od+7coS5duqTWW4f27Nmj9WJDDz74YKq9R0JCQujvv/8OHThwIJTWOnToEMqVK1coZ86cobFjxx7y+IABA0J58+Z1++CJJ5446tf/6aef3P+OHj36qP5v37597pYeqlSpErr44ovT9D3j4+PdOaCfR6NAgQLuGPp0Lun1dG4dLx07HcPBgweH3nrrrdDLL78cuvXWW905U6NGDfc+2UFcXFy6fdYNGza4sm7MmDGHPNa/f393fKpXrx564IEHQq+88oorHzt16hQqXLiwuz+59u7dG9q/f3+yz4lly5aF77vrrrvcfW3btg2NGDEi9N///teV1yeccIIrRzKq4LOorDoSfT/Lli3r9vnRyJUakXrZsmV23XXXWZUqVWzKlClWrly58GN33XWXLV682MaPH2+pZePGje5n0aJFU+09VBtXazi9xMbGutrou+++62qfkcaMGWMXX3yxffTRR2myLXv27LH8+fO72m92kiNHjhQ9B3LmzOluKenCCy8MZ006d+5sJUuWtGHDhtmnn356yHmTmnR9g71791q+fPksLanFrFt6ePvtt917X3rppVH3jx071h555BG3/5XV8r83zzzzjLsld3+qLDgWap0+//zz1qVLF3vppZeiHhs+fHi4HE0rasXu378/xctVfU+vuuoq10IeNGhQstPsqZJWffzxx23Xrl326quvRgXGQM2aNa1nz57hvw8cOOBOlho1argDrRTZAw88YPv27Us0dTZjxgxr1KiR24lK2epDB5QOVFCWe++91+0I/Z8opRT8fqR+iUmTJtlZZ53lAmzBggWtdu3abpuO1OeoysDZZ59tBQoUcP/btm1bW7BgQaLvp0qCtknPU0qlU6dOLtAk1w033GBffvmlbdu2LXzfTz/95NKqesy3ZcsW69OnjzVo0MB9JqVlVXjOnTs3/Bz1n51xxhnud21PkJYLPqf6FOvXr2+zZs2y5s2bu6AY7Be/z1GpbR0j//O3adPGihUr5tK3aSm555m+pDpG5cuXd5+vVatWNn/+/EP6dhLrc9S+v/LKK61s2bLus1esWNFVFLdv3+4e1/N3795tb7zxRnjfBq+ZVJ+QjnGLFi1cykvHTMdHFaBjoXMz6PKI9Mcff7gCRKk1bbcCqgKo79dff3XbokJZn+3RRx+10aNHH7LdwXd1woQJ7rX0/BdffNE9pvP17rvvtkqVKrnjoPJAAVv7PdJ7771np512Wvhz67xVl0wgLi7OFXYnnHCC2+YSJUq476y+u4f7bqdkeXM4Sp0rXanvWqSHH37YVVJUPiZWoVRZoO1ObFsS25+J9TnOmzfPzjnnnKjj5O9fNWIUZBNL+cbExFjp0qWj7kvucVNXTtOmTd3x0PvrGH744YeJvke3bt3snXfesRNPPNG95v/93/+5x5T6v/XWW913UPdXq1bNunbt6oJnJB2zXr16WalSpVyZ265du0SD+nnnnWfLly8/qq6iVKlSffbZZ+4k0g5KDtVoVVjoy9m7d2+bOXOmDR061BWqH3/8cdRzFVD0PO04Fb6vvfaa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WqNGjVzr8fHHH7cXXnjBtR4pFLOP7777zh3/zz77zHr37m3nnXeeLV++3LUc8+bNm96bh0yA4IhMyx9ko+D3ww8/WO7cuW3atGnWoUMHFyjVelT/o34fN25cum0v0u5c2Lp1q1ukvHHjxvbRRx/Ztddea88884w7J/bs2WPjx4+nsoTDIjgi06dSR48ebbNmzbJ8+fLZDTfcYG+//bZddNFFrjC84447woXlzz//bCtWrEjnrUZqngurV692P3PmzGmlS5d2gbFTp042bNiw8LnwzTffuBblunXr0nWbkbERHJGpKdj997//dQWenHHGGS59phZDkyZN3H1r1qyxjh07ugB55513pvMWI7U8//zz1r17d/e7RigvXbrUrr76anviiSdcX6OotThixAjbvn27ValSJZ23GBkZl6xCpnf33Xfb559/bgsXLnQthnfffdceffRRl2rLlSuXa1FqBKP6oZRyjY+Pd89D1jJ58mRr06aNaxVeeOGFLpugPsYTTzzRVY503DVQa+3atTZnzhx3bugcYZoPEkNwRKahfkMVaP7fahG2bNnSrrrqKuvfv797bPbs2a7lsGjRIqtTp461bdvWBUT/NZA5+UFNgW/fvn2uf1lTdjRqWcf7999/d61GnSPFihWz6tWruwBJJQlHQnBEhqdRh5dffnn47/fee8+1EPLnz+8GXfz999/Wr18/N13j008/TfJq8RSGmZ8WdVBgC2zZssWKFy8e/lsjkx966CHXaqxatWr4uG/atMmNUi1cuLALqlSScCT0OSJDU/+QBtwoLap6nPoTlUY97bTT7N5773WDbJQ27dWrlxup+uqrryb5WgTGzE2p0alTp4b/1nlx2WWXuUE3GoEqaiWedNJJdt9997lAGhz3MmXKuBalAmOQbgcOh+CIDO2KK66w//3vf25i99y5c90gCo0y1MhDDbRp2rSp9enTxxYvXuxSql9++aW7H1mLWn+FChWyVq1ahe9TmvTkk0+2G2+80W6++WY3p1X0uwbc6JwQPzlGHyOSg7QqMsUyYBMmTHDTNAYMGGA9evRw96m1oJSrWhAaZKElwtTvpIEZzZo1S+etR0rx10IdNWqUFS1a1I1EVatQ6+hqENbHH3/sUqlKuQ8cONBVmh577LF03XZkXgRHZEgKckHf4apVq1z/ogKj0mqajhE5JUMtRT1HqTQN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33+/VapUyW2PWrC6Kopet1WrVu45xYoVcy1IbZdoKb+hQ4e6xeB10WFdSeXDDz+Meh8F+1q1arnH9TqR2wlkRwRH4BgpkKiVKJMnT7aFCxfapEmT7PPPP3dXuW/Tpo1biP2bb76xb7/91goWLOhan8H/PPXUU/b666/ba6+9ZjNmzLAtW7bYxx9/fNj3bN++vb377rv27LPP2oIFC+zFF190r6tg+dFHH7nnaDt0WShdQkwUGN98800bNWqUzZs3z+655x676aab7Ouvvw4H8SuuuMJdpPqXX36xzp07W9++fVN57wEZnNZWBXB4HTp0CLVt29b9npCQEJo0aVIoNjY21KdPH/dYmTJlQvv27Qs//6233grVrl3bPTegx/PlyxeaMGGC+7tcuXKhxx9/PPx4XFxcqGLFiuH3kRYtWoR69uzpfl+4cKGale69EzN16lT3+NatW8P37d27N5Q/f/7Qd999F/XcW2+9NXT99de73/v16xeqV69e1OP333//Ia8FZCf0OQLJpBahWmlqFSpVecMNN9jAgQNd32ODBg2i+hnnzp1rixcvdi1H/1qGS5Ysse3bt7vWXePGjcOP5cqVy04//fRDUqsBtep08egWLVoke5u1DXv27LHzzjsv6n61XnWZMVELNHI7pEmTJsl+DyArIjgCyaS+uBdeeMEFQfUtKpgFChQoEPXcXbt22WmnnWbvvPPOIa9TqlSpY07jHi1th4wfP94qVKgQ9Zj6LAEkjuAIJJMCoAbAJMepp55qY8eOtdKlS1vhwoUTfU65cuVs5syZ1rx5c/e3poXMmjXL/W9i1DpVi1V9hRoM5AtarhroE6hXr54LgitWrEiyxVm3bl03sCjSDz/8kKzPCWRVDMgBUsGNN95oJUuWdCNUNSBn2bJlbh5ijx49bNWqVe45PXv2tP/85z/2ySef2B9//GF33nnnYecoVq1a1Tp06GC33HKL+5/gNd9//333uEbRapSq0r8bN250rUaldfv06eMG4bzxxhsupTt79mwbOXKk+1vuuOMO+/PPP+3ee+91g3nGjBnjBgoB2RnBEUgF+fPnt+nTp1vlypXdSFC1zm699VbX5xi0JHv37m0333yzC3jq41Mga9eu3WFfV2ndq666ygXSOnXqWJcuXWz37t3uMaVNBw0a5EaalilTxrp16+bu1yIC/fv3d6NWtR0aMas0q6Z2iLZRI10VcDXNQ6NahwwZkur7CMjIYjQqJ703AgCAjISWIwAAHoIjAAAegiMAAB6CIwAAHoIjAAAegiMAAB6CIwAAHoIjAAAegiMAAB6CIwAAHoIjAAAegiMAABbt/wHqcG97+t79agAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "# Grid للـ LinearSVC\n",
    "svm_grid = {'C':[0.1,1,2,5,10]}\n",
    "svm_gs = GridSearchCV(LinearSVC(), svm_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "svm_gs.fit(X_train, y_train)\n",
    "svm_best = svm_gs.best_estimator_\n",
    "svm_best_pred = svm_best.predict(X_test)\n",
    "print(\"Best SVM params:\", svm_gs.best_params_)\n",
    "evaluate(\"Linear SVM (GridSearch)\", y_test, svm_best_pred)\n",
    "\n",
    "# Grid للـ LogisticRegression\n",
    "lr_grid = {'C':[0.1,1,2,5,10], 'solver':['liblinear','lbfgs'], 'max_iter':[300,500]}\n",
    "lr_gs = GridSearchCV(LogisticRegression(), lr_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "lr_gs.fit(X_train, y_train)\n",
    "lr_best = lr_gs.best_estimator_\n",
    "lr_best_pred = lr_best.predict(X_test)\n",
    "print(\"Best LR params:\", lr_gs.best_params_)\n",
    "evaluate(\"Logistic Regression (GridSearch)\", y_test, lr_best_pred)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "62b595a8-a737-4c68-9c98-eeb81ff6abbd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saved to ./outputs\n"
     ]
    }
   ],
   "source": [
    "import joblib, os\n",
    "os.makedirs(\"outputs\", exist_ok=True)\n",
    "joblib.dump(vectorizer, \"outputs/tfidf_vectorizer.joblib\")\n",
    "joblib.dump(svm_best,  \"outputs/model_linearsvc_best.joblib\")\n",
    "joblib.dump(lr_best,   \"outputs/model_logreg_best.joblib\")\n",
    "print(\"Saved to ./outputs\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "6bfcea2a-7cd5-4d76-90f4-a43f3783f761",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>sentiment</th>\n",
       "      <th>clean_text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>negative</td>\n",
       "      <td>oh no where did u order from thats horrible</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>negative</td>\n",
       "      <td>a great hard training weekend is over a couple...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>negative</td>\n",
       "      <td>right off to work only hours to go until im fr...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>negative</td>\n",
       "      <td>i am craving for japanese food</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>negative</td>\n",
       "      <td>jean michel jarre concert tomorrow gotta work ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  sentiment                                         clean_text\n",
       "0  negative        oh no where did u order from thats horrible\n",
       "1  negative  a great hard training weekend is over a couple...\n",
       "2  negative  right off to work only hours to go until im fr...\n",
       "3  negative                     i am craving for japanese food\n",
       "4  negative  jean michel jarre concert tomorrow gotta work ..."
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "#  Preprocessing (Twitter text cleaning)\n",
    "# ==========================\n",
    "import re, string\n",
    "import pandas as pd\n",
    "\n",
    "assert 'sentiment' in df.columns, \"DataFrame df must include 'sentiment' column.\"\n",
    "\n",
    "# لو ما عندك clean_text، أنشئه من text:\n",
    "if 'clean_text' not in df.columns:\n",
    "    assert 'text' in df.columns, \"df must have 'clean_text' or 'text' column.\"\n",
    "    src_col = 'text'\n",
    "else:\n",
    "    src_col = 'clean_text'\n",
    "\n",
    "url_pat   = re.compile(r'https?://\\S+|www\\.\\S+')\n",
    "mention_h = re.compile(r'[@#]\\w+')\n",
    "num_pat   = re.compile(r'\\d+')\n",
    "punct_tbl = str.maketrans(\"\", \"\", string.punctuation)\n",
    "\n",
    "def to_clean(s: str) -> str:\n",
    "    s = str(s).lower()\n",
    "    s = url_pat.sub(\" \", s)\n",
    "    s = mention_h.sub(\" \", s)\n",
    "    s = num_pat.sub(\" \", s)\n",
    "    s = s.translate(punct_tbl)\n",
    "    s = re.sub(r'\\s+', ' ', s).strip()\n",
    "    return s\n",
    "\n",
    "df['clean_text'] = df[src_col].astype(str).apply(to_clean)\n",
    "df = df[['sentiment', 'clean_text']].dropna().reset_index(drop=True)\n",
    "df.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "e01ce1ab-a5b5-4f15-9fa9-b017c0ada1f4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1400, 600)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "#  Train/Test Split\n",
    "# ==========================\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "RANDOM_SEED = 42\n",
    "TEST_SIZE   = 0.30\n",
    "\n",
    "X_text = df['clean_text'].values\n",
    "y      = df['sentiment'].values\n",
    "\n",
    "X_train_text, X_test_text, y_train, y_test = train_test_split(\n",
    "    X_text, y, test_size=TEST_SIZE, random_state=RANDOM_SEED, stratify=y\n",
    ")\n",
    "\n",
    "len(X_train_text), len(X_test_text)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "7ecf2fc7-48bc-46ca-9b7e-c1a9ae83b7ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1400, 15866), (600, 15866))"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ==========================\n",
    "# TF-IDF (Unigram + Bigram)\n",
    "# ==========================\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer\n",
    "\n",
    "vectorizer = TfidfVectorizer(ngram_range=(1,2))\n",
    "X_train = vectorizer.fit_transform(X_train_text)  # fit على train فقط\n",
    "X_test  = vectorizer.transform(X_test_text)\n",
    "\n",
    "X_train.shape, X_test.shape\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "5639103b-b2b8-4ac2-a27b-31e6963b37ff",
   "metadata": {},
   "outputs": [],
   "source": [
    "# ==========================\n",
    "# 4) Evaluation helper\n",
    "# ==========================\n",
    "from sklearn.metrics import accuracy_score, precision_recall_fscore_support, classification_report, confusion_matrix\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "\n",
    "def evaluate(model_name, y_true, y_pred):\n",
    "    acc = accuracy_score(y_true, y_pred)\n",
    "    p, r, f1, _ = precision_recall_fscore_support(y_true, y_pred, average='weighted', zero_division=0)\n",
    "    print(f\"\\n=== {model_name} ===\")\n",
    "    print(f\"Accuracy : {acc:.4f}\\nPrecision: {p:.4f}\\nRecall   : {r:.4f}\\nF1-score : {f1:.4f}\\n\")\n",
    "    print(classification_report(y_true, y_pred, zero_division=0))\n",
    "\n",
    "    cm = confusion_matrix(y_true, y_pred, labels=np.unique(y_true))\n",
    "    plt.figure(figsize=(4,4))\n",
    "    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', cbar=False,\n",
    "                xticklabels=np.unique(y_true), yticklabels=np.unique(y_true))\n",
    "    plt.title(f'Confusion Matrix - {model_name}')\n",
    "    plt.xlabel('Predicted'); plt.ylabel('True')\n",
    "    plt.tight_layout(); plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "9c0cc237-ced5-49c7-8349-db870c2ce9b1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Logistic Regression ===\n",
      "Accuracy : 0.6900\n",
      "Precision: 0.6908\n",
      "Recall   : 0.6900\n",
      "F1-score : 0.6897\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.68      0.72      0.70       300\n",
      "    positive       0.70      0.66      0.68       300\n",
      "\n",
      "    accuracy                           0.69       600\n",
      "   macro avg       0.69      0.69      0.69       600\n",
      "weighted avg       0.69      0.69      0.69       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Linear SVM (LinearSVC) ===\n",
      "Accuracy : 0.7083\n",
      "Precision: 0.7094\n",
      "Recall   : 0.7083\n",
      "F1-score : 0.7080\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.69      0.74      0.72       300\n",
      "    positive       0.72      0.67      0.70       300\n",
      "\n",
      "    accuracy                           0.71       600\n",
      "   macro avg       0.71      0.71      0.71       600\n",
      "weighted avg       0.71      0.71      0.71       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== Multinomial Naive Bayes ===\n",
      "Accuracy : 0.7050\n",
      "Precision: 0.7106\n",
      "Recall   : 0.7050\n",
      "F1-score : 0.7030\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.68      0.79      0.73       300\n",
      "    positive       0.75      0.62      0.68       300\n",
      "\n",
      "    accuracy                           0.70       600\n",
      "   macro avg       0.71      0.70      0.70       600\n",
      "weighted avg       0.71      0.70      0.70       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAGGCAYAAAC37MwzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOZ5JREFUeJzt3Qd4FFXbBuA3kJAQSgglIRSpoYP0qvLREaSKIDV0QbqAgIr0on4KIgqCgtIUBAQFld5774QO0lsIJZAEMv/1HP/Zb3ezgQRP2N3kub1WsjOzs2dmz8x72sx4GIZhCBERkUYpdK6MiIgIGFyIiEg7BhciItKOwYWIiLRjcCEiIu0YXIiISDsGFyIi0o7BhYiItGNwISIi7Rhc4nDy5EmpXbu2+Pn5iYeHhyxZskTr+s+dO6fW+8MPP2hdrzv7z3/+o15JFX7v4cOHx2vZ3LlzS/v27cWVIe9im5CXEwrbhm10Fh5/yTy4nD59Wt555x3Jmzev+Pj4SPr06aVKlSry5ZdfysOHDxP1u0NCQuTQoUMyZswYmT17tpQtW1aSChzYOLCwPx3tRwRWzMfrv//9b4LXf/nyZXUS3b9/v7gLnOiwvTVr1nQ4f/r06ZZ9snv3bi3fuXXrVrWf7ty5o2V9SREKG9jnDRo0iDNAPE8edZZz/59m6xeOw5IlS8rkyZPlyZMnklR4iotavny5vPXWW+Lt7S3t2rWTYsWKSVRUlGzevFkGDhwoR44ckWnTpiXKd+OEu23bNvnwww+lZ8+eifIduXLlUt/j5eUlzuDp6SkRERHy+++/S/PmzW3mzZ07VwXzR48ePde6EVxGjBihTtg4aOJr5cqV4kzY5nXr1snVq1cla9asWvdJXMEF+wnBPkOGDDbzQkNDJUUKly77Sdu2beXtt99Wx2hiW7ZsmezZs0fKlCmTJI6/li1bSr169dTf4eHh8scff0ivXr3k/Pnz8tlnn0lS4JK59+zZsyrTIgMcPXpU1VS6dOkiPXr0kJ9++klNK1q0aKJ9/40bN9S/9ge8Tiix4GSVMmVKcQacEGrUqKH2p7158+ZJ/fr1X1haEOQgVapU6uUsqBWnTZtW5s+fbzP94sWLsmnTphe6T/D7OOvEF1/Iu8jDyMuJ6aWXXhJ/f38ViJPK8Ve6dGlp06aNeuG8huBZrlw5dewlFS4ZXD799FO5f/++fP/99xIUFBRrfv78+aVPnz6W948fP5ZRo0ZJvnz51EGJEvMHH3wgkZGRNp/D9DfeeEPVfsqXL68yF5rcZs2aZVkGzRQIaoAaEjKh2TYcVzsxPmN/gK1atUpeeeUVFaBwwipYsKBK07PafNeuXSuvvvqqpEmTRn22UaNGcuzYMYffd+rUKUupF31DHTp0sJyo46NVq1by559/2jTL7Nq1SzWLYZ6927dvy4ABA6R48eJqm1Cdf/311+XAgQOWZdavX68OEkB6zKq/uZ1o5kAtFKXQ1157TXx9fS37xb7PBU2T+I3st79OnTrqZIMakk74rqZNm8Y6wBGA8X343vj2Ez2rTwG/IfIX5MmTx7KfzP4L+z4Xs39jy5Yt8t5770mWLFlUHmnSpImlMGTtm2++UQUwHA/ZsmVTJzD75jfztzh48KBUrVpV/RY4thYuXKjmb9iwQSpUqCCpU6dW+Xf16tXP7HNZunSpCsL4Tnw3jkkcm/+muSddunTSr18/Vcveu3fvU5eNTx51dPyhaQ3vUXOwN2TIEFXoCQsLs0zbsWOH1K1bVx132G/Yf/htnpeHh4cEBgaqFgVr8dmfw4YNUwURR/mga9eu6vxgXePGMW+eY7BvsX60BFlD7R3Hb44cOdT34jyMc1FC+tdcMrggE+GkX7ly5Xgt37lzZ/n4449VaWDChAnqhx43bpyq/djDCblZs2ZSq1Yt+fzzz9VJAwexuXNxcsE6zKor+lsmTpyYoPRjXQhiCG4jR45U39OwYcNnZj4cvDiBXb9+XZ18cBJB0wlK1I5+VDRn3bt3T20r/saBkpDSHbYVmXrx4sWWaTixFipUSO1Le2fOnFEDG7BtX3zxhTo5ol8K+9s80RcuXFhts5mxsf/wQiAx3bp1Sx3waDLDvq1WrZrD9KHGipMogox5MH377beq+eyrr75SB5xuCKo7d+5U/X3W+wR5RmdNAvse+QuQ38z9hO19GjSd4ESJE0r37t3VsWLfdIu8g2CC/YO89+abb6r9hgEq0dHRNsvihInfE0EEhTqcSHDcoPaGf9F0M378eHnw4IHaB8hvT4M8iJM68i5+PzRj4dgcPHiw/BsoTOJYfdaAiPjkUUdw/OBYWLBgQax5mIZ9h+83C4DIz3fv3lW/w9ixY1Xgrl69uso78RERESE3b95UL6T566+/lr/++kvl9YTuTzRPooBtX+NGNwIKCvj9UXAC5DEEE6zzk08+kaFDh6qWIBSErc8x+Myvv/6qAgwKKr1791a//YULFyTeDBcTHh6O58sYjRo1itfy+/fvV8t37tzZZvqAAQPU9LVr11qm5cqVS03buHGjZdr169cNb29vo3///pZpZ8+eVct99tlnNusMCQlR67A3bNgwtbxpwoQJ6v2NGzfiTLf5HTNnzrRMK1mypBEQEGDcunXLMu3AgQNGihQpjHbt2sX6vo4dO9qss0mTJkamTJni/E7r7UiTJo36u1mzZkaNGjXU30+ePDGyZs1qjBgxwuE+ePTokVrGfjuw/0aOHGmZtmvXrljbZqpataqaN3XqVIfz8LK2YsUKtfzo0aONM2fOGGnTpjUaN25s6IbftX79+sbjx4/VPhg1apSafvToUfX9GzZsUNuDv7F9T0tzXHkFn8VvZ8K+xTTsQ0fpwTpM5nfXrFnTiImJsUzv16+fkTJlSuPOnTuW/JwqVSqjdu3aNr/V5MmT1ednzJhhk3ZMmzdvnmXa8ePH1TTkue3bt8f6Hax/UzNN1umPiIiItS3vvPOO4evrq/LP0/aPI0hj0aJF1d/Il/i+PXv2qPf/Jo86Ov4qVapklClTxuazO3fuVMvNmjVLvce+Dw4ONurUqWPzO2C78+TJY9SqVeup23P2/7/X0at79+426zTXG5/9ibRXqFDBZrnFixer9a5bt069v3fvnpEhQwajS5cuNstdvXrV8PPzs0wPCwtzeP5LKJeruaA0AKiuxQc6wgCR3Vr//v0tAwOsFSlSRFUJTSgposqP0oMuZl8NqrQxMTHx+syVK1fU6CrUojJmzGiZXqJECVXLMrfTWrdu3WzeY7tQKzD3YXxL6mjKQjUYJTL866hJDFCqNTuZUZPAd5lNfs9qrrBfD0pE8YESI0YMojaE0j5KYCiFJxa0waMUa/ZFoSM/Z86cNnnGmVAbtG6CRbrwW5jNOaj9osTat29fmwEB6LNEE5H98YDfz7qGj98S+Rc1UNRmTObfzzpO0IRmQkkXJXOkESX148ePa6m9PK12/m/yaIsWLVRzrXWtFbUBrBNNQoBj1Gw2xrrN2gdqdujD3LhxY7yO+a5du6qmc7wWLVqkaprI1/bnsfjuTwx6QlOdddrNvItaG+C7UMNCjdlMN17I8/h9MZjF/E40A+K8YN0UmFAuF1xwAMCzqt8mHFTITGgrtobRPjhI7NtQ0TloDxn23+xER5kUTVlorkM7Kg5eVK2flunMdOIgsIcD3czAT9sWs9qekG1BswcCOQ4iZEb0l9jvSxPSjyac4OBgdcBlzpxZBWe02WPES3xlz549QR33aA9HwMWBPWnSJAkICHjmZ9D+jEBpvtCHF184caCpAM1PaBLD75fYndbx9azfPK58hP2Npmb74wFt6vbbhn4EnJTsp1l/z9OahNEPhOVxLCN/oNMaEpJHHME6ETR/++032bdvn/Y8itGpOJeYzUuobP7yyy+qCdc8LyGwAJqvsF7r13fffaeawuOzncHBwWrYO14oNGEY8rvvvquaidGMl9D9iXMOthfHsDkPgwRat25t+X3NtKP5zj7taGpGczxgPWgyQ98Mzl9oAkSTKY4jtw8uaCs+fPhwgj4X34M/rtEh8Xnac1zfYd9ZiciPEgxKkWgPRcbGj48aiM5x7P9mW0zISMjcP/74o2pjjavWAmhbRskKmW3OnDmyYsUKVRpCx3F8a2j2pbH4wInEzPjWB97TIEiiE9J8JeRaCJTi0HGKExlGLj5tn8Q3T7jSbx6f9T3P96BUjFIygjJqmugPQv7AiQoSkkeeVntBoTGu2su/yaM476BWYPa7bN++XfUx4Ng1mevAcGGz5mH/Qk3peaDmAzh3JHR/opCBfiYzuKCvBYHODETWy6PfxVG60dJiQt4/ceKE6s9FawH6ZlDIjSuou811LthJuIYF15pUqlTpqctiZBd2GqIyNt507do19eOYI790wA/o6II3RyNMUAJCZsELHYvI9LhuBlVPRxfqmenE9Q32UP1FCQyjOxIDTp4zZsxQaXY0CMKEDIvOd4zis4Z9gvSZdJbyUVtDExqaMzHAAyUolOTMEWlxwUFmfYEoSu0JgaaD0aNHqzz1tGt1kCccNRU5yhP2EqM2ZJ2PrLcZTWUIlHFdJKoDmlHQVIQBItYDOPC9upi1F3Ts23d+JySPxgWBBDUI7D/UYDASzPoCThQ6zEKw7n35+PFj9a9Zy07o/kTTGJrvMOIT+b9UqVI2l2yYaUfNPz5px/LoXsAL51ccBxgggqDtljUXeP/999WJFM1KCBL20K6IkRNgXohkP6ILJ3TQeW0Cdjaqm6iJWPeVoMRvPxzSnnmCsh8ebULpGsugBmEdwFCDQ5XV3M7EgIMRwxtRNbe/eNC+NGtfckWzwaVLl2ymmUFQx5XngwYNUqVH7Bf8phiii5NKXPvRhGZJs9kBr4QGF+Q9jATCwfSsPIHgbz0MFCXN+AxL1bmfTNhWNIGh+dD6t8LJFnk3Ma/VMWs71t+LoIbRRjohuKD2Yo5KfJ48GheMksI60OeGz6Gga12ow2gt/OaoCTtqanU0HDi+UDOBl19++bn2J5rvEEBRs8EwcutaC2AkKoIiCrr2owat047+HPuLhbHNaD5/1nHn8jUXbAjaulGKQMnR+gp9DM3Fj25eA4AfAicb1HTMaiSGA+Jk1Lhx4ziHuT4PlOpxskPJGUPz8CNMmTJFChQoYNNZiEyPqi0OZJQk0aSDDIH2bQz5iwuq2sggqK116tRJlbwx5Baltfjek+p5oMby0UcfPXM5HGjYNtQkUItAExVKSPYnbvx+OPinTp2qMiQOTjQ14XqOhMAAA+w3nOTNodEzZ85U12egmo5aTGLB7xaffd6xY0cV9HDg4jfDb43tRonxWQMrzKvNUaNF3sJQZ5SS/00NFe3nuC4DzUa4DgND4FEKx35Ebc/+hKMT8gRqcjgecXygZoYmmOdtsosLjgc0jzlqGotvHo0LSvU4Z+A3Rb+vdZOYeaygbwXHKX5jfA/6EBG80CqBk7cZJJ4G5wuzBoDvWbNmjerYR5oxiOV59ifyD/IRCokITOZQdxPShvMVmupxPGFZ5BcU3jDQAwUyfBbNYWhxwcAWtBjg2hsUoFHQf1rLRiyGCztx4oQaHpc7d241vDJdunRGlSpVjK+++spmGF50dLQapoihgF5eXkbOnDmNIUOG2CxjPdzUnv1w0riGIsPKlSuNYsWKqfQULFjQmDNnTqyhyGvWrFFDqbNly6aWw78tW7ZU22P/HfbDdVevXq22MXXq1Eb69OmNBg0aqOGw1szvsx/q7Gho6LOGIsclrmGeGLIdFBSk0od0btu2zeFw3KVLlxpFihQxPD09bbbTemipPev13L17V/1epUuXVr+vNQy/xVBZfLcuceUNa46GIgPyQN68edVvjeHkGLYbn6HIgCHP2bNnV9tj/dvFNRTZ/rsxzNR6uKn10ONChQqp4yEwMFANc8UQU2tx/RZx7Qt8T48ePZ6a37Zs2WJUrFhR5Q/k+/fff98yjNk6jc8zFNkatgXDZ583j8Z1/MH06dPVPJxvHj586DBd+/btM5o2baqG/mOYM7alefPm6thP6FBkT09PlX8GDhyohgtbi+/+tB86jaHoccHnMJQa+8/Hx8fIly+f0b59e2P37t1q/s2bN9XvjPyD8wSWwzDnBQsWGAnhgf/FPxQREZGrOnDggGpex11HUENxJpfscyEiooTD3bsxWg0jQJ3NJftciIgo/tDPg2uz0PeM2wEl1sjShGCzGBGRm8udO7fqcMfAEnT6x/cOJ4mJwYWIiLRjnwsREWnH4EJERNoxuBARkXZJcrRY6lKJ89x7oucRtmuys5NApPi8wDM+ay5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEVHSDi5RUVESGhoqjx8/dnZSiIjI3YNLRESEdOrUSXx9faVo0aJy4cIFNb1Xr14yfvx4ZyePiIjcMbgMGTJEDhw4IOvXrxcfHx/L9Jo1a8r8+fOdmjYiIko4T3EBS5YsUUGkYsWK4uHhYZmOWszp06edmjYiInLTmsuNGzckICAg1vQHDx7YBBsiInIPLhFcypYtK8uXL7e8NwPKd999J5UqVXJiyoiIyG2bxcaOHSuvv/66HD16VI0U+/LLL9XfW7dulQ0bNjg7eURE5I41l1deeUX279+vAkvx4sVl5cqVqpls27ZtUqZMGWcnj4iIEsjDMAxDkpjUpXo6OwlEFmG7Jjs7CUSKj2cyq7lgyPEPP/wgd+/edXZSiIgoqQQXDDnGtS5Zs2aVt956S5YuXSrR0dHOThYREblzcEEH/qVLl9T1LmnSpJF27dpJYGCgdO3alR36RERuyCX7XB49eiS///67jBkzRg4dOiRPnjxJ0OfZ50KuhH0ulBz7XFxiKLK1q1evys8//yxz5syRgwcPSvny5Z2dJCIicsdmMXTkz5w5U2rVqiU5c+aUKVOmSMOGDeXkyZOyfft2ZyePiIjcseaC/hV/f39p0aKFjBs3Tl2xT0RE7sslgstvv/0mNWrUkBQpXKIiRURESSG4oDmMiIiSDqcFl9KlS8uaNWtUc1ipUqWeevfjvXv3vtC0ERGRmwaXRo0aibe3t+Vv3lqfiCjpcMnrXP4tXudCroTXuZCrSHb3FsubN6/cunUr1vQ7d+6oeaTHgI61ZfOcgXJ983/l/JpxsuCLLhKcy/YhbV99+LYc+W2Y3N72hVxYO04WTOgqBXIHxlpXmwYVZOf8IRK2fYJa14TBzV/gllBSde3aNRkyaIC8VrmClC9dQt5s3ECOHD7kcNlRIz6Wl4sWlDmzfnjh6SQ36dA/d+6cw6vwIyMj5eLFi05JU1L0aun8MnX+Rtlz5Lx4eqaUET0byLIpPaVU09ES8ShKLbPv2N/y85+75O8rYZLRz1c+7FZfln3TQwq9MUxiYv6p5PZuU136tK0uH0xYIjsPn5M0qVNJrmyZnLx15O7uhodL+zYtpWz5CvL11Onin9FfLpw/L+nT+8Vads3qVXLowAHJ4uAJtuQaPJ09BNm0YsUK8fP7XyZCsEGHf548eZyUuqSnUc9vbN53HTZH/l47XkoVySlb9p5W02Ys3mKZf+HKbRnx9e+ya8EHKnicvXhTMqRLLcPefUPe7DtV1u88YVn28MnLL3BLKCma8f10CcyaVUaNGWeZliNHToe1m/FjR8mUad9Lr+7vvOBUklsEl8aNG6t/0ZkfEhJiM8/Ly0ty584tn3/+uZNSl/SlT+uj/g0Lj3A439cnlbRrWFEFlYtXw9S0GhULSYoUHpItIIPsW/SRpEvjLdsPnJXBXyyWi9fuvND0U9KyYd1aqVzlFRnQr7fs3r1LAgICpcXbreTNt/7X5BoTEyMfDh4o7Tt0kvz5g52aXnLh4IKMAqid7Nq1SzJnzuzM5CQrCOifDWgmW/edlqOnr9jM6/rWqzKmb2NJ6+stoWevSv3ukyX68T/NlnlyZFbB5f2OtWXAZ4vk7v2HMqzHG6p5rVzzcZbliBLq4sW/ZcH8n6RtSAfp1LWbHDl0SD4ZN1oVNBs2bqKWmfn9dEnp6Smt2rRzdnLJHfpczp49+9yfRb8MXtaMmCfikSKlhpQlXROHNJei+YOkRocJseahz2XNjuOSNXN66duupsz5pKNU7/CFREY9VkEplZen9P90oazZflwtHzLkBzm3aqxULVdAVm875oStoaQAfXpFixWT3n3fU+8LFy4ip06dlF8W/KyCy9Ejh2Xu7Fny88LFvHTBDbhEcIEHDx6oZ7dcuHBBoqL+6Vw29e7dO87P4V5kI0aMsJmWMrCceAXxbspxmTDoLan3ajGp2WmiXLoeuynr7v1H6nX6wg3ZefCcXNn4qTSq/rIs+GuPXL35z9NCj5+5aln+Zth9uXnnvuTM6v9Ct4OSlixZskjefPlspmG06OpVK9Tfe/fsltu3b0ndmtVs+mY//+wTFXT+XLX2haeZXDy47Nu3T+rVqycREREqyGTMmFFu3rwpvr6+EhAQ8NTggidYvvfePyUdU8Crg15Aqt03sDSs/rLU7vKlnL8ce/i3PZQQ8R9qK7Bt/xn1b3DuAEtg8k/vK5kzpFUDAIieV8lSpeWcXSvG+XPnJFu27OrvNxo2kgqVKtvM7961k7zRoJE0btL0haaV3CS49OvXTxo0aCBTp05VI8Zwm320s7Zp00b69Onz1M/iKn/zSn8Tm8Tibgpr8XpZeavfNLn/4JEEZkqnpofffySPIqMld/ZM0qxOGVmz7ZiqjWQPzCD9O9SWh5HRsmLzEbXsqQvX5fd1B+S/A5tJz9E/qRrOyF4NJfTcNdmw+3+jx4gSqk27EAlp01K+mzZVatd5XQ4fOigLFy6Qj4ePVPMzZPBXL2tenl6qrzZ3Hl4P52pc4gr9DBkyyI4dO6RgwYLq723btknhwoXVNIwiO378n7b9+OIV+o493Of4SvEuH8+WOb/vkKAsfvLNx62kVOGcqjZy/dY92bz3lIyd9qecPH/dsny6ND7y6YCm0qh6SdVOvnnPSRnw2UKOFosDr9CPvw3r18mkiV/IhfPnJHuOHNK2XQeb0WL2Xq9VXVq3bSdt2rV/oel0Vz6eySy4oK1169atEhwcLAUKFJCvvvpK6tSpo4JKmTJlVFNZQjC4kCthcCFXkewec4y7ImMoMoJL1apV5eOPP1Z9LrNnz5ZixYo5O3lEROSO9xYbO3asBAUFqb/HjBmjbsPfvXt3uXHjhkybNs3ZySMiIndsFtONzWLkStgsRq4i2d0VmYiIkhaX6XNxdMUtpvn4+Ej+/Pmlffv2Uq3a/y6eIiIi1+USNZe6devKmTNnJE2aNCqA4JU2bVo5ffq0lCtXTq5cuSI1a9aUpUuXOjupRETkLjUXjAzr37+/DB061Gb66NGj5fz587Jy5UoZNmyYjBo1Sj0SmYiIXJtLdOjjqvw9e/ao5i9rp06dUte5hIeHq2teUIu5d+/eM9fHDn1yJezQJ1eR7Dr00a+CiyjtYRrmmbfnN/8mIiLX5hLNYr169ZJu3bqp2gtqJ4CLKr/77jv54IMPLE+qLFmypJNTSkREbtMsBnPnzpXJkydLaGioeo/7jCHotGrVSr1/+PChZfTYs7BZjFwJm8XIVSS7e4vpxuBCroTBhVxFsutzgTt37liawW7f/ue5IHv37pVLly45O2lEROSOfS4HDx5U17Fg1Ni5c+ekc+fO6oFhixcvVk+mnDVrlrOTSERE7lZzwZMkcQX+yZMnbfpU8HTKjRs3OjVtRETkpsEFI8PeeeedWNOzZ88uV6/+71ntRETkHlwiuOAxxXfv3o01/cSJE+pBYkRE5F5cIrg0bNhQRo4cKdHR0eo9hhyjr2XQoEHy5ptvOjt5RETkjsHl888/l/v370tAQIC6ngVPo8StYHDzSjw8jIiI3ItLjBbDKLFVq1bJli1b5MCBAyrQlC5dWo0gIyIi9+MyF1GuWbNGva5fv67uI2ZtxowZCVoXL6IkV8KLKCk5XkTpEjWXESNGqD6XsmXLSlBQkMMHhxERkftwieAydepU+eGHH6Rt27bOTgoRESWVDv2oqCipXLmys5NBRERJKbjgdi/z5s1zdjKIiCgpNYs9evRIpk2bJqtXr5YSJUqIl5eXzfwvvvjCaWkjIiI3vnGl+SCww4cP28xj5z4RkftxieCybt06ZyeBiIiSWp8LERElLQwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5EROQawWXTpk3Spk0bqVSpkly6dElNmz17tmzevFl3+oiIKDkEl0WLFkmdOnUkderUsm/fPomMjFTTw8PDZezYsYmRRiIiSurBZfTo0TJ16lSZPn26eHl5WaZXqVJF9u7dqzt9RESUHIJLaGiovPbaa7Gm+/n5yZ07d3Sli4iIklNwyZo1q5w6dSrWdPS35M2bV1e6iIgoOQWXLl26SJ8+fWTHjh3i4eEhly9flrlz58qAAQOke/fuiZNKIiJyK54J/cDgwYMlJiZGatSoIREREaqJzNvbWwWXXr16JU4qiYjIrXgYhmE8zwejoqJU89j9+/elSJEikjZtWnEVqUv1dHYSiCzCdk12dhKIFJ8EVyee33N/VapUqVRQISIi+tfBpVq1aqqvJS5r165N6CqJiCiJSXBwKVmypM376Oho2b9/vxw+fFhCQkJ0po2IiJJLcJkwYYLD6cOHD1f9L0RERNpuXIl7jc2YMUPX6oiIyI1pCy7btm0THx8fXasjIqLk1CzWtGlTm/cYyXzlyhXZvXu3DB06VFzBsp+GOzsJRBZlhq10dhKIlCNjaovLBhfcQ8xaihQppGDBgjJy5EipXfvFJZyIiFxXgoLLkydPpEOHDlK8eHHx9/dPvFQREVHy6XNJmTKlqp3w7sdERKS1Q79YsWJy5syZhH6MiIiSked6WBhuUrls2TLVkX/37l2bFxERUbz7XNBh379/f6lXr55637BhQ5vbwGDUGN6jX4aIiJK3eAeXESNGSLdu3WTdunWJmyIiIko+wcW8M3/VqlUTMz1ERJTc+lyedjdkIiKi57rOpUCBAs8MMLdv307IKomIKLkHF/S72F+hT0RE9K+Cy9tvvy0BAQEJ+QgRESVD8e5zYX8LERFpDy7maDEiIiJtzWIxMTHxXZSIiJI5bQ8LIyIiMjG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERJd3gsmnTJmnTpo1UqlRJLl26pKbNnj1bNm/e7OykERGROwaXRYsWSZ06dSR16tSyb98+iYyMVNPDw8Nl7Nixzk4eERG5Y3AZPXq0TJ06VaZPny5eXl6W6VWqVJG9e/c6NW1EROSmwSU0NFRee+21WNP9/Pzkzp07TkkTERG5eXDJmjWrnDp1KtZ09LfkzZvXKWkiIiI3Dy5dunSRPn36yI4dO8TDw0MuX74sc+fOlQEDBkj37t2dnTwiIkogT3EBgwcPlpiYGKlRo4ZERESoJjJvb28VXHr16uXs5BERUQJ5GIZhiIuIiopSzWP379+XIkWKSNq0aZ9rPWuO39SeNqLn1Xs2B6WQazgypnbyahabM2eOqrGkSpVKBZXy5cs/d2AhIiLnc4ng0q9fPwkICJBWrVrJH3/8IU+ePHF2koiIyN2Dy5UrV+Tnn39WnfnNmzeXoKAg6dGjh2zdutXZSSMiIncNLp6envLGG2+oEWLXr1+XCRMmyLlz56RatWqSL18+ZyePiIjccbSYNV9fX3UrmLCwMDl//rwcO3bM2UkiIiJ3rLkAOvRRc6lXr55kz55dJk6cKE2aNJEjR444O2lEROSONZe3335bli1bpmot6HMZOnSoujsyERG5J5cILilTppQFCxao5jD8TURE7s0lgguaw4iIKOlwWnCZNGmSdO3aVXx8fNTfT9O7d+8Xli4iInLj27/kyZNHdu/eLZkyZVJ/xwXXvpw5cyZB6+btXxw7eWS/rPp1nvx96riEh92SrkPGScmK/3vUwb5t62XTX0vk79Oh8uDeXRkyYabkzFvAZh3zvvlUjh/YJeG3b4q3j6/kLVRMGoe8K1lz5HLCFrkH3v7FsTK5/aXjq7mlSLZ0EpDeR3rN2Sdrj92wzPdNlVL61QmW6oUDJIOvl1wKeyhztl2QBTsvqvnZMvjIqoGxH9UB/X46ICsPX3th2+IujrzA2784reZy9uxZh39T4ol69FBy5M4vlWvUl2njP3Aw/5HkL1xCylSpLnO//sThOl7KV1DKVa0tGTMHyoP7d2X5T9/LV8P6yahpv0gK9pdRAqROlVJCr9yTxXsuyaTWJWPNf79eQamQN6MM/uWQCixVgjPJRw0Ky427kbLu+A25Gv5Iqo5bb/OZt8rlkA6v5pbNJ1jAdDaXGIo8cuRINRTZ3sOHD9U80qNomUrSsE1XKVmpqsP5FarVlXpvd5RCL5eLcx2v1GkkwUVLSqbAIBVoGrTpKmE3r8mt61cSMeWUFCEATFp9StYcve5wfsmXMsjSfZdl19kwuXznkfyy65KEXr0vxXP4qfkxhsjN+1E2rxpFAuSvQ1clIoq3kHI2lwguI0aMUHdCtoeAg3nkmiIfPZTtq5dLpsBs4p850NnJoSRm/4U7Uq1QFglI763el8/jL7kz+8qWU7ccLo/mtcLZ0quaEDmfS4wWQ7cP+lbsHThwQDJmzOiUNFHcNvyxWJb8+I0KLoHZX5LeIyaIp5eXs5NFScyY34/JiMZFZd2gqhL9JEbQOzzs1yOy51yYw+XfLJtDTl+/L/svhL/wtJKLBRd/f38VVPAqUKCATYDBnZFRm+nWrdtT1xEZGale1qKiIiVVqn9KO6Rf+aq1pXDJcmpQwOpf58l3n30sA8ZPES/uc9KodaWXpEROP+kxe59cDnsoZfP4y0cNC8v1e5Gy/fRtm2W9PVNIvRJZZeq6hA3+oSQaXHCLF9RaOnbsqJq//Pz+aUsFPNsld+7cz7xSf9y4cbGaztr2GCghPd9PtHQnd6nTpFWvgGw5JU+BojKgdV3Zv32jlHutlrOTRkkEgkXfWsHSe95+2Rj6T+f8iWv3pWBQOunwSu5YwaV2sUBJ7ZVSftt32UkpJpcKLiEhIepfDEWuXLmyeD1H08qQIUPkvffes5m25dw9bWmkpzPwn2HI4+goZyeFkhDPlB7i5ZlCddpbi4lBE3rs5ZuWya5GkIVFRL+wNJKLBpe7d+9K+vTp1d+lSpVSI8PwcsRczhFvb2/1spYqFU90jjx6GCE3rvxzjQDcunZZ/j5zQtKkSy8Zs2RV17bcvnFVXcMC1y5dUP+m988kfv6Z5ObVS7J78xopUrK8pPXLIGE3b8jKRbMllbe3FCtT2WnbRe4J17G8lMnX8j6Hf2opFJROwiOi5Ur4I9l55rYMqFtAIqOfqNFi5XL7S8NS2eTTP0Jt1vNSxtRSNre/dJ/F64lcidMuosQ9xPCQMDyBMkWKFA479M2O/oQ+mZIXUTp24tBemfhRr1jTK1Z/Xdr1+Ui2rVkusyeNjTUfw5PfaNlJ7ty6IXO/Hi8XToVKxIN7ks4vowQXfVnqtegggbyIMk68iNKxcnn85YfOsYe9L9l7ST5cdEQyp00lfWsHS+XgTOKX2ksFmIW7LsqPW87bLN+nVn5pUDJIav13k+r0J9e4iNJpwWXDhg1SpUoV9aAw/P00Vas6vi4jLgwu5EoYXMhVJIsr9K0DRkKDBxERuTaXuIjyr7/+ks2bN1vef/3111KyZElp1aqVeiIlERG5F5cILgMHDlQd/HDo0CE1+gtPpMQ9x+xHghERketziSv0EUSKFCmi/l60aJE0aNBAxo4dK3v37lVBhoiI3ItL1FxwwaR548rVq1dL7dr/dDrh1i9mjYaIiNyHS9RcXnnlFdX8hdFjO3fulPnz56vpJ06ckBw5cjg7eURE5I41l8mTJ6shyQsXLpQpU6ZI9uzZ1fQ///xT6tat6+zkERGRu1znkph4nQu5El7nQq4iWVznYg9X4S9ZskSOHTum3hctWlQaNmyoruQnIiL34hLB5dSpU2pU2KVLl6RgwYKWux3nzJlTli9fLvny5XN2EomIyN36XHr37q0CyN9//62GH+N14cIFdbdkzCMiIvfiEjUX3Fts+/btNk+dzJQpk4wfP16NICMiIvfiEjUX3DL/3r3Yz2DBkyhxDQwREbkXlwgub7zxhnTt2lV27NihbrOPF2oyeMQxOvWJiMi9uERwmTRpkupzwSONfXx81AtPpsyfP798+eWXzk4eERG5Y59LhgwZZOnSpWrU2NGjR9U03GsMwYWIiNyPSwQX+P7772XChAly8uRJ9T44OFj69u0rnTt3dnbSiIjIHYPLxx9/LF988YX06tVLNY3Btm3bpF+/fmpI8siRI52dRCIicrfbv2TJkkX1u7Rs2dJm+k8//aQCzs2bCbudC2//Qq6Et3+h5Hj7F5fo0I+OjpayZcvGml6mTBl5/PixU9JERERuHlzatm2r7oZsb9q0adK6dWunpImIiNy8z8Xs0F+5cqVUrFhRvcc1L+hvadeunc2jjtE3Q0RErs0lgsvhw4eldOnS6u/Tp0+rfzNnzqxemGfy8PBwWhqJiMjNgsu6deucnQQiIkpqfS5ERJS0MLgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkRE2jG4EBGRdgwuRESknYdhGIb+1ZK7i4yMlHHjxsmQIUPE29vb2cmhZIx50T0xuJBDd+/eFT8/PwkPD5f06dM7OzmUjDEvuic2ixERkXYMLkREpB2DCxERacfgQg6h43TYsGHsQCWnY150T+zQJyIi7VhzISIi7RhciIhIOwYX+teGDx8uJUuWdHYyKIlZv369eHh4yJ07d566XO7cuWXixIkvLF0UP+xzoQTBwf7rr79K48aNLdPu37+vrqLOlCmTU9NGSUtUVJTcvn1bAgMDVb774YcfpG/fvrGCzY0bNyRNmjTi6+vrtLRSbJ4OphElSNq0adWLSKdUqVJJ1qxZn7lclixZXkh6KGHYLOYm/vOf/0jv3r3l/fffl4wZM6qDDs1RJpTmOnfurA403CKjevXqcuDAAZt1jB49WgICAiRdunRq2cGDB9s0Z+3atUtq1aolmTNnVrfbqFq1quzdu9em+QGaNGmiSpLme+tmsZUrV4qPj0+s0mWfPn1UmkybN2+WV199VVKnTi05c+ZU2/bgwQPt+40SP1/27NlTvZBnkHeGDh0qZoNIWFiYtGvXTvz9/VXN4vXXX5eTJ09aPn/+/Hlp0KCBmo/aR9GiReWPP/6I1SyGvzt06KBuAYNpeJn537pZrFWrVtKiRQubNEZHR6t0zZo1S72PiYlR9yrLkyePyn8vv/yyLFy48IXts2QDzWLk+qpWrWqkT5/eGD58uHHixAnjxx9/NDw8PIyVK1eq+TVr1jQaNGhg7Nq1S83v37+/kSlTJuPWrVtq/pw5cwwfHx9jxowZRmhoqDFixAi1vpdfftnyHWvWrDFmz55tHDt2zDh69KjRqVMnIzAw0Lh7966af/36dZwxjJkzZxpXrlxR72HYsGGW9Tx+/Fh95rvvvrOs137aqVOnjDRp0hgTJkxQad2yZYtRqlQpo3379i9wj5KufJk2bVqjT58+xvHjx1U+8/X1NaZNm6bmN2zY0ChcuLCxceNGY//+/UadOnWM/PnzG1FRUWp+/fr1jVq1ahkHDx40Tp8+bfz+++/Ghg0b1Lx169ap/BYWFmZERkYaEydOVHkWeQ+ve/fuqeVy5cql8hIsW7bMSJ06tWUeYJ2YZubj0aNHG4UKFTL++usv9Z3Iz97e3sb69etf+P5Lyhhc3OggfuWVV2ymlStXzhg0aJCxadMmddA9evTIZn6+fPmMb7/9Vv1doUIFo0ePHjbzq1SpYhNc7D158sRIly6dOjhNONh//fVXm+WsgwvgRFO9enXL+xUrVqiDFycJQNDq2rWrzTqwDSlSpDAePnwYr/1BrpMvETxiYmIs05AnMQ0FB+QXFB5MN2/eVCf6BQsWqPfFixdXBSZHrIMLIAj4+fnFWs46uERHRxuZM2c2Zs2aZZnfsmVLo0WLFupvHCMIflu3brVZB/IkliN92CzmRkqUKGHzPigoSK5fv66av9Cpjg51s/8Dr7Nnz8rp06fVsqGhoVK+fHmbz9u/v3btmnTp0kWCg4NVEwea17DeCxcuJCidrVu3Vs0Yly9fVu/nzp0r9evXlwwZMqj3SC86Z63TWqdOHdVcgTSTe6lYsaJqpjJVqlRJNX0dPXpUPD09pUKFCpZ5yKMFCxaUY8eOqfdoDkVzbZUqVdRV+AcPHvxXacH3NW/eXOU5QFPr0qVLVZ6EU6dOSUREhGr+tc5/aDIzjxXSgx36bsTLy8vmPQ5onJARABBocEK3Z57Q4yMkJERu3bolX375peTKlUvdbgMnCozaSYhy5cpJvnz55Oeff5bu3bur0WUIJiak95133lEnFnsvvfRSgr6L3Bv6/lCwWL58ueqvQ1/I559/Lr169XrudSKQoL8QBa9Vq1apfpW6deta8h7g+7Jnz27zOd5eRi8GlySgdOnScvXqVVVqMzvZ7aG0iA57dK6a8N7ali1b5JtvvpF69eqp93///bfcvHkzVoB78uRJvA5wlB5z5MghKVKkUDUX6/SiVJs/f/4Ebyu5nh07dti83759u6r9FilSRB4/fqzmV65cWc1D4QW1aMwzYUBHt27d1AsPBJs+fbrD4ILRY/HJe/gurHP+/Pny559/yltvvWUpmOF7EURQG0cAosTDZrEkoGbNmqqGgWtPUPo7d+6cbN26VT788EPZvXu3WgYH6/fffy8//vijarJAUwSaIKybM3BCmD17tmqywAkBAQKlPmsIXmvWrFHBDCOB4oLPYqTZmDFjpFmzZjalwkGDBqn0YYTR/v37VXrQdIH35H5won7vvfdU0Pjpp5/kq6++UqMDkZ8aNWqkmloxOhDNoW3atFE1BkwHXLeyYsUK1RyK/LJu3TopXLiww+9B3kPNA/kPhR40b8UFo8amTp2qai5mkxhgpOSAAQOkX79+6lhAUxi+F2nGe9JIY/8NJXLHKTrKrTVq1MgICQlRf2MkTK9evYxs2bIZXl5eRs6cOY3WrVsbFy5csCw/cuRI1dmJ0T0dO3Y0evfubVSsWNEyf+/evUbZsmXVqLLg4GDjl19+sekshd9++02N9vH09FTzHHXom8qXL686ZNeuXRtr3s6dO9UoIaQFI8dKlChhjBkzRtPeoheZL999912jW7dualCJv7+/8cEHH1g6+G/fvm20bdtWdcSjIx+jxdDRb+rZs6caeIIBH1myZFHLotPfUYc+4HswChLTke/APo8CRjtiGcyzHmwAeI+RZwULFlTHCr4X6TJHqZEevEI/GUOnJq6XQW2F6Hmvc8E1Trz9Ctljn0sygSYENBOg8zRlypSq+WL16tWq2YCISDcGl2QCfSu48hl9II8ePVId/IsWLVL9NUREurFZjIiItONoMSIi0o7BhYiItGNwISIi7RhciIhIOwYXIiLSjsGFSJP27dvbPP4ZFxji9iau+ux5osTE4ELJ4qRvPr0QNz/EDTNHjhypbqqYmBYvXiyjRo2K17IMCJTU8CJKShZwy/WZM2dKZGSkupi0R48e6k65uAuvNTxeAAFIBzyOmii5Ys2FkgXclRn3UcNzavCMGdyZ4LfffrM0ZeHOBdmyZVN3LjAfN4CHTuF5OAgSuIsv7jZtwq3fcSdgzMcDsN5//33Lc+PjahZDYMMdoXE7eKQHNSjcqRrrrVatmloGz5JHDQbpiu/z3hEsCxQooOZjPdbpJHIWBhdKlnAiNh+Chlu443bxuM/asmXLJDo6Wt2DDbdn37Rpk3rODZ5WiNqP+Rk80AoPQJsxY4a6nfzt27fVQ9GeBs/SwT3dJk2apB5r8O2336r1ItjgVjyAdFy5ckU9sA0QWPCURNwX7siRI+pW8bht/YYNGyxBsGnTptKgQQP1+AI8fGvw4MGJvPeI4kHT3ZWJXBYeS4DHE5i3W1+1apW6xfuAAQPUvMDAQCMyMtKy/OzZs9Xt2K1v1Y75uGX8ihUr1PugoCDj008/tczHs9tz5Mhh+R77xySEhoaqW8Djux1xdHv5+DzvfciQIUaRIkVs5uMZ9vbrInrR2OdCyQJqJKgloFaCpiY8TGr48OGq76V48eI2/Sx4qBWetY6aizXc8BMPlwoPD1e1C+tnw+MpoGXLlo3VNGZCrQJ3o07I0w+tn/duDbWnUqVKqb9RA7JOB+DBcUTOxuBCyQL6IqZMmaKCCPpWEAxMadKksVkWTzssU6aMekyzvSxZsjzX99s/0TM++Lx3cmcMLpQsIICgAz0+SpcurZ6/HhAQIOnTp3e4TFBQkHoU9GuvvabeY1jznj171GcdQe0INSb0lTh6zIFZc7J+Rnx8nveORwJjYIL9M+yJnI0d+kR28Mz1zJkzqxFi6NDH891xHUrv3r3l4sWLahk8I378+PGyZMkSOX78uLz77rtPvUYFz38PCQmRjh07qs+Y61ywYIGaj1FsGCWG5rsbN26oWkt8nvferVs3OXnypAwcOFANBpg3b54aaEDkbAwuRHZ8fX1l48aN8tJLL6mRWKgddOrUSfW5mDWZ/v37S9u2bVXAQB8HAkGTJk2eul40yzVr1kwFokKFCkmXLl3kwYMHah6avUaMGKFGegUGBkrPnj3VdFyEOXToUDVqDOnAiDU0k2FoMiCNGGmGgIVhyhhVNnbs2ETfR0TPwoeFERGRdqy5EBGRdgwuRESkHYMLERFpx+BCRETaMbgQEZF2DC5ERKQdgwsREWnH4EJERNoxuBARkXYMLkREpB2DCxERacfgQkREotv/AWWkj+QB3xp9AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ==========================\n",
    "#  Baselines (fast)\n",
    "# ==========================\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.naive_bayes import MultinomialNB\n",
    "\n",
    "# Logistic Regression\n",
    "lr = LogisticRegression(max_iter=300, solver='liblinear')\n",
    "lr.fit(X_train, y_train)\n",
    "lr_pred = lr.predict(X_test)\n",
    "evaluate(\"Logistic Regression\", y_test, lr_pred)\n",
    "\n",
    "# Linear SVM\n",
    "svm = LinearSVC()\n",
    "svm.fit(X_train, y_train)\n",
    "svm_pred = svm.predict(X_test)\n",
    "evaluate(\"Linear SVM (LinearSVC)\", y_test, svm_pred)\n",
    "\n",
    "# Multinomial Naive Bayes\n",
    "nb = MultinomialNB()\n",
    "nb.fit(X_train, y_train)\n",
    "nb_pred = nb.predict(X_test)\n",
    "evaluate(\"Multinomial Naive Bayes\", y_test, nb_pred)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "b4369b0d-ef8a-4960-999c-f333600ef515",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best SVM params: {'C': 2}\n",
      "\n",
      "=== Linear SVM (GridSearch) ===\n",
      "Accuracy : 0.7117\n",
      "Precision: 0.7127\n",
      "Recall   : 0.7117\n",
      "F1-score : 0.7113\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.70      0.75      0.72       300\n",
      "    positive       0.73      0.68      0.70       300\n",
      "\n",
      "    accuracy                           0.71       600\n",
      "   macro avg       0.71      0.71      0.71       600\n",
      "weighted avg       0.71      0.71      0.71       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best LR params: {'C': 10, 'max_iter': 300, 'solver': 'liblinear'}\n",
      "\n",
      "=== Logistic Regression (GridSearch) ===\n",
      "Accuracy : 0.7050\n",
      "Precision: 0.7057\n",
      "Recall   : 0.7050\n",
      "F1-score : 0.7048\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "    negative       0.69      0.73      0.71       300\n",
      "    positive       0.72      0.68      0.70       300\n",
      "\n",
      "    accuracy                           0.70       600\n",
      "   macro avg       0.71      0.70      0.70       600\n",
      "weighted avg       0.71      0.70      0.70       600\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ==========================\n",
    "#  Hyperparameter Tuning (GridSearchCV)\n",
    "# ==========================\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "# LinearSVC Grid\n",
    "svm_grid = {'C': [0.1, 1, 2, 5, 10]}\n",
    "svm_gs = GridSearchCV(LinearSVC(), svm_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "svm_gs.fit(X_train, y_train)\n",
    "svm_best = svm_gs.best_estimator_\n",
    "svm_best_pred = svm_best.predict(X_test)\n",
    "print(\"Best SVM params:\", svm_gs.best_params_)\n",
    "evaluate(\"Linear SVM (GridSearch)\", y_test, svm_best_pred)\n",
    "\n",
    "# Logistic Regression Grid\n",
    "lr_grid = {'C': [0.1, 1, 2, 5, 10], 'solver': ['liblinear', 'lbfgs'], 'max_iter': [300, 500]}\n",
    "lr_gs = GridSearchCV(LogisticRegression(), lr_grid, cv=5, scoring='accuracy', n_jobs=-1)\n",
    "lr_gs.fit(X_train, y_train)\n",
    "lr_best = lr_gs.best_estimator_\n",
    "lr_best_pred = lr_best.predict(X_test)\n",
    "print(\"Best LR params:\", lr_gs.best_params_)\n",
    "evaluate(\"Logistic Regression (GridSearch)\", y_test, lr_best_pred)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "fd2bb888-a172-408a-bc1f-1ffbe045c705",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saved to ./outputs\n"
     ]
    }
   ],
   "source": [
    "# ==========================\n",
    "# 7) Save artifacts\n",
    "# ==========================\n",
    "import joblib, os\n",
    "os.makedirs(\"outputs\", exist_ok=True)\n",
    "\n",
    "joblib.dump(vectorizer, \"outputs/tfidf_vectorizer.joblib\")\n",
    "joblib.dump(svm_best,  \"outputs/model_linearsvc_best.joblib\")\n",
    "joblib.dump(lr_best,   \"outputs/model_logreg_best.joblib\")\n",
    "print(\"Saved to ./outputs\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e7289d85-0bbe-46d3-a786-d37712fb8733",
   "metadata": {},
   "outputs": [],
   "source": [
    ".\n"
   ]
  }
 ],
 "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.12.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
