File size: 186,616 Bytes
48d9f56
1
{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"datalore":{"computation_mode":"JUPYTER","package_manager":"pip","base_environment":"default","packages":[],"report_row_ids":[],"version":3},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":61542,"databundleVersionId":7516023,"sourceType":"competition"},{"sourceId":2468672,"sourceType":"datasetVersion","datasetId":1455358},{"sourceId":6977472,"sourceType":"datasetVersion","datasetId":4005256}],"dockerImageVersionId":30648,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# LLM - Detect AI Generated Text","metadata":{"datalore":{"node_id":"Pa2yxouvTjqcDsgCYUzPjr","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"markdown","source":"This competition challenges participants to develop a machine learning model that can accurately detect whether an essay was written by a student or an LLM. The competition dataset comprises a mix of student-written essays and essays generated by a variety of LLMs.","metadata":{}},{"cell_type":"markdown","source":"**Evaluation:**\nSubmissions are evaluated on area under the ROC curve between the predicted probability and the observed target.","metadata":{}},{"cell_type":"markdown","source":"## 1. Import libraries","metadata":{"datalore":{"node_id":"ek6n1GGlnkNFGIJ0DB0C1g","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"!pip install datasets==2.15","metadata":{"datalore":{"node_id":"gLJbvMXVqhcKYPln9YBRIq","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:12:50.593215Z","iopub.execute_input":"2024-02-07T16:12:50.593867Z","iopub.status.idle":"2024-02-07T16:13:03.047070Z","shell.execute_reply.started":"2024-02-07T16:12:50.593836Z","shell.execute_reply":"2024-02-07T16:13:03.045794Z"},"trusted":true},"execution_count":44,"outputs":[{"name":"stderr","text":"huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\nTo disable this warning, you can either:\n\t- Avoid using `tokenizers` before the fork if possible\n\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n","output_type":"stream"},{"name":"stdout","text":"Requirement already satisfied: datasets==2.15 in /opt/conda/lib/python3.10/site-packages (2.15.0)\nRequirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (1.24.4)\nRequirement already satisfied: pyarrow>=8.0.0 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (11.0.0)\nRequirement already satisfied: pyarrow-hotfix in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (0.6)\nRequirement already satisfied: dill<0.3.8,>=0.3.0 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (0.3.7)\nRequirement already satisfied: pandas in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (2.1.4)\nRequirement already satisfied: requests>=2.19.0 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (2.31.0)\nRequirement already satisfied: tqdm>=4.62.1 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (4.66.1)\nRequirement already satisfied: xxhash in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (3.4.1)\nRequirement already satisfied: multiprocess in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (0.70.15)\nRequirement already satisfied: fsspec<=2023.10.0,>=2023.1.0 in /opt/conda/lib/python3.10/site-packages (from fsspec[http]<=2023.10.0,>=2023.1.0->datasets==2.15) (2023.10.0)\nRequirement already satisfied: aiohttp in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (3.9.1)\nRequirement already satisfied: huggingface-hub>=0.18.0 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (0.20.3)\nRequirement already satisfied: packaging in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (21.3)\nRequirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.10/site-packages (from datasets==2.15) (6.0.1)\nRequirement already satisfied: attrs>=17.3.0 in /opt/conda/lib/python3.10/site-packages (from aiohttp->datasets==2.15) (23.2.0)\nRequirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.10/site-packages (from aiohttp->datasets==2.15) (6.0.4)\nRequirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.10/site-packages (from aiohttp->datasets==2.15) (1.9.3)\nRequirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.10/site-packages (from aiohttp->datasets==2.15) (1.4.1)\nRequirement already satisfied: aiosignal>=1.1.2 in /opt/conda/lib/python3.10/site-packages (from aiohttp->datasets==2.15) (1.3.1)\nRequirement already satisfied: async-timeout<5.0,>=4.0 in /opt/conda/lib/python3.10/site-packages (from aiohttp->datasets==2.15) (4.0.3)\nRequirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.18.0->datasets==2.15) (3.13.1)\nRequirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.18.0->datasets==2.15) (4.9.0)\nRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.10/site-packages (from packaging->datasets==2.15) (3.1.1)\nRequirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests>=2.19.0->datasets==2.15) (3.3.2)\nRequirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests>=2.19.0->datasets==2.15) (3.6)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests>=2.19.0->datasets==2.15) (1.26.18)\nRequirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.10/site-packages (from requests>=2.19.0->datasets==2.15) (2023.11.17)\nRequirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.10/site-packages (from pandas->datasets==2.15) (2.8.2)\nRequirement already satisfied: pytz>=2020.1 in /opt/conda/lib/python3.10/site-packages (from pandas->datasets==2.15) (2023.3.post1)\nRequirement already satisfied: tzdata>=2022.1 in /opt/conda/lib/python3.10/site-packages (from pandas->datasets==2.15) (2023.4)\nRequirement already satisfied: six>=1.5 in /opt/conda/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->datasets==2.15) (1.16.0)\n","output_type":"stream"}]},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\nimport re\n\nfrom transformers import PushToHubCallback\nfrom transformers import AutoTokenizer, DataCollatorWithPadding\nfrom transformers import TFAutoModelForSequenceClassification\nfrom tensorflow.keras.optimizers.schedules import PolynomialDecay\nfrom tensorflow.keras.optimizers import Adam\nimport tensorflow as tf\nfrom keras.callbacks import EarlyStopping\nimport datasets\n\nfrom sklearn.metrics import ConfusionMatrixDisplay\nfrom sklearn.metrics import classification_report, f1_score\n","metadata":{"datalore":{"node_id":"0tAJiErffFXiL5lrISxce7","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.049654Z","iopub.execute_input":"2024-02-07T16:13:03.049987Z","iopub.status.idle":"2024-02-07T16:13:03.059305Z","shell.execute_reply.started":"2024-02-07T16:13:03.049953Z","shell.execute_reply":"2024-02-07T16:13:03.058441Z"},"trusted":true},"execution_count":45,"outputs":[]},{"cell_type":"code","source":"from huggingface_hub import notebook_login\n\nnotebook_login()","metadata":{"execution":{"iopub.status.busy":"2024-02-07T16:13:03.060453Z","iopub.execute_input":"2024-02-07T16:13:03.060739Z","iopub.status.idle":"2024-02-07T16:13:03.097365Z","shell.execute_reply.started":"2024-02-07T16:13:03.060718Z","shell.execute_reply":"2024-02-07T16:13:03.096453Z"},"trusted":true},"execution_count":46,"outputs":[{"output_type":"display_data","data":{"text/plain":"VBox(children=(HTML(value='<center> <img\\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.sv…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"981bf8b1df664056a3bcd7cabcf5e55a"}},"metadata":{}}]},{"cell_type":"markdown","source":"## 2. Loading data","metadata":{"datalore":{"node_id":"f5wDDytoNShJY7UaEWvaWf","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"train_essays = pd.read_csv('/kaggle/input/llm-detect-ai-generated-text/train_essays.csv')\ntest_essays = pd.read_csv('/kaggle/input/llm-detect-ai-generated-text/test_essays.csv')\ntrain_prompts = pd.read_csv('/kaggle/input/llm-detect-ai-generated-text/train_prompts.csv')\nsample_submission = pd.read_csv('/kaggle/input/llm-detect-ai-generated-text/sample_submission.csv')","metadata":{"datalore":{"node_id":"5gijDcIM3hHmN4zzseqzyg","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.099503Z","iopub.execute_input":"2024-02-07T16:13:03.099771Z","iopub.status.idle":"2024-02-07T16:13:03.166248Z","shell.execute_reply.started":"2024-02-07T16:13:03.099749Z","shell.execute_reply":"2024-02-07T16:13:03.165491Z"},"trusted":true},"execution_count":47,"outputs":[]},{"cell_type":"code","source":"train_essays['text_len'] = train_essays['text'].apply(len)\ntrain_essays = train_essays.sort_values('text_len')\n","metadata":{"datalore":{"node_id":"rPOtNNxkbCjMHKpczt02A5","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.167214Z","iopub.execute_input":"2024-02-07T16:13:03.167466Z","iopub.status.idle":"2024-02-07T16:13:03.175550Z","shell.execute_reply.started":"2024-02-07T16:13:03.167444Z","shell.execute_reply":"2024-02-07T16:13:03.174645Z"},"trusted":true},"execution_count":48,"outputs":[]},{"cell_type":"code","source":"train_essays","metadata":{"datalore":{"node_id":"PriIabcV41XCCEl0mw9HTR","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.176815Z","iopub.execute_input":"2024-02-07T16:13:03.177126Z","iopub.status.idle":"2024-02-07T16:13:03.194813Z","shell.execute_reply.started":"2024-02-07T16:13:03.177083Z","shell.execute_reply":"2024-02-07T16:13:03.193744Z"},"trusted":true},"execution_count":49,"outputs":[{"execution_count":49,"output_type":"execute_result","data":{"text/plain":"            id  prompt_id                                               text  \\\n704   82131f68          1  This essay will analyze, discuss and prove one...   \n493   606ec542          0  I think limiting car usage is a great idea for...   \n1115  cbc48dd7          0  Zroom! Cars have been developing for hundreds ...   \n740   86fe4f18          1  I strongly believe that the Electoral College ...   \n1337  f81d371d          1  Dear, senator I believe the electoral college ...   \n...        ...        ...                                                ...   \n1082  c3e2e9e5          0  Driving is the primary way of transportation, ...   \n175   223bbf18          0  When limiting car usage the first thing that m...   \n326   40524218          0  As the global concern for the environment incr...   \n97    15f7ea58          1  Dear Senator, Concerning the topic of the meri...   \n821   947b8cca          1  To tohe stoatoe and tohe stoatoe's countory, t...   \n\n      generated  text_len  \n704           1      1356  \n493           0      1486  \n1115          0      1492  \n740           1      1500  \n1337          0      1595  \n...         ...       ...  \n1082          0      6957  \n175           0      7190  \n326           0      7373  \n97            0      8033  \n821           0      8436  \n\n[1378 rows x 5 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>prompt_id</th>\n      <th>text</th>\n      <th>generated</th>\n      <th>text_len</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>704</th>\n      <td>82131f68</td>\n      <td>1</td>\n      <td>This essay will analyze, discuss and prove one...</td>\n      <td>1</td>\n      <td>1356</td>\n    </tr>\n    <tr>\n      <th>493</th>\n      <td>606ec542</td>\n      <td>0</td>\n      <td>I think limiting car usage is a great idea for...</td>\n      <td>0</td>\n      <td>1486</td>\n    </tr>\n    <tr>\n      <th>1115</th>\n      <td>cbc48dd7</td>\n      <td>0</td>\n      <td>Zroom! Cars have been developing for hundreds ...</td>\n      <td>0</td>\n      <td>1492</td>\n    </tr>\n    <tr>\n      <th>740</th>\n      <td>86fe4f18</td>\n      <td>1</td>\n      <td>I strongly believe that the Electoral College ...</td>\n      <td>1</td>\n      <td>1500</td>\n    </tr>\n    <tr>\n      <th>1337</th>\n      <td>f81d371d</td>\n      <td>1</td>\n      <td>Dear, senator I believe the electoral college ...</td>\n      <td>0</td>\n      <td>1595</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>1082</th>\n      <td>c3e2e9e5</td>\n      <td>0</td>\n      <td>Driving is the primary way of transportation, ...</td>\n      <td>0</td>\n      <td>6957</td>\n    </tr>\n    <tr>\n      <th>175</th>\n      <td>223bbf18</td>\n      <td>0</td>\n      <td>When limiting car usage the first thing that m...</td>\n      <td>0</td>\n      <td>7190</td>\n    </tr>\n    <tr>\n      <th>326</th>\n      <td>40524218</td>\n      <td>0</td>\n      <td>As the global concern for the environment incr...</td>\n      <td>0</td>\n      <td>7373</td>\n    </tr>\n    <tr>\n      <th>97</th>\n      <td>15f7ea58</td>\n      <td>1</td>\n      <td>Dear Senator, Concerning the topic of the meri...</td>\n      <td>0</td>\n      <td>8033</td>\n    </tr>\n    <tr>\n      <th>821</th>\n      <td>947b8cca</td>\n      <td>1</td>\n      <td>To tohe stoatoe and tohe stoatoe's countory, t...</td>\n      <td>0</td>\n      <td>8436</td>\n    </tr>\n  </tbody>\n</table>\n<p>1378 rows × 5 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"train_essays['text_len'].describe()","metadata":{"datalore":{"node_id":"BpbeG8fdc0uRS2KG0Apoht","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.196036Z","iopub.execute_input":"2024-02-07T16:13:03.196404Z","iopub.status.idle":"2024-02-07T16:13:03.210475Z","shell.execute_reply.started":"2024-02-07T16:13:03.196371Z","shell.execute_reply":"2024-02-07T16:13:03.209616Z"},"trusted":true},"execution_count":50,"outputs":[{"execution_count":50,"output_type":"execute_result","data":{"text/plain":"count    1378.000000\nmean     3169.050798\nstd       920.588198\nmin      1356.000000\n25%      2554.250000\n50%      2985.500000\n75%      3623.750000\nmax      8436.000000\nName: text_len, dtype: float64"},"metadata":{}}]},{"cell_type":"code","source":"ax = sns.countplot(data=train_essays, x='generated')\nax.bar_label(ax.containers[0])\nplt.title('Distribution of texts');","metadata":{"datalore":{"node_id":"1j0urtcgAun9NZKxouvwdA","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.211689Z","iopub.execute_input":"2024-02-07T16:13:03.212001Z","iopub.status.idle":"2024-02-07T16:13:03.413478Z","shell.execute_reply.started":"2024-02-07T16:13:03.211978Z","shell.execute_reply":"2024-02-07T16:13:03.412536Z"},"trusted":true},"execution_count":51,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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zaswknTdddfJ399f33333R/OExISorvvvttsq1Onjh566CGdPn1aGzdurIbV/MowDH3wwQcaMGCADMPQiRMnzC0mJkYFBQXasWOHOX7SpElq166d4uPj9cADD6h79+6Vvh6/JzAwUEVFRUpLS6u2+gFXQCACLOD06dMO4eNc//M//6Obb75ZI0aMUHBwsAYPHqx33333ksJRkyZNLukG6pYtWzrs22w2XX311b97/0x1OXTokOx2e6WvR5s2bcz+32rWrFmlc9SvX18nT578w3latmwpNzfHH7O/N8+fcfz4ceXn52v+/Plq3Lixw3Y2pObm5prjPT09tWDBAh08eFCnTp3SwoULL/p9qR544AFdc801io2NVdOmTXXvvfde9D1VgCvjHiLgCvfDDz+ooKBAV1999e+O8fHxUXp6utavX69PPvlEq1at0pIlS9SrVy+tWbNG7u7ufzjPpdz3c7F+75d0eXn5RdVUHX5vHsOFHkc/G1zvuecexcfHn3fMb992QZJWr14tSTpz5oz279+v8PDwi5orKChIWVlZWr16tVauXKmVK1dq4cKFGjp0qMMN48DlhitEwBXu7E2xMTExFxzn5uam3r17a8aMGfr66681ZcoUrVu3TuvXr5f0++Gkqvbv3++wbxiGDhw44PBEWP369ZWfn1/p2HOvrlxKbc2bN9fRo0crvYS4d+9es786NG/eXPv37690le3PznO+tTZu3Fj16tVTeXm5oqOjz7sFBQWZ47/66itNnjxZw4cPV6dOnTRixAgVFBT84TxneXp6asCAAXr55Zf17bff6r777tMbb7yhAwcOVGlNgCsgEAFXsHXr1unpp59WeHi44uLifndcXl5epbaOHTtKkoqLiyVJvr6+knTegFIVb7zxhkMoef/993Xs2DHFxsaabVdddZU2b95svrmjJK1YsaLS4/mXUlu/fv1UXl6ul156yaF95syZstlsDvP/Gf369VN2draWLFlitpWVlWnOnDny8/NT9+7dq3ReX1/fSut0d3fXwIED9cEHH2jXrl2Vjjl+/Lj536WlpRo2bJjsdrtmzZql1NRU5eTk6JFHHqk0j1T5a/rTTz857Lu5uZlXn87+WwEuR7xkBlwhVq5cqb1796qsrEw5OTlat26d0tLS1Lx5cy1fvvyC70o9efJkpaenq3///mrevLlyc3P18ssvq2nTpurataukX8NJYGCg5s2bp3r16snX11eRkZEX/VLLuRo0aKCuXbtq+PDhysnJUUpKiq6++mqHtwYYMWKE3n//ffXt21d33XWXvv32W7311lsONzlfam0DBgxQz5499c9//lPff/+9OnTooDVr1mjZsmUaPXp0pXNX1ahRo/Tqq69q2LBhyszMVIsWLfT+++9r06ZNSklJueA9XRcSERGhTz/9VDNmzJDdbld4eLgiIyP13HPPaf369YqMjNTIkSPVtm1b5eXlaceOHfr000/N0PvMM88oKytLa9euVb169XTddddp4sSJeuKJJzRo0CD169fPnEeSHnroIcXExMjd3V2DBw/WiBEjlJeXp169eqlp06Y6dOiQ5syZo44dO5r3RwGXJac+4wbgTzv72P3ZzdPT0wgJCTH++te/GrNmzXJ4vPuscx+7X7t2rXH77bcbdrvd8PT0NOx2u3H33Xcb33zzjcNxy5YtM9q2bWt4eHg4PObevXt3o127duet7/ceu//3v/9tJCcnG0FBQYaPj4/Rv39/49ChQ5WOf/HFF40mTZoYXl5exs0332xs37690jkvVNu5j90bhmGcOnXKeOSRRwy73W7UqVPHaNmypTF9+nSjoqLCYZwkIzExsVJNv/d2AOfKyckxhg8fbjRq1Mjw9PQ02rdvf963BriUx+737t1rdOvWzfDx8TEkOdSRk5NjJCYmGmFhYUadOnWMkJAQo3fv3sb8+fMNwzCMzMxMw8PDw3jwwQcdzllWVmZ06dLFsNvtxsmTJ822Bx980GjcuLFhs9nMfy/vv/++0adPHyMoKMjw9PQ0mjVrZtx3333GsWPHLqp+wFXxWWYAAMDyuIcIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHm/MeBEqKip09OhR1atXr9o/vgAAANQMwzB06tQp2e32Sh+0fC4C0UU4evSowsLCnF0GAACogiNHjqhp06YXHEMgughn32L/yJEj8vf3d3I1AADgYhQWFiosLOyiPiqHQHQRzr5M5u/vTyACAOAyczG3u3BTNQAAsDwCEQAAsDwCEa5I6enpGjBggOx2u2w2m5YuXerQP2nSJLVu3Vq+vr6qX7++oqOjtWXLFrN/w4YNstls5922bdsmSfr+++/P27958+baXCoAoBoQiHBFKioqUocOHTR37tzz9l9zzTV66aWXtHPnTn3++edq0aKF+vTpo+PHj0uSbrrpJh07dsxhGzFihMLDw9W5c2eHc3366acO4yIiImp8fQCA6uXUQPRHf8X/1v/+7//KZrMpJSXFoT0vL09xcXHy9/dXYGCgEhISdPr0aYcxX331lW655RZ5e3srLCxM06ZNq4HVwJXExsbqmWee0f/7f//vvP1///vfFR0drb/85S9q166dZsyYocLCQn311VeSJE9PT4WEhJhbw4YNtWzZMg0fPrzSzXkNGzZ0GFunTp0aXx8AoHo5NRD90V/xZ3300UfavHmz7HZ7pb64uDjt3r1baWlpWrFihdLT0zVq1Cizv7CwUH369FHz5s2VmZmp6dOna9KkSZo/f361rweXp5KSEs2fP18BAQHq0KHDeccsX75cP/30k4YPH16p77bbblNQUJC6du2q5cuX13S5AICaYLgIScZHH31Uqf2HH34wmjRpYuzatcto3ry5MXPmTLPv66+/NiQZ27ZtM9tWrlxp2Gw248cffzQMwzBefvllo379+kZxcbE5Zvz48UarVq0uuraCggJDklFQUHDpC4PT/d6/rY8//tjw9fU1bDabYbfbja1bt/7uOWJjY43Y2FiHtuPHjxsvvviisXnzZmPr1q3G+PHjDZvNZixbtqy6lwAAqIJL+f3t0vcQVVRUaMiQIRo3bpzatWtXqT8jI0OBgYEO93RER0fLzc3NvEE2IyND3bp1k6enpzkmJiZG+/bt08mTJ887b3FxsQoLCx02XHl69uyprKwsffHFF+rbt6/uuusu5ebmVhr3ww8/aPXq1UpISHBob9SokcaMGaPIyEh16dJFzz33nO655x5Nnz69tpYAAKgmLh2Inn/+eXl4eOihhx46b392draCgoIc2jw8PNSgQQNlZ2ebY4KDgx3GnN0/O+ZcU6dOVUBAgLnxsR1XJl9fX1199dW68cYb9frrr8vDw0Ovv/56pXELFy5Uw4YNddttt/3hOSMjI3XgwIGaKBcAUINcNhBlZmZq1qxZSk1NrfUPVE1OTlZBQYG5HTlypFbnh3NUVFSouLjYoc0wDC1cuFBDhw69qJuls7KyFBoaWlMlAgBqiMt+dMdnn32m3NxcNWvWzGwrLy/X2LFjlZKSou+//14hISGVXuIoKytTXl6eQkJCJEkhISHKyclxGHN2/+yYc3l5ecnLy6s6l4Nadvr0aYcrNQcPHlRWVpYaNGighg0basqUKbrtttsUGhqqEydOaO7cufrxxx915513Opxn3bp1OnjwoEaMGFFpjkWLFsnT01OdOnWSJH344YdasGCB/vWvf9Xs4gAA1c5lA9GQIUMUHR3t0BYTE6MhQ4aYT/pERUUpPz9fmZmZ5nu/rFu3ThUVFYqMjDTH/POf/1Rpaan5F35aWppatWql+vXr1+KKUJu2b9+unj17mvtjxoyRJMXHx2vevHnau3evFi1apBMnTqhhw4bq0qWLPvvss0r3qr3++uu66aab1Lp16/PO8/TTT+vQoUPy8PBQ69attWTJEg0aNKjmFgYAqBE2wzAMZ03+27/iO3XqpBkzZqhnz55q0KCBw5Whs1q0aKHRo0dr9OjRZltsbKxycnI0b948lZaWavjw4ercubPefvttSVJBQYFatWqlPn36aPz48dq1a5fuvfdezZw50+Hx/AspLCxUQECACgoK+HBXAAAuE5fy+9upV4gu9Fd8amrqRZ1j8eLFSkpKUu/eveXm5qaBAwdq9uzZZn9AQIDWrFmjxMRERUREqFGjRpo4ceJFhyEAAHDlc+oVossFV4gAALj8XDZXiOAoYtwbzi4BcEmZ04c6uwQAVziXfeweAACgthCIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5Tk1EKWnp2vAgAGy2+2y2WxaunSp2VdaWqrx48erffv28vX1ld1u19ChQ3X06FGHc+Tl5SkuLk7+/v4KDAxUQkKCTp8+7TDmq6++0i233CJvb2+FhYVp2rRptbE8AABwmXBqICoqKlKHDh00d+7cSn0///yzduzYoQkTJmjHjh368MMPtW/fPt12220O4+Li4rR7926lpaVpxYoVSk9P16hRo8z+wsJC9enTR82bN1dmZqamT5+u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zpanp6cCAwMd2oODg5WdnW2O+W0YOtt/tu98pk6dqqeeeqoaqgcAAJcDl75CdOTIET388MNavHixvL29a23e5ORkFRQUmNuRI0dqbW4AAFD7XDoQZWZmKjc3V9dff708PDzk4eGhjRs3avbs2fLw8FBwcLBKSkqUn5/vcFxOTo5CQkIkSSEhIZWeOju7f3bMuby8vOTv7++wAQCAK5dLB6LevXtr586dysrKMrfOnTsrLi7O/O86depo7dq15jH79u3T4cOHFRUVJUmKiorSzp07lZuba45JS0uTv7+/2rZtW+trAgAArsel7yGqV6+err32Woc2X19fNWzY0GxPSEjQmDFj1KBBA/n7++vBBx9UVFSUbrzxRklSnz591LZtWw0ZMkTTpk1Tdna2nnjiCSUmJsrLy6vW1wQAAFyPSweiizFz5ky5ublp4MCBKi4uVkxMjF5++WWz393dXStWrND999+vqKgo+fr6Kj4+XpMnT3Zi1QAAwJXYDMMwnF2EqyssLFRAQIAKCgpq9H6iiHFv1Ni5gctZ5vShzi4BwGXoUn5/u/Q9RAAAALWBQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACzPpQPR1KlT1aVLF9WrV09BQUG64447tG/fPocxZ86cUWJioho2bCg/Pz8NHDhQOTk5DmMOHz6s/v37q27dugoKCtK4ceNUVlZWm0sBAAAuzKUD0caNG5WYmKjNmzcrLS1NpaWl6tOnj4qKiswxjzzyiD7++GO999572rhxo44ePaq//e1vZn95ebn69++vkpISffHFF1q0aJFSU1M1ceJEZywJAAC4IJthGIazi7hYx48fV1BQkDZu3Khu3bqpoKBAjRs31ttvv61BgwZJkvbu3as2bdooIyNDN954o1auXKlbb71VR48eVXBwsCRp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"},"metadata":{}}]},{"cell_type":"code","source":"generated_essays = train_essays[train_essays['generated'] == 1]\ngenerated_essays","metadata":{"datalore":{"node_id":"PoYwJW5KtkraGRQiCmLFge","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.414733Z","iopub.execute_input":"2024-02-07T16:13:03.415006Z","iopub.status.idle":"2024-02-07T16:13:03.425880Z","shell.execute_reply.started":"2024-02-07T16:13:03.414982Z","shell.execute_reply":"2024-02-07T16:13:03.424958Z"},"trusted":true},"execution_count":52,"outputs":[{"execution_count":52,"output_type":"execute_result","data":{"text/plain":"            id  prompt_id                                               text  \\\n704   82131f68          1  This essay will analyze, discuss and prove one...   \n740   86fe4f18          1  I strongly believe that the Electoral College ...   \n1262  eafb8a56          0  Limiting car use causes pollution, increases c...   \n\n      generated  text_len  \n704           1      1356  \n740           1      1500  \n1262          1      1797  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>prompt_id</th>\n      <th>text</th>\n      <th>generated</th>\n      <th>text_len</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>704</th>\n      <td>82131f68</td>\n      <td>1</td>\n      <td>This essay will analyze, discuss and prove one...</td>\n      <td>1</td>\n      <td>1356</td>\n    </tr>\n    <tr>\n      <th>740</th>\n      <td>86fe4f18</td>\n      <td>1</td>\n      <td>I strongly believe that the Electoral College ...</td>\n      <td>1</td>\n      <td>1500</td>\n    </tr>\n    <tr>\n      <th>1262</th>\n      <td>eafb8a56</td>\n      <td>0</td>\n      <td>Limiting car use causes pollution, increases c...</td>\n      <td>1</td>\n      <td>1797</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"ax2 = sns.countplot(data=train_essays, x='prompt_id')\nax2.bar_label(ax2.containers[0])\nplt.title('Distribution of prompts');","metadata":{"datalore":{"node_id":"ylPh4tN2nxXxzTwLkufmz4","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.430932Z","iopub.execute_input":"2024-02-07T16:13:03.431331Z","iopub.status.idle":"2024-02-07T16:13:03.627755Z","shell.execute_reply.started":"2024-02-07T16:13:03.431287Z","shell.execute_reply":"2024-02-07T16:13:03.626923Z"},"trusted":true},"execution_count":53,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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xhtvuAWO999/X0eOHFG/fv3MtlatWmnLli0qLi4221asWFHpFvVLqe3WW29VWVmZXnzxRbf2WbNmyWazuR3/ctx6661yuVx69913zbbS0lLNmTNHwcHBuummm6q976ysLH322Wfm8qFDh7R8+XL16dPnvGdczq1LkmbPnu3W/txzz0mSkpKSql3X+Zz7XRuGoRdffFF+fn7q3bu3JKl+/fqSKv/8Tp8+rbNnz7q1tWrVSg0aNKh0mzzgKdx6DtShlStX6uuvv1Zpaalyc3O1bt06ZWZmKjo6Wh988IECAgLOu21GRoY2btyopKQkRUdHKy8vTy+99JKaNWtmPpulVatWCgsL0/z589WgQQMFBQUpPj6+0pyQi9WoUSP16NFDw4YNU25urmbPnq1rr73W7fb4Bx98UO+//7769u2ru+++W99++63efPNNtwnDl1rb7bffrl69eukvf/mLvv/+e3Xo0EFr1qzR8uXLNWbMmEr7rq6RI0fq5Zdf1tChQ5Wdna0WLVro/fff16ZNmzR79uwLzqH6Je3atVNiYqLbreeSzKcQX0iHDh2UkpKiV155Rfn5+brpppu0bds2LVq0SHfeead69epV7bqqEhAQoFWrViklJUXx8fFauXKlPvroIz366KPmWajAwEDFxsbq3Xff1XXXXadGjRqpXbt2Ki0tVe/evXX33XcrNjZWvr6+Wrp0qXJzczVw4MAarROoNo/eCwb8SlTcel7x8ff3NxwOh3HLLbcYzz//vNstzhV+fuv52rVrjTvuuMOIjIw0/P39jcjISOPee+81vvnmG7ftli9fbsTGxhq+vr5ut3rfdNNNRtu2baus73y3nr/99tvGxIkTjfDwcCMwMNBISkpyu5W5wrPPPmtcffXVht1uN7p3727s2LGj0j4vVNvPbz03DMM4ceKEMXbsWCMyMtLw8/MzWrdubTz99NNGeXm5Wz9JRmpqaqWazndL/M/l5uYaw4YNM6666irD39/fiIuLq/L2+Eu99Tw1NdV48803jdatWxt2u93o1KmT2y3fhvF/P+OqHidQUlJiTJ8+3WjZsqXh5+dnREVFGRMnTjTOnj17UXVV9b0cPHiw0m3iKSkpRlBQkPHtt98affr0MerXr29EREQYU6dONcrKyty237x5s9G5c2fD39/fvA39xx9/NFJTU402bdoYQUFBRmhoqBEf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a9SoUXr44Ye1aNEiSZLL5ZIkRUREuG0XERFhrnO5XAoPD3db7+vrq0aNGpl9fm7GjBkKDQ01P1FRUTU9NAAA4CU8GnbKy8v1m9/8Rk8++aQ6deqkkSNHasSIEZo/f36tHnfixIkqKCgwP4cOHarV4wEAAM/xaNhp2rSpYmNj3dpiYmKUk5MjSXI4HJKk3Nxctz65ubnmOofDoby8PLf1paWlOnbsmNnn5+x2u0JCQtw+AADAmjwadrp37659+/a5tX3zzTeKjo6W9NNkZYfDobVr15rrCwsLtXXrVjmdTkmS0+lUfn6+srOzzT7r1q1TeXm54uPj62AUAADAm3n0bqyxY8fqt7/9rZ588kndfffd2rZtm1555RW98sorkiSbzaYxY8bo8ccfV+vWrdWyZUtNnjxZkZGRuvPOOyX9dCaob9++5uWvkpISpaWlaeDAgdyJBQAAPBt2unbtqqVLl2rixInKyMhQy5YtNXv2bA0aNMjs86c//UmnTp3SyJEjlZ+frx49emjVqlUKCAgw+7z11ltKS0tT79695ePjo+TkZL3wwgueGBIAAPAyNsMwDE8X4WmFhYUKDQ1VQUFBrc3f6Tz+jVrZL3Cly356iKdLuGw5GXGeLgHwSs2n7KrV/V/s32+Pvy4CAACgNhF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApXk07EybNk02m83t06ZNG3P92bNnlZqaqsaNGys4OFjJycnKzc1120dOTo6SkpJUv359hYeHa/z48SotLa3roQAAAC/l6+kC2rZtq08++cRc9vX9v5LGjh2rjz76SEuWLFFoaKjS0tLUv39/bdq0SZJUVlampKQkORwObd68WUeOHNGQIUPk5+enJ598ss7HAgAAvI/Hw46vr68cDkel9oKCAr322mtavHixbr75ZknSggUL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ufbaazV58mRt2bJFcXFx8vPzc1v/8MMP10hxAAAAl6taYeeVV15RcHCwNmzYoA0bNrits9lshB0AAOA1qhV2Dh48WNN1AAAA1IpqzdkBAAC4UlTrzM4DDzxwwfWvv/56tYoBAACoadW+9fxcJSUl+uqrr5Sfn1/lC0IBAAA8pVphZ+nSpZXaysvLNWrUKLVq1eqyiwIAAKgpNTZnx8fHR+np6Zo1a1ZN7RIAAOCy1egE5W+//ValpaU1uUsAAIDLUq3LWOnp6W7LhmHoyJEj+uijj5SSklIjhQEAANSEaoWdzz//3G3Zx8dHTZo00bPPPvuLd2oBAADUpWqFnU8//bSm6wAAAKgV1Qo7FY4ePap9+/ZJkq6//no1adKkRooCAACoKdWaoHzq1Ck98MADatq0qW688UbdeOONioyM1PDhw3X69OmarhEAAKDaqhV20tPTtWHDBn344YfKz89Xfn6+li9frg0bNmjcuHE1XSMAAEC1Vesy1t///ne9//776tmzp9l26623KjAwUHfffbfmzZtXU/UBAABclmqd2Tl9+rQiIiIqtYeHh3MZCwAAeJVqhR2n06mpU6fq7NmzZtuZM2c0ffp0OZ3OGisOAADgclXrMtbs2bPVt29fNWvWTB06dJAkffHFF7Lb7VqzZk2NFggAAHA5qhV24uLitH//fr311lv6+uuvJUn33nuvBg0apMDAwBotEAAA4HJUK+zMmDFDERERGjFihFv766+/rqNHj2rChAk1UhwAAMDlqtacnZdffllt2rSp1N62bVvNnz//sosCAACoKdUKOy6XS02bNq3U3qRJEx05cuSyiwIAAKgp1Qo7UVFR2rRpU6X2TZs2KTIy8rKLAgAAqCnVmrMzYsQIjRkzRiUlJbr55pslSWvXrtWf/vQnnqAMAAC8SrXCzvjx4/Xf//5XDz30kIqLiyVJAQEBmjBhgiZOnFijBQIAAFyOaoUdm82mp556SpMnT9bevXsVGBio1q1by26313R9AAAAl6VaYadCcHCwunbtWlO1AAAA1LhqTVAGAAC4UhB2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApXk07MybN0/t27dXSEiIQkJC5HQ6tXLlSnP92bNnlZqaqsaNGys4OFjJycnKzc1120dOTo6SkpJUv359hYeH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"},"metadata":{}}]},{"cell_type":"markdown","source":"### Exploring test_essays","metadata":{"datalore":{"node_id":"qn2ISuRTmxMZ27LkJpEDDM","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"test_essays","metadata":{"datalore":{"node_id":"swH8B4pdgpa0wOVoBhfbal","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.628834Z","iopub.execute_input":"2024-02-07T16:13:03.629176Z","iopub.status.idle":"2024-02-07T16:13:03.638296Z","shell.execute_reply.started":"2024-02-07T16:13:03.629143Z","shell.execute_reply":"2024-02-07T16:13:03.637369Z"},"trusted":true},"execution_count":54,"outputs":[{"execution_count":54,"output_type":"execute_result","data":{"text/plain":"         id  prompt_id          text\n0  0000aaaa          2  Aaa bbb ccc.\n1  1111bbbb          3  Bbb ccc ddd.\n2  2222cccc          4  CCC ddd eee.","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>prompt_id</th>\n      <th>text</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0000aaaa</td>\n      <td>2</td>\n      <td>Aaa bbb ccc.</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1111bbbb</td>\n      <td>3</td>\n      <td>Bbb ccc ddd.</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2222cccc</td>\n      <td>4</td>\n      <td>CCC ddd eee.</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"There is only dummy data in test_essays, after submission the text will be replaced with real text.","metadata":{"datalore":{"node_id":"eCoBMveMWE8eAs95Z2g9oA","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"markdown","source":"### Exploring Train Prompts data","metadata":{"datalore":{"node_id":"urZA7FLe9NfAUqNoKjObON","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"train_prompts","metadata":{"datalore":{"node_id":"jUDH4BTi5z6rvr59VFk343","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.639476Z","iopub.execute_input":"2024-02-07T16:13:03.639753Z","iopub.status.idle":"2024-02-07T16:13:03.654284Z","shell.execute_reply.started":"2024-02-07T16:13:03.639730Z","shell.execute_reply":"2024-02-07T16:13:03.653356Z"},"trusted":true},"execution_count":55,"outputs":[{"execution_count":55,"output_type":"execute_result","data":{"text/plain":"   prompt_id                       prompt_name  \\\n0          0                   Car-free cities   \n1          1  Does the electoral college work?   \n\n                                        instructions  \\\n0  Write an explanatory essay to inform fellow ci...   \n1  Write a letter to your state senator in which ...   \n\n                                         source_text  \n0  # In German Suburb, Life Goes On Without Cars ...  \n1  # What Is the Electoral College? by the Office...  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>prompt_id</th>\n      <th>prompt_name</th>\n      <th>instructions</th>\n      <th>source_text</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>Car-free cities</td>\n      <td>Write an explanatory essay to inform fellow ci...</td>\n      <td># In German Suburb, Life Goes On Without Cars ...</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n      <td>Does the electoral college work?</td>\n      <td>Write a letter to your state senator in which ...</td>\n      <td># What Is the Electoral College? by the Office...</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"train_prompts.iloc[0]['instructions']","metadata":{"datalore":{"node_id":"IhBtxcZceIE7zNVgxyRZml","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.655312Z","iopub.execute_input":"2024-02-07T16:13:03.655624Z","iopub.status.idle":"2024-02-07T16:13:03.665807Z","shell.execute_reply.started":"2024-02-07T16:13:03.655594Z","shell.execute_reply":"2024-02-07T16:13:03.664903Z"},"trusted":true},"execution_count":56,"outputs":[{"execution_count":56,"output_type":"execute_result","data":{"text/plain":"'Write an explanatory essay to inform fellow citizens about the advantages of limiting car usage. Your essay must be based on ideas and information that can be found in the passage set. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your essay in the space provided.'"},"metadata":{}}]},{"cell_type":"markdown","source":"**Prompt_id = 0**\\\n**prompt_name = Car-free cities**\\\n'Write an explanatory essay to inform fellow citizens about the advantages of limiting car usage. Your essay must be based on ideas and information that can be found in the passage set. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your essay in the space provided.'","metadata":{"datalore":{"node_id":"YBADwMdIO4pNpI8MUskJT7","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"train_prompts.iloc[1]['instructions']","metadata":{"datalore":{"node_id":"slJneLtnk2LCqrwBUMShys","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.666700Z","iopub.execute_input":"2024-02-07T16:13:03.666924Z","iopub.status.idle":"2024-02-07T16:13:03.676438Z","shell.execute_reply.started":"2024-02-07T16:13:03.666904Z","shell.execute_reply":"2024-02-07T16:13:03.675611Z"},"trusted":true},"execution_count":57,"outputs":[{"execution_count":57,"output_type":"execute_result","data":{"text/plain":"'Write a letter to your state senator in which you argue in favor of keeping the Electoral College or changing to election by popular vote for the president of the United States. Use the information from the texts in your essay. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to include a claim; address counterclaims; use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your response in the space provided.'"},"metadata":{}}]},{"cell_type":"markdown","source":"**Prompt_id = 1**\\\n**prompt_name = Does the electoral college work?**\\\n'Write a letter to your state senator in which you argue in favor of keeping the Electoral College or changing to election by popular vote for the president of the United States. Use the information from the texts in your essay. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to include a claim; address counterclaims; use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your response in the space provided.'","metadata":{"datalore":{"node_id":"KFNcrRCeP8O0rBaXUUMvFi","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"markdown","source":"## 3. Loading external dataset","metadata":{"datalore":{"node_id":"jD4ZTKf0EQNPKEX9ic8a5l","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"markdown","source":"Since there are only 3 AI generated essays, I need extra dataset with AI generated text.\\\nLuckily there is such data on Kaggle.","metadata":{"datalore":{"node_id":"Yy2tKqV4xjtf2WiwpLJNx5","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"external_essays = pd.read_csv('/kaggle/input/daigt-v2-train-dataset/train_v2_drcat_02.csv')","metadata":{"datalore":{"node_id":"IoEuwVB0cfQC5DSC41JG0V","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:03.677497Z","iopub.execute_input":"2024-02-07T16:13:03.677760Z","iopub.status.idle":"2024-02-07T16:13:04.747705Z","shell.execute_reply.started":"2024-02-07T16:13:03.677738Z","shell.execute_reply":"2024-02-07T16:13:04.746628Z"},"trusted":true},"execution_count":58,"outputs":[]},{"cell_type":"code","source":"external_essays.head(10)","metadata":{"datalore":{"node_id":"ZNPA0op16zbCTzBLwFuwmD","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:04.748974Z","iopub.execute_input":"2024-02-07T16:13:04.749308Z","iopub.status.idle":"2024-02-07T16:13:04.761456Z","shell.execute_reply.started":"2024-02-07T16:13:04.749281Z","shell.execute_reply":"2024-02-07T16:13:04.760478Z"},"trusted":true},"execution_count":59,"outputs":[{"execution_count":59,"output_type":"execute_result","data":{"text/plain":"                                                text  label  \\\n0  Phones\\n\\nModern humans today are always on th...      0   \n1  This essay will explain if drivers should or s...      0   \n2  Driving while the use of cellular devices\\n\\nT...      0   \n3  Phones & Driving\\n\\nDrivers should not be able...      0   \n4  Cell Phone Operation While Driving\\n\\nThe abil...      0   \n5  Cell phone use should not be legal while drivi...      0   \n6  Phones and Driving\\n\\nDriving is a good way to...      0   \n7  PHONES AND DRIVING\\n\\nIn this world in which w...      0   \n8  People are debating whether if drivers should ...      0   \n9  Texting and driving\\n\\nOver half of drivers in...      0   \n\n          prompt_name           source  RDizzl3_seven  \n0  Phones and driving  persuade_corpus          False  \n1  Phones and driving  persuade_corpus          False  \n2  Phones and driving  persuade_corpus          False  \n3  Phones and driving  persuade_corpus          False  \n4  Phones and driving  persuade_corpus          False  \n5  Phones and driving  persuade_corpus          False  \n6  Phones and driving  persuade_corpus          False  \n7  Phones and driving  persuade_corpus          False  \n8  Phones and driving  persuade_corpus          False  \n9  Phones and driving  persuade_corpus          False  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>text</th>\n      <th>label</th>\n      <th>prompt_name</th>\n      <th>source</th>\n      <th>RDizzl3_seven</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>Phones\\n\\nModern humans today are always on th...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>This essay will explain if drivers should or s...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>Driving while the use of cellular devices\\n\\nT...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>Phones &amp; Driving\\n\\nDrivers should not be able...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>Cell Phone Operation While Driving\\n\\nThe abil...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>Cell phone use should not be legal while drivi...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>Phones and Driving\\n\\nDriving is a good way to...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>PHONES AND DRIVING\\n\\nIn this world in which w...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>People are debating whether if drivers should ...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>Texting and driving\\n\\nOver half of drivers in...</td>\n      <td>0</td>\n      <td>Phones and driving</td>\n      <td>persuade_corpus</td>\n      <td>False</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"external_essays['text_len'] = external_essays['text'].apply(len)\nexternal_essays = external_essays.sort_values('text_len')\nexternal_essays","metadata":{"datalore":{"node_id":"HUEkPkK7SPKGYXJXY3XqOc","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:04.762834Z","iopub.execute_input":"2024-02-07T16:13:04.763088Z","iopub.status.idle":"2024-02-07T16:13:04.815853Z","shell.execute_reply.started":"2024-02-07T16:13:04.763066Z","shell.execute_reply":"2024-02-07T16:13:04.814908Z"},"trusted":true},"execution_count":60,"outputs":[{"execution_count":60,"output_type":"execute_result","data":{"text/plain":"                                                    text  label  \\\n41204    In recent years, there has been a growing trend      1   \n40767   Dear Senator,\\n\\nI am writing in support of k...      1   \n41168   Car usage has long been a significant factor ...      1   \n41167   Limiting car usage is a concept that has gain...      1   \n34960  Passage 1:\\n\\nPassage 2:\\n\\nPassage 3:\\n\\nPass...      1   \n...                                                  ...    ...   \n8895   The author did not do a good job at supporting...      0   \n19290  Dear Senator,\\n\\nI favoring of keeping the Ele...      0   \n1772   This passage is about a germany mom from the s...      0   \n2549   Imagen the streets with no cars empty with onl...      0   \n1517   if we look back at time in the united states y...      0   \n\n                            prompt_name                              source  \\\n41204                 Distance learning  mistralai/Mistral-7B-Instruct-v0.1   \n40767  Does the electoral college work?  mistralai/Mistral-7B-Instruct-v0.1   \n41168                   Car-free cities  mistralai/Mistral-7B-Instruct-v0.1   \n41167                   Car-free cities  mistralai/Mistral-7B-Instruct-v0.1   \n34960         Seeking multiple opinions                      falcon_180b_v1   \n...                                 ...                                 ...   \n8895                    Exploring Venus                     persuade_corpus   \n19290  Does the electoral college work?                     persuade_corpus   \n1772                    Car-free cities                     persuade_corpus   \n2549                    Car-free cities                     persuade_corpus   \n1517                    Car-free cities                     persuade_corpus   \n\n       RDizzl3_seven  text_len  \n41204          False        48  \n40767           True       272  \n41168           True       273  \n41167           True       304  \n34960          False       314  \n...              ...       ...  \n8895            True      9980  \n19290           True     10309  \n1772            True     11641  \n2549            True     18125  \n1517            True     18322  \n\n[44868 rows x 6 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>text</th>\n      <th>label</th>\n      <th>prompt_name</th>\n      <th>source</th>\n      <th>RDizzl3_seven</th>\n      <th>text_len</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>41204</th>\n      <td>In recent years, there has been a growing trend</td>\n      <td>1</td>\n      <td>Distance learning</td>\n      <td>mistralai/Mistral-7B-Instruct-v0.1</td>\n      <td>False</td>\n      <td>48</td>\n    </tr>\n    <tr>\n      <th>40767</th>\n      <td>Dear Senator,\\n\\nI am writing in support of k...</td>\n      <td>1</td>\n      <td>Does the electoral college work?</td>\n      <td>mistralai/Mistral-7B-Instruct-v0.1</td>\n      <td>True</td>\n      <td>272</td>\n    </tr>\n    <tr>\n      <th>41168</th>\n      <td>Car usage has long been a significant factor ...</td>\n      <td>1</td>\n      <td>Car-free cities</td>\n      <td>mistralai/Mistral-7B-Instruct-v0.1</td>\n      <td>True</td>\n      <td>273</td>\n    </tr>\n    <tr>\n      <th>41167</th>\n      <td>Limiting car usage is a concept that has gain...</td>\n      <td>1</td>\n      <td>Car-free cities</td>\n      <td>mistralai/Mistral-7B-Instruct-v0.1</td>\n      <td>True</td>\n      <td>304</td>\n    </tr>\n    <tr>\n      <th>34960</th>\n      <td>Passage 1:\\n\\nPassage 2:\\n\\nPassage 3:\\n\\nPass...</td>\n      <td>1</td>\n      <td>Seeking multiple opinions</td>\n      <td>falcon_180b_v1</td>\n      <td>False</td>\n      <td>314</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>8895</th>\n      <td>The author did not do a good job at supporting...</td>\n      <td>0</td>\n      <td>Exploring Venus</td>\n      <td>persuade_corpus</td>\n      <td>True</td>\n      <td>9980</td>\n    </tr>\n    <tr>\n      <th>19290</th>\n      <td>Dear Senator,\\n\\nI favoring of keeping the Ele...</td>\n      <td>0</td>\n      <td>Does the electoral college work?</td>\n      <td>persuade_corpus</td>\n      <td>True</td>\n      <td>10309</td>\n    </tr>\n    <tr>\n      <th>1772</th>\n      <td>This passage is about a germany mom from the s...</td>\n      <td>0</td>\n      <td>Car-free cities</td>\n      <td>persuade_corpus</td>\n      <td>True</td>\n      <td>11641</td>\n    </tr>\n    <tr>\n      <th>2549</th>\n      <td>Imagen the streets with no cars empty with onl...</td>\n      <td>0</td>\n      <td>Car-free cities</td>\n      <td>persuade_corpus</td>\n      <td>True</td>\n      <td>18125</td>\n    </tr>\n    <tr>\n      <th>1517</th>\n      <td>if we look back at time in the united states y...</td>\n      <td>0</td>\n      <td>Car-free cities</td>\n      <td>persuade_corpus</td>\n      <td>True</td>\n      <td>18322</td>\n    </tr>\n  </tbody>\n</table>\n<p>44868 rows × 6 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"# Unique values in the columns\ncols_unique = ['label', 'prompt_name', 'source','RDizzl3_seven']\nfor col in cols_unique:\n    print(external_essays[col].unique())","metadata":{"datalore":{"node_id":"jXqzMwojHCEJxPBqjoKLAw","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:04.816862Z","iopub.execute_input":"2024-02-07T16:13:04.817150Z","iopub.status.idle":"2024-02-07T16:13:04.831336Z","shell.execute_reply.started":"2024-02-07T16:13:04.817102Z","shell.execute_reply":"2024-02-07T16:13:04.830016Z"},"trusted":true},"execution_count":61,"outputs":[{"name":"stdout","text":"[1 0]\n['Distance learning' 'Does the electoral college work?' 'Car-free cities'\n 'Seeking multiple opinions' 'Summer projects'\n 'Facial action coding system' 'Mandatory extracurricular activities'\n 'Grades for extracurricular activities' '\"A Cowboy Who Rode the Waves\"'\n 'Cell phones at school' 'Community service' 'Exploring Venus'\n 'Driverless cars' 'The Face on Mars' 'Phones and driving']\n['mistralai/Mistral-7B-Instruct-v0.1' 'falcon_180b_v1' 'chat_gpt_moth'\n 'mistral7binstruct_v2' 'llama2_chat' 'persuade_corpus'\n 'mistral7binstruct_v1' 'cohere-command' 'llama_70b_v1' 'palm-text-bison1'\n 'kingki19_palm' 'darragh_claude_v7' 'darragh_claude_v6' 'train_essays'\n 'NousResearch/Llama-2-7b-chat-hf' 'radek_500' 'radekgpt4']\n[False  True]\n","output_type":"stream"}]},{"cell_type":"code","source":"ax3 = sns.countplot(data=external_essays, x='label')\nax3.bar_label(ax3.containers[0])\nplt.title('Distribution of texts on external_essays');","metadata":{"datalore":{"node_id":"wLOfDfmnoYWEKy9skp1mZ8","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:04.834434Z","iopub.execute_input":"2024-02-07T16:13:04.834700Z","iopub.status.idle":"2024-02-07T16:13:05.017631Z","shell.execute_reply.started":"2024-02-07T16:13:04.834677Z","shell.execute_reply":"2024-02-07T16:13:05.016715Z"},"trusted":true},"execution_count":62,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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p08fvfDCC/rpp5+UlZWlbdu2acaMGU41Q4YMUbdu3bRixQqtW7dOr732msaPH6+NGzeqWbNmN3VuUDiEJpRaCxYskPTbp4KuxcXFRR06dFCHDh309ttv6x//+IdeeeUVbdq0SeHh4UV+B/ErL98bY3Tw4EGnH+6VKlVSWlpavtceOXJEtWrVsp7fSG/Vq1fX559/rrNnzzpd9di3b5+1vShUr15du3btUm5urtMPy5s9TkFz9fPzU8WKFZWTk2NdHbiWXbt2aezYserbt6+Sk5M1YMAA7d69W97e3tc8Th43Nzd169ZN3bp1U25urp577jm9++67eu21164azm/Xea9du7a+/fZbdejQ4brfF5mZmerbt6/q16+vBx98UBMnTtSf/vQn69OY0tXPQ97baf7+/rbO+c1atmyZIiMjNWnSJGvswoULBf79uFG1a9fWuXPnbM3Dztfe19dXffv2Vd++fXXu3Dm1bt1ao0eP1oABA3TmzBklJCRozJgxiouLs/Z7tbfzevbsqdjYWP3zn//U+fPnVbZsWT311FMFzuHFF1/Uiy++qAMHDqhp06aaNGmS06eGcfvw9hxKpY0bN2rcuHGqWbOm9RHngpw+fTrfWNOmTSXJ+ph23j1liuIfaUn68MMPndZZLVu2TCdOnFDnzp2tsdq1a2vbtm26ePGiNbZq1ap8tya4kd66dOminJycfP+3OnnyZDkcDqfj34wuXbooJSVFixcvtsYuXbqk6dOnq0KFCmrTpk2h9lu+fPl883R1dVWPHj30ySefaM+ePflec+rUKevP2dnZioqKUlBQkKZOnar4+HilpqZq6NCh+Y4j5T+nl38sXPotbOcF3cs/0n+l23Xen3zySf3f//2f3n///Xzbzp8/r8zMTOv5iBEjdPToUc2fP19vv/22atSoocjISKd5XO08REREyMvLS//4xz+UnZ2d71iXn/Oi4Orqmu8q2/Tp05WTk3PT+37yySeVlJRkXX28XFpami5duiTJ3tf+ypoKFSqoTp061va8q2pXzmXKlCkF9la5cmV17txZH330kRYuXKhOnTqpcuXK1vZff/1VFy5ccHpN7dq1VbFixWt+P+LW4koTSrw1a9Zo3759unTpklJTU7Vx40Zt2LBB1atX16effioPD4+rvnbs2LHasmWLunbtqurVq+vkyZN65513VLVqVT388MOSfvuHyMfHR7Nnz1bFihVVvnx5hYaG2n5b50q+vr56+OGH1bdvX6WmpmrKlCmqU6eOBg4caNUMGDBAy5YtU6dOnfTkk0/q0KFD+uijj5wWzd5ob926dVO7du30yiuv6Mcff1STJk20fv16rVy5UkOGDMm378J65pln9O677yoqKko7duxQjRo1tGzZMn355ZeaMmXKNdeYXUtISIg+//xzvf322woKClLNmjUVGhqqN954Q5s2bVJoaKgGDhyo+vXr6/Tp09q5c6c+//xzKxi//vrrSk5OVkJCgipWrKjGjRsrLi5Or776qh5//HF16dLFOo4kPf/884qIiJCrq6t69uypAQMG6PTp02rfvr2qVq2qI0eOaPr06WratKm1Pqkgt+u8P/3001qyZIkGDRqkTZs26aGHHlJOTo727dunJUuWaN26dWrevLk2btyod955R6NGjdL9998vSZo3b57atm2r1157TRMnTpT02/88uLq6asKECUpPT5e7u7vat28vf39/zZo1S08//bTuv/9+9ezZU35+fjp69KhWr16thx56KF9AvBmPPPKIFixYIG9vb9WvX19JSUn6/PPPddddd930vocNG6ZPP/1UjzzyiKKiohQSEqLMzEzt3r1by5Yt048//qjKlSvb+trXr19fbdu2VUhIiHx9fbV9+3YtW7ZMMTExkiQvLy9r3VF2drbuvvturV+/XocPH75qf3369NHjjz8uSRo3bpzTth9++EEdOnTQk08+qfr166tMmTJavny5UlNT1bNnz5s+Nyik4vrYHnA9ebccyHu4ubmZwMBA84c//MFMnTrV6aPtea685UBCQoL54x//aIKCgoybm5sJCgoyvXr1yvcR5JUrV5r69eubMmXKOH3Ev02bNqZBgwYF9ne1Ww7885//NCNHjjT+/v7G09PTdO3a1Rw5ciTf6ydNmmTuvvtu4+7ubh566CGzffv2fPu8Vm9X3nLAmN8+Lj506FATFBRkypYta+655x7z5ptvWveIySPJREdH5+vpardCuFJqaqrp27evqVy5snFzczONGjUq8LYIN3LLgX379pnWrVsbT09PI8mpj9TUVBMdHW2Cg4NN2bJlTWBgoOnQoYN57733jDHG7Nixw5QpU8YMHjzYaZ+XLl0yLVq0MEFBQebMmTPW2ODBg42fn59xOBzW98uyZctMx44d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2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsKFZrat2+vtLS0fOMZGRlq3779zfYEAABQ4hQqNG3evFkXL17MN37hwgX95z//uemmAAAASpoyN1K8a9cu68/fffedUlJSrOc5OTlau3at7r777qLrDgAAoIS4odDUtGlTORwOORyOAt+G8/T01PTp04usOQAAgJLihkLT4cOHZYxRrVq19PXXX8vPz8/a5ubmJn9/f7m6uhZ5kwAAAMXthtY0Va9eXTVq1FBubq6aN2+u6tWrW48qVarccGDasmWLunXrpqCgIDkcDq1YscJpe1RUlHVlK+/RqVMnp5rTp0+rd+/e8vLyko+Pj/r3769z58451ezatUutWrWSh4eHgoODNXHixHy9LF26VHXr1pWHh4caNWqkzz777IbmAgAAft9u6ErT5Q4cOKBNmzbp5MmTys3NddoWFxdnax+ZmZlq0qSJ+vXrp8cee6zAmk6dOmnevHnWc3d3d6ftvXv31okTJ7RhwwZlZ2erb9++euaZZ7Ro0SJJv32ir2PHjgoPD9fs2bO1e/du9evXTz4+PnrmmWckSVu3blWvXr00fvx4PfLII1q0aJG6d++unTt3qmHDhrbPCQAA+P0qVGh6//339eyzz6py5coKDAyUw+GwtjkcDtuhqXPnzurcufM1a9zd3RUYGFjgtu+//15r167VN998o+bNm0uSpk+fri5duuitt95SUFCQFi5cqIsXL2ru3Llyc3NTgwYNlJycrLffftsKTVOnTlWnTp00bNgwSdK4ceO0YcMGzZgxQ7Nnz7Y1FwAA8PtWqFsOvP766/r73/+ulJQUJScn67///a/12LlzZ5E2uHnzZvn7++u+++7Ts88+q19++cXalpSUJB8fHyswSVJ4eLhcXFz01VdfWTWtW7eWm5ubVRMREaH9+/frzJkzVk14eLjTcSMiIpSUlHTVvrKyspSRkeH0AAAAv1+FCk1nzpzRE088UdS95NOpUyd9+OGHSkhI0IQJE5SYmKjOnTsrJydHkpSSkiJ/f3+n15QpU0a+vr7W7RBSUlIUEBDgVJP3/Ho1l99S4Urjx4+Xt7e39QgODr65yQIAgBKtUKHpiSee0Pr164u6l3x69uypRx99VI0aNVL37t21atUqffPNN9q8efMtP/b1jBw5Uunp6dbj2LFjxd0SAAC4hQq1pqlOnTp67bXXtG3bNjVq1Ehly5Z12v78888XSXNXqlWrlipXrqyDBw+qQ4cOCgwM1MmTJ51qLl26pNOnT1vroAIDA5WamupUk/f8ejVXW0sl/bbW6spF6QAA4PerUKHpvffeU4UKFZSYmKjExESnbQ6H45aFpp9++km//PKLqlSpIkkKCwtTWlqaduzYoZCQEEnSxo0blZubq9DQUKvmlVdeUXZ2thXuNmzYoPvuu0+VKlWyahISEjRkyBDrWBs2bFBYWNgtmQcAACh9ChWaDh8+XCQHP3funA4ePOi03+TkZPn6+srX11djxoxRjx49FBgYqEOHDmn48OGqU6eOIiIiJEn16tVTp06dNHDgQM2ePVvZ2dmKiYlRz549FRQUJEn685//rDFjxqh///4aMWKE9uzZo6lTp2ry5MnWcV944QW1adNGkyZNUteuXfXxxx9r+/bteu+994pkngAAoPQr1JqmorJ9+3Y1a9ZMzZo1kyTFxsaqWbNmiouLk6urq3bt2qVHH31U9957r/r376+QkBD95z//cXpbbOHChapbt646dOigLl266OGHH3YKO97e3lq/fr0OHz6skJAQvfjii4qLi7NuNyBJDz74oBYtWqT33ntPTZo00bJly7RixQru0QQAACwOY4y50Rf169fvmtvnzp1b6IZKq4yMDHl7eys9PV1eXl637Dghwz68ZfsGSqsdb/Yp7haKxNGxjYq7BaDEqRa3+5bu/0Z+fhfq7bm8+xvlyc7O1p49e5SWllbgL/IFAAAo7QoVmpYvX55vLDc3V88++6xq1659000BAACUNEW2psnFxUWxsbFOC6wBAAB+L4p0IfihQ4d06dKlotwlAABAiVCot+diY2OdnhtjdOLECa1evVqRkZFF0hgAAEBJUqjQ9N///tfpuYuLi/z8/DRp0qTrfrIOAACgNCpUaNq0aVNR9wEAAFCiFSo05Tl16pT2798vSbrvvvvk5+dXJE0BAACUNIVaCJ6Zmal+/fqpSpUqat26tVq3bq2goCD1799fv/76a1H3CAAAUOwKFZpiY2OVmJiof//730pLS1NaWppWrlypxMREvfjii0XdIwAAQLEr1Ntzn3zyiZYtW6a2bdtaY126dJGnp6eefPJJzZo1q6j6AwAAKBEKdaXp119/VUBAQL5xf39/3p4DAAC/S4UKTWFhYRo1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CE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADaU6NA0evRoORwOp0fdunWt7RcuXFB0dLTuuusuVahQQT169FBqaqrTPo4ePaquXbuqXLly8vf317Bhw3Tp0iWnms2bN+v++++Xu7u76tSpo/j4+NsxPQAAUIqU6NAkSQ0aNNCJEyesxxdffGFtGzp0qP79739r6dKlSkxM1PHjx/XYY49Z23NyctS1a1ddvHhRW7du1fz58xUfH6+4uDir5vDhw+ratavatWun5ORkDRkyRAMGDNC6detu6zwBAEDJVqa4G7ieMmXKKDAwMN94enq65syZo0WLFql9+/aSpHnz5qlevXratm2bWrZsqfXr1+u7777T559/roCAADVt2lTjxo3TiBEjNHr0aLm5uWn27NmqWbOmJk2aJEmqV6+evvjiC02ePFkRERG3da4AAKDkKvFXmg4cOKCgoCDVqlVLvXv31tGjRyVJO3bsUHZ2tsLDw63aunXrqlq1akpKSpIkJSUlqVGjRgoICLBqIiIilJGRob1791o1l+8jryZvH1eTlZWljIwMpwcAAPj9KtGhKTQ0VPHx8Vq7dq1mzZqlw4cPq1WrVjp79qxSUlLk5uYmHx8fp9cEBAQoJSVFkpSSkuIUmPK25227Vk1GRobOnz9/1d7Gjx8vb29v6xEcHHyz0wUAACVYiX57rnPnztafGzdurNDQUFWvXl1LliyRp6dnMXYmjRw5UrGxsdbzjIwMghMAAL9jJfpK05V8fHx077336uDBgwoMDNTFixeVlpbmVJOammqtgQoMDMz3abq859er8fLyumYwc3d3l5eXl9MDAAD8fpWq0HTu3DkdOnRIVapUUUhIiMqWLauEhARr+/79+3X06FGFhYVJksLCwrR7926dPHnSqtmwYYO8vLxUv359q+byfeTV5O0DAABAKuGh6W9/+5sSExP1448/auvWrfrTn/4kV1dX9erVS97e3urfv79iY2O1adMm7dixQ3379lVYWJhatmwpSerYsaPq16+vp59+Wt9++63WrVunV199VdHR0XJ3d5ckDRo0SP/73/80fPhw7du3T++8846WLFmioUOHFufUAQBACVOi1zT99NNP6tWrl3755Rf5+fnp4Ycf1rZt2+Tn5ydJmjx5slxcXNSjRw9lZWUpIiJC77zzjvV6V1dXrVq1Ss8++6zCwsJUvnx5RUZGauzYsVZNzZo1tXr1ag0dOlRTp05V1apV9cEHH3C7AQAA4MRhjDHF3cTvQUZGhry9vZWenn5L1zeFDPvwlu0bKK12vNmnuFsoEkfHNiruFoASp1rc7lu6/xv5+V2i354DAAAoKQhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQdIWZM2eqRo0a8vDwUGhoqL7++uvibgkAAJQAhKbLLF68WLGxsRo1apR27typJk2aKCIiQidPnizu1gAAQDEjNF3m7bff1sCBA9W3b1/Vr19fs2fPVrly5TR37tzibg0AABQzQtP/c/HiRe3YsUPh4eHWmIuLi8LDw5WUlFSMnQEAgJKgTHE3UFL8/PPPysnJUUBAgNN4QECA9u3bl68+KytLWVlZ1vP09HRJUkZGxi3tMyfr/C3dP1Aa3eq/d7fL2Qs5xd0CUOLc6r/fefs3xly3ltBUSOPHj9eYMWPyjQcHBxdDN8CdzXv6oOJuAcCtMt77thzm7Nmz8va+9rEITf9P5cqV5erqqtTUVKfx1NRUBQYG5qsfOXKkYmNjree5ubk6ffq07rrrLjkcjlveL4pXRkaGgoODdezYMXl5eRV3OwCKEH+/7yzGGJ09e1ZBQUHXrSU0/T9ubm4KCQlRQkKCunfvLum3IJSQkKCYmJh89e7u7nJ3d3ca8/HxuQ2doiTx8vLiH1Xgd4q/33eO611hykNoukxsbKwiIyPVvHlzPfDAA5oyZYoyMzPVt2/f4m4NAAAUM0LTZZ566imdOnVKcXFxSklJUdOmTbV27dp8i8MBAMCdh9B0hZiYmALfjgMu5+7urlGjRuV7ixZA6cffb1yNw9j5jB0AAMAdjptbAgAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCE1AIM2fOVI0aNeTh4aHQ0FB9/fXXxd0SgJu0ZcsWdevWTUFBQXI4HFqxYkVxt4QShtAE3KDFixcrNjZWo0aN0s6dO9WkSRNFRETo5MmTxd0agJuQmZmpJk2aaObMmcXdCkoobjkA3KDQ0FC1aNFCM2bMkPTbr9sJDg7W4MGD9dJLLxVzdwCKgsPh0PLly61fqwVIXGkCbsjFixe1Y8cOhYeHW2MuLi4KDw9XUlJSMXYGALjVCE3ADfj555+Vk5OT71frBAQEKCUlpZi6AgDcDoQmAAAAGwhNwA2oXLmyXF1dlZqa6jSempqqwMDAYuoKAHA7EJqAG+Dm5qaQkBAlJCRYY7m5uUpISFBYWFgxdgYAuNXKFHcDQGkTGxuryMhINW/eXA888ICmTJmizMxM9e3bt7hbA3ATzp07p4MHD1rPDx8+rOTkZPn6+qpatWrF2BlKCm45ABTCjBkz9OabbyolJUVNmzbVtGnTFBoaWtxtAbgJmzdvVrt27fKNR0ZGKj4+/vY3hBKH0AQAAGADa5oAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAO4Ybdu21ZAhQ2zVbt68WQ6HQ2lpaTd1zBo1amjKlCk3tQ8AJQOhCQAAwAZCEwAAgA2EJgB3pAULFqh58+aqWLGiAgMD9ec//1knT57MV/fll1+qcePG8vDwUMuWLbVnzx6n7V988YVatWolT09PBQcH6/nnn1dmZubtmgaA24jQBOCOlJ2drXHjxunbb7/VihUr9OOPPyoqKipf3bBhwzRp0iR988038vPzU7du3ZSdnS1JOnTokDp16qQePXpo165dWrx4sb744gvFxMTc5tkAuB3KFHcDAFAc+vXrZ/25Vq1amjZtmlq0aKFz586pQoUK1rZRo0bpD3/4gyRp/vz5qlq1qpYvX64nn3xS48ePV+/eva3F5ffcc4+mTZumNm3aaNasWfLw8LitcwJwa3GlCcAdaceOHerWrZuqVaumihUrqk2bNpKko0ePOtWFhYVZf/b19dV9992n77//XpL07bffKj4+XhUqVLAeERERys3N1eHDh2/fZADcFlxpAnDHyczMVEREhCIiIrRw4UL5+fnp6NGjioiI0MWLF23v59y5c/rrX/+q559/Pt+2atWqFWXLAEoAQhOAO86+ffv0yy+/6I033lBwcLAkafv27QXWbtu2zQpAZ86c0Q8//KB69epJku6//3599913qlOnzu1pHECx4u05AHecatWqyc3NTdOnT9f//vc/ffrppxo3blyBtWPHjlVCQoL27NmjqKgoVa5cWd27d5ckjRgxQlu3blVMTIySk5N14MABrVy5koXgwO8UoQnAHcfPz0/x8fFaunSp6tevrzfeeENvvfVWgbVvvPGGXnjhBYWEhCglJUX//ve/5ebmJklq3LixEhMT9cMPP6hVq1Zq1qyZ4uLiFBQUdDunA+A2cRhjTHE3AQAAUNJxpQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANvx/h77+XnKETk0AAAAASUVORK5CYII="},"metadata":{}}]},{"cell_type":"code","source":"external_essays = external_essays.rename(columns={'label': 'generated'})","metadata":{"datalore":{"node_id":"4IqXcSQ20yKEwIVt4aEkMU","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.018746Z","iopub.execute_input":"2024-02-07T16:13:05.019087Z","iopub.status.idle":"2024-02-07T16:13:05.026593Z","shell.execute_reply.started":"2024-02-07T16:13:05.019055Z","shell.execute_reply":"2024-02-07T16:13:05.025693Z"},"trusted":true},"execution_count":63,"outputs":[]},{"cell_type":"markdown","source":"**Concatenating the datasets**","metadata":{"datalore":{"node_id":"lNnLE86XV6G6LqNWNs5enI","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"df = pd.concat([external_essays[['text', 'generated']], train_essays[['text', 'generated']]], ignore_index=True)","metadata":{"datalore":{"node_id":"rAypYp2yNcT6NHZjqdot6E","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.027827Z","iopub.execute_input":"2024-02-07T16:13:05.028447Z","iopub.status.idle":"2024-02-07T16:13:05.041241Z","shell.execute_reply.started":"2024-02-07T16:13:05.028418Z","shell.execute_reply":"2024-02-07T16:13:05.040288Z"},"trusted":true},"execution_count":64,"outputs":[]},{"cell_type":"code","source":"# df = df.sample(frac=0.02, random_state=42)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T16:13:05.042763Z","iopub.execute_input":"2024-02-07T16:13:05.043040Z","iopub.status.idle":"2024-02-07T16:13:05.051498Z","shell.execute_reply.started":"2024-02-07T16:13:05.043016Z","shell.execute_reply":"2024-02-07T16:13:05.050544Z"},"trusted":true},"execution_count":65,"outputs":[]},{"cell_type":"code","source":"ax4 = sns.countplot(data=df, x='generated')\nax4.bar_label(ax4.containers[0])\nplt.title('Distribution of Label');","metadata":{"datalore":{"node_id":"zGhGuMuLpxQUftCSQaishZ","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.052688Z","iopub.execute_input":"2024-02-07T16:13:05.052952Z","iopub.status.idle":"2024-02-07T16:13:05.253363Z","shell.execute_reply.started":"2024-02-07T16:13:05.052929Z","shell.execute_reply":"2024-02-07T16:13:05.252425Z"},"trusted":true},"execution_count":66,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABB20lEQVR4nO3de1gWdf7/8dcNcnMQAU+AKB5SyxOpoREd1JJEpYObu5W5iYZaLpiKeWpLzdrYtIOmptu2iZVuam26q4YSKpZSJkUeUvNAaSVgJaCkgDC/P/oyP2/RHBG9b/T5uK65Lufzed8z77kVeV0zc89tMwzDEAAAAH6Xm7MbAAAAqAkITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGABoQkAAMACQhMAAIAFhCYAAAALCE0AHEydOlU2m+2y7KtHjx7q0aOHub5hwwbZbDa99957l2X/gwcPVvPmzS/Lvqrq+PHjGjp0qIKDg2Wz2TR69OjLst/BgwfL19e3Wrd55t83UNMQmoArWHJysmw2m7l4eXkpJCRE0dHRevXVV3Xs2LFq2c+PP/6oqVOnKisrq1q2V51cuTcrnn/+eSUnJ2vEiBF6++239fDDD5+ztnnz5rrrrrsuY3fA1aWWsxsAcOlNmzZNLVq0UGlpqXJycrRhwwaNHj1aL7/8sv773//q+uuvN2ufeuopTZw48YK2/+OPP+qZZ55R8+bN1alTJ8uvW7t27QXtpyp+r7d//vOfKi8vv+Q9XIx169bppptu0pQpU5zdCnDVIzQBV4E+ffqoS5cu5vqkSZO0bt063XXXXbrnnnu0a9cueXt7S5Jq1aqlWrUu7X8Nv/76q3x8fGS32y/pfs7Hw8PDqfu3Ii8vT+3atXN2GwDE5TngqnXHHXfo6aef1nfffad33nnHHD/bPU2pqam69dZbFRAQIF9fX1133XV68sknJf12H1LXrl0lSUOGDDEvBSYnJ0v67T6WDh06KDMzU926dZOPj4/52nPd41JWVqYnn3xSwcHBql27tu655x4dOnTIoaZ58+YaPHhwpdeevs3z9Xa2e5qKioo0duxYhYaGytPTU9ddd51efPFFGYbhUGez2ZSQkKDly5erQ4cO8vT0VPv27ZWSknL2N/wMeXl5iouLU1BQkLy8vNSxY0ctXLjQnK+4vys7O1urVq0ye//2228tbf9cPv74Y/3pT39S06ZN5enpqdDQUI0ZM0YnTpw4a/2BAwcUHR2t2rVrKyQkRNOmTav0XpSXl2vmzJlq3769vLy8FBQUpEcffVRHjx69qF4BV8OZJuAq9vDDD+vJJ5/U2rVrNWzYsLPW7Ny5U3fddZeuv/56TZs2TZ6entq3b582bdokSWrbtq2mTZumyZMna/jw4brtttskSTfffLO5jZ9//ll9+vTRgw8+qD//+c8KCgr63b7+9re/yWazacKECcrLy9PMmTMVFRWlrKws84yYFVZ6O51hGLrnnnu0fv16xcXFqVOnTlqzZo3GjRunH374Qa+88opD/SeffKL//Oc/+stf/qI6dero1VdfVf/+/XXw4EHVr1//nH2dOHFCPXr00L59+5SQkKAWLVpo2bJlGjx4sPLz8zVq1Ci1bdtWb7/9tsaMGaMmTZpo7NixkqSGDRtaPv6zWbZsmX799VeNGDFC9evX15YtWzR79mx9//33WrZsmUNtWVmZevfurZtuuknTp09XSkqKpkyZolOnTmnatGlm3aOPPqrk5GQNGTJEjz/+uLKzszVnzhx9+eWX2rRpU404owdYYgC4Yi1YsMCQZHz++efnrPH39zc6d+5srk+ZMsU4/b+GV155xZBkHDly5Jzb+Pzzzw1JxoIFCyrNde/e3ZBkzJ8//6xz3bt3N9fXr19vSDIaN25sFBYWmuNLly41JBmzZs0yx5o1a2bExsaed5u/11tsbKzRrFkzc3358uWGJOO5555zqPvjH/9o2Gw2Y9++feaYJMNutzuMffXVV4YkY/bs2ZX2dbqZM2cakox33nnHHCspKTEiIyMNX19fh2Nv1qyZERMT87vbu5DaX3/9tdJYUlKSYbPZjO+++84ci42NNSQZI0eONMfKy8uNmJgYw263m/8ePv74Y0OSsWjRIodtpqSkVBo/8+8GqGm4PAdc5Xx9fX/3U3QBAQGSpBUrVlT5pmlPT08NGTLEcv2gQYNUp04dc/2Pf/yjGjVqpNWrV1dp/1atXr1a7u7uevzxxx3Gx44dK8Mw9OGHHzqMR0VFqWXLlub69ddfLz8/Px04cOC8+wkODtaAAQPMMQ8PDz3++OM6fvy40tPTq+Fozu70M3VFRUX66aefdPPNN8swDH355ZeV6hMSEsw/V1ySLCkp0UcffSTptzNX/v7+uvPOO/XTTz+ZS3h4uHx9fbV+/fpLdizA5UZoAq5yx48fdwgoZ3rggQd0yy23aOjQoQoKCtKDDz6opUuXXlCAaty48QXd9N26dWuHdZvNplatWl30/Tzn89133ykkJKTS+9G2bVtz/nRNmzattI26deue916e7777Tq1bt5abm+N/wefaT3U6ePCgBg8erHr16snX11cNGzZU9+7dJUkFBQUOtW5ubrrmmmscxq699lpJMv8u9u7dq4KCAgUGBqphw4YOy/Hjx5WXl3fJjgW43LinCbiKff/99yooKFCrVq3OWePt7a2NGzdq/fr1WrVqlVJSUrRkyRLdcccdWrt2rdzd3c+7nwu5D8mqcz2As6yszFJP1eFc+zHOuFHaVZSVlenOO+/UL7/8ogkTJqhNmzaqXbu2fvjhBw0ePLhKZxLLy8sVGBioRYsWnXX+Yu/BAlwJoQm4ir399tuSpOjo6N+tc3NzU8+ePdWzZ0+9/PLLev755/XXv/5V69evV1RUVLU/QXzv3r0O64ZhaN++fQ7Pk6pbt67y8/Mrvfa7775zODtyIb01a9ZMH330kY4dO+Zwtmn37t3mfHVo1qyZtm3bpvLycoezTdW9nzNt375d33zzjRYuXKhBgwaZ46mpqWetLy8v14EDB8yzS5L0zTffSJL5qcOWLVvqo48+0i233HJJwjHgSrg8B1yl1q1bp2effVYtWrTQwIEDz1n3yy+/VBqreEhkcXGxJKl27dqSdNYQUxVvvfWWw31W7733ng4fPqw+ffqYYy1bttSnn36qkpISc2zlypWVHk1wIb317dtXZWVlmjNnjsP4K6+8IpvN5rD/i9G3b1/l5ORoyZIl5tipU6c0e/Zs+fr6mpfLqlvFmbHTz4QZhqFZs2ad8zWnvxeGYWjOnDny8PBQz549JUn333+/ysrK9Oyzz1Z67alTp6rt3wTgCjjTBFwFPvzwQ+3evVunTp1Sbm6u1q1bp9TUVDVr1kz//e9/5eXldc7XTps2TRs3blRMTIyaNWumvLw8vfbaa2rSpIluvfVWSb8FmICAAM2fP1916tRR7dq1FRERoRYtWlSp33r16unWW2/VkCFDlJubq5kzZ6pVq1YOj0UYOnSo3nvvPfXu3Vv333+/9u/fr3feecfhxuwL7e3uu+/W7bffrr/+9a/69ttv1bFjR61du1YrVqzQ6NGjK227qoYPH65//OMfGjx4sDIzM9W8eXO999572rRpk2bOnPm795idz759+/Tcc89VGu/cubN69eqlli1b6oknntAPP/wgPz8/vf/+++e8B8vLy0spKSmKjY1VRESEPvzwQ61atUpPPvmkedmte/fuevTRR5WUlKSsrCz16tVLHh4e2rt3r5YtW6ZZs2bpj3/8Y5WPB3ApTvzkHoBLrOKRAxWL3W43goODjTvvvNOYNWuWw0fbK5z5yIG0tDTj3nvvNUJCQgy73W6EhIQYAwYMML755huH161YscJo166dUatWLYeP+Hfv3t1o3779Wfs71yMH/v3vfxuTJk0yAgMDDW9vbyMmJsbh4/AVXnrpJaNx48aGp6enccsttxhbt24968faz9XbmY8cMAzDOHbsmDFmzBgjJCTE8PDwMFq3bm3MmDHDKC8vd6iTZMTHx1fq6VyPQjhTbm6uMWTIEKNBgwaG3W43wsLCzvpYhAt95MDpf9+nL3FxcYZhGMbXX39tREVFGb6+vkaDBg2MYcOGmY9KOH3/sbGxRu3atY39+/cbvXr1Mnx8fIygoCBjypQpRllZWaV9v/7660Z4eLjh7e1t1KlTxwgLCzPGjx9v/Pjjj2YNjxxATWczDBe9YxEAAMCFcE8TAACABYQmAAAACwhNAAAAFhCaAAAALCA0AQAAWODU0DRv3jzzCy79/PwUGRnp8IWYJ0+eVHx8vOrXry9fX1/1799fubm5Dts4ePCgYmJi5OPjo8DAQI0bN06nTp1yqNmwYYNuuOEGeXp6qlWrVkpOTq7Uy9y5c9W8eXN5eXkpIiJCW7ZsuSTHDAAAaianPtyySZMm+vvf/67WrVvLMAwtXLhQ9957r7788ku1b99eY8aM0apVq8xv0U5ISNB9992nTZs2Sfrte5RiYmIUHByszZs36/Dhwxo0aJA8PDz0/PPPS5Kys7MVExOjxx57TIsWLVJaWpqGDh2qRo0amV8dsWTJEiUmJmr+/PmKiIjQzJkzFR0drT179igwMNDSsZSXl+vHH39UnTp1qv0rJQAAwKVhGIaOHTumkJCQSl+ifbZil1K3bl3jjTfeMPLz8w0PDw9j2bJl5tyuXbsMSUZGRoZhGIaxevVqw83NzcjJyTFr5s2bZ/j5+RnFxcWGYRjG+PHjKz1Y74EHHjCio6PN9RtvvNHhIXVlZWVGSEiIkZSUZLnvQ4cOnfOhciwsLCwsLCyuvRw6dOi8v+td5mtUysrKtGzZMhUVFSkyMlKZmZkqLS1VVFSUWdOmTRs1bdpUGRkZuummm5SRkaGwsDAFBQWZNdHR0RoxYoR27typzp07KyMjw2EbFTWjR4+WJJWUlCgzM1OTJk0y593c3BQVFaWMjIxz9ltcXGx+75Yk87ucDh06JD8/v4t6LwAAwOVRWFio0NBQS19f5PTQtH37dkVGRurkyZPy9fXVBx98oHbt2ikrK0t2u10BAQEO9UFBQcrJyZEk5eTkOASmivmKud+rKSws1IkTJ3T06FGVlZWdtabiG8fPJikpSc8880yl8Yr7swAAQM1h5dYap3967rrrrlNWVpY+++wzjRgxQrGxsfr666+d3dZ5TZo0SQUFBeZy5jerAwCAK4vTzzTZ7Xa1atVKkhQeHq7PP/9cs2bN0gMPPKCSkhLl5+c7nG3Kzc1VcHCwJCk4OLjSp9wqPl13es2Zn7jLzc2Vn5+fvL295e7uLnd397PWVGzjbDw9PeXp6Vm1gwYAADWO0880nam8vFzFxcUKDw+Xh4eH0tLSzLk9e/bo4MGDioyMlCRFRkZq+/btysvLM2tSU1Pl5+endu3amTWnb6OipmIbdrtd4eHhDjXl5eVKS0sza1DzJSUlqWvXrqpTp44CAwPVr18/7dmzx6EmJydHDz/8sIKDg1W7dm3dcMMNev/99835DRs2yGaznXX5/PPPK+1z3759qlOnTqVLzJKUn5+v+Ph4NWrUSJ6enrr22mu1evXqaj9uAEA1svzxsEtg4sSJRnp6upGdnW1s27bNmDhxomGz2Yy1a9cahmEYjz32mNG0aVNj3bp1xtatW43IyEgjMjLSfP2pU6eMDh06GL169TKysrKMlJQUo2HDhsakSZPMmgMHDhg+Pj7GuHHjjF27dhlz58413N3djZSUFLPm3XffNTw9PY3k5GTj66+/NoYPH24EBAQ4fCrvfAoKCgxJRkFBQTW8M6hu0dHRxoIFC4wdO3YYWVlZRt++fY2mTZsax48fN2vuvPNOo2vXrsZnn31m7N+/33j22WcNNzc344svvjAMwzCKi4uNw4cPOyxDhw41WrRoYZSXlzvsr6SkxOjSpYvRp08fw9/f32GuuLjY6NKli9G3b1/jk08+MbKzs40NGzYYWVlZl/x9AAA4upDf304NTY888ojRrFkzw263Gw0bNjR69uxpBibDMIwTJ04Yf/nLX4y6desaPj4+xh/+8Afj8OHDDtv49ttvjT59+hje3t5GgwYNjLFjxxqlpaUONevXrzc6depk2O1245prrjEWLFhQqZfZs2cbTZs2Nex2u3HjjTcan3766QUdC6GpZsnLyzMkGenp6eZY7dq1jbfeesuhrl69esY///nPs26jpKTEaNiwoTFt2rRKc+PHjzf+/Oc/GwsWLKgUmubNm2dcc801RklJycUfCADgolzI72+bYfzfZ+VxUQoLC+Xv76+CggI+PVcD7Nu3T61bt9b27dvVoUMHSVKvXr1kt9v11ltvKSAgQEuXLlVcXJy++uor8767073//vu6//779d1336lJkybm+Lp16zR06FBlZWXpP//5j0aPHq38/Hxzvm/fvqpXr558fHy0YsUKNWzYUA899JAmTJggd3f3S37sAID/70J+fzv9RnDgcisvL9fo0aN1yy23mIFJkpYuXaoHHnhA9evXV61ateTj46MPPvjgrIFJkv71r38pOjraITD9/PPPGjx4sN55551z/vAdOHBA69at08CBA7V69Wrt27dPf/nLX1RaWqopU6ZU78ECAKoNoQlXnfj4eO3YsUOffPKJw/jTTz+t/Px8ffTRR2rQoIGWL1+u+++/Xx9//LHCwsIcar///nutWbNGS5cudRgfNmyYHnroIXXr1u2c+y8vL1dgYKBef/11ubu7Kzw8XD/88INmzJhBaAIAF8bluWrC5bmaISEhQStWrNDGjRvVokULc3z//v1q1aqVduzYofbt25vjUVFRatWqlebPn++wnWeffVazZ8/WDz/8IA8PD3M8ICBAx48fN9cNw1B5ebnc3d31+uuv65FHHlH37t3l4eGhjz76yKz78MMP1bdvXxUXF8tut1+KQwcAnAWX54AzGIahkSNH6oMPPtCGDRscApMk/frrr5JU6csa3d3dVV5eXmlbCxYsML8c+nQZGRkqKysz11esWKEXXnhBmzdvVuPGjSVJt9xyixYvXqzy8nJzf998840aNWpEYAIAF0ZowlUhPj5eixcv1ooVK1SnTh3za3b8/f3l7e2tNm3aqFWrVnr00Uf14osvqn79+lq+fLlSU1O1cuVKh22tW7dO2dnZGjp0aKX9tG3b1mF969atcnNzc7h3asSIEZozZ45GjRqlkSNHau/e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88svv2jgwIHy8/NTQECA4uLidPz4cYeabdu26bbbbpOXl5dCQ0M1ffr0Sr0sW7ZMbdq0kZeXl8LCwrR69epqP14AAFBzVelM0yOPPPK782+++aal7RQVFaljx4565JFHdN999521pnfv3lqwYIG57unp6TA/cOBAHT58WKmpqSotLdWQIUM0fPhwLV68WJJUWFioXr16KSoqSvPnz9f27dv1yCOPKCAgQMOHD5ckbd68WQMGDFBSUpLuuusuLV68WP369dMXX3yhDh06WDoWAABwZatSaDp69KjDemlpqXbs2KH8/PyzfpHvufTp00d9+vT53RpPT08FBwefdW7Xrl1KSUnR559/ri5dukiSZs+erb59++rFF19USEiIFi1apJKSEr355puy2+1q3769srKy9PLLL5uhadasWerdu7fGjRsnSXr22WeVmpqqOXPmaP78+ZaPBwAAXLmqFJo++OCDSmPl5eUaMWKEWrZsedFNnW7Dhg0KDAxU3bp1dccdd+i5555T/fr1JUkZGRkKCAgwA5MkRUVFyc3NTZ999pn+8Ic/KCMjQ926dZPdbjdroqOj9cILL+jo0aOqW7euMjIylJiY6LDf6OjoSpcLT1dcXKzi4mJzvbCwsJqOGAAAuKJqu6fJzc1NiYmJeuWVV6prk+rdu7feeustpaWl6YUXXlB6err69OmjsrIySVJOTo4CAwMdXlOrVi3Vq1dPOTk5Zk1QUJBDTcX6+Woq5s8mKSlJ/v7+5hIaGnpxBwsAAFxalb+w92z279+vU6dOVdv2HnzwQfPPYWFhuv7669WyZUtt2LBBPXv2rLb9VMWkSZMczk4VFhYSnAAAuIJVKTSdeSnLMAwdPnxYq1atUmxsbLU0djbXXHONGjRooH379qlnz54KDg5WXl6eQ82pU6f0yy+/mPdBBQcHKzc316GmYv18Nee6l0r67V6rM29KBwAAV64qXZ778ssvHZZt27ZJkl566SXNnDmzOvtz8P333+vnn39Wo0aNJEmRkZHKz89XZmamWbNu3TqVl5crIiLCrNm4caNKS0vNmtTUVF133XWqW7euWZOWluawr9TUVEVGRl6yYwEAADVLlc40rV+/vlp2fvz4ce3bt89cz87OVlZWlurVq6d69erpmWeeUf/+/RUcHKz9+/dr/PjxatWqlaKjoyVJbdu2Ve/evTVs2DDNnz9fpaWlSkhI0IMPPqiQkBBJ0kMPPaRnnnlGcXFxmjBhgnbs2KFZs2Y53Hs1atQode/eXS+99JJiYmL07rvvauvWrXr99der5TgBAEDNd1E3gh85ckSffPKJPvnkEx05cuSCX79161Z17txZnTt3lvTbZb/OnTtr8uTJcnd317Zt23TPPffo2muvVVxcnMLDw/Xxxx87XBZbtGiR2rRpo549e6pv37669dZbHcKOv7+/1q5dq+zsbIWHh2vs2LGaPHmy+bgBSbr55pu1ePFivf766+rYsaPee+89LV++nGc0AQAAk80wDONCX1RUVKSRI0fqrbfeUnl5uSTJ3d1dgwYN0uzZs+Xj41Ptjbq6wsJC+fv7q6CgQH5+fpdsP+Hj3rpk2wZqqswZg5zdQrU4OC3M2S0ALqfp5O2XdPsX8vu7SmeaEhMTlZ6erv/973/Kz89Xfn6+VqxYofT0dI0dO7ZKTQMAALiyKt3T9P777+u9995Tjx49zLG+ffvK29tb999/v+bNm1dd/QEAALiEKp1p+vXXXys9DFKSAgMD9euvv150UwAAAK6mSqEpMjJSU6ZM0cmTJ82xEydO6JlnnuFj+gAA4IpUpctzM2fOVO/evdWkSRN17NhRkvTVV1/J09NTa9eurdYGAQAAXEGVQlNYWJj27t2rRYsWaffu3ZKkAQMGaODAgfL29q7WBgEAAFxBlUJTUlKSgoKCNGzYMIfxN998U0eOHNGECROqpTkAAABXUaV7mv7xj3+oTZs2lcbbt2+v+fPnX3RTAAAArqZKoSknJ8f8/rfTNWzYUIcPH77opgAAAFxNlUJTaGioNm3aVGl806ZN5ne+AQAAXEmqdE/TsGHDNHr0aJWWluqOO+6QJKWlpWn8+PE8ERwAAFyRqhSaxo0bp59//ll/+ctfVFJSIkny8vLShAkTNGnSpGptEAAAwBVUKTTZbDa98MILevrpp7Vr1y55e3urdevW8vT0rO7+AAAAXEKVQlMFX19fde3atbp6AQAAcFlVuhEcAADgakNoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGABoQkAAMACQhMAAIAFhCYAAAALCE0AAAAWEJoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAAkITAACABYQmAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGABoQkAAMACp4amjRs36u6771ZISIhsNpuWL1/uMG8YhiZPnqxGjRrJ29tbUVFR2rt3r0PNL7/8ooEDB8rPz08BAQGKi4vT8ePHHWq2bdum2267TV5eXgoNDdX06dMr9bJs2TK1adNGXl5eCgsL0+rVq6v9eAEAQM3l1NBUVFSkjh07au7cuWednz59ul599VXNnz9fn332mWrXrq3o6GidPHnSrBk4cKB27typ1NRUrVy5Uhs3btTw4cPN+cLCQvXq1UvNmjVTZmamZsyYoalTp+r11183azZv3qwBAwYoLi5OX375pfr166d+/fppx44dl+7gAQBAjWIzDMNwdhOSZLPZ9MEHH6hfv36SfjvLFBISorFjx+qJJ56QJBUUFCgoKEjJycl68MEHtWvXLrVr106ff/65unTpIklKSUlR37599f333yskJETz5s3TX//6V+Xk5Mhut0uSJk6cqOXLl2v37t2SpAceeEBFRUVauXKl2c9NN92kTp06af78+Zb6LywslL+/vwoKCuTn51ddb0sl4ePeumTbBmqqzBmDnN1CtTg4LczZLQAup+nk7Zd0+xfy+9tl72nKzs5WTk6OoqKizDF/f39FREQoIyNDkpSRkaGAgAAzMElSVFSU3Nzc9Nlnn5k13bp1MwOTJEVHR2vPnj06evSoWXP6fipqKvZzNsXFxSosLHRYAADAlctlQ1NOTo4kKSgoyGE8KCjInMvJyVFgYKDDfK1atVSvXj2HmrNt4/R9nKumYv5skpKS5O/vby6hoaEXeogAAKAGcdnQ5OomTZqkgoICczl06JCzWwIAAJeQy4am4OBgSVJubq7DeG5urjkXHBysvLw8h/lTp07pl19+cag52zZO38e5airmz8bT01N+fn4OCwAAuHK5bGhq0aKFgoODlZaWZo4VFhbqs88+U2RkpCQpMjJS+fn5yszMNGvWrVun8vJyRUREmDUbN25UaWmpWZOamqrrrrtOdevWNWtO309FTcV+AAAAnBqajh8/rqysLGVlZUn67ebvrKwsHTx4UDabTaNHj9Zzzz2n//73v9q+fbsGDRqkkJAQ8xN2bdu2Ve/e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JgA11vHjx+Xu7q7MzEy5u7s7zJ0eSDw8PBzmbDabDMMwtyFJ//znPx1CiqRK26xdu7bD+owZMzRr1izNnDlTYWFhql27tkaPHq2SkpLz9n333XfrhRdeqDTXqFEj7du373dfD8A5CE0AXNY111wjDw8Pff7552ratKkkqaCgQN988426deumzp07q6ysTHl5ebrtttuqtI+goCCFhITowIEDGjhw4AW9dtOmTbr33nv15z//WZJUXl6ub775Ru3atTNr7Ha7ysrKHF53ww036P3331fz5s1Vq1bl/4ZbtmwpDw8PffbZZ+ZxHz16VN988426d+9+oYcIoJpwIzgAl1WnTh3FxsZq3LhxWr9+vXbu3Km4uDi5ubnJZrPp2muv1cCBAzVo0CD95z//UXZ2trZs2aKkpCStWrXK8n6eeeYZJSUl6dVXX9U333yj7du3a8GCBXr55Zd/93WtW7dWamqqNm/erF27dunRRx9Vbm6uQ03z5s312Wef6dtvv9VPP/2k8vJyxcfH65dfftGAAQP0+eefa//+/VqzZo2GDBmisrIy+fr6Ki4uTuPGjdO6deu0Y8cODR48WG5u/JcNOBM/gQBc2ssvv6zIyEjdddddioqK0i233GI+GkCSFixYoEGDBmns2LG67rrr1K9fP4czU1YMHTpUb7zxhhYsWKCwsDB1795dycnJatGixe++7qmnntINN9yg6Oho9ejRQ8HBwerXr59DzRNPPCF3d3e1a9dODRs21MGDBxUSEqJNmzaprKxMvXr1UlhYmEaPHq2AgAAzGM2YMUO33Xab7r77bkVFRenWW29VeHj4hb15AKqVzai4sA8ANUBRUZEaN26sl156SXFxcc5uB8BVhHuaALi0L7/8Urt379aNN96ogoICTZs2TZJ07733OrkzAFcbQhMAl/fiiy9qz549stvtCg8P18cff6wGDRo4uy0AVxkuzwEAAFjAjeAAAAAWEJoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAAkITAACABYQmAAAACwhNAAAAFvw/yISOaixCfmEAAAAASUVORK5CYII="},"metadata":{}}]},{"cell_type":"code","source":"df.head()","metadata":{"datalore":{"node_id":"ItJikExfedJp3LE8X7Srha","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.254735Z","iopub.execute_input":"2024-02-07T16:13:05.255590Z","iopub.status.idle":"2024-02-07T16:13:05.265677Z","shell.execute_reply.started":"2024-02-07T16:13:05.255533Z","shell.execute_reply":"2024-02-07T16:13:05.264692Z"},"trusted":true},"execution_count":67,"outputs":[{"execution_count":67,"output_type":"execute_result","data":{"text/plain":"                                                text  generated\n0    In recent years, there has been a growing trend          1\n1   Dear Senator,\\n\\nI am writing in support of k...          1\n2   Car usage has long been a significant factor ...          1\n3   Limiting car usage is a concept that has gain...          1\n4  Passage 1:\\n\\nPassage 2:\\n\\nPassage 3:\\n\\nPass...          1","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>text</th>\n      <th>generated</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>In recent years, there has been a growing trend</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>Dear Senator,\\n\\nI am writing in support of k...</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>Car usage has long been a significant factor ...</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>Limiting car usage is a concept that has gain...</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>Passage 1:\\n\\nPassage 2:\\n\\nPassage 3:\\n\\nPass...</td>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"**Clean text**","metadata":{"datalore":{"node_id":"8978uMqZOlfcnT3mHvQZp1","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"df.iloc[7][['text','generated']]","metadata":{"datalore":{"node_id":"3b3ir2r9QMkiwmxPnJ0E5l","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.267026Z","iopub.execute_input":"2024-02-07T16:13:05.267368Z","iopub.status.idle":"2024-02-07T16:13:05.279580Z","shell.execute_reply.started":"2024-02-07T16:13:05.267338Z","shell.execute_reply":"2024-02-07T16:13:05.278553Z"},"trusted":true},"execution_count":68,"outputs":[{"execution_count":68,"output_type":"execute_result","data":{"text/plain":"text         After researching extensively into different p...\ngenerated                                                    1\nName: 7, dtype: object"},"metadata":{}}]},{"cell_type":"code","source":"def clean_text(text):\n  #delete non-alphanumeric characters\n  text = re.sub(r\"[^A-Za-z0-9\\s]\", \"\", text)\n  #delete extra whitespaces\n  text = re.sub(r\"\\s+\", \" \", text)\n  #convert to lowercase\n  text = text.lower()\n\n  return text","metadata":{"datalore":{"node_id":"N1DjNMEJW5CsHvDCHngtmn","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.280640Z","iopub.execute_input":"2024-02-07T16:13:05.280937Z","iopub.status.idle":"2024-02-07T16:13:05.289950Z","shell.execute_reply.started":"2024-02-07T16:13:05.280914Z","shell.execute_reply":"2024-02-07T16:13:05.289146Z"},"trusted":true},"execution_count":69,"outputs":[]},{"cell_type":"code","source":"df['text'] = df['text'].map(clean_text)","metadata":{"datalore":{"node_id":"qjp0S2zUgdmaJANVSOwwXv","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:05.291016Z","iopub.execute_input":"2024-02-07T16:13:05.291337Z","iopub.status.idle":"2024-02-07T16:13:16.672977Z","shell.execute_reply.started":"2024-02-07T16:13:05.291313Z","shell.execute_reply":"2024-02-07T16:13:16.672155Z"},"trusted":true},"execution_count":70,"outputs":[]},{"cell_type":"code","source":"df.iloc[7]['text']","metadata":{"execution":{"iopub.status.busy":"2024-02-07T16:13:16.678991Z","iopub.execute_input":"2024-02-07T16:13:16.679353Z","iopub.status.idle":"2024-02-07T16:13:16.685339Z","shell.execute_reply.started":"2024-02-07T16:13:16.679328Z","shell.execute_reply":"2024-02-07T16:13:16.684457Z"},"trusted":true},"execution_count":71,"outputs":[{"execution_count":71,"output_type":"execute_result","data":{"text/plain":"'after researching extensively into different potential career paths i have shortlisted my top 5 options i have read up on the various qualifications responsibilities and other important aspects of each one and weighed them up against my skills and experience now i am planning to discuss my top 5 with my parents and teachers to get their opinions on which one could potentially benefit me the best'"},"metadata":{}}]},{"cell_type":"markdown","source":"## 4. Tokenizing","metadata":{"datalore":{"node_id":"2Tt8LbIyZKzdQgMtl7VNhK","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"# checkpoint = '../input/transformers/distilbert-base-uncased'\ncheckpoint = 'distilbert/distilbert-base-uncased-finetuned-sst-2-english'","metadata":{"datalore":{"node_id":"SrkC7QpLgPn1I0cIx9UaA0","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:16.686480Z","iopub.execute_input":"2024-02-07T16:13:16.686807Z","iopub.status.idle":"2024-02-07T16:13:16.698985Z","shell.execute_reply.started":"2024-02-07T16:13:16.686776Z","shell.execute_reply":"2024-02-07T16:13:16.698299Z"},"trusted":true},"execution_count":72,"outputs":[]},{"cell_type":"code","source":"batch_size = 25","metadata":{"execution":{"iopub.status.busy":"2024-02-07T16:13:16.700077Z","iopub.execute_input":"2024-02-07T16:13:16.700702Z","iopub.status.idle":"2024-02-07T16:13:16.711065Z","shell.execute_reply.started":"2024-02-07T16:13:16.700670Z","shell.execute_reply":"2024-02-07T16:13:16.710157Z"},"trusted":true},"execution_count":73,"outputs":[]},{"cell_type":"code","source":"tokenizer = AutoTokenizer.from_pretrained(checkpoint)","metadata":{"datalore":{"node_id":"2X59C8t23MfaAuhJcGqTAB","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:16.712051Z","iopub.execute_input":"2024-02-07T16:13:16.712349Z","iopub.status.idle":"2024-02-07T16:13:16.874897Z","shell.execute_reply.started":"2024-02-07T16:13:16.712325Z","shell.execute_reply":"2024-02-07T16:13:16.874159Z"},"trusted":true},"execution_count":74,"outputs":[]},{"cell_type":"code","source":"def tokenize_and_split(text):\n    encoding = tokenizer(\n        text[\"text\"],\n        truncation=True,\n        padding=True,\n        max_length=512,\n        return_overflowing_tokens=True,\n    )\n    # Extract mapping between new and old indices\n    sample_map = encoding.pop(\"overflow_to_sample_mapping\")\n    for key, values in text.items():\n        encoding[key] = [values[i] for i in sample_map]\n    return encoding","metadata":{"datalore":{"node_id":"Np01F6IxXptsTFbJEtQcVi","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:16.875924Z","iopub.execute_input":"2024-02-07T16:13:16.876226Z","iopub.status.idle":"2024-02-07T16:13:16.881595Z","shell.execute_reply.started":"2024-02-07T16:13:16.876202Z","shell.execute_reply":"2024-02-07T16:13:16.880686Z"},"trusted":true},"execution_count":75,"outputs":[]},{"cell_type":"code","source":"raw_ds = datasets.Dataset.from_pandas(df)\nraw_ds = raw_ds.train_test_split(test_size=0.2)\nraw_ds","metadata":{"datalore":{"node_id":"ok2iNWqKhS3Xr6BgnS8XKL","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:16.882783Z","iopub.execute_input":"2024-02-07T16:13:16.883139Z","iopub.status.idle":"2024-02-07T16:13:17.133386Z","shell.execute_reply.started":"2024-02-07T16:13:16.883084Z","shell.execute_reply":"2024-02-07T16:13:17.132340Z"},"trusted":true},"execution_count":76,"outputs":[{"execution_count":76,"output_type":"execute_result","data":{"text/plain":"DatasetDict({\n    train: Dataset({\n        features: ['text', 'generated'],\n        num_rows: 36996\n    })\n    test: Dataset({\n        features: ['text', 'generated'],\n        num_rows: 9250\n    })\n})"},"metadata":{}}]},{"cell_type":"code","source":"tokenized_ds = raw_ds.map(tokenize_and_split, batched=True)","metadata":{"datalore":{"node_id":"MDZBrC9YPCTvp51uU2TETh","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:17.134367Z","iopub.execute_input":"2024-02-07T16:13:17.136441Z","iopub.status.idle":"2024-02-07T16:13:57.609413Z","shell.execute_reply.started":"2024-02-07T16:13:17.136406Z","shell.execute_reply":"2024-02-07T16:13:57.608495Z"},"trusted":true},"execution_count":77,"outputs":[{"output_type":"display_data","data":{"text/plain":"Map:   0%|          | 0/36996 [00:00<?, ? examples/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"f76e65463f8941b9b07cb4edde985210"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"Map:   0%|          | 0/9250 [00:00<?, ? examples/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"1caf000576754e73b46a2b4837aad091"}},"metadata":{}}]},{"cell_type":"code","source":"tokenized_ds","metadata":{"datalore":{"node_id":"Kogb1E8iCGSyKM1a5tqNKr","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:57.610798Z","iopub.execute_input":"2024-02-07T16:13:57.611188Z","iopub.status.idle":"2024-02-07T16:13:57.619303Z","shell.execute_reply.started":"2024-02-07T16:13:57.611153Z","shell.execute_reply":"2024-02-07T16:13:57.618451Z"},"trusted":true},"execution_count":78,"outputs":[{"execution_count":78,"output_type":"execute_result","data":{"text/plain":"DatasetDict({\n    train: Dataset({\n        features: ['text', 'generated', 'input_ids', 'attention_mask'],\n        num_rows: 45367\n    })\n    test: Dataset({\n        features: ['text', 'generated', 'input_ids', 'attention_mask'],\n        num_rows: 11267\n    })\n})"},"metadata":{}}]},{"cell_type":"code","source":"data_collator = DataCollatorWithPadding(tokenizer=tokenizer, return_tensors=\"tf\")","metadata":{"datalore":{"node_id":"ZiedoYlNkJO38MDwbBtk1D","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:57.620367Z","iopub.execute_input":"2024-02-07T16:13:57.620634Z","iopub.status.idle":"2024-02-07T16:13:57.634232Z","shell.execute_reply.started":"2024-02-07T16:13:57.620611Z","shell.execute_reply":"2024-02-07T16:13:57.633273Z"},"trusted":true},"execution_count":79,"outputs":[]},{"cell_type":"markdown","source":"## 5. Modelling","metadata":{"datalore":{"node_id":"PNCf05cZxmkj4mYnNrH1e6","type":"MD","hide_input_from_viewers":true,"hide_output_from_viewers":true}}},{"cell_type":"code","source":"tf_train_dataset = tokenized_ds['train'].to_tf_dataset(\n    columns=[\"attention_mask\", \"input_ids\"],\n    label_cols=[\"generated\"],\n    shuffle=True,\n    collate_fn=data_collator,\n    batch_size=batch_size,\n)\n\ntf_test_dataset = tokenized_ds['test'].to_tf_dataset(\n    columns=[\"attention_mask\", \"input_ids\"],\n    label_cols=[\"generated\"],\n    shuffle=False,\n    collate_fn=data_collator,\n    batch_size=batch_size,\n)","metadata":{"datalore":{"node_id":"59cwxcIVF1G0FQQI583weB","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:57.635235Z","iopub.execute_input":"2024-02-07T16:13:57.635464Z","iopub.status.idle":"2024-02-07T16:13:57.782092Z","shell.execute_reply.started":"2024-02-07T16:13:57.635444Z","shell.execute_reply":"2024-02-07T16:13:57.781228Z"},"trusted":true},"execution_count":80,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/datasets/arrow_dataset.py:399: FutureWarning: The output of `to_tf_dataset` will change when a passing single element list for `labels` or `columns` in the next datasets version. To return a tuple structure rather than dict, pass a single string.\nOld behaviour: columns=['a'], labels=['labels'] -> (tf.Tensor, tf.Tensor)  \n             : columns='a', labels='labels' -> (tf.Tensor, tf.Tensor)  \nNew behaviour: columns=['a'],labels=['labels'] -> ({'a': tf.Tensor}, {'labels': tf.Tensor})  \n             : columns='a', labels='labels' -> (tf.Tensor, tf.Tensor) \n  warnings.warn(\n","output_type":"stream"}]},{"cell_type":"code","source":"num_epochs = 2","metadata":{"execution":{"iopub.status.busy":"2024-02-07T16:13:57.783312Z","iopub.execute_input":"2024-02-07T16:13:57.783569Z","iopub.status.idle":"2024-02-07T16:13:57.787307Z","shell.execute_reply.started":"2024-02-07T16:13:57.783547Z","shell.execute_reply":"2024-02-07T16:13:57.786339Z"},"trusted":true},"execution_count":81,"outputs":[]},{"cell_type":"code","source":"model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2, from_pt=True)","metadata":{"datalore":{"node_id":"N0KmKqUgQAhDA3T22hXvH0","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:57.788362Z","iopub.execute_input":"2024-02-07T16:13:57.788638Z","iopub.status.idle":"2024-02-07T16:13:58.918881Z","shell.execute_reply.started":"2024-02-07T16:13:57.788614Z","shell.execute_reply":"2024-02-07T16:13:58.917823Z"},"trusted":true},"execution_count":82,"outputs":[{"name":"stderr","text":"All PyTorch model weights were used when initializing TFDistilBertForSequenceClassification.\n\nAll the weights of TFDistilBertForSequenceClassification were initialized from the PyTorch model.\nIf your task is similar to the task the model of the checkpoint was trained on, you can already use TFDistilBertForSequenceClassification for predictions without further training.\n","output_type":"stream"}]},{"cell_type":"code","source":"# The number of training steps is the number of samples in the dataset, divided by the batch size then multiplied\n# by the total number of epochs. Note that the tf_train_dataset here is a batched tf.data.Dataset,\n# not the original Hugging Face Dataset, so its len() is already num_samples // batch_size.\nnum_train_steps = len(tf_train_dataset) * num_epochs\nlr_scheduler = PolynomialDecay(\n    initial_learning_rate=5e-5, end_learning_rate=0.0, decay_steps=num_train_steps\n)\n\nopt = Adam(learning_rate=lr_scheduler)\n\nloss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)\n\nes = EarlyStopping(monitor='val_loss', patience=1, verbose=1, mode='auto', restore_best_weights=True)\n\ncallback = PushToHubCallback(\n    \"LLM_generated_text_detector\", save_strategy=\"no\", tokenizer=tokenizer\n)","metadata":{"datalore":{"node_id":"KgCP6HcT4sIzhVUP361LJt","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:58.920321Z","iopub.execute_input":"2024-02-07T16:13:58.920593Z","iopub.status.idle":"2024-02-07T16:13:59.156543Z","shell.execute_reply.started":"2024-02-07T16:13:58.920568Z","shell.execute_reply":"2024-02-07T16:13:59.155652Z"},"trusted":true},"execution_count":83,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/huggingface_hub/utils/_deprecation.py:131: FutureWarning: 'Repository' (from 'huggingface_hub.repository') is deprecated and will be removed from version '1.0'. Please prefer the http-based alternatives instead. Given its large adoption in legacy code, the complete removal is only planned on next major release.\nFor more details, please read https://huggingface.co/docs/huggingface_hub/concepts/git_vs_http.\n  warnings.warn(warning_message, FutureWarning)\n/kaggle/working/LLM_generated_text_detector is already a clone of https://huggingface.co/Wintersmith/LLM_generated_text_detector. Make sure you pull the latest changes with `repo.git_pull()`.\n","output_type":"stream"}]},{"cell_type":"code","source":"model.compile(optimizer=opt, loss=loss, metrics=[\"accuracy\"])","metadata":{"datalore":{"node_id":"FWsaXd4PpT0LElBgYMitIc","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:59.157601Z","iopub.execute_input":"2024-02-07T16:13:59.157864Z","iopub.status.idle":"2024-02-07T16:13:59.169580Z","shell.execute_reply.started":"2024-02-07T16:13:59.157840Z","shell.execute_reply":"2024-02-07T16:13:59.168698Z"},"trusted":true},"execution_count":84,"outputs":[]},{"cell_type":"code","source":"model.fit(tf_train_dataset, validation_data=tf_test_dataset, epochs=num_epochs, callbacks=[es, callback])","metadata":{"datalore":{"node_id":"Q57EJS3MbWm5NXRe9pHyM6","type":"CODE","hide_input_from_viewers":true,"hide_output_from_viewers":true},"execution":{"iopub.status.busy":"2024-02-07T16:13:59.170764Z","iopub.execute_input":"2024-02-07T16:13:59.171079Z","iopub.status.idle":"2024-02-07T17:47:39.001846Z","shell.execute_reply.started":"2024-02-07T16:13:59.171049Z","shell.execute_reply":"2024-02-07T17:47:39.000824Z"},"trusted":true},"execution_count":85,"outputs":[{"name":"stdout","text":"Epoch 1/2\n1815/1815 [==============================] - 2812s 2s/step - loss: 0.0579 - accuracy: 0.9809 - val_loss: 0.0272 - val_accuracy: 0.9920\nEpoch 2/2\n1815/1815 [==============================] - 2790s 2s/step - loss: 0.0082 - accuracy: 0.9974 - val_loss: 0.0191 - val_accuracy: 0.9941\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"Upload file tf_model.h5:   0%|          | 1.00/256M [00:00<?, ?B/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"8131a47329644fd8a4adaeb6488e0e43"}},"metadata":{}},{"name":"stderr","text":"To https://huggingface.co/Wintersmith/LLM_generated_text_detector\n   9aa28a0..f4838f7  main -> main\n\n","output_type":"stream"},{"execution_count":85,"output_type":"execute_result","data":{"text/plain":"<keras.src.callbacks.History at 0x7c74e11d0070>"},"metadata":{}}]},{"cell_type":"code","source":"#model.save_pretrained(\"/kaggle/working/model_trained\", saved_model=True)\n","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:47:39.003003Z","iopub.execute_input":"2024-02-07T17:47:39.003387Z","iopub.status.idle":"2024-02-07T17:47:39.007252Z","shell.execute_reply.started":"2024-02-07T17:47:39.003360Z","shell.execute_reply":"2024-02-07T17:47:39.006371Z"},"trusted":true},"execution_count":86,"outputs":[]},{"cell_type":"markdown","source":"## 6. Evaluation","metadata":{}},{"cell_type":"code","source":"preds = model.predict(tf_test_dataset)[\"logits\"]\n\ny_pred = np.argmax(preds, axis=1)\nprint(preds.shape, y_pred.shape)\n\ny_pred\n\n#y_true = np.concatenate([y for x, y in tf_test_dataset], axis=0)\n# https://stackoverflow.com/questions/56226621/how-to-extract-data-labels-back-from-tensorflow-dataset","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:47:39.008525Z","iopub.execute_input":"2024-02-07T17:47:39.009205Z","iopub.status.idle":"2024-02-07T17:51:20.348390Z","shell.execute_reply.started":"2024-02-07T17:47:39.009171Z","shell.execute_reply":"2024-02-07T17:51:20.347443Z"},"trusted":true},"execution_count":87,"outputs":[{"name":"stdout","text":"451/451 [==============================] - 221s 486ms/step\n(11267, 2) (11267,)\n","output_type":"stream"},{"execution_count":87,"output_type":"execute_result","data":{"text/plain":"array([1, 0, 0, ..., 1, 1, 0])"},"metadata":{}}]},{"cell_type":"code","source":"def get_probabilities(input_text):\n    logits_pred = model.predict(input_text)['logits']\n    probs = tf.nn.sigmoid(logits_pred)\n    class_1_probability = probs[:, 1].numpy()\n    return class_1_probability","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:51:20.349613Z","iopub.execute_input":"2024-02-07T17:51:20.349921Z","iopub.status.idle":"2024-02-07T17:51:20.355158Z","shell.execute_reply.started":"2024-02-07T17:51:20.349892Z","shell.execute_reply":"2024-02-07T17:51:20.354154Z"},"trusted":true},"execution_count":88,"outputs":[]},{"cell_type":"code","source":"y_prob = get_probabilities(tf_test_dataset)\ny_prob","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:51:20.356452Z","iopub.execute_input":"2024-02-07T17:51:20.356843Z","iopub.status.idle":"2024-02-07T17:54:59.830689Z","shell.execute_reply.started":"2024-02-07T17:51:20.356797Z","shell.execute_reply":"2024-02-07T17:54:59.829525Z"},"trusted":true},"execution_count":89,"outputs":[{"name":"stdout","text":"451/451 [==============================] - 219s 486ms/step\n","output_type":"stream"},{"execution_count":89,"output_type":"execute_result","data":{"text/plain":"array([0.9966794 , 0.01150257, 0.01455727, ..., 0.99643433, 0.99624926,\n       0.03235682], dtype=float32)"},"metadata":{}}]},{"cell_type":"code","source":"y_true = np.concatenate([y for x, y in tf_test_dataset], axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:54:59.831848Z","iopub.execute_input":"2024-02-07T17:54:59.832147Z","iopub.status.idle":"2024-02-07T17:55:02.179651Z","shell.execute_reply.started":"2024-02-07T17:54:59.832104Z","shell.execute_reply":"2024-02-07T17:55:02.178681Z"},"trusted":true},"execution_count":90,"outputs":[]},{"cell_type":"code","source":"def evaluate_model(y_true, y_pred):\n  print(ConfusionMatrixDisplay.from_predictions(y_true, y_pred))\n  print(classification_report(y_true, y_pred))\n  print('F1 score:', f1_score(y_true, y_pred))","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.181096Z","iopub.execute_input":"2024-02-07T17:55:02.181519Z","iopub.status.idle":"2024-02-07T17:55:02.186565Z","shell.execute_reply.started":"2024-02-07T17:55:02.181485Z","shell.execute_reply":"2024-02-07T17:55:02.185529Z"},"trusted":true},"execution_count":91,"outputs":[]},{"cell_type":"code","source":"evaluate_model(y_true=y_true, y_pred=y_pred)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.187803Z","iopub.execute_input":"2024-02-07T17:55:02.188185Z","iopub.status.idle":"2024-02-07T17:55:02.500352Z","shell.execute_reply.started":"2024-02-07T17:55:02.188150Z","shell.execute_reply":"2024-02-07T17:55:02.499174Z"},"trusted":true},"execution_count":92,"outputs":[{"name":"stdout","text":"<sklearn.metrics._plot.confusion_matrix.ConfusionMatrixDisplay object at 0x7c74cc328730>\n              precision    recall  f1-score   support\n\n           0       1.00      0.99      1.00      7613\n           1       0.99      0.99      0.99      3654\n\n    accuracy                           0.99     11267\n   macro avg       0.99      0.99      0.99     11267\nweighted avg       0.99      0.99      0.99     11267\n\nF1 score: 0.9908457439540921\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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"},"metadata":{}}]},{"cell_type":"markdown","source":"## 7. Submitting predictions on test set","metadata":{}},{"cell_type":"code","source":"test_essays\n","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.501599Z","iopub.execute_input":"2024-02-07T17:55:02.501910Z","iopub.status.idle":"2024-02-07T17:55:02.513693Z","shell.execute_reply.started":"2024-02-07T17:55:02.501884Z","shell.execute_reply":"2024-02-07T17:55:02.512625Z"},"trusted":true},"execution_count":93,"outputs":[{"execution_count":93,"output_type":"execute_result","data":{"text/plain":"         id  prompt_id          text\n0  0000aaaa          2  Aaa bbb ccc.\n1  1111bbbb          3  Bbb ccc ddd.\n2  2222cccc          4  CCC ddd eee.","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>prompt_id</th>\n      <th>text</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0000aaaa</td>\n      <td>2</td>\n      <td>Aaa bbb ccc.</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1111bbbb</td>\n      <td>3</td>\n      <td>Bbb ccc ddd.</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2222cccc</td>\n      <td>4</td>\n      <td>CCC ddd eee.</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"test_essays['text'] = test_essays['text'].map(clean_text)\n","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.516021Z","iopub.execute_input":"2024-02-07T17:55:02.516980Z","iopub.status.idle":"2024-02-07T17:55:02.537197Z","shell.execute_reply.started":"2024-02-07T17:55:02.516927Z","shell.execute_reply":"2024-02-07T17:55:02.535910Z"},"trusted":true},"execution_count":94,"outputs":[]},{"cell_type":"code","source":"raw_final_ds = datasets.Dataset.from_pandas(test_essays)\nraw_final_ds","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.538476Z","iopub.execute_input":"2024-02-07T17:55:02.538853Z","iopub.status.idle":"2024-02-07T17:55:02.556050Z","shell.execute_reply.started":"2024-02-07T17:55:02.538825Z","shell.execute_reply":"2024-02-07T17:55:02.554954Z"},"trusted":true},"execution_count":95,"outputs":[{"execution_count":95,"output_type":"execute_result","data":{"text/plain":"Dataset({\n    features: ['id', 'prompt_id', 'text'],\n    num_rows: 3\n})"},"metadata":{}}]},{"cell_type":"code","source":"tokenized_test_dataset = raw_final_ds.map(tokenize_and_split, batched=True)\ntokenized_test_dataset","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.557634Z","iopub.execute_input":"2024-02-07T17:55:02.558575Z","iopub.status.idle":"2024-02-07T17:55:02.611994Z","shell.execute_reply.started":"2024-02-07T17:55:02.558522Z","shell.execute_reply":"2024-02-07T17:55:02.610964Z"},"trusted":true},"execution_count":96,"outputs":[{"output_type":"display_data","data":{"text/plain":"Map:   0%|          | 0/3 [00:00<?, ? examples/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"2935bcca138c4ede9876e51cb63fd1d5"}},"metadata":{}},{"execution_count":96,"output_type":"execute_result","data":{"text/plain":"Dataset({\n    features: ['id', 'prompt_id', 'text', 'input_ids', 'attention_mask'],\n    num_rows: 3\n})"},"metadata":{}}]},{"cell_type":"code","source":"tf_final_dataset = tokenized_test_dataset.to_tf_dataset(\n    columns=[\"attention_mask\", \"input_ids\"],\n    #label_cols=[\"target\"],\n    shuffle=False,\n    collate_fn=data_collator,\n    batch_size=batch_size,\n)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.613469Z","iopub.execute_input":"2024-02-07T17:55:02.613883Z","iopub.status.idle":"2024-02-07T17:55:02.683005Z","shell.execute_reply.started":"2024-02-07T17:55:02.613845Z","shell.execute_reply":"2024-02-07T17:55:02.682161Z"},"trusted":true},"execution_count":97,"outputs":[]},{"cell_type":"code","source":"class_1_final_probability = get_probabilities(tf_final_dataset)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:02.684201Z","iopub.execute_input":"2024-02-07T17:55:02.684505Z","iopub.status.idle":"2024-02-07T17:55:04.305151Z","shell.execute_reply.started":"2024-02-07T17:55:02.684479Z","shell.execute_reply":"2024-02-07T17:55:04.304117Z"},"trusted":true},"execution_count":98,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 2s 2s/step\n","output_type":"stream"}]},{"cell_type":"code","source":"sample_submission[\"generated\"] = class_1_final_probability","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:04.306598Z","iopub.execute_input":"2024-02-07T17:55:04.306963Z","iopub.status.idle":"2024-02-07T17:55:04.311697Z","shell.execute_reply.started":"2024-02-07T17:55:04.306929Z","shell.execute_reply":"2024-02-07T17:55:04.310770Z"},"trusted":true},"execution_count":99,"outputs":[]},{"cell_type":"code","source":"sample_submission.to_csv(\"/kaggle/working/submission.csv\", index=False)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:04.313079Z","iopub.execute_input":"2024-02-07T17:55:04.313775Z","iopub.status.idle":"2024-02-07T17:55:04.334285Z","shell.execute_reply.started":"2024-02-07T17:55:04.313692Z","shell.execute_reply":"2024-02-07T17:55:04.333453Z"},"trusted":true},"execution_count":100,"outputs":[]},{"cell_type":"markdown","source":"## 8. Predict one sentence","metadata":{}},{"cell_type":"code","source":"# sequence_text = input your own text\nsequence_text = raw_ds['test']['text'][15]\nprint(f\"Label: {raw_ds['test']['generated'][15]}\")\nprint(f\"Text:\\n {sequence_text}\")","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:04.335269Z","iopub.execute_input":"2024-02-07T17:55:04.335504Z","iopub.status.idle":"2024-02-07T17:55:04.471992Z","shell.execute_reply.started":"2024-02-07T17:55:04.335477Z","shell.execute_reply":"2024-02-07T17:55:04.471135Z"},"trusted":true},"execution_count":101,"outputs":[{"name":"stdout","text":"Label: 0\nText:\n to principal students should not be able to have or do community service if they where not convicted of a crime they committed in school of on school grounds community service is understandable to me but its not fair to have students help out others if they werent convicted of bad behavior an example to that u cant order a student to do community service for himher for picking up trash another student dropped in the hallway in addition to that students have the rite to do community service if not given to himher but if community service is given then heshe should be punished for there actions but what did they do to deserve community service some students should be punished for bad behavior talking back even just being plan out disrespectful to one another but what they shouldnt have community service for is helping out another person when they are caught in the act of someone else being mean to himher also being a good character to the school classmates teachers staff and custodians if someone is not so you can show that person how to be respectful an how some should act at all times maybe staff and teachers like to punish us because of a ruff past they had growing up as a child thats not rite so they want to give us community service make us there little pets but that shouldnt be the answer to none of there problems sencirley studentname\n","output_type":"stream"}]},{"cell_type":"code","source":"sequence = sequence_text\nmodel_input = tokenizer(sequence, max_length=512, padding=True, truncation=True, return_tensors='tf')\nmodel_input = dict(model_input)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:04.473129Z","iopub.execute_input":"2024-02-07T17:55:04.473403Z","iopub.status.idle":"2024-02-07T17:55:04.478948Z","shell.execute_reply.started":"2024-02-07T17:55:04.473379Z","shell.execute_reply":"2024-02-07T17:55:04.478053Z"},"trusted":true},"execution_count":102,"outputs":[]},{"cell_type":"code","source":"get_probabilities(model_input)","metadata":{"execution":{"iopub.status.busy":"2024-02-07T17:55:04.479877Z","iopub.execute_input":"2024-02-07T17:55:04.480184Z","iopub.status.idle":"2024-02-07T17:55:06.157918Z","shell.execute_reply.started":"2024-02-07T17:55:04.480160Z","shell.execute_reply":"2024-02-07T17:55:06.157147Z"},"trusted":true},"execution_count":103,"outputs":[{"name":"stdout","text":"1/1 [==============================] - 2s 2s/step\n","output_type":"stream"},{"execution_count":103,"output_type":"execute_result","data":{"text/plain":"array([0.01741369], dtype=float32)"},"metadata":{}}]}]}