{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "gpuType": "T4"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "01e7dfb98c8f4df8a69da8427102f105": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_453a2b9159424435b3b80b8282507799",
              "IPY_MODEL_e982e9aafcab4fe2b32c87d027ef9eb4",
              "IPY_MODEL_16b0f11e209343e7a0011239b785f979"
            ],
            "layout": "IPY_MODEL_f2b8e2c38e254644aef9c8d27a2b4c94"
          }
        },
        "453a2b9159424435b3b80b8282507799": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_de4dc47d8fd34fb4af4a7895bb216dd5",
            "placeholder": "​",
            "style": "IPY_MODEL_e7a761550ea945d49c1e5ec80b7ab98d",
            "value": "Loading weights: 100%"
          }
        },
        "e982e9aafcab4fe2b32c87d027ef9eb4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_16275a661b80464f9660baa80b6ffbd6",
            "max": 100,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_cb053df037004f41855d0b966e1dc760",
            "value": 100
          }
        },
        "16b0f11e209343e7a0011239b785f979": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f6163a738b5a48ababdf5055dffeaab9",
            "placeholder": "​",
            "style": "IPY_MODEL_44cbb6b83e1245d09c331af730a7b1a6",
            "value": " 100/100 [00:00&lt;00:00, 447.85it/s, Materializing param=distilbert.transformer.layer.5.sa_layer_norm.weight]"
          }
        },
        "f2b8e2c38e254644aef9c8d27a2b4c94": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "de4dc47d8fd34fb4af4a7895bb216dd5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e7a761550ea945d49c1e5ec80b7ab98d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "16275a661b80464f9660baa80b6ffbd6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cb053df037004f41855d0b966e1dc760": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "f6163a738b5a48ababdf5055dffeaab9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "44cbb6b83e1245d09c331af730a7b1a6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "6b9b880d0aee41da970fe0bfb7bef8a0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_6901dfc42e5648eb87638d21d6294eb5",
              "IPY_MODEL_83ba4b4ff3594655adc1cc6dab53f989",
              "IPY_MODEL_5cc8ea678efb43dfbf9092372c0c2529"
            ],
            "layout": "IPY_MODEL_2845ae5677cd4cef9a612a1ab9c4632d"
          }
        },
        "6901dfc42e5648eb87638d21d6294eb5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_58b09966d1f54b05bbec8e8d46cc9a19",
            "placeholder": "​",
            "style": "IPY_MODEL_36e8caf1648545418eb7070300914fb5",
            "value": "Map: 100%"
          }
        },
        "83ba4b4ff3594655adc1cc6dab53f989": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_8154c8b091f74451a37aae9818da3bc2",
            "max": 25000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_f224a0c5452f4aea829611c0534f41e0",
            "value": 25000
          }
        },
        "5cc8ea678efb43dfbf9092372c0c2529": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6c5f96988576411d82d43f29346a8fde",
            "placeholder": "​",
            "style": "IPY_MODEL_ad8197fe891b44d0be2238c696784712",
            "value": " 25000/25000 [00:23&lt;00:00, 1111.47 examples/s]"
          }
        },
        "2845ae5677cd4cef9a612a1ab9c4632d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "58b09966d1f54b05bbec8e8d46cc9a19": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "36e8caf1648545418eb7070300914fb5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8154c8b091f74451a37aae9818da3bc2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f224a0c5452f4aea829611c0534f41e0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "6c5f96988576411d82d43f29346a8fde": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ad8197fe891b44d0be2238c696784712": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b52a6247120c45e1afa9ba62d94c01d8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_4605f352f1ca48bab0015890df5a377a",
              "IPY_MODEL_23981a2646a4467093508cacd00ac73f",
              "IPY_MODEL_6df702608f15448f8a5460fc78245ff1"
            ],
            "layout": "IPY_MODEL_44ecf06e5078464f9874f063c162c161"
          }
        },
        "4605f352f1ca48bab0015890df5a377a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_320c92429b16478eb11809e8b93c2bad",
            "placeholder": "​",
            "style": "IPY_MODEL_f99f4ef898f843a5b0890ff51355931b",
            "value": "Writing model shards: 100%"
          }
        },
        "23981a2646a4467093508cacd00ac73f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_427d43c0389c44c0a63e5947e2b5adb9",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_3c0b4dea3d8f436aaa8172c9ee787243",
            "value": 1
          }
        },
        "6df702608f15448f8a5460fc78245ff1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a103a03e7d1d41e0864ff5c741e36ac8",
            "placeholder": "​",
            "style": "IPY_MODEL_a32ad987236b44ad88774db918a96bb2",
            "value": " 1/1 [00:03&lt;00:00,  3.56s/it]"
          }
        },
        "44ecf06e5078464f9874f063c162c161": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "320c92429b16478eb11809e8b93c2bad": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f99f4ef898f843a5b0890ff51355931b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "427d43c0389c44c0a63e5947e2b5adb9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3c0b4dea3d8f436aaa8172c9ee787243": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "a103a03e7d1d41e0864ff5c741e36ac8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a32ad987236b44ad88774db918a96bb2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e855b886417947f582a39b59fcc2d0d6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_8f72a89f891547b68d1446c01f10ae44",
              "IPY_MODEL_9c454f68f2be4ca6a724f2daf521acde",
              "IPY_MODEL_19a7b7c748fc4f25a2cff6a5c807c524"
            ],
            "layout": "IPY_MODEL_b16763f744184a5daa75d21aa1d5ccd0"
          }
        },
        "8f72a89f891547b68d1446c01f10ae44": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_8e44f8ba317f44acaf5d72e12caed38a",
            "placeholder": "​",
            "style": "IPY_MODEL_7e16532dc7cb498e8506d725a1da83bc",
            "value": "Writing model shards: 100%"
          }
        },
        "9c454f68f2be4ca6a724f2daf521acde": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_246ba78600444e8db7db253373cdea6c",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_7d33735334d149198a4651369b7d3f6a",
            "value": 1
          }
        },
        "19a7b7c748fc4f25a2cff6a5c807c524": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4be445db643a47fb8aabeb57379e8824",
            "placeholder": "​",
            "style": "IPY_MODEL_505b65d1d3734ad986c8825d18451b51",
            "value": " 1/1 [00:05&lt;00:00,  5.92s/it]"
          }
        },
        "b16763f744184a5daa75d21aa1d5ccd0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8e44f8ba317f44acaf5d72e12caed38a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7e16532dc7cb498e8506d725a1da83bc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "246ba78600444e8db7db253373cdea6c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7d33735334d149198a4651369b7d3f6a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "4be445db643a47fb8aabeb57379e8824": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "505b65d1d3734ad986c8825d18451b51": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "f6ckZpGlQkQN",
        "outputId": "316c07f7-71b9-401a-876a-c631a328db9d"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "DatasetDict({\n",
            "    train: Dataset({\n",
            "        features: ['text', 'label'],\n",
            "        num_rows: 25000\n",
            "    })\n",
            "    test: Dataset({\n",
            "        features: ['text', 'label'],\n",
            "        num_rows: 25000\n",
            "    })\n",
            "    unsupervised: Dataset({\n",
            "        features: ['text', 'label'],\n",
            "        num_rows: 50000\n",
            "    })\n",
            "})\n"
          ]
        }
      ],
      "source": [
        "from datasets import load_dataset\n",
        "\n",
        "dataset = load_dataset(\"imdb\")\n",
        "\n",
        "print(dataset)"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install -q datasets transformers evaluate accelerate scikit-learn nltk shap"
      ],
      "metadata": {
        "id": "Ty6Cm3jUQlLG"
      },
      "execution_count": 31,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "import nltk\n",
        "import re\n",
        "import string\n",
        "\n",
        "from datasets import load_dataset\n",
        "from sklearn.feature_extraction.text import TfidfVectorizer\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.metrics import accuracy_score, precision_recall_fscore_support, classification_report, confusion_matrix\n",
        "from sklearn.pipeline import Pipeline\n",
        "\n",
        "nltk.download('stopwords')\n",
        "nltk.download('wordnet')\n",
        "nltk.download('omw-1.4')\n",
        "\n",
        "from nltk.corpus import stopwords\n",
        "from nltk.stem import WordNetLemmatizer"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "139VmDSqQ7Tk",
        "outputId": "2a24f21f-224b-49f2-f412-e1655475e3b8"
      },
      "execution_count": 32,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
            "[nltk_data]   Package stopwords is already up-to-date!\n",
            "[nltk_data] Downloading package wordnet to /root/nltk_data...\n",
            "[nltk_data]   Package wordnet is already up-to-date!\n",
            "[nltk_data] Downloading package omw-1.4 to /root/nltk_data...\n",
            "[nltk_data]   Package omw-1.4 is already up-to-date!\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "dataset = load_dataset(\"imdb\")\n",
        "dataset"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qxId9rXqQ9nh",
        "outputId": "158ab4d4-1b3d-47f8-ab81-0790f85d9193"
      },
      "execution_count": 33,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DatasetDict({\n",
              "    train: Dataset({\n",
              "        features: ['text', 'label'],\n",
              "        num_rows: 25000\n",
              "    })\n",
              "    test: Dataset({\n",
              "        features: ['text', 'label'],\n",
              "        num_rows: 25000\n",
              "    })\n",
              "    unsupervised: Dataset({\n",
              "        features: ['text', 'label'],\n",
              "        num_rows: 50000\n",
              "    })\n",
              "})"
            ]
          },
          "metadata": {},
          "execution_count": 33
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(dataset[\"train\"][0])\n",
        "print(dataset[\"test\"][0])"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jQtMpk5cRA_4",
        "outputId": "fb5ec780-de76-4cde-a832-db2dac8428cb"
      },
      "execution_count": 34,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "{'text': 'I rented I AM CURIOUS-YELLOW from my video store because of all the controversy that surrounded it when it was first released in 1967. I also heard that at first it was seized by U.S. customs if it ever tried to enter this country, therefore being a fan of films considered \"controversial\" I really had to see this for myself.<br /><br />The plot is centered around a young Swedish drama student named Lena who wants to learn everything she can about life. In particular she wants to focus her attentions to making some sort of documentary on what the average Swede thought about certain political issues such as the Vietnam War and race issues in the United States. In between asking politicians and ordinary denizens of Stockholm about their opinions on politics, she has sex with her drama teacher, classmates, and married men.<br /><br />What kills me about I AM CURIOUS-YELLOW is that 40 years ago, this was considered pornographic. Really, the sex and nudity scenes are few and far between, even then it\\'s not shot like some cheaply made porno. While my countrymen mind find it shocking, in reality sex and nudity are a major staple in Swedish cinema. Even Ingmar Bergman, arguably their answer to good old boy John Ford, had sex scenes in his films.<br /><br />I do commend the filmmakers for the fact that any sex shown in the film is shown for artistic purposes rather than just to shock people and make money to be shown in pornographic theaters in America. I AM CURIOUS-YELLOW is a good film for anyone wanting to study the meat and potatoes (no pun intended) of Swedish cinema. But really, this film doesn\\'t have much of a plot.', 'label': 0}\n",
            "{'text': 'I love sci-fi and am willing to put up with a lot. Sci-fi movies/TV are usually underfunded, under-appreciated and misunderstood. I tried to like this, I really did, but it is to good TV sci-fi as Babylon 5 is to Star Trek (the original). Silly prosthetics, cheap cardboard sets, stilted dialogues, CG that doesn\\'t match the background, and painfully one-dimensional characters cannot be overcome with a \\'sci-fi\\' setting. (I\\'m sure there are those of you out there who think Babylon 5 is good sci-fi TV. It\\'s not. It\\'s clichéd and uninspiring.) While US viewers might like emotion and character development, sci-fi is a genre that does not take itself seriously (cf. Star Trek). It may treat important issues, yet not as a serious philosophy. It\\'s really difficult to care about the characters here as they are not simply foolish, just missing a spark of life. Their actions and reactions are wooden and predictable, often painful to watch. The makers of Earth KNOW it\\'s rubbish as they have to always say \"Gene Roddenberry\\'s Earth...\" otherwise people would not continue watching. Roddenberry\\'s ashes must be turning in their orbit as this dull, cheap, poorly edited (watching it without advert breaks really brings this home) trudging Trabant of a show lumbers into space. Spoiler. So, kill off a main character. And then bring him back as another actor. Jeeez! Dallas all over again.', 'label': 0}\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "train_df = pd.DataFrame(dataset[\"train\"])\n",
        "test_df = pd.DataFrame(dataset[\"test\"])\n",
        "\n",
        "print(train_df.head())\n",
        "print(train_df[\"label\"].value_counts())"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QQc2UAlHREdM",
        "outputId": "22e52445-6cc2-427d-894b-e31e027fb98c"
      },
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                                                text  label\n",
            "0  I rented I AM CURIOUS-YELLOW from my video sto...      0\n",
            "1  \"I Am Curious: Yellow\" is a risible and preten...      0\n",
            "2  If only to avoid making this type of film in t...      0\n",
            "3  This film was probably inspired by Godard's Ma...      0\n",
            "4  Oh, brother...after hearing about this ridicul...      0\n",
            "label\n",
            "0    12500\n",
            "1    12500\n",
            "Name: count, dtype: int64\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "train_df[\"label\"].value_counts().plot(kind=\"bar\")\n",
        "plt.title(\"Class Distribution in Training Data\")\n",
        "plt.xticks([0, 1], [\"Negative\", \"Positive\"], rotation=0)\n",
        "plt.ylabel(\"Count\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 452
        },
        "id": "92cc8mGURHIl",
        "outputId": "97b6be20-9e97-49c6-e3cf-22231b103267"
      },
      "execution_count": 36,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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Bgy45e1d77PPPtOlS5fUr18/2Ww2lShRQna7XZ988om6dOmivn376o8//tCnn36q0NBQbdmyxdLbrc8++6wCAwM1adIk7dixQ5988onKlCmjd95552/Xfemll1S8eHGNGzdOx44d04wZMxQREaFFixaZNWPGjNGUKVPUvn17hYaGateuXQoNDdWlS5du53BIksqVK6dmzZppzZo1stvt8vT0tHRMSpcurTlz5mjAgAF68skn9dRTT0mS+VZ3VFSUfv31V/Xq1Uu+vr7mW/n79u3Tzz//fMc+bIE7zAAKoJSUFEOS8cQTT1heJyAgwOjRo4f5/NKlS0Z6erpDTVxcnGGz2YyJEyeay5544gnjwQcfvOm2vby8jIEDB1ruJdNnn31mSDK2bt16023XqVPHfD5u3Djj2lN/+vTphiTjt99+u+E2tm7dakgyPvvssyxjzZo1MyQZkZGR2Y41a9bMfL5mzRpDknHfffcZdrvdXP71118bkoyZM2eay64/3jfa5s1669GjhxEQEGA+X7p0qSHJePPNNx3qnn76acPJyck4evSouUyS4erq6rBs165dhiRj9uzZWV7rWnFxcVl66tGjhyHJ4WfDMAyjTp06Rt26dW+6vet5eHg4HJvM1/P09DQSExMdaq9evWpcvnzZYdn58+cNHx8f4/nnn3dYLskYN26c+TzzZ+X6uieffNIoWbKkw7Lr/70yfzZDQkKMjIwMc/nQoUONQoUKGcnJyYZhGEZ8fLzh4uJidOjQwWF748ePNyRl+zNwPUk3PX8GDx5sSDJ27dplGIb1Y/Lbb79lOSaZLl68mGXZl19+aUgy1q9f/7c94+7E23MokOx2uySpWLFiOd6GzWYzJ76mp6fr3Llz5ltb176t5u3trVOnTmnr1q033Ja3t7c2b96sM2fO5LifGylatOhNP0Xn7e0tSfruu+9yPGnaZrOpV69eluu7d+/ucOyffvpplS1bVj/88EOOXt+qH374QYUKFdKgQYMclg8fPlyGYejHH390WB4SEqKKFSuaz2vWrClPT0/9+uuvOe6hf//+Ds+bNGlyW9u7VseOHc23lDIVKlTInNeUkZGhpKQkXb16VfXq1bP89m92PZ87d848j26mX79+DlddmjRpovT0dB0/flySFB0dratXr+rFF190WO+ll16y1JsVmZPkM8+D3Dgm114RvXTp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GYULFzYqV65svPvuuw4fizeMG3+M/Ua3QrjWjW454OHhkaX2+n8PK250y4F33303S21GRobx9ttvGwEBAYbNZjPq1KljLF++PNtjoxvccuD621Fk/tzFxcWZy250y4Hrb4eR+TOwZs0ac9nVq1eN119/3fD19TXc3d2Nxx57zDhw4IBRsmRJo3///n97PK49B5ydnQ1vb2+jTp06xuDBg419+/bd1jHZtGmTUbduXcPV1dXh+Jw6dcp48sknDW9vb8PLy8t45plnjDNnztzwFgW4NzgZxh2cjQcAgAXJyckqXry43nzzTYe31oC8xJwmAECe+vPPP7Msy5wfxBflIj9hThMAIE8tWrRI8+bNU9u2bVW0aFFt2LBBX375pVq1aqVGjRrldXuAidAEAMhTNWvWlIuLi6ZMmSK73W5ODn/zzTfzujXAAXOaAAAALGBOEwAAgAWEJgAAAAuY05RLMjIydObMGRUrVizXv3ICAAD8MwzD0B9//CE/Pz85O9/8WhKhKZecOXNG/v7+ed0GAADIgZMnT+r++++/aQ2hKZdkfhHkyZMn5enpmcfdAAAAK+x2u/z9/c3f4zdDaMolmW/JeXp6EpoAALjLWJlaw0RwAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGABoQkAAMACl7xuAHe/8qNX5HULuIOOTQ7L6xZwB3F+Fyyc3zfHlSYAAAALCE0AAAAWEJoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAAkITAACABYQmAAAAC/I0NK1fv17t27eXn5+fnJyctHTpUnMsLS1No0aNUo0aNeTh4SE/Pz91795dZ86ccdhGUlKSwsPD5enpKW9vb/Xu3VupqakONbt371aTJk3k5uYmf39/TZkyJUsvixcvVtWqVeXm5qYaNWrohx9++Ef2GQAA3J3yNDRduHBBtWrV0gcffJBl7OLFi9qxY4def/117dixQ998840OHTqkxx9/3KEuPDxc+/btU1RUlJYvX67169erX79+5rjdblerVq0UEBCg7du3691339X48eM1d+5cs2bTpk3q0qWLevfurf/973/q0KGDOnTooL179/5zOw8AAO4qToZhGHndhCQ5OTnp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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "train_df[\"review_length\"] = train_df[\"text\"].apply(lambda x: len(x.split()))\n",
        "\n",
        "plt.hist(train_df[\"review_length\"], bins=50)\n",
        "plt.title(\"Distribution of Review Lengths\")\n",
        "plt.xlabel(\"Number of Words\")\n",
        "plt.ylabel(\"Frequency\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 459
        },
        "id": "HnXW6VCpRRm8",
        "outputId": "5b1c804e-32e4-468a-9602-043e577b30e2"
      },
      "execution_count": 37,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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Sfj444+xdetWnDx5EiNGjICrq6t0J1rr1q3Rr18/vPnmm/j1119x4MABTJw4EUOHDoWrqysA4PXXX4darUZQUBASExOxYcMGLFu2DFOmTDHTXhMREVFtY9YzREePHkWvXr2k5ZKQMnLkSERERGDGjBm4efMmxo0bh+zsbHTt2hWRkZGwtraW3rNmzRpMnDgRffr0gYWFBQIDA/Hpp59K63U6HXbt2oXg4GD4+PjAyckJs2bNkj2riIiIiJSt1jyHqDar7ucQ8bb7h+MlMyIiqoyK/P2utZOqiYiIiGoKAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESlerf3oDqIS/HgPIiKqbjxDRERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrH5xDRE4HPKiIiosfBM0RERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4vO2eFIO35hMR0YPwDBEREREpHgMRERERKR4DERERESke5xAR3YPzjIiIlIlniIiIiEjxGIiIiIhI8RiIiIiISPE4h4iogjjPiIjoycMzRERERKR4DERERESkeLxkRlQNeFmNiKhuYSAiMhOGJiKi2oOXzIiIiEjxeIaIqBbjWSQioprBQERUx9VkaGJAI6InlaIumX3xxRdo2rQprK2t4evri19//dXcJREREVEtoJgzRBs2bMCUKVMQHh4OX19fLF26FP7+/khKSoKzs7O5yyOqVuU5s0NEpGQqIYQwdxE1wdfXF88++yw+//xzAEBxcTHc3Nzw9ttv47333nvoe00mE3Q6HXJycqDVaqu8Nv6xIqXhZTUiqgkV+futiEtm+fn5iI+Ph5+fn9RmYWEBPz8/xMXFmbEyIiIiqg0Uccnsr7/+QlFREfR6vaxdr9fjzJkzpfrn5eUhLy9PWs7JyQFwN2lWh+K8W9UyLlFt1WTypkf2OfWhfw1UQkRPspK/2+W5GKaIQFRRYWFh+PDDD0u1u7m5maEaImXSLTV3BUT0pLhx4wZ0Ot1D+ygiEDk5OcHS0hKZmZmy9szMTBgMhlL9Q0JCMGXKFGm5uLgY165dQ8OGDaFSqaqkJpPJBDc3N1y6dKla5iWRHI93zeGxrlk83jWLx7vmVMWxFkLgxo0bcHV1fWRf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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "stop_words = set(stopwords.words(\"english\"))\n",
        "lemmatizer = WordNetLemmatizer()\n",
        "\n",
        "def clean_text(text):\n",
        "    text = text.lower()\n",
        "    text = re.sub(r\"<.*?>\", \" \", text)  # remove HTML tags\n",
        "    text = re.sub(rf\"[{re.escape(string.punctuation)}]\", \" \", text)  # remove punctuation\n",
        "    text = re.sub(r\"\\d+\", \" \", text)  # remove numbers\n",
        "    text = re.sub(r\"\\s+\", \" \", text).strip()  # remove extra whitespace\n",
        "\n",
        "    words = text.split()\n",
        "    words = [lemmatizer.lemmatize(word) for word in words if word not in stop_words]\n",
        "    return \" \".join(words)\n",
        "\n",
        "train_df[\"clean_text\"] = train_df[\"text\"].apply(clean_text)\n",
        "test_df[\"clean_text\"] = test_df[\"text\"].apply(clean_text)\n",
        "\n",
        "train_df[[\"text\", \"clean_text\"]].head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 293
        },
        "id": "vNfuqs0vRTvu",
        "outputId": "a4bc4c07-3eeb-4700-c453-fab2e13330c1"
      },
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                                text  \\\n",
              "0  I rented I AM CURIOUS-YELLOW from my video sto...   \n",
              "1  \"I Am Curious: Yellow\" is a risible and preten...   \n",
              "2  If only to avoid making this type of film in t...   \n",
              "3  This film was probably inspired by Godard's Ma...   \n",
              "4  Oh, brother...after hearing about this ridicul...   \n",
              "\n",
              "                                          clean_text  \n",
              "0  rented curious yellow video store controversy ...  \n",
              "1  curious yellow risible pretentious steaming pi...  \n",
              "2  avoid making type film future film interesting...  \n",
              "3  film probably inspired godard masculin féminin...  \n",
              "4  oh brother hearing ridiculous film umpteen yea...  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-1d8b6d00-84d1-45df-923e-de842e38e75b\" 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>clean_text</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>I rented I AM CURIOUS-YELLOW from my video sto...</td>\n",
              "      <td>rented curious yellow video store controversy ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>\"I Am Curious: Yellow\" is a risible and preten...</td>\n",
              "      <td>curious yellow risible pretentious steaming pi...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>If only to avoid making this type of film in t...</td>\n",
              "      <td>avoid making type film future film interesting...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>This film was probably inspired by Godard's Ma...</td>\n",
              "      <td>film probably inspired godard masculin féminin...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>Oh, brother...after hearing about this ridicul...</td>\n",
              "      <td>oh brother hearing ridiculous film umpteen yea...</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-1d8b6d00-84d1-45df-923e-de842e38e75b')\"\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-1d8b6d00-84d1-45df-923e-de842e38e75b 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-1d8b6d00-84d1-45df-923e-de842e38e75b');\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\": \"train_df[[\\\"text\\\", \\\"clean_text\\\"]]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"\\\"I Am Curious: Yellow\\\" is a risible and pretentious steaming pile. It doesn't matter what one's political views are because this film can hardly be taken seriously on any level. As for the claim that frontal male nudity is an automatic NC-17, that isn't true. I've seen R-rated films with male nudity. Granted, they only offer some fleeting views, but where are the R-rated films with gaping vulvas and flapping labia? Nowhere, because they don't exist. The same goes for those crappy cable shows: schlongs swinging in the breeze but not a clitoris in sight. And those pretentious indie movies like The Brown Bunny, in which we're treated to the site of Vincent Gallo's throbbing johnson, but not a trace of pink visible on Chloe Sevigny. Before crying (or implying) \\\"double-standard\\\" in matters of nudity, the mentally obtuse should take into account one unavoidably obvious anatomical difference between men and women: there are no genitals on display when actresses appears nude, and the same cannot be said for a man. In fact, you generally won't see female genitals in an American film in anything short of porn or explicit erotica. This alleged double-standard is less a double standard than an admittedly depressing ability to come to terms culturally with the insides of women's bodies.\",\n          \"Oh, brother...after hearing about this ridiculous film for umpteen years all I can think of is that old Peggy Lee song..<br /><br />\\\"Is that all there is??\\\" ...I was just an early teen when this smoked fish hit the U.S. I was too young to get in the theater (although I did manage to sneak into \\\"Goodbye Columbus\\\"). Then a screening at a local film museum beckoned - Finally I could see this film, except now I was as old as my parents were when they schlepped to see it!!<br /><br />The ONLY reason this film was not condemned to the anonymous sands of time was because of the obscenity case sparked by its U.S. release. MILLIONS of people flocked to this stinker, thinking they were going to see a sex film...Instead, they got lots of closeups of gnarly, repulsive Swedes, on-street interviews in bland shopping malls, asinie political pretension...and feeble who-cares simulated sex scenes with saggy, pale actors.<br /><br />Cultural icon, holy grail, historic artifact..whatever this thing was, shred it, burn it, then stuff the ashes in a lead box!<br /><br />Elite esthetes still scrape to find value in its boring pseudo revolutionary political spewings..But if it weren't for the censorship scandal, it would have been ignored, then forgotten.<br /><br />Instead, the \\\"I Am Blank, Blank\\\" rhythymed title was repeated endlessly for years as a titilation for porno films (I am Curious, Lavender - for gay films, I Am Curious, Black - for blaxploitation films, etc..) and every ten years or so the thing rises from the dead, to be viewed by a new generation of suckers who want to see that \\\"naughty sex film\\\" that \\\"revolutionized the film industry\\\"...<br /><br />Yeesh, avoid like the plague..Or if you MUST see it - rent the video and fast forward to the \\\"dirty\\\" parts, just to get it over with.<br /><br />\",\n          \"If only to avoid making this type of film in the future. This film is interesting as an experiment but tells no cogent story.<br /><br />One might feel virtuous for sitting thru it because it touches on so many IMPORTANT issues but it does so without any discernable motive. The viewer comes away with no new perspectives (unless one comes up with one while one's mind wanders, as it will invariably do during this pointless film).<br /><br />One might better spend one's time staring out a window at a tree growing.<br /><br />\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"clean_text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"curious yellow risible pretentious steaming pile matter one political view film hardly taken seriously level claim frontal male nudity automatic nc true seen r rated film male nudity granted offer fleeting view r rated film gaping vulva flapping labium nowhere exist go crappy cable show schlongs swinging breeze clitoris sight pretentious indie movie like brown bunny treated site vincent gallo throbbing johnson trace pink visible chloe sevigny cry implying double standard matter nudity mentally obtuse take account one unavoidably obvious anatomical difference men woman genitals display actress appears nude cannot said man fact generally see female genitals american film anything short porn explicit erotica alleged double standard less double standard admittedly depressing ability come term culturally inside woman body\",\n          \"oh brother hearing ridiculous film umpteen year think old peggy lee song early teen smoked fish hit u young get theater although manage sneak goodbye columbus screening local film museum beckoned finally could see film except old parent schlepped see reason film condemned anonymous sand time obscenity case sparked u release million people flocked stinker thinking going see sex film instead got lot closeup gnarly repulsive swede street interview bland shopping mall asinie political pretension feeble care simulated sex scene saggy pale actor cultural icon holy grail historic artifact whatever thing shred burn stuff ash lead box elite esthete still scrape find value boring pseudo revolutionary political spewings censorship scandal would ignored forgotten instead blank blank rhythymed title repeated endlessly year titilation porno film curious lavender gay film curious black blaxploitation film etc every ten year thing rise dead viewed new generation sucker want see naughty sex film revolutionized film industry yeesh avoid like plague must see rent video fast forward dirty part get\",\n          \"avoid making type film future film interesting experiment tell cogent story one might feel virtuous sitting thru touch many important issue without discernable motive viewer come away new perspective unless one come one one mind wanders invariably pointless film one might better spend one time staring window tree growing\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 38
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "tfidf_lr_pipeline = Pipeline([\n",
        "    (\"tfidf\", TfidfVectorizer(max_features=10000, ngram_range=(1,2))),\n",
        "    (\"clf\", LogisticRegression(max_iter=1000))\n",
        "])\n",
        "\n",
        "tfidf_lr_pipeline.fit(train_df[\"clean_text\"], train_df[\"label\"])\n",
        "\n",
        "lr_preds = tfidf_lr_pipeline.predict(test_df[\"clean_text\"])"
      ],
      "metadata": {
        "id": "zUr6EhJ1RW_u"
      },
      "execution_count": 39,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "accuracy = accuracy_score(test_df[\"label\"], lr_preds)\n",
        "precision, recall, f1, _ = precision_recall_fscore_support(test_df[\"label\"], lr_preds, average=\"binary\")\n",
        "\n",
        "print(\"TF-IDF + Logistic Regression Results\")\n",
        "print(f\"Accuracy:  {accuracy:.4f}\")\n",
        "print(f\"Precision: {precision:.4f}\")\n",
        "print(f\"Recall:    {recall:.4f}\")\n",
        "print(f\"F1-score:  {f1:.4f}\")\n",
        "\n",
        "print(\"\\nClassification Report:\\n\")\n",
        "print(classification_report(test_df[\"label\"], lr_preds, target_names=[\"Negative\", \"Positive\"]))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "k1z4jj2XRqIW",
        "outputId": "f6bc6555-af91-4974-eb04-11ae5d7694be"
      },
      "execution_count": 40,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "TF-IDF + Logistic Regression Results\n",
            "Accuracy:  0.8841\n",
            "Precision: 0.8824\n",
            "Recall:    0.8864\n",
            "F1-score:  0.8844\n",
            "\n",
            "Classification Report:\n",
            "\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    Negative       0.89      0.88      0.88     12500\n",
            "    Positive       0.88      0.89      0.88     12500\n",
            "\n",
            "    accuracy                           0.88     25000\n",
            "   macro avg       0.88      0.88      0.88     25000\n",
            "weighted avg       0.88      0.88      0.88     25000\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "cm = confusion_matrix(test_df[\"label\"], lr_preds)\n",
        "\n",
        "plt.figure(figsize=(6,4))\n",
        "sns.heatmap(cm, annot=True, fmt=\"d\", cmap=\"Blues\",\n",
        "            xticklabels=[\"Negative\", \"Positive\"],\n",
        "            yticklabels=[\"Negative\", \"Positive\"])\n",
        "plt.xlabel(\"Predicted\")\n",
        "plt.ylabel(\"Actual\")\n",
        "plt.title(\"Confusion Matrix - TF-IDF + Logistic Regression\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 410
        },
        "id": "VI66tCBKR1aN",
        "outputId": "bd86ea75-c2d7-4a19-b1dc-e6663578ba62"
      },
      "execution_count": 41,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "vectorizer = tfidf_lr_pipeline.named_steps[\"tfidf\"]\n",
        "model = tfidf_lr_pipeline.named_steps[\"clf\"]\n",
        "\n",
        "feature_names = np.array(vectorizer.get_feature_names_out())\n",
        "coefficients = model.coef_[0]\n",
        "\n",
        "top_positive = feature_names[np.argsort(coefficients)[-20:]]\n",
        "top_negative = feature_names[np.argsort(coefficients)[:20]]\n",
        "\n",
        "print(\"Top Positive Words:\")\n",
        "print(top_positive)\n",
        "\n",
        "print(\"\\nTop Negative Words:\")\n",
        "print(top_negative)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Ha3dJinzR5FD",
        "outputId": "6ce2c22c-8b21-475d-b97d-c66f284dc443"
      },
      "execution_count": 42,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Top Positive Words:\n",
            "['beautiful' 'fantastic' 'must see' 'enjoyed' 'highly' 'love' 'one best'\n",
            " 'brilliant' 'superb' 'today' 'well' 'fun' 'loved' 'favorite' 'amazing'\n",
            " 'best' 'wonderful' 'perfect' 'excellent' 'great']\n",
            "\n",
            "Top Negative Words:\n",
            "['worst' 'bad' 'awful' 'waste' 'boring' 'poor' 'nothing' 'worse'\n",
            " 'terrible' 'horrible' 'poorly' 'dull' 'unfortunately' 'disappointment'\n",
            " 'disappointing' 'annoying' 'supposed' 'ridiculous' 'stupid' 'fails']\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import AutoTokenizer, AutoModelForSequenceClassification\n",
        "from transformers import TrainingArguments, Trainer\n",
        "import evaluate"
      ],
      "metadata": {
        "id": "WHzFxIueR757"
      },
      "execution_count": 43,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "model_name = \"distilbert-base-uncased\"\n",
        "\n",
        "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
        "model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 359,
          "referenced_widgets": [
            "01e7dfb98c8f4df8a69da8427102f105",
            "453a2b9159424435b3b80b8282507799",
            "e982e9aafcab4fe2b32c87d027ef9eb4",
            "16b0f11e209343e7a0011239b785f979",
            "f2b8e2c38e254644aef9c8d27a2b4c94",
            "de4dc47d8fd34fb4af4a7895bb216dd5",
            "e7a761550ea945d49c1e5ec80b7ab98d",
            "16275a661b80464f9660baa80b6ffbd6",
            "cb053df037004f41855d0b966e1dc760",
            "f6163a738b5a48ababdf5055dffeaab9",
            "44cbb6b83e1245d09c331af730a7b1a6"
          ]
        },
        "id": "ucwf3f7SR_Rk",
        "outputId": "f60d1e07-2436-4ac5-9446-11782717299a"
      },
      "execution_count": 44,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Loading weights:   0%|          | 0/100 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "01e7dfb98c8f4df8a69da8427102f105"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "DistilBertForSequenceClassification LOAD REPORT from: distilbert-base-uncased\n",
            "Key                     | Status     | \n",
            "------------------------+------------+-\n",
            "vocab_projector.bias    | UNEXPECTED | \n",
            "vocab_transform.bias    | UNEXPECTED | \n",
            "vocab_layer_norm.weight | UNEXPECTED | \n",
            "vocab_transform.weight  | UNEXPECTED | \n",
            "vocab_layer_norm.bias   | UNEXPECTED | \n",
            "pre_classifier.weight   | MISSING    | \n",
            "classifier.bias         | MISSING    | \n",
            "pre_classifier.bias     | MISSING    | \n",
            "classifier.weight       | MISSING    | \n",
            "\n",
            "Notes:\n",
            "- UNEXPECTED\t:can be ignored when loading from different task/architecture; not ok if you expect identical arch.\n",
            "- MISSING\t:those params were newly initialized because missing from the checkpoint. Consider training on your downstream task.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def tokenize_function(examples):\n",
        "    return tokenizer(examples[\"text\"], truncation=True, padding=\"max_length\", max_length=256)\n",
        "\n",
        "tokenized_dataset = dataset.map(tokenize_function, batched=True)\n",
        "tokenized_dataset = tokenized_dataset.rename_column(\"label\", \"labels\")\n",
        "tokenized_dataset.set_format(\"torch\", columns=[\"input_ids\", \"attention_mask\", \"labels\"])"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49,
          "referenced_widgets": [
            "6b9b880d0aee41da970fe0bfb7bef8a0",
            "6901dfc42e5648eb87638d21d6294eb5",
            "83ba4b4ff3594655adc1cc6dab53f989",
            "5cc8ea678efb43dfbf9092372c0c2529",
            "2845ae5677cd4cef9a612a1ab9c4632d",
            "58b09966d1f54b05bbec8e8d46cc9a19",
            "36e8caf1648545418eb7070300914fb5",
            "8154c8b091f74451a37aae9818da3bc2",
            "f224a0c5452f4aea829611c0534f41e0",
            "6c5f96988576411d82d43f29346a8fde",
            "ad8197fe891b44d0be2238c696784712"
          ]
        },
        "id": "v1Hm3fRDSJqY",
        "outputId": "a011124f-3649-4e92-bf3b-882cd2f742ef"
      },
      "execution_count": 45,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Map:   0%|          | 0/25000 [00:00<?, ? examples/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "6b9b880d0aee41da970fe0bfb7bef8a0"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "small_train = tokenized_dataset[\"train\"].shuffle(seed=42).select(range(4000))\n",
        "small_test = tokenized_dataset[\"test\"].shuffle(seed=42).select(range(1000))"
      ],
      "metadata": {
        "id": "07AiONL2SOu7"
      },
      "execution_count": 46,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "accuracy_metric = evaluate.load(\"accuracy\")\n",
        "precision_metric = evaluate.load(\"precision\")\n",
        "recall_metric = evaluate.load(\"recall\")\n",
        "f1_metric = evaluate.load(\"f1\")\n",
        "\n",
        "def compute_metrics(eval_pred):\n",
        "    logits, labels = eval_pred\n",
        "    predictions = np.argmax(logits, axis=-1)\n",
        "\n",
        "    accuracy = accuracy_metric.compute(predictions=predictions, references=labels)\n",
        "    precision = precision_metric.compute(predictions=predictions, references=labels, average=\"binary\")\n",
        "    recall = recall_metric.compute(predictions=predictions, references=labels, average=\"binary\")\n",
        "    f1 = f1_metric.compute(predictions=predictions, references=labels, average=\"binary\")\n",
        "\n",
        "    return {\n",
        "        \"accuracy\": accuracy[\"accuracy\"],\n",
        "        \"precision\": precision[\"precision\"],\n",
        "        \"recall\": recall[\"recall\"],\n",
        "        \"f1\": f1[\"f1\"],\n",
        "    }"
      ],
      "metadata": {
        "id": "2NcCMdLeS4tl"
      },
      "execution_count": 47,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "training_args = TrainingArguments(\n",
        "    output_dir=\"./results\",\n",
        "    eval_strategy=\"epoch\",\n",
        "    save_strategy=\"epoch\",\n",
        "    logging_dir=\"./logs\",\n",
        "    logging_steps=100,\n",
        "    per_device_train_batch_size=8,\n",
        "    per_device_eval_batch_size=8,\n",
        "    num_train_epochs=2,\n",
        "    weight_decay=0.01,\n",
        "    load_best_model_at_end=True,\n",
        "    report_to=\"none\"\n",
        ")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-CswE9UKTKfI",
        "outputId": "531d59e6-e148-407a-c163-4c3772aa4a1c"
      },
      "execution_count": 48,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "`logging_dir` is deprecated and will be removed in v5.2. Please set `TENSORBOARD_LOGGING_DIR` instead.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "trainer = Trainer(\n",
        "    model=model,\n",
        "    args=training_args,\n",
        "    train_dataset=small_train,\n",
        "    eval_dataset=small_test,\n",
        "    compute_metrics=compute_metrics\n",
        ")"
      ],
      "metadata": {
        "id": "T2LLNLdRTW1-"
      },
      "execution_count": 49,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "trainer.train()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 343,
          "referenced_widgets": [
            "b52a6247120c45e1afa9ba62d94c01d8",
            "4605f352f1ca48bab0015890df5a377a",
            "23981a2646a4467093508cacd00ac73f",
            "6df702608f15448f8a5460fc78245ff1",
            "44ecf06e5078464f9874f063c162c161",
            "320c92429b16478eb11809e8b93c2bad",
            "f99f4ef898f843a5b0890ff51355931b",
            "427d43c0389c44c0a63e5947e2b5adb9",
            "3c0b4dea3d8f436aaa8172c9ee787243",
            "a103a03e7d1d41e0864ff5c741e36ac8",
            "a32ad987236b44ad88774db918a96bb2",
            "e855b886417947f582a39b59fcc2d0d6",
            "8f72a89f891547b68d1446c01f10ae44",
            "9c454f68f2be4ca6a724f2daf521acde",
            "19a7b7c748fc4f25a2cff6a5c807c524",
            "b16763f744184a5daa75d21aa1d5ccd0",
            "8e44f8ba317f44acaf5d72e12caed38a",
            "7e16532dc7cb498e8506d725a1da83bc",
            "246ba78600444e8db7db253373cdea6c",
            "7d33735334d149198a4651369b7d3f6a",
            "4be445db643a47fb8aabeb57379e8824",
            "505b65d1d3734ad986c8825d18451b51"
          ]
        },
        "id": "xK2cwFueUYRs",
        "outputId": "2d01c612-23a4-4f24-e18c-a5786803e06d"
      },
      "execution_count": 50,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='1000' max='1000' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [1000/1000 04:13, Epoch 2/2]\n",
              "    </div>\n",
              "    <table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              " <tr style=\"text-align: left;\">\n",
              "      <th>Epoch</th>\n",
              "      <th>Training Loss</th>\n",
              "      <th>Validation Loss</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <td>1</td>\n",
              "      <td>0.359636</td>\n",
              "      <td>0.338872</td>\n",
              "      <td>0.862000</td>\n",
              "      <td>0.820513</td>\n",
              "      <td>0.918033</td>\n",
              "      <td>0.866538</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>2</td>\n",
              "      <td>0.157445</td>\n",
              "      <td>0.408915</td>\n",
              "      <td>0.884000</td>\n",
              "      <td>0.864706</td>\n",
              "      <td>0.903689</td>\n",
              "      <td>0.883768</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table><p>"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Writing model shards:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "b52a6247120c45e1afa9ba62d94c01d8"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Writing model shards:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "e855b886417947f582a39b59fcc2d0d6"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "There were missing keys in the checkpoint model loaded: ['distilbert.embeddings.LayerNorm.weight', 'distilbert.embeddings.LayerNorm.bias'].\n",
            "There were unexpected keys in the checkpoint model loaded: ['distilbert.embeddings.LayerNorm.beta', 'distilbert.embeddings.LayerNorm.gamma'].\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "TrainOutput(global_step=1000, training_loss=0.3149368305206299, metrics={'train_runtime': 253.7715, 'train_samples_per_second': 31.524, 'train_steps_per_second': 3.941, 'total_flos': 529869594624000.0, 'train_loss': 0.3149368305206299, 'epoch': 2.0})"
            ]
          },
          "metadata": {},
          "execution_count": 50
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "bert_results = trainer.evaluate()\n",
        "print(bert_results)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 74
        },
        "id": "qeXTACR0UY4L",
        "outputId": "a75e982a-90b6-4764-f9f7-5cb80096933a"
      },
      "execution_count": 51,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='125' max='125' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [125/125 00:08]\n",
              "    </div>\n",
              "    "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "{'eval_loss': 0.3389528691768646, 'eval_accuracy': 0.862, 'eval_precision': 0.8205128205128205, 'eval_recall': 0.9180327868852459, 'eval_f1': 0.8665377176015474, 'eval_runtime': 8.9707, 'eval_samples_per_second': 111.474, 'eval_steps_per_second': 13.934, 'epoch': 2.0}\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "pred_output = trainer.predict(small_test)\n",
        "bert_preds = np.argmax(pred_output.predictions, axis=-1)\n",
        "bert_labels = pred_output.label_ids\n",
        "\n",
        "print(classification_report(bert_labels, bert_preds, target_names=[\"Negative\", \"Positive\"]))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        },
        "id": "LciFPQs9XpY4",
        "outputId": "c3e330b5-a3ae-4d53-fd82-965b066043e4"
      },
      "execution_count": 52,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": []
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "              precision    recall  f1-score   support\n",
            "\n",
            "    Negative       0.91      0.81      0.86       512\n",
            "    Positive       0.82      0.92      0.87       488\n",
            "\n",
            "    accuracy                           0.86      1000\n",
            "   macro avg       0.87      0.86      0.86      1000\n",
            "weighted avg       0.87      0.86      0.86      1000\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "cm_bert = confusion_matrix(bert_labels, bert_preds)\n",
        "\n",
        "plt.figure(figsize=(6,4))\n",
        "sns.heatmap(cm_bert, annot=True, fmt=\"d\", cmap=\"Greens\",\n",
        "            xticklabels=[\"Negative\", \"Positive\"],\n",
        "            yticklabels=[\"Negative\", \"Positive\"])\n",
        "plt.xlabel(\"Predicted\")\n",
        "plt.ylabel(\"Actual\")\n",
        "plt.title(\"Confusion Matrix - DistilBERT\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 410
        },
        "id": "SG6XJxnHX4RA",
        "outputId": "96c1fcb9-8f1a-4dd5-9a0d-3e019cb6f056"
      },
      "execution_count": 53,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "lr_accuracy = accuracy_score(test_df[\"label\"], lr_preds)\n",
        "lr_precision, lr_recall, lr_f1, _ = precision_recall_fscore_support(test_df[\"label\"], lr_preds, average=\"binary\")\n",
        "\n",
        "comparison_df = pd.DataFrame({\n",
        "    \"Model\": [\"TF-IDF + Logistic Regression\", \"DistilBERT\"],\n",
        "    \"Accuracy\": [lr_accuracy, bert_results[\"eval_accuracy\"]],\n",
        "    \"Precision\": [lr_precision, bert_results[\"eval_precision\"]],\n",
        "    \"Recall\": [lr_recall, bert_results[\"eval_recall\"]],\n",
        "    \"F1-score\": [lr_f1, bert_results[\"eval_f1\"]]\n",
        "})\n",
        "\n",
        "comparison_df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 147
        },
        "id": "jsAN2KECYAqj",
        "outputId": "8930ee81-598a-43cb-9d50-6032391552d5"
      },
      "execution_count": 54,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                          Model  Accuracy  Precision    Recall  F1-score\n",
              "0  TF-IDF + Logistic Regression   0.88412   0.882376  0.886400  0.884384\n",
              "1                    DistilBERT   0.86200   0.820513  0.918033  0.866538"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3487ae55-94b1-4349-96a2-bec376c6ae6c\" 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>Model</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1-score</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>TF-IDF + Logistic Regression</td>\n",
              "      <td>0.88412</td>\n",
              "      <td>0.882376</td>\n",
              "      <td>0.886400</td>\n",
              "      <td>0.884384</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>DistilBERT</td>\n",
              "      <td>0.86200</td>\n",
              "      <td>0.820513</td>\n",
              "      <td>0.918033</td>\n",
              "      <td>0.866538</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-3487ae55-94b1-4349-96a2-bec376c6ae6c')\"\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-3487ae55-94b1-4349-96a2-bec376c6ae6c 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-3487ae55-94b1-4349-96a2-bec376c6ae6c');\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_6edd9bf3-27f1-48cc-a118-4aca08c00160\">\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('comparison_df')\"\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_6edd9bf3-27f1-48cc-a118-4aca08c00160 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('comparison_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "comparison_df",
              "summary": "{\n  \"name\": \"comparison_df\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"Model\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"DistilBERT\",\n          \"TF-IDF + Logistic Regression\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.015641201999846453,\n        \"min\": 0.862,\n        \"max\": 0.88412,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.862,\n          0.88412\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.04374413095326879,\n        \"min\": 0.8205128205128205,\n        \"max\": 0.8823763637811579,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.8205128205128205,\n          0.8823763637811579\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0223677581143863,\n        \"min\": 0.8864,\n        \"max\": 0.9180327868852459,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.9180327868852459,\n          0.8864\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1-score\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.012618948264250054,\n        \"min\": 0.8665377176015474,\n        \"max\": 0.8843836053797343,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.8665377176015474,\n          0.8843836053797343\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 54
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "VK0KBNGwYECj"
      },
      "execution_count": 54,
      "outputs": []
    }
  ]
}