{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ww0PtlWwd5dv"
      },
      "source": [
        "Link dataset : https://www.kaggle.com/datasets/dylanjcastillo/7k-books-with-metadata"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "Rwfmg4Khd0m7"
      },
      "outputs": [],
      "source": [
        "import pandas as pd\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.feature_extraction.text import TfidfVectorizer\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.pipeline import Pipeline\n",
        "from sklearn.metrics import classification_report, confusion_matrix\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt\n",
        "from imblearn.over_sampling import RandomOverSampler\n",
        "from imblearn.pipeline import Pipeline as ImbPipeline  # gunakan pipeline dari imblearn\n",
        "from sklearn.metrics.pairwise import cosine_similarity\n",
        "\n",
        "books_df = pd.read_csv('/content/sample_data/books.csv')\n",
        "ground_truth_df = pd.read_csv('/content/sample_data/test-ground-truth.csv', delimiter=';')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-pyqoqpvfgiY"
      },
      "outputs": [],
      "source": [
        "merged_df = pd.merge(\n",
        "    books_df[['title', 'description']],\n",
        "    ground_truth_df[['title', 'true_mood']],\n",
        "    on='title',\n",
        "    how='inner'\n",
        ")\n",
        "\n",
        "data_ml = merged_df.dropna(subset=['description', 'true_mood'])\n",
        "\n",
        "data_ml = data_ml.groupby('true_mood').filter(lambda x: len(x) >= 2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "YJkgkxUnhfil"
      },
      "outputs": [],
      "source": [
        "X_train, X_test, y_train, y_test = train_test_split(\n",
        "    data_ml['description'],\n",
        "    data_ml['true_mood'],\n",
        "    test_size=0.2,\n",
        "    stratify=data_ml['true_mood'],\n",
        "    random_state=42\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "LHfhjINbigsn"
      },
      "outputs": [],
      "source": [
        "pipeline = ImbPipeline([\n",
        "    ('tfidf', TfidfVectorizer(stop_words='english')),\n",
        "    ('oversample', RandomOverSampler(random_state=42)),\n",
        "    ('clf', LogisticRegression(max_iter=1000))\n",
        "])\n",
        "\n",
        "pipeline.fit(X_train, y_train)\n",
        "\n",
        "data_ml['predicted_mood_ml'] = pipeline.predict(data_ml['description'].fillna(\"\"))"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"\\n=== Distribusi True Mood ===\")\n",
        "print(data_ml['true_mood'].value_counts())\n",
        "\n",
        "print(\"\\n=== Distribusi Predicted Mood (ML) ===\")\n",
        "print(data_ml['predicted_mood_ml'].value_counts())\n",
        "\n",
        "print(\"\\n=== Evaluasi Machine Learning Classifier ===\")\n",
        "print(classification_report(data_ml['true_mood'], data_ml['predicted_mood_ml'], zero_division=0))\n",
        "\n",
        "labels_order = sorted(data_ml['true_mood'].unique())\n",
        "cm = confusion_matrix(\n",
        "    data_ml['true_mood'],\n",
        "    data_ml['predicted_mood_ml'],\n",
        "    labels=labels_order\n",
        ")\n",
        "\n",
        "plt.figure(figsize=(10, 6))\n",
        "sns.heatmap(cm, annot=True, fmt='d',\n",
        "            xticklabels=labels_order,\n",
        "            yticklabels=labels_order,\n",
        "            cmap='Blues')\n",
        "plt.xlabel('Predicted Mood')\n",
        "plt.ylabel('True Mood')\n",
        "plt.title('Confusion Matrix - ML Classifier (TF-IDF + Logistic Regression + Oversampling)')\n",
        "plt.show()"
      ],
      "metadata": {
        "id": "nJF9Z-Y1h0OV",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "1382d335-802e-48ff-f1a9-e09d8379bb5b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "=== Distribusi True Mood ===\n",
            "true_mood\n",
            "thrilling        74\n",
            "philosophical    48\n",
            "happy            32\n",
            "inspirational    29\n",
            "dark             27\n",
            "romantic         18\n",
            "Name: count, dtype: int64\n",
            "\n",
            "=== Distribusi Predicted Mood (ML) ===\n",
            "predicted_mood_ml\n",
            "thrilling        80\n",
            "philosophical    48\n",
            "happy            31\n",
            "inspirational    28\n",
            "dark             27\n",
            "romantic         14\n",
            "Name: count, dtype: int64\n",
            "\n",
            "=== Evaluasi Machine Learning Classifier ===\n",
            "               precision    recall  f1-score   support\n",
            "\n",
            "         dark       0.89      0.89      0.89        27\n",
            "        happy       1.00      0.97      0.98        32\n",
            "inspirational       0.89      0.86      0.88        29\n",
            "philosophical       0.90      0.90      0.90        48\n",
            "     romantic       1.00      0.78      0.88        18\n",
            "    thrilling       0.90      0.97      0.94        74\n",
            "\n",
            "     accuracy                           0.92       228\n",
            "    macro avg       0.93      0.89      0.91       228\n",
            " weighted avg       0.92      0.92      0.92       228\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x600 with 2 Axes>"
            ],
            "image/png": "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DsnJyUrFxOZ8RERERESkGjU25wsLC8Pw4cPlysRi8Ufft2rVKrRu3Rrly5cv9phYiSIiIiIiIq0lFosLVWl61z///IODBw9i69atsjJ7e3tkZ2cjNTVVLhv16NEj2NvbK7V+NucjIiIiIiLVaMkQ53mio6Nha2uLtm3byspq164NAwMDHDp0SFaWkJCAxMRE+Pj4KLV+ZqKIiIiIiOiTIZVKER0djYCAAJQp87/qjrm5OYKDgzF8+HBYWVnBzMwMQ4YMgY+Pj1Ij8wGsRBERERERkaq0ZIhzADh48CASExPRt2/ffPPmzp0LPT09dOnSBVlZWfD398fixYuV3oZIEAShOIKl0m3zpSRNh0Af0K6ag6ZDIAWkUt5CiYpCT097vnCRPN7XtFdZQ+29box8x6lt3Rknp6ht3UXFTBQREREREammiH2XSitWooiIiIiISDVa1JyvJOhWlZGIiIiIiEhFzEQREREREZFqdKw5n27tLRERERERkYqYiSIiIiIiItUwE0VERERERESKMBNFRERERESq0bFnvzETRUREREREpARmooiIiIiISDU61ieKlSgiIiIiIlINH7ZLREREREREirASpWFNmzZFaGioSuuIiIhArVq1iiUeIiIiIiKlifTUN2kh7YyK6COObVuHxWEDMLFPa0zt1xG/zhiHJw8TC1xWEASsnjoa47o1xfXTf5VwpPSuDevXoXWLZqj7WQ180+NrXLl8WdMhEYBzZ8/gh5CBaNHsC3xWwxNHDh3UdEj0/3hutB/va9qJ1w6pGytRpZggCHjz5o2mw9CIe9cvooF/RwycshhBP81Cbm4uVk8ehezMjHzL/r17M0Q61k5XG+3buwezZkRhwKDB2LBpGzw8PPH9gGCkpKRoOjSdl5GRgSpVPBE2brymQ6H38NxoN97XtBevHQ0QidQ3aSFWokrQ69ev0adPH5iYmMDBwQGzZ8+Wmx8TE4M6derA1NQU9vb26NWrFx4/fiybf/ToUYhEIuzduxe1a9eGWCzGiRMn8m3nzp07qFy5MkJCQiAIgtr3SxMCx83E501bw66SCxyc3dB18FikPn2EB3dvyi338P4tnPjjd3T+frSGIqU8MWui0blrN3Ts1AWubm74acJESCQSbN+6RdOh6bxGXzTG4KGhaObXQtOh0Ht4brQb72vai9cOqRsrUSVo1KhROHbsGHbs2IE///wTR48exfnz52Xzc3JyMGnSJFy6dAnbt2/H/fv3ERgYmG89Y8eOxbRp0xAfHw9vb2+5eZcvX0ajRo3Qq1cvLFq0SGcyMJnpaQCAsiamsrLsrExsnD8Z7YNDYWphranQCEBOdjbir19DA5+GsjI9PT00aNAQly9d0GBkRERFw/sa0Xt0rE8UhzgvIWlpaVi1ahV+/fVX+Pn5AQDWrFmDihUrypbp27ev7N+VK1fGggULULduXaSlpcHExEQ2LzIyEi1a5P9l5e+//0a7du0wbtw4jBgxQmEsWVlZyMrKkivLyc6CgaG4yPunSVKpFLtXL4KTR3XYOVaWle9Z8zMcPaqhat1GGoyOAOB56nPk5ubC2lq+MmttbY179+5qKCoioqLjfY1It2ln1e4TdOfOHWRnZ6N+/fqyMisrK3h4eMhenzt3Du3bt4ejoyNMTU3RpEkTAEBiovyACXXq1Mm3/sTERLRo0QLjx4//YAUKAKKiomBubi43bVu1UJXd06hdq+bh0b/30D30f+2e48+exN2r59E2MESDkRERERHpCB3rE8VMlJZ4/fo1/P394e/vj3Xr1qFcuXJITEyEv78/srOz5ZY1NjbO9/5y5cqhfPny+O2339C3b1+YmZkp3FZYWBiGDx8uV7Y74Vnx7EgJ27lqHhLOx6LfxAUwt7aVld+9eh7PHj3E5MB2csuvnz0Bzl410C9ifkmHqtMsLSyhr6+fr7N1SkoKbGxsNBQVEVHR8b5G9B4tbXanLrq1txrk6uoKAwMDxMXFycqeP3+OmzffDoRw48YNpKSkYNq0afjiiy/g6ekpN6jExxgZGeGPP/6ARCKBv78/Xr16pXBZsVgMMzMzuam0NeUTBAE7V83D9dMn0Hf8XFjZOsjNb9yxF4bMXIWQGStlEwC0CRiMzoPGaiJknWZgaAivqtUQdypWViaVShEXFwvvmp9pMDIioqLhfY1ItzETVUJMTEwQHByMUaNGwdraGra2thg3bhz09N7WYx0dHWFoaIiFCxdi4MCBuHr1KiZNmqTUNoyNjbF79260bt0arVu3xr59++T6Un1Kdq6ah8snDuLb0VMgNjLCq9S3vwRKyprAwFAMUwvrAgeTsLCxzVfhopLROyAI4T+OQbVq1VG9hjd+jVmDjIwMdOzUWdOh6bz09Nf4951mww8e/IeEG/EwMzeHg0N5DUZGPDfajfc17cVrRwO0tNmdurASVYJmzpyJtLQ0tG/fHqamphgxYgRevHgB4G1zvNWrV+PHH3/EggUL8Pnnn2PWrFn46quvlNqGiYkJ9u7dC39/f7Rt2xZ79uwpsPlfaXf6zx0AgJURoXLlXQaNwedNW2sgIvqYVq3b4PmzZ1i8aAGePn0CD08vLF62EtZs9qJx169dRf++AbLXs2dOAwC0/6ojIqdM01RYBJ4bbcf7mvbitUPqJhI+1QcJkVI2X0rSdAj0Ae2qMXumraRS3kKJikJPT7d+tS5NeF/TXmUNtfe6MWqjvv7mGXt+UNu6i4p9ooiIiIiIiJTA5nxERERERKQaHesTxUwUERERERGREpiJIiIiIiIi1ejYc6JYiSIiIiIiItXoWCVKt/aWiIiIiIhIRcxEERERERGRajiwBBERERERESnCTBQREREREamGfaKIiIiIiIhIEWaiiIiIiIhINewTRURERERERIowE0VERERERKrRsT5RrEQREREREZFq2JyPiIiIiIiIFGEmioiIiIiIVCJiJoqIiIiIiIgUYSaKiIiIiIhUwkwUERERERERKcRMFBERERERqUa3ElHMRBERERERESmDmSgiIiIiIlKJrvWJYiWKiIiIiIhUomuVKDbnIyIiIiIiUgIzUUREREREpBJmooiIiIiIiEghZqKIiIiIiEglzEQRERERERGRQsxEERERERGRanQrEcVMFBERERERfToePHiAb7/9FtbW1jAyMkKNGjVw9uxZ2XxBEDB+/Hg4ODjAyMgIzZs3x61bt5TaBitRRERERESkEpFIpLZJGc+fP4evry8MDAywd+9eXL9+HbNnz4alpaVsmRkzZmDBggVYunQp4uLiYGxsDH9/f2RmZhZ6O2zOR0REREREn4Tp06ejUqVKiI6OlpW5uLjI/i0IAubNm4effvoJHTp0AACsXbsWdnZ22L59O3r06FGo7TATRUREREREKlFnJiorKwsvX76Um7KysgqMY+fOnahTpw6+/vpr2Nra4rPPPsOKFStk8+/du4fk5GQ0b95cVmZubo769esjNja20PvLTBQBANp42Ws6BPqAecfvaDoEUiC0saumQyAiKlZ6ejo2QgAVC3UOcR4VFYWJEyfKlU2YMAERERH5lr179y6WLFmC4cOH48cff8SZM2cwdOhQGBoaIiAgAMnJyQAAOzs7uffZ2dnJ5hUGK1FERERERKS1wsLCMHz4cLkysVhc4LJSqRR16tTB1KlTAQCfffYZrl69iqVLlyIgIKDYYmJzPiIiIiIiUok6m/OJxWKYmZnJTYoqUQ4ODqhatapcmZeXFxITEwEA9vZvW189evRIbplHjx7J5hUGK1FERERERPRJ8PX1RUJCglzZzZs34eTkBODtIBP29vY4dOiQbP7Lly8RFxcHHx+fQm+HzfmIiIiIiEg1WtKVbtiwYWjYsCGmTp2Kbt264fTp01i+fDmWL18O4G3GLDQ0FJMnT4a7uztcXFwQHh6O8uXLo2PHjoXeDitRRERERET0Sahbty62bduGsLAwREZGwsXFBfPmzcM333wjW2b06NF4/fo1vvvuO6SmpqJRo0bYt28fJBJJobcjEgRBUMcOUOmSns2PgTZbcOKupkMgBTg6HxERlRSJFqc/bAI3qG3dT1cX7tlNJYl9ooiIiIiIiJSgxfVZIiIiIiIqDdT5nChtxEoUERERERGpRNcqUWzOR0REREREpARmooiIiIiISDW6lYhiJoqIiIiIiEgZzEQREREREZFK2CeKiIiIiIiIFGImioiIiIiIVMJMFBERERERESnETBQREREREalE1zJRrEQREREREZFKdK0SxeZ8RERERERESmAmioiIiIiIVKNbiShmooiIiIiIiJTBTBQREREREamEfaKIiIiIiIhIIWaiiIiIiIhIJcxEERERERERkULMRBERERERkUp0LRPFShQREREREalGt+pQbM5HRERERESkDGaiiIiIiIhIJbrWnI+ZKCIiIiIiIiUwE0VERERERCphJooKrWnTpggNDdV0GEREREREVIKYiaJPxrmzZ7B29Spcv34NT588wZx5i/ClX3NNh6WTbhzbjRt/7UZayiMAgIWDE2q16YmK1esCABL+2ou7Z44i5d/byMnMQK/ZGyEua6LJkHXehvXrsCZ6FZ4+fYIqHp4Y+2M4anh7azos+n88P9qL50Z78dyULGaiiEqpjIwMVKniibBx4zUdis4ra2mD2h2D0D5sAdqPnQ8Hj5o4tHQSnj/8BwDwJjsLFarVhner7hqOlABg3949mDUjCgMGDcaGTdvg4eGJ7wcEIyUlRdOhEXh+tBnPjfbiuSF1YyVKRVKpFKNHj4aVlRXs7e0REREhmzdnzhzU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T08Pjo6OaNeuHQwNDRUuN2fOnGILjkpOenahPgakIXp62vkrDJE267rqjKZDoA/YHFxX0yGQAq+z3mg6BFLA2rjIPXHUbsi2eLWte2EnL7Wtu6gKfSYaN24MkUiEa9euKVxGW9NtRERERERExaXQlaijR4+qMQwiIiIiIiqtdC2Zor05QSIiIiIiKhV0reeB0qPzERERERER6TJmooiIiIiISCXMRBEREREREZFCzEQREREREZFKdG1giSJlov766y98++238PHxwYMHDwAAMTExOHHiRLEGR0REREREpG2UrkRt2bIF/v7+MDIywoULF5CVlQUAePHiBaZOnVrsARIRERERkXbTE6lv0kZKV6ImT56MpUuXYsWKFTAwMJCV+/r64vz588UaHBERERERkbZRuk9UQkICGjdunK/c3NwcqampxRETERERERGVIjrWJUr5TJS9vT1u376dr/zEiROoXLlysQRFRERERESlh55IpLZJGyldierfvz9++OEHxMXFQSQS4eHDh1i3bh1GjhyJ77//Xh0xEhERERERaQ2lm/ONHTsWUqkUfn5+SE9PR+PGjSEWizFy5EgMGTJEHTESEREREZEW07WHzypdiRKJRBg3bhxGjRqF27dvIy0tDVWrVoWJiYk64iMiIiIiItIqRX7YrqGhIapWrVqcsRARERERUSmkpV2X1EbpStSXX375wScSHz58WKWAiIiIiIiItJnSlahatWrJvc7JycHFixdx9epVBAQEFFdcRERERERUSmjrKHrqonQlau7cuQWWR0REIC0tTeWAiIiIiIiItFmxDaTx7bff4pdffimu1RERERERUSkhEqlv0kZFHljifbGxsZBIJMW1OiIiIiIiKiX0tLSyoy5KV6I6d+4s91oQBCQlJeHs2bMIDw8vtsCIiIiIiIi0kdKVKHNzc7nXenp68PDwQGRkJFq2bFlsgRERERERUenAgSU+IDc3F0FBQahRowYsLS3VFRMREREREZHWUmpgCX19fbRs2RKpqalqCoeIiIiIiEobXRtYQunR+apXr467d++qIxYiIiIiIiKtp3QlavLkyRg5ciT++OMPJCUl4eXLl3ITERERERHpFj2R+iZtVOg+UZGRkRgxYgTatGkDAPjqq68geie/JggCRCIRcnNziz9KIiIiIiIiLVHoStTEiRMxcOBAHDlyRJ3xEBERERFRKSOClqaM1KTQlShBEAAATZo0UVswRERERERU+mhrszt1UapPlEhbh8cgIiIiIiIqIUpVoqpUqQIrK6sPTsXJ2dkZ8+bNUzj//v37EIlEuHjxIgDg6NGjEIlEWjUE++rVq2FhYfHBZQIDA9GxY8di22ZERARq1apVbOsjIiIiIvoQDizxARMnToS5ubm6YlFapUqVkJSUBBsbG02HopL58+fLmktS0Z07ewZrV6/C9evX8PTJE8yZtwhf+jXXdFj0jg3r12FN9Co8ffoEVTw8MfbHcNTw9tZ0WASeG23UtZY9AutXwo4ryVjx978AgMFfOKFWBTNYGRsiMycX8Y/SsDruP/yXmqnhaHUXrx3ttzZ6BZYunIduPb9F6KgwTYdDnwilKlE9evSAra2tumJRmr6+Puzt7TUdhsq0qWJammVkZKBKFU906NQFI0KHaDoces++vXswa0YUfpowETVq1MS6mDX4fkAwdvyxD9bW1poOT6fx3Ggf93LGaOVli3sp6XLlt5+m4+jtFDx5lQ1TSRn0ql0ekW2qoN9vlyHlb3EljteO9rt+7Qp2bNkEN/cqmg7lk6ct3X6WLFmCJUuW4P79+wCAatWqYfz48WjdujUAIDMzEyNGjMCGDRuQlZUFf39/LF68GHZ2dkptp9DN+dRxYJo2bYqQkBCEhITA3NwcNjY2CA8Pl8vKpKeno2/fvjA1NYWjoyOWL18um/d+c76CbNmyBdWqVYNYLIazszNmz54tN3/x4sVwd3eHRCKBnZ0dunbtKpuXlZWFoUOHwtbWFhKJBI0aNcKZM2dk8/OaD+7evRve3t6QSCRo0KABrl69mi+O/fv3w8vLCyYmJmjVqhWSkpJk895vzieVSjFjxgy4ublBLBbD0dERU6ZMkc0fM2YMqlSpgrJly6Jy5coIDw9HTk7Ohw+2Dmj0RWMMHhqKZn4tNB0KFSBmTTQ6d+2Gjp26wNXNDT9NmAiJRILtW7doOjSdx3OjXSRl9DCyWWUsPH4faVlv5Obtj3+Ca0lpeJyWjTtP0xFz5gFsTcWwNRVrKFrdxmtHu6Wnv8bEcWMwNnwiTM34g7WuqFixIqZNm4Zz587h7NmzaNasGTp06IBr164BAIYNG4Zdu3Zh06ZNOHbsGB4+fIjOnTsrvZ1CV6LU1dxszZo1KFOmDE6fPo358+djzpw5WLlypWz+7NmzUadOHVy4cAGDBg3C999/j4SEhEKt+9y5c+jWrRt69OiBK1euICIiAuHh4Vi9ejUA4OzZsxg6dCgiIyORkJCAffv2oXHjxrL3jx49Glu2bMGaNWtw/vx5uLm5wd/fH8+ePZPbzqhRozB79mycOXMG5cqVQ/v27eUqNenp6Zg1axZiYmJw/PhxJCYmYuTIkQrjDgsLw7Rp0xAeHo7r169j/fr1crVjU1NTrF69GtevX8f8+fOxYsUKzJ07t1DHhEgTcrKzEX/9Ghr4NJSV6enpoUGDhrh86YIGIyOeG+3zfSMnnElMxaUHH36AvbiMHpp72CD5ZSaepmWXUHSUh9eO9ps9bTIaNmqMuvV9NB2KTtCWPlHt27dHmzZt4O7ujipVqmDKlCkwMTHBqVOn8OLFC6xatQpz5sxBs2bNULt2bURHR+Pvv//GqVOnlNpOoZvzSaVS5fagkCpVqoS5c+dCJBLBw8MDV65cwdy5c9G/f38AQJs2bTBo0CAAbzMwc+fOxZEjR+Dh4fHRdc+ZMwd+fn4IDw8H8HZgjOvXr2PmzJkIDAxEYmIijI2N0a5dO5iamsLJyQmfffYZAOD169dYsmQJVq9eLUv/rVixAgcOHMCqVaswatQo2XYmTJiAFi3eZj/WrFmDihUrYtu2bejWrRsAICcnB0uXLoWrqysAICQkBJGRkQXG/OrVK8yfPx+LFi1CQEAAAMDV1RWNGjWSLfPTTz/J/u3s7IyRI0diw4YNGD169EePCfA2w5aVlSVXlisyhFjMXzJJPZ6nPkdubm6+5i3W1ta4d++uhqIigOdG2zR2tYKrTVkM23Zd4TJtqpZDUINKMDLQx7/PM/DT7pt4w7Z8JY7XjnY7sH8PEm7EY1XM75oOhYpBQd9dxWLxR7+75ubmYtOmTXj9+jV8fHxw7tw55OTkoHnz//WZ9/T0hKOjI2JjY9GgQYNCx6TU6Hzq0KBBA7mmgj4+Prh16xZyc3MBAN7vdM4UiUSwt7fH48ePC7Xu+Ph4+Pr6ypX5+vrK1t+iRQs4OTmhcuXK6N27N9atW4f09Lftz+/cuYOcnBy59xsYGKBevXqIj4+XW6ePz/9+4bCysoKHh4fcMmXLlpVVoADAwcFB4T7Ex8cjKysLfn5+Cvfr999/h6+vL+zt7WFiYoKffvoJiYmJhTgib0VFRcHc3FxumjUjqtDvJyKi4mdjbIj+DR0x6/Bd5OQqrhQdvf0MP2y+hjE74/HwRSbGNneFgb529EUg0gaPkpMwb+Y0REyezh+IS5BIpL6poO+uUVGKv7teuXIFJiYmEIvFGDhwILZt24aqVasiOTkZhoaG+UbOtrOzQ3JyslL7q9TAEppgYGAg91okEhVbVszU1BTnz5/H0aNH8eeff2L8+PGIiIiQ6/dUHAraB0XNI42MjD64rtjYWHzzzTeYOHEi/P39YW5ujg0bNuTr6/UhYWFhGD58uFxZrsiw0O8nUpalhSX09fWRkpIiV56SklLqR9cs7XhutIdbubKwLGuA+V2qycr09USo5mCKdtXs0GnlWUgFID07F+nZuXj4MgsJj+5gQ+Bn8HG2xPE7zz6wdipuvHa0143463j+LAVB33wtK8vNzcXF82exZeNvOHrqAvT19TUY4adJT40DSxT03fVDFWQPDw9cvHgRL168wObNmxEQEIBjx44Va0war0TFxcXJvT516hTc3d2L5cPt5eWFkydPypWdPHkSVapUka2/TJkyaN68OZo3b44JEybAwsIChw8fhr+/PwwNDXHy5Ek4OTkBeNss78yZMwgNDc0Xs6OjIwDg+fPnuHnzJry8vIoUs7u7O4yMjHDo0CH069cv3/y///4bTk5OGDdunKzsn3/+UWobBaU/07PZFITUx8DQEF5VqyHuVCya/f+w81KpFHFxsejR81sNR6fbeG60x6UHLzF4o/zARD80dcF/qRnYcjH5g6PvMRNV8njtaK869RogZuN2ubIpEePg5FwZ3wYGswJVChWm6d67DA0N4ebmBgCoXbs2zpw5g/nz56N79+7Izs5GamqqXDbq0aNHSo/4rfFKVGJiIoYPH44BAwbg/PnzWLhwoVJZlQ8ZMWIE6tati0mTJqF79+6IjY3FokWLsHjxYgDAH3/8gbt376Jx48awtLTEnj17IJVK4eHhAWNjY3z//fcYNWoUrKys4OjoiBkzZiA9PR3BwcFy24mMjIS1tTXs7Owwbtw42NjYFPnhuRKJBGPGjMHo0aNhaGgIX19fPHnyBNeuXUNwcDDc3d2RmJiIDRs2oG7duti9eze2bdum6qH6JKSnv8a/7zRrfPDgPyTciIeZuTkcHMprMDICgN4BQQj/cQyqVauO6jW88WvMGmRkZKBjJ+VHxKHixXOjHTJypPjneYZcWdabXLzKeoN/nmfAzlSMxq5WOP/fC7zMfANrY0N8Xcse2bkCzia+0FDUuo3XjnYyNjaGq5u7XJmRUVmYm5vnK6fio60PxQXe/sCRlZWF2rVrw8DAAIcOHUKXLl0AAAkJCUhMTJTrnlMYGq9E9enTBxkZGahXrx709fXxww8/4LvvviuWdX/++efYuHEjxo8fj0mTJsHBwQGRkZEIDAwEAFhYWGDr1q2IiIhAZmYm3N3d8dtvv6FatbdNKaZNmwapVIrevXvj1atXqFOnDvbv3w9LS0u57UybNg0//PADbt26hVq1amHXrl0wNCx687jw8HCUKVMG48ePx8OHD+Hg4ICBAwcCAL766isMGzYMISEhyMrKQtu2bREeHo6IiIgib+9Tcf3aVfTvGyB7PXvmNABA+686InLKNE2FRf+vVes2eP7sGRYvWoCnT5/Aw9MLi5ethDWbvWgcz03pkJMrRTUHE3xVww4mYn2kZrzBtaRXGLU9Hi8y33x8BVTseO0QaZ+wsDC0bt0ajo6OePXqFdavX4+jR49i//79MDc3R3BwMIYPHw4rKyuYmZlhyJAh8PHxUWpQCQAQCeoau7wQmjZtilq1amHevHmaCkElR48exZdffonnz5/n66BW2rA5n3bT0+afd4i0VNdVxdu/lYrX5uC6mg6BFHidxUq5trI21nj+Q6GFJ++pbd1DfF0KvWxwcDAOHTqEpKQkmJubw9vbG2PGjJGNpJ33sN3ffvtN7mG7pa45HxERERERUXFYtWrVB+dLJBL8/PPP+Pnnn1XaDitRRERERESkEj3oVqsZjVaijh49qsnNq6xp06YKhyonIiIiIqJPEzNRRERERESkEjU+JkorsRJFREREREQq0bUxsPQ0HQAREREREVFpwkwUERERERGpRE/H2vMxE0VERERERKQEZqKIiIiIiEglOpaIYiaKiIiIiIhIGcxEERERERGRStgnioiIiIiIiBRiJoqIiIiIiFSiY4koVqKIiIiIiEg1uta8Tdf2l4iIiIiISCXMRBERERERkUpEOtaej5koIiIiIiIiJTATRUREREREKtGtPBQzUUREREREREphJoqIiIiIiFTCh+0SERERERGRQsxEERERERGRSnQrD8VKFBERERERqUjHWvOxOR8REREREZEymIkiIiIiIiKV8GG7REREREREpBAzUURE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EcoaG+Pp0ycAABMTU0gkEg1HRwCvHW2RkZGO5Af/yl4/TnqIe7cTYGJqhnJ2DjA1t5BbvkyZMrC0skGFSs4lGyjxvkYlQucrURUqVMCePXswatQo1KxZE1ZWVggODpYNIlFUAwYMwIULF9C9e3eIRCL07NkTgwYNkhsGvTAiIyMxYMAAuLq6IisrC4Ig5FumadOm2LRpEyZNmoRp06bBzMwMjRs3Vin+0qpV6zZ4/uwZFi9agKdPn8DD0wuLl62ENZu9aBzPjXbavHEDAGBAcIBc+YTIqWjfQTcflaBteO1oh7sJ1xExcoDs9ZqlcwAATVq2Q8joiYreRhrA+5pmiHQsFSUSCvpWTjrnU2jOR6QJOW+U68NIJcegjE6OnVRq3ExK03QIpIBLubKaDoEUMJVo730t7s4Lta27vqv2DU+v85koIiIiIiJSja4NTMlKFBERERERqUTH6lC6+ZwoIiIiIiKiomImioiIiIiIVKNjqShmooiIiIiIiJTATBQREREREalE14Y4ZyaKiIiIiIhICcxEERERERGRSnRtiHNmooiIiIiIiJTATBQREREREalExxJRrEQREREREZGKdKwWxeZ8RERERERESmAmioiIiIiIVMIhzomIiIiIiEghZqKIiIiIiEglHOKciIiIiIiIFGImioiIiIiIVKJjiShmooiIiIiIiJTBTBQREREREalGx1JRrEQREREREZFKOMQ5ERERERERKcRMFBERERERqYRDnBMREREREZFCzEQREREREZFKdCwRxUwUERERERGRMpiJIiIiIiIi1ehYKoqZKCIiIiIiIiUwE0VERERERCrhc6KIiIiIiIhIIWaiiIiIiIhIJbr2nChWooiIiIiISCU6Vodicz4iIiIiIiJlMBNFRERERESq0bFUFCtRREQqMCjDhL62ynkj1XQI9AFVHEw0HQIpYFk3RNMhkAIZFxZpOgT6f6xEERERERGRSjjEORERERERESnETBQREREREalE14Y4ZyaKiIiIiIhICcxEERERERGRSnQsEcVKFBERERERqUjHalFszkdERERERKQEZqKIiIiIiEglHOKciIiIiIiolDp+/Djat2+P8uXLQyQSYfv27XLzBUHA+PHj4eDgACMjIzRv3hy3bt1SahusRBERERERkUpEIvVNynr9+jVq1qyJn3/+ucD5M2bMwIIF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94nFYpiZmclNpb0pHwAYGBrCq2o1xJ36XztoqVSKuLhYeNf8TIOREc+N9uK50W6CIGD61Ek4evgglqyIRoWKFTUdEv0/Xjvap/dXPnj87BX2/iU/8IqpsQR/LAlBdk4uuoYuQ1b2Gw1FSJ8SZqIK4OzsjLi4ONy/fx8mJiYqZX3UbciQIejfvz/q1KmDhg0b4vfff8fly5dRuXJlTYemEb0DghD+4xhUq1Yd1Wt449eYNcjIyEDHTp01HZrO47nRXjw32mv61Ejs27sbs+ctQlljYzx9+gQAYGJiKuuPS5rDa0d7iEQi9OnQAOv+iJMbMMLUWII/Fg+GkcQQQePWwMxYAjPjt9fOk+dpkEoFTYX8ydGxRBQrUQUZOXIkAgICULVqVWRkZCA6OlrTISn0zTff4O7duxg5ciQyMzPRrVs3BAYG4vTp05oOTSNatW6D58+eYfGiBXj69Ak8PL2weNlKWLNphcbx3GgvnhvttXnjBgDAgOAAufIJkVPRvkMnTYRE7+C1oz2a1feAo4MV1mw/JVdey7MS6nm/fTj19V0RcvM82oxHYtKzkgrxk6etQ5Gri0gQBFbBPzEtWrSAvb09YmJiCv2eTGa2iegTk8M+D1rNoAx7FGgry7ohmg6BFMi4sEjTISj0+FWO2tZta2rw8YVKGDNRpVx6ejqWLl0Kf39/6Ovr47fffsPBgwdx4MABTYdGRERERDpC14Y4ZyWqlBOJRNizZw+mTJmCzMxMeHh4YMuWLWjevLmmQyMiIiIi+iSxElXKGRkZ4eDBg5oOg4iIiIh0mW4lojjEORERERERkTKYiSIiIiIiIpXoWCKKmSgiIiIiIiJlMBNFREREREQq0bXnRLESRUREREREKtG1Ic7ZnI+IiIiIiEgJzEQREREREZFKdK05HzNRRERERERESmAlioiIiIiISAmsRBERERERESmBfaKIiIiIiEgl7BNFRERERERECjETRUREREREKtG150SxEkVERERERCphcz4iIiIiIiJSiJkoIiIiIiJSiY4lopiJIiIiIiIiUgYzUUREREREpBodS0UxE0VERERERKQEZqKIiIiIiEglujbEOTNRRERERERESmAmioiIiIiIVMLnRBEREREREZFCzEQREREREZFKdCwRxUoUERERERGpSMdqUWzOR0REREREpARWooiIiIiISCUiNf5X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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# === INPUT MOOD DARI PENGGUNA ===\n",
        "print(\"\\nMasukkan mood yang Anda rasakan saat ini (contoh: romantic, dark, inspiring, thrilling):\")\n",
        "user_mood = input(\"Mood Anda: \").strip().lower()\n",
        "\n",
        "# Kata-kata kunci untuk TF-IDF query (bisa diperluas sesuai kebutuhan)\n",
        "mood_keywords = {\n",
        "    'happy': 'joyful cheerful uplifting funny delightful',\n",
        "    'sad': 'tragic heartbreaking grief lonely',\n",
        "    'romantic': 'romantic love relationship passion',\n",
        "    'thrilling': 'thriller suspense danger chase mystery',\n",
        "    'dark': 'dark haunting evil disturbing horror',\n",
        "    'inspirational': 'inspiring motivation courage triumph hope',\n",
        "    'philosophical': 'life morality existence thoughtful'\n",
        "}\n",
        "\n",
        "if user_mood not in mood_keywords:\n",
        "    print(f\"\\nMood '{user_mood}' tidak dikenali. Pilihan tersedia: {list(mood_keywords.keys())}\")\n",
        "else:\n",
        "    # Filter buku sesuai mood hasil prediksi model\n",
        "    filtered_df = data_ml[data_ml['predicted_mood_ml'] == user_mood]\n",
        "\n",
        "    if filtered_df.empty:\n",
        "        print(f\"\\nTidak ditemukan buku dengan mood '{user_mood}' berdasarkan model prediksi.\")\n",
        "    else:\n",
        "        # Hitung kemiripan deskripsi terhadap kata-kata kunci mood\n",
        "        tfidf = pipeline.named_steps['tfidf']\n",
        "        tfidf_matrix = tfidf.transform(filtered_df['description'].fillna(''))\n",
        "        query_vec = tfidf.transform([mood_keywords[user_mood]])\n",
        "        similarity_scores = cosine_similarity(query_vec, tfidf_matrix).flatten()\n",
        "\n",
        "        # Tambahkan skor ke DataFrame\n",
        "        filtered_df = filtered_df.copy()\n",
        "        filtered_df['similarity_score'] = similarity_scores\n",
        "        filtered_df = filtered_df.sort_values(by='similarity_score', ascending=False)\n",
        "\n",
        "        print(f\"\\n📚 Rekomendasi buku dengan mood '{user_mood}' (urut berdasarkan kemiripan deskripsi):\\n\")\n",
        "        for _, row in filtered_df.head(3).iterrows():\n",
        "            print(f\"Judul: {row['title']}\")\n",
        "            print(f\"True Mood: {row['true_mood']} | Predicted: {row['predicted_mood_ml']}\")\n",
        "            print(f\"Skor Kemiripan: {row['similarity_score']:.4f}\")\n",
        "            print(f\"Deskripsi: {row['description'][:100]}...\\n\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TQpRk6lDtyH_",
        "outputId": "f9b78bfd-c988-4cc9-fc2b-44e95acfb5b8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Masukkan mood yang Anda rasakan saat ini (contoh: romantic, dark, inspiring, thrilling):\n",
            "Mood Anda: thrilling\n",
            "\n",
            "📚 Rekomendasi buku dengan mood 'thrilling' (urut berdasarkan kemiripan deskripsi):\n",
            "\n",
            "Judul: Appointment with Death\n",
            "True Mood: thrilling | Predicted: thrilling\n",
            "Skor Kemiripan: 0.0688\n",
            "Deskripsi: A repugnant Amercian widow is killed during a trip to Petra... Among the towering red cliffs of Petr...\n",
            "\n",
            "Judul: The Listerdale Mystery\n",
            "True Mood: thrilling | Predicted: thrilling\n",
            "Skor Kemiripan: 0.0675\n",
            "Deskripsi: A selection of mysteries, some light-hearted, some romantic, some very deadly... Twelve tantalizing ...\n",
            "\n",
            "Judul: Mrs McGinty's Dead\n",
            "True Mood: thrilling | Predicted: thrilling\n",
            "Skor Kemiripan: 0.0552\n",
            "Deskripsi: An old widow is brutally killed in the parlour of her cottage... Mrs McGinty died from a brutal blow...\n",
            "\n"
          ]
        }
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}