{"cells":[{"cell_type":"markdown","metadata":{"id":"3-vxqQd-9haB"},"source":["# Mental Health Sentiment Chatbot Application"]},{"cell_type":"markdown","metadata":{"id":"T5j89O859haD"},"source":["## Installing libraries, dependencies, and data"]},{"cell_type":"code","execution_count":1,"metadata":{"executionInfo":{"elapsed":4,"status":"ok","timestamp":1721783558470,"user":{"displayName":"Kanish Mohan","userId":"03360479849440540993"},"user_tz":240},"id":"bH9X5lpJ9haE"},"outputs":[],"source":["# Import the required libraries and dependencies\n","import pandas as pd\n","from matplotlib import pyplot as plt\n","from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer\n","from sklearn.model_selection import train_test_split\n","\n","from sklearn.pipeline import Pipeline\n","from sklearn.feature_extraction.text import TfidfVectorizer\n","from sklearn.svm import LinearSVC\n","from sklearn.metrics import confusion_matrix, classification_report, accuracy_score\n","\n","from dotenv import load_dotenv\n","import os\n","from langchain_openai import ChatOpenAI\n","from langchain import PromptTemplate\n","from langchain.prompts import ChatPromptTemplate\n","from langchain.chains import LLMChain\n","\n","import gradio as gr\n","\n","# Set the column width to view the statments.\n","pd.set_option('max_colwidth', 200)"]},{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":423},"executionInfo":{"elapsed":719,"status":"ok","timestamp":1721783559371,"user":{"displayName":"Kanish Mohan","userId":"03360479849440540993"},"user_tz":240},"id":"5LBr7TwS9haH","outputId":"9c273ded-94d2-453f-8ba2-85b8d7786d19"},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
statement
\n","
status
\n","
\n"," \n"," \n","
\n","
24933
\n","
I am just tired of being here and the people on this world. My friend got killed over a fight before he could even finish high school. I have seen a dude with part of his brain and head blown out....
\n","
Suicidal
\n","
\n","
\n","
40896
\n","
content by eugene cacao graphic by kath limfueco source holland k 0 september how to fight depression 0 thing to try healthline http t co o udqteja what is depression n d american psychiatric asso...
\n","
Depression
\n","
\n","
\n","
38002
\n","
ha anyone been prescribed mirtazapine or other alpha receptor antagonist to treat their anxiety i would prefer not to use start with ssri s what wa you experience
\n","
Depression
\n","
\n","
\n","
33799
\n","
my brother smokes three packs a day.
\n","
Normal
\n","
\n","
\n","
1857
\n","
At the age of 25, I am still strong in living my life with all its problems. Thank God
\n","
Normal
\n","
\n"," \n","
\n","
"],"text/plain":[" statement \\\n","24933 I am just tired of being here and the people on this world. My friend got killed over a fight before he could even finish high school. I have seen a dude with part of his brain and head blown out.... \n","40896 content by eugene cacao graphic by kath limfueco source holland k 0 september how to fight depression 0 thing to try healthline http t co o udqteja what is depression n d american psychiatric asso... \n","38002 ha anyone been prescribed mirtazapine or other alpha receptor antagonist to treat their anxiety i would prefer not to use start with ssri s what wa you experience \n","33799 my brother smokes three packs a day. \n","1857 At the age of 25, I am still strong in living my life with all its problems. Thank God \n","\n"," status \n","24933 Suicidal \n","40896 Depression \n","38002 Depression \n","33799 Normal \n","1857 Normal "]},"execution_count":2,"metadata":{},"output_type":"execute_result"}],"source":["# Load the dataset.\n","df = pd.read_csv(\"Combined_Data.csv\", index_col=\"Unnamed: 0\")\n","# Display a sample of the dataset. \n","df.sample(5)"]},{"cell_type":"markdown","metadata":{"id":"HpUSyf9d9haJ"},"source":["## Data Cleanup and Preparation"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":6,"status":"ok","timestamp":1721783559371,"user":{"displayName":"Kanish Mohan","userId":"03360479849440540993"},"user_tz":240},"id":"bhNwChvA9haJ"},"outputs":[{"name":"stdout","output_type":"stream","text":["\n","Index: 53043 entries, 0 to 53042\n","Data columns (total 2 columns):\n"," # Column Non-Null Count Dtype \n","--- ------ -------------- ----- \n"," 0 statement 52681 non-null object\n"," 1 status 53043 non-null object\n","dtypes: object(2)\n","memory usage: 1.2+ MB\n"]}],"source":["# Check for missing values. \n","df.info()"]},{"cell_type":"code","execution_count":4,"metadata":{},"outputs":[{"data":{"text/plain":["statement\n","True 52681\n","False 362\n","Name: count, dtype: int64"]},"execution_count":4,"metadata":{},"output_type":"execute_result"}],"source":["# Null values in the statement column\n","df['statement'].notnull().value_counts()"]},{"cell_type":"code","execution_count":5,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["\n","Index: 52681 entries, 0 to 53042\n","Data columns (total 2 columns):\n"," # Column Non-Null Count Dtype \n","--- ------ -------------- ----- \n"," 0 statement 52681 non-null object\n"," 1 status 52681 non-null object\n","dtypes: object(2)\n","memory usage: 1.2+ MB\n"]}],"source":["# Drop null values\n","df = df.dropna()\n","df.info()"]},{"cell_type":"code","execution_count":6,"metadata":{},"outputs":[{"data":{"text/plain":["status\n","Normal 16343\n","Depression 15404\n","Suicidal 10652\n","Anxiety 3841\n","Bipolar 2777\n","Stress 2587\n","Personality disorder 1077\n","Name: count, dtype: int64"]},"execution_count":6,"metadata":{},"output_type":"execute_result"}],"source":["# Get the number of different statuses in the status column:\n","status_count = df['status'].value_counts()\n","status_count"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[{"data":{"image/png":"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","text/plain":["
trouble sleeping, confused mind, restless heart. All out of tune
\n","
Anxiety
\n","
Negative
\n","
-0.2263
\n","
\n","
\n","
2
\n","
All wrong, back off dear, forward doubt. Stay in a restless and restless place
\n","
Anxiety
\n","
Negative
\n","
-0.7351
\n","
\n","
\n","
3
\n","
I've shifted my focus to something else but I'm still worried
\n","
Anxiety
\n","
Negative
\n","
-0.4215
\n","
\n","
\n","
4
\n","
I'm restless and restless, it's been a month now, boy. What do you mean?
\n","
Anxiety
\n","
Negative
\n","
-0.4939
\n","
\n"," \n","
\n","
"],"text/plain":[" statement \\\n","0 oh my gosh \n","1 trouble sleeping, confused mind, restless heart. All out of tune \n","2 All wrong, back off dear, forward doubt. Stay in a restless and restless place \n","3 I've shifted my focus to something else but I'm still worried \n","4 I'm restless and restless, it's been a month now, boy. What do you mean? \n","\n"," status sentiment score \n","0 Anxiety Neutral 0.0000 \n","1 Anxiety Negative -0.2263 \n","2 Anxiety Negative -0.7351 \n","3 Anxiety Negative -0.4215 \n","4 Anxiety Negative -0.4939 "]},"execution_count":10,"metadata":{},"output_type":"execute_result"}],"source":["# Creating sentiment and score columns.\n","df['sentiment'] = sentiment\n","df['score'] = score\n","df.head()"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
statement
\n","
status
\n","
sentiment
\n","
score
\n","
\n"," \n"," \n","
\n","
21397
\n","
The person who supposedly is there for me is not. My family only cares for me when it comes to ask for a service or a favour, and they do not really care for me, whether it would be successes or w...
\n","
Suicidal
\n","
Negative
\n","
-0.9676
\n","
\n","
\n","
30924
\n","
yes, i do.
\n","
Normal
\n","
Positive
\n","
0.4019
\n","
\n","
\n","
3825
\n","
It's gastric in the morning, we're not joking huh
\n","
Normal
\n","
Negative
\n","
-0.1695
\n","
\n","
\n","
36537
\n","
@SamanthaPaige3 This is the best thing to pop on my Twitter all dayðð what cracks me up is that billy is in it tooððð
\n","
Normal
\n","
Positive
\n","
0.6369
\n","
\n","
\n","
47352
\n","
I’ve recently been getting closer to reaching proper nutrition everyday and it’s made more of an improvement than any antidepressant I’ve ever been put on has the more I learned about nutrition th...
\n","
Depression
\n","
Positive
\n","
0.7821
\n","
\n","
\n","
36573
\n","
@slxmdunk,United Kingdom,@Pamaj what hapens if i dont want to be here anymore?
\n","
Suicidal
\n","
Negative
\n","
-0.0572
\n","
\n","
\n","
15807
\n","
I do not really know why I am writing about this but we all know that it is obvious.I just feel like I am forced to live dealing with other people's shit every single day,it is fucking tiring.I do...
\n","
Depression
\n","
Negative
\n","
-0.9928
\n","
\n","
\n","
18290
\n","
**Extraterrestrial beings can visit our planet in a few days.** Extraterrestrial beings can visit our planet in a few days.
\n","
Depression
\n","
Neutral
\n","
0.0000
\n","
\n","
\n","
45049
\n","
im trying to make a chicken soup like my mother but without a recipe this will be interesting and i cant find matzah
\n","
Normal
\n","
Positive
\n","
0.6486
\n","
\n","
\n","
2535
\n","
lexi pspspspspspsps
\n","
Normal
\n","
Neutral
\n","
0.0000
\n","
\n"," \n","
\n","
"],"text/plain":[" statement \\\n","21397 The person who supposedly is there for me is not. My family only cares for me when it comes to ask for a service or a favour, and they do not really care for me, whether it would be successes or w... \n","30924 yes, i do. \n","3825 It's gastric in the morning, we're not joking huh \n","36537 @SamanthaPaige3 This is the best thing to pop on my Twitter all dayðð what cracks me up is that billy is in it tooððð \n","47352 I’ve recently been getting closer to reaching proper nutrition everyday and it’s made more of an improvement than any antidepressant I’ve ever been put on has the more I learned about nutrition th... \n","36573 @slxmdunk,United Kingdom,@Pamaj what hapens if i dont want to be here anymore? \n","15807 I do not really know why I am writing about this but we all know that it is obvious.I just feel like I am forced to live dealing with other people's shit every single day,it is fucking tiring.I do... \n","18290 **Extraterrestrial beings can visit our planet in a few days.** Extraterrestrial beings can visit our planet in a few days. \n","45049 im trying to make a chicken soup like my mother but without a recipe this will be interesting and i cant find matzah \n","2535 lexi pspspspspspsps \n","\n"," status sentiment score \n","21397 Suicidal Negative -0.9676 \n","30924 Normal Positive 0.4019 \n","3825 Normal Negative -0.1695 \n","36537 Normal Positive 0.6369 \n","47352 Depression Positive 0.7821 \n","36573 Suicidal Negative -0.0572 \n","15807 Depression Negative -0.9928 \n","18290 Depression Neutral 0.0000 \n","45049 Normal Positive 0.6486 \n","2535 Normal Neutral 0.0000 "]},"execution_count":11,"metadata":{},"output_type":"execute_result"}],"source":["# Displaying a sample of the new DataFrame.\n","df.sample(10)"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"data":{"text/plain":["sentiment\n","Negative 28780\n","Positive 17394\n","Neutral 6507\n","Name: count, dtype: int64"]},"execution_count":12,"metadata":{},"output_type":"execute_result"}],"source":["# Get the number of different results in the sentiment column:\n","sentiment_count = df['sentiment'].value_counts()\n","sentiment_count"]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"data":{"image/png":"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M0YvvfSSNmzYIEmqVq2aJOmf//ynoqOji7N5FyQ0NFRly5ZVfHy8HnnkkbPW1K1b96K24fbbb1dAQIBmzZqlhx9++H/WV61aVSkpKQXmn7pP69RncioAnbqR+5QzQyAA9whNAApISUk561hImzZtkvTfXo0OHTqoXLly2rp1q3r27Fkk7/1Le24Ko2LFirr99tv17bff6rrrrnN6on6pwMBA1+2PjIzU7373O7355puaOnXqWZ+g27p1q44eParrrrtObdu21fjx47V+/XrdcMMNTs3UqVPl8Xh0++23S5LTG/X999+rQ4cOTt2cOXN+0X5Jv85nA5REhCYABXTo0EE1a9ZUt27ddM011yg/P1/Jycl64YUXVKlSJf3+97+XdPLE/Mwzz+jJJ5/Uf/7zH3Xs2FGhoaHat2+f1q5dq+Dg4LM+gXY+ISEhio6O1uzZs9W2bVuFhYWpWrVqZ70kVRReeeUVtW7dWrfccosGDRqkOnXq6PDhw/r55581d+7cC7pHqHHjxvrss8/05ptvqlmzZipTpoxzmfNsXnzxRf3nP/9Rv379tGDBAt11112KiIjQgQMHtGjRIk2ZMkUJCQm67rrr9Oijj2rq1Knq0qWLnnnmGUVHR2vevHl64403NGjQINWvX1/SyTDWrl07jR8/XqGhoYqOjtaXX36pzz777IL/r37tzwYocYr7TnQAJc/06dOtd+/eVq9ePatUqZIFBARY7dq1LT4+3jZu3FigftasWXb77bdb5cqVLTAw0KKjo+3uu++2f/3rX05N3759LTg4uMC6Y8aMsTN/Ff3rX/+ypk2bWmBgoEmyvn37mtm5n5679tprC2w3OjraunTpUmC+JHvkkUf85m3bts369+9vV1xxhQUEBFj16tUtNjbWnn32Wafm1NNon376aYF1dcbTaAcPHrS7777bqlSpYh6Pp8D+nU1ubq598MEHdscdd1hYWJiVK1fOqlevbp06dbKPPvrI8vLynNodO3ZY7969rWrVqhYQEGANGjSwSZMm+dWYmaWkpNjdd99tYWFh5vV67b777rNvvvnmrE/P/dLPBrgceMzMiiuwAQAAlBYMOQAAAOACoQkAAMAFQhMAAIALhCYAAAAXCE0AAAAuEJoAAABcKNbBLd988029+eab2r59uyTp2muv1VNPPaVOnTpJksxMY8eO1TvvvKOMjAw1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ONHv+G3VqpU1bdrUCVd5eXm2fft250EFlA6EJpjP57NBgwZZZGSkjRgxwsqVK2c9evTwuxdp7ty51qRJE3vjjTfsxIkTtmrVKvN4PPaPf/zDqZkzZ47df//99te//tXv5JeXl8fTSHCc2Yu0Z88ev9c+n8+GDRtmDRs2tHvuucdeffVVMzv5WHarVq3shhtusNtuu8169uxp0dHR1qJFC+fepd/97nd2/fXXO+EoNzfXfvjhB05MuGA//fST1alTx5566ikzM1u7dq3VqFHD+f2Ynp5uQ4YMMY/H4zzhNmLECGvUqJGtWLHCzMzWrVtn3bp1M4/HY6+99tpZe1JROhCaLiPn+kEdO3as1atXz5KSkmzFihU2YsQI83g89v777zs1rVu3tvvvv995/fe//908Ho/Vrl270O8H5Obm2pgxY6xx48Z2880328CBA+27776zrKwsi42NtVtuucXee+89e/jhh618+fI2ZswYy83NtY0bN9rw4cPt1VdftSlTptiHH35ovXr1siZNmpiZ2caNG83j8diCBQuKdwdR6mRlZdlTTz1l9913n98QKidOnLCxY8da5cqVzcxs2bJlFhcXZ2vWrLEHHnjAKlWqZO3bt3eCu9nJ4N+0aVO7+uqr7b777rMaNWrY3Llznct8KL0ITZeY/Pz8Ar06Z17yOD3MpKen2w033GCPPfaYX02rVq2se/futm3bNjMz69Wrl910002WnZ1t27dvt9/97nf20ksvWVxcnKWmphbYPj1LOJusrCx7+umnrWzZsta8eXP729/+Zo8//rhFRERYmzZtbPny5RYZGekMBmhm9swzz1jLli3tn//851m32a9fP+vbt69z+eTMMcMAN1JSUqx69erm8XisTp06NnPmTOf32Pfff29VqlSxKVOm2IoVKyw0NNQqVqxoPXv2dJ4kNjPbv3+/7d2711nn+eeft169ep11IF+UToSmS9Spa+mnB6bZs2fbvffea48++qjNmzfPmR8ZGWnvvfeemZnz3UezZs2yoKAg50S1cuVKCwsLs0aNGllAQIDdfffdzs3igFt79uyxOnXq2P/93//5zX/99detatWq1qJFC+vcubMdP37cOWH95z//sbi4OPv9739vubm55vP5bP369bZ+/XobMmSI1alTx2bPnl0cu4NLzOOPP25xcXF2xx13WJMmTWzYsGHOd2Q+8sgjVqdOHTMza9Cggd13331+f4AeO3bMRo8e7XzvJi5NDDlQytkZj8Tm5ubqscce09133y3p5OCUx48fV+/evfXggw+qdu3a2rNnj0aOHKnx48dLku644w699957kv77aHbnzp0VEBCguXPnau/evWrVqpWWL1+uJ554Qt9++60+/fRTVa1aVVLBYQqAc4mKitK9996rjIwMvwEmw8PDFRwcrKuvvlrLly93Htc2M9WtW1cRERHauXOnypYtq+TkZP3lL3/RnXfeqU2bNumTTz5R9+7di2uXcAk5NZRK69at9frrr2vevHnq2LGjduzYoQceeEDp6elauHCh/vznP+vrr79W3759tWzZMi1cuFB33XWX5s+fr3r16hXvTuDiKu7UhqKVl5dnr7/+unk8HmeY/jlz5lhsbKzfgGl33323BQQE2I4dO2zOnDlWrlw5+9e//uUsnzFjhkVFRdk111xz1vtD8vLyeDIOF+Tf//63xcbG2rhx45x5p55y+/HHH+2KK66w5557zm+dnj17Wtu2bZ3Xy5Yts507d/5qbcblIT8/3wYNGmR33HGHHTlyxHbv3m233HKLNW/e3P7617/aI4884tw/N3v2bGvYsKG1aNHCIiIibODAgQW+GgWXHkJTKffPf/7TZsyY4RdgduzYYY0aNbKHHnrIzE7e6P3b3/7WzE6ODXIqDL366quWn59vx48ftwEDBlhkZKQ9+uij9re//c3atGlj8+bNs5o1azrf1cUXmaIonDoxtW/f3saMGWN169a1K664wgnnkyZNspCQEHv22Wdt27ZtNn36dKtXr559/vnnxdxyXA6+/fZba968ufOlumlpafbCCy9Y2bJlrUOHDubxeGzx4sVmdvILdX/++WeezryMEJpKsY8++sg8Ho95PB7705/+5NyQffz4cXv55ZetfPnylpOTYyNGjLAGDRpYaGioNW3a1D744APnptlTQSgnJ8fGjh1rt9xyi1155ZU2duxYMzt5Q/i9995bPDuIS1ZycrLVr1/fqlatah9++GGBk84TTzxhjRo1squvvtq8Xq+NGzeOnk38KvLy8uy+++6zLl26+N23OWXKFGvVqpV5PB7r379/MbYQxYnQVIqlp6dbu3bt7Nprr7XGjRtby5YtnYEot2/fbhEREfbKK6/YqlWrrEKFCvbEE0/4rX/o0CEbMWKEffvtt8680wdwW79+vV111VV8uzaK3KkTU6dOnZzv38rOzva7sXbfvn3OODfAr2n58uXWokULmzJlit/8tLQ0ejwvc9wIXoqFhYXp1ltv1ZVXXqnHHntMNWvW1J133qnJkycrOjpaDz/8sMaOHauWLVvq5ptv1tq1a7V8+XJlZmZq586devLJJ7Vu3TodO3bM2WZKSoq++OILPfroo+ratauaNm2qNm3aFONe4lJUpkwZDRgwQBkZGfrkk0+ceae+z0s6eXN469ati6uJuIy1bNlSUVFRmjZtmo4fPy7p5EMJ1atXV5cuXYq5dShOhKZS7oEHHtChQ4e0fft2ffLJJ+rbt68effRRJyxVqFBBH374oT744ANVrFhR3bp1U9euXXXttdfqp59+0osvvqjY2Fhne7m5uUpMTFRycrLeeecdffrppwoLCyvGPcSlKjY21u/EdHpgAopTuXLl1LdvXzVv3tx5ktPj8RRzq1ASeMz4mvnS7rHHHtOaNWv0zjvvqEGDBnr33Xc1bdo0HTx4UOHh4UpNTdXGjRuVlZWln376ScnJyWrevLmuueYaZxv2/7+528x05MgRhYSEFOMe4XIxZ84crV69Wn/84x/l9XqLuzmA49TvROB0hKZLwJYtW9SvXz917NhRf/7znyVJaWlpuv/++7Vs2TJlZWVp9uzZ6tatm996+fn5MjP+wkex4cQEoDQpV9wNwC939dVXq0mTJlqxYoX27NmjK664QuHh4ZoxY4amTZumrVu3Ki4uzm8dM1OZMlydRfEiMAEoTehpukR89913Gjx4sO6880499thjys/PJxQBAFCEOKteIho3bqxq1app165dysnJ8QtMZqb8/PxibB0AAKUfPU2XkEOHDqlKlSrF3QwAAC5JhKZLEJfmAAAoeoQmAAAAF+iOAAAAcIHQBAAA4AKhCQAAwAVCEwAAgAuEJgAAABcITQBwDkuXLpXH49GhQ4eKuykASgBCE4ASLy0tTQ899JBq166twMBARUZGqkOHDkpKSiqy97jttts0fPhwv3mxsbFKSUmR1+stsve5UP369VOPHj2KuxnAZY0v7AVQ4vXs2VM5OTn64IMPdOWVV2rfvn368ssvdfDgwYv6vuXLl1dkZORFfQ8ApYgBQAmWkZFhkmzp0qXnrDl06JANGDDAqlevbiEhIXb77bdbcnKys3zMmDHWpEkTmzp1qkVHR1vlypWtV69elpmZaWZmffv2NUl+07Zt22zJkiUmyTIyMszMbMqUKeb1em3u3LlWv359CwoKsp49e9qRI0fs/ffft+joaKtSpYoNGTLEcnNznffPysqyP/zhDxYVFWUVK1a0m2++2ZYsWeIsP7XdxMREu+aaayw4ONg6dOhge/fuddp/ZvtOXx/Ar4PLcwBKtEqVKqlSpUqaNWuWsrKyCiw3M3Xp0kWpqamaP3++1q1bpxtuuEFt27b164naunWrZs2apc8//1yff/65li1bpgkTJkiSXnnlFbVs2VIDBgxQSkqKUlJSVKtWrbO259ixY3r11VeVkJCgxMRELV26VL/5zW80f/58zZ8/X9OmTdM777yjf/7zn846DzzwgL766islJCTo+++/1//93/+pY8eO2rJli992n3/+eU2bNk3Lly/Xzp07NWrUKEnSqFGjdM8996hjx45O+2JjY4vk/xdAIRR3agOA/+Wf//ynhYaGWoUKFSw2NtZGjx5t3333nZmZffnll1a5cmU7ceKE3zpXXXWVvf3222Z2sqemYsWKTs+Smdkf/vAHa968ufO6TZs29vvf/95vG2fraZJkP//8s1Pz0EMPWcWKFe3w4cPOvA4dOthDDz1kZmY///yzeTwe27Nnj9+227Zta6NHjz7ndl9//XWLiIhwXvft29fuvPNOV/9fAC4O7mkCUOL17NlTXbp00YoVK5SUlKTExERNnDhR7733nvbv368jR46oatWqfuscP35cW7dudV7XqVNHISEhzusaNWooLS2t0G2pWLGirrrqKud1RESE6tSpo0qVKvnNO7Xt9evXy8xUv359v+1kZWX5tfnM7V5o+wBcPIQmAKVChQoV1L59e7Vv315PPfWUfve732nMmDEaPHiwatSooaVLlxZYp0qVKs6/AwIC/JZ5PB7l5+cXuh1n2875tp2fn6+yZctq3bp1Klu2rF/d6UHrbNswvk8dKFEITQBKpUaNGmnWrFm64YYblJqaqnLlyqlOnToXvL3y5csrLy+v6Br4/zVt2lR5eXlKS0vTLbfccsHbuVjtA+AeN4IDKNHS09N1xx136B//+Ie+//57bdu2TZ9++qkmTpyoO++8U+3atVPLli3Vo0cPLViwQNu3b9eqVav0pz/9Sd98843r96lTp47WrFmj7du368CBAxfUC3U29evXV58+fXT//ffrs88+07Zt2/T111/rueee0/z58wvVvu+//16bN2/WgQMHlJOTUyTtA+AeoQlAiVapUiU1b95cL730km699VbFxMToz3/+swYMGKDJkyfL4/Fo/vz5uvXWW9W/f3/Vr19f9957r7Zv366IiAjX7zNq1CiVLVtWjRo1UvXq1bVz584i24cpU6bo/vvv18iRI9WgQQN1795da9asOecTemczYMAANWjQQDfeeKOqV6+ur776qsjaB8Adj3HRHAAA4H+ipwkAAMAFQhMAAIALhCYAAAAXCE0AAAAuEJoAAABcIDQBAAC4QGgCAABwgdAEAADgAqEJAADABUITAACAC4QmAAAAFwhNAAAALvw/HIlRW1FzvAYAAAAASUVORK5CYII=","text/plain":[""]},"metadata":{},"output_type":"display_data"}],"source":["sentiment_chart = sentiment_count.plot(\n"," kind='bar',\n"," facecolor='b',\n"," title='Sentiment Count',\n"," xlabel='Sentiment',\n"," ylabel='# of entries'\n",")\n","ticks = sentiment_count.index\n","sentiment_chart.set_xticklabels(ticks, rotation=25, rotation_mode='anchor', ha='right', wrap=True)\n","plt.show()"]},{"cell_type":"code","execution_count":14,"metadata":{},"outputs":[],"source":["# Set the features variable.\n","X = df['statement']\n","# Set the target variables.\n","y_status = df['status']\n","y_sentiment = df['sentiment']"]},{"cell_type":"code","execution_count":15,"metadata":{},"outputs":[],"source":["# Split data into training and testing for status\n","X_status_train, X_status_test, y_status_train, y_stauts_test = train_test_split(X, y_status, test_size=0.25, random_state=1)"]},{"cell_type":"code","execution_count":16,"metadata":{},"outputs":[],"source":["# Split data into training and testing for sentiment\n","X_sentiment_train, X_sentiment_test, y_sentiment_train, y_sentiment_test = train_test_split(X, y_sentiment, test_size=0.30, random_state=1)"]},{"cell_type":"markdown","metadata":{"id":"R-5gfm-n9haK"},"source":["## ML Model"]},{"cell_type":"markdown","metadata":{},"source":["Title: y_status_train"]},{"cell_type":"code","execution_count":17,"metadata":{"executionInfo":{"elapsed":6,"status":"ok","timestamp":1721783559372,"user":{"displayName":"Kanish Mohan","userId":"03360479849440540993"},"user_tz":240},"id":"wiFAyohp9haK"},"outputs":[{"name":"stderr","output_type":"stream","text":["c:\\Users\\MJSmi\\anaconda3\\envs\\dev\\lib\\site-packages\\sklearn\\svm\\_classes.py:32: FutureWarning: The default value of `dual` will change from `True` to `'auto'` in 1.5. Set the value of `dual` explicitly to suppress the warning.\n"," warnings.warn(\n"]},{"name":"stdout","output_type":"stream","text":["['Depression' 'Normal' 'Bipolar' ... 'Normal' 'Depression' 'Normal']\n"]}],"source":["status_pipeline = Pipeline([\n"," ('tfidf', TfidfVectorizer(stop_words=None)),\n"," ('classifier', LinearSVC())\n","])\n","\n","status_pipeline.fit(X_status_train, y_status_train)\n","\n","# Print the results\n","status_predictions = status_pipeline.predict(X_status_test)\n","print(status_predictions)\n"]},{"cell_type":"code","execution_count":18,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":[" X_test \\\n","39488 i m and i have bad anxiety debilitating i haven t been able to keep a job since i wa so pretty much ever i wake up early morning hour before i have to be my heart race i black out i puke cough my ... \n","1480 Jessica starred in the musical \"Legally Blonde\" as Elle Woods, the female lead in the drama \n","47948 I’m so tired I just don’t see a point to my suffering, I don’t understand it, I want to know what I’ve done so wrong to deserve everything, I’d say sorry and do anything to make it stop! I already... \n","19681 My life 1 year ago was completely different. I was such a chick magnet and everyone loved me i had so many friends and in this past year i lost everything. I have no friends so when i feel sad i d... \n","37629 RT @no_onespecixl: Know one enjoys my company and I just make everyone miserable, everyone is better off wi \n","... ... \n","7162 Small context: To anyone who is curious I am 16 years old 1. It feels hard to express my opinion on the internet because every time I do I always get bashed for it. I am starting to doubt myself, ... \n","45963 Disengaging from my friends Fuck. Fuck man. I feel like shit. I feel like I'm pushing away the people who can help me the most because I feel like a drama queen and I feel like I am a burden to th... \n","6034 what if we both get into a gang of criminals: I took your heart, and you took my heart? \n","47746 Back in this stupid lonely hole with no one to share my thoughts with Sorry In advanced for the rant of anyone even reads this lol, 19m, I used to use this app a lot to talk people out of hurting ... \n","44623 all work and no play doe not a happy linda make can t wait for the holiday \n","\n"," Predicted_y Actual_y \n","39488 Depression Depression \n","1480 Normal Normal \n","47948 Bipolar Depression \n","19681 Suicidal Suicidal \n","37629 Suicidal Suicidal \n","... ... ... \n","7162 Suicidal Suicidal \n","45963 Bipolar Bipolar \n","6034 Normal Normal \n","47746 Depression Depression \n","44623 Normal Normal \n","\n","[13171 rows x 3 columns]\n"]}],"source":["# Show the test data and corresponding predictions\n","stauts_test_results = pd.DataFrame({'X_test': X_status_test, 'Predicted_y': status_predictions, 'Actual_y': y_stauts_test})\n","print(stauts_test_results)"]},{"cell_type":"code","execution_count":19,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Training Accuracy: 0.9328524424196406\n","Testing Accuracy: 0.783387745805178\n"]}],"source":["# Validate the model by checking the model's training and testing accuracy.\n","training_accuracy = status_pipeline.score(X_status_train, y_status_train)\n","testing_accuracy = status_pipeline.score(X_status_test, y_stauts_test)\n","print(\"Training Accuracy:\", training_accuracy)\n","print(\"Testing Accuracy:\", testing_accuracy)"]},{"cell_type":"code","execution_count":20,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Status Confusion Matrix:\n","[[ 745 6 97 60 6 23 6]\n"," [ 17 509 77 36 3 16 13]\n"," [ 62 36 2810 149 10 27 785]\n"," [ 27 7 95 3907 1 50 50]\n"," [ 3 6 62 18 155 14 12]\n"," [ 53 14 108 86 7 331 22]\n"," [ 11 7 663 98 2 8 1861]]\n","Status Classification Report:\n"," precision recall f1-score support\n","\n"," Anxiety 0.81 0.79 0.80 943\n"," Bipolar 0.87 0.76 0.81 671\n"," Depression 0.72 0.72 0.72 3879\n"," Normal 0.90 0.94 0.92 4137\n","Personality disorder 0.84 0.57 0.68 270\n"," Stress 0.71 0.53 0.61 621\n"," Suicidal 0.68 0.70 0.69 2650\n","\n"," accuracy 0.78 13171\n"," macro avg 0.79 0.72 0.75 13171\n"," weighted avg 0.78 0.78 0.78 13171\n","\n","Overall Accuracy: 0.783387745805178\n"]}],"source":["# Create the confusion matrix\n","confusion_mat = confusion_matrix(y_stauts_test, status_predictions)\n","\n","# Print the confusion matrix\n","print(\"Status Confusion Matrix:\")\n","print(confusion_mat)\n","\n","# Print a classification report\n","print(\"Status Classification Report:\")\n","print(classification_report(y_stauts_test, status_predictions))\n","\n","# Print the overall accuracy\n","accuracy = accuracy_score(y_stauts_test, status_predictions)\n","print(\"Overall Accuracy:\", accuracy)"]},{"cell_type":"markdown","metadata":{},"source":["Title: y_sentiment_train"]},{"cell_type":"code","execution_count":21,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["c:\\Users\\MJSmi\\anaconda3\\envs\\dev\\lib\\site-packages\\sklearn\\svm\\_classes.py:32: FutureWarning: The default value of `dual` will change from `True` to `'auto'` in 1.5. Set the value of `dual` explicitly to suppress the warning.\n"," warnings.warn(\n"]},{"name":"stdout","output_type":"stream","text":["['Positive' 'Positive' 'Negative' ... 'Negative' 'Neutral' 'Negative']\n"]}],"source":["sentiment_pipeline = Pipeline([\n"," ('tfidf', TfidfVectorizer(stop_words=None)),\n"," ('classifier', LinearSVC())\n","])\n","\n","sentiment_pipeline.fit(X_sentiment_train, y_sentiment_train)\n","\n","# Print the results\n","sentiment_predictions = sentiment_pipeline.predict(X_sentiment_test)\n","print(sentiment_predictions)\n"]},{"cell_type":"code","execution_count":22,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":[" X_test \\\n","39488 i m and i have bad anxiety debilitating i haven t been able to keep a job since i wa so pretty much ever i wake up early morning hour before i have to be my heart race i black out i puke cough my ... \n","1480 Jessica starred in the musical \"Legally Blonde\" as Elle Woods, the female lead in the drama \n","47948 I’m so tired I just don’t see a point to my suffering, I don’t understand it, I want to know what I’ve done so wrong to deserve everything, I’d say sorry and do anything to make it stop! I already... \n","19681 My life 1 year ago was completely different. I was such a chick magnet and everyone loved me i had so many friends and in this past year i lost everything. I have no friends so when i feel sad i d... \n","37629 RT @no_onespecixl: Know one enjoys my company and I just make everyone miserable, everyone is better off wi \n","... ... \n","20009 My fiancee and I got into another argument least night. A lot of shit got said and I ran once with the intention of just throwing myself of the bridge over the highway. He wrangled me back in and ... \n","27499 I felt the tension and the seriousness. Usually during lockdown drills things aren't too serious because we're high schoolers. We mess around because we know nothing is wrong. But this drill was d... \n","24247 I am always unhappy. I lost my condo which I owned. It was my mistake by selling it without realizing I owned it. My relative threw away all of my belongings in my apartment at the time I was goin... \n","2421 forgot today gosh \n","730 It's really restless since yesterday thinking about another second in class 12, preparations for SM are still a little bit, there's a lot to worry about \n","\n"," Predicted_y Actual_y \n","39488 Positive Positive \n","1480 Positive Positive \n","47948 Negative Negative \n","19681 Negative Negative \n","37629 Neutral Positive \n","... ... ... \n","20009 Negative Negative \n","27499 Positive Positive \n","24247 Negative Negative \n","2421 Neutral Neutral \n","730 Negative Negative \n","\n","[15805 rows x 3 columns]\n"]}],"source":["# Show the test data and corresponding predictions\n","sentiment_test_results = pd.DataFrame({'X_test': X_sentiment_test, 'Predicted_y': sentiment_predictions, 'Actual_y': y_sentiment_test})\n","print(sentiment_test_results)"]},{"cell_type":"code","execution_count":23,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Training Accuracy: 0.946415012474238\n","Testing Accuracy: 0.8268269534957292\n"]}],"source":["# Validate the model by checking the model's training and testing accuracy.\n","training_accuracy = sentiment_pipeline.score(X_sentiment_train, y_sentiment_train)\n","testing_accuracy = sentiment_pipeline.score(X_sentiment_test, y_sentiment_test)\n","print(\"Training Accuracy:\", training_accuracy)\n","print(\"Testing Accuracy:\", testing_accuracy)"]},{"cell_type":"code","execution_count":24,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Sentiment Confusion Matrix:\n","[[7683 206 813]\n"," [ 253 1389 269]\n"," [ 999 197 3996]]\n","Sentiment Classification Report:\n"," precision recall f1-score support\n","\n"," Negative 0.86 0.88 0.87 8702\n"," Neutral 0.78 0.73 0.75 1911\n"," Positive 0.79 0.77 0.78 5192\n","\n"," accuracy 0.83 15805\n"," macro avg 0.81 0.79 0.80 15805\n","weighted avg 0.83 0.83 0.83 15805\n","\n","Overall Accuracy: 0.8268269534957292\n"]}],"source":["# Create the confusion matrix\n","confusion_mat = confusion_matrix(y_sentiment_test, sentiment_predictions)\n","\n","# Print the confusion matrix\n","print(\"Sentiment Confusion Matrix:\")\n","print(confusion_mat)\n","\n","# Print a classification report\n","print(\"Sentiment Classification Report:\")\n","print(classification_report(y_sentiment_test, sentiment_predictions))\n","\n","# Print the overall accuracy\n","accuracy = accuracy_score(y_sentiment_test, sentiment_predictions)\n","print(\"Overall Accuracy:\", accuracy)"]},{"cell_type":"markdown","metadata":{},"source":["Stopwords"]},{"cell_type":"code","execution_count":25,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["c:\\Users\\MJSmi\\anaconda3\\envs\\dev\\lib\\site-packages\\sklearn\\svm\\_classes.py:32: FutureWarning: The default value of `dual` will change from `True` to `'auto'` in 1.5. Set the value of `dual` explicitly to suppress the warning.\n"," warnings.warn(\n"]},{"name":"stdout","output_type":"stream","text":["['Depression' 'Normal' 'Bipolar' ... 'Normal' 'Depression' 'Normal']\n"]}],"source":["status_pipeline_stopwords = Pipeline([\n"," ('tfidf', TfidfVectorizer(stop_words=\"english\")),\n"," ('classifier', LinearSVC())\n","])\n","\n","status_pipeline_stopwords.fit(X_status_train, y_status_train)\n","\n","# Print the results\n","status_predictions_stopwords = status_pipeline_stopwords.predict(X_status_test)\n","print(status_predictions_stopwords)"]},{"cell_type":"code","execution_count":26,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":[" X_test \\\n","39488 i m and i have bad anxiety debilitating i haven t been able to keep a job since i wa so pretty much ever i wake up early morning hour before i have to be my heart race i black out i puke cough my ... \n","1480 Jessica starred in the musical \"Legally Blonde\" as Elle Woods, the female lead in the drama \n","47948 I’m so tired I just don’t see a point to my suffering, I don’t understand it, I want to know what I’ve done so wrong to deserve everything, I’d say sorry and do anything to make it stop! I already... \n","19681 My life 1 year ago was completely different. I was such a chick magnet and everyone loved me i had so many friends and in this past year i lost everything. I have no friends so when i feel sad i d... \n","37629 RT @no_onespecixl: Know one enjoys my company and I just make everyone miserable, everyone is better off wi \n","... ... \n","7162 Small context: To anyone who is curious I am 16 years old 1. It feels hard to express my opinion on the internet because every time I do I always get bashed for it. I am starting to doubt myself, ... \n","45963 Disengaging from my friends Fuck. Fuck man. I feel like shit. I feel like I'm pushing away the people who can help me the most because I feel like a drama queen and I feel like I am a burden to th... \n","6034 what if we both get into a gang of criminals: I took your heart, and you took my heart? \n","47746 Back in this stupid lonely hole with no one to share my thoughts with Sorry In advanced for the rant of anyone even reads this lol, 19m, I used to use this app a lot to talk people out of hurting ... \n","44623 all work and no play doe not a happy linda make can t wait for the holiday \n","\n"," Predicted_y Actual_y \n","39488 Depression Depression \n","1480 Normal Normal \n","47948 Bipolar Depression \n","19681 Suicidal Suicidal \n","37629 Suicidal Suicidal \n","... ... ... \n","7162 Suicidal Suicidal \n","45963 Bipolar Bipolar \n","6034 Normal Normal \n","47746 Depression Depression \n","44623 Normal Normal \n","\n","[13171 rows x 3 columns]\n"]}],"source":["# Show the test data and corresponding predictions\n","stauts_stopwords_test_results = pd.DataFrame({'X_test': X_status_test, 'Predicted_y': status_predictions_stopwords, 'Actual_y': y_stauts_test})\n","print(stauts_stopwords_test_results)"]},{"cell_type":"code","execution_count":27,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Training Accuracy: 0.9371551505947862\n","Testing Accuracy: 0.7584845493888087\n"]}],"source":["# Validate the model by checking the model's training and testing accuracy.\n","training_accuracy = status_pipeline_stopwords.score(X_status_train, y_status_train)\n","testing_accuracy = status_pipeline_stopwords.score(X_status_test, y_stauts_test)\n","print(\"Training Accuracy:\", training_accuracy)\n","print(\"Testing Accuracy:\", testing_accuracy)"]},{"cell_type":"code","execution_count":28,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Status Confusion Matrix:\n","[[ 726 7 109 65 6 24 6]\n"," [ 18 505 74 35 5 14 20]\n"," [ 65 44 2728 197 8 33 804]\n"," [ 28 7 122 3856 3 41 80]\n"," [ 4 3 74 24 147 7 11]\n"," [ 52 14 131 97 5 297 25]\n"," [ 14 11 699 177 2 16 1731]]\n","Status Classification Report:\n"," precision recall f1-score support\n","\n"," Anxiety 0.80 0.77 0.78 943\n"," Bipolar 0.85 0.75 0.80 671\n"," Depression 0.69 0.70 0.70 3879\n"," Normal 0.87 0.93 0.90 4137\n","Personality disorder 0.84 0.54 0.66 270\n"," Stress 0.69 0.48 0.56 621\n"," Suicidal 0.65 0.65 0.65 2650\n","\n"," accuracy 0.76 13171\n"," macro avg 0.77 0.69 0.72 13171\n"," weighted avg 0.76 0.76 0.76 13171\n","\n","Overall Accuracy: 0.7584845493888087\n"]}],"source":["# Create the confusion matrix\n","confusion_mat = confusion_matrix(y_stauts_test, status_predictions_stopwords)\n","\n","# Print the confusion matrix\n","print(\"Status Confusion Matrix:\")\n","print(confusion_mat)\n","\n","# Print a classification report\n","print(\"Status Classification Report:\")\n","print(classification_report(y_stauts_test, status_predictions_stopwords))\n","\n","# Print the overall accuracy\n","accuracy = accuracy_score(y_stauts_test, status_predictions_stopwords)\n","print(\"Overall Accuracy:\", accuracy)"]},{"cell_type":"code","execution_count":30,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["c:\\Users\\MJSmi\\anaconda3\\envs\\dev\\lib\\site-packages\\sklearn\\svm\\_classes.py:32: FutureWarning: The default value of `dual` will change from `True` to `'auto'` in 1.5. Set the value of `dual` explicitly to suppress the warning.\n"," warnings.warn(\n"]},{"name":"stdout","output_type":"stream","text":["['Positive' 'Positive' 'Negative' ... 'Negative' 'Neutral' 'Negative']\n"]}],"source":["sentiment_pipeline_stopwords = Pipeline([\n"," ('tfidf', TfidfVectorizer(stop_words=\"english\")),\n"," ('classifier', LinearSVC())\n","])\n","\n","sentiment_pipeline_stopwords.fit(X_sentiment_train, y_sentiment_train)\n","\n","# Print the results\n","sentiment_predictions_stopwords = sentiment_pipeline_stopwords.predict(X_sentiment_test)\n","print(sentiment_predictions_stopwords)"]},{"cell_type":"code","execution_count":31,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":[" X_test \\\n","39488 i m and i have bad anxiety debilitating i haven t been able to keep a job since i wa so pretty much ever i wake up early morning hour before i have to be my heart race i black out i puke cough my ... \n","1480 Jessica starred in the musical \"Legally Blonde\" as Elle Woods, the female lead in the drama \n","47948 I’m so tired I just don’t see a point to my suffering, I don’t understand it, I want to know what I’ve done so wrong to deserve everything, I’d say sorry and do anything to make it stop! I already... \n","19681 My life 1 year ago was completely different. I was such a chick magnet and everyone loved me i had so many friends and in this past year i lost everything. I have no friends so when i feel sad i d... \n","37629 RT @no_onespecixl: Know one enjoys my company and I just make everyone miserable, everyone is better off wi \n","... ... \n","20009 My fiancee and I got into another argument least night. A lot of shit got said and I ran once with the intention of just throwing myself of the bridge over the highway. He wrangled me back in and ... \n","27499 I felt the tension and the seriousness. Usually during lockdown drills things aren't too serious because we're high schoolers. We mess around because we know nothing is wrong. But this drill was d... \n","24247 I am always unhappy. I lost my condo which I owned. It was my mistake by selling it without realizing I owned it. My relative threw away all of my belongings in my apartment at the time I was goin... \n","2421 forgot today gosh \n","730 It's really restless since yesterday thinking about another second in class 12, preparations for SM are still a little bit, there's a lot to worry about \n","\n"," Predicted_y Actual_y \n","39488 Positive Positive \n","1480 Positive Positive \n","47948 Negative Negative \n","19681 Negative Negative \n","37629 Neutral Positive \n","... ... ... \n","20009 Negative Negative \n","27499 Positive Positive \n","24247 Negative Negative \n","2421 Neutral Neutral \n","730 Negative Negative \n","\n","[15805 rows x 3 columns]\n"]}],"source":["# Show the test data and corresponding predictions\n","sentiment_stopwords_test_results = pd.DataFrame({'X_test': X_sentiment_test, 'Predicted_y': sentiment_predictions_stopwords, 'Actual_y': y_sentiment_test})\n","print(sentiment_stopwords_test_results)"]},{"cell_type":"code","execution_count":32,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Training Accuracy: 0.9489369779802581\n","Testing Accuracy: 0.808731414109459\n"]}],"source":["# Validate the model by checking the model's training and testing accuracy.\n","training_accuracy = sentiment_pipeline_stopwords.score(X_sentiment_train, y_sentiment_train)\n","testing_accuracy = sentiment_pipeline_stopwords.score(X_sentiment_test, y_sentiment_test)\n","print(\"Training Accuracy:\", training_accuracy)\n","print(\"Testing Accuracy:\", testing_accuracy)"]},{"cell_type":"code","execution_count":33,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Sentiment Confusion Matrix:\n","[[7544 238 920]\n"," [ 271 1350 290]\n"," [1048 256 3888]]\n","Sentiment Classification Report:\n"," precision recall f1-score support\n","\n"," Negative 0.85 0.87 0.86 8702\n"," Neutral 0.73 0.71 0.72 1911\n"," Positive 0.76 0.75 0.76 5192\n","\n"," accuracy 0.81 15805\n"," macro avg 0.78 0.77 0.78 15805\n","weighted avg 0.81 0.81 0.81 15805\n","\n","Overall Accuracy: 0.808731414109459\n"]}],"source":["# Create the confusion matrix\n","confusion_mat = confusion_matrix(y_sentiment_test, sentiment_predictions_stopwords)\n","\n","# Print the confusion matrix\n","print(\"Sentiment Confusion Matrix:\")\n","print(confusion_mat)\n","\n","# Print a classification report\n","print(\"Sentiment Classification Report:\")\n","print(classification_report(y_sentiment_test, sentiment_predictions_stopwords))\n","\n","# Print the overall accuracy\n","accuracy = accuracy_score(y_sentiment_test, sentiment_predictions_stopwords)\n","print(\"Overall Accuracy:\", accuracy)"]},{"cell_type":"markdown","metadata":{"id":"cSTS3GTx9haK"},"source":["## Open AI"]},{"cell_type":"code","execution_count":34,"metadata":{"executionInfo":{"elapsed":7,"status":"ok","timestamp":1721783559373,"user":{"displayName":"Kanish Mohan","userId":"03360479849440540993"},"user_tz":240},"id":"UN7r6Ge39haK"},"outputs":[{"name":"stdout","output_type":"stream","text":["\n"]}],"source":["# Load environment variables.\n","load_dotenv()\n","\n","# Set the model name for our LLMs.\n","OPENAI_MODEL = \"gpt-3.5-turbo\"\n","\n","# Store the API key in a variable.\n","OPENAI_API_KEY = os.getenv(\"OPENAI_API_KEY\")\n","\n","print(type(OPENAI_API_KEY))"]},{"cell_type":"code","execution_count":35,"metadata":{},"outputs":[],"source":["llm=ChatOpenAI(openai_api_key=OPENAI_API_KEY, model_name=OPENAI_MODEL, temperature=0.3)\n","simple_prompt = ChatPromptTemplate.from_template(\"{query}\")"]},{"cell_type":"code","execution_count":36,"metadata":{},"outputs":[],"source":["def mental_health_chatbot(statement):\n"," format = \"\"\"\n"," You are a clinical psychologist. Answer only questions that would be relevant to mental health.\n"," If you don't know the answer, say you don't know\n"," If the human asks questions not related to mental health, remind them that your job is to help\n"," them understand their mental health status, and ask them for a question on that topic. If they ask a question which\n"," there is not enough information to answer, tell them you don't know and don't make up an\n"," answer.\n","\n"," Question: {query}\n"," Answer:\n"," \"\"\"\n","\n","\n"," #contstruct the prompt template\n","\n"," prompt_template = PromptTemplate(\n"," input_variables=[\"query\"],\n"," template=format\n","\n"," )\n","\n"," #contstuct a chain using this template\n"," chain = LLMChain(llm=llm, prompt=prompt_template) \n"," statement = statement\n"," status = status_pipeline.predict([statement])\n"," sentiment = sentiment_pipeline.predict([statement])\n"," query = {\"query\":f'The statement from the user is:{statement}\\n The mental health status of the user is/has:{status}\\n The sentiment of the statement is:{sentiment}\\n Does the user require any assistance? If so what would you suggest?'}\n"," #run the chain\n","\n","\n"," result = chain.invoke(query)\n"," return result[\"text\"]"]},{"cell_type":"markdown","metadata":{"id":"OQiYoYdO9haL"},"source":["## Gradio App"]},{"cell_type":"markdown","metadata":{"id":"ydFJqwsuAyRV"},"source":["This section of code involves a user interface where users input statements about their mental state. The code then processes these inputs and returns corresponding mental health statuses using two display textbox components. The purpose is to predict and provide insights into the user's mental state based on their statements.\n","\n","The data source consolidates information from various Kaggle datasets centered on different facets of mental health. It draws from diverse platforms such as social media, Reddit, Twitter, and more. Each entry is labeled with a specific mental health status, making it an invaluable resource for in-depth analyses, insights into mental health trends, patterns, and predictive modeling.\n","https://www.kaggle.com/datasets/suchintikasarkar/sentiment-analysis-for-mental-health"]},{"cell_type":"markdown","metadata":{},"source":["Example Statements\n","* \"I have been feeling very anxious and stressed lately.\"\n","* \"I am experiencing severe depression and can't find motivation.\"\n","* \"I feel normal and haven't had any mental health issues recently.\"\n","* \"I've had suicidal thoughts and feel hopeless.\"\n","* \"I'm struggling with bipolar disorder and my mood swings are intense.\"\n","* \"I don't know what I'm doing with my life, and I feel lost and alone.\"\n","* \"I don't know if I have a mental illness. I just have trouble expressing myself and need help.\""]},{"cell_type":"markdown","metadata":{},"source":["Chatbot Responses\n","* \"Yes, it sounds like the user may benefit from some assistance in managing their anxiety and stress. I would suggest seeking support from a mental health professional, such as a therapist or psychologist, who can help develop coping strategies and provide support. Additionally, practicing relaxation techniques, mindfulness, and engaging in regular physical activity can also help reduce anxiety and stress levels. It's important to take care of your mental health, so don't hesitate to reach out for help.\"\n","* \"Yes, it sounds like the user is experiencing severe depression and a lack of motivation. I would suggest seeking help from a mental health professional, such as a therapist or psychiatrist, to discuss treatment options such as therapy, medication, or other interventions that may help improve their symptoms. It's important to reach out for support and not try to handle these feelings alone.\"\n","* \"It's great to hear that you feel normal and haven't had any recent mental health issues. However, since you mentioned having bipolar disorder, it's important to continue monitoring your mental health and seeking support when needed. I would suggest staying in touch with your mental health provider, practicing self-care, and reaching out for help if you notice any changes in your mood or behavior. It's always good to have a support system in place.\"\n","* \"Yes, the user definitely requires assistance. I would suggest that they seek help from a mental health professional, such as a therapist or psychiatrist, to address their suicidal thoughts and feelings of hopelessness. It's important to take these thoughts seriously and get the support needed to work through them.\"\n","* \"Yes, it sounds like the user could benefit from seeking assistance from a mental health professional, such as a psychiatrist or therapist, who can help with managing the intense mood swings associated with bipolar disorder. It's important to have a proper diagnosis and treatment plan in place to help manage symptoms and improve overall well-being. I would suggest reaching out to a mental health provider for further evaluation and support.\"\n","* \"Yes, it sounds like the user may be experiencing symptoms of depression. I would suggest seeking help from a mental health professional, such as a therapist or psychologist, to explore these feelings further and develop coping strategies. It's important to remember that you are not alone and there are resources available to support you.\"\n","* \"Yes, it sounds like the user may benefit from seeking help from a mental health professional, such as a therapist or psychologist, to further explore their difficulties with expressing themselves and determine if they may have a mental illness such as bipolar disorder. I would suggest reaching out to a mental health provider for an evaluation and to discuss treatment options. It's important to prioritize your mental health and seek support when needed.\""]},{"cell_type":"code","execution_count":37,"metadata":{"id":"Ms8qPG8bDoab"},"outputs":[{"name":"stdout","output_type":"stream","text":["Running on local URL: http://127.0.0.1:7860\n","\n","To create a public link, set `share=True` in `launch()`.\n"]},{"data":{"text/html":[""],"text/plain":[""]},"metadata":{},"output_type":"display_data"},{"data":{"text/plain":[]},"execution_count":37,"metadata":{},"output_type":"execute_result"},{"name":"stderr","output_type":"stream","text":["c:\\Users\\MJSmi\\anaconda3\\envs\\dev\\lib\\site-packages\\langchain_core\\_api\\deprecation.py:139: LangChainDeprecationWarning: The class `LLMChain` was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use RunnableSequence, e.g., `prompt | llm` instead.\n"," warn_deprecated(\n"]}],"source":["# Define Gradio interface\n","app = gr.Interface(\n"," fn=mental_health_chatbot,\n"," inputs=gr.Textbox(label=\"Enter your statement\"), # Use gr.inputs.Textbox\n"," outputs=gr.Textbox(label=\"Mental Health Chatbot Response\", show_copy_button=True) # Use gr.outputs.Textbox\n",")\n","\n","# Step 4: Launch the Gradio app\n","app.launch(show_error=True)\n"]}],"metadata":{"colab":{"provenance":[]},"kernelspec":{"display_name":"dev","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.13"}},"nbformat":4,"nbformat_minor":0}