{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "519048d9-fd5b-4115-9439-60995405dfb9", "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "d59a42cc-733c-4a71-8ef9-698ab3f1b163", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import re\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from collections import Counter" ] }, { "cell_type": "code", "execution_count": 3, "id": "5477a796-7bde-43c4-9e88-6016f7597463", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[nltk_data] Downloading package stopwords to /Users/Pi/nltk_data...\n", "[nltk_data] Package stopwords is already up-to-date!\n" ] } ], "source": [ "import nltk\n", "from nltk.corpus import stopwords\n", "nltk.download('stopwords')\n", "# Tokenization and Stopword removal\n", "stop_words = set(stopwords.words('english'))" ] }, { "cell_type": "code", "execution_count": 4, "id": "57a774b8-02cc-4be1-bfd4-a083efa1e27f", "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split, learning_curve\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.metrics import classification_report, confusion_matrix\n" ] }, { "cell_type": "markdown", "id": "96e7dac5-f335-463f-9f15-94c7ea22404e", "metadata": {}, "source": [ "# 1. Data Cleaning and Preprocessing" ] }, { "cell_type": "markdown", "id": "79d1824d-7251-450a-a8e3-b3c84a55797f", "metadata": {}, "source": [ "# Load dataset " ] }, { "cell_type": "code", "execution_count": 5, "id": "eca0d147-453f-4223-9665-b30235699960", "metadata": {}, "outputs": [], "source": [ "# Load the dataset\n", "df = pd.read_csv(\"dataset/Kaggle_Mental_Health_Conversations_train.csv\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "68571d93-c7a7-46b9-81f5-aea6a2ccf909", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 3512 entries, 0 to 3511\n", "Data columns (total 2 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Context 3512 non-null object\n", " 1 Response 3508 non-null object\n", "dtypes: object(2)\n", "memory usage: 55.0+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 7, "id": "2ef75f44-cf14-44b3-b4a2-7877a5c067d5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ContextResponse
count35123508
unique9952479
topI have so many issues to address. I have a his...It's normal to feel a little anxiety--after al...
freq943
\n", "
" ], "text/plain": [ " Context \\\n", "count 3512 \n", "unique 995 \n", "top I have so many issues to address. I have a his... \n", "freq 94 \n", "\n", " Response \n", "count 3508 \n", "unique 2479 \n", "top It's normal to feel a little anxiety--after al... \n", "freq 3 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "code", "execution_count": 8, "id": "550ef6d6-f35c-4f34-ad60-a3956d44a1d9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Context 0\n", "Response 4\n", "dtype: int64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.isnull().sum()" ] }, { "cell_type": "markdown", "id": "d2aaff7e-37fb-4ab7-ac12-0d71d979b3a1", "metadata": {}, "source": [ "There are total 3508 rows, and among 3508 responses, there are 4 empty responses. It is fine to remove them. You can also make the response to be \"unknown\". " ] }, { "cell_type": "code", "execution_count": 9, "id": "5bc876e5-1367-4fd5-9b3f-0daad754ff64", "metadata": {}, "outputs": [], "source": [ "# Drop missing or null entries\n", "df.dropna(subset=[\"Context\", \"Response\"], inplace=True)\n", "df.reset_index(drop=True, inplace=True)" ] }, { "cell_type": "code", "execution_count": 10, "id": "b33c1b3c-b54b-45c2-ac1c-1a543890277f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unique context ratio: 28.36%\n", "Unique response ratio: 70.67%\n" ] } ], "source": [ "repeated_context = df.Context.nunique()/len(df) * 100 \n", "repeated_response = df.Response.nunique()/len(df) * 100\n", "\n", "print(f\"Unique context ratio: {repeated_context:.2f}%\")\n", "print(f\"Unique response ratio: {repeated_response:.2f}%\")" ] }, { "cell_type": "markdown", "id": "d19ea384-680c-429b-9172-71255d35f26c", "metadata": {}, "source": [ "There are repeated contexts and repeated responses." ] }, { "cell_type": "markdown", "id": "65027ce2-f590-4207-9719-b9bae2c283e5", "metadata": {}, "source": [ "# Clean text " ] }, { "cell_type": "code", "execution_count": 11, "id": "868fc2fe-6eaf-473c-9082-2e263a6acb75", "metadata": {}, "outputs": [], "source": [ "def clean_text(text):\n", " text = re.sub(r\"http\\S+|www\\S+|https\\S+\", '', text, flags=re.MULTILINE) # remove URLs\n", " text = re.sub(r'\\@w+|\\#','', text) # remove @mentions and hashtags\n", " text = re.sub(r'[^A-Za-z\\s]', '', text) # remove non-alphabetic characters\n", " text = text.lower() # convert to lowercase\n", " return text\n", "\n", "# Apply cleaning\n", "df['clean_context'] = df['Context'].apply(clean_text)\n", "df['clean_response'] = df['Response'].fillna(\"\").apply(clean_text)" ] }, { "cell_type": "markdown", "id": "7caeb03d-4a47-41d9-b533-ebf116124366", "metadata": {}, "source": [ "# Check the length of text" ] }, { "cell_type": "code", "execution_count": 12, "id": "93882073-413e-41ff-8781-461aaaa2c057", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Context length stats:\n", " count 3508.000000\n", "mean 55.006271\n", "std 48.169912\n", "min 4.000000\n", "25% 28.000000\n", "50% 45.000000\n", "75% 68.000000\n", "max 526.000000\n", "Name: context_len, dtype: float64\n", "\n", "Response length stats:\n", " count 3508.000000\n", "mean 176.625428\n", "std 120.175634\n", "min 0.000000\n", "25% 93.000000\n", "50% 144.000000\n", "75% 221.000000\n", "max 939.000000\n", "Name: response_len, dtype: float64\n", "\n", "Combined message length stats:\n", " count 3508.000000\n", "mean 231.631699\n", "std 133.446614\n", "min 5.000000\n", "25% 137.000000\n", "50% 201.000000\n", "75% 287.000000\n", "max 996.000000\n", "dtype: float64\n" ] } ], "source": [ "# # Tokenize for basic statistics\n", "df['context_len'] = df['clean_context'].apply(lambda x: len(str(x).split()))\n", "df['response_len'] = df['clean_response'].apply(lambda x: len(str(x).split()))\n", "\n", "# Descriptive statistics\n", "context_stats = df['context_len'].describe()\n", "response_stats = df['response_len'].describe()\n", "combined_stats = (df['context_len'] + df['response_len']).describe()\n", "\n", "print(\"Context length stats:\\n\", context_stats)\n", "print(\"\\nResponse length stats:\\n\", response_stats)\n", "print(\"\\nCombined message length stats:\\n\", combined_stats)" ] }, { "cell_type": "code", "execution_count": 13, "id": "ebe22297-57a7-49da-93dd-e5833a8570e2", "metadata": {}, "outputs": [ { "data": { "image/png": "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HMTFpT5hzpw5+cO1HCBE0iiSgaNHj84J2QgKa4oEUfyiHEm/CMrq8+tyPFc8//z583OAG4mmCHjGjBlT52VrcQl8jJgYNmxYDgZjJG85sfrnP/85J53CUUcdlX73u9/lfkeiNZKOkZR64YUX0mc/+9n8q3QE0tHP4447LiduI3k5ceLEHMxFEBciQRtB0Ze//OX86/qf/vSn9K1vfSsnWI855phKv+LX9Ysuuijts88+eb+R0IzbpY8hgsIIjOO5/ud//ietueaaeWRxPH7WrFk5+fhJxSVbkVSN549kcDxnHEd8qXjqqadqJRcjORvtttlmm/wl4d57700//vGPczB89NFH5zZxrHFcjz/+eF630UYbpT/84Q/5OWqK43njjTfyF5foQ10iKI0vFNE23lfxmh1wwAE5qPsko1XjfRzvy7gELQK+usydOzcH1PE+juA6gvUING+55Za8PdbH6xTHuP/+++d+hc0337yyj3h/xusVr2W8XhGALk8kPuN4470S74XLL788v1enTZuWfwipr/r0bWkxmii+tMRrE18I42/7ggsuyH8Dt956a622ERSXX8M4r/HDTATe8XcW738AaC3KSaZImJXFD9vbb799HlAQMUIkWiOJFD9qx1Vf8dlbTlzFZ2l8xkbMGfFw/CAcSdFIjtaMryIpGnF0xDqRWIu4NeKISN6GSMxGfHn//ffnz98tttgi3X333TkxFnFi/OhbU8SxEbNEHBo/HF9xxRV58MHMmTNzMq4+8W9DYukVFXFjHFc875FHHplLWEXcE8cTCc2lSxfU57gifo3XM66miqR5vL7xOpZ/0C6L+LN8buK5Q8S0NUUCM5KOcR7jvP385z/Pye2ImT+JGNwQcWjEwRtssMEKff+K+C5eoygTF69XDDIINY8zzl+8N+Mcx/ZlDRqoebzRJo730Ucfza/vf/7znwb/OF+fvtUU3yM///nP5+8hccxxLiMujfdGvEfLf1NlMVo53ovxPTIG0MTfTQyOiNcGqEMJaFHOOOOM+Em+9Oabb9a5fciQIaUvfOELlfv77rtvXrc8o0ePLg0YMKD073//u9b6gw46qNSjR4/Se++9l+/ff//9+bnXWWedyrqPE+2POeaY0ttvv13q3Llz6Ve/+lVef/vtt5fatWtX+sc//vGRY6quri6tv/76pREjRuR/l8Vzrr322qXddtutsi76F/tflqeeeirv++abb15uP+s6nnj+ONay2bNnlzp27Fjab7/9arU788wz83OMGjWqsu6cc84pdevWrfTiiy/Wavvd73631KFDh9LMmTOX2584h8s7b1VVVaWePXuWjjjiiFrro4/xmtRcH/2K/p199tm12m655ZalYcOGVe7//ve/z+0uu+yyyroPP/ywtMsuu+T148aNq6yP17yuj5BXX301r+/du3c+52V/+MMf8vo//elPyz3u8ntseedr6NChpU996lOV+9GveEw8d7j11lvz/SeeeGKZ+4j3WrSJ997Syq9XnKu6tg0ePPgjx7vqqquW/vWvf1XWP/bYY3n9SSedVOuc1vzbXNY+l9e38t9K2dNPP53v//d//3etdt/+9rfz+vvuu6+yLp4j1j300EOVdXPnzi116dKldPLJJy/jlQKAYivHAffee2/+DH3ttddKv/vd70qf/vSn82dc3C/bddddS5tttllp4cKFlXURa37+85/PsWfNWGPvvfde7vOW44Xjjjuu1r7icRHzluPa2267Lbc799xzaz3+K1/5So6FX3755cq6aBePrbnumWeeyeuvvPLKese/DYml61KOby6++OJltomYvn379qU///nPtdZfe+21+bEPP/xwg49rn332KXXt2rX0+uuvV9a99NJLOf5eOu6MOLtm7L10rPTNb36z1vr9998/x6cfJ/YZ+/647xbLi/Hq8/0rXtua8WtNsT5e2+nTp9e5rWaMWD7eL3/5y7Xafetb38rr43WueU5rxvPL2ufy+hbxZM3X/cQTT8xta74P4ntKvM/WWmut/F2iZoy/8cYblxYtWlRpe/nll+f106ZNW+7rBW2V8gjQysUow3/961/LvDQ9PqdjZEGMsIx/x6U15SVGGsYvoEtfahUj9OIS8IaIUQ7xy3n8alseiRm/ytY1edTTTz+dSxrEL9ExcqDcn7gMKi6heeihhyolBuL44pfZGPlZl/JI2hjRsLxLomoeTxxzPF+MlI2RoeUyCpMnT84jJ2KEQE0xgndpMYo4LsuL4675mg4fPjyPGohj+CTi1/0YKfy1r32t1v6jtmuMpo3RHEuLURk1Rf/i+MpidEiMgo06XWXxS3jNkcb1deCBB9Ya2VK+RLHm862oGKkdo1qXJd4TIUZTx+WNK6o8Ark+YoROjNopi5EfcR5iwram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uzfffLPW+qeeeqp0wAEHVPo+ePDg0n/913+VJk+enLcvWrQoH8vQoUNLq6++en4t4t9XX311ZR9///vfS9/85jfzca+yyiqlXr16lb74xS+W7r333lrP9cc//rG0+eab5zZrrbVW6Yc//GHpF7/4Re7Xq6++Wmm3ZMmS0umnn55fn1VXXbW0yy67lF544YXcx6OOOqrWPquqqkpjx44trbfeeqXOnTuX+vTpU/r85z9f+tGPflT64IMPlvuafOELX8jPXdcS56XmORkxYkSpR48eue9xnIcffnjpySefrLQZNWpUfm2W9brXFOfg4IMPzq9n7DP29fDDD+d2N954Y63X4bjjjit9+tOfLrVr166yn3it4t8XX3zxR54v1sdzLk/5PVZe4r0YzxHv4fPOO680d+7cjzxm3Lhxtc7TX//619LXvva10pprrpnfN3379i196UtfqvWahEceeaQ0bNiwfG5q9m1Zr1d5W7wPy2oe749//OP89xPPueOOO5aeeeaZOv9u11lnnfycW2yxRenuu+/+yD6X17e6ztnixYvz3/7aa6+dX6/oQ7zvlv5/QTzH3nvvXed7LRYAaInKccATTzzxkW0ffvhhjo1iidglvPLKK6XDDjssx3LxufmZz3wmxwm/+93vKo8799xzS1tvvXWpZ8+eOd6LODvikJrxWzleiP3tvvvupa5du5b69euXP6vjeZeOCU866aTSwIED83Ouv/76OXaorq6uV9wcn+HxfPWNf+sbSy9LOb5Z1vKrX/0qt4vXI2LmIUOG5P1/6lOfyvFLxCU1v2vU57jKom9bbrlljoHivP385z8vnXzyyTnOrelvf/tbjg/j/MT+y/tZ1veKpePFZYn91DzWOK/x3WDkyJH5PbL0ua0rlqrv969zzjknv//at29fq2/L+/60dDxdPt7nn3++9JWvfCW/J+I8HHvssaX333+/1mPfe++90ujRo3OMH+3ivRCxdV0x+rL6Vtc5i7+BeO74e4nzFH87EydOrNVmWd8jy++1OD/AR7WL/zR34higJYsRjnHJfoyKjV+kW5u4TC1Grf7lL3/JIwYAANq6uJIqRt/WVX6AxhUje6dPn17nHAIArZmx6gANEDW6llauJxqX0bW244vL0qImVlxGF2UYAABgZcWikai94447WkWcDdBQatoCNEDUGY26aFEbNWqIxejT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AAAACkTSFgAAAACgQCRtAQAAAAAKRNIWAAAAAKBAmjVpe+aZZ6Z27drVWjbaaKPK9oULF6Zjjjkm9e7dO6222mpp5MiRac6cObX2MXPmzLT33nunrl27pr59+6ZTTjklLVmypBmOBgAAAADgk+uYmtmQIUPSvffeW7nfseP/demkk05Kt99+e7r55ptTjx490rHHHpsOOOCA9PDDD+ftH374YU7Y9u/fPz3yyCNp1qxZ6bDDDkudOnVK559/frMcDwAAAABAi07aRpI2kq5Le/fdd9N1112XJkyYkHbZZZe8bty4cWnjjTdOjz76aNp2223TPffck55//vmc9O3Xr1/aYost0jnnnJNOPfXUPIq3c+fOzXBEAAAAAAAtuKbtSy+9lAYOHJjWWWeddMghh+RyB2Hq1Klp8eLFafjw4ZW2UTphzTXXTFOmTMn343azzTbLCduyESNGpHnz5qXp06cv8zkXLVqU29RcAAAAAABSW0/abrPNNmn8+PHprrvuStdcc0169dVX04477piqqqrS7Nmz80jZnj171npMJGhjW4jbmgnb8vbytmW54IILcrmF8jJo0KAmOT4AAAAAgBZVHmHPPfes/HvzzTfPSdzBgwenm266Ka266qpN9rxjx45NY8aMqdyPkbYStwAAAABAETR7eYSaYlTtBhtskF5++eVc5/aDDz5I77zzTq02c+bMqdTAjdu4v/T28rZl6dKlS+revXutBQAAAACgCAqVtJ0/f3565ZVX0oABA9KwYcNSp06d0uTJkyvbZ8yYkWvebrfddvl+3E6bNi3NnTu30mbSpEk5CbvJJps0yzEAAAAAALTYpO23v/3t9OCDD6Z//OMf6ZFHHkn7779/6tChQ/ra176Wa82OHj06lzG4//7788Rk3/jGN3Kidtttt82P33333XNy9tBDD03PPPNMuvvuu9Npp52WjjnmmDyaFgAAmlLMyxBlvspXb0Wseuedd1a2L1y4MMemvXv3TquttloaOXLkR64Ui0EJe++9d+ratWvq27dvOuWUU9KSJUua4WgAACiKZq1p+69//SsnaN9666306U9/Ou2www7p0Ucfzf8Ol156aWrfvn0ObhctWpRGjBiRrr766srjI8E7ceLEdPTRR+cAuVu3bmnUqFHp7LPPbsajAgCgrVhjjTXShRdemNZff/1UKpXS9ddfn/bd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fetbacCAAXk0QgS3r7zySpo0aVIesbDvvvs2Xk8BAKAJiGkBAGgVNW0jmI36XzNmzEh77bVX+uUvf5lv27f/fzngtddeO40fPz6ttdZajd1fAABoFGJaAABa1Ujba665Jh188MHpn//8Z7rtttvSl770pUpwW9a3b9903XXXNVY/AQCgUTVGTHvBBRekz33uc2n11VfPbffbb7+cBK5p4cKF6Zhjjkm9e/dOq622Who5cmSaM2dOrTYzZ85Me++9d+ratWvezymnnJKWLFnSyEcMAECrHmn70ksvfWybzp07p1GjRq3I7gEAoMk1Rkz74IMP5oRsJG4jyfq9730v7b777un5559P3bp1y21OOumkdPvtt+eauT169EjHHntsrqH78MMP5+0ffvhhTtj2798/PfLII7mGbtTS7dSpUzr//PMb8YgBAGjVSdu4jCxGCXz1q1+ttT4C0ffee0+ylgabVzU/9eo7sF5to97c9GemNnmfAIDWrTFi2rvuuqvW/SinECNlp06dmnbaaaf07rvv5pG6EyZMSLvsskvleTfeeOP06KOPpm233Tbdc889Ocl77733pn79+qUtttginXPOOenUU09NZ555Zk4cAwDQtqxQ0jYuA/vJT37ykfURoB555JGStjRYqbo67XbNG/VqO+no+iV3AQBWdkwbSdrQq1evfBvJ28WLF6fhw4dX2my00UZpzTXXTFOmTMlJ27jdbLPNcsK2bMSIEenoo49O06dPT1tuueVHnmfRokV5KZs3b16D+woAQCuraRs1t2JihqUNHjw4bwMAgKJr7Ji2uro6nXjiiWn77bdPm266aV43e/bsPFK2Z8+etdpGgja2ldvUTNiWt5e3LSvhHKUWysugQYMa3F8AAFpZ0jZGHzz77LMfWf/MM8/kCRYAAKDoGjumjdq2zz33XLrxxhtTUxs7dmwe1VteXnvttSZ/TgAACl4e4Wtf+1o6/vjj8yy5UaurPAnDCSeckA466KDG7iMAADS6xoxpY3KxiRMnpoceeiitscYalfUxudgHH3yQ3nnnnVqjbefMmZO3lds8/vjjtfYX28vb6tKlS5e8AADQOq3QSNuYGGGbbbZJu+66a1p11VXzErPkxuQKZrgFAKAlaIyYtlQq5YTtrbfemu67776PlFsYNmxY6tSpU5o8eXJl3YwZM3L5he222y7fj9tp06aluXPnVtpMmjQpde/ePW2yySaNdrwAALTykbZRl+u3v/1tDnTj8rEIcGPyhKj/BQAALUFjxLRREmHChAnpD3/4Qx6xW65BG3VmY39xO3r06DRmzJg8OVkkYo877ricqI1JyEIkiiM5e+ihh6aLLroo7+O0007L+zaaFgCgbVqhpG3ZBhtskBcAAGipPklMe8011+TbnXfeudb6cePGpcMPPzz/+9JLL03t27dPI0eOTIsWLUojRoxIV199daVthw4dcmmFo48+Oidzu3XrlkaNGpXOPvvsT3RcAAC0saTthx9+mMaPH58v84rLuGKm3Jri0jAAACiyxohpozzCx1lllVXSVVddlZdlidG9d9xxRz17Ds1jyNDN0qxZs+rVdsCAAWn6M9OavE8A0FqtUNI2JmeIAHfvvfdOm266aWrXrl3j9wwAAJqQmBYaJhK2+195fL3a3nrcFU3eHwBozVYoaXvjjTemm266Ke21116N3yMAAFgJxLQAABRV+xWdtGG99dZr/N4AAMBKIqYFAKBVJW1PPvnkdPnll9erhhcAABSRmBYAgFZVHuEvf/lLuv/++9Odd96ZhgwZkjp16lRr+y233NJY/QMAgCYhpgUAoFUlbXv27Jn233//xu8NAACsJGJaAABaVdJ23Lhxjd8TAABYicS0AAC0qpq2YcmSJenee+9NP/nJT1JVVVVe98Ybb6T58+c3Zv8AAKDJiGkBAGg1I23/+c9/pj322CPNnDkzLVq0KO22225p9dVXTz/84Q/z/WuvvbbxewoAAI1ITAsAQKsaaXvCCSekrbbaKv3nP/9Jq666amV91ASbPHlyY/YPAACahJgWAIBWNdL2z3/+c3rkkUdS586da61fa6210uuvv95YfQMAgCYjpgUAoFWNtK2urk4ffvjhR9b/61//ypeU1dc111yTNt9889S9e/e8bLfddunOO++sbF+4cGE65phjUu/evdNqq62WRo4cmebMmVNrH3E529577526du2a+vbtm0455ZRcmwwAAFZGTAsAAIVI2u6+++7psssuq9xv165dnqzhjDPOSHvttVe997PGGmukCy+8ME2dOjU9+eSTaZdddkn77rtvmj59et5+0kknpT/96U/p5ptvTg8++GCeFOKAAw6oPD6C7EjYfvDBB3mUxPXXX5/Gjx+ffvCDH6zIYQEA0IY0VkwLLVVMvterb596L+XJ+gCAgpZH+PGPf5xGjBiRNtlkkzwa9uCDD04vvfRS6tOnT/rNb35T7/3ss88+te6fd955efTto48+mhO61113XZowYUJO5oZx48aljTfeOG/fdttt0z333JOef/75PONvv3790hZbbJHOOeecdOqpp6YzzzzzI5e6AQBAY8e00JJHm+9/5fH1bj/+sHOatD8AwCdM2kZC9Zlnnkk33nhjevbZZ/OIhNGjR6dDDjmk1iQODRGjZmNE7YIFC3KZhBh9u3jx4jR8+PBKm4022iitueaaacqUKTlpG7ebbbZZTtiWReB99NFH59G6W265ZZ3PFbMBx1I2b968FeozAAAtV1PEtDSOIUM3S7NmzapXW6M/AYDWqOMKP7Bjx/T1r3/9E3dg2rRpOUkboxuibu2tt96aRzs8/fTTeaRsz549a7WPBO3s2bPzv+O2ZsK2vL28bVkuuOCCdNZZZ33ivgMA0LI1VkxL44qEbX1HgBr9CQC0RiuUtP3lL3+53O2HHXZYvfe14YYb5gTtu+++m373u9+lUaNG5fq1TWns2LFpzJgxtUbaDho0qEmfEwCAYmnMmBYAAJo9aXvCCSfUuh9lDN577708MrZr164NCnDjMeutt17+97Bhw9ITTzyRLr/88nTggQfmCcbeeeedWqNt58yZk/r375//HbePP/54rf3F9vK2ZenSpUteAABouxozpgUAgMbUfkUe9J///KfWEvW/ZsyYkXbYYYdPPGlDFMOPerORwO3UqVOaPHlyZVs8x8yZM3M5hRC3UV5h7ty5lTaTJk1K3bt3zyUWAACgOWJaAABolpq2S1t//fXThRdemGuC/e1vf6t3mYI999wzTy4WEwhMmDAhPfDAA+nuu+9OPXr0yBNBRBmDXr165UTscccdlxO1MQlZ2H333XNy9tBDD00XXXRRrmN72mmnpWOOOcZIWgAAVkpMCwAAhU3a5p117JjeeOONerePEbJx2VlMNBBJ2s033zwnbHfbbbe8/dJLL03t27dPI0eOzKNvR4wYka6++urK4zt06JAmTpyYjj766JzM7datW66Je/bZZzfmYQEA0IY0NKYFAIBCJG3/+Mc/1rpfKpVy4vV///d/0/bbb1/v/Vx33XXL3b7KKqukq666Ki/LMnjw4HTHHXfU+zkBAKAxY1oAAChE0na//fardb9du3bp05/+dNpll13Sj3/848bqGwAANBkxLQAArSppG5OFAQBASyamBQCgqNo3dwcAAAAAAPiEI23HjBlT77aXXHLJijwFAAA0KTEtAACtKmn71FNP5WXx4sVpww03zOtefPHF1KFDh/TZz362Vl0wAAAoIjEtAACtKmm7zz77pNVXXz1df/316VOf+lRe95///Cd94xvfSDvuuGM6+eSTG7ufAADQqMS0AAC0qpq2MZvuBRdcUAluQ/z73HPPNdMuAAAtgpgWAIBWlbSdN29eevPNNz+yPtZVVVU1Rr8AAKBJiWkBAGhVSdv9998/XzZ2yy23pH/96195+f3vf59Gjx6dDjjggMbvJQAANDIxLQAAraqm7bXXXpu+/e1vp4MPPjhP3JB31LFjDnAvvvjixu4jAAA0OjEtAACtKmnbtWvXdPXVV+dg9pVXXsnr1l133dStW7fG7h8AADQJMS0AAK2qPELZrFmz8rL++uvn4LZUKjVezwAAYCUQ0wIA0CqStm+99Vbadddd0wYbbJD22muvHOSGuJTs5JNPbuw+AgBAoxPTAgDQqpK2J510UurUqVOaOXNmvqys7MADD0x33XVXY/YPAACahJgWAIBWVdP2nnvuSXfffXdaY401aq2PS8r++c9/NlbfAACgyYhpAQBoVSNtFyxYUGs0Qtnbb7+dunTp0hj9AgCAJiWmBQCgVSVtd9xxx/TLX/6ycr9du3apuro6XXTRRemLX/xiY/YPAACahJgWAIBWVR4hAtmYtOHJJ59MH3zwQfrOd76Tpk+fnkclPPzww43fSwAAaGRiWgAAWtVI20033TS9+OKLaYcddkj77rtvvrTsgAMOSE899VRad911G7+XAADQyMS0AAC0mpG2ixcvTnvssUe69tpr0/e///2m6RUAADQhMS0AAK1qpG2nTp3Ss88+2zS9AQCAlUBMCwBAqyuP8PWvfz1dd911jd8bAABYScS0AAC0qonIlixZkn7xi1+ke++9Nw0bNix169at1vZLLrmksfoHAABNQkwLAECrSNr+/e9/T2uttVZ67rnn0mc/+9m8LiZvqKldu3aN20MAAGhEYloAAFpV0nb99ddPs2bNSvfff3++f+CBB6Yrrrgi9evXr6n6BwAAjUpMCwBAq6ppWyqVat2/884704IFCxq7TwAA0GTEtAAAtMqJyJYV8AIAQEsjpgUAoEUnbaO219L1vdT7AgCgJRHTAgDQqmraxiiEww8/PHXp0iXfX7hwYTrqqKM+MtPuLbfc0ri9BACARiKmBQCgVSVtR40aVev+17/+9cbuDwAANCkxLQAArSppO27cuKbrCQAArARiWgAAWvVEZAAAAAAANC5JWwAAAACAApG0BQAAAAAoEElbAAAAAIACkbQFAIBP4KGHHkr77LNPGjhwYGrXrl267bbbam0//PDD8/qayx577FGrzdtvv50OOeSQ1L1799SzZ880evToNH/+/JV8JAAAFIWkLQAAfAILFixIQ4cOTVddddUy20SSdtasWZXlN7/5Ta3tkbCdPn16mjRpUpo4cWJOBB955JErofcAABRRx+buAAAAtGR77rlnXpanS5cuqX///nVue+GFF9Jdd92VnnjiibTVVlvldVdeeWXaa6+90o9+9KM8ghcAgLbFSFsAAGhiDzzwQOrbt2/acMMN09FHH53eeuutyrYpU6bkkgjlhG0YPnx4at++fXrssceaqccAADQnI20BAKAJRWmEAw44IK299trplVdeSd/73vfyyNxI1nbo0CHNnj07J3Rr6tixY+rVq1feVpdFixblpWzevHlNfhwAAKw8krYAANCEDjrooMq/N9tss7T55punddddN4++3XXXXVdonxdccEE666yzGrGXAAAUifIIAACwEq2zzjqpT58+6eWXX873o9bt3Llza7VZsmRJevvtt5dZB3fs2LHp3XffrSyvvfbaSuk7AAArh6QtAACsRP/6179yTdsBAwbk+9ttt11655130tSpUytt7rvvvlRdXZ222WabZU5s1r1791oLAACth/IIAADwCcyfP78yaja8+uqr6emnn841aWOJMgYjR47Mo2ajpu13vvOdtN5666URI0bk9htvvHGue3vEEUeka6+9Ni1evDgde+yxuazCwIEDm/HIAABoLkbaAgDAJ/Dkk0+mLbfcMi9hzJgx+d8/+MEP8kRjzz77bPryl7+cNthggzR69Og0bNiw9Oc//zmPli274YYb0kYbbZRr3O61115phx12SD/96U+b8agAAGhORtoCAMAnsPPOO6dSqbTM7XfffffH7iNG5E6YMKGRewYAQEtlpC0AAAAAQIFI2gIAAAAAFIikLQAAAABAgUjaAgAAAAAUiKQtAAAAAECBSNoCAAAAABSIpC0AAAAAQIFI2gIAAAAAFIikLQAAAABAgUjaAgAAAAAUiKQtAAAAAECBSNoCAAAAABSIpC0AAAAAQIFI2gIAAAAAFIikLQAAAABAgUjaAgAAAAAUiKQtAAAAAECBSNoCAAAAABSIpC0AAAAAQIFI2gIAAAAAFIikLQAAAABAgUjaAgAAAAAUiKQtAAAAAECBSNoCAAAAABSIpC0AAAAAQIFI2gIAAAAAFIikLQAAAABAgTRr0vaCCy5In/vc59Lqq6+e+vbtm/bbb780Y8aMWm0WLlyYjjnmmNS7d++02mqrpZEjR6Y5c+bUajNz5sy09957p65du+b9nHLKKWnJkiUr+WgAAAAAAFp40vbBBx/MCdlHH300TZo0KS1evDjtvvvuacGCBZU2J510UvrTn/6Ubr755tz+jTfeSAcccEBl+4cffpgTth988EF65JFH0vXXX5/Gjx+ffvCDHzTTUQEAAAAArLiOqRndddddte5HsjVGyk6dOjXttNNO6d13303XXXddmjBhQtpll11ym3HjxqWNN944J3q33XbbdM8996Tnn38+3Xvvvalfv35piy22SOecc0469dRT05lnnpk6d+7cTEcHAAAAANDCa9pGkjb06tUr30byNkbfDh8+vNJmo402SmuuuWaaMmVKvh+3m222WU7Ylo0YMSLNmzcvTZ8+vc7nWbRoUd5ecwEAAAAAKILCJG2rq6vTiSeemLbffvu06aab5nWzZ8/OI2V79uxZq20kaGNbuU3NhG15e3nbsmrp9ujRo7IMGjSoiY4KAAAAAKCFJm2jtu1zzz2XbrzxxiZ/rrFjx+ZRveXltddea/LnBAAAAAAofE3bsmOPPTZNnDgxPfTQQ2mNNdaorO/fv3+eYOydd96pNdp2zpw5eVu5zeOPP15rf7G9vK0uXbp0yQsAAAAAQNE060jbUqmUE7a33npruu+++9Laa69da/uwYcNSp06d0uTJkyvrZsyYkWbOnJm22267fD9up02blubOnVtpM2nSpNS9e/e0ySabrMSjAQAAAABo4SNtoyTChAkT0h/+8Ie0+uqrV2rQRp3ZVVddNd+OHj06jRkzJk9OFonY4447Lidqt91229x29913z8nZQw89NF100UV5H6eddlret9G0AAAAAEBL06xJ22uuuSbf7rzzzrXWjxs3Lh1++OH535deemlq3759GjlyZFq0aFEaMWJEuvrqqyttO3TokEsrHH300TmZ261btzRq1Kh09tlnr+SjAQAAAABo4UnbKI/wcVZZZZV01VVX5WVZBg8enO64445G7h0AAAAAQBuraQsAAAAAQG2StgAAAAAABSJpCwAAAABQIM1a0xYAAIC2bcjQzdKsWbPq3X7AgAFp+jPTmrRPANDcJG0BAABoNpGw3f/K4+vd/tbjrmjS/gBAESiPAAAAAABQIJK2AAAAAAAFImkLAAAAAFAgkrYAAAAAAAUiaQsAAAAAUCCStgAAAAAABSJpCwAAAABQIJK2AAAAAAAFImkLAAAAAFAgkrYAAAAAAAUiaQsAAAAAUCCStgAAAAAABSJpCwAAAABQIB2buwMAAAC0LlVVValX3z71bgsA1CZpCwAAQKOqrq5O+195fL3ajj/snCbvDwC0NMojAADAJ/DQQw+lffbZJw0cODC1a9cu3XbbbbW2l0ql9IMf/CANGDAgrbrqqmn48OHppZdeqtXm7bffToccckjq3r176tmzZxo9enSaP3/+Sj4SAACKQtIWAAA+gQULFqShQ4emq666qs7tF110UbriiivStddemx577LHUrVu3NGLEiLRw4cJKm0jYTp8+PU2aNClNnDgxJ4KPPPLIlXgUAAAUifIIAADwCey55555qUuMsr3sssvSaaedlvbdd9+87pe//GXq169fHpF70EEHpRdeeCHddddd6YknnkhbbbVVbnPllVemvfbaK/3oRz/KI3gBAGhbjLQFAIAm8uqrr6bZs2fnkghlPXr0SNtss02aMmVKvh+3URKhnLAN0b59+/Z5ZG5dFi1alObNm1drAQCg9ZC0BQCAJhIJ2xAja2uK++Vtcdu3b99a2zt27Jh69epVabO0Cy64ICd/y8ugQYOa7BgAAFj5JG0BAKCFGTt2bHr33Xcry2uvvdbcXQIAoBFJ2gIAQBPp379/vp0zZ06t9XG/vC1u586dW2v7kiVL0ttvv11ps7QuXbqk7t2711oAAGg9JG0BAKCJrL322jnxOnny5Mq6qD8btWq32267fD9u33nnnTR16tRKm/vuuy9VV1fn2rcAALQ9HZu7AwAA0JLNnz8/vfzyy7UmH3v66adzTdo111wznXjiiencc89N66+/fk7inn766WngwIFpv/32y+033njjtMcee6QjjjgiXXvttWnx4sXp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4hel6dOnl4444ohSz549S3PmzGnurrU5d9xxR+n73/9+6ZZbbon/25VuvfXWWtsvvPDCUo8ePUq33XZb6Zlnnil9+ctfLq299tql999/v9Jmjz32KA0dOrT06KOPlv785z+X1ltvvdLXvva1Zjia1m/EiBGlcePGlZ577rnS008/Xdprr71Ka665Zmn+/PmVNkcddVRp0KBBpcmTJ5eefPLJ0rbbblv6/Oc/X9m+ZMmS0qabbloaPnx46amnnsrvgT59+pTGjh3bTEfVev3xj38s3X777aUXX3yxNGPGjNL3vve9UqdOnfL5C85VcT3++OOltdZaq7T55puXTjjhhMp656xYzjjjjNKQIUNKs2bNqixvvvlmZbvzxcomxm25xFhth8/41uftt98uDR48uHT44YeXHnvssdLf//730t133116+eWXK218r23ZzjvvvFLv3r1LEydOLL366qulm2++ubTaaquVLr/88kob57htkbRtQltvvXXpmGOOqdz/8MMPSwMHDixdcMEFzdqvtm7ppG11dXWpf//+pYsvvriy7p133il16dKl9Jvf/Cbff/755/PjnnjiiUqbO++8s9SuXbvS66+/vpKPoO2ZO3dufv0ffPDByvmJpGB8iJW98MILuc2UKVPy/Qgw27dvX5o9e3alzTXXXFPq3r17adGiRc1wFG3Lpz71qdLPf/5z56rAqqqqSuuvv35p0qRJpS984QuVL3TOWTGTthF418X5ojmIcVsPMVbr5DO+dTr11FNLO+ywwzK3+17b8u29996lb37zm7XWHXDAAaVDDjkk/9s5bnuUR2giH3zwQZo6dWoeql7Wvn37fH/KlCnN2jdqe/XVV9Ps2bNrnasePXrkS/3K5ypu47KCrbbaqtIm2sc5feyxx5ql323Ju+++m2979eqVb+Nva/HixbXOWVwqvOaaa9Y6Z3G5UL9+/SptRowYkebNm5emT5++0o+hLV3Sc+ONN6YFCxbkMgnOVXHFpZFx6WPNcxOcs2KKy96ixM8666yTL3eLS1eD88XKJsZtXcRYrZPP+Nbpj3/8Y/4++tWvfjWXrdhyyy3Tz372s8p232tbvs9//vNp8uTJ6cUXX8z3n3nmmfSXv/wl7bnnnvm+c9z2dGzuDrRW//73v3PyouaHXYj7f/vb35qtX3xU/E8v1HWuytviNj4Ya+rYsWMOcMttaBrV1dW5Dtf222+fNt1007wuXvPOnTvnD6PlnbO6zml5G41r2rRpOUkbddKiPtqtt96aNtlkk/T00087VwUUifW//vWv6YknnvjINn9fxROB+Pjx49OGG26YZs2alc4666y04447pueee875YqUT47YeYqzWyWd86/X3v/89zyUxZsyY9L3vfS+f4+OPPz6f01GjRvle2wp897vfzT+QxI8pHTp0yJ+35513Xv7BPjjHbY+kLVD4kQKRmIhfGCmuSCZFgjZG7Pzud7/LgeODDz7Y3N2iDq+99lo64YQT0qRJk/IEQhRfeXRFiEn/Iok7ePDgdNNNN+UJKABWhBir9fEZ3/p/aInRk+eff36+HyNt42/42muvzbE3LV/EdjfccEOaMGFCGjJkSP5+FT+uxdVWznHbpDxCE+nTp0/+ZWTpmTjjfv/+/ZutX3xU+Xws71zF7dy5c2ttjxlUY1ZG57PpHHvssWnixInp/vvvT2ussUZlfbzmcXnmO++8s9xzVtc5LW+jccUv/Outt14aNmxYnpl66NCh6fLLL3euCigujYz/n332s5/Nv7rHEgn2K664Iv87fql3zootRkhtsMEG6eWXX/Y3xkonxm0dxFitk8/41m3AgAH5SraaNt5440rJJN9rW75TTjklj7Y96KCDcpmSQw89NJ100kn5+1VwjtseSdsmTGBE8iLqkdT8ZSzuxyXEFMfaa6+d/+dV81zFJQlR76V8ruI2gpsIhMruu+++fE5jxBONK+aLiy8TcYl9vM5xjmqKv61OnTrVOmczZszIAUvNcxaX7Nf8wIpRB927d/9IsEPji7+NRYsWOVcFtOuuu+bXO365Ly8xaiMuuyr/2zkrtvnz56dXXnklf3nzN8bKJsZt2cRYrZvP+NYtSpnE+aopap/G1TfB99qW77333su1Z2uKH0rj/ATnuA1q7pnQWrMbb7wxz+I3fvz4PIPfkUceWerZs2etmThZeTOoPvXUU3mJt/0ll1yS//3Pf/4zb7/wwgvzufnDH/5QevbZZ0v77rtvae211y69//77lX3ssccepS233LL02GOPlf7yl7/kGVm/9rWvNeNRtV5HH310qUePHqUHHnigNGvWrMry3nvvVdocddRRpTXXXLN03333lZ588snSdtttl5eyJUuWlDbddNPS7rvvXnr66adLd911V+nTn/50aezYsc10VK3Xd7/73Tzr9Kuvvpr/fuJ+zE56zz335O3OVfHVnFk6OGfFcvLJJ+f/H8bf2MMPP1waPnx4qU+fPnnW9+B8sbKJcVsuMVbb4zO+9Xj88cdLHTt2LJ133nmll156qXTDDTeUunbtWvr1r39daeN7bcs2atSo0mc+85nSxIkTc9x3yy235JjvO9/5TqWNc9y2SNo2sSuvvDJ/KHbu3Lm09dZblx599NHm7lKbdP/99+dk7dJL/E8xVFdXl04//fRSv3798peQXXfdtTRjxoxa+3jrrbfy/+hWW221Uvfu3Uvf+MY3cjKYxlfXuYpl3LhxlTbxofStb32r9KlPfSoHK/vvv3/+0lHTP/7xj9Kee+5ZWnXVVfOHXSQ+Fi9e3AxH1Lp985vfLA0ePDj/fy6C+vj7KSdsg3PV8r7QOWfFcuCBB5YGDBiQ/8YikI/7L7/8cmW780VzEOO2TGKstsdnfOvypz/9KSfV4zvrRhttVPrpT39aa7vvtS3bvHnz8t9rfL6ussoqpXXWWaf0/e9/v7Ro0aJKG+e4bWkX/2nu0b4AAAAAAPw/atoCAAAAABSIpC0AAAAAQIFI2gIAAAAAFIikLQAAAABAgUjaAgAAAAAUiKQtAAAAAECBSNoCAAAAABSIpC0AAAAAQIFI2gKsZDvvvHM68cQTV+ix48ePTz179mz0PgEAQF3ErgDNQ9IWaFOuvfbatPrqq6clS5ZU1s2fPz916tQpB6Q1PfDAA6ldu3bplVdeSUVx4IEHphdffPET76dUKqWf/vSnaZtttkmrrbZaDqa32mqrdNlll6X33nsvNZamCtR9AQAA2gKx6/8dV3n59Kc/nfbaa680bdq0RusnQBFJ2gJtyhe/+MUc6D755JOVdX/+859T//7902OPPZYWLlxYWX///fenNddcM6277rorlBStGVw3llVXXTX17dv3E+/n0EMPzSMm9t1333ycTz/9dDr99NPTH/7wh3TPPfc0Sl8BAPhkxK7/Z8aMGWnWrFnp7rvvTosWLUp77713+uCDDxpl3wBFJGkLtCkbbrhhGjBgQP7Fviz+HcnLtddeOz366KO11kegHCIwPP7443PQucoqq6QddtghPfHEE7Xaxi//d955Zxo2bFjq0qVL+stf/pIWLFiQDjvssDyaNZ73xz/+8Uf6dPXVV6f1118/77dfv37pK1/5Sr1HmJ555plpiy22SL/61a/SWmutlXr06JEOOuigVFVVtcx93HTTTemGG25Iv/nNb9L3vve99LnPfS4/Nl6D++67r3LM1dXV6eyzz05rrLFGPp54nrvuuquyn3/84x/5mG+55Zb8mK5du6ahQ4emKVOmVF6Tb3zjG+ndd9+tjIyI/pZfz29/+9vpM5/5TOrWrVse8Vs+J/HlY8iQIenII4+sPFeMGIlRJr/4xS+Wu18AgNZE7Pp/4lgiWf3Zz342Dz547bXX0t/+9rfK9uj/jjvumBPFgwYNyscfx1Offseo5WOPPTYv0ac+ffrkAQ2RzC77z3/+k1+bT33qUznu3XPPPdNLL730kWONpPLGG2+cX8M99tgjJ5prvu5bb711jn+j7fbbb5/++c9/VrbHAIo4vujjOuusk84666wmSaYDLYOkLdDmRDAbIxHK4t8RqH3hC1+orH///ffz6IVy4Pud73wn/f73v0/XX399+utf/5rWW2+9NGLEiPT222/X2vd3v/vddOGFF6YXXnghbb755umUU05JDz74YGUEawRq8fiyGDURAWUkR2P0QCRFd9pppwYdTyQ0b7vttjRx4sS8xPNFH5YlErbxBSCC/aVF8B6Barj88stzoP6jH/0oPfvss/l4v/zlL9cKTsP3v//9nICN0bobbLBB+trXvpaDy89//vO53EL37t1zsBpLtAsREEdy98Ybb8z7/upXv5qD2th3BKnRx3it43X78MMP09e//vW02267pW9+85vL3S8AQGvT1mPXpcUP9xFDhs6dO1f2GbHkyJEjc2z529/+NidxI+asb7/jterYsWN6/PHHcxx8ySWXpJ///OeV7Ycffnjezx//+Mccx0ZCN8o0LF68uNImyoxF7BxJ6YceeijNnDmzEqdGfLzffvvl8xZ9jH3EIIWIv8sjqCMpfMIJJ6Tnn38+/eQnP8mJ4PPOO69Bry/QipQA2pif/exnpW7dupUWL15cmjdvXqljx46luXPnliZMmFDaaaedcpvJkyfHz+qlf/7zn6X58+eXOnXqVLrhhhsq+/jggw9KAwcOLF100UX5/v3335/b33bbbZU2VVVVpc6dO5duuummyrq33nqrtOqqq5ZOOOGEfP/3v/99qXv37rkf9TFu3LhSjx49KvfPOOOMUteuXWs9/pRTTilts802y9zHxhtvXPry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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(14, 6))\n", "\n", "# First subplot: Context length\n", "plt.subplot(1, 2, 1)\n", "sns.histplot(df['context_len'], bins=50, color='dodgerblue')\n", "plt.title(\"User Message Length Distribution\")\n", "plt.xlabel(\"Words in Context\")\n", "plt.ylabel(\"Frequency\")\n", "\n", "# Second subplot: Response length\n", "plt.subplot(1, 2, 2)\n", "sns.histplot(df['response_len'], bins=50, color='seagreen')\n", "plt.title(\"Response Length Distribution\")\n", "plt.xlabel(\"Words in Response\")\n", "plt.ylabel(\"Frequency\")\n", "\n", "plt.tight_layout()\n", "plt.savefig(\"length_distributions.png\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "id": "db145d1d-86a9-43fc-99a2-cb4108114923", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Top 5 longest user inputs:\n", " clean_context context_len\n", "1014 im a teenager and throughout my entire life iv... 526\n", "1643 every once and a while i think about my exboyf... 524\n", "2308 every once and a while i think about my exboyf... 524\n", "2444 my boyfriend and i have been together for five... 478\n", "1023 my boyfriend and i have been together for five... 478\n", "\n", "Top 5 longest responses:\n", " clean_response response_len\n", "815 previous counselors have discussed very good p... 939\n", "897 hello that must be very frustrating for you to... 926\n", "3142 hello that must be very frustrating for you to... 926\n", "3185 i think there are many different directions we... 907\n", "1122 i think there are many different directions we... 907\n", "\n", "Found 8 responses with <10 words (may be low quality).\n" ] } ], "source": [ "# Longest messages\n", "print(\"\\nTop 5 longest user inputs:\\n\", df[['clean_context', 'context_len']].sort_values(by='context_len', ascending=False).head())\n", "print(\"\\nTop 5 longest responses:\\n\", df[['clean_response', 'response_len']].sort_values(by='response_len', ascending=False).head())\n", "\n", "# Short response examples\n", "short_responses = df[df['response_len'] < 10]\n", "print(f\"\\nFound {len(short_responses)} responses with <10 words (may be low quality).\")" ] }, { "cell_type": "code", "execution_count": 15, "id": "a64aeeef-4b1c-43f8-8a52-eb1bed75e667", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ContextResponseclean_contextclean_responsecontext_lenresponse_len
385I've gone to a couple therapy sessions so far ...Certainly.ive gone to a couple therapy sessions so far a...certainly301
1385It's the way my mom said I was worth nothing, ...There is nothing wrong with going to summer sc...its the way my mom said i was worth nothing st...there is nothing wrong with going to summer sc...219
2079I've gone to a couple therapy sessions so far ...Certainly.ive gone to a couple therapy sessions so far a...certainly301
2624such as not enough sleep0such as not enough sleep50
2695Can a counselor take sides with one parent and...<!--[if gte mso 9]>\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\...can a counselor take sides with one parent and...if gte mso \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\...406
3080It's the way my mom said I was worth nothing, ...There is nothing wrong with going to summer sc...its the way my mom said i was worth nothing st...there is nothing wrong with going to summer sc...219
3293I've gone to a couple therapy sessions so far ...Certainly.ive gone to a couple therapy sessions so far a...certainly301
3507I just took a job that requires me to travel f...hmm this is a tough one!i just took a job that requires me to travel f...hmm this is a tough one506
\n", "
" ], "text/plain": [ " Context \\\n", "385 I've gone to a couple therapy sessions so far ... \n", "1385 It's the way my mom said I was worth nothing, ... \n", "2079 I've gone to a couple therapy sessions so far ... \n", "2624 such as not enough sleep \n", "2695 Can a counselor take sides with one parent and... \n", "3080 It's the way my mom said I was worth nothing, ... \n", "3293 I've gone to a couple therapy sessions so far ... \n", "3507 I just took a job that requires me to travel f... \n", "\n", " Response \\\n", "385 Certainly. \n", "1385 There is nothing wrong with going to summer sc... \n", "2079 Certainly. \n", "2624 0 \n", "2695