{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "Assignment 2: Text classification for Sentimental analysis using KNN. (Refer any dataset like Titanic,\n",
        "Twitter, etc.)"
      ],
      "metadata": {
        "id": "2XWiW1vvKWed"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "from sklearn.neighbors import KNeighborsClassifier\n",
        "from sklearn.metrics import classification_report, confusion_matrix\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "# Step 1: Create a simple sentiment dataset\n",
        "data = {\n",
        "    'text': [\n",
        "        \"I love this product!\",\n",
        "        \"This is the worst experience I've ever had.\",\n",
        "        \"Amazing quality and fast delivery.\",\n",
        "        \"I hate the customer service.\",\n",
        "        \"Pretty decent, nothing special.\",\n",
        "        \"Very satisfied with my purchase.\",\n",
        "        \"This was a terrible idea.\",\n",
        "        \"I'm not sure how I feel about this.\",\n",
        "        \"Best thing I've bought this year!\",\n",
        "        \"It doesn't work as expected.\"\n",
        "    ],\n",
        "    'sentiment': [\n",
        "        'positive',\n",
        "        'negative',\n",
        "        'positive',\n",
        "        'negative',\n",
        "        'neutral',\n",
        "        'positive',\n",
        "        'negative',\n",
        "        'neutral',\n",
        "        'positive',\n",
        "        'negative'\n",
        "    ]\n",
        "}\n",
        "\n",
        "# Create DataFrame\n",
        "df = pd.DataFrame(data)\n",
        "\n",
        "# Step 2: Preprocessing - Encode labels\n",
        "le = LabelEncoder()\n",
        "df['sentiment_encoded'] = le.fit_transform(df['sentiment'])\n",
        "\n",
        "# Step 3: Split data into features (X) and labels (y)\n",
        "X = df['text']\n",
        "y = df['sentiment_encoded']\n",
        "\n",
        "# Step 4: Train-Test Split\n",
        "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42, stratify=y)\n",
        "\n",
        "# Step 5: Text Vectorization (using simple count vectorizer here for illustration)\n",
        "from sklearn.feature_extraction.text import CountVectorizer\n",
        "vectorizer = CountVectorizer(stop_words='english')\n",
        "X_train_vec = vectorizer.fit_transform(X_train)\n",
        "X_test_vec = vectorizer.transform(X_test)\n",
        "\n",
        "# Step 6: Train KNN model\n",
        "knn = KNeighborsClassifier(n_neighbors=3)\n",
        "knn.fit(X_train_vec, y_train)\n",
        "\n",
        "# Step 7: Make predictions\n",
        "y_pred = knn.predict(X_test_vec)\n",
        "\n",
        "# Step 8: Evaluation\n",
        "print(\"Classification Report:\")\n",
        "print(classification_report(y_test, y_pred, target_names=le.classes_))\n",
        "\n",
        "# Step 9: Confusion Matrix\n",
        "cm = confusion_matrix(y_test, y_pred, labels=le.transform(le.classes_))\n",
        "\n",
        "# Plot Confusion Matrix\n",
        "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',\n",
        "            xticklabels=le.classes_, yticklabels=le.classes_)\n",
        "\n",
        "plt.xlabel(\"Predicted\")\n",
        "plt.ylabel(\"True\")\n",
        "plt.title(\"Confusion Matrix\")\n",
        "plt.show()\n"
      ],
      "metadata": {
        "id": "NPU2LDAeNLhF",
        "outputId": "edb1ec16-c14c-4063-9040-d3537c00fc83",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 787
        }
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.00      0.00      0.00       1.0\n",
            "     neutral       0.00      0.00      0.00       1.0\n",
            "    positive       0.00      0.00      0.00       1.0\n",
            "\n",
            "    accuracy                           0.00       3.0\n",
            "   macro avg       0.00      0.00      0.00       3.0\n",
            "weighted avg       0.00      0.00      0.00       3.0\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.11/dist-packages/sklearn/metrics/_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
            "  _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n",
            "/usr/local/lib/python3.11/dist-packages/sklearn/metrics/_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
            "  _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n",
            "/usr/local/lib/python3.11/dist-packages/sklearn/metrics/_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
            "  _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    }
  ]
}