{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "419870bf",
      "metadata": {
        "id": "419870bf"
      },
      "source": [
        "# Project 2 — Sentiment Classification with Classical ML and Deep Learning\n",
        "\n",
        "**Course:** Practical Image Processing and NLP  \n",
        "**Task:** NLP classification problem — preprocessing, dataset splitting, feature\n",
        "representation, model training and evaluation.\n",
        "\n",
        "---\n",
        "\n",
        "## What this notebook does\n",
        "\n",
        "The project is built on the two sentiment datasets provided with the course:\n",
        "\n",
        "| Dataset | Rows | Text | Classes |\n",
        "|---|---|---|---|\n",
        "| `unbalanceddataset.csv` | 2,600 | raw, uncleaned tweets/reviews | `positive` (2000) / `negative` (600) — strongly imbalanced |\n",
        "| `clean_dataset.csv` | ~19,500 | already normalised text | `positive` / `negative` / `neutral` — 3 classes |\n",
        "\n",
        "Because the two datasets are complementary, the notebook is organised in two experimental parts:\n",
        "\n",
        "* **Part A — raw text, binary, imbalanced.** The full preprocessing chain is written from\n",
        "  scratch, then *count-based* feature representations (Bag-of-Words and TF-IDF) are compared\n",
        "  over four classifiers. The class imbalance is then attacked with over-sampling,\n",
        "  under-sampling and SMOTE, and the winning configuration is tuned with a grid search.\n",
        "* **Part B — larger corpus, three classes.** Here *prediction-based* feature representations\n",
        "  are used: Word2Vec embeddings trained with both CBOW and Skip-gram, consumed first as\n",
        "  averaged sentence vectors by classical models and then as full sequences by a\n",
        "  Bidirectional LSTM.\n",
        "\n",
        "Every experiment is pushed into one shared results table so that the final comparison is\n",
        "made on exactly the same test protocol.\n",
        "\n",
        "**Reading guide:** section 1 setup · 2 data & EDA · 3–6 Part A · 7–10 Part B · 11 overall\n",
        "comparison and conclusions."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "8afe0c3a",
      "metadata": {
        "id": "8afe0c3a"
      },
      "source": [
        "## 1. Environment setup\n",
        "\n",
        "Run this cell first on Google Colab. `gensim >= 4.4` is required because earlier versions are\n",
        "not compatible with the NumPy 2.x that ships with current Colab runtimes."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "3d7de76a",
      "metadata": {
        "id": "3d7de76a"
      },
      "outputs": [],
      "source": [
        "!pip install -q \"gensim>=4.4\" imbalanced-learn"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "8b304129",
      "metadata": {
        "id": "8b304129"
      },
      "outputs": [],
      "source": [
        "import os\n",
        "import re\n",
        "import random\n",
        "import warnings\n",
        "from collections import Counter\n",
        "\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# ----------------------------------------------------------------------------------\n",
        "# Global configuration — everything that controls the experiments lives here.\n",
        "# ----------------------------------------------------------------------------------\n",
        "SEED          = 42      # single seed reused everywhere so results are reproducible\n",
        "TEST_SIZE     = 0.30    # hold-out fraction for Part A\n",
        "TEST_SIZE_B   = 0.20    # hold-out fraction for Part B\n",
        "EMBED_DIM     = 100     # Word2Vec vector size\n",
        "W2V_WINDOW    = 5\n",
        "MAX_LEN       = 25      # sequence length fed to the LSTM\n",
        "QUICK_RUN     = False   # True -> small subsample + tiny grids, used only to smoke-test the code\n",
        "\n",
        "random.seed(SEED)\n",
        "np.random.seed(SEED)\n",
        "\n",
        "plt.rcParams[\"figure.figsize\"] = (7, 4)\n",
        "plt.rcParams[\"axes.grid\"] = True\n",
        "plt.rcParams[\"grid.alpha\"] = 0.3"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "7f6793df",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7f6793df",
        "outputId": "806c7e27-0d1b-4174-fa1d-72123d181284"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "stop-words loaded: 198 | lemmatizer: yes\n"
          ]
        }
      ],
      "source": [
        "import nltk\n",
        "from nltk.corpus import stopwords\n",
        "from nltk.stem import PorterStemmer, WordNetLemmatizer\n",
        "\n",
        "for pkg in [\"punkt\", \"punkt_tab\", \"stopwords\", \"wordnet\"]:\n",
        "    try:\n",
        "        nltk.download(pkg, quiet=True)\n",
        "    except Exception as exc:                      # offline runtime -> fall back below\n",
        "        print(f\"could not download {pkg}: {exc}\")\n",
        "\n",
        "try:\n",
        "    from nltk.tokenize import word_tokenize\n",
        "    word_tokenize(\"smoke test\")                   # verifies the tokeniser data is really there\n",
        "    TOKENIZER = word_tokenize\n",
        "except Exception:\n",
        "    print(\"NLTK tokeniser unavailable — using a regular-expression tokeniser instead.\")\n",
        "    TOKENIZER = lambda s: re.findall(r\"[a-z]+\", s.lower())\n",
        "\n",
        "try:\n",
        "    STOPWORDS = set(stopwords.words(\"english\"))\n",
        "except Exception:\n",
        "    STOPWORDS = set(\n",
        "        \"i me my myself we our ours ourselves you your yours yourself yourselves he him his \"\n",
        "        \"himself she her hers herself it its itself they them their theirs themselves what \"\n",
        "        \"which who whom this that these those am is are was were be been being have has had \"\n",
        "        \"having do does did doing a an the and but if or because as until while of at by for \"\n",
        "        \"with about against between into through during before after above below to from up \"\n",
        "        \"down in out on off over under again further then once here there when where why how \"\n",
        "        \"all any both each few more most other some such no nor not only own same so than too \"\n",
        "        \"very s t can will just don should now\".split()\n",
        "    )\n",
        "\n",
        "STEMMER = PorterStemmer()\n",
        "try:\n",
        "    LEMMATIZER = WordNetLemmatizer()\n",
        "    LEMMATIZER.lemmatize(\"tests\")\n",
        "except Exception:\n",
        "    LEMMATIZER = None\n",
        "\n",
        "print(f\"stop-words loaded: {len(STOPWORDS)} | lemmatizer: {'yes' if LEMMATIZER else 'no'}\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "bfb6e041",
      "metadata": {
        "id": "bfb6e041"
      },
      "outputs": [],
      "source": [
        "from sklearn.model_selection import train_test_split, GridSearchCV\n",
        "from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.naive_bayes import MultinomialNB\n",
        "from sklearn.svm import LinearSVC\n",
        "from sklearn.ensemble import RandomForestClassifier\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "from sklearn.metrics import (\n",
        "    accuracy_score, precision_score, recall_score, f1_score,\n",
        "    confusion_matrix, classification_report,\n",
        ")\n",
        "\n",
        "from imblearn.over_sampling import RandomOverSampler, SMOTE\n",
        "from imblearn.under_sampling import RandomUnderSampler\n",
        "\n",
        "from gensim.models import Word2Vec"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "fd96220a",
      "metadata": {
        "id": "fd96220a"
      },
      "source": [
        "### 1.1 Shared evaluation helpers\n",
        "\n",
        "One evaluation function is used by *every* experiment in the notebook. Besides accuracy it\n",
        "reports the **macro F1**, which is the honest metric when the classes are imbalanced: the\n",
        "weighted average can look excellent while the minority class is being ignored completely."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "id": "97fb363b",
      "metadata": {
        "lines_to_next_cell": 1,
        "id": "97fb363b"
      },
      "outputs": [],
      "source": [
        "RESULTS = []          # every experiment appends one row here\n",
        "\n",
        "\n",
        "def evaluate(experiment, part, y_true, y_pred, class_names=None, show_report=True, plot=True):\n",
        "    \"\"\"Score one experiment, print a report, draw its confusion matrix and store the row.\"\"\"\n",
        "    row = {\n",
        "        \"Experiment\": experiment,\n",
        "        \"Part\": part,\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 (weighted)\": f1_score(y_true, y_pred, average=\"weighted\", zero_division=0),\n",
        "        \"F1 (macro)\":    f1_score(y_true, y_pred, average=\"macro\", zero_division=0),\n",
        "    }\n",
        "    RESULTS.append(row)\n",
        "\n",
        "    print(f\"\\n=== {experiment} ===\")\n",
        "    print(f\"Accuracy {row['Accuracy']:.4f} | weighted F1 {row['F1 (weighted)']:.4f} \"\n",
        "          f\"| macro F1 {row['F1 (macro)']:.4f}\")\n",
        "    if show_report:\n",
        "        print(classification_report(y_true, y_pred, target_names=class_names, zero_division=0))\n",
        "    if plot:\n",
        "        plot_confusion(y_true, y_pred, class_names, experiment)\n",
        "    return row\n",
        "\n",
        "\n",
        "def plot_confusion(y_true, y_pred, class_names, title):\n",
        "    \"\"\"Confusion matrix drawn with matplotlib only (no extra dependency).\"\"\"\n",
        "    cm = confusion_matrix(y_true, y_pred)\n",
        "    labels = class_names if class_names is not None else sorted(set(np.concatenate([y_true, y_pred])))\n",
        "    fig, ax = plt.subplots(figsize=(4.2, 3.6))\n",
        "    im = ax.imshow(cm, cmap=\"Blues\")\n",
        "    ax.set_xticks(range(len(labels)), labels, rotation=45, ha=\"right\")\n",
        "    ax.set_yticks(range(len(labels)), labels)\n",
        "    ax.set_xlabel(\"Predicted\"); ax.set_ylabel(\"True\"); ax.set_title(title, fontsize=10)\n",
        "    ax.grid(False)\n",
        "    thresh = cm.max() / 2\n",
        "    for i in range(cm.shape[0]):\n",
        "        for j in range(cm.shape[1]):\n",
        "            ax.text(j, i, cm[i, j], ha=\"center\", va=\"center\",\n",
        "                    color=\"white\" if cm[i, j] > thresh else \"black\", fontsize=9)\n",
        "    fig.colorbar(im, ax=ax, shrink=0.8)\n",
        "    plt.tight_layout(); plt.show()\n",
        "\n",
        "\n",
        "def results_table(part=None):\n",
        "    \"\"\"Current leaderboard, sorted by macro F1.\"\"\"\n",
        "    df = pd.DataFrame(RESULTS)\n",
        "    if part is not None:\n",
        "        df = df[df[\"Part\"] == part]\n",
        "    return (df.drop(columns=\"Part\")\n",
        "              .sort_values(\"F1 (macro)\", ascending=False)\n",
        "              .reset_index(drop=True)\n",
        "              .round(4))"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f23e1289",
      "metadata": {
        "id": "f23e1289"
      },
      "source": [
        "## 2. Loading the datasets\n",
        "\n",
        "On Colab the two CSV files are uploaded once with the file picker; the helper below also\n",
        "looks in the working directory and in Google Drive so the same notebook runs locally\n",
        "without any change."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "id": "709d76e2",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 241
        },
        "id": "709d76e2",
        "outputId": "da62a0ea-a72d-4e11-a3da-bb52d497dfc9"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "raw dataset  : (2600, 2) ['text', 'sentiment']\n",
            "clean dataset: (19557, 2) ['sentiment', 'clean_text']\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                                text sentiment\n",
              "0  Java Concurrency in Practice is probably the b...  positive\n",
              "1    haha aww hun i bet you are more creative tha...  positive\n",
              "2  _pickle lol, thank you very much Hope you`re h...  positive\n",
              "3  Out for an evening on the town with jeremy. Sa...  negative\n",
              "4   - just took over the #1 Most Endorsed spot on...  positive"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-836fdcc2-7cdb-4f9f-906a-91ecde1ed746\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>text</th>\n",
              "      <th>sentiment</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Java Concurrency in Practice is probably the b...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>haha aww hun i bet you are more creative tha...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>_pickle lol, thank you very much Hope you`re h...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Out for an evening on the town with jeremy. Sa...</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>- just took over the #1 Most Endorsed spot on...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-836fdcc2-7cdb-4f9f-906a-91ecde1ed746')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-836fdcc2-7cdb-4f9f-906a-91ecde1ed746 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-836fdcc2-7cdb-4f9f-906a-91ecde1ed746');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "raw_df",
              "summary": "{\n  \"name\": \"raw_df\",\n  \"rows\": 2600,\n  \"fields\": [\n    {\n      \"column\": \"text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2600,\n        \"samples\": [\n          \" Looking forward to following your journey on this endeavor - just subscribed to your blog\",\n          \"Frustrated with copying 13Gigs across USB 1.1.Stupid old servers\",\n          \" Thanks so much Jon.....same to your mom    That is so sweet of you to think of all of us\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sentiment\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"negative\",\n          \"positive\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 7
        }
      ],
      "source": [
        "def resolve_path(*candidates):\n",
        "    \"\"\"Return the first existing path among the candidates, otherwise ask Colab to upload.\"\"\"\n",
        "    search_dirs = [\".\", \"/content\", \"/content/drive/MyDrive\", \"/content/drive/MyDrive/data\"]\n",
        "    for name in candidates:\n",
        "        for folder in search_dirs:\n",
        "            path = os.path.join(folder, name)\n",
        "            if os.path.exists(path):\n",
        "                return path\n",
        "    try:                                            # running on Colab -> upload the file\n",
        "        from google.colab import files\n",
        "        print(f\"Please upload: {candidates[0]}\")\n",
        "        uploaded = files.upload()\n",
        "        return list(uploaded.keys())[0]\n",
        "    except ImportError:\n",
        "        raise FileNotFoundError(f\"None of {candidates} was found in {search_dirs}\")\n",
        "\n",
        "\n",
        "RAW_PATH   = resolve_path(\"unbalanceddataset.csv\", \"unbalanceddataset (2).csv\")\n",
        "CLEAN_PATH = resolve_path(\"clean_dataset.csv\", \"clean_dataset (3).csv\")\n",
        "\n",
        "raw_df   = pd.read_csv(RAW_PATH,   encoding=\"ISO-8859-1\")\n",
        "clean_df = pd.read_csv(CLEAN_PATH, encoding=\"ISO-8859-1\")\n",
        "\n",
        "print(\"raw dataset  :\", raw_df.shape, list(raw_df.columns))\n",
        "print(\"clean dataset:\", clean_df.shape, list(clean_df.columns))\n",
        "raw_df.head()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7b73eccf",
      "metadata": {
        "id": "7b73eccf"
      },
      "source": [
        "### 2.1 Data quality check and cleaning of the frames themselves\n",
        "\n",
        "Before any text processing, the two frames are checked for missing values and duplicated\n",
        "rows. Duplicates matter more than usual in text classification: if the same sentence exists\n",
        "twice and the split puts one copy in train and one in test, the test score is inflated."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "id": "23e4bd36",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "23e4bd36",
        "outputId": "7f3b3be2-817f-4309-b2f0-eea60542ecd3"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "--- unbalanced (raw) ---\n",
            "shape          : (2600, 2)\n",
            "missing values : {'text': 0, 'sentiment': 0}\n",
            "duplicated rows: 0\n",
            "class counts   : {'positive': 2000, 'negative': 600}\n",
            "empty strings  : 0\n",
            "\n",
            "--- clean (3 classes) ---\n",
            "shape          : (19557, 2)\n",
            "missing values : {'sentiment': 0, 'clean_text': 22}\n",
            "duplicated rows: 404\n",
            "class counts   : {'positive': 8582, 'negative': 7781, 'neutral': 3194}\n",
            "empty strings  : 0\n",
            "\n",
            "after cleaning -> (2600, 2) (19150, 2)\n"
          ]
        }
      ],
      "source": [
        "def frame_report(df, name, text_col, label_col):\n",
        "    print(f\"--- {name} ---\")\n",
        "    print(\"shape          :\", df.shape)\n",
        "    print(\"missing values :\", df.isna().sum().to_dict())\n",
        "    print(\"duplicated rows:\", int(df.duplicated().sum()))\n",
        "    print(\"class counts   :\", df[label_col].value_counts().to_dict())\n",
        "    print(\"empty strings  :\", int((df[text_col].astype(str).str.strip() == \"\").sum()))\n",
        "    print()\n",
        "\n",
        "frame_report(raw_df,   \"unbalanced (raw)\", \"text\", \"sentiment\")\n",
        "frame_report(clean_df, \"clean (3 classes)\", \"clean_text\", \"sentiment\")\n",
        "\n",
        "raw_df = raw_df.dropna(subset=[\"text\", \"sentiment\"]).drop_duplicates().reset_index(drop=True)\n",
        "clean_df = (clean_df.dropna(subset=[\"clean_text\", \"sentiment\"])\n",
        "                    .drop_duplicates()\n",
        "                    .reset_index(drop=True))\n",
        "print(\"after cleaning ->\", raw_df.shape, clean_df.shape)\n",
        "\n",
        "if QUICK_RUN:                                   # only used when smoke-testing the code\n",
        "    raw_df   = raw_df.sample(400,  random_state=SEED).reset_index(drop=True)\n",
        "    clean_df = clean_df.sample(2000, random_state=SEED).reset_index(drop=True)\n",
        "    print(\"QUICK_RUN subsample ->\", raw_df.shape, clean_df.shape)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9e234c0a",
      "metadata": {
        "id": "9e234c0a"
      },
      "source": [
        "### 2.2 Exploratory data analysis"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "id": "8f0ffa53",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 383
        },
        "id": "8f0ffa53",
        "outputId": "a23e203a-752b-4f59-cf9e-00185e858e8d"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1100x360 with 2 Axes>"
            ],
            "image/png": "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OQIvL69CaYmJicjNzUXDhg2lZd7e3jh//nyx6Q0bNsSpU6dKlE5ERETlKywsDL/99hsyMjKQnp6OX3/9FZ07dy42//Tp02FhYQEHBwecPHkS/fv310j//PPPYWZmhurVqyMrKwt9+/Yt5z0gIqLKhkEQemUJITBgwADUrl0b3bp1K5SelZUFc3NzGBn9b/xfa2trZGVlPTc9MzOzROlERERUvlq0aIG0tDTY2NjA1tYW9+/fx7hx44rN/9VXXyErKwvnzp3DZ599BgcHB430xYsXIysrC0ePHkVQUBBsbGzKexeIiKiSYRCEXklCCHz++edITEzEpk2bihxB2cLCAg8fPsTjx4+lZRkZGbCwsHhuesErlV6UTkREROVHrVajXbt2aNGiBbKyspCVlYUWLVqgffv2L1zXw8MDXl5eGDFiRKE0AwMDNG3aFJaWlhg1alQ51JyIiCozBkHolSOEQGhoKOLi4rBz505YWVkVma9u3bqoUqUKTp48KS07efIk6tWrV2x6QkICPD09S5RORERE5efevXu4du0ahg8fDjMzM5iZmWHYsGGIi4vDv//++8L18/LycOXKleemPz0mCBER6QedBkEiIiLQrFkzWFpawsHBAR9++CESExM18mRnZyM0NBRVq1aFhYUFunfvjtTUVI08ycnJCAgIgJmZGRwcHDB69GiNu/cAsGfPHjRu3BhyuRy1atXCypUry3v3qJwMHToUBw8eRHR0dKFurH379pWe7zUzM8Onn36KCRMmICMjAxcvXsTChQvRq1evYtMXLFiAAQMGlCidiIiIyo+dnR1q1aqFRYsWITs7G9nZ2Vi0aBGqVasGOzs7TJo0Cb6+vgCePMK6YsUKpKenQwiB06dP49tvv5XSr127hvXr1yMrKwtqtRqHDh3C999/D39/f2l7ubm5yM7OhlqtxuPHj5GdnV2oPUlERK8+nQZB9u7di9DQUBw+fBjR0dHIy8tD+/bt8eDBAynPyJEj8eeff+K3337D3r17cevWLY3xH/Lz8xEQEIDc3FwcOnQIq1atwsqVKxEeHi7lSUpKQkBAAN577z0kJCRgxIgRGDBgAHbs2FGh+0tld+3aNSxevBiJiYlwc3ODhYUFLCwsMHjwYABPAmItWrSQ8i9cuBBWVlaoVq0aWrRogf79++OTTz4pNj0kJARBQUElTiciIqLy88cf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z5gxY/DgwQMMGjQI6enpePfdd7F9+3aN54wjIyMxdOhQtG3bFgYGBujevTu+//57Kd3Kygo7d+5EaGgomjRpAjs7O4SHh/P1uESVzG+//QYzMzPptdlFsbCwAAAMHz4cbm5uUKvVGD16NN555x08ePBASh83bhzs7Oykv3v27Kmx/uTJk2FhYQELCwt88cUX+O9//4sJEyaU5+4RUTEYBCEiIiK9YGlpiXnz5mHevHnF5pHJZJgyZQqmTJlSbB5bW1tERUU9d1teXl7Yv39/aatKRBVg2bJlCA4OhpFR8T+JrK2tUb169SLThBCoW7fucwdj9Pb2LnM9iUi7+DgMERERERHplcTERBw6dAghISGF0iZNmgRfX19pftCgQViwYAFu3ryJR48eYc6cOWjTpg0sLCxgamqK3r17Y8aMGbh//z7S09MxY8YMdOnSBcCTsYb8/PwwZcoUPHz4ELdu3cKCBQukdCKqeAyCEBERERGRXlm+fDlatmyJ2rVrF0pLTk5GixYtpPmvvvoKbdu2hbe3N9zc3PDo0SOsXr1aSp83bx5cXFzg7u6OunXrws3NDXPmzJHSIyMjkZGRAUdHRzRr1gz+/v4YM2ZM+e4gERWLj8MQEREREZFemTlzZrFpR48exZ49e6R5Q0NDzJ49G7Nnz4ZarUZaWhocHBykdHNzc6xcubLY8hwcHLBp0yYt1JqItIFBECIiIiIiov93+vRpXVeBiMoRgyBERERERFRqV77prusqVBgBGTIt38CDzJuQQei6OhXmza/X67oKRFrDMUGIiIiIiIiISC8wCEJEREREREREeoFBECIiIiIiIiLSCwyCEBEREREREZFeYBCEiIiIiIiIiPQCgyBEREREREREpBcYBCEiIiIiIiIivcAgCBERERERERHpBZ0GQfbt24fOnTvDxcUFMpkMmzZt0kiXyWRFTrNmzZLy1KhRo1D69OnTNco5deoUWrZsCRMTE7i6umLmzJkVsXtEREREREREVInoNAjy4MEDeHt7Y9GiRUWm3759W2P66aefIJPJ0L17d418U6ZM0cg3bNgwKU2lUqF9+/Zwc3NDfHw8Zs2ahUmTJmHp0qXlum9EREREREREVLkY6XLjHTt2RMeOHYtNd3Jy0pj/448/8N577+HNN9/UWG5paVkob4HIyEjk5ubip59+grGxMRo0aICEhATM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R20NDQ2hVCrRu3dvBAUFaTxq6+7ujq1btyI6Ohre3t6YPXs2li1bxtfjEhERVQLsCUJERER6QYgXP2OtrUdtfX19ceLEiZeuIxEREZUv9gQhIiIiIiIiIr3AIAgRERERERER6QUGQYiIiIiIiIhILzAIQkRERERERER6gUEQIiIiIiIiItILDIIQERERERERkV5gEISIiIiIiIiI9AKDIERERERERESkFxgEISIiIiIiIiK9wCAIEREREREREekFBkGIiIiIiIiISC8wCEJEREREREREeoFBECIiIiIiIiLSCwyCEBEREREREZFeYBCEiIiIiIiIiPQCgyBEREREREREpBcYBCEiIiIiIiIivcAgCBERERERERHpBQZBiIiIiIiIiEgvMAhCRERERERERHqBQRAiIiIiIiIi0guVOggSERGBZs2awdLSEg4ODvjwww+RmJiokcfX1xcymUxjGjx4sEae5ORkBAQEwMzMDA4ODhg9ejQeP35ckbtCRERERERERDpWqYMge/fuRWhoKA4fPozo6Gjk5eWhffv2ePDggUa+gQMH4vbt29I0c+ZMKS0/Px8BAQHIzc3FoUOHsGrVKqxcuRLh4eEVvTtERESkY/v27UPnzp3h4uICmUyGTZs2aaQLIRAeHg5nZ2eYmprCz88PFy9e1Mhz7949BAYGQqFQwNraGiEhIcjKytLIc+rUKbRs2RImJiZwdXXVaJsQERGR7hjpugLPs337do35lStXwsHBAfHx8WjVqpW03MzMDE5OTkWWsXPnTpw7dw67du2Co6MjGjZsiKlTp2Ls2LGYNGkSjI2NC62Tk5ODnJwcaV6lUgEA1Go11Gq1NnYNACDTWklUUrKnJqpY2vzsVCTBs6XCCcikiSqOtj+jlfUz/+DBA3h7e6N///7o1q1bofSZM2fi+++/x6pVq+Du7o4JEybA398f586dg4mJCQAgMDAQt2/flm7Q9OvXD4MGDUJUVBSAJ+2G9u3bw8/PD0uWLMHp06fRv39/WFtbY9CgQRW6v0RERKSpUgdBnpWRkQEAsLW11VgeGRmJX375BU5OTujcuTMmTJgAMzMzAEBsbCw8PT3h6Ogo5ff398eQIUNw9uxZNGrUqNB2IiIiMHny5ELL79y5g+zsbK3tj6vti/OQ9tlZAkLXldBDaWlpuq5CqWRavqHrKugdARkemT75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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Imbalance ratio of the raw dataset: 3.33 : 1\n"
          ]
        }
      ],
      "source": [
        "fig, axes = plt.subplots(1, 2, figsize=(11, 3.6))\n",
        "for ax, (df, col, title) in zip(\n",
        "    axes,\n",
        "    [(raw_df, \"sentiment\", \"unbalanceddataset — 2 classes\"),\n",
        "     (clean_df, \"sentiment\", \"clean_dataset — 3 classes\")],\n",
        "):\n",
        "    counts = df[col].value_counts()\n",
        "    ax.bar(counts.index, counts.values, color=[\"#4C72B0\", \"#DD8452\", \"#55A868\"][: len(counts)])\n",
        "    ax.set_title(title, fontsize=10); ax.set_ylabel(\"documents\")\n",
        "    for i, v in enumerate(counts.values):\n",
        "        ax.text(i, v, f\"{v:,}\", ha=\"center\", va=\"bottom\", fontsize=9)\n",
        "plt.tight_layout(); plt.show()\n",
        "\n",
        "imbalance_ratio = raw_df[\"sentiment\"].value_counts()\n",
        "print(f\"Imbalance ratio of the raw dataset: \"\n",
        "      f\"{imbalance_ratio.max() / imbalance_ratio.min():.2f} : 1\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "id": "bf9c6bf3",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 346
        },
        "id": "bf9c6bf3",
        "outputId": "f9ce2fa8-f125-464e-a1fe-f0c4e1ae2546"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1100x340 with 2 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABEEAAAFJCAYAAAB0CjMeAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYKZJREFUeJzt3XtclGX+//H3gHIQBUSRQyGeT6VmHpA0xSQPlVnaluWuWq6u5iGjg2tbHqpdWl1La01/1aa1aWmZmlbmIQ8dEE+RZWZKppYgrgqIJSJz/f7w6+QI6jDOMAPzej4e90Pu+77mns913TfDx8/cB4sxxggAAAAAAKCS8/N0AAAAAAAAAOWBIggAAAAAAPAJFEEAAAAAAIBPoAgCAAAAAAB8AkUQAAAAAADgEyiCAAAAAAAAn0ARBAAAAAAA+ASKIAAAAAAAwCdQBAEAAAAAAD6BIgjgpKSkJI0bN87TYTitXr16mjFjhqfDgJutX79eFotFubm5ng4FAOAkcg44y5uPnSFDhuiOO+7wdBjwQRRBUCHNmTNHNWrU0JkzZ2zLCgoKVLVqVSUlJdm1PfefwMzMzHKOEt5i3rx5Cg8P93QYFYanEiaLxaKlS5eW+/sCwKWQc6AsyDnc56effpLFYlFGRka5vi/7tPKhCIIKqVu3biooKNDWrVttyz777DNFR0crPT1dp06dsi1ft26d6tatq4YNG5b5fYwxdkmPtysqKvJ0CChFcXGxrFarp8MAADiBnKN05BwAKiqKIKiQmjZtqpiYGK1fv962bP369erbt6/q16+vTZs22S3v1q2bJKmwsFBjx45VnTp1FBQUpM6dO2vLli12bS0Wiz7++GO1bdtWgYGB+vzzz3Xy5EkNGjRI1atXV0xMjKZPn14ippdfflmNGzdWUFCQoqKidNddd100/nMV5aVLl9pe07NnTx08eNCu3bJly3T99dcrKChIDRo00JQpU+wSJIvFotmzZ+v2229XSEiI/v73v5f6fjk5OerTp4+Cg4NVv359zZ8/v0SbAwcOqG/fvqpevbpCQ0N199136/Dhw3Ztli9frvbt2ysoKEi1a9fWnXfeaRfLhd/ih4eHa968eZJ+r94vWrRIN954o4KDg9W+fXv98MMP2rJli9q1a6fq1aurd+/eOnLkiN12XnvtNTVv3lxBQUFq1qyZXn75Zdu6c9t9//331a1bN1WrVk2tW7dWWlqapLP79P7771deXp4sFossFosmT55c+o5xkXP794MPPlCLFi0UGBioAwcOaMuWLbr55ptVu3ZthYWFqWvXrtq+fbvtdY8++qhuu+022/yMGTNksVi0cuVK27JGjRrptddeu+h7f/TRR2rSpImCg4PVrVs3/fTTT3brjx49qnvvvVdXXXWVqlWrppYtW+rtt9+2rR8yZIg2bNigmTNn2sbrp59+UnFxsYYOHar69esrODhYTZs21cyZM+22vX79enXo0EEhISEKDw9Xp06dtH//ftv6Sx3P9erVkyTdeeedslgstnkA8DRyjrPIObwz55CkL774QklJSapWrZpq1qypnj176vjx46W2LSws1KOPPqqrrrpKISEhSkhIsDu2L5cnSGfPGB07dqwef/xxRUREKDo6+rL9LC4uVkpKisLDw1WrVi09/vjjMsbYtVm5cqU6d+5sa3PbbbfZnVVVv359SVKbNm1ksVhsZ2JdLr8yxmjy5MmqW7euAgMDFRsbq7Fjxzo0Jp7ap3AzA1RQ9913n+nRo4dtvn379ubdd981I0aMMBMnTjTGGPPrr7+awMBAM2/ePGOMMWPHjjWxsbHmo48+Mjt37jSDBw82NWvWNEePHjXGGLNu3TojybRq1cqsWrXK7N271xw9etSMHDnS1K1b16xZs8bs2LHD3HbbbaZGjRrmoYceMsYYs2XLFuPv728WLFhgfvrpJ7N9+3Yzc+bMi8Y+d+5cU7VqVdOuXTvz5Zdfmq1bt5oOHTqYG264wdZm48aNJjQ01MybN89kZmaaVatWmXr16pnJkyfb2kgyderUMa+//rrJzMw0+/fvL/X9evfubVq3bm3S0tLM1q1bzQ033GCCg4PNCy+8YIwxpri42Fx33XWmc+fOZuvWrWbTpk2mbdu2pmvXrrZtrFixwvj7+5uJEyea7777zmRkZJh//OMfdrEsWbLE7n3DwsLM3LlzjTHG7Nu3z0gyzZo1MytXrjTfffed6dixo2nbtq1JSkoyn3/+udm+fbtp1KiRGTFihG0bb731lomJiTGLFy82P/74o1m8eLGJiIiw7dPzt7tixQqze/duc9ddd5n4+HhTVFRkCgsLzYwZM0xoaKjJysoyWVlZ5sSJExfdN65wbv/ecMMN5osvvjDff/+9OXnypFm7dq3573//a3bt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JN10003697//rcTERBUXF2v8+PElviVwxpQpUzR27FiFhYWpV69eKiws1NatW3X8+HGlpKQ4tI169eqpoKBAa9euVevWrVWtWjVVq1btimMrq8aNG+u///2v2rVrp/z8fD322GMlvsHp0qWLTpw4oRUrVui5556TdLYIctdddykmJkZNmjS56PZHjBih6dOn67HHHtOf//xnbdu2zXan/PNjeO+99/Tll1+qZs2aev7553X48GG75KZevXpKT0/XTz/9pOrVqysiIkKNGzfWm2++qU8++UT169fXf//7X23ZssV2p/Z9+/bplVde0e23367Y2Fjt3r1be/bs0aBBgyQ5djzXq1dPa9euVadOnRQYGKiaNWte8ZgDgKuQc1weOUf55xwTJkxQy5Yt9eCDD2rEiBEKCAjQunXr9Ic//EG1a9e2a9ukSRMNHDhQgwYN0vTp09WmTRsdOXJEa9euVatWrXTrrbc6lCc446GHHtJzzz2nxo0bq1mzZnr++eftimM1a9ZUrVq19MorrygmJkYHDhzQX//6V7tt1KlTR8HBwVq5cqWuvvpqBQUFKSws7LL51bx581RcXKyEhARVq1ZNb731loKDgxUfH69atWpddky8JY+EC3n6piTAlTj/Lt3n++mnn4wku5tdGWPMb7/9ZsaMGWNq165tAgMDTadOnexu3nXuJmUX3kTyxIkT5o9//KOpVq2aiYqKMlOnTrW70dRnn31munbtamrWrGmCg4NNq1atbE/NKM25GywtXrzYNGjQwAQGBprk5OQSd1pfuXKl7a7qoaGhpkOHDnZ3s5aDN5LMysoyt956qwkMDDR169Y1b775pomPj7fdpMyYszeGuv32201ISIipUaOG+cMf/mCys7PttrN48WJz3XXXmYCAAFO7dm3Tr18/27pffvnF9OjRw4SEhJjGjRubjz76qNSblJ1/M6vSxru0m0/Nnz/f9r41a9Y0Xbp0Me+///5Ft3v8+HEjyaxbt862bMSIEaZWrVpGkpk0adJlx+xKXOwGWtu3bzft2rUzQUFBpnHjxubdd98tsR+MMaZ169YmOjraNn/06FFjsVjMgAEDLvvey5cvN40aNTKBgYHmxhtvNK+//rrdGB89etT07dvXVK9e3dSpU8c8+eSTZtCgQXY3Jtu9e7fp2LGjCQ4ONpLMvn37zKlTp8yQIUNMWFiY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Du7sk7OudCzc0SdP/J5WxM8Id2EszvK1cXBFP8szzwAAAL6pTEWQ8PBwWSwWWSwWNWnSpMR6i8VS6mUmzqhfv76io6O1du1aW9EjPz9f6enpGjny7GO0EhMTlZubq23btqlt27aSpE8//VRWq1UJCQkuiQMAAJSP8swzAACAbypTEWTdunUyxuimm27S4sWLFRHx+0X6AQEBio+PV2xsrMPbKygo0N69e23z+/btU0ZGhiIiIlS3bl2NGzdOzz77rBo3bqz69evrqaeeUmxsrO644w5JUvPmzdWrVy8NGzZMc+bMUVFRkUaPHq0BAwaUKQ4AAOB5rs4zAAAALlSmIkjXrl0lnS1WxMXFXfGpr1u3blW3bt1s8+fu0zF48GDNmzdPjz/+uE6ePKnhw4crNzdXnTt31sqVK+1Oj50/f75Gjx6t7t27y8/PT/3799eLL754RXEBAIDy5+o8AwAA4EJO3Rg1Pj5eubm52rx5s3Jycko8Fm/QoEEObScpKUnGXPxKf4vFoqefflpPP/30RdtERERowYIFjgUOAAC8nqvyDAC+4+6FI694G4vume2CSAB4O6eKIMuXL9fAgQNVUFCg0NBQWSwW2zqLxUJyAgAAnEaeAQAA3MWp80wfeeQRPfDAAyooKFBubq6OHz9um44dK6dncwIAgEqJPAMAALiLU2eC/PLLLxo7dqyqVavm6ngA4Ir1eWSZw22XT+/rxkgAOIM8AwAAuItTRZCePXtq69atatCggavjAQAAPo48w7u44l4LAAB4C6eKILfeeqsee+wxfffdd2rZsqWqVq1qt/722293SXAAAMD3kGcAAAB3caoIMmzYMEkq9aktFotFxcXFVxYVAADwWeQZAADAXZwqglz4qDoAAABXIc8AAADu4tTTYc536tQpV8QBAABQAnkGAABwJaeKIMXFxXrmmWd01VVXqXr16vrxxx8lSU899ZT+85//uDRAAADgW8gzAACAuzh1Oczf//53vfHGG5o6dartul1JuvbaazVjxgwNHTrUZQECgDe41GN3LZLiIqSDxyQjzz9219FHBHs6TuBiyDMAAIC7OHUmyJtvvqlXXnlFAwcOlL+/v21569at9f3337ssOAAA4HvIMwAAgLs4VQT55Zdf1KhRoxLLrVarioqKrjgoAADgu8gzAACAuzhVBGnRooU+++yzEsvfe+89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nq45c+Zo/Pjxdq958cUX9cEHH2jRokXavXu35s+fX2qyBABARUAuQi4CVBgGQIXWtWtX07lzZ7tl7du3N+PHjzfGGLNv3z4jyXz11Ve29cePHzeSzLp164wxxqxbt85IMmvWrLG1SU1NNZJMZmambdlf/vIX07NnT7v3bt68ubFarbZl48ePN82bNzfGGLN//37j7+9vfvnlF7v4unfvbiZMmGCMMWbu3LlGksnIyLhkP5944gnTtGlTu/eaNWuWqV69uikuLjbGGPPCCy+Y+Pj4S27nxRdfNNdcc40xxpilS5eahIQE07dvXzN79mxjjDHJycnmiSeeMMYYs2rVKuPv728OHDhge/3OnTuNJLN582ZjjDGTJk0yVatWNTk5ObY2n3zyialSpYpdvz/++GMjySxZssQYY8yYMWPMTTfdZNcfAAAqInIRchGgIuFMEKASaNWqld18TEyMcnJyrmg7UVFRqlatmho0aGC37MLtduzYURaLxTafmJioPXv2qLi4WN98842Ki4vVpEkTVa9e3TZt2LBBmZmZttcEBASU6MOFdu3apcTERLv36tSpkwoKCvTzzz873MeuXbvqu+++05EjR7RhwwYlJSUpKSlJ69evV1FRkb788kslJSXZ3jMuLk5xcXG217do0ULh4eHatWuXbVl8fLwiIyPtYo2Li1NsbKzduJxvyJAhysjIUNOmTTV27FitWrXK4T4AAOBtyEXIRYCKghujApVA1apV7eYtFousVqsk2W7qZc67NraoqOiy27FYLJfcriMKCgrk7++vbdu2yd/f325d9erVbT8HBwfbJRTu1LJlS0VERGjDhg3asGGD/v73vys6Olr//Oc/tWXLFhUVFZX5ZmYhISFljuP666/Xvn379PHHH2vNmjW6++67lZycbHeNMAAAFQW5iOPIRQDPoggCVHLnvhXIyspSmzZtJMmlz6xPT0+3m9+0aZMaN24sf39/tWnTRsXFxcrJydGNN954Re/TvHlzLV68WMYYW5LyxRdfqEaNGrr66qsd3o7FYtGNN96oZcuWaefOnercubOqVaumwsJC/b//9//Url07WyLRvHlzHTx4UAcPHrR9A/Pdd98pNzdXLVq0uGSsBw8eVFZWlu1GZ5s2bSrRLjQ0VPfcc4/uuece3XXXXerVq5eOHTumiIgIh/sDAIC3IxexRy4CeBaXwwCVXHBwsDp27KjnnntOu3bt0oYNG/Tkk0+6bPsHDhxQSkqKdu/erbffflsvvfSSHnroIUlSkyZNNHDgQA0aNEjvv/++9u3bp82bNys1NVUffvhhmd7nwQcf1MGDBzVmzBh9//33WrZsmSZNmqSUlJQyP8IuKSlJb7/9tq677jpVr15dfn5+6tKli+bPn6+uXbva2iUnJ6tly5YaOHCgtm/frs2bN2vQoEHq2rWr2rVrd9HtJycnq0mTJho8eLC+/vprffbZZ/rb3/5m1+b555/X22+/re+//14//PCD3n33XUVHRys8PLxMfQEAwNuRi5RELgJ4DkUQwAe8/vrrOnPmjNq2batx48bZ7mLuCoMGDdJvv/2mDh06aNSoUXrooYc0fPhw2/q5c+dq0KBBeuSRR9S0aVPdcccd2rJli+rWrVum97nqqqv00UcfafPmzWrdurVGjBihoUOHOpVEde3aVcXFxbbrbaWzyciFyywWi5YtW6aaNWuqS5cuSk5OVoMGDbRw4cJLbt/Pz09Lliyxjcuf//xn/f3vf7drU6NGDU2dOlXt2rVT+/bt9dNPP+mjjz4qcxIFAEBFQC5ij1wE8ByLOf/iPAAAAAAAgEqKMh8AAAAAAPAJFEEAAAAAAIBPoAgCAAAAAAB8AkUQAAAAAADgEyiCAAAAAAAAn0ARBAAAAAAA+ASKIAAAAAAAwCdQBAEAAAAAAD6BIggAAAAAAPAJFEEAAAAAAIBPoAgCAAAAAAB8wv8HffRdc4mbjx4AAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "fig, axes = plt.subplots(1, 2, figsize=(11, 3.4))\n",
        "axes[0].hist(raw_df[\"text\"].str.split().str.len(), bins=40, color=\"#4C72B0\")\n",
        "axes[0].set_title(\"Words per document — raw dataset\", fontsize=10)\n",
        "axes[1].hist(clean_df[\"clean_text\"].astype(str).str.split().str.len(), bins=25, color=\"#55A868\")\n",
        "axes[1].set_title(\"Words per document — clean dataset\", fontsize=10)\n",
        "for ax in axes:\n",
        "    ax.set_xlabel(\"number of words\"); ax.set_ylabel(\"documents\")\n",
        "plt.tight_layout(); plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "id": "4da0beff",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 366
        },
        "id": "4da0beff",
        "outputId": "192b0a15-4cf5-42dd-d404-499bdc857fba"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1300x360 with 3 Axes>"
            ],
            "image/png": "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yMzx7sZERERERERERERmjpOEREREREREREREZo7XJKyDRqPBb7/9BicnJyiKYujuEBFRPYQQKC8vh5+fHyws5P7di7WJiMg0sDYREZGxaWht4iRhHX777TcEBAQYuhtERNRA586dwwMPPGDobugUaxMRkWlhbSIiImNzp9rEScI6ODk5AQB+/vlnuLq6GrYzOqLRaHDhwgV4enpK+wun7Bllzwcwoyx0mbGsrAwBAQHquC0z1ibTx3ymT/aMsucD9JORtcl0yfYZkC0PIF8m5jFuMuVpaG3iJGEdag6Vd3Z2hrOzs4F7oxsajQZXr16Fs7Ozyf9jr4/sGWXPBzCjLPSR0RxOcWJtMn3MZ/pkzyh7PkC/GVmbTI9snwHZ8gDyZWIe4yZbHuDOtUmOlERERERERERERHTPOElIRERERERERERk5jhJSEREREREREREZOY4SUhERERERERERGTmOElIRERERERERERk5jhJSEREREREREREZOY4SUhERERERERERGTmOElIRERERERERERk5jhJSEREREREREREZOY4SUhERERERERERGTmmhi6A8Zs6Jtb0MTG3tDd0AkFQIA7cO5PQBi6Mzoie0bZ8wHMKIvbZdyYGWeILpk01ibTxXymT/aMsucDGpaRtenuyVKbZPsMyJYHkC8T8xg3Y8qjr9rEIwmJiIiIiIiIiIjMHCcJiYiIiIiIiIiIzBwnCYmIiIiIiIiIiMwcJwmJiIiIiIiIiIjMnMlMEsbExCA5OdnQ3SAiIqqFNYqIiIiIiEwd725MRER0n9asWQMrKytDd4OIiIiIiOiecZKQiIjoPrm7uxu6C0RERERERPfFKE83vnz5MhISEuDo6AhfX19kZmZqPb9ixQp07NgRTk5O8PHxwfPPP4/i4mIAgBACLVu2xPz587Vec/DgQSiKgpMnT9baX2VlJcrKyrQWAFC4cOHChYtOF41Gc9+LMbj5dOOgoCDMnj1brWPNmjXDhg0bcOHCBcTFxcHR0RFhYWH48ccfb9smaxMXLly4GGaRpTYBQHl5OeLj4+Hg4ABfX19kZWVp1aySkhIkJCTAzc0N9vb26NOnD06cOFFve6xNXLhw4WKYRV+1ySiPJJwyZQq2b9+O9evXw8vLC6+//jr279+P8PBwAEBVVRVmzZqFkJAQFBcXIyUlBYmJidi8eTMURcGo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1mNfX99aRxkSEZF5MepJwgMHDuD48eOIjIxEaWkpZs6cCQDqKVtERET6xtpEREREREQyMupJQgCYP38+CgoKYG1tjYiICOzYsQNNmzbVy75Xze4DV1dXvexL3zQaDYqLi+Hl5WXyt/KujzlkJCLDYG3SDY7bRESmSZbaJFsdki0PEemeUU8Stm/fHvv27TN0N4iIiFSsTUREREREJCP+nEBERERERERERGTmOElIRERERERERERk5jhJSEREREREREREZOY4SUhERERERERERGTmOElIRERERERERERk5jhJSEREREREREREZOY4SUhERERERERERGTmOElIRERERERERERk5jhJSEREREREREREZOY4SUhERERERERERGTmmhi6A8ZICAEAKCsrg4WFnPOoGo0G5eXlsLW1ZUYTJXs+gBllocuMZWVlAP5v3JYZa5PpYz7TJ3tG2fMB+snI2mS6ZPsMyJYHkC8T8xg3mfI0tDZxkrAOFy9eBAA0a9bMwD0hIqKGKC8vh4uLi6G7oVOsTUREpoW1iYiIjM2dahMnCevg7u4OACgqKpK2sJeVlSEgIADnzp2Ds7OzobujE7JnlD0fwIyy0GVGIQTKy8vh5+fXqO0aI9Ym08d8pk/2jLLnA/STkbXJdMn2GZAtDyBfJuYxbjLlaWht4iRhHWoOI3VxcTH5fwh34uzszIwmTvZ8ADPKQlcZZfhS0hCsTfJgPtMne0bZ8wG6z8jaZNpk+wzIlgeQLxPzGDdZ8jSkNpn2SdVERERERERERER03zhJSEREREREREREZOY4SVgHGxsbzJgxAzY2Nobuis4wo+mTPR/AjLIwh4z6YA7vo+wZmc/0yZ5R9nyAeWTUJ9neT+YxfrJlYh7jJluehlDEne5/TERERERERERERFLjkYRERERERERERERmjpOEREREREREREREZo6ThERERERERERERGaOk4RERERERERERERmjpOEREREREREREREZo6ThHX4+9//jqCgINja2qJz587Ys2ePobvUIHPmzEGnTp3g5OQELy8vDBgwAAUFBVrbXL16FRMmTICHhwccHR3xzDPP4Pfff9fapqioCH379oW9vT28vLwwZcoUXL9+XZ9RGmTu3LlQFAXJycnqOhny/frrrxg2bBg8PDxgZ2eHtm3b4scff1SfF0IgLS0Nvr6+sLOz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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "def top_words(series, k=15):\n",
        "    counter = Counter()\n",
        "    for doc in series.astype(str):\n",
        "        counter.update(w for w in TOKENIZER(doc.lower()) if w.isalpha() and w not in STOPWORDS)\n",
        "    return counter.most_common(k)\n",
        "\n",
        "fig, axes = plt.subplots(1, 3, figsize=(13, 3.6))\n",
        "for ax, label in zip(axes, [\"positive\", \"negative\", \"neutral\"]):\n",
        "    subset = clean_df.loc[clean_df[\"sentiment\"] == label, \"clean_text\"]\n",
        "    if subset.empty:\n",
        "        ax.axis(\"off\"); continue\n",
        "    words, counts = zip(*top_words(subset, 12))\n",
        "    ax.barh(list(words)[::-1], list(counts)[::-1], color=\"#4C72B0\")\n",
        "    ax.set_title(f\"top words — {label}\", fontsize=10)\n",
        "plt.tight_layout(); plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "92b17000",
      "metadata": {
        "id": "92b17000"
      },
      "source": [
        "**What the EDA tells us**\n",
        "\n",
        "* The raw dataset is imbalanced roughly 3.3 : 1 in favour of `positive`; a model that always\n",
        "  answers *positive* would already reach ~77 % accuracy, so accuracy alone will be misleading.\n",
        "* The clean dataset is more balanced between `positive` and `negative`, but `neutral` is a\n",
        "  clear minority and — as the lecture results showed — it is the class every model struggles\n",
        "  with, because neutral text shares its vocabulary with both other classes.\n",
        "* Documents are short (median ≈ 7–12 words). Short texts favour sparse count features and put\n",
        "  an upper bound on how much a sequence model can learn."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "5d53e592",
      "metadata": {
        "id": "5d53e592"
      },
      "source": [
        "---\n",
        "# Part A — Raw text · binary classification · imbalanced data\n",
        "\n",
        "## 3. Text preprocessing\n",
        "\n",
        "The cleaning chain applied to every document:\n",
        "\n",
        "1. lower-casing;\n",
        "2. removal of URLs and HTML tags;\n",
        "3. removal of user mentions (`@user`) and the `#` of hashtags — the word itself is kept;\n",
        "4. removal of everything that is not a letter (digits, punctuation, emoticons);\n",
        "5. tokenisation;\n",
        "6. removal of stop-words and of tokens shorter than three characters;\n",
        "7. normalisation — **lemmatisation** (dictionary form) or **stemming** (suffix chopping).\n",
        "\n",
        "Both normalisation strategies are implemented so that their effect can be measured instead of\n",
        "assumed. Negations (`not`, `no`, `never`) are deliberately *kept*, even though they belong to\n",
        "the standard stop-word list — dropping them turns \"not good\" into \"good\"."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "id": "76636abe",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 174
        },
        "id": "76636abe",
        "outputId": "ca6aaacd-86ce-49a3-a3fa-4ff3c5214e2d"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                                                original  \\\n",
              "0  Java Concurrency in Practice is probably the best Java book I`ve e...   \n",
              "1                       haha aww hun i bet you are more creative than me   \n",
              "2       _pickle lol, thank you very much Hope you`re having a great day!   \n",
              "3      Out for an evening on the town with jeremy. Sad Carrie can`t come   \n",
              "\n",
              "                                                              lemmatised  \\\n",
              "0  java concurrency practice probably best java book ever buy recipe ...   \n",
              "1                                              haha aww hun bet creative   \n",
              "2                                   pickle lol thank much hope great day   \n",
              "3                                       even town jeremy sad carrie come   \n",
              "\n",
              "                                                                 stemmed  \n",
              "0  java concurr practic probabl best java book ever bought recip inte...  \n",
              "1                                               haha aww hun bet creativ  \n",
              "2                                    pickl lol thank much hope great day  \n",
              "3                                        even town jeremi sad carri come  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-976bed45-25c9-45c1-9d18-f6f985f1bbad\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>original</th>\n",
              "      <th>lemmatised</th>\n",
              "      <th>stemmed</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Java Concurrency in Practice is probably the best Java book I`ve e...</td>\n",
              "      <td>java concurrency practice probably best java book ever buy recipe ...</td>\n",
              "      <td>java concurr practic probabl best java book ever bought recip inte...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>haha aww hun i bet you are more creative than me</td>\n",
              "      <td>haha aww hun bet creative</td>\n",
              "      <td>haha aww hun bet creativ</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>_pickle lol, thank you very much Hope you`re having a great day!</td>\n",
              "      <td>pickle lol thank much hope great day</td>\n",
              "      <td>pickl lol thank much hope great day</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Out for an evening on the town with jeremy. Sad Carrie can`t come</td>\n",
              "      <td>even town jeremy sad carrie come</td>\n",
              "      <td>even town jeremi sad carri come</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-976bed45-25c9-45c1-9d18-f6f985f1bbad')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-976bed45-25c9-45c1-9d18-f6f985f1bbad button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-976bed45-25c9-45c1-9d18-f6f985f1bbad');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"})\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"original\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"  haha aww hun i bet you are more creative than me\",\n          \"Out for an evening on the town with jeremy. Sad Carrie can`t come\",\n          \"Java Concurrency in Practice is probably the best Java book I`ve ever bought. There`s a recipe in there for interrupting blocking IO ops\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"lemmatised\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"haha aww hun bet creative\",\n          \"even town jeremy sad carrie come\",\n          \"java concurrency practice probably best java book ever buy recipe interrupt block ops\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"stemmed\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"haha aww hun bet creativ\",\n          \"even town jeremi sad carri come\",\n          \"java concurr practic probabl best java book ever bought recip interrupt block op\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 12
        }
      ],
      "source": [
        "NEGATIONS = {\"not\", \"no\", \"nor\", \"never\", \"cannot\", \"cant\", \"dont\", \"doesnt\", \"didnt\",\n",
        "             \"isnt\", \"wasnt\", \"arent\", \"werent\", \"wont\", \"wouldnt\", \"couldnt\", \"shouldnt\"}\n",
        "ACTIVE_STOPWORDS = STOPWORDS - NEGATIONS\n",
        "\n",
        "URL_RE     = re.compile(r\"http\\S+|www\\.\\S+\")\n",
        "HTML_RE    = re.compile(r\"<.*?>\")\n",
        "MENTION_RE = re.compile(r\"@\\w+\")\n",
        "NONALPHA_RE = re.compile(r\"[^a-z\\s]\")\n",
        "\n",
        "\n",
        "def preprocess(text, normalise=\"lemma\", min_len=3):\n",
        "    \"\"\"Full cleaning chain: raw string -> normalised, space-joined tokens.\"\"\"\n",
        "    text = str(text).lower()\n",
        "    text = URL_RE.sub(\" \", text)\n",
        "    text = HTML_RE.sub(\" \", text)\n",
        "    text = MENTION_RE.sub(\" \", text)\n",
        "    text = text.replace(\"#\", \" \")\n",
        "    text = NONALPHA_RE.sub(\" \", text)\n",
        "\n",
        "    tokens = [t for t in TOKENIZER(text) if t not in ACTIVE_STOPWORDS and len(t) >= min_len]\n",
        "\n",
        "    if normalise == \"stem\":\n",
        "        tokens = [STEMMER.stem(t) for t in tokens]\n",
        "    elif normalise == \"lemma\" and LEMMATIZER is not None:\n",
        "        tokens = [LEMMATIZER.lemmatize(t, pos=\"v\") for t in tokens]\n",
        "    return \" \".join(tokens)\n",
        "\n",
        "\n",
        "# side-by-side look at what the chain actually does\n",
        "demo = raw_df[\"text\"].head(4).tolist()\n",
        "pd.set_option(\"display.max_colwidth\", 70)\n",
        "pd.DataFrame({\n",
        "    \"original\":   demo,\n",
        "    \"lemmatised\": [preprocess(t, \"lemma\") for t in demo],\n",
        "    \"stemmed\":    [preprocess(t, \"stem\")  for t in demo],\n",
        "})"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "id": "9c5972c7",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 241
        },
        "id": "9c5972c7",
        "outputId": "0cfb4742-3257-4553-e001-7690fc5f24e7"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "documents emptied by cleaning: 3\n",
            "final size of Part A dataset : (2597, 4)\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                                                    text  \\\n",
              "0  Java Concurrency in Practice is probably the best Java book I`ve e...   \n",
              "1                       haha aww hun i bet you are more creative than me   \n",
              "2       _pickle lol, thank you very much Hope you`re having a great day!   \n",
              "3      Out for an evening on the town with jeremy. Sad Carrie can`t come   \n",
              "4   - just took over the #1 Most Endorsed spot on twindexx.com - than...   \n",
              "\n",
              "                                                              text_lemma  \\\n",
              "0  java concurrency practice probably best java book ever buy recipe ...   \n",
              "1                                              haha aww hun bet creative   \n",
              "2                                   pickle lol thank much hope great day   \n",
              "3                                       even town jeremy sad carrie come   \n",
              "4                       take endorse spot twindexx com thank endorsement   \n",
              "\n",
              "  sentiment  \n",
              "0  positive  \n",
              "1  positive  \n",
              "2  positive  \n",
              "3  negative  \n",
              "4  positive  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c328bce1-a170-41ad-ae61-9faa8624852b\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>text</th>\n",
              "      <th>text_lemma</th>\n",
              "      <th>sentiment</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Java Concurrency in Practice is probably the best Java book I`ve e...</td>\n",
              "      <td>java concurrency practice probably best java book ever buy recipe ...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>haha aww hun i bet you are more creative than me</td>\n",
              "      <td>haha aww hun bet creative</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>_pickle lol, thank you very much Hope you`re having a great day!</td>\n",
              "      <td>pickle lol thank much hope great day</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Out for an evening on the town with jeremy. Sad Carrie can`t come</td>\n",
              "      <td>even town jeremy sad carrie come</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>- just took over the #1 Most Endorsed spot on twindexx.com - than...</td>\n",
              "      <td>take endorse spot twindexx com thank endorsement</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c328bce1-a170-41ad-ae61-9faa8624852b')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-c328bce1-a170-41ad-ae61-9faa8624852b button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-c328bce1-a170-41ad-ae61-9faa8624852b');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"raw_df[[\\\"text\\\", \\\"text_lemma\\\", \\\"sentiment\\\"]]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"  haha aww hun i bet you are more creative than me\",\n          \" - just took over the #1 Most Endorsed spot on twindexx.com - thanks to the endorsement by \",\n          \"_pickle lol, thank you very much Hope you`re having a great day!\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"text_lemma\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"haha aww hun bet creative\",\n          \"take endorse spot twindexx com thank endorsement\",\n          \"pickle lol thank much hope great day\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sentiment\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"negative\",\n          \"positive\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 13
        }
      ],
      "source": [
        "raw_df[\"text_lemma\"] = raw_df[\"text\"].apply(lambda t: preprocess(t, \"lemma\"))\n",
        "raw_df[\"text_stem\"]  = raw_df[\"text\"].apply(lambda t: preprocess(t, \"stem\"))\n",
        "\n",
        "# documents that became empty after cleaning carry no signal at all\n",
        "empty = (raw_df[\"text_lemma\"].str.strip() == \"\")\n",
        "print(\"documents emptied by cleaning:\", int(empty.sum()))\n",
        "raw_df = raw_df[~empty].reset_index(drop=True)\n",
        "print(\"final size of Part A dataset :\", raw_df.shape)\n",
        "raw_df[[\"text\", \"text_lemma\", \"sentiment\"]].head()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f1657120",
      "metadata": {
        "id": "f1657120"
      },
      "source": [
        "## 4. Splitting the dataset\n",
        "\n",
        "A single **stratified** 70 / 30 split is created and reused by every Part A experiment, so\n",
        "that all the numbers in the results table are comparable. Stratification keeps the\n",
        "77 / 23 class ratio identical in train and test — without it the small `negative` class could\n",
        "be badly under-represented in the test set purely by chance.\n",
        "\n",
        "> **Rule respected throughout the notebook:** vectorisers, embeddings and resamplers are\n",
        "> fitted on the **training set only**. Fitting them on the whole dataset would leak test-set\n",
        "> vocabulary into training and inflate the scores."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "id": "00fa4935",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "00fa4935",
        "outputId": "9bdaa245-b088-41e8-aaf8-5e030f2773b8"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "train: 1817 {'positive': 1398, 'negative': 419}\n",
            "test : 780 {'positive': 600, 'negative': 180}\n"
          ]
        }
      ],
      "source": [
        "X_raw_train, X_raw_test, y_a_train, y_a_test = train_test_split(\n",
        "    raw_df[[\"text_lemma\", \"text_stem\"]], raw_df[\"sentiment\"],\n",
        "    test_size=TEST_SIZE, random_state=SEED, stratify=raw_df[\"sentiment\"],\n",
        ")\n",
        "print(\"train:\", X_raw_train.shape[0], dict(Counter(y_a_train)))\n",
        "print(\"test :\", X_raw_test.shape[0],  dict(Counter(y_a_test)))"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "d1afbafa",
      "metadata": {
        "id": "d1afbafa"
      },
      "source": [
        "## 5. Feature representation — count-based methods\n",
        "\n",
        "Two classical representations are compared:\n",
        "\n",
        "* **Bag-of-Words (`CountVectorizer`)** — raw term counts. Simple, but frequent words dominate.\n",
        "* **TF-IDF (`TfidfVectorizer`)** — counts weighted down by how common the term is across the\n",
        "  corpus, so words that discriminate between classes get a larger weight.\n",
        "\n",
        "Both are built with uni-grams *and* bi-grams (`ngram_range=(1, 2)`) so that expressions such as\n",
        "\"not good\" survive as a single feature, and with `min_df=2` to drop terms that appear in a\n",
        "single document (mostly typos, which only add noise and dimensions)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "id": "45a40909",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "45a40909",
        "outputId": "98c97fdf-c209-49a7-bbb2-882e0b4c38af"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "BoW   vocabulary:  1,761  matrix (1817, 1761)\n",
            "TFIDF vocabulary:  1,761  matrix (1817, 1761)\n",
            "TFIDF (stemmed) :  1,786  matrix (1817, 1786)\n"
          ]
        }
      ],
      "source": [
        "def build_features(vectorizer, train_texts, test_texts):\n",
        "    \"\"\"Fit the vectoriser on train only, transform both sides.\"\"\"\n",
        "    Xtr = vectorizer.fit_transform(train_texts)\n",
        "    Xte = vectorizer.transform(test_texts)\n",
        "    return Xtr, Xte, vectorizer\n",
        "\n",
        "\n",
        "bow_vec   = CountVectorizer(ngram_range=(1, 2), min_df=2)\n",
        "tfidf_vec = TfidfVectorizer(ngram_range=(1, 2), min_df=2, sublinear_tf=True)\n",
        "\n",
        "X_bow_tr,   X_bow_te,   bow_vec   = build_features(bow_vec,   X_raw_train[\"text_lemma\"], X_raw_test[\"text_lemma\"])\n",
        "X_tfidf_tr, X_tfidf_te, tfidf_vec = build_features(tfidf_vec, X_raw_train[\"text_lemma\"], X_raw_test[\"text_lemma\"])\n",
        "\n",
        "# the same TF-IDF settings on the *stemmed* text, to measure lemmatisation vs stemming\n",
        "stem_vec = TfidfVectorizer(ngram_range=(1, 2), min_df=2, sublinear_tf=True)\n",
        "X_stem_tr, X_stem_te, stem_vec = build_features(stem_vec, X_raw_train[\"text_stem\"], X_raw_test[\"text_stem\"])\n",
        "\n",
        "print(f\"BoW   vocabulary: {len(bow_vec.vocabulary_):>6,}  matrix {X_bow_tr.shape}\")\n",
        "print(f\"TFIDF vocabulary: {len(tfidf_vec.vocabulary_):>6,}  matrix {X_tfidf_tr.shape}\")\n",
        "print(f\"TFIDF (stemmed) : {len(stem_vec.vocabulary_):>6,}  matrix {X_stem_tr.shape}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f2ede1f8",
      "metadata": {
        "id": "f2ede1f8"
      },
      "source": [
        "### 5.1 Which terms does TF-IDF consider most informative?"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "id": "3a112461",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 407
        },
        "id": "3a112461",
        "outputId": "bf1af637-f20d-4867-fb50-6b46fd820a6b"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 700x400 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAGGCAYAAACHemKmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYDNJREFUeJzt3XtYVNX6B/DvBmG4DSDKCCJIpiKWZioYmkppYaZSlppRiJKlpkaoKUdT0AxL8VKdzHN+hWiYXay0tE5ZYojmBa8p4iVJT2GThgx4GYG9fn9wZusIIig4e2a+n+fpib1n7bXX2u/gvLP22gtJCCFARERERGRlHCzdACIiIiKim8FEloiIiIisEhNZIiIiIrJKTGSJiIiIyCoxkSUiIiIiq8REloiIiIisEhNZIiIiIrJKTGSJiIiIyCoxkSUiIiIiq8RElshGLV++HN7e3nU6Ji4uDo899liDtIeorpKTk9GpU6c6HRMZGYmEhIR6a8P777+Phx9+uN7qu1Zd21tQUABJkrB3794Ga1NDOXPmDHQ6Hf773/9auilkQ5jIElmZ6yWbWVlZkCQJ586dAwAMGzYMR44cub2Nu4Fr20iVTMlJTf8tX75cuX7X/jdjxozr1n3tF5rly5crxzk6OqJx48bo1q0bZs+ejeLiYrNj4+Liqj3fsWPHGupSmJk8eTJ++OGHeq9XkiR8+eWXNyx36dIlvPrqq5g1a5ayr76/7H3++eeYM2dOrcsHBgaisLAQd999d721oSFUd52aNm2K2NhYs+tJdKsaWboBRNQwXF1d4erqaulmWJWysjI4OTnd9vOakhOTBQsW4Ntvv8XGjRuVfV5eXti+fTsAID8/H56ensprHh4edTqfp6cn8vPzIYTAuXPnsHXrVqSmpiI9PR05OTlo3ry5UrZfv35IT083O97X17dO57tZHh4ede5bffrss8/g6emJHj161PnY2r6XfHx86lSvo6Mj/Pz86twetRg5ciS6dOmC+fPn17nvRNXhiCyRjapuasFrr70GnU4HrVaL5557DtOmTav21u2CBQvg7++PJk2a4MUXX0RZWZnymtFoxOTJkxEQEAB3d3d069YNWVlZyuu//fYbBg4ciMaNG8Pd3R133XUXNmzYgIKCAjzwwAMAgMaNG0OSJMTFxVXb9rNnz2L48OEICAiAm5sbOnTogI8++kh5/V//+heaN28OWZbNjouOjsaoUaOU7bVr16Jz585wcXFBq1atkJKSgvLycuV1SZKwdOlSDBo0CO7u7pg7dy4qKioQHx+PO+64A66urggJCcGSJUvMzlNeXo6JEyfC29sbTZo0wdSpUzFixAizEShZlpGamqrUc8899+Czzz6rtr+m5MT0n4eHBxo1amS27+ovJTqdrkr5upAkCX5+fvD390doaCji4+OxdetWlJaW4pVXXjErq9FozM7l5+cHR0fHKnUKIeDr62vWx06dOsHf31/Z3rJlCzQaDS5cuAAAOHfuHJ577jn4+vrC09MTDz74IPbt26eUv3ZqQW2uO1B57V955RX4+PjAz88PycnJymvBwcEAgMcffxySJCnb1Vm9ejUGDhxo1p6MjAysXbtWGZ3OyspSRtQ//vhj9O7dGy4uLsjMzLzh+xioOrUgODgYr7/+OkaNGgWtVougoCD861//Ul6/dmqBaZT+hx9+QNeuXeHm5obu3bsjPz/f7Dy1/d03KSoqQkxMDHx9feHq6oo2bdqYfaE5deoUhg4dCm9vb/j4+CA6OhoFBQU1XicAuOuuu9C8eXN88cUX1z03UV0wkSWyE5mZmZg7dy7eeOMN5ObmIigoCEuXLq1SbtOmTTh+/Dg2bdqEjIwMLF++HMuXL1deHz9+PLZt24bVq1dj//79GDJkCPr164ejR48CAF588UUYjUb89NNPOHDgAN544w14eHggMDAQa9asAVA5olhYWFglQTS5dOkSunTpgvXr1+OXX37B888/j2effRY7duwAAAwZMgRnz57Fpk2blGP+/vtvfPvtt4iJiQEAZGdnIzY2Fi+99BIOHTqEZcuWYfny5Zg7d67ZuZKTk/H444/jwIEDGDVqFGRZRosWLfDpp5/i0KFDmDlzJv7xj3/gk08+UY554403kJmZqYxgGgyGKreqU1NTsWLFCrz33ns4ePAgXn75ZTzzzDPYvHlzLSN2e+l0OsTExGDdunWoqKio8/GSJKFXr15KwlJUVIS8vDxcvHgRhw8fBgBs3rwZYWFhcHNzA1AZR71ej2+++Qa5ubno3Lkz+vTpg7///rvac9TmugNARkYG3N3dsX37drz55puYPXs2vv/+ewDAzp07AQDp6ekoLCxUtquzZcsWdO3aVdmePHkyhg4din79+qGwsBCFhYXo3r278vq0adPw0ksvIS8vD1FRUTd8H19PWloaunbtij179mDcuHEYO3ZslcT0WtOnT0daWhp27dqFRo0amX2hq+3v/tVeffVVHDp0CN988w3y8vKwdOlSNG3aFEDlaHNUVBS0Wi2ys7ORk5MDDw8P9OvXD5cvX77hdQoPD0d2dnaN5yeqNUFEVmXEiBHC0dFRuLu7m/3n4uIiAIiioiIhhBDp6enCy8tLOa5bt27ixRdfNKurR48e4p577jGru2XLlqK8vFzZN2TIEDFs2DAhhBC//fabcHR0FL///rtZPX369BFJSUlCCCE6dOggkpOTq237pk2bzNpYF48++qiYNGmSsh0dHS1GjRqlbC9btkw0b95cVFRUKG16/fXXzepYuXKl8Pf3V7YBiISEhBue+8UXXxRPPPGEst2sWTMxf/58Zbu8vFwEBQWJ6OhoIYQQly5dEm5ubmLr1q1m9cTHx4vhw4ff8HyzZs0yi4uJ6fpdG/szZ85ct65r3wfXbl9t6dKlAoD4888/hRDVv9eefPLJ657rrbfeEnfddZcQQogvv/xSdOvWTURHR4ulS5cKIYTo27ev+Mc//iGEECI7O1t4enqKS5cumdVx5513imXLllV7HW503YUQonfv3uL+++83qzMsLExMnTpV2QYgvvjii+v2QwghioqKBADx008/me0fMWKE2fmEEOLEiRMCgFi8eHGNdQpR9X3cu3dv8dJLLynbLVu2FM8884yyLcuy0Ol0yjU0nWvPnj1CiCvviY0bNyrHrF+/XgAQFy9eFELU7nf/WgMHDhQjR46s9rWVK1eKkJAQIcuyss9oNApXV1fxn//8RwhR/XUyefnll0VkZOR1z01UF5wjS2SFHnjggSojKtu3b8czzzxz3WPy8/Mxbtw4s33h4eH48ccfzfbdddddZreO/f39ceDAAQDAgQMHUFFRgbZt25odYzQa0aRJEwDAxIkTMXbsWHz33Xfo27cvnnjiCXTs2LFO/auoqMDrr7+OTz75BL///jsuX74Mo9GojOQBQExMDEaPHo13330XGo0GmZmZeOqpp+DgUHmjad++fcjJyTEbga2oqMClS5dw4cIFpa6rR9xM/vnPf+KDDz7AyZMncfHiRVy+fFm5DVtcXIw///wT4eHhSnlHR0d06dJFmepw7NgxXLhwAQ899JBZvZcvX8a9995bp2tRnezsbGi1WmW7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V4s9e/aIwsJCpcyYMWNEUFCQ+PHHH8WuXbtERESEiIiIuH0dVzlLxOXYsWNi9uzZYteuXeLEiRNi7dq1olWrVqJXr163t/MqV9+xuXz5shg0aJBo0aKF2Lt3r9kyTkajUamHnzM1s0Rc+DlTiYlsPXv77bdFUFCQcHZ2FuHh4eLnn39WXuvdu7cYMWKEWflPPvlEtG3bVjg7O4u77rpLrF+/3ux1WZbFq6++Kpo1ayY0Go3o06ePyM/PNytz9uxZMXz4cOHh4SE8PT3FyJEjRUlJSYP10Rrd7rjk5uaKbt26CS8vL+Hi4iJCQ0PF66+/Li5dutSg/bRG9R2b9PR0AaDKf7NmzVLKXLx4UYwbN040btxYuLm5iccff9ws0aXbH5eTJ0+KXr16CR8fH6HRaETr1q3FlClTuI5sNeozNqbl0Kr7b9OmTUo5fs7c2O2OCz9nKklCCHH7xn+JiIiIiOoH58gSERERkVViIktEREREVomJLBERERFZJSayRERERGSVmMgSERERkVViIktEREREVomJLBERERFZJSayRERERGSVmMgSERERkVViIktEREREVomJLBERERFZJSayRERERGSV/h/rZOUc7I2b7QAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "tfidf_scores = np.asarray(X_tfidf_tr.mean(axis=0)).ravel()\n",
        "vocab = np.array(tfidf_vec.get_feature_names_out())\n",
        "top_idx = tfidf_scores.argsort()[-15:]\n",
        "plt.barh(vocab[top_idx], tfidf_scores[top_idx], color=\"#DD8452\")\n",
        "plt.title(\"Highest average TF-IDF weight (training set)\", fontsize=10)\n",
        "plt.tight_layout(); plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "5fb03b4f",
      "metadata": {
        "id": "5fb03b4f"
      },
      "source": [
        "## 6. Training and evaluating the models\n",
        "\n",
        "Four classifiers with genuinely different inductive biases are compared on both\n",
        "representations:\n",
        "\n",
        "| Model | Why it is in the comparison |\n",
        "|---|---|\n",
        "| Logistic Regression | strong, fast linear baseline for sparse text features |\n",
        "| Multinomial Naive Bayes | the classical text-classification model; assumes term independence |\n",
        "| Linear SVM | usually the best linear model on high-dimensional sparse data |\n",
        "| Random Forest | non-linear, captures term interactions, but suffers in very high dimensions |"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "id": "043030e8",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "043030e8",
        "outputId": "f7caa54d-814e-4722-8018-53b7639e40e3"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "=== LogisticRegression + BoW (lemma) ===\n",
            "Accuracy 0.8526 | weighted F1 0.8406 | macro F1 0.7609\n",
            "\n",
            "=== MultinomialNB + BoW (lemma) ===\n",
            "Accuracy 0.8603 | weighted F1 0.8524 | macro F1 0.7822\n",
            "\n",
            "=== LinearSVC + BoW (lemma) ===\n",
            "Accuracy 0.8526 | weighted F1 0.8512 | macro F1 0.7886\n",
            "\n",
            "=== RandomForest + BoW (lemma) ===\n",
            "Accuracy 0.8487 | weighted F1 0.8444 | macro F1 0.7752\n",
            "\n",
            "=== LogisticRegression + TF-IDF (lemma) ===\n",
            "Accuracy 0.8308 | weighted F1 0.7942 | macro F1 0.6705\n",
            "\n",
            "=== MultinomialNB + TF-IDF (lemma) ===\n",
            "Accuracy 0.8115 | weighted F1 0.7568 | macro F1 0.6004\n",
            "\n",
            "=== LinearSVC + TF-IDF (lemma) ===\n",
            "Accuracy 0.8551 | weighted F1 0.8482 | macro F1 0.7774\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.74      0.57      0.65       180\n",
            "    positive       0.88      0.94      0.91       600\n",
            "\n",
            "    accuracy                           0.86       780\n",
            "   macro avg       0.81      0.76      0.78       780\n",
            "weighted avg       0.85      0.86      0.85       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 420x360 with 2 Axes>"
            ],
            "image/png": "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7u6kpKRw9+5dAM6ePUvnzp1xdnbG2tqa5s2bAxAUFKRznAYNGui8dnFx4fLly5w4cYL333+fBw8e0LlzZ4YMGaKtU61aNZo0acKPP/4IwK1btzhy5IjONQXlJR61VKNGDe151ahRA0DnXPNi4ETVqlUJDAzULlu2bAGetSaeP9a6detyvG9FUdJcV5o0aZLO8QYOHJjh9k+fPsXc3DzTY1y4cIGDBw/qxFqtWjXgWYs31fO/R0ZGRpQsWZJatWpp19nb2wP//W6lt529vT3FihWjYsWKOuue3+bmzZv07duXihUrotFoKF++PJD2983CwiJN60nol3F+ByAMl4mJifb/qR9aqd0Q0dHRDB8+nDFjxqTZztnZmZiYGNzd3XF3d2fdunWULl2aoKAg3N3dSUhI0KlvaWmZZh9qtZo33niDN954g3HjxvHTTz8xYMAAPv74YypUqAA8GxQwevRovv32W3x8fHj99de1yQygSpUqHD16lMTERJ1zyY6dO3eSmJgIwL1792jRooXOsF4LC4sc7S89pqamVKpUKc36Bg0a6Bwr9YM4J65du6b9OaUqVapUusdLT6lSpbh06VKmdaKjo+ncuTPz589PU5b6xQRI87NPHSX3/GsgTRfXi3XS28/z23Tu3Jly5crx/fff4+joSEpKCjVr1kzz+/b48WNKly6d6bmJvCWJRuRKvXr1uHr1aoYfXJcuXeLRo0fMmzdPO8rqzJkzuT6ei4sL8KwfPtU777zD2LFjWb9+PWvWrGHkyJE63+L79evHkiVLWLZsGWPHjk2zz/Dw8Ayv05QrV077f2PjZ38m2f2QflkWFhYvdaw//viDS5cuMX78+Fzvo27duixfvjzdllGqevXqsWXLFsqXL6/9GeWXR48ecePGDb7//nuaNm0KwNGjR9Ote/nyZVq0aPEKoxPSdVaERERE6HSdBAYGEhwcnKt9TZkyhePHjzNq1CgCAwO5efMmv/32m3YwgLOzM6ampixdupQ7d+7w+++/M3fu3Gztu1evXixatIiTJ0/y999/c+jQIby8vKhSpYq2awaedWX16dOHadOmERISkmagQaNGjZg8eTIffvghkydPJiAggL///psDBw7Qu3dvVq9enatzNyTx8fGEhoZy7949zp07x+eff07Xrl3p1KlTpl1jWWnZsiXR0dFcuXIlwzpeXl48fvyY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lNWrVytmZmZKixYtlHPnzuVHuOIl3L59W6lRo4bi5+enKIqiPHz4UDl//rwyf/58ZdOmTYqiKEpQUJDy+uuvK++8805+hiqKABkMUEQoz12T+emnn2jWrBnOzs64ublhYWHBmjVrKF++PJ6ensCzaWg6dOiApaUltWvXzs/QRS4YGRlhampKREQE+/fvZ8OGDZw7d474+HhiY2N58uQJw4cP59ChQ9qhz0LoiwwXKgJSUlK0SSYwMJAvvviCIUOGEBYWpn0C5oMHD4iOjubff/8lLi6O7du307FjR9auXYtarSYlJSWfz0JkJL33pkyZMjg6OvLVV1/h7u6ORqNh3rx5HD9+nMqVK/P48WMAypYtq31ekBD6IqPOCrnnWzLz5s3jwoULBAYGcuvWLVq2bImPjw+vvfYap06dom3btjg6OhIXF4eVlRVnz57FxMREbso0YM+PLjt8+DDR0dGYmJjQpk0bkpOTOX36NGq1moYNG2q3eeutt+jSpQuTJ0/Or7BFESOJpoj48ssvmT17Nlu2bKFs2bLs2LGDLVu2UKxYMXx9fXF2dubMmTMcP34clUrFyJEjMTY2lgkUC4hJkyaxbt06rKysuH37Nh06dGD8+PG0atUKgKioKB4+fIiXlxchISGcOXNG3lfxykiiKQLi4uJ45513qFmzJp9//rl2/YYNG5g7dy5OTk78+OOPvPbaazqtF7mPomBYtWoVH330Edu2beP111/nn3/+YeTIkRQvXpypU6fStGlTli1bxoYNGzA1NWX37t1yn4x4peQaTRFgbm6OsbExN27c0Fnft29fmjVrxr59+xg8eDD379/XmfJfPoQKhosXL9K0aVMaNmyofRTzDz/8wJ07d1i7di0AQ4YMYcKECezduxcTExOSkpLk/RWvjCSaQia9C8OKotCwYUNu3bqFv78/SUlJ2rI6derQpUsXjIyMWLBgAYmJiXI9xoC9+P4qikJUVBQxMTHadYmJibi4uDBjxgx+/vlngoKCMDU1pXv37toL/9JtJl4lSTSFyIuPX964cSMbN24kLi6ODz/8EGtrayZNmsSePXsIDw8nJiaGPXv20KxZM2rXrs3OnTuJiorK57MQGXn+/b19+zb3799HURQGDRrEnj172LJlC2q1Wjs9kLGxMa+//jo2NjY6+5GWjHjV5BpNITRlyhTWr19P1apVuX79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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "=== RandomForest + TF-IDF (lemma) ===\n",
            "Accuracy 0.8564 | weighted F1 0.8435 | macro F1 0.7641\n",
            "\n",
            "=== LogisticRegression + TF-IDF (stem) ===\n",
            "Accuracy 0.8321 | weighted F1 0.7953 | macro F1 0.6718\n",
            "\n",
            "=== MultinomialNB + TF-IDF (stem) ===\n",
            "Accuracy 0.8154 | weighted F1 0.7637 | macro F1 0.6131\n",
            "\n",
            "=== LinearSVC + TF-IDF (stem) ===\n",
            "Accuracy 0.8615 | weighted F1 0.8547 | macro F1 0.7867\n",
            "\n",
            "=== RandomForest + TF-IDF (stem) ===\n",
            "Accuracy 0.8526 | weighted F1 0.8406 | macro F1 0.7609\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                             Experiment  Accuracy  Precision  Recall  \\\n",
              "0               LinearSVC + BoW (lemma)    0.8526     0.8502  0.8526   \n",
              "1             LinearSVC + TF-IDF (stem)    0.8615     0.8550  0.8615   \n",
              "2           MultinomialNB + BoW (lemma)    0.8603     0.8535  0.8603   \n",
              "3            LinearSVC + TF-IDF (lemma)    0.8551     0.8478  0.8551   \n",
              "4            RandomForest + BoW (lemma)    0.8487     0.8426  0.8487   \n",
              "5         RandomForest + TF-IDF (lemma)    0.8564     0.8510  0.8564   \n",
              "6      LogisticRegression + BoW (lemma)    0.8526     0.8455  0.8526   \n",
              "7          RandomForest + TF-IDF (stem)    0.8526     0.8455  0.8526   \n",
              "8    LogisticRegression + TF-IDF (stem)    0.8321     0.8516  0.8321   \n",
              "9   LogisticRegression + TF-IDF (lemma)    0.8308     0.8475  0.8308   \n",
              "10        MultinomialNB + TF-IDF (stem)    0.8154     0.8511  0.8154   \n",
              "11       MultinomialNB + TF-IDF (lemma)    0.8115     0.8486  0.8115   \n",
              "\n",
              "    F1 (weighted)  F1 (macro)  \n",
              "0          0.8512      0.7886  \n",
              "1          0.8547      0.7867  \n",
              "2          0.8524      0.7822  \n",
              "3          0.8482      0.7774  \n",
              "4          0.8444      0.7752  \n",
              "5          0.8435      0.7641  \n",
              "6          0.8406      0.7609  \n",
              "7          0.8406      0.7609  \n",
              "8          0.7953      0.6718  \n",
              "9          0.7942      0.6705  \n",
              "10         0.7637      0.6131  \n",
              "11         0.7568      0.6004  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-18c75881-4d3c-4b02-a8c8-ea5c0b2b9f8c\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Experiment</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 (weighted)</th>\n",
              "      <th>F1 (macro)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>LinearSVC + BoW (lemma)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8502</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8512</td>\n",
              "      <td>0.7886</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>LinearSVC + TF-IDF (stem)</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8550</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8547</td>\n",
              "      <td>0.7867</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>MultinomialNB + BoW (lemma)</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8535</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8524</td>\n",
              "      <td>0.7822</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>LinearSVC + TF-IDF (lemma)</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>RandomForest + BoW (lemma)</td>\n",
              "      <td>0.8487</td>\n",
              "      <td>0.8426</td>\n",
              "      <td>0.8487</td>\n",
              "      <td>0.8444</td>\n",
              "      <td>0.7752</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>RandomForest + TF-IDF (lemma)</td>\n",
              "      <td>0.8564</td>\n",
              "      <td>0.8510</td>\n",
              "      <td>0.8564</td>\n",
              "      <td>0.8435</td>\n",
              "      <td>0.7641</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>LogisticRegression + BoW (lemma)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8455</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8406</td>\n",
              "      <td>0.7609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>RandomForest + TF-IDF (stem)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8455</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8406</td>\n",
              "      <td>0.7609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>LogisticRegression + TF-IDF (stem)</td>\n",
              "      <td>0.8321</td>\n",
              "      <td>0.8516</td>\n",
              "      <td>0.8321</td>\n",
              "      <td>0.7953</td>\n",
              "      <td>0.6718</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>LogisticRegression + TF-IDF (lemma)</td>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.8475</td>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.7942</td>\n",
              "      <td>0.6705</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>MultinomialNB + TF-IDF (stem)</td>\n",
              "      <td>0.8154</td>\n",
              "      <td>0.8511</td>\n",
              "      <td>0.8154</td>\n",
              "      <td>0.7637</td>\n",
              "      <td>0.6131</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>MultinomialNB + TF-IDF (lemma)</td>\n",
              "      <td>0.8115</td>\n",
              "      <td>0.8486</td>\n",
              "      <td>0.8115</td>\n",
              "      <td>0.7568</td>\n",
              "      <td>0.6004</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-18c75881-4d3c-4b02-a8c8-ea5c0b2b9f8c')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-18c75881-4d3c-4b02-a8c8-ea5c0b2b9f8c button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-18c75881-4d3c-4b02-a8c8-ea5c0b2b9f8c');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"results_table(\\\"A\\\")\",\n  \"rows\": 12,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 12,\n        \"samples\": [\n          \"MultinomialNB + TF-IDF (stem)\",\n          \"LogisticRegression + TF-IDF (lemma)\",\n          \"LinearSVC + BoW (lemma)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.017275117856897452,\n        \"min\": 0.8115,\n        \"max\": 0.8615,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.8154,\n          0.8615,\n          0.8564\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0035912667639284184,\n        \"min\": 0.8426,\n        \"max\": 0.855,\n        \"num_unique_values\": 11,\n        \"samples\": [\n          0.851,\n          0.8502,\n          0.8511\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.017275117856897452,\n        \"min\": 0.8115,\n        \"max\": 0.8615,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.8154,\n          0.8615,\n          0.8564\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (weighted)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03603690028038179,\n        \"min\": 0.7568,\n        \"max\": 0.8547,\n        \"num_unique_values\": 11,\n        \"samples\": [\n          0.8435,\n          0.8512,\n          0.7637\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (macro)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.07014243733398144,\n        \"min\": 0.6004,\n        \"max\": 0.7886,\n        \"num_unique_values\": 11,\n        \"samples\": [\n          0.7641,\n          0.7886,\n          0.6131\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 17
        }
      ],
      "source": [
        "def make_models():\n",
        "    \"\"\"Fresh, unfitted model instances (a fitted model must never be reused across runs).\"\"\"\n",
        "    return {\n",
        "        \"LogisticRegression\": LogisticRegression(max_iter=2000, random_state=SEED),\n",
        "        \"MultinomialNB\":      MultinomialNB(),\n",
        "        \"LinearSVC\":          LinearSVC(random_state=SEED),\n",
        "        \"RandomForest\":       RandomForestClassifier(\n",
        "            n_estimators=100 if QUICK_RUN else 300, random_state=SEED, n_jobs=-1),\n",
        "    }\n",
        "\n",
        "\n",
        "def run_models(Xtr, ytr, Xte, yte, tag, part, class_names, plot_for=()):\n",
        "    \"\"\"Train every model on one representation and record the scores.\"\"\"\n",
        "    for name, model in make_models().items():\n",
        "        model.fit(Xtr, ytr)\n",
        "        evaluate(f\"{name} + {tag}\", part, yte, model.predict(Xte),\n",
        "                 class_names=class_names, show_report=name in plot_for, plot=name in plot_for)\n",
        "\n",
        "\n",
        "CLASSES_A = sorted(raw_df[\"sentiment\"].unique())\n",
        "\n",
        "run_models(X_bow_tr,   y_a_train, X_bow_te,   y_a_test, \"BoW (lemma)\",   \"A\", CLASSES_A)\n",
        "run_models(X_tfidf_tr, y_a_train, X_tfidf_te, y_a_test, \"TF-IDF (lemma)\", \"A\", CLASSES_A,\n",
        "           plot_for=(\"LinearSVC\",))\n",
        "run_models(X_stem_tr,  y_a_train, X_stem_te,  y_a_test, \"TF-IDF (stem)\",  \"A\", CLASSES_A)\n",
        "\n",
        "results_table(\"A\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "6bdb6523",
      "metadata": {
        "id": "6bdb6523"
      },
      "source": [
        "### 6.1 The imbalance problem\n",
        "\n",
        "The table above shows the trap of imbalanced data: accuracy looks respectable while the macro\n",
        "F1 stays far behind it, because the models mostly predict the majority class. Three standard\n",
        "remedies are now applied **to the training set only** — resampling the test set would make\n",
        "the evaluation meaningless:\n",
        "\n",
        "* **Random over-sampling** — duplicate minority examples; no information is lost, but the\n",
        "  duplicated rows encourage over-fitting.\n",
        "* **Random under-sampling** — drop majority examples; fast, but throws away real data.\n",
        "* **SMOTE** — synthesise new minority points by interpolating between a minority sample and\n",
        "  one of its k nearest minority neighbours, so the new points are not exact copies.\n",
        "* **`class_weight=\"balanced\"`** — no resampling at all: the loss function simply penalises\n",
        "  minority errors more. Often the cheapest and strongest option."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "id": "6fafbe0d",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "6fafbe0d",
        "outputId": "b9c8071d-13d6-486e-a9ea-e4e12a5d6c87"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "no resampling        training distribution: {'positive': 1398, 'negative': 419}\n",
            "\n",
            "=== LinearSVC + TF-IDF + no resampling ===\n",
            "Accuracy 0.8551 | weighted F1 0.8482 | macro F1 0.7774\n",
            "RandomOverSampler    training distribution: {'positive': 1398, 'negative': 1398}\n",
            "\n",
            "=== LinearSVC + TF-IDF + RandomOverSampler ===\n",
            "Accuracy 0.8436 | weighted F1 0.8450 | macro F1 0.7839\n",
            "RandomUnderSampler   training distribution: {'negative': 419, 'positive': 419}\n",
            "\n",
            "=== LinearSVC + TF-IDF + RandomUnderSampler ===\n",
            "Accuracy 0.7846 | weighted F1 0.7976 | macro F1 0.7383\n",
            "SMOTE                training distribution: {'positive': 1398, 'negative': 1398}\n",
            "\n",
            "=== LinearSVC + TF-IDF + SMOTE ===\n",
            "Accuracy 0.8423 | weighted F1 0.8471 | macro F1 0.7922\n",
            "\n",
            "=== LinearSVC + TF-IDF + class_weight ===\n",
            "Accuracy 0.8462 | weighted F1 0.8491 | macro F1 0.7920\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.65      0.73      0.69       180\n",
            "    positive       0.92      0.88      0.90       600\n",
            "\n",
            "    accuracy                           0.85       780\n",
            "   macro avg       0.78      0.80      0.79       780\n",
            "weighted avg       0.85      0.85      0.85       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 420x360 with 2 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAFpCAYAAAClAO7UAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAATwJJREFUeJzt3Xl8Ddf7wPHPvdlls1QSIbG0gqg9llBrEfuuShCtvbHX2lqCEtX60lrbfjVRtVWRWttqSmyxhdipPYigRRaa9c7vD9/Mz5WdXLlJnrfXvF5mzpmZ596b3CfnzJkzGkVRFIQQQggD0eZ1AEIIIQo2STRCCCEMShKNEEIIg5JEI4QQwqAk0QghhDAoSTRCCCEMShKNEEIIg5JEI4QQwqAk0QghhDAoSTT5iEajISgoKK/DEIVEQfx5CwwMpGjRojnaZ8CAAXTp0sUg8RQWkmiMSFY/0Hfv3qVt27avL6BMpKSkMG/ePCpXroyVlRXFixenfv36/Pe//wWgY8eOtGnTJt199+/fj0aj4fTp0+q2TZs20axZM+zt7bGxsaF69erMmjWLhw8f5nrsgYGBaDSaTJcbN27g5+eXbtkff/yR4bFf/AwHDBig7mdmZoajoyOtWrXi+++/R6fT6e1brly5NOcqU6ZMrr/+wqxXr1789ddfuX7ccuXKsWjRolw/bkEhiSYfcXJywsLCIk9jUBSF5ORkZs6cycKFC5k9ezbnz59nz549DBkyhMePHwMwcOBAdu/eze3bt9McIyAgAA8PD6pXrw7Ap59+Sq9evahbty67du3i7NmzLFiwgFOnTrF69epsxXXjxg00Gk226vbq1Yu7d++qi6enJ4MHD9bb5uLiAkDVqlX1tt+9e5cmTZpk6zyp2rRpw927d7lx4wa7du2iefPmjB49mg4dOpCcnKxXd9asWXrnOnnyZLbPM2DAAPz8/HIUW2FjZWWFg4NDXodR6EiiyUee78pI/WLdvHkzzZs3p0iRItSoUYPQ0FC9fQ4cOEDjxo2xsrLCxcWFUaNG8eTJE7V89erVeHh4YGtri5OTE3369OH+/ftq+d69e9FoNOzatYs6depgYWHBgQMH2Lp1Kx999BE9e/akfPny1KhRg4EDBzJ+/HgAOnToQMmSJQkMDNSLJy4ujo0bNzJw4EAAjh49yty5c1mwYAFffPEFDRs2pFy5crRq1YpNmzbh4+OT6++jlZUVTk5O6mJubk6RIkX0tpmYmABgamqqtz21fk5YWFjg5ORE6dKlqV27Np988gm//PILu3btSvP+pH4OqUvJkiVz62Wn6/vvv6dq1apYWFhQqlQpRowYkWHdSZMm4ebmRpEiRahQoQLTpk0jKSlJLT916hTNmzfH1tYWOzs76tSpw/HjxwG4efMmHTt2pFixYlhbW1O1alV27tyZZXweHh58+eWX6nqXLl0wMzMjLi4OgNu3b6PRaLhy5QoACQkJjB8/ntKlS2NtbU39+vXZu3evun96XWefffYZDg4O2NraMmjQICZPnkzNmjXTxPLll19SqlQpSpQoga+vr/ramzVrxs2bNxk7dqzaEhX6JNHkc59++injx48nPDwcNzc3evfurf6VfPXqVdq0aUP37t05ffo0GzZs4MCBA3pfJklJScyePZtTp04RFBTEjRs3GDBgQJrzTJ48mXnz5nHhwgWqV6+Ok5MTf/75Jw8ePEg3LlNTU/r3709gYCDPTxC+ceNGUlJS6N27NwBr1qzBxsaGjz76KN3j5LQ/Pb9o0aIFNWrUYPPmzXkWw/Lly/H19WXIkCGcOXOGrVu38tZbb2VY39bWlsDAQM6fP89XX33Fd999x8KFC9Vyb29vypQpw7FjxwgLC2Py5MmYmZkB4OvrS0JCAvv27ePMmTN8/vnn2NjYZBlj06ZN1UShKAr79++naNGiHDhwAICQkBBKly6txj1ixAhCQ0NZv349p0+fpmfPnrRp04bLly+ne/w1a9YwZ84cPv/8c8LCwnB1dWX58uVp6u3Zs4erV6+yZ88eVq1aRWBgoPpHwubNmylTpoxea1S8QBFGw8fHR+ncuXOG5YCyZcsWRVEU5fr16wqg/Pe//1XLz507pwDKhQsXFEVRlIEDBypDhgzRO8b+/fsVrVar/Pvvv+me49ixYwqgxMbGKoqiKHv27FEAJSgoSK/euXPnlCpVqiharVapVq2aMnToUGXnzp16dS5cuKAAyp49e9RtjRs3Vvr27auut23bVqlevXqGrzm7Ut+Pl9G0aVNl9OjRabbPmDFD0Wq1irW1tbrUrVs302O9+Blm9pn26tVLqVKlirpetmxZxdzcXO98X331VbZfh4+PjzJjxoxs13d2dlY+/fTTDMuf/3lLzxdffKHUqVNHXbe1tVUCAwPTrVutWjXFz88v27Gl2rp1q2Jvb68kJycr4eHhipOTkzJ69Ghl0qRJiqIoyqBBg5Q+ffooiqIoN2/eVExMTJQ7d+7oHePdd99VpkyZoiiKogQEBCj29vZqWf369RVfX1+9+o0aNVJq1Kihrvv4+Chly5ZVkpOT1W09e/ZUevXqpa6XLVtWWbhwYY5fX2EhLZp8LvU6B0CpUqUA1K6vU6dOERgYiI2Njbp4eXmh0+m4fv06AGFhYXTs2BFXV1dsbW1p2rQpABEREXrn8fDw0Ft3d3fn7NmzHD58mA8//JD79+/TsWNHBg0apNapXLkyDRs25PvvvwfgypUr7N+/X+02A/RaOzlVtWpV9XVVrVoVQO+15sbAiUqVKhEeHq4umzZtAp4NaHj+XGvWrMnxsRVFSdPNMmHCBL3z9e/fP8P9U1uDz8cwd+5cvW379+9Pd9/79+8TGRnJu+++m+14N2zYQKNGjXBycsLGxoapU6fq/ZyMGzeOQYMG0bJlS+bNm8fVq1fVslGjRvHZZ5/RqFEjZsyYoTcQJDONGzcmNjaWkydPEhISQtOmTWnWrJnaygkJCaFZs2YAnDlzhpSUFNzc3PTeg5CQEL1Ynnfp0iXq1aunt+3FdXj2s5banQrPftee72IWmTPN6wDEq0ntmgDUL63U0UxxcXEMHTqUUaNGpdnP1dWVJ0+e4OXlhZeXF2vWrKFkyZJERETg5eVFYmKiXn1ra+s0x9BqtdStW5e6desyZswYfvzxR/r168enn35K+fLlgWeDAkaOHMnSpUsJCAjgzTffVJMZgJubGwcOHCApKUnvtWTHzp071X7yO3fu0KxZM8LDw9VyKyurHB0vPebm5ul2J3l4eOidy9HRMcfHvnDhgvo+pXrjjTcy7b56XqdOnahfv766PmnSJEqXLq33eZcuXTrdfXP63oSGhuLt7c3MmTPx8vLC3t6e9evXs2DBArWOn58fffr0YceOHezatYsZM2awfv16unbtyqBBg/Dy8mLHjh38/vvv+Pv7s2DBAkaOHJnpeYsWLUqNGjXYu3cvoaGhtGrViiZNmqijxy5fvqz+PMXFxWFiYkJYWJheUgCy1U2XmRd/NjUaTZpRgyJjkmgKsNq1a3P+/PkMv7jOnDnDP//8w7x589RRVqkXb1+Gu7s7gN5gg/fee4/Ro0ezdu1afvjhB4YPH673V3yfPn34+uuvWbZsGaNHj05zzMePH2d4naZs2bLq/01Nn/0oZ/dL+lVZWVm90rn+/PNPzpw5w9ixY1/6GLa2ttja2uqtFy9ePFtx2draUq5cOYKDg2nevHmW9Q8dOkTZsmX59NNP1W03b95MU8/NzQ03NzfGjh1L7969CQgIoGvXrgC4uLgwbNgwhg0bxpQpU/juu++yTDTw7DrNnj17OHr0KHPmzKF48eJUqVKFOXPmUKpUKdzc3ACoVasWKSkp3L9/n8aNG2d5XHjWYj127Jhey/HYsWPZ2vd55ubmpKSk5Hi/wkISjZGJjo7W+0sZoESJEmoiyIlJkybRoEEDRowYwaBBg7C2tub8+fPs3r2bJUuW4Orqirm5OYsXL2bYsGGcPXuW2bNnZ+vYPXr0oFGjRjRs2BAnJyeuX7/OlClTcHNzo3Llymo9GxsbevXqxZQpU4iJiUkz0KB+/fpMnDiRjz/+mDt37tC1a1ecnZ25cuUKK1as4J133kk3AeUnCQkJREVFkZKSwr179/j111/x9/enQ4cOmXaNGZqfnx/Dhg3DwcGBtm3bEhsby8GDB9P98q9YsSIRERGsX7+eunXrsmPHDrZs2aKW//vvv0yYMIEePXpQvnx5bt++zbFjx+jevTsAY8aMoW3btri5ufHo0SP27NlDlSpVshVns2bNWLx4MSVLllR/tpo1a8aSJUvo2bOnWs/NzQ1vb2/69+/PggULqFWrFg8ePCA4OJjq1avTvn37NMceOXIkgwcPxsPDg4YNG7JhwwZOnz5NhQoVcvRelitXjn379vH+++9jYWHBG2+8kaP9Czq5RmNk9u7dS61atfSWmTNnvtSxqlevTkhICH/99ReNGzemVq1aTJ8+HWdnZwB1+PHGjRtxd3dn3rx5ekNJM+Pl5cW2bdvo2LEjbm5u+Pj4ULlyZX7//Xe1dZFq4MCBPHr0CC8vL/Xcz/v8889Zu3YtR44cwcvLi6pVqzJu3DiqV69ukOHNr9uvv/5KqVKlKFeuHG3atGHPnj18/fXX/PLLL2m6eF4nHx8fFi1axLJly6hatSodOnTIcHRWp06dGDt2LCNGjKBmzZocOnSIadOmqeUmJib8888/9O/fHzc3N9577z3atm2r/uympKTg6+tLlSpVaNOmDW5ubixbtixbcTZu3BidTqfX5dqsWTNSUlLU6zOpAgIC6N+/Px9//DGVKlWiS5cuHDt2DFdX13SP7e3tzZQpUxg/fjy1a9fm+vXrDBgwAEtLy2zFlmrWrFncuHGDN9980+BD0vMjjfIqV2OFEKKAadWqFU5OTtm+WVhkTbrOhBCF1tOnT1mxYgVeXl6YmJiwbt06/vjjD3bv3p3XoRUo0nUmhMgzw4YN0xuK/PwybNgwg59fo9Gwc+dOmjRpQp06ddi2bRubNm2iZcuWBj93YSJdZ0KIPHP//n1iYmLSLbOzs5N5yQoISTRCCCEMSrrOhBBCGJQkGiGEEAYlo86MiE6nIzIyEltbW5lqXIh8RlEUYmNjcXZ2RquVv+GfJ4nGiERGRr7UDABCCONx69YteTLqCyTRGJHUeauCj1/CxsY2i9oiPypXMu3kpKJgiI2J4a3yLnrzz4lnJNEYkdTuMhsbW2xs7fI4GmEIdnaSaAo66fZOSzoShRBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYlj3IWQggjEB8fT2JiYpb1zM3NsbS0fA0R5R5JNEIIkcfi4+Oxsi0ByU+zrOvk5MT169fzVbKRRCOEEHksMTERkp9i8fYHYGKeccWURKLOBpCYmCiJRgghxEswtURjYpFhsaLJn5fVJdEIIYSx0GieLZmV50OSaIQQwlhoTZ4tGVEyKTNikmiEEMJoaCHT7jHpOhNCCPEqpOtMCCGEQWXVdZZZmRHLn+0wIYQoiDTarJcc8PPzQ6PR6C2VK1dWy+Pj4/H19aVEiRLY2NjQvXt37t27p3eMiIgI2rdvT5EiRXBwcGDChAkkJyfnKA5p0QghhLEwQNdZ1apV+eOPP9R1U9P//9ofO3YsO3bsYOPGjdjb2zNixAi6devGwYMHAUhJSaF9+/Y4OTlx6NAh7t69S//+/TEzM2Pu3LnZjkESjRBCGAutCWgz+VrW5qwlAc8Si5OTU5rt0dHRrFy5krVr19KiRQsAAgICqFKlCocPH6ZBgwb8/vvvnD9/nj/++ANHR0dq1qzJ7NmzmTRpEn5+fpibZ3Jz6fNh5zhqIYQQhqHVZL0AMTExektCQkKGh7x8+TLOzs5UqFABb29vIiIiAAgLCyMpKYmWLVuqdStXroyrqyuhoaEAhIaGUq1aNRwdHdU6Xl5exMTEcO7cuey/rBy9CUIIIQwnm9doXFxcsLe3Vxd/f/90D1e/fn0CAwP59ddfWb58OdevX6dx48bExsYSFRWFubk5RYsW1dvH0dGRqKgoAKKiovSSTGp5all2SdeZEEIYi2xeo7l16xZ2dnbqZguL9Ketadu2rfr/6tWrU79+fcqWLctPP/2ElZVV7sScDdKiEUIIY5E6vDmzBbCzs9NbMko0LypatChubm5cuXIFJycnEhMTefz4sV6de/fuqdd0nJyc0oxCS11P77pPhi8r2zWFEEIYVi4Pb35RXFwcV69epVSpUtSpUwczMzOCg4PV8kuXLhEREYGnpycAnp6enDlzhvv376t1du/ejZ2dHe7u7tk+r3SdCSGEscjl4c3jx4+nY8eOlC1blsjISGbMmIGJiQm9e/fG3t6egQMHMm7cOIoXL46dnR0jR47E09OTBg0aANC6dWvc3d3p168f8+fPJyoqiqlTp+Lr65vtVhRIohFCCOORyzMD3L59m969e/PPP/9QsmRJ3nnnHQ4fPkzJkiUBWLhwIVqtlu7du5OQkICXlxfLli1T9zcxMWH79u0MHz4cT09PrK2t8fHxYdasWTmKQ6MoipKjPYTBxMTEYG9vz5GLkdjY2mW9g8h3KjhY53UIwkBiYmJwLGFPdHS03oX67O5rb2+PRct5aMwyfqCZkhRPwh+TX+oceUlaNEIIYSxkUk0hhBAGleXMAPlzUk1JNEIIYSykRSOEEMKgshrC/IrDm/OKJBohhDAWBfR5NJJohBDCWEjXmRBCCENKfThZJhVeXzC5SBKNEEIYCUk0QgghDEqj1aDRZpJMMiszYpJohBDCSEiLRgghhEFJohFCCGFQ0nUmhBDCoKRFI4QQwqCe3UaTWaJ5fbHkpvw5n8Fr4OfnR82aNfM6jHxrTcAK3mvbmJrlizPyw/f1ysYM9qZprTepV6kUrRtUZcWiz/XKZ0wcQfvGtXi7jC0/fLf0dYYtXtG///5L1cpv4fRGUXXbibAwWjR9B4fidlRxq8Ca1T/kXYBGTqvRotVmsuTTKWjyZ9S5TKPREBQUpLdt/Pjxeo84FTnj4FiKoaMn0qPPgDRlH42bwu7D5zl66S6Bm35lR9BPbNu0Xi2v5F6NaXP/Q7WaHq8xYpEbZvlNx9W1rLr++PFjunZqR+8+fbn74BGrVq9j3JiRHDxwIA+jNGKabCz5kCSaDNjY2FCiRIm8DiPfatWuM++26Uix4mnfQ7cqb2P+v8fAatCg1Wq5ef2KWt5nwFAaNG6OhWX2HxUr8t6JsDB2//YrH0+YpG47HHoIcwsLBg8dhomJCfXq16dzl24Efv/fPIzUiP3vGk1GS369RpOniaZZs2aMGjWKiRMnUrx4cZycnPDz81PLHz9+zKBBgyhZsiR2dna0aNGCU6dO6R3js88+w8HBAVtbWwYNGsTkyZP1uryOHTtGq1ateOONN7C3t6dp06acOHFCLS9XrhwAXbt2RaPRqOvPd539/vvvWFpa8vjxY71zjx49mhYtWqjrBw4coHHjxlhZWeHi4sKoUaN48uTJK79PBdGsKWOo82ZJWtarzNMnT+jyXt+8Dkm8guTkZHyHDWbR4qWYm5ur23U6HS8+xFen03H2zOnXHWK+kFmSyXKggBHL8xbNqlWrsLa25siRI8yfP59Zs2axe/duAHr27Mn9+/fZtWsXYWFh1K5dm3fffZeHDx8CsGbNGubMmcPnn39OWFgYrq6uLF++XO/4sbGx+Pj4cODAAQ4fPkzFihVp164dsbGxwLNEBBAQEMDdu3fV9ee9++67FC1alE2bNqnbUlJS2LBhA97e3gBcvXqVNm3a0L17d06fPs2GDRs4cOAAI0aMyPC1JyQkEBMTo7cUFtP9F3Hs8j027NxHpx69sbMvmtchiVewcMEX1KhZi3caN9HbXr+BJ0+fPGH50iUkJSVx6OBBtv6yhZjYwvOznhOpw5szW/KjPE801atXZ8aMGVSsWJH+/fvj4eFBcHAwBw4c4OjRo2zcuBEPDw8qVqzIl19+SdGiRfn5558BWLx4MQMHDuSDDz7Azc2N6dOnU61aNb3jt2jRgr59+1K5cmWqVKnCt99+y9OnTwkJCQGgZMmSABQtWhQnJyd1/XkmJia8//77rF27Vt0WHBzM48eP6d69OwD+/v54e3szZswYKlasSMOGDfn666/54YcfiI+PT/e1+/v7Y29vry4uLi6v/obmI1qtlrdr1MbaxpYvZ3+a1+GIl3T1yhW++3YFcz//Ik1ZiRIl+HnLNjasX0u5Mk5M+3Qy/Xw+oHg6XapCWjQGU716db31UqVKcf/+fU6dOkVcXBwlSpTAxsZGXa5fv87Vq1cBuHTpEvXq1dPb/8X1e/fuMXjwYCpWrIi9vT12dnbExcURERGRozi9vb3Zu3cvkZGRwLPWVPv27SlatCgAp06dIjAwUC9WLy8vdDod169fT/eYU6ZMITo6Wl1u3bqVo5gKiuSkJL1rNCJ/OXTwAPfv3aO6uxtlnN6gZ7fOxMTEUMbpDY4eOULDRo3Yu/8Qd+79Q/De/dy7F0XjJk3zOmyjVFATTZ7fR2NmZqa3rtFo0Ol0xMXFUapUKfbu3Ztmn9Qv9+zw8fHhn3/+4auvvqJs2bJYWFjg6elJYmJijuKsW7cub775JuvXr2f48OFs2bKFwMBAtTwuLo6hQ4cyatSoNPu6urqme0wLCwssLArmBe/k5GRSkpNJTk5Gp9OREB+PRqvl7/tRnD11gkbNWmJlVYRTYUf58fvl9P1wuLpvYmIiik6HTqcjJSWZhPh4TExNMTXN8x9XkY7uPd+j+bst1fUjh0P5aOggDh8Px8HBgfCTJ6ni7o5Op2Pdmh/ZH7KX0GMn8zBi45U6jDmTCq8vmFxktL+5tWvXJioqClNTU/UC/YsqVarEsWPH6N+/v7rtxWssBw8eZNmyZbRr1w6AW7du8ffff+vVMTMzIyUlJcuYvL29WbNmDWXKlEGr1dK+fXu9eM+fP89bb72V3ZdYoH3z1ecs+4+/ul77zTeo6/kOcxd9y+r/LmX6eF90Oh0Ojk54fzCMQSM+VusO6dOJY6HPhr+GHTnEl7M/5aNxU/D9WLrXjFGRIkUoUqSIun6tZEk0Gg1lypQBYNmSr9n6yxaSk5Np4NmQXb//ibOzc16Fa9yyGsKcPxs0xptoWrZsiaenJ126dGH+/Pm4ubkRGRnJjh076Nq1Kx4eHowcOZLBgwfj4eFBw4YN2bBhA6dPn6ZChQrqcSpWrMjq1avx8PAgJiaGCRMmYGVlpXeucuXKERwcTKNGjbCwsKBYsWLpxuTt7Y2fnx9z5syhR48eeq2RSZMm0aBBA0aMGMGgQYOwtrbm/Pnz7N69myVLlhjmTTJivh9/mmFiWL1ld6b7Bv78qyFCEq9Jk6bNiPr7sbr+7coAvl0ZkHcB5SNZdY/l164zo22HaTQadu7cSZMmTdSL/e+//z43b97E0dERePbFP2XKFMaPH0/t2rW5fv06AwYMwNLSUj3OypUrefToEbVr16Zfv36MGjUKBwcHvXMtWLCA3bt34+LiQq1atTKM6a233qJevXqcPn1aHW2Wqnr16oSEhPDXX3/RuHFjatWqxfTp0+UvNyFEtmU6K0BW3WpGTKO8OMg9n2vVqhVOTk6sXr06r0PJsZiYGOzt7TlyMRIbW7u8DkcYQAUH67wOQRhITEwMjiXsiY6Oxs4uZ7+/qb/7zoPXojUvkmE9XeJTIr/r81LnyEtG23WWHU+fPmXFihV4eXlhYmLCunXr+OOPP9T7cIQQIj8pqF1n+TrRpHavzZkzh/j4eCpVqsSmTZto2bJl1jsLIYSRSZ1UM0P5dFLNfJ1orKys+OOPP/I6DCGEyBUFtUWTP9OjEEIURAacvXnevHloNBrGjBmjbouPj8fX11e9Mb579+7cu3dPb7+IiAjat29PkSJFcHBwYMKECSQnJ+fo3JJohBDCSBhqZoBjx47xzTffpJmJZezYsWzbto2NGzcSEhJCZGQk3bp1U8tTUlJo3749iYmJHDp0iFWrVhEYGMj06dNzdH5JNEIIYSS0Wk2WS07FxcXh7e3Nd999p3ePYHR0NCtXruQ///kPLVq0oE6dOgQEBHDo0CEOHz4MPJu5/vz58/z444/UrFmTtm3bMnv2bJYuXZqj2VUk0QghhJFIfZRzxsuzei/O+p6QkJDhMX19fWnfvn2aQVJhYWEkJSXpba9cuTKurq6EhoYCEBoaSrVq1dR7FwG8vLyIiYnh3Llz2X5dkmiEEMJYaFKTTfpL6jUaFxcXvZnf/f390z3c+vXrOXHiRLrlUVFRmJubp5k70tHRkaioKLXO80kmtTy1LLvy9agzIYQoSLLqHlP+V3br1i29GzbTm5z31q1bjB49mt27d+vNlpIXpEUjhBBGIrvXaOzs7PSW9BJNWFgY9+/fp3bt2pj+b/bzkJAQvv76a0xNTXF0dCQxMTHNk4Pv3buHk5MTAE5OTmlGoaWup9bJ1uvKyZsghBDCcDLrNlO7z7Lp3Xff5cyZM4SHh6uLh4cH3t7e6v/NzMwIDg5W97l06RIRERF4enoC4OnpyZkzZ7h//75aZ/fu3djZ2eHu7p7tWKTrTAghjER2u86yw9bWlrfffltvm7W1NSVKlFC3Dxw4kHHjxlG8eHHs7OwYOXIknp6eNGjQAIDWrVvj7u5Ov379mD9/PlFRUUydOhVfX98cPUtLEo0QQhiJ1z0zwMKFC9FqtXTv3p2EhAS8vLxYtmyZWm5iYsL27dsZPnw4np6eWFtb4+Pjw6xZs3J0Hkk0QghhJAydaF58YrGlpSVLly5l6dKlGe5TtmxZdu7c+UrnlUQjhBBGIqvrMPl0qjNJNEIIYSy0miyu0eTTTCOJRgghjERBnb1ZEo0QQhgJ6ToTQghhULk5vNmYSKIRQggjIV1nQgghDCuru//zZ56RRCOEEMYiq66zl3kejTGQRCOEEEZCus6EEEIYlIw6E0IIYVBarRatNuNJ9TMrM2aSaIQQwkhIi0YIIYRByTUaIYQQBiUtGiGEEAaV1aSa2nyaaSTRCCGEkdBqNJkmE0k0QgghXol0nQkhhDAoE60GE5lUUwghhMFoshhZlj/zjCQaIYQwFtJ1JoQQwqBMNBpMMskmunyaaSTRCCGEkZAbNoUQQhiUdJ0JIYQwKLmPRgghhEHJg8+EEEIYVEHtOnuphxvs37+fvn374unpyZ07dwBYvXo1Bw4cyNXghBCiMEntOstsyY9ynGg2bdqEl5cXVlZWnDx5koSEBACio6OZO3durgcohBCFhSSa//nss89YsWIF3333HWZmZur2Ro0aceLEiVwNTgghChOtJuslP8rxNZpLly7RpEmTNNvt7e15/PhxbsQkhBCFUkG9jybHLRonJyeuXLmSZvuBAweoUKFCrgQlhBCFkeZ/z6PJaMlpolm+fDnVq1fHzs4OOzs7PD092bVrl1oeHx+Pr68vJUqUwMbGhu7du3Pv3j29Y0RERNC+fXuKFCmCg4MDEyZMIDk5OUdx5DjRDB48mNGjR3PkyBE0Gg2RkZGsWbOG8ePHM3z48JweTgghxP/kdtdZmTJlmDdvHmFhYRw/fpwWLVrQuXNnzp07B8DYsWPZtm0bGzduJCQkhMjISLp166bun5KSQvv27UlMTOTQoUOsWrWKwMBApk+fnqM4NIqiKDnZQVEU5s6di7+/P0+fPgXAwsKC8ePHM3v27BydXOiLiYnB3t6eIxcjsbG1y+twhAFUcLDO6xCEgcTExOBYwp7o6Gjs7HL2+5v6u99n5SHMi9hkWC/xaRxrBzZ8qXOkKl68OF988QU9evSgZMmSrF27lh49egBw8eJFqlSpQmhoKA0aNGDXrl106NCByMhIHB0dAVixYgWTJk3iwYMHmJubZ+ucOW7RaDQaPv30Ux4+fMjZs2c5fPgwDx48kCQjhBCvKHVSzcwWeJaYnl9SR/9mJiUlhfXr1/PkyRM8PT0JCwsjKSmJli1bqnUqV66Mq6sroaGhAISGhlKtWjU1yQB4eXkRExOjtoqy46Vv2DQ3N8fd3f1ldxdCCPGC7N6w6eLiord9xowZ+Pn5pbvPmTNn8PT0JD4+HhsbG7Zs2YK7uzvh4eGYm5tTtGhRvfqOjo5ERUUBEBUVpZdkUstTy7Irx4mmefPmmV6Q+vPPP3N6SCGEEGR/1NmtW7f0us4sLCwy3KdSpUqEh4cTHR3Nzz//jI+PDyEhIbkXdDbkONHUrFlTbz0pKYnw8HDOnj2Lj49PbsUlhBCFTnZbNKmjyLLD3Nyct956C4A6depw7NgxvvrqK3r16kViYiKPHz/Wa9Xcu3cPJycn4Nko46NHj+odL3VUWmqd7Mhxolm4cGG62/38/IiLi8vp4YQQQvyPiVaDSSZDyzIryy6dTkdCQgJ16tTBzMyM4OBgunfvDjy7TzIiIgJPT08APD09mTNnDvfv38fBwQGA3bt3Y2dnl6NLJ7k2qWbfvn2pV68eX375ZW4dUgghCpXcvmFzypQptG3bFldXV2JjY1m7di179+7lt99+w97enoEDBzJu3DiKFy+OnZ0dI0eOxNPTkwYNGgDQunVr3N3d6devH/PnzycqKoqpU6fi6+ubaXfdi3It0YSGhmJpaZlbhyvUHO0tsbOT97IgKlZ3RF6HIAxESUl85WNoyXwocE6HCd+/f5/+/ftz9+5d7O3tqV69Or/99hutWrUCnvVQabVaunfvTkJCAl5eXixbtkzd38TEhO3btzN8+HA8PT2xtrbGx8eHWbNm5SiOHCea52/mgWf31dy9e5fjx48zbdq0nB5OCCHE/2iz6DrL6fNoVq5cmWm5paUlS5cuZenSpRnWKVu2LDt37szReV+U40Rjb2+vt67VaqlUqRKzZs2idevWrxSMEEIUZlnd/V8oJtVMSUnhgw8+oFq1ahQrVsxQMQkhRKEkk2ryrL+udevWMkuzEEIYgIk26yU/ynHYb7/9NteuXTNELEIIUajJg8/+57PPPmP8+PFs376du3fvpplzRwghxMvRZmPJj7J9jWbWrFl8/PHHtGvXDoBOnTrp9RcqioJGoyElJSX3oxRCiEIguzMD5DfZTjQzZ85k2LBh7Nmzx5DxCCFEoWWiyWJmgHyaabKdaFIfW9O0aVODBSOEEIWZDG8m/w6tE0KI/ECjIdML/vn1KzhHicbNzS3LZPPw4cNXCkgIIQqrrIYw59fhzTlKNDNnzkwzM4AQQojcofnfv8zK86McJZr3339fnSpaCCFE7ir012jk+owQQhjW63geTV7I8agzIYQQhlHoWzQ6nc6QcQghRKFX6G/YFEIIYVimWg2mmTRbMiszZpJohBDCWGTRosmng84k0QghhLHQokGbSTbJrMyYSaIRQggjIddohBBCGJRcoxFCCGFQ0qIRQghhUFoyf4qmXKMRQgjxSkw0z5bMyvMjSTRCCGEkNBpNptN95depwCTRCCGEkdCQ+a0y+TPNSKIRQgijodVoMn1cc2bXb4yZJBohhDASMupMCCGEQck1GiGEEAZlkkXXWWZlxkwSjRBCGImCOhhAm9cBCCGEeCa16yyzJSf8/f2pW7cutra2ODg40KVLFy5duqRXJz4+Hl9fX0qUKIGNjQ3du3fn3r17enUiIiJo3749RYoUwcHBgQkTJpCcnJztOCTRCCGEkdBmY8mJkJAQfH19OXz4MLt37yYpKYnWrVvz5MkTtc7YsWPZtm0bGzduJCQkhMjISLp166aWp6Sk0L59exITEzl06BCrVq0iMDCQ6dOnZzsOjSLPaDYaMTEx2Nvbc+PuQ+zs7PI6HGEAzo1G53UIwkCUlEQSznxHdHR0jn9/U3/31xz8iyI2thnWexoXi3cjt5c6B8CDBw9wcHAgJCSEJk2aEB0dTcmSJVm7di09evQA4OLFi1SpUoXQ0FAaNGjArl276NChA5GRkTg6OgKwYsUKJk2axIMHDzA3N8/yvNKiEUIII5E6vDmzBZ4lpueXhISEbB0/OjoagOLFiwMQFhZGUlISLVu2VOtUrlwZV1dXQkNDAQgNDaVatWpqkgHw8vIiJiaGc+fOZeu8kmiEEMJIpD74LLMFwMXFBXt7e3Xx9/fP8tg6nY4xY8bQqFEj3n77bQCioqIwNzenaNGienUdHR2JiopS6zyfZFLLU8uyQ0adCSGEkdBqspi9+X9lt27d0us6s7CwyPLYvr6+nD17lgMHDrx6oDkkLRohhDAS2e06s7Oz01uySjQjRoxg+/bt7NmzhzJlyqjbnZycSExM5PHjx3r17927h5OTk1rnxVFoqeupdbIiiUYIIYyEJotuM00O76RRFIURI0awZcsW/vzzT8qXL69XXqdOHczMzAgODla3Xbp0iYiICDw9PQHw9PTkzJkz3L9/X62ze/du7OzscHd3z1Yc0nUmhBBGQqt9tmRWnhO+vr6sXbuWX375BVtbW/Wair29PVZWVtjb2zNw4EDGjRtH8eLFsbOzY+TIkXh6etKgQQMAWrdujbu7O/369WP+/PlERUUxdepUfH19s9VlB5JohBDCaGiyaLXktEWzfPlyAJo1a6a3PSAggAEDBgCwcOFCtFot3bt3JyEhAS8vL5YtW6bWNTExYfv27QwfPhxPT0+sra3x8fFh1qxZ2Y5DEo0QQhgJrebZkll5TmTnNklLS0uWLl3K0qVLM6xTtmxZdu7cmbOTP0cSjRBCGIncbtEYC0k0QghhJJ61aDIb3vwag8lFkmiEEMJI5HbXmbGQRCOEEEZCus6EEEIYlLRohBBCGJSWLKagkRaNEEKIV1FQn7ApiUYIIYxEVk/RzOkTNo2FJBohhDAWz02cmVF5fiSJRgghjIR0nQkhhDAo6ToTQghhUJosus7yaZ4pfM+j2bt3LxqNJs2Dfl5Urlw5Fi1a9FpiKuhcHOz1Fgd7S96pV0st/27FUlq8Ux+nYkXo26tbHkYqsuPbmX2JPrqIBwcXqEv96s+ec2JuZsrSab25sN2P+we+JHzzVPp3bqC3f60qLgR/P5Z7+7/g/DY/+nSolxcvwyhpsrHkR4WuRdOwYUPu3r2Lvb09AIGBgYwZMyZN4jl27BjW1tZ5EGHBc+t+tN76O/Vq0a3ne+q6UylnPp70CSF7gom8c/t1hydewrc/7WfCl5vSbDc10RL1dwzthi3h+u2/qVetHEFLPuLOvccEH76IvY0VWxYP57MVO/l+80HquLuybdkIbtz+m0Ph1/LglRiZAnqRptC1aMzNzXFycsqyr7NkyZIUKVLkNUVVeIQdP8qli+fp3ddH3daxc1fad+xM8RIl8jAykRuexicye/kOrt/+G4CjZ26w79hfNKz1JgANapYnMTGZ//58AJ1O4djZm/zy5ykGdG2Yl2EbDa1Gk+WSHxllomnWrBkjRoxgxIgR2Nvb88YbbzBt2jT12QqPHj2if//+FCtWjCJFitC2bVsuX76s7n/z5k06duxIsWLFsLa2pmrVquqzFJ7vOtu7dy8ffPAB0dHR6kU4Pz8/QL/rrE+fPvTq1UsvxqSkJN544w1++OEHAHQ6Hf7+/pQvXx4rKytq1KjBzz//bOB3Kv/5cVUALVu3oVQp57wORbyCPh3qcWfv54T9/Cmj+7XI8A83C3NTPN4uy9nLdwDQarRp6mq1Gt6uWNrgMecH0nX2mq1atYqBAwdy9OhRjh8/zpAhQ3B1dWXw4MEMGDCAy5cvs3XrVuzs7Jg0aRLt2rXj/PnzmJmZ4evrS2JiIvv27cPa2prz589jY2OT5hwNGzZk0aJFTJ8+nUuXLgGkW8/b25uePXsSFxenlv/22288ffqUrl27AuDv78+PP/7IihUrqFixIvv27aNv376ULFmSpk2bpvsaExISSEhIUNdjYmJe+X0zZk+ePGHzzxtY/l1gXociXsGydXv5ZFEQD6Of4FG1LD9+/iE6ncLiNXvS1F0+vQ9XIh4QFHwKgCOnr1PEypxhvZrw300HqFu1HJ2aV+fBw7jX/TKMUwHtOjPaROPi4sLChQvRaDRUqlSJM2fOsHDhQpo1a8bWrVs5ePAgDRs+a26vWbMGFxcXgoKC6NmzJxEREXTv3p1q1aoBUKFChXTPYW5ujr29PRqNBicnpwxj8fLywtrami1bttCvXz8A1q5dS6dOnbC1tSUhIYG5c+fyxx9/4OnpqZ7zwIEDfPPNNxkmGn9/f2bOnPnS71F+88vmnyliVYTWbdrldSjiFYRf/P/raEfP3ODLgN14d6iXJtF89Ukv3Mo50m7YYrU34mH0E3qM/oa5Y7swdVh7Ll67y+qth6lXrfxrfQ3GKqvuMek6y2UNGjTQa2J7enpy+fJlzp8/j6mpKfXr11fLSpQoQaVKlbhw4QIAo0aN4rPPPqNRo0bMmDGD06dPv1IspqamvPfee6xZswZ49pf5L7/8gre3NwBXrlzh6dOntGrVChsbG3X54YcfuHr1aobHnTJlCtHR0epy69atV4rT2K1etZL3vfthamq0f9+Il6BL53HBi6a8R923y9Fh+BJi4uL1ykJPXaP5gP9QpvkkWg5chGMJO/aHXU5zjMKooHadGW2ieRWDBg3i2rVr9OvXjzNnzuDh4cHixYtf6Zje3t4EBwdz//59goKCsLKyok2bNgDExT1r9u/YsYPw8HB1OX/+fKbXaSwsLLCzs9NbCqrLf13i6OFQ+vp8mKYsOTmZ+Ph4UpKT0el0xMfHk5iYmAdRiuzo3qoWttaWANR2d2X8B60ICg5XyxdOfg/PmhXoMHwJj2P/TbN/jUplMDczxdLCjA+6NqSxR0WWrN37mqI3cgU00xjtn5ZHjhzRWz98+DAVK1bE3d2d5ORkjhw5onad/fPPP1y6dAl3d3e1vouLC8OGDWPYsGFMmTKF7777jpEjR6Y5j7m5OSkpKVnG07BhQ1xcXNiwYQO7du2iZ8+emJmZAeDu7o6FhQUREREZdpMVdj+u+h7PRu/w5lsV05R9+fkc5s+dra47l7ChUeMmbPv1z9cZosimYe83Zcm03piamBB5/zHf/rSfRauffVaupYoxrFcT4hOSuLRzlrrPup3HGDVnPQAf9W5GpxbVMTUx4fCpa7Qd8jV3H0Sne67CpqB2nRltoomIiGDcuHEMHTqUEydOsHjxYhYsWEDFihXp3LkzgwcP5ptvvsHW1pbJkydTunRpOnfuDMCYMWNo27Ytbm5uPHr0iD179lClSpV0z1OuXDni4uIIDg6mRo0aFClSJMNhzX369GHFihX89ddf7Nnz//3Rtra2jB8/nrFjx6LT6XjnnXeIjo7m4MGD2NnZ4ePjk+7xCpOZcz7PsGzypzOY/OmM1xiNeBWtBi7KsCzi7iOsao3IdP+hfj8y1C93YyooCuhYAOPtOuvfvz///vsv9erVw9fXl9GjRzNkyBAAAgICqFOnDh06dMDT0xNFUdi5c6fawkhJScHX15cqVarQpk0b3NzcWLZsWbrnadiwIcOGDaNXr16ULFmS+fPnZxiTt7c358+fp3Tp0jRq1EivbPbs2UybNg1/f3/1vDt27KB8ebnIKYTIpgLadaZRlHSu5OWxZs2aUbNmzUI3BUxMTAz29vbcuPuwQF+vKcycG43O6xCEgSgpiSSc+Y7o6Ogc//6m/u4fu3QXG9uM942LjaFupVIvdY68ZLRdZ0IIUdhoNc+WzMrzI0k0QghhLAroRRqjTDR79+7N6xCEEOK10/zvX2bl+ZFRJhohhCiMNFl0neXT0c2SaIQQwmhI15kQQghDKqhdZ0Z7H40QQhQ2qaPOMltyYt++fXTs2BFnZ2c0Gg1BQUF65YqiMH36dEqVKoWVlRUtW7bUe+QKwMOHD/H29sbOzo6iRYsycOBAddqtbL+unIUthBDCYHL5hs0nT55Qo0YNli5dmm75/Pnz+frrr1mxYgVHjhzB2toaLy8v4uP/fyJUb29vzp07x+7du9m+fTv79u1Tb57PLuk6E0III5HbXWdt27albdu26ZYpisKiRYuYOnWqOn3XDz/8gKOjI0FBQbz//vtcuHCBX3/9lWPHjuHh4QHA4sWLadeuHV9++SXOztl7gKG0aIQQwkhoyaLr7H/1YmJi9JbnH6CYXdevXycqKoqWLVuq2+zt7alfvz6hoaEAhIaGUrRoUTXJALRs2RKtVptm4uOsXpcQQggjoNFkvcCz2ent7e3Vxd/fP8fnioqKAsDR0VFvu6Ojo1oWFRWFg4ODXrmpqSnFixdX62SHdJ0JIYTRyN745lu3bunNdWZhYWHYsF6RtGiEEMJIZLdF8+IDE18m0aQ+vv7evXt62+/du6eWOTk5cf/+fb3y5ORkHj58qNbJDkk0QghhJHJ7eHNmypcvj5OTE8HBweq2mJgYjhw5gqenJwCenp48fvyYsLAwtc6ff/6JTqejfv362T6XdJ0JIYSRyO1RZ3FxcVy5ckVdv379OuHh4RQvXhxXV1fGjBnDZ599RsWKFSlfvjzTpk3D2dmZLl26AKjP1ho8eDArVqwgKSmJESNG8P7772d7xBlIohFCCOORy1PQHD9+nObNm6vr48aNA8DHx4fAwEAmTpzIkydPGDJkCI8fP+add97h119/xdLSUt1nzZo1jBgxgnfffRetVkv37t35+uuvcxSHUT74rLCSB58VfPLgs4IrNx58duX239hmsm9sTAxvlXlDHnwmhBDi5RTUuc4k0QghhLGQ2ZuFEEIYkjzKWQghhIFl3nWWX5s0kmiEEMJIPH9TZkbl+ZHcsCmEEMKgpEUjhBBGQqvRoM2k2ZJZmTGTRCOEEEaioHadSaIRQggjUUBHN0uiEUIIY6HRaNBk0mzJrMyYSaIRQggjIV1nQgghDEq6zoQQQhiUdJ0JIYQwqNjYmEy7x2JjY15fMLlIEo0QQuQxc3NznJycqFjeJcu6Tk5OmJubv4aoco8kGiGEyGOWlpZcv36dxMTELOuam5vrPZgsP5BEI4QQRsDS0jLfJZDskrnOhBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYlj3I2IoqiABAbG5PHkQhDUVKyfia8yJ9SP9vU32Px/yTRGJHY2FgAqrmVy9tAhBAvLTY2Fnt7+7wOw6hoFEm/RkOn0xEZGYmtrS0ajSavwzG4mJgYXFxcuHXrFnZ2dnkdjshlhe3zVRSF2NhYnJ2d0WrlqsTzpEVjRLRaLWXKlMnrMF47Ozu7QvFFVFgVps9XWjLpk7QrhBDCoCTRCCGEMChJNCLPWFhYMGPGDCwsLPI6FGEA8vmKVDIYQAghhEFJi0YIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGpFrdDpdutvlVq2C4fnP98XPOqPPXgiQSTVFLtHpdOqMtUePHiU5OZmkpCSaNm1aKGaiLuie/3yXLFnC6dOnuXXrFh07dqRr166UKlUqjyMUxkxmBhCvTFEUNZl88sknBAUFodPpiI+Pp0GDBnzzzTcyq20BMWnSJAICApg0aRJ37txh586dVK5cmfXr12NpaZnX4QkjJV1n4pWlJpkFCxbw7bffEhgYyPnz5xk6dCg//fQTFy5cyOMIRW44dOgQQUFBbNu2jY8//phWrVpx8+ZNunbtKklGZEoSjcgViqJw5swZ/P39qVevHkFBQcyfP5/ly5fToEED4uPj8zpEkUMvdnY8evQICwsL6tevz6ZNm+jVqxcLFy7Ex8eHp0+fsmPHDvmcRbok0YiX8uKXUHx8PIcPH8bMzIy9e/fi4+ODv78/Q4cOJTk5GX9/f3755Zc8ila8jNSW6p07dwAwMTHBwcGBTZs28cEHH/D5558zbNgwAPbv38+2bduIiorKs3iF8ZJEI15K6pdQQEAAYWFhWFlZ0adPH3788UfatWvHwoUL1S+hR48ecfz4cSIiIvIyZPESli1bxsiRIwFo2rQp165do2fPnnzxxRcMHz4cePZHxldffUV0dDRly5bNy3CFkZJEI15aREQES5cuZf/+/QDUrVuXmzdvUr9+fTw9PQGIjIxkwIABPHr0iI8++igvwxUvoVKlSmzdupVdu3ZhZWXFxo0bKVOmDEFBQWzYsIG1a9fSqVMnbt26xerVq9FoNDKcXaQho87EKxkzZgzbt2/n0qVLmJiYsG7dOj777DMURcHU1BQrKyt0Oh2HDh3CzMyMlJQUTExM8jpskY7nRw8CpKSkkJCQwNChQ7G3t2fBggWYmJhw9uxZhg8fzqNHjyhWrBgVKlQgMDBQPl+RIUk0IluSk5MxNTVNs/7o0SOaNWtGjx49mDZtGgAnTpzg2rVr/PXXX1SuXJnOnTtjYmKS5hjCOCQlJWFmZqauP3z4kOLFi6vry5cvZ+rUqYSFhVGuXDngWRL6+++/sbS0xM7ODo1GI5+vyJB0nYlMBQUFAahfIOvXr+fRo0ekpKQAYGlpSfPmzTlw4AAJCQkA1K5dmx49evDJJ5/QrVs3TExMSElJkS8hIzRgwAD27NmjrgcEBNCpUyc2bdrE06dPARg+fDjVq1dn4sSJJCUlAc8GBjg6OmJvb692l8nnKzIiiUZk6KuvviIgIACdToeiKNy8eZMxY8ZQp04dJkyYwPHjx7GysmLcuHEcPnyYlStXZngs6U4xPikpKdja2tK8eXN1W7FixahRowbe3t7069eP+fPnA9CvXz+io6O5cuUKkHbUocz+IDIjXWciQ7du3cLZ2RkTExPCw8OpWbMmAPPnz+fo0aNs3bqVUaNG0a5dO06cOEFISAjffPMNzs7OeRu4yNLzU8oArFixgqJFi9KzZ09MTEw4evQo69atY8uWLZQrVw4vLy/8/PwYP348c+bMycPIRX4kiUak6/kvot9++40+ffowY8YMRo0aBcDTp08JCgoiICCAu3fvcuvWLRISEggODqZRo0Z5GbrIQuqv/POtkBYtWnDv3j38/Pzo0KEDVlZW/Pvvv8TFxTFhwgRiY2PZsmULjRs3JiQkJK9CF/mUJBqRRkJCAhYWFgDcvn2bIkWKMGPGDPbs2cNHH32kN0w5MjKS27dvM3HiROLj4zl48KB0kxm506dPU716dQAWL15MgwYNqF27Nt26dSMiIoLJkyfTpUsX9WcA4Nq1a4SGhtKrVy9MTU3TjFATIjOSaISejRs3cufOHcaMGcPo0aP5448/OHfuHJcvX2bZsmXs2rWLMWPGqDdjpn7hPP9XsgxxNV6XLl2iZs2aTJkyhadPn7JkyRKOHTtGlSpVSE5OpkuXLty5c4cpU6bQpUsXzM3N0xxDRpeJnJKfFqHn/PnzzJw5k23btnHy5Em1m6RixYpqS2bRokVoNBqGDh2aZlirTqeTJGOEUu95cXR0ZPHixYwcORJzc3MuXrxImTJl+Pfff7GysiIoKIguXbowb948NBoNnTp10mvZAJJkRI7JqDOhZ8aMGTRo0ICQkBCGDBlCtWrV1LKKFSvi6+tLu3bt+Prrr1mwYAGg/8Xz/AVmYRyGDBlCv379AChatCh2dnYkJiaiKAoBAQEAWFlZER8fj6mpKUFBQZQpU4ZRo0Zx8ODBvAxdFBDyp4lQpbZMKleuTK1atfjiiy8oVaoUAwcOxMbGBkVReOutt/joo494+PAhx44dk776fGDq1Knqg8mePn1K165dOX36NAcOHGDy5MkkJCTw2WefYWlpiU6nw9TUlC1btjBt2jSaNm2ax9GLAkERhVpKSkqGZX5+fopWq1UWLVqkxMXFqdtv3ryp/Pvvv+q+Op3O4HGKV7dy5UqlRIkSSlRUlKIoinLv3j1l0aJFSrFixZTp06er9SZNmqQcP35cXU9OTn7tsYqCRVo0hdjzQ5h37tzJP//8g7m5Oe3atcPW1pYZM2ag0WgYP348iYmJtG3blilTphAdHc2+ffvSHEMYlxc/m3feeYdy5crRtGlTQkJCcHR0pE+fPmg0GqZOncrZs2eJiYnh6tWrevfKyDU38apk1FkhpTzX5TV58mQCAwN58803CQ8Pp0OHDowYMYLGjRsDMGfOHBYsWICTkxOWlpYcOXJEb24sYXyeTzKHDx/G2dkZV1dXrl69St++fXnw4AEHDx7E0dGRx48f8+eff7Jy5UqcnJxYsWKFTJApclcet6hEHvvyyy+VMmXKKEePHlUURVG++eYbRaPRKB07dlRCQkLUeqGhoUpISIjajZKUlJQn8YqsPd8dOmXKFKVatWrKzz//rDx58kRRFEX566+/lAYNGigVKlRQ7t69m+4x5PMVuUkSTSH2999/K0OHDlUCAgIURVGUn3/+WSlatKgydepUxdnZWWnRooWyZ8+eNPtJn33+MH36dMXR0VH5/fffldjYWL2yGzduKPXq1VPc3NyUO3fu6JXJNTeR2yTRFCIvfoE8efJECQ4OVv755x/l5MmTSoUKFZRFixYpiqIoq1atUiwsLJRmzZopJ06cyItwxSu4evWqUrVqVSUoKEhRFEV58OCBcvLkSeXzzz9XNmzYoCiKokRERChvvvmm8t577+VlqKIQkMEAhYTy3DWZH3/8kSZNmuDq6oqnpydWVlb88MMPlCtXDh8fH+DZNDTt2rXD2tqaGjVq5GXo4iWYmJhgbm5OdHQ0f/zxB+vWrePEiRMkJCTw9OlTHj16xNChQ9m7d6869FkIQ5HhQoWATqdTk0x4eDhffPEFgwYN4t69e+oTMO/fv09cXBx///038fHxbN++nfbt27N69Wq0Wi06nS6PX4XISHqfTalSpXB2duY///kPXl5e2NnZMW/ePA4dOkTFihV5+PAhAGXKlFGfFySEocioswLu+ZbMvHnzOHXqFOHh4Vy5coXmzZsTEBBA6dKlOXr0KK1bt8bZ2Zn4+HhsbGwICwvDzMxMbso0Ys+PLtu3bx9xcXGYmZnRqlUrUlJSOHbsGFqtlnr16qn7vPPOO3Tq1ImJEyfmVdiikJFEU0h8+eWXzJw5k02bNlGmTBl27NjBpk2bKFKkCIGBgbi6unL8+HEOHTqERqNh+PDhmJqaygSK+cSECRNYs2YNNjY2XL16lXbt2jF27FhatGgBQGxsLA8ePMDX15e7d+9y/Phx+VzFayOJphCIj4/nvffe4+2332bu3Lnq9nXr1jF79mxcXFz4/vvvKV26tF7rRe6jyB9WrlzJJ598wrZt23jzzTe5ffs2w4cPp1ixYkyePJnGjRuzbNky1q1bh7m5Ob/++qvcJyNeK7lGUwhYWlpiamrKpUuX9Lb37t2bJk2asHv3bgYOHEhkZKTelP/yJZQ/nD59msaNG1OvXj31Ucz//e9/uXbtGqtXrwZg0KBBjBs3jt9//x0zMzOSk5Pl8xWvjSSaAia9C8OKolCvXj2uXLlCSEgIycnJalnNmjXp1KkTJiYmzJ8/n6SkJLkeY8Re/HwVRSE2NpYnT56o25KSknB3d2f69On89NNPREREYG5uTteuXdUL/9JtJl4nSTQFyIuPX16/fj3r168nPj6ejz/+GFtbWyZMmMBvv/3G48ePefLkCb/99htNmjShRo0a7Ny5k9jY2Dx+FSIjz3++V69eJTIyEkVRGDBgAL/99hubNm1Cq9Wq0wOZmpry5ptvYm9vr3ccacmI102u0RRAkyZNYu3atVSqVImLFy9SoUIF5s2bR+3atWnTpg0PHz7k4cOHFCtWjISEBP766y+Cg4MZNmwY+/btk/sqjJDywtx0v/zyCw8ePKBq1ar07NmThIQEpk6dyooVK2jdujUmJiYMGDAAgB07dkgrVeQpaT8XMCtXrmT16tVs27aNOnXq8M033+Dr68ujR4+wtLTk999/JyQkhHPnzmFnZ6feoLlx40acnZ2xtbXN41cgXvR8S2b9+vWsWrWKFStW8PjxY86fP8+ECRMYMmQICxcuZMiQITg6OmJlZYWNjQ2HDx9Go9HILNsiT0miKWAuXrxIjx49qFOnDhs2bGDSpEksXryY9u3bExsbi06no1WrVrRq1QqAo0ePsnr1ajZu3MiePXuwsbHJ41cgXpSaIPbu3UtwcDATJ06kc+fOAMTExODq6srkyZNZv349Z86c4eLFi5iamuLl5YWJiYkMURd5Tv7Eycde7PXU6XRERERQvnx5Tpw4waBBg5g3bx7Dhw9Hp9MREBBAUFCQ3l3g165d48SJE+zdu5fq1au/7pcgsikqKopBgwaxYcMGnj59qm63s7Ojd+/evPvuu/z666+4ubnRqVMn2rVrJxf+hdGQRJNPPT+tzLVr17h//z5arZbu3bvzySef4OHhwbfffsuwYcOAZ4/w3b59O5cvX9a7GPz++++za9cuqlWrlievQ2SPk5MTmzdvxsHBgc2bN3Py5Em1rHjx4rzxxhtcuXIlzX5y4V8YA0k0+VRqd8onn3xCp06dcHd3Z+LEiVhZWTFy5EhKlSqFo6Mj//77L1evXqVnz548fPgQPz+/NMeys7N7zdGLl1G9enU2b95MSkoKixYtIjw8HHh21/+FCxdwcXHJ2wCFyICMOstnnr+ou3HjRsaOHcuSJUs4ffo0v/76K66urtSuXZs7d+6wbNkynJ2dKVasGLa2tvz5559yR3gBcPLkSfr27cvDhw/x8PDA3Nyc69evc/jwYczNzWVuOmF0JNHkU/v27WPTpk3UqFGDDz/8EICtW7eyePFiihUrxuDBg3F2dub8+fOULFmSJk2aoNVq5cJwAXH27Fk6depEmTJl6NOnj9pFmpSUJI/ZFkZHus7yoaioKD788EMCAwOJiYlRt3fq1IlRo0bxzz//sGzZMmJjY+nZsyfNmjVDq9XKheEC5O2332bz5s0kJiZy4sQJ9fqMJBlhjCTR5EOpF4adnJzYuXMnZ86cUcs6duzIxx9/zJUrV/jll18AZO6yAqpmzZosX76cU6dOMW3aNC5evJjXIQmRLuk6y8dOnTrFBx98gIeHB6NHj6Zq1apq2aFDh6hfv74kl0Lg2LFjTJgwgXXr1smsDsIoSaLJ506ePMmgQYOoU6cOY8aMwd3dXa9cLvwXDvHx8VhaWuZ1GEKkSxJNAXDy5EmGDh1K2bJlmT9/PuXLl8/rkIQQQiXXaAqAWrVqsWTJEmxtbSlbtmxehyOEEHqkRVOApN4/IRMoCiGMiSSaAkZu1hNCGBv5s7eAkSQjhDA2kmiEEEIYlCQaIYQQBiWJRgghhEFJohFCCGFQkmiEMJABAwbQpUsXdb1Zs2aMGTPmtcexd+9eNBoNjx8/fu3nFgIk0YhCaMCAAWg0GjQaDebm5rz11lvMmjWL5ORkg5538+bNzJ49O1t1JTmIgkTmjBeFUps2bQgICCAhIYGdO3fi6+uLmZkZU6ZM0auXmJiIubl5rpyzePHiuXIcIfIbadGIQsnCwgInJyfKli3L8OHDadmyJVu3blW7u+bMmYOzszOVKlUC4NatW7z33nsULVqU4sWL07lzZ27cuKEeLyUlhXHjxlG0aFFKlCjBxIkTefFe6Be7zhISEpg0aRIuLi5YWFjw1ltvsXLlSm7cuEHz5s0BKFasGBqNhgEDBgDPnrDq7+9P+fLlsbKyokaNGvz8889659m5cydubm5YWVnRvHlzvTiFyAuSaIQArKysSExMBCA4OJhLly6xe/dutm/fTlJSEl5eXtja2rJ//34OHjyIjY0Nbdq0UfdZsGABgYGBfP/99xw4cICHDx+yZcuWTM/Zv39/1q1bx9dff82FCxf45ptvsLGxwcXFhU2bNgFw6dIl7t69y1dffQWAv78/P/zwAytWrODcuXOMHTuWvn37EhISAjxLiN26daNjx46Eh4czaNAgJk+ebKi3TYjsUYQoZHx8fJTOnTsriqIoOp1O2b17t2JhYaGMHz9e8fHxURwdHZWEhAS1/urVq5VKlSopOp1O3ZaQkKBYWVkpv/32m6IoilKqVCll/vz5anlSUpJSpkwZ9TyKoihNmzZVRo8erSiKoly6dEkBlN27d6cb4549exRAefTokbotPj5eKVKkiHLo0CG9ugMHDlR69+6tKIqiTJkyRXF3d9crnzRpUppjCfE6yTUaUSht374dGxsbkpKS0Ol09OnTBz8/P3x9falWrZredZlTp05x5coVbG1t9Y4RHx/P1atXiY6O5u7du9SvX18tMzU1xcPDI033Warw8HBMTExo2rRptmO+cuUKT58+pVWrVnrbExMTqVWrFgAXLlzQiwPA09Mz2+cQwhAk0YhCqXnz5ixfvhxzc3OcnZ0xNf3/XwVra2u9unFxcdSpU4c1a9akOU7JkiVf6vxWVlY53icuLg6AHTt2ULp0ab0yCwuLl4pDiNdBEo0olKytrXnrrbeyVbd27dps2LABBwcH7Ozs0q1TqlQpjhw5QpMmTQBITk4mLCyM2rVrp1u/WrVq6HQ6QkJCaNmyZZry1BZVSkqKus3d3R0LCwsiIiIybAlVqVKFrVu36m07fPhw1i9SCAOSwQBCZMHb25s33niDzp07s3//fq5fv87evXsZNWoUt2/fBmD06NHMmzePoKAgLl68yEcffZTpPTDlypXDx8eHDz/8kKCgIPWYP/30EwBly5ZFo9Gwfft2Hjx4QFxcHLa2towfP56xY8eyatUqrl69yokTJ1i8eDGrVq0CYNiwYVy+fJkJEyZw6dIl1q5dS2BgoKHfIiEyJYlGiCwUKVKEffv24erqSrdu3ahSpQoDBw4kPj5ebeF8/PHH9OvXDx8fHzw9PbG1taVr166ZHnf58uX06NGDjz76iMqVKzN48GCePHkCQOnSpZk5cyaTJ0/G0dGRESNGADB79mymTZuGv78/VapUoU2bNuzYsUN9fLerqyubNm0iKCiIGjVqsGLFCubOnWvAd0eIrMmDz4QQQhiUtGiEEEIYlCQaIYQQBiWJRgghhEFJohFCCGFQkmiEEEIYlCQaIYQQBiWJRgghhEFJohFCCGFQkmiEEEIYlCQaIYQQBiWJRgghhEFJohFCCGFQ/wddtrUBjk0tPQAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                               Experiment  Accuracy  Precision  Recall  \\\n",
              "0              LinearSVC + TF-IDF + SMOTE    0.8423     0.8562  0.8423   \n",
              "1       LinearSVC + TF-IDF + class_weight    0.8462     0.8537  0.8462   \n",
              "2                 LinearSVC + BoW (lemma)    0.8526     0.8502  0.8526   \n",
              "3               LinearSVC + TF-IDF (stem)    0.8615     0.8550  0.8615   \n",
              "4  LinearSVC + TF-IDF + RandomOverSampler    0.8436     0.8468  0.8436   \n",
              "5             MultinomialNB + BoW (lemma)    0.8603     0.8535  0.8603   \n",
              "6              LinearSVC + TF-IDF (lemma)    0.8551     0.8478  0.8551   \n",
              "7      LinearSVC + TF-IDF + no resampling    0.8551     0.8478  0.8551   \n",
              "\n",
              "   F1 (weighted)  F1 (macro)  \n",
              "0         0.8471      0.7922  \n",
              "1         0.8491      0.7920  \n",
              "2         0.8512      0.7886  \n",
              "3         0.8547      0.7867  \n",
              "4         0.8450      0.7839  \n",
              "5         0.8524      0.7822  \n",
              "6         0.8482      0.7774  \n",
              "7         0.8482      0.7774  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-5dd805d7-fcaf-468b-9e03-55cd825abe39\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Experiment</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 (weighted)</th>\n",
              "      <th>F1 (macro)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>LinearSVC + TF-IDF + SMOTE</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8562</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8471</td>\n",
              "      <td>0.7922</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>LinearSVC + TF-IDF + class_weight</td>\n",
              "      <td>0.8462</td>\n",
              "      <td>0.8537</td>\n",
              "      <td>0.8462</td>\n",
              "      <td>0.8491</td>\n",
              "      <td>0.7920</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>LinearSVC + BoW (lemma)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8502</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8512</td>\n",
              "      <td>0.7886</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>LinearSVC + TF-IDF (stem)</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8550</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8547</td>\n",
              "      <td>0.7867</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>LinearSVC + TF-IDF + RandomOverSampler</td>\n",
              "      <td>0.8436</td>\n",
              "      <td>0.8468</td>\n",
              "      <td>0.8436</td>\n",
              "      <td>0.8450</td>\n",
              "      <td>0.7839</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>MultinomialNB + BoW (lemma)</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8535</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8524</td>\n",
              "      <td>0.7822</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>LinearSVC + TF-IDF (lemma)</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>LinearSVC + TF-IDF + no resampling</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5dd805d7-fcaf-468b-9e03-55cd825abe39')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-5dd805d7-fcaf-468b-9e03-55cd825abe39 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-5dd805d7-fcaf-468b-9e03-55cd825abe39');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"results_table(\\\"A\\\")\",\n  \"rows\": 8,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"LinearSVC + TF-IDF + class_weight\",\n          \"MultinomialNB + BoW (lemma)\",\n          \"LinearSVC + TF-IDF + SMOTE\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.007338243756415516,\n        \"min\": 0.8423,\n        \"max\": 0.8615,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          0.8423,\n          0.8462,\n          0.8603\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0036686899179796725,\n        \"min\": 0.8468,\n        \"max\": 0.8562,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          0.8562,\n          0.8537,\n          0.8535\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.007338243756415516,\n        \"min\": 0.8423,\n        \"max\": 0.8615,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          0.8423,\n          0.8462,\n          0.8603\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (weighted)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.003114224278555254,\n        \"min\": 0.845,\n        \"max\": 0.8547,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          0.8471,\n          0.8491,\n          0.8524\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (macro)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.005870507400800825,\n        \"min\": 0.7774,\n        \"max\": 0.7922,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          0.7922,\n          0.792,\n          0.7822\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 18
        }
      ],
      "source": [
        "samplers = {\n",
        "    \"no resampling\":    None,\n",
        "    \"RandomOverSampler\": RandomOverSampler(random_state=SEED),\n",
        "    \"RandomUnderSampler\": RandomUnderSampler(random_state=SEED),\n",
        "    \"SMOTE\":            SMOTE(random_state=SEED, k_neighbors=5),\n",
        "}\n",
        "\n",
        "for label, sampler in samplers.items():\n",
        "    if sampler is None:\n",
        "        Xs, ys = X_tfidf_tr, y_a_train\n",
        "    else:\n",
        "        Xs, ys = sampler.fit_resample(X_tfidf_tr, y_a_train)\n",
        "    print(f\"{label:<20} training distribution: {dict(Counter(ys))}\")\n",
        "\n",
        "    model = LinearSVC(random_state=SEED).fit(Xs, ys)\n",
        "    evaluate(f\"LinearSVC + TF-IDF + {label}\", \"A\", y_a_test, model.predict(X_tfidf_te),\n",
        "             class_names=CLASSES_A, show_report=False, plot=False)\n",
        "\n",
        "weighted = LinearSVC(class_weight=\"balanced\", random_state=SEED).fit(X_tfidf_tr, y_a_train)\n",
        "evaluate(\"LinearSVC + TF-IDF + class_weight\", \"A\", y_a_test, weighted.predict(X_tfidf_te),\n",
        "         class_names=CLASSES_A, show_report=True, plot=True)\n",
        "\n",
        "results_table(\"A\").head(8)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "eea0dff4",
      "metadata": {
        "id": "eea0dff4"
      },
      "source": [
        "### 6.2 Hyper-parameter tuning of the best configuration\n",
        "\n",
        "`GridSearchCV` searches the parameter grid with 5-fold **stratified** cross-validation inside\n",
        "the training set, scoring on macro F1 rather than accuracy so the minority class actually\n",
        "counts. Only the winning combination is then measured once on the untouched test set."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 19,
      "id": "ee2df477",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 621
        },
        "id": "ee2df477",
        "outputId": "e2d58faa-cd7b-4a9d-f892-38f4d35fff26"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "best parameters   : {'C': 0.5, 'class_weight': 'balanced', 'loss': 'squared_hinge'}\n",
            "best CV macro F1  : 0.7956\n",
            "\n",
            "=== LinearSVC + TF-IDF + GridSearchCV ===\n",
            "Accuracy 0.8423 | weighted F1 0.8460 | macro F1 0.7887\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.64      0.73      0.68       180\n",
            "    positive       0.92      0.88      0.90       600\n",
            "\n",
            "    accuracy                           0.84       780\n",
            "   macro avg       0.78      0.80      0.79       780\n",
            "weighted avg       0.85      0.84      0.85       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 420x360 with 2 Axes>"
            ],
            "image/png": "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rhslOTk5T+IV2Xu+O3Ty5MlK9erVlZ9++kl5/PixoiiK8vvvvyuNGjVSypUrp9y5cyfDfcjnK14lSTSF2D///KMMHTpUCQgIUBRFUX766SfF3t5emTJliuLs7Ky0bNlSOXDgQLrtpM8+f5g2bZri6Oio/PLLL0pcXJxe2Z9//qk0aNBAqVixonLr1i29MhlzE6+aJJpC5MUvkMePHyvBwcHKgwcPlHPnzinlypVTFi5cqCiKoqxatUoxNzdXmjdvrpw9ezYvwhX/wbVr15SqVasqQUFBiqIoyv3795Vz584pn3/+ubJx40ZFURQlMjJSKV++vPLee+/lZaiiEJDJAIWE8tyYzNq1a2natClubm54enpiaWnJ6tWrKVOmDD4+PsCz29C0b98eKysratasmZehi5dgYmKCRqMhJiaG/fv388MPP3D27FkSExN58uQJjx49YujQoRw8eFA39VkIQ5HpQoWAVqvVJZmwsDC++OILBg0axN27d3VPwLx37x7x8fH8888/JCQksGPHDjp06MCaNWtQq9Votdo8PguRmYw+m1KlSuHs7MxXX32Fl5cXtra2zJ07l2PHjuHu7s7Dhw8BcHFx0T0vSAhDkVlnBdzzLZm5c+dy/vx5wsLCuHr1Ki1atCAgIIA33niDkydP0qZNG5ydnUlISMDa2pozZ85gZmYmF2Uasednlx06dIj4+HjMzMxo3bo1qampnDp1CrVaTYMGDXTbvPXWW3Tq1IkJEybkVdiikJFEU0h8+eWXfPrpp2zevBkXFxd27tzJ5s2bKVKkCIGBgbi5uXH69GmOHTuGSqXC19cXU1NTuYFiPjF+/HjWrVuHtbU1165do3379owZM4aWLVsCEBcXx/379/Hz8+POnTucPn1aPlfx2kiiKQQSEhJ47733qFatGp999plu/Q8//MCsWbNwdXXl+++/54033tBrvch1FPnDypUr+fjjj9m+fTvly5fn77//xtfXl6JFizJp0iSaNGnCkiVL+OGHH9BoNOzZs0eukxGvlYzRFAIWFhaYmpoSERGht/7999+nadOm7Nu3j4EDB3L79m29W/7Ll1D+cOHCBZo0aUKDBg10j2L+3//+x/Xr11mzZg0AgwYNYuzYsfzyyy+YmZmRkpIin694bSTRFDAZDQwrikKDBg24evUqISEhpKSk6Mpq1apFp06dMDExYd68eSQnJ8t4jBF78fNVFIW4uDgeP36sW5ecnIyHhwfTpk3jxx9/JDIyEo1GQ9euXXUD/9JtJl4nSTQFyIuPX96wYQMbNmwgISGBjz76CBsbG8aPH8/evXuJjo7m8ePH7N27l6ZNm1KzZk127dpFXFxcHp+FyMzzn++1a9e4ffs2iqLQv39/9u7dy+bNm1Gr1brbA5mamlK+fHns7Oz09iMtGfG6yRhNATRx4kTWr19PpUqVuHLlCuXKlWPu3LnUqVOHtm3b8vDhQx4+fEjRokVJTEzk999/Jzg4mGHDhnHo0CG5rsIIKS/cm+7nn3/m/v37VK1alR49epCYmMiUKVNYtmwZbdq0wcTEhP79+wOwc+dOaaWKPCXt5wJm5cqVrFmzhu3bt1O3bl2WL1+On58fjx49wsLCgl9++YWQkBAuXbqEra2t7gLNTZs24ezsjI2NTR6fgXjR8y2ZDRs2sGrVKpYtW0Z0dDTh4eGMHz+eIUOGsGDBAoYMGYKjoyOWlpZYW1sTGhqKSqWSu2yLPCWJpoC5cuUK7777LnXr1mXjxo1MnDiRRYsW0aFDB+Li4tBqtbRu3ZrWrVsDcPLkSdasWcOmTZs4cOAA1tbWeXwG4kVpCeLgwYMEBwczYcIEOnfuDEBsbCxubm5MmjSJDRs2cPHiRa5cuYKpqSleXl6YmJjIFHWR5+RPnHzsxV5PrVZLZGQkZcuW5ezZswwaNIi5c+fi6+uLVqslICCAoKAgvavAr1+/ztmzZzl48CA1atR43acgcigqKopBgwaxceNGnjx5oltva2vL+++/z9tvv82ePXuoWLEinTp1on379jLwL4yGJJp86vnbyly/fp179+6hVqvp3r07H3/8MfXq1eO7775j2LBhwLNH+O7YsYM//vhDbzC4V69e7N69m+rVq+fJeYiccXJyYsuWLZQsWZItW7Zw7tw5XVmxYsUoUaIEV69eTbedDPwLYyCJJp9K6075+OOP6dSpEx4eHkyYMAFLS0tGjBhBqVKlcHR05OnTp1y7do0ePXrw8OFDZsyYkW5ftra2rzl68TJq1KjBli1bSE1NZeHChYSFhQHPrvq/fPkyrq6ueRugEJmQWWf5zPODups2bWLMmDF8++23XLhwgT179uDm5kadOnW4desWS5YswdnZmaJFi2JjY8Ovv/4qV4QXAOfOnaNPnz48fPiQevXqodFouHHjBqGhoWg0Grk3nTA6kmjyqUOHDrF582Zq1qzJBx98AMC2bdtYtGgRRYsWZfDgwTg7OxMeHo6DgwNNmzZFrVbLwHAB8dtvv9GpUydcXFzo3bu3ros0OTlZHrMtjI50neVDUVFRfPDBBwQGBhIbG6tb36lTJ0aOHMmDBw9YsmQJcXFx9OjRg+bNm6NWq2VguACpVq0aW7ZsISkpibNnz+rGZyTJCGMkiSYfShsYdnJyYteuXVy8eFFX1rFjRz766COuXr3Kzz//DCD3LiugatWqxdKlSzl//jxTp07lypUreR2SEBmSrrN87Pz58wwYMIB69eoxatQoqlatqis7duwYDRs2lORSCJw6dYrx48fzww8/yF0dhFGSRJPPnTt3jkGDBlG3bl1Gjx6Nh4eHXrkM/BcOCQkJWFhY5HUYQmRIEk0BcO7cOYYOHUrp0qWZN28eZcuWzeuQhBBCR8ZoCoDatWvz7bffYmNjQ+nSpfM6HCGE0CMtmgIk7foJuYGiEMKYSKIpYORiPSGEsZE/ewsYSTJCCGMjiUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIA+nfvz9dunTRvW7evDmjR49+7XEcPHgQlUpFdHT0az+2ECCJRhRC/fv3R6VSoVKp0Gg0VKhQgZkzZ5KSkmLQ427ZsoVZs2blqK4kB1GQyD3jRaHUtm1bAgICSExMZNeuXfj5+WFmZsbkyZP16iUlJaHRaF7JMYsVK/ZK9iNEfiMtGlEomZub4+TkROnSpfH19aVVq1Zs27ZN1901Z84cnJ2dqVSpEgA3b97kvffew97enmLFitG5c2f+/PNP3f5SU1MZO3Ys9vb2FC9enAkTJvDitdAvdp0lJiYyceJEXF1dMTc3p0KFCqxcuZI///yTFi1aAFC0aFFUKhX9+/cHnj1h1d/fn7Jly2JpaUnNmjX56aef9I6za9cuKlasiKWlJS1atNCLU4i8IIlGCMDS0pKkpCQAgoODiYiIYN++fezYsYPk5GS8vLywsbHh8OHDHD16FGtra9q2bavbZv78+QQGBvL9999z5MgRHj58yNatW7M8Zr9+/fjhhx/45ptvuHz5MsuXL8fa2hpXV1c2b94MQEREBHfu3OHrr78GwN/fn9WrV7Ns2TIuXbrEmDFj6NOnDyEhIcCzhNitWzc6duxIWFgYgwYNYtKkSYZ624TIGUWIQsbHx0fp3LmzoiiKotVqlX379inm5ubKuHHjFB8fH8XR0VFJTEzU1V+zZo1SqVIlRavV6tYlJiYqlpaWyt69exVFUZRSpUop8+bN05UnJycrLi4uuuMoiqI0a9ZMGTVqlKIoihIREaEAyr59+zKM8cCBAwqgPHr0SLcuISFBKVKkiHLs2DG9ugMHDlTef/99RVEUZfLkyYqHh4de+cSJE9PtS4jXScZoRKG0Y8cOrK2tSU5ORqvV0rt3b2bMmIGfnx/Vq1fXG5c5f/48V69excbGRm8fCQkJXLt2jZiYGO7cuUPDhg11ZaamptSrVy9d91masLAwTExMaNasWY5jvnr1Kk+ePKF169Z665OSkqhduzYAly9f1osDwNPTM8fHEMIQJNGIQqlFixYsXboUjUaDs7Mzpqb//6tgZWWlVzc+Pp66deuybt26dPtxcHB4qeNbWlrmepv4+HgAdu7cyRtvvKFXZm5u/lJxCPE6SKIRhZKVlRUVKlTIUd06deqwceNGSpYsia2tbYZ1SpUqxYkTJ2jatCkAKSkpnDlzhjp16mRYv3r16mi1WkJCQmjVqlW68rQWVWpqqm6dh4cH5ubmREZGZtoSqlKlCtu2bdNbFxoamv1JCmFAMhlAiGx4e3tTokQJOnfuzOHDh7lx4wYHDx5k5MiR/P333wCMGjWKuXPnEhQUxJUrV/jwww+zvAamTJky+Pj48MEHHxAUFKTb548//ghA6dKlUalU7Nixg/v37xMfH4+NjQ3jxo1jzJgxrFq1imvXrnH27FkWLVrEqlWrABg2bBh//PEH48ePJyIigvXr1xMYGGjot0iILEmiESIbRYoU4dChQ7i5udGtWzeqVKnCwIEDSUhI0LVwPvroI/r27YuPjw+enp7Y2NjQtWvXLPe7dOlS3n33XT788EMqV67M4MGDefz4MQBvvPEGn376KZMmTcLR0ZHhw4cDMGvWLKZOnYq/vz9VqlShbdu27Ny5U/f4bjc3NzZv3kxQUBA1a9Zk2bJlfPbZZwZ8d4TInjz4TAghhEFJi0YIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAYliUYIIYRBSaIRQghhUJJohBBCGJQkGiGEEAb1f8hHxMe3/lApAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "param_grid = (\n",
        "    {\"C\": [0.1, 1]} if QUICK_RUN else\n",
        "    {\"C\": [0.01, 0.1, 0.5, 1, 5], \"class_weight\": [None, \"balanced\"], \"loss\": [\"squared_hinge\"]}\n",
        ")\n",
        "\n",
        "grid = GridSearchCV(LinearSVC(random_state=SEED), param_grid,\n",
        "                    cv=3 if QUICK_RUN else 5, scoring=\"f1_macro\", n_jobs=-1)\n",
        "grid.fit(X_tfidf_tr, y_a_train)\n",
        "\n",
        "print(\"best parameters   :\", grid.best_params_)\n",
        "print(\"best CV macro F1  :\", round(grid.best_score_, 4))\n",
        "\n",
        "_ = evaluate(\"LinearSVC + TF-IDF + GridSearchCV\", \"A\", y_a_test,\n",
        "             grid.best_estimator_.predict(X_tfidf_te),\n",
        "             class_names=CLASSES_A, show_report=True, plot=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "id": "b1ce6cc0",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 714
        },
        "id": "b1ce6cc0",
        "outputId": "3690a053-e859-4790-d7e8-4bdc6a26ac3f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "best RF parameters: {'max_depth': None, 'min_samples_leaf': 2, 'n_estimators': 200}\n",
            "\n",
            "=== RandomForest + TF-IDF + GridSearchCV ===\n",
            "Accuracy 0.8385 | weighted F1 0.8428 | macro F1 0.7853\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                 Experiment  Accuracy  Precision  Recall  \\\n",
              "0                LinearSVC + TF-IDF + SMOTE    0.8423     0.8562  0.8423   \n",
              "1         LinearSVC + TF-IDF + class_weight    0.8462     0.8537  0.8462   \n",
              "2         LinearSVC + TF-IDF + GridSearchCV    0.8423     0.8519  0.8423   \n",
              "3                   LinearSVC + BoW (lemma)    0.8526     0.8502  0.8526   \n",
              "4                 LinearSVC + TF-IDF (stem)    0.8615     0.8550  0.8615   \n",
              "5      RandomForest + TF-IDF + GridSearchCV    0.8385     0.8504  0.8385   \n",
              "6    LinearSVC + TF-IDF + RandomOverSampler    0.8436     0.8468  0.8436   \n",
              "7               MultinomialNB + BoW (lemma)    0.8603     0.8535  0.8603   \n",
              "8        LinearSVC + TF-IDF + no resampling    0.8551     0.8478  0.8551   \n",
              "9                LinearSVC + TF-IDF (lemma)    0.8551     0.8478  0.8551   \n",
              "10               RandomForest + BoW (lemma)    0.8487     0.8426  0.8487   \n",
              "11            RandomForest + TF-IDF (lemma)    0.8564     0.8510  0.8564   \n",
              "12         LogisticRegression + BoW (lemma)    0.8526     0.8455  0.8526   \n",
              "13             RandomForest + TF-IDF (stem)    0.8526     0.8455  0.8526   \n",
              "14  LinearSVC + TF-IDF + RandomUnderSampler    0.7846     0.8322  0.7846   \n",
              "15       LogisticRegression + TF-IDF (stem)    0.8321     0.8516  0.8321   \n",
              "16      LogisticRegression + TF-IDF (lemma)    0.8308     0.8475  0.8308   \n",
              "17            MultinomialNB + TF-IDF (stem)    0.8154     0.8511  0.8154   \n",
              "18           MultinomialNB + TF-IDF (lemma)    0.8115     0.8486  0.8115   \n",
              "\n",
              "    F1 (weighted)  F1 (macro)  \n",
              "0          0.8471      0.7922  \n",
              "1          0.8491      0.7920  \n",
              "2          0.8460      0.7887  \n",
              "3          0.8512      0.7886  \n",
              "4          0.8547      0.7867  \n",
              "5          0.8428      0.7853  \n",
              "6          0.8450      0.7839  \n",
              "7          0.8524      0.7822  \n",
              "8          0.8482      0.7774  \n",
              "9          0.8482      0.7774  \n",
              "10         0.8444      0.7752  \n",
              "11         0.8435      0.7641  \n",
              "12         0.8406      0.7609  \n",
              "13         0.8406      0.7609  \n",
              "14         0.7976      0.7383  \n",
              "15         0.7953      0.6718  \n",
              "16         0.7942      0.6705  \n",
              "17         0.7637      0.6131  \n",
              "18         0.7568      0.6004  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-0179352e-bd64-43c2-8c20-7839375e927d\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Experiment</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 (weighted)</th>\n",
              "      <th>F1 (macro)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>LinearSVC + TF-IDF + SMOTE</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8562</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8471</td>\n",
              "      <td>0.7922</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>LinearSVC + TF-IDF + class_weight</td>\n",
              "      <td>0.8462</td>\n",
              "      <td>0.8537</td>\n",
              "      <td>0.8462</td>\n",
              "      <td>0.8491</td>\n",
              "      <td>0.7920</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>LinearSVC + TF-IDF + GridSearchCV</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8519</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8460</td>\n",
              "      <td>0.7887</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>LinearSVC + BoW (lemma)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8502</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8512</td>\n",
              "      <td>0.7886</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>LinearSVC + TF-IDF (stem)</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8550</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8547</td>\n",
              "      <td>0.7867</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>RandomForest + TF-IDF + GridSearchCV</td>\n",
              "      <td>0.8385</td>\n",
              "      <td>0.8504</td>\n",
              "      <td>0.8385</td>\n",
              "      <td>0.8428</td>\n",
              "      <td>0.7853</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>LinearSVC + TF-IDF + RandomOverSampler</td>\n",
              "      <td>0.8436</td>\n",
              "      <td>0.8468</td>\n",
              "      <td>0.8436</td>\n",
              "      <td>0.8450</td>\n",
              "      <td>0.7839</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>MultinomialNB + BoW (lemma)</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8535</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8524</td>\n",
              "      <td>0.7822</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>LinearSVC + TF-IDF + no resampling</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>LinearSVC + TF-IDF (lemma)</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>RandomForest + BoW (lemma)</td>\n",
              "      <td>0.8487</td>\n",
              "      <td>0.8426</td>\n",
              "      <td>0.8487</td>\n",
              "      <td>0.8444</td>\n",
              "      <td>0.7752</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>RandomForest + TF-IDF (lemma)</td>\n",
              "      <td>0.8564</td>\n",
              "      <td>0.8510</td>\n",
              "      <td>0.8564</td>\n",
              "      <td>0.8435</td>\n",
              "      <td>0.7641</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>LogisticRegression + BoW (lemma)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8455</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8406</td>\n",
              "      <td>0.7609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>RandomForest + TF-IDF (stem)</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8455</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8406</td>\n",
              "      <td>0.7609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>LinearSVC + TF-IDF + RandomUnderSampler</td>\n",
              "      <td>0.7846</td>\n",
              "      <td>0.8322</td>\n",
              "      <td>0.7846</td>\n",
              "      <td>0.7976</td>\n",
              "      <td>0.7383</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>LogisticRegression + TF-IDF (stem)</td>\n",
              "      <td>0.8321</td>\n",
              "      <td>0.8516</td>\n",
              "      <td>0.8321</td>\n",
              "      <td>0.7953</td>\n",
              "      <td>0.6718</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>LogisticRegression + TF-IDF (lemma)</td>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.8475</td>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.7942</td>\n",
              "      <td>0.6705</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>MultinomialNB + TF-IDF (stem)</td>\n",
              "      <td>0.8154</td>\n",
              "      <td>0.8511</td>\n",
              "      <td>0.8154</td>\n",
              "      <td>0.7637</td>\n",
              "      <td>0.6131</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>MultinomialNB + TF-IDF (lemma)</td>\n",
              "      <td>0.8115</td>\n",
              "      <td>0.8486</td>\n",
              "      <td>0.8115</td>\n",
              "      <td>0.7568</td>\n",
              "      <td>0.6004</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0179352e-bd64-43c2-8c20-7839375e927d')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-0179352e-bd64-43c2-8c20-7839375e927d button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-0179352e-bd64-43c2-8c20-7839375e927d');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"results_table(\\\"A\\\")\",\n  \"rows\": 19,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 19,\n        \"samples\": [\n          \"LinearSVC + TF-IDF + SMOTE\",\n          \"RandomForest + TF-IDF + GridSearchCV\",\n          \"RandomForest + TF-IDF (lemma)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.01946963597877986,\n        \"min\": 0.7846,\n        \"max\": 0.8615,\n        \"num_unique_values\": 15,\n        \"samples\": [\n          0.8564,\n          0.8321,\n          0.8423\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.005347678077326018,\n        \"min\": 0.8322,\n        \"max\": 0.8562,\n        \"num_unique_values\": 17,\n        \"samples\": [\n          0.8562,\n          0.8537,\n          0.8504\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.01946963597877986,\n        \"min\": 0.7846,\n        \"max\": 0.8615,\n        \"num_unique_values\": 15,\n        \"samples\": [\n          0.8564,\n          0.8321,\n          0.8423\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (weighted)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.031114204837823796,\n        \"min\": 0.7568,\n        \"max\": 0.8547,\n        \"num_unique_values\": 17,\n        \"samples\": [\n          0.8471,\n          0.8491,\n          0.8428\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (macro)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.06123395791829221,\n        \"min\": 0.6004,\n        \"max\": 0.7922,\n        \"num_unique_values\": 17,\n        \"samples\": [\n          0.7922,\n          0.792,\n          0.7853\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 20
        }
      ],
      "source": [
        "# A second tuned model of a different family, for a fair comparison of the tuned results.\n",
        "rf_grid = (\n",
        "    {\"n_estimators\": [100], \"max_depth\": [None]} if QUICK_RUN else\n",
        "    {\"n_estimators\": [200, 400], \"max_depth\": [None, 30], \"min_samples_leaf\": [1, 2]}\n",
        ")\n",
        "rf_search = GridSearchCV(RandomForestClassifier(random_state=SEED, n_jobs=-1, class_weight=\"balanced\"),\n",
        "                         rf_grid, cv=3, scoring=\"f1_macro\", n_jobs=-1)\n",
        "rf_search.fit(X_tfidf_tr, y_a_train)\n",
        "print(\"best RF parameters:\", rf_search.best_params_)\n",
        "\n",
        "evaluate(\"RandomForest + TF-IDF + GridSearchCV\", \"A\", y_a_test,\n",
        "         rf_search.best_estimator_.predict(X_tfidf_te),\n",
        "         class_names=CLASSES_A, show_report=False, plot=False)\n",
        "\n",
        "results_table(\"A\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "781087de",
      "metadata": {
        "id": "781087de"
      },
      "source": [
        "### 6.3 Part A — reading the results\n",
        "\n",
        "* **The classifier family matters more than the weighting scheme.** LinearSVC and Multinomial\n",
        "  Naive Bayes lead the table; plain Logistic Regression trails on macro F1 because, without a\n",
        "  class weight, its decision threshold drifts towards the majority class.\n",
        "* **TF-IDF does not automatically beat Bag-of-Words on a corpus this small.** For LinearSVC the\n",
        "  two are within a point of each other, and for Naive Bayes raw counts are clearly better —\n",
        "  the multinomial likelihood is defined over counts, so the fractional TF-IDF weights violate\n",
        "  its assumption. TF-IDF pays off once the vocabulary is large; with ~1.8k features there is\n",
        "  little redundancy to down-weight.\n",
        "* **Lemmatisation and stemming are practically tied.** On documents of a few words the two\n",
        "  normalisation strategies collapse almost the same word forms, so the choice is not worth\n",
        "  agonising over here.\n",
        "* **The imbalance remedies buy macro F1, not accuracy.** SMOTE and `class_weight=\"balanced\"`\n",
        "  give the best minority-class recall and the best macro F1, while accuracy stays flat or dips\n",
        "  slightly — precisely the intended trade.\n",
        "* **Random under-sampling is the one that backfires.** Balancing by discarding roughly two\n",
        "  thirds of the majority documents leaves fewer than a thousand training rows, and the loss of\n",
        "  real data costs more than the balance is worth: both accuracy and macro F1 fall.\n",
        "* The grid search confirms rather than transforms the picture — tuning a linear SVM on a small,\n",
        "  clean feature space moves the score by a fraction of a point, which is a useful reminder that\n",
        "  feature engineering outranks hyper-parameter tuning on this kind of task."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "228f7843",
      "metadata": {
        "id": "228f7843"
      },
      "source": [
        "---\n",
        "# Part B — Larger corpus · three classes · word embeddings\n",
        "\n",
        "## 7. Preparing the clean dataset\n",
        "\n",
        "The text of this dataset is already normalised, so preprocessing is limited to tokenisation\n",
        "and to dropping documents that are too short to carry any signal."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "id": "6b5b2717",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "6b5b2717",
        "outputId": "bd1f1884-cafb-4b44-995c-5c118fee3689"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "documents: 19150\n",
            "average tokens per document: 7.47\n",
            "class counts: {'positive': 8331, 'negative': 7666, 'neutral': 3153}\n",
            "train: 15320 | test: 3830\n"
          ]
        }
      ],
      "source": [
        "clean_df[\"tokens\"] = clean_df[\"clean_text\"].astype(str).apply(\n",
        "    lambda s: [t for t in TOKENIZER(s.lower()) if t.isalpha()]\n",
        ")\n",
        "clean_df = clean_df[clean_df[\"tokens\"].str.len() > 0].reset_index(drop=True)\n",
        "\n",
        "print(\"documents:\", len(clean_df))\n",
        "print(\"average tokens per document:\", round(clean_df[\"tokens\"].str.len().mean(), 2))\n",
        "print(\"class counts:\", clean_df[\"sentiment\"].value_counts().to_dict())\n",
        "\n",
        "X_b_train, X_b_test, y_b_train, y_b_test = train_test_split(\n",
        "    clean_df[\"tokens\"], clean_df[\"sentiment\"],\n",
        "    test_size=TEST_SIZE_B, random_state=SEED, stratify=clean_df[\"sentiment\"],\n",
        ")\n",
        "CLASSES_B = sorted(clean_df[\"sentiment\"].unique())\n",
        "print(\"train:\", len(X_b_train), \"| test:\", len(X_b_test))"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7ae7f60b",
      "metadata": {
        "id": "7ae7f60b"
      },
      "source": [
        "## 8. Feature representation — prediction-based methods (Word2Vec)\n",
        "\n",
        "Count-based features treat every word as an independent dimension: *good* and *great* are as\n",
        "unrelated as *good* and *table*. **Word2Vec** instead learns a dense vector per word from the\n",
        "contexts the word appears in, so semantically similar words end up close together.\n",
        "\n",
        "* **CBOW** (`sg=0`) predicts the centre word from its context window — fast, better on frequent words.\n",
        "* **Skip-gram** (`sg=1`) predicts the context from the centre word — slower, better on rare words.\n",
        "\n",
        "Both models are trained **on the training tokens only**, for the same anti-leakage reason as\n",
        "the vectorisers."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "id": "2851ef31",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2851ef31",
        "outputId": "fab6cbe9-13e8-4d2f-83df-fba9a85f3171"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "CBOW vocabulary     : 5670\n",
            "Skip-gram vocabulary: 5670\n"
          ]
        }
      ],
      "source": [
        "w2v_epochs = 3 if QUICK_RUN else 10\n",
        "\n",
        "cbow = Word2Vec(sentences=X_b_train.tolist(), vector_size=EMBED_DIM, window=W2V_WINDOW,\n",
        "                min_count=2, sg=0, workers=4, seed=SEED, epochs=w2v_epochs)\n",
        "skip = Word2Vec(sentences=X_b_train.tolist(), vector_size=EMBED_DIM, window=W2V_WINDOW,\n",
        "                min_count=2, sg=1, workers=4, seed=SEED, epochs=w2v_epochs)\n",
        "\n",
        "print(\"CBOW vocabulary     :\", len(cbow.wv))\n",
        "print(\"Skip-gram vocabulary:\", len(skip.wv))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "id": "4b89fb28",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4b89fb28",
        "outputId": "dbf72766-2bdb-4e7a-cf54-6599793187d7"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "skip-gram nearest to 'good': ['great', 'differ', 'saturday', 'enjoy', 'everyon']\n",
            "skip-gram nearest to 'sad': ['depress', 'cri', 'lone', 'coz', 'kinda']\n",
            "skip-gram nearest to 'love': ['luv', 'tom', 'yo', 'amaz', 'special']\n"
          ]
        }
      ],
      "source": [
        "# A qualitative check: do the embeddings capture meaning?\n",
        "for probe in [\"good\", \"sad\", \"love\"]:\n",
        "    if probe in skip.wv:\n",
        "        neighbours = [w for w, _ in skip.wv.most_similar(probe, topn=5)]\n",
        "        print(f\"skip-gram nearest to '{probe}': {neighbours}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "662227f3",
      "metadata": {
        "id": "662227f3"
      },
      "source": [
        "### 8.1 From word vectors to document vectors\n",
        "\n",
        "Classical models need one fixed-length vector per document, so the word vectors of a document\n",
        "are **averaged**. The averaging discards word order — that limitation is exactly what the\n",
        "LSTM in section 10 is meant to overcome."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "id": "e3d0f332",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "e3d0f332",
        "outputId": "367525b0-fdb5-4888-f1f6-a86ae7806d19"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "averaged CBOW matrix: (15320, 100) | averaged skip-gram matrix: (15320, 100)\n",
            "TF-IDF reference matrix: (15320, 13408)\n"
          ]
        }
      ],
      "source": [
        "def document_vector(tokens, model):\n",
        "    \"\"\"Mean of the vectors of the in-vocabulary tokens; zeros if none is known.\"\"\"\n",
        "    vectors = [model.wv[t] for t in tokens if t in model.wv]\n",
        "    return np.mean(vectors, axis=0) if vectors else np.zeros(model.vector_size, dtype=np.float32)\n",
        "\n",
        "\n",
        "def build_matrix(token_series, model):\n",
        "    return np.vstack([document_vector(t, model) for t in token_series])\n",
        "\n",
        "\n",
        "Xb_cbow_tr, Xb_cbow_te = build_matrix(X_b_train, cbow), build_matrix(X_b_test, cbow)\n",
        "Xb_skip_tr, Xb_skip_te = build_matrix(X_b_train, skip), build_matrix(X_b_test, skip)\n",
        "print(\"averaged CBOW matrix:\", Xb_cbow_tr.shape, \"| averaged skip-gram matrix:\", Xb_skip_tr.shape)\n",
        "\n",
        "# TF-IDF on the same split, as a count-based reference point for Part B\n",
        "tfidf_b = TfidfVectorizer(ngram_range=(1, 2), min_df=2, sublinear_tf=True)\n",
        "Xb_tfidf_tr = tfidf_b.fit_transform(X_b_train.apply(\" \".join))\n",
        "Xb_tfidf_te = tfidf_b.transform(X_b_test.apply(\" \".join))\n",
        "print(\"TF-IDF reference matrix:\", Xb_tfidf_tr.shape)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "288bf11a",
      "metadata": {
        "id": "288bf11a"
      },
      "source": [
        "## 9. Classical models on the embedding features\n",
        "\n",
        "Note that `MultinomialNB` cannot be used here: embedding values are negative, and the\n",
        "multinomial model requires non-negative counts. It is therefore replaced by a scaled\n",
        "Logistic Regression / Random Forest pair on the dense features."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "id": "994f3aa0",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "994f3aa0",
        "outputId": "859d87f9-7fe0-46d1-93fb-a56f6bd45c93"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "=== LogisticRegression + Word2Vec CBOW (avg) ===\n",
            "Accuracy 0.6131 | weighted F1 0.6367 | macro F1 0.5811\n",
            "\n",
            "=== LinearSVC + Word2Vec CBOW (avg) ===\n",
            "Accuracy 0.6697 | weighted F1 0.6584 | macro F1 0.5818\n",
            "\n",
            "=== RandomForest + Word2Vec CBOW (avg) ===\n",
            "Accuracy 0.6517 | weighted F1 0.6138 | macro F1 0.5170\n",
            "\n",
            "=== LogisticRegression + Word2Vec Skip-gram (avg) ===\n",
            "Accuracy 0.6538 | weighted F1 0.6774 | macro F1 0.6177\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.78      0.65      0.71      1533\n",
            "     neutral       0.30      0.54      0.39       631\n",
            "    positive       0.83      0.70      0.76      1666\n",
            "\n",
            "    accuracy                           0.65      3830\n",
            "   macro avg       0.64      0.63      0.62      3830\n",
            "weighted avg       0.72      0.65      0.68      3830\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 420x360 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "=== LinearSVC + Word2Vec Skip-gram (avg) ===\n",
            "Accuracy 0.7016 | weighted F1 0.6901 | macro F1 0.6124\n",
            "\n",
            "=== RandomForest + Word2Vec Skip-gram (avg) ===\n",
            "Accuracy 0.6906 | weighted F1 0.6456 | macro F1 0.5393\n",
            "\n",
            "=== LogisticRegression + TF-IDF ===\n",
            "Accuracy 0.7136 | weighted F1 0.7250 | macro F1 0.6651\n",
            "\n",
            "=== LinearSVC + TF-IDF ===\n",
            "Accuracy 0.7183 | weighted F1 0.7160 | macro F1 0.6470\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                      Experiment  Accuracy  Precision  Recall  \\\n",
              "0                    LogisticRegression + TF-IDF    0.7136     0.7426  0.7136   \n",
              "1                             LinearSVC + TF-IDF    0.7183     0.7140  0.7183   \n",
              "2  LogisticRegression + Word2Vec Skip-gram (avg)    0.6538     0.7224  0.6538   \n",
              "3           LinearSVC + Word2Vec Skip-gram (avg)    0.7016     0.6837  0.7016   \n",
              "4                LinearSVC + Word2Vec CBOW (avg)    0.6697     0.6536  0.6697   \n",
              "5       LogisticRegression + Word2Vec CBOW (avg)    0.6131     0.6833  0.6131   \n",
              "6        RandomForest + Word2Vec Skip-gram (avg)    0.6906     0.6696  0.6906   \n",
              "7             RandomForest + Word2Vec CBOW (avg)    0.6517     0.6255  0.6517   \n",
              "\n",
              "   F1 (weighted)  F1 (macro)  \n",
              "0         0.7250      0.6651  \n",
              "1         0.7160      0.6470  \n",
              "2         0.6774      0.6177  \n",
              "3         0.6901      0.6124  \n",
              "4         0.6584      0.5818  \n",
              "5         0.6367      0.5811  \n",
              "6         0.6456      0.5393  \n",
              "7         0.6138      0.5170  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-5944fc48-b5d3-4ee0-b7fc-396354117465\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Experiment</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 (weighted)</th>\n",
              "      <th>F1 (macro)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>LogisticRegression + TF-IDF</td>\n",
              "      <td>0.7136</td>\n",
              "      <td>0.7426</td>\n",
              "      <td>0.7136</td>\n",
              "      <td>0.7250</td>\n",
              "      <td>0.6651</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>LinearSVC + TF-IDF</td>\n",
              "      <td>0.7183</td>\n",
              "      <td>0.7140</td>\n",
              "      <td>0.7183</td>\n",
              "      <td>0.7160</td>\n",
              "      <td>0.6470</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>LogisticRegression + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>0.6538</td>\n",
              "      <td>0.7224</td>\n",
              "      <td>0.6538</td>\n",
              "      <td>0.6774</td>\n",
              "      <td>0.6177</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>LinearSVC + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>0.7016</td>\n",
              "      <td>0.6837</td>\n",
              "      <td>0.7016</td>\n",
              "      <td>0.6901</td>\n",
              "      <td>0.6124</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>LinearSVC + Word2Vec CBOW (avg)</td>\n",
              "      <td>0.6697</td>\n",
              "      <td>0.6536</td>\n",
              "      <td>0.6697</td>\n",
              "      <td>0.6584</td>\n",
              "      <td>0.5818</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>LogisticRegression + Word2Vec CBOW (avg)</td>\n",
              "      <td>0.6131</td>\n",
              "      <td>0.6833</td>\n",
              "      <td>0.6131</td>\n",
              "      <td>0.6367</td>\n",
              "      <td>0.5811</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>RandomForest + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>0.6906</td>\n",
              "      <td>0.6696</td>\n",
              "      <td>0.6906</td>\n",
              "      <td>0.6456</td>\n",
              "      <td>0.5393</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>RandomForest + Word2Vec CBOW (avg)</td>\n",
              "      <td>0.6517</td>\n",
              "      <td>0.6255</td>\n",
              "      <td>0.6517</td>\n",
              "      <td>0.6138</td>\n",
              "      <td>0.5170</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5944fc48-b5d3-4ee0-b7fc-396354117465')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-5944fc48-b5d3-4ee0-b7fc-396354117465 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-5944fc48-b5d3-4ee0-b7fc-396354117465');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"results_table(\\\"B\\\")\",\n  \"rows\": 8,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"LinearSVC + TF-IDF\",\n          \"LogisticRegression + Word2Vec CBOW (avg)\",\n          \"LogisticRegression + TF-IDF\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03615162513636145,\n        \"min\": 0.6131,\n        \"max\": 0.7183,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.7183,\n          0.6131,\n          0.7136\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03835633445543442,\n        \"min\": 0.6255,\n        \"max\": 0.7426,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.714,\n          0.6833,\n          0.7426\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03615162513636145,\n        \"min\": 0.6131,\n        \"max\": 0.7183,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.7183,\n          0.6131,\n          0.7136\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (weighted)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.038906288511168535,\n        \"min\": 0.6138,\n        \"max\": 0.725,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.716,\n          0.6367,\n          0.725\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (macro)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05069482222081464,\n        \"min\": 0.517,\n        \"max\": 0.6651,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.647,\n          0.5811,\n          0.6651\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 25
        }
      ],
      "source": [
        "def run_dense_models(Xtr, ytr, Xte, yte, tag, plot_for=()):\n",
        "    models = {\n",
        "        \"LogisticRegression\": LogisticRegression(max_iter=3000, random_state=SEED,\n",
        "                                                 class_weight=\"balanced\"),\n",
        "        \"LinearSVC\":          LinearSVC(random_state=SEED, class_weight=\"balanced\"),\n",
        "        \"RandomForest\":       RandomForestClassifier(n_estimators=100 if QUICK_RUN else 300,\n",
        "                                                     random_state=SEED, n_jobs=-1,\n",
        "                                                     class_weight=\"balanced\"),\n",
        "    }\n",
        "    for name, model in models.items():\n",
        "        model.fit(Xtr, ytr)\n",
        "        evaluate(f\"{name} + {tag}\", \"B\", yte, model.predict(Xte), class_names=CLASSES_B,\n",
        "                 show_report=name in plot_for, plot=name in plot_for)\n",
        "\n",
        "\n",
        "run_dense_models(Xb_cbow_tr, y_b_train, Xb_cbow_te, y_b_test, \"Word2Vec CBOW (avg)\")\n",
        "run_dense_models(Xb_skip_tr, y_b_train, Xb_skip_te, y_b_test, \"Word2Vec Skip-gram (avg)\",\n",
        "                 plot_for=(\"LogisticRegression\",))\n",
        "\n",
        "for name, model in {\"LogisticRegression\": LogisticRegression(max_iter=2000, random_state=SEED,\n",
        "                                                             class_weight=\"balanced\"),\n",
        "                    \"LinearSVC\": LinearSVC(random_state=SEED, class_weight=\"balanced\")}.items():\n",
        "    model.fit(Xb_tfidf_tr, y_b_train)\n",
        "    evaluate(f\"{name} + TF-IDF\", \"B\", y_b_test, model.predict(Xb_tfidf_te),\n",
        "             class_names=CLASSES_B, show_report=False, plot=False)\n",
        "\n",
        "results_table(\"B\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "2b469bae",
      "metadata": {
        "id": "2b469bae"
      },
      "source": [
        "## 10. Deep learning — Bidirectional LSTM over the embedding sequences\n",
        "\n",
        "Averaged vectors throw away word order, so the sentence *\"not happy at all\"* and\n",
        "*\"happy, not at all\"* collapse to the same point. An LSTM reads the document as a **sequence**\n",
        "of word vectors and keeps a memory state, so order and negation scope can be learned.\n",
        "\n",
        "Architecture:\n",
        "\n",
        "```\n",
        "Embedding (Word2Vec weights, frozen, mask_zero=True)\n",
        "    -> Bidirectional LSTM(96)      reads the sentence forwards and backwards\n",
        "    -> Dropout(0.4)                regularisation, the corpus is small\n",
        "    -> Dense(64, relu)\n",
        "    -> Dense(3, softmax)\n",
        "```\n",
        "\n",
        "The Word2Vec matrix trained above is loaded into the embedding layer instead of starting from\n",
        "random vectors, which is what makes this model trainable on a corpus of this size.\n",
        "Class weights compensate for the small `neutral` class and `EarlyStopping` restores the best\n",
        "epoch, so the reported result is not the over-fitted last one."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 26,
      "id": "ea644406",
      "metadata": {
        "lines_to_next_cell": 1,
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ea644406",
        "outputId": "a86988c3-f18f-4335-c483-247a0e571e65"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "sequence tensors: (15320, 25) (3830, 25)\n",
            "classes         : ['negative', 'neutral', 'positive']\n"
          ]
        }
      ],
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow.keras.preprocessing.sequence import pad_sequences\n",
        "from tensorflow.keras.utils import to_categorical\n",
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras.layers import (Embedding, Bidirectional, LSTM, Dense, Dropout, Input)\n",
        "from tensorflow.keras.callbacks import EarlyStopping\n",
        "from sklearn.utils.class_weight import compute_class_weight\n",
        "\n",
        "tf.random.set_seed(SEED)\n",
        "\n",
        "# --- vocabulary and embedding matrix, both derived from the CBOW model -----------------\n",
        "word_index = {w: i + 1 for i, w in enumerate(cbow.wv.index_to_key)}   # index 0 = padding\n",
        "embedding_matrix = np.zeros((len(word_index) + 1, EMBED_DIM), dtype=np.float32)\n",
        "for word, idx in word_index.items():\n",
        "    embedding_matrix[idx] = cbow.wv[word]\n",
        "\n",
        "def to_sequences(token_series):\n",
        "    return pad_sequences([[word_index[t] for t in doc if t in word_index] for doc in token_series],\n",
        "                         maxlen=MAX_LEN, padding=\"post\", truncating=\"post\")\n",
        "\n",
        "Xseq_tr, Xseq_te = to_sequences(X_b_train), to_sequences(X_b_test)\n",
        "\n",
        "label_encoder = LabelEncoder().fit(clean_df[\"sentiment\"])\n",
        "yc_tr = to_categorical(label_encoder.transform(y_b_train))\n",
        "yc_te = to_categorical(label_encoder.transform(y_b_test))\n",
        "\n",
        "print(\"sequence tensors:\", Xseq_tr.shape, Xseq_te.shape)\n",
        "print(\"classes         :\", list(label_encoder.classes_))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "id": "170ffd1c",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 859
        },
        "id": "170ffd1c",
        "outputId": "83eb5f36-be16-476c-de31-feba2861522a"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1mModel: \"sequential\"\u001b[0m\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
              "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                   \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape          \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m      Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
              "│ embedding (\u001b[38;5;33mEmbedding\u001b[0m)           │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m25\u001b[0m, \u001b[38;5;34m100\u001b[0m)        │       \u001b[38;5;34m567,100\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ bidirectional (\u001b[38;5;33mBidirectional\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m192\u001b[0m)            │       \u001b[38;5;34m151,296\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout (\u001b[38;5;33mDropout\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m192\u001b[0m)            │             \u001b[38;5;34m0\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense (\u001b[38;5;33mDense\u001b[0m)                   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)             │        \u001b[38;5;34m12,352\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout_1 (\u001b[38;5;33mDropout\u001b[0m)             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)             │             \u001b[38;5;34m0\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3\u001b[0m)              │           \u001b[38;5;34m195\u001b[0m │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\"> Layer (type)                    </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">       Param # </span>┃\n",
              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
              "│ embedding (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Embedding</span>)           │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">25</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>)        │       <span style=\"color: #00af00; text-decoration-color: #00af00\">567,100</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ bidirectional (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Bidirectional</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>)            │       <span style=\"color: #00af00; text-decoration-color: #00af00\">151,296</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>)            │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)             │        <span style=\"color: #00af00; text-decoration-color: #00af00\">12,352</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)             │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">3</span>)              │           <span style=\"color: #00af00; text-decoration-color: #00af00\">195</span> │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m730,943\u001b[0m (2.79 MB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">730,943</span> (2.79 MB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m163,843\u001b[0m (640.01 KB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">163,843</span> (640.01 KB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m567,100\u001b[0m (2.16 MB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">567,100</span> (2.16 MB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "class weights: {'negative': np.float64(0.833), 'neutral': np.float64(2.025), 'positive': np.float64(0.766)}\n",
            "Epoch 1/15\n",
            "216/216 - 22s - 102ms/step - accuracy: 0.5533 - loss: 0.9901 - val_accuracy: 0.5705 - val_loss: 0.9373\n",
            "Epoch 2/15\n",
            "216/216 - 19s - 89ms/step - accuracy: 0.5819 - loss: 0.9445 - val_accuracy: 0.6312 - val_loss: 0.8779\n",
            "Epoch 3/15\n",
            "216/216 - 17s - 80ms/step - accuracy: 0.5923 - loss: 0.9220 - val_accuracy: 0.5855 - val_loss: 0.8879\n",
            "Epoch 4/15\n",
            "216/216 - 22s - 104ms/step - accuracy: 0.5998 - loss: 0.9084 - val_accuracy: 0.5940 - val_loss: 0.8712\n",
            "Epoch 5/15\n",
            "216/216 - 17s - 80ms/step - accuracy: 0.6069 - loss: 0.8966 - val_accuracy: 0.6103 - val_loss: 0.8670\n",
            "Epoch 6/15\n",
            "216/216 - 17s - 81ms/step - accuracy: 0.6127 - loss: 0.8884 - val_accuracy: 0.6168 - val_loss: 0.8456\n",
            "Epoch 7/15\n",
            "216/216 - 18s - 84ms/step - accuracy: 0.6187 - loss: 0.8809 - val_accuracy: 0.6286 - val_loss: 0.8377\n",
            "Epoch 8/15\n",
            "216/216 - 19s - 86ms/step - accuracy: 0.6229 - loss: 0.8750 - val_accuracy: 0.6358 - val_loss: 0.8225\n",
            "Epoch 9/15\n",
            "216/216 - 17s - 80ms/step - accuracy: 0.6268 - loss: 0.8701 - val_accuracy: 0.6449 - val_loss: 0.8122\n",
            "Epoch 10/15\n",
            "216/216 - 18s - 81ms/step - accuracy: 0.6352 - loss: 0.8594 - val_accuracy: 0.6514 - val_loss: 0.8132\n",
            "Epoch 11/15\n",
            "216/216 - 20s - 94ms/step - accuracy: 0.6340 - loss: 0.8566 - val_accuracy: 0.6403 - val_loss: 0.8034\n",
            "Epoch 12/15\n",
            "216/216 - 22s - 103ms/step - accuracy: 0.6372 - loss: 0.8517 - val_accuracy: 0.6397 - val_loss: 0.8003\n",
            "Epoch 13/15\n",
            "216/216 - 19s - 86ms/step - accuracy: 0.6418 - loss: 0.8483 - val_accuracy: 0.6430 - val_loss: 0.8044\n",
            "Epoch 14/15\n",
            "216/216 - 17s - 79ms/step - accuracy: 0.6416 - loss: 0.8348 - val_accuracy: 0.6371 - val_loss: 0.7918\n",
            "Epoch 15/15\n",
            "216/216 - 19s - 88ms/step - accuracy: 0.6432 - loss: 0.8340 - val_accuracy: 0.6606 - val_loss: 0.7748\n"
          ]
        }
      ],
      "source": [
        "def build_lstm():\n",
        "    model = Sequential([\n",
        "        Input(shape=(MAX_LEN,)),\n",
        "        Embedding(input_dim=embedding_matrix.shape[0], output_dim=EMBED_DIM,\n",
        "                  weights=[embedding_matrix], trainable=False, mask_zero=True),\n",
        "        Bidirectional(LSTM(96)),\n",
        "        Dropout(0.4),\n",
        "        Dense(64, activation=\"relu\"),\n",
        "        Dropout(0.3),\n",
        "        Dense(len(label_encoder.classes_), activation=\"softmax\"),\n",
        "    ])\n",
        "    model.compile(optimizer=tf.keras.optimizers.Adam(1e-3),\n",
        "                  loss=\"categorical_crossentropy\", metrics=[\"accuracy\"])\n",
        "    return model\n",
        "\n",
        "\n",
        "lstm = build_lstm()\n",
        "lstm.summary()\n",
        "\n",
        "classes = np.unique(label_encoder.transform(y_b_train))\n",
        "weights = compute_class_weight(\"balanced\", classes=classes,\n",
        "                               y=label_encoder.transform(y_b_train))\n",
        "class_weights = dict(zip(classes, weights))\n",
        "print(\"class weights:\", {label_encoder.classes_[k]: round(v, 3) for k, v in class_weights.items()})\n",
        "\n",
        "history = lstm.fit(\n",
        "    Xseq_tr, yc_tr,\n",
        "    epochs=2 if QUICK_RUN else 15,\n",
        "    batch_size=64,\n",
        "    validation_split=0.1,\n",
        "    class_weight=class_weights,\n",
        "    callbacks=[EarlyStopping(monitor=\"val_loss\", patience=3, restore_best_weights=True)],\n",
        "    verbose=2,\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "id": "1f203810",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 346
        },
        "id": "1f203810",
        "outputId": "f3992d44-f729-40f8-f365-0dfce1dcec27"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1100x340 with 2 Axes>"
            ],
            "image/png": "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BAYGVjmea/37hISEYGVlRURERJVjE0IIIeqr0tJSvv/+ez788EMOHDhg/Dl48CDe3t78/PPPgDpK4EqffTfddBMGg6FSofFybm5u5ObmVij2eaUaGZfKyMggKiqK1157jVtvvZXWrVsbR6eWa9++PQcOHKhQi+O/nnjiCf7++28+//xzSktLufvuu6/52peeK5Tfv/TcJTk5GTMzs0rnHK6urtds+1KdOnXi2LFjldoJDg5Gr9dXKZ7WrVuTkJBAQkKC8fFjx46RlZVFmzZtgKu/f0I0aaadjSOEqCmPPPKI0rdvX2X//v0VfuLj45XExETF2tpaGTdunBIZGamsWLFCcXV1VaZNm6YoiqLs3LlTefvtt5U9e/Yop0+fVn799VdFr9cra9asUWJiYpQpU6Yo27dvV+Li4pR169YpLi4uyueff37ZOMrrY/j5+SnLli1TIiMjlSeffFKxtbVV0tLSFEVRlKSkJMXNzU259957ld27dyvR0dHK2rVrldGjRyulpaWKoqg1QSZOnHjNfs+fP1+xsrJS5s6dq0RFRSmHDh1SFixYoHz44YdVjuda/z6KoijTp09XnJyclO+++06Jjo5WduzYYawBUv4a+/fvN+5/7tw5Bagwt1oIIYSoD5YvX67o9XolKyur0mMvv/yy0qVLF0VRFOWff/5RtFqt8vrrryvHjh1TDh06VKHG1ujRoxVfX19l+fLlSkxMjPLPP/8oixcvVhRFrSlmY2OjTJgwQYmOjlZ++uknxdvbu1JNkA4dOlR4/bKyMsXFxUX53//+p5w8eVKJiIhQunbtqgDK8uXLFUVRlKKiIqVFixZKr169lK1btyqnTp1SlixZomzfvr1CW927d1f0er3y9NNPX/PfxN/fX7G3t1fee+89JSoqSvn0008VnU6nrF27VlEUtV5Gz549lQ4dOijr1q1TYmNjlW3btimvvPKKsmfPniv253IOHjyoWFlZKePGjVP279+vnDhxQlmxYoUybty4asUTGhqq9OrVS9m3b5+ya9cupXPnzkqfPn2MbVzr/fP391c++uijCrF16NChwvmPEI2RJEGEaCQeeeQRBaj08/jjjyuKoigbN25Uunbtquj1esXT01OZPHmyUlJSoiiKohw7dkwZOHCg4ubmplhYWCgtWrRQPvnkE0VRFCU5OVkZNmyY4uXlpej1esXf3195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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "fig, axes = plt.subplots(1, 2, figsize=(11, 3.4))\n",
        "axes[0].plot(history.history[\"loss\"], label=\"train\")\n",
        "axes[0].plot(history.history[\"val_loss\"], label=\"validation\")\n",
        "axes[0].set_title(\"Loss per epoch\", fontsize=10); axes[0].set_xlabel(\"epoch\"); axes[0].legend()\n",
        "axes[1].plot(history.history[\"accuracy\"], label=\"train\")\n",
        "axes[1].plot(history.history[\"val_accuracy\"], label=\"validation\")\n",
        "axes[1].set_title(\"Accuracy per epoch\", fontsize=10); axes[1].set_xlabel(\"epoch\"); axes[1].legend()\n",
        "plt.tight_layout(); plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "id": "e263bd5a",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 912
        },
        "id": "e263bd5a",
        "outputId": "21bc8f9d-84f4-444c-8db1-59ef43db59a1"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "=== BiLSTM + Word2Vec CBOW (sequences) ===\n",
            "Accuracy 0.6629 | weighted F1 0.6741 | macro F1 0.6121\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.71      0.70      0.71      1533\n",
            "     neutral       0.32      0.44      0.37       631\n",
            "    positive       0.81      0.71      0.76      1666\n",
            "\n",
            "    accuracy                           0.66      3830\n",
            "   macro avg       0.61      0.62      0.61      3830\n",
            "weighted avg       0.69      0.66      0.67      3830\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 420x360 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                      Experiment  Accuracy  Precision  Recall  \\\n",
              "0                    LogisticRegression + TF-IDF    0.7136     0.7426  0.7136   \n",
              "1                             LinearSVC + TF-IDF    0.7183     0.7140  0.7183   \n",
              "2  LogisticRegression + Word2Vec Skip-gram (avg)    0.6538     0.7224  0.6538   \n",
              "3           LinearSVC + Word2Vec Skip-gram (avg)    0.7016     0.6837  0.7016   \n",
              "4             BiLSTM + Word2Vec CBOW (sequences)    0.6629     0.6907  0.6629   \n",
              "5                LinearSVC + Word2Vec CBOW (avg)    0.6697     0.6536  0.6697   \n",
              "6       LogisticRegression + Word2Vec CBOW (avg)    0.6131     0.6833  0.6131   \n",
              "7        RandomForest + Word2Vec Skip-gram (avg)    0.6906     0.6696  0.6906   \n",
              "8             RandomForest + Word2Vec CBOW (avg)    0.6517     0.6255  0.6517   \n",
              "\n",
              "   F1 (weighted)  F1 (macro)  \n",
              "0         0.7250      0.6651  \n",
              "1         0.7160      0.6470  \n",
              "2         0.6774      0.6177  \n",
              "3         0.6901      0.6124  \n",
              "4         0.6741      0.6121  \n",
              "5         0.6584      0.5818  \n",
              "6         0.6367      0.5811  \n",
              "7         0.6456      0.5393  \n",
              "8         0.6138      0.5170  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-9ebdf43b-df74-4ffb-a07b-9bcca47a16d2\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Experiment</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 (weighted)</th>\n",
              "      <th>F1 (macro)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>LogisticRegression + TF-IDF</td>\n",
              "      <td>0.7136</td>\n",
              "      <td>0.7426</td>\n",
              "      <td>0.7136</td>\n",
              "      <td>0.7250</td>\n",
              "      <td>0.6651</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>LinearSVC + TF-IDF</td>\n",
              "      <td>0.7183</td>\n",
              "      <td>0.7140</td>\n",
              "      <td>0.7183</td>\n",
              "      <td>0.7160</td>\n",
              "      <td>0.6470</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>LogisticRegression + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>0.6538</td>\n",
              "      <td>0.7224</td>\n",
              "      <td>0.6538</td>\n",
              "      <td>0.6774</td>\n",
              "      <td>0.6177</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>LinearSVC + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>0.7016</td>\n",
              "      <td>0.6837</td>\n",
              "      <td>0.7016</td>\n",
              "      <td>0.6901</td>\n",
              "      <td>0.6124</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>BiLSTM + Word2Vec CBOW (sequences)</td>\n",
              "      <td>0.6629</td>\n",
              "      <td>0.6907</td>\n",
              "      <td>0.6629</td>\n",
              "      <td>0.6741</td>\n",
              "      <td>0.6121</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>LinearSVC + Word2Vec CBOW (avg)</td>\n",
              "      <td>0.6697</td>\n",
              "      <td>0.6536</td>\n",
              "      <td>0.6697</td>\n",
              "      <td>0.6584</td>\n",
              "      <td>0.5818</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>LogisticRegression + Word2Vec CBOW (avg)</td>\n",
              "      <td>0.6131</td>\n",
              "      <td>0.6833</td>\n",
              "      <td>0.6131</td>\n",
              "      <td>0.6367</td>\n",
              "      <td>0.5811</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>RandomForest + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>0.6906</td>\n",
              "      <td>0.6696</td>\n",
              "      <td>0.6906</td>\n",
              "      <td>0.6456</td>\n",
              "      <td>0.5393</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>RandomForest + Word2Vec CBOW (avg)</td>\n",
              "      <td>0.6517</td>\n",
              "      <td>0.6255</td>\n",
              "      <td>0.6517</td>\n",
              "      <td>0.6138</td>\n",
              "      <td>0.5170</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9ebdf43b-df74-4ffb-a07b-9bcca47a16d2')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-9ebdf43b-df74-4ffb-a07b-9bcca47a16d2 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-9ebdf43b-df74-4ffb-a07b-9bcca47a16d2');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"results_table(\\\"B\\\")\",\n  \"rows\": 9,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 9,\n        \"samples\": [\n          \"RandomForest + Word2Vec Skip-gram (avg)\",\n          \"LinearSVC + TF-IDF\",\n          \"LinearSVC + Word2Vec CBOW (avg)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0341214741768289,\n        \"min\": 0.6131,\n        \"max\": 0.7183,\n        \"num_unique_values\": 9,\n        \"samples\": [\n          0.6906,\n          0.7183,\n          0.6697\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03590215870947041,\n        \"min\": 0.6255,\n        \"max\": 0.7426,\n        \"num_unique_values\": 9,\n        \"samples\": [\n          0.6696,\n          0.714,\n          0.6536\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0341214741768289,\n        \"min\": 0.6131,\n        \"max\": 0.7183,\n        \"num_unique_values\": 9,\n        \"samples\": [\n          0.6906,\n          0.7183,\n          0.6697\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (weighted)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0364146757655634,\n        \"min\": 0.6138,\n        \"max\": 0.725,\n        \"num_unique_values\": 9,\n        \"samples\": [\n          0.6456,\n          0.716,\n          0.6584\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (macro)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.04775508117235043,\n        \"min\": 0.517,\n        \"max\": 0.6651,\n        \"num_unique_values\": 9,\n        \"samples\": [\n          0.5393,\n          0.647,\n          0.5818\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 29
        }
      ],
      "source": [
        "y_pred_lstm = label_encoder.inverse_transform(lstm.predict(Xseq_te, verbose=0).argmax(axis=1))\n",
        "_ = evaluate(\"BiLSTM + Word2Vec CBOW (sequences)\", \"B\", y_b_test, y_pred_lstm,\n",
        "             class_names=CLASSES_B, show_report=True, plot=True)\n",
        "\n",
        "results_table(\"B\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b6e1a31b",
      "metadata": {
        "id": "b6e1a31b"
      },
      "source": [
        "---\n",
        "## 11. Overall comparison and conclusions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "id": "f47cb1a9",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 927
        },
        "id": "f47cb1a9",
        "outputId": "bfcfb117-8ad7-4e5f-88a2-af894ca3fb63"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                       Experiment Part  Accuracy  Precision  \\\n",
              "0                      LinearSVC + TF-IDF + SMOTE    A    0.8423     0.8562   \n",
              "1               LinearSVC + TF-IDF + class_weight    A    0.8462     0.8537   \n",
              "2               LinearSVC + TF-IDF + GridSearchCV    A    0.8423     0.8519   \n",
              "3                         LinearSVC + BoW (lemma)    A    0.8526     0.8502   \n",
              "4                       LinearSVC + TF-IDF (stem)    A    0.8615     0.8550   \n",
              "5            RandomForest + TF-IDF + GridSearchCV    A    0.8385     0.8504   \n",
              "6          LinearSVC + TF-IDF + RandomOverSampler    A    0.8436     0.8468   \n",
              "7                     MultinomialNB + BoW (lemma)    A    0.8603     0.8535   \n",
              "8              LinearSVC + TF-IDF + no resampling    A    0.8551     0.8478   \n",
              "9                      LinearSVC + TF-IDF (lemma)    A    0.8551     0.8478   \n",
              "10                     RandomForest + BoW (lemma)    A    0.8487     0.8426   \n",
              "11                  RandomForest + TF-IDF (lemma)    A    0.8564     0.8510   \n",
              "12                   RandomForest + TF-IDF (stem)    A    0.8526     0.8455   \n",
              "13               LogisticRegression + BoW (lemma)    A    0.8526     0.8455   \n",
              "14        LinearSVC + TF-IDF + RandomUnderSampler    A    0.7846     0.8322   \n",
              "15             LogisticRegression + TF-IDF (stem)    A    0.8321     0.8516   \n",
              "16            LogisticRegression + TF-IDF (lemma)    A    0.8308     0.8475   \n",
              "17                    LogisticRegression + TF-IDF    B    0.7136     0.7426   \n",
              "18                             LinearSVC + TF-IDF    B    0.7183     0.7140   \n",
              "19  LogisticRegression + Word2Vec Skip-gram (avg)    B    0.6538     0.7224   \n",
              "20                  MultinomialNB + TF-IDF (stem)    A    0.8154     0.8511   \n",
              "21           LinearSVC + Word2Vec Skip-gram (avg)    B    0.7016     0.6837   \n",
              "22             BiLSTM + Word2Vec CBOW (sequences)    B    0.6629     0.6907   \n",
              "23                 MultinomialNB + TF-IDF (lemma)    A    0.8115     0.8486   \n",
              "24                LinearSVC + Word2Vec CBOW (avg)    B    0.6697     0.6536   \n",
              "25       LogisticRegression + Word2Vec CBOW (avg)    B    0.6131     0.6833   \n",
              "26        RandomForest + Word2Vec Skip-gram (avg)    B    0.6906     0.6696   \n",
              "27             RandomForest + Word2Vec CBOW (avg)    B    0.6517     0.6255   \n",
              "\n",
              "    Recall  F1 (weighted)  F1 (macro)  \n",
              "0   0.8423         0.8471      0.7922  \n",
              "1   0.8462         0.8491      0.7920  \n",
              "2   0.8423         0.8460      0.7887  \n",
              "3   0.8526         0.8512      0.7886  \n",
              "4   0.8615         0.8547      0.7867  \n",
              "5   0.8385         0.8428      0.7853  \n",
              "6   0.8436         0.8450      0.7839  \n",
              "7   0.8603         0.8524      0.7822  \n",
              "8   0.8551         0.8482      0.7774  \n",
              "9   0.8551         0.8482      0.7774  \n",
              "10  0.8487         0.8444      0.7752  \n",
              "11  0.8564         0.8435      0.7641  \n",
              "12  0.8526         0.8406      0.7609  \n",
              "13  0.8526         0.8406      0.7609  \n",
              "14  0.7846         0.7976      0.7383  \n",
              "15  0.8321         0.7953      0.6718  \n",
              "16  0.8308         0.7942      0.6705  \n",
              "17  0.7136         0.7250      0.6651  \n",
              "18  0.7183         0.7160      0.6470  \n",
              "19  0.6538         0.6774      0.6177  \n",
              "20  0.8154         0.7637      0.6131  \n",
              "21  0.7016         0.6901      0.6124  \n",
              "22  0.6629         0.6741      0.6121  \n",
              "23  0.8115         0.7568      0.6004  \n",
              "24  0.6697         0.6584      0.5818  \n",
              "25  0.6131         0.6367      0.5811  \n",
              "26  0.6906         0.6456      0.5393  \n",
              "27  0.6517         0.6138      0.5170  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-d153e706-724c-4375-b663-3cf8f43a0b44\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Experiment</th>\n",
              "      <th>Part</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 (weighted)</th>\n",
              "      <th>F1 (macro)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>LinearSVC + TF-IDF + SMOTE</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8562</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8471</td>\n",
              "      <td>0.7922</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>LinearSVC + TF-IDF + class_weight</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8462</td>\n",
              "      <td>0.8537</td>\n",
              "      <td>0.8462</td>\n",
              "      <td>0.8491</td>\n",
              "      <td>0.7920</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>LinearSVC + TF-IDF + GridSearchCV</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8519</td>\n",
              "      <td>0.8423</td>\n",
              "      <td>0.8460</td>\n",
              "      <td>0.7887</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>LinearSVC + BoW (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8502</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8512</td>\n",
              "      <td>0.7886</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>LinearSVC + TF-IDF (stem)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8550</td>\n",
              "      <td>0.8615</td>\n",
              "      <td>0.8547</td>\n",
              "      <td>0.7867</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>RandomForest + TF-IDF + GridSearchCV</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8385</td>\n",
              "      <td>0.8504</td>\n",
              "      <td>0.8385</td>\n",
              "      <td>0.8428</td>\n",
              "      <td>0.7853</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>LinearSVC + TF-IDF + RandomOverSampler</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8436</td>\n",
              "      <td>0.8468</td>\n",
              "      <td>0.8436</td>\n",
              "      <td>0.8450</td>\n",
              "      <td>0.7839</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>MultinomialNB + BoW (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8535</td>\n",
              "      <td>0.8603</td>\n",
              "      <td>0.8524</td>\n",
              "      <td>0.7822</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>LinearSVC + TF-IDF + no resampling</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>LinearSVC + TF-IDF (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8478</td>\n",
              "      <td>0.8551</td>\n",
              "      <td>0.8482</td>\n",
              "      <td>0.7774</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>RandomForest + BoW (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8487</td>\n",
              "      <td>0.8426</td>\n",
              "      <td>0.8487</td>\n",
              "      <td>0.8444</td>\n",
              "      <td>0.7752</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>RandomForest + TF-IDF (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8564</td>\n",
              "      <td>0.8510</td>\n",
              "      <td>0.8564</td>\n",
              "      <td>0.8435</td>\n",
              "      <td>0.7641</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>RandomForest + TF-IDF (stem)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8455</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8406</td>\n",
              "      <td>0.7609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>LogisticRegression + BoW (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8455</td>\n",
              "      <td>0.8526</td>\n",
              "      <td>0.8406</td>\n",
              "      <td>0.7609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>LinearSVC + TF-IDF + RandomUnderSampler</td>\n",
              "      <td>A</td>\n",
              "      <td>0.7846</td>\n",
              "      <td>0.8322</td>\n",
              "      <td>0.7846</td>\n",
              "      <td>0.7976</td>\n",
              "      <td>0.7383</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>LogisticRegression + TF-IDF (stem)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8321</td>\n",
              "      <td>0.8516</td>\n",
              "      <td>0.8321</td>\n",
              "      <td>0.7953</td>\n",
              "      <td>0.6718</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>LogisticRegression + TF-IDF (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.8475</td>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.7942</td>\n",
              "      <td>0.6705</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>LogisticRegression + TF-IDF</td>\n",
              "      <td>B</td>\n",
              "      <td>0.7136</td>\n",
              "      <td>0.7426</td>\n",
              "      <td>0.7136</td>\n",
              "      <td>0.7250</td>\n",
              "      <td>0.6651</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>LinearSVC + TF-IDF</td>\n",
              "      <td>B</td>\n",
              "      <td>0.7183</td>\n",
              "      <td>0.7140</td>\n",
              "      <td>0.7183</td>\n",
              "      <td>0.7160</td>\n",
              "      <td>0.6470</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>LogisticRegression + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.6538</td>\n",
              "      <td>0.7224</td>\n",
              "      <td>0.6538</td>\n",
              "      <td>0.6774</td>\n",
              "      <td>0.6177</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>20</th>\n",
              "      <td>MultinomialNB + TF-IDF (stem)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8154</td>\n",
              "      <td>0.8511</td>\n",
              "      <td>0.8154</td>\n",
              "      <td>0.7637</td>\n",
              "      <td>0.6131</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>LinearSVC + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.7016</td>\n",
              "      <td>0.6837</td>\n",
              "      <td>0.7016</td>\n",
              "      <td>0.6901</td>\n",
              "      <td>0.6124</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>22</th>\n",
              "      <td>BiLSTM + Word2Vec CBOW (sequences)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.6629</td>\n",
              "      <td>0.6907</td>\n",
              "      <td>0.6629</td>\n",
              "      <td>0.6741</td>\n",
              "      <td>0.6121</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>23</th>\n",
              "      <td>MultinomialNB + TF-IDF (lemma)</td>\n",
              "      <td>A</td>\n",
              "      <td>0.8115</td>\n",
              "      <td>0.8486</td>\n",
              "      <td>0.8115</td>\n",
              "      <td>0.7568</td>\n",
              "      <td>0.6004</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>24</th>\n",
              "      <td>LinearSVC + Word2Vec CBOW (avg)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.6697</td>\n",
              "      <td>0.6536</td>\n",
              "      <td>0.6697</td>\n",
              "      <td>0.6584</td>\n",
              "      <td>0.5818</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25</th>\n",
              "      <td>LogisticRegression + Word2Vec CBOW (avg)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.6131</td>\n",
              "      <td>0.6833</td>\n",
              "      <td>0.6131</td>\n",
              "      <td>0.6367</td>\n",
              "      <td>0.5811</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>26</th>\n",
              "      <td>RandomForest + Word2Vec Skip-gram (avg)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.6906</td>\n",
              "      <td>0.6696</td>\n",
              "      <td>0.6906</td>\n",
              "      <td>0.6456</td>\n",
              "      <td>0.5393</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>27</th>\n",
              "      <td>RandomForest + Word2Vec CBOW (avg)</td>\n",
              "      <td>B</td>\n",
              "      <td>0.6517</td>\n",
              "      <td>0.6255</td>\n",
              "      <td>0.6517</td>\n",
              "      <td>0.6138</td>\n",
              "      <td>0.5170</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d153e706-724c-4375-b663-3cf8f43a0b44')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-d153e706-724c-4375-b663-3cf8f43a0b44 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-d153e706-724c-4375-b663-3cf8f43a0b44');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "  <div id=\"id_c94b2ae7-b1ac-4784-8f7e-7688b639dee0\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('final_sorted')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_c94b2ae7-b1ac-4784-8f7e-7688b639dee0 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('final_sorted');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "final_sorted",
              "summary": "{\n  \"name\": \"final_sorted\",\n  \"rows\": 28,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 28,\n        \"samples\": [\n          \"LinearSVC + TF-IDF (lemma)\",\n          \"LogisticRegression + Word2Vec CBOW (avg)\",\n          \"LinearSVC + TF-IDF + no resampling\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Part\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"B\",\n          \"A\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0827087350555995,\n        \"min\": 0.6131,\n        \"max\": 0.8615,\n        \"num_unique_values\": 24,\n        \"samples\": [\n          0.8487,\n          0.8154\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0794324420115317,\n        \"min\": 0.6255,\n        \"max\": 0.8562,\n        \"num_unique_values\": 26,\n        \"samples\": [\n          0.8478,\n          0.714\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0827087350555995,\n        \"min\": 0.6131,\n        \"max\": 0.8615,\n        \"num_unique_values\": 24,\n        \"samples\": [\n          0.8487,\n          0.8154\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (weighted)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.08209296921928268,\n        \"min\": 0.6138,\n        \"max\": 0.8547,\n        \"num_unique_values\": 26,\n        \"samples\": [\n          0.8482,\n          0.716\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 (macro)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.09121624076536523,\n        \"min\": 0.517,\n        \"max\": 0.7922,\n        \"num_unique_values\": 26,\n        \"samples\": [\n          0.7774,\n          0.647\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 30
        }
      ],
      "source": [
        "final = pd.DataFrame(RESULTS).round(4)\n",
        "final_sorted = final.sort_values(\"F1 (macro)\", ascending=False).reset_index(drop=True)\n",
        "final_sorted"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "id": "789ad31f",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "789ad31f",
        "outputId": "d4ab3f98-4142-405c-ed51-38c63dfef923"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x766 with 1 Axes>"
            ],
            "image/png": "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GpKeno6/vz8zZsxgxYoV/PHHH4SFhREWFkZCQgIABQUFTJ8+nebNm3P58mUmTJhASEgIW7du1SnnzTffZN68eTRp0oTatWuj1WrZtWsXo0aNKvfG19DQkIEDB5KYmEhkZKTai7B+/XoKCwvp378/AKtXr8bCwkLnBra0f+sY9y5duuDu7s7GjRsZMmTIIy+/qKiITz/9lFdeeYUGDRqUm+bunp958+bx1ltv8fbbb5eb/uLFi7z00kuMHj2aYcOGcfToUd544w2dNFqtlr1793LhwgUaN25cbj6rV6/mrbfeYtGiRbRp04YffviBoUOHYm5urgaZlpaWJCYm0qBBA1JTUxk6dCiWlpZMnjxZzefcuXNs2LCBjRs3UqNGDYqKiujevTvXrl3jk08+oWnTpqSlpakBJMCNGzeYN28eq1atwsDAgFdeeYWJEyeyevVqioqKWLduHcHBweW2mYWFBQB169alV69erFixgldeeUXdn5iYSKNGjXjuuefKPe/Y2Fiio6PLbM+ztENjUrlAVtyfgoabpjYAaJA36FQ1ad/qI21bfaqybUs/nBWQk5NT5XlKUFENJk6cyAsvvABAdHQ0bm5unDt3DldXV2JjYwkODmb8+PEAODs7Ex8fT+fOnfnggw8wMTFh8ODBal5NmjQhPj4eT09P8vLy1JskKB6W061bN3V9/vz5BAYGotVqcXNzw8vLi169eunM+Rg8eDBz585l7969+Pj4AMXDP/r06YO1tTUAZ8+epUmTJtSsWbO6mkgvqampOu3QsmVLjhw5UiV5u7q66swrgeIn8FOnTlXXZ82axdixY6ukvNL++OMPsrOzad68uc72du3acfr0aaB4XszatWvVfV26dNEJEu7uhfjggw9o2rQpcXFxADRv3pzU1FTmzJmjpnn77bd56aWXcHR0xMXFhQ4dOvD8888TGBiIgYGBmiYuLo6XXnoJACcnJ9LS0li6dKkaVJRuI0dHRyZOnMi6det0gorbt2+zcuVKNej95ptvOHLkCKdOncLFxQUovuZLKygoYMmSJTRt2hSAsLAwYmJiAPjzzz+5evUqrq6uD2zf0NBQunfvzvnz53FyckJRFD7++GMGDRqknufdIiIimDBhgrqem5uLvb09FteysCyQP59VSaE4YLasgldHirKkfauPtG31qcq2rVevXlVU6V+jsiM8KkL+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P9q0aYOXlxc5OTl0794dGxsbjh8/TkpKChMmTFDbd3p6Ot7e3rRq1YqTJ0+SnJzM0KFDGTNmDBs2bFDKHTx4kBo1anD48GFiY2Px9/fn6NGjtGvXjuPHj7Nt2zZGjBiBl5cXNWrUeOIxL1u2jLCwMFavXo27uzvr16/nvffe49dff6VevXpKuSlTphAWFoa7u7uSWMycOZMVK1bg7u7OL7/8wrBhwzA2NmbQoEGEh4eze/dutm/fjqOjIzdv3uTmzZsAnDx5kmrVqhEREYGPjw+6urpP+YmV3cWLFzl48KBaT8E333zD+PHjWbp0KR07duT7779n8ODB1KhRA09PT5ydnbG3tycqKoo33niD+/fvc/r0ab7//nuWL1/OsWPH8PT05OjRo2RkZJSYVMTExNC8efMS2xgTE8PAgQMJDw+nbdu2JCYmMnz4cAC1XrTZs2ezePFiFi9eTGBgIP369aN27dpMnToVR0dHhgwZwpgxY4iMjFS2SUxMJDIykr1795KYmEjPnj25cuUKzs7OHDp0iKNHjzJkyBA6duzI66+/DoCOjg7h4eHUqlWLK1euMGrUKCZPnqyWRDo6OmJjY0NMTAx16tQpdExz584lODi40Po0UztUBpVLjIcom1xUPDTMu2mgQp6gU94kvtojsdUebcU2OTm53Op6UaWkpJR7narc3Fz5C3jB+Pn58cUXX2BgYEBWVhYZGRno6Oiwfft2evToUex2nTt3xtXVlUWLFgHg4eFBdnY2MTExSpmWLVvSoUMH5s2bx48//si7777L9evXsbe3B/LG5Hfq1IlvvvmGrl27smbNGgIDA7l58ybGxsYA7NmzB19fX/744w9sbGzw8/MjOjqaK1euoKOT1znm6upKtWrVOHz4MADZ2dmYm5uzdu1a3n//fSDvrraBgYHaxfsXX3xB165dqV69OqNHj2batGlqbW/RogWffvop165do1atWixdupTx48crZerWrcvs2bPp27evsm7OnDns2bOHo0ePMm7cOH799Vf2799f5JAllUqlHHtp5belLH9qBY89/zPu3LkzO3fupFKlSgC0adMGNzc3/vvf/yrb9e7dm/T0dH744QcA/vOf//DXX3+xb98+9uzZw6RJk/j1118ZMWIEtra2BAcHM3PmTL744guuXLlSbHuaNGlCjx49+Pjjj5V1GzZsYMKECdy7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BgYGBAUFARAQEEBsbCy7d+/GxsaGmTNncvr0aZo0aVJknTt27GDJkiVs3boVNzc3bt++rVxw79y5k8aNGzN8+HCGDRtWbLt++OEHunXrxvTp09m0aROZmZnKhfe/5ebmcuTIEX777Tfq1aunrB8zZgznz59n69at2Nvb88033+Dj40N8fDz16tUjNjaWDz74gPnz5/Pee++xf/9+Pv7440L1X758mR07drBz5050dXUB6NWrF4aGhkRGRmJubs7q1at56623uHjxIpaWlvTv3x93d3dWrVqFrq4uZ86coVKlSgCMHj2azMxMDh8+jLGxMefPn8fExKTIYzt16hS9e/cmKCiIPn36cPToUUaNGoWVlRV+fn5KubCwMGbPns20adP4+uuvGTlyJO3bt8fFxaXYGJentLQ0vvjiC+rWrYuVlRUA6enpeHt706pVK06ePElycjJDhw5lzJgxSq+Ip6cnX3/9tVJPVFQUHh4eZGdnExUVpRxjdHQ0Q4YMKXb/R44cwcjIiPr16xdb5vHjx0p7YmJi0NPTY86cOcqwrcqVKwNw8OBBatSoweHDh4mNjcXf35+jR4/Srl07jh8/zrZt2xgxYgReXl7UqFFDqX/WrFksXboUR0dHhgwZQr9+/TA1NWXZsmUYGRnRu3dvZs6cyapVq4C8ZH3QoEEsX76c3NxcwsLCeOedd7h06RKmpqZKvS1btiQmJqbIY5o7dy7BwcGFPw9TO1QGlYuNhSi7XFQ8NLQEQMWLPczyeSTx1R6JrfZoO7bJycnlXueLIiUlpdzrlKRCy1auXImDgwMrVqxApVLh6urKH3/8QWBgIDNnziQ9PZ2NGzeyZcsW3nrrLQAiIiKwt7cvts4bN25ga2tLx44dqVSpEo6OjrRs2RIAS0tLdHV1MTU1xdbWttg6PvnkE95//321C6bGjRsXavvatWvJzMzk8ePHGBgYKD0iN27cICIighs3bihtnThxInv37iUiIoLQ0FCWL19Op06dmDhxIgDOzs4cPXqU77//Xm0/mZmZbNq0iapVqwJ5F7AnTpwgOTkZfX19ABYtWsS3337L119/zfDhw7lx4waTJk3C1dUVQC3ZuXHjBj169KBhw4YA1K5du9g4LF68mLfeektJdpydnTl//jwLFy5USyreeecdRo0aBUBgYCBLliwhKipKq0nF999/ryRD6enp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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x426 with 1 Axes>"
            ],
            "image/png": "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u+++o2HDhkybNg1vb2/279/Pjh07/nU4V09PT1xdXWnVqhWTJ0/G0dGR+/fvq53LnZ2dGTx4MG3atKFUqVLcvXuXkydP0rp1awC+//57Pv30UxwdHXn69CkhISE4OTmlua+BAwdSs2ZNfv75Z9q3b8/Ro0eZM2dOuheq75OHhwd9+vQhMTFRvRMOyXfD+/btS0JCgppU5MuXj2+++Ub9HJUoUYLJkyfz4sWLtw7nam5ujp+fH4MHD6ZAgQIULlyYESNG6NwZSExMpE2bNpw+fZo//viDV69eERkZCSQnT69XTbZt25Z+/frx9ddf07RpUzVhsLCwYNCgQfzwww9otVrq169PVFQUYWFhWFpa4uvrS9++fZk9ezYdOnRg2LBhWFlZcezYMWrVqpVm053atWszZMgQBg4cyL179/jiiy8oWrQof//9N/Pnz6d+/fr0798fSG4qlRJzXFwce/bsYdeuXfz4448AankNHDgQExMTOnfujKGhIVu3bmX48OEMHDhQp4lYSrOz2bNn4+Pjo863t7enaNGi/PrrrzpJSHq8vLw4fPiwzqhM5cqV47fffqNGjRpER0czePDgNGsSOnXqxPz587ly5YpOp/7MfKccOnQoVx68J4QQQuSWPF9TERoaStWqVXWmn376iWLFihEcHMyJEyeoUqUKvXv3xs/Pj5EjR6rrTps2DVdXV1q0aIGnpyf16tXDyckpVVvrFNbW1ixcuJB69epRuXJl9u7dy++//67ePR4zZgw3b96kTJkyOn0VXufu7s769evZtm0bLi4uNGrUiBMnTrz1GG1sbOjSpQujR49Gq9USFBREly5dGDhwIOXLl6dVq1acPHlS7SdQr1495s+fz7Rp06hSpQo7d+7khx9+SPe4Umg0GoKDg2nYsCHdunXD0dGRDh06cOvWLYoUKYK+vj6PHz+mS5cuODo60q5dOz799FO1U+mrV6/o06cPTk5ONGvWDEdHx3SThGrVqrFu3TrWrFnDJ598wo8//siYMWN0OmnnFg8PD+Li4ihbtixFihRR57u5uRETE6MOPZti4sSJtG7dms6dO1OtWjX+/vtvdu3aRf78+d+6nylTptCgQQO8vb3x9PSkfv36VK9eXX3/3r17bNu2jbt37+Li4oKdnZ06HTlyRGdbZmZmdOjQgadPn9K9e3ed937++WdGjRrFhAkT1HOz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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "for part, title in [(\"A\", \"Part A — binary, imbalanced (2,600 docs)\"),\n",
        "                    (\"B\", \"Part B — three classes (~19,500 docs)\")]:\n",
        "    subset = final[final[\"Part\"] == part].sort_values(\"F1 (macro)\")\n",
        "    plt.figure(figsize=(8, 0.34 * len(subset) + 1.2))\n",
        "    plt.barh(subset[\"Experiment\"], subset[\"F1 (macro)\"], color=\"#4C72B0\")\n",
        "    plt.barh(subset[\"Experiment\"], subset[\"Accuracy\"], height=0.35, color=\"#DD8452\")\n",
        "    plt.legend([\"macro F1\", \"accuracy\"], loc=\"lower right\", fontsize=8)\n",
        "    plt.title(title, fontsize=10); plt.xlim(0, 1)\n",
        "    plt.tight_layout(); plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "id": "c37b12df",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "c37b12df",
        "outputId": "8eb0f832-5202-447f-cacb-12482447f6ad"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "results written to project2_results.csv\n",
            "\n",
            "Best configuration per part:\n",
            "  Part A: LinearSVC + TF-IDF + SMOTE  (accuracy 0.8423, macro F1 0.7922)\n",
            "  Part B: LogisticRegression + TF-IDF  (accuracy 0.7136, macro F1 0.6651)\n"
          ]
        }
      ],
      "source": [
        "final.to_csv(\"project2_results.csv\", index=False)\n",
        "print(\"results written to project2_results.csv\")\n",
        "print(\"\\nBest configuration per part:\")\n",
        "for part in [\"A\", \"B\"]:\n",
        "    best = final[final[\"Part\"] == part].sort_values(\"F1 (macro)\").iloc[-1]\n",
        "    print(f\"  Part {part}: {best['Experiment']}  \"\n",
        "          f\"(accuracy {best['Accuracy']:.4f}, macro F1 {best['F1 (macro)']:.4f})\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "fc0b38a8",
      "metadata": {
        "id": "fc0b38a8"
      },
      "source": [
        "### Conclusions\n",
        "\n",
        "1. **The feature representation decides the outcome more than the classifier does.** Across\n",
        "   Part B, moving between TF-IDF, averaged CBOW vectors and averaged Skip-gram vectors changes\n",
        "   the macro F1 far more than swapping classifiers on a fixed representation.\n",
        "2. **On short texts and a corpus of this size, sparse count features win.** TF-IDF with a\n",
        "   linear model is the strongest configuration in both parts. Word2Vec vectors trained from\n",
        "   scratch on ~15k documents of ~7 words simply do not see enough context to learn reliable\n",
        "   semantics.\n",
        "3. **Skip-gram beats CBOW consistently**, for every classifier it was paired with — which\n",
        "   matches the theory, since the vocabulary is dominated by infrequent words and Skip-gram is\n",
        "   the variant that models rare words better.\n",
        "4. **Class imbalance must be handled explicitly, and the remedy must be chosen with care.**\n",
        "   Class weighting and SMOTE both raise macro F1 above the untouched baseline; random\n",
        "   under-sampling lowers it, because on a small dataset the discarded majority documents cost\n",
        "   more than the balance gains.\n",
        "5. **`neutral` is the hard class.** Its recall is the lowest in every Part B experiment: neutral\n",
        "   documents share their vocabulary with both other classes, so the signal lies in tone rather\n",
        "   than in individual words — exactly the information a bag of words cannot carry.\n",
        "6. **The LSTM is not automatically better than a linear model.** With frozen embeddings learned\n",
        "   on a small corpus and documents of about seven tokens, there is little sequential structure\n",
        "   left to exploit, and the extra capacity mostly buys variance. Deep sequence models pay off\n",
        "   with far more data — or with representations that were pre-trained on far more data.\n",
        "\n",
        "**Where to go next:** swap the locally trained Word2Vec for pre-trained GloVe or FastText\n",
        "vectors, unfreeze the embedding layer, or fine-tune a transformer such as DistilBERT. On this\n",
        "kind of sentiment task the last option is normally worth 10–15 accuracy points over everything\n",
        "tried above.\n",
        "\n",
        "*All experiments use fixed random seeds (`SEED = 42`) and a single shared train/test split per\n",
        "part, so the table above is reproducible and the comparisons are like-for-like.*"
      ]
    }
  ],
  "metadata": {
    "jupytext": {
      "cell_metadata_filter": "-all",
      "main_language": "python",
      "notebook_metadata_filter": "-all"
    },
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "version": "3.11"
    },
    "colab": {
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}