From f0746cd0aa508c310caa1809d8318d5aa8c82530 Mon Sep 17 00:00:00 2001 From: biplob <110578485+bks1984@users.noreply.github.com> Date: Sat, 8 Nov 2025 23:24:03 +0530 Subject: [PATCH 1/3] Created using Colab --- medical_assistant_project.ipynb | 7006 +++++++++++++++++++++++++++++++ 1 file changed, 7006 insertions(+) create mode 100644 medical_assistant_project.ipynb diff --git a/medical_assistant_project.ipynb b/medical_assistant_project.ipynb new file mode 100644 index 0000000..c0a2612 --- /dev/null +++ b/medical_assistant_project.ipynb @@ -0,0 +1,7006 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3CNz35ia6Bz3" + }, + "source": [ + "## Problem Statement" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CkRbhMJH6Bz3" + }, + "source": [ + "### Business Context" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3PBm5xaj6Bz3" + }, + "source": [ + "The healthcare industry is rapidly evolving, with professionals facing increasing challenges in managing vast volumes of medical data while delivering accurate and timely diagnoses. The need for quick access to comprehensive, reliable, and up-to-date medical knowledge is critical for improving patient outcomes and ensuring informed decision-making in a fast-paced environment.\n", + "\n", + "Healthcare professionals often encounter information overload, struggling to sift through extensive research and data to create accurate diagnoses and treatment plans. This challenge is amplified by the need for efficiency, particularly in emergencies, where time-sensitive decisions are vital. Furthermore, access to trusted, current medical information from renowned manuals and research papers is essential for maintaining high standards of care.\n", + "\n", + "To address these challenges, healthcare centers can focus on integrating systems that streamline access to medical knowledge, provide tools to support quick decision-making, and enhance efficiency. Leveraging centralized knowledge platforms and ensuring healthcare providers have continuous access to reliable resources can significantly improve patient care and operational effectiveness." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1xDPsqvO6Bz5" + }, + "source": [ + "**Common Questions to Answer**\n", + "\n", + "1. **Critical Care Protocols:** \"What is the protocol for managing sepsis in a critical care unit?\"\n", + "\n", + "2. **General Surgery:** \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\"\n", + "\n", + "3. **Dermatology:** \"What are the effective treatments or solutions for addressing sudden patchy hair loss, commonly seen as localized bald spots on the scalp, and what could be the possible causes behind it?\"\n", + "\n", + "4. **Neurology:** \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CARPKFwm6Bz4" + }, + "source": [ + "### Objective" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dOElOEXq6Bz4" + }, + "source": [ + "As an AI specialist, your task is to develop a RAG-based AI solution using renowned medical manuals to address healthcare challenges. The objective is to **understand** issues like information overload, **apply** AI techniques to streamline decision-making, **analyze** its impact on diagnostics and patient outcomes, **evaluate** its potential to standardize care practices, and **create** a functional prototype demonstrating its feasibility and effectiveness." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "by9EvAnkSpZf" + }, + "source": [ + "### Data Description" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Jw5LievCSru2" + }, + "source": [ + "The **Merck Manuals** are medical references published by the American pharmaceutical company Merck & Co., that cover a wide range of medical topics, including disorders, tests, diagnoses, and drugs. The manuals have been published since 1899, when Merck & Co. was still a subsidiary of the German company Merck.\n", + "\n", + "The manual is provided as a PDF with over 4,000 pages divided into 23 sections." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lnwETBOE6Bz5" + }, + "source": [ + "## Installing and Importing Necessary Libraries and Dependencies" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "q4GgLhZhUM4V", + "outputId": "81845f22-556a-4a3d-fd43-64c05a16b1de" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/449.8 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m225.3/449.8 kB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m449.8/449.8 kB\u001b[0m \u001b[31m7.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "langchain-chroma 1.0.0 requires chromadb<2.0.0,>=1.0.20, but you have chromadb 1.0.15 which is incompatible.\n", + "langchain-chroma 1.0.0 requires langchain-core<2.0.0,>=1.0.0, but you have langchain-core 0.3.79 which is incompatible.\u001b[0m\u001b[31m\n", + "\u001b[0m" + ] + } + ], + "source": [ + "# Install required libraries\n", + "!pip install -q langchain_community==0.3.27 \\\n", + " langchain==0.3.27 \\\n", + " chromadb==1.0.15 \\\n", + " pymupdf==1.26.3 \\\n", + " tiktoken==0.9.0 \\\n", + " datasets==4.0.0 \\\n", + " evaluate==0.4.5 \\\n", + " langchain_openai==0.3.30" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mDp-EYZH-69E" + }, + "source": [ + "**Note**:\n", + "- After running the above cell, kindly restart the runtime (for Google Colab) or notebook kernel (for Jupyter Notebook), and run all cells sequentially from the next cell.\n", + "- On executing the above line of code, you might see a warning regarding package dependencies. This error message can be ignored as the above code ensures that all necessary libraries and their dependencies are maintained to successfully execute the code in ***this notebook***." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "RTY9GN4oWK3g" + }, + "outputs": [], + "source": [ + "# Import core libraries\n", + "import os # Interact with the operating system (e.g., set environment variables)\n", + "import json # Read/write JSON data\n", + "import requests # Make HTTP requests (e.g., API calls); ignore type checker\n", + "\n", + "# Import libraries for working with PDFs and OpenAI\n", + "from langchain.document_loaders import PyMuPDFLoader # Load and extract text from PDF files\n", + "# from langchain_community.document_loaders import PyPDFLoader # Load and extract text from PDF files\n", + "from openai import OpenAI # Access OpenAI's models and services\n", + "\n", + "# Import libraries for processing dataframes and text\n", + "import tiktoken # Tokenizer used for counting and splitting text for models\n", + "import pandas as pd # Load, manipulate, and analyze tabular data\n", + "\n", + "# Import LangChain components for data loading, chunking, embedding, and vector DBs\n", + "from langchain.text_splitter import RecursiveCharacterTextSplitter # Break text into overlapping chunks for processing\n", + "from langchain.embeddings.openai import OpenAIEmbeddings # Create vector embeddings using OpenAI's models # type: ignore\n", + "from langchain.vectorstores import Chroma # Store and search vector embeddings using Chroma DB # type: ignore\n", + "\n", + "from datasets import Dataset # Used to structure the input (questions, answers, contexts etc.) in tabular format\n", + "from langchain_openai import ChatOpenAI # This is needed since LLM is used in metric computation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TtZWqj0wFTS1" + }, + "source": [ + "## Question Answering using LLM" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MfNKCvuzWSI-" + }, + "source": [ + "### OpenAI API Calling and Downloading and Loading the model\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "eMi5GjvNBrlO" + }, + "outputs": [], + "source": [ + "# Load the JSON file and extract values\n", + "file_name = \"config.json\" # Name of the configuration file\n", + "with open(file_name, 'r') as file: # Open the config file in read mode\n", + " config = json.load(file) # Load the JSON content as a dictionary\n", + " OPENAI_API_KEY = config.get(\"OPENAI_API_KEY\") # Extract the API key from the config\n", + " OPENAI_API_BASE = config.get(\"OPENAI_API_BASE\") # Extract the OpenAI base URL from the config\n", + "\n", + "# Store API credentials in environment variables\n", + "os.environ['OPENAI_API_KEY'] = OPENAI_API_KEY # Set API key as environment variable\n", + "os.environ[\"OPENAI_BASE_URL\"] = OPENAI_API_BASE # Set API base URL as environment variable\n", + "\n", + "# Initialize OpenAI client\n", + "client = OpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_API_BASE) # Create an instance of the OpenAI client" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "Q9vjnCz0WSJC" + }, + "outputs": [], + "source": [ + "# Define a function to get a response\n", + "def ask_llm(user_prompt, max_tokens=512, temperature=0, top_p=0.95): # Complete the code to set default paramenters\n", + " # Create a chat completion using the OpenAI client\n", + " completion = client.chat.completions.create(\n", + " model=\"gpt-4o-mini\", # Complete the code by specifying the model to be used.\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": user_prompt} # User prompt is the input/query to respond to\n", + " ],\n", + " max_tokens=max_tokens, # Max number of tokens to generate in the response\n", + " temperature=temperature, # Controls randomness in output\n", + " top_p=top_p # Controls diversity via nucleus sampling\n", + " )\n", + " return completion.choices[0].message.content # Return the text content from the model's reply" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "K8YgK91SFjVY" + }, + "source": [ + "### Question 1: What is the protocol for managing sepsis in a critical care unit?" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "u2Q_QZ4OFjVa", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "3f53c399-5a2e-4a32-d696-14c6634039b6" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"Managing sepsis in a critical care unit involves a systematic approach that includes early recognition, prompt intervention, and ongoing monitoring. The following is a general protocol based on current guidelines, such as those from the Surviving Sepsis Campaign:\\n\\n### 1. **Early Recognition**\\n - **Identify Symptoms**: Look for signs of infection (fever, chills, tachycardia, tachypnea) and organ dysfunction (altered mental status, hypotension, oliguria).\\n - **Use Screening Tools**: Utilize tools like the qSOFA (quick Sequential Organ Failure Assessment) or SIRS (Systemic Inflammatory Response Syndrome) criteria to identify patients at risk.\\n\\n### 2. **Initial Assessment**\\n - **Obtain Vital Signs**: Monitor blood pressure, heart rate, respiratory rate, and temperature.\\n - **Assess Organ Function**: Evaluate renal function (urine output, creatinine), liver function (bilirubin, liver enzymes), and coagulation status (platelets, INR).\\n\\n### 3. **Immediate Interventions**\\n - **Fluid Resuscitation**: Administer intravenous (IV) fluids (crystalloids) promptly, typically 30 mL/kg within the first 3 hours.\\n - **Antibiotic Therapy**: Start broad-spectrum IV antibiotics within 1 hour of recognition of sepsis. Adjust based on culture results and sensitivity.\\n - **Source Control**: Identify and control the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n### 4. **Monitoring and Support**\\n - **Hemodynamic Monitoring**: Use invasive monitoring (e.g., arterial line, central venous pressure) if necessary to guide fluid resuscitation and vasopressor therapy.\\n - **Vasopressors**: If hypotension persists despite adequate fluid resuscitation, initiate vasopressors (e.g., norepinephrine) to maintain mean arterial pressure (MAP) ≥ 65 mmHg.\\n - **Oxygenation and Ventilation**: Provide supplemental oxygen and consider mechanical ventilation if respiratory failure occurs.\\n\\n### 5. **Ongoing Management**\\n - **Reassess Fluid Status**: Continuously evaluate the patient's response to fluids and adjust as necessary.\\n - **Monitor Laboratory Values**: Regularly check lactate levels, complete blood counts, and organ function tests to assess the patient's status.\\n - **Nutritional Support**: Initiate enteral nutrition as soon as feasible, typically within 24\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 7 + } + ], + "source": [ + "question_1 = \"What is the protocol for managing sepsis in a critical care unit?\"\n", + "base_prompt_response_1=ask_llm(question_1)\n", + "base_prompt_response_1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J6yxICeVFjVc" + }, + "source": [ + "### Question 2: What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "WO1OTE9CFjVd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "eeee39fb-3d62-4a5d-e036-08c58622ec45" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"Common symptoms of appendicitis include:\\n\\n1. **Abdominal Pain**: Typically starts around the navel and then moves to the lower right abdomen.\\n2. **Loss of Appetite**: A sudden decrease in appetite is common.\\n3. **Nausea and Vomiting**: Often follows the onset of abdominal pain.\\n4. **Fever**: A low-grade fever may develop.\\n5. **Constipation or Diarrhea**: Changes in bowel habits can occur.\\n6. **Abdominal Swelling**: In some cases, the abdomen may become swollen.\\n\\nAppendicitis cannot be effectively treated with medication alone. The standard treatment is surgical removal of the appendix, known as an **appendectomy**. This can be performed using two main techniques:\\n\\n1. **Open Appendectomy**: A larger incision is made in the lower right abdomen to remove the appendix.\\n2. **Laparoscopic Appendectomy**: This is a minimally invasive procedure where several small incisions are made, and the appendix is removed with the aid of a camera and special instruments.\\n\\nLaparoscopic appendectomy is often preferred due to its benefits, including less postoperative pain, shorter recovery time, and minimal scarring. However, the choice of procedure may depend on the patient's specific situation and the surgeon's expertise.\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "question_2 = \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\" #Complete the code to define the question #2\n", + "base_prompt_response_2=ask_llm(question_2) #Complete the code to pass the user input\n", + "base_prompt_response_2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oflaoOGiFjVd" + }, + "source": [ + "### Question 3: What are the effective treatments or solutions for addressing sudden patchy hair loss, commonly seen as localized bald spots on the scalp, and what could be the possible causes behind it?" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "id": "JFm5Tq7RFjVe", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "fd5f4519-f515-4c51-d2ba-bbffc330456b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Sudden patchy hair loss, often referred to as alopecia areata, can manifest as localized bald spots on the scalp or other areas of the body. Here are some effective treatments and solutions, as well as potential causes behind this condition:\\n\\n### Possible Causes:\\n1. **Autoimmune Disorders**: The immune system mistakenly attacks hair follicles, leading to hair loss.\\n2. **Genetics**: A family history of alopecia or other autoimmune conditions can increase the risk.\\n3. **Stress**: Physical or emotional stress can trigger hair loss in some individuals.\\n4. **Hormonal Changes**: Changes in hormones, such as those occurring during pregnancy or menopause, can contribute.\\n5. **Nutritional Deficiencies**: Lack of essential nutrients, such as iron, zinc, or vitamins, can affect hair health.\\n6. **Infections**: Fungal infections like tinea capitis can cause patchy hair loss.\\n7. **Other Medical Conditions**: Conditions like thyroid disease or vitiligo can also lead to hair loss.\\n\\n### Effective Treatments:\\n1. **Topical Corticosteroids**: These are often the first line of treatment for alopecia areata. They help reduce inflammation and suppress the immune response.\\n \\n2. **Minoxidil (Rogaine)**: This over-the-counter topical treatment can stimulate hair growth and is sometimes used in conjunction with other therapies.\\n\\n3. **Intralesional Corticosteroid Injections**: For more severe cases, corticosteroids can be injected directly into the bald patches to promote hair regrowth.\\n\\n4. **Immunotherapy**: This involves applying a chemical solution (like diphencyprone) to the scalp to provoke an allergic reaction, which may help stimulate hair growth.\\n\\n5. **Oral Medications**: In some cases, oral corticosteroids or other immunosuppressive drugs may be prescribed for extensive hair loss.\\n\\n6. **Light Therapy (Phototherapy)**: This treatment uses ultraviolet light to stimulate hair follicles and promote regrowth.\\n\\n7. **Nutritional Support**: Ensuring a balanced diet rich in vitamins and minerals can support overall hair health. Supplements may be recommended if deficiencies are identified.\\n\\n8. **Stress Management**: Techniques such as mindfulness, yoga, or therapy can help manage stress, which may contribute to hair loss.\\n\\n9. **Hairpieces or Wigs**: For those who experience significant hair loss, cosmetic solutions like wigs or hairpieces can provide a temporary solution while exploring other treatments.\\n\\n### Consultation with'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 9 + } + ], + "source": [ + "question_3 = \"What are the effective treatments or solutions for addressing sudden patchy hair loss, commonly seen as localized bald spots on the scalp, and what could be the possible causes behind it?\" #Complete the code to define the question #3\n", + "base_prompt_response_3=ask_llm(question_3) #Complete the code to pass the user input\n", + "base_prompt_response_3" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WUUqY4FbFjVe" + }, + "source": [ + "### Question 4: What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "DGmG9hYzFjVf", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "916a1a9a-95cb-45f3-d6b9-e39f173c25a8" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"The treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), can vary widely depending on the severity of the injury, the specific areas of the brain affected, and the resulting impairments. Here are some common approaches to treatment:\\n\\n1. **Emergency Care**: \\n - Immediate medical attention is crucial. This may involve stabilizing the patient, monitoring vital signs, and performing imaging studies (like CT or MRI scans) to assess the extent of the injury.\\n\\n2. **Surgical Interventions**: \\n - In some cases, surgery may be necessary to relieve pressure on the brain, remove blood clots (hematomas), or repair skull fractures.\\n\\n3. **Medication**: \\n - Medications may be prescribed to manage symptoms such as pain, seizures, or inflammation. Corticosteroids may be used to reduce swelling in the brain.\\n\\n4. **Rehabilitation**: \\n - **Physical Therapy**: To improve mobility and strength.\\n - **Occupational Therapy**: To help with daily living skills and regain independence.\\n - **Speech and Language Therapy**: To address communication difficulties and swallowing issues.\\n - **Neuropsychological Therapy**: To help with cognitive rehabilitation, including memory, attention, and problem-solving skills.\\n\\n5. **Psychological Support**: \\n - Counseling or therapy may be beneficial for coping with emotional and psychological challenges following a brain injury, such as depression, anxiety, or changes in personality.\\n\\n6. **Lifestyle Modifications**: \\n - Patients may need to make adjustments to their daily routines, including rest, nutrition, and avoiding activities that could lead to further injury.\\n\\n7. **Supportive Care**: \\n - Family support and education about the injury and its effects can be crucial for recovery. Support groups may also be helpful.\\n\\n8. **Long-term Management**: \\n - Ongoing follow-up with healthcare providers to monitor recovery and manage any long-term effects or complications.\\n\\n9. **Assistive Devices**: \\n - Depending on the nature of the impairment, assistive devices or technology may be recommended to aid in communication, mobility, or daily activities.\\n\\n10. **Alternative Therapies**: \\n - Some individuals may explore complementary therapies such as acupuncture, yoga, or meditation, although these should be discussed with a healthcare provider.\\n\\nIt's important for treatment plans to be individualized, taking into account the specific needs and circumstances of the person affected. A multidisciplinary team approach is often the most\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "question_4 = \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\" #Complete the code to define the question #4\n", + "base_prompt_response_4=ask_llm(question_4) #Complete the code to pass the user input\n", + "base_prompt_response_4" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AxbCD0S56VSj" + }, + "source": [ + "### Storing the generated outputs from the base prompt\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "id": "MKc_HzFI6eRb", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "outputId": "61d2f247-0aff-4547-e253-1b75bb3b1b12" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " questions \\\n", + "0 What is the protocol for managing sepsis in a ... \n", + "1 What are the common symptoms for appendicitis,... \n", + "2 What are the effective treatments or solutions... \n", + "3 What treatments are recommended for a person w... \n", + "\n", + " base_prompt_responses \n", + "0 Managing sepsis in a critical care unit involv... \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... \n", + "2 Sudden patchy hair loss, often referred to as ... \n", + "3 The treatment for a person who has sustained a... " + ], + "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", + "
questionsbase_prompt_responses
0What is the protocol for managing sepsis in a ...Managing sepsis in a critical care unit involv...
1What are the common symptoms for appendicitis,...Common symptoms of appendicitis include:\\n\\n1....
2What are the effective treatments or solutions...Sudden patchy hair loss, often referred to as ...
3What treatments are recommended for a person w...The treatment for a person who has sustained a...
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "result_df", + "summary": "{\n \"name\": \"result_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"questions\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\",\n \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\",\n \"What is the protocol for managing sepsis in a critical care unit?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"base_prompt_responses\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. **Abdominal Pain**: Typically starts around the navel and then moves to the lower right abdomen.\\n2. **Loss of Appetite**: A sudden decrease in appetite is common.\\n3. **Nausea and Vomiting**: Often follows the onset of abdominal pain.\\n4. **Fever**: A low-grade fever may develop.\\n5. **Constipation or Diarrhea**: Changes in bowel habits can occur.\\n6. **Abdominal Swelling**: In some cases, the abdomen may become swollen.\\n\\nAppendicitis cannot be effectively treated with medication alone. The standard treatment is surgical removal of the appendix, known as an **appendectomy**. This can be performed using two main techniques:\\n\\n1. **Open Appendectomy**: A larger incision is made in the lower right abdomen to remove the appendix.\\n2. **Laparoscopic Appendectomy**: This is a minimally invasive procedure where several small incisions are made, and the appendix is removed with the aid of a camera and special instruments.\\n\\nLaparoscopic appendectomy is often preferred due to its benefits, including less postoperative pain, shorter recovery time, and minimal scarring. However, the choice of procedure may depend on the patient's specific situation and the surgeon's expertise.\",\n \"The treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), can vary widely depending on the severity of the injury, the specific areas of the brain affected, and the resulting impairments. Here are some common approaches to treatment:\\n\\n1. **Emergency Care**: \\n - Immediate medical attention is crucial. This may involve stabilizing the patient, monitoring vital signs, and performing imaging studies (like CT or MRI scans) to assess the extent of the injury.\\n\\n2. **Surgical Interventions**: \\n - In some cases, surgery may be necessary to relieve pressure on the brain, remove blood clots (hematomas), or repair skull fractures.\\n\\n3. **Medication**: \\n - Medications may be prescribed to manage symptoms such as pain, seizures, or inflammation. Corticosteroids may be used to reduce swelling in the brain.\\n\\n4. **Rehabilitation**: \\n - **Physical Therapy**: To improve mobility and strength.\\n - **Occupational Therapy**: To help with daily living skills and regain independence.\\n - **Speech and Language Therapy**: To address communication difficulties and swallowing issues.\\n - **Neuropsychological Therapy**: To help with cognitive rehabilitation, including memory, attention, and problem-solving skills.\\n\\n5. **Psychological Support**: \\n - Counseling or therapy may be beneficial for coping with emotional and psychological challenges following a brain injury, such as depression, anxiety, or changes in personality.\\n\\n6. **Lifestyle Modifications**: \\n - Patients may need to make adjustments to their daily routines, including rest, nutrition, and avoiding activities that could lead to further injury.\\n\\n7. **Supportive Care**: \\n - Family support and education about the injury and its effects can be crucial for recovery. Support groups may also be helpful.\\n\\n8. **Long-term Management**: \\n - Ongoing follow-up with healthcare providers to monitor recovery and manage any long-term effects or complications.\\n\\n9. **Assistive Devices**: \\n - Depending on the nature of the impairment, assistive devices or technology may be recommended to aid in communication, mobility, or daily activities.\\n\\n10. **Alternative Therapies**: \\n - Some individuals may explore complementary therapies such as acupuncture, yoga, or meditation, although these should be discussed with a healthcare provider.\\n\\nIt's important for treatment plans to be individualized, taking into account the specific needs and circumstances of the person affected. A multidisciplinary team approach is often the most\",\n \"Managing sepsis in a critical care unit involves a systematic approach that includes early recognition, prompt intervention, and ongoing monitoring. The following is a general protocol based on current guidelines, such as those from the Surviving Sepsis Campaign:\\n\\n### 1. **Early Recognition**\\n - **Identify Symptoms**: Look for signs of infection (fever, chills, tachycardia, tachypnea) and organ dysfunction (altered mental status, hypotension, oliguria).\\n - **Use Screening Tools**: Utilize tools like the qSOFA (quick Sequential Organ Failure Assessment) or SIRS (Systemic Inflammatory Response Syndrome) criteria to identify patients at risk.\\n\\n### 2. **Initial Assessment**\\n - **Obtain Vital Signs**: Monitor blood pressure, heart rate, respiratory rate, and temperature.\\n - **Assess Organ Function**: Evaluate renal function (urine output, creatinine), liver function (bilirubin, liver enzymes), and coagulation status (platelets, INR).\\n\\n### 3. **Immediate Interventions**\\n - **Fluid Resuscitation**: Administer intravenous (IV) fluids (crystalloids) promptly, typically 30 mL/kg within the first 3 hours.\\n - **Antibiotic Therapy**: Start broad-spectrum IV antibiotics within 1 hour of recognition of sepsis. Adjust based on culture results and sensitivity.\\n - **Source Control**: Identify and control the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n### 4. **Monitoring and Support**\\n - **Hemodynamic Monitoring**: Use invasive monitoring (e.g., arterial line, central venous pressure) if necessary to guide fluid resuscitation and vasopressor therapy.\\n - **Vasopressors**: If hypotension persists despite adequate fluid resuscitation, initiate vasopressors (e.g., norepinephrine) to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n - **Oxygenation and Ventilation**: Provide supplemental oxygen and consider mechanical ventilation if respiratory failure occurs.\\n\\n### 5. **Ongoing Management**\\n - **Reassess Fluid Status**: Continuously evaluate the patient's response to fluids and adjust as necessary.\\n - **Monitor Laboratory Values**: Regularly check lactate levels, complete blood counts, and organ function tests to assess the patient's status.\\n - **Nutritional Support**: Initiate enteral nutrition as soon as feasible, typically within 24\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 11 + } + ], + "source": [ + "# Create the DataFrame\n", + "result_df = pd.DataFrame({\n", + " \"questions\": [question_1, question_2, question_3, question_4],\n", + " \"base_prompt_responses\": [base_prompt_response_1, base_prompt_response_2, base_prompt_response_3, base_prompt_response_4]})\n", + "\n", + "# Display the DataFrame\n", + "result_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KQcOiXwSybZy" + }, + "source": [ + "**Observations:**\n", + "\n", + "1.The base LLM responses are clinically reasonable across critical care, surgery,dermatology, and neurology but lack citations, making them unsuitable for medical decision‑making without RAG.\n", + "\n", + "2.Generated answers are concise and structured but omit protocol depth such as dosage, contraindications, and clinical caveats typically found in medical manuals.\n", + "\n", + "3.The outputs demonstrate general medical knowledge rather than manual‑grounded evidence, confirming the need for retrieval from trusted clinical guidelines." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "g5myZ5dOOefc" + }, + "source": [ + "## Question Answering using LLM with Prompt Engineering" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dHbFv8hO7Rjv" + }, + "source": [ + "In the next step, we will use prompt engineering to check the effect of a more detailed and well-engineered prompt on the output of the model." + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "id": "VMZqTudYBCWv" + }, + "outputs": [], + "source": [ + "system_prompt = \"\"\"\n", + "You are a helpful medical research assistant. Provide concise and accurate answers based on medical knowledge.\n", + "\"\"\" #system prompt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "X69OhTHAX9xO" + }, + "source": [ + "### Defining the function to Generate a Response From the LLM" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "id": "x5Wi_VwNkipi" + }, + "outputs": [], + "source": [ + "# Define a function to get a response from the OpenAI chat model\n", + "def response(system_prompt, user_prompt, max_tokens=512, temperature=0, top_p=0.95): # set default paramenters\n", + " # Create a chat completion using the OpenAI client\n", + " completion = client.chat.completions.create(\n", + " model=\"gpt-4o-mini\", # specifying the model to be used.\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": system_prompt}, # System prompt sets the assistant's behavior\n", + " {\"role\": \"user\", \"content\": user_prompt} # User prompt is the input/query to respond to\n", + " ],\n", + " max_tokens=max_tokens, # Max number of tokens to generate in the response\n", + " temperature=temperature, # Controls randomness in output (0 = deterministic)\n", + " top_p=top_p # Controls diversity via nucleus sampling\n", + " )\n", + " return completion.choices[0].message.content # Return the text content from the model's reply" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9Jg3r_LWOeff" + }, + "source": [ + "### Question 1: What is the protocol for managing sepsis in a critical care unit?" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "id": "O5zh3HQoOeff", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "6f1b0eef-dfaa-4bb0-e590-83b53e3bab22" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'The management of sepsis in a critical care unit typically follows the Surviving Sepsis Campaign guidelines. Here’s a concise protocol:\\n\\n1. **Early Recognition**: Identify sepsis using clinical criteria (e.g., suspected infection plus organ dysfunction).\\n\\n2. **Immediate Resuscitation**:\\n - **Fluid Resuscitation**: Administer intravenous fluids (30 mL/kg of crystalloids within the first 3 hours).\\n - **Vasopressors**: If hypotension persists after fluid resuscitation, initiate norepinephrine to maintain mean arterial pressure (MAP) ≥ 65 mmHg.\\n\\n3. **Antibiotic Therapy**:\\n - Administer broad-spectrum antibiotics within 1 hour of sepsis recognition. Adjust based on culture results and local antibiograms.\\n\\n4. **Source Control**:\\n - Identify and manage the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n5. **Monitoring**:\\n - Continuously monitor vital signs, urine output, and laboratory parameters (e.g., lactate levels, complete blood count, renal function).\\n\\n6. **Supportive Care**:\\n - Provide supportive care, including oxygen therapy, mechanical ventilation if needed, and renal replacement therapy for acute kidney injury.\\n\\n7. **Reassessment**:\\n - Reassess hemodynamic status and organ function frequently, adjusting treatment as necessary.\\n\\n8. **Consideration of Corticosteroids**:\\n - In cases of septic shock, consider low-dose corticosteroids (e.g., hydrocortisone) if there is no response to fluid resuscitation and vasopressors.\\n\\n9. **Glucose Control**:\\n - Maintain blood glucose levels between 140-180 mg/dL.\\n\\n10. **Communication and Team Approach**:\\n - Ensure effective communication among the healthcare team and involve specialists as needed.\\n\\nThis protocol should be tailored to individual patient needs and institutional protocols. Regular training and updates on sepsis management are essential for critical care staff.'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 124 + } + ], + "source": [ + "response_with_prompt_eng_1=response(system_prompt,question_1)\n", + "response_with_prompt_eng_1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iYpyw4HjOeff" + }, + "source": [ + "### Question 2: What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "id": "WPPpDM6cOeff", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "e152969a-5fc6-4f54-cffc-108a9fccf818" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"Common symptoms of appendicitis include:\\n\\n1. Abdominal pain, often starting near the belly button and then moving to the lower right abdomen.\\n2. Loss of appetite.\\n3. Nausea and vomiting.\\n4. Fever.\\n5. Constipation or diarrhea.\\n6. Abdominal swelling.\\n\\nAppendicitis cannot be effectively treated with medication alone; it typically requires surgical intervention. The standard surgical procedure for treating appendicitis is an appendectomy, which involves the removal of the inflamed appendix. This can be performed as an open surgery or laparoscopically, depending on the case and the surgeon's preference.\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 125 + } + ], + "source": [ + "response_with_prompt_eng_2=response(system_prompt,question_2)\n", + "response_with_prompt_eng_2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dRp92JQZOeff" + }, + "source": [ + "### Question 3: What are the effective treatments or solutions for addressing sudden patchy hair loss, commonly seen as localized bald spots on the scalp, and what could be the possible causes behind it?" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": { + "id": "sC6rrtblOefg", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "c3eb7703-3724-414e-c717-e4753b0fc0f7" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Sudden patchy hair loss, often referred to as alopecia areata, can manifest as localized bald spots on the scalp. Here are effective treatments and potential causes:\\n\\n### Treatments:\\n1. **Corticosteroids**: Topical or intralesional corticosteroids can reduce inflammation and promote hair regrowth.\\n2. **Minoxidil (Rogaine)**: Over-the-counter topical solution that may stimulate hair growth.\\n3. **Immunotherapy**: Treatments like diphencyprone (DPCP) can provoke an allergic reaction to stimulate hair regrowth.\\n4. **Anthralin**: A topical medication that can help in some cases by irritating the skin.\\n5. **JAK Inhibitors**: Oral medications like tofacitinib and ruxolitinib have shown promise in clinical trials for alopecia areata.\\n6. **Light Therapy**: Phototherapy can be beneficial for some patients.\\n7. **Supportive Care**: Counseling and support groups can help manage the psychological impact of hair loss.\\n\\n### Possible Causes:\\n1. **Autoimmune Response**: The immune system mistakenly attacks hair follicles.\\n2. **Genetics**: Family history of alopecia or other autoimmune diseases may increase risk.\\n3. **Stress**: Physical or emotional stress can trigger hair loss.\\n4. **Hormonal Changes**: Changes in hormones, such as those during pregnancy or menopause, can contribute.\\n5. **Nutritional Deficiencies**: Lack of certain nutrients (e.g., iron, vitamin D) may play a role.\\n6. **Infections**: Fungal infections like tinea capitis can cause patchy hair loss.\\n\\nIf experiencing sudden hair loss, it is advisable to consult a healthcare professional or dermatologist for an accurate diagnosis and tailored treatment plan.'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 126 + } + ], + "source": [ + "response_with_prompt_eng_3=response(system_prompt,question_3)\n", + "response_with_prompt_eng_3" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AA45zwyUOefg" + }, + "source": [ + "### Question 4: What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "id": "Ue8Lk8uXOefg", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "a963bbff-e927-40df-cf52-fe174ba83fd8" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), typically involves a multidisciplinary approach and may include the following:\\n\\n1. **Emergency Care**: Immediate medical attention may involve stabilizing the patient, ensuring adequate oxygenation, and managing intracranial pressure.\\n\\n2. **Surgery**: In some cases, surgical intervention may be necessary to remove hematomas, repair skull fractures, or relieve pressure on the brain.\\n\\n3. **Medications**: \\n - **Analgesics** for pain management.\\n - **Anticonvulsants** to prevent seizures.\\n - **Diuretics** to reduce swelling.\\n - **Corticosteroids** may be used to decrease inflammation.\\n\\n4. **Rehabilitation**: \\n - **Physical therapy** to improve mobility and strength.\\n - **Occupational therapy** to assist with daily living activities.\\n - **Speech therapy** for communication and swallowing difficulties.\\n - **Neuropsychological therapy** to address cognitive and emotional challenges.\\n\\n5. **Supportive Care**: This may include counseling, support groups, and education for patients and families about the injury and recovery process.\\n\\n6. **Long-term Management**: Ongoing assessment and management of cognitive, emotional, and physical impairments may be necessary, including regular follow-ups with healthcare providers.\\n\\nThe specific treatment plan will depend on the severity of the injury, the areas of the brain affected, and the individual needs of the patient.'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 127 + } + ], + "source": [ + "response_with_prompt_eng_4=response(system_prompt,question_4)\n", + "response_with_prompt_eng_4" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QgSCW-EIDBlA" + }, + "source": [ + "### Storing the generated outputs from the structured prompts" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "id": "N1hn6-lxDKy-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "outputId": "ce4b9ed8-46da-405f-afbf-5583f64f58ed" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " questions \\\n", + "0 What is the protocol for managing sepsis in a ... \n", + "1 What are the common symptoms for appendicitis,... \n", + "2 What are the effective treatments or solutions... \n", + "3 What treatments are recommended for a person w... \n", + "\n", + " base_prompt_responses \\\n", + "0 Managing sepsis in a critical care unit involv... \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... \n", + "2 Sudden patchy hair loss, often referred to as ... \n", + "3 The treatment for a person who has sustained a... \n", + "\n", + " responses_with_prompt_eng \\\n", + "0 The management of sepsis in a critical care un... \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... \n", + "2 Sudden patchy hair loss, often referred to as ... \n", + "3 Treatment for a person who has sustained a phy... \n", + "\n", + " responses_with_RAG \n", + "0 Answer:\\nThe protocol for managing sepsis in a... \n", + "1 Answer:\\nThe common symptoms of appendicitis i... \n", + "2 Answer:\\nThe effective treatment for sudden pa... \n", + "3 Answer:\\nInitial treatment for a person who ha... " + ], + "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", + "
questionsbase_prompt_responsesresponses_with_prompt_engresponses_with_RAG
0What is the protocol for managing sepsis in a ...Managing sepsis in a critical care unit involv...The management of sepsis in a critical care un...Answer:\\nThe protocol for managing sepsis in a...
1What are the common symptoms for appendicitis,...Common symptoms of appendicitis include:\\n\\n1....Common symptoms of appendicitis include:\\n\\n1....Answer:\\nThe common symptoms of appendicitis i...
2What are the effective treatments or solutions...Sudden patchy hair loss, often referred to as ...Sudden patchy hair loss, often referred to as ...Answer:\\nThe effective treatment for sudden pa...
3What treatments are recommended for a person w...The treatment for a person who has sustained a...Treatment for a person who has sustained a phy...Answer:\\nInitial treatment for a person who ha...
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "result_df", + "summary": "{\n \"name\": \"result_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"questions\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\",\n \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\",\n \"What is the protocol for managing sepsis in a critical care unit?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"base_prompt_responses\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. **Abdominal Pain**: Typically starts around the navel and then moves to the lower right abdomen.\\n2. **Loss of Appetite**: A sudden decrease in appetite is common.\\n3. **Nausea and Vomiting**: Often follows the onset of abdominal pain.\\n4. **Fever**: A low-grade fever may develop.\\n5. **Constipation or Diarrhea**: Changes in bowel habits can occur.\\n6. **Abdominal Swelling**: In some cases, the abdomen may become swollen.\\n\\nAppendicitis cannot be effectively treated with medication alone. The standard treatment is surgical removal of the appendix, known as an **appendectomy**. This can be performed using two main techniques:\\n\\n1. **Open Appendectomy**: A larger incision is made in the lower right abdomen to remove the appendix.\\n2. **Laparoscopic Appendectomy**: This is a minimally invasive procedure where several small incisions are made, and the appendix is removed with the aid of a camera and special instruments.\\n\\nLaparoscopic appendectomy is often preferred due to its benefits, including less postoperative pain, shorter recovery time, and minimal scarring. However, the choice of procedure may depend on the patient's specific situation and the surgeon's expertise.\",\n \"The treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), can vary widely depending on the severity of the injury, the specific areas of the brain affected, and the resulting impairments. Here are some common approaches to treatment:\\n\\n1. **Emergency Care**: \\n - Immediate medical attention is crucial. This may involve stabilizing the patient, monitoring vital signs, and performing imaging studies (like CT or MRI scans) to assess the extent of the injury.\\n\\n2. **Surgical Interventions**: \\n - In some cases, surgery may be necessary to relieve pressure on the brain, remove blood clots (hematomas), or repair skull fractures.\\n\\n3. **Medication**: \\n - Medications may be prescribed to manage symptoms such as pain, seizures, or inflammation. Corticosteroids may be used to reduce swelling in the brain.\\n\\n4. **Rehabilitation**: \\n - **Physical Therapy**: To improve mobility and strength.\\n - **Occupational Therapy**: To help with daily living skills and regain independence.\\n - **Speech and Language Therapy**: To address communication difficulties and swallowing issues.\\n - **Neuropsychological Therapy**: To help with cognitive rehabilitation, including memory, attention, and problem-solving skills.\\n\\n5. **Psychological Support**: \\n - Counseling or therapy may be beneficial for coping with emotional and psychological challenges following a brain injury, such as depression, anxiety, or changes in personality.\\n\\n6. **Lifestyle Modifications**: \\n - Patients may need to make adjustments to their daily routines, including rest, nutrition, and avoiding activities that could lead to further injury.\\n\\n7. **Supportive Care**: \\n - Family support and education about the injury and its effects can be crucial for recovery. Support groups may also be helpful.\\n\\n8. **Long-term Management**: \\n - Ongoing follow-up with healthcare providers to monitor recovery and manage any long-term effects or complications.\\n\\n9. **Assistive Devices**: \\n - Depending on the nature of the impairment, assistive devices or technology may be recommended to aid in communication, mobility, or daily activities.\\n\\n10. **Alternative Therapies**: \\n - Some individuals may explore complementary therapies such as acupuncture, yoga, or meditation, although these should be discussed with a healthcare provider.\\n\\nIt's important for treatment plans to be individualized, taking into account the specific needs and circumstances of the person affected. A multidisciplinary team approach is often the most\",\n \"Managing sepsis in a critical care unit involves a systematic approach that includes early recognition, prompt intervention, and ongoing monitoring. The following is a general protocol based on current guidelines, such as those from the Surviving Sepsis Campaign:\\n\\n### 1. **Early Recognition**\\n - **Identify Symptoms**: Look for signs of infection (fever, chills, tachycardia, tachypnea) and organ dysfunction (altered mental status, hypotension, oliguria).\\n - **Use Screening Tools**: Utilize tools like the qSOFA (quick Sequential Organ Failure Assessment) or SIRS (Systemic Inflammatory Response Syndrome) criteria to identify patients at risk.\\n\\n### 2. **Initial Assessment**\\n - **Obtain Vital Signs**: Monitor blood pressure, heart rate, respiratory rate, and temperature.\\n - **Assess Organ Function**: Evaluate renal function (urine output, creatinine), liver function (bilirubin, liver enzymes), and coagulation status (platelets, INR).\\n\\n### 3. **Immediate Interventions**\\n - **Fluid Resuscitation**: Administer intravenous (IV) fluids (crystalloids) promptly, typically 30 mL/kg within the first 3 hours.\\n - **Antibiotic Therapy**: Start broad-spectrum IV antibiotics within 1 hour of recognition of sepsis. Adjust based on culture results and sensitivity.\\n - **Source Control**: Identify and control the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n### 4. **Monitoring and Support**\\n - **Hemodynamic Monitoring**: Use invasive monitoring (e.g., arterial line, central venous pressure) if necessary to guide fluid resuscitation and vasopressor therapy.\\n - **Vasopressors**: If hypotension persists despite adequate fluid resuscitation, initiate vasopressors (e.g., norepinephrine) to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n - **Oxygenation and Ventilation**: Provide supplemental oxygen and consider mechanical ventilation if respiratory failure occurs.\\n\\n### 5. **Ongoing Management**\\n - **Reassess Fluid Status**: Continuously evaluate the patient's response to fluids and adjust as necessary.\\n - **Monitor Laboratory Values**: Regularly check lactate levels, complete blood counts, and organ function tests to assess the patient's status.\\n - **Nutritional Support**: Initiate enteral nutrition as soon as feasible, typically within 24\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"responses_with_prompt_eng\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. Abdominal pain, often starting near the belly button and then moving to the lower right abdomen.\\n2. Loss of appetite.\\n3. Nausea and vomiting.\\n4. Fever.\\n5. Constipation or diarrhea.\\n6. Abdominal swelling.\\n\\nAppendicitis cannot be effectively treated with medication alone; it typically requires surgical intervention. The standard surgical procedure for treating appendicitis is an appendectomy, which involves the removal of the inflamed appendix. This can be performed as an open surgery or laparoscopically, depending on the case and the surgeon's preference.\",\n \"Treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), typically involves a multidisciplinary approach and may include the following:\\n\\n1. **Emergency Care**: Immediate medical attention may involve stabilizing the patient, ensuring adequate oxygenation, and managing intracranial pressure.\\n\\n2. **Surgery**: In some cases, surgical intervention may be necessary to remove hematomas, repair skull fractures, or relieve pressure on the brain.\\n\\n3. **Medications**: \\n - **Analgesics** for pain management.\\n - **Anticonvulsants** to prevent seizures.\\n - **Diuretics** to reduce swelling.\\n - **Corticosteroids** may be used to decrease inflammation.\\n\\n4. **Rehabilitation**: \\n - **Physical therapy** to improve mobility and strength.\\n - **Occupational therapy** to assist with daily living activities.\\n - **Speech therapy** for communication and swallowing difficulties.\\n - **Neuropsychological therapy** to address cognitive and emotional challenges.\\n\\n5. **Supportive Care**: This may include counseling, support groups, and education for patients and families about the injury and recovery process.\\n\\n6. **Long-term Management**: Ongoing assessment and management of cognitive, emotional, and physical impairments may be necessary, including regular follow-ups with healthcare providers.\\n\\nThe specific treatment plan will depend on the severity of the injury, the areas of the brain affected, and the individual needs of the patient.\",\n \"The management of sepsis in a critical care unit typically follows the Surviving Sepsis Campaign guidelines. Here\\u2019s a concise protocol:\\n\\n1. **Early Recognition**: Identify sepsis using clinical criteria (e.g., suspected infection plus organ dysfunction).\\n\\n2. **Immediate Resuscitation**:\\n - **Fluid Resuscitation**: Administer intravenous fluids (30 mL/kg of crystalloids within the first 3 hours).\\n - **Vasopressors**: If hypotension persists after fluid resuscitation, initiate norepinephrine to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n\\n3. **Antibiotic Therapy**:\\n - Administer broad-spectrum antibiotics within 1 hour of sepsis recognition. Adjust based on culture results and local antibiograms.\\n\\n4. **Source Control**:\\n - Identify and manage the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n5. **Monitoring**:\\n - Continuously monitor vital signs, urine output, and laboratory parameters (e.g., lactate levels, complete blood count, renal function).\\n\\n6. **Supportive Care**:\\n - Provide supportive care, including oxygen therapy, mechanical ventilation if needed, and renal replacement therapy for acute kidney injury.\\n\\n7. **Reassessment**:\\n - Reassess hemodynamic status and organ function frequently, adjusting treatment as necessary.\\n\\n8. **Consideration of Corticosteroids**:\\n - In cases of septic shock, consider low-dose corticosteroids (e.g., hydrocortisone) if there is no response to fluid resuscitation and vasopressors.\\n\\n9. **Glucose Control**:\\n - Maintain blood glucose levels between 140-180 mg/dL.\\n\\n10. **Communication and Team Approach**:\\n - Ensure effective communication among the healthcare team and involve specialists as needed.\\n\\nThis protocol should be tailored to individual patient needs and institutional protocols. Regular training and updates on sepsis management are essential for critical care staff.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"responses_with_RAG\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Answer:\\nThe common symptoms of appendicitis include epigastric or periumbilical pain followed by nausea, vomiting, and anorexia, with pain shifting to the right lower quadrant. Classic signs include right lower quadrant tenderness at McBurney's point, Rovsing sign, psoas sign, and obturator sign. Appendicitis cannot be cured via medicine; the treatment is surgical removal, specifically an open or laparoscopic appendectomy.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 11. Acute Abdomen & Surgical Gastroenterology, pages 163.\",\n \"Answer:\\nInitial treatment for a person who has sustained a physical injury to brain tissue includes ensuring a reliable airway and maintaining adequate ventilation, oxygenation, and blood pressure. Surgery may be needed for severe injuries to monitor and treat intracranial pressure, decompress the brain, or remove hematomas. Subsequently, many patients require rehabilitation, which should be planned early and may involve a team approach including physical, occupational, and speech therapy, as well as cognitive therapy for those with severe cognitive dysfunction.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 324. Traumatic Brain Injury, and Chapter 350. Rehabilitation.\",\n \"Answer:\\nThe protocol for managing sepsis in a critical care unit includes the following steps: \\n1. Obtain specimens of blood, body fluids, and wound sites for Gram stain and culture before starting parenteral antibiotics.\\n2. Initiate very prompt empiric antibiotic therapy immediately after suspecting sepsis, which may include gentamicin or tobramycin plus a 3rd-generation cephalosporin (e.g., cefotaxime or ceftriaxone), or ceftazidime plus a fluoroquinolone if Pseudomonas is suspected. Vancomycin should be added if resistant staphylococci or enterococci are suspected, and if there is an abdominal source, include a drug effective against anaerobes (e.g., metronidazole).\\n3. Change the antibiotic regimen based on culture and sensitivity results when available, continuing antibiotics for at least 5 days after shock resolves and evidence of infection subsides.\\n4. Drain abscesses and surgically excise necrotic tissues as necessary.\\n5. Monitor and manage blood glucose levels with a continuous IV insulin infusion to maintain glucose between 80 to 110 mg/dL.\\n6. Provide supportive care, including adequate nutrition and prevention of infections and complications.\\n\\nSource:\\nCritical Care Medicine, Chapter 222. Approach to the Critically Ill Patient.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 128 + } + ], + "source": [ + "# creating a dataframe\n", + "result_df['responses_with_prompt_eng'] = [response_with_prompt_eng_1, response_with_prompt_eng_2, response_with_prompt_eng_3, response_with_prompt_eng_4]\n", + "\n", + "# Display the DataFrame\n", + "result_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kStw6hGgyhzW" + }, + "source": [ + "**Observations**:\n", + "\n", + "1.The base LLM responses are clinically reasonable across critical care, surgery,dermatology, and neurology but lack citations, making them unsuitable for medical decision‑making without RAG.\n", + "\n", + "2.Generated answers are concise and structured but omit protocol depth such as dosage, contraindications, and clinical caveats typically found in medical manuals.\n", + "\n", + "3.The outputs demonstrate general medical knowledge rather than manual‑grounded evidence, confirming the need for retrieval from trusted clinical guidelines.\n", + "\n", + "4.The system consistently returns answers for all four use‑case questions, validating the basic inference pipeline before adding context‑grounding.\n", + "\n", + "5.The notebook setup correctly loads configs and models, but embedding/RAG steps are not yet grounded in medical source documents.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "t_O1PGdNO2M9" + }, + "source": [ + "## Data Preparation for RAG" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uTpWESc53dL9" + }, + "source": [ + "### Loading the Data" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "id": "ksv9hSCR4BM_" + }, + "outputs": [], + "source": [ + "manual_pdf_path = \"/content/medical_diagnosis_manual.pdf\" #Complete the code to define the file name" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "id": "jhf34I1eYNtR" + }, + "outputs": [], + "source": [ + "pdf_loader = PyMuPDFLoader(manual_pdf_path)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "YChLS31TxC3-" + }, + "outputs": [], + "source": [ + "manual = pdf_loader.load()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ffj0ca3eZT4u" + }, + "source": [ + "### Data Overview" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f9weTDzMxRRS" + }, + "source": [ + "#### Checking the first 5 pages" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "id": "JSOv3q2pxX4z", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "dec9cda4-d282-4e27-d978-e94c152b4028" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Page Number : 1\n", + "biplobsinha25@gmail.com\n", + "9X5AUD3EIR\n", + "ant for personal use by biplobsinha25@g\n", + "shing the contents in part or full is liable\n", + "Page Number : 2\n", + "biplobsinha25@gmail.com\n", + "9X5AUD3EIR\n", + "This file is meant for personal use by biplobsinha25@gmail.com only.\n", + "Sharing or publishing the contents in part or full is liable for legal action.\n", + "Page Number : 3\n", + "Table of Contents\n", + "1\n", + "Front ................................................................................................................................................................................................................\n", + "1\n", + "Cover .......................................................................................................................................................................................................\n", + "2\n", + "Front Matter ...........................................................................................................................................................................................\n", + "53\n", + "1 - Nutritional Disorders ...............................................................................................................................................................\n", + "53\n", + "Chapter 1. Nutrition: General Considerations .....................................................................................................................\n", + "59\n", + "Chapter 2. Undernutrition .............................................................................................................................................................\n", + "69\n", + "Chapter 3. Nutritional Support ...................................................................................................................................................\n", + "76\n", + "Chapter 4. Vitamin Deficiency, Dependency & Toxicity ..................................................................................................\n", + "99\n", + "Chapter 5. Mineral Deficiency & Toxicity ..............................................................................................................................\n", + "108\n", + "Chapter 6. Obesity & the Metabolic Syndrome ...............................................................................................................\n", + "120\n", + "2 - Gastrointestinal Disorders ..............................................................................................................................................\n", + "120\n", + "Chapter 7. Approach to the Patient With Upper GI Complaints ...............................................................................\n", + "132\n", + "Chapter 8. Approach to the Patient With Lower GI Complaints ...............................................................................\n", + "143\n", + "Chapter 9. Diagnostic & Therapeutic GI Procedures ....................................................................................................\n", + "150\n", + "Chapter 10. GI Bleeding ............................................................................................................................................................\n", + "158\n", + "Chapter 11. Acute Abdomen & Surgical Gastroenterology .........................................................................................\n", + "172\n", + "Chapter 12. Esophageal & Swallowing Disorders ..........................................................................................................\n", + "183\n", + "Chapter 13. Gastritis & Peptic Ulcer Disease ..................................................................................................................\n", + "196\n", + "Chapter 14. Bezoars & Foreign Bodies ..............................................................................................................................\n", + "199\n", + "Chapter 15. Pancreatitis ............................................................................................................................................................\n", + "206\n", + "Chapter 16. Gastroenteritis ......................................................................................................................................................\n", + "213\n", + "Chapter 17. Malabsorption Syndromes ..............................................................................................................................\n", + "225\n", + "Chapter 18. Irritable Bowel Syndrome ................................................................................................................................\n", + "229\n", + "Chapter 19. Inflammatory Bowel Disease .........................................................................................................................\n", + "241\n", + "Chapter 20. Diverticular Disease ...........................................................................................................................................\n", + "246\n", + "Chapter 21. Anorectal Disorders ............................................................................................................................................\n", + "254\n", + "Chapter 22. Tumors of the GI Tract ......................................................................................................................................\n", + "275\n", + "3 - Hepatic & Biliary Disorders ............................................................................................................................................\n", + "275\n", + "Chapter 23. Approach to the Patient With Liver Disease ...........................................................................................\n", + "294\n", + "Chapter 24. Testing for Hepatic & Biliary Disorders ......................................................................................................\n", + "305\n", + "Chapter 25. Drugs & the Liver ................................................................................................................................................\n", + "308\n", + "Chapter 26. Alcoholic Liver Disease ....................................................................................................................................\n", + "314\n", + "Chapter 27. Fibrosis & Cirrhosis ............................................................................................................................................\n", + "322\n", + "Chapter 28. Hepatitis ..................................................................................................................................................................\n", + "333\n", + "Chapter 29. Vascular Disorders of the Liver .....................................................................................................................\n", + "341\n", + "Chapter 30. Liver Masses & Granulomas ..........................................................................................................................\n", + "348\n", + "Chapter 31. Gallbladder & Bile Duct Disorders ...............................................................................................................\n", + "362\n", + "4 - Musculoskeletal & Connective Tissue Disorders .........................................................................................\n", + "362\n", + "Chapter 32. Approach to the Patient With Joint Disease ............................................................................................\n", + "373\n", + "Chapter 33. Autoimmune Rheumatic Disorders ..............................................................................................................\n", + "391\n", + "Chapter 34. Vasculitis .................................................................................................................................................................\n", + "416\n", + "Chapter 35. Joint Disorders .....................................................................................................................................................\n", + "435\n", + "Chapter 36. Crystal-Induced Arthritides ..............................................................................................................................\n", + "443\n", + "Chapter 37. Osteoporosis .........................................................................................................................................................\n", + "448\n", + "Chapter 38. Paget's Disease of Bone ..................................................................................................................................\n", + "451\n", + "Chapter 39. Osteonecrosis .......................................................................................................................................................\n", + "455\n", + "Chapter 40. Infections of Joints & Bones ...........................................................................................................................\n", + "463\n", + "Chapter 41. Bursa, Muscle & Tendon Disorders .............................................................................................................\n", + "470\n", + "Chapter 42. Neck & Back Pain ...............................................................................................................................................\n", + "481\n", + "Chapter 43. Hand Disorders ....................................................................................................................................................\n", + "biplobsinha25@gmail.com\n", + "9X5AUD3EIR\n", + "This file is meant for personal use by biplobsinha25@gmail.com only.\n", + "Sharing or publishing the contents in part or full is liable for legal action.\n", + "Page Number : 4\n", + "491\n", + "Chapter 44. Foot & Ankle Disorders .....................................................................................................................................\n", + "502\n", + "Chapter 45. Tumors of Bones & Joints ...............................................................................................................................\n", + "510\n", + "5 - Ear, Nose, Throat & Dental Disorders ..................................................................................................................\n", + "510\n", + "Chapter 46. Approach to the Patient With Ear Problems ...........................................................................................\n", + "523\n", + "Chapter 47. Hearing Loss .........................................................................................................................................................\n", + "535\n", + "Chapter 48. Inner Ear Disorders ............................................................................................................................................\n", + "542\n", + "Chapter 49. Middle Ear & Tympanic Membrane Disorders ........................................................................................\n", + "550\n", + "Chapter 50. External Ear Disorders .....................................................................................................................................\n", + "554\n", + "Chapter 51. Approach to the Patient With Nasal & Pharyngeal Symptoms .......................................................\n", + "567\n", + "Chapter 52. Oral & Pharyngeal Disorders .........................................................................................................................\n", + "578\n", + "Chapter 53. Nose & Paranasal Sinus Disorders .............................................................................................................\n", + "584\n", + "Chapter 54. Laryngeal Disorders ...........................................................................................................................................\n", + "590\n", + "Chapter 55. Tumors of the Head & Neck ...........................................................................................................................\n", + "600\n", + "Chapter 56. Approach to Dental & Oral Symptoms .......................................................................................................\n", + "619\n", + "Chapter 57. Common Dental Disorders .............................................................................................................................\n", + "629\n", + "Chapter 58. Dental Emergencies ..........................................................................................................................................\n", + "635\n", + "Chapter 59. Temporomandibular Disorders ......................................................................................................................\n", + "641\n", + "6 - Eye Disorders ............................................................................................................................................................................\n", + "641\n", + "Chapter 60. Approach to the Ophthalmologic Patient ..................................................................................................\n", + "669\n", + "Chapter 61. Refractive Error ...................................................................................................................................................\n", + "674\n", + "Chapter 62. Eyelid & Lacrimal Disorders ...........................................................................................................................\n", + "680\n", + "Chapter 63. Conjunctival & Scleral Disorders .................................................................................................................\n", + "690\n", + "Chapter 64. Corneal Disorders ...............................................................................................................................................\n", + "703\n", + "Chapter 65. Glaucoma ...............................................................................................................................................................\n", + "710\n", + "Chapter 66. Cataract ...................................................................................................................................................................\n", + "713\n", + "Chapter 67. Uveitis ......................................................................................................................................................................\n", + "719\n", + "Chapter 68. Retinal Disorders .................................................................................................................................................\n", + "731\n", + "Chapter 69. Optic Nerve Disorders ......................................................................................................................................\n", + "737\n", + "Chapter 70. Orbital Diseases ..................................................................................................................................................\n", + "742\n", + "7 - Dermatologic Disorders ....................................................................................................................................................\n", + "742\n", + "Chapter 71. Approach to the Dermatologic Patient .......................................................................................................\n", + "755\n", + "Chapter 72. Principles of Topical Dermatologic Therapy ............................................................................................\n", + "760\n", + "Chapter 73. Acne & Related Disorders ...............................................................................................................................\n", + "766\n", + "Chapter 74. Bullous Diseases .................................................................................................................................................\n", + "771\n", + "Chapter 75. Cornification Disorders .....................................................................................................................................\n", + "775\n", + "Chapter 76. Dermatitis ...............................................................................................................................................................\n", + "786\n", + "Chapter 77. Reactions to Sunlight ........................................................................................................................................\n", + "791\n", + "Chapter 78. Psoriasis & Scaling Diseases ........................................................................................................................\n", + "799\n", + "Chapter 79. Hypersensitivity & Inflammatory Disorders .............................................................................................\n", + "808\n", + "Chapter 80. Sweating Disorders ............................................................................................................................................\n", + "811\n", + "Chapter 81. Bacterial Skin Infections ...................................................................................................................................\n", + "822\n", + "Chapter 82. Fungal Skin Infections ......................................................................................................................................\n", + "831\n", + "Chapter 83. Parasitic Skin Infections ...................................................................................................................................\n", + "836\n", + "Chapter 84. Viral Skin Diseases ............................................................................................................................................\n", + "841\n", + "Chapter 85. Pigmentation Disorders ....................................................................................................................................\n", + "846\n", + "Chapter 86. Hair Disorders .......................................................................................................................................................\n", + "855\n", + "Chapter 87. Nail Disorders .......................................................................................................................................................\n", + "861\n", + "Chapter 88. Pressure Ulcers ...................................................................................................................................................\n", + "867\n", + "Chapter 89. Benign Tumors .....................................................................................................................................................\n", + "874\n", + "Chapter 90. Cancers of the Skin ............................................................................................................................................\n", + "882\n", + "8 - Endocrine & Metabolic Disorders .............................................................................................................................\n", + "882\n", + "Chapter 91. Principles of Endocrinology ............................................................................................................................\n", + "887\n", + "Chapter 92. Pituitary Disorders ..............................................................................................................................................\n", + "901\n", + "Chapter 93. Thyroid Disorders ................................................................................................................................................\n", + "biplobsinha25@gmail.com\n", + "9X5AUD3EIR\n", + "This file is meant for personal use by biplobsinha25@gmail.com only.\n", + "Sharing or publishing the contents in part or full is liable for legal action.\n", + "Page Number : 5\n", + "921\n", + "Chapter 94. Adrenal Disorders ................................................................................................................................................\n", + "936\n", + "Chapter 95. Polyglandular Deficiency Syndromes ........................................................................................................\n", + "939\n", + "Chapter 96. Porphyrias ..............................................................................................................................................................\n", + "949\n", + "Chapter 97. Fluid & Electrolyte Metabolism .....................................................................................................................\n", + "987\n", + "Chapter 98. Acid-Base Regulation & Disorders ..............................................................................................................\n", + "1001\n", + "Chapter 99. Diabetes Mellitus & Disorders of Carbohydrate Metabolism ........................................................\n", + "1024\n", + "Chapter 100. Lipid Disorders ................................................................................................................................................\n", + "1034\n", + "Chapter 101. Amyloidosis ......................................................................................................................................................\n", + "1037\n", + "Chapter 102. Carcinoid Tumors ..........................................................................................................................................\n", + "1040\n", + "Chapter 103. Multiple Endocrine Neoplasia Syndromes .........................................................................................\n", + "1046\n", + "9 - Hematology & Oncology ...............................................................................................................................................\n", + "1046\n", + "Chapter 104. Approach to the Patient With Anemia ..................................................................................................\n", + "1050\n", + "Chapter 105. Anemias Caused by Deficient Erythropoiesis ...................................................................................\n", + "1061\n", + "Chapter 106. Anemias Caused by Hemolysis ...............................................................................................................\n", + "1078\n", + "Chapter 107. Neutropenia & Lymphocytopenia ...........................................................................................................\n", + "1086\n", + "Chapter 108. Thrombocytopenia & Platelet Dysfunction .........................................................................................\n", + "1097\n", + "Chapter 109. Hemostasis ......................................................................................................................................................\n", + "1104\n", + "Chapter 110. Thrombotic Disorders ...................................................................................................................................\n", + "1107\n", + "Chapter 111. Coagulation Disorders ..................................................................................................................................\n", + "1113\n", + "Chapter 112. Bleeding Due to Abnormal Blood Vessels ...........................................................................................\n", + "1116\n", + "Chapter 113. Spleen Disorders ............................................................................................................................................\n", + "1120\n", + "Chapter 114. Eosinophilic Disorders .................................................................................................................................\n", + "1126\n", + "Chapter 115. Histiocytic Syndromes .................................................................................................................................\n", + "1131\n", + "Chapter 116. Myeloproliferative Disorders .....................................................................................................................\n", + "1141\n", + "Chapter 117. Leukemias .........................................................................................................................................................\n", + "1154\n", + "Chapter 118. Lymphomas ......................................................................................................................................................\n", + "1164\n", + "Chapter 119. Plasma Cell Disorders .................................................................................................................................\n", + "1172\n", + "Chapter 120. Iron Overload ...................................................................................................................................................\n", + "1177\n", + "Chapter 121. Transfusion Medicine ...................................................................................................................................\n", + "1186\n", + "Chapter 122. Overview of Cancer ......................................................................................................................................\n", + "1198\n", + "Chapter 123. Tumor Immunology .......................................................................................................................................\n", + "1204\n", + "Chapter 124. Principles of Cancer Therapy ...................................................................................................................\n", + "1215\n", + "10 - Immunology; Allergic Disorders ...........................................................................................................................\n", + "1215\n", + "Chapter 125. Biology of the Immune System ...............................................................................................................\n", + "1227\n", + "Chapter 126. Immunodeficiency Disorders ....................................................................................................................\n", + "1243\n", + "Chapter 127. Allergic & Other Hypersensitivity Disorders .......................................................................................\n", + "1263\n", + "Chapter 128. Transplantation ...............................................................................................................................................\n", + "1281\n", + "11 - Infectious Diseases ........................................................................................................................................................\n", + "1281\n", + "Chapter 129. Biology of Infectious Disease ...................................................................................................................\n", + "1300\n", + "Chapter 130. Laboratory Diagnosis of Infectious Disease ......................................................................................\n", + "1306\n", + "Chapter 131. Immunization ...................................................................................................................................................\n", + "1313\n", + "Chapter 132. Bacteria & Antibacterial Drugs .................................................................................................................\n", + "1353\n", + "Chapter 133. Gram-Positive Cocci ....................................................................................................................................\n", + "1366\n", + "Chapter 134. Gram-Positive Bacilli ...................................................................................................................................\n", + "1376\n", + "Chapter 135. Gram-Negative Bacilli .................................................................................................................................\n", + "1405\n", + "Chapter 136. Spirochetes ......................................................................................................................................................\n", + "1413\n", + "Chapter 137. Neisseriaceae .................................................................................................................................................\n", + "1419\n", + "Chapter 138. Chlamydia & Mycoplasmas ......................................................................................................................\n", + "1421\n", + "Chapter 139. Rickettsiae & Related Organisms ..........................................................................................................\n", + "1431\n", + "Chapter 140. Anaerobic Bacteria ........................................................................................................................................\n", + "1450\n", + "Chapter 141. Mycobacteria ...................................................................................................................................................\n", + "1470\n", + "Chapter 142. Fungi ...................................................................................................................................................................\n", + "1493\n", + "Chapter 143. Approach to Parasitic Infections .............................................................................................................\n", + "1496\n", + "Chapter 144. Nematodes (Roundworms) .......................................................................................................................\n", + "biplobsinha25@gmail.com\n", + "9X5AUD3EIR\n", + "This file is meant for personal use by biplobsinha25@gmail.com only.\n", + "Sharing or publishing the contents in part or full is liable for legal action.\n" + ] + } + ], + "source": [ + "for i in range(5):\n", + " print(f\"Page Number : {i+1}\",end=\"\\n\")\n", + " print(manual[i].page_content,end=\"\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LECMxTH-zB-R" + }, + "source": [ + "### Data Chunking" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oQfw-qErRoGr" + }, + "source": [ + "#### Chunk the PDF into Manageable Text Sections Using a Token-Based Splitter" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "id": "uG0_pBmizGGt" + }, + "outputs": [], + "source": [ + "text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(\n", + " encoding_name='cl100k_base',\n", + " chunk_size= 500, #Complete the code to define the chunk size\n", + " chunk_overlap= 50 #Complete the code to define the chunk overlap\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P7XqisNKR3DZ" + }, + "source": [ + "#### Split the Loaded PDF into Chunks for Further Processing" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "id": "w76ji7ECzLLQ" + }, + "outputs": [], + "source": [ + "document_chunks = pdf_loader.load_and_split(text_splitter)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gkkBb1GmSDTp" + }, + "source": [ + "#### Check the Number of Chunks Created" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "id": "i6TQ-mmLzR9I", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "5d1c5923-9386-4e73-f127-c423dd4e72f4" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "8875" + ] + }, + "metadata": {}, + "execution_count": 41 + } + ], + "source": [ + "len(document_chunks)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yKnhARSu0d8u" + }, + "source": [ + "### Generate Vector Embeddings for Text Chunks Using OpenAI" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": true, + "id": "c6cZVZWQz15c", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d943ba50-86c9-470e-f500-1135c1cfec96" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Dimension of the embedding vector 1536\n" + ] + } + ], + "source": [ + "# Initialize the OpenAI Embeddings model with API credentials\n", + "embedding_model = OpenAIEmbeddings(\n", + " openai_api_key=OPENAI_API_KEY, # Your OpenAI API key for authentication\n", + " openai_api_base=OPENAI_API_BASE # The OpenAI API base URL endpoint\n", + ")\n", + "\n", + "# Generate embeddings (vector representations) for the first two document chunks\n", + "embedding_1 = embedding_model.embed_query(document_chunks[0].page_content) # Embedding for chunk 0\n", + "embedding_2 = embedding_model.embed_query(document_chunks[1].page_content) # Embedding for chunk 1\n", + "\n", + "# Check and print the dimension (length) of the embedding vector\n", + "print(\"Dimension of the embedding vector \", len(embedding_1)) # Typically 1536 or 2048 depending on model" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": true, + "id": "W0qy6xOZ0UBe", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "aebee7db-6b2c-485b-8a47-44cd83a1409a" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "([-0.013844738714396954,\n", + " 0.015309492126107216,\n", + " 0.008478669449687004,\n", + " -0.020055856555700302,\n", + " -0.012936308979988098,\n", + " 0.016126373782753944,\n", + " -0.027478214353322983,\n", + " -0.03104150854051113,\n", + " -0.020407961681485176,\n", + " -0.02126709558069706,\n", + " 0.04222434014081955,\n", + " 0.019605163484811783,\n", + " -0.00669702235609293,\n", + " 0.019520658999681473,\n", + " 0.0016249610343948007,\n", + " 0.017971400171518326,\n", + " 0.024281106889247894,\n", + " 0.014830630272626877,\n", + " 0.012971519492566586,\n", + " 0.004387218505144119,\n", + " -0.01829533651471138,\n", + " 0.03095700405538082,\n", + " -0.02168961986899376,\n", + " 0.01354897115379572,\n", + " -0.022633260115981102,\n", + " -0.023943087086081505,\n", + " 0.028985220938920975,\n", + " -0.034759730100631714,\n", + " -0.024731801822781563,\n", + " -0.01809815689921379,\n", + " 0.01074622105807066,\n", + " -0.010196938179433346,\n", + " -0.011823659762740135,\n", + " -0.019576994702219963,\n", + " -0.008013891987502575,\n", + " 0.00029576756060123444,\n", + " 0.02042204514145851,\n", + " -0.004249898251146078,\n", + " 0.02191496640443802,\n", + " 0.01597144827246666,\n", + " 0.006816737819463015,\n", + " -0.0028714099898934364,\n", + " -0.009703992865979671,\n", + " -0.004538623616099358,\n", + " -0.009422308765351772,\n", + " 0.006070276722311974,\n", + " -0.011549018323421478,\n", + " -0.022464249283075333,\n", + " -0.0013133487664163113,\n", + " -0.013710938394069672,\n", + " 0.02854861132800579,\n", + " 0.013344750739634037,\n", + " -0.02409801259636879,\n", + " -0.004408345092087984,\n", + " -0.004207645542919636,\n", + " -0.01166873425245285,\n", + " 0.007767419330775738,\n", + " -0.008591343648731709,\n", + " -0.0004022790817543864,\n", + " 0.004010467324405909,\n", + " 0.0036900523118674755,\n", + " -0.003144290763884783,\n", + " -0.01650664582848549,\n", + " -0.01599961705505848,\n", + " 0.0034206926357001066,\n", + " -0.018562935292720795,\n", + " -0.014957387931644917,\n", + " -0.00935893040150404,\n", + " -0.01028144359588623,\n", + " 0.010767347179353237,\n", + " 0.029238734394311905,\n", + " 0.012225058861076832,\n", + " 0.009443435817956924,\n", + " -0.010140601545572281,\n", + " 0.0033502718433737755,\n", + " -0.007739251013845205,\n", + " -0.005837887991219759,\n", + " 0.014929219149053097,\n", + " 0.0041653928346931934,\n", + " -0.01040820125490427,\n", + " 0.022717764601111412,\n", + " -0.02030937187373638,\n", + " 0.005633667577058077,\n", + " -0.0023115642834454775,\n", + " 0.018534766510128975,\n", + " 0.0007451405981555581,\n", + " 0.0020228386856615543,\n", + " 0.011661692522466183,\n", + " -0.012985603883862495,\n", + " -0.011872954666614532,\n", + " 0.003774557262659073,\n", + " 0.014520778320729733,\n", + " 0.022069893777370453,\n", + " 0.02294311113655567,\n", + " -0.013457424007356167,\n", + " 0.028041580691933632,\n", + " -0.0128165939822793,\n", + " 0.03740755468606949,\n", + " 0.002249946119263768,\n", + " -0.009992717765271664,\n", + " 0.0020545281004160643,\n", + " 0.00784488208591938,\n", + " -0.00799980852752924,\n", + " -0.012288437224924564,\n", + " -0.03298512473702431,\n", + " -0.012950393371284008,\n", + " 0.010387075133621693,\n", + " -0.017098180949687958,\n", + " -0.0005426806164905429,\n", + " 0.02143610641360283,\n", + " -0.0042745452374219894,\n", + " 0.022436082363128662,\n", + " 0.017168601974844933,\n", + " -0.05797044187784195,\n", + " 0.01829533651471138,\n", + " 0.006785048637539148,\n", + " 0.018309419974684715,\n", + " -0.01340812910348177,\n", + " -0.028590863570570946,\n", + " -0.020238950848579407,\n", + " -0.003992862068116665,\n", + " 0.0064047761261463165,\n", + " -0.003897793823853135,\n", + " 0.009767371229827404,\n", + " 0.016239047050476074,\n", + " 0.017253106459975243,\n", + " -0.025675440207123756,\n", + " -0.030280964449048042,\n", + " -0.0017658027354627848,\n", + " -0.0043836976401507854,\n", + " 0.0050139641389250755,\n", + " 0.02656274288892746,\n", + " 0.007045605685561895,\n", + " 0.01602778397500515,\n", + " -0.03273160755634308,\n", + " 0.025013484060764313,\n", + " -0.017041845247149467,\n", + " -0.027379624545574188,\n", + " -0.033576659858226776,\n", + " -0.020745981484651566,\n", + " 0.017126349732279778,\n", + " 0.04084409028291702,\n", + " -0.012668710201978683,\n", + " -0.006753358989953995,\n", + " 0.004760449286550283,\n", + " 0.007851924747228622,\n", + " 0.01026735920459032,\n", + " 0.0158869419246912,\n", + " 0.015732016414403915,\n", + " -0.009443435817956924,\n", + " -0.018055904656648636,\n", + " 0.005218184553086758,\n", + " 0.02387266606092453,\n", + " 0.005334379151463509,\n", + " 0.004228771664202213,\n", + " 0.020084025338292122,\n", + " 0.007302641868591309,\n", + " 0.030703488737344742,\n", + " -0.008584300987422466,\n", + " -0.020605139434337616,\n", + " -0.015393996611237526,\n", + " 0.004795659799128771,\n", + " 0.0022728329058736563,\n", + " -0.0004207645542919636,\n", + " 0.027393709868192673,\n", + " 0.034337203949689865,\n", + " -0.004668902140110731,\n", + " -0.0046372124925255775,\n", + " -0.006042108405381441,\n", + " -0.006126613821834326,\n", + " 0.002014036290347576,\n", + " 0.020295288413763046,\n", + " -0.017746053636074066,\n", + " -0.016675656661391258,\n", + " -0.015309492126107216,\n", + " 0.019478406757116318,\n", + " 0.022731849923729897,\n", + " 0.002410153392702341,\n", + " -0.025266999378800392,\n", + " -0.015084145590662956,\n", + " -0.015929196029901505,\n", + " 0.024703633040189743,\n", + " 0.028675368055701256,\n", + " 0.030506310984492302,\n", + " -0.009204004891216755,\n", + " 0.002056288765743375,\n", + " 0.0263373963534832,\n", + " -0.01888687163591385,\n", + " -0.0036759681534022093,\n", + " -0.028928883373737335,\n", + " 0.019478406757116318,\n", + " 0.010344821959733963,\n", + " 0.010344821959733963,\n", + " -0.011295503936707973,\n", + " -0.6417874097824097,\n", + " -0.024788137525320053,\n", + " 0.011063114739954472,\n", + " -0.033266808837652206,\n", + " 0.00889415293931961,\n", + " -0.0067216698080301285,\n", + " -0.004193561151623726,\n", + " 0.011633523739874363,\n", + " -0.004950585309416056,\n", + " 0.02109808474779129,\n", + " -0.023069869726896286,\n", + " -0.006306186784058809,\n", + " 0.005214663688093424,\n", + " -0.017084097489714622,\n", + " 0.0069822268560528755,\n", + " -0.021478358656167984,\n", + " -0.013457424007356167,\n", + " -0.02302761748433113,\n", + " -0.013492634519934654,\n", + " 0.0021531174425035715,\n", + " -0.019407985731959343,\n", + " 0.008739227429032326,\n", + " -0.0012895817635580897,\n", + " 0.020745981484651566,\n", + " 0.00387314660474658,\n", + " -0.009316678158938885,\n", + " 0.04830870032310486,\n", + " -0.015872858464717865,\n", + " 0.012689836323261261,\n", + " 0.005464657675474882,\n", + " -0.015281323343515396,\n", + " 0.025238830596208572,\n", + " 0.014140506274998188,\n", + " -0.018619270995259285,\n", + " 0.04326656833291054,\n", + " -0.013584180735051632,\n", + " -0.009880044497549534,\n", + " 0.028478190302848816,\n", + " 0.027421876788139343,\n", + " 0.029745765030384064,\n", + " -0.015267238952219486,\n", + " -0.029830269515514374,\n", + " 0.010577211156487465,\n", + " 0.0021795250941067934,\n", + " 0.0005677680601365864,\n", + " 0.011619439348578453,\n", + " 0.029661260545253754,\n", + " 0.003077391069382429,\n", + " -0.007725166622549295,\n", + " -0.00768291437998414,\n", + " 0.0007953154272399843,\n", + " 0.0070984214544296265,\n", + " 0.024928979575634003,\n", + " -0.018253082409501076,\n", + " 0.019830510020256042,\n", + " 0.007080816198140383,\n", + " 0.026295144110918045,\n", + " -0.013133487664163113,\n", + " 0.014675704762339592,\n", + " 0.006133655551820993,\n", + " -0.01619679480791092,\n", + " -0.012971519492566586,\n", + " -0.007527988404035568,\n", + " -0.04622424393892288,\n", + " -0.009063162840902805,\n", + " -0.006707585416734219,\n", + " -0.027999328449368477,\n", + " -0.02123892679810524,\n", + " 0.026182470843195915,\n", + " -0.02064739167690277,\n", + " -0.0001938773930305615,\n", + " 0.0035333659034222364,\n", + " -0.015408081002533436,\n", + " -0.022407913580536842,\n", + " 0.0006839624838903546,\n", + " 0.04213983565568924,\n", + " -0.005844930186867714,\n", + " -0.038506120443344116,\n", + " -0.0017746053636074066,\n", + " 0.009823707863688469,\n", + " -0.0015369349857792258,\n", + " -0.010718053206801414,\n", + " -0.00416187196969986,\n", + " -0.01420388463884592,\n", + " 0.027942990884184837,\n", + " 0.006806174758821726,\n", + " -0.005690004210919142,\n", + " -0.014436273835599422,\n", + " -0.006094924174249172,\n", + " -0.004665381275117397,\n", + " 0.01585877500474453,\n", + " 0.004668902140110731,\n", + " 0.008140649646520615,\n", + " -0.025506431236863136,\n", + " -0.00640829699113965,\n", + " -0.007739251013845205,\n", + " -0.015901027247309685,\n", + " -0.0002532949729356915,\n", + " -0.001292222528718412,\n", + " 0.0007099301437847316,\n", + " -0.005978730041533709,\n", + " -0.0005501628620550036,\n", + " -0.01314052939414978,\n", + " 0.012753215618431568,\n", + " 0.030365468934178352,\n", + " 0.0038097677752375603,\n", + " -0.01284476276487112,\n", + " 0.010133559815585613,\n", + " 0.016605235636234283,\n", + " -0.023661404848098755,\n", + " -0.008851900696754456,\n", + " -0.01950657367706299,\n", + " 0.016816498711705208,\n", + " 0.00292070466093719,\n", + " 0.0027816235087811947,\n", + " -0.033407650887966156,\n", + " 0.01806998997926712,\n", + " 0.0023907877039164305,\n", + " 0.0036900523118674755,\n", + " -0.02443603426218033,\n", + " 0.008316702209413052,\n", + " 0.004031593445688486,\n", + " -0.02468954771757126,\n", + " 0.009422308765351772,\n", + " 0.002149596344679594,\n", + " 0.017267191782593727,\n", + " 0.019013628363609314,\n", + " -0.02636556513607502,\n", + " -0.00587661936879158,\n", + " -0.01168281864374876,\n", + " 0.015323576517403126,\n", + " -0.007387146819382906,\n", + " 0.018365757539868355,\n", + " -0.01605595275759697,\n", + " 0.027576804161071777,\n", + " -0.010950441472232342,\n", + " 0.021534694358706474,\n", + " -0.0024383217096328735,\n", + " 0.02690076269209385,\n", + " -0.014999640174210072,\n", + " -0.030337300151586533,\n", + " -0.008232196792960167,\n", + " 0.01611229032278061,\n", + " -0.016210878267884254,\n", + " 0.0058660563081502914,\n", + " -0.035097748041152954,\n", + " -0.01597144827246666,\n", + " -0.00387314660474658,\n", + " 0.000913710449822247,\n", + " 0.0187460295855999,\n", + " 0.0037992047145962715,\n", + " -0.001453310251235962,\n", + " 0.009992717765271664,\n", + " 0.02194313518702984,\n", + " 0.019605163484811783,\n", + " -0.028112001717090607,\n", + " 0.0002709002001211047,\n", + " -0.022830437868833542,\n", + " -0.0027992285322397947,\n", + " -0.003781599458307028,\n", + " 0.008619511500000954,\n", + " 0.017520707100629807,\n", + " -0.022224819287657738,\n", + " -0.0010325456969439983,\n", + " -0.019802341237664223,\n", + " -0.003749910043552518,\n", + " 0.01431655790656805,\n", + " 0.017436200752854347,\n", + " 0.0012138793244957924,\n", + " -0.026802174746990204,\n", + " 0.017717884853482246,\n", + " -0.013133487664163113,\n", + " -0.030027449131011963,\n", + " 0.004978753626346588,\n", + " -0.03628081828355789,\n", + " 0.00048810450243763626,\n", + " -0.004105535335838795,\n", + " 0.0013142289826646447,\n", + " -0.004690028261393309,\n", + " 0.001977065345272422,\n", + " -0.0009603642974980175,\n", + " -0.005880140699446201,\n", + " -0.01653481461107731,\n", + " -0.0006637164624407887,\n", + " 0.024252939969301224,\n", + " -0.003424213733524084,\n", + " -0.012027880176901817,\n", + " 0.02460504323244095,\n", + " -0.005580852273851633,\n", + " 0.004778054542839527,\n", + " -0.002329169539734721,\n", + " 0.0042745452374219894,\n", + " 0.0024682506918907166,\n", + " 0.016915086656808853,\n", + " 0.008239238522946835,\n", + " 0.006397733930498362,\n", + " -0.007696998305618763,\n", + " -0.01899954490363598,\n", + " 0.020013604313135147,\n", + " 0.03329497575759888,\n", + " 0.03599913790822029,\n", + " 0.0011390572180971503,\n", + " 0.012513784691691399,\n", + " -0.012563078664243221,\n", + " 0.028759874403476715,\n", + " -0.050308652222156525,\n", + " -0.009689908474683762,\n", + " -0.02826692722737789,\n", + " 0.03639349341392517,\n", + " 0.017323527485132217,\n", + " -0.013612349517643452,\n", + " -0.009168794378638268,\n", + " -0.00773220881819725,\n", + " -0.0063519603572785854,\n", + " -0.0028397205751389265,\n", + " 0.011746197007596493,\n", + " -0.003707657568156719,\n", + " 0.018464345484972,\n", + " -0.006915327161550522,\n", + " -0.016999593004584312,\n", + " -0.00819698628038168,\n", + " 0.02718244679272175,\n", + " -0.004313276614993811,\n", + " -0.01566159538924694,\n", + " 0.00799980852752924,\n", + " 0.017520707100629807,\n", + " 0.01168281864374876,\n", + " 0.01821083016693592,\n", + " -0.015253155492246151,\n", + " -0.0036583628971129656,\n", + " 0.01294335164129734,\n", + " 0.029520418494939804,\n", + " 0.020999496802687645,\n", + " -0.01594327948987484,\n", + " 0.0038942727260291576,\n", + " -0.012112385593354702,\n", + " 0.03104150854051113,\n", + " -0.006911805830895901,\n", + " 0.005285084713250399,\n", + " -0.014563030563294888,\n", + " -0.00514776399359107,\n", + " 0.03126685693860054,\n", + " 0.04166097193956375,\n", + " -0.013556012883782387,\n", + " -0.0010457495227456093,\n", + " 0.022844523191452026,\n", + " 0.013098277151584625,\n", + " 0.013133487664163113,\n", + " -0.001913686515763402,\n", + " 0.045379191637039185,\n", + " -0.020689643919467926,\n", + " 0.029351409524679184,\n", + " -0.012154637835919857,\n", + " 0.012027880176901817,\n", + " 0.018647439777851105,\n", + " -0.020055856555700302,\n", + " 0.006309707649052143,\n", + " 0.028957052156329155,\n", + " 0.016548898071050644,\n", + " 0.022224819287657738,\n", + " -0.017351696267724037,\n", + " 0.014372894540429115,\n", + " 0.0016311228973791003,\n", + " -0.008725143037736416,\n", + " 0.03847794979810715,\n", + " 0.00663364352658391,\n", + " 0.004675944335758686,\n", + " 0.005119595676660538,\n", + " -0.03095700405538082,\n", + " -0.013985579833388329,\n", + " -0.011830702424049377,\n", + " -0.015534838661551476,\n", + " 0.0020334019791334867,\n", + " 0.012774341739714146,\n", + " 0.00842233281582594,\n", + " -0.008401206694543362,\n", + " -0.004932980053126812,\n", + " 0.00601746141910553,\n", + " 0.025957124307751656,\n", + " 0.0203375406563282,\n", + " -0.02602754533290863,\n", + " -0.02039387635886669,\n", + " 0.011056073009967804,\n", + " 0.019717836752533913,\n", + " 0.01165464986115694,\n", + " 0.007577282842248678,\n", + " -0.0031478118617087603,\n", + " -0.021985387429594994,\n", + " -0.004580875858664513,\n", + " 0.01329545583575964,\n", + " -0.005950561258941889,\n", + " 0.024196602404117584,\n", + " 0.03847794979810715,\n", + " 0.00899274181574583,\n", + " -0.013450381346046925,\n", + " -0.0263373963534832,\n", + " -0.003925962373614311,\n", + " -0.01326728705316782,\n", + " 0.0070420848205685616,\n", + " 0.025464177131652832,\n", + " 0.007492777891457081,\n", + " -0.007207573391497135,\n", + " -0.014661620371043682,\n", + " 0.02673175372183323,\n", + " 0.03287244960665703,\n", + " 0.011999712325632572,\n", + " -0.008204028941690922,\n", + " -0.00548578379675746,\n", + " -0.00832374393939972,\n", + " -0.0067216698080301285,\n", + " 0.014133463613688946,\n", + " 0.00292070466093719,\n", + " -0.033492155373096466,\n", + " 0.0420834980905056,\n", + " 0.005915351212024689,\n", + " 0.005471699871122837,\n", + " -0.003947088494896889,\n", + " -0.034478046000003815,\n", + " 0.01431655790656805,\n", + " 0.007880092598497868,\n", + " -0.008922320790588856,\n", + " -0.004584397189319134,\n", + " -0.03135136142373085,\n", + " 0.016915086656808853,\n", + " 0.05737890675663948,\n", + " 0.025759944692254066,\n", + " 0.0021372726187109947,\n", + " 0.022731849923729897,\n", + " -0.004925938323140144,\n", + " 0.007549114525318146,\n", + " -0.010964525863528252,\n", + " -0.021788209676742554,\n", + " 0.013612349517643452,\n", + " -0.003925962373614311,\n", + " 0.01073213666677475,\n", + " 0.003100277855992317,\n", + " -0.007753334939479828,\n", + " 0.0062357657589018345,\n", + " -0.006841385271400213,\n", + " -0.0023362115025520325,\n", + " 0.013436296954751015,\n", + " -0.02098541148006916,\n", + " 0.006024503149092197,\n", + " -0.014858798123896122,\n", + " -0.0062357657589018345,\n", + " 0.006894201040267944,\n", + " -0.0012675751931965351,\n", + " 0.009978634305298328,\n", + " 0.022450165823101997,\n", + " 0.00926034152507782,\n", + " 0.03298512473702431,\n", + " 0.010823683813214302,\n", + " -0.002663668477907777,\n", + " -0.02030937187373638,\n", + " -0.00924625713378191,\n", + " 0.002841481240466237,\n", + " 0.005989293102174997,\n", + " 0.006225202698260546,\n", + " -0.02092907577753067,\n", + " 0.004323840141296387,\n", + " 0.0011997951660305262,\n", + " 0.00023745029466226697,\n", + " -0.01314052939414978,\n", + " 0.010119475424289703,\n", + " 0.01821083016693592,\n", + " 0.0029717597644776106,\n", + " 0.009591319598257542,\n", + " 0.0038308941293507814,\n", + " 0.005351984407752752,\n", + " -0.02381633035838604,\n", + " -0.012675751931965351,\n", + " 0.0005017485236749053,\n", + " -0.00045509470510296524,\n", + " -0.0214642733335495,\n", + " 0.039548348635435104,\n", + " 0.013936285860836506,\n", + " 0.034309037029743195,\n", + " -0.013119403272867203,\n", + " 0.004221729934215546,\n", + " 0.006013940088450909,\n", + " -0.003300977172330022,\n", + " 0.026943014934659004,\n", + " -0.013802485540509224,\n", + " -0.055716972798109055,\n", + " -0.015239071100950241,\n", + " -0.012365900911390781,\n", + " 0.018562935292720795,\n", + " -0.0061935135163366795,\n", + " -0.013774317689239979,\n", + " -0.012767299078404903,\n", + " -0.017717884853482246,\n", + " -0.002181285759434104,\n", + " -0.017365779727697372,\n", + " -0.0004198842798359692,\n", + " -0.011225082911550999,\n", + " -0.02715427801012993,\n", + " -0.023971255868673325,\n", + " 0.020858654752373695,\n", + " 0.01647847704589367,\n", + " 0.02319662645459175,\n", + " 0.002554516075178981,\n", + " -0.007478693965822458,\n", + " 0.002369661582633853,\n", + " 0.014816545881330967,\n", + " 0.011027904227375984,\n", + " -0.03799908980727196,\n", + " 0.03619631379842758,\n", + " -0.022492418065667152,\n", + " 0.007471651770174503,\n", + " 0.025590935721993446,\n", + " 0.004457639530301094,\n", + " -0.0008199627045542002,\n", + " -0.01854884997010231,\n", + " 0.029464082792401314,\n", + " 0.013013772666454315,\n", + " -0.005376631394028664,\n", + " 0.005042132455855608,\n", + " -0.007894176989793777,\n", + " -0.010225106962025166,\n", + " 0.008408249355852604,\n", + " 0.028816210106015205,\n", + " 0.013901075348258018,\n", + " -0.004313276614993811,\n", + " 0.0009498011786490679,\n", + " -0.008858942426741123,\n", + " -0.008443459868431091,\n", + " 0.00584140932187438,\n", + " -0.009880044497549534,\n", + " 0.011436345055699348,\n", + " 0.006851948332041502,\n", + " 0.003954130690544844,\n", + " 0.03647799789905548,\n", + " -0.034647054970264435,\n", + " -0.001811576308682561,\n", + " -0.004411865957081318,\n", + " 0.003538647433742881,\n", + " 0.021647367626428604,\n", + " 0.0035949843004345894,\n", + " -0.014802461490035057,\n", + " 0.00608084024861455,\n", + " 0.007542072795331478,\n", + " 0.005982250906527042,\n", + " 0.0034118900075554848,\n", + " 0.011112409643828869,\n", + " -0.03616814687848091,\n", + " -0.039323002099990845,\n", + " 0.013964453712105751,\n", + " 0.021816378459334373,\n", + " -0.03321047127246857,\n", + " 0.005753383040428162,\n", + " 0.00830965954810381,\n", + " -0.0039506093598902225,\n", + " -0.0003642078081611544,\n", + " 0.005654794164001942,\n", + " 0.004380176775157452,\n", + " 0.003718220628798008,\n", + " -0.03557661175727844,\n", + " -0.013323623687028885,\n", + " -0.03653433546423912,\n", + " -0.0203375406563282,\n", + " -0.019900931045413017,\n", + " 0.019069965928792953,\n", + " -0.0028608469292521477,\n", + " -0.013746148906648159,\n", + " -0.009196962229907513,\n", + " -0.028985220938920975,\n", + " -0.004200603347271681,\n", + " -0.004447076469659805,\n", + " 0.014732041396200657,\n", + " -0.024450117722153664,\n", + " -0.01560525968670845,\n", + " 0.01792914792895317,\n", + " -0.005524515174329281,\n", + " 0.034449879080057144,\n", + " 0.003883709665387869,\n", + " 0.002425998216494918,\n", + " -5.580714514508145e-06,\n", + " 0.0023432536981999874,\n", + " -0.015267238952219486,\n", + " -0.025097990408539772,\n", + " -0.006288581527769566,\n", + " -0.007739251013845205,\n", + " 0.05242127925157547,\n", + " 0.0207600649446249,\n", + " 0.02342197299003601,\n", + " -0.006837863940745592,\n", + " 0.0038555413484573364,\n", + " 0.02798524498939514,\n", + " 0.0052815633825957775,\n", + " 0.011746197007596493,\n", + " -0.011020862497389317,\n", + " 0.011732112616300583,\n", + " -0.044815827161073685,\n", + " 0.012239143252372742,\n", + " 0.02625289186835289,\n", + " 0.019562911242246628,\n", + " 0.024619128555059433,\n", + " -0.00041680337744764984,\n", + " 0.006045629736036062,\n", + " 0.022309323772788048,\n", + " -0.014760209247469902,\n", + " -0.01580243743956089,\n", + " -0.0020545281004160643,\n", + " -0.02022486738860607,\n", + " -0.019802341237664223,\n", + " 0.0006214639870449901,\n", + " -0.01036594808101654,\n", + " 0.0023450141306966543,\n", + " -0.034224532544612885,\n", + " -0.022098060697317123,\n", + " 0.02056288719177246,\n", + " 0.012070133350789547,\n", + " 0.03352032229304314,\n", + " 0.013077151030302048,\n", + " 0.01585877500474453,\n", + " -0.029295071959495544,\n", + " 0.016830582171678543,\n", + " 0.012640541419386864,\n", + " -0.007003352977335453,\n", + " -0.00013258925173431635,\n", + " 0.014182758517563343,\n", + " 0.001666333293542266,\n", + " 0.0008674967684783041,\n", + " 0.03309779614210129,\n", + " 0.009711034595966339,\n", + " -0.022745933383703232,\n", + " -0.015957362949848175,\n", + " 0.0013432776322588325,\n", + " -0.020436128601431847,\n", + " 0.012520826421678066,\n", + " -0.0050703007727861404,\n", + " -0.019210806116461754,\n", + " -0.019295312464237213,\n", + " -0.01622496359050274,\n", + " -0.01809815689921379,\n", + " -0.007003352977335453,\n", + " -0.027027521282434464,\n", + " -0.028675368055701256,\n", + " 0.00403511431068182,\n", + " 0.015027808956801891,\n", + " -0.034337203949689865,\n", + " 0.015520754270255566,\n", + " -0.023295216262340546,\n", + " 0.003362595336511731,\n", + " -0.020886823534965515,\n", + " -0.006971663795411587,\n", + " 0.03864695876836777,\n", + " 0.015154565684497356,\n", + " 0.028126085177063942,\n", + " 0.034168194979429245,\n", + " -0.01849251426756382,\n", + " -0.026323312893509865,\n", + " 0.029464082792401314,\n", + " -0.015872858464717865,\n", + " -0.0066125174053013325,\n", + " 0.02078823372721672,\n", + " 0.0355202741920948,\n", + " -0.015309492126107216,\n", + " -0.026295144110918045,\n", + " 0.015408081002533436,\n", + " 0.0055421204306185246,\n", + " -0.005781551357358694,\n", + " 0.009112457744777203,\n", + " 0.007077294867485762,\n", + " -0.0023027616553008556,\n", + " 0.017309444025158882,\n", + " -0.013302497565746307,\n", + " -0.015140482224524021,\n", + " -0.010323695838451385,\n", + " 0.015675680711865425,\n", + " -0.014647535979747772,\n", + " 0.014929219149053097,\n", + " -0.044646818190813065,\n", + " -0.0011945136357098818,\n", + " -0.014886966906487942,\n", + " 0.03230908513069153,\n", + " -0.008556133136153221,\n", + " 0.016675656661391258,\n", + " 0.0023432536981999874,\n", + " -0.0018996023572981358,\n", + " -0.006443507503718138,\n", + " -0.0054400102235376835,\n", + " -0.015224986709654331,\n", + " -0.008513879962265491,\n", + " -0.013725022785365582,\n", + " 0.02718244679272175,\n", + " -0.009971591643989086,\n", + " 0.009140625596046448,\n", + " -0.0017270712414756417,\n", + " 0.012654625810682774,\n", + " -0.0014665140770375729,\n", + " -0.004401302896440029,\n", + " -0.01656298339366913,\n", + " 0.020802317187190056,\n", + " -0.008535006083548069,\n", + " 0.004591439384967089,\n", + " 0.0006082600448280573,\n", + " -0.002038683509454131,\n", + " 0.033914677798748016,\n", + " 0.011013820767402649,\n", + " -0.008013891987502575,\n", + " -0.01636580377817154,\n", + " -0.00957019254565239,\n", + " 0.0004016188904643059,\n", + " 0.014732041396200657,\n", + " 0.007929387502372265,\n", + " 0.024534622207283974,\n", + " -0.022351576015353203,\n", + " -0.017140433192253113,\n", + " -0.006901242770254612,\n", + " -0.003982299007475376,\n", + " -0.024027593433856964,\n", + " 0.016239047050476074,\n", + " 0.0025263477582484484,\n", + " 0.01353488676249981,\n", + " 0.012774341739714146,\n", + " -0.024844475090503693,\n", + " 0.017210854217410088,\n", + " 0.017295360565185547,\n", + " 0.01280250959098339,\n", + " 0.01073213666677475,\n", + " 0.03081616200506687,\n", + " -0.020745981484651566,\n", + " 0.004908333066850901,\n", + " 0.010274401865899563,\n", + " 0.019591080024838448,\n", + " -0.03368933126330376,\n", + " 0.02806974947452545,\n", + " -0.0006320271058939397,\n", + " -0.02692893147468567,\n", + " -0.001562462537549436,\n", + " -0.02030937187373638,\n", + " -0.020689643919467926,\n", + " -0.02191496640443802,\n", + " 0.0210417490452528,\n", + " 0.01633763685822487,\n", + " 0.008668806403875351,\n", + " -0.024943063035607338,\n", + " 0.025844451040029526,\n", + " 0.0028009891975671053,\n", + " 0.024858558550477028,\n", + " -0.009429351426661015,\n", + " -0.038815971463918686,\n", + " 3.7438581784954295e-05,\n", + " -0.015309492126107216,\n", + " 0.014732041396200657,\n", + " 0.004130182787775993,\n", + " -0.007253346964716911,\n", + " 0.016379889100790024,\n", + " -0.022323409095406532,\n", + " 0.011330714449286461,\n", + " 0.008499796502292156,\n", + " -0.027196530252695084,\n", + " -0.033661164343357086,\n", + " 0.011950417421758175,\n", + " 0.006341397296637297,\n", + " -0.006549138575792313,\n", + " 2.7109274014947005e-05,\n", + " 0.0018221393693238497,\n", + " 0.002102062338963151,\n", + " -0.00924625713378191,\n", + " 0.021365685388445854,\n", + " -0.018957292661070824,\n", + " -0.0005765706882812083,\n", + " -0.005647751968353987,\n", + " 0.00472875963896513,\n", + " 0.0022657907102257013,\n", + " 0.018534766510128975,\n", + " -0.0018467867048457265,\n", + " 0.013048983179032803,\n", + " -0.009992717765271664,\n", + " -0.01843617670238018,\n", + " -0.045379191637039185,\n", + " -0.01747845485806465,\n", + " -0.005654794164001942,\n", + " 0.02815425395965576,\n", + " -0.004323840141296387,\n", + " -0.021478358656167984,\n", + " -0.03090066649019718,\n", + " -0.034027352929115295,\n", + " -0.03247809410095215,\n", + " -0.00900682620704174,\n", + " -0.022802269086241722,\n", + " 0.008436417207121849,\n", + " 0.021224843338131905,\n", + " 0.01561934407800436,\n", + " -0.00657026469707489,\n", + " 0.0012499700533226132,\n", + " 0.012922225520014763,\n", + " 0.025464177131652832,\n", + " -0.013323623687028885,\n", + " -0.009647656232118607,\n", + " 0.019675584509968758,\n", + " -0.03284428268671036,\n", + " -0.007429399061948061,\n", + " 0.007119547575712204,\n", + " -0.04715379700064659,\n", + " -0.016408057883381844,\n", + " 0.011281419545412064,\n", + " 0.0038344149943441153,\n", + " 0.01064763218164444,\n", + " 0.024619128555059433,\n", + " -0.023605067282915115,\n", + " -0.0031161224469542503,\n", + " 0.000817321939393878,\n", + " 0.0036337156780064106,\n", + " 0.020914990454912186,\n", + " 0.0256331879645586,\n", + " 0.011739155277609825,\n", + " -0.022027641534805298,\n", + " -0.010964525863528252,\n", + " -0.005749862175434828,\n", + " 0.0008186423219740391,\n", + " -0.014985555782914162,\n", + " -0.025112073868513107,\n", + " 0.006883637513965368,\n", + " -0.017323527485132217,\n", + " -0.005316773895174265,\n", + " -0.02718244679272175,\n", + " 0.004394260700792074,\n", + " 0.009633571840822697,\n", + " 0.007105463184416294,\n", + " 0.03216824308037758,\n", + " 0.02532333694398403,\n", + " 0.018422093242406845,\n", + " -0.0037146995309740305,\n", + " 0.011056073009967804,\n", + " -0.017422117292881012,\n", + " -0.0006214639870449901,\n", + " 0.02370365709066391,\n", + " -0.034703392535448074,\n", + " -0.00472875963896513,\n", + " 0.023154374212026596,\n", + " -0.027858486399054527,\n", + " 0.009084288962185383,\n", + " -0.012077175080776215,\n", + " 0.0032745692878961563,\n", + " -0.01545033324509859,\n", + " -0.003749910043552518,\n", + " -0.011929291300475597,\n", + " -0.009675824083387852,\n", + " -0.010626506060361862,\n", + " -0.0020774148870259523,\n", + " 0.01885870285332203,\n", + " -0.03109784610569477,\n", + " -0.023098036646842957,\n", + " -0.008809647522866726,\n", + " 0.026097966358065605,\n", + " 0.005024527199566364,\n", + " -0.01684466563165188,\n", + " -0.0025069820694625378,\n", + " -0.04278770461678505,\n", + " 0.004570312798023224,\n", + " 0.014365852810442448,\n", + " -0.017408033832907677,\n", + " -0.019407985731959343,\n", + " 0.001058953464962542,\n", + " 0.021422021090984344,\n", + " 0.010274401865899563,\n", + " 0.01536582875996828,\n", + " 0.19909381866455078,\n", + " -0.003707657568156719,\n", + " 0.04760449007153511,\n", + " 0.03844978287816048,\n", + " -0.0009744484559632838,\n", + " -0.0095842769369483,\n", + " 0.01806998997926712,\n", + " -0.007094900123775005,\n", + " 0.01832350343465805,\n", + " 0.0046372124925255775,\n", + " -0.015098229050636292,\n", + " -0.011837744154036045,\n", + " -0.009689908474683762,\n", + " -0.007024479564279318,\n", + " 0.02339380420744419,\n", + " 0.014365852810442448,\n", + " -0.039801862090826035,\n", + " -0.04118211194872856,\n", + " -0.01399262249469757,\n", + " -0.03191472589969635,\n", + " -0.01905588060617447,\n", + " -0.018253082409501076,\n", + " -0.027816234156489372,\n", + " -0.023576898500323296,\n", + " 0.010718053206801414,\n", + " -0.009795540012419224,\n", + " 0.00043462865869514644,\n", + " 0.007429399061948061,\n", + " 0.02078823372721672,\n", + " 0.0008476909133605659,\n", + " -0.019872762262821198,\n", + " -0.020407961681485176,\n", + " 0.01063354779034853,\n", + " -0.017224939540028572,\n", + " -0.0004260461137164384,\n", + " -0.004070324823260307,\n", + " 0.02205580845475197,\n", + " -0.008647680282592773,\n", + " 0.0283514317125082,\n", + " 0.012478574179112911,\n", + " 0.007760377135127783,\n", + " -0.0056653572246432304,\n", + " -0.0017085857689380646,\n", + " -0.0377737432718277,\n", + " 0.0005299168406054378,\n", + " 0.009718076325953007,\n", + " ...],\n", + " [-0.024379240348935127,\n", + " 0.00834567565470934,\n", + " 0.013073521666228771,\n", + " -0.02563999965786934,\n", + " -0.016047269105911255,\n", + " 0.020199550315737724,\n", + " -0.029956728219985962,\n", + " -0.02932634763419628,\n", + " -0.01712987571954727,\n", + " -0.013285932131111622,\n", + " 0.03436938300728798,\n", + " -0.007537145633250475,\n", + " 0.012381474487483501,\n", + " 0.01829470880329609,\n", + " -0.010922009125351906,\n", + " 0.016938021406531334,\n", + " 0.021104007959365845,\n", + " 0.004871736746281385,\n", + " 0.020638074725866318,\n", + " 0.01112756785005331,\n", + " -0.012936482205986977,\n", + " 0.03299899399280548,\n", + " -0.019980287179350853,\n", + " 0.023666637018322945,\n", + " -0.03217675909399986,\n", + " -0.029901912435889244,\n", + " 0.024639613926410675,\n", + " -0.03138193488121033,\n", + " -0.007955114357173443,\n", + " -0.0374116487801075,\n", + " 0.010421817190945148,\n", + " -0.020624371245503426,\n", + " -0.013066669926047325,\n", + " -0.011483869515359402,\n", + " -0.011614056304097176,\n", + " 0.00977088138461113,\n", + " 0.02717483602464199,\n", + " 0.0017900720704346895,\n", + " 0.033656779676675797,\n", + " 0.007639924995601177,\n", + " 0.012299250811338425,\n", + " -0.0035116246435791254,\n", + " -0.009270689450204372,\n", + " -0.009071982465684414,\n", + " -0.012162212282419205,\n", + " 0.0029823114164173603,\n", + " -0.0003957001317758113,\n", + " -0.022282542660832405,\n", + " 0.0013052965514361858,\n", + " 0.00017076345102395862,\n", + " 0.0272433552891016,\n", + " 0.01181961502879858,\n", + " -0.01226499117910862,\n", + " -0.005361651070415974,\n", + " -0.004275617189705372,\n", + " -0.00842104759067297,\n", + " 0.0013635382056236267,\n", + " 0.008715680800378323,\n", + " -0.0029360607732087374,\n", + " 0.009517359547317028,\n", + " 0.003782276762649417,\n", + " -0.002487258054316044,\n", + " -0.01622541807591915,\n", + " -0.014087609946727753,\n", + " 0.0053171138279139996,\n", + " -0.025256289169192314,\n", + " -0.0075302934274077415,\n", + " 0.0026945294812321663,\n", + " 0.017513586208224297,\n", + " 0.0006526482757180929,\n", + " 0.03771313652396202,\n", + " 0.008427899330854416,\n", + " 0.008160673081874847,\n", + " -0.01795211061835289,\n", + " 0.011381089687347412,\n", + " -0.00242559053003788,\n", + " -0.006423703860491514,\n", + " 0.0036246818490326405,\n", + " 0.013642233796417713,\n", + " -0.018746936693787575,\n", + " 0.010545152239501476,\n", + " -0.015252442099153996,\n", + " 0.0026945294812321663,\n", + " 0.002965181600302458,\n", + " -0.001325852470472455,\n", + " -0.004594232887029648,\n", + " 0.005714526865631342,\n", + " 0.0034550961572676897,\n", + " -0.03256046772003174,\n", + " -0.015183922834694386,\n", + " -0.004690160043537617,\n", + " 0.018555082380771637,\n", + " 0.023543301969766617,\n", + " 0.005389058962464333,\n", + " -0.00621814513579011,\n", + " 0.02210439182817936,\n", + " -0.004512009210884571,\n", + " 0.04459249600768089,\n", + " 0.005858417600393295,\n", + " -0.022214023396372795,\n", + " 0.006259256973862648,\n", + " 0.012922778725624084,\n", + " -0.012306103482842445,\n", + " -0.00559804355725646,\n", + " -0.034287162125110626,\n", + " -0.0069238957948982716,\n", + " 0.012689812108874321,\n", + " -0.01817137375473976,\n", + " -0.00028542656218633056,\n", + " 0.017417658120393753,\n", + " -0.005358225200325251,\n", + " 0.012970742769539356,\n", + " 0.0021635033190250397,\n", + " -0.04683993384242058,\n", + " 0.021597348153591156,\n", + " 0.02820262871682644,\n", + " 0.005210908595472574,\n", + " -0.007283623330295086,\n", + " -0.014347984455525875,\n", + " -0.011757947504520416,\n", + " 0.007639924995601177,\n", + " 0.009298097342252731,\n", + " -0.015965044498443604,\n", + " -0.00946254376322031,\n", + " 0.010003848001360893,\n", + " 0.01378612406551838,\n", + " -0.012497957795858383,\n", + " -0.03820647671818733,\n", + " 0.002643140032887459,\n", + " -0.011511276476085186,\n", + " -0.0013652511406689882,\n", + " 0.01906212605535984,\n", + " 0.0016633110353723168,\n", + " 0.013333896175026894,\n", + " -0.021158823743462563,\n", + " 0.027202242985367775,\n", + " -0.011908690445125103,\n", + " -0.028586337342858315,\n", + " -0.04656585678458214,\n", + " -0.009764029644429684,\n", + " 0.005656285211443901,\n", + " 0.04056354612112045,\n", + " -0.008462158963084221,\n", + " -0.0039467234164476395,\n", + " -0.0009481386514380574,\n", + " -0.001090316683985293,\n", + " 0.004984794184565544,\n", + " -0.0018568786326795816,\n", + " 0.017020246013998985,\n", + " -0.006481945049017668,\n", + " -0.004042651038616896,\n", + " 0.0053171138279139996,\n", + " 0.02563999965786934,\n", + " 0.006125643849372864,\n", + " -0.0010928860865533352,\n", + " 0.02065177820622921,\n", + " 0.005779620260000229,\n", + " 0.026640383526682854,\n", + " -0.0056357295252382755,\n", + " -0.030395252630114555,\n", + " -0.019925471395254135,\n", + " 0.011696279980242252,\n", + " -0.01830841228365898,\n", + " -0.0048066433519124985,\n", + " 0.01740395464003086,\n", + " 0.03151897341012955,\n", + " -0.0063072205521166325,\n", + " 0.0014097888488322496,\n", + " -0.00750288600102067,\n", + " -0.010044959373772144,\n", + " 0.0029566166922450066,\n", + " 0.015019475482404232,\n", + " -0.022748475894331932,\n", + " -0.01407390646636486,\n", + " -0.005618599243462086,\n", + " 0.03436938300728798,\n", + " 0.008708829060196877,\n", + " 0.0009652685257606208,\n", + " -0.02883300743997097,\n", + " -0.015416888520121574,\n", + " -0.020185846835374832,\n", + " 0.016252826899290085,\n", + " 0.03513680398464203,\n", + " 0.03308121860027313,\n", + " -0.02066548354923725,\n", + " 0.013984831050038338,\n", + " 0.023378854617476463,\n", + " -0.03598644584417343,\n", + " -0.009304949082434177,\n", + " -0.0172532107681036,\n", + " 0.021542532369494438,\n", + " 0.008188080973923206,\n", + " 0.0031827311031520367,\n", + " -0.004337284713983536,\n", + " -0.6507708430290222,\n", + " -0.01954176276922226,\n", + " 0.012354066595435143,\n", + " -0.020213253796100616,\n", + " -0.002315959194675088,\n", + " 0.014252057299017906,\n", + " -0.003463661065325141,\n", + " 0.012470549903810024,\n", + " -0.00929124467074871,\n", + " 0.013107781298458576,\n", + " -0.026297785341739655,\n", + " 0.006684077903628349,\n", + " -0.010058663785457611,\n", + " -0.015129107050597668,\n", + " -0.0029172180220484734,\n", + " -0.021378085017204285,\n", + " -0.01378612406551838,\n", + " -0.026311490684747696,\n", + " -0.01022311020642519,\n", + " -0.0028384204488247633,\n", + " -0.01445761602371931,\n", + " 0.01416983362287283,\n", + " -0.003386576659977436,\n", + " -0.002060724189504981,\n", + " 0.008215488865971565,\n", + " -0.007372698746621609,\n", + " 0.05336299166083336,\n", + " -0.02184401825070381,\n", + " 0.010716450400650501,\n", + " -0.0009935328271239996,\n", + " -0.0027116595301777124,\n", + " 0.008434751071035862,\n", + " 0.02676371857523918,\n", + " -0.01559503935277462,\n", + " 0.03998798504471779,\n", + " -0.019802136346697807,\n", + " -0.009263836778700352,\n", + " 0.02017214149236679,\n", + " 0.026051115244627,\n", + " 0.02633889764547348,\n", + " -0.015512815676629543,\n", + " -0.017006540670990944,\n", + " 0.010065515525639057,\n", + " 0.011285162530839443,\n", + " -0.007852335460484028,\n", + " 0.014813916757702827,\n", + " 0.03417753055691719,\n", + " -0.0010406399378553033,\n", + " -0.0026602698490023613,\n", + " -0.00530340988188982,\n", + " 0.000868056493345648,\n", + " 0.001206799759529531,\n", + " 0.01636245846748352,\n", + " -0.025324808433651924,\n", + " 0.014855029061436653,\n", + " 0.005070443265140057,\n", + " 0.02620185911655426,\n", + " -0.0027305022813379765,\n", + " 0.012813147157430649,\n", + " 0.011326273903250694,\n", + " -0.01407390646636486,\n", + " -0.008099005557596684,\n", + " -0.018760640174150467,\n", + " -0.037329427897930145,\n", + " -0.019870657473802567,\n", + " -0.020528443157672882,\n", + " -0.02905227057635784,\n", + " -0.019651394337415695,\n", + " 0.02729817107319832,\n", + " -0.013005002401769161,\n", + " 0.002036742400377989,\n", + " 0.007023249287158251,\n", + " -0.010545152239501476,\n", + " -0.014019090682268143,\n", + " 0.012018321081995964,\n", + " 0.03754868730902672,\n", + " 0.0054130409844219685,\n", + " -0.02662668004631996,\n", + " -0.009503655135631561,\n", + " 0.006961581762880087,\n", + " -0.010942565277218819,\n", + " -0.012881667353212833,\n", + " 0.0011314282892271876,\n", + " -0.017212100327014923,\n", + " 0.023063665255904198,\n", + " 0.0020076215732842684,\n", + " -0.00786603894084692,\n", + " -0.011408497579395771,\n", + " -0.010976824909448624,\n", + " -0.013601121492683887,\n", + " 0.02551666460931301,\n", + " 0.00552609795704484,\n", + " -0.002728789346292615,\n", + " -0.01976102590560913,\n", + " 0.0074549224227666855,\n", + " -0.013512046076357365,\n", + " -0.01601986028254032,\n", + " -0.011202938854694366,\n", + " -0.004871736746281385,\n", + " -0.006776579190045595,\n", + " -3.795338125200942e-05,\n", + " -0.005022479686886072,\n", + " -0.0016590285813435912,\n", + " 0.00658472441136837,\n", + " 0.026188155636191368,\n", + " 0.006087957881391048,\n", + " -0.009236428886651993,\n", + " 0.018979903310537338,\n", + " 0.024790357798337936,\n", + " -0.0065641687251627445,\n", + " -0.006060550455003977,\n", + " -0.03705534711480141,\n", + " 0.011319422163069248,\n", + " 0.0012881667353212833,\n", + " -0.008044189773499966,\n", + " -0.03283454850316048,\n", + " 0.007893446832895279,\n", + " -0.007537145633250475,\n", + " 0.005176648497581482,\n", + " -0.006077680271118879,\n", + " 0.00022911209089215845,\n", + " 0.0010552003514021635,\n", + " -0.01614319533109665,\n", + " 0.01877434365451336,\n", + " 0.008852720260620117,\n", + " 0.005402762908488512,\n", + " 0.00970236212015152,\n", + " -0.015677262097597122,\n", + " -0.008044189773499966,\n", + " -0.005039609503000975,\n", + " 0.018609898164868355,\n", + " 0.001987065654247999,\n", + " 0.028051884844899178,\n", + " -0.017897294834256172,\n", + " 0.013964274898171425,\n", + " -0.019322499632835388,\n", + " 0.007317882962524891,\n", + " 0.00019549470744095743,\n", + " 0.02965524233877659,\n", + " -0.01663653552532196,\n", + " -0.030121173709630966,\n", + " -0.011566092260181904,\n", + " 0.019432131201028824,\n", + " -0.013546306639909744,\n", + " -0.005964622832834721,\n", + " -0.03453383222222328,\n", + " -0.015183922834694386,\n", + " 0.0065915766172111034,\n", + " -0.008893831633031368,\n", + " 0.0092227254062891,\n", + " -0.0025711944326758385,\n", + " -0.0007995369960553944,\n", + " 0.010579411871731281,\n", + " 0.0217754989862442,\n", + " 0.009832548908889294,\n", + " -0.03138193488121033,\n", + " -0.00223544891923666,\n", + " -0.021857721731066704,\n", + " -0.003847370157018304,\n", + " -0.0032135648652911186,\n", + " 0.007400106638669968,\n", + " 0.018541378900408745,\n", + " -0.02599629946053028,\n", + " -0.006776579190045595,\n", + " -0.014347984455525875,\n", + " 0.01559503935277462,\n", + " -0.0057042487896978855,\n", + " 0.015087994746863842,\n", + " 0.021446604281663895,\n", + " -0.026434825733304024,\n", + " 0.007338439114391804,\n", + " -0.009229577146470547,\n", + " -0.028257444500923157,\n", + " 0.011552388779819012,\n", + " -0.022282542660832405,\n", + " -0.00021273165475577116,\n", + " 0.0010706172324717045,\n", + " 0.002122391713783145,\n", + " 0.0036589414812624454,\n", + " -0.008880128152668476,\n", + " -0.006550464779138565,\n", + " -0.00887327641248703,\n", + " -0.01615689881145954,\n", + " -0.007667332887649536,\n", + " 0.026873350143432617,\n", + " -0.00302513618953526,\n", + " -0.0092227254062891,\n", + " 0.02085733786225319,\n", + " 0.0034259753301739693,\n", + " 0.008880128152668476,\n", + " -0.005889251362532377,\n", + " 0.01774655282497406,\n", + " -0.003939871676266193,\n", + " 0.023721452802419662,\n", + " 0.009866808541119099,\n", + " 0.024845173582434654,\n", + " -0.006406573578715324,\n", + " -0.010408112779259682,\n", + " 0.011799058876931667,\n", + " 0.021474013105034828,\n", + " 0.02729817107319832,\n", + " 0.0035664401948451996,\n", + " 0.023118481040000916,\n", + " -0.013758717104792595,\n", + " 0.015252442099153996,\n", + " -0.05870751291513443,\n", + " -0.010620523244142532,\n", + " -0.02932634763419628,\n", + " 0.03305380791425705,\n", + " -0.005786472465842962,\n", + " -0.0008654869743622839,\n", + " -0.00219262414611876,\n", + " -0.010250518098473549,\n", + " -0.00016102084191516042,\n", + " 0.002893236232921481,\n", + " 0.017705440521240234,\n", + " 0.006255830638110638,\n", + " 0.017897294834256172,\n", + " -0.015320961363613605,\n", + " -0.0019750746432691813,\n", + " -0.009284392930567265,\n", + " 0.029353756457567215,\n", + " -0.005193778313696384,\n", + " -0.010928860865533352,\n", + " 0.016033563762903214,\n", + " 0.02710631676018238,\n", + " 0.01573207788169384,\n", + " 0.01559503935277462,\n", + " 0.00611879164353013,\n", + " -0.005807028152048588,\n", + " 0.015279849991202354,\n", + " 0.03806943818926811,\n", + " 0.020679187029600143,\n", + " -0.01105219591408968,\n", + " 0.009202169254422188,\n", + " -0.017691737040877342,\n", + " 0.030532291159033775,\n", + " -0.01739025115966797,\n", + " 0.012333511374890804,\n", + " -0.0063414801843464375,\n", + " 0.0024547113571316004,\n", + " 0.01856878586113453,\n", + " 0.03957686573266983,\n", + " -0.012641848996281624,\n", + " 0.010695895180106163,\n", + " 0.014868732541799545,\n", + " -0.004186541773378849,\n", + " 0.015855412930250168,\n", + " 0.010689042508602142,\n", + " 0.03554791957139969,\n", + " -0.021501420065760612,\n", + " 0.031107855960726738,\n", + " -0.013402415439486504,\n", + " 0.012278695590794086,\n", + " 0.024995915591716766,\n", + " -0.01581430248916149,\n", + " -0.004929978400468826,\n", + " 0.020062511786818504,\n", + " 0.018349522724747658,\n", + " 0.01823989301919937,\n", + " -0.014389095827937126,\n", + " 0.023748859763145447,\n", + " 0.011627759784460068,\n", + " -0.01574578322470188,\n", + " 0.025283697992563248,\n", + " 0.0020932708866894245,\n", + " -0.004614788573235273,\n", + " 0.015183922834694386,\n", + " -0.04152281954884529,\n", + " -0.02003510296344757,\n", + " -0.018048036843538284,\n", + " -0.004885440692305565,\n", + " 0.0041659860871732235,\n", + " 0.015690967440605164,\n", + " 0.002643140032887459,\n", + " -0.007633072789758444,\n", + " 0.006228423211723566,\n", + " 0.010058663785457611,\n", + " 0.03127230331301689,\n", + " 0.020953264087438583,\n", + " -0.026777422055602074,\n", + " -0.015183922834694386,\n", + " 0.014649470336735249,\n", + " 0.021501420065760612,\n", + " 0.014183538034558296,\n", + " 0.014745397493243217,\n", + " -0.01157979667186737,\n", + " -0.027887439355254173,\n", + " -0.015828005969524384,\n", + " 0.015060586854815483,\n", + " 0.0021600774489343166,\n", + " 0.017691737040877342,\n", + " 0.023447373881936073,\n", + " -0.0029257829301059246,\n", + " -0.007180843967944384,\n", + " -0.018404338508844376,\n", + " -0.007132880389690399,\n", + " -0.022638844326138496,\n", + " 0.020775113254785538,\n", + " 0.02224143221974373,\n", + " 0.016444681212306023,\n", + " -0.014402800239622593,\n", + " -0.013066669926047325,\n", + " 0.02203587256371975,\n", + " 0.026859646663069725,\n", + " 0.003384863492101431,\n", + " -0.0026688347570598125,\n", + " -0.007448070216923952,\n", + " -0.011216643266379833,\n", + " -0.008962350897490978,\n", + " 0.02314588986337185,\n", + " -0.0002858548250515014,\n", + " -0.033985674381256104,\n", + " 0.0329715870320797,\n", + " 0.0015348369488492608,\n", + " -0.0019219721434637904,\n", + " -0.00981199275702238,\n", + " -0.028175219893455505,\n", + " 0.015540223568677902,\n", + " 0.008688272908329964,\n", + " -0.010997381061315536,\n", + " -0.011312570422887802,\n", + " -0.034972354769706726,\n", + " 0.02307736873626709,\n", + " 0.046401407569646835,\n", + " 0.034753091633319855,\n", + " -0.0025352216325700283,\n", + " 0.030998224392533302,\n", + " -0.0013823810731992126,\n", + " 0.012121100910007954,\n", + " -0.023269224911928177,\n", + " -0.021515125408768654,\n", + " 0.014334280975162983,\n", + " -0.0015810875920578837,\n", + " -0.0003783561405725777,\n", + " -0.002456424292176962,\n", + " -0.002024751389399171,\n", + " 0.00476553151383996,\n", + " 0.004429786000400782,\n", + " 0.0008397921919822693,\n", + " 0.015471704304218292,\n", + " -0.013299635611474514,\n", + " 0.003081664675846696,\n", + " -0.0034071323461830616,\n", + " -0.007735852152109146,\n", + " 0.019706210121512413,\n", + " 0.0006457963609136641,\n", + " 0.002627722918987274,\n", + " 0.028860416263341904,\n", + " -5.877688818145543e-05,\n", + " 0.047716982662677765,\n", + " 0.022268839180469513,\n", + " 0.0010080932406708598,\n", + " -0.008455307222902775,\n", + " -0.009784585796296597,\n", + " 0.013710753060877323,\n", + " 0.0175958089530468,\n", + " 0.004871736746281385,\n", + " -0.012285547330975533,\n", + " 0.03272491693496704,\n", + " 0.011764799244701862,\n", + " -0.0036349596921354532,\n", + " -0.010298481211066246,\n", + " 0.012148507870733738,\n", + " 0.0239133071154356,\n", + " -0.001457752427086234,\n", + " 0.0030456921085715294,\n", + " 0.013148892670869827,\n", + " 0.013731309212744236,\n", + " -0.03256046772003174,\n", + " -0.015923932194709778,\n", + " 0.004152282141149044,\n", + " 6.439763092203066e-05,\n", + " -0.0209258571267128,\n", + " 0.0324508361518383,\n", + " 0.009489951655268669,\n", + " 0.021871427074074745,\n", + " -0.020679187029600143,\n", + " 0.009243281558156013,\n", + " 0.011833318509161472,\n", + " 0.0012136517325416207,\n", + " 0.01948694698512554,\n", + " -0.010236813686788082,\n", + " -0.05245853215456009,\n", + " -0.019870657473802567,\n", + " -0.012038877233862877,\n", + " 0.013498342595994473,\n", + " -0.004789513535797596,\n", + " -0.015375777147710323,\n", + " -0.023378854617476463,\n", + " -0.03480790928006172,\n", + " -0.011682575568556786,\n", + " -0.00866086594760418,\n", + " 0.017376545816659927,\n", + " 0.0033882895950227976,\n", + " -0.021090304479002953,\n", + " -0.02355700545012951,\n", + " 0.004251635167747736,\n", + " 0.008681421168148518,\n", + " 0.011250902898609638,\n", + " 0.005971475038677454,\n", + " -0.00620444118976593,\n", + " -0.011600351892411709,\n", + " 0.006780005060136318,\n", + " -0.0013489777920767665,\n", + " -0.042372461408376694,\n", + " 0.02495480328798294,\n", + " -0.013745012693107128,\n", + " 0.00029527622973546386,\n", + " 0.006581298541277647,\n", + " 0.0006179602933116257,\n", + " -0.007482329849153757,\n", + " -0.023447373881936073,\n", + " 0.031080447137355804,\n", + " 0.01455354318022728,\n", + " 0.004570250865072012,\n", + " 0.003521902486681938,\n", + " -0.01712987571954727,\n", + " -0.005001924000680447,\n", + " 0.0071739922277629375,\n", + " 0.01954176276922226,\n", + " 0.017636921256780624,\n", + " -0.011257754638791084,\n", + " 0.0011477017542347312,\n", + " -0.003102220594882965,\n", + " -0.015430592931807041,\n", + " -0.009537914767861366,\n", + " -0.0119566535577178,\n", + " 0.005015627946704626,\n", + " 0.005834436044096947,\n", + " 0.005368503276258707,\n", + " 0.044126562774181366,\n", + " -0.02765447273850441,\n", + " -0.006420277524739504,\n", + " -0.016033563762903214,\n", + " 0.004604510962963104,\n", + " 0.02251550927758217,\n", + " 0.00020984098955523223,\n", + " -0.00983940064907074,\n", + " 0.02030918188393116,\n", + " 0.0093940244987607,\n", + " 0.00469701224938035,\n", + " 0.009777733124792576,\n", + " -0.006889636162668467,\n", + " -0.04448286443948746,\n", + " -0.0353560633957386,\n", + " -0.0018431746866554022,\n", + " 0.014224649406969547,\n", + " -0.013470934703946114,\n", + " 0.013258524239063263,\n", + " 0.018938791006803513,\n", + " -0.010161442682147026,\n", + " -0.0018791474867612123,\n", + " 0.00733158690854907,\n", + " 0.006814264692366123,\n", + " -0.006903340108692646,\n", + " -0.03193008899688721,\n", + " -0.011524980887770653,\n", + " -0.026051115244627,\n", + " -0.01648579351603985,\n", + " -0.01324482075870037,\n", + " 0.01600615680217743,\n", + " -0.006183885503560305,\n", + " -0.021378085017204285,\n", + " -0.005108129233121872,\n", + " -0.017636921256780624,\n", + " 0.006577872671186924,\n", + " 0.0003533037088345736,\n", + " 0.003467086935415864,\n", + " -0.027599656954407692,\n", + " -0.005488412454724312,\n", + " 0.001148558221757412,\n", + " -0.017362842336297035,\n", + " 0.030806370079517365,\n", + " 0.009147354401648045,\n", + " 0.017856182530522346,\n", + " 0.0027459191624075174,\n", + " -0.016102083027362823,\n", + " -0.005399337038397789,\n", + " -0.024653317406773567,\n", + " -0.007694740314036608,\n", + " 0.0003267524007242173,\n", + " 0.036150891333818436,\n", + " 0.020692890509963036,\n", + " 0.0183632280677557,\n", + " -0.009709213860332966,\n", + " 0.011703131720423698,\n", + " 0.024557391181588173,\n", + " 0.00022975447063799948,\n", + " 0.01348463911563158,\n", + " -0.007030101493000984,\n", + " 0.0030234232544898987,\n", + " -0.039686497300863266,\n", + " 0.01386149600148201,\n", + " 0.024653317406773567,\n", + " 0.024762948974967003,\n", + " 0.02341996692121029,\n", + " -0.0068827844224870205,\n", + " -0.005543227773159742,\n", + " 0.02191253751516342,\n", + " -0.01641727425158024,\n", + " -0.011319422163069248,\n", + " -0.009962735697627068,\n", + " -0.018801752477884293,\n", + " -0.021186230704188347,\n", + " -0.00886642374098301,\n", + " -0.017486177384853363,\n", + " 0.0038576482329517603,\n", + " -0.0396316833794117,\n", + " -0.02024066261947155,\n", + " 0.01552652008831501,\n", + " 0.005693970713764429,\n", + " 0.032258983701467514,\n", + " 0.007859187200665474,\n", + " 0.02176179550588131,\n", + " -0.027695583179593086,\n", + " 0.009764029644429684,\n", + " 0.009030871093273163,\n", + " 0.0008697694865986705,\n", + " -0.012203323654830456,\n", + " 0.012299250811338425,\n", + " -0.0006595002487301826,\n", + " 0.0025557775516062975,\n", + " 0.023721452802419662,\n", + " 0.00886642374098301,\n", + " -0.01634875312447548,\n", + " -0.019637690857052803,\n", + " 0.01378612406551838,\n", + " -0.005580913741141558,\n", + " 0.01892508752644062,\n", + " -0.018541378900408745,\n", + " -0.016458384692668915,\n", + " -0.008708829060196877,\n", + " -0.021295862272381783,\n", + " -0.010757562704384327,\n", + " -0.010031255893409252,\n", + " -0.025132954120635986,\n", + " -0.021542532369494438,\n", + " 0.007352143060415983,\n", + " 0.002600315259769559,\n", + " -0.026859646663069725,\n", + " 0.01001069974154234,\n", + " -0.015978747978806496,\n", + " -0.002317672362551093,\n", + " -0.011586648412048817,\n", + " -0.004213949665427208,\n", + " 0.03373900428414345,\n", + " 0.019733617082238197,\n", + " 0.03957686573266983,\n", + " 0.035794589668512344,\n", + " -0.023831084370613098,\n", + " -0.015471704304218292,\n", + " 0.03258787840604782,\n", + " -0.005437022540718317,\n", + " -0.00872938521206379,\n", + " 0.02426960878074169,\n", + " 0.021611051633954048,\n", + " -0.030093766748905182,\n", + " -0.020254366099834442,\n", + " 0.014964659698307514,\n", + " 0.0004826342628803104,\n", + " -0.00705065717920661,\n", + " 0.0074891820549964905,\n", + " 0.0077769639901816845,\n", + " -0.010003848001360893,\n", + " 0.012079988606274128,\n", + " 0.0025866113137453794,\n", + " -0.013546306639909744,\n", + " -0.022200319916009903,\n", + " 0.019021015614271164,\n", + " -0.01399853453040123,\n", + " 0.009654398076236248,\n", + " -0.04157763719558716,\n", + " -0.002600315259769559,\n", + " -0.019870657473802567,\n", + " 0.03464346379041672,\n", + " -0.000787117809522897,\n", + " 0.022954033687710762,\n", + " 0.01358056627213955,\n", + " -0.013539453968405724,\n", + " -0.016540609300136566,\n", + " -0.01181276235729456,\n", + " -0.022131800651550293,\n", + " -0.018555082380771637,\n", + " -0.010236813686788082,\n", + " 0.011387941427528858,\n", + " -0.009791437536478043,\n", + " 0.0038199624978005886,\n", + " -0.01115497574210167,\n", + " 0.011326273903250694,\n", + " 0.00012290685845073313,\n", + " -0.00453941710293293,\n", + " -0.010771266184747219,\n", + " 0.01884286478161812,\n", + " 0.0006342337001115084,\n", + " -0.00469701224938035,\n", + " 0.004508583340793848,\n", + " -0.010353296995162964,\n", + " 0.026380009949207306,\n", + " 0.015704670920968056,\n", + " -0.011161827482283115,\n", + " -0.02577703818678856,\n", + " 0.0008487853920087218,\n", + " -0.011339978314936161,\n", + " 0.015293553471565247,\n", + " 0.006077680271118879,\n", + " 0.023255519568920135,\n", + " -0.01996658369898796,\n", + " -0.005834436044096947,\n", + " -0.007434366270899773,\n", + " -0.013971127569675446,\n", + " -0.010750710032880306,\n", + " 0.011209791526198387,\n", + " -0.017568401992321014,\n", + " 0.020610667765140533,\n", + " -0.006248978897929192,\n", + " -0.009626990184187889,\n", + " 0.014115017838776112,\n", + " 0.015704670920968056,\n", + " 0.02329663187265396,\n", + " 0.015225034207105637,\n", + " 0.0158828217536211,\n", + " -0.016883205622434616,\n", + " -0.010784970596432686,\n", + " 0.017349138855934143,\n", + " 0.02085733786225319,\n", + " -0.03754868730902672,\n", + " 0.023337744176387787,\n", + " 0.0042002457194030285,\n", + " -0.02258402854204178,\n", + " -0.004128300119191408,\n", + " -0.013285932131111622,\n", + " -0.028778191655874252,\n", + " -0.02106289565563202,\n", + " 0.00415913388133049,\n", + " 0.02189883403480053,\n", + " 0.008236045017838478,\n", + " -0.021953649818897247,\n", + " 0.009195317514240742,\n", + " 0.001166544621810317,\n", + " 0.01843174733221531,\n", + " 0.005656285211443901,\n", + " -0.02183031477034092,\n", + " 0.001601643394678831,\n", + " -0.009161057882010937,\n", + " -0.004563399124890566,\n", + " 0.0041968198493123055,\n", + " -0.0075577013194561005,\n", + " 0.016965430229902267,\n", + " -0.024365536868572235,\n", + " 0.0217754989862442,\n", + " 0.005693970713764429,\n", + " -0.0338212288916111,\n", + " -0.02203587256371975,\n", + " 0.014813916757702827,\n", + " 0.021446604281663895,\n", + " -0.0054164668545126915,\n", + " 0.011771650984883308,\n", + " -0.006838246714323759,\n", + " 0.007831779308617115,\n", + " -0.013882052153348923,\n", + " 0.02309107407927513,\n", + " -0.008976055309176445,\n", + " 0.0012718932703137398,\n", + " -0.0176780316978693,\n", + " -0.0016367597272619605,\n", + " 0.009428284130990505,\n", + " 0.015622447244822979,\n", + " 0.00462506664916873,\n", + " 0.01455354318022728,\n", + " -0.01982954517006874,\n", + " -0.01941842772066593,\n", + " -0.0442361943423748,\n", + " -0.023899603635072708,\n", + " 0.006903340108692646,\n", + " 0.011627759784460068,\n", + " -0.020692890509963036,\n", + " -0.021597348153591156,\n", + " -0.03401308134198189,\n", + " -0.03149156644940376,\n", + " -0.011257754638791084,\n", + " -0.019637690857052803,\n", + " -0.022063281387090683,\n", + " 0.001298444578424096,\n", + " 0.005882399622350931,\n", + " 0.010003848001360893,\n", + " -0.007098620757460594,\n", + " 0.022830698639154434,\n", + " 0.00673889322206378,\n", + " 0.027599656954407692,\n", + " -0.015978747978806496,\n", + " -0.020076215267181396,\n", + " 0.009270689450204372,\n", + " -0.01989806443452835,\n", + " -0.00963384285569191,\n", + " 0.006101661827415228,\n", + " -0.037959806621074677,\n", + " 0.004111170303076506,\n", + " 0.004258487373590469,\n", + " 0.013532602228224277,\n", + " 0.013292783871293068,\n", + " 0.02440664730966091,\n", + " -0.03182045742869377,\n", + " 0.0029823114164173603,\n", + " 0.01669135130941868,\n", + " 0.013491490855813026,\n", + " 0.01641727425158024,\n", + " 0.01662283204495907,\n", + " 0.008311416022479534,\n", + " -0.03362937271595001,\n", + " -0.012655552476644516,\n", + " -0.0017138441326096654,\n", + " 0.001448331051506102,\n", + " -0.0033112051896750927,\n", + " -0.030724145472049713,\n", + " 0.017308026552200317,\n", + " -0.028367076069116592,\n", + " -0.00033231961424462497,\n", + " -0.022844403982162476,\n", + " 0.020199550315737724,\n", + " 0.012545921839773655,\n", + " -0.0015168505487963557,\n", + " 0.033026400953531265,\n", + " 0.014087609946727753,\n", + " 0.02246069349348545,\n", + " 0.004659326281398535,\n", + " 0.013888903893530369,\n", + " -0.021268455311655998,\n", + " 0.0028230035677552223,\n", + " 0.018746936693787575,\n", + " -0.03560273349285126,\n", + " -0.014676878228783607,\n", + " 0.02398182637989521,\n", + " -0.038288701325654984,\n", + " 0.00915420614182949,\n", + " -0.015965044498443604,\n", + " 0.0015151376137509942,\n", + " -0.00831826776266098,\n", + " -0.004751827567815781,\n", + " -6.123930506873876e-05,\n", + " -0.006413425784558058,\n", + " -0.013183153234422207,\n", + " -0.0034602349624037743,\n", + " 0.018609898164868355,\n", + " -0.03998798504471779,\n", + " -0.02592778019607067,\n", + " -0.0053856330923736095,\n", + " 0.019843248650431633,\n", + " -0.0003205428074579686,\n", + " -0.012491106055676937,\n", + " -0.0009961023461073637,\n", + " -0.032807137817144394,\n", + " 0.0016350466758012772,\n", + " 0.01514281053096056,\n", + " -0.021364381536841393,\n", + " -0.013977979309856892,\n", + " 0.010839785449206829,\n", + " 0.01656801626086235,\n", + " 0.010312185622751713,\n", + " 0.022912923246622086,\n", + " 0.205997034907341,\n", + " -0.007358994800597429,\n", + " 0.04566139727830887,\n", + " 0.038782041519880295,\n", + " -0.004258487373590469,\n", + " 0.0002391759044257924,\n", + " 0.013758717104792595,\n", + " -0.005190352443605661,\n", + " 0.01303241029381752,\n", + " 0.011847022920846939,\n", + " -0.015828005969524384,\n", + " -0.001850026659667492,\n", + " -0.01732173189520836,\n", + " -0.0075302934274077415,\n", + " 0.006070828065276146,\n", + " 0.010134034790098667,\n", + " -0.04588066041469574,\n", + " -0.034753091633319855,\n", + " -0.018870271742343903,\n", + " -0.03875463083386421,\n", + " -0.03417753055691719,\n", + " -0.016252826899290085,\n", + " -0.0172532107681036,\n", + " -0.015389480628073215,\n", + " 0.014855029061436653,\n", + " -0.010942565277218819,\n", + " -0.0048409029841423035,\n", + " 0.0006440833676606417,\n", + " 0.01996658369898796,\n", + " 0.0021241046488285065,\n", + " -0.014320576563477516,\n", + " -0.014786508865654469,\n", + " 0.0037308870814740658,\n", + " -0.019582875072956085,\n", + " -0.0010851776460185647,\n", + " 0.009044574573636055,\n", + " 0.03151897341012955,\n", + " -0.014046498574316502,\n", + " 0.02080252207815647,\n", + " 0.015334665775299072,\n", + " 0.012662404216825962,\n", + " -0.00658472441136837,\n", + " -0.00234679295681417,\n", + " -0.030258214101195335,\n", + " -0.003343751886859536,\n", + " 0.019514355808496475,\n", + " ...])" + ] + }, + "metadata": {}, + "execution_count": 43 + } + ], + "source": [ + "# Verify if both embeddings have the same dimension (should be True)\n", + "len(embedding_1) == len(embedding_2)\n", + "\n", + "# Return/display the two embedding vectors for further inspection or use\n", + "embedding_1, embedding_2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qiKCOv4X0d7B" + }, + "source": [ + "### Vector Database" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_lKe-Yo6UzHL" + }, + "source": [ + "#### Setup Vector Database Directory" + ] + }, + { + "cell_type": "markdown", + "source": [ + "LangChain is used here to help orchestrate the various components of the Retrieval Augmented Generation (RAG) system. It provides tools and abstractions for:\n", + "\n", + "Loading and splitting documents: Making it easy to load the PDF manual and break it into smaller, manageable chunks.\n", + "Creating embeddings: Interfacing with embedding models (like OpenAI's) to convert text into numerical vectors.\n", + "Vector databases: Simplifying the process of storing these embeddings in a vector database (Chroma) and performing similarity searches to retrieve relevant information.\n", + "Essentially, LangChain helps connect these different pieces together to build the RAG pipeline for question answering.\n", + "\n" + ], + "metadata": { + "id": "ziVCjOwxQw75" + } + }, + { + "cell_type": "code", + "source": [ + "from langchain_openai import OpenAIEmbeddings\n", + "from langchain_community.vectorstores import Chroma\n", + "\n", + "# Define vector DB directory\n", + "out_dir = \"Chroma\"\n", + "os.makedirs(out_dir, exist_ok=True)\n", + "\n", + "# Create the embedding function\n", + "embedding_function = OpenAIEmbeddings(\n", + " model=\"text-embedding-3-small\"\n", + ")\n", + "\n" + ], + "metadata": { + "id": "gQ_rvak0wSFM" + }, + "execution_count": 44, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "#### Create Vector Database from Documents" + ], + "metadata": { + "id": "_rHpwgzIMMc3" + } + }, + { + "cell_type": "code", + "source": [ + "# Building the vector store and saving it to disk for future use\n", + "# Process documents in smaller batches to avoid exceeding the token limit\n", + "import time # Import the time module\n", + "\n", + "batch_size = 100 # Adjust batch size as needed\n", + "for i in range(0, len(document_chunks), batch_size):\n", + " batch_chunks = document_chunks[i:i + batch_size]\n", + " if i == 0:\n", + " vectorstore = Chroma.from_documents(\n", + " batch_chunks, # Documents to index\n", + " embedding_model, # Embedding model for converting text to vectors\n", + " persist_directory=out_dir # Save vector DB files here\n", + " )\n", + " else:\n", + " vectorstore.add_documents(batch_chunks)\n", + "\n", + " time.sleep(0.3) # Add a 1-second delay between batches to mitigate rate limiting\n", + "\n", + "print(\"Vector store created and documents added.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "llRHoT4dGHwu", + "outputId": "14788ac0-3cad-44b3-d05a-6a487be6047e" + }, + "execution_count": 45, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Vector store created and documents added.\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DoJ1Bqb2VWkm" + }, + "source": [ + "#### Load Vector Database" + ] + }, + { + "cell_type": "code", + "source": [ + "retriever = vectorstore.as_retriever(\n", + " search_type=\"similarity\",\n", + " search_kwargs={\"k\": 3}\n", + ")\n" + ], + "metadata": { + "id": "caYiuqw7bm2F" + }, + "execution_count": 46, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "retriever.invoke(\"What are the common symptoms of appendicitis?\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "clYOUd48bsnR", + "outputId": "647c0581-8f3d-41a0-a5b0-e61ab07caf49" + }, + "execution_count": 47, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[Document(metadata={'moddate': '2025-11-05T06:16:39+00:00', 'trapped': '', 'format': 'PDF 1.7', 'keywords': '', 'page': 173, 'title': 'The Merck Manual of Diagnosis & Therapy, 19th Edition', 'creationdate': '2012-06-15T05:44:40+00:00', 'modDate': 'D:20251105061639Z', 'creationDate': 'D:20120615054440Z', 'creator': 'Atop CHM to PDF Converter', 'total_pages': 4114, 'author': '', 'source': '/content/medical_diagnosis_manual.pdf', 'subject': '', 'file_path': '/content/medical_diagnosis_manual.pdf', 'producer': 'pdf-lib (https://github.com/Hopding/pdf-lib)'}, page_content=\"Etiology\\nAppendicitis is thought to result from obstruction of the appendiceal lumen, typically by lymphoid\\nhyperplasia, but occasionally by a fecalith, foreign body, or even worms. The obstruction leads to\\ndistention, bacterial overgrowth, ischemia, and inflammation. If untreated, necrosis, gangrene, and\\nperforation occur. If the perforation is contained by the omentum, an appendiceal abscess results.\\nSymptoms and Signs\\nThe classic symptoms of acute appendicitis are epigastric or periumbilical pain followed by brief nausea,\\nvomiting, and anorexia; after a few hours, the pain shifts to the right lower quadrant. Pain increases with\\ncough and motion. Classic signs are right lower quadrant direct and rebound tenderness located at\\nMcBurney's point (junction of the middle and outer thirds of the line joining the umbilicus to the anterior\\nsuperior spine). Additional signs are pain felt in the right lower quadrant with palpation of the left lower\\nquadrant (Rovsing sign), an increase in pain from passive extension of the right hip joint that stretches\\nthe iliopsoas muscle (psoas sign), or pain caused by passive internal rotation of the flexed thigh\\n(obturator sign). Low-grade fever (rectal temperature 37.7 to 38.3° C [100 to 101° F]) is common.\\nUnfortunately, these classic findings appear in < 50% of patients. Many variations of symptoms and signs\\noccur. Pain may not be localized, particularly in infants and children. Tenderness may be diffuse or, in rare\\ninstances, absent. Bowel movements are usually less frequent or absent; if diarrhea is a sign, a\\nretrocecal appendix should be suspected. RBCs or WBCs may be present in the urine. Atypical symptoms\\nare common among elderly patients and pregnant women; in particular, pain is less severe and local\\ntenderness is less marked.\\nDiagnosis\\n• Clinical evaluation\\n• Abdominal CT if necessary\\n• Ultrasound an option to CT\\nWhen classic symptoms and signs are present, the diagnosis is clinical. In such patients, delaying\\nlaparotomy to do imaging tests only increases the likelihood of perforation and subsequent complications.\"),\n", + " Document(metadata={'page': 172, 'creationdate': '2012-06-15T05:44:40+00:00', 'creator': 'Atop CHM to PDF Converter', 'subject': '', 'file_path': '/content/medical_diagnosis_manual.pdf', 'author': '', 'format': 'PDF 1.7', 'modDate': 'D:20251105061639Z', 'creationDate': 'D:20120615054440Z', 'producer': 'pdf-lib (https://github.com/Hopding/pdf-lib)', 'title': 'The Merck Manual of Diagnosis & Therapy, 19th Edition', 'moddate': '2025-11-05T06:16:39+00:00', 'trapped': '', 'keywords': '', 'total_pages': 4114, 'source': '/content/medical_diagnosis_manual.pdf'}, page_content=\"antibiotics effective against intestinal flora should be given (eg, cefotetan 1 to 2 g bid, or amikacin 5\\nmg/kg tid plus clindamycin 600 to 900 mg qid).\\nAppendicitis\\nAppendicitis is acute inflammation of the vermiform appendix, typically resulting in abdominal\\npain, anorexia, and abdominal tenderness. Diagnosis is clinical, often supplemented by CT or\\nultrasound. Treatment is surgical removal.\\nIn the US, acute appendicitis is the most common cause of acute abdominal pain requiring surgery. Over\\n5% of the population develops appendicitis at some point. It most commonly occurs in the teens and 20s\\nbut may occur at any age.\\nOther conditions affecting the appendix include carcinoids, cancer, villous adenomas, and diverticula. The\\nappendix may also be affected by Crohn's disease or ulcerative colitis with pancolitis.\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition\\nChapter 11. Acute Abdomen & Surgical Gastroenterology\\n163\\nbiplobsinha25@gmail.com\\n9X5AUD3EIR\\nThis file is meant for personal use by biplobsinha25@gmail.com only.\\nSharing or publishing the contents in part or full is liable for legal action.\"),\n", + " Document(metadata={'total_pages': 4114, 'moddate': '2025-11-05T06:16:39+00:00', 'creator': 'Atop CHM to PDF Converter', 'format': 'PDF 1.7', 'trapped': '', 'page': 173, 'source': '/content/medical_diagnosis_manual.pdf', 'modDate': 'D:20251105061639Z', 'creationDate': 'D:20120615054440Z', 'subject': '', 'author': '', 'producer': 'pdf-lib (https://github.com/Hopding/pdf-lib)', 'title': 'The Merck Manual of Diagnosis & Therapy, 19th Edition', 'keywords': '', 'creationdate': '2012-06-15T05:44:40+00:00', 'file_path': '/content/medical_diagnosis_manual.pdf'}, page_content='• Ultrasound an option to CT\\nWhen classic symptoms and signs are present, the diagnosis is clinical. In such patients, delaying\\nlaparotomy to do imaging tests only increases the likelihood of perforation and subsequent complications.\\nIn patients with atypical or equivocal findings, imaging studies should be done without delay. Contrast-\\nenhanced CT has reasonable accuracy in diagnosing appendicitis and can also reveal other causes of\\nan acute abdomen. Graded compression ultrasound can usually be done quickly and uses no radiation\\n(of particular concern in children); however, it is occasionally limited by the presence of bowel gas and is\\nless useful for recognizing nonappendiceal causes of pain. Appendicitis remains primarily a clinical\\ndiagnosis. Selective and judicious use of radiographic studies may reduce the rate of negative\\nlaparotomy.\\nLaparoscopy can be used for diagnosis as well as definitive treatment; it may be especially helpful in\\nwomen with lower abdominal pain of unclear etiology. Laboratory studies typically show leukocytosis\\n(12,000 to 15,000/μL), but this finding is highly variable; a normal WBC count should not be used to\\nexclude appendicitis.\\nPrognosis\\nWithout surgery or antibiotics, mortality is > 50%.\\nWith early surgery, the mortality rate is < 1%, and convalescence is normally rapid and complete. With\\ncomplications (rupture and development of an abscess or peritonitis), the prognosis is worse: Repeat\\noperations and a long convalescence may follow.\\nTreatment\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition\\nChapter 11. Acute Abdomen & Surgical Gastroenterology\\n164\\nbiplobsinha25@gmail.com\\n9X5AUD3EIR\\nThis file is meant for personal use by biplobsinha25@gmail.com only.\\nSharing or publishing the contents in part or full is liable for legal action.')]" + ] + }, + "metadata": {}, + "execution_count": 47 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RtGfyOaeVlqP" + }, + "source": [ + "#### Explore Vector Database and Perform Searches" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "id": "GdZON_Uj1EeS", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8ff8ce60-8948-421b-bb73-b6dd7a17acee" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "OpenAIEmbeddings(client=, async_client=, model='text-embedding-ada-002', dimensions=None, deployment='text-embedding-ada-002', openai_api_version=None, openai_api_base='https://api.openai.com/v1', openai_api_type=None, openai_proxy=None, embedding_ctx_length=8191, openai_api_key=SecretStr('**********'), openai_organization=None, allowed_special=None, disallowed_special=None, chunk_size=1000, max_retries=2, request_timeout=None, headers=None, tiktoken_enabled=True, tiktoken_model_name=None, show_progress_bar=False, model_kwargs={}, skip_empty=False, default_headers=None, default_query=None, retry_min_seconds=4, retry_max_seconds=20, http_client=None, http_async_client=None, check_embedding_ctx_length=True)" + ] + }, + "metadata": {}, + "execution_count": 48 + } + ], + "source": [ + "vectorstore.embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dhXVQLa48mR0" + }, + "source": [ + "**Instructions:**\n", + "\n", + "In this step, the vector database has already been loaded into memory using the Chroma store, and the embedding function is attached. The next logical action is to query the vector database to verify that similarity search is working correctly.\n", + "\n", + "Therefore, in the following cell, we should perform a similarity search test by passing a clinical question to the vector store and retrieving the top-k most relevant document chunks based on the embeddings stored earlier.\n", + "\n", + "This will confirm:\n", + "\n", + "- my embeddings were generated correctly\n", + "\n", + "- my Chroma vector store loaded properly\n", + "\n", + "- my retrieval step is functioning\n", + "\n", + "- The RAG pipeline is ready for the answer-generation step" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "id": "P9HgsipF1I4H", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c80e4de8-89e1-4361-ddb9-fc10e4a13e35" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[Document(metadata={'file_path': '/content/medical_diagnosis_manual.pdf', 'trapped': '', 'creationdate': '2012-06-15T05:44:40+00:00', 'total_pages': 4114, 'page': 2456, 'keywords': '', 'author': '', 'format': 'PDF 1.7', 'creator': 'Atop CHM to PDF Converter', 'moddate': '2025-11-05T06:16:39+00:00', 'subject': '', 'producer': 'pdf-lib (https://github.com/Hopding/pdf-lib)', 'title': 'The Merck Manual of Diagnosis & Therapy, 19th Edition', 'source': '/content/medical_diagnosis_manual.pdf', 'creationDate': 'D:20120615054440Z', 'modDate': 'D:20251105061639Z'}, page_content=\"Parenteral antibiotics should be given after specimens of blood, body fluids, and wound sites have been\\ntaken for Gram stain and culture. Very prompt empiric therapy, started immediately after suspecting\\nsepsis, is essential and may be lifesaving. Antibiotic selection requires an educated guess based on the\\nsuspected source, clinical setting, knowledge or suspicion of causative organisms and of sensitivity\\npatterns common to that specific inpatient unit, and previous culture results.\\nOne regimen for septic shock of unknown cause is gentamicin or tobramycin 5.1 mg/kg IV once/day plus\\na 3rd-generation cephalosporin (cefotaxime 2 g q 6 to 8 h or ceftriaxone 2 g once/day or, if Pseudomonas\\nis suspected, ceftazidime 2 g IV q 8 h). Alternatively, ceftazidime plus a fluoroquinolone (eg, ciprofloxacin)\\nmay be used. Monotherapy with maximal therapeutic doses of ceftazidime (2 g IV q 8 h) or imipenem (1 g\\nIV q 6 h) may be effective but is not recommended.\\nVancomycin must be added if resistant staphylococci or enterococci are suspected. If there is an\\nabdominal source, a drug effective against anaerobes (eg, metronidazole) should be included. When\\nculture and sensitivity results are available, the antibiotic regimen is changed accordingly. Antibiotics are\\ncontinued for at least 5 days after shock resolves and evidence of infection subsides.\\nAbscesses must be drained, and necrotic tissues (eg, infarcted bowel, gangrenous gall-bladder,\\nabscessed uterus) must be surgically excised. The patient's condition will continue to deteriorate despite\\nantibiotic therapy unless septic foci are eliminated.\\nNormalization of blood glucose improves outcome in critically ill patients, even those not known to be\\ndiabetic. A continuous IV insulin infusion (crystalline zinc 1 to 4 U/h) is titrated to maintain glucose\\nbetween 80 to 110 mg/dL (4.4 to 6.1 mmol/L). This approach necessitates frequent (eg, q 1 to 4 h)\"),\n", + " Document(metadata={'file_path': '/content/medical_diagnosis_manual.pdf', 'creationDate': 'D:20120615054440Z', 'subject': '', 'producer': 'pdf-lib (https://github.com/Hopding/pdf-lib)', 'creator': 'Atop CHM to PDF Converter', 'creationdate': '2012-06-15T05:44:40+00:00', 'total_pages': 4114, 'author': '', 'moddate': '2025-11-05T06:16:39+00:00', 'trapped': '', 'source': '/content/medical_diagnosis_manual.pdf', 'format': 'PDF 1.7', 'page': 2400, 'keywords': '', 'modDate': 'D:20251105061639Z', 'title': 'The Merck Manual of Diagnosis & Therapy, 19th Edition'}, page_content=\"16 - Critical Care Medicine\\nChapter 222. Approach to the Critically Ill Patient\\nIntroduction\\nCritical care medicine specializes in caring for the most seriously ill patients. These patients are best\\ntreated in an ICU staffed by experienced personnel. Some hospitals maintain separate units for special\\npopulations (eg, cardiac, surgical, neurologic, pediatric, or neonatal patients). ICUs have a high\\nnurse:patient ratio to provide the necessary high intensity of service, including treatment and monitoring\\nof physiologic parameters.\\nSupportive care for the ICU patient includes provision of adequate nutrition (see p. 21) and prevention of\\ninfection, stress ulcers and gastritis (see p. 131), and pulmonary embolism (see p. 1920). Because 15 to\\n25% of patients admitted to ICUs die there, physicians should know how to minimize suffering and help\\ndying patients maintain dignity (see p. 3480).\\nPatient Monitoring and Testing\\nSome monitoring is manual (ie, by direct observation and physical examination) and intermittent, with the\\nfrequency depending on the patient's illness. This monitoring usually includes measurement of vital signs\\n(temperature, BP, pulse, and respiration rate), quantification of all fluid intake and output, and often daily\\nweight. BP may be recorded by an automated sphygmomanometer; a transcutaneous sensor for pulse\\noximetry is used as well.\\nOther monitoring is ongoing and continuous, provided by complex devices that require special training\\nand experience to operate. Most such devices generate an alarm if certain physiologic parameters are\\nexceeded. Every ICU should strictly follow protocols for investigating alarms.\\nBlood Tests\\nAlthough frequent blood draws can destroy veins, cause pain, and lead to anemia, ICU patients typically\\nhave routine daily blood tests to help detect problems early. Generally, patients need a daily set of\\nelectrolytes and a CBC. Patients with arrhythmias should also have Mg, phosphate, and Ca levels\\nmeasured. Patients receiving TPN need weekly liver enzymes and coagulation profiles. Other tests (eg,\\nblood culture for fever, CBC after a bleeding episode) are done as needed.\\nPoint-of-care testing uses miniaturized, highly automated devices to do certain blood tests at the patient's\\nbedside or unit (particularly ICU, emergency department, and operating room). Commonly available tests\"),\n", + " Document(metadata={'producer': 'pdf-lib (https://github.com/Hopding/pdf-lib)', 'creationdate': '2012-06-15T05:44:40+00:00', 'moddate': '2025-11-05T06:16:39+00:00', 'file_path': '/content/medical_diagnosis_manual.pdf', 'subject': '', 'creationDate': 'D:20120615054440Z', 'modDate': 'D:20251105061639Z', 'author': '', 'format': 'PDF 1.7', 'page': 2995, 'total_pages': 4114, 'trapped': '', 'source': '/content/medical_diagnosis_manual.pdf', 'creator': 'Atop CHM to PDF Converter', 'keywords': '', 'title': 'The Merck Manual of Diagnosis & Therapy, 19th Edition'}, page_content='can approximate bone marrow NSP levels. I:T ratios of > 0.80 correlate with NSP depletion and death;\\nsuch a ratio may identify neonates who might benefit from granulocyte transfusion.\\nTreatment\\n• Antibiotic therapy\\n• Supportive therapy\\nBecause sepsis may manifest with non-specific clinical signs and its effects may be devastating, rapid\\nempiric antibiotic therapy is recommended (see p. 1182); drugs are later adjusted according to\\nsensitivities and the site of infection. If bacterial cultures show no growth by 48 h (although some\\npathogens may require 72 h) and the neonate appears well, antibiotics are stopped.\\nGeneral supportive measures, including respiratory and hemodynamic management, are combined with\\nantibiotic treatment.\\nAntimicrobials: In early-onset sepsis, initial therapy should include ampicillin or penicillin G plus an\\naminoglycoside. Cefotaxime may be added to or substituted for the aminoglycoside if meningitis is\\nsuspected. If foul-smelling amniotic fluid is present at birth, therapy for anaerobes (eg, clindamycin,\\nmetronidazole) should be added. Antibiotics may be changed as soon as an organism is identified.\\nPreviously well infants admitted from the community with presumed late-onset sepsis should also receive\\ntherapy with ampicillin plus gentamicin or ampicillin plus cefotaxime. If gram-negative meningitis is\\nsuspected, ampicillin, cefotaxime, and an aminoglycoside may be used. In late-onset hospital-acquired\\nsepsis, initial therapy should include vancomycin (active against methicillin-resistant S. aureus) plus an\\naminoglycoside. If P. aeruginosa is prevalent in the nursery, ceftazidime may be used instead of an\\naminoglycoside. For neonates previously treated with a full 7- to 14-day aminoglycoside course who need\\nretreatment, a different aminoglycoside or a 3rd-generation cephalosporin should be considered.\\nIf coagulase-negative staphylococci are suspected (eg, an indwelling catheter has been in place for > 72')]" + ] + }, + "metadata": {}, + "execution_count": 49 + } + ], + "source": [ + "vectorstore.similarity_search(\"What is the protocol for managing sepsis in a critical care unit?\",k=3) #Complete the code to pass a query and an appropriate k value" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7uo9cym60X-U" + }, + "source": [ + "### Retrieval and Response Generation using Vector Search" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9zscYgoFfgXi" + }, + "source": [ + "#### Convert Vector Database into a Retriever and Retrieve Relevant Documents" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "id": "zO5kmp381VsX", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "e8f34f6a-6a69-4b9f-c5fd-b32ab757b422" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "VectorStoreRetriever(tags=['Chroma', 'OpenAIEmbeddings'], vectorstore=, search_kwargs={'k': 3})" + ] + }, + "metadata": {}, + "execution_count": 50 + } + ], + "source": [ + "retriever = vectorstore.as_retriever(\n", + " search_type='similarity',\n", + " search_kwargs={'k': 3}\n", + ")\n", + "retriever" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vw8qcwq66B0C", + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "### System and User Prompt Template" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3wRkZYtO6B0D" + }, + "source": [ + "Prompts guide the model to generate accurate responses. Here, we define two parts:\n", + "\n", + " 1. The system message describing the assistant's role.\n", + " 2. A user message template including context and the question." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "gather": { + "logged": 1737358838889 + }, + "id": "Dyl60SEs6B0D", + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "#define the system message\n", + "qna_system_message = \"\"\"\n", + "You are an AI clinical assistant designed to support healthcare professionals in quickly reviewing authoritative medical literature.\n", + "Your task is to provide evidence-based, concise, and context-grounded responses strictly based on the excerpts provided from\n", + "medical manuals, guidelines, and research papers.\n", + "\n", + "User input will include the necessary clinical context for you to answer the question. The context begins with the token: ###Context\n", + "\n", + "### When crafting your response:\n", + "- Use ONLY the information given in the provided context.\n", + "- Provide clear, clinically accurate answers grounded in the supplied medical text.\n", + "- Avoid adding assumptions, interpretations, or general medical knowledge not present in the context.\n", + "- When relevant, include the name of the medical manual or research paper, as well as section or page numbers, if they appear in the context.\n", + "- If the answer cannot be found in the context, respond strictly with:\n", + " \"Sorry, this is out of my knowledge base.\"\n", + "\n", + "### Response Formatting Requirements:\n", + "Answer:\n", + "[A concise answer using only the information in the context]\n", + "\n", + "Source:\n", + "[Cite the specific source(s) mentioned in the context, including page/section if available]\n", + "\n", + "If the context is empty or irrelevant, your full response must be:\n", + "\"Sorry, this is out of my knowledge base.\"\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "id": "XW38rWoNjJkQ" + }, + "outputs": [], + "source": [ + "#define the user message\n", + "qna_user_message_template = \"\"\"\n", + "###Context\n", + "Below are relevant excerpts taken from standard medical manuals, clinical guidelines, and research papers that relate to the healthcare question:\n", + "\n", + "{context}\n", + "\n", + "###Question\n", + "{question}\n", + "\n", + "Please answer using ONLY the context provided above.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TkIteX4m6mny" + }, + "source": [ + "### Response Function" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "id": "J-SfCZqC6B0E", + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "def generate_rag_response(user_input,k=3,max_tokens=500,temperature=0,top_p=0.95):\n", + " global qna_system_message,qna_user_message_template\n", + " # Retrieve relevant document chunks\n", + " relevant_document_chunks = retriever.invoke(input=user_input)\n", + " context_list = [d.page_content for d in relevant_document_chunks]\n", + "\n", + " # Combine document chunks into a single context\n", + " context_for_query = \". \".join(context_list)\n", + "\n", + " user_message = qna_user_message_template.replace('{context}', context_for_query)\n", + " user_message = user_message.replace('{question}', user_input)\n", + "\n", + " # Generate the response\n", + " try:\n", + " response = client.chat.completions.create(\n", + " model=\"gpt-4o-mini\", # specifying the model to be used.\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": qna_system_message},\n", + " {\"role\": \"user\", \"content\": user_message}\n", + " ],\n", + " max_tokens=max_tokens,\n", + " temperature=temperature,\n", + " top_p=top_p\n", + " )\n", + " # Extract and print the generated text from the response\n", + " response = response.choices[0].message.content.strip()\n", + " except Exception as e:\n", + " response = f'Sorry, I encountered the following error: \\n {e}'\n", + "\n", + " return response" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ffP1SRYbPQHN" + }, + "source": [ + "## Question Answering using RAG" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JjajBEj06B0E" + }, + "source": [ + "### Question 1: What is the protocol for managing sepsis in a critical care unit?" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "id": "Gt4TAQNa6B0E", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "9b47fddb-bfab-4bb3-b04b-f04c0a432358" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Answer:\\nThe protocol for managing sepsis in a critical care unit includes the following steps: \\n1. Obtain specimens of blood, body fluids, and wound sites for Gram stain and culture before starting parenteral antibiotics.\\n2. Initiate very prompt empiric antibiotic therapy immediately after suspecting sepsis, which may include gentamicin or tobramycin plus a 3rd-generation cephalosporin (e.g., cefotaxime or ceftriaxone), or ceftazidime plus a fluoroquinolone if Pseudomonas is suspected. Vancomycin should be added if resistant staphylococci or enterococci are suspected, and if there is an abdominal source, include a drug effective against anaerobes (e.g., metronidazole).\\n3. Change the antibiotic regimen based on culture and sensitivity results when available, continuing antibiotics for at least 5 days after shock resolves and evidence of infection subsides.\\n4. Drain abscesses and surgically excise necrotic tissues as necessary.\\n5. Monitor and manage blood glucose levels with a continuous IV insulin infusion to maintain glucose between 80 to 110 mg/dL.\\n6. Provide supportive care, including adequate nutrition and prevention of infections and complications.\\n\\nSource:\\nCritical Care Medicine, Chapter 222. Approach to the Critically Ill Patient.'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 57 + } + ], + "source": [ + "response_with_rag_1 = generate_rag_response(question_1)\n", + "response_with_rag_1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QDw8zXuq6B0F" + }, + "source": [ + "### Question 2: What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "id": "i92cv0dQ6B0F", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "aa13726c-d879-4be4-e376-a49f901e9f7b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"Answer:\\nThe common symptoms of appendicitis include epigastric or periumbilical pain followed by nausea, vomiting, and anorexia, with pain shifting to the right lower quadrant. Classic signs include right lower quadrant tenderness at McBurney's point, Rovsing sign, psoas sign, and obturator sign. Appendicitis cannot be cured via medicine; the treatment is surgical removal, specifically an open or laparoscopic appendectomy.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 11. Acute Abdomen & Surgical Gastroenterology, pages 163.\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 58 + } + ], + "source": [ + "response_with_rag_2 = generate_rag_response(question_2)\n", + "response_with_rag_2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TggYyQPL6B0G" + }, + "source": [ + "### Question 3: What are the effective treatments or solutions for addressing sudden patchy hair loss, commonly seen as localized bald spots on the scalp, and what could be the possible causes behind it?" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "id": "Ed6x6LGb6B0G", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "e11a529b-be68-4f8d-e906-0adebf4ac275" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Answer:\\nThe effective treatment for sudden patchy hair loss, known as alopecia areata, is not specified in the provided context. However, it is noted that alopecia areata is thought to be an autoimmune disorder affecting genetically susceptible individuals. Possible causes include systemic illnesses, particularly those that cause high fever, systemic lupus, endocrine disorders, and nutritional deficiencies. \\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 86. Hair Disorders, pages 848-849.'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 59 + } + ], + "source": [ + "response_with_rag_3 = generate_rag_response(question_3)\n", + "response_with_rag_3" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1TgxdI-_6B0G" + }, + "source": [ + "### Question 4: What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "id": "u7ru57_c6B0G", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 87 + }, + "outputId": "d8dd94ba-0e20-41d1-9d25-f0610666089c" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Answer:\\nInitial treatment for a person who has sustained a physical injury to brain tissue includes ensuring a reliable airway and maintaining adequate ventilation, oxygenation, and blood pressure. Surgery may be needed for severe injuries to monitor and treat intracranial pressure, decompress the brain, or remove hematomas. Subsequently, many patients require rehabilitation, which should be planned early and may involve a team approach including physical, occupational, and speech therapy, as well as cognitive therapy for those with severe cognitive dysfunction.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 324. Traumatic Brain Injury, and Chapter 350. Rehabilitation.'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 60 + } + ], + "source": [ + "response_with_rag_4 = generate_rag_response(question_4)\n", + "response_with_rag_4" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ukLJz60rI78h" + }, + "source": [ + "### Storing the RAG system outputs\n" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "id": "8TQn5dssxTJV", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "outputId": "e81b7960-21bd-4119-f2ce-6e27c831be12" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " questions \\\n", + "0 What is the protocol for managing sepsis in a ... \n", + "1 What are the common symptoms for appendicitis,... \n", + "2 What are the effective treatments or solutions... \n", + "3 What treatments are recommended for a person w... \n", + "\n", + " base_prompt_responses \\\n", + "0 Managing sepsis in a critical care unit involv... \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... \n", + "2 Sudden patchy hair loss, often referred to as ... \n", + "3 The treatment for a person who has sustained a... \n", + "\n", + " responses_with_prompt_eng \\\n", + "0 The management of sepsis in a critical care un... \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... \n", + "2 Sudden patchy hair loss, often referred to as ... \n", + "3 Treatment for a person who has sustained a phy... \n", + "\n", + " responses_with_RAG \n", + "0 Answer:\\nThe protocol for managing sepsis in a... \n", + "1 Answer:\\nThe common symptoms of appendicitis i... \n", + "2 Answer:\\nThe effective treatment for sudden pa... \n", + "3 Answer:\\nInitial treatment for a person who ha... " + ], + "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", + "
questionsbase_prompt_responsesresponses_with_prompt_engresponses_with_RAG
0What is the protocol for managing sepsis in a ...Managing sepsis in a critical care unit involv...The management of sepsis in a critical care un...Answer:\\nThe protocol for managing sepsis in a...
1What are the common symptoms for appendicitis,...Common symptoms of appendicitis include:\\n\\n1....Common symptoms of appendicitis include:\\n\\n1....Answer:\\nThe common symptoms of appendicitis i...
2What are the effective treatments or solutions...Sudden patchy hair loss, often referred to as ...Sudden patchy hair loss, often referred to as ...Answer:\\nThe effective treatment for sudden pa...
3What treatments are recommended for a person w...The treatment for a person who has sustained a...Treatment for a person who has sustained a phy...Answer:\\nInitial treatment for a person who ha...
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "result_df", + "summary": "{\n \"name\": \"result_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"questions\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\",\n \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\",\n \"What is the protocol for managing sepsis in a critical care unit?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"base_prompt_responses\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. **Abdominal Pain**: Typically starts around the navel and then moves to the lower right abdomen.\\n2. **Loss of Appetite**: A sudden decrease in appetite is common.\\n3. **Nausea and Vomiting**: Often follows the onset of abdominal pain.\\n4. **Fever**: A low-grade fever may develop.\\n5. **Constipation or Diarrhea**: Changes in bowel habits can occur.\\n6. **Abdominal Swelling**: In some cases, the abdomen may become swollen.\\n\\nAppendicitis cannot be effectively treated with medication alone. The standard treatment is surgical removal of the appendix, known as an **appendectomy**. This can be performed using two main techniques:\\n\\n1. **Open Appendectomy**: A larger incision is made in the lower right abdomen to remove the appendix.\\n2. **Laparoscopic Appendectomy**: This is a minimally invasive procedure where several small incisions are made, and the appendix is removed with the aid of a camera and special instruments.\\n\\nLaparoscopic appendectomy is often preferred due to its benefits, including less postoperative pain, shorter recovery time, and minimal scarring. However, the choice of procedure may depend on the patient's specific situation and the surgeon's expertise.\",\n \"The treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), can vary widely depending on the severity of the injury, the specific areas of the brain affected, and the resulting impairments. Here are some common approaches to treatment:\\n\\n1. **Emergency Care**: \\n - Immediate medical attention is crucial. This may involve stabilizing the patient, monitoring vital signs, and performing imaging studies (like CT or MRI scans) to assess the extent of the injury.\\n\\n2. **Surgical Interventions**: \\n - In some cases, surgery may be necessary to relieve pressure on the brain, remove blood clots (hematomas), or repair skull fractures.\\n\\n3. **Medication**: \\n - Medications may be prescribed to manage symptoms such as pain, seizures, or inflammation. Corticosteroids may be used to reduce swelling in the brain.\\n\\n4. **Rehabilitation**: \\n - **Physical Therapy**: To improve mobility and strength.\\n - **Occupational Therapy**: To help with daily living skills and regain independence.\\n - **Speech and Language Therapy**: To address communication difficulties and swallowing issues.\\n - **Neuropsychological Therapy**: To help with cognitive rehabilitation, including memory, attention, and problem-solving skills.\\n\\n5. **Psychological Support**: \\n - Counseling or therapy may be beneficial for coping with emotional and psychological challenges following a brain injury, such as depression, anxiety, or changes in personality.\\n\\n6. **Lifestyle Modifications**: \\n - Patients may need to make adjustments to their daily routines, including rest, nutrition, and avoiding activities that could lead to further injury.\\n\\n7. **Supportive Care**: \\n - Family support and education about the injury and its effects can be crucial for recovery. Support groups may also be helpful.\\n\\n8. **Long-term Management**: \\n - Ongoing follow-up with healthcare providers to monitor recovery and manage any long-term effects or complications.\\n\\n9. **Assistive Devices**: \\n - Depending on the nature of the impairment, assistive devices or technology may be recommended to aid in communication, mobility, or daily activities.\\n\\n10. **Alternative Therapies**: \\n - Some individuals may explore complementary therapies such as acupuncture, yoga, or meditation, although these should be discussed with a healthcare provider.\\n\\nIt's important for treatment plans to be individualized, taking into account the specific needs and circumstances of the person affected. A multidisciplinary team approach is often the most\",\n \"Managing sepsis in a critical care unit involves a systematic approach that includes early recognition, prompt intervention, and ongoing monitoring. The following is a general protocol based on current guidelines, such as those from the Surviving Sepsis Campaign:\\n\\n### 1. **Early Recognition**\\n - **Identify Symptoms**: Look for signs of infection (fever, chills, tachycardia, tachypnea) and organ dysfunction (altered mental status, hypotension, oliguria).\\n - **Use Screening Tools**: Utilize tools like the qSOFA (quick Sequential Organ Failure Assessment) or SIRS (Systemic Inflammatory Response Syndrome) criteria to identify patients at risk.\\n\\n### 2. **Initial Assessment**\\n - **Obtain Vital Signs**: Monitor blood pressure, heart rate, respiratory rate, and temperature.\\n - **Assess Organ Function**: Evaluate renal function (urine output, creatinine), liver function (bilirubin, liver enzymes), and coagulation status (platelets, INR).\\n\\n### 3. **Immediate Interventions**\\n - **Fluid Resuscitation**: Administer intravenous (IV) fluids (crystalloids) promptly, typically 30 mL/kg within the first 3 hours.\\n - **Antibiotic Therapy**: Start broad-spectrum IV antibiotics within 1 hour of recognition of sepsis. Adjust based on culture results and sensitivity.\\n - **Source Control**: Identify and control the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n### 4. **Monitoring and Support**\\n - **Hemodynamic Monitoring**: Use invasive monitoring (e.g., arterial line, central venous pressure) if necessary to guide fluid resuscitation and vasopressor therapy.\\n - **Vasopressors**: If hypotension persists despite adequate fluid resuscitation, initiate vasopressors (e.g., norepinephrine) to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n - **Oxygenation and Ventilation**: Provide supplemental oxygen and consider mechanical ventilation if respiratory failure occurs.\\n\\n### 5. **Ongoing Management**\\n - **Reassess Fluid Status**: Continuously evaluate the patient's response to fluids and adjust as necessary.\\n - **Monitor Laboratory Values**: Regularly check lactate levels, complete blood counts, and organ function tests to assess the patient's status.\\n - **Nutritional Support**: Initiate enteral nutrition as soon as feasible, typically within 24\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"responses_with_prompt_eng\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. Abdominal pain, often starting near the belly button and then moving to the lower right abdomen.\\n2. Loss of appetite.\\n3. Nausea and vomiting.\\n4. Fever.\\n5. Constipation or diarrhea.\\n6. Abdominal swelling.\\n\\nAppendicitis cannot be effectively treated with medication alone; it typically requires surgical intervention. The standard surgical procedure for treating appendicitis is an **appendectomy**, which involves the removal of the inflamed appendix. This can be performed as an open surgery or laparoscopically, depending on the case and the surgeon's preference.\",\n \"Treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), may include the following approaches:\\n\\n1. **Immediate Medical Care**: \\n - Stabilization of the patient, including airway management, breathing support, and circulation.\\n - Imaging studies (CT or MRI) to assess the extent of the injury.\\n\\n2. **Surgical Interventions**: \\n - Surgery may be required to relieve pressure on the brain, remove blood clots (hematomas), or repair skull fractures.\\n\\n3. **Medications**: \\n - Anti-inflammatory drugs to reduce swelling.\\n - Anticonvulsants to prevent seizures.\\n - Pain management medications.\\n\\n4. **Rehabilitation**: \\n - Physical therapy to improve mobility and strength.\\n - Occupational therapy to assist with daily living activities.\\n - Speech therapy for communication and swallowing difficulties.\\n - Neuropsychological therapy to address cognitive and emotional challenges.\\n\\n5. **Supportive Care**: \\n - Psychological support and counseling for emotional and behavioral issues.\\n - Family education and support to help caregivers understand the injury and its effects.\\n\\n6. **Long-term Management**: \\n - Regular follow-up with healthcare providers to monitor recovery and manage any ongoing symptoms or complications.\\n\\nThe specific treatment plan will depend on the severity of the injury, the areas of the brain affected, and the individual patient's needs. Early intervention and a multidisciplinary approach are crucial for optimal recovery.\",\n \"The management of sepsis in a critical care unit typically follows the Surviving Sepsis Campaign guidelines. Here\\u2019s a concise protocol:\\n\\n1. **Early Recognition**: Identify sepsis using clinical criteria (e.g., suspected infection plus organ dysfunction).\\n\\n2. **Immediate Resuscitation**:\\n - **Fluid Resuscitation**: Administer IV fluids (30 mL/kg of crystalloids within the first 3 hours).\\n - **Vasopressors**: If hypotension persists after fluid resuscitation, initiate norepinephrine to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n\\n3. **Antibiotic Therapy**:\\n - Administer broad-spectrum antibiotics within 1 hour of recognition of sepsis.\\n - Adjust based on culture results and clinical response.\\n\\n4. **Source Control**:\\n - Identify and manage the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n5. **Monitoring**:\\n - Monitor vital signs, urine output, and laboratory parameters closely.\\n - Use lactate levels to guide resuscitation efforts.\\n\\n6. **Supportive Care**:\\n - Provide organ support as needed (e.g., mechanical ventilation, renal replacement therapy).\\n - Consider corticosteroids in cases of septic shock.\\n\\n7. **Reassessment**:\\n - Reassess hemodynamic status and organ function frequently.\\n - Adjust treatment based on response.\\n\\n8. **Follow-Up**:\\n - Continue monitoring for complications and adjust care plans accordingly.\\n\\nThis protocol emphasizes timely intervention and continuous assessment to improve outcomes in patients with sepsis.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"responses_with_RAG\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Answer:\\nThe common symptoms of appendicitis include epigastric or periumbilical pain followed by nausea, vomiting, and anorexia, with pain shifting to the right lower quadrant. Classic signs include right lower quadrant tenderness at McBurney's point, Rovsing sign, psoas sign, and obturator sign. Appendicitis cannot be cured via medicine; the treatment is surgical removal, specifically an open or laparoscopic appendectomy.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 11. Acute Abdomen & Surgical Gastroenterology, pages 163.\",\n \"Answer:\\nInitial treatment for a person who has sustained a physical injury to brain tissue includes ensuring a reliable airway and maintaining adequate ventilation, oxygenation, and blood pressure. Surgery may be needed for severe injuries to monitor and treat intracranial pressure, decompress the brain, or remove hematomas. Subsequently, many patients require rehabilitation, which should be planned early and may involve a team approach including physical, occupational, and speech therapy, as well as cognitive therapy for those with severe cognitive dysfunction.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 324. Traumatic Brain Injury, and Chapter 350. Rehabilitation.\",\n \"Answer:\\nThe protocol for managing sepsis in a critical care unit includes the following steps: \\n1. Obtain specimens of blood, body fluids, and wound sites for Gram stain and culture before starting parenteral antibiotics.\\n2. Initiate very prompt empiric antibiotic therapy immediately after suspecting sepsis, which may include gentamicin or tobramycin plus a 3rd-generation cephalosporin (e.g., cefotaxime or ceftriaxone), or ceftazidime plus a fluoroquinolone if Pseudomonas is suspected. Vancomycin should be added if resistant staphylococci or enterococci are suspected, and if there is an abdominal source, include a drug effective against anaerobes (e.g., metronidazole).\\n3. Change the antibiotic regimen based on culture and sensitivity results when available, continuing antibiotics for at least 5 days after shock resolves and evidence of infection subsides.\\n4. Drain abscesses and surgically excise necrotic tissues as necessary.\\n5. Monitor and manage blood glucose levels with a continuous IV insulin infusion to maintain glucose between 80 to 110 mg/dL.\\n6. Provide supportive care, including adequate nutrition and prevention of infections and complications.\\n\\nSource:\\nCritical Care Medicine, Chapter 222. Approach to the Critically Ill Patient.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 61 + } + ], + "source": [ + "# Add the results to a new column in the DataFrame\n", + "result_df['responses_with_RAG'] = [response_with_rag_1, response_with_rag_2, response_with_rag_3, response_with_rag_4]\n", + "\n", + "# Display the DataFrame\n", + "result_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yyQrTipNfuBN" + }, + "source": [ + "## Output Evaluation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tY9j1MVei5eI" + }, + "source": [ + "#### **Defining required System Prompts**" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "id": "2dDxkZdyKSnh", + "tags": [] + }, + "outputs": [], + "source": [ + "groundedness_rater_system_message = \"\"\"\n", + "You are tasked with rating AI generated answers to questions posed by users.\n", + "You will be presented a question, context used by the AI system to generate the answer and an AI generated answer to the question.\n", + "In the input, the question will begin with ###Question, the context will begin with ###Context while the AI generated answer will begin with ###Answer.\n", + "\n", + "Evaluation criteria:\n", + "The task is to judge the extent to which the metric is followed by the answer.\n", + "1 - The metric is not followed at all\n", + "2 - The metric is followed only to a limited extent\n", + "3 - The metric is followed to a good extent\n", + "4 - The metric is followed mostly\n", + "5 - The metric is followed completely\n", + "\n", + "Metric:\n", + "The answer should be derived only from the information presented in the context\n", + "\n", + "Instructions:\n", + "1. First write down the steps that are needed to evaluate the answer as per the metric.\n", + "2. Give a step-by-step explanation if the answer adheres to the metric considering the question and context as the input.\n", + "3. Next, evaluate the extent to which the metric is followed.\n", + "4. Use the previous information to rate the answer using the evaluaton criteria and assign a score.\n", + "\n", + "Return only the Score in last in a dictionary format not json and score should be in the range of 1 to 5.\n", + "Example {groundedness_score:4}\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "id": "NIosu2Wk7OVs", + "tags": [] + }, + "outputs": [], + "source": [ + "relevance_rater_system_message = \"\"\"\n", + "You are tasked with rating AI generated answers to questions posed by users.\n", + "You will be presented a question, context used by the AI system to generate the answer and an AI generated answer to the question.\n", + "In the input, the question will begin with ###Question, the context will begin with ###Context while the AI generated answer will begin with ###Answer.\n", + "\n", + "Evaluation criteria:\n", + "The task is to judge the extent to which the metric is followed by the answer.\n", + "1 - The metric is not followed at all\n", + "2 - The metric is followed only to a limited extent\n", + "3 - The metric is followed to a good extent\n", + "4 - The metric is followed mostly\n", + "5 - The metric is followed completely\n", + "\n", + "Metric:\n", + "Relevance measures how well the answer addresses the main aspects of the question, based on the context.\n", + "Consider whether all and only the important aspects are contained in the answer when evaluating relevance.\n", + "\n", + "Instructions:\n", + "1. First write down the steps that are needed to evaluate the context as per the metric.\n", + "2. Give a step-by-step explanation if the context adheres to the metric considering the question as the input.\n", + "3. Next, evaluate the extent to which the metric is followed.\n", + "4. Use the previous information to rate the context using the evaluaton criteria and assign a score.\n", + "Return only the Score in last in a dictionary format not json and score should be in the range of 1 to 5.\n", + "Example {relevance_score:4}\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "id": "7boMupgh_Gux", + "tags": [] + }, + "outputs": [], + "source": [ + "user_message_template = \"\"\"\n", + "###Question\n", + "{question}\n", + "\n", + "###Context\n", + "{context}\n", + "\n", + "###Answer\n", + "{answer}\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7QPs3ApgzB_D" + }, + "source": [ + "#### **Definig the LLM-as-a-Judge Evaluation function**" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "id": "dXxdhhEDxatr" + }, + "outputs": [], + "source": [ + "def generate_ground_relevance_response(user_input,response, max_tokens=500, temperature=0, top_p=0.95): # Complete the code to set default paramenters\n", + " global qna_user_message_template\n", + "\n", + " context_for_query = [doc.page_content for doc in retriever.invoke(input=user_input)]\n", + "\n", + " # Combine user_prompt and system_message to create the prompt\n", + " groundedness_prompt = f\"\"\"[INST]{groundedness_rater_system_message}\\n\n", + " {'user'}: {user_message_template.format(context=context_for_query, question=user_input, answer=response)}\n", + " [/INST]\"\"\"\n", + "\n", + " # Combine user_prompt and system_message to create the prompt\n", + " relevance_prompt = f\"\"\"[INST]{relevance_rater_system_message}\\n\n", + " {'user'}: {user_message_template.format(context=context_for_query, question=user_input, answer=response)}\n", + " [/INST]\"\"\"\n", + "\n", + " response_1 = client.chat.completions.create(\n", + " model=\"gpt-3.5-turbo\", # Complete the code by specifying the model to be used.\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": groundedness_prompt}\n", + " ],\n", + " max_tokens=max_tokens,\n", + " temperature=temperature,\n", + " top_p=top_p\n", + " )\n", + "\n", + " response_2 = client.chat.completions.create(\n", + " model=\"gpt-3.5-turbo\", # Complete the code by specifying the model to be used.\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": relevance_prompt}\n", + " ],\n", + " max_tokens=max_tokens,\n", + " temperature=temperature,\n", + " top_p=top_p\n", + " )\n", + "\n", + " return response_1.choices[0].message.content,response_2.choices[0].message.content" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "h_kKHCe2mqpE" + }, + "source": [ + "#### **Evaluation 1: Base Prompt Response Evaluation**" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "id": "iJ-lchv-sVJ6", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6b74cd9a-5843-4df3-f6e5-4248f6823caa" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer as per the metric, the following steps need to be taken:\n", + "1. Identify if the information provided in the answer is directly derived from the context given.\n", + "2. Check if there are any additional details or information in the answer that is not present in the context.\n", + "3. Ensure that the answer does not include any information that is not mentioned in the context.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides a detailed protocol for managing sepsis in a critical care unit. It includes steps for early recognition, initial assessment, immediate interventions, monitoring and support, and ongoing management. The information provided in the answer aligns with the context given, which outlines the protocol for managing sepsis in a critical care unit. The answer does not introduce any new information that is not present in the context.\n", + "\n", + "Therefore, the answer follows the metric of being derived only from the information presented in the context.\n", + "\n", + "Based on the evaluation criteria, the score for groundedness would be 5. \n", + "\n", + "{groundedness_score: 5}\n", + "\n", + "{relevance_score: 3}\n" + ] + } + ], + "source": [ + "# Question 1\n", + "ground_1,rel_1 = generate_ground_relevance_response(user_input=result_df.questions[0], response=result_df.base_prompt_responses[0], max_tokens=516)\n", + "print(ground_1,end=\"\\n\\n\")\n", + "print(rel_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": { + "id": "mjQHf0DgnNEQ", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "63e679f4-2f79-43d0-8d8a-1558f6cd3fc4" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer based on the metric provided, we need to follow these steps:\n", + "1. Identify if the information provided in the answer is solely derived from the context given.\n", + "2. Check if any additional information not present in the context is included in the answer.\n", + "3. Determine if the answer directly addresses the question asked without introducing new information.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides a list of common symptoms of appendicitis and details the standard treatment procedures for appendicitis, including open appendectomy and laparoscopic appendectomy. The information presented in the answer aligns with the details provided in the context regarding the symptoms, diagnosis, and treatment of appendicitis. The answer does not introduce any new information that is not present in the context.\n", + "\n", + "Therefore, the answer follows the metric of being derived only from the information presented in the context.\n", + "\n", + "Based on the evaluation criteria:\n", + "The answer demonstrates a complete adherence to the metric by solely utilizing the information provided in the context to address the question about the symptoms and treatment of appendicitis.\n", + "\n", + "Hence, the groundedness score for this answer is 5. \n", + "\n", + "{groundedness_score: 5}\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps can be followed:\n", + "\n", + "1. Identify the main aspects of the question: Understand the key components of the question, which in this case are the common symptoms of appendicitis and the treatment options available.\n", + "\n", + "2. Analyze the context: Review the provided context to see if it contains information related to the common symptoms of appendicitis and the treatment options, specifically focusing on surgical procedures and medication.\n", + "\n", + "3. Check for completeness: Ensure that all important aspects related to the question are covered in the context, including details about symptoms and treatment options.\n", + "\n", + "4. Verify accuracy: Confirm that the information provided in the context aligns with medical knowledge and guidelines regarding appendicitis symptoms and treatment.\n", + "\n", + "Based on the steps outlined above, the context provided contains detailed information about the symptoms of appendicitis, including abdominal pain, loss of appetite, nausea, vomiting, fever, changes in bowel habits, and abdominal swelling. Additionally, it discusses the standard treatment for appendicitis, which is surgical removal of the appendix through open or laparoscopic appendectomy.\n", + "\n", + "The context also mentions that antibiotics are not curative for appendicitis and that surgical removal is the preferred treatment option. It provides insights into the surgical procedures involved in appendectomy, such as open appendectomy and laparoscopic appendectomy, along with details about antibiotic use before and after surgery.\n", + "\n", + "Overall, the context aligns well with the main aspects of the question by addressing the common symptoms of appendicitis and the surgical procedures used for its treatment. It provides comprehensive information that is relevant to the question posed.\n", + "\n", + "Therefore, based on the evaluation, the context adheres to the metric of relevance to a good extent.\n", + "\n", + "{relevance_score: 3}\n" + ] + } + ], + "source": [ + "# Question 2\n", + "ground_2,rel_2 = generate_ground_relevance_response(user_input=result_df.questions[1], response=result_df.base_prompt_responses[1], max_tokens=516) #Complete the code to calculate the groundedness and relevance score\n", + "print(ground_2,end=\"\\n\\n\")\n", + "print(rel_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": { + "id": "3VmHQIa-nX9W", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d468d5d3-7436-42ab-bdb9-184922c0f9db" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer as per the metric, the following steps need to be followed:\n", + "1. Identify if the information provided in the answer is solely derived from the context given.\n", + "2. Check if the answer includes any additional information not present in the context.\n", + "3. Verify if the treatments and causes mentioned in the answer align with the information provided in the context regarding sudden patchy hair loss and alopecia areata.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides information on the possible causes and effective treatments for sudden patchy hair loss, specifically focusing on alopecia areata. It mentions autoimmune disorders, genetics, stress, hormonal changes, nutritional deficiencies, infections, and other medical conditions as possible causes. For effective treatments, it lists topical corticosteroids, minoxidil, intralesional corticosteroid injections, immunotherapy, oral medications, light therapy, nutritional support, stress management, and cosmetic solutions like wigs.\n", + "\n", + "The context also discusses alopecia areata as sudden patchy hair loss, autoimmune disorders affecting hair follicles, and the treatment options including topical corticosteroids, minoxidil, and other therapies. It also mentions possible causes such as autoimmune disorders, genetics, stress, hormonal changes, nutritional deficiencies, infections, and other medical conditions.\n", + "\n", + "The AI-generated answer aligns well with the information provided in the context regarding the causes and treatments for sudden patchy hair loss, staying grounded in the context.\n", + "\n", + "Therefore, the answer follows the metric of being derived only from the information presented in the context.\n", + "\n", + "Based on the evaluation criteria, the score for groundedness would be 5. \n", + "\n", + "{groundedness_score: 5}\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps need to be followed:\n", + "\n", + "1. Identify the main aspects of the question: The question asks about effective treatments or solutions for sudden patchy hair loss and the possible causes behind it.\n", + "2. Determine if the context provides information on the effective treatments or solutions for sudden patchy hair loss, including localized bald spots on the scalp.\n", + "3. Check if the context mentions the possible causes behind sudden patchy hair loss, such as autoimmune disorders, genetics, stress, hormonal changes, nutritional deficiencies, infections, and other medical conditions.\n", + "4. Evaluate whether all and only the important aspects related to treatments and causes of sudden patchy hair loss are addressed in the context.\n", + "\n", + "Explanation:\n", + "The context provided includes detailed information on the causes and treatments for sudden patchy hair loss, which aligns well with the main aspects of the question. It covers autoimmune disorders, genetics, stress, hormonal changes, nutritional deficiencies, infections, and other medical conditions as possible causes. Additionally, it lists effective treatments such as topical corticosteroids, minoxidil, corticosteroid injections, immunotherapy, oral medications, light therapy, nutritional support, stress management, and cosmetic solutions like wigs.\n", + "\n", + "Based on the evaluation, the context follows the metric of relevance by addressing all the important aspects related to the question about sudden patchy hair loss, its causes, and effective treatments.\n", + "\n", + "Therefore, the relevance score for this context is 5. \n", + "\n", + "{relevance_score: 5}\n" + ] + } + ], + "source": [ + "# Question 3\n", + "ground_3,rel_3 = generate_ground_relevance_response(user_input=result_df.questions[2], response=result_df.base_prompt_responses[2], max_tokens=516) #Complete the code to calculate the groundedness and relevance score\n", + "print(ground_3,end=\"\\n\\n\")\n", + "print(rel_3)" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": { + "id": "ebZtHibwnbe2", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "f672d1ff-f5b2-43d8-e173-ae9b40fef49e" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer based on the metric provided, we need to ensure that the information presented in the context is the sole source for generating the answer. Here are the steps to evaluate the answer:\n", + "\n", + "1. Identify if the information provided in the answer is directly sourced from the context given.\n", + "2. Check if the details mentioned in the answer align with the information presented in the context.\n", + "3. Verify if there are no additional external sources or information used to formulate the answer.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides a comprehensive list of treatments recommended for a person who has sustained a physical injury to brain tissue, specifically a traumatic brain injury (TBI). The answer includes emergency care, surgical interventions, medication, rehabilitation, psychological support, lifestyle modifications, supportive care, long-term management, assistive devices, and alternative therapies. Each treatment option is explained in detail, covering various aspects of care and support.\n", + "\n", + "The answer directly reflects the information provided in the context, mentioning the need for immediate medical attention, surgical interventions to relieve pressure on the brain, rehabilitation through physical, occupational, speech, and neuropsychological therapy, psychological support, lifestyle modifications, family education, long-term management, assistive devices, and alternative therapies. The details align closely with the content presented in the context regarding the recommended treatments for brain injuries.\n", + "\n", + "Therefore, the answer follows the metric of being derived solely from the information presented in the context.\n", + "\n", + "Based on the evaluation, the score for groundedness is 5.\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps can be followed:\n", + "\n", + "1. Identify the main aspects of the question:\n", + " - The question asks about the recommended treatments for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function.\n", + "\n", + "2. Analyze the context provided:\n", + " - The context includes information about traumatic brain injury (TBI), rehabilitation, head injury, spinal cord injury, and the pathology of brain injuries.\n", + " - It discusses the importance of rehabilitation, early intervention, cognitive therapy, and family education in the treatment of brain injuries.\n", + " - Surgical interventions, medication, rehabilitation therapies, psychological support, lifestyle modifications, supportive care, long-term management, assistive devices, and alternative therapies are also mentioned.\n", + "\n", + "3. Compare the context with the main aspects of the question:\n", + " - The context covers a wide range of treatments and interventions for brain injuries, including emergency care, surgical interventions, medication, rehabilitation, psychological support, lifestyle modifications, supportive care, long-term management, assistive devices, and alternative therapies.\n", + " - It specifically addresses the need for rehabilitation, cognitive therapy, and family education, which are important aspects of treating brain injuries.\n", + "\n", + "Based on the evaluation of the context, it can be seen that the context aligns well with the main aspects of the question by providing detailed information about the recommended treatments for a person with a brain injury. Therefore, the relevance score for the context is 5.\n", + "\n", + "{\n", + "\"relevance_score\": 5\n", + "}\n" + ] + } + ], + "source": [ + "# Question 4\n", + "ground_4,rel_4 = generate_ground_relevance_response(user_input=result_df.questions[3], response=result_df.base_prompt_responses[3], max_tokens=516) #Complete the code to calculate the groundedness and relevance score\n", + "print(ground_4,end=\"\\n\\n\")\n", + "print(rel_4)" + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Evaluation 1: Base Prompt Response Evaluation**" + ], + "metadata": { + "id": "grgj2iGSRT8a" + } + }, + { + "cell_type": "code", + "source": [ + "# Create a DataFrame to store the base prompt evaluation results\n", + "base_prompt_evaluation_df = pd.DataFrame({\n", + " \"question\": [question_1, question_2, question_3,question_4],\n", + " \"base_prompt_response\": [result_df.base_prompt_responses[0], result_df.base_prompt_responses[1], result_df.base_prompt_responses[2],result_df.base_prompt_responses[3]],\n", + " \"groundedness_score\": [ground_1[-2], ground_2[-2], ground_3[-2],ground_4[-2]],\n", + " \"relevance_score\": [rel_1[-2], rel_2[-2], rel_3[-2],rel_4[-2]]\n", + "})\n", + "\n", + "base_prompt_evaluation_df['groundedness_score'] = pd.to_numeric(base_prompt_evaluation_df['groundedness_score'], errors='coerce')\n", + "base_prompt_evaluation_df['relevance_score'] = pd.to_numeric(base_prompt_evaluation_df['relevance_score'], errors='coerce')\n", + "\n", + "# Display the DataFrame\n", + "display(base_prompt_evaluation_df)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 836 + }, + "id": "XHg3NGwrOluD", + "outputId": "cec27acc-dde5-49cb-8dd0-5cd325c5bc7f" + }, + "execution_count": 139, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " question \\\n", + "0 What is the protocol for managing sepsis in a ... \n", + "1 What are the common symptoms for appendicitis,... \n", + "2 What are the effective treatments or solutions... \n", + "3 What treatments are recommended for a person w... \n", + "\n", + " base_prompt_response groundedness_score \\\n", + "0 Managing sepsis in a critical care unit involv... 5 \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... 5 \n", + "2 Sudden patchy hair loss, often referred to as ... 5 \n", + "3 The treatment for a person who has sustained a... 5 \n", + "\n", + " relevance_score \n", + "0 3.0 \n", + "1 3.0 \n", + "2 5.0 \n", + "3 NaN " + ], + "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", + "
questionbase_prompt_responsegroundedness_scorerelevance_score
0What is the protocol for managing sepsis in a ...Managing sepsis in a critical care unit involv...53.0
1What are the common symptoms for appendicitis,...Common symptoms of appendicitis include:\\n\\n1....53.0
2What are the effective treatments or solutions...Sudden patchy hair loss, often referred to as ...55.0
3What treatments are recommended for a person w...The treatment for a person who has sustained a...5NaN
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "base_prompt_evaluation_df", + "summary": "{\n \"name\": \"base_prompt_evaluation_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"question\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\",\n \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\",\n \"What is the protocol for managing sepsis in a critical care unit?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"base_prompt_response\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. **Abdominal Pain**: Typically starts around the navel and then moves to the lower right abdomen.\\n2. **Loss of Appetite**: A sudden decrease in appetite is common.\\n3. **Nausea and Vomiting**: Often follows the onset of abdominal pain.\\n4. **Fever**: A low-grade fever may develop.\\n5. **Constipation or Diarrhea**: Changes in bowel habits can occur.\\n6. **Abdominal Swelling**: In some cases, the abdomen may become swollen.\\n\\nAppendicitis cannot be effectively treated with medication alone. The standard treatment is surgical removal of the appendix, known as an **appendectomy**. This can be performed using two main techniques:\\n\\n1. **Open Appendectomy**: A larger incision is made in the lower right abdomen to remove the appendix.\\n2. **Laparoscopic Appendectomy**: This is a minimally invasive procedure where several small incisions are made, and the appendix is removed with the aid of a camera and special instruments.\\n\\nLaparoscopic appendectomy is often preferred due to its benefits, including less postoperative pain, shorter recovery time, and minimal scarring. However, the choice of procedure may depend on the patient's specific situation and the surgeon's expertise.\",\n \"The treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), can vary widely depending on the severity of the injury, the specific areas of the brain affected, and the resulting impairments. Here are some common approaches to treatment:\\n\\n1. **Emergency Care**: \\n - Immediate medical attention is crucial. This may involve stabilizing the patient, monitoring vital signs, and performing imaging studies (like CT or MRI scans) to assess the extent of the injury.\\n\\n2. **Surgical Interventions**: \\n - In some cases, surgery may be necessary to relieve pressure on the brain, remove blood clots (hematomas), or repair skull fractures.\\n\\n3. **Medication**: \\n - Medications may be prescribed to manage symptoms such as pain, seizures, or inflammation. Corticosteroids may be used to reduce swelling in the brain.\\n\\n4. **Rehabilitation**: \\n - **Physical Therapy**: To improve mobility and strength.\\n - **Occupational Therapy**: To help with daily living skills and regain independence.\\n - **Speech and Language Therapy**: To address communication difficulties and swallowing issues.\\n - **Neuropsychological Therapy**: To help with cognitive rehabilitation, including memory, attention, and problem-solving skills.\\n\\n5. **Psychological Support**: \\n - Counseling or therapy may be beneficial for coping with emotional and psychological challenges following a brain injury, such as depression, anxiety, or changes in personality.\\n\\n6. **Lifestyle Modifications**: \\n - Patients may need to make adjustments to their daily routines, including rest, nutrition, and avoiding activities that could lead to further injury.\\n\\n7. **Supportive Care**: \\n - Family support and education about the injury and its effects can be crucial for recovery. Support groups may also be helpful.\\n\\n8. **Long-term Management**: \\n - Ongoing follow-up with healthcare providers to monitor recovery and manage any long-term effects or complications.\\n\\n9. **Assistive Devices**: \\n - Depending on the nature of the impairment, assistive devices or technology may be recommended to aid in communication, mobility, or daily activities.\\n\\n10. **Alternative Therapies**: \\n - Some individuals may explore complementary therapies such as acupuncture, yoga, or meditation, although these should be discussed with a healthcare provider.\\n\\nIt's important for treatment plans to be individualized, taking into account the specific needs and circumstances of the person affected. A multidisciplinary team approach is often the most\",\n \"Managing sepsis in a critical care unit involves a systematic approach that includes early recognition, prompt intervention, and ongoing monitoring. The following is a general protocol based on current guidelines, such as those from the Surviving Sepsis Campaign:\\n\\n### 1. **Early Recognition**\\n - **Identify Symptoms**: Look for signs of infection (fever, chills, tachycardia, tachypnea) and organ dysfunction (altered mental status, hypotension, oliguria).\\n - **Use Screening Tools**: Utilize tools like the qSOFA (quick Sequential Organ Failure Assessment) or SIRS (Systemic Inflammatory Response Syndrome) criteria to identify patients at risk.\\n\\n### 2. **Initial Assessment**\\n - **Obtain Vital Signs**: Monitor blood pressure, heart rate, respiratory rate, and temperature.\\n - **Assess Organ Function**: Evaluate renal function (urine output, creatinine), liver function (bilirubin, liver enzymes), and coagulation status (platelets, INR).\\n\\n### 3. **Immediate Interventions**\\n - **Fluid Resuscitation**: Administer intravenous (IV) fluids (crystalloids) promptly, typically 30 mL/kg within the first 3 hours.\\n - **Antibiotic Therapy**: Start broad-spectrum IV antibiotics within 1 hour of recognition of sepsis. Adjust based on culture results and sensitivity.\\n - **Source Control**: Identify and control the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n### 4. **Monitoring and Support**\\n - **Hemodynamic Monitoring**: Use invasive monitoring (e.g., arterial line, central venous pressure) if necessary to guide fluid resuscitation and vasopressor therapy.\\n - **Vasopressors**: If hypotension persists despite adequate fluid resuscitation, initiate vasopressors (e.g., norepinephrine) to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n - **Oxygenation and Ventilation**: Provide supplemental oxygen and consider mechanical ventilation if respiratory failure occurs.\\n\\n### 5. **Ongoing Management**\\n - **Reassess Fluid Status**: Continuously evaluate the patient's response to fluids and adjust as necessary.\\n - **Monitor Laboratory Values**: Regularly check lactate levels, complete blood counts, and organ function tests to assess the patient's status.\\n - **Nutritional Support**: Initiate enteral nutrition as soon as feasible, typically within 24\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"groundedness_score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 5,\n \"max\": 5,\n \"num_unique_values\": 1,\n \"samples\": [\n 5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"relevance_score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.1547005383792515,\n \"min\": 3.0,\n \"max\": 5.0,\n \"num_unique_values\": 2,\n \"samples\": [\n 5.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2J55TQZTnlYE" + }, + "source": [ + "#### **Evaluation 2: Prompt Engineering Response Evaluation**" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": { + "id": "6yEkbFmHnxpe", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3cb0547a-3814-4936-9d42-8326d44f356c" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer based on the metric provided, which states that the answer should be derived only from the information presented in the context, the following steps need to be followed:\n", + "\n", + "1. Identify the key points and information provided in the context regarding the protocol for managing sepsis in a critical care unit.\n", + "2. Compare the details mentioned in the AI-generated answer with the information presented in the context.\n", + "3. Determine if the answer provided by the AI system aligns with the specific details and guidelines outlined in the context.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides a detailed protocol for managing sepsis in a critical care unit, including steps for early recognition, resuscitation, antibiotic therapy, source control, monitoring, supportive care, reassessment, corticosteroid consideration, glucose control, and communication. These steps are not directly mentioned in the context provided.\n", + "\n", + "Therefore, the AI-generated answer does not strictly adhere to the metric of deriving the answer solely from the information presented in the context. The answer goes beyond the specific details provided in the context and introduces additional guidelines and recommendations that are not explicitly stated in the context.\n", + "\n", + "Based on the evaluation criteria:\n", + "The answer partially follows the metric, as it includes some relevant information but also introduces additional details not present in the context.\n", + "\n", + "Hence, the score for groundedness is 2.\n", + "\n", + "{relevance_score:3}\n" + ] + } + ], + "source": [ + "# Question 1\n", + "ground_1,rel_1 = generate_ground_relevance_response(user_input=result_df.questions[0], response=result_df.responses_with_prompt_eng[0], max_tokens=516)\n", + "print(ground_1,end=\"\\n\\n\")\n", + "print(rel_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": { + "id": "BHZzDnLsnxpf", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "2125425c-d1bf-4f80-99f2-821310bda46c" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Steps to evaluate the answer:\n", + "1. Identify if the information provided in the answer is solely based on the context.\n", + "2. Check if the symptoms of appendicitis, treatment options, and surgical procedures mentioned in the answer are supported by the context.\n", + "3. Evaluate if any additional information not present in the context is included in the answer.\n", + "\n", + "Explanation:\n", + "The answer provided lists common symptoms of appendicitis and explains that appendicitis cannot be cured with medicine alone, requiring surgical intervention in the form of an appendectomy. It also mentions the two types of surgical procedures for appendicitis treatment - open surgery and laparoscopic surgery. All the information provided in the answer is directly derived from the context given.\n", + "\n", + "The symptoms mentioned in the answer align with the symptoms described in the context, such as abdominal pain, loss of appetite, nausea, vomiting, fever, constipation or diarrhea, and abdominal swelling. The answer also correctly states that appendicitis cannot be cured with medication alone and requires surgical removal of the inflamed appendix, which is supported by the context mentioning appendectomy as the treatment for acute appendicitis.\n", + "\n", + "Therefore, the answer follows the metric of being derived only from the information presented in the context.\n", + "\n", + "Score: {groundedness_score: 5}\n", + "\n", + "Steps to evaluate the context for relevance:\n", + "1. Identify the main aspects of the question, which include common symptoms of appendicitis and the treatment options (medicine or surgical procedure).\n", + "2. Check if the context provides information on the common symptoms of appendicitis and the treatment options mentioned in the question.\n", + "3. Evaluate whether the context covers all the important aspects related to appendicitis symptoms and treatment options.\n", + "4. Consider if the context aligns with the question and provides relevant information that directly addresses the query.\n", + "\n", + "Explanation:\n", + "The context provided includes detailed information about the etiology, symptoms, diagnosis, and treatment of appendicitis. It covers the common symptoms of appendicitis, such as abdominal pain, loss of appetite, nausea, vomiting, fever, constipation or diarrhea, and abdominal swelling. Additionally, it explains that appendicitis cannot be effectively treated with medication alone and typically requires surgical intervention in the form of an appendectomy. The context also describes the surgical procedure for treating appendicitis, including open or laparoscopic appendectomy, IV fluids, and antibiotics.\n", + "\n", + "Based on the evaluation criteria, the context aligns well with the question by providing comprehensive information on the common symptoms of appendicitis and the surgical procedure required for its treatment. It covers all the important aspects related to the question and directly addresses the query about symptoms and treatment options for appendicitis.\n", + "\n", + "Therefore, the relevance score for the context is 5. \n", + "\n", + "{relevance_score: 5}\n" + ] + } + ], + "source": [ + "# Question 2\n", + "ground_2,rel_2 = generate_ground_relevance_response(user_input=result_df.questions[1], response=result_df.responses_with_prompt_eng[1], max_tokens=516) #Complete the code to calculate the groundedness and relevance score\n", + "print(ground_2,end=\"\\n\\n\")\n", + "print(rel_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": { + "id": "v4dCtQMCnxpg", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "0e699b91-e40b-4d8e-e01a-31a2feb93c61" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer as per the metric, the following steps need to be followed:\n", + "1. Identify if the information provided in the answer is directly derived from the context.\n", + "2. Check if any additional information not present in the context is included in the answer.\n", + "3. Ensure that the treatments and possible causes mentioned in the answer are supported by the context provided.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides information on effective treatments and possible causes for sudden patchy hair loss, specifically focusing on alopecia areata. The context mentions various treatments and causes related to hair loss, including corticosteroids, minoxidil, immunotherapy, genetics, stress, hormonal changes, and nutritional deficiencies. The answer aligns with the context by including treatments like corticosteroids, minoxidil, immunotherapy, and JAK inhibitors, which are supported by the context. The possible causes mentioned in the answer, such as autoimmune response, genetics, stress, hormonal changes, nutritional deficiencies, and infections, are also supported by the context.\n", + "\n", + "Therefore, the answer follows the metric by deriving information solely from the context provided.\n", + "\n", + "Based on the evaluation, the score for groundedness is 5.\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps need to be followed:\n", + "\n", + "1. Identify the main aspects of the question: The main aspects of the question include effective treatments or solutions for sudden patchy hair loss (alopecia areata) and the possible causes behind it.\n", + "\n", + "2. Check if the context provides information on effective treatments: Look for details on treatments such as corticosteroids, minoxidil, immunotherapy, anthralin, JAK inhibitors, light therapy, and supportive care.\n", + "\n", + "3. Check if the context mentions possible causes: Look for information on autoimmune response, genetics, stress, hormonal changes, nutritional deficiencies, and infections as potential causes of sudden patchy hair loss.\n", + "\n", + "4. Evaluate if all and only the important aspects are contained in the context: Ensure that the context addresses both the effective treatments and possible causes related to sudden patchy hair loss.\n", + "\n", + "Based on the evaluation steps, the context provided aligns well with the metric of relevance. It covers the effective treatments and possible causes of sudden patchy hair loss as requested in the question. The context includes detailed information on various treatment options and potential causes, providing a comprehensive overview of the topic.\n", + "\n", + "Therefore, the relevance score for the context is 5. \n", + "\n", + "{relevance_score: 5}\n" + ] + } + ], + "source": [ + "# Question 3\n", + "ground_3,rel_3 = generate_ground_relevance_response(user_input=result_df.questions[2], response=result_df.responses_with_prompt_eng[2], max_tokens=516) #Complete the code to calculate the groundedness and relevance score\n", + "print(ground_3,end=\"\\n\\n\")\n", + "print(rel_3)" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": { + "id": "jWBc97uynxpg", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "ff7fd2ce-2ede-4136-b8fb-53aa9ad6a711" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer as per the metric, the following steps need to be followed:\n", + "1. Identify if the information provided in the answer is directly derived from the context.\n", + "2. Check if the treatments and possible causes mentioned in the answer are supported by the information given in the context.\n", + "3. Ensure that no additional information beyond what is provided in the context is included in the answer.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides information on effective treatments and possible causes for sudden patchy hair loss, specifically focusing on alopecia areata. The context mentions various treatments for different types of hair loss, including corticosteroids, minoxidil, immunotherapy, anthralin, JAK inhibitors, and light therapy. It also discusses possible causes such as autoimmune response, genetics, stress, hormonal changes, nutritional deficiencies, and infections. The answer aligns with the information presented in the context and does not introduce any new information.\n", + "\n", + "Therefore, the answer follows the metric by deriving all the information solely from the context.\n", + "\n", + "Based on the evaluation, the score for groundedness is 5.\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps can be followed:\n", + "\n", + "1. Identify the main aspects of the question:\n", + " - Effective treatments for sudden patchy hair loss\n", + " - Possible causes behind sudden patchy hair loss\n", + "\n", + "2. Check if the context provides information related to the effective treatments and possible causes of sudden patchy hair loss.\n", + "\n", + "3. Ensure that the treatments and causes mentioned in the context align with the information required to address the question.\n", + "\n", + "Explanation:\n", + "The context provided includes detailed information about the different types of hair loss, including sudden patchy hair loss (alopecia areata). It covers various treatments and possible causes related to sudden patchy hair loss, such as corticosteroids, minoxidil, immunotherapy, genetics, stress, hormonal changes, and more. The context also emphasizes the importance of consulting healthcare professionals for accurate diagnosis and treatment plans.\n", + "\n", + "Based on the evaluation, the context aligns well with the main aspects of the question regarding effective treatments and possible causes of sudden patchy hair loss. It provides comprehensive information that directly addresses the user's query.\n", + "\n", + "Therefore, the relevance score for the context is 5. \n", + "\n", + "{relevance_score: 5}\n" + ] + } + ], + "source": [ + "# Question 4\n", + "ground_4,rel_4 = generate_ground_relevance_response(user_input=result_df.questions[2], response=result_df.responses_with_prompt_eng[2], max_tokens=516) #Complete the code to calculate the groundedness and relevance score\n", + "print(ground_4,end=\"\\n\\n\")\n", + "print(rel_4)" + ] + }, + { + "cell_type": "code", + "source": [ + "# Create a DataFrame to store the prompt engineering evaluation results\n", + "prompt_engineering_evaluation_df = pd.DataFrame({\n", + " \"question\": [question_1, question_2, question_3,question_4],\n", + " \"prompt_engg_response\": [result_df.responses_with_prompt_eng[0], result_df.responses_with_prompt_eng[1], result_df.responses_with_prompt_eng[2],result_df.responses_with_prompt_eng[3]],\n", + " \"groundedness_score\": [ground_1[-2], ground_2[-2], ground_3[-2],ground_4[-2]],\n", + " \"relevance_score\": [rel_1[-2], rel_2[-2], rel_3[-2],rel_4[-2]]\n", + "})\n", + "\n", + "prompt_engineering_evaluation_df['groundedness_score'] = pd.to_numeric(prompt_engineering_evaluation_df['groundedness_score'], errors='coerce')\n", + "prompt_engineering_evaluation_df['relevance_score'] = pd.to_numeric(prompt_engineering_evaluation_df['relevance_score'], errors='coerce')\n", + "\n", + "# Display the DataFrame\n", + "display(prompt_engineering_evaluation_df)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 637 + }, + "id": "YIF50xSFTDD5", + "outputId": "4e3c0984-df4f-44e4-c653-e60a1c086d70" + }, + "execution_count": 134, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " question \\\n", + "0 What is the protocol for managing sepsis in a ... \n", + "1 What are the common symptoms for appendicitis,... \n", + "2 What are the effective treatments or solutions... \n", + "3 What treatments are recommended for a person w... \n", + "\n", + " prompt_engg_response groundedness_score \\\n", + "0 The management of sepsis in a critical care un... 2 \n", + "1 Common symptoms of appendicitis include:\\n\\n1.... 5 \n", + "2 Sudden patchy hair loss, often referred to as ... 5 \n", + "3 Treatment for a person who has sustained a phy... 5 \n", + "\n", + " relevance_score \n", + "0 3 \n", + "1 5 \n", + "2 5 \n", + "3 5 " + ], + "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", + "
questionprompt_engg_responsegroundedness_scorerelevance_score
0What is the protocol for managing sepsis in a ...The management of sepsis in a critical care un...23
1What are the common symptoms for appendicitis,...Common symptoms of appendicitis include:\\n\\n1....55
2What are the effective treatments or solutions...Sudden patchy hair loss, often referred to as ...55
3What treatments are recommended for a person w...Treatment for a person who has sustained a phy...55
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "prompt_engineering_evaluation_df", + "summary": "{\n \"name\": \"prompt_engineering_evaluation_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"question\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\",\n \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\",\n \"What is the protocol for managing sepsis in a critical care unit?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"prompt_engg_response\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Common symptoms of appendicitis include:\\n\\n1. Abdominal pain, often starting near the belly button and then moving to the lower right abdomen.\\n2. Loss of appetite.\\n3. Nausea and vomiting.\\n4. Fever.\\n5. Constipation or diarrhea.\\n6. Abdominal swelling.\\n\\nAppendicitis cannot be effectively treated with medication alone; it typically requires surgical intervention. The standard surgical procedure for treating appendicitis is an appendectomy, which involves the removal of the inflamed appendix. This can be performed as an open surgery or laparoscopically, depending on the case and the surgeon's preference.\",\n \"Treatment for a person who has sustained a physical injury to brain tissue, such as a traumatic brain injury (TBI), typically involves a multidisciplinary approach and may include the following:\\n\\n1. **Emergency Care**: Immediate medical attention may involve stabilizing the patient, ensuring adequate oxygenation, and managing intracranial pressure.\\n\\n2. **Surgery**: In some cases, surgical intervention may be necessary to remove hematomas, repair skull fractures, or relieve pressure on the brain.\\n\\n3. **Medications**: \\n - **Analgesics** for pain management.\\n - **Anticonvulsants** to prevent seizures.\\n - **Diuretics** to reduce swelling.\\n - **Corticosteroids** may be used to decrease inflammation.\\n\\n4. **Rehabilitation**: \\n - **Physical therapy** to improve mobility and strength.\\n - **Occupational therapy** to assist with daily living activities.\\n - **Speech therapy** for communication and swallowing difficulties.\\n - **Neuropsychological therapy** to address cognitive and emotional challenges.\\n\\n5. **Supportive Care**: This may include counseling, support groups, and education for patients and families about the injury and recovery process.\\n\\n6. **Long-term Management**: Ongoing assessment and management of cognitive, emotional, and physical impairments may be necessary, including regular follow-ups with healthcare providers.\\n\\nThe specific treatment plan will depend on the severity of the injury, the areas of the brain affected, and the individual needs of the patient.\",\n \"The management of sepsis in a critical care unit typically follows the Surviving Sepsis Campaign guidelines. Here\\u2019s a concise protocol:\\n\\n1. **Early Recognition**: Identify sepsis using clinical criteria (e.g., suspected infection plus organ dysfunction).\\n\\n2. **Immediate Resuscitation**:\\n - **Fluid Resuscitation**: Administer intravenous fluids (30 mL/kg of crystalloids within the first 3 hours).\\n - **Vasopressors**: If hypotension persists after fluid resuscitation, initiate norepinephrine to maintain mean arterial pressure (MAP) \\u2265 65 mmHg.\\n\\n3. **Antibiotic Therapy**:\\n - Administer broad-spectrum antibiotics within 1 hour of sepsis recognition. Adjust based on culture results and local antibiograms.\\n\\n4. **Source Control**:\\n - Identify and manage the source of infection (e.g., drainage of abscess, removal of infected devices).\\n\\n5. **Monitoring**:\\n - Continuously monitor vital signs, urine output, and laboratory parameters (e.g., lactate levels, complete blood count, renal function).\\n\\n6. **Supportive Care**:\\n - Provide supportive care, including oxygen therapy, mechanical ventilation if needed, and renal replacement therapy for acute kidney injury.\\n\\n7. **Reassessment**:\\n - Reassess hemodynamic status and organ function frequently, adjusting treatment as necessary.\\n\\n8. **Consideration of Corticosteroids**:\\n - In cases of septic shock, consider low-dose corticosteroids (e.g., hydrocortisone) if there is no response to fluid resuscitation and vasopressors.\\n\\n9. **Glucose Control**:\\n - Maintain blood glucose levels between 140-180 mg/dL.\\n\\n10. **Communication and Team Approach**:\\n - Ensure effective communication among the healthcare team and involve specialists as needed.\\n\\nThis protocol should be tailored to individual patient needs and institutional protocols. Regular training and updates on sepsis management are essential for critical care staff.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"groundedness_score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 2,\n \"max\": 5,\n \"num_unique_values\": 2,\n \"samples\": [\n 5,\n 2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"relevance_score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 3,\n \"max\": 5,\n \"num_unique_values\": 2,\n \"samples\": [\n 5,\n 3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y7wXIFmfn4tX" + }, + "source": [ + "#### **Evaluation 3: RAG Response Evaluation**" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": { + "id": "lPGdtRCcoBIi", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6ffcdced-bc86-49d4-cf13-74bf236ed95a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer as per the metric, the following steps need to be followed:\n", + "1. Identify if the information provided in the answer is directly derived from the context.\n", + "2. Check if any additional information not present in the context is included in the answer.\n", + "3. Verify if the steps mentioned in the answer align with the protocol for managing sepsis in a critical care unit as described in the context.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides a detailed protocol for managing sepsis in a critical care unit based on the information presented in the context. It includes steps such as obtaining specimens for culture, initiating prompt empiric antibiotic therapy, changing antibiotic regimen based on culture and sensitivity results, draining abscesses, monitoring blood glucose levels, and providing supportive care. All the steps mentioned in the answer are directly derived from the context provided.\n", + "\n", + "Therefore, the answer follows the metric completely as it only uses the information presented in the context to formulate the protocol for managing sepsis in a critical care unit.\n", + "\n", + "Score: {groundedness_score: 5}\n", + "\n", + "{\n", + "relevance_score: 5\n", + "}\n" + ] + } + ], + "source": [ + "# Question 1\n", + "ground_1,rel_1 = generate_ground_relevance_response(user_input=result_df.questions[0], response=result_df.responses_with_RAG[0], max_tokens=516) #Complete the code to calculate the groundedness and relevance\n", + "print(ground_1,end=\"\\n\\n\")\n", + "print(rel_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "id": "ZrB06dkBoBIj", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "bf5873bb-b903-49fa-80c7-58dc07623b87" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Steps to evaluate the answer:\n", + "1. Identify if the information provided in the answer is directly from the context.\n", + "2. Check if the symptoms of appendicitis and the treatment mentioned in the answer are supported by the context.\n", + "3. Ensure that no additional information beyond what is provided in the context is included in the answer.\n", + "\n", + "Explanation:\n", + "The answer directly mentions the common symptoms of appendicitis as described in the context, such as epigastric or periumbilical pain, nausea, vomiting, and anorexia, with pain shifting to the right lower quadrant. It also includes classic signs like right lower quadrant tenderness at McBurney's point, Rovsing sign, psoas sign, and obturator sign. The answer correctly states that appendicitis cannot be cured via medicine and requires surgical removal, specifically an open or laparoscopic appendectomy. The source of the information is also mentioned.\n", + "\n", + "Therefore, the answer strictly adheres to the metric by deriving all the information solely from the context provided.\n", + "\n", + "Evaluation: \n", + "The answer follows the metric completely by providing information solely from the context without introducing any external information. Hence, the answer deserves a score of 5.\n", + "\n", + "{groundedness_score: 5}\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps can be followed:\n", + "\n", + "1. Identify the main aspects of the question: The question asks about the common symptoms of appendicitis and inquires about the possibility of curing it with medicine or the surgical procedure required for treatment.\n", + "\n", + "2. Check if the context provides information relevant to the question: Look for details in the context that discuss the symptoms of appendicitis, whether it can be cured with medicine, and the surgical procedure for treatment.\n", + "\n", + "3. Evaluate if all and only the important aspects are contained in the answer: Ensure that the answer addresses all the key points mentioned in the question and context, without including irrelevant information.\n", + "\n", + "Explanation:\n", + "The context provides detailed information about the etiology, symptoms, signs, diagnosis, and treatment of appendicitis. It mentions that appendicitis is acute inflammation of the vermiform appendix, resulting in abdominal pain, anorexia, and abdominal tenderness. It also states that the treatment for appendicitis is surgical removal through open or laparoscopic appendectomy. Additionally, it specifies the use of IV antibiotics before appendectomy and the continuation of antibiotics in case of perforation.\n", + "\n", + "The AI-generated answer accurately addresses the common symptoms of appendicitis, the inability to cure it with medicine, and the recommended surgical procedure for treatment, which aligns well with the main aspects of the question and context.\n", + "\n", + "Therefore, the relevance of the context to the question is high, as it covers all the important aspects related to appendicitis symptoms, treatment, and surgical procedures.\n", + "\n", + "Based on the evaluation, the relevance score for the context is 5. \n", + "\n", + "{relevance_score: 5}\n" + ] + } + ], + "source": [ + "# Question 2\n", + "ground_2,rel_2 = generate_ground_relevance_response(user_input=result_df.questions[1], response=result_df.responses_with_RAG[1], max_tokens=516) #Complete the code to calculate the groundedness and relevance\n", + "print(ground_2,end=\"\\n\\n\")\n", + "print(rel_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": { + "id": "pCFMhRGUoBIj", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "e0ea5905-b980-4767-e512-66e23776f685" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer based on the metric provided, we need to follow these steps:\n", + "1. Identify if the information provided in the answer is solely derived from the context given.\n", + "2. Check if the answer directly addresses the question asked.\n", + "3. Determine if the answer includes any additional information not present in the context.\n", + "\n", + "Explanation:\n", + "The AI-generated answer correctly identifies that the effective treatment for sudden patchy hair loss, specifically alopecia areata, is not specified in the provided context. It mentions that alopecia areata is thought to be an autoimmune disorder affecting genetically susceptible individuals and lists possible causes such as systemic illnesses, high fever, systemic lupus, endocrine disorders, and nutritional deficiencies. This information is directly derived from the context provided, specifically from the section on alopecia areata and its possible causes.\n", + "\n", + "Therefore, the answer adheres to the metric by providing information solely based on the context and directly addressing the question asked.\n", + "\n", + "Based on the evaluation criteria:\n", + "The answer demonstrates a good extent of adherence to the metric, as it is derived entirely from the context provided and directly addresses the question asked.\n", + "\n", + "Hence, the score for groundedness is 3.\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps can be followed:\n", + "\n", + "1. Identify the main aspects of the question:\n", + "- Effective treatments or solutions for sudden patchy hair loss (alopecia areata)\n", + "- Possible causes behind sudden patchy hair loss\n", + "\n", + "2. Check if the context addresses these main aspects:\n", + "- Look for information on effective treatments for sudden patchy hair loss, such as alopecia areata.\n", + "- Check if the context mentions possible causes behind sudden patchy hair loss, including systemic illnesses, autoimmune diseases, and other factors.\n", + "\n", + "3. Evaluate if all and only the important aspects are contained in the answer:\n", + "- Ensure that the context provides relevant information on treatments and causes related to sudden patchy hair loss, specifically alopecia areata.\n", + "\n", + "Now, considering the question and the context provided, the AI-generated answer does address some important aspects related to the question. It mentions that alopecia areata is thought to be an autoimmune disorder affecting genetically susceptible individuals and lists possible causes such as systemic illnesses, lupus, endocrine disorders, and nutritional deficiencies. However, it does not specify the effective treatments for sudden patchy hair loss, which was a key aspect of the question.\n", + "\n", + "Based on the evaluation, the relevance of the context can be rated as follows:\n", + "- The context is followed only to a limited extent.\n", + "\n", + "Therefore, the relevance score for the context is 2. \n", + "\n", + "{\n", + "relevance_score: 2\n", + "}\n" + ] + } + ], + "source": [ + "# Question 3\n", + "ground_3,rel_3 = generate_ground_relevance_response(user_input=result_df.questions[2], response=result_df.responses_with_RAG[2], max_tokens=516) #Complete the code to calculate the groundedness and relevance\n", + "print(ground_3,end=\"\\n\\n\")\n", + "print(rel_3)" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": { + "id": "Tf-SrQOgoBIj", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "a504b8a5-4d11-4046-b313-239c040dc746" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "To evaluate the answer based on the metric provided, we need to follow these steps:\n", + "1. Identify if the information provided in the answer is solely derived from the context given.\n", + "2. Check if the answer includes any additional information not present in the context.\n", + "3. Ensure that the answer does not introduce any new concepts or details that are not mentioned in the context.\n", + "4. Verify that the answer directly relates to the question asked about treatments recommended for a person with a physical injury to brain tissue.\n", + "\n", + "Explanation:\n", + "The AI-generated answer provides information on the initial treatment for a person with a physical injury to brain tissue, which includes ensuring a reliable airway, maintaining ventilation, oxygenation, and blood pressure. It also mentions the possibility of surgery for severe injuries and the need for subsequent rehabilitation involving a team approach. The answer directly relates to the context provided, which discusses rehabilitation and treatment for traumatic brain injury.\n", + "\n", + "Based on the evaluation criteria, the answer follows the metric of being derived only from the information presented in the context. It does not introduce any new concepts or details that are not mentioned in the context. Therefore, the answer adheres to the metric.\n", + "\n", + "Therefore, the groundedness score for this answer is 5.\n", + "\n", + "To evaluate the context based on the metric of relevance, the following steps can be followed:\n", + "\n", + "1. Identify the main aspects of the question:\n", + "- The question asks about the recommended treatments for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function.\n", + "\n", + "2. Analyze the context provided:\n", + "- The context includes information about traumatic brain injury (TBI), rehabilitation, and the importance of early intervention and rehabilitation therapy for patients with cognitive dysfunction.\n", + "- It also mentions the need for a team approach in rehabilitation, including physical, occupational, and speech therapy, as well as cognitive therapy for severe cognitive dysfunction.\n", + "- The context discusses the initial treatment for brain injuries, which involves ensuring a reliable airway, maintaining adequate ventilation, oxygenation, and blood pressure, and the possibility of surgery for severe cases.\n", + "\n", + "3. Evaluate the AI-generated answer:\n", + "- The answer provided includes information about the initial treatment for brain injuries, the possibility of surgery for severe cases, and the importance of rehabilitation for patients with cognitive dysfunction.\n", + "- It mentions the team approach in rehabilitation and the different types of therapy involved.\n", + "\n", + "Based on the evaluation, the AI-generated answer addresses the main aspects of the question by providing information about initial treatment, surgery, and rehabilitation for brain injuries. It includes relevant details from the context that are essential for understanding the recommended treatments for individuals with brain injuries.\n", + "\n", + "Therefore, the relevance score for this context is 5. \n", + "\n", + "{relevance_score: 5}\n" + ] + } + ], + "source": [ + "# Question 4\n", + "ground_4,rel_4 = generate_ground_relevance_response(user_input=result_df.questions[3], response=result_df.responses_with_RAG[3], max_tokens= 516) #Complete the code to calculate the groundedness and relevance\n", + "print(ground_4,end=\"\\n\\n\")\n", + "print(rel_4)" + ] + }, + { + "cell_type": "code", + "source": [ + "# Create a DataFrame to store the Rag evaluation results\n", + "Rag_evaluation_df = pd.DataFrame({\n", + " \"question\": [question_1, question_2, question_3,question_4],\n", + " \"rag_response\": [result_df.responses_with_RAG[0], result_df.responses_with_RAG[1], result_df.responses_with_RAG[2],result_df.responses_with_RAG[3]],\n", + " \"groundedness_score\": [ground_1[-2], ground_2[-2], ground_3[-2],ground_4[-2]],\n", + " \"relevance_score\": [rel_1[-2], rel_2[-2], rel_3[-2],rel_4[-2]]\n", + "})\n", + "\n", + "Rag_evaluation_df['groundedness_score'] = pd.to_numeric(Rag_evaluation_df['groundedness_score'], errors='coerce')\n", + "Rag_evaluation_df['relevance_score'] = pd.to_numeric(Rag_evaluation_df['relevance_score'], errors='coerce')\n", + "\n", + "# Display the DataFrame\n", + "display(Rag_evaluation_df)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 505 + }, + "id": "SQnXolywWm--", + "outputId": "520fd586-2969-4969-db78-9d229f7a9e56" + }, + "execution_count": 144, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " question \\\n", + "0 What is the protocol for managing sepsis in a ... \n", + "1 What are the common symptoms for appendicitis,... \n", + "2 What are the effective treatments or solutions... \n", + "3 What treatments are recommended for a person w... \n", + "\n", + " rag_response groundedness_score \\\n", + "0 Answer:\\nThe protocol for managing sepsis in a... 5 \n", + "1 Answer:\\nThe common symptoms of appendicitis i... 5 \n", + "2 Answer:\\nThe effective treatment for sudden pa... 3 \n", + "3 Answer:\\nInitial treatment for a person who ha... 5 \n", + "\n", + " relevance_score \n", + "0 NaN \n", + "1 5.0 \n", + "2 NaN \n", + "3 5.0 " + ], + "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", + "
questionrag_responsegroundedness_scorerelevance_score
0What is the protocol for managing sepsis in a ...Answer:\\nThe protocol for managing sepsis in a...5NaN
1What are the common symptoms for appendicitis,...Answer:\\nThe common symptoms of appendicitis i...55.0
2What are the effective treatments or solutions...Answer:\\nThe effective treatment for sudden pa...3NaN
3What treatments are recommended for a person w...Answer:\\nInitial treatment for a person who ha...55.0
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "Rag_evaluation_df", + "summary": "{\n \"name\": \"Rag_evaluation_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"question\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"What are the common symptoms for appendicitis, and can it be cured via medicine? If not, what surgical procedure should be followed to treat it?\",\n \"What treatments are recommended for a person who has sustained a physical injury to brain tissue, resulting in temporary or permanent impairment of brain function?\",\n \"What is the protocol for managing sepsis in a critical care unit?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rag_response\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Answer:\\nThe common symptoms of appendicitis include epigastric or periumbilical pain followed by nausea, vomiting, and anorexia, with pain shifting to the right lower quadrant. Classic signs include right lower quadrant tenderness at McBurney's point, Rovsing sign, psoas sign, and obturator sign. Appendicitis cannot be cured via medicine; the treatment is surgical removal, specifically an open or laparoscopic appendectomy.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 11. Acute Abdomen & Surgical Gastroenterology, pages 163.\",\n \"Answer:\\nInitial treatment for a person who has sustained a physical injury to brain tissue includes ensuring a reliable airway and maintaining adequate ventilation, oxygenation, and blood pressure. Surgery may be needed for severe injuries to monitor and treat intracranial pressure, decompress the brain, or remove hematomas. Subsequently, many patients require rehabilitation, which should be planned early and may involve a team approach including physical, occupational, and speech therapy, as well as cognitive therapy for those with severe cognitive dysfunction.\\n\\nSource:\\nThe Merck Manual of Diagnosis & Therapy, 19th Edition, Chapter 324. Traumatic Brain Injury, and Chapter 350. Rehabilitation.\",\n \"Answer:\\nThe protocol for managing sepsis in a critical care unit includes the following steps: \\n1. Obtain specimens of blood, body fluids, and wound sites for Gram stain and culture before starting parenteral antibiotics.\\n2. Initiate very prompt empiric antibiotic therapy immediately after suspecting sepsis, which may include gentamicin or tobramycin plus a 3rd-generation cephalosporin (e.g., cefotaxime or ceftriaxone), or ceftazidime plus a fluoroquinolone if Pseudomonas is suspected. Vancomycin should be added if resistant staphylococci or enterococci are suspected, and if there is an abdominal source, include a drug effective against anaerobes (e.g., metronidazole).\\n3. Change the antibiotic regimen based on culture and sensitivity results when available, continuing antibiotics for at least 5 days after shock resolves and evidence of infection subsides.\\n4. Drain abscesses and surgically excise necrotic tissues as necessary.\\n5. Monitor and manage blood glucose levels with a continuous IV insulin infusion to maintain glucose between 80 to 110 mg/dL.\\n6. Provide supportive care, including adequate nutrition and prevention of infections and complications.\\n\\nSource:\\nCritical Care Medicine, Chapter 222. Approach to the Critically Ill Patient.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"groundedness_score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 3,\n \"max\": 5,\n \"num_unique_values\": 2,\n \"samples\": [\n 3,\n 5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"relevance_score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 5.0,\n \"max\": 5.0,\n \"num_unique_values\": 1,\n \"samples\": [\n 5.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(\"Average scores for Base Prompt Evaluation:\")\n", + "print(base_prompt_evaluation_df[['groundedness_score', 'relevance_score']].mean(numeric_only=True))\n", + "print(\"Average scores for Prompt engg Evaluation:\")\n", + "print(prompt_engineering_evaluation_df[['groundedness_score', 'relevance_score']].mean(numeric_only=True))\n", + "print(\"\\nAverage scores for RAG Response Evaluation:\")\n", + "print(Rag_evaluation_df[['groundedness_score', 'relevance_score']].mean(numeric_only=True))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ud7OiP5gaZhj", + "outputId": "a4ee9adb-d831-4a45-d2b2-b84395e2c681" + }, + "execution_count": 146, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Average scores for Base Prompt Evaluation:\n", + "groundedness_score 5.000000\n", + "relevance_score 3.666667\n", + "dtype: float64\n", + "Average scores for Prompt engg Evaluation:\n", + "groundedness_score 4.25\n", + "relevance_score 4.50\n", + "dtype: float64\n", + "\n", + "Average scores for RAG Response Evaluation:\n", + "groundedness_score 4.5\n", + "relevance_score 5.0\n", + "dtype: float64\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Y7QICRU-njdj" + }, + "source": [ + "## Actionable Insights and Business Recommendations" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ObyXYhOojIaY" + }, + "source": [ + "1. Implement Retrieval‑Augmented Generation using authoritative medical manuals (e.g., Merck Manual, Harrison’s) to ensure evidence‑based answers.\n", + "2. RAG is your best-performing method — with a perfect relevance score of 5.0, confirming that your retrieval pipeline is correctly matching medical queries to the right chunks.\n", + "3. Groundedness still needs improvement (4.5 vs 5.0) — meaning the answers are clinically correct but not always fully supported by retrieved evidence. This is now the main improvement area.\n", + "4. Base Prompt’s perfect groundedness is misleading — it’s “correct-looking” medical reasoning, not actually evidence-based. we should not rely on this for clinical use.\n", + "5. Chunking issues are visible because RAG groundedness is lower than Base Prompt.If RAG was fully optimized:\n", + "Groundedness should be higher than Base Prompt.\n", + "Instead:\n", + "✅ RAG groundedness = 4.5\n", + "✅ Base Prompt = 5.0\n", + "This confirms our chunk overlap or chunk size is suboptimal.\n", + "\n", + "5. Chunking strategy needs refinement — increase chunk size to 800–1000 tokens with 150–200 token overlap, however due to limitation of tokens couldn't carried out the higher chunking. But to boost evidence density, we need to use higher chunking strategy with proper overlapping.\n", + "\n", + "6. we need to add a cross-encoder reranker — to guarantee the most evidence-rich chunk is ranked #1, directly improving groundedness from 4.5 → 5.0.\n", + "7. Need to standardize a clinical answer template —\n", + "Assessment → Management → Red Flags → Evidence\n", + "This ensures the model maps retrieved facts into structured, grounded output.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "source": [ + "###Here are the business recommendations:\n", + "\n", + "1. Strengthen the RAG pipeline with hybrid retrieval, re-ranking, and strict evidence-only answer generation to ensure fully grounded medical outputs.\n", + "\n", + "2. Expand the evaluation dataset to a comprehensive 30–50 question medical benchmark covering multiple specialties for reliable performance validation.\n", + "\n", + "3. Introduce mandatory citation formatting and full traceability (chunk IDs, page numbers, document metadata) to increase clinical trust and regulatory readiness.\n", + "\n", + "4. Implement safety guardrails, fallback responses, and PHI-safe logging to meet compliance standards and reduce legal or clinical risks.\n", + "\n", + "5. Standardize structured outputs (Assessment → Management → Red Flags → Evidence) to align with clinician workflows and enhance usability.\n", + "\n", + "6. Build monitoring dashboards for groundedness, relevance, retrieval quality, latency, and token cost to support continuous improvement and enterprise scalability." + ], + "metadata": { + "id": "wwwmRGs0icgj" + } + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ybRlzaIhWaM9" + }, + "source": [ + "Power Ahead\n", + "___" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "provenance": [], + "include_colab_link": true + }, + "kernel_info": { + "name": "python310-sdkv2" + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + }, + "microsoft": { + "host": { + "AzureML": { + "notebookHasBeenCompleted": true + } + }, + "ms_spell_check": { + "ms_spell_check_language": "en" + } + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file From 60769d83a51c4e99848421081d4efa797661923c Mon Sep 17 00:00:00 2001 From: biplob <110578485+bks1984@users.noreply.github.com> Date: Mon, 10 Nov 2025 08:50:28 +0530 Subject: [PATCH 2/3] Created using Colab --- stock_market__news_sentiment_analysis.ipynb | 6747 +++++++++++++++++++ 1 file changed, 6747 insertions(+) create mode 100644 stock_market__news_sentiment_analysis.ipynb diff --git a/stock_market__news_sentiment_analysis.ipynb b/stock_market__news_sentiment_analysis.ipynb new file mode 100644 index 0000000..d9566e5 --- /dev/null +++ b/stock_market__news_sentiment_analysis.ipynb @@ -0,0 +1,6747 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "id": "inNE1fy-ISPj", + "metadata": { + "id": "inNE1fy-ISPj" + }, + "source": [ + "

\n", + " \n", + "

\n", + "\n", + "
Stock Market News Sentiment Analysis
" + ] + }, + { + "cell_type": "markdown", + "id": "EvCcfwuSU-fz", + "metadata": { + "id": "EvCcfwuSU-fz" + }, + "source": [ + "## **Problem Statement**" + ] + }, + { + "cell_type": "markdown", + "id": "6QR_RHvIVHT2", + "metadata": { + "id": "6QR_RHvIVHT2" + }, + "source": [ + "### Business Context" + ] + }, + { + "cell_type": "markdown", + "id": "pl3dmH-EnJGl", + "metadata": { + "id": "pl3dmH-EnJGl" + }, + "source": [ + "The prices of the stocks of companies listed under a global exchange are influenced by a variety of factors, with the company's financial performance, innovations and collaborations, and market sentiment being factors that play a significant role. News and media reports can rapidly affect investor perceptions and, consequently, stock prices in the highly competitive financial industry. With the sheer volume of news and opinions from a wide variety of sources, investors and financial analysts often struggle to stay updated and accurately interpret its impact on the market. As a result, investment firms need sophisticated tools to analyze market sentiment and integrate this information into their investment strategies." + ] + }, + { + "cell_type": "markdown", + "id": "Vn6bbxSwVKl3", + "metadata": { + "id": "Vn6bbxSwVKl3" + }, + "source": [ + "### Problem Definition" + ] + }, + { + "cell_type": "markdown", + "id": "jCIswL3zobj6", + "metadata": { + "id": "jCIswL3zobj6" + }, + "source": [ + "With an ever-rising number of news articles and opinions, an investment startup aims to leverage artificial intelligence to address the challenge of interpreting stock-related news and its impact on stock prices. They have collected historical daily news for a specific company listed under NASDAQ, along with data on its daily stock price and trade volumes.\n", + "\n", + "As a member of the Data Science and AI team in the startup, you have been tasked with developing an AI-driven sentiment analysis system that will automatically process and analyze news articles to gauge market sentiment, and summarizing the news at a weekly level to enhance the accuracy of their stock price predictions and optimize investment strategies. This will empower their financial analysts with actionable insights, leading to more informed investment decisions and improved client outcomes." + ] + }, + { + "cell_type": "markdown", + "id": "ZJOtDHVSF5hu", + "metadata": { + "id": "ZJOtDHVSF5hu" + }, + "source": [ + "### Data Dictionary" + ] + }, + { + "cell_type": "markdown", + "id": "ZlkjI8V5F9RK", + "metadata": { + "id": "ZlkjI8V5F9RK" + }, + "source": [ + "* `Date` : The date the news was released\n", + "* `News` : The content of news articles that could potentially affect the company's stock price\n", + "* `Open` : The stock price (in \\$) at the beginning of the day\n", + "* `High` : The highest stock price (in \\$) reached during the day\n", + "* `Low` : The lowest stock price (in \\$) reached during the day\n", + "* `Close` : The adjusted stock price (in \\$) at the end of the day\n", + "* `Volume` : The number of shares traded during the day\n", + "* `Label` : The sentiment polarity of the news content\n", + " * 1: positive\n", + " * 0: neutral\n", + " * -1: negative" + ] + }, + { + "cell_type": "markdown", + "id": "VrFQHcW5mYgv", + "metadata": { + "id": "VrFQHcW5mYgv" + }, + "source": [ + "## **Installing and Importing the necessary libraries**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "A-E2-iaumpo8", + "metadata": { + "id": "A-E2-iaumpo8", + "collapsed": true, + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "5f12e599-de14-4e2b-adb4-de180cdd4fba" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: numpy==1.26.4 in /usr/local/lib/python3.12/dist-packages (1.26.4)\n", + "Requirement already satisfied: scikit-learn==1.6.1 in /usr/local/lib/python3.12/dist-packages (1.6.1)\n", + "Requirement already satisfied: scipy==1.13.1 in /usr/local/lib/python3.12/dist-packages (1.13.1)\n", + "Requirement already satisfied: gensim==4.3.3 in /usr/local/lib/python3.12/dist-packages (4.3.3)\n", + "Requirement already satisfied: sentence-transformers==3.4.1 in /usr/local/lib/python3.12/dist-packages (3.4.1)\n", + "Requirement already satisfied: pandas==2.2.2 in /usr/local/lib/python3.12/dist-packages (2.2.2)\n", + "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn==1.6.1) (1.5.2)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn==1.6.1) (3.6.0)\n", + "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.12/dist-packages (from gensim==4.3.3) (7.3.1)\n", + "Requirement already satisfied: transformers<5.0.0,>=4.41.0 in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (4.56.1)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (4.67.1)\n", + "Requirement already satisfied: torch>=1.11.0 in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (2.8.0+cu126)\n", + "Requirement already satisfied: huggingface-hub>=0.20.0 in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (0.35.0)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (11.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas==2.2.2) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas==2.2.2) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas==2.2.2) (2025.2)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (3.19.1)\n", + "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2025.3.0)\n", + "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (25.0)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (6.0.2)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2.32.4)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (4.15.0)\n", + "Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (1.1.10)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas==2.2.2) (1.17.0)\n", + "Requirement already satisfied: wrapt in /usr/local/lib/python3.12/dist-packages (from smart-open>=1.8.1->gensim==4.3.3) (1.17.3)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (75.2.0)\n", + "Requirement already satisfied: sympy>=1.13.3 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (1.13.3)\n", + "Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (3.5)\n", + "Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (3.1.6)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.77)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.77)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.6.80 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.80)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==9.10.2.21 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (9.10.2.21)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.6.4.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.4.1)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.3.0.4 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (11.3.0.4)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.7.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (10.3.7.77)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.7.1.2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (11.7.1.2)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.5.4.2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.5.4.2)\n", + "Requirement already satisfied: nvidia-cusparselt-cu12==0.7.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (0.7.1)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.27.3 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (2.27.3)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.77)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12==12.6.85 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.85)\n", + "Requirement already satisfied: nvidia-cufile-cu12==1.11.1.6 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (1.11.1.6)\n", + "Requirement already satisfied: triton==3.4.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (3.4.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.12/dist-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers==3.4.1) (2024.11.6)\n", + "Requirement already satisfied: tokenizers<=0.23.0,>=0.22.0 in /usr/local/lib/python3.12/dist-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers==3.4.1) (0.22.0)\n", + "Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.12/dist-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers==3.4.1) (0.6.2)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy>=1.13.3->torch>=1.11.0->sentence-transformers==3.4.1) (1.3.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=1.11.0->sentence-transformers==3.4.1) (3.0.2)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (3.4.3)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2025.8.3)\n" + ] + } + ], + "source": [ + "# installing the sentence-transformers and gensim libraries for word embeddings\n", + "!pip install numpy==1.26.4 \\\n", + " scikit-learn==1.6.1 \\\n", + " scipy==1.13.1 \\\n", + " gensim==4.3.3 \\\n", + " sentence-transformers==3.4.1 \\\n", + " pandas==2.2.2" + ] + }, + { + "cell_type": "markdown", + "source": [ + "Note:\n", + "- After running the above cell, kindly restart the runtime (for Google Colab) or notebook kernel (for Jupyter Notebook), and run all cells sequentially from the next cell.\n", + "- On executing the above line of code, you might see a warning regarding package dependencies. This error message can be ignored as the above code ensures that all necessary libraries and their dependencies are maintained to successfully execute the code in this notebook." + ], + "metadata": { + "id": "Su4_EiqL5aIZ" + }, + "id": "Su4_EiqL5aIZ" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "179a2a45", + "metadata": { + "id": "179a2a45" + }, + "outputs": [], + "source": [ + "# To manipulate and analyze data\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "# To visualize data\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "# To used time-related functions\n", + "import time\n", + "\n", + "# To build, tune, and evaluate ML models\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "# To load/create word embeddings\n", + "from gensim.models import Word2Vec\n", + "\n", + "# To work with transformer models\n", + "import torch\n", + "from sentence_transformers import SentenceTransformer\n", + "\n", + "# Import TensorFlow and Keras for deep learning model building.\n", + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.layers import Dense, Dropout\n", + "\n", + "# To implement progress bar related functionalities\n", + "from tqdm import tqdm\n", + "tqdm.pandas()\n", + "\n", + "# To ignore unnecessary warnings\n", + "import warnings\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "markdown", + "id": "wQ46zPgumfjF", + "metadata": { + "id": "wQ46zPgumfjF" + }, + "source": [ + "## **Loading the Dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "yu_7XbWQWma8", + "metadata": { + "id": "yu_7XbWQWma8" + }, + "outputs": [], + "source": [ + "# # uncomment and run the following code if Google Colab is being used and the dataset is in Google Drive\n", + "# from google.colab import drive\n", + "# drive.mount('/content/drive')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62a33eef", + "metadata": { + "id": "62a33eef" + }, + "outputs": [], + "source": [ + "# Read the CSV file named 'stock_news' into a pandas DataFrame named 'stock'\n", + "stock_news = pd.read_csv(\"/content/02. Dataset - stock_news.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1xFSwCCer1uA", + "metadata": { + "id": "1xFSwCCer1uA" + }, + "outputs": [], + "source": [ + "#Creating a copy of the dataset\n", + "stock = stock_news.copy()" + ] + }, + { + "cell_type": "markdown", + "id": "EvFNfrvGWthn", + "metadata": { + "id": "EvFNfrvGWthn" + }, + "source": [ + "## **Data Overview**" + ] + }, + { + "cell_type": "markdown", + "id": "GW4rkWI1WzBb", + "metadata": { + "id": "GW4rkWI1WzBb" + }, + "source": [ + "#### **Displaying the first few rows of the dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd2f105b", + "metadata": { + "id": "dd2f105b", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "4fce6c84-28cc-4aee-e18c-154c97c9e849" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Date News Open \\\n", + "0 01-02-2019 The dollar minutes ago tumbled to 106 67 from... 38.72 \n", + "1 01-02-2019 By Wayne Cole and Swati Pandey SYDNEY Reuters... 38.72 \n", + "2 01-02-2019 By Stephen Culp NEW YORK Reuters Wall Stre... 38.72 \n", + "3 01-02-2019 By Wayne Cole SYDNEY Reuters The Australia... 38.72 \n", + "4 01-02-2019 Investing com Asian equities fell in morning... 38.72 \n", + "\n", + " High Low Close Volume Label \n", + "0 39.71 38.56 39.48 130672400 1 \n", + "1 39.71 38.56 39.48 130672400 -1 \n", + "2 39.71 38.56 39.48 130672400 0 \n", + "3 39.71 38.56 39.48 130672400 -1 \n", + "4 39.71 38.56 39.48 130672400 1 " + ], + "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", + "
DateNewsOpenHighLowCloseVolumeLabel
001-02-2019The dollar minutes ago tumbled to 106 67 from...38.7239.7138.5639.481306724001
101-02-2019By Wayne Cole and Swati Pandey SYDNEY Reuters...38.7239.7138.5639.48130672400-1
201-02-2019By Stephen Culp NEW YORK Reuters Wall Stre...38.7239.7138.5639.481306724000
301-02-2019By Wayne Cole SYDNEY Reuters The Australia...38.7239.7138.5639.48130672400-1
401-02-2019Investing com Asian equities fell in morning...38.7239.7138.5639.481306724001
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "stock", + "summary": "{\n \"name\": \"stock\",\n \"rows\": 418,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 73,\n \"samples\": [\n \"01-08-2019\",\n \"04-15-2019\",\n \"01-30-2019\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"News\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 418,\n \"samples\": [\n \" Reuters Apple Inc NASDAQ AAPL is expected to unveil a new video streaming service and a news subscription platform at an event on Monday at its California headquarters The iPhone maker is banking on growing its services business to offset a dip in smartphone sales While the Wall Street Journal plans to join Apple s new subscription news service other major publishers including the New York Times and the Washington Post have declined according to a New York Times report Apple has also partnered with Hollywood celebrities to make a streaming debut with a slate of original content taking a page out of Netflix NASDAQ NFLX Inc s playbook Below are some of the shows curated from media reports and Apple s own announcements which are part of the iPhone maker s content library SHOWS CONFIRMED BY APPLE UNTITLED DRAMA SERIES WITH REESE WITHERSPOON AND JENNIFER ANISTON Two seasons of a drama series starring Reese Witherspoon and Jennifer Aniston that looks at the lives of people working on a morning television show REVIVAL OF STEVEN SPIELBERG S 1985 AMAZING STORIES The tech giant has also struck a deal with director Steven Spielberg to make new episodes of Amazing Stories a science fiction and horror anthology series that ran on NBC in the 1980s A NEW THRILLER BY M NIGHT SHYAMALAN Plot of the story has not been disclosed ARE YOU SLEEPING A MYSTERY SERIES A drama featuring Octavia Spencer based on a crime novel by Kathleen Barber AN ANTHOLOGY SERIES CALLED LITTLE AMERICA Focuses on stories of immigrants coming to the United States AN ANIMATED CARTOON MUSICAL CALLED CENTRAL PARK The animated musical comedy is about a family of caretakers who end up saving the park and the world DICKINSON AN EMILY DICKINSON COMEDY A half hour comedy series that is set during American poet Emily Dickinson s era with a modern sensibility and tone OPRAH WINFREY PARTNERSHIP Apple in June last year announced a multi year deal with Oprah Winfrey to create original programming SHOWS REPORTED BY MEDIA TIME BANDITS A FANTASY SERIES The potential series is an adaptation of Terry Gilliam s 1981 fantasy film of the same name about a young boy who joins a group of renegade time traveling dwarves Deadline reported https UNTITLED CAPTAIN MARVEL STAR BRIE LARSON S CIA PROJECT The new series looks at a young woman s journey in the CIA reported Variety https DEFENDING JACOB STARRING CAPTAIN AMERICA CHRIS EVANS This limited series is based on the novel of the same name and is about an assistant district attorney who is investigating the murder of a 14 year old boy according to Deadline https FOR ALL MANKIND A SCI FI SERIES A space drama from producer Ronald Moore according to Deadline https MY GLORY WAS I HAD SUCH FRIENDS A series featuring Jennifer Garner is based on the 2017 memoir of the same name by Amy Silverstein reported Variety https SEE A FANTASY EPIC STARRING JASON MOMOA The show poses the question about the fate of humanity if everyone lost their sight Variety reported https FOUNDATION A SCI FI ADAPTATION An adaptation of the iconic novel series from famed sci fi author Isaac Asimov Deadline reported The book series follows a mathematician who predicts the collapse of humanity A COMEDY SHOW BY ROB MCELHENNEY AND CHARLIE DAY The sitcom comedy based on the lives of a diverse group of people who work together in a video game development studio Variety reported https AN UNSCRIPTED SERIES HOME FROM THE DOCUMENTARY FILMMAKER MATT TYRNAUER The series will offer viewers a never before seen look inside the world s most extraordinary homes and feature interviews with people who built them according to Variety https UNTITLED RICHARD GERE SERIES Based on an Israeli series Nevelot the show is about two elderly Vietnam vets whose lives are changed when a woman they both love is killed in a car accident Deadline reported J J ABRAMS PRODUCED LITTLE VOICE Singer and actress Sara Bareilles is writing the music and could possibly star in the J J Abrams produced half hour show which explores the journey of finding one s authentic voice in early 20s according to Variety THE PEANUTS GANG Apple has acquired the rights to the famous characters and the first series will be a science and math oriented short featuring Snoopy as an astronaut according to Hollywood Reporter ON THE ROCKS A feature film directed by Sofia Coppola starring Bill Murray is about a young mother who reconnects with her larger than life playboy father on an adventure through New York Variety reported https LOSING EARTH Apple has acquired the rights to a TV series based on Nathaniel Rich s 70 page New York Times Magazine story Losing Earth New York Times reported THE ELEPHANT QUEEN Apple has acquired the rights to Victoria Stone and Mark Deeble s documentary The Elephant Queen Deadline reported WOLFWALKERS An Irish animation about a young hunter who comes to Ireland with her father to destroy a pack of evil wolves but instead befriends a wild native girl who runs with them first reported by Bloomberg PACHINKO Apple has secured the rights to develop Min Jin Lee s best selling novel about four generations of a Korean immigrant family into a series reported Variety CALLS Apple has bought the rights to make an English language version of the French original short form series according to Variety SHANTARAM Apple has won the rights to develop the hit novel Shantaram as a drama series reported Variety https SWAGGER A DRAMA SERIES BASED ON KEVIN DURANT A drama series based on the early life and career of NBA superstar Kevin Durant according to Variety https YOU THINK IT I LL SAY IT Apple has ordered a 10 episode half hour run of the comedy show which is an adaptation of Curtis Sittenfeld s short story collection by the same name Variety reported https WHIPLASH DIRECTOR DAMIEN CHAZELLE DRAMA SERIES According to Variety Apple has ordered a whole season of a series without first shooting a pilot but no other details are known about the show \\n Apple may offer cut priced bundles with video offering The Information reported on Thursday \",\n \"Investing com Stocks in focus in premarket trade Monday \\n Viacom NASDAQ VIAB jumped 4 2 by 8 04 AM ET 12 04 GMT as the company announced that it had renewed its contract with AT T NYSE T avoiding a blackout of MTV Nickelodeon and Comedy Central for DirecTV users \\n Nike NYSE NKE fell 0 3 after European Union antitrust regulators fined the company 12 5 million euros 14 14 million for restricting cross border sales of merchandising products \\n Apple NASDAQ AAPL dropped 0 3 while markets geared up for a company presentation that is expected to lift the curtain on Monday on a secretive years long effort to build a video streaming prodduct \\n Boeing NYSE BA gained 0 4 as the company preps to brief more than 200 global airline pilots technical leaders and regulators on Wednesday over software and training updates for its 737 MAX aircraft \\n CalAmp NASDAQ CAMP fell 2 4 after JP Morgan downgraded it to neutral from overweight according to Briefing com \\n Winnebago Industries NYSE WGO stock declined 0 9 after the company s fiscal second quarter revenue was lower than expected although earnings per share beat expectations\\n Thermo Fisher Scientific NYSE TMO stock could see movement in the regular session after the company announced that it would acquire Brammer Bio for approximately 1 7 billion in cash \\n Biogen NASDAQ BIIB bounced 1 5 after announcing a new 5 billion buyback The stock had fallen by nearly one third last week after saying it had halted the development of a drug it had been developing to treat Alzheimer s \",\n \"By Yimou Lee TAIPEI Reuters Terry Gou chairman of Apple NASDAQ AAPL supplier Foxconn said on Wednesday he will contest Taiwan s 2020 presidential election shaking up the political landscape at a time of heightened tension between the self ruled island and Beijing Gou Taiwan s richest person with a net worth of 7 6 billion according to Forbes said he would join the already competitive race and take part in the opposition China friendly Kuomintang KMT primaries His decision capped a flurry of news this week that began when Gou told Reuters on Monday he planned to step down from the world s largest contract manufacturer to pave the way for younger talent to move up the company s ranks He announced on Tuesday he was considering a presidential bid and hinted he was close to a decision when he told more than 100 people packed into a temple he would follow the instruction of a sea goddess who had told him to run in the presidential race Peace stability and Taiwan s economy future are my core values Gou said later at the KMT s headquarters in Taipei He urged the party to rediscover the spirit of the KMT the honor of KMT members and the KMT s lost support of the youth Gou s bid which requires KMT approval comes at a delicate time for cross strait relations and delivers a blow to the ruling pro independence Democratic Progressive NYSE PGR Party which is struggling in opinion polls China Taiwan relations have deteriorated since the island s president Tsai Ing wen of the independence leaning DPP swept to power in 2016 China suspects Tsai is pushing for the island s formal independence That is a red line for China which has never renounced the use of force to bring Taiwan under its control Tsai says she wants to maintain the status quo with China but will defend Taiwan s security and democracy VERY PRO CHINA A senior adviser to Tsai told Reuters he thought Gou s bid could create problems given his extensive business ties with China This is problematic to Taiwan s national security the adviser Yao Chia wen said He s very pro China and he represents the class of the wealthy people Will that gain support from Taiwanese Yao said adding he believed Gou would face a tough battle in the KMT primary Tension between Taipei and Beijing escalated again on Monday as Chinese bombers and warships conducted drills around the island prompting Taiwan to scramble jets and ships to monitor the Chinese forces The KMT which once ruled China before fleeing to Taiwan at the end of a civil war with the Communists in 1949 said in February it could sign a peace treaty with Beijing if it won the hotly contested presidential election Zhang Baohui a regional security analyst at Hong Kong s Lingnan University said Gou s run could mark the start of the most unusual election race in Taiwan history This is something entirely fresh for Taiwan politics here is a candidate who sees everything through the pragmatic angle of a businessman rather than raw politics or ideology Zhang told Reuters He has no baggage and that will be a fascinating scenario Gou s news comes as Tsai is grappling with a series of unpopular domestic reform initiatives from a pension scheme to labour law which have come under intense voter scrutiny The KMT said this week Gou had been a party member for more than 50 years and had given it an interest free loan of T 45 million 1 5 million in 2016 under the name of his mother which had signalled his loyalty to the party Foxconn said on Tuesday Gou would remain chairman of Foxconn though he planned to withdraw from daily operations \"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.947134201503234,\n \"min\": 35.99,\n \"max\": 51.84,\n \"num_unique_values\": 69,\n \"samples\": [\n 43.22,\n 38.72,\n 48.83\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.947413441172774,\n \"min\": 36.43,\n \"max\": 52.12,\n \"num_unique_values\": 67,\n \"samples\": [\n 43.87,\n 39.08,\n 37.96\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.967879507972434,\n \"min\": 35.5,\n \"max\": 51.76,\n \"num_unique_values\": 66,\n \"samples\": [\n 49.54,\n 50.97,\n 38.56\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.999867403609388,\n \"min\": 35.55,\n \"max\": 51.87,\n \"num_unique_values\": 68,\n \"samples\": [\n 48.77,\n 39.08,\n 37.69\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 45745495,\n \"min\": 45448000,\n \"max\": 365248800,\n \"num_unique_values\": 73,\n \"samples\": [\n 216071600,\n 70146400,\n 244439200\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": -1,\n \"max\": 1,\n \"num_unique_values\": 3,\n \"samples\": [\n 1,\n -1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 4 + } + ], + "source": [ + "stock.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "y2ewB36LL9Cz", + "metadata": { + "id": "y2ewB36LL9Cz" + }, + "source": [ + "#### **Understanding the shape of the dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "wWx6wqN0MTPw", + "metadata": { + "id": "wWx6wqN0MTPw", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "edd77532-57d5-4ab5-ebc3-b8a4fa737b0a" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(418, 8)" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "stock.shape" + ] + }, + { + "cell_type": "markdown", + "id": "yQjb8QOTivg3", + "metadata": { + "id": "yQjb8QOTivg3" + }, + "source": [ + "**Observations:**\n", + "* There are a total of 418 records with 8 attributes each." + ] + }, + { + "cell_type": "markdown", + "id": "fPLJXhFcMA7N", + "metadata": { + "id": "fPLJXhFcMA7N" + }, + "source": [ + "#### **Checking the data types of the columns**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Gc_eAiMdMVe2", + "metadata": { + "id": "Gc_eAiMdMVe2", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8c61445b-ef88-4a92-b810-0e15bb3000f5" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 418 entries, 0 to 417\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 418 non-null object \n", + " 1 News 418 non-null object \n", + " 2 Open 418 non-null float64\n", + " 3 High 418 non-null float64\n", + " 4 Low 418 non-null float64\n", + " 5 Close 418 non-null float64\n", + " 6 Volume 418 non-null int64 \n", + " 7 Label 418 non-null int64 \n", + "dtypes: float64(4), int64(2), object(2)\n", + "memory usage: 26.3+ KB\n" + ] + } + ], + "source": [ + "stock.info()" + ] + }, + { + "cell_type": "markdown", + "id": "i1CgPxT5mxEf", + "metadata": { + "id": "i1CgPxT5mxEf" + }, + "source": [ + "Let's convert the Date column to pandas `datetime` type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ZD5fstuv6ery", + "metadata": { + "id": "ZD5fstuv6ery" + }, + "outputs": [], + "source": [ + "# Convert the 'Date' column in the 'stocks' DataFrame to datetime format\n", + "stock['Date'] = pd.to_datetime(stock['Date'])" + ] + }, + { + "cell_type": "markdown", + "id": "8dORemydMDfR", + "metadata": { + "id": "8dORemydMDfR" + }, + "source": [ + "#### **Checking the statistical summary**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "gUazWjegMeQl", + "metadata": { + "id": "gUazWjegMeQl", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "cd88b728-318a-4f67-d74e-71373400a55b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Date Open High Low \\\n", + "count 418 418.000000 418.000000 418.000000 \n", + "mean 2019-02-14 12:24:06.889952256 42.308852 42.787321 41.923732 \n", + "min 2019-01-02 00:00:00 35.990000 36.430000 35.500000 \n", + "25% 2019-01-11 00:00:00 38.130000 38.420000 37.720000 \n", + "50% 2019-01-31 00:00:00 41.530000 42.250000 41.140000 \n", + "75% 2019-03-21 00:00:00 47.190000 47.427500 46.480000 \n", + "max 2019-04-29 00:00:00 51.840000 52.120000 51.760000 \n", + "std NaN 4.947134 4.947413 4.967880 \n", + "\n", + " Close Volume Label \n", + "count 418.000000 4.180000e+02 418.000000 \n", + "mean 42.418517 1.294225e+08 0.308612 \n", + "min 35.550000 4.544800e+07 -1.000000 \n", + "25% 38.270000 1.029072e+08 -1.000000 \n", + "50% 41.610000 1.156272e+08 1.000000 \n", + "75% 47.032500 1.511252e+08 1.000000 \n", + "max 51.870000 3.652488e+08 1.000000 \n", + "std 4.999867 4.574550e+07 0.943473 " + ], + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateOpenHighLowCloseVolumeLabel
count418418.000000418.000000418.000000418.0000004.180000e+02418.000000
mean2019-02-14 12:24:06.88995225642.30885242.78732141.92373242.4185171.294225e+080.308612
min2019-01-02 00:00:0035.99000036.43000035.50000035.5500004.544800e+07-1.000000
25%2019-01-11 00:00:0038.13000038.42000037.72000038.2700001.029072e+08-1.000000
50%2019-01-31 00:00:0041.53000042.25000041.14000041.6100001.156272e+081.000000
75%2019-03-21 00:00:0047.19000047.42750046.48000047.0325001.511252e+081.000000
max2019-04-29 00:00:0051.84000052.12000051.76000051.8700003.652488e+081.000000
stdNaN4.9471344.9474134.9678804.9998674.574550e+070.943473
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"stock\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1970-01-01 00:00:00.000000418\",\n \"max\": \"2019-04-29 00:00:00\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"418\",\n \"2019-02-14 12:24:06.889952256\",\n \"2019-03-21 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.29734162506347,\n \"min\": 4.947134201503234,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 42.308851674641154,\n 47.19,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.18648944299875,\n \"min\": 4.947413441172774,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 42.78732057416268,\n 47.427499999999995,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.4078256172517,\n \"min\": 4.967879507972434,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 41.923732057416274,\n 46.48,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.30548063571206,\n \"min\": 4.999867403609388,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 42.41851674641149,\n 47.0325,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 111473859.17448182,\n \"min\": 418.0,\n \"max\": 365248800.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 129422491.86602871,\n 151125200.0,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 147.67411440583984,\n \"min\": -1.0,\n \"max\": 418.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.30861244019138756,\n 0.9434730920044713,\n -1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "stock.describe()" + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Observations:**\n", + "\n", + "- **Date Range and Trading Period**:\n", + " - The data covers a period from January 2, 2019, to April 29, 2019, indicating a span of approximately four months.\n", + "\n", + "- **Price Overview**:\n", + " - **Average Prices**: The average opening price is approximately \\$42.30, while the average closing price is about \\$42.41.\n", + " - **Price Variability**: The prices range from a minimum of around \\$35.99 for opening to a maximum of \\$51.84 for opening, reflecting significant volatility during this period.\n", + "\n", + "- **Trading Volume**:\n", + " - The average trading volume is approximately 129.42 million shares, with fluctuations from around 45.45 million to 365.24 million, highlighting varying market activity levels." + ], + "metadata": { + "id": "0wZ7x_5W77tD" + }, + "id": "0wZ7x_5W77tD" + }, + { + "cell_type": "markdown", + "id": "lXRpNWnQMGIY", + "metadata": { + "id": "lXRpNWnQMGIY" + }, + "source": [ + "#### **Checking the duplicate values**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ti4UpPi6M5kM", + "metadata": { + "id": "ti4UpPi6M5kM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "66fad013-2ec1-4ec3-9cfe-842656486d7c" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ], + "source": [ + "stock.duplicated().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "XkwHzJH6k_jx", + "metadata": { + "id": "XkwHzJH6k_jx" + }, + "source": [ + "**Observations:**\n", + "* There are no duplicate values." + ] + }, + { + "cell_type": "markdown", + "id": "fxghULa0MOY-", + "metadata": { + "id": "fxghULa0MOY-" + }, + "source": [ + "#### **Checking for missing values**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "yItWheKoNGkf", + "metadata": { + "id": "yItWheKoNGkf", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "ff1d5335-a019-465d-e7f8-546c97e5873f" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Date 0\n", + "News 0\n", + "Open 0\n", + "High 0\n", + "Low 0\n", + "Close 0\n", + "Volume 0\n", + "Label 0\n", + "dtype: int64" + ], + "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", + "
0
Date0
News0
Open0
High0
Low0
Close0
Volume0
Label0
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "stock.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "qg7TsQTclDUS", + "metadata": { + "id": "qg7TsQTclDUS" + }, + "source": [ + "**Observations:**\n", + "* There are no missing values." + ] + }, + { + "cell_type": "markdown", + "id": "hGHBK8-QeKOB", + "metadata": { + "id": "hGHBK8-QeKOB" + }, + "source": [ + "## **Exploratory Data Analysis**" + ] + }, + { + "cell_type": "markdown", + "id": "Q0UlMQnyegl7", + "metadata": { + "id": "Q0UlMQnyegl7" + }, + "source": [ + "### **Univariate Analysis**" + ] + }, + { + "cell_type": "markdown", + "id": "RrznHeBaLu0W", + "metadata": { + "id": "RrznHeBaLu0W" + }, + "source": [ + "#### **Countplot on Label**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "meVjTKoxLpmA", + "metadata": { + "id": "meVjTKoxLpmA", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "dcd02675-45e6-4016-fb12-10ce1aef7018" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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VVlZeclDAQAAtERQIdO5c2d9/vnnzdY/++wzJSQkXPJQAAAALRFUyEyaNEkPPvig3n//fTU2NqqxsVHvvfeeHnroIU2cOLG1ZwQAADiroK6R+f3vf68jR45o9OjRCg//7hBNTU3Kzc3VokWLWnVAAACAc7nokPH5fHI6nSouLtbChQu1d+9excTEqF+/furevfvlmBEAAOCsggqZXr166cCBA0pNTVVqaurlmAsAAOCCLvoambCwMKWmpurEiROXYx4AAIAWC+pi3yeffFKPPPKI9u/f39rzAAAAtFhQF/vm5ubq22+/1YABAxQZGamYmJiA/SdPnmyV4QAAAM4nqJBZvnx5K48BAABw8YIKmSvtVxAAAAAzBXWNjCR9/fXXmjNnjiZNmqRjx45Jkt566y0dOHCg1YYDAAA4n6BCprS0VP369dOuXbv02muvqba2VtJ3v6Jg3rx5rTogAADAuQQVMo899pgWLlyod955R5GRkf71UaNGaefOna02HAAAwPkEFTL79u3THXfc0Wy9c+fOOn78+CUPBQAA0BJBhUxcXJyOHj3abP3TTz/V9ddff8lDAQAAtERQITNx4kQ9+uijcjqdstlsampq0o4dO/Twww8rNze3xcdZtWqV+vfvr9jYWMXGxiozM1NvvfWWf399fb3y8vKUkJCgDh06KCcnRy6XK5iRAQDAFSiokFm0aJHS0tLkcDhUW1urPn366KabbtKNN96oOXPmtPg43bp105NPPqny8nLt2bNHo0aN0rhx4/zvfJo1a5a2bNmijRs3qrS0VNXV1ZowYUIwIwMAgCuQzefz+YJ9cFVVlfbt26e6ujoNGjRIvXr1uuSB4uPjtWTJEt1555267rrrtGHDBt15552SpIMHD6p3794qKyvT8OHDz/p4r9crr9frv+3xeORwOOR2uxUbGxvUTOmPrA/qcbhylS9p+ZlH4GrB35X4b5f696TH45Hdbr/gz++gP0dm7dq1GjNmjO644w7dfffdGj9+vP70pz8Fezg1NjbqpZdeUl1dnTIzM1VeXq7Tp08rKyvLf5+0tDQlJyerrKzsnMcpLCyU3W73bw6HI+iZAABAaAvqk33nzp2rpUuXasaMGcrMzJQklZWVadasWaqsrNSCBQtafKx9+/YpMzNT9fX16tChgzZt2qQ+ffpo7969ioyMVFxcXMD9ExMT5XQ6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\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.countplot(data=stock, x='Label', stat=\"percent\");" + ] + }, + { + "cell_type": "markdown", + "id": "nXPvfQr-Avd7", + "metadata": { + "id": "nXPvfQr-Avd7" + }, + "source": [ + "**Observations:**\n", + "* The dataset is imbalanced for the sentiment polarities.\n", + "* There is more news content with positive polarity compared to other types." + ] + }, + { + "cell_type": "markdown", + "id": "dpGHhbGeeoF8", + "metadata": { + "id": "dpGHhbGeeoF8" + }, + "source": [ + "#### **Density Plot of Price (Open, High, Low, Close)**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "BKqgbg0_v5EM", + "metadata": { + "id": "BKqgbg0_v5EM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "0a50f216-e030-496b-de8c-cc3a2b8153ca" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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tHXrVme+UUhICLfccguzZ89m+fLlbNq0iZtuuolx48YxduzYVvz0nYtjJMk9Hwkgt9yVuG3q6paTZK7WlmQDhEghyVNZUoQ/T1zQH4AXF+1h+R5HgdEuMPZ27f2SOWDRAu63Vuzn8/XZKAr88/LBhDe15D9tGay15zRd8Ar4drzR3yBTENf1uw6AD3d82ORv5oPiQwj31VNr9GX9jkzq7P/+eehlX6yStuRkdVe0IkVR0Pn7t/pXk7+QeBEeHs7UqVN58803qa6ubnT+8Bkd0KbOtm3b5tF+9erV6HQ6+vTp4zw2bNgwHn30UdasWcPAgQP57LPPABg+fDipqan07Nmz0ZdOd/whT5sGSVdddRUvvfQSc+bMYejQoWzdupVFixY5k7OzsrI8htHGjx/PZ599xnvvvceQIUP4+uuv+f777xk4cKCzzY8//siwYcM4/3xt2evVV1/NsGHDeOcdV5n/f/3rX1xwwQVcdtllTJw4kdjYWL79VnbKPhHO6Ta3kaQacwNlNVpF5ajaMkzuy//L7UnbPsHgG9Jq/RTt03VjkrhmdCKqCrd/uomFO+x/7yfcCwFRULQX62/P8sriVP5pX8325AX9mWLf5LWRijz43h5gjbrVOQrVEV3T9xp89b6klKTwZ5731UA6ncKkflq6wKaYPhS9+17jRt2ngKKHor1SfVu0mjfffBOr1cro0aP55ptv2LdvHykpKfz73//2Ontz3XXX4evry4033sjOnTtZvnw5d999NzfccAMxMTFkZGTw6KOPsnbtWjIzM1m8eDH79u1z5iXNmTOHTz75hKeffppdu3aRkpLCF198weOPP968D6CKZikvL1cBtby8vK270i5c9/N16sB5A9VfM351HttXUKl2fXiB2nf21+qe007zvGDfUlV9MlhV3xzbyj0V7VW9xarO/HCd2vXhBWrXhxeoD87fqm7NKlVzN/2sLn58snrFI/90nvvHopSmb1RXoapvT9C+v94Yo6rmmtb7ECfJ838+rw6cN1C95ddbmmzz3eaDateHF6hT/vquurtvP7UuLa1xow+man8u698/ib0VwlNubq565513ql27dlVNJpMaHx+vXnTRRery5ctVVVVVQP3uu++c7bdv365OmTJF9fX1VcPDw9VZs2aplZWVqqqqan5+vjp9+nQ1Li5ONZlMateuXdU5c+aoVqvV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\n" + }, + "metadata": {} + } + ], + "source": [ + "# Plot KDE for the 'Open', 'High', 'Low', 'Close' columns of the 'stock' DataFrame.\n", + "sns.displot(data=stock[['Open','High','Low','Close']], kind='kde', palette=\"tab10\"); # Create a KDE plot with a color palette." + ] + }, + { + "cell_type": "markdown", + "id": "l5jX1Kp-lbD5", + "metadata": { + "id": "l5jX1Kp-lbD5" + }, + "source": [ + "**Observations:**\n", + "* The distributions of the prices are quite similar, with the high price showing a slight variation than the others." + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Histogram on Volume**" + ], + "metadata": { + "id": "1wBKKuVIaWnl" + }, + "id": "1wBKKuVIaWnl" + }, + { + "cell_type": "code", + "source": [ + "sns.histplot(stock, x='Volume');" + ], + "metadata": { + "id": "FMDJ_m6maaoK", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "fa63eb8f-f159-41cc-c969-fce63404ff4b" + }, + "id": "FMDJ_m6maaoK", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGwCAYAAACzXI8XAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAMEVJREFUeJzt3X1cVHXe//H3oDBgyhjecJMgaApoeZN5g7qbGUWu+dBLtrKyKN1qu9BN6U66UtMsurlSNyPNLsV1Wy83t3Rr27SkpFI0pdw00dVWG0vAqGC8wVHh/P7Yn3NFgsEwcObA6/l4nMfDczMfPvN9HIa3Z75zxmYYhiEAAAALCjC7AQAAAG8RZAAAgGURZAAAgGURZAAAgGURZAAAgGURZAAAgGURZAAAgGW1NruBxlZVVaUjR46oXbt2stlsZrcDAADqwDAMHTt2TFFRUQoIqP26S7MPMkeOHFF0dLTZbQAAAC8cPnxYXbp0qXV/sw8y7dq1k/TvgQgNDTW5GwAAUBcul0vR0dGev+O1afZB5tzbSaGhoQQZAAAs5uemhTDZFwAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWFZrsxtA8+Z0OlVaWtrgOh07dlRMTIwPOgIANCcEGTQap9OphIREVVScbHCtkJA22ru3kDADAKiGIINGU1paqoqKkxo8abZCI2O9ruMqOqRty+eotLSUIAMAqIYgg0YXGhmrsJh4s9sAADRDTPYFAACWRZABAACWZWqQqays1MyZMxUXF6eQkBB1795dTzzxhAzD8BxjGIZmzZqlyMhIhYSEKDk5Wfv37zexawAA4C9MDTLPPPOMFi9erBdffFGFhYV65pln9Oyzz2rRokWeY5599lm98MILWrJkibZt26aLLrpIKSkpOnXqlImdAwAAf2DqZN8tW7Zo7NixGj16tCQpNjZW//u//6tPPvlE0r+vxixcuFCPPfaYxo4dK0lauXKlwsPDtW7dOk2YMOG8mm63W26327Pucrma4JkAAAAzmHpFZujQocrNzdU///lPSdI//vEPffzxxxo1apQk6eDBgyouLlZycrLnMQ6HQ4MHD1Z+fn6NNbOysuRwODxLdHR04z8RAABgClOvyMyYMUMul0sJCQlq1aqVKisr9eSTT+q2226TJBUXF0uSwsPDqz0uPDzcs++nMjMzlZGR4Vl3uVyEGQAAmilTg8xrr72mP/3pT1q1apV69+6tnTt3atq0aYqKilJaWppXNe12u+x2u487BQAA/sjUIPPQQw9pxowZnrkul19+ub766itlZWUpLS1NERERkqSSkhJFRkZ6HldSUqJ+/fqZ0TIAAPAjps6ROXnypAICqrfQqlUrVVVVSZLi4uIUERGh3Nxcz36Xy6Vt27YpKSmpSXsFAAD+x9QrMmPGjNGTTz6pmJgY9e7dW5999pnmz5+vSZMmSZJsNpumTZumefPmqUePHoqLi9PMmTMVFRWlcePGmdk6AADwA6YGmUWLFmnmzJn6z//8Tx09elRRUVG69957NWvWLM8xDz/8sE6cOKF77rlHZWVlGj58uNavX6/g4GATOwcAAP7A1CDTrl07LVy4UAsXLqz1GJvNprlz52ru3LlN1xgAALAEvmsJAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYlqlBJjY2Vjab7bwlPT1dknTq1Cmlp6erQ4cOatu2rVJTU1VSUmJmywAAwI+YGmS2b9+uoqIiz/Lee+9Jkm688UZJ0vTp0/XWW29pzZo1ysvL05EjRzR+/HgzWwYAAH6ktZk/vFOnTtXWn376aXXv3l1XXXWVysvLtWzZMq1atUojR46UJOXk5CgxMVFbt27VkCFDaqzpdrvldrs96y6Xq/GeAAAAMJXfzJE5ffq0Xn31VU2aNEk2m00FBQU6c+aMkpOTPcckJCQoJiZG+fn5tdbJysqSw+HwLNHR0U3RPgAAMIHfBJl169aprKxMd955pySpuLhYQUFBat++fbXjwsPDVVxcXGudzMxMlZeXe5bDhw83YtcAAMBMpr619GPLli3TqFGjFBUV1aA6drtddrvdR10BAAB/5hdB5quvvtLGjRv1xhtveLZFRETo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edsDAwNVVVXlVSNPP/20bDabpk2b5tl26tQppaenq0OHDmrbtq1SU1NVUlLiVX0AAND8eBVkRo4cqfvvv19HjhzxbPvmm280ffp0XXPNNfWut337dr388svq06dPte3Tp0/XW2+9pTVr1igvL09Hjhw57x42AACg5fIqyLz44otyuVyKjY1V9+7d1b17d8XFxcnlcmnRokX1qnX8+HHddttteuWVV3TxxRd7tpeXl2vZsmWaP3++Ro4cqQEDBignJ0dbtmzR1q1bvWkbAAA0M17NkYmOjtann36qjRs3au/evZKkxMREJScn17tWenq6Ro8ereTkZM2bN8+zvaCgQGfOnKlWMyEhQTExMcrPz9eQIUNqrOd2u+V2uz3rLper3j0BAABrqNcVmffff1+9evWSy+WSzWbTtddeq6lTp2rq1KkaOHCgevfurY8++qjO9VavXq1PP/1UWVlZ5+0rLi5WUFCQ5+Pd54SHh6u4uLjWmllZWXI4HJ4lOjq6zv0AAABrqVeQWbhwoe6++26Fhoaet8/hcOjee+/V/Pnz61Tr8OHDuv/++/WnP/3Jp180mZmZqfLycs9y+PBhn9UGAAD+pV5B5h//+Ieuv/76Wvdfd911KigoqFOtgoICHT16VFdccYVat26t1q1bKy8vTy+88IJat26t8PBwnT59WmVlZdUeV1JSooiIiFrr2u12hYaGVlsAAEDzVK85MiUlJTV+7NpTrHVrffvtt3Wqdc0112jXrl3Vtt11111KSEjQI488oujoaAUGBio3N1epqamSpH379snpdCopKak+bQMAgGaqXkHmkksu0e7du3XppZfWuP/zzz9XZGRknWq1a9dOl112WbVtF110kTp06ODZPnnyZGVkZCgsLEyhoaGaOnWqkpKSap3oCwAAWpZ6vbX0q1/9SjNnztSpU6fO21dRUaHZs2frhhtu8FlzCxYs0A033KDU1FT98pe/VEREhN544w2f1QcAANZWrysyjz32mN544w317NlTU6ZMUXx8vCRp7969ys7OVmVlpf7rv/7L62Y2bdpUbT04OFjZ2dnKzs72uiYAAGi+6hVkwsPDtWXLFt13333KzMyUYRiSJJvNppSUFGVnZys8PLxRGgUAAPipet8Qr2vXrvr73/+uH374QQcOHJBhGOrRo0e1u/ICAAA0Ba/u7CtJF198sQYOHOjLXgAAAOrFq+9aAgAA8AcEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFmtzW4AQMM5nU6VlpY2uE7Hjh0VExPjg44AoGkQZACLczqdSkhIVEXFyQbXCglpo717CwkzACyDIANYXGlpqSoqTmrwpNkKjYz1uo6r6JC2LZ+j0tJSggwAyyDIAM1EaGSswmLizW4DAJoUk30BAIBlEWQAAIBlEWQAAIBlEWQAAIBlEWQAAIBlEWQAAIBlmRpkFi9erD59+ig0NFShoaFKSkrSO++849l/6tQppaenq0OHDmrbtq1SU1NVUlJiYscAAMCfmBpkunTpoqeffloFBQXasWOHRo4cqbFjx+qLL76QJE2fPl1vvfWW1qxZo7y8PB05ckTjx483s2UAAOBHTL0h3pgxY6qtP/nkk1q8eLG2bt2qLl26aNmyZVq1apVGjhwpScrJyVFiYqK2bt2qIUOGmNEyAADwI34zR6ayslKrV6/WiRMnlJSUpIKCAp05c0bJycmeYxISEhQTE6P8/Pxa67jdbrlcrmoLAABonkwPMrt27VLbtm1lt9v129/+VmvXrlWvXr1UXFysoKAgtW/fvtrx4eHhKi4urrVeVlaWHA6HZ4mOjm7kZwAAAMxiepCJj4/Xzp07tW3bNt13331KS0vTnj17vK6XmZmp8vJyz3L48GEfdgsAAPyJ6V8aGRQUpEsvvVSSNGDAAG3fvl2///3vdfPNN+v06dMqKyurdlWmpKREERERtdaz2+2y2+2N3TYAAPADpl+R+amqqiq53W4NGDBAgYGBys3N9ezbt2+fnE6nkpKSTOwQAAD4C1OvyGRmZmrUqFGKiYnRsWPHtGrVKm3atEkbNmyQw+HQ5MmTlZGRobCwMIWGhmrq1KlKSkriE0sAAECSyUHm6NGjuuOOO1RUVCSHw6E+ffpow4YNuvbaayVJCxYsUEBAgFJTU+V2u5WSkqKXXnrJzJYBAIAfMTXILFu27IL7g4ODlZ2drezs7CbqCAAAWInfzZEBAACoK4IMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwLIIMAACwrNZmNwAALY3T6VRpaWmD63Ts2FExMTE+6AiwLlODTFZWlt544w3t3btXISEhGjp0qJ555hnFx8d7jjl16pQeeOABrV69Wm63WykpKXrppZcUHh5uYucA4B2n06mEhERVVJxscK2QkDbau7eQMIMWzdQgk5eXp/T0dA0cOFBnz57Vo48+quuuu0579uzRRRddJEmaPn263n77ba1Zs0YOh0NTpkzR+PHjtXnzZjNbBwCvlJaWqqLipAZPmq3QyFiv67iKDmnb8jkqLS0lyKBFMzXIrF+/vtr6ihUr1LlzZxUUFOiXv/ylysvLtWzZMq1atUojR46UJOXk5CgxMVFbt27VkCFDzGgbABosNDJWYTHxP38ggAvyq8m+5eXlkqSwsDBJUkFBgc6cOaPk5GTPMQkJCYqJiVF+fn6NNdxut1wuV7UFAAA0T34TZKqqqjRt2jQNGzZMl112mSSpuLhYQUFBat++fbVjw8PDVVxcXGOdrKwsORwOzxIdHd3YrQMAAJP4TZBJT0/X7t27tXr16gbVyczMVHl5uWc5fPiwjzoEAAD+xi8+fj1lyhT97W9/04cffqguXbp4tkdEROj06dMqKyurdlWmpKREERERNday2+2y2+2N3TIAAPADpgYZwzA0depUrV27Vps2bVJcXFy1/QMGDFBgYKByc3OVmpoqSdq3b5+cTqeSkpLMaNnv+eL+FIWFhT7qBgCAxmVqkElPT9eqVav017/+Ve3atfPMe3E4HAoJCZHD4dDkyZOVkZGhsLAwhYaGaurUqUpKSuITSzXw5f0pJOmM+7RP6gAA0FhMDTKLFy+WJI0YMaLa9pycHN15552SpAULFiggIECpqanVboiH8/nq/hRFu/K1+82lOnv2rO+aAwCgEZj+1tLPCQ4OVnZ2trKzs5ugo+ahofencBUd8l0zAAA0Ir/51BIAAEB9EWQAAIBlEWQAAIBlEWQAAIBlEWQAAIBl+cWdfYGWihsYAkDDEGQAk3ADQwBoOIIMYBJuYAgADUeQAUzGDQwBwHsEGcBLDZ2bwtwWAGg4ggxQTxXl30myaeLEiT6px9wWAPAeQQaopzMnj0ky1O/WR9QpLsHrOsxtAYCGI8gAXmrbOYa5LQBgMoIMgGbPF/frkaSOHTsqJibGBx0B8BWCDIBmzZf36wkJaaO9ewsJM4AfIcgAaNZ8db8eV9EhbVs+R6WlpQQZwI8QZAC0CA29Xw8A/8SXRgIAAMviiowf8NVERG6wBgBoaQgyJvP1FwdK3GANANByEGRM5quJiBI3WAMAtDwEGT/hi4mI3GANANDSMNkXAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFnf2BVCNL758tGPHjoqJifFBNwBwYaYGmQ8//FDPPfecCgoKVFRUpLVr12rcuHGe/YZhaPbs2XrllVdUVlamYcOGafHixerRo4d5TQPNVEX5d5JsmjhxYoNrhYS00d69hYQZAI3O1CBz4sQJ9e3bV5MmTdL48ePP2//ss8/qhRde0B/+8AfFxcVp5syZSklJ0Z49exQcHGxCx0DzdebkMUmG+t36iDrFJXhdx1V0SNuWz1FpaSlBBkCjMzXIjBo1SqNGjapxn2EYWrhwoR577DGNHTtWkrRy5UqFh4dr3bp1mjBhQlO2CrQYbTvHNPgLTAGgqfjtHJmDBw+quLhYycnJnm0Oh0ODBw9Wfn5+rUHG7XbL7XZ71l0uV6P3CqBxOJ1OlZaWNqiGL+b8APBffhtkiouLJUnh4eHVtoeHh3v21SQrK0tz5sxp1N4AND6n06mEhERVVJz0Sb0z7tM+qQPAv/htkPFWZmamMjIyPOsul0vR0dEmdgTAG6WlpaqoOKnBk2YrNDLW6zpFu/K1+82lOnv2rO+aA+A3/DbIRERESJJKSkoUGRnp2V5SUqJ+/frV+ji73S673d7Y7QFoIqGRsQ2as+MqOuS7ZgD4Hb+9IV5cXJwiIiKUm5vr2eZyubRt2zYlJSWZ2BkAAPAXpl6ROX78uA4cOOBZP3jwoHbu3KmwsDDFxMRo2rRpmjdvnnr06OH5+HVUVFS1e80AAICWy9Qgs2PHDl199dWe9XNzW9LS0rRixQo9/PDDOnHihO655x6VlZVp+PDhWr9+PfeQAQAAkkwOMiNGjJBhGLXut9lsmjt3rubOnduEXQEAAKvw2zkyAAAAP4cgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALIsgAwAALKu12Q0AgJUUFhaa+ngA1RFkAKAOKsq/k2TTxIkTfVLvjPu0T+oALR1BBgDq4MzJY5IM9bv1EXWKS/C6TtGufO1+c6nOnj3ru+aAFowgAwD10LZzjMJi4r1+vKvokO+aAUCQaQin06nS0tIG1eD9cgAAvEeQ8ZLT6VRCQqIqKk76pB7vlwMAUH8EGS+VlpaqouKkBk+ardDIWK/r8H45AADeI8g0UGhkLO+XAwBgEoIMAAAtkC/meUpSx44dFRMT44OOvEOQAQCghfHlPM+QkDbau7fQtDBjiSCTnZ2t5557TsXFxerbt68WLVqkQYMGmd0WAACW5Kt5nq6iQ9q2fI5KS0sJMrX585//rIyMDC1ZskSDBw/WwoULlZKSon379qlz585mtwcAgGU1dJ6nP/D7L42cP3++7r77bt11113q1auXlixZojZt2mj58uVmtwYAAEzm11dkTp8+rYKCAmVmZnq2BQQEKDk5Wfn5+TU+xu12y+12e9bLy8slSS6Xy6e9HT9+XJL0/Vf7dNZd4XUdV9FXkqTyb/YrsLWtQT35qhZ1qNOgOsVOSVJBQYHn98Qb+/btk+Q/v2N+V8dH4yz9+3W1qqqqQTWoY606Pvv9+v/n4fHjx33+d/ZcPcMwLnyg4ce++eYbQ5KxZcuWatsfeughY9CgQTU+Zvbs2YYkFhYWFhYWlmawHD58+IJZwa+vyHgjMzNTGRkZnvWqqip9//336tChg2y2hl3xqCuXy6Xo6GgdPnxYoaGhTfIzrYBxqR1jUzPGpXaMTc0Yl9pZbWwMw9CxY8cUFRV1weP8Osh07NhRrVq1UklJSbXtJSUlioiIqPExdrtddru92rb27ds3VosXFBoaaomTpakxLrVjbGrGuNSOsakZ41I7K42Nw+H42WP8erJvUFCQBgwYoNzcXM+2qqoq5ebmKikpycTOAACAP/DrKzKSlJGRobS0NF155ZUaNGiQFi5cqBMnTuiuu+4yuzUAAGAyvw8yN998s7799lvNmjVLxcXF6tevn9avX6/w8HCzW6uV3W7X7Nmzz3uLq6VjXGrH2NSMcakdY1MzxqV2zXVsbIbxc59rAgAA8E9+PUcGAADgQggyAADAsggyAADAsggyAADAsggyXsrOzlZsbKyCg4M1ePBgffLJJ7Ueu2LFCtlstmpLcHBwE3bbND788EONGTNGUVFRstlsWrdu3c8+ZtOmTbriiitkt9t16aWXasWKFY3eZ1Or77hs2rTpvPPFZrOpuLi4aRpuIllZWRo4cKDatWunzp07a9y4cZ7vf7mQNWvWKCEhQcHBwbr88sv197//vQm6bVrejE1LeJ1ZvHix+vTp47mhW1JSkt55550LPqYlnC9S/cemOZ0vBBkv/PnPf1ZGRoZmz56tTz/9VH379lVKSoqOHj1a62NCQ0NVVFTkWb766qsm7LhpnDhxQn379lV2dnadjj948KBGjx6tq6++Wjt37tS0adP0m9/8Rhs2bGjkTptWfcflnH379lU7Zzp37txIHZojLy9P6enp2rp1q9577z2dOXNG1113nU6cOFHrY7Zs2aJbbrlFkydP1meffaZx48Zp3Lhx2r17dxN23vi8GRup+b/OdOnSRU8//bQKCgq0Y8cOjRw5UmPHjtUXX3xR4/Et5XyR6j82UjM6X3zz9Y4ty6BBg4z09HTPemVlpREVFWVkZWXVeHxOTo7hcDiaqDv/IMlYu3btBY95+OGHjd69e1fbdvPNNxspKSmN2Jm56jIuH3zwgSHJ+OGHH5qkJ39x9OhRQ5KRl5dX6zE33XSTMXr06GrbBg8ebNx7772N3Z6p6jI2LfF1xjAM4+KLLzb+53/+p8Z9LfV8OedCY9OczheuyNTT6dOnVVBQoOTkZM+2gIAAJScnKz8/v9bHHT9+XF27dlV0dPTPpuSWIj8/v9o4SlJKSsoFx7El6devnyIjI3Xttddq8+bNZrfT6MrLyyVJYWFhtR7TUs+ZuoyN1LJeZyorK7V69WqdOHGi1q+saannS13GRmo+5wtBpp5KS0tVWVl53p2Fw8PDa53DEB8fr+XLl+uvf/2rXn31VVVVVWno0KH6+uuvm6Jlv1VcXFzjOLpcLlVUVJjUlfkiIyO1ZMkSvf7663r99dcVHR2tESNG6NNPPzW7tUZTVVWladOmadiwYbrssstqPa62c6a5zR/6sbqOTUt5ndm1a5fatm0ru92u3/72t1q7dq169epV47Et7Xypz9g0p/PF77+ioDlISkqqloqHDh2qxMREvfzyy3riiSdM7Az+KD4+XvHx8Z71oUOH6ssvv9SCBQv0xz/+0cTOGk96erp2796tjz/+2OxW/E5dx6alvM7Ex8dr586dKi8v11/+8helpaUpLy+v1j/YLUl9xqY5nS8EmXrq2LGjWrVqpZKSkmrbS0pKFBERUacagYGB6t+/vw4cONAYLVpGREREjeMYGhqqkJAQk7ryT4MGDWq2f+SnTJmiv/3tb/rwww/VpUuXCx5b2zlT1989q6nP2PxUc32dCQoK0qWXXipJGjBggLZv367f//73evnll887tqWdL/UZm5+y8vnCW0v1FBQUpAEDBig3N9ezraqqSrm5uRd8L/LHKisrtWvXLkVGRjZWm5aQlJRUbRwl6b333qvzOLYkO3fubHbni2EYmjJlitauXav3339fcXFxP/uYlnLOeDM2P9VSXmeqqqrkdrtr3NdSzpfaXGhsfsrS54vZs42taPXq1YbdbjdWrFhh7Nmzx7jnnnuM9u3bG8XFxYZhGMbtt99uzJgxw3P8nDlzjA0bNhhffvmlUVBQYEyYMMEIDg42vvjiC7OeQqM4duyY8dlnnxmfffaZIcmYP3++8dlnnxlfffWVYRiGMWPGDOP222/3HP+vf/3LaNOmjfHQQw8ZhYWFRnZ2ttGqVStj/fr1Zj2FRlHfcVmwYIGxbt06Y//+/cauXbuM+++/3wgICDA2btxo1lNoFPfdd5/hcDiMTZs2GUVFRZ7l5MmTnmN++ru0efNmo3Xr1sZ///d/G4WFhcbs2bONwMBAY9euXWY8hUbjzdi0hNeZGTNmGHl5ecbBgweNzz//3JgxY4Zhs9mMd9991zCMlnu+GEb9x6Y5nS8EGS8tWrTIiImJMYKCgoxBgwYZW7du9ey76qqrjLS0NM/6tGnTPMeGh4cbv/rVr4xPP/3UhK4b17mPDf90OTcWaWlpxlVXXXXeY/r162cEBQUZ3bp1M3Jycpq878ZW33F55plnjO7duxvBwcFGWFiYMWLECOP99983p/lGVNOYSKp2Dvz0d8kwDOO1114zevbsaQQFBRm9e/c23n777aZtvAl4MzYt4XVm0qRJRteuXY2goCCjU6dOxjXXXOP5Q20YLfd8MYz6j01zOl9shmEYTXf9BwAAwHeYIwMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAAOrtww8/1JgxYxQVFSWbzaZ169bVu8aGDRs0ZMgQtWvXTp06dVJqaqoOHTpUrxoEGQB+KzY2VgsXLjS7DQA1OHHihPr27avs7GyvHn/w4EGNHTtWI0eO1M6dO7VhwwaVlpZq/Pjx9apDkAHQKMaMGaPrr7++xn0fffSRbDabPv/88ybuCoCvjBo1SvPmzdN//Md/1Ljf7XbrwQcf1CWXXKKLLrpIgwcP1qZNmzz7CwoKVFlZqXnz5ql79+664oor9OCDD2rnzp06c+ZMnfsgyABoFJMnT9Z7772nr7/++rx9OTk5uvLKK9WnTx8TOgPQFKZMmaL8/HytXr1an3/+uW688UZdf/312r9/vyRpwIABCggIUE5OjiorK1VeXq4//vGPSk5OVmBgYJ1/DkEGQKO44YYb1KlTJ61YsaLa9uPHj2vNmjWaPHmyXn/9dfXu3Vt2u12xsbF6/vnna6136NAh2Ww27dy507OtrKxMNpvN87+8TZs2yWazacOGDerfv79CQkI0cuRIHT16VO+8844SExMVGhqqW2+9VSdPnvTUqaqqUlZWluLi4hQSEqK+ffvqL3/5iy+HA2hRnE6ncnJytGbNGv3iF79Q9+7d9eCDD2r48OHKycmRJMXFxendd9/Vo48+Krvdrvbt2+vrr7/Wa6+9Vq+fRZAB0Chat26tO+64QytWrNCPv5t2zZo1qqysVGJiom666SZNmDBBu3bt0uOPP66ZM2eeF3y88fjjj+vFF1/Uli1bdPjwYd10001auHChVq1apbffflvvvvuuFi1a5Dk+KytLK1eu1JIlS/TFF19o+vTpmjhxovLy8hrcC9AS7dq1S5WVlerZs6fatm3rWfLy8vTll19KkoqLi3X33XcrLS1N27dvV15enoKCgvTrX/9a9fk+69aN9SQAYNKkSXruueeUl5enESNGSPr320qpqalaunSprrnmGs2cOVOS1LNnT+3Zs0fPPfec7rzzzgb93Hnz5mnYsGGS/v0WV2Zmpr788kt169ZNkvTrX/9aH3zwgR555BG53W499dRT2rhxo5KSkiRJ3bp108cff6yXX35ZV111VYN6AVqi48ePq1WrViooKFCrVq2q7Wvbtq0kKTs7Ww6HQ88++6xn36uvvqro6Ght27ZNQ4YMqdPP4ooMgEaTkJCgoUOHavny5ZKkAwcO6KOPPtLkyZNVWFjoCRvnDBs2TPv371dlZWWDfu6P596Eh4erTZs2nhBzbtvRo0c9PZ08eVLXXntttf85rly50vM/RwD1079/f1VWVuro0aO69NJLqy0RERGSpJMnTyogoHoMORd6qqqq6vyzuCIDoFFNnjxZU6dOVXZ2tnJyctS9e3evrnKce8H78SXn2j7Z8OOJgjab7byJgzabzfNCefz4cUnS22+/rUsuuaTacXa7vd59Ai3F8ePHdeDAAc/6wYMHtXPnToWFhalnz5667bbbdMcdd+j5559X//799e233yo3N1d9+vTR6NGjNXr0aC1YsEBz587VLbfcomPHjunRRx9V165d1b9//zr3wRUZAI3qpptuUkBAgFatWqWVK1dq0qRJstlsSkxM1ObNm6sdu3nzZvXs2fO8S9GS1KlTJ0lSUVGRZ9uPJ/56q1evXrLb7XI6nef9zzE6OrrB9YHmaseOHerfv78ndGRkZKh///6aNWuWpH+/jXzHHXfogQceUHx8vMaNG6ft27crJiZGkjRy5EitWrVK69atU//+/XX99dfLbrdr/fr1CgkJqXMfXJEB0Kjatm2rm2++WZmZmXK5XJ75Lw888IAGDhyoJ554QjfffLPy8/P14osv6qWXXqqxTkhIiIYMGaKnn35acXFxOnr0qB577LEG99euXTs9+OCDmj59uqqqqjR8+HCVl5dr8+bNCg0NVVpaWoN/BtAcjRgx4oKTcgMDAzVnzhzNmTOn1mMmTJigCRMmNKgPrsgAaHSTJ0/WDz/8oJSUFEVFRUmSrrjiCr322mtavXq1LrvsMs2aNUtz58694ETf5cuX6+zZsxowYICmTZumefPm+aS/J554QjNnzlRWVpYSExN1/fXX6+2331ZcXJxP6gNoPDajPp9xAgAA8CNckQEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJb1/wAv87QoMqNXVgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Observations:**\n", + "* In a large portion of the time considered, 80 to 175 million shares of the stock were traded, with occasional days where the volume rose to more than 200 million." + ], + "metadata": { + "id": "gNzyLLIgfnz6" + }, + "id": "gNzyLLIgfnz6" + }, + { + "cell_type": "markdown", + "id": "9GVt_AAbe29X", + "metadata": { + "id": "9GVt_AAbe29X" + }, + "source": [ + "#### **Histogram and statistical summary on News Length**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0kwZSJvwOUpa", + "metadata": { + "id": "0kwZSJvwOUpa", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "9c9e9158-a8e5-4f51-9321-d54fb2ed6675" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "count 418.000000\n", + "mean 525.662679\n", + "std 303.584080\n", + "min 44.000000\n", + "25% 304.250000\n", + "50% 480.000000\n", + "75% 700.500000\n", + "max 2142.000000\n", + "Name: news_len, dtype: float64" + ], + "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", + "
news_len
count418.000000
mean525.662679
std303.584080
min44.000000
25%304.250000
50%480.000000
75%700.500000
max2142.000000
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 14 + } + ], + "source": [ + "#Calculating the total number of words present in the news content.\n", + "stock['news_len'] = stock['News'].apply(lambda x: len(x.split(' ')))\n", + "stock['news_len'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "NWn03B4Xey5d", + "metadata": { + "id": "NWn03B4Xey5d", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "abfb1de2-8239-4a5d-d9e3-71b30ad328ef" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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1adPH2vjxo3d+nj9iZD5nieffNJyuVxWeHi4NX78eGv79u12j9TrzJw500pOTrbCw8Otc88915o5c6a1e/du7/6WlhbrP/7jP6z+/ftbffv2tf71X//Vqq2t9Vljz5491pQpU6yoqCgrPj7e+s1vfmN1dHR090PpkbZs2WJJOuE2e/Zsy7K++yfY999/v5WYmGhFRERYV199tVVVVeWzxsGDB62bbrrJio6OtpxOp3XrrbdaTU1NPsd89tln1oQJE6yIiAjr3HPPtR5++OHueog9xunO1ZEjR6xJkyZZAwcOtMLCwqzBgwdbt99++wn/48a56h4nO0+SrDVr1niP8dfPvi1btlijRo2ywsPDraFDh/p8DxPx6dcAAMBYXCMDAACMRcgAAABjETIAAMBYhAwAADAWIQMAAIxFyAAAAGMRMgAAwFiEDAAAMBYhA6DXcDgcevXVV+0eA4AfETIAAMBYhAwAADAWIQPgR7vyyit111136Z577lFcXJySkpL04IMPevc3NDTotttu08CBA+V0OjVx4kR99tlnkqTGxkb16dNHH3/8sSSps7NTcXFxuuSSS7xf/z//8z9KSUmRJLW3t2vu3LlKTk5WZGSkBg8erKVLl3Zp7r179+qGG25QbGys4uLiNHXqVO3Zs8e7/5ZbbtG0adP02GOPKTk5WQMGDFB+fr46Ojq69P0A+B8hA8AvnnvuOZ1zzjkqKyvTsmXLtGTJEm3atEmS9LOf/UwHDhzQ22+/rfLyco0ePVpXX321Dh06pJiYGI0aNUrFxcWSpC+++EIOh0OffvqpmpubJUklJSW64oorJElPPPGEXn/9db388suqqqrSCy+8oCFDhpz1vB0dHcrNzVW/fv303nvv6f3331d0dLQmT56s9vZ273FbtmzR119/rS1btui5557T2rVrtXbt2h/1ewXAfwgZAH4xYsQILVq0SGlpafrFL36hsWPHqqioSNu2bdOHH36oDRs2aOzYsUpLS9Njjz2m2NhY/e///q+k757ROR4yxcXFuuaaa5SZmalt27Z5tx0PmZqaGqWlpWnChAkaPHiwJkyYoJtuuums533ppZfU2dmp//7v/9ZFF12kzMxMrVmzRjU1Nd5ZJKl///566qmnlJGRoeuuu07XXnutioqKftxvFgC/IWQA+MWIESN87icnJ+vAgQP67LPP1NzcrAEDBig6Otp7q66u1tdffy1JuuKKK7Rt2zYdO3ZMJSUluvLKK71xs3//fu3evVtXXnmlpO9e7tmxY4fS09N111136c9//nOX5v3ss8+0e/du9evXzztTXFycWltbvXNJ0vDhw9WnT58THheA4BBq9wAAeoawsDCf+w6HQ52dnWpublZycrLPsxzHxcbGSpIuv/xyNTU16ZNPPtHWrVv10EMPKSkpSQ8//LBGjhypQYMGKS0tTZI0evRoVVdX6+2339a7776rG264QTk5Od5nd85Uc3OzxowZoxdeeOGEfQMHDvzBxwUgOBAyAAJq9OjRcrvdCg0NPeW1LLGxsRoxYoSeeuophYWFKSMjQwkJCZo5c6befPNN78tKxzmdTs2cOVMzZ87Uv/3bv2ny5Mk6dOiQ4uLizmqul156SQkJCXI6nT/mIQKwES8tAQionJwcZWdna9q0afrzn/+sPXv26IMPPtDvfvc7779Ukr67TuaFF17wRktcXJwyMzP10ksv+YTM8uXL9eKLL6qyslJ/+ctftGHDBiUlJXmf3TlTs2bNUnx8vKZOnar33ntP1dXVKi4u1l133aVvvvnGL48dQOARMgACyuFw6K233tLll1+uW2+9VRdccIFuvPFG/e1vf1NiYqL3uCuuuELHjh3zXgsjfRc339/Wr18/LVu2TGPHjtW4ceO0Z88evfXWWwoJObsfZ3379tXWrVvlcrk0ffp0ZWZmas6cOWptbeUZGsAgDsuyLLuHAAAA6AqekQEAAMYiZAD0CC+88ILPP+/+59vw4cPtHg9AgPDSEoAeoampSXV1dSfdFxYWpsGDB3fzRAC6AyEDAACMxUtLAADAWIQMAAAwFiEDAACMRcgAAABjETIAAMBYhAwAADAWIQMAAIxFyAAAAGP9P3Zdf69mWePrAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.histplot(data=stock,x='news_len');" + ] + }, + { + "cell_type": "markdown", + "id": "VWLWG2X8mrCw", + "metadata": { + "id": "VWLWG2X8mrCw" + }, + "source": [ + "**Observations:**\n", + "* Most of the news have between 50 - 1000 words, with an average of 525 words\n", + " * The shortest news has 44 words\n", + "\n", + "* This indicates that these are likely to be news summaries rather than the actual news content itself." + ] + }, + { + "cell_type": "markdown", + "id": "hLE0s7OFKilB", + "metadata": { + "id": "hLE0s7OFKilB" + }, + "source": [ + "### **Bivariate Analysis**" + ] + }, + { + "cell_type": "markdown", + "id": "Yn_9wfzxL-r1", + "metadata": { + "id": "Yn_9wfzxL-r1" + }, + "source": [ + "#### **Correlation**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "gOBaxNZeKllB", + "metadata": { + "id": "gOBaxNZeKllB", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c46aaa76-2682-4469-c36e-44097287cc6e" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "cols = ['Open','High','Low','Close','Volume','news_len']\n", + "sns.heatmap(\n", + " stock[cols].corr(), annot=True, vmin=-1, vmax=1, fmt=\".2f\", cmap=\"Spectral\"\n", + ")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "15UHbBu8Cucj", + "metadata": { + "id": "15UHbBu8Cucj" + }, + "source": [ + "**Observations:**\n", + "* The prices are all perfectly correlated.\n", + " * This might be due to the minimum variation between the different prices.\n", + "\n", + "* There is a negative correlation, albeit very low, between volume and prices.\n", + " * This might be due to selling pressure during periods of negative sentiment." + ] + }, + { + "cell_type": "markdown", + "id": "h-Hz7CpdMAi3", + "metadata": { + "id": "h-Hz7CpdMAi3" + }, + "source": [ + "#### **Label vs Price (Open, High, Low, Close)**" + ] + }, + { + "cell_type": "code", + "source": [ + "plt.figure(figsize=(10, 8))\n", + "\n", + "for i, variable in enumerate(['Open', 'High', 'Low', 'Close']):\n", + " plt.subplot(2, 2, i + 1)\n", + " sns.boxplot(data=stock, x=\"Label\", y=variable)\n", + " plt.tight_layout(pad=2)\n", + "\n", + "plt.show()" + ], + "metadata": { + "id": "lCVHNWhgMElU", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b838000a-b88f-43ac-90ee-499cf11fa5ee" + }, + "id": "lCVHNWhgMElU", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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H3+UJCUnJ+upp57SyJEjJUnl5eV64okntHXrVp08eVKJiYmaO3euxo0bZ2DVANBwdLwAAADey9BA3K1bNy1cuFA9evRQbW2tVq1apbvvvlv79u1TcnKyJkyYoMrKSm3atEmdOnXSm2++qfHjx+vzzz9X3759jSwdcOF6Q9/B7woAAAAXMjQQjxkzxu1xdna28vLytGvXLiUnJ2vnzp3Ky8vTgAEDJEnz5s3T4sWLVVRURCCG4bg+1DdxbSgAAADqeM01xDU1NXr77bd16tQppaWlSZIGDhyot956S6NHj1ZERITWrVun6upq3X777fW243A45HA4XI/tdrunS4dJcX2ob+LaUAAAANQxPBAXFxcrLS1N1dXV6tChgzZs2KBevXpJktatW6df//rXioqKUnBwsNq3b68NGzYoISGh3vZycnKUlZXVWuXD5Lg+FAAAAPBdgUYXkJiYqP3792v37t169NFHNXHiRH311VeSpCeffFKVlZX66KOP9Pnnn2vWrFkaP368iouL620vIyNDNpvNtZSWlrbWSwEAAAAA+BDDzxC3bdvWdca3f//+2rNnj1544QX94Q9/0NKlS3Xw4EElJydLklJTU7Vjxw7l5ubqpZdeumR7FotFFoul1eoHAAAAAPgmwwPxv3I6nXI4HDp9+rQkKTDQ/SR2UFCQnE6nEaUBAADAyzGjgG/h9wWjGRqIMzIyNHLkSMXFxenkyZN68803lZ+fry1btigpKUkJCQmaPHmyFi1apKioKG3cuFFbt27V+++/b2TZAAD4pby8POXl5enHH3+UJCUnJ+upp57SyJEjJUnl5eV64okntHXrVp08eVKJiYmaO3euxo0bZ2DVwM+Y/cF3MQMEjGRoID5x4oQmTJigY8eOyWq1KiUlRVu2bNEdd9whSdq8ebPmzJmjMWPGqKqqSgkJCVq1apVGjRplZNkAAPilbt26aeHCherRo4dqa2u1atUq3X333dq3b5+Sk5M1YcIEVVZWatOmTerUqZPefPNNjR8/Xp9//jnTIcJwzP7gu5gBAkYyNBCvWLHistt79Oihd955p5WqAQDA3MaMGeP2ODs7W3l5edq1a5eSk5O1c+dO5eXlacCAAZKkefPmafHixSoqKiIQwysw+wOAxjL8LtMAAMD71NTUaO3atTp16pTS0tIkSQMHDtRbb72liooKOZ1OrV27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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Observations:**\n", + "* The median for all prices is significantly lower for negative sentiment news as compared to both positive and neutral sentiment news, indicating that negative news likely triggers investor sell-offs which drive the stock prices down.\n", + "\n", + "* The boxplot for the open price under neutral sentiment displays a notably higher upper whisker relative to positive sentiment. This suggests that the market's opening often covers a wider range of prices when news is neutral.\n", + " * This variability might be attributed to different interpretations of seemingly neutral news, which leads some investors to react more aggressively and drive the opening price to higher levels." + ], + "metadata": { + "id": "axyzmidFWaNS" + }, + "id": "axyzmidFWaNS" + }, + { + "cell_type": "markdown", + "id": "cY9P2rdBMH-h", + "metadata": { + "id": "cY9P2rdBMH-h" + }, + "source": [ + "#### **Label vs Volume**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "mzCxLFg1LCPk", + "metadata": { + "id": "mzCxLFg1LCPk", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "13536009-bc63-4dff-b422-df723211166c" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHACAYAAABeV0mSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAALp1JREFUeJzt3X9YVHWix/HPgAqaMEWugMqwck3zR6hrKuhds80ynyy8blZedzE1ffzVrWVbN9Nd0iRqXbVfqHELWRPXslLvNcvKVsmkH/5gMSo39xLTKuAaOiMYoDPcP1qmJtAYBM5w5v16nvP4zPkxfKYHm4/nfM/3WGpra2sFAABgEkFGBwAAAGhOlBsAAGAqlBsAAGAqlBsAAGAqlBsAAGAqlBsAAGAqlBsAAGAqlBsAAGAqlBsAAGAqlBsAAGAqAV1ucnNzdeutt6pbt26yWCzaunWrz++xc+dOJSQkKCwsTD/60Y/085//XF988UWzZwUAAI0T0OWmsrJSAwcOVEZGRpOOLyoqUlJSkn72s58pPz9fO3fu1MmTJzVx4sRmTgoAABrLwoMzv2GxWLRlyxZNmDDBs666ulqLFi3Sn//8Z50+fVoDBgzQ448/rtGjR0uSXn75ZU2ePFnV1dUKCvqmJ/7v//6vkpKSVF1drfbt2xvwSQAACGwBfebmh8yfP195eXnatGmTCgoKNGnSJN188836/PPPJUlDhgxRUFCQ1q1bJ5fLJYfDoRdeeEFjxoyh2AAAYBDO3PzL98/c2O12xcXFyW63q1u3bp79xowZo2HDhunRRx+VJO3Zs0d33HGHvvrqK7lcLiUmJmrHjh26/PLLDfgUAACAMzcXcPjwYblcLvXu3VudO3f2LHv27NHf//53SVJpaalmzpypqVOn6qOPPtKePXvUoUMH3X777aIzAgBgjHZGB/BXFRUVCg4O1oEDBxQcHOy1rXPnzpKkjIwMWa1W/eEPf/Bs27Bhg2JiYvTBBx8oISGhVTMDAADKzQUNHjxYLpdLJ06c0E9/+tMG9zl79qxnIHGduiLkdrtbPCMAAKgvoC9LVVRUKD8/X/n5+ZK+ubU7Pz9fdrtdvXv31pQpU5ScnKxXX31VRUVF+vDDD5Wenq7XXntNknTLLbfoo48+0tKlS/X555/r4MGDmjZtmmJjYzV48GADPxkAAIEroAcU7969W9dff3299VOnTlV2drbOnTunZcuWaf369Tp27Ji6dOmihIQELVmyRNdcc40kadOmTfrDH/6gv/3tb+rUqZMSExP1+OOP6+qrr27tjwMAABTg5QYAAJhPQF+WAgAA5kO5AQAAphJwd0u53W4dP35cYWFhslgsRscBAACNUFtbqzNnzqhbt2717lT+voArN8ePH1dMTIzRMQAAQBN8+eWX6tGjx0X3CbhyExYWJumb/zjh4eEGpwEAAI3hdDoVExPj+R6/mIArN3WXosLDwyk3AAC0MY0ZUsKAYgAAYCqUGwAAYCqUGwAAYCqUGwAAYCqUGwAAYCqUGwAAYCqUGwAAYCqUGwAAYCqUGwAAYCoBN0MxAACtxeVyqaCgQOXl5YqIiFB8fLyCg4ONjmV6lBsAAFpAbm6uVq9erdLSUs+6qKgozZ07V6NGjTIwmflxWQoAgGaWm5ur1NRUxcXFKSMjQzt27FBGRobi4uKUmpqq3NxcoyOamqW2trbW6BCtyel0ymq1yuFw8OBMAECzc7lcmjJliuLi4rRs2TIFBX17HsHtdmvx4sUqKirShg0buETlA1++vzlzAwBAMyooKFBpaammTJniVWwkKSgoSFOmTFFJSYkKCgoMSmh+lBsAAJpReXm5JKlnz54Nbq9bX7cfmh/lBgCAZhQRESFJKioqanB73fq6/dD8KDcAADSj+Ph4RUVFKScnR26322ub2+1WTk6OoqOjFR8fb1BC86PcAADQjIKDgzV37lzl5eVp8eLFKiws1NmzZ1VYWKjFixcrLy9Pc+bMYTBxC+JuKQAAWkBD89xER0drzpw5zHPTBL58f1NuAABoIcxQ3Hx8+f5mhmIAAFpIcHCwBg8ebHSMgMOYGwAAYCqUGwAAYCqUGwAAYCqUGwAAYCqGlps1a9YoPj5e4eHhCg8PV2Jiol5//fUL7p+dnS2LxeK1hIaGtmJiAADg7wy9W6pHjx567LHHdNVVV6m2tlZ/+tOflJSUpEOHDql///4NHhMeHq4jR454XlssltaKCwAA2gBDy82tt97q9TotLU1r1qzR+++/f8FyY7FYFBUV1RrxAABAG+Q3Y25cLpc2bdqkyspKJSYmXnC/iooKxcbGKiYmRklJSSosLGzFlAAAwN8ZPonf4cOHlZiYqKqqKnXu3FlbtmxRv379Gty3T58+ysrKUnx8vBwOh/74xz9qxIgRKiwsVI8ePRo8prq6WtXV1Z7XTqezRT4HAADwD4Y/fqGmpkZ2u10Oh0Mvv/yynnvuOe3Zs+eCBee7zp07p759+2ry5Ml65JFHGtzn4Ycf1pIlS+qt5/ELAAC0HW362VJjxozRv/3bv+nZZ59t1P6TJk1Su3bt9Oc//7nB7Q2duYmJiaHcAADQhvhSbvxmzE0dt9vtVUYuxuVy6fDhw4qOjr7gPiEhIZ5bzesWAABgXoaOuVm4cKHGjRsnm82mM2fOaOPGjdq9e7d27twpSUpOTlb37t2Vnp4uSVq6dKkSEhLUq1cvnT59WsuXL1dxcbHuueceIz8GAADwI4aWmxMnTig5OVklJSWyWq2Kj4/Xzp07deONN0qS7Ha7goK+Pbl06tQpzZw5U6Wlpbriiis0ZMgQ7du3r1HjcwAAQGDwuzE3Lc2Xa3YAAMA/tOkxNwAAAJeCcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEyFcgMAAEzF0HKzZs0axcfHKzw8XOHh4UpMTNTrr79+0WM2b96sq6++WqGhobrmmmu0Y8eOVkoLAADaAkPLTY8ePfTYY4/pwIED2r9/v372s58pKSlJhYWFDe6/b98+TZ48WTNmzNChQ4c0YcIETZgwQR9//HErJwcAAP7KUltbW2t0iO+KiIjQ8uXLNWPGjHrb7rzzTlVWVmr79u2edQkJCRo0aJDWrl3bqPd3Op2yWq1yOBwKDw9vttwAAKDl+PL97TdjblwulzZt2qTKykolJiY2uE9eXp7GjBnjtW7s2LHKy8u74PtWV1fL6XR6LQAAwLwMLzeHDx9W586dFRISotmzZ2vLli3q169fg/uWlpYqMjLSa11kZKRKS0sv+P7p6emyWq2eJSYmplnzAwAA/2J4uenTp4/y8/P1wQcfaM6cOZo6dao++eSTZnv/hQsXyuFweJYvv/yy2d4bAAD4n3ZGB+jQoYN69eolSRoyZIg++ugjPfnkk3r22Wfr7RsVFaWysjKvdWVlZYqKirrg+4eEhCgkJKR5QwMAAL9l+Jmb73O73aqurm5wW2Jionbt2uW17q233rrgGB0AABB4DD1zs3DhQo0bN042m01nzpzRxo0btXv3bu3cuVOSlJycrO7duys9PV2SdN999+m6667TihUrdMstt2jTpk3av3+/MjMzjfwYAADAjxhabk6cOKHk5GSVlJTIarUqPj5eO3fu1I033ihJstvtCgr69uTSiBEjtHHjRi1evFgPPfSQrrrqKm3dulUDBgww6iMAAAA/43fz3LQ05rkBAKDtaZPz3AAAADQHyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVQ8tNenq6hg4dqrCwMHXt2lUTJkzQkSNHLnpMdna2LBaL1xIaGtpKiQEAgL8ztNzs2bNH8+bN0/vvv6+33npL586d00033aTKysqLHhceHq6SkhLPUlxc3EqJAQCAv2tn5A9/4403vF5nZ2era9euOnDggEaNGnXB4ywWi6Kiolo6HgAAaIP8asyNw+GQJEVERFx0v4qKCsXGxiomJkZJSUkqLCy84L7V1dVyOp1eCwAAMC+/KTdut1v333+/Ro4cqQEDBlxwvz59+igrK0vbtm3Thg0b5Ha7NWLECP3jH/9ocP/09HRZrVbPEhMT01IfAQAA+AFLbW1trdEhJGnOnDl6/fXXtXfvXvXo0aPRx507d059+/bV5MmT9cgjj9TbXl1drerqas9rp9OpmJgYORwOhYeHN0v2QFReXq6UlBR99dVXuvLKK7Vy5cofPOMGAEBTOZ1OWa3WRn1/Gzrmps78+fO1fft2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gQOVkZFhdJSAw91SuGRffPGFevbsqUOHDmnQoEFGx0GAGj58uIYOHapnnnlG0jePWomJidG9996rBx980OB0CHQWi0VbtmzRhAkTjI4SEDhzA6DNq6mp0YEDBzRmzBjPuqCgII0ZM0Z5eXkGJgNgBMoNgDbv5MmTcrlcioyM9FofGRmp0tJSg1IBMArlBo2Sk5Ojzp07e5Z3333X6EgAADQo4J4Kjqa57bbbNHz4cM/r7t27G5gG8NalSxcFBwerrKzMa31ZWZmioqIMSgXAKJy5QaOEhYWpV69enqVjx45GRwI8OnTooCFDhmjXrl2edW63W7t27VJiYqKByQAYgTM3aLLy8nLZ7XYdP35cknTkyBFJUlRUFP9aRqtLSUnR1KlTde2112rYsGF64oknVFlZqWnTphkdDQGqoqJCR48e9bwuKipSfn6+IiIiZLPZDExmftwKjibLzs5u8IsjNTVVDz/8cOsHQsB75plntHz5cpWWlmrQoEF66qmnvC6nAq1p9+7duv766+utnzp1qrKzs1s/UACh3AAAAFNhzA0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AU8jOztbll19+ye9jsVi0devWS34fAMah3ADwG3fffbcmTJhgdAwAbRzlBgAAmArlBkCbsHLlSl1zzTW67LLLFBMTo7lz56qioqLeflu3btVVV12l0NBQjR07Vl9++aXX9m3btuknP/mJQkNDFRcXpyVLluj8+fOt9TEAtALKDYA2ISgoSE899ZQKCwv1pz/9Se+8844WLFjgtc/Zs2eVlpam9evX67333tPp06d11113eba/++67Sk5O1n333adPPvlEzz77rLKzs5WWltbaHwdAC+Kp4AD8xt13363Tp083akDvyy+/rNmzZ+vkyZOSvhlQPG3aNL3//vsaPny4JOmzzz5T37599cEHH2jYsGEaM2aMbrjhBi1cuNDzPhs2bNCCBQt0/PhxSd8MKN6yZQtjf4A2rJ3RAQCgMd5++22lp6frs88+k9Pp1Pnz51VVVaWzZ8+qU6dOkqR27dpp6NChnmOuvvpqXX755fr00081bNgw/fWvf9V7773ndabG5XLVex8AbRvlBoDf++KLLzR+/HjNmTNHaWlpioiI0N69ezVjxgzV1NQ0upRUVFRoyZIlmjhxYr1toaGhzR0bgEEoNwD83oEDB+R2u7VixQoFBX0zVPCll16qt9/58+e1f/9+DRs2TJJ05MgRnT59Wn379pUk/eQnP9GRI0fUq1ev1gsPoNVRbgD4FYfDofz8fK91Xbp00blz5/T000/r1ltv1Xvvvae1a9fWO7Z9+/a699579dRTT6ldu3aaP3++EhISPGXn97//vcaPHy+bzabbb79dQUFB+utf/6qPP/5Yy5Yta42PB6AVcLcUAL+ye/duDR482Gt54YUXtHLlSj3++OMaMGCAcnJylJ6eXu/YTp066be//a3+8z//UyNHjlTnzp314osveraPHTtW27dv15tvvqmhQ4cqISFBq1atUmxsbGt+RAAtjLulAACAqXDmBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmMr/AyaeGcK8FntgAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.boxplot(\n", + " data=stock, x=\"Label\", y=\"Volume\"\n", + ");" + ] + }, + { + "cell_type": "markdown", + "id": "LFipGtxhOa8g", + "metadata": { + "id": "LFipGtxhOa8g" + }, + "source": [ + "**Observations:**\n", + "* The median trading volume for the stock is approximately the same across all sentiment polarities.\n", + "* The volume distribution for positive sentiment news shows a wider spread compared to other sentiment categories.\n", + " - This wider range might indicate that even positive news leads to diverse interpretations among investors, contributing to varied trading activities and reactions." + ] + }, + { + "cell_type": "markdown", + "id": "9ySUmJUyQ0vi", + "metadata": { + "id": "9ySUmJUyQ0vi" + }, + "source": [ + "#### **Date vs Price (Open, High, Low, Close)**" + ] + }, + { + "cell_type": "markdown", + "id": "tq0NL64DQ0v1", + "metadata": { + "id": "tq0NL64DQ0v1" + }, + "source": [ + "- The data is at the level of news, and we might have more than one news in a day. However, the prices are at daily level\n", + "- So, we can aggregate the data at a daily level by taking the mean of the attributes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bECqvVQtwheA", + "metadata": { + "id": "bECqvVQtwheA", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "89dd8d7b-2323-418b-9e11-544405d0396b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Open High Low Close Volume\n", + "Date \n", + "2019-01-02 38.72 39.71 38.56 39.48 130672400.0\n", + "2019-01-03 35.99 36.43 35.50 35.55 103544800.0\n", + "2019-01-04 36.13 37.14 35.95 37.06 111448000.0\n", + "2019-01-07 37.17 37.21 36.47 36.98 109012000.0\n", + "2019-01-08 37.39 37.96 37.13 37.69 216071600.0" + ], + "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", + "
OpenHighLowCloseVolume
Date
2019-01-0238.7239.7138.5639.48130672400.0
2019-01-0335.9936.4335.5035.55103544800.0
2019-01-0436.1337.1435.9537.06111448000.0
2019-01-0737.1737.2136.4736.98109012000.0
2019-01-0837.3937.9637.1337.69216071600.0
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "stock_daily", + "summary": "{\n \"name\": \"stock_daily\",\n \"rows\": 73,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2019-01-02 00:00:00\",\n \"max\": \"2019-04-29 00:00:00\",\n \"num_unique_values\": 73,\n \"samples\": [\n \"2019-01-08 00:00:00\",\n \"2019-04-15 00:00:00\",\n \"2019-01-30 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.522032992144083,\n \"min\": 35.99,\n \"max\": 51.84,\n \"num_unique_values\": 69,\n \"samples\": [\n 43.22,\n 38.71999999999999,\n 48.830000000000005\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.515838152119043,\n \"min\": 36.43,\n \"max\": 52.12,\n \"num_unique_values\": 68,\n \"samples\": [\n 49.080000000000005,\n 39.08,\n 37.96\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.522815819552585,\n \"min\": 35.5,\n \"max\": 51.76,\n \"num_unique_values\": 66,\n \"samples\": [\n 49.54,\n 50.97,\n 38.56\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.5189565039202,\n \"min\": 35.55,\n \"max\": 51.86999999999999,\n \"num_unique_values\": 68,\n \"samples\": [\n 48.77,\n 39.08,\n 37.68999999999999\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 49858245.96607382,\n \"min\": 45448000.0,\n \"max\": 365248800.0,\n \"num_unique_values\": 73,\n \"samples\": [\n 216071600.0,\n 70146400.0,\n 244439200.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 19 + } + ], + "source": [ + "stock_daily = stock.groupby('Date').agg(\n", + " {\n", + " 'Open': 'mean',\n", + " 'High': 'mean',\n", + " 'Low': 'mean',\n", + " 'Close': 'mean',\n", + " 'Volume': 'mean',\n", + " }\n", + ").reset_index() # Group the 'stocks' DataFrame by the 'Date' column\n", + "\n", + "stock_daily.set_index('Date', inplace=True)\n", + "stock_daily.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7ORSmC3lxrwy", + "metadata": { + "id": "7ORSmC3lxrwy", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "119a6be1-50f4-47be-d5d4-f3cdd077f128" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABMwAAAHACAYAAABeTvS/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd0FdXexvHvaTnpPSEJBEjovQlI71IUqSIoKoodsWD3VQEviF0vguhVFAtiQ1AUUYoggnTpPXRSSe857f3jaCAmICUQyvNZ66ycmdmz5zeD4s1z995jcLlcLkRERERERERERAQAY0UXICIiIiIiIiIicjFRYCYiIiIiIiIiInICBWYiIiIiIiIiIiInUGAmIiIiIiIiIiJyAgVmIiIiIiIiIiIiJ1BgJiIiIiIiIiIicgIFZiIiIiIiIiIiIidQYCYiIiIiIiIiInICc0UXUB6cTifx8fH4+flhMBgquhwREREREREREalALpeL7OxsoqKiMBrPfLzYZRGYxcfHEx0dXdFliIiIiIiIiIjIReTw4cNUqVLljM+7LAIzPz8/wP0Q/P39K7gaERERERERERGpSFlZWURHRxdnRmfqsgjM/p6G6e/vr8BMREREREREREQAznrpLi36LyIiIiIiIiIicgIFZiIiIiIiIiIiIic4o8Bs3LhxGAyGEp+6desCkJaWxujRo6lTpw5eXl5UrVqVBx98kMzMzFP2OWLEiFJ99urV6+zvSERERERERERE5Byc8RpmDRo0YNGiRcc7MLu7iI+PJz4+ntdee4369etz8OBB7r33XuLj4/nmm29O2WevXr346KOPiretVuuZlvWvXC4Xdrsdh8NR7n1fqUwmE2az+aznA4uIiIiIiIiIXIzOODAzm81ERESU2t+wYUNmz55dvF2jRg0mTpzI8OHDsdvtxcFaWaxWa5l9lpeioiISEhLIy8s7b9e4Unl7exMZGYmHh0dFlyIiIiIiIiIiUi7OODDbs2cPUVFReHp60qZNGyZNmkTVqlXLbJuZmYm/v/8pwzKApUuXEh4eTlBQEF27dmXChAmEhISctH1hYSGFhYXF21lZWSdt63Q62b9/PyaTiaioKDw8PDQiqhy4XC6KiopISUlh//791KpVC6NRS+KJiIiIiIiIyKXP4HK5XKfb+KeffiInJ4c6deqQkJDA+PHjOXr0KFu3bsXPz69E22PHjtGiRQuGDx/OxIkTT9rnF198gbe3NzExMcTFxfHMM8/g6+vLH3/8gclkKvOccePGMX78+FL7/w7oTlRQUMD+/fupVq0a3t7ep3urcpry8vI4ePAgMTExeHp6VnQ5IiIiIiIiIiJkZWUREBBQZlZ0Os4oMPunjIwMqlWrxhtvvMHIkSNLFNWjRw+Cg4P5/vvvsVgsp93nvn37qFGjBosWLaJbt25ltilrhFl0dPQpAzMFOueHnq+IiIiIiIiIXGzONTA7pzl0gYGB1K5dm7179xbvy87OplevXvj5+TFnzpwzCssAYmNjCQ0NLdHnP1mtVvz9/Ut8REREREREREREysM5BWY5OTnExcURGRkJuNO7a665Bg8PD77//vuzGnF05MgRUlNTi/sUERERERERERG5kM4oMHvsscdYtmwZBw4cYOXKlQwYMACTycSwYcOKw7Lc3FymT59OVlYWiYmJJCYm4nA4ivuoW7cuc+bMAdyB2+OPP86qVas4cOAAixcvpl+/ftSsWZOePXuW752KiIiIiIiIiIichjMKzI4cOcKwYcOoU6cOQ4YMISQkhFWrVhEWFsaGDRtYvXo1W7ZsoWbNmkRGRhZ/Dh8+XNzHrl27yMzMBMBkMrF582auv/56ateuzciRI2nRogXLly/HarWW751eog4fPswdd9xR/IbPatWq8dBDD5GamlrRpYmIiIiIiIiIXJbMZ9L4iy++OOmxzp07czrvDzixjZeXFz///POZlHBF2bdvH23atKF27drMmjWLmJgYtm3bxuOPP85PP/3EqlWrCA4OrugyRUREREREREQuK+e0htmlyuVykVdkr5DPmbyUdNSoUXh4ePDLL7/QqVMnqlatSu/evVm0aBFHjx7l//7v/wCoXr06//nPfxg2bBg+Pj5UrlyZqVOnlugrIyODO++8k7CwMPz9/enatSubNm0qPj5u3DiaNm3Kp59+SvXq1QkICGDo0KFkZ2eXz0MXERERERERuZzZi2DLN/D5jfDdA+B0VnRFcg7OaITZ5SLf5qD+8xUzsm37Cz3x9vj3x56WlsbPP//MxIkT8fLyKnEsIiKCm2++mS+//JJ33nkHgFdffZVnnnmG8ePH8/PPP/PQQw9Ru3ZtevToAcANN9yAl5cXP/30EwEBAbz33nt069aN3bt3F49Si4uLY+7cufzw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In0jybJmUc+rHiPbjqyRsYmIiIiIiIiI1DQVzBxQ90bdae+XxSenFnLCmsv4+T+zKXkfh2xe9jaB3u7c2jqMPm3C6doiGDcX2JGxg6sbXE2hrZB/bP0HJaaEX079Qmy9WJYMWkKgZ2ANjkpEREREREREpHZQwcwBHck+wom+A3nvZB7jbvwTq3/I4cPvXuFA/SjWPD6FhHZRdG7WAHdXFwCyC7Pp//ldHM8/znd3fkeoTygPt32YJoFNaBLQBEDFMhERERERERGR/1DBzAHlFOVwxCuPWKC1h5X2vlYArooO4ba7OtjbnS4+jbebNwEeAYT5hpFblMu+U/sI9QlldPvRNdR7EREREREREZHaTQUzBxQdEE1qwyZw7CDPXteA/A0byQX8b7rR3uZUwSlGfDuC22JuY2TbkbzS9RWCvYPxcvM6Z1wREREREREREQGXmu6AVJ2vuy9tWpcWx4qOHiV/3brS7d262dusOLyC/Vn7+WzPZ2RZs4jyj1KxTERERERERESkEnSHmYP6zceKN3Dym6+w5Ofj2qABXlddhbXEioeLB3fG3kmRrYhOEZ30fDIRERERERERkSrQHWYOalPJfgAsGZkA+HXtSqEpYszyMUzeMBmbsTG01VBiAmNqsJciIiIiIiIiIo5Hd5g5qIgeffmiaQM6t72dLl5XYYqL2ZC6kY1pG9n2+zbub30/0QHRNd1NERERERERERGHYzHGmJruxKXKzs4mMDCQrKwsAgICaro71a7YVgyAm4sb3/z6DaE+oXQM71jDvRIRERERERERqRmXWivSHWYOylpiZcdfnsGy7idW3n8VRyM9mXLjFPrG9K3promIiIiIiIiIODQ9w8xBnS46jfeni/E6mEbI3CS+P/I9W3/fWtPdEhERERERERFxeLrDzEEFegayvH0QLXdkE/bE40yOjiA+LL6muyUiIiIiIiIi4vBUMHNQFouFP3y0ClteHnH16tV0d0RERERERERE6gwVzByYi4cHLh4eNd0NEREREREREZE6Rc8wExERERERERERKUMFMxERERERERERkTJUMBMRERERERERESlDBTMREREREREREZEyVDATEREREREREREpo0oFs5kzZ9K2bVsCAgIICAigc+fOLFmyxL6/e/fuWCyWcs3mUkIAABW1SURBVJ9Ro0adN6Yxhueff56IiAi8vb3p2bMne/fuvbjRiIiIiIiIiIiIXKIqFcyioqL461//ypYtW9i8eTO33HILd9xxBzt27LC3eeihh0hNTbV/pkyZct6YU6ZMYcaMGbz77rts2LABX19fevfuTUFBwcWNSERERERERERE5BK4VaVxv379yv08efJkZs6cyfr167n66qsB8PHxITw8vFLxjDFMnz6dZ599ljvuuAOAjz76iLCwMD7//HOGDBlSle6JiIiIiIiIiIhcsot+hllJSQlz584lLy+Pzp0727d/8sknBAcH06ZNGyZOnEh+fv45Yxw4cIC0tDR69uxp3xYYGEinTp1Yt27dOY+zWq1kZ2eX+4iIiIiIiIiIiFwOVbrDDGDbtm107tyZgoIC/Pz8WLRoEa1btwbgnnvuITo6msjISLZu3cqECRPYs2cPCxcurDBWWloaAGFhYeW2h4WF2fdVJDExkRdffLGqXRcREREREREREbmgKhfMWrZsSUpKCllZWSxYsIAHHniAVatW0bp1a0aOHGlvFxcXR0REBD169GD//v00a9bssnV64sSJPPHEE/afs7OzadSo0WWLLyIiIiIiIiIizqvKX8n08PCgefPmxMfHk5iYSLt27XjzzTcrbNupUycA9u3bV+H+M886O378eLntx48fP+9z0Dw9Pe1v6jzzERERERERERERuRwu+hlmZ9hsNqxWa4X7UlJSAIiIiKhwf9OmTQkPD2fFihX2bdnZ2WzYsKHcc9FERERERERERESqS5W+kjlx4kT69OlD48aNycnJYc6cOSQlJbF06VL279/PnDlzuO2222jQoAFbt27l8ccf58Ybb6Rt27b2GK1atSIxMZGBAwdisVgYN24cf/nLX2jRogVNmzblueeeIzIykgEDBlzusYqIiIiIiIiIiFxQlQpm6enpDBs2jNTUVAIDA2nbti1Lly7l1ltv5ciRIyxfvpzp06eTl5dHo0aNGDRoEM8++2y5GHv27CErK8v+89NPP01eXh4jR44kMzOTrl278u233+Ll5XV5RigiIiIiIiIiIlIFFmOMqelOXKqsrCyCgoI4cuSInmcmIiIiIiIiIuLkzrwgMjMzk8DAwCofX+W3ZNZGOTk5AHpTpoiIiIiIiIiI2OXk5FxUwaxO3GFms9k4duwY/v7+WCyWmu7OBZ2pcuqOOOej3MuVpjnmvJR756S8Oy/lXq40zTHnpdzLpahN88cYQ05ODpGRkbi4VP2dl3XiDjMXFxeioqJquhtVFhAQUOMTSGqGci9XmuaY81LunZPy7ryUe7nSNMecl3Ivl6K2zJ+LubPsjKqX2EREREREREREROowFcxERERERERERETKUMGsBnh6ejJp0iQ8PT1ruitSzZR7udI0x5yXcu+clHfnpdzLlaY55ryUe7kUdWn+1ImH/ouIiIiIiIiIiFwuusNMRERERERERESkDBXMREREREREREREylDBTEREREREREREpAwVzERERERERERERMqo0wWzxMREOnbsiL+/P6GhoQwYMIA9e/aUa1NQUMCYMWNo0KABfn5+DBo0iOPHj5dr8+ijjxIfH4+npyft27ev8Fzz5s2jffv2+Pj4EB0dzdSpUyvVx/nz59OqVSu8vLyIi4tj8eLF5fYvXLiQXr160aBBAywWCykpKZWKe/LkSe69914CAgIICgriwQcfJDc3t9y4hw8fTlxcHG5ubgwYMKBScR2BM+d98uTJdOnSBR8fH4KCgipsY7FYzvrMnTu3UvHlvxx9nhUVFTFhwgTi4uLw9fUlMjKSYcOGcezYsQvGPXz4MH379sXHx4fQ0FCeeuopiouL7ftTU1O55557iI2NxcXFhXHjxlWqv47CmXN/oT4fPHiwwjVm/fr1lep3beboeQd44YUXaNWqFb6+vtSrV4+ePXuyYcOGC8Z15mvemfPuzNd7dasL86ysUaNGYbFYmD59+gXjan1xzrxrfbk86sIcGj58+Fl5TkhIuGDc6lo76nTBbNWqVYwZM4b169ezbNkyioqK6NWrF3l5efY2jz/+OF999RXz589n1apVHDt2jD/84Q9nxfq///s/7r777grPs2TJEu69915GjRrF9u3beeedd3jjjTd4++23z9u/tWvXMnToUB588EGSk5MZMGAAAwYMYPv27fY2eXl5dO3alVdffbVKY7/33nvZsWMHy5Yt4+uvv2b16tWMHDnSvr+kpARvb28effRRevbsWaXYtZ0z572wsJC77rqL0aNHn7fdrFmzSE1NtX/qUsG0ujj6PMvPz+enn37iueee46effmLhwoXs2bOH/v37nzduSUkJffv2pbCwkLVr1/Lhhx8ye/Zsnn/+eXsbq9VKSEgIzz77LO3atTtvPEfkrLmvTJ/PWL58ebk1Jj4+vlKxazNHzztA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\n" + }, + "metadata": {} + } + ], + "source": [ + "plt.figure(figsize=(15,5))\n", + "sns.lineplot(stock_daily.drop('Volume', axis=1));" + ] + }, + { + "cell_type": "markdown", + "id": "5EZ5L0-UQ0v2", + "metadata": { + "id": "5EZ5L0-UQ0v2" + }, + "source": [ + "**Observations:**\n", + "* The stock price has gradually increased over time from ~\\$40 to ~\\$50 in the period for which the data is available." + ] + }, + { + "cell_type": "markdown", + "id": "KG4y9NK1Ng1-", + "metadata": { + "id": "KG4y9NK1Ng1-" + }, + "source": [ + "#### **Volume vs Close Price**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0WMHYw6w0TM6", + "metadata": { + "id": "0WMHYw6w0TM6", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8517bfee-4d34-40e8-a1cd-567350afe1bb" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABVIAAAHPCAYAAACx9CHwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8k+X6P/BPmjTdg9GWskFmWQJKoZShoKAe3OKPLx4cOI4CBdQD1oEKKEM9aIWjyBHQoxxEUZwHxQFlSZHhAVEUBcrqgNKVNk2aPL8/bp90ZbZJnifp5/165dXs3IGO5JPrum6NJEkSiIiIiIiIiIiIiMihEKUXQERERERERERERKR2DFKJiIiIiIiIiIiIXGCQSkREREREREREROQCg1QiIiIiIiIiIiIiFxikEhEREREREREREbnAIJWIiIiIiIiIiIjIBQapRERERERERERERC4wSCUiIiIiIiIiIiJygUEqERERERERERERkQsMUomIiIiIiIiIiIhcYJBKRERERERERESqkZ2djQkTJqBt27bQaDTYtGmTx/fx5ZdfYujQoYiJiUFCQgJuueUWnDhxwutrpeaFQSoREREREREREamGwWDAgAEDsGLFikbd/vjx47jhhhtw5ZVX4uDBg/jyyy9x/vx53HzzzV5eKTU3GkmSJKUXQUREREREREREVJ9Go8FHH32EG2+80XZeVVUVnnjiCfznP/9BcXEx+vbtiyVLlmD06NEAgA8++ACTJk1CVVUVQkJEDeGnn36KG264AVVVVQgNDVXgmVAwYEUqEREREREREREFjOnTp2P37t1Yv349/ve//+G2227D+PHj8dtvvwEABg8ejJCQEKxZswYWiwUlJSX497//jbFjxzJEpSZhRSoREREREREREalS/YrU3NxcdO3aFbm5uWjbtq3temPHjsWQIUPw/PPPAwC2bduGiRMn4sKFC7BYLBg2bBi++OILxMfHK/AsKFiwIpWIiIiIiIiIiALCoUOHYLFY0KNHD0RHR9sO27Ztw++//w4AyMvLw3333Yc777wTe/fuxbZt26DX63HrrbeC9YTUFDqlF0BEREREREREROSO8vJyaLVa7Nu3D1qtts5l0dHRAIAVK1YgLi4OS5cutV32zjvvoEOHDtizZw+GDh3q1zVT8GCQSkREREREREREAWHgwIGwWCwoKCjA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KxEREYFWrVrh/vvvr1MdunXrVgwZMgRRUVGIj4/H8OHDcfLkSdvlH3/8MQYNGoTw8HB07doVzz77rMtOKHm/pPbt2+P222/H5MmT8cknnwAQFauXXnop/vWvf6FLly4I/zN5rt/aX1VVhblz56JDhw4ICwtDt27d8Oabb9ouP3z4MK655hpER0cjKSkJf/3rX3H+/Hn3/0Edrb3J9+BF5eXl+P333/HXv/4VgKhEHTduHMLCwvDJJ5/Y/vGIiIiIqCGj0Wh7A+bosqioKD+vioiIKDgVF4tDXFzDy0wmM5YsWeTyPiIjIzFz5kynH4SmpaXhlVdeqRMsOpKZmel294lOp8OUKVOwdu1aPPHEE9BoNACA999/HxaLBb1798aVV16JZ555Brfffjt27dqFhx56CK1atcJdd93l1mM48swzz2D58uWIjIzExIkTMXHiRISFhWHdunUoLy/HTTfdhFdffRVz584FIMY4vvPOO3j99dfRvXt3ZGdn44477kBCQgJGjRrVpLW4UlEBREe7d93WrYETJxwH7FlZwJw5QOfOgDuZXnk54M5Lt6KiImzevBnPPfec3dd68fHxdm9nMBgwbtw4DBs2DHv37kVBQQHuvfdeTJ8+HWvXrkV1dTVuvPFG3HffffjPf/4Dk8mEnJwc2/fK9u3bMWXKFGRlZWHEiBH4/fffbSM5n376adcL/1NERESdURbHjh3Dxo0b8eGHHzosBJgyZQp2796NrKwsDBgwAMePH7cFpcXFxbjyyitx7733YtmyZaisrMTcuXMxceJEfPvtt26vyx5Fg9RHH30UEyZMQKdOnXD27Fk8/fTT0Gq1mDRpEkpLS3H11VejoqIC77zzjm3zKABISEhgRQURERFRPeHh4QgPD7cbpsqXERERkXfEx4uDPe5GFtHR0TAYDE4/CK2oqEB0dLRbQaqn7rnnHrzwwgvYtm0bRo8eDUC09d9yyy144403MGbMGDz11FMAgB49euDIkSN44YUXmhykLly4EMOHDwcgRgxkZmbi999/R9euXQEAt956K7777jvMnTsXVVVVeP755/H1119j2LBhAICuXbtix44dWLlypc+DVE+0aSNmosqVqPUVFwOFheJ6XiiOtDl27BgkSUKvXr08ut26detgNBrx9ttv2wLY5cuXY8KECViyZAlCQ0NRUlKCv/zlL7jkkksAAL1797bd/tlnn8Vjjz2GO++8E4D4f1mwYAHmzJnjdpC6b98+rFu3DldeeaXtPJPJhLfffhsJCQl2b/Prr79iw4YN2LJlC8aOHWt7bNny5csxcOBAPP/887bzVq9ejQ4dOuDXX39Fjx493FqbPYoGqadPn8akSZNw4cIFJCQkID09Hd9//z0SEhKwdetW7NmzBwDQrVu3Orc7fvw4OnfurMCKiYiIiNTLYrEgNTXVNhO1ttTUVFgsFn4YTURE5CVms5h7+dZbDS9LTg7FnDmZsFiAw4cd30e/fkB4uNbpB6ExMTF19pFxxtU4xPp69eqFtLQ0rF69GqNHj8axY8ewfft2zJ8/Hw8//DBuuOGGOtcfPnw4Xn755Sa/pqg9ezUpKQmRkZF1grCkpCRble6xY8dQUVGBq666qs59mEwmDBw4sNFrcFdkpKgMdVdoqAjY7YWp8fFA27aAk077Bo/tDk9GOtT2888/Y8CAAXWqWIcPHw6r1YqjR49i5MiRuOuuuzBu3DhcddVVGDt2LCZOnIjk5GQAwI8//oidO3fiueees93eYrHYPgCIdPAEDh06hOjoaNumatdddx2WL19uu7xTp04OQ1QAOHjwILRarcMQ/ccff8R3332HaDulxL///nvgBqnr1693eNno0aMb/Y1ARERE1Bzp9Xqkp6dDkiS/blZBRETUHEVFATNnirAr5M8daLRaIDERSE7WICRED6sVCAsTm0zVp9UCERFAdbXJ5QehvtwscurUqZgxYwZWrFiBNWvW4JJLLmlUlWfIn/8ItbMcs9ls97q1A1+NRtMgANZoNLBarQBgm9f5+eefo127dnWuFxYW5vE6PaXRuNdeLzMYRMA+f37DyzIyRADv7UlL3bt3h0aj8cmGUmvWrEFGRgY2b96M9957D08++SS2bNmCoUOHory8HM8++yxuvvnmBrdz1gnVs2dPfPLJJ9DpdGjbtm2D729Xo6giIiKcXl5eXm6rqq1PDoEbi6+miYiIiIKITqfDJZdcguHDh9taAa1WK0NUIiIiL/vqKxGkvvgi0L490KGDCMgkqSZYlSQRrJ471/D2iYkiYJU/CAXETFR/fxA6ceJEzJw5E+vWrcPbb7+NBx98EBqNBr1798bOnTvrXHfnzp3o0aOH3WpUuYLw3LlztkrR2htPNVZKSgrCwsKQm5urqjZ+R6KigMxMcTwrS1SmxseLEDUzE/DFpKWWLVti3LhxWLFiBTIyMhoEkcXFxXbnpPbu3Rtr166FwWCw3Wbnzp0ICQlBz549bdcbOHAgBg4ciMzMTAwbNgzr1q3D0KFDMWjQIBw9erRBJ7krer3e49vU1q9fP1itVmzbts3W2l/boEGDsHHjRnTu3NnrPz98RU1EREQUZL799lsUFhYiOjoat912G1q3bq30koiIiIJKdTXw8MPAL78AOTlA166ipVsOUGVaLSAXwBUUiOBUrlpNTAT++APo0gXQ63VIS0vDiBEjbEGqxWLxyweh0dHRuP3225GZmYnS0lLb/NNHHnkEl19+ORYsWIDbb78du3fvxvLly/HPf/7T7v1ERERg6NChWLx4Mbp06YKCggI8+eSTTV5fTEwMHn30UcyePRtWqxXp6ekoKSnBzp07ERsba5vPqSbh4WJTqSeeAEpKxIZkZrNvQlTZihUrMHz4cAwZMgTz589H//79UV1djS1btuC1117Dzz//3OA2kydPxtNPP40777wTzzzzDAoLCzFjxgz89a9/RVJSEo4fP4433ngD119/Pdq2bYujR4/it99+w5QpUwAA8+bNw1/+8hd07NgRt956K0JCQvDjjz/i8OHDWLhwoc+ea+fOnXHnnXfinnvusW02dfLkSRQUFGDixImYNm0aVq1ahUmTJmHOnDlo2bIljh07hvXr1+Nf//pXk8ZShLi+ChEREREFEnkuVUFBAcrKypReDhERUdBZtQr46SegZUvgoYecXzckRGwuNGBAzSEpSezuXlYG/PabCGb1ej20Wi2ioqKg1Wp92s5f39SpU3Hx4kWMGzcObdu2BSCq+jZs2ID169ejb9++mDdvHubPn+90o6nVq1ejuroagwcPxqxZs7wWpi1YsABPPfUUFi1ahN69e2P8+PH4/PPP0aVLF6/cvy9ERQF6PZCQIL56u52/vq5du2L//v244oor8Mgjj6Bv37646qqr8M033+C1116ze5vIyEh8+eWXKCoqwuWXX45bb70VY8aMsc0rjYyMxC+//IJbbrkFPXr0wP33349p06bhgQceAACMGzcOn332Gb766itcfvnlGDp0KJYtW4ZOnTr59skCeO2113DrrbfioYceQq9evXDffffBYDAAANq2bYudO3fCYrHg6quvRr9+/TBr1izEx8fbRlA0lkYK8kGk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QHydM8e3waaanr9SMjMzkZ2djRMnTuDQoUPIzMzE1q1bMXnyZADAlClTkCmn3ADmz5+Pr776Cn/88Qf279+PO+64AydPnsS9996r1FMgL2JFKhEREVEQqT0jlRWpRESkBo7mny5YAEgSsHChCAaDfSanN8hBpryHJP9NfK+goABTpkzBuXPnEBcXh/79++PLL7/EVVddBQDIzc2ts+P7xYsXcd999yEvLw8tWrTA4MGDsWvXLrvzVCnwMEglIiIiCiK1W/tZkUpERGrgav7pU0+JQDDYZ3JSYHrzzTedXr5169Y6p5ctW4Zly5b5cEWkJAapREREREFCkqQ6rf2sSCUiIjUoLnY+/7SkRFRYciYnEakdg1QiIiKiIGEymSBJEgARpFqtVgCiIlWSJGj8PViOiIgIorI0Pt5+mBofLwJTGVvXiUjNuNkUERERUZCQq1G1Wi1CQ0NtFalWq9U2O5WIiMjfzGbRom+PPP+UiCgQsCKViIiIKEjU3mgKAHQ6HcLDw2E0GmEwGBAZGank8oiIqJmKigJmzQKsVjETlfNPiShQMUglIiIiChK1N5qSRUdHw2g0ory8HAlynyQREZEfnToFXHMNsHAhkJcHlJZy/ikRBSa29hMREREFidobTcm44RQRESltxQrgp5+ArCwgLEzMP9Xra+ahEhEFCgapREREREGifms/ICpSAbHhFBERkb9VVABvvCGOz5yp7FqIiJqKQSoRERFRkLDX2s+KVCIiUtI77wAXLwJdugB/+YvSqyEiahoGqURERERBQg5Sw8LCbOexIpWIiJQiScArr4jjM2YAWq2y6yEiaioGqURERERBQm7tZ0UqEZF6GQyAyQQUFIivwfw519dfA0eOANHRwD33KL0aIqKmY5BKREREFCSqqqoAcEYqEZFaGY3A0qVAUlLNYelScX4wkqtR77oLiItTdClERF6hU3oBREREROQdzjabYkUqEZGyDAYRms6fX3NecXHN6TlzgmsX+99+Az7/XBzPyFB2LURE3qJoReozzzwDjUZT59CrVy/b5UajEdOmTUOrVq0QHR2NW265Bfn5+QqumIiIiEi9nG02ZTAYIEmSIusiIiIgNBTIyrJ/WVaWuDyYvPqq+HrddUD37squhYjIWxRv7e/Tpw/OnTtnO+zYscN22ezZs/Hpp5/i/fffx7Zt23D27FncfPPN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APHa3NWHu3IllsVigTlQf8ESEbkgSZLdgxyiAsDWrVuxdu3aOre77bbbcPToUVRVVeHw4cO49tprPXrct99+G/369UNERAQiIiLQv39//Pvf//bCM6Km8ChIffnll3HffffZnd8XFxeHBx54AP/4xz+8tjgKfmaz2faiq36QGhISguTkZADA6dOn/b42In+qXW3jjkAJUisrgUcfFcfnzgU6dnTvdiEhYgSAPPNwzhxg3ryGGwRR8DAYxO7r8+fXVJPKm0QtWiQud8VoFCFqRoaYyRsfL86PjxffP5mZgVu1qNRmU4A6glRXIxtKSvy4GPKr2qNvYmNj0bp1a0RERKC6uhrnzp1TeHUNWa1WHDlyBADQu3dv20ZZav97XVvtjaZcVT+FhobaKm05J5WIyHv+8Y9/4MEHH8S1116LDRs2YMOGDRg/fjz+9re/uT1LlXzDoyD1xx9/xHgn2yhfffXV2LdvX5MXRc2H/IIrJCTE7s6r7dq1AwDOSaWgJ1fbuLtrpFwppvY3Zi++COTmAh06AH//u2e31WiA554TIRoALFgAPPwww9Rg5WyTKHcqDq1WMQri3XeB664TgWp+PlBQIL7OmSPm8Aaq5t7aL49scHRZXJwfF0N+ZTAY6oy+0Wg06Pjnp3InT55UeHUNHT9+HAaDAREREejatavt77ra/17X5u58VEC0mcof8DBIJSLynldffRWvvfYalixZguuvvx7XX389li5din/+85/IcvSimfzCoyA1Pz8foU7eyeh0OlsrCJE7arf12/vEW56TyiCVgl0wVqTm5dVsMLV0KdDYUa6PPVbT0vvyy8D99wMq7eakJmhqxeHcuWKTstBQMUIiKUnMQk1IEF8DtRJVpvRmU0rPyjebRaWxPYE8soFck//ORUVF2UbfyO39apyTevjwYQBASkoKtFptQPy9rq+goACAe0EqUHdOKhERece5c+eQlpbW4Py0tDRVdmQ0Jx4Fqe3atbO9OLDnf//7n60Vm8gdjjaakskVqfn5+Zy7REGtsUGqGlpu6zMYAJNJBBtHjgDffQfcfnvT7nP6dLH5VEiICGfvuIPBSTCprgZiYpxXHEZHi/mn9ixfLqqfAfF9csUVvlilspRs7ZckSfEduaOixGiGefOCa2QDuSb/fazdsSFXpObm5to24FCD6upq/PzzzwCAfv36AQiMDz7r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G5KSknrcntA46+NuzJo5e/fu7fL+kpycbNS27Z3QH3sAGDBgAN5//33k5+cjKysLMTExmDFjBmpra/Vul17zzvm4G7NmjqO+5q3JEZ5nnG3btuHYsWMICwszeL/p/cU5H3dj1syh95eeOcpzaNasWV0e56+//rrH7Tr7ewexEoYwDMMwNTU1DADmt99+YxiGYRoaGhipVMp88803/HXOnz/PAGCOHj3a7fdfeeUVJikpqdvPFy5cyPz+97/v8rP169czERERjFar1bue+++/n7nrrru6/Cw1NZV58sknu1332rVrDAAmNze3p7vIMAzDnDt3jgHAHD9+nP/Zjh07GJFIxJSXl3e7/sMPP8zcc889BrcrVM7yuHf22WefMT4+PjovA8Bs27bNpO0Rw4T8POPk5OQwAJji4mK91/n1118ZsVjMVFVV8T/bsGED4+3tzSiVym7XnzhxIvPcc8/p3Z7QOcvjbsyae/t+JVSO8Ng3NjYyAJi9e/fqvQ695rtylsfdmDU722vemoT6PCsrK2PCw8OZgoICJjo6mlm7dm2P95PeX7pylsfdmDXT+0vvCPE51JtYBL13EGtw2ozU2zU2NgIA/P39AQAnT55ER0dHl4zMxMREREVF4ejRo0ZvV6lUws3NrcvP3N3dUVZWhuLiYr2/d/To0W7ZoDNnzjTptvVt19fXF6NHj+Z/Nm3aNIjFYqNKuRyNszzupnjmmWcQEBCAlJQUbNy4EQzDWO22HZUjPM8aGxshEon0toXgtjts2DAEBwd32W5TUxPOnj1r4N44Hmd53E1x9913IygoCBkZGfjxxx/Nsk17JPTHXqVS4b///S98fHx6zNSg13xXzvK4m8JZXvPWJMTnmVarxR/+8Ae88MILGDJkiFHrofeXrpzlcTcFvb+YRojPIQA4ePAggoKCMHDgQDz11FOor6/vcT303kGsgQKpYN/kn3/+eYwbNw5Dhw4FAFRVVUEmk3U7eAwODkZVVZXR2545cya+//577Nu3D1qtFpcuXcLbb78NgO3NoU9VVVWXF39vblvfdoOCgrr8zMXFBf7+/n3ettA40+NurFdffRVbt27Fnj17MG/ePDz99NN47733rHLbjsoRnmft7e3405/+hIULF8Lb29vk7XKXORNnetyN4enpibfffhvffPMNfvnlF2RkZGDu3LkOeeAj5Mf+559/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\n" + }, + "metadata": {} + } + ], + "source": [ + "# Create a figure and axis\n", + "fig, ax1 = plt.subplots(figsize=(15,5))\n", + "\n", + "# Lineplot on primary y-axis\n", + "sns.lineplot(data=stock_daily.reset_index(), x='Date', y='Close', ax=ax1, color='blue', marker='o', label='Close Price')\n", + "\n", + "# Create a secondary y-axis\n", + "ax2 = ax1.twinx()\n", + "\n", + "# Lineplot on secondary y-axis\n", + "sns.lineplot(data=stock_daily.reset_index(), x='Date', y='Volume', ax=ax2, color='gray', marker='o', label='Volume')\n", + "\n", + "ax1.legend(bbox_to_anchor=(1,1));" + ] + }, + { + "cell_type": "markdown", + "id": "fHU5KgCGNOX5", + "metadata": { + "id": "fHU5KgCGNOX5" + }, + "source": [ + "**Observations:**\n", + "- There is no specific pattern here\n", + " - There have been periods where the price decreased with increasing volumes\n", + " - There have been periods where the price increased with increasing volumes" + ] + }, + { + "cell_type": "markdown", + "id": "N8z4-vOBmwqv", + "metadata": { + "id": "N8z4-vOBmwqv" + }, + "source": [ + "## **Data Preprocessing**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2jIN9NycxtUC", + "metadata": { + "id": "2jIN9NycxtUC", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "fee181c0-f896-4c4c-cf2c-378747dfb425" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "count 418\n", + "mean 2019-02-14 12:24:06.889952256\n", + "min 2019-01-02 00:00:00\n", + "25% 2019-01-11 00:00:00\n", + "50% 2019-01-31 00:00:00\n", + "75% 2019-03-21 00:00:00\n", + "max 2019-04-29 00:00:00\n", + "Name: Date, dtype: object" + ], + "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", + "
Date
count418
mean2019-02-14 12:24:06.889952256
min2019-01-02 00:00:00
25%2019-01-11 00:00:00
50%2019-01-31 00:00:00
75%2019-03-21 00:00:00
max2019-04-29 00:00:00
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ], + "source": [ + "stock['Date'].describe()" + ] + }, + { + "cell_type": "markdown", + "id": "0FxlsnepSb5m", + "metadata": { + "id": "0FxlsnepSb5m" + }, + "source": [ + "**Observations:**\n", + "* We see that 75% of the data is till the third week of March 2019.\n", + "* We'll take the data till the end of March 2019 for training, and keep the April 2019 data for test set." + ] + }, + { + "cell_type": "markdown", + "id": "j7KR_HgZRDtk", + "metadata": { + "id": "j7KR_HgZRDtk" + }, + "source": [ + "### Train-test Split" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "yXsgpkpeI8UK", + "metadata": { + "id": "yXsgpkpeI8UK" + }, + "outputs": [], + "source": [ + "X_train = stock[stock['Date'] < '2019-04-01'].reset_index()\n", + "X_test = stock[(stock['Date'] >= '2019-04-01')].reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "__2ON8RuI8Q2", + "metadata": { + "id": "__2ON8RuI8Q2" + }, + "outputs": [], + "source": [ + "y_train = X_train['Label'].copy()\n", + "y_test = X_test['Label'].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "imMx6hH0__IB", + "metadata": { + "id": "imMx6hH0__IB", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3dbdaa6f-f304-47f0-94a8-32e8a5a7309d" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train data shape (347, 10)\n", + "Test data shape (71, 10)\n", + "Train label shape (347,)\n", + "Test label shape (71,)\n" + ] + } + ], + "source": [ + "print(\"Train data shape\",X_train.shape)\n", + "print(\"Test data shape \",X_test.shape)\n", + "\n", + "print(\"Train label shape\",y_train.shape)\n", + "print(\"Test label shape \",y_test.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "uJZqic2Q6YZD", + "metadata": { + "id": "uJZqic2Q6YZD" + }, + "outputs": [], + "source": [ + "# y_train.value_counts(normalize=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Xf9R3BaR6bZw", + "metadata": { + "id": "Xf9R3BaR6bZw" + }, + "outputs": [], + "source": [ + "# y_test.value_counts(normalize=True)" + ] + }, + { + "cell_type": "markdown", + "id": "0rYgR14ORf7b", + "metadata": { + "id": "0rYgR14ORf7b" + }, + "source": [ + "## **Word Embeddings**" + ] + }, + { + "cell_type": "markdown", + "id": "4IUBFAOTbjju", + "metadata": { + "id": "4IUBFAOTbjju" + }, + "source": [ + "### **Generating Text Embeddings using Word2Vec**" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Defining the model**" + ], + "metadata": { + "id": "bzwPsqJvVbNC" + }, + "id": "bzwPsqJvVbNC" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ZD188ZNsboS4", + "metadata": { + "id": "ZD188ZNsboS4" + }, + "outputs": [], + "source": [ + "# Creating a list of all words in our data\n", + "words_list = [item.split(\" \") for item in stock['News'].values]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eGVgM5iTbwHy", + "metadata": { + "id": "eGVgM5iTbwHy" + }, + "outputs": [], + "source": [ + "# Creating an instance of Word2Vec\n", + "vec_size = 300\n", + "model_W2V = Word2Vec(words_list, vector_size = vec_size, min_count = 1, window=5, workers = 6)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "lhy6DjNxbzOd", + "metadata": { + "id": "lhy6DjNxbzOd", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6bf055ce-4c91-4cb3-bd4c-673e2c5de694" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Length of the vocabulary is 14577\n" + ] + } + ], + "source": [ + "# Checking the size of the vocabulary\n", + "print(\"Length of the vocabulary is\", len(list(model_W2V.wv.key_to_index)))" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Encoding the datasets**" + ], + "metadata": { + "id": "ZYCiT-7GVNaH" + }, + "id": "ZYCiT-7GVNaH" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "F_4ldXPzcF7y", + "metadata": { + "id": "F_4ldXPzcF7y" + }, + "outputs": [], + "source": [ + "# Retrieving the words present in the Word2Vec model's vocabulary\n", + "words = list(model_W2V.wv.key_to_index.keys())\n", + "\n", + "# Retrieving word vectors for all the words present in the model's vocabulary\n", + "wvs = model_W2V.wv[words].tolist()\n", + "\n", + "# Creating a dictionary of words and their corresponding vectors\n", + "word_vector_dict = dict(zip(words, wvs))" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Averaging the word vectors to get sentence encodings**" + ], + "metadata": { + "id": "GgismcJz0dZE" + }, + "id": "GgismcJz0dZE" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "vsQ0vF42cH_r", + "metadata": { + "id": "vsQ0vF42cH_r" + }, + "outputs": [], + "source": [ + "def average_vectorizer_Word2Vec(doc):\n", + " # Initializing a feature vector for the sentence\n", + " feature_vector = np.zeros((vec_size,), dtype=\"float64\")\n", + "\n", + " # Creating a list of words in the sentence that are present in the model vocabulary\n", + " words_in_vocab = [word for word in doc.split() if word in words]\n", + "\n", + " # adding the vector representations of the words\n", + " for word in words_in_vocab:\n", + " feature_vector += np.array(word_vector_dict[word])\n", + "\n", + " # Dividing by the number of words to get the average vector\n", + " if len(words_in_vocab) != 0:\n", + " feature_vector /= len(words_in_vocab)\n", + "\n", + " return feature_vector" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Jtxc1yVHcJjV", + "metadata": { + "id": "Jtxc1yVHcJjV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "a0ab0ac1-7d5a-4cb0-d761-af1e7f93a323" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Time taken 8.816098928451538\n" + ] + } + ], + "source": [ + "# creating a dataframe of the vectorized documents\n", + "start = time.time()\n", + "\n", + "X_train_wv = pd.DataFrame(X_train['News'].apply(average_vectorizer_Word2Vec).tolist(), columns=['Feature '+str(i) for i in range(vec_size)])\n", + "X_test_wv = pd.DataFrame(X_test['News'].apply(average_vectorizer_Word2Vec).tolist(), columns=['Feature '+str(i) for i in range(vec_size)])\n", + "\n", + "end = time.time()\n", + "print('Time taken ', (end-start))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8IrY8tZjA4VZ", + "metadata": { + "id": "8IrY8tZjA4VZ", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "ded041ed-e998-442e-edc6-4bf5abe65675" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(347, 300) (71, 300)\n" + ] + } + ], + "source": [ + "print(X_train_wv.shape, X_test_wv.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "a3GUvne0hyPx", + "metadata": { + "id": "a3GUvne0hyPx" + }, + "source": [ + "### **Generating Text Embeddings using Sentence Transformer**" + ] + }, + { + "cell_type": "markdown", + "id": "51ITQezWi9VE", + "metadata": { + "id": "51ITQezWi9VE" + }, + "source": [ + "#### **Defining the model**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3EQ7eQIpYSyz", + "metadata": { + "id": "3EQ7eQIpYSyz" + }, + "outputs": [], + "source": [ + "#Defining the model\n", + "model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')" + ] + }, + { + "cell_type": "markdown", + "id": "Lll4MLfzKfBa", + "metadata": { + "id": "Lll4MLfzKfBa" + }, + "source": [ + "#### **Encoding the dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "q1BaGKThKcX3", + "metadata": { + "id": "q1BaGKThKcX3", + "colab": { + "base_uri": "https://localhost:8080/", + "referenced_widgets": [ + "1230a037e0b9479caa9db62c5f9ecb6a", + "ed6c19298c4747a59992a79d99cdaaa7", + "e010222da3cf4751995a51ffc82560ef", + "9f3e3b616bcf482d9fd91a2b54d8d82a", + "6838e428d6d54a3f80d34638812441e6", + "991c2589b56f444486443a31bef569d5", + "4ed01d32996f47f38fbaba687cee45ae", + "a0ce999dbcfe427ba08202bc989b1c33", + "f598184dc72f443ab0ada8de6cf076ad", + "96e9e320eec74a2e9094935af065b254", + "fb854fb10f3e415c9c4c0ac176fb74b4", + "2fb4071397a049f888159e2cbec3ec99", + "280899c6e305423a8d6f20dd395b4e10", + "f68b5d3640c54560b38a29f32deb33a8", + "115335a31d874aba99efb63fa2830e09", + "7b371d0574e04f98bf87a88f722b8477", + "9095b2b09d4a45928fbc3cf45eb35cbb", + "971a53d397494d76b8b5c4a2abb954f7", + "54dd267783314434a5389477c97974e5", + "5bfd23c3586e4615909878610be8e24b", + "4eda58c3e66e40db98ea40fc40ebb109", + "99ee6edbe0574c778200ae65b87d7e0f" + ] + }, + "outputId": "03ca294e-285e-4fe1-f930-d22aaa9f87dc" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Batches: 0%| | 0/11 [00:00#sk-container-id-1 {\n", + " /* Definition of color scheme common for light and dark mode */\n", + " --sklearn-color-text: #000;\n", + " --sklearn-color-text-muted: #666;\n", + " --sklearn-color-line: gray;\n", + " /* Definition of color scheme for unfitted estimators */\n", + " --sklearn-color-unfitted-level-0: #fff5e6;\n", + " --sklearn-color-unfitted-level-1: #f6e4d2;\n", + " --sklearn-color-unfitted-level-2: #ffe0b3;\n", + " --sklearn-color-unfitted-level-3: chocolate;\n", + " /* Definition of color scheme for fitted estimators */\n", + " --sklearn-color-fitted-level-0: #f0f8ff;\n", + " --sklearn-color-fitted-level-1: #d4ebff;\n", + " --sklearn-color-fitted-level-2: #b3dbfd;\n", + " --sklearn-color-fitted-level-3: cornflowerblue;\n", + "\n", + " /* Specific color for light theme */\n", + " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", + " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", + " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", + " --sklearn-color-icon: #696969;\n", + "\n", + " @media (prefers-color-scheme: dark) {\n", + " /* Redefinition of color scheme for dark theme */\n", + " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", + " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", + " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", + " --sklearn-color-icon: #878787;\n", + " }\n", + "}\n", + "\n", + "#sk-container-id-1 {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "#sk-container-id-1 pre {\n", + " padding: 0;\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-hidden--visually {\n", + " border: 0;\n", + " clip: rect(1px 1px 1px 1px);\n", + " clip: rect(1px, 1px, 1px, 1px);\n", + " height: 1px;\n", + " margin: -1px;\n", + " overflow: hidden;\n", + " padding: 0;\n", + " position: absolute;\n", + " width: 1px;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-dashed-wrapped {\n", + " border: 1px dashed var(--sklearn-color-line);\n", + " margin: 0 0.4em 0.5em 0.4em;\n", + " box-sizing: border-box;\n", + " padding-bottom: 0.4em;\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-container {\n", + " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", + " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", + " so we also need the `!important` here to be able to override the\n", + " default hidden behavior on the sphinx rendered scikit-learn.org.\n", + " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", + " display: inline-block !important;\n", + " position: relative;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-text-repr-fallback {\n", + " display: none;\n", + "}\n", + "\n", + "div.sk-parallel-item,\n", + "div.sk-serial,\n", + "div.sk-item {\n", + " /* draw centered vertical line to link estimators */\n", + " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", + " background-size: 2px 100%;\n", + " background-repeat: no-repeat;\n", + " background-position: center center;\n", + "}\n", + "\n", + "/* Parallel-specific style estimator block */\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item::after {\n", + " content: \"\";\n", + " width: 100%;\n", + " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", + " flex-grow: 1;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel {\n", + " display: flex;\n", + " align-items: stretch;\n", + " justify-content: center;\n", + " background-color: var(--sklearn-color-background);\n", + " position: relative;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item {\n", + " display: flex;\n", + " flex-direction: column;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n", + " align-self: flex-end;\n", + " width: 50%;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n", + " align-self: flex-start;\n", + " width: 50%;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n", + " width: 0;\n", + "}\n", + "\n", + "/* Serial-specific style estimator block */\n", + "\n", + "#sk-container-id-1 div.sk-serial {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " background-color: var(--sklearn-color-background);\n", + " padding-right: 1em;\n", + " padding-left: 1em;\n", + "}\n", + "\n", + "\n", + "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", + "clickable and can be expanded/collapsed.\n", + "- Pipeline and ColumnTransformer use this feature and define the default style\n", + "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", + "*/\n", + "\n", + "/* Pipeline and ColumnTransformer style (default) */\n", + "\n", + "#sk-container-id-1 div.sk-toggleable {\n", + " /* Default theme specific background. It is overwritten whether we have a\n", + " specific estimator or a Pipeline/ColumnTransformer */\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "/* Toggleable label */\n", + "#sk-container-id-1 label.sk-toggleable__label {\n", + " cursor: pointer;\n", + " display: flex;\n", + " width: 100%;\n", + " margin-bottom: 0;\n", + " padding: 0.5em;\n", + " box-sizing: border-box;\n", + " text-align: center;\n", + " align-items: start;\n", + " justify-content: space-between;\n", + " gap: 0.5em;\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label .caption {\n", + " font-size: 0.6rem;\n", + " font-weight: lighter;\n", + " color: var(--sklearn-color-text-muted);\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n", + " /* Arrow on the left of the label */\n", + " content: \"▸\";\n", + " float: left;\n", + " margin-right: 0.25em;\n", + " color: var(--sklearn-color-icon);\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "/* Toggleable content - dropdown */\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content {\n", + " max-height: 0;\n", + " max-width: 0;\n", + " overflow: hidden;\n", + " text-align: left;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content pre {\n", + " margin: 0.2em;\n", + " border-radius: 0.25em;\n", + " color: var(--sklearn-color-text);\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", + " /* Expand drop-down */\n", + " max-height: 200px;\n", + " max-width: 100%;\n", + " overflow: auto;\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", + " content: \"▾\";\n", + "}\n", + "\n", + "/* Pipeline/ColumnTransformer-specific style */\n", + "\n", + "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator-specific style */\n", + "\n", + "/* Colorize estimator box */\n", + "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n", + "#sk-container-id-1 div.sk-label label {\n", + " /* The background is the default theme color */\n", + " color: var(--sklearn-color-text-on-default-background);\n", + "}\n", + "\n", + "/* On hover, darken the color of the background */\n", + "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "/* Label box, darken color on hover, fitted */\n", + "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator label */\n", + "\n", + "#sk-container-id-1 div.sk-label label {\n", + " font-family: monospace;\n", + " font-weight: bold;\n", + " display: inline-block;\n", + " line-height: 1.2em;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label-container {\n", + " text-align: center;\n", + "}\n", + "\n", + "/* Estimator-specific */\n", + "#sk-container-id-1 div.sk-estimator {\n", + " font-family: monospace;\n", + " border: 1px dotted var(--sklearn-color-border-box);\n", + " border-radius: 0.25em;\n", + " box-sizing: border-box;\n", + " margin-bottom: 0.5em;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "/* on hover */\n", + "#sk-container-id-1 div.sk-estimator:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", + "\n", + "/* Common style for \"i\" and \"?\" */\n", + "\n", + ".sk-estimator-doc-link,\n", + "a:link.sk-estimator-doc-link,\n", + "a:visited.sk-estimator-doc-link {\n", + " float: right;\n", + " font-size: smaller;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-background);\n", + " border-radius: 1em;\n", + " height: 1em;\n", + " width: 1em;\n", + " text-decoration: none !important;\n", + " margin-left: 0.5em;\n", + " text-align: center;\n", + " /* unfitted */\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted,\n", + "a:link.sk-estimator-doc-link.fitted,\n", + "a:visited.sk-estimator-doc-link.fitted {\n", + " /* fitted */\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "/* Span, style for the box shown on hovering the info icon */\n", + ".sk-estimator-doc-link span {\n", + " display: none;\n", + " z-index: 9999;\n", + " position: relative;\n", + " font-weight: normal;\n", + " right: .2ex;\n", + " padding: .5ex;\n", + " margin: .5ex;\n", + " width: min-content;\n", + " min-width: 20ex;\n", + " max-width: 50ex;\n", + " color: var(--sklearn-color-text);\n", + " box-shadow: 2pt 2pt 4pt #999;\n", + " /* unfitted */\n", + " background: var(--sklearn-color-unfitted-level-0);\n", + " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted span {\n", + " /* fitted */\n", + " background: var(--sklearn-color-fitted-level-0);\n", + " border: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link:hover span {\n", + " display: block;\n", + "}\n", + "\n", + "/* \"?\"-specific style due to the `` HTML tag */\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link {\n", + " float: right;\n", + " font-size: 1rem;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-background);\n", + " border-radius: 1rem;\n", + " height: 1rem;\n", + " width: 1rem;\n", + " text-decoration: none;\n", + " /* unfitted */\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + "}\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link.fitted {\n", + " /* fitted */\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + "#sk-container-id-1 a.estimator_doc_link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "" + ] + }, + "metadata": {}, + "execution_count": 40 + } + ], + "source": [ + "# Building the model\n", + "rf_word2vec = RandomForestClassifier(n_estimators = 100, max_depth = 3, random_state = 42)\n", + "\n", + "\n", + "# Fitting on train data\n", + "rf_word2vec.fit(X_train_wv, y_train)" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**\n" + ], + "metadata": { + "id": "95O3167WbBnd" + }, + "id": "95O3167WbBnd" + }, + { + "cell_type": "code", + "source": [ + "# Predicting on train data\n", + "y_pred_train = rf_word2vec.predict(X_train_wv)\n", + "\n", + "# Predicting on test data\n", + "y_pred_test = rf_word2vec.predict(X_test_wv)" + ], + "metadata": { + "id": "TtQlY8DlzadF" + }, + "id": "TtQlY8DlzadF", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "ycl7jAX7cZuj" + }, + "id": "ycl7jAX7cZuj" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a_AW25srClm-", + "metadata": { + "id": "a_AW25srClm-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "7c3d30ac-13eb-4053-ff9a-6718a9fbf3c7" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_confusion_matrix(y_train,y_pred_train)" + ] + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test,y_pred_test)" + ], + "metadata": { + "id": "sp4-2sLEDcM3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "6046c9f3-6602-421d-8738-7c000827c3a1" + }, + "id": "sp4-2sLEDcM3", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "E1jLbrZAidAB" + }, + "id": "E1jLbrZAidAB" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8rV_bYhqClm_", + "metadata": { + "id": "8rV_bYhqClm_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "cb772720-3f55-4fe6-97c6-75f6fe7384e6" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.755043 0.755043 0.778891 0.720565\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "rf_train_wv = model_performance_classification_sklearn(y_train,y_pred_train)\n", + "print(\"Training performance:\\n\", rf_train_wv)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "_AA2cSvzClm_", + "metadata": { + "id": "_AA2cSvzClm_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d063296f-2448-4515-f5c1-575671bcbd48" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.746479 0.746479 0.687934 0.680114\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "rf_test_wv = model_performance_classification_sklearn(y_test, y_pred_test)\n", + "print(\"Testing performance:\\n\",rf_test_wv)" + ] + }, + { + "cell_type": "markdown", + "id": "P2OnPdLRF2M9", + "metadata": { + "id": "P2OnPdLRF2M9" + }, + "source": [ + "* The model is slightly overfitting, as there is a little difference between its performance on the training set and the test set." + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Building a Random Forest Model using text embeddings obtained from the Sentence Transformer**" + ], + "metadata": { + "id": "uijWj2Nl2jyK" + }, + "id": "uijWj2Nl2jyK" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "04W4gkoZ2jyK", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + }, + "outputId": "364a1ac8-b4b6-403a-85d4-133186c89aa9" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "RandomForestClassifier(max_depth=3, random_state=42)" + ], + "text/html": [ + "
RandomForestClassifier(max_depth=3, random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ] + }, + "metadata": {}, + "execution_count": 46 + } + ], + "source": [ + "# Building the model\n", + "rf_st = RandomForestClassifier(n_estimators = 100, max_depth = 3, random_state = 42)\n", + "\n", + "\n", + "# Fitting on train data\n", + "rf_st.fit(X_train_st, y_train)" + ], + "id": "04W4gkoZ2jyK" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**" + ], + "metadata": { + "id": "BTWSvJfC2jyL" + }, + "id": "BTWSvJfC2jyL" + }, + { + "cell_type": "code", + "source": [ + "# Predicting on train data\n", + "y_pred_train = rf_st.predict(X_train_st)\n", + "\n", + "# Predicting on test data\n", + "y_pred_test = rf_st.predict(X_test_st)" + ], + "metadata": { + "id": "QPI_ePlJ2jyL" + }, + "execution_count": null, + "outputs": [], + "id": "QPI_ePlJ2jyL" + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "vskhvTGm2jyL" + }, + "id": "vskhvTGm2jyL" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "9P_tYSn92jyM", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "f404f8af-0142-4662-a7eb-8281eb953a13" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_confusion_matrix(y_train,y_pred_train)" + ], + "id": "9P_tYSn92jyM" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test,y_pred_test)" + ], + "metadata": { + "id": "LBzzMFHJDolN", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "d4e2c9a6-e164-45ff-ef5a-5c70c78c1736" + }, + "id": "LBzzMFHJDolN", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "sSvRSDit2jyM" + }, + "id": "sSvRSDit2jyM" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "_kEV9XZD2jyM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "eb0311c5-dc0f-4aec-a189-a8358f68a7de" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.801153 0.801153 0.831835 0.775232\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "rf_train_st = model_performance_classification_sklearn(y_train,y_pred_train)\n", + "print(\"Training performance:\\n\", rf_train_st)" + ], + "id": "_kEV9XZD2jyM" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "QoFxAES32jyM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "74f810ea-08e2-4c99-a9c2-9187bfbd2357" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.71831 0.71831 0.551745 0.624105\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "rf_test_st = model_performance_classification_sklearn(y_test, y_pred_test)\n", + "print(\"Testing performance:\\n\",rf_test_st)" + ], + "id": "QoFxAES32jyM" + }, + { + "cell_type": "markdown", + "id": "ZmPPcdrHE9K2", + "metadata": { + "id": "ZmPPcdrHE9K2" + }, + "source": [ + "* The model is highly overfitting, as there is a significant difference between its performance on the training set and the test set." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DHgj_cCm2pIn" + }, + "source": [ + "### **Building Neural Network Models using different text embeddings**" + ], + "id": "DHgj_cCm2pIn" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Building a Neural Network Model using text embeddings obtained from the Word2Vec**" + ], + "metadata": { + "id": "LpasFYQriueC" + }, + "id": "LpasFYQriueC" + }, + { + "cell_type": "code", + "source": [ + "# Convert the labels\n", + "label_mapping = {1: 2, -1: 0, 0: 1}\n", + "y_train_mapped_wv = [label_mapping[label] for label in y_train]\n", + "y_test_mapped_wv = [label_mapping[label] for label in y_test]\n", + "\n", + "# Convert your features DataFrame to a NumPy array\n", + "X_train_wv_np = np.array(X_train_wv)\n", + "X_test_wv_np = np.array(X_test_wv)\n", + "y_train_mapped_wv = np.array(y_train_mapped_wv)\n", + "y_test_mapped_wv = np.array(y_test_mapped_wv)" + ], + "metadata": { + "id": "xIeKB-P4nYFi" + }, + "id": "xIeKB-P4nYFi", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import gc\n", + "\n", + "# Clear previous sessions\n", + "tf.keras.backend.clear_session()\n", + "gc.collect()\n", + "\n", + "# Model definition\n", + "model = Sequential()\n", + "model.add(Dense(128, activation='relu', input_shape=(X_train_wv_np.shape[1],))) # Use the shape of the Word2Vec embeddings\n", + "model.add(Dropout(0.3))\n", + "model.add(Dense(64, activation='relu'))\n", + "model.add(Dense(3, activation='softmax')) # 3 output classes\n", + "\n", + "# Compile\n", + "model.compile(optimizer='adam',loss='sparse_categorical_crossentropy', metrics =['accuracy'])\n", + "\n", + "# Summary\n", + "model.summary()" + ], + "metadata": { + "id": "pPoM2BhyXvBv", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 257 + }, + "outputId": "46ff0a8e-280d-40a4-df68-ce369e6c8029" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1mModel: \"sequential\"\u001b[0m\n" + ], + "text/html": [ + "
Model: \"sequential\"\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m38,528\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m8,256\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3\u001b[0m) │ \u001b[38;5;34m195\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ], + "text/html": [ + "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
+              "┃ Layer (type)                     Output Shape                  Param # ┃\n",
+              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
+              "│ dense (Dense)                   │ (None, 128)            │        38,528 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dropout (Dropout)               │ (None, 128)            │             0 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_1 (Dense)                 │ (None, 64)             │         8,256 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_2 (Dense)                 │ (None, 3)              │           195 │\n",
+              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m46,979\u001b[0m (183.51 KB)\n" + ], + "text/html": [ + "
 Total params: 46,979 (183.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m46,979\u001b[0m (183.51 KB)\n" + ], + "text/html": [ + "
 Trainable params: 46,979 (183.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ], + "text/html": [ + "
 Non-trainable params: 0 (0.00 B)\n",
+              "
\n" + ] + }, + "metadata": {} + } + ], + "id": "pPoM2BhyXvBv" + }, + { + "cell_type": "markdown", + "source": [ + "**Note:**\n", + "- During training, we use accuracy as a metric to monitor how well the model is learning to distinguish between classes in each batch.\n", + "- Accuracy is fast and reliable during training and gives us a quick view of model progress.\n", + "- It reflects how often the model is predicting the correct label out of all predictions made.\n", + "\n" + ], + "metadata": { + "id": "kIxFfSYLQNlT" + }, + "id": "kIxFfSYLQNlT" + }, + { + "cell_type": "code", + "source": [ + "# Fitting the model\n", + "history = model.fit(\n", + " X_train_wv_np, y_train_mapped_wv,\n", + " epochs=10,\n", + " batch_size=32\n", + ")" + ], + "metadata": { + "id": "bgHeOMfpnobV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6b648ba6-870f-4dfc-a2a7-b38a97c50cef" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - accuracy: 0.5349 - loss: 0.9062\n", + "Epoch 2/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.6190 - loss: 0.7523 \n", + "Epoch 3/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.5989 - loss: 0.7214 \n", + "Epoch 4/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.5874 - loss: 0.7687 \n", + "Epoch 5/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6741 - loss: 0.7038 \n", + "Epoch 6/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6298 - loss: 0.7276 \n", + "Epoch 7/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6655 - loss: 0.7134 \n", + "Epoch 8/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6025 - loss: 0.7213 \n", + "Epoch 9/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.6321 - loss: 0.7183 \n", + "Epoch 10/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6456 - loss: 0.7322 \n" + ] + } + ], + "id": "bgHeOMfpnobV" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**" + ], + "metadata": { + "id": "IX11-Hmx8_E1" + }, + "id": "IX11-Hmx8_E1" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on training data\n", + "y_train_pred_probs = model.predict(X_train_wv_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_train_preds_wv = tf.argmax(y_train_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "ZpEpHWni87cO", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "156eca77-fc90-4df0-87ac-daf08655f0b6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step \n" + ] + } + ], + "id": "ZpEpHWni87cO" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on test data\n", + "y_test_pred_probs = model.predict(X_test_wv_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_test_preds_wv = tf.argmax(y_test_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "hBMMkZBk9Jkz", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d66d1a0d-3bb4-4fa3-d68e-ded8a15c2696" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m3/3\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step\n" + ] + } + ], + "id": "hBMMkZBk9Jkz" + }, + { + "cell_type": "code", + "source": [ + "# Convert back to [-1, 0, 1] to match utility function expectations\n", + "label_mapping = {2: 1, 0: -1, 1: 0}\n", + "y_train_preds_wv = np.array([label_mapping[index] for index in y_train_preds_wv])\n", + "y_test_preds_wv = np.array([label_mapping[index] for index in y_test_preds_wv])" + ], + "metadata": { + "id": "wCPqMh0nwryB" + }, + "id": "wCPqMh0nwryB", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "Jbeyf8dzk3MP" + }, + "id": "Jbeyf8dzk3MP" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_train, y_train_preds_wv)" + ], + "metadata": { + "id": "lIh2fXcwxJ0G", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "711755dc-7004-4b9d-cb30-b06839893f72" + }, + "id": "lIh2fXcwxJ0G", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbwAAAGJCAYAAADxB4bBAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP11JREFUeJzt3XlcVGX7P/DPgDAsssuqsqiJ4IJboZlb4q5JauZWYO65PIJb9LhSOWam5Zb2pEgqaW5UVpaKghaaqbhlPIIo+iioqCAoA8L5/eHX+TUCOjMMMwP35+3rvF5xn/ucc52Z9OK6z33OkUmSJIGIiKiGMzN2AERERIbAhEdEREJgwiMiIiEw4RERkRCY8IiISAhMeEREJAQmPCIiEgITHhERCYEJj4iIhMCER9XKxYsX0aNHDzg4OEAmkyE+Pl6v+798+TJkMhk2btyo1/1WZ126dEGXLl2MHQZRpTHhkdbS09Mxfvx4NGjQAFZWVrC3t0eHDh3w+eef4+HDh1V67LCwMJw9exYfffQRNm3ahLZt21bp8QwpPDwcMpkM9vb25X6OFy9ehEwmg0wmw9KlS7Xe//Xr17FgwQKkpKToIVqi6qeWsQOg6uXHH3/EG2+8AblcjrfffhvNmjVDUVERjhw5gpkzZ+L8+fP48ssvq+TYDx8+RHJyMv79739j8uTJVXIMHx8fPHz4EBYWFlWy/+epVasWHjx4gB9++AFDhgxRW7dlyxZYWVmhsLBQp31fv34dCxcuhK+vL1q2bKnxdr/++qtOxyMyNUx4pLGMjAwMHToUPj4+SEhIgKenp2rdpEmTkJaWhh9//LHKjn/r1i0AgKOjY5UdQyaTwcrKqsr2/zxyuRwdOnTAN998UybhxcXFoW/fvti5c6dBYnnw4AFsbGxgaWlpkOMRVTUOaZLGlixZgvz8fKxfv14t2T3RqFEj/Otf/1L9/OjRI3zwwQdo2LAh5HI5fH198f7770OpVKpt5+vri379+uHIkSN46aWXYGVlhQYNGuDrr79W9VmwYAF8fHwAADNnzoRMJoOvry+Ax0OBT/77nxYsWACZTKbWtm/fPrzyyitwdHRE7dq14e/vj/fff1+1vqJreAkJCejYsSNsbW3h6OiIAQMG4MKFC+UeLy0tDeHh4XB0dISDgwNGjRqFBw8eVPzBPmX48OH4+eefce/ePVXb8ePHcfHiRQwfPrxM/zt37mDGjBlo3rw5ateuDXt7e/Tu3RunT59W9Tl06BBefPFFAMCoUaNUQ6NPzrNLly5o1qwZTpw4gU6dOsHGxkb1uTx9DS8sLAxWVlZlzr9nz55wcnLC9evXNT5XIkNiwiON/fDDD2jQoAFefvlljfqPGTMG8+bNQ+vWrbF8+XJ07twZCoUCQ4cOLdM3LS0NgwcPRvfu3fHpp5/CyckJ4eHhOH/+PABg4MCBWL58OQBg2LBh2LRpEz777DOt4j9//jz69esHpVKJ6OhofPrpp3jttdfw22+/PXO7/fv3o2fPnrh58yYWLFiAyMhI/P777+jQoQMuX75cpv+QIUNw//59KBQKDBkyBBs3bsTChQs1jnPgwIGQyWTYtWuXqi0uLg5NmjRB69aty/S/dOkS4uPj0a9fPyxbtgwzZ87E2bNn0blzZ1XyCQgIQHR0NABg3Lhx2LRpEzZt2oROnTqp9pOTk4PevXujZcuW+Oyzz9C1a9dy4/v888/h6uqKsLAwlJSUAADWrVuHX3/9FStXroSXl5fG50pkUBKRBnJzcyUA0oABAzTqn5KSIgGQxowZo9Y+Y8YMCYCUkJCgavPx8ZEASElJSaq2mzdvSnK5XJo+fbqqLSMjQwIgffLJJ2r7DAsLk3x8fMrEMH/+fOmf/4svX75cAiDdunWrwrifHCMmJkbV1rJlS8nNzU3KyclRtZ0+fVoyMzOT3n777TLHe+edd9T2+frrr0suLi4VHvOf52FraytJkiQNHjxY6tatmyRJklRSUiJ5eHhICxcuLPczKCwslEpKSsqch1wul6Kjo1Vtx48fL3NuT3Tu3FkCIK1du7bcdZ07d1Zr++WXXyQA0ocffihdunRJql27thQaGvrccyQyJlZ4pJG8vDwAgJ2dnUb9f/rpJwBAZGSkWvv06dMBoMy1vsDAQHTs2FH1s6urK/z9/XHp0iWdY37ak2t/3333HUpLSzXa5saNG0hJSUF4eDicnZ1V7S1atED37t1V5/lPEyZMUPu5Y8eOyMnJUX2Gmhg+fDgOHTqErKwsJCQkICsrq9zhTODxdT8zs8d/lUtKSpCTk6Marj158qTGx5TL5Rg1apRGfXv06IHx48cjOjoaAwcOhJWVFdatW6fxsYiMgQmPNGJvbw8AuH//vkb9r1y5AjMzMzRq1Eit3cPDA46Ojrhy5Ypau7e3d5l9ODk54e7duzpGXNabb76JDh06YMyYMXB3d8fQoUPx7bffPjP5PYnT39+/zLqAgADcvn0bBQUFau1Pn4uTkxMAaHUuffr0gZ2dHbZt24YtW7bgxRdfLPNZPlFaWorly5fjhRdegFwuR506deDq6oozZ84gNzdX42PWrVtXqwkqS5cuhbOzM1JSUrBixQq4ublpvC2RMTDhkUbs7e3h5eWFc+fOabXd05NGKmJubl5uuyRJOh/jyfWlJ6ytrZGUlIT9+/fjrbfewpkzZ/Dmm2+ie/fuZfpWRmXO5Qm5XI6BAwciNjYWu3fvrrC6A4BFixYhMjISnTp1wubNm/HLL79g3759aNq0qcaVLPD489HGqVOncPPmTQDA2bNntdqWyBiY8Ehj/fr1Q3p6OpKTk5/b18fHB6Wlpbh48aJae3Z2Nu7du6eacakPTk5OajMan3i6igQAMzMzdOvWDcuWLcNff/2Fjz76CAkJCTh48GC5+34SZ2pqapl1f//9N+rUqQNbW9vKnUAFhg8fjlOnTuH+/fvlTvR5YseOHejatSvWr1+PoUOHokePHggJCSnzmWj6y4cmCgoKMGrUKAQGBmLcuHFYsmQJjh8/rrf9E1UFJjzS2KxZs2Bra4sxY8YgOzu7zPr09HR8/vnnAB4PyQEoM5Ny2bJlAIC+ffvqLa6GDRsiNzcXZ86cUbXduHEDu3fvVut3586dMts+uQH76VslnvD09ETLli0RGxurlkDOnTuHX3/9VXWeVaFr16744IMPsGrVKnh4eFTYz9zcvEz1uH37dvzvf/9Ta3uSmMv75UBbs2fPRmZmJmJjY7Fs2TL4+voiLCysws+RyBTwxnPSWMOGDREXF4c333wTAQEBak9a+f3337F9+3aEh4cDAIKCghAWFoYvv/wS9+7dQ+fOnfHHH38gNjYWoaGhFU5518XQoUMxe/ZsvP7665g6dSoePHiAL774Ao0bN1abtBEdHY2kpCT07dsXPj4+uHnzJtasWYN69erhlVdeqXD/n3zyCXr37o327dtj9OjRePjwIVauXAkHBwcsWLBAb+fxNDMzM8yZM+e5/fr164fo6GiMGjUKL7/8Ms6ePYstW7agQYMGav0aNmwIR0dHrF27FnZ2drC1tUVwcDD8/Py0iishIQFr1qzB/PnzVbdJxMTEoEuXLpg7dy6WLFmi1f6IDMbIs0SpGvrvf/8rjR07VvL19ZUsLS0lOzs7qUOHDtLKlSulwsJCVb/i4mJp4cKFkp+fn2RhYSHVr19fioqKUusjSY9vS+jbt2+Z4zw9Hb6i2xIkSZJ+/fVXqVmzZpKlpaXk7+8vbd68ucxtCQcOHJAGDBggeXl5SZaWlpKXl5c0bNgw6b///W+ZYzw9dX///v1Shw4dJGtra8ne3l7q37+/9Ndff6n1eXK8p297iImJkQBIGRkZFX6mkqR+W0JFKrotYfr06ZKnp6dkbW0tdejQQUpOTi73doLvvvtOCgwMlGrVqqV2np07d5aaNm1a7jH/uZ+8vDzJx8dHat26tVRcXKzWLyIiQjIzM5OSk5OfeQ5ExiKTJC2upBMREVVTvIZHRERCYMIjIiIhMOEREZEQmPCIiEgITHhERCQEJjwiIhICEx4REQmhRj5p5X6h5g/MJcOzqMXfs0zVmK2nn9+JjGLzyCC97s+61WSdt314apUeIzGcGpnwiIjoOWTi/eLJhEdEJCI9vj2jumDCIyISkYAVnnhnTEREQmKFR0QkIg5pEhGREAQc0mTCIyISESs8IiISAis8IiISgoAVnngpnoiIhMQKj4hIRBzSJCIiIQg4pMmER0QkIlZ4REQkBFZ4REQkBAErPPHOmIiIhMSER0QkIpmZ7osWFAoFXnzxRdjZ2cHNzQ2hoaFITU1V61NYWIhJkybBxcUFtWvXxqBBg5Cdna3WJzMzE3379oWNjQ3c3Nwwc+ZMPHr0SKtYmPCIiERkJtN90UJiYiImTZqEo0ePYt++fSguLkaPHj1QUFCg6hMREYEffvgB27dvR2JiIq5fv46BAweq1peUlKBv374oKirC77//jtjYWGzcuBHz5s3TKhaZJEmSVltUA/cLS40dAj2DRS3+nmWqxmw9bewQqAKbRwbpdX/Wr36k87YPE/6t87a3bt2Cm5sbEhMT0alTJ+Tm5sLV1RVxcXEYPHgwAODvv/9GQEAAkpOT0a5dO/z888/o168frl+/Dnd3dwDA2rVrMXv2bNy6dQuWlpYaHZv/8hARiUgm03lRKpXIy8tTW5RKpUaHzc3NBQA4OzsDAE6cOIHi4mKEhISo+jRp0gTe3t5ITk4GACQnJ6N58+aqZAcAPXv2RF5eHs6fP6/xKTPhERGJqBLX8BQKBRwcHNQWhULx3EOWlpZi2rRp6NChA5o1awYAyMrKgqWlJRwdHdX6uru7IysrS9Xnn8nuyfon6zTF2xKIiEgrUVFRiIyMVGuTy+XP3W7SpEk4d+4cjhw5UlWhPRMTHhGRiCpx47lcLtcowf3T5MmTsWfPHiQlJaFevXqqdg8PDxQVFeHevXtqVV52djY8PDxUff744w+1/T2ZxfmkjyY4pElEJCID3ZYgSRImT56M3bt3IyEhAX5+fmrr27RpAwsLCxw4cEDVlpqaiszMTLRv3x4A0L59e5w9exY3b95U9dm3bx/s7e0RGBiocSys8IiIRGSgR4tNmjQJcXFx+O6772BnZ6e65ubg4ABra2s4ODhg9OjRiIyMhLOzM+zt7TFlyhS0b98e7dq1AwD06NEDgYGBeOutt7BkyRJkZWVhzpw5mDRpklaVJhMeEZGIDPRosS+++AIA0KVLF7X2mJgYhIeHAwCWL18OMzMzDBo0CEqlEj179sSaNWtUfc3NzbFnzx5MnDgR7du3h62tLcLCwhAdHa1VLLwPjwyO9+GZLt6HZ7r0fh9e7+U6b/vw5wg9RmI4/JeHiIiEwCFNIiIRCfi2BCY8IiIR8X14REQkBFZ4REQkBCY8IiISgoBDmuKleCIiEhIrPCIiEXFIk4iIhCDgkCYTHhGRiFjhERGREFjhERGRCGQCJjzxaloiIhISKzwiIgGJWOEx4RERiUi8fMeER0QkIlZ4REQkBCY8IiISAhMemZSb2dlY+dmn+P23JBQWFqJefW/Mj16EwKbNjB0aAdgatwWxMetx+/YtNPZvgvfen4vmLVoYO6wazd/NFn0DXeHnbAMnGwssP5SBE9fyVOvb1ndAtxdc4OtiDTt5Lbz/Yyoy7xaq7cPBqhaGtfZEM087WFmYIStPie/O3sTxq7mGPh0yMN6WYKLy8nIxOnw4atWqhc9Xf4lvd+1BxPTZsLe3N3ZoBGDvzz9h6RIFxr87CVu374a/fxNMHD8aOTk5xg6tRpPXMkPm3ULEHr9W4frUWwXYdupGhfuY8LI3PO2tsOxQBqL2/BfHM3MxpaMPfJysqypskySTyXReqiuTTXjZ2dmIjo42dhhGE7vhK7i7e2L+B4vQrHkL1K1XD+1e7oB69b2NHRoB2BQbg4GDhyD09UFo2KgR5sxfCCsrK8Tv2mns0Gq0M9fvY8fpLPx5Na/c9b9l3EX82Wycu3G/wn284GqDX1Nv41LOQ9zKL8J3526ioLgEfi5iJTzIKrFUUyab8LKysrBw4UJjh2E0SYkHEdC0KWbPmIbuXTpg+JCB2L3zW2OHRQCKi4pw4a/zaNf+ZVWbmZkZ2rV7GWdOnzJiZKSJi7ceoJ2PI2wtzSED0M7HERbmMlzIyjd2aAYlYoVntGt4Z86ceeb61NRUjfajVCqhVCrV2ookC8jlcp1jMwX/u3YVO7/dihFvhWPU6HH46/w5LP14ESwsLNHvtVBjhye0u/fuoqSkBC4uLmrtLi4uyMi4ZKSoSFMrD1/G5I6+WDekGR6VSih6VIrPEi8jO7/I2KEZVHVOXLoyWsJr2bIlZDIZJEkqs+5JuyZfiEKhKFMJvvfveXh/zny9xWoMpaUSAps2xaSpEQCAJgGBSE+7iJ3btzLhEVXC4CBP2FiaQbE/HfcLH6FNfQdM6eiLD35Nw7V7hc/fQQ3BhGdAzs7OWLJkCbp161bu+vPnz6N///7P3U9UVBQiIyPV2ookC73EaEx1XOvAr0FDtTa/Bg2QsP9XI0VETzg5OsHc3LzMBJWcnBzUqVPHSFGRJtxqW6JHkzqY/cPf+F/u45GhzHuF8HezRffGLoj5439GjpCqktGu4bVp0wbXr1+Hj49PuUvdunXLrf6eJpfLYW9vr7ZU9+FMAAhq2RpXLl9Wa7ty5TI8vbyMExCpWFhaIiCwKY4dTVa1lZaW4tixZLQIamXEyOh5LGs9/ifv6X9aSiXxKh5DXcNLSkpC//794eXlBZlMhvj4eI3i+OSTT1R9fH19y6xfvHix1udstIQ3YcIE+Pr6Vrje29sbMTExhgvIxAwfGYazZ09jw1frcDXzCvb+tAe7d2zHG28ON3ZoBOCtsFHYteNbfB+/G5fS0/Fh9AI8fPgQoa8PNHZoNZq8lhm8nazg7WQFAHCtbQlvJyu42Dwe1bG1NIe3kxXqOjxe72n/uK+D1ePBrBu5hcjKU+Kd4Hpo4GINt9qW6B3gimaetXFCtPvwDDRLs6CgAEFBQVi9enW562/cuKG2bNiwATKZDIMGDVLrFx0drdZvypQp2gUCQCZpUkYZyG+//Ya2bdtWukK7X1iqp4iM63DiQaxasRxXM6/Aq249jHgrDK8PGmLssCrNopbJTg7WyjdbNqtuPPdvEoDZ789BixZBxg6rUsZsPW3sEJ4pwN0W/+7eqEx7UvodfJl8FR0bOGH8y2Vv3dl1Jgu7zmQDANztLPFmK0/4u9pCbmGG7PtF+OmvW/gt426Vx18Zm0fq9/+tOuFbdd729sahOm0nk8mwe/duhIaGVtgnNDQU9+/fx4EDB1Rtvr6+mDZtGqZNm6bTcVXHN6WEZ29vj5SUFDRo0KBS+6kpCa+mqikJryYy9YQnMn0nPNdR23Te9tra0DKz4+Vy+XOLleclvOzsbNSrVw+xsbEYPvz/j2b5+vqisLAQxcXF8Pb2xvDhwxEREYFatbSbhmJS//KYUO4lIqrRKnMNT6FQwMHBQW1RKBSVjik2NhZ2dnYYOFD90sDUqVOxdetWHDx4EOPHj8eiRYswa9YsrffPZ2kSEZFWypsdr4/Jghs2bMCIESNgZWWl1v7PY7Vo0QKWlpYYP348FAqFVsc1qYS3bt06uLu7GzsMIqKarxKTUjUZvtTW4cOHkZqaim3bnj/UGhwcjEePHuHy5cvw9/fX+BgmlfD+OWZLRERVx9Ruw1i/fj3atGmDoKDnX6tMSUmBmZkZ3NzctDqGSSU8IiIyDEMlvPz8fKSlpal+zsjIQEpKCpydneHt/XhGbV5eHrZv345PP/20zPbJyck4duwYunbtCjs7OyQnJyMiIgIjR46Ek5OTVrEw4RERCchQCe/PP/9E165dVT8/uR4XFhaGjRs3AgC2bt0KSZIwbNiwMtvL5XJs3boVCxYsgFKphJ+fHyIiIspcQ9SESd2WoC+8LcG08bYE08XbEkyXvm9L8Bq/S+dtr6+rng9Y4L88REQkBA5pEhGJyLTmrBgEEx4RkYBMbZamITDhEREJiAmPiIiEIGLC46QVIiISAis8IiIRiVfgMeEREYlIxCFNJjwiIgEx4RERkRCY8IiISAgiJjzO0iQiIiGwwiMiEpF4BR4THhGRiEQc0mTCIyISEBMeEREJQcB8x4RHRCQiESs8ztIkIiIhsMIjIhKQgAUeEx4RkYhEHNJkwiMiEpCA+Y4Jj4hIRGZm4mU8JjwiIgGJWOFxliYREQmBFR4RkYBEnLTCCo+ISEAyme6LNpKSktC/f394eXlBJpMhPj5ebX14eDhkMpna0qtXL7U+d+7cwYgRI2Bvbw9HR0eMHj0a+fn5Wp8zEx4RkYCeTjLaLNooKChAUFAQVq9eXWGfXr164caNG6rlm2++UVs/YsQInD9/Hvv27cOePXuQlJSEcePGaX3OHNIkIhKQoYY0e/fujd69ez+zj1wuh4eHR7nrLly4gL179+L48eNo27YtAGDlypXo06cPli5dCi8vL41jYYVHRCSgygxpKpVK5OXlqS1KpVLnWA4dOgQ3Nzf4+/tj4sSJyMnJUa1LTk6Go6OjKtkBQEhICMzMzHDs2DGtjsOER0REWlEoFHBwcFBbFAqFTvvq1asXvv76axw4cAAff/wxEhMT0bt3b5SUlAAAsrKy4ObmprZNrVq14OzsjKysLK2OxSFNIiIBVWZIM+q9KERGRqq1yeVynfY1dOhQ1X83b94cLVq0QMOGDXHo0CF069ZN5xjLwwqPiEhAlRnSlMvlsLe3V1t0TXhPa9CgAerUqYO0tDQAgIeHB27evKnW59GjR7hz506F1/0qwoRHRCQgQ83S1Na1a9eQk5MDT09PAED79u1x7949nDhxQtUnISEBpaWlCA4O1mrfHNIkIhKQoe47z8/PV1VrAJCRkYGUlBQ4OzvD2dkZCxcuxKBBg+Dh4YH09HTMmjULjRo1Qs+ePQEAAQEB6NWrF8aOHYu1a9eiuLgYkydPxtChQ7WaoQmwwiMiEpKhKrw///wTrVq1QqtWrQAAkZGRaNWqFebNmwdzc3OcOXMGr732Gho3bozRo0ejTZs2OHz4sNoQ6ZYtW9CkSRN069YNffr0wSuvvIIvv/xS63NmhUdERFWmS5cukCSpwvW//PLLc/fh7OyMuLi4SsfChEdEJCABH6XJhEdEJCIRHx5dIxOeRS1emiTSxReDmxs7BDIQAfNdzUx4RET0bKzwiIhICALmO96WQEREYmCFR0QkIA5pEhGREATMd0x4REQiYoVHRERCYMIjIiIhCJjvOEuTiIjEwAqPiEhAHNIkIiIhCJjvmPCIiETECo+IiIQgYL5jwiMiEpGZgBmPszSJiEgIrPCIiAQkYIHHhEdEJCJOWiEiIiGYiZfvmPCIiETECo+IiIQgYL7jLE0iIhIDKzwiIgHJIF6JxwqPiEhAZjLdF20kJSWhf//+8PLygkwmQ3x8vGpdcXExZs+ejebNm8PW1hZeXl54++23cf36dbV9+Pr6QiaTqS2LFy/W/py13oKIiKq9pxOINos2CgoKEBQUhNWrV5dZ9+DBA5w8eRJz587FyZMnsWvXLqSmpuK1114r0zc6Oho3btxQLVOmTNH6nDmkSUQkIENNWunduzd69+5d7joHBwfs27dPrW3VqlV46aWXkJmZCW9vb1W7nZ0dPDw8KhULKzwiIgGZyWQ6L0qlEnl5eWqLUqnUS1y5ubmQyWRwdHRUa1+8eDFcXFzQqlUrfPLJJ3j06JH256yXCImISBgKhQIODg5qi0KhqPR+CwsLMXv2bAwbNgz29vaq9qlTp2Lr1q04ePAgxo8fj0WLFmHWrFla718mSZJU6ShNTKH2iZ+IABQ/KjV2CFQBOyv91ieDNpzQedu4Ec3KVHRyuRxyufyZ28lkMuzevRuhoaFl1hUXF2PQoEG4du0aDh06pJbwnrZhwwaMHz8e+fn5zz3mP/EaHhGRgCrzpBVNkps2iouLMWTIEFy5cgUJCQnPTHYAEBwcjEePHuHy5cvw9/fX+DhMeEREAjKVJ608SXYXL17EwYMH4eLi8txtUlJSYGZmBjc3N62OxYRHRCQgQ70ANj8/H2lpaaqfMzIykJKSAmdnZ3h6emLw4ME4efIk9uzZg5KSEmRlZQEAnJ2dYWlpieTkZBw7dgxdu3aFnZ0dkpOTERERgZEjR8LJyUmrWHgNj4hUeA3PdOn7Gt7Q2FM6b7s1rJXGfQ8dOoSuXbuWaQ8LC8OCBQvg5+dX7nYHDx5Ely5dcPLkSbz77rv4+++/oVQq4efnh7feeguRkZFaD6tqlPC+//57jXdY3g2DhsaER6QbJjzTVV0TninRaEizvBk15ZHJZCgpKalMPEREZAB8PVAFSkv5Wx8RUU3CF8ASEZEQWOFpqKCgAImJicjMzERRUZHauqlTp+olMCIiqjoC5jvtE96pU6fQp08fPHjwAAUFBXB2dsbt27dhY2MDNzc3JjwiompAxApP62k/ERER6N+/P+7evQtra2scPXoUV65cQZs2bbB06dKqiJGIiKjStE54KSkpmD59OszMzGBubg6lUon69etjyZIleP/996siRiIi0jNDvQDWlGid8CwsLGBm9ngzNzc3ZGZmAnj8XqOrV6/qNzoiIqoShnoBrCnR+hpeq1atcPz4cbzwwgvo3Lkz5s2bh9u3b2PTpk1o1qxZVcRIRER6Vn3Tlu60rvAWLVoET09PAMBHH30EJycnTJw4Ebdu3cKXX36p9wCJiEj/KvMC2OpK6wqvbdu2qv92c3PD3r179RoQERFRVeCN50REAqrGhZrOtE54fn5+z7xoeenSpUoFRP/f1rgtiI1Zj9u3b6GxfxO89/5cNG/Rwthh0f/h92OabmZnY+Vnn+L335JQWFiIevW9MT96EQKbco7BP1XnySe60jrhTZs2Te3n4uJinDp1Cnv37sXMmTP1FZfw9v78E5YuUWDO/IVo3jwIWzbFYuL40fhuz16NXpBIVYvfj2nKy8vF6PDhaNs2GJ+v/hJOTs64mnnluW/QFpGA+U5/78NbvXo1/vzzT8TExOhjd5VSE14PNGLoG2jarDnenzMPwOMHePfo1hnDhr+F0WPHGTk6qqnfT3V/PdDKzz7F6ZRT+GrjZmOHonf6fj3QxJ1/6bztF4MC9RiJ4ejtE+zduzd27typr90JrbioCBf+Oo927V9WtZmZmaFdu5dx5rTu77Ai/eD3Y7qSEg8ioGlTzJ4xDd27dMDwIQOxe+e3xg7LJMlkui/Vld4mrezYsQPOzs5abXP79m1s2LABycnJqte6e3h44OWXX0Z4eDhcXV31FV61cvfeXZSUlJQZGnNxcUFGBq+RGhu/H9P1v2tXsfPbrRjxVjhGjR6Hv86fw9KPF8HCwhL9Xgs1dnhkZDrdeP7Pi52SJCErKwu3bt3CmjVrNN7P8ePH0bNnT9jY2CAkJASNGzcGAGRnZ2PFihVYvHgxfvnlF7XbIMqjVCqhVCrV2iRzudavfiei6q+0VEJg06aYNDUCANAkIBDpaRexc/tWJryncNKKBgYMGKD2QZmZmcHV1RVdunRBkyZNNN7PlClT8MYbb2Dt2rVlPnhJkjBhwgRMmTIFycnJz9yPQqHAwoUL1dr+PXc+5sxboHEspsbJ0Qnm5ubIyclRa8/JyUGdOnWMFBU9we/HdNVxrQO/Bg3V2vwaNEDC/l+NFJHp0u8VwepB64S3YMECvRz49OnT2LhxY7m/ZchkMkRERKBVq1bP3U9UVBQiIyPV2iTz6l3dWVhaIiCwKY4dTcar3UIAPJ4UcexYMoYOG2nk6Ijfj+kKatkaVy5fVmu7cuUyPL28jBOQCROxwtM6yZubm+PmzZtl2nNycmBubq7xfjw8PPDHH39UuP6PP/6Au7v7c/cjl8thb2+vttSE4cy3wkZh145v8X38blxKT8eH0Qvw8OFDhL4+0NihEfj9mKrhI8Nw9uxpbPhqHa5mXsHen/Zg947teOPN4cYOzeSI+LYErSu8iu5iUCqVsLS01Hg/M2bMwLhx43DixAl069ZNldyys7Nx4MAB/Oc//xH6/Xq9evfB3Tt3sGbVCty+fQv+TQKwZt1XcOGQmUng92OamjZrjqXLVmDViuX4at0aeNWth+mz3kPvvv2NHZrJqc6JS1ca34e3YsUKAI9fAPvBBx+gdu3aqnUlJSVISkrC5cuXceqU5tOyt23bhuXLl+PEiRMoKSkB8LiCbNOmDSIjIzFkyBBtzkWlJtyHR2QM1f0+vJpM3/fhRX7/t87bLntN8/kapkTjhOfn5wcAuHLlCurVq6c2fGlpaQlfX19ER0cjODhY6yCKi4tx+/ZtAECdOnVgYWGh9T7+iQmPSDdMeKZL3wlv+g+pOm/7aX9/PUZiOBoPaWZkZAAAunbtil27dsHJyUlvQVhYWKheOURERFVPxCFNrX9lOHjwoF6THRERGZ6hnrSSlJSE/v37w8vLCzKZDPHx8WrrJUnCvHnz4OnpCWtra4SEhODixYtqfe7cuYMRI0bA3t4ejo6OGD16NPLz87U+Z60T3qBBg/Dxxx+XaV+yZAneeOMNrQMgIiLDM9QLYAsKChAUFITVq1eXu37JkiVYsWIF1q5di2PHjsHW1hY9e/ZEYWGhqs+IESNw/vx57Nu3D3v27EFSUhLGjdP+mbVaPzza1dUVCQkJaN68uVr72bNnERISguzsbK2D0DdewyPSDa/hmS59X8N7/6f/6rzt/G4+ZZ5wJZc//wlXMpkMu3fvRmhoKIDH1Z2XlxemT5+OGTNmAAByc3Ph7u6OjRs3YujQobhw4QICAwNx/Phx1ZO39u7diz59+uDatWvw0uIeS60/wfz8/HJvP7CwsEBeXp62uyMiompGoVDAwcFBbVEoFFrvJyMjA1lZWQgJCVG1OTg4IDg4WPWUreTkZDg6Oqo9ZjIkJARmZmY4duyYVsfTOuE1b94c27ZtK9O+detWBAZWz1dGEBGJpjLX8KKiopCbm6u2REVFaR3Dk5cGPP2QEXd3d9W6rKwsuLm5qa2vVasWnJ2dVX00pfWN53PnzsXAgQORnp6OV199FQBw4MABxMXFYceOHdrujoiIjEDba3H/pMnwpSnSOuH1798f8fHxWLRoEXbs2AFra2sEBQUhISFB69cDERGRcZjCozQ9PDwAPH7C1j9vTcvOzkbLli1VfZ5+nOWjR49w584d1faa0ukqaN++ffHbb7+hoKAAly5dwpAhQzBjxgwEBQXpsjsiIjIwU3iWpp+fHzw8PHDgwAFVW15eHo4dO4b27dsDANq3b4979+7hxIkTqj4JCQkoLS3V+kEnOr8ANikpCevXr8fOnTvh5eWFgQMHVjjtlIiITEtlhjS1kZ+fj7S0NNXPGRkZSElJgbOzM7y9vTFt2jR8+OGHeOGFF+Dn54e5c+fCy8tLNZMzICAAvXr1wtixY7F27VoUFxdj8uTJGDp0qFYzNAEtE15WVhY2btyI9evXIy8vD0OGDIFSqUR8fDwnrBARURl//vknunbtqvr5yevcwsLCsHHjRsyaNQsFBQUYN24c7t27h1deeQV79+6FlZWVapstW7Zg8uTJ6NatG8zMzDBo0CDV8521ofF9eP3790dSUhL69u2LESNGoFevXjA3N4eFhQVOnz5tUgmP9+ER6Yb34Zkufd+H98H+tOd3qsDckEZ6jMRwNK7wfv75Z0ydOhUTJ07ECy+8UJUxERFRFeOzNJ/hyJEjuH//Ptq0aYPg4GCsWrVK9YYDIiKqXmSV+FNdaZzw2rVrh//85z+4ceMGxo8fj61bt8LLywulpaXYt28f7t+/X5VxEhGRHpnCLE1D0/pZmv+UmpqK9evXY9OmTbh37x66d++O77//Xp/x6YTX8Ih0w2t4pkvf1/CWHEzXedtZXRvqMRLDqdQn6O/vjyVLluDatWv45ptv9BUTERGR3lWqwjNVrPCIdMMKz3Tpu8L75NAlnbed2aWBHiMxHJ1vPCciouqrOl+L0xUTHhGRgEzhWZqGxoRHRCQgQz1azJQw4RERCUjEIU39XgUlIiIyUazwiIgEJOCIJhMeEZGIzKrxI8J0xYRHRCQgVnhERCQEESetMOEREQlIxNsSOEuTiIiEwAqPiEhAAhZ4THhERCIScUiTCY+ISEAC5jsmPCIiEYk4gYMJj4hIQDIBSzwRkzwREQmIFR4RkYDEq+9Y4RERCclMJtN50Yavry9kMlmZZdKkSQCALl26lFk3YcKEqjhlVnhERCIyVIV3/PhxlJSUqH4+d+4cunfvjjfeeEPVNnbsWERHR6t+trGxqZJYmPCIiARkqDkrrq6uaj8vXrwYDRs2ROfOnVVtNjY28PDwqPJYOKRJRCSg8oYZNV2USiXy8vLUFqVS+dxjFhUVYfPmzXjnnXfUZolu2bIFderUQbNmzRAVFYUHDx5UyTkz4RERkVYUCgUcHBzUFoVC8dzt4uPjce/ePYSHh6vahg8fjs2bN+PgwYOIiorCpk2bMHLkyCqJWyZJklQlezaiwkfGjoCoeip+VGrsEKgCdlb6rU+2nfqfztuGBtYpU9HJ5XLI5fJnbtezZ09YWlrihx9+qLBPQkICunXrhrS0NDRs2FDnGMvDa3hERAKqzI3nmiS3p125cgX79+/Hrl27ntkvODgYAJjwiIhIPwx9H15MTAzc3NzQt2/fZ/ZLSUkBAHh6euo9BiY8IiIBGfLRYqWlpYiJiUFYWBhq1fr/aSc9PR1xcXHo06cPXFxccObMGURERKBTp05o0aKF3uOokQmvtOZdlqxRRHwtSXXh1n6qsUOgCjw8tUqv+zPkjMX9+/cjMzMT77zzjlq7paUl9u/fj88++wwFBQWoX78+Bg0ahDlz5lRJHDUy4RERkeno0aMHypsfWb9+fSQmJhosDiY8IiIBifi2BCY8IiIBiZfumPCIiIQkYIHHhEdEJCIzAWs8JjwiIgGJWOHxWZpERCQEVnhERAKScUiTiIhEIOKQJhMeEZGAOGmFiIiEwAqPiIiEIGLC4yxNIiISAis8IiIBcZYmEREJwUy8fMeER0QkIlZ4REQkBE5aISIiqqFY4RERCYhDmkREJAROWiEiIiGwwiMiIiGIOGmFCY+ISEAC5jvO0iQiIjGwwiMiEpCZgGOaTHhERAISL91xSJOISEyySixaWLBgAWQymdrSpEkT1frCwkJMmjQJLi4uqF27NgYNGoTs7OxKn155mPCIiAQkq8QfbTVt2hQ3btxQLUeOHFGti4iIwA8//IDt27cjMTER169fx8CBA/V5qioc0iQiEpAhL+HVqlULHh4eZdpzc3Oxfv16xMXF4dVXXwUAxMTEICAgAEePHkW7du30GgcrPCIi0opSqUReXp7aolQqK+x/8eJFeHl5oUGDBhgxYgQyMzMBACdOnEBxcTFCQkJUfZs0aQJvb28kJyfrPW4mPCIiAVXmEp5CoYCDg4PaolAoyj1OcHAwNm7ciL179+KLL75ARkYGOnbsiPv37yMrKwuWlpZwdHRU28bd3R1ZWVl6P2cOaRIRiagSQ5pRUVGIjIxUa5PL5eX27d27t+q/W7RogeDgYPj4+ODbb7+FtbW17kHogAmPiEhAlXmWplwurzDBPY+joyMaN26MtLQ0dO/eHUVFRbh3755alZednV3uNb/K4pAmEZGAZDLdl8rIz89Heno6PD090aZNG1hYWODAgQOq9ampqcjMzET79u0reYZlscIjIhKQoSZpzpgxA/3794ePjw+uX7+O+fPnw9zcHMOGDYODgwNGjx6NyMhIODs7w97eHlOmTEH79u31PkMTYMIjIqIqdO3aNQwbNgw5OTlwdXXFK6+8gqNHj8LV1RUAsHz5cpiZmWHQoEFQKpXo2bMn1qxZUyWxyCRJkqpkz0b0oLjGnVKNIuIz/KoLpxcnGzsEqsDDU6v0ur+TV/J03ra1j70eIzEcVnhERALiC2CJiEgIIg60MOEREQlIwHzHhEdEJCQBMx7vwyMiIiGwwiMiEhAnrRARkRA4aYWIiIQgYL5jwjNV6/+zDgn79+FyxiXIrawQ1LIV/hUxHb5+DYwdGv2frXFbEBuzHrdv30Jj/yZ47/25aN6ihbHDqrFmvNMDoa8GobGvOx4qi3Hs9CX8+/PvcPHKTVWfdwZ2wJu926Jlk3qwr20Nj44zkZv/UG0/f/+4ED5eLmptc1d8h6Ux+wxyHiZDwIzHSSsm6uSfx/HmsOH4Om4bvvhyAx4VP8LEcWPw8MEDY4dGAPb+/BOWLlFg/LuTsHX7bvj7N8HE8aORk5Nj7NBqrI6tG2HttiR0fnsp+k1chVq1zLHni8mwsbJU9bGxssC+3//CJxt+fea+Fq7ZA9+QKNWy5pvEqg7f5Mgq8ae6YoVnolav+0rt54UfKdCt08v466/zaNP2RSNFRU9sio3BwMFDEPr6IADAnPkLkZR0CPG7dmL02HFGjq5mGjBZ/fmK4+ZvxtWExWgVWB+/nUwHAKyKOwQA6NjmhWfuK7+gENk596skTjJdrPCqifz8x385HRwcjBwJFRcV4cJf59Gu/cuqNjMzM7Rr9zLOnD5lxMjEYl/bCgBwN1f7UY/po3rg2sGPkfzNbES83Q3m5uL9U2is1wMZk0lXeFevXsX8+fOxYcOGCvsolUoolUq1thIzS51fTmiKSktLsXTxIrRs1RqNXmhs7HCEd/feXZSUlMDFRf06kIuLCzIyLhkpKrHIZDJ8MmMwfj+Vjr/Sb2i17ZpvEnHqwlXczStAu6AGiJ7yGjxcHTD7011VFK1pqsZ5S2cm/WvNnTt3EBsb+8w+CoUCDg4OasvSjxUGitAwFB9GIy3tIhZ/sszYoRCZhM+ihqBpI0+8/V6M1tuu2JyAwycu4tzF6/hqxxG8t2wXJr7ZGZYWJv37v/7JKrFUU0b9hr///vtnrr906fm/LUdFRSEyMlKtrcTMsoLe1c/ij6JxOPEQ1sduhnsVvPKetOfk6ARzc/MyE1RycnJQp04dI0UljuWz30Cfjs0QMvoz/O/mvUrv7/jZy7CwMIePl7PajM+arjpPPtGVURNeaGgoZDIZnvVKPtlzBozlcnmZ4cua8D48SZLw8aIPkHBgP/4T8zXq1qtn7JDo/1hYWiIgsCmOHU3Gq91CADwedj52LBlDh400cnQ12/LZb+C1V4PQY+znuHJdPzNig/zroaSkFLfuiDWJpTpfi9OVUROep6cn1qxZgwEDBpS7PiUlBW3atDFwVKZB8WE0fv5pD5avWA1bW1vcvn0LAFC7th2srKyMHB29FTYKc9+fjaZNm6FZ8xbYvCkWDx8+ROjrA40dWo31WdQQvNm7Ld6I+BL5BYVwd7EDAOTmF6JQWQwAcHexg7uLPRp6P660m73ghfsFhbiadRd38x4guIUfXmzmg8Q/L+J+QSHatfDDxzMG4ZufjuPe/YcVHptqBqMmvDZt2uDEiRMVJrznVX812fZt3wAAxo56W6194YeL8Foo/1E1tl69++DunTtYs2oFbt++Bf8mAViz7iu4cEizyowf0gkAsO+raWrtY+dtwuYfjgEAxgzuiDkT+qjW7d8QodZHWVSMN3q2wb8n9IHcohYuX8/Byi0HsWJTgmFOwoQIWOBBJhkxoxw+fBgFBQXo1atXuesLCgrw559/onPnzlrttyYMadZkZiKOpVQTTi9ONnYIVIGHp1bpdX//zdb9IRaN3W30GInhGLXC69ix4zPX29raap3siIjo+ThphYiIhCDiQAsTHhGRgATMd6Z94zkREZG+sMIjIhKRgCUeEx4RkYBEnLTCIU0iIgEZ6m0JCoUCL774Iuzs7ODm5obQ0FCkpqaq9enSpQtkMpnaMmHCBD2e7WNMeEREAjLUs6MTExMxadIkHD16FPv27UNxcTF69OiBgoICtX5jx47FjRs3VMuSJUsqc3rl4pAmEZGIDDSiuXfvXrWfN27cCDc3N5w4cQKdOnVStdvY2MCjih+QzwqPiIi0olQqkZeXp7Y8/V7SiuTm5gIAnJ2d1dq3bNmCOnXqoFmzZoiKisKDB7o/CaYiTHhERAKSVeJPee8hVSie/x7S0tJSTJs2DR06dECzZs1U7cOHD8fmzZtx8OBBREVFYdOmTRg5Uv9vHjHqszSrCp+ladr4LE3TxWdpmi59P0sz845mFVl53G1RpqIr71VtT5s4cSJ+/vlnHDlyBPWe8cqzhIQEdOvWDWlpaWjYsKHOcT6N1/CIiARUmV87NUluT5s8eTL27NmDpKSkZyY7AAgODgYAJjwiIqo8Qw20SJKEKVOmYPfu3Th06BD8/Pyeu01KSgqAx+9M1ScmPCIiIRkm402aNAlxcXH47rvvYGdnh6ysLACAg4MDrK2tkZ6ejri4OPTp0wcuLi44c+YMIiIi0KlTJ7Ro0UKvsfAaHhkcr+GZLl7DM136voZ37W6RztvWc7LUuK+sgr/vMTExCA8Px9WrVzFy5EicO3cOBQUFqF+/Pl5//XXMmTMH9vb2OsdYHlZ4REQCMuSQ5rPUr18fiYmJBomFCY+ISEAijrMw4RERCUjEKwtMeEREAhLxbQlMeEREIhIv3/HRYkREJAZWeEREAhKwwGPCIyISESetEBGREDhphYiIxCBevmPCIyISkYD5jrM0iYhIDKzwiIgExEkrREQkBE5aISIiIYhY4fEaHhERCYEVHhGRgFjhERER1VCs8IiIBMRJK0REJAQRhzSZ8IiIBCRgvmPCIyISkoAZj5NWiIhICKzwiIgExEkrREQkBE5aISIiIQiY73gNj4hISLJKLDpYvXo1fH19YWVlheDgYPzxxx+VPQOtMeEREQlIVok/2tq2bRsiIyMxf/58nDx5EkFBQejZsydu3rxZBWdWMSY8IiKqUsuWLcPYsWMxatQoBAYGYu3atbCxscGGDRsMGgcTHhGRgGQy3RelUom8vDy1RalUlnucoqIinDhxAiEhIao2MzMzhISEIDk52VCnC6CGTlqxsag5l2OVSiUUCgWioqIgl8uNHQ79Q038bh6eWmXsEPSmJn4/+mRViX/9F3yowMKFC9Xa5s+fjwULFpTpe/v2bZSUlMDd3V2t3d3dHX///bfuQehAJkmSZNAjklby8vLg4OCA3Nxc2NvbGzsc+gd+N6aN30/VUSqVZSo6uVxe7i8W169fR926dfH777+jffv2qvZZs2YhMTERx44dq/J4n6iRFR4REVWdipJbeerUqQNzc3NkZ2ertWdnZ8PDw6MqwqsQr+EREVGVsbS0RJs2bXDgwAFVW2lpKQ4cOKBW8RkCKzwiIqpSkZGRCAsLQ9u2bfHSSy/hs88+Q0FBAUaNGmXQOJjwTJxcLsf8+fN50d0E8bsxbfx+TMebb76JW7duYd68ecjKykLLli2xd+/eMhNZqhonrRARkRB4DY+IiITAhEdEREJgwiMiIiEw4RERkRCY8Ezcrl270KNHD7i4uEAmkyElJcXYIdH/MYXXnVBZSUlJ6N+/P7y8vCCTyRAfH2/skMhEMOGZuIKCArzyyiv4+OOPjR0K/YOpvO6EyiooKEBQUBBWr15t7FDIxPC2hGri8uXL8PPzw6lTp9CyZUtjhyO84OBgvPjii1i16vHDlktLS1G/fn1MmTIF7733npGjoydkMhl2796N0NBQY4dCJoAVHpGWTOl1J0SkOSY8Ii0963UnWVlZRoqKiJ6HCc+EbNmyBbVr11Ythw8fNnZIREQ1Bp+laUJee+01BAcHq36uW7euEaOhipjS606ISHOs8EyInZ0dGjVqpFqsra2NHRKVw5Red0JEmmOFZ+Lu3LmDzMxMXL9+HQCQmpoKAPDw8GA1YUSm8roTKis/Px9paWmqnzMyMpCSkgJnZ2d4e3sbMTIyOolMWkxMjASgzDJ//nxjhya8lStXSt7e3pKlpaX00ksvSUePHjV2SCRJ0sGDB8v9OxMWFmbs0MjIeB8eEREJgdfwiIhICEx4REQkBCY8IiISAhMeEREJgQmPiIiEwIRHRERCYMIjIiIhMOEREZEQmPCINBQeHq72ItEuXbpg2rRpBo/j0KFDkMlkuHfvnsGPTVSdMeFRtRceHg6ZTAaZTAZLS0s0atQI0dHRePToUZUed9euXfjggw806sskRWR8fHg01Qi9evVCTEwMlEolfvrpJ0yaNAkWFhaIiopS61dUVARLS0u9HNPZ2Vkv+yEiw2CFRzWCXC6Hh4cHfHx8MHHiRISEhOD7779XDUN+9NFH8PLygr+/PwDg6tWrGDJkCBwdHeHs7IwBAwbg8uXLqv2VlJQgMjISjo6OcHFxwaxZs/D0Y2efHtJUKpWYPXs26tevD7lcjkaNGmH9+vW4fPkyunbtCgBwcnKCTCZDeHg4gMevFVIoFPDz84O1tTWCgoKwY8cOteP89NNPaNy4MaytrdG1a1e1OIlIc0x4VCNZW1ujqKgIAHDgwAGkpqZi37592LNnD4qLi9GzZ0/Y2dnh8OHD+O2331C7dm306tVLtc2nn36KjRs3YsOGDThy5Aju3LmD3bt3P/OYb7/9Nr755husWLECFy5cwLp161C7dm3Ur18fO3fuBPD49U43btzA559/DgBQKBT4+uuvsXbtWpw/fx4REREYOXIkEhMTATxOzAMHDkT//v2RkpKCMWPG4L333quqj42oZjPy2xqIKi0sLEwaMGCAJEmSVFpaKu3bt0+Sy+XSjBkzpLCwMMnd3V1SKpWq/ps2bZL8/f2l0tJSVZtSqZSsra2lX375RZIkSfL09JSWLFmiWl9cXCzVq1dPdRxJkqTOnTtL//rXvyRJkqTU1FQJgLRv375yY3zyypq7d++q2goLCyUbGxvp999/V+s7evRoadiwYZIkSVJUVJQUGBiotn727Nll9kVEz8dreFQj7NmzB7Vr10ZxcTFKS0sxfPhwLFiwAJMmTULz5s3VrtudPn0aaWlpsLOzU9tHYWEh0tPTkZubixs3biA4OFi1rlatWmjbtm2ZYc0nUlJSYG5ujs6dO2scc1paGh48eIDu3burtRcVFaFVq1YAgAsXLqjFAYBvVSfSERMe1Qhdu3bFF198AUtLS3h5eaFWrf//v7atra1a3/z8fLRp0wZbtmwpsx9XV1edjm9tba31Nvn5+QCAH3/8EXXr1lVbJ5fLdYqDiCrGhEc1gq2tLRo1aqRR39atW2Pbtm1wc3ODvb19uX08PT1x7NgxdOrUCQDw6NEjnDhxAq1bty63f/PmzVFaWorExESEhISUWf+kwiwpKVG1BQYGQi6XIzMzs8LKMCAgAN9//71a29GjR59/kkRUBietkHBGjBiBOnXqYMCAATh8+DAyMjJw6NAhTJ06FdeuXQMA/Otf/8LixYsRHx+Pv//+G+++++4z76Hz9fVFWFgY3nnnHcTHx6v2+e233wIAfHx8IJPJsGfPHty6dQv5+fmws7PDjBkzEBERgdjYWKSnp+PkyZNYuXIlYmNjAQATJkzAxYsXMXPmTKSmpiIuLg4bN26s6o+IqEZiwiPh2NjYICkpCd7e3hg4cCACAgIwevRoFBYWqiq+6dOn46233kJYWBjat28POzs7vP7668/c7xdffIHBgwfj3XffRZMmTTB27FgUFBQAAOrWrYuFCxfivffeg7u7OyZPngwA+OCDDzB37lwoFAoEBASgV69e+PHHH+Hn5wcA8Pb2xs6dOxEfH4+goCCsXbsWixYtqsJPh6jmkkkVXYUnIiKqQVjhERGREJjwiIhICEx4REQkBCY8IiISAhMeEREJgQmPiIiEwIRHRERCYMIjIiIhMOEREZEQmPCIiEgITHhERCSE/wfwpYgjqfdwggAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test, y_test_preds_wv)" + ], + "metadata": { + "id": "djUVsYwYYBJd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "b02647ff-0825-4c59-8c4b-bdc26cc7a9e1" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "id": "djUVsYwYYBJd" + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "1NqSOfNd1UmS" + }, + "id": "1NqSOfNd1UmS" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "5qzE4NHS1UmS", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "68bd5ff5-8663-49d2-cf32-0907384a849a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.636888 0.636888 0.664626 0.516128\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "NN_train_wv = model_performance_classification_sklearn(y_train,y_train_preds_wv)\n", + "print(\"Training performance:\\n\", NN_train_wv)" + ], + "id": "5qzE4NHS1UmS" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "4Nr34HI31UmT", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b07a23fe-a40e-4497-8df2-05e18239480e" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.760563 0.760563 0.804628 0.669911\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "NN_test_wv = model_performance_classification_sklearn(y_test, y_test_preds_wv)\n", + "print(\"Testing performance:\\n\",NN_test_wv)" + ], + "id": "4Nr34HI31UmT" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Building a Neural Network Model using text embeddings obtained from the Sentence Transformer**" + ], + "metadata": { + "id": "bcXtMsPu3JfI" + }, + "id": "bcXtMsPu3JfI" + }, + { + "cell_type": "code", + "source": [ + "# Convert the labels\n", + "label_mapping = {1: 2, -1: 0, 0: 1}\n", + "y_train_mapped_st = [label_mapping[label] for label in y_train]\n", + "y_test_mapped_st = [label_mapping[label] for label in y_test]\n", + "\n", + "# Convert your features DataFrame to a NumPy array\n", + "X_train_st_np = np.array(X_train_st)\n", + "X_test_st_np = np.array(X_test_st)\n", + "y_train_mapped_st = np.array(y_train_mapped_st)\n", + "y_test_mapped_st = np.array(y_test_mapped_st)" + ], + "metadata": { + "id": "FUfjCAua4A2-" + }, + "execution_count": null, + "outputs": [], + "id": "FUfjCAua4A2-" + }, + { + "cell_type": "code", + "source": [ + "import gc\n", + "\n", + "# Clear previous sessions\n", + "tf.keras.backend.clear_session()\n", + "gc.collect()\n", + "\n", + "# Define the model\n", + "model = Sequential()\n", + "model.add(Dense(128, activation='relu', input_shape=(X_train_st.shape[1],)))\n", + "model.add(Dropout(0.3))\n", + "model.add(Dense(64, activation='relu'))\n", + "model.add(Dense(3, activation='softmax')) # 3 classes (positive, negative, neutral)\n", + "\n", + "# Compile the model\n", + "model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['Accuracy'])\n", + "\n", + "# Summary\n", + "model.summary()" + ], + "metadata": { + "id": "ziE6DVHA4A2-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 257 + }, + "outputId": "55b5e48b-d3dd-4986-ce74-027c5f902891" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1mModel: \"sequential\"\u001b[0m\n" + ], + "text/html": [ + "
Model: \"sequential\"\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m49,280\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m8,256\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3\u001b[0m) │ \u001b[38;5;34m195\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ], + "text/html": [ + "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
+              "┃ Layer (type)                     Output Shape                  Param # ┃\n",
+              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
+              "│ dense (Dense)                   │ (None, 128)            │        49,280 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dropout (Dropout)               │ (None, 128)            │             0 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_1 (Dense)                 │ (None, 64)             │         8,256 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_2 (Dense)                 │ (None, 3)              │           195 │\n",
+              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m57,731\u001b[0m (225.51 KB)\n" + ], + "text/html": [ + "
 Total params: 57,731 (225.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m57,731\u001b[0m (225.51 KB)\n" + ], + "text/html": [ + "
 Trainable params: 57,731 (225.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ], + "text/html": [ + "
 Non-trainable params: 0 (0.00 B)\n",
+              "
\n" + ] + }, + "metadata": {} + } + ], + "id": "ziE6DVHA4A2-" + }, + { + "cell_type": "code", + "source": [ + "# Fitting the model\n", + "history = model.fit(\n", + " X_train_st_np, y_train_mapped_st,\n", + " epochs=15,\n", + " batch_size=32\n", + ")" + ], + "metadata": { + "id": "8J-JncGj4A2_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3faf37bb-8f28-4662-8b16-ca054230d4cd" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - Accuracy: 0.6300 - loss: 1.0422\n", + "Epoch 2/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6496 - loss: 0.8380 \n", + "Epoch 3/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6464 - loss: 0.7074 \n", + "Epoch 4/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6099 - loss: 0.7004 \n", + "Epoch 5/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6664 - loss: 0.6625 \n", + "Epoch 6/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6915 - loss: 0.6035 \n", + "Epoch 7/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.7356 - loss: 0.5585 \n", + "Epoch 8/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.7714 - loss: 0.5521 \n", + "Epoch 9/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - Accuracy: 0.7655 - loss: 0.5158 \n", + "Epoch 10/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - Accuracy: 0.7861 - loss: 0.4997 \n", + "Epoch 11/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - Accuracy: 0.8121 - loss: 0.4551\n", + "Epoch 12/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - Accuracy: 0.7897 - loss: 0.4756 \n", + "Epoch 13/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - Accuracy: 0.8454 - loss: 0.4200 \n", + "Epoch 14/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - Accuracy: 0.8362 - loss: 0.4135 \n", + "Epoch 15/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - Accuracy: 0.8560 - loss: 0.3473 \n" + ] + } + ], + "id": "8J-JncGj4A2_" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**" + ], + "metadata": { + "id": "rbsZ24gM4A2_" + }, + "id": "rbsZ24gM4A2_" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on training data\n", + "y_train_pred_probs = model.predict(X_train_st_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_train_preds_st = tf.argmax(y_train_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "xaWGws3r4A2_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c3f459d7-9745-44f3-bfd6-0df051411294" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step\n" + ] + } + ], + "id": "xaWGws3r4A2_" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on test data\n", + "y_test_pred_probs = model.predict(X_test_st_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_test_preds_st = tf.argmax(y_test_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "P8yF-MWH4A2_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "0bfe417b-bb4a-446f-8ee0-7fde7e16f62a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m3/3\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step\n" + ] + } + ], + "id": "P8yF-MWH4A2_" + }, + { + "cell_type": "code", + "source": [ + "# Convert back to [-1, 0, 1] to match utility function expectations\n", + "label_mapping = {2: 1, 0: -1, 1: 0}\n", + "y_train_preds_st = np.array([label_mapping[index] for index in y_train_preds_st])\n", + "y_test_preds_st = np.array([label_mapping[index] for index in y_test_preds_st])" + ], + "metadata": { + "id": "YbwmP-dE4A3A" + }, + "execution_count": null, + "outputs": [], + "id": "YbwmP-dE4A3A" + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "YoVyydZW4A3A" + }, + "id": "YoVyydZW4A3A" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_train, y_train_preds_st)" + ], + "metadata": { + "id": "I2yC2oAB4A3A", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "c678cd56-9ae7-4a9c-becf-e1dfa09973d1" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "id": "I2yC2oAB4A3A" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test, y_test_preds_st)" + ], + "metadata": { + "collapsed": true, + "id": "mZLu8fRk4A3A", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "e96330e8-96aa-476e-b47d-e4d5bcc6a561" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "id": "mZLu8fRk4A3A" + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "eDqgpX_a4A3B" + }, + "id": "eDqgpX_a4A3B" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Jq_ES16g4A3B", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "95db0a8b-3659-4319-ecab-82c051217d1f" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.878963 0.878963 0.864731 0.871679\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "NN_train_st = model_performance_classification_sklearn(y_train,y_train_preds_st)\n", + "print(\"Training performance:\\n\", NN_train_st)" + ], + "id": "Jq_ES16g4A3B" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7MUEidM44A3B", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b3ebc9fb-7278-4621-cb18-5f53190b284a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.788732 0.788732 0.780908 0.784708\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "NN_test_st = model_performance_classification_sklearn(y_test, y_test_preds_st)\n", + "print(\"Testing performance:\\n\",NN_test_st)" + ], + "id": "7MUEidM44A3B" + }, + { + "cell_type": "markdown", + "id": "gsmrYpkrFY2A", + "metadata": { + "id": "gsmrYpkrFY2A" + }, + "source": [ + "### **Model Performance Summary and Final Model Selection**" + ] + }, + { + "cell_type": "code", + "source": [ + "# Concatenate the training performance metrics from different models into a single DataFrame\n", + "models_train_comp_df = pd.concat(\n", + " [\n", + " rf_train_wv.T, # Random Forest using Word2Vec embeddings\n", + " NN_train_wv.T, # Neural Network using Word2Vec embeddings\n", + " rf_train_st.T, # Random Forest using Sentence Transformer embeddings\n", + " NN_train_st.T # Neural Network using Sentence Transformer embeddings\n", + " ],\n", + " axis=1 # Concatenate along columns (i.e., each model's metrics form one column)\n", + ")\n", + "\n", + "# Assigning meaningful column names for each model for clarity in the output DataFrame\n", + "models_train_comp_df.columns = [\n", + " \"Word2Vec (Random Forest)\",\n", + " \"Word2Vec (Neural Network)\",\n", + " \"Sentence Transformer (Random Forest)\",\n", + " \"Sentence Transformer (Neural Network)\"\n", + "]\n", + "\n", + "# Print the training performance comparison table\n", + "print(\"Training performance comparison:\")\n", + "models_train_comp_df" + ], + "metadata": { + "id": "FmgvAlKBWjR-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 192 + }, + "outputId": "68dd172d-e821-4c30-82e3-8df928e36a4c" + }, + "id": "FmgvAlKBWjR-", + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance comparison:\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Word2Vec (Random Forest) Word2Vec (Neural Network) \\\n", + "Accuracy 0.755043 0.636888 \n", + "Recall 0.755043 0.636888 \n", + "Precision 0.778891 0.664626 \n", + "F1 0.720565 0.516128 \n", + "\n", + " Sentence Transformer (Random Forest) \\\n", + "Accuracy 0.801153 \n", + "Recall 0.801153 \n", + "Precision 0.831835 \n", + "F1 0.775232 \n", + "\n", + " Sentence Transformer (Neural Network) \n", + "Accuracy 0.878963 \n", + "Recall 0.878963 \n", + "Precision 0.864731 \n", + "F1 0.871679 " + ], + "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", + "
Word2Vec (Random Forest)Word2Vec (Neural Network)Sentence Transformer (Random Forest)Sentence Transformer (Neural Network)
Accuracy0.7550430.6368880.8011530.878963
Recall0.7550430.6368880.8011530.878963
Precision0.7788910.6646260.8318350.864731
F10.7205650.5161280.7752320.871679
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "models_train_comp_df", + "summary": "{\n \"name\": \"models_train_comp_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Word2Vec (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.02400850605954694,\n \"min\": 0.720564904885155,\n \"max\": 0.7788911179618219,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7550432276657061,\n 0.7788911179618219,\n 0.720564904885155\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Word2Vec (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.06630504860294313,\n \"min\": 0.516128150662598,\n \"max\": 0.6646264228575315,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.6368876080691642,\n 0.6646264228575315,\n 0.516128150662598\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.02314897229764395,\n \"min\": 0.7752322113738629,\n \"max\": 0.8318353116624009,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.8011527377521613,\n 0.8318353116624009,\n 0.7752322113738629\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.006828124944117901,\n \"min\": 0.8647306583906008,\n \"max\": 0.8789625360230547,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.8789625360230547,\n 0.8647306583906008,\n 0.8716785041639248\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 72 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Concatenate the testing performance metrics from different models into a single DataFrame\n", + "models_test_comp_df = pd.concat(\n", + " [\n", + " rf_test_wv.T, # Random Forest using Word2Vec embeddings\n", + " NN_test_wv.T, # Neural Network using Word2Vec embeddings\n", + " rf_test_st.T, # Random Forest using Sentence Transformer embeddings\n", + " NN_test_st.T # Neural Network using Sentence Transformer embeddings\n", + " ],\n", + " axis=1 # Concatenate along columns so each model's test metrics appear as one column\n", + ")\n", + "\n", + "# Set descriptive column names for clarity in the resulting comparison table\n", + "models_test_comp_df.columns = [\n", + " \"Word2Vec (Random Forest)\",\n", + " \"Word2Vec (Neural Network)\",\n", + " \"Sentence Transformer (Random Forest)\",\n", + " \"Sentence Transformer (Neural Network)\"\n", + "]\n", + "\n", + "# Print the testing performance comparison table\n", + "print(\"Testing performance comparison:\")\n", + "models_test_comp_df" + ], + "metadata": { + "id": "APzbgeHrWjOj", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 192 + }, + "outputId": "2095fa14-43c0-42dc-e342-c8229f7750b9" + }, + "id": "APzbgeHrWjOj", + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance comparison:\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Word2Vec (Random Forest) Word2Vec (Neural Network) \\\n", + "Accuracy 0.746479 0.760563 \n", + "Recall 0.746479 0.760563 \n", + "Precision 0.687934 0.804628 \n", + "F1 0.680114 0.669911 \n", + "\n", + " Sentence Transformer (Random Forest) \\\n", + "Accuracy 0.718310 \n", + "Recall 0.718310 \n", + "Precision 0.551745 \n", + "F1 0.624105 \n", + "\n", + " Sentence Transformer (Neural Network) \n", + "Accuracy 0.788732 \n", + "Recall 0.788732 \n", + "Precision 0.780908 \n", + "F1 0.784708 " + ], + "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", + "
Word2Vec (Random Forest)Word2Vec (Neural Network)Sentence Transformer (Random Forest)Sentence Transformer (Neural Network)
Accuracy0.7464790.7605630.7183100.788732
Recall0.7464790.7605630.7183100.788732
Precision0.6879340.8046280.5517450.780908
F10.6801140.6699110.6241050.784708
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "models_test_comp_df", + "summary": "{\n \"name\": \"models_test_comp_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Word2Vec (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.03619949158384784,\n \"min\": 0.6801140174379611,\n \"max\": 0.7464788732394366,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7464788732394366,\n 0.687933571578726,\n 0.6801140174379611\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Word2Vec (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.05661832323426673,\n \"min\": 0.6699110653078362,\n \"max\": 0.8046277665995976,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7605633802816901,\n 0.8046277665995976,\n 0.6699110653078362\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.08086640854457602,\n \"min\": 0.5517452541334966,\n \"max\": 0.7183098591549296,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7183098591549296,\n 0.5517452541334966,\n 0.6241052874624798\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0037559350807984376,\n \"min\": 0.7809076682316118,\n \"max\": 0.7887323943661971,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7887323943661971,\n 0.7809076682316118,\n 0.7847082494969819\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 73 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Model Performance Summary:**" + ], + "metadata": { + "id": "X0yz_T4j6uJc" + }, + "id": "X0yz_T4j6uJc" + }, + { + "cell_type": "markdown", + "source": [ + " **Model Selection: Sentence Transformer + Neural Network**\n", + "\n", + "**Rationale:**\n", + "\n", + "1. **Best Generalization**:\n", + " The Sentence Transformer + Neural Network model achieves the highest F1 score on the test set (0.788), indicating strong generalization and better handling of both precision and recall on unseen data.\n", + "\n", + "2. **Balanced Performance**:\n", + " Training F1 = 0.87 and testing F1 = 0.78 show a minimal gap, meaning the model learned meaningful representations without significant overfitting.\n", + "\n", + "3. **Superior Feature Encoding**:\n", + " Sentence Transformers capture semantic meaning more effectively than Word2Vec, which explains the performance boost across both Random Forest and Neural Network setups.\n", + "\n", + "4. **Neural Network Suitability**:\n", + " While Word2Vec + NN struggles due to sparse and less informative vectors, combining powerful embeddings (Sentence Transformer) with flexible learning (NN) achieves the best synergy.\n", + "\n", + "##### **Why Other Models Were Not Chosen?**\n", + "\n", + "* **Word2Vec + RF**:\n", + " Training F1 = 0.730, Test F1 = 0.685. Although the gap is small (shows some stability), the absolute test performance is lower than Sentence Transformer + NN.\n", + "\n", + "* **Word2Vec + NN**:\n", + " Low performance in both training (F1 = 0.516) and testing (F1 = 0.67) indicates underfitting and ineffective learning due to weak input representations.\n", + "\n", + "* **Sentence Transformer + RF**:\n", + " Strong training F1 = 0.775, but test F1 = 0.624 is slightly lower than the NN version, suggesting mild overfitting and less flexibility in modeling complex patterns." + ], + "metadata": { + "id": "wI7woP0xHrwW" + }, + "id": "wI7woP0xHrwW" + }, + { + "cell_type": "markdown", + "id": "HiOLoD7BO3L-", + "metadata": { + "id": "HiOLoD7BO3L-" + }, + "source": [ + "## **Conclusions and Recommendations**" + ] + }, + { + "cell_type": "markdown", + "source": [ + "* The daily opening, high, low, and closing prices of the stock exhibit similar distributions individually, when compared across different sentiment polarities, and negative sentiment news resulted in a lower value for each price.\n", + "\n", + "* The minimum variation also resulted in the prices exhibiting perfect correlation amongst them, while exhibiting a very low negative correlation with volume, which might be due to selling pressure during periods of negative sentiment.\n", + "\n", + "* The stock price gradually increased over time from ~40 to ~50 in the period for which the data is available while exhibiting a monthly trend.\n", + "\n", + "* We predicted the sentiment of market news by encoding them via different ML models.\n", + "\n", + "* The models largely overfit the data, with only **the Sentence Transformer + Neural Network model** yielding comparatively better performance than the others (train F1 = 0.876, test F1 = 0.788).\n", + "\n", + " * The predominance of neutral news also suggests a cautious market sentiment in this period. As such, a wider period should be considered for data collection to ensure volume and diversity in news sentiment polarities.\n", + "\n", + "* Integrating real-time sentiment analysis systems can allow financial analysts to make informed decisions and quickly respond to market sentiment changes to optimize investment strategies.\n", + "\n", + "* One can explore combining news sentiments with technical and fundamental indicators of the stock and introduce data of other similar stocks for a more comprehensive market analysis." + ], + "metadata": { + "id": "NMR7mKugPFme" + }, + "id": "NMR7mKugPFme" + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mQvaNDqQ3BJa" + }, + "source": [ + " Power Ahead \n", + "___" + ], + "id": "mQvaNDqQ3BJa" + } + ], + "metadata": { + "colab": { + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "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.11.5" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "1230a037e0b9479caa9db62c5f9ecb6a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_ed6c19298c4747a59992a79d99cdaaa7", + "IPY_MODEL_e010222da3cf4751995a51ffc82560ef", + "IPY_MODEL_9f3e3b616bcf482d9fd91a2b54d8d82a" + ], + "layout": "IPY_MODEL_6838e428d6d54a3f80d34638812441e6" + } + }, + "ed6c19298c4747a59992a79d99cdaaa7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_991c2589b56f444486443a31bef569d5", + "placeholder": "​", + "style": "IPY_MODEL_4ed01d32996f47f38fbaba687cee45ae", + "value": "Batches: 100%" + } + }, + "e010222da3cf4751995a51ffc82560ef": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a0ce999dbcfe427ba08202bc989b1c33", + "max": 11, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f598184dc72f443ab0ada8de6cf076ad", + "value": 11 + } + }, + "9f3e3b616bcf482d9fd91a2b54d8d82a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_96e9e320eec74a2e9094935af065b254", + "placeholder": "​", + "style": "IPY_MODEL_fb854fb10f3e415c9c4c0ac176fb74b4", + "value": " 11/11 [00:44<00:00,  3.41s/it]" + } + }, + "6838e428d6d54a3f80d34638812441e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "991c2589b56f444486443a31bef569d5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4ed01d32996f47f38fbaba687cee45ae": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a0ce999dbcfe427ba08202bc989b1c33": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f598184dc72f443ab0ada8de6cf076ad": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "96e9e320eec74a2e9094935af065b254": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fb854fb10f3e415c9c4c0ac176fb74b4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2fb4071397a049f888159e2cbec3ec99": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_280899c6e305423a8d6f20dd395b4e10", + "IPY_MODEL_f68b5d3640c54560b38a29f32deb33a8", + "IPY_MODEL_115335a31d874aba99efb63fa2830e09" + ], + "layout": "IPY_MODEL_7b371d0574e04f98bf87a88f722b8477" + } + }, + "280899c6e305423a8d6f20dd395b4e10": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9095b2b09d4a45928fbc3cf45eb35cbb", + "placeholder": "​", + "style": "IPY_MODEL_971a53d397494d76b8b5c4a2abb954f7", + "value": "Batches: 100%" + } + }, + "f68b5d3640c54560b38a29f32deb33a8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_54dd267783314434a5389477c97974e5", + "max": 3, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_5bfd23c3586e4615909878610be8e24b", + "value": 3 + } + }, + "115335a31d874aba99efb63fa2830e09": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4eda58c3e66e40db98ea40fc40ebb109", + "placeholder": "​", + "style": "IPY_MODEL_99ee6edbe0574c778200ae65b87d7e0f", + "value": " 3/3 [00:09<00:00,  2.81s/it]" + } + }, + "7b371d0574e04f98bf87a88f722b8477": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9095b2b09d4a45928fbc3cf45eb35cbb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "971a53d397494d76b8b5c4a2abb954f7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "54dd267783314434a5389477c97974e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5bfd23c3586e4615909878610be8e24b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "4eda58c3e66e40db98ea40fc40ebb109": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "99ee6edbe0574c778200ae65b87d7e0f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file From 2130bd15977f139a23c4203b60ec52326ff92e5c Mon Sep 17 00:00:00 2001 From: biplob <110578485+bks1984@users.noreply.github.com> Date: Mon, 10 Nov 2025 08:55:34 +0530 Subject: [PATCH 3/3] Created using Colab --- stock_market__news_sentiment_analysisf.ipynb | 6747 ++++++++++++++++++ 1 file changed, 6747 insertions(+) create mode 100644 stock_market__news_sentiment_analysisf.ipynb diff --git a/stock_market__news_sentiment_analysisf.ipynb b/stock_market__news_sentiment_analysisf.ipynb new file mode 100644 index 0000000..14376df --- /dev/null +++ b/stock_market__news_sentiment_analysisf.ipynb @@ -0,0 +1,6747 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "id": "inNE1fy-ISPj", + "metadata": { + "id": "inNE1fy-ISPj" + }, + "source": [ + "

\n", + " \n", + "

\n", + "\n", + "
Stock Market News Sentiment Analysis
" + ] + }, + { + "cell_type": "markdown", + "id": "EvCcfwuSU-fz", + "metadata": { + "id": "EvCcfwuSU-fz" + }, + "source": [ + "## **Problem Statement**" + ] + }, + { + "cell_type": "markdown", + "id": "6QR_RHvIVHT2", + "metadata": { + "id": "6QR_RHvIVHT2" + }, + "source": [ + "### Business Context" + ] + }, + { + "cell_type": "markdown", + "id": "pl3dmH-EnJGl", + "metadata": { + "id": "pl3dmH-EnJGl" + }, + "source": [ + "The prices of the stocks of companies listed under a global exchange are influenced by a variety of factors, with the company's financial performance, innovations and collaborations, and market sentiment being factors that play a significant role. News and media reports can rapidly affect investor perceptions and, consequently, stock prices in the highly competitive financial industry. With the sheer volume of news and opinions from a wide variety of sources, investors and financial analysts often struggle to stay updated and accurately interpret its impact on the market. As a result, investment firms need sophisticated tools to analyze market sentiment and integrate this information into their investment strategies." + ] + }, + { + "cell_type": "markdown", + "id": "Vn6bbxSwVKl3", + "metadata": { + "id": "Vn6bbxSwVKl3" + }, + "source": [ + "### Problem Definition" + ] + }, + { + "cell_type": "markdown", + "id": "jCIswL3zobj6", + "metadata": { + "id": "jCIswL3zobj6" + }, + "source": [ + "With an ever-rising number of news articles and opinions, an investment startup aims to leverage artificial intelligence to address the challenge of interpreting stock-related news and its impact on stock prices. They have collected historical daily news for a specific company listed under NASDAQ, along with data on its daily stock price and trade volumes.\n", + "\n", + "As a member of the Data Science and AI team in the startup, you have been tasked with developing an AI-driven sentiment analysis system that will automatically process and analyze news articles to gauge market sentiment, and summarizing the news at a weekly level to enhance the accuracy of their stock price predictions and optimize investment strategies. This will empower their financial analysts with actionable insights, leading to more informed investment decisions and improved client outcomes." + ] + }, + { + "cell_type": "markdown", + "id": "ZJOtDHVSF5hu", + "metadata": { + "id": "ZJOtDHVSF5hu" + }, + "source": [ + "### Data Dictionary" + ] + }, + { + "cell_type": "markdown", + "id": "ZlkjI8V5F9RK", + "metadata": { + "id": "ZlkjI8V5F9RK" + }, + "source": [ + "* `Date` : The date the news was released\n", + "* `News` : The content of news articles that could potentially affect the company's stock price\n", + "* `Open` : The stock price (in \\$) at the beginning of the day\n", + "* `High` : The highest stock price (in \\$) reached during the day\n", + "* `Low` : The lowest stock price (in \\$) reached during the day\n", + "* `Close` : The adjusted stock price (in \\$) at the end of the day\n", + "* `Volume` : The number of shares traded during the day\n", + "* `Label` : The sentiment polarity of the news content\n", + " * 1: positive\n", + " * 0: neutral\n", + " * -1: negative" + ] + }, + { + "cell_type": "markdown", + "id": "VrFQHcW5mYgv", + "metadata": { + "id": "VrFQHcW5mYgv" + }, + "source": [ + "## **Installing and Importing the necessary libraries**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "A-E2-iaumpo8", + "metadata": { + "id": "A-E2-iaumpo8", + "collapsed": true, + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "5f12e599-de14-4e2b-adb4-de180cdd4fba" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: numpy==1.26.4 in /usr/local/lib/python3.12/dist-packages (1.26.4)\n", + "Requirement already satisfied: scikit-learn==1.6.1 in /usr/local/lib/python3.12/dist-packages (1.6.1)\n", + "Requirement already satisfied: scipy==1.13.1 in /usr/local/lib/python3.12/dist-packages (1.13.1)\n", + "Requirement already satisfied: gensim==4.3.3 in /usr/local/lib/python3.12/dist-packages (4.3.3)\n", + "Requirement already satisfied: sentence-transformers==3.4.1 in /usr/local/lib/python3.12/dist-packages (3.4.1)\n", + "Requirement already satisfied: pandas==2.2.2 in /usr/local/lib/python3.12/dist-packages (2.2.2)\n", + "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn==1.6.1) (1.5.2)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn==1.6.1) (3.6.0)\n", + "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.12/dist-packages (from gensim==4.3.3) (7.3.1)\n", + "Requirement already satisfied: transformers<5.0.0,>=4.41.0 in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (4.56.1)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (4.67.1)\n", + "Requirement already satisfied: torch>=1.11.0 in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (2.8.0+cu126)\n", + "Requirement already satisfied: huggingface-hub>=0.20.0 in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (0.35.0)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.12/dist-packages (from sentence-transformers==3.4.1) (11.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas==2.2.2) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas==2.2.2) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas==2.2.2) (2025.2)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (3.19.1)\n", + "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2025.3.0)\n", + "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (25.0)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (6.0.2)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2.32.4)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (4.15.0)\n", + "Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (1.1.10)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas==2.2.2) (1.17.0)\n", + "Requirement already satisfied: wrapt in /usr/local/lib/python3.12/dist-packages (from smart-open>=1.8.1->gensim==4.3.3) (1.17.3)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (75.2.0)\n", + "Requirement already satisfied: sympy>=1.13.3 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (1.13.3)\n", + "Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (3.5)\n", + "Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (3.1.6)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.77)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.77)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.6.80 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.80)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==9.10.2.21 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (9.10.2.21)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.6.4.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.4.1)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.3.0.4 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (11.3.0.4)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.7.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (10.3.7.77)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.7.1.2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (11.7.1.2)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.5.4.2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.5.4.2)\n", + "Requirement already satisfied: nvidia-cusparselt-cu12==0.7.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (0.7.1)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.27.3 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (2.27.3)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.77)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12==12.6.85 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (12.6.85)\n", + "Requirement already satisfied: nvidia-cufile-cu12==1.11.1.6 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (1.11.1.6)\n", + "Requirement already satisfied: triton==3.4.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.11.0->sentence-transformers==3.4.1) (3.4.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.12/dist-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers==3.4.1) (2024.11.6)\n", + "Requirement already satisfied: tokenizers<=0.23.0,>=0.22.0 in /usr/local/lib/python3.12/dist-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers==3.4.1) (0.22.0)\n", + "Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.12/dist-packages (from transformers<5.0.0,>=4.41.0->sentence-transformers==3.4.1) (0.6.2)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy>=1.13.3->torch>=1.11.0->sentence-transformers==3.4.1) (1.3.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=1.11.0->sentence-transformers==3.4.1) (3.0.2)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (3.4.3)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub>=0.20.0->sentence-transformers==3.4.1) (2025.8.3)\n" + ] + } + ], + "source": [ + "# installing the sentence-transformers and gensim libraries for word embeddings\n", + "!pip install numpy==1.26.4 \\\n", + " scikit-learn==1.6.1 \\\n", + " scipy==1.13.1 \\\n", + " gensim==4.3.3 \\\n", + " sentence-transformers==3.4.1 \\\n", + " pandas==2.2.2" + ] + }, + { + "cell_type": "markdown", + "source": [ + "Note:\n", + "- After running the above cell, kindly restart the runtime (for Google Colab) or notebook kernel (for Jupyter Notebook), and run all cells sequentially from the next cell.\n", + "- On executing the above line of code, you might see a warning regarding package dependencies. This error message can be ignored as the above code ensures that all necessary libraries and their dependencies are maintained to successfully execute the code in this notebook." + ], + "metadata": { + "id": "Su4_EiqL5aIZ" + }, + "id": "Su4_EiqL5aIZ" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "179a2a45", + "metadata": { + "id": "179a2a45" + }, + "outputs": [], + "source": [ + "# To manipulate and analyze data\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "# To visualize data\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "# To used time-related functions\n", + "import time\n", + "\n", + "# To build, tune, and evaluate ML models\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "# To load/create word embeddings\n", + "from gensim.models import Word2Vec\n", + "\n", + "# To work with transformer models\n", + "import torch\n", + "from sentence_transformers import SentenceTransformer\n", + "\n", + "# Import TensorFlow and Keras for deep learning model building.\n", + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.layers import Dense, Dropout\n", + "\n", + "# To implement progress bar related functionalities\n", + "from tqdm import tqdm\n", + "tqdm.pandas()\n", + "\n", + "# To ignore unnecessary warnings\n", + "import warnings\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "markdown", + "id": "wQ46zPgumfjF", + "metadata": { + "id": "wQ46zPgumfjF" + }, + "source": [ + "## **Loading the Dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "yu_7XbWQWma8", + "metadata": { + "id": "yu_7XbWQWma8" + }, + "outputs": [], + "source": [ + "# # uncomment and run the following code if Google Colab is being used and the dataset is in Google Drive\n", + "# from google.colab import drive\n", + "# drive.mount('/content/drive')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62a33eef", + "metadata": { + "id": "62a33eef" + }, + "outputs": [], + "source": [ + "# Read the CSV file named 'stock_news' into a pandas DataFrame named 'stock'\n", + "stock_news = pd.read_csv(\"/content/02. Dataset - stock_news.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1xFSwCCer1uA", + "metadata": { + "id": "1xFSwCCer1uA" + }, + "outputs": [], + "source": [ + "#Creating a copy of the dataset\n", + "stock = stock_news.copy()" + ] + }, + { + "cell_type": "markdown", + "id": "EvFNfrvGWthn", + "metadata": { + "id": "EvFNfrvGWthn" + }, + "source": [ + "## **Data Overview**" + ] + }, + { + "cell_type": "markdown", + "id": "GW4rkWI1WzBb", + "metadata": { + "id": "GW4rkWI1WzBb" + }, + "source": [ + "#### **Displaying the first few rows of the dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd2f105b", + "metadata": { + "id": "dd2f105b", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "4fce6c84-28cc-4aee-e18c-154c97c9e849" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Date News Open \\\n", + "0 01-02-2019 The dollar minutes ago tumbled to 106 67 from... 38.72 \n", + "1 01-02-2019 By Wayne Cole and Swati Pandey SYDNEY Reuters... 38.72 \n", + "2 01-02-2019 By Stephen Culp NEW YORK Reuters Wall Stre... 38.72 \n", + "3 01-02-2019 By Wayne Cole SYDNEY Reuters The Australia... 38.72 \n", + "4 01-02-2019 Investing com Asian equities fell in morning... 38.72 \n", + "\n", + " High Low Close Volume Label \n", + "0 39.71 38.56 39.48 130672400 1 \n", + "1 39.71 38.56 39.48 130672400 -1 \n", + "2 39.71 38.56 39.48 130672400 0 \n", + "3 39.71 38.56 39.48 130672400 -1 \n", + "4 39.71 38.56 39.48 130672400 1 " + ], + "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", + "
DateNewsOpenHighLowCloseVolumeLabel
001-02-2019The dollar minutes ago tumbled to 106 67 from...38.7239.7138.5639.481306724001
101-02-2019By Wayne Cole and Swati Pandey SYDNEY Reuters...38.7239.7138.5639.48130672400-1
201-02-2019By Stephen Culp NEW YORK Reuters Wall Stre...38.7239.7138.5639.481306724000
301-02-2019By Wayne Cole SYDNEY Reuters The Australia...38.7239.7138.5639.48130672400-1
401-02-2019Investing com Asian equities fell in morning...38.7239.7138.5639.481306724001
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "stock", + "summary": "{\n \"name\": \"stock\",\n \"rows\": 418,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 73,\n \"samples\": [\n \"01-08-2019\",\n \"04-15-2019\",\n \"01-30-2019\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"News\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 418,\n \"samples\": [\n \" Reuters Apple Inc NASDAQ AAPL is expected to unveil a new video streaming service and a news subscription platform at an event on Monday at its California headquarters The iPhone maker is banking on growing its services business to offset a dip in smartphone sales While the Wall Street Journal plans to join Apple s new subscription news service other major publishers including the New York Times and the Washington Post have declined according to a New York Times report Apple has also partnered with Hollywood celebrities to make a streaming debut with a slate of original content taking a page out of Netflix NASDAQ NFLX Inc s playbook Below are some of the shows curated from media reports and Apple s own announcements which are part of the iPhone maker s content library SHOWS CONFIRMED BY APPLE UNTITLED DRAMA SERIES WITH REESE WITHERSPOON AND JENNIFER ANISTON Two seasons of a drama series starring Reese Witherspoon and Jennifer Aniston that looks at the lives of people working on a morning television show REVIVAL OF STEVEN SPIELBERG S 1985 AMAZING STORIES The tech giant has also struck a deal with director Steven Spielberg to make new episodes of Amazing Stories a science fiction and horror anthology series that ran on NBC in the 1980s A NEW THRILLER BY M NIGHT SHYAMALAN Plot of the story has not been disclosed ARE YOU SLEEPING A MYSTERY SERIES A drama featuring Octavia Spencer based on a crime novel by Kathleen Barber AN ANTHOLOGY SERIES CALLED LITTLE AMERICA Focuses on stories of immigrants coming to the United States AN ANIMATED CARTOON MUSICAL CALLED CENTRAL PARK The animated musical comedy is about a family of caretakers who end up saving the park and the world DICKINSON AN EMILY DICKINSON COMEDY A half hour comedy series that is set during American poet Emily Dickinson s era with a modern sensibility and tone OPRAH WINFREY PARTNERSHIP Apple in June last year announced a multi year deal with Oprah Winfrey to create original programming SHOWS REPORTED BY MEDIA TIME BANDITS A FANTASY SERIES The potential series is an adaptation of Terry Gilliam s 1981 fantasy film of the same name about a young boy who joins a group of renegade time traveling dwarves Deadline reported https UNTITLED CAPTAIN MARVEL STAR BRIE LARSON S CIA PROJECT The new series looks at a young woman s journey in the CIA reported Variety https DEFENDING JACOB STARRING CAPTAIN AMERICA CHRIS EVANS This limited series is based on the novel of the same name and is about an assistant district attorney who is investigating the murder of a 14 year old boy according to Deadline https FOR ALL MANKIND A SCI FI SERIES A space drama from producer Ronald Moore according to Deadline https MY GLORY WAS I HAD SUCH FRIENDS A series featuring Jennifer Garner is based on the 2017 memoir of the same name by Amy Silverstein reported Variety https SEE A FANTASY EPIC STARRING JASON MOMOA The show poses the question about the fate of humanity if everyone lost their sight Variety reported https FOUNDATION A SCI FI ADAPTATION An adaptation of the iconic novel series from famed sci fi author Isaac Asimov Deadline reported The book series follows a mathematician who predicts the collapse of humanity A COMEDY SHOW BY ROB MCELHENNEY AND CHARLIE DAY The sitcom comedy based on the lives of a diverse group of people who work together in a video game development studio Variety reported https AN UNSCRIPTED SERIES HOME FROM THE DOCUMENTARY FILMMAKER MATT TYRNAUER The series will offer viewers a never before seen look inside the world s most extraordinary homes and feature interviews with people who built them according to Variety https UNTITLED RICHARD GERE SERIES Based on an Israeli series Nevelot the show is about two elderly Vietnam vets whose lives are changed when a woman they both love is killed in a car accident Deadline reported J J ABRAMS PRODUCED LITTLE VOICE Singer and actress Sara Bareilles is writing the music and could possibly star in the J J Abrams produced half hour show which explores the journey of finding one s authentic voice in early 20s according to Variety THE PEANUTS GANG Apple has acquired the rights to the famous characters and the first series will be a science and math oriented short featuring Snoopy as an astronaut according to Hollywood Reporter ON THE ROCKS A feature film directed by Sofia Coppola starring Bill Murray is about a young mother who reconnects with her larger than life playboy father on an adventure through New York Variety reported https LOSING EARTH Apple has acquired the rights to a TV series based on Nathaniel Rich s 70 page New York Times Magazine story Losing Earth New York Times reported THE ELEPHANT QUEEN Apple has acquired the rights to Victoria Stone and Mark Deeble s documentary The Elephant Queen Deadline reported WOLFWALKERS An Irish animation about a young hunter who comes to Ireland with her father to destroy a pack of evil wolves but instead befriends a wild native girl who runs with them first reported by Bloomberg PACHINKO Apple has secured the rights to develop Min Jin Lee s best selling novel about four generations of a Korean immigrant family into a series reported Variety CALLS Apple has bought the rights to make an English language version of the French original short form series according to Variety SHANTARAM Apple has won the rights to develop the hit novel Shantaram as a drama series reported Variety https SWAGGER A DRAMA SERIES BASED ON KEVIN DURANT A drama series based on the early life and career of NBA superstar Kevin Durant according to Variety https YOU THINK IT I LL SAY IT Apple has ordered a 10 episode half hour run of the comedy show which is an adaptation of Curtis Sittenfeld s short story collection by the same name Variety reported https WHIPLASH DIRECTOR DAMIEN CHAZELLE DRAMA SERIES According to Variety Apple has ordered a whole season of a series without first shooting a pilot but no other details are known about the show \\n Apple may offer cut priced bundles with video offering The Information reported on Thursday \",\n \"Investing com Stocks in focus in premarket trade Monday \\n Viacom NASDAQ VIAB jumped 4 2 by 8 04 AM ET 12 04 GMT as the company announced that it had renewed its contract with AT T NYSE T avoiding a blackout of MTV Nickelodeon and Comedy Central for DirecTV users \\n Nike NYSE NKE fell 0 3 after European Union antitrust regulators fined the company 12 5 million euros 14 14 million for restricting cross border sales of merchandising products \\n Apple NASDAQ AAPL dropped 0 3 while markets geared up for a company presentation that is expected to lift the curtain on Monday on a secretive years long effort to build a video streaming prodduct \\n Boeing NYSE BA gained 0 4 as the company preps to brief more than 200 global airline pilots technical leaders and regulators on Wednesday over software and training updates for its 737 MAX aircraft \\n CalAmp NASDAQ CAMP fell 2 4 after JP Morgan downgraded it to neutral from overweight according to Briefing com \\n Winnebago Industries NYSE WGO stock declined 0 9 after the company s fiscal second quarter revenue was lower than expected although earnings per share beat expectations\\n Thermo Fisher Scientific NYSE TMO stock could see movement in the regular session after the company announced that it would acquire Brammer Bio for approximately 1 7 billion in cash \\n Biogen NASDAQ BIIB bounced 1 5 after announcing a new 5 billion buyback The stock had fallen by nearly one third last week after saying it had halted the development of a drug it had been developing to treat Alzheimer s \",\n \"By Yimou Lee TAIPEI Reuters Terry Gou chairman of Apple NASDAQ AAPL supplier Foxconn said on Wednesday he will contest Taiwan s 2020 presidential election shaking up the political landscape at a time of heightened tension between the self ruled island and Beijing Gou Taiwan s richest person with a net worth of 7 6 billion according to Forbes said he would join the already competitive race and take part in the opposition China friendly Kuomintang KMT primaries His decision capped a flurry of news this week that began when Gou told Reuters on Monday he planned to step down from the world s largest contract manufacturer to pave the way for younger talent to move up the company s ranks He announced on Tuesday he was considering a presidential bid and hinted he was close to a decision when he told more than 100 people packed into a temple he would follow the instruction of a sea goddess who had told him to run in the presidential race Peace stability and Taiwan s economy future are my core values Gou said later at the KMT s headquarters in Taipei He urged the party to rediscover the spirit of the KMT the honor of KMT members and the KMT s lost support of the youth Gou s bid which requires KMT approval comes at a delicate time for cross strait relations and delivers a blow to the ruling pro independence Democratic Progressive NYSE PGR Party which is struggling in opinion polls China Taiwan relations have deteriorated since the island s president Tsai Ing wen of the independence leaning DPP swept to power in 2016 China suspects Tsai is pushing for the island s formal independence That is a red line for China which has never renounced the use of force to bring Taiwan under its control Tsai says she wants to maintain the status quo with China but will defend Taiwan s security and democracy VERY PRO CHINA A senior adviser to Tsai told Reuters he thought Gou s bid could create problems given his extensive business ties with China This is problematic to Taiwan s national security the adviser Yao Chia wen said He s very pro China and he represents the class of the wealthy people Will that gain support from Taiwanese Yao said adding he believed Gou would face a tough battle in the KMT primary Tension between Taipei and Beijing escalated again on Monday as Chinese bombers and warships conducted drills around the island prompting Taiwan to scramble jets and ships to monitor the Chinese forces The KMT which once ruled China before fleeing to Taiwan at the end of a civil war with the Communists in 1949 said in February it could sign a peace treaty with Beijing if it won the hotly contested presidential election Zhang Baohui a regional security analyst at Hong Kong s Lingnan University said Gou s run could mark the start of the most unusual election race in Taiwan history This is something entirely fresh for Taiwan politics here is a candidate who sees everything through the pragmatic angle of a businessman rather than raw politics or ideology Zhang told Reuters He has no baggage and that will be a fascinating scenario Gou s news comes as Tsai is grappling with a series of unpopular domestic reform initiatives from a pension scheme to labour law which have come under intense voter scrutiny The KMT said this week Gou had been a party member for more than 50 years and had given it an interest free loan of T 45 million 1 5 million in 2016 under the name of his mother which had signalled his loyalty to the party Foxconn said on Tuesday Gou would remain chairman of Foxconn though he planned to withdraw from daily operations \"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.947134201503234,\n \"min\": 35.99,\n \"max\": 51.84,\n \"num_unique_values\": 69,\n \"samples\": [\n 43.22,\n 38.72,\n 48.83\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.947413441172774,\n \"min\": 36.43,\n \"max\": 52.12,\n \"num_unique_values\": 67,\n \"samples\": [\n 43.87,\n 39.08,\n 37.96\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.967879507972434,\n \"min\": 35.5,\n \"max\": 51.76,\n \"num_unique_values\": 66,\n \"samples\": [\n 49.54,\n 50.97,\n 38.56\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.999867403609388,\n \"min\": 35.55,\n \"max\": 51.87,\n \"num_unique_values\": 68,\n \"samples\": [\n 48.77,\n 39.08,\n 37.69\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 45745495,\n \"min\": 45448000,\n \"max\": 365248800,\n \"num_unique_values\": 73,\n \"samples\": [\n 216071600,\n 70146400,\n 244439200\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": -1,\n \"max\": 1,\n \"num_unique_values\": 3,\n \"samples\": [\n 1,\n -1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 4 + } + ], + "source": [ + "stock.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "y2ewB36LL9Cz", + "metadata": { + "id": "y2ewB36LL9Cz" + }, + "source": [ + "#### **Understanding the shape of the dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "wWx6wqN0MTPw", + "metadata": { + "id": "wWx6wqN0MTPw", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "edd77532-57d5-4ab5-ebc3-b8a4fa737b0a" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(418, 8)" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "stock.shape" + ] + }, + { + "cell_type": "markdown", + "id": "yQjb8QOTivg3", + "metadata": { + "id": "yQjb8QOTivg3" + }, + "source": [ + "**Observations:**\n", + "* There are a total of 418 records with 8 attributes each." + ] + }, + { + "cell_type": "markdown", + "id": "fPLJXhFcMA7N", + "metadata": { + "id": "fPLJXhFcMA7N" + }, + "source": [ + "#### **Checking the data types of the columns**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Gc_eAiMdMVe2", + "metadata": { + "id": "Gc_eAiMdMVe2", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8c61445b-ef88-4a92-b810-0e15bb3000f5" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 418 entries, 0 to 417\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 418 non-null object \n", + " 1 News 418 non-null object \n", + " 2 Open 418 non-null float64\n", + " 3 High 418 non-null float64\n", + " 4 Low 418 non-null float64\n", + " 5 Close 418 non-null float64\n", + " 6 Volume 418 non-null int64 \n", + " 7 Label 418 non-null int64 \n", + "dtypes: float64(4), int64(2), object(2)\n", + "memory usage: 26.3+ KB\n" + ] + } + ], + "source": [ + "stock.info()" + ] + }, + { + "cell_type": "markdown", + "id": "i1CgPxT5mxEf", + "metadata": { + "id": "i1CgPxT5mxEf" + }, + "source": [ + "Let's convert the Date column to pandas `datetime` type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ZD5fstuv6ery", + "metadata": { + "id": "ZD5fstuv6ery" + }, + "outputs": [], + "source": [ + "# Convert the 'Date' column in the 'stocks' DataFrame to datetime format\n", + "stock['Date'] = pd.to_datetime(stock['Date'])" + ] + }, + { + "cell_type": "markdown", + "id": "8dORemydMDfR", + "metadata": { + "id": "8dORemydMDfR" + }, + "source": [ + "#### **Checking the statistical summary**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "gUazWjegMeQl", + "metadata": { + "id": "gUazWjegMeQl", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "cd88b728-318a-4f67-d74e-71373400a55b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Date Open High Low \\\n", + "count 418 418.000000 418.000000 418.000000 \n", + "mean 2019-02-14 12:24:06.889952256 42.308852 42.787321 41.923732 \n", + "min 2019-01-02 00:00:00 35.990000 36.430000 35.500000 \n", + "25% 2019-01-11 00:00:00 38.130000 38.420000 37.720000 \n", + "50% 2019-01-31 00:00:00 41.530000 42.250000 41.140000 \n", + "75% 2019-03-21 00:00:00 47.190000 47.427500 46.480000 \n", + "max 2019-04-29 00:00:00 51.840000 52.120000 51.760000 \n", + "std NaN 4.947134 4.947413 4.967880 \n", + "\n", + " Close Volume Label \n", + "count 418.000000 4.180000e+02 418.000000 \n", + "mean 42.418517 1.294225e+08 0.308612 \n", + "min 35.550000 4.544800e+07 -1.000000 \n", + "25% 38.270000 1.029072e+08 -1.000000 \n", + "50% 41.610000 1.156272e+08 1.000000 \n", + "75% 47.032500 1.511252e+08 1.000000 \n", + "max 51.870000 3.652488e+08 1.000000 \n", + "std 4.999867 4.574550e+07 0.943473 " + ], + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateOpenHighLowCloseVolumeLabel
count418418.000000418.000000418.000000418.0000004.180000e+02418.000000
mean2019-02-14 12:24:06.88995225642.30885242.78732141.92373242.4185171.294225e+080.308612
min2019-01-02 00:00:0035.99000036.43000035.50000035.5500004.544800e+07-1.000000
25%2019-01-11 00:00:0038.13000038.42000037.72000038.2700001.029072e+08-1.000000
50%2019-01-31 00:00:0041.53000042.25000041.14000041.6100001.156272e+081.000000
75%2019-03-21 00:00:0047.19000047.42750046.48000047.0325001.511252e+081.000000
max2019-04-29 00:00:0051.84000052.12000051.76000051.8700003.652488e+081.000000
stdNaN4.9471344.9474134.9678804.9998674.574550e+070.943473
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"stock\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1970-01-01 00:00:00.000000418\",\n \"max\": \"2019-04-29 00:00:00\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"418\",\n \"2019-02-14 12:24:06.889952256\",\n \"2019-03-21 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.29734162506347,\n \"min\": 4.947134201503234,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 42.308851674641154,\n 47.19,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.18648944299875,\n \"min\": 4.947413441172774,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 42.78732057416268,\n 47.427499999999995,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.4078256172517,\n \"min\": 4.967879507972434,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 41.923732057416274,\n 46.48,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 135.30548063571206,\n \"min\": 4.999867403609388,\n \"max\": 418.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 42.41851674641149,\n 47.0325,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 111473859.17448182,\n \"min\": 418.0,\n \"max\": 365248800.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 129422491.86602871,\n 151125200.0,\n 418.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 147.67411440583984,\n \"min\": -1.0,\n \"max\": 418.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.30861244019138756,\n 0.9434730920044713,\n -1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "stock.describe()" + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Observations:**\n", + "\n", + "- **Date Range and Trading Period**:\n", + " - The data covers a period from January 2, 2019, to April 29, 2019, indicating a span of approximately four months.\n", + "\n", + "- **Price Overview**:\n", + " - **Average Prices**: The average opening price is approximately \\$42.30, while the average closing price is about \\$42.41.\n", + " - **Price Variability**: The prices range from a minimum of around \\$35.99 for opening to a maximum of \\$51.84 for opening, reflecting significant volatility during this period.\n", + "\n", + "- **Trading Volume**:\n", + " - The average trading volume is approximately 129.42 million shares, with fluctuations from around 45.45 million to 365.24 million, highlighting varying market activity levels." + ], + "metadata": { + "id": "0wZ7x_5W77tD" + }, + "id": "0wZ7x_5W77tD" + }, + { + "cell_type": "markdown", + "id": "lXRpNWnQMGIY", + "metadata": { + "id": "lXRpNWnQMGIY" + }, + "source": [ + "#### **Checking the duplicate values**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ti4UpPi6M5kM", + "metadata": { + "id": "ti4UpPi6M5kM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "66fad013-2ec1-4ec3-9cfe-842656486d7c" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ], + "source": [ + "stock.duplicated().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "XkwHzJH6k_jx", + "metadata": { + "id": "XkwHzJH6k_jx" + }, + "source": [ + "**Observations:**\n", + "* There are no duplicate values." + ] + }, + { + "cell_type": "markdown", + "id": "fxghULa0MOY-", + "metadata": { + "id": "fxghULa0MOY-" + }, + "source": [ + "#### **Checking for missing values**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "yItWheKoNGkf", + "metadata": { + "id": "yItWheKoNGkf", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "ff1d5335-a019-465d-e7f8-546c97e5873f" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Date 0\n", + "News 0\n", + "Open 0\n", + "High 0\n", + "Low 0\n", + "Close 0\n", + "Volume 0\n", + "Label 0\n", + "dtype: int64" + ], + "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", + "
0
Date0
News0
Open0
High0
Low0
Close0
Volume0
Label0
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "stock.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "qg7TsQTclDUS", + "metadata": { + "id": "qg7TsQTclDUS" + }, + "source": [ + "**Observations:**\n", + "* There are no missing values." + ] + }, + { + "cell_type": "markdown", + "id": "hGHBK8-QeKOB", + "metadata": { + "id": "hGHBK8-QeKOB" + }, + "source": [ + "## **Exploratory Data Analysis**" + ] + }, + { + "cell_type": "markdown", + "id": "Q0UlMQnyegl7", + "metadata": { + "id": "Q0UlMQnyegl7" + }, + "source": [ + "### **Univariate Analysis**" + ] + }, + { + "cell_type": "markdown", + "id": "RrznHeBaLu0W", + "metadata": { + "id": "RrznHeBaLu0W" + }, + "source": [ + "#### **Countplot on Label**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "meVjTKoxLpmA", + "metadata": { + "id": "meVjTKoxLpmA", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "dcd02675-45e6-4016-fb12-10ce1aef7018" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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VVlZeclDAQAAtERQIdO5c2d9/vnnzdY/++wzJSQkXPJQAAAALRFUyEyaNEkPPvig3n//fTU2NqqxsVHvvfeeHnroIU2cOLG1ZwQAADiroK6R+f3vf68jR45o9OjRCg//7hBNTU3Kzc3VokWLWnVAAACAc7nokPH5fHI6nSouLtbChQu1d+9excTEqF+/furevfvlmBEAAOCsggqZXr166cCBA0pNTVVqaurlmAsAAOCCLvoambCwMKWmpurEiROXYx4AAIAWC+pi3yeffFKPPPKI9u/f39rzAAAAtFhQF/vm5ubq22+/1YABAxQZGamYmJiA/SdPnmyV4QAAAM4nqJBZvnx5K48BAABw8YIKmSvtVxAAAAAzBXWNjCR9/fXXmjNnjiZNmqRjx45Jkt566y0dOHCg1YYDAAA4n6BCprS0VP369dOuXbv02muvqba2VtJ3v6Jg3rx5rTogAADAuQQVMo899pgWLlyod955R5GRkf71UaNGaefOna02HAAAwPkEFTL79u3THXfc0Wy9c+fOOn78+CUPBQAA0BJBhUxcXJyOHj3abP3TTz/V9ddff8lDAQAAtERQITNx4kQ9+uijcjqdstlsampq0o4dO/Twww8rNze3xcdZtWqV+vfvr9jYWMXGxiozM1NvvfWWf399fb3y8vKUkJCgDh06KCcnRy6XK5iRAQDAFSiokFm0aJHS0tLkcDhUW1urPn366KabbtKNN96oOXPmtPg43bp105NPPqny8nLt2bNHo0aN0rhx4/zvfJo1a5a2bNmijRs3qrS0VNXV1ZowYUIwIwMAgCuQzefz+YJ9cFVVlfbt26e6ujoNGjRIvXr1uuSB4uPjtWTJEt1555267rrrtGHDBt15552SpIMHD6p3794qKyvT8OHDz/p4r9crr9frv+3xeORwOOR2uxUbGxvUTOmPrA/qcbhylS9p+ZlH4GrB35X4b5f696TH45Hdbr/gz++gP0dm7dq1GjNmjO644w7dfffdGj9+vP70pz8Fezg1NjbqpZdeUl1dnTIzM1VeXq7Tp08rKyvLf5+0tDQlJyerrKzsnMcpLCyU3W73bw6HI+iZAABAaAvqk33nzp2rpUuXasaMGcrMzJQklZWVadasWaqsrNSCBQtafKx9+/YpMzNT9fX16tChgzZt2qQ+ffpo7969ioyMVFxcXMD9ExMT5XQ6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\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.countplot(data=stock, x='Label', stat=\"percent\");" + ] + }, + { + "cell_type": "markdown", + "id": "nXPvfQr-Avd7", + "metadata": { + "id": "nXPvfQr-Avd7" + }, + "source": [ + "**Observations:**\n", + "* The dataset is imbalanced for the sentiment polarities.\n", + "* There is more news content with positive polarity compared to other types." + ] + }, + { + "cell_type": "markdown", + "id": "dpGHhbGeeoF8", + "metadata": { + "id": "dpGHhbGeeoF8" + }, + "source": [ + "#### **Density Plot of Price (Open, High, Low, Close)**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "BKqgbg0_v5EM", + "metadata": { + "id": "BKqgbg0_v5EM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "0a50f216-e030-496b-de8c-cc3a2b8153ca" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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tHXrVme+UUhICLfccguzZ89m+fLlbNq0iZtuuolx48YxduzYVvz0nYtjJMk9Hwkgt9yVuG3q6paTZK7WlmQDhEghyVNZUoQ/T1zQH4AXF+1h+R5HgdEuMPZ27f2SOWDRAu63Vuzn8/XZKAr88/LBhDe15D9tGay15zRd8Ar4drzR3yBTENf1uw6AD3d82ORv5oPiQwj31VNr9GX9jkzq7P/+eehlX6yStuRkdVe0IkVR0Pn7t/pXk7+QeBEeHs7UqVN58803qa6ubnT+8Bkd0KbOtm3b5tF+9erV6HQ6+vTp4zw2bNgwHn30UdasWcPAgQP57LPPABg+fDipqan07Nmz0ZdOd/whT5sGSVdddRUvvfQSc+bMYejQoWzdupVFixY5k7OzsrI8htHGjx/PZ599xnvvvceQIUP4+uuv+f777xk4cKCzzY8//siwYcM4/3xt2evVV1/NsGHDeOcdV5n/f/3rX1xwwQVcdtllTJw4kdjYWL79VnbKPhHO6Ta3kaQacwNlNVpF5ajaMkzuy//L7UnbPsHgG9Jq/RTt03VjkrhmdCKqCrd/uomFO+x/7yfcCwFRULQX62/P8sriVP5pX8325AX9mWLf5LWRijz43h5gjbrVOQrVEV3T9xp89b6klKTwZ5731UA6ncKkflq6wKaYPhS9+17jRt2ngKKHor1SfVu0mjfffBOr1cro0aP55ptv2LdvHykpKfz73//2Ontz3XXX4evry4033sjOnTtZvnw5d999NzfccAMxMTFkZGTw6KOPsnbtWjIzM1m8eDH79u1z5iXNmTOHTz75hKeffppdu3aRkpLCF198weOPP968D6CKZikvL1cBtby8vK270i5c9/N16sB5A9VfM351HttXUKl2fXiB2nf21+qe007zvGDfUlV9MlhV3xzbyj0V7VW9xarO/HCd2vXhBWrXhxeoD87fqm7NKlVzN/2sLn58snrFI/90nvvHopSmb1RXoapvT9C+v94Yo6rmmtb7ECfJ838+rw6cN1C95ddbmmzz3eaDateHF6hT/vquurtvP7UuLa1xow+man8u698/ib0VwlNubq565513ql27dlVNJpMaHx+vXnTRRery5ctVVVVVQP3uu++c7bdv365OmTJF9fX1VcPDw9VZs2aplZWVqqqqan5+vjp9+nQ1Li5ONZlMateuXdU5c+aoVqvV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\n" + }, + "metadata": {} + } + ], + "source": [ + "# Plot KDE for the 'Open', 'High', 'Low', 'Close' columns of the 'stock' DataFrame.\n", + "sns.displot(data=stock[['Open','High','Low','Close']], kind='kde', palette=\"tab10\"); # Create a KDE plot with a color palette." + ] + }, + { + "cell_type": "markdown", + "id": "l5jX1Kp-lbD5", + "metadata": { + "id": "l5jX1Kp-lbD5" + }, + "source": [ + "**Observations:**\n", + "* The distributions of the prices are quite similar, with the high price showing a slight variation than the others." + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Histogram on Volume**" + ], + "metadata": { + "id": "1wBKKuVIaWnl" + }, + "id": "1wBKKuVIaWnl" + }, + { + "cell_type": "code", + "source": [ + "sns.histplot(stock, x='Volume');" + ], + "metadata": { + "id": "FMDJ_m6maaoK", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "fa63eb8f-f159-41cc-c969-fce63404ff4b" + }, + "id": "FMDJ_m6maaoK", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGwCAYAAACzXI8XAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAMEVJREFUeJzt3X1cVHXe//H3oDBgyhjecJMgaApoeZN5g7qbGUWu+dBLtrKyKN1qu9BN6U66UtMsurlSNyPNLsV1Wy83t3Rr27SkpFI0pdw00dVWG0vAqGC8wVHh/P7Yn3NFgsEwcObA6/l4nMfDczMfPvN9HIa3Z75zxmYYhiEAAAALCjC7AQAAAG8RZAAAgGURZAAAgGURZAAAgGURZAAAgGURZAAAgGURZAAAgGW1NruBxlZVVaUjR46oXbt2stlsZrcDAADqwDAMHTt2TFFRUQoIqP26S7MPMkeOHFF0dLTZbQAAAC8cPnxYXbp0qXV/sw8y7dq1k/TvgQgNDTW5GwAAUBcul0vR0dGev+O1afZB5tzbSaGhoQQZAAAs5uemhTDZFwAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWBZBBgAAWFZrsxtA8+Z0OlVaWtrgOh07dlRMTIwPOgIANCcEGTQap9OphIREVVScbHCtkJA22ru3kDADAKiGIINGU1paqoqKkxo8abZCI2O9ruMqOqRty+eotLSUIAMAqIYgg0YXGhmrsJh4s9sAADRDTPYFAACWRZABAACWZWqQqays1MyZMxUXF6eQkBB1795dTzzxhAzD8BxjGIZmzZqlyMhIhYSEKDk5Wfv37zexawAA4C9MDTLPPPOMFi9erBdffFGFhYV65pln9Oyzz2rRokWeY5599lm98MILWrJkibZt26aLLrpIKSkpOnXqlImdAwAAf2DqZN8tW7Zo7NixGj16tCQpNjZW//u//6tPPvlE0r+vxixcuFCPPfaYxo4dK0lauXKlwsPDtW7dOk2YMOG8mm63W26327Pucrma4JkAAAAzmHpFZujQocrNzdU///lPSdI//vEPffzxxxo1apQk6eDBgyouLlZycrLnMQ6HQ4MHD1Z+fn6NNbOysuRwODxLdHR04z8RAABgClOvyMyYMUMul0sJCQlq1aqVKisr9eSTT+q2226TJBUXF0uSwsPDqz0uPDzcs++nMjMzlZGR4Vl3uVyEGQAAmilTg8xrr72mP/3pT1q1apV69+6tnTt3atq0aYqKilJaWppXNe12u+x2u487BQAA/sjUIPPQQw9pxowZnrkul19+ub766itlZWUpLS1NERERkqSSkhJFRkZ6HldSUqJ+/fqZ0TIAAPAjps6ROXnypAICqrfQqlUrVVVVSZLi4uIUERGh3Nxcz36Xy6Vt27YpKSmpSXsFAAD+x9QrMmPGjNGTTz6pmJgY9e7dW5999pnmz5+vSZMmSZJsNpumTZumefPmqUePHoqLi9PMmTMVFRWlcePGmdk6AADwA6YGmUWLFmnmzJn6z//8Tx09elRRUVG69957NWvWLM8xDz/8sE6cOKF77rlHZWVlGj58uNavX6/g4GATOwcAAP7A1CDTrl07LVy4UAsXLqz1GJvNprlz52ru3LlN1xgAALAEvmsJAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYFkEGAABYlqlBJjY2Vjab7bwlPT1dknTq1Cmlp6erQ4cOatu2rVJTU1VSUmJmywAAwI+YGmS2b9+uoqIiz/Lee+9Jkm688UZJ0vTp0/XWW29pzZo1ysvL05EjRzR+/HgzWwYAAH6ktZk/vFOnTtXWn376aXXv3l1XXXWVysvLtWzZMq1atUojR46UJOXk5CgxMVFbt27VkCFDaqzpdrvldrs96y6Xq/GeAAAAMJXfzJE5ffq0Xn31VU2aNEk2m00FBQU6c+aMkpOTPcckJCQoJiZG+fn5tdbJysqSw+HwLNHR0U3RPgAAMIHfBJl169aprKxMd955pySpuLhYQUFBat++fbXjwsPDVVxcXGudzMxMlZeXe5bDhw83YtcAAMBMpr619GPLli3TqFGjFBUV1aA6drtddrvdR10BAAB/5hdB5quvvtLGjRv1xhtveLZFRETo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edsDAwNVVVXlVSNPP/20bDabpk2b5tl26tQppaenq0OHDmrbtq1SU1NVUlLiVX0AAND8eBVkRo4cqfvvv19HjhzxbPvmm280ffp0XXPNNfWut337dr388svq06dPte3Tp0/XW2+9pTVr1igvL09Hjhw57x42AACg5fIqyLz44otyuVyKjY1V9+7d1b17d8XFxcnlcmnRokX1qnX8+HHddttteuWVV3TxxRd7tpeXl2vZsmWaP3++Ro4cqQEDBignJ0dbtmzR1q1bvWkbAAA0M17NkYmOjtann36qjRs3au/evZKkxMREJScn17tWenq6Ro8ereTkZM2bN8+zvaCgQGfOnKlWMyEhQTExMcrPz9eQIUNqrOd2u+V2uz3rLper3j0BAABrqNcVmffff1+9evWSy+WSzWbTtddeq6lTp2rq1KkaOHCgevfurY8++qjO9VavXq1PP/1UWVlZ5+0rLi5WUFCQ5+Pd54SHh6u4uLjWmllZWXI4HJ4lOjq6zv0AAABrqVeQWbhwoe6++26Fhoaet8/hcOjee+/V/Pnz61Tr8OHDuv/++/WnP/3Jp180mZmZqfLycs9y+PBhn9UGAAD+pV5B5h//+Ieuv/76Wvdfd911KigoqFOtgoICHT16VFdccYVat26t1q1bKy8vTy+88IJat26t8PBwnT59WmVlZdUeV1JSooiIiFrr2u12hYaGVlsAAEDzVK85MiUlJTV+7NpTrHVrffvtt3Wqdc0112jXrl3Vtt11111KSEjQI488oujoaAUGBio3N1epqamSpH379snpdCopKak+bQMAgGaqXkHmkksu0e7du3XppZfWuP/zzz9XZGRknWq1a9dOl112WbVtF110kTp06ODZPnnyZGVkZCgsLEyhoaGaOnWqkpKSap3oCwAAWpZ6vbX0q1/9SjNnztSpU6fO21dRUaHZs2frhhtu8FlzCxYs0A033KDU1FT98pe/VEREhN544w2f1QcAANZWrysyjz32mN544w317NlTU6ZMUXx8vCRp7969ys7OVmVlpf7rv/7L62Y2bdpUbT04OFjZ2dnKzs72uiYAAGi+6hVkwsPDtWXLFt13333KzMyUYRiSJJvNppSUFGVnZys8PLxRGgUAAPipet8Qr2vXrvr73/+uH374QQcOHJBhGOrRo0e1u/ICAAA0Ba/u7CtJF198sQYOHOjL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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Observations:**\n", + "* In a large portion of the time considered, 80 to 175 million shares of the stock were traded, with occasional days where the volume rose to more than 200 million." + ], + "metadata": { + "id": "gNzyLLIgfnz6" + }, + "id": "gNzyLLIgfnz6" + }, + { + "cell_type": "markdown", + "id": "9GVt_AAbe29X", + "metadata": { + "id": "9GVt_AAbe29X" + }, + "source": [ + "#### **Histogram and statistical summary on News Length**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0kwZSJvwOUpa", + "metadata": { + "id": "0kwZSJvwOUpa", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "9c9e9158-a8e5-4f51-9321-d54fb2ed6675" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "count 418.000000\n", + "mean 525.662679\n", + "std 303.584080\n", + "min 44.000000\n", + "25% 304.250000\n", + "50% 480.000000\n", + "75% 700.500000\n", + "max 2142.000000\n", + "Name: news_len, dtype: float64" + ], + "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", + "
news_len
count418.000000
mean525.662679
std303.584080
min44.000000
25%304.250000
50%480.000000
75%700.500000
max2142.000000
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 14 + } + ], + "source": [ + "#Calculating the total number of words present in the news content.\n", + "stock['news_len'] = stock['News'].apply(lambda x: len(x.split(' ')))\n", + "stock['news_len'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "NWn03B4Xey5d", + "metadata": { + "id": "NWn03B4Xey5d", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "abfb1de2-8239-4a5d-d9e3-71b30ad328ef" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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1adPH2vjxo3d+nj9iZD5nieffNJyuVxWeHi4NX78eGv79u12j9TrzJw500pOTrbCw8Otc88915o5c6a1e/du7/6WlhbrP/7jP6z+/ftbffv2tf71X//Vqq2t9Vljz5491pQpU6yoqCgrPj7e+s1vfmN1dHR090PpkbZs2WJJOuE2e/Zsy7K++yfY999/v5WYmGhFRERYV199tVVVVeWzxsGDB62bbrrJio6OtpxOp3XrrbdaTU1NPsd89tln1oQJE6yIiAjr3HPPtR5++OHueog9xunO1ZEjR6xJkyZZAwcOtMLCwqzBgwdbt99++wn/48a56h4nO0+SrDVr1niP8dfPvi1btlijRo2ywsPDraFDh/p8DxPx6dcAAMBYXCMDAACMRcgAAABjETIAAMBYhAwAADAWIQMAAIxFyAAAAGMRMgAAwFiEDAAAMBYhA6DXcDgcevXVV+0eA4AfETIAAMBYhAwAADAWIQPgR7vyyit111136Z577lFcXJySkpL04IMPevc3NDTotttu08CBA+V0OjVx4kR99tlnkqTGxkb16dNHH3/8sSSps7NTcXFxuuSSS7xf/z//8z9KSUmRJLW3t2vu3LlKTk5WZGSkBg8erKVLl3Zp7r179+qGG25QbGys4uLiNHXqVO3Zs8e7/5ZbbtG0adP02GOPKTk5WQMGDFB+fr46Ojq69P0A+B8hA8AvnnvuOZ1zzjkqKyvTsmXLtGTJEm3atEmS9LOf/UwHDhzQ22+/rfLyco0ePVpXX321Dh06pJiYGI0aNUrFxcWSpC+++EIOh0OffvqpmpubJUklJSW64oorJElPPPGEXn/9db388suqqqrSCy+8oCFDhpz1vB0dHcrNzVW/fv303nvv6f3331d0dLQmT56s9vZ273FbtmzR119/rS1btui5557T2rVrtXbt2h/1ewXAfwgZAH4xYsQILVq0SGlpafrFL36hsWPHqqioSNu2bdOHH36oDRs2aOzYsUpLS9Njjz2m2NhY/e///q+k757ROR4yxcXFuuaaa5SZmalt27Z5tx0PmZqaGqWlpWnChAkaPHiwJkyYoJtuuums533ppZfU2dmp//7v/9ZFF12kzMxMrVmzRjU1Nd5ZJKl///566qmnlJGRoeuuu07XXnutioqKftxvFgC/IWQA+MWIESN87icnJ+vAgQP67LPP1NzcrAEDBig6Otp7q66u1tdffy1JuuKKK7Rt2zYdO3ZMJSUluvLKK71xs3//fu3evVtXXnmlpO9e7tmxY4fS09N111136c9//nOX5v3ss8+0e/du9evXzztTXFycWltbvXNJ0vDhw9WnT58THheA4BBq9wAAeoawsDCf+w6HQ52dnWpublZycrLPsxzHxcbGSpIuv/xyNTU16ZNPPtHWrVv10EMPKSkpSQ8//LBGjhypQYMGKS0tTZI0evRoVVdX6+2339a7776rG264QTk5Od5nd85Uc3OzxowZoxdeeOGEfQMHDvzBxwUgOBAyAAJq9OjRcrvdCg0NPeW1LLGxsRoxYoSeeuophYWFKSMjQwkJCZo5c6befPNN78tKxzmdTs2cOVMzZ87Uv/3bv2ny5Mk6dOiQ4uLizmqul156SQkJCXI6nT/mIQKwES8tAQionJwcZWdna9q0afrzn/+sPXv26IMPPtDvfvc7779Ukr67TuaFF17wRktcXJwyMzP10ksv+YTM8uXL9eKLL6qyslJ/+ctftGHDBiUlJXmf3TlTs2bNUnx8vKZOnar33ntP1dXVKi4u1l133aVvvvnGL48dQOARMgACyuFw6K233tLll1+uW2+9VRdccIFuvPFG/e1vf1NiYqL3uCuuuELHjh3zXgsjfRc339/Wr18/LVu2TGPHjtW4ceO0Z88evfXWWwoJObsfZ3379tXWrVvlcrk0ffp0ZWZmas6cOWptbeUZGsAgDsuyLLuHAAAA6AqekQEAAMYiZAD0CC+88ILPP+/+59vw4cPtHg9AgPDSEoAeoampSXV1dSfdFxYWpsGDB3fzRAC6AyEDAACMxUtLAADAWIQMAAAwFiEDAACMRcgAAABjETIAAMBYhAwAADAWIQMAAIxFyAAAAGP9P3Zdf69mWePrAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.histplot(data=stock,x='news_len');" + ] + }, + { + "cell_type": "markdown", + "id": "VWLWG2X8mrCw", + "metadata": { + "id": "VWLWG2X8mrCw" + }, + "source": [ + "**Observations:**\n", + "* Most of the news have between 50 - 1000 words, with an average of 525 words\n", + " * The shortest news has 44 words\n", + "\n", + "* This indicates that these are likely to be news summaries rather than the actual news content itself." + ] + }, + { + "cell_type": "markdown", + "id": "hLE0s7OFKilB", + "metadata": { + "id": "hLE0s7OFKilB" + }, + "source": [ + "### **Bivariate Analysis**" + ] + }, + { + "cell_type": "markdown", + "id": "Yn_9wfzxL-r1", + "metadata": { + "id": "Yn_9wfzxL-r1" + }, + "source": [ + "#### **Correlation**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "gOBaxNZeKllB", + "metadata": { + "id": "gOBaxNZeKllB", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c46aaa76-2682-4469-c36e-44097287cc6e" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "cols = ['Open','High','Low','Close','Volume','news_len']\n", + "sns.heatmap(\n", + " stock[cols].corr(), annot=True, vmin=-1, vmax=1, fmt=\".2f\", cmap=\"Spectral\"\n", + ")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "15UHbBu8Cucj", + "metadata": { + "id": "15UHbBu8Cucj" + }, + "source": [ + "**Observations:**\n", + "* The prices are all perfectly correlated.\n", + " * This might be due to the minimum variation between the different prices.\n", + "\n", + "* There is a negative correlation, albeit very low, between volume and prices.\n", + " * This might be due to selling pressure during periods of negative sentiment." + ] + }, + { + "cell_type": "markdown", + "id": "h-Hz7CpdMAi3", + "metadata": { + "id": "h-Hz7CpdMAi3" + }, + "source": [ + "#### **Label vs Price (Open, High, Low, Close)**" + ] + }, + { + "cell_type": "code", + "source": [ + "plt.figure(figsize=(10, 8))\n", + "\n", + "for i, variable in enumerate(['Open', 'High', 'Low', 'Close']):\n", + " plt.subplot(2, 2, i + 1)\n", + " sns.boxplot(data=stock, x=\"Label\", y=variable)\n", + " plt.tight_layout(pad=2)\n", + "\n", + "plt.show()" + ], + "metadata": { + "id": "lCVHNWhgMElU", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b838000a-b88f-43ac-90ee-499cf11fa5ee" + }, + "id": "lCVHNWhgMElU", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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H3+UJCUnJ+upp57SyJEjJUnl5eV64okntHXrVp08eVKJiYmaO3euxo0bZ2DVANBwdLwAAADey9BA3K1bNy1cuFA9evRQbW2tVq1apbvvvlv79u1TcnKyJkyYoMrKSm3atEmdOnXSm2++qfHjx+vzzz9X3759jSwdcOF6Q9/B7woAAAAXMjQQjxkzxu1xdna28vLytGvXLiUnJ2vnzp3Ky8vTgAEDJEnz5s3T4sWLVVRURCCG4bg+1DdxbSgAAADqeM01xDU1NXr77bd16tQppaWlSZIGDhyot956S6NHj1ZERITWrVun6upq3X777fW243A45HA4XI/tdrunS4dJcX2ob+LaUAAAANQxPBAXFxcrLS1N1dXV6tChgzZs2KBevXpJktatW6df//rXioqKUnBwsNq3b68NGzYoISGh3vZycnKUlZXVWuXD5Lg+FAAAAPBdgUYXkJiYqP3792v37t169NFHNXHiRH311VeSpCeffFKVlZX66KOP9Pnnn2vWrFkaP368iouL620vIyNDNpvNtZSWlrbWSwEAAAAA+BDDzxC3bdvWdca3f//+2rNnj1544QX94Q9/0NKlS3Xw4EElJydLklJTU7Vjxw7l5ubqpZdeumR7FotFFoul1eoHAAAAAPgmwwPxv3I6nXI4HDp9+rQkKTDQ/SR2UFCQnE6nEaUBAADAyzGjgG/h9wWjGRqIMzIyNHLkSMXFxenkyZN68803lZ+fry1btigpKUkJCQmaPHmyFi1apKioKG3cuFFbt27V+++/b2TZAAD4pby8POXl5enHH3+UJCUnJ+upp57SyJEjJUnl5eV64okntHXrVp08eVKJiYmaO3euxo0bZ2DVwM+Y/cF3MQMEjGRoID5x4oQmTJigY8eOyWq1KiUlRVu2bNEdd9whSdq8ebPmzJmjMWPGqKqqSgkJCVq1apVGjRplZNkAAPilbt26aeHCherRo4dqa2u1atUq3X333dq3b5+Sk5M1YcIEVVZWatOmTerUqZPefPNNjR8/Xp9//jnTIcJwzP7gu5gBAkYyNBCvWLHistt79Oihd955p5WqAQDA3MaMGeP2ODs7W3l5edq1a5eSk5O1c+dO5eXlacCAAZKkefPmafHixSoqKiIQwysw+wOAxjL8LtMAAMD71NTUaO3atTp16pTS0tIkSQMHDtRbb72liooKOZ1OrV27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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Observations:**\n", + "* The median for all prices is significantly lower for negative sentiment news as compared to both positive and neutral sentiment news, indicating that negative news likely triggers investor sell-offs which drive the stock prices down.\n", + "\n", + "* The boxplot for the open price under neutral sentiment displays a notably higher upper whisker relative to positive sentiment. This suggests that the market's opening often covers a wider range of prices when news is neutral.\n", + " * This variability might be attributed to different interpretations of seemingly neutral news, which leads some investors to react more aggressively and drive the opening price to higher levels." + ], + "metadata": { + "id": "axyzmidFWaNS" + }, + "id": "axyzmidFWaNS" + }, + { + "cell_type": "markdown", + "id": "cY9P2rdBMH-h", + "metadata": { + "id": "cY9P2rdBMH-h" + }, + "source": [ + "#### **Label vs Volume**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "mzCxLFg1LCPk", + "metadata": { + "id": "mzCxLFg1LCPk", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "13536009-bc63-4dff-b422-df723211166c" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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OZo6dao++eSTZnv/hQsXyuFweJYvv/yy2d4bAAD4n3ZGB+jQoYN69eolSRoyZIg++ugjPfnkk3r22Wfr7RsVFaWysjKvdWVlZYqKirrg+4eEhCgkJKR5QwMAAL9l+Jmb73O73aqurm5wW2Jionbt2uW17q233rrgGB0AABB4DD1zs3DhQo0bN042m01nzpzRxo0btXv3bu3cuVOSlJycrO7duys9PV2SdN999+m6667TihUrdMstt2jTpk3av3+/MjMzjfwYAADAjxhabk6cOKHk5GSVlJTIarUqPj5eO3fu1I033ihJstvtCgr69uTSiBEjtHHjRi1evFgPPfSQrrrqKm3dulUDBgww6iMAAAA/43fz3LQ05rkBAKDtaZPz3AAAADQHyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVQ8tNenq6hg4dqrCwMHXt2lUTJkzQkSNHLnpMdna2LBaL1xIaGtpKiQEAgL8ztNzs2bNH8+bN0/vvv6+33npL586d00033aTKysqLHhceHq6SkhLPUlxc3EqJAQCAv2tn5A9/4403vF5nZ2era9euOnDggEaNGnXB4ywWi6Kiolo6HgAAaIP8asyNw+GQJEVERFx0v4qKCsXGxiomJkZJSUkqLCy84L7V1dVyOp1eCwAAMC+/KTdut1v333+/Ro4cqQEDBlxwvz59+igrK0vbtm3Thg0b5Ha7NWLECP3jH/9ocP/09HRZrVbPEhMT01IfAQAA+AFLbW1trdEhJGnOnDl6/fXXtXfvXvXo0aPRx507d059+/bV5MmT9cgjj9TbXl1drerqas9rp9OpmJgYORwOhYeHN0v2QFReXq6UlBR99dVXuvLKK7Vy5cofPOMGAEBTOZ1OWa3WRn1/Gzrmps78+fO1fft2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gQOVkZFhdJSAw91SuGRffPGFevbsqUOHDmnQoEFGx0GAGj58uIYOHapnnnlG0jePWomJidG9996rBx980OB0CHQWi0VbtmzRhAkTjI4SEDhzA6DNq6mp0YEDBzRmzBjPuqCgII0ZM0Z5eXkGJgNgBMoNgDbv5MmTcrlcioyM9FofGRmp0tJSg1IBMArlBo2Sk5Ojzp07e5Z3333X6EgAADQo4J4Kjqa57bbbNHz4cM/r7t27G5gG8NalSxcFBwerrKzMa31ZWZmioqIMSgXAKJy5QaOEhYWpV69enqVjx45GRwI8OnTooCFDhmjXrl2edW63W7t27VJiYqKByQAYgTM3aLLy8nLZ7XYdP35cknTkyBFJUlRUFP9aRqtLSUnR1KlTde2112rYsGF64oknVFlZqWnTphkdDQGqoqJCR48e9bwuKipSfn6+IiIiZLPZDExmftwKjibLzs5u8IsjNTVVDz/8cOsHQsB75plntHz5cpWWlmrQoEF66qmnvC6nAq1p9+7duv766+utnzp1qrKzs1s/UACh3AAAAFNhzA0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AADAVyg0AU8jOztbll19+ye9jsVi0devWS34fAMah3ADwG3fffbcmTJhgdAwAbRzlBgAAmArlBkCbsHLlSl1zzTW67LLLFBMTo7lz56qioqLeflu3btVVV12l0NBQjR07Vl9++aXX9m3btuknP/mJQkNDFRcXpyVLluj8+fOt9TEAtALKDYA2ISgoSE899ZQKCwv1pz/9Se+8844WLFjgtc/Zs2eVlpam9evX67333tPp06d11113eba/++67Sk5O1n333adPPvlEzz77rLKzs5WWltbaHwdAC+Kp4AD8xt13363Tp083akDvyy+/rNmzZ+vkyZOSvhlQPG3aNL3//vsaPny4JOmzzz5T37599cEHH2jYsGEaM2aMbrjhBi1cuNDzPhs2bNCCBQt0/PhxSd8MKN6yZQtjf4A2rJ3RAQCgMd5++22lp6frs88+k9Pp1Pnz51VVVaWzZ8+qU6dOkqR27dpp6NChnmOuvvpqXX755fr00081bNgw/fWvf9V7773ndabG5XLVex8AbRvlBoDf++KLLzR+/HjNmTNHaWlpioiI0N69ezVjxgzV1NQ0upRUVFRoyZIlmjhxYr1toaGhzR0bgEEoNwD83oEDB+R2u7VixQoFBX0zVPCll16qt9/58+e1f/9+DRs2TJJ05MgRnT59Wn379pUk/eQnP9GRI0fUq1ev1gsPoNVRbgD4FYfDofz8fK91Xbp00blz5/T000/r1ltv1Xvvvae1a9fWO7Z9+/a699579dRTT6ldu3aaP3++EhISPGXn97//vcaPHy+bzabbb79dQUFB+utf/6qPP/5Yy5Yta42PB6AVcLcUAL+ye/duDR482Gt54YUXtHLlSj3++OMaMGCAcnJylJ6eXu/YTp066be//a3+8z//UyNHjlTnzp314osveraPHTtW27dv15tvvqmhQ4cqISFBq1atUmxsbGt+RAAtjLulAACAqXDmBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmArlBgAAmMr/AyaeGcK8FntgAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.boxplot(\n", + " data=stock, x=\"Label\", y=\"Volume\"\n", + ");" + ] + }, + { + "cell_type": "markdown", + "id": "LFipGtxhOa8g", + "metadata": { + "id": "LFipGtxhOa8g" + }, + "source": [ + "**Observations:**\n", + "* The median trading volume for the stock is approximately the same across all sentiment polarities.\n", + "* The volume distribution for positive sentiment news shows a wider spread compared to other sentiment categories.\n", + " - This wider range might indicate that even positive news leads to diverse interpretations among investors, contributing to varied trading activities and reactions." + ] + }, + { + "cell_type": "markdown", + "id": "9ySUmJUyQ0vi", + "metadata": { + "id": "9ySUmJUyQ0vi" + }, + "source": [ + "#### **Date vs Price (Open, High, Low, Close)**" + ] + }, + { + "cell_type": "markdown", + "id": "tq0NL64DQ0v1", + "metadata": { + "id": "tq0NL64DQ0v1" + }, + "source": [ + "- The data is at the level of news, and we might have more than one news in a day. However, the prices are at daily level\n", + "- So, we can aggregate the data at a daily level by taking the mean of the attributes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bECqvVQtwheA", + "metadata": { + "id": "bECqvVQtwheA", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "89dd8d7b-2323-418b-9e11-544405d0396b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Open High Low Close Volume\n", + "Date \n", + "2019-01-02 38.72 39.71 38.56 39.48 130672400.0\n", + "2019-01-03 35.99 36.43 35.50 35.55 103544800.0\n", + "2019-01-04 36.13 37.14 35.95 37.06 111448000.0\n", + "2019-01-07 37.17 37.21 36.47 36.98 109012000.0\n", + "2019-01-08 37.39 37.96 37.13 37.69 216071600.0" + ], + "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", + "
OpenHighLowCloseVolume
Date
2019-01-0238.7239.7138.5639.48130672400.0
2019-01-0335.9936.4335.5035.55103544800.0
2019-01-0436.1337.1435.9537.06111448000.0
2019-01-0737.1737.2136.4736.98109012000.0
2019-01-0837.3937.9637.1337.69216071600.0
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "stock_daily", + "summary": "{\n \"name\": \"stock_daily\",\n \"rows\": 73,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2019-01-02 00:00:00\",\n \"max\": \"2019-04-29 00:00:00\",\n \"num_unique_values\": 73,\n \"samples\": [\n \"2019-01-08 00:00:00\",\n \"2019-04-15 00:00:00\",\n \"2019-01-30 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.522032992144083,\n \"min\": 35.99,\n \"max\": 51.84,\n \"num_unique_values\": 69,\n \"samples\": [\n 43.22,\n 38.71999999999999,\n 48.830000000000005\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.515838152119043,\n \"min\": 36.43,\n \"max\": 52.12,\n \"num_unique_values\": 68,\n \"samples\": [\n 49.080000000000005,\n 39.08,\n 37.96\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.522815819552585,\n \"min\": 35.5,\n \"max\": 51.76,\n \"num_unique_values\": 66,\n \"samples\": [\n 49.54,\n 50.97,\n 38.56\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.5189565039202,\n \"min\": 35.55,\n \"max\": 51.86999999999999,\n \"num_unique_values\": 68,\n \"samples\": [\n 48.77,\n 39.08,\n 37.68999999999999\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 49858245.96607382,\n \"min\": 45448000.0,\n \"max\": 365248800.0,\n \"num_unique_values\": 73,\n \"samples\": [\n 216071600.0,\n 70146400.0,\n 244439200.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 19 + } + ], + "source": [ + "stock_daily = stock.groupby('Date').agg(\n", + " {\n", + " 'Open': 'mean',\n", + " 'High': 'mean',\n", + " 'Low': 'mean',\n", + " 'Close': 'mean',\n", + " 'Volume': 'mean',\n", + " }\n", + ").reset_index() # Group the 'stocks' DataFrame by the 'Date' column\n", + "\n", + "stock_daily.set_index('Date', inplace=True)\n", + "stock_daily.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7ORSmC3lxrwy", + "metadata": { + "id": "7ORSmC3lxrwy", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "119a6be1-50f4-47be-d5d4-f3cdd077f128" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABMwAAAHACAYAAABeTvS/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd0FdXexvHvaTnpPSEJBEjovQlI71IUqSIoKoodsWD3VQEviF0vguhVFAtiQ1AUUYoggnTpPXRSSe857f3jaCAmICUQyvNZ66ycmdmz5zeD4s1z995jcLlcLkRERERERERERAQAY0UXICIiIiIiIiIicjFRYCYiIiIiIiIiInICBWYiIiIiIiIiIiInUGAmIiIiIiIiIiJyAgVmIiIiIiIiIiIiJ1BgJiIiIiIiIiIicgIFZiIiIiIiIiIiIidQYCYiIiIiIiIiInICc0UXUB6cTifx8fH4+flhMBgquhwREREREREREalALpeL7OxsoqKiMBrPfLzYZRGYxcfHEx0dXdFliIiIiIiIiIjIReTw4cNUqVLljM+7LAIzPz8/wP0Q/P39K7gaERERERERERGpSFlZWURHRxdnRmfqsgjM/p6G6e/vr8BMREREREREREQAznrpLi36LyIiIiIiIiIicgIFZiIiIiIiIiIiIic4o8Bs3LhxGAyGEp+6desCkJaWxujRo6lTpw5eXl5UrVqVBx98kMzMzFP2OWLEiFJ99urV6+zvSERERERERERE5Byc8RpmDRo0YNGiRcc7MLu7iI+PJz4+ntdee4369etz8OBB7r33XuLj4/nmm29O2WevXr346KOPiretVuuZlvWvXC4Xdrsdh8NR7n1fqUwmE2az+aznA4uIiIiIiIiIXIzOODAzm81ERESU2t+wYUNmz55dvF2jRg0mTpzI8OHDsdvtxcFaWaxWa5l9lpeioiISEhLIy8s7b9e4Unl7exMZGYmHh0dFlyIiIiIiIiIiUi7OODDbs2cPUVFReHp60qZNGyZNmkTVqlXLbJuZmYm/v/8pwzKApUuXEh4eTlBQEF27dmXChAmEhISctH1hYSGFhYXF21lZWSdt63Q62b9/PyaTiaioKDw8PDQiqhy4XC6KiopISUlh//791KpVC6NRS+KJiIiIiIiIyKXP4HK5XKfb+KeffiInJ4c6deqQkJDA+PHjOXr0KFu3bsXPz69E22PHjtGiRQuGDx/OxIkTT9rnF198gbe3NzExMcTFxfHMM8/g6+vLH3/8gclkKvOccePGMX78+FL7/w7oTlRQUMD+/fupVq0a3t7ep3urcpry8vI4ePAgMTExeHp6VnQ5IiIiIiIiIiJkZWUREBBQZlZ0Os4oMPunjIwMqlWrxhtvvMHIkSNLFNWjRw+Cg4P5/vvvsVgsp93nvn37qFGjBosWLaJbt25ltilrhFl0dPQpAzMFOueHnq+IiIiIiIiIXGzONTA7pzl0gYGB1K5dm7179xbvy87OplevXvj5+TFnzpwzCssAYmNjCQ0NLdHnP1mtVvz9/Ut8REREREREREREysM5BWY5OTnExcURGRkJuNO7a665Bg8PD77//vuzGnF05MgRUlNTi/sUERERERERERG5kM4oMHvsscdYtmwZBw4cYOXKlQwYMACTycSwYcOKw7Lc3FymT59OVlYWiYmJJCYm4nA4ivuoW7cuc+bMAdyB2+OPP86qVas4cOAAixcvpl+/ftSsWZOePXuW752KiIiIiIiIiIichjMKzI4cOcKwYcOoU6cOQ4YMISQkhFWrVhEWFsaGDRtYvXo1W7ZsoWbNmkRGRhZ/Dh8+XNzHrl27yMzMBMBkMrF582auv/56ateuzciRI2nRogXLly/HarWW751eog4fPswdd9xR/IbPatWq8dBDD5GamlrRpYmIiIiIiIiIXJbMZ9L4iy++OOmxzp07czrvDzixjZeXFz///POZlHBF2bdvH23atKF27drMmjWLmJgYtm3bxuOPP85PP/3EqlWrCA4OrugyRUREREREREQuK+e0htmlyuVykVdkr5DPmbyUdNSoUXh4ePDLL7/QqVMnqlatSu/evVm0aBFHjx7l//7v/wCoXr06//nPfxg2bBg+Pj5UrlyZqVOnlugrIyODO++8k7CwMPz9/enatSubNm0qPj5u3DiaNm3Kp59+SvXq1QkICGDo0KFkZ2eXz0MXERERERERuZzZi2DLN/D5jfDdA+B0VnRFcg7OaITZ5SLf5qD+8xUzsm37Cz3x9vj3x56WlsbPP//MxIkT8fLyKnEsIiKCm2++mS+//JJ33nkHgFdffZVnnnmG8ePH8/PPP/PQQw9Ru3ZtevToAcANN9yAl5cXP/30EwEBAbz33nt069aN3bt3F49Si4uLY+7cufzw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In0jybJmUc+rHiPbjqyRsYmIiIiIiIiI1DQVzBxQ90bdae+XxSenFnLCmsv4+T+zKXkfh2xe9jaB3u7c2jqMPm3C6doiGDcX2JGxg6sbXE2hrZB/bP0HJaaEX079Qmy9WJYMWkKgZ2ANjkpEREREREREpHZQwcwBHck+wom+A3nvZB7jbvwTq3/I4cPvXuFA/SjWPD6FhHZRdG7WAHdXFwCyC7Pp//ldHM8/znd3fkeoTygPt32YJoFNaBLQBEDFMhERERERERGR/1DBzAHlFOVwxCuPWKC1h5X2vlYArooO4ba7OtjbnS4+jbebNwEeAYT5hpFblMu+U/sI9QlldPvRNdR7EREREREREZHaTQUzBxQdEE1qwyZw7CDPXteA/A0byQX8b7rR3uZUwSlGfDuC22JuY2TbkbzS9RWCvYPxcvM6Z1wREREREREREQGXmu6AVJ2vuy9tWpcWx4qOHiV/3brS7d262dusOLyC/Vn7+WzPZ2RZs4jyj1KxTERERERERESkEnSHmYP6zceKN3Dym6+w5Ofj2qABXlddhbXEioeLB3fG3kmRrYhOEZ30fDIRERERERERkSrQHWYOalPJfgAsGZkA+HXtSqEpYszyMUzeMBmbsTG01VBiAmNqsJciIiIiIiIiIo5Hd5g5qIgeffmiaQM6t72dLl5XYYqL2ZC6kY1pG9n2+zbub30/0QHRNd1NERERERERERGHYzHGmJruxKXKzs4mMDCQrKwsAgICaro71a7YVgyAm4sb3/z6DaE+oXQM71jDvRIRERERERERqRmXWivSHWYOylpiZcdfnsGy7idW3n8VRyM9mXLjFPrG9K3promIiIiIiIiIODQ9w8xBnS46jfeni/E6mEbI3CS+P/I9W3/fWtPdEhERERERERFxeLrDzEEFegayvH0QLXdkE/bE40yOjiA+LL6muyUiIiIiIiIi4vBUMHNQFouFP3y0ClteHnH16tV0d0RERERERERE6gwVzByYi4cHLh4eNd0NEREREREREZE6Rc8wExERERERERERKUMFMxERERERERERkTJUMBMRERERERERESlDBTMREREREREREZEyVDATEREREREREREpo0oFs5kzZ9K2bVsCAgIICAigc+fOLFmyxL6/e/fuWCyWcs3mUkIAABW1SURBVJ9Ro0adN6Yxhueff56IiAi8vb3p2bMne/fuvbjRiIiIiIiIiIiIXKIqFcyioqL461//ypYtW9i8eTO33HILd9xxBzt27LC3eeihh0hNTbV/pkyZct6YU6ZMYcaMGbz77rts2LABX19fevfuTUFBwcWNSERERERERERE5BK4VaVxv379yv08efJkZs6cyfr167n66qsB8PHxITw8vFLxjDFMnz6dZ599ljvuuAOAjz76iLCwMD7//HOGDBlSle6JiIiIiIiIiIhcsot+hllJSQlz584lLy+Pzp0727d/8sknBAcH06ZNGyZOnEh+fv45Yxw4cIC0tDR69uxp3xYYGEinTp1Yt27dOY+zWq1kZ2eX+4iIiIiIiIiIiFwOVbrDDGDbtm107tyZgoIC/Pz8WLRoEa1btwbgnnvuITo6msjISLZu3cqECRPYs2cPCxcurDBWWloaAGFhYeW2h4WF2fdVJDExkRdffLGqXRcREREREREREbmgKhfMWrZsSUpKCllZWSxYsIAHHniAVatW0bp1a0aOHGlvFxcXR0REBD169GD//v00a9bssnV64sSJPPHEE/afs7OzadSo0WWLLyIiIiIiIiIizqvKX8n08PCgefPmxMfHk5iYSLt27XjzzTcrbNupUycA9u3bV+H+M886O378eLntx48fP+9z0Dw9Pe1v6jzzERERERERERERuRwu+hlmZ9hsNqxWa4X7UlJSAIiIiKhwf9OmTQkPD2fFihX2bdnZ2WzYsKHcc9FERERERERERESqS5W+kjlx4kT69OlD48aNycnJYc6cOSQlJbF06VL279/PnDlzuO2222jQoAFbt27l8ccf58Ybb6Rt27b2GK1atSIxMZGBAwdisVgYN24cf/nLX2jRogVNmzblueeeIzIykgEDBlzusYqIiIiIiIiIiFxQlQpm6enpDBs2jNTUVAIDA2nbti1Lly7l1ltv5ciRIyxfvpzp06eTl5dHo0aNGDRoEM8++2y5GHv27CErK8v+89NPP01eXh4jR44kMzOTrl278u233+Ll5XV5RigiIiIiIiIiIlIFFmOMqelOXKqsrCyCgoI4cuSInmcmIiIiIiIiIuLkzrwgMjMzk8DAwCofX+W3ZNZGOTk5AHpTpoiIiIiIiIiI2OXk5FxUwaxO3GFms9k4duwY/v7+WCyWmu7OBZ2pcuqOOOej3MuVpjnmvJR756S8Oy/lXq40zTHnpdzLpahN88cYQ05ODpGRkbi4VP2dl3XiDjMXFxeioqJquhtVFhAQUOMTSGqGci9XmuaY81LunZPy7ryUe7nSNMecl3Ivl6K2zJ+LubPsjKqX2EREREREREREROowFcxERERERERERETKUMGsBnh6ejJp0iQ8PT1ruitSzZR7udI0x5yXcu+clHfnpdzLlaY55ryUe7kUdWn+1ImH/ouIiIiIiIiIiFwuusNMRERERERERESkDBXMREREREREREREylDBTEREREREREREpAwVzERERERERERERMqo0wWzxMREOnbsiL+/P6GhoQwYMIA9e/aUa1NQUMCYMWNo0KABfn5+DBo0iOPHj5dr8+ijjxIfH4+npyft27ev8Fzz5s2jffv2+Pj4EB0dzdSpUyvVx/nz59OqVSu8vLyIi4tj8eLF5fYvXLiQXr160aBBAywWCykpKZWKe/LkSe69914CAgIICgriwQcfJDc3t9y4hw8fTlxcHG5ubgwYMKBScR2BM+d98uTJdOnSBR8fH4KCgipsY7FYzvrMnTu3UvHlvxx9nhUVFTFhwgTi4uLw9fUlMjKSYcOGcezYsQvGPXz4MH379sXHx4fQ0FCeeuopiouL7ftTU1O55557iI2NxcXFhXHjxlWqv47CmXN/oT4fPHiwwjVm/fr1lep3beboeQd44YUXaNWqFb6+vtSrV4+ePXuyYcOGC8Z15mvemfPuzNd7dasL86ysUaNGYbFYmD59+gXjan1xzrxrfbk86sIcGj58+Fl5TkhIuGDc6lo76nTBbNWqVYwZM4b169ezbNkyioqK6NWrF3l5efY2jz/+OF999RXz589n1apVHDt2jD/84Q9nxfq///s/7r777grPs2TJEu69915GjRrF9u3beeedd3jjjTd4++23z9u/tWvXMnToUB588EGSk5MZMGAAAwYMYPv27fY2eXl5dO3alVdffbVKY7/33nvZsWMHy5Yt4+uvv2b16tWMHDnSvr+kpARvb28effRRevbsWaXYtZ0z572wsJC77rqL0aNHn7fdrFmzSE1NtX/qUsG0ujj6PMvPz+enn37iueee46effmLhwoXs2bOH/v37nzduSUkJffv2pbCwkLVr1/Lhhx8ye/Zsnn/+eXsbq9VKSEgIzz77LO3atTtvPEfkrLmvTJ/PWL58ebk1Jj4+vlKxazNHzztA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\n" + }, + "metadata": {} + } + ], + "source": [ + "plt.figure(figsize=(15,5))\n", + "sns.lineplot(stock_daily.drop('Volume', axis=1));" + ] + }, + { + "cell_type": "markdown", + "id": "5EZ5L0-UQ0v2", + "metadata": { + "id": "5EZ5L0-UQ0v2" + }, + "source": [ + "**Observations:**\n", + "* The stock price has gradually increased over time from ~\\$40 to ~\\$50 in the period for which the data is available." + ] + }, + { + "cell_type": "markdown", + "id": "KG4y9NK1Ng1-", + "metadata": { + "id": "KG4y9NK1Ng1-" + }, + "source": [ + "#### **Volume vs Close Price**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0WMHYw6w0TM6", + "metadata": { + "id": "0WMHYw6w0TM6", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8517bfee-4d34-40e8-a1cd-567350afe1bb" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABVIAAAHPCAYAAACx9CHwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8k+X6P/BPmjTdg9GWskFmWQJKoZShoKAe3OKPLx4cOI4CBdQD1oEKKEM9aIWjyBHQoxxEUZwHxQFlSZHhAVEUBcrqgNKVNk2aPL8/bp90ZbZJnifp5/165dXs3IGO5JPrum6NJEkSiIiIiIiIiIiIiMihEKUXQERERERERERERKR2DFKJiIiIiIiIiIiIXGCQSkREREREREREROQCg1QiIiIiIiIiIiIiFxikEhEREREREREREbnAIJWIiIiIiIiIiIjIBQapRERERERERERERC4wSCUiIiIiIiIiIiJygUEqERERERERERERkQsMUomIiIiIiIiIiIhcYJBKRERERERERESqkZ2djQkTJqBt27bQaDTYtGmTx/fx5ZdfYujQoYiJiUFCQgJuueUWnDhxwutrpeaFQSoREREREREREamGwWDAgAEDsGLFikbd/vjx47jhhhtw5ZVX4uDBg/jyyy9x/vx53HzzzV5eKTU3GkmSJKUXQUREREREREREVJ9Go8FHH32EG2+80XZeVVUVnnjiCfznP/9BcXEx+vbtiyVLlmD06NEAgA8++ACTJk1CVVUVQkJEDeGnn36KG264AVVVVQgNDVXgmVAwYEUqEREREREREREFjOnTp2P37t1Yv349/ve//+G2227D+PHj8dtvvwEABg8ejJCQEKxZswYWiwUlJSX497//jbFjxzJEpSZhRSoREREREREREalS/YrU3NxcdO3aFbm5uWjbtq3temPHjsWQIUPw/PPPAwC2bduGiRMn4sKFC7BYLBg2bBi++OILxMfHK/AsKFiwIpWIiIiIiIiIiALCoUOHYLFY0KNHD0RHR9sO27Ztw++//w4AyMvLw3333Yc777wTe/fuxbZt26DX63HrrbeC9YTUFDqlF0BEREREREREROSO8vJyaLVa7Nu3D1qtts5l0dHRAIAVK1YgLi4OS5cutV32zjvvoEOHDtizZw+GDh3q1zVT8GCQSkREREREREREAWHgwIGwWCwoKCjA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KxEREYFWrVrh/vvvr1MdunXrVgwZMgRRUVGIj4/H8OHDcfLkSdvlH3/8MQYNGoTw8HB07doVzz77rMtOKHm/pPbt2+P222/H5MmT8cknnwAQFauXXnop/vWvf6FLly4I/zN5rt/aX1VVhblz56JDhw4ICwtDt27d8Oabb9ouP3z4MK655hpER0cjKSkJf/3rX3H+/Hn3/0Edrb3J9+BF5eXl+P333/HXv/4VgKhEHTduHMLCwvDJJ5/Y/vGIiIiIqCGj0Wh7A+bosqioKD+vioiIKDgVF4tDXFzDy0wmM5YsWeTyPiIjIzFz5kynH4SmpaXhlVdeqRMsOpKZmel294lOp8OUKVOwdu1aPPHEE9BoNACA999/HxaLBb1798aVV16JZ555Brfffjt27dqFhx56CK1atcJdd93l1mM48swzz2D58uWIjIzExIkTMXHiRISFhWHdunUoLy/HTTfdhFdffRVz584FIMY4vvPOO3j99dfRvXt3ZGdn44477kBCQgJGjRrVpLW4UlEBREe7d93WrYETJxwH7FlZwJw5QOfOgDuZXnk54M5Lt6KiImzevBnPPfec3dd68fHxdm9nMBgwbtw4DBs2DHv37kVBQQHuvfdeTJ8+HWvXrkV1dTVuvPFG3HffffjPf/4Dk8mEnJwc2/fK9u3bMWXKFGRlZWHEiBH4/fffbSM5n376adcL/1NERESdURbHjh3Dxo0b8eGHHzosBJgyZQp2796NrKwsDBgwAMePH7cFpcXFxbjyyitx7733YtmyZaisrMTcuXMxceJEfPvtt26vyx5Fg9RHH30UEyZMQKdOnXD27Fk8/fTT0Gq1mDRpEkpLS3H11VejoqIC77zzjm3zKABISEhgRQURERFRPeHh4QgPD7cbpsqXERERkXfEx4uDPe5GFtHR0TAYDE4/CK2oqEB0dLRbQaqn7rnnHrzwwgvYtm0bRo8eDUC09d9yyy144403MGbMGDz11FMAgB49euDIkSN44YUXmhykLly4EMOHDwcgRgxkZmbi999/R9euXQEAt956K7777jvMnTsXVVVVeP755/H1119j2LBhAICuXbtix44dWLlypc+DVE+0aSNmosqVqPUVFwOFheJ6XiiOtDl27BgkSUKvXr08ut26detgNBrx9ttv2wLY5cuXY8KECViyZAlCQ0NRUlKCv/zlL7jkkksAAL1797bd/tlnn8Vjjz2GO++8E4D4f1mwYAHmzJnjdpC6b98+rFu3DldeeaXtPJPJhLfffhsJCQl2b/Prr79iw4YN2LJlC8aOHWt7bNny5csxcOBAPP/887bzVq9ejQ4dOuDXX39Fjx493FqbPYoGqadPn8akSZNw4cIFJCQkID09Hd9//z0SEhKwdetW7NmzBwDQrVu3Orc7fvw4OnfurMCKiYiIiNTLYrEgNTXVNhO1ttTUVFgsFn4YTURE5CVms5h7+dZbDS9LTg7FnDmZsFiAw4cd30e/fkB4uNbpB6ExMTF19pFxxtU4xPp69eqFtLQ0rF69GqNHj8axY8ewfft2zJ8/Hw8//DBuuOGGOtcfPnw4Xn755Sa/pqg9ezUpKQmRkZF1grCkpCRble6xY8dQUVGBq666qs59mEwmDBw4sNFrcFdkpKgMdVdoqAjY7YWp8fFA27aAk077Bo/tDk9GOtT2888/Y8CAAXWqWIcPHw6r1YqjR49i5MiRuOuuuzBu3DhcddVVGDt2LCZOnIjk5GQAwI8//oidO3fiueees93eYrHYPgCIdPAEDh06hOjoaNumatdddx2WL19uu7xTp04OQ1QAOHjwILRarcMQ/ccff8R3332HaDulxL///nvgBqnr1693eNno0aMb/Y1ARERE1Bzp9Xqkp6dDkiS/blZBRETUHEVFATNnirAr5M8daLRaIDERSE7WICRED6sVCAsTm0zVp9UCERFAdbXJ5QehvtwscurUqZgxYwZWrFiBNWvW4JJLLmlUlWfIn/8ItbMcs9ls97q1A1+NRtMgANZoNLBarQBgm9f5+eefo127dnWuFxYW5vE6PaXRuNdeLzMYRMA+f37DyzIyRADv7UlL3bt3h0aj8cmGUmvWrEFGRgY2b96M9957D08++SS2bNmCoUOHory8HM8++yxuvvnmBrdz1gnVs2dPfPLJJ9DpdGjbtm2D729Xo6giIiKcXl5eXm6rqq1PDoEbi6+miYiIiIKITqfDJZdcguHDh9taAa1WK0NUIiIiL/vqKxGkvvgi0L490KGDCMgkqSZYlSQRrJ471/D2iYkiYJU/CAXETFR/fxA6ceJEzJw5E+vWrcPbb7+NBx98EBqNBr1798bOnTvrXHfnzp3o0aOH3WpUuYLw3LlztkrR2htPNVZKSgrCwsKQm5urqjZ+R6KigMxMcTwrS1SmxseLEDUzE/DFpKWWLVti3LhxWLFiBTIyMhoEkcXFxXbnpPbu3Rtr166FwWCw3Wbnzp0ICQlBz549bdcbOHAgBg4ciMzMTAwbNgzr1q3D0KFDMWjQIBw9erRBJ7krer3e49vU1q9fP1itVmzbts3W2l/boEGDsHHjRnTu3NnrPz98RU1EREQUZL799lsUFhYiOjoat912G1q3bq30koiIiIJKdTXw8MPAL78AOTlA166ipVsOUGVaLSAXwBUUiOBUrlpNTAT++APo0gXQ63VIS0vDiBEjbEGqxWLxyweh0dHRuP3225GZmYnS0lLb/NNHHnkEl19+ORYsWIDbb78du3fvxvLly/HPf/7T7v1ERERg6NChWLx4Mbp06YKCggI8+eSTTV5fTEwMHn30UcyePRtWqxXp6ekoKSnBzp07ERsba5vPqSbh4WJTqSeeAEpKxIZkZrNvQlTZihUrMHz4cAwZMgTz589H//79UV1djS1btuC1117Dzz//3OA2kydPxtNPP40777wTzzzzDAoLCzFjxgz89a9/RVJSEo4fP4433ngD119/Pdq2bYujR4/it99+w5QpUwAA8+bNw1/+8hd07NgRt956K0JCQvDjjz/i8OHDWLhwoc+ea+fOnXHnnXfinnvusW02dfLkSRQUFGDixImYNm0aVq1ahUmTJmHOnDlo2bIljh07hvXr1+Nf//pXk8ZShLi+ChEREREFEnkuVUFBAcrKypReDhERUdBZtQr46SegZUvgoYecXzckRGwuNGBAzSEpSezuXlYG/PabCGb1ej20Wi2ioqKg1Wp92s5f39SpU3Hx4kWMGzcObdu2BSCq+jZs2ID169ejb9++mDdvHubPn+90o6nVq1ejuroagwcPxqxZs7wWpi1YsABPPfUUFi1ahN69e2P8+PH4/PPP0aVLF6/cvy9ERQF6PZCQIL56u52/vq5du2L//v244oor8Mgjj6Bv37646qqr8M033+C1116ze5vIyEh8+eWXKCoqwuWXX45bb70VY8aMsc0rjYyMxC+//IJbbrkFPXr0wP33349p06bhgQceAACMGzcOn332Gb766itcfvnlGDp0KJYtW4ZOnTr59skCeO2113DrrbfioYceQq9evXDffffBYDAAANq2bYudO3fCYrHg6quvRr9+/TBr1izEx8fbRlA0lkYK8kGk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QHydM8e3waaanr9SMjMzkZ2djRMnTuDQoUPIzMzE1q1bMXnyZADAlClTkCmn3ADmz5+Pr776Cn/88Qf279+PO+64AydPnsS9996r1FMgL2JFKhEREVEQqT0jlRWpRESkBo7mny5YAEgSsHChCAaDfSanN8hBpryHJP9NfK+goABTpkzBuXPnEBcXh/79++PLL7/EVVddBQDIzc2ts+P7xYsXcd999yEvLw8tWrTA4MGDsWvXLrvzVCnwMEglIiIiCiK1W/tZkUpERGrgav7pU0+JQDDYZ3JSYHrzzTedXr5169Y6p5ctW4Zly5b5cEWkJAapREREREFCkqQ6rf2sSCUiIjUoLnY+/7SkRFRYciYnEakdg1QiIiKiIGEymSBJEgARpFqtVgCiIlWSJGj8PViOiIgIorI0Pt5+mBofLwJTGVvXiUjNuNkUERERUZCQq1G1Wi1CQ0NtFalWq9U2O5WIiMjfzGbRom+PPP+UiCgQsCKViIiIKEjU3mgKAHQ6HcLDw2E0GmEwGBAZGank8oiIqJmKigJmzQKsVjETlfNPiShQMUglIiIiChK1N5qSRUdHw2g0ory8HAlynyQREZEfnToFXHMNsHAhkJcHlJZy/ikRBSa29hMREREFidobTcm44RQRESltxQrgp5+ArCwgLEzMP9Xra+ahEhEFCgapREREREGifms/ICpSAbHhFBERkb9VVABvvCGOz5yp7FqIiJqKQSoRERFRkLDX2s+KVCIiUtI77wAXLwJdugB/+YvSqyEiahoGqURERERBQg5Sw8LCbOexIpWIiJQiScArr4jjM2YAWq2y6yEiaioGqURERERBQm7tZ0UqEZF6GQyAyQQUFIivwfw519dfA0eOANHRwD33KL0aIqKmY5BKREREFCSqqqoAcEYqEZFaGY3A0qVAUlLNYelScX4wkqtR77oLiItTdClERF6hU3oBREREROQdzjabYkUqEZGyDAYRms6fX3NecXHN6TlzgmsX+99+Az7/XBzPyFB2LURE3qJoReozzzwDjUZT59CrVy/b5UajEdOmTUOrVq0QHR2NW265Bfn5+QqumIiIiEi9nG02ZTAYIEmSIusiIiIgNBTIyrJ/WVaWuDyYvPqq+HrddUD37squhYjIWxRv7e/Tpw/OnTtnO+zYscN22ezZs/Hpp5/i/fffx7Zt23D27FncfPPN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APHa3NWHu3IllsVigTlQf8ESEbkgSZLdgxyiAsDWrVuxdu3aOre77bbbcPToUVRVVeHw4cO49tprPXrct99+G/369UNERAQiIiLQv39//Pvf//bCM6Km8ChIffnll3HffffZnd8XFxeHBx54AP/4xz+8tjgKfmaz2faiq36QGhISguTkZADA6dOn/b42In+qXW3jjkAJUisrgUcfFcfnzgU6dnTvdiEhYgSAPPNwzhxg3ryGGwRR8DAYxO7r8+fXVJPKm0QtWiQud8VoFCFqRoaYyRsfL86PjxffP5mZgVu1qNRmU4A6glRXIxtKSvy4GPKr2qNvYmNj0bp1a0RERKC6uhrnzp1TeHUNWa1WHDlyBADQu3dv20ZZav97XVvtjaZcVT+FhobaKm05J5WIyHv+8Y9/4MEHH8S1116LDRs2YMOGDRg/fjz+9re/uT1LlXzDoyD1xx9/xHgn2yhfffXV2LdvX5MXRc2H/IIrJCTE7s6r7dq1AwDOSaWgJ1fbuLtrpFwppvY3Zi++COTmAh06AH//u2e31WiA554TIRoALFgAPPwww9Rg5WyTKHcqDq1WMQri3XeB664TgWp+PlBQIL7OmSPm8Aaq5t7aL49scHRZXJwfF0N+ZTAY6oy+0Wg06Pjnp3InT55UeHUNHT9+HAaDAREREejatavt77ra/17X5u58VEC0mcof8DBIJSLynldffRWvvfYalixZguuvvx7XX389li5din/+85/IcvSimfzCoyA1Pz8foU7eyeh0OlsrCJE7arf12/vEW56TyiCVgl0wVqTm5dVsMLV0KdDYUa6PPVbT0vvyy8D99wMq7eakJmhqxeHcuWKTstBQMUIiKUnMQk1IEF8DtRJVpvRmU0rPyjebRaWxPYE8soFck//ORUVF2UbfyO39apyTevjwYQBASkoKtFptQPy9rq+goACAe0EqUHdOKhERece5c+eQlpbW4Py0tDRVdmQ0Jx4Fqe3atbO9OLDnf//7n60Vm8gdjjaakskVqfn5+Zy7REGtsUGqGlpu6zMYAJNJBBtHjgDffQfcfnvT7nP6dLH5VEiICGfvuIPBSTCprgZiYpxXHEZHi/mn9ixfLqqfAfF9csUVvlilspRs7ZckSfEduaOixGiGefOCa2QDuSb/fazdsSFXpObm5to24FCD6upq/PzzzwCAfv36AQiMDz7r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G5KSknrcntA46+NuzJo5e/fu7fL+kpycbNS27Z3QH3sAGDBgAN5//33k5+cjKysLMTExmDFjBmpra/Vul17zzvm4G7NmjqO+5q3JEZ5nnG3btuHYsWMICwszeL/p/cU5H3dj1syh95eeOcpzaNasWV0e56+//rrH7Tr7ewexEoYwDMMwNTU1DADmt99+YxiGYRoaGhipVMp88803/HXOnz/PAGCOHj3a7fdfeeUVJikpqdvPFy5cyPz+97/v8rP169czERERjFar1bue+++/n7nrrru6/Cw1NZV58sknu1332rVrDAAmNze3p7vIMAzDnDt3jgHAHD9+nP/Zjh07GJFIxJSXl3e7/sMPP8zcc889BrcrVM7yuHf22WefMT4+PjovA8Bs27bNpO0Rw4T8POPk5OQwAJji4mK91/n1118ZsVjMVFVV8T/bsGED4+3tzSiVym7XnzhxIvPcc8/p3Z7QOcvjbsyae/t+JVSO8Ng3NjYyAJi9e/fqvQ695rtylsfdmDU722vemoT6PCsrK2PCw8OZgoICJjo6mlm7dm2P95PeX7pylsfdmDXT+0vvCPE51JtYBL13EGtw2ozU2zU2NgIA/P39AQAnT55ER0dHl4zMxMREREVF4ejRo0ZvV6lUws3NrcvP3N3dUVZWhuLiYr2/d/To0W7ZoDNnzjTptvVt19fXF6NHj+Z/Nm3aNIjFYqNKuRyNszzupnjmmWcQEBCAlJQUbNy4EQzDWO22HZUjPM8aGxshEon0toXgtjts2DAEBwd32W5TUxPOnj1r4N44Hmd53E1x9913IygoCBkZGfjxxx/Nsk17JPTHXqVS4b///S98fHx6zNSg13xXzvK4m8JZXvPWJMTnmVarxR/+8Ae88MILGDJkiFHrofeXrpzlcTcFvb+YRojPIQA4ePAggoKCMHDgQDz11FOor6/vcT303kGsgQKpYN/kn3/+eYwbNw5Dhw4FAFRVVUEmk3U7eAwODkZVVZXR2545cya+//577Nu3D1qtFpcuXcLbb78NgO3NoU9VVVWXF39vblvfdoOCgrr8zMXFBf7+/n3ettA40+NurFdffRVbt27Fnj17MG/ePDz99NN47733rHLbjsoRnmft7e3405/+hIULF8Lb29vk7XKXORNnetyN4enpibfffhvffPMNfvnlF2RkZGDu3LkOeeAj5Mf+559/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\n" + }, + "metadata": {} + } + ], + "source": [ + "# Create a figure and axis\n", + "fig, ax1 = plt.subplots(figsize=(15,5))\n", + "\n", + "# Lineplot on primary y-axis\n", + "sns.lineplot(data=stock_daily.reset_index(), x='Date', y='Close', ax=ax1, color='blue', marker='o', label='Close Price')\n", + "\n", + "# Create a secondary y-axis\n", + "ax2 = ax1.twinx()\n", + "\n", + "# Lineplot on secondary y-axis\n", + "sns.lineplot(data=stock_daily.reset_index(), x='Date', y='Volume', ax=ax2, color='gray', marker='o', label='Volume')\n", + "\n", + "ax1.legend(bbox_to_anchor=(1,1));" + ] + }, + { + "cell_type": "markdown", + "id": "fHU5KgCGNOX5", + "metadata": { + "id": "fHU5KgCGNOX5" + }, + "source": [ + "**Observations:**\n", + "- There is no specific pattern here\n", + " - There have been periods where the price decreased with increasing volumes\n", + " - There have been periods where the price increased with increasing volumes" + ] + }, + { + "cell_type": "markdown", + "id": "N8z4-vOBmwqv", + "metadata": { + "id": "N8z4-vOBmwqv" + }, + "source": [ + "## **Data Preprocessing**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2jIN9NycxtUC", + "metadata": { + "id": "2jIN9NycxtUC", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "fee181c0-f896-4c4c-cf2c-378747dfb425" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "count 418\n", + "mean 2019-02-14 12:24:06.889952256\n", + "min 2019-01-02 00:00:00\n", + "25% 2019-01-11 00:00:00\n", + "50% 2019-01-31 00:00:00\n", + "75% 2019-03-21 00:00:00\n", + "max 2019-04-29 00:00:00\n", + "Name: Date, dtype: object" + ], + "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", + "
Date
count418
mean2019-02-14 12:24:06.889952256
min2019-01-02 00:00:00
25%2019-01-11 00:00:00
50%2019-01-31 00:00:00
75%2019-03-21 00:00:00
max2019-04-29 00:00:00
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ], + "source": [ + "stock['Date'].describe()" + ] + }, + { + "cell_type": "markdown", + "id": "0FxlsnepSb5m", + "metadata": { + "id": "0FxlsnepSb5m" + }, + "source": [ + "**Observations:**\n", + "* We see that 75% of the data is till the third week of March 2019.\n", + "* We'll take the data till the end of March 2019 for training, and keep the April 2019 data for test set." + ] + }, + { + "cell_type": "markdown", + "id": "j7KR_HgZRDtk", + "metadata": { + "id": "j7KR_HgZRDtk" + }, + "source": [ + "### Train-test Split" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "yXsgpkpeI8UK", + "metadata": { + "id": "yXsgpkpeI8UK" + }, + "outputs": [], + "source": [ + "X_train = stock[stock['Date'] < '2019-04-01'].reset_index()\n", + "X_test = stock[(stock['Date'] >= '2019-04-01')].reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "__2ON8RuI8Q2", + "metadata": { + "id": "__2ON8RuI8Q2" + }, + "outputs": [], + "source": [ + "y_train = X_train['Label'].copy()\n", + "y_test = X_test['Label'].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "imMx6hH0__IB", + "metadata": { + "id": "imMx6hH0__IB", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3dbdaa6f-f304-47f0-94a8-32e8a5a7309d" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train data shape (347, 10)\n", + "Test data shape (71, 10)\n", + "Train label shape (347,)\n", + "Test label shape (71,)\n" + ] + } + ], + "source": [ + "print(\"Train data shape\",X_train.shape)\n", + "print(\"Test data shape \",X_test.shape)\n", + "\n", + "print(\"Train label shape\",y_train.shape)\n", + "print(\"Test label shape \",y_test.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "uJZqic2Q6YZD", + "metadata": { + "id": "uJZqic2Q6YZD" + }, + "outputs": [], + "source": [ + "# y_train.value_counts(normalize=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Xf9R3BaR6bZw", + "metadata": { + "id": "Xf9R3BaR6bZw" + }, + "outputs": [], + "source": [ + "# y_test.value_counts(normalize=True)" + ] + }, + { + "cell_type": "markdown", + "id": "0rYgR14ORf7b", + "metadata": { + "id": "0rYgR14ORf7b" + }, + "source": [ + "## **Word Embeddings**" + ] + }, + { + "cell_type": "markdown", + "id": "4IUBFAOTbjju", + "metadata": { + "id": "4IUBFAOTbjju" + }, + "source": [ + "### **Generating Text Embeddings using Word2Vec**" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Defining the model**" + ], + "metadata": { + "id": "bzwPsqJvVbNC" + }, + "id": "bzwPsqJvVbNC" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ZD188ZNsboS4", + "metadata": { + "id": "ZD188ZNsboS4" + }, + "outputs": [], + "source": [ + "# Creating a list of all words in our data\n", + "words_list = [item.split(\" \") for item in stock['News'].values]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eGVgM5iTbwHy", + "metadata": { + "id": "eGVgM5iTbwHy" + }, + "outputs": [], + "source": [ + "# Creating an instance of Word2Vec\n", + "vec_size = 300\n", + "model_W2V = Word2Vec(words_list, vector_size = vec_size, min_count = 1, window=5, workers = 6)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "lhy6DjNxbzOd", + "metadata": { + "id": "lhy6DjNxbzOd", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6bf055ce-4c91-4cb3-bd4c-673e2c5de694" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Length of the vocabulary is 14577\n" + ] + } + ], + "source": [ + "# Checking the size of the vocabulary\n", + "print(\"Length of the vocabulary is\", len(list(model_W2V.wv.key_to_index)))" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Encoding the datasets**" + ], + "metadata": { + "id": "ZYCiT-7GVNaH" + }, + "id": "ZYCiT-7GVNaH" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "F_4ldXPzcF7y", + "metadata": { + "id": "F_4ldXPzcF7y" + }, + "outputs": [], + "source": [ + "# Retrieving the words present in the Word2Vec model's vocabulary\n", + "words = list(model_W2V.wv.key_to_index.keys())\n", + "\n", + "# Retrieving word vectors for all the words present in the model's vocabulary\n", + "wvs = model_W2V.wv[words].tolist()\n", + "\n", + "# Creating a dictionary of words and their corresponding vectors\n", + "word_vector_dict = dict(zip(words, wvs))" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Averaging the word vectors to get sentence encodings**" + ], + "metadata": { + "id": "GgismcJz0dZE" + }, + "id": "GgismcJz0dZE" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "vsQ0vF42cH_r", + "metadata": { + "id": "vsQ0vF42cH_r" + }, + "outputs": [], + "source": [ + "def average_vectorizer_Word2Vec(doc):\n", + " # Initializing a feature vector for the sentence\n", + " feature_vector = np.zeros((vec_size,), dtype=\"float64\")\n", + "\n", + " # Creating a list of words in the sentence that are present in the model vocabulary\n", + " words_in_vocab = [word for word in doc.split() if word in words]\n", + "\n", + " # adding the vector representations of the words\n", + " for word in words_in_vocab:\n", + " feature_vector += np.array(word_vector_dict[word])\n", + "\n", + " # Dividing by the number of words to get the average vector\n", + " if len(words_in_vocab) != 0:\n", + " feature_vector /= len(words_in_vocab)\n", + "\n", + " return feature_vector" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Jtxc1yVHcJjV", + "metadata": { + "id": "Jtxc1yVHcJjV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "a0ab0ac1-7d5a-4cb0-d761-af1e7f93a323" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Time taken 8.816098928451538\n" + ] + } + ], + "source": [ + "# creating a dataframe of the vectorized documents\n", + "start = time.time()\n", + "\n", + "X_train_wv = pd.DataFrame(X_train['News'].apply(average_vectorizer_Word2Vec).tolist(), columns=['Feature '+str(i) for i in range(vec_size)])\n", + "X_test_wv = pd.DataFrame(X_test['News'].apply(average_vectorizer_Word2Vec).tolist(), columns=['Feature '+str(i) for i in range(vec_size)])\n", + "\n", + "end = time.time()\n", + "print('Time taken ', (end-start))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8IrY8tZjA4VZ", + "metadata": { + "id": "8IrY8tZjA4VZ", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "ded041ed-e998-442e-edc6-4bf5abe65675" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(347, 300) (71, 300)\n" + ] + } + ], + "source": [ + "print(X_train_wv.shape, X_test_wv.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "a3GUvne0hyPx", + "metadata": { + "id": "a3GUvne0hyPx" + }, + "source": [ + "### **Generating Text Embeddings using Sentence Transformer**" + ] + }, + { + "cell_type": "markdown", + "id": "51ITQezWi9VE", + "metadata": { + "id": "51ITQezWi9VE" + }, + "source": [ + "#### **Defining the model**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3EQ7eQIpYSyz", + "metadata": { + "id": "3EQ7eQIpYSyz" + }, + "outputs": [], + "source": [ + "#Defining the model\n", + "model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')" + ] + }, + { + "cell_type": "markdown", + "id": "Lll4MLfzKfBa", + "metadata": { + "id": "Lll4MLfzKfBa" + }, + "source": [ + "#### **Encoding the dataset**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "q1BaGKThKcX3", + "metadata": { + "id": "q1BaGKThKcX3", + "colab": { + "base_uri": "https://localhost:8080/", + "referenced_widgets": [ + "1230a037e0b9479caa9db62c5f9ecb6a", + "ed6c19298c4747a59992a79d99cdaaa7", + "e010222da3cf4751995a51ffc82560ef", + "9f3e3b616bcf482d9fd91a2b54d8d82a", + "6838e428d6d54a3f80d34638812441e6", + "991c2589b56f444486443a31bef569d5", + "4ed01d32996f47f38fbaba687cee45ae", + "a0ce999dbcfe427ba08202bc989b1c33", + "f598184dc72f443ab0ada8de6cf076ad", + "96e9e320eec74a2e9094935af065b254", + "fb854fb10f3e415c9c4c0ac176fb74b4", + "2fb4071397a049f888159e2cbec3ec99", + "280899c6e305423a8d6f20dd395b4e10", + "f68b5d3640c54560b38a29f32deb33a8", + "115335a31d874aba99efb63fa2830e09", + "7b371d0574e04f98bf87a88f722b8477", + "9095b2b09d4a45928fbc3cf45eb35cbb", + "971a53d397494d76b8b5c4a2abb954f7", + "54dd267783314434a5389477c97974e5", + "5bfd23c3586e4615909878610be8e24b", + "4eda58c3e66e40db98ea40fc40ebb109", + "99ee6edbe0574c778200ae65b87d7e0f" + ] + }, + "outputId": "03ca294e-285e-4fe1-f930-d22aaa9f87dc" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Batches: 0%| | 0/11 [00:00#sk-container-id-1 {\n", + " /* Definition of color scheme common for light and dark mode */\n", + " --sklearn-color-text: #000;\n", + " --sklearn-color-text-muted: #666;\n", + " --sklearn-color-line: gray;\n", + " /* Definition of color scheme for unfitted estimators */\n", + " --sklearn-color-unfitted-level-0: #fff5e6;\n", + " --sklearn-color-unfitted-level-1: #f6e4d2;\n", + " --sklearn-color-unfitted-level-2: #ffe0b3;\n", + " --sklearn-color-unfitted-level-3: chocolate;\n", + " /* Definition of color scheme for fitted estimators */\n", + " --sklearn-color-fitted-level-0: #f0f8ff;\n", + " --sklearn-color-fitted-level-1: #d4ebff;\n", + " --sklearn-color-fitted-level-2: #b3dbfd;\n", + " --sklearn-color-fitted-level-3: cornflowerblue;\n", + "\n", + " /* Specific color for light theme */\n", + " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", + " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", + " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", + " --sklearn-color-icon: #696969;\n", + "\n", + " @media (prefers-color-scheme: dark) {\n", + " /* Redefinition of color scheme for dark theme */\n", + " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", + " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", + " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", + " --sklearn-color-icon: #878787;\n", + " }\n", + "}\n", + "\n", + "#sk-container-id-1 {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "#sk-container-id-1 pre {\n", + " padding: 0;\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-hidden--visually {\n", + " border: 0;\n", + " clip: rect(1px 1px 1px 1px);\n", + " clip: rect(1px, 1px, 1px, 1px);\n", + " height: 1px;\n", + " margin: -1px;\n", + " overflow: hidden;\n", + " padding: 0;\n", + " position: absolute;\n", + " width: 1px;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-dashed-wrapped {\n", + " border: 1px dashed var(--sklearn-color-line);\n", + " margin: 0 0.4em 0.5em 0.4em;\n", + " box-sizing: border-box;\n", + " padding-bottom: 0.4em;\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-container {\n", + " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", + " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", + " so we also need the `!important` here to be able to override the\n", + " default hidden behavior on the sphinx rendered scikit-learn.org.\n", + " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", + " display: inline-block !important;\n", + " position: relative;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-text-repr-fallback {\n", + " display: none;\n", + "}\n", + "\n", + "div.sk-parallel-item,\n", + "div.sk-serial,\n", + "div.sk-item {\n", + " /* draw centered vertical line to link estimators */\n", + " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", + " background-size: 2px 100%;\n", + " background-repeat: no-repeat;\n", + " background-position: center center;\n", + "}\n", + "\n", + "/* Parallel-specific style estimator block */\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item::after {\n", + " content: \"\";\n", + " width: 100%;\n", + " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", + " flex-grow: 1;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel {\n", + " display: flex;\n", + " align-items: stretch;\n", + " justify-content: center;\n", + " background-color: var(--sklearn-color-background);\n", + " position: relative;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item {\n", + " display: flex;\n", + " flex-direction: column;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n", + " align-self: flex-end;\n", + " width: 50%;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n", + " align-self: flex-start;\n", + " width: 50%;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n", + " width: 0;\n", + "}\n", + "\n", + "/* Serial-specific style estimator block */\n", + "\n", + "#sk-container-id-1 div.sk-serial {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " background-color: var(--sklearn-color-background);\n", + " padding-right: 1em;\n", + " padding-left: 1em;\n", + "}\n", + "\n", + "\n", + "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", + "clickable and can be expanded/collapsed.\n", + "- Pipeline and ColumnTransformer use this feature and define the default style\n", + "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", + "*/\n", + "\n", + "/* Pipeline and ColumnTransformer style (default) */\n", + "\n", + "#sk-container-id-1 div.sk-toggleable {\n", + " /* Default theme specific background. It is overwritten whether we have a\n", + " specific estimator or a Pipeline/ColumnTransformer */\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "/* Toggleable label */\n", + "#sk-container-id-1 label.sk-toggleable__label {\n", + " cursor: pointer;\n", + " display: flex;\n", + " width: 100%;\n", + " margin-bottom: 0;\n", + " padding: 0.5em;\n", + " box-sizing: border-box;\n", + " text-align: center;\n", + " align-items: start;\n", + " justify-content: space-between;\n", + " gap: 0.5em;\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label .caption {\n", + " font-size: 0.6rem;\n", + " font-weight: lighter;\n", + " color: var(--sklearn-color-text-muted);\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n", + " /* Arrow on the left of the label */\n", + " content: \"▸\";\n", + " float: left;\n", + " margin-right: 0.25em;\n", + " color: var(--sklearn-color-icon);\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "/* Toggleable content - dropdown */\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content {\n", + " max-height: 0;\n", + " max-width: 0;\n", + " overflow: hidden;\n", + " text-align: left;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content pre {\n", + " margin: 0.2em;\n", + " border-radius: 0.25em;\n", + " color: var(--sklearn-color-text);\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", + " /* Expand drop-down */\n", + " max-height: 200px;\n", + " max-width: 100%;\n", + " overflow: auto;\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", + " content: \"▾\";\n", + "}\n", + "\n", + "/* Pipeline/ColumnTransformer-specific style */\n", + "\n", + "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator-specific style */\n", + "\n", + "/* Colorize estimator box */\n", + "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n", + "#sk-container-id-1 div.sk-label label {\n", + " /* The background is the default theme color */\n", + " color: var(--sklearn-color-text-on-default-background);\n", + "}\n", + "\n", + "/* On hover, darken the color of the background */\n", + "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "/* Label box, darken color on hover, fitted */\n", + "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator label */\n", + "\n", + "#sk-container-id-1 div.sk-label label {\n", + " font-family: monospace;\n", + " font-weight: bold;\n", + " display: inline-block;\n", + " line-height: 1.2em;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label-container {\n", + " text-align: center;\n", + "}\n", + "\n", + "/* Estimator-specific */\n", + "#sk-container-id-1 div.sk-estimator {\n", + " font-family: monospace;\n", + " border: 1px dotted var(--sklearn-color-border-box);\n", + " border-radius: 0.25em;\n", + " box-sizing: border-box;\n", + " margin-bottom: 0.5em;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "/* on hover */\n", + "#sk-container-id-1 div.sk-estimator:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", + "\n", + "/* Common style for \"i\" and \"?\" */\n", + "\n", + ".sk-estimator-doc-link,\n", + "a:link.sk-estimator-doc-link,\n", + "a:visited.sk-estimator-doc-link {\n", + " float: right;\n", + " font-size: smaller;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-background);\n", + " border-radius: 1em;\n", + " height: 1em;\n", + " width: 1em;\n", + " text-decoration: none !important;\n", + " margin-left: 0.5em;\n", + " text-align: center;\n", + " /* unfitted */\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted,\n", + "a:link.sk-estimator-doc-link.fitted,\n", + "a:visited.sk-estimator-doc-link.fitted {\n", + " /* fitted */\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "/* Span, style for the box shown on hovering the info icon */\n", + ".sk-estimator-doc-link span {\n", + " display: none;\n", + " z-index: 9999;\n", + " position: relative;\n", + " font-weight: normal;\n", + " right: .2ex;\n", + " padding: .5ex;\n", + " margin: .5ex;\n", + " width: min-content;\n", + " min-width: 20ex;\n", + " max-width: 50ex;\n", + " color: var(--sklearn-color-text);\n", + " box-shadow: 2pt 2pt 4pt #999;\n", + " /* unfitted */\n", + " background: var(--sklearn-color-unfitted-level-0);\n", + " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted span {\n", + " /* fitted */\n", + " background: var(--sklearn-color-fitted-level-0);\n", + " border: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link:hover span {\n", + " display: block;\n", + "}\n", + "\n", + "/* \"?\"-specific style due to the `` HTML tag */\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link {\n", + " float: right;\n", + " font-size: 1rem;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-background);\n", + " border-radius: 1rem;\n", + " height: 1rem;\n", + " width: 1rem;\n", + " text-decoration: none;\n", + " /* unfitted */\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + "}\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link.fitted {\n", + " /* fitted */\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + "#sk-container-id-1 a.estimator_doc_link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "" + ] + }, + "metadata": {}, + "execution_count": 40 + } + ], + "source": [ + "# Building the model\n", + "rf_word2vec = RandomForestClassifier(n_estimators = 100, max_depth = 3, random_state = 42)\n", + "\n", + "\n", + "# Fitting on train data\n", + "rf_word2vec.fit(X_train_wv, y_train)" + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**\n" + ], + "metadata": { + "id": "95O3167WbBnd" + }, + "id": "95O3167WbBnd" + }, + { + "cell_type": "code", + "source": [ + "# Predicting on train data\n", + "y_pred_train = rf_word2vec.predict(X_train_wv)\n", + "\n", + "# Predicting on test data\n", + "y_pred_test = rf_word2vec.predict(X_test_wv)" + ], + "metadata": { + "id": "TtQlY8DlzadF" + }, + "id": "TtQlY8DlzadF", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "ycl7jAX7cZuj" + }, + "id": "ycl7jAX7cZuj" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a_AW25srClm-", + "metadata": { + "id": "a_AW25srClm-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "7c3d30ac-13eb-4053-ff9a-6718a9fbf3c7" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_confusion_matrix(y_train,y_pred_train)" + ] + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test,y_pred_test)" + ], + "metadata": { + "id": "sp4-2sLEDcM3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "6046c9f3-6602-421d-8738-7c000827c3a1" + }, + "id": "sp4-2sLEDcM3", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "E1jLbrZAidAB" + }, + "id": "E1jLbrZAidAB" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8rV_bYhqClm_", + "metadata": { + "id": "8rV_bYhqClm_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "cb772720-3f55-4fe6-97c6-75f6fe7384e6" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.755043 0.755043 0.778891 0.720565\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "rf_train_wv = model_performance_classification_sklearn(y_train,y_pred_train)\n", + "print(\"Training performance:\\n\", rf_train_wv)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "_AA2cSvzClm_", + "metadata": { + "id": "_AA2cSvzClm_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d063296f-2448-4515-f5c1-575671bcbd48" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.746479 0.746479 0.687934 0.680114\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "rf_test_wv = model_performance_classification_sklearn(y_test, y_pred_test)\n", + "print(\"Testing performance:\\n\",rf_test_wv)" + ] + }, + { + "cell_type": "markdown", + "id": "P2OnPdLRF2M9", + "metadata": { + "id": "P2OnPdLRF2M9" + }, + "source": [ + "* The model is slightly overfitting, as there is a little difference between its performance on the training set and the test set." + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Building a Random Forest Model using text embeddings obtained from the Sentence Transformer**" + ], + "metadata": { + "id": "uijWj2Nl2jyK" + }, + "id": "uijWj2Nl2jyK" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "04W4gkoZ2jyK", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + }, + "outputId": "364a1ac8-b4b6-403a-85d4-133186c89aa9" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "RandomForestClassifier(max_depth=3, random_state=42)" + ], + "text/html": [ + "
RandomForestClassifier(max_depth=3, random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ] + }, + "metadata": {}, + "execution_count": 46 + } + ], + "source": [ + "# Building the model\n", + "rf_st = RandomForestClassifier(n_estimators = 100, max_depth = 3, random_state = 42)\n", + "\n", + "\n", + "# Fitting on train data\n", + "rf_st.fit(X_train_st, y_train)" + ], + "id": "04W4gkoZ2jyK" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**" + ], + "metadata": { + "id": "BTWSvJfC2jyL" + }, + "id": "BTWSvJfC2jyL" + }, + { + "cell_type": "code", + "source": [ + "# Predicting on train data\n", + "y_pred_train = rf_st.predict(X_train_st)\n", + "\n", + "# Predicting on test data\n", + "y_pred_test = rf_st.predict(X_test_st)" + ], + "metadata": { + "id": "QPI_ePlJ2jyL" + }, + "execution_count": null, + "outputs": [], + "id": "QPI_ePlJ2jyL" + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "vskhvTGm2jyL" + }, + "id": "vskhvTGm2jyL" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "9P_tYSn92jyM", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "f404f8af-0142-4662-a7eb-8281eb953a13" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_confusion_matrix(y_train,y_pred_train)" + ], + "id": "9P_tYSn92jyM" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test,y_pred_test)" + ], + "metadata": { + "id": "LBzzMFHJDolN", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "d4e2c9a6-e164-45ff-ef5a-5c70c78c1736" + }, + "id": "LBzzMFHJDolN", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbMAAAGJCAYAAAAADN1MAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAANDFJREFUeJzt3XlYVGX7B/DvQDAgO4gsKoiagHtiIW644K6pYG69haa5hBuoGZV7Nr5aamou9ZqaSZobqZVmmJCJpihqpuSCWS+CgiKCMCCc3x++zs8R1JlhYOac8/14neuS5yzPfWbU2/s5zzlHIQiCACIiIhGzMHUARERElcVkRkREosdkRkREosdkRkREosdkRkREosdkRkREosdkRkREosdkRkREosdkRkREosdkRqJy8eJFdO/eHU5OTlAoFIiPjzfq8a9evQqFQoENGzYY9bhi1qlTJ3Tq1MnUYRA9FZMZ6e3y5csYO3Ys6tevDxsbGzg6OqJdu3b45JNPUFhYWKV9R0ZG4uzZs1iwYAE2bdqE1q1bV2l/1WnEiBFQKBRwdHSs8HO8ePEiFAoFFAoFPvroI72Pn5GRgTlz5iA1NdUI0RKZl+dMHQCJy3fffYdXXnkFSqUSr7/+Opo2bYri4mIcPnwY06dPx7lz5/DZZ59VSd+FhYVITk7Ge++9hwkTJlRJH76+vigsLISVlVWVHP9ZnnvuOdy7dw979uzB4MGDtdZt3rwZNjY2KCoqMujYGRkZmDt3LurVq4eWLVvqvN+PP/5oUH9E1YnJjHSWnp6OoUOHwtfXFwcPHoSXl5dmXVRUFC5duoTvvvuuyvq/efMmAMDZ2bnK+lAoFLCxsamy4z+LUqlEu3bt8PXXX5dLZnFxcejTpw927NhRLbHcu3cPNWrUgLW1dbX0R1QZHGYknS1atAj5+flYt26dViJ7qGHDhpg8ebLm5/v372P+/Plo0KABlEol6tWrh3fffRdqtVprv3r16qFv3744fPgwXnrpJdjY2KB+/fr48ssvNdvMmTMHvr6+AIDp06dDoVCgXr16AB4Mzz38/aPmzJkDhUKh1XbgwAG0b98ezs7OsLe3h7+/P959913N+iddMzt48CA6dOgAOzs7ODs7o3///jh//nyF/V26dAkjRoyAs7MznJycMHLkSNy7d+/JH+xjhg8fjh9++AG5ubmatuPHj+PixYsYPnx4ue1v3bqFadOmoVmzZrC3t4ejoyN69eqF06dPa7Y5dOgQXnzxRQDAyJEjNcOVD8+zU6dOaNq0KVJSUtCxY0fUqFFD87k8fs0sMjISNjY25c6/R48ecHFxQUZGhs7nSmQsTGaksz179qB+/fpo27atTtuPHj0as2bNQqtWrbB06VKEhoZCpVJh6NCh5ba9dOkSBg0ahG7duuHjjz+Gi4sLRowYgXPnzgEAwsPDsXTpUgDAsGHDsGnTJixbtkyv+M+dO4e+fftCrVZj3rx5+Pjjj/Hyyy/j119/fep+P/30E3r06IEbN25gzpw5iImJwZEjR9CuXTtcvXq13PaDBw/G3bt3oVKpMHjwYGzYsAFz587VOc7w8HAoFArs3LlT0xYXF4eAgAC0atWq3PZXrlxBfHw8+vbtiyVLlmD69Ok4e/YsQkNDNYklMDAQ8+bNAwCMGTMGmzZtwqZNm9CxY0fNcXJyctCrVy+0bNkSy5YtQ+fOnSuM75NPPoG7uzsiIyNRWloKAFi7di1+/PFHrFixAt7e3jqfK5HRCEQ6uHPnjgBA6N+/v07bp6amCgCE0aNHa7VPmzZNACAcPHhQ0+br6ysAEJKSkjRtN27cEJRKpTB16lRNW3p6ugBAWLx4sdYxIyMjBV9f33IxzJ49W3j0j/jSpUsFAMLNmzefGPfDPtavX69pa9mypVCrVi0hJydH03b69GnBwsJCeP3118v198Ybb2gdc+DAgYKbm9sT+3z0POzs7ARBEIRBgwYJXbt2FQRBEEpLSwVPT09h7ty5FX4GRUVFQmlpabnzUCqVwrx58zRtx48fL3duD4WGhgoAhDVr1lS4LjQ0VKtt//79AgDhgw8+EK5cuSLY29sLAwYMeOY5ElUVVmakk7y8PACAg4ODTtt///33AICYmBit9qlTpwJAuWtrjRs3RocOHTQ/u7u7w9/fH1euXDE45sc9vNb27bffoqysTKd9rl+/jtTUVIwYMQKurq6a9ubNm6Nbt26a83zUuHHjtH7u0KEDcnJyNJ+hLoYPH45Dhw4hMzMTBw8eRGZmZoVDjMCD62wWFg/+KpeWliInJ0czhHry5Emd+1QqlRg5cqRO23bv3h1jx47FvHnzEB4eDhsbG6xdu1bnvoiMjcmMdOLo6AgAuHv3rk7b//XXX7CwsEDDhg212j09PeHs7Iy//vpLq93Hx6fcMVxcXHD79m0DIy5vyJAhaNeuHUaPHg0PDw8MHToU33zzzVMT28M4/f39y60LDAxEdnY2CgoKtNofPxcXFxcA0OtcevfuDQcHB2zduhWbN2/Giy++WO6zfKisrAxLly7F888/D6VSiZo1a8Ld3R1nzpzBnTt3dO6zdu3aek32+Oijj+Dq6orU1FQsX74ctWrV0nlfImNjMiOdODo6wtvbG7///rte+z0+AeNJLC0tK2wXBMHgPh5ez3nI1tYWSUlJ+Omnn/Daa6/hzJkzGDJkCLp161Zu28qozLk8pFQqER4ejo0bN2LXrl1PrMoA4MMPP0RMTAw6duyIr776Cvv378eBAwfQpEkTnStQ4MHno49Tp07hxo0bAICzZ8/qtS+RsTGZkc769u2Ly5cvIzk5+Znb+vr6oqysDBcvXtRqz8rKQm5urmZmojG4uLhozfx76PHqDwAsLCzQtWtXLFmyBH/88QcWLFiAgwcP4ueff67w2A/jTEtLK7fuwoULqFmzJuzs7Cp3Ak8wfPhwnDp1Cnfv3q1w0sxD27dvR+fOnbFu3ToMHToU3bt3R1hYWLnPRNf/WOiioKAAI0eOROPGjTFmzBgsWrQIx48fN9rxifTFZEY6e/vtt2FnZ4fRo0cjKyur3PrLly/jk08+AfBgmAxAuRmHS5YsAQD06dPHaHE1aNAAd+7cwZkzZzRt169fx65du7S2u3XrVrl9H948/PjtAg95eXmhZcuW2Lhxo1Zy+P333/Hjjz9qzrMqdO7cGfPnz8fKlSvh6en5xO0sLS3LVX3btm3Df//7X622h0m3osSvrxkzZuDatWvYuHEjlixZgnr16iEyMvKJnyNRVeNN06SzBg0aIC4uDkOGDEFgYKDWE0COHDmCbdu2YcSIEQCAFi1aIDIyEp999hlyc3MRGhqK3377DRs3bsSAAQOeOO3bEEOHDsWMGTMwcOBATJo0Cffu3cPq1avRqFEjrQkQ8+bNQ1JSEvr06QNfX1/cuHEDq1atQp06ddC+ffsnHn/x4sXo1asXQkJCMGrUKBQWFmLFihVwcnLCnDlzjHYej7OwsMD777//zO369u2LefPmYeTIkWjbti3Onj2LzZs3o379+lrbNWjQAM7OzlizZg0cHBxgZ2eH4OBg+Pn56RXXwYMHsWrVKsyePVtzq8D69evRqVMnzJw5E4sWLdLreERGYeLZlCRCf/75p/Dmm28K9erVE6ytrQUHBwehXbt2wooVK4SioiLNdiUlJcLcuXMFPz8/wcrKSqhbt64QGxurtY0gPJia36dPn3L9PD4l/ElT8wVBEH788UehadOmgrW1teDv7y989dVX5abmJyQkCP379xe8vb0Fa2trwdvbWxg2bJjw559/luvj8enrP/30k9CuXTvB1tZWcHR0FPr16yf88ccfWts87O/xqf/r168XAAjp6elP/EwFQXtq/pM8aWr+1KlTBS8vL8HW1lZo166dkJycXOGU+m+//VZo3Lix8Nxzz2mdZ2hoqNCkSZMK+3z0OHl5eYKvr6/QqlUroaSkRGu76OhowcLCQkhOTn7qORBVBYUg6HFVmoiIyAzxmhkREYkekxkREYkekxkREYkekxkREYkekxkREYkekxkREYkekxkREYmeJJ8AUnTf1BEQidPec9dNHQI9waAW5d/uXhm2L0wweN/CUyuNGIlxSDKZERHRMyikNTAnrbMhIiLdKBSGL3qYM2cOFAqF1hIQEKBZX1RUhKioKLi5ucHe3h4REREVPsj8WZjMiIjkSGFh+KKnJk2a4Pr165rl8OHDmnXR0dHYs2cPtm3bhsTERGRkZCA8PFzvPjjMSEREVeq5556r8DVGd+7cwbp16xAXF4cuXboAePAGhsDAQBw9ehRt2rTRuQ9WZkREclSJYUa1Wo28vDyt5Wnvsrt48SK8vb1Rv359vPrqq7h27RoAICUlBSUlJQgLC9NsGxAQAB8fH51eAvwoJjMiIjmqxDCjSqWCk5OT1qJSqSrsJjg4GBs2bMC+ffuwevVqpKeno0OHDrh79y4yMzNhbW0NZ2dnrX08PDyQmZmp1+lwmJGISI70nMjxqNjYWMTExGi1KZXKCrft1auX5vfNmzdHcHAwfH198c0338DW1tbgGB7HZEZEJEeVmJqvVCqfmLyexdnZGY0aNcKlS5fQrVs3FBcXIzc3V6s6y8rKqvAa29NwmJGISI6qaWr+4/Lz83H58mV4eXkhKCgIVlZWSEhI0KxPS0vDtWvXEBISotdxWZkREVGVmTZtGvr16wdfX19kZGRg9uzZsLS0xLBhw+Dk5IRRo0YhJiYGrq6ucHR0xMSJExESEqLXTEaAyYyISJ6q6Qkg//zzD4YNG4acnBy4u7ujffv2OHr0KNzd3QEAS5cuhYWFBSIiIqBWq9GjRw+sWrVK734UgiAIxg7e1PhsRiLD8NmM5svoz2Zs957B+xb+usCIkRgHKzMiIjmS2LMZmcyIiOSokhM5zA2TGRGRHEmsMpPW2RARkSyxMiMikiOJVWZMZkREcmTBa2ZERCR2rMyIiEj0OJuRiIhET2KVmbTOhoiIZImVGRGRHHGYkYiIRE9iw4xMZkREcsTKjIiIRI+VGRERiZ7EKjNppWYiIpIlVmZERHLEYUYiIhI9iQ0zMpkREckRKzMiIhI9JjMiIhI9iQ0zSis1ExGRLLEyIyKSIw4zEhGR6ElsmJHJjIhIjliZERGR6LEyIyIisVNILJlJq84kIiJZYmVGRCRDUqvMmMyIiORIWrmMyYyISI5YmRERkegxmRERkegxmVG12RK3GRvXr0N29k008g/AO+/ORLPmzU0dFv0Pvx/TS//jNH7ZvQUZ6X/i7u0cvDptPhq/1EGz/r3BnSrcr+e/xqHDy0OrKUqqDpyab6b2/fA9Plqkwti3orBl2y74+wdg/NhRyMnJMXVoBH4/5qJYXQSveg3Qb9SUCte/89kOrSV8/AwoFAo0Ce5YvYGaIYVCYfBijsw2mWVlZWHevHmmDsNkNm1cj/BBgzFgYAQaNGyI92fPhY2NDeJ37jB1aAR+P+bC/4VgdBs6Gk0eqcYe5eDsprWcP34Yfk1egKuHdzVHaoYUlVjMkNkms8zMTMydO9fUYZhESXExzv9xDm1C2mraLCws0KZNW5w5fcqEkRHA70es8nNvIe3UUbTu0tvUoZgFqVVmJrtmdubMmaeuT0tL0+k4arUaarVaq02wVEKpVBocm6ndzr2N0tJSuLm5abW7ubkhPf2KiaKih/j9iNPJxP1Q2tTQuqYmZ+aalAxlsmTWsmVLKBQKCIJQbt3Ddl0+bJVKVa6Ce2/mbLw/a46xQiUiCUj5+Xu06BAGK2vx/kfXmJjMjMTV1RWLFi1C165dK1x/7tw59OvX75nHiY2NRUxMjFabYCnuP6wuzi6wtLQsN5kgJycHNWvWNFFU9BC/H/G5ev4MsjP+xtAps00dClURkyWzoKAgZGRkwNfXt8L1ubm5FVZtj1Mqyw8pFt03SogmY2VtjcDGTXDsaDK6dA0DAJSVleHYsWQMHfYvE0dH/H7E58TB7+BdvxG86jU0dShmg5WZkYwbNw4FBQVPXO/j44P169dXY0Tm5bXIkZj57gw0adIUTZs1x1ebNqKwsBADBoabOjQCvx9zoS66h5zM/2p+vn0jExlXL6KGvSOca3oAAIruFeD3o4no9dp4U4VpnqSVy0yXzAYOHFiu7ddff0Xr1q2hVCrh4uKCyMhIE0RmHnr26o3bt25h1crlyM6+Cf+AQKxa+x+4cRjLLPD7MQ//vZyGdXOjNT9//+WnAIAXQntgUFQsAODMkYOAIKBF+4ovaciV1CozhaDLWF41cXR0RGpqKurXr1+p44h9mJHIVPaeu27qEOgJBrXwMurx3EduNXjfm+uHGDES4zCrx1mZUV4lIpI0qVVmZnvTNBERka7MqjJbu3YtPDw8TB0GEZH0SaswM69kNnz4cFOHQEQkC1IbZjSrZEZERNVDasmM18yIiGTIFA8aXrhwIRQKBaZMmaJpKyoqQlRUFNzc3GBvb4+IiAhkZWXpfWwmMyIiGaruZHb8+HGsXbsWzR97gW10dDT27NmDbdu2ITExERkZGQgP1//hA0xmRERUpfLz8/Hqq6/i888/h4uLi6b9zp07WLduHZYsWYIuXbogKCgI69evx5EjR3D06FG9+mAyIyKSo0q8nFOtViMvL09refxVXI+KiopCnz59EBYWptWekpKCkpISrfaAgAD4+PggOTlZr9NhMiMikqHKDDOqVCo4OTlpLSqVqsJ+tmzZgpMnT1a4PjMzE9bW1nB2dtZq9/DwQGZmpl7nw9mMREQyVJmJHBW9equiFyL//fffmDx5Mg4cOAAbGxuD+9MFkxkRkQxVJplV9OqtiqSkpODGjRto1aqVpq20tBRJSUlYuXIl9u/fj+LiYuTm5mpVZ1lZWfD09NQrJiYzIiKqEl27dsXZs2e12kaOHImAgADMmDEDdevWhZWVFRISEhAREQEASEtLw7Vr1xASEqJXX0xmRERyVA33TDs4OKBp06ZabXZ2dnBzc9O0jxo1CjExMXB1dYWjoyMmTpyIkJAQtGnTRq++mMyIiGTIXJ4AsnTpUlhYWCAiIgJqtRo9evTAqlWr9D6OWb3PzFj4PjMiw/B9ZubL2O8z8520x+B9/1rez4iRGAcrMyIiGTKXysxYmMyIiGRIasmMN00TEZHosTIjIpIjaRVmTGZERHIktWFGJjMiIhliMiMiItGTWC5jMiMikiOpVWaczUhERKLHyoyISIYkVpgxmRERyZHUhhmZzIiIZEhiuYzJjIhIjiwspJXNmMyIiGRIapUZZzMSEZHosTIjIpIhTgAhIiLRk1guYzIjIpIjVmZERCR6TGZERCR6EstlnM1IRETix8qMiEiGOMxIRESiJ7FcxmRGRCRHrMyIiEj0JJbLmMyIiORIapUZZzMSEZHosTIjIpIhiRVmTGZERHIktWFGJjMi0ugZ4GnqEKiaSCyXMZkREckRKzMiIhI9ieUyzmYkIiLxY2VGRCRDHGYkIiLRk1guYzIjIpIjVmZERCR6TGZERCR6EstlnM1IRETix8qMiEiGOMxIRESiJ7FcxmRGRCRHrMyIiEj0JJbLmMyIiOTIQmLZjLMZiYhI9FiZERHJkMQKMyYzIiI54gQQIiISPQtp5TImMyIiOWJlRkREoiexXMbZjEREVHVWr16N5s2bw9HREY6OjggJCcEPP/ygWV9UVISoqCi4ubnB3t4eERERyMrK0rsfJjMiIhlSVOKXPurUqYOFCxciJSUFJ06cQJcuXdC/f3+cO3cOABAdHY09e/Zg27ZtSExMREZGBsLDw/U/H0EQBL33MnNF900dAZE43S+V3D8HkmGvNO644MufHTd4391jXqxU366urli8eDEGDRoEd3d3xMXFYdCgQQCACxcuIDAwEMnJyWjTpo3Ox+Q1MyIiGarMBBC1Wg21Wq3VplQqoVQqn7pfaWkptm3bhoKCAoSEhCAlJQUlJSUICwvTbBMQEAAfHx+9kxmHGYmIZEihMHxRqVRwcnLSWlQq1RP7Onv2LOzt7aFUKjFu3Djs2rULjRs3RmZmJqytreHs7Ky1vYeHBzIzM/U6H1ZmREQyVJlnM8bGxiImJkar7WlVmb+/P1JTU3Hnzh1s374dkZGRSExMNLj/ijCZERGRXnQZUnyUtbU1GjZsCAAICgrC8ePH8cknn2DIkCEoLi5Gbm6uVnWWlZUFT09PvWLiMCMRkQxVZpixssrKyqBWqxEUFAQrKyskJCRo1qWlpeHatWsICQnR65iszIiIZKi6ngASGxuLXr16wcfHB3fv3kVcXBwOHTqE/fv3w8nJCaNGjUJMTAxcXV3h6OiIiRMnIiQkRK/JHwCTGRGRLFXXE0Bu3LiB119/HdevX4eTkxOaN2+O/fv3o1u3bgCApUuXwsLCAhEREVCr1ejRowdWrVqldz+8z4yINHifmfky9n1mQzaeMnjfrZEvGDES42BlRkQkQxJ7NKNuyWz37t06H/Dll182OBgiIiJD6JTMBgwYoNPBFAoFSktLKxMPERFVA1m+AqasrKyq4yAiomrEl3MSEZHoybIye1xBQQESExNx7do1FBcXa62bNGmSUQIjIqKqI7Fcpn8yO3XqFHr37o179+6hoKAArq6uyM7ORo0aNVCrVi0mMyIiEZBaZab346yio6PRr18/3L59G7a2tjh69Cj++usvBAUF4aOPPqqKGImIiJ5K72SWmpqKqVOnwsLCApaWllCr1ahbty4WLVqEd999typiJCIiI7NQGL6YI72TmZWVFSwsHuxWq1YtXLt2DQDg5OSEv//+27jRERFRlVAoFAYv5kjva2YvvPACjh8/jueffx6hoaGYNWsWsrOzsWnTJjRt2rQqYiQiIiMzz5RkOL0rsw8//BBeXl4AgAULFsDFxQXjx4/HzZs38dlnnxk9QCIiMj4LhcLgxRzpXZm1bt1a8/tatWph3759Rg2IiIhIX7xpmohIhsy0wDKY3snMz8/vqRcAr1y5UqmA6P9tiduMjevXITv7Jhr5B+Cdd2eiWfPmpg6L/offj3k6eeI4vtywDufPn0P2zZv4aNlKdO4SZuqwzI65TuQwlN7JbMqUKVo/l5SU4NSpU9i3bx+mT59urLhkb98P3+OjRSq8P3sumjVrgc2bNmL82FH4du8+uLm5mTo82eP3Y74KCwvRyD8ALw+MwPToiaYOx2xJLJfpn8wmT55cYfunn36KEydOVDogemDTxvUIHzQYAwZGAADenz0XSUmHEL9zB0a9OcbE0RG/H/PVrkNHtOvQ0dRhmD1znchhKL1nMz5Jr169sGPHDmMdTtZKiotx/o9zaBPSVtNmYWGBNm3a4sxpw98OS8bB74ekQKEwfDFHRpsAsn37dri6uuq1T3Z2Nr744gskJycjMzMTAODp6Ym2bdtixIgRcHd3N1Z4onI79zZKS0vLDVe5ubkhPZ3XJE2N3w+R+THopulHLxwKgoDMzEzcvHkTq1at0vk4x48fR48ePVCjRg2EhYWhUaNGAICsrCwsX74cCxcuxP79+7VuBaiIWq2GWq3WahMslVAqlXqcFRGRvMh+Akj//v21PgQLCwu4u7ujU6dOCAgI0Pk4EydOxCuvvII1a9aU+1AFQcC4ceMwceJEJCcnP/U4KpUKc+fO1Wp7b+ZsvD9rjs6xmBsXZxdYWloiJydHqz0nJwc1a9Y0UVT0EL8fkgKjXWMyE3onszlz5hil49OnT2PDhg0V/u9AoVAgOjoaL7zwwjOPExsbi5iYGK02wVLcVZmVtTUCGzfBsaPJ6NL1wZTisrIyHDuWjKHD/mXi6IjfD0mB7CszS0tLXL9+HbVq1dJqz8nJQa1atVBaWqrTcTw9PfHbb789sZr77bff4OHh8czjKJXlhxSL7usUgll7LXIkZr47A02aNEXTZs3x1aaNKCwsxICB4aYOjcDvx5zdu1eAv//3AHQAyPjvP0i7cB6OTk7w8vI2YWTmxVyffm8ovZOZIAgVtqvValhbW+t8nGnTpmHMmDFISUlB165dNYkrKysLCQkJ+Pzzz2X9frSevXrj9q1bWLVyObKzb8I/IBCr1v4HbhzGMgv8fszXH+d+x9hRkZqflyxeCADo+/IAzP1goanCMjtSS2YK4UnZ6THLly8H8ODlnPPnz4e9vb1mXWlpKZKSknD16lWcOqX71OStW7di6dKlSElJ0VR0lpaWCAoKQkxMDAYPHqzPuWhIoTIjMoX7pTr9c0AmYK80bvaJ2X3B4H2XvKz7/IjqonMy8/PzAwD89ddfqFOnDiwtLTXrrK2tUa9ePcybNw/BwcF6B1FSUoLs7GwAQM2aNWFlZaX3MR7FZEZkGCYz82XsZDZ1T5rB+37cz9+IkRiHzsOM6enpAIDOnTtj586dcHFxMVoQVlZWmtfKEBFR1ZPaMKPe18x+/vnnqoiDiIiqkcQmM+p/q0FERAT+/e9/l2tftGgRXnnlFaMERUREVUtqL+fUO5klJSWhd+/e5dp79eqFpKQkowRFRERVy6ISiznSO678/PwKp+BbWVkhLy/PKEERERHpQ+9k1qxZM2zdurVc+5YtW9C4cWOjBEVERFVL9k/NnzlzJsLDw3H58mV06dIFAJCQkIC4uDhs377d6AESEZHxmeu1L0Ppncz69euH+Ph4fPjhh9i+fTtsbW3RokULHDx4UO9XwBARkWlILJcZ9j6zPn36oE+fPgCAvLw8fP3115g2bZrWkzyIiMh8Se0+M4MnpiQlJSEyMhLe3t74+OOP0aVLFxw9etSYsRERURWR2tR8vSqzzMxMbNiwAevWrUNeXh4GDx4MtVqN+Ph4Tv4gIiKT0bky69evH/z9/XHmzBksW7YMGRkZWLFiRVXGRkREVUS2sxl/+OEHTJo0CePHj8fzzz9flTEREVEVk+01s8OHD+Pu3bsICgpCcHAwVq5cqXnSPRERiYuiEr/Mkc7JrE2bNvj8889x/fp1jB07Flu2bIG3tzfKyspw4MAB3L17tyrjJCIiI7JQGL6YI53fZ1aRtLQ0rFu3Dps2bUJubi66deuG3bt3GzM+g/B9ZkSG4fvMzJex32e26OfLBu/7ducGRozEOCr1zEh/f38sWrQI//zzD77++mtjxURERKSXSlVm5oqVGZFhWJmZL2NXZosPXTF43+md6hsxEuMw6AkgREQkbuZ67ctQTGZERDJkrveLGYrJjIhIhsz1sVSGYjIjIpIhqQ0zmusbsImIiHTGZEZEJEPV9WxGlUqFF198EQ4ODqhVqxYGDBiAtLQ0rW2KiooQFRUFNzc32NvbIyIiAllZWXr1w2RGRCRDFlAYvOgjMTERUVFROHr0KA4cOICSkhJ0794dBQUFmm2io6OxZ88ebNu2DYmJicjIyEB4eLhe/fA+MyLS4H1m5svY95mtOnLV4H3falvP4H1v3ryJWrVqITExER07dsSdO3fg7u6OuLg4DBo0CABw4cIFBAYGIjk5GW3atNHpuKzMiIhkqDLPZlSr1cjLy9Na1Gq1Tv3euXMHAODq6goASElJQUlJCcLCwjTbBAQEwMfHB8nJybqfjx7nTkREElGZN02rVCo4OTlpLSqV6pl9lpWVYcqUKWjXrh2aNm0K4MFLn62treHs7Ky1rYeHBzIzM3U+H07NJyIivcTGxiImJkarTalUPnO/qKgo/P777zh8+LDRY2IyIyKSocrcM61UKnVKXo+aMGEC9u7di6SkJNSpU0fT7unpieLiYuTm5mpVZ1lZWfD09NT5+BxmJCKSocoMM+pDEARMmDABu3btwsGDB+Hn56e1PigoCFZWVkhISNC0paWl4dq1awgJCdG5H1ZmREQyVF1Ps4qKikJcXBy+/fZbODg4aK6DOTk5wdbWFk5OThg1ahRiYmLg6uoKR0dHTJw4ESEhITrPZASYzIiIZKm6huVWr14NAOjUqZNW+/r16zFixAgAwNKlS2FhYYGIiAio1Wr06NEDq1at0qsf3mdGRBq8z8x8Gfs+s40n/jZ438jWdY0YiXHwmhkREYkehxmJiGRIYg/NZzIjIpIjvs+MiIhET1qpjMmMiEiWJFaYMZkREcmRQmLZjLMZiYhI9FiZERHJkNQqGSYzIiIZktowI5MZEZEMSSuVMZkREckSKzMRKCopNXUI9BQ2VpamDoGewL3NRFOHQE9QeGqlUY8ntWtmUjsfIiKSIUlWZkRE9HQcZiQiItGTVipjMiMikiWJFWZMZkREcmQhsdqMyYyISIakVplxNiMREYkeKzMiIhlScJiRiIjETmrDjExmREQyxAkgREQkeqzMiIhI9KSWzDibkYiIRI+VGRGRDHE2IxERiZ6FtHIZkxkRkRyxMiMiItHjBBAiIiIzw8qMiEiGOMxIRESixwkgREQkeqzMiIhI9KQ2AYTJjIhIhiSWyzibkYiIxI+VGRGRDFlIbJyRyYyISIaklcqYzIiI5Eli2YzJjIhIhjg1n4iIRE9il8w4m5GIiMSPlRkRkQxJrDBjMiMikiWJZTMmMyIiGeIEECIiEj2pTQBhMiMikiGJ5TLOZiQiIvFjZUZEJEcSK81YmRERyZCiEr/0kZSUhH79+sHb2xsKhQLx8fFa6wVBwKxZs+Dl5QVbW1uEhYXh4sWLep8PkxkRkQwpFIYv+igoKECLFi3w6aefVrh+0aJFWL58OdasWYNjx47Bzs4OPXr0QFFRkV79cJiRiEiGqmuUsVevXujVq1eF6wRBwLJly/D++++jf//+AIAvv/wSHh4eiI+Px9ChQ3Xuh5UZEZEcKQxf1Go18vLytBa1Wq13COnp6cjMzERYWJimzcnJCcHBwUhOTtbrWExmRESkF5VKBScnJ61FpVLpfZzMzEwAgIeHh1a7h4eHZp2uOMxIRCRDlXkCSGxsLGJiYrTalEplZUOqFCYzIiIZqswTQJRKpVGSl6enJwAgKysLXl5emvasrCy0bNlSr2NxmJGISIYqccnMaPz8/ODp6YmEhARNW15eHo4dO4aQkBC9jsXKzExtWPcZDiX8hL+uXoFSaYNmLVpiwpSp8K3nZ+rQ6H+2xG3GxvXrkJ19E438A/DOuzPRrHlzU4clK++N7Y33x/XWaktLz0TL8A8AAG+Et8OQXq3RMqAOHO1t4dlhOu7kF5oiVPNTTdMZ8/PzcenSJc3P6enpSE1NhaurK3x8fDBlyhR88MEHeP755+Hn54eZM2fC29sbAwYM0KsfJjMzdSrlBAYNGYbGTZrifmkpVq9YhknjR2PLzj2wta1h6vBkb98P3+OjRSq8P3sumjVrgc2bNmL82FH4du8+uLm5mTo8WTl3KQN9xq3Q/Hy/tEzz+xo2Vjhw5A8cOPIH5k/qb4rwzFZ1PTX/xIkT6Ny5s+bnh9faIiMjsWHDBrz99tsoKCjAmDFjkJubi/bt22Pfvn2wsbHRqx+FIAiCUSM3A7mFpaYOwehu37qFnl3aY826L/FCUGtTh1MpNlaWpg6h0l4d+gqaNG2Gd9+fBQAoKytD966hGDb8NYx6c4yJozOcy4sTTB2CXt4b2xv9OjdHm6ELn7pdh6Dn8eN/Jou6Mis8tdKoxzv33wKD921S286IkRgHr5mJRH7+XQCAo5OTiSOhkuJinP/jHNqEtNW0WVhYoE2btjhz+pQJI5Onhj7uuPLjAvyxZw7WL4hEXU8XU4ckCtX1BJDqYtbJ7O+//8Ybb7zx1G2MdfOeOSsrK8PSxQvRvGUrNGj4vKnDkb3bubdRWlpabjjRzc0N2dnZJopKno7/fhVjZn2Fl6M+xaQPt6JebTf89EU07GuYdpq4GJjDBBBjMutkduvWLWzcuPGp21R0897SxU8fchCbxar5uHLpIj7490emDoXIrPz46x/Y+dMp/H4xAz8ln8eACavhZG+LiO6tTB2a+ZNYNjPpBJDdu3c/df2VK1eeeYyKbt4rLJPOvJbFqg9wOCkRa7/4Eh4enqYOhwC4OLvA0tISOTk5Wu05OTmoWbOmiaIiALiTX4hL126gQV13U4di9qprAkh1Mem/+gMGDIBCocDT5qAonjFAW9HNe2USmAAiCAI+WrgAiQd/wqr/bIB37TqmDon+x8raGoGNm+DY0WR06frgmXJlZWU4diwZQ4f9y8TRyZudrTX86tRE5ne/mToUs2eu174MZdJhRi8vL+zcuRNlZWUVLidPnjRleCa1+MP52PfdHsxTLYadnR1ysm8iJ/um3q9FoKrxWuRI7Nz+DXbH78KVy5fxwbw5KCwsxICB4aYOTVZU0QPRPqghfLxc0aaFH7YuGYPSsjJ8sy8FAODh5oDmjWqjgc+Dirnp895o3qg2XBx5e4vUmLQyCwoKQkpKiubR/497VtUmZTu2bQEAjB8dqdU+c+4C9O0/0BQh0SN69uqN27duYdXK5cjOvgn/gECsWvsfuHGYsVrV9nDGl6qRcHWqgezb+TiSegWhr3+M7Nv5AIDRgzpo3VT90xfRAIA3Z23CV3uOmSRmcyGxwsy095n98ssvKCgoQM+ePStcX1BQgBMnTiA0NFSv40rxPjMpkcJ9ZlIltvvM5MTY95n9mXXP4H0beZhfZWvSyqxDhw5PXW9nZ6d3IiMiomfjBBAiIhI9qU0AYTIjIpIhieUy875pmoiISBeszIiI5EhipRmTGRGRDHECCBERiR4ngBARkehJLJcxmRERyZLEshlnMxIRkeixMiMikiFOACEiItHjBBAiIhI9ieUyJjMiIjliZUZERBIgrWzG2YxERCR6rMyIiGSIw4xERCR6EstlTGZERHLEyoyIiESPN00TEZH4SSuXcTYjERGJHyszIiIZklhhxmRGRCRHnABCRESixwkgREQkftLKZUxmRERyJLFcxtmMREQkfqzMiIhkiBNAiIhI9DgBhIiIRE9qlRmvmRERkeixMiMikiFWZkRERGaGlRkRkQxxAggREYme1IYZmcyIiGRIYrmMyYyISJYkls04AYSIiESPlRkRkQxxAggREYkeJ4AQEZHoSSyX8ZoZEZEsKSqxGODTTz9FvXr1YGNjg+DgYPz222+VPQMtTGZERDKkqMQvfW3duhUxMTGYPXs2Tp48iRYtWqBHjx64ceOG0c6HyYyIiKrUkiVL8Oabb2LkyJFo3Lgx1qxZgxo1auCLL74wWh9MZkREMqRQGL6o1Wrk5eVpLWq1usJ+iouLkZKSgrCwME2bhYUFwsLCkJycbLTzkeQEEGdbS1OHYDRqtRoqlQqxsbFQKpWmDoceIcXvpvDUSlOHYDRS/H6MyaYS//rP+UCFuXPnarXNnj0bc+bMKbdtdnY2SktL4eHhodXu4eGBCxcuGB7EYxSCIAhGOxoZXV5eHpycnHDnzh04OjqaOhx6BL8b88bvp+qo1epylZhSqazwPw0ZGRmoXbs2jhw5gpCQEE3722+/jcTERBw7dswoMUmyMiMioqrzpMRVkZo1a8LS0hJZWVla7VlZWfD09DRaTLxmRkREVcba2hpBQUFISEjQtJWVlSEhIUGrUqssVmZERFSlYmJiEBkZidatW+Oll17CsmXLUFBQgJEjRxqtDyYzM6dUKjF79mxewDZD/G7MG78f8zFkyBDcvHkTs2bNQmZmJlq2bIl9+/aVmxRSGZwAQkREosdrZkREJHpMZkREJHpMZkREJHpMZkREJHpMZmZu586d6N69O9zc3KBQKJCammrqkOh/qvqVFmSYpKQk9OvXD97e3lAoFIiPjzd1SFQNmMzMXEFBAdq3b49///vfpg6FHlEdr7QgwxQUFKBFixb49NNPTR0KVSNOzReJq1evws/PD6dOnULLli1NHY7sBQcH48UXX8TKlQ8ezFtWVoa6deti4sSJeOedd0wcHT2kUCiwa9cuDBgwwNShUBVjZUakp+p6pQUR6Y7JjEhPT3ulRWZmpomiIpI3JjMzsnnzZtjb22uWX375xdQhERGJAp/NaEZefvllBAcHa36uXbu2CaOhJ6muV1oQke5YmZkRBwcHNGzYULPY2tqaOiSqQHW90oKIdMfKzMzdunUL165dQ0ZGBgAgLS0NAODp6ckqwISq45UWZJj8/HxcunRJ83N6ejpSU1Ph6uoKHx8fE0ZGVUogs7Z+/XoBQLll9uzZpg5N9lasWCH4+PgI1tbWwksvvSQcPXrU1CGRIAg///xzhX9nIiMjTR0aVSHeZ0ZERKLHa2ZERCR6TGZERCR6TGZERCR6TGZERCR6TGZERCR6TGZERCR6TGZERCR6TGZERCR6TGZEOhoxYoTWSx47deqEKVOmVHschw4dgkKhQG5ubrX3TWSumMxI9EaMGAGFQgGFQgFra2s0bNgQ8+bNw/3796u03507d2L+/Pk6bcsERFS1+KBhkoSePXti/fr1UKvV+P777xEVFQUrKyvExsZqbVdcXAxra2uj9Onq6mqU4xBR5bEyI0lQKpXw9PSEr68vxo8fj7CwMOzevVszNLhgwQJ4e3vD398fAPD3339j8ODBcHZ2hqurK/r374+rV69qjldaWoqYmBg4OzvDzc0Nb7/9Nh5/jOnjw4xqtRozZsxA3bp1oVQq0bBhQ6xbtw5Xr15F586dAQAuLi5QKBQYMWIEgAevjlGpVPDz84OtrS1atGiB7du3a/Xz/fffo1GjRrC1tUXnzp214iSiB5jMSJJsbW1RXFwMAEhISEBaWhoOHDiAvXv3oqSkBD169ICDgwN++eUX/Prrr7C3t0fPnj01+3z88cfYsGEDvvjiCxw+fBi3bt3Crl27ntrn66+/jq+//hrLly/H+fPnsXbtWtjb26Nu3brYsWMHgAev8Ll+/To++eQTAIBKpcKXX36JNWvW4Ny5c4iOjsa//vUvJCYmAniQdMPDw9GvXz+kpqZi9OjReOedd6rqYyMSLxM/tZ+o0iIjI4X+/fsLgiAIZWVlwoEDBwSlUilMmzZNiIyMFDw8PAS1Wq3ZftOmTYK/v79QVlamaVOr1YKtra2wf/9+QRAEwcvLS1i0aJFmfUlJiVCnTh1NP4IgCKGhocLkyZMFQRCEtLQ0AYBw4MCBCmN8+FqS27dva9qKioqEGjVqCEeOHNHadtSoUcKwYcMEQRCE2NhYoXHjxlrrZ8yYUe5YRHLHa2YkCXv37oW9vT1KSkpQVlaG4cOHY86cOYiKikKzZs20rpOdPn0aly5dgoODg9YxioqKcPnyZdy5cwfXr19HcHCwZt1zzz2H1q1blxtqfCg1NRWWlpYIDQ3VOeZLly7h3r176Natm1Z7cXExXnjhBQDA+fPnteIAwLdZE1WAyYwkoXPnzli9ejWsra3h7e2N5577/z/adnZ2Wtvm5+cjKCgImzdvLnccd3d3g/q3tbXVe5/8/HwAwHfffYfatWtrrVMqlQbFQSRXTGYkCXZ2dmjYsKFO27Zq1Qpbt25FrVq14OjoWOE2Xl5eOHbsGDp27AgAuH//PlJSUtCqVasKt2/WrBnKysqQmJiIsLCwcusfVoalpaWatsaNG0OpVOLatWtPrOgCAwOxe/durbajR48++ySJZIYTQEh2Xn31VdSsWRP9+/fHL7/8gvT0dBw6dAiTJk3CP//8AwCYPHkyFi5ciPj4eFy4cAFvvfXWU+8Rq1evHiIjI/HGG28gPj5ec8xvvvkGAODr6wuFQoG9e/fi5s2byM/Ph4ODA6ZNm4bo6Ghs3LgRly9fxsmTJ7FixQps3LgRADBu3DhcvHgR06dPR1paGuLi4rBhw4aq/oiIRIfJjGSnRo0aSEpKgo+PD8LDwxEYGIhRo0ahqKhIU6lNnToVr732GiIjIxESEgIHBwcMHDjwqcddvXo1Bg0ahLfeegsBAQF48803UVBQAACoXbs25s6di3feeQceHh6YMGECAGD+/PmYOXMmVCoVAgMD0bNnT3z33Xfw8/MDAPj4+GDHjh2Ij49HixYtsGbNGnz44YdV+OkQiZNCeNIVbSIiIpFgZUZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKLHZEZERKL3fxuVIBXey3WhAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "sSvRSDit2jyM" + }, + "id": "sSvRSDit2jyM" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "_kEV9XZD2jyM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "eb0311c5-dc0f-4aec-a189-a8358f68a7de" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.801153 0.801153 0.831835 0.775232\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "rf_train_st = model_performance_classification_sklearn(y_train,y_pred_train)\n", + "print(\"Training performance:\\n\", rf_train_st)" + ], + "id": "_kEV9XZD2jyM" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "QoFxAES32jyM", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "74f810ea-08e2-4c99-a9c2-9187bfbd2357" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.71831 0.71831 0.551745 0.624105\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "rf_test_st = model_performance_classification_sklearn(y_test, y_pred_test)\n", + "print(\"Testing performance:\\n\",rf_test_st)" + ], + "id": "QoFxAES32jyM" + }, + { + "cell_type": "markdown", + "id": "ZmPPcdrHE9K2", + "metadata": { + "id": "ZmPPcdrHE9K2" + }, + "source": [ + "* The model is highly overfitting, as there is a significant difference between its performance on the training set and the test set." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DHgj_cCm2pIn" + }, + "source": [ + "### **Building Neural Network Models using different text embeddings**" + ], + "id": "DHgj_cCm2pIn" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Building a Neural Network Model using text embeddings obtained from the Word2Vec**" + ], + "metadata": { + "id": "LpasFYQriueC" + }, + "id": "LpasFYQriueC" + }, + { + "cell_type": "code", + "source": [ + "# Convert the labels\n", + "label_mapping = {1: 2, -1: 0, 0: 1}\n", + "y_train_mapped_wv = [label_mapping[label] for label in y_train]\n", + "y_test_mapped_wv = [label_mapping[label] for label in y_test]\n", + "\n", + "# Convert your features DataFrame to a NumPy array\n", + "X_train_wv_np = np.array(X_train_wv)\n", + "X_test_wv_np = np.array(X_test_wv)\n", + "y_train_mapped_wv = np.array(y_train_mapped_wv)\n", + "y_test_mapped_wv = np.array(y_test_mapped_wv)" + ], + "metadata": { + "id": "xIeKB-P4nYFi" + }, + "id": "xIeKB-P4nYFi", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import gc\n", + "\n", + "# Clear previous sessions\n", + "tf.keras.backend.clear_session()\n", + "gc.collect()\n", + "\n", + "# Model definition\n", + "model = Sequential()\n", + "model.add(Dense(128, activation='relu', input_shape=(X_train_wv_np.shape[1],))) # Use the shape of the Word2Vec embeddings\n", + "model.add(Dropout(0.3))\n", + "model.add(Dense(64, activation='relu'))\n", + "model.add(Dense(3, activation='softmax')) # 3 output classes\n", + "\n", + "# Compile\n", + "model.compile(optimizer='adam',loss='sparse_categorical_crossentropy', metrics =['accuracy'])\n", + "\n", + "# Summary\n", + "model.summary()" + ], + "metadata": { + "id": "pPoM2BhyXvBv", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 257 + }, + "outputId": "46ff0a8e-280d-40a4-df68-ce369e6c8029" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1mModel: \"sequential\"\u001b[0m\n" + ], + "text/html": [ + "
Model: \"sequential\"\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m38,528\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m8,256\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3\u001b[0m) │ \u001b[38;5;34m195\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ], + "text/html": [ + "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
+              "┃ Layer (type)                     Output Shape                  Param # ┃\n",
+              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
+              "│ dense (Dense)                   │ (None, 128)            │        38,528 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dropout (Dropout)               │ (None, 128)            │             0 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_1 (Dense)                 │ (None, 64)             │         8,256 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_2 (Dense)                 │ (None, 3)              │           195 │\n",
+              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m46,979\u001b[0m (183.51 KB)\n" + ], + "text/html": [ + "
 Total params: 46,979 (183.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m46,979\u001b[0m (183.51 KB)\n" + ], + "text/html": [ + "
 Trainable params: 46,979 (183.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ], + "text/html": [ + "
 Non-trainable params: 0 (0.00 B)\n",
+              "
\n" + ] + }, + "metadata": {} + } + ], + "id": "pPoM2BhyXvBv" + }, + { + "cell_type": "markdown", + "source": [ + "**Note:**\n", + "- During training, we use accuracy as a metric to monitor how well the model is learning to distinguish between classes in each batch.\n", + "- Accuracy is fast and reliable during training and gives us a quick view of model progress.\n", + "- It reflects how often the model is predicting the correct label out of all predictions made.\n", + "\n" + ], + "metadata": { + "id": "kIxFfSYLQNlT" + }, + "id": "kIxFfSYLQNlT" + }, + { + "cell_type": "code", + "source": [ + "# Fitting the model\n", + "history = model.fit(\n", + " X_train_wv_np, y_train_mapped_wv,\n", + " epochs=10,\n", + " batch_size=32\n", + ")" + ], + "metadata": { + "id": "bgHeOMfpnobV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6b648ba6-870f-4dfc-a2a7-b38a97c50cef" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - accuracy: 0.5349 - loss: 0.9062\n", + "Epoch 2/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.6190 - loss: 0.7523 \n", + "Epoch 3/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.5989 - loss: 0.7214 \n", + "Epoch 4/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.5874 - loss: 0.7687 \n", + "Epoch 5/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6741 - loss: 0.7038 \n", + "Epoch 6/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6298 - loss: 0.7276 \n", + "Epoch 7/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6655 - loss: 0.7134 \n", + "Epoch 8/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6025 - loss: 0.7213 \n", + "Epoch 9/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.6321 - loss: 0.7183 \n", + "Epoch 10/10\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.6456 - loss: 0.7322 \n" + ] + } + ], + "id": "bgHeOMfpnobV" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**" + ], + "metadata": { + "id": "IX11-Hmx8_E1" + }, + "id": "IX11-Hmx8_E1" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on training data\n", + "y_train_pred_probs = model.predict(X_train_wv_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_train_preds_wv = tf.argmax(y_train_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "ZpEpHWni87cO", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "156eca77-fc90-4df0-87ac-daf08655f0b6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step \n" + ] + } + ], + "id": "ZpEpHWni87cO" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on test data\n", + "y_test_pred_probs = model.predict(X_test_wv_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_test_preds_wv = tf.argmax(y_test_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "hBMMkZBk9Jkz", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "d66d1a0d-3bb4-4fa3-d68e-ded8a15c2696" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m3/3\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step\n" + ] + } + ], + "id": "hBMMkZBk9Jkz" + }, + { + "cell_type": "code", + "source": [ + "# Convert back to [-1, 0, 1] to match utility function expectations\n", + "label_mapping = {2: 1, 0: -1, 1: 0}\n", + "y_train_preds_wv = np.array([label_mapping[index] for index in y_train_preds_wv])\n", + "y_test_preds_wv = np.array([label_mapping[index] for index in y_test_preds_wv])" + ], + "metadata": { + "id": "wCPqMh0nwryB" + }, + "id": "wCPqMh0nwryB", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "Jbeyf8dzk3MP" + }, + "id": "Jbeyf8dzk3MP" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_train, y_train_preds_wv)" + ], + "metadata": { + "id": "lIh2fXcwxJ0G", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "711755dc-7004-4b9d-cb30-b06839893f72" + }, + "id": "lIh2fXcwxJ0G", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test, y_test_preds_wv)" + ], + "metadata": { + "id": "djUVsYwYYBJd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "b02647ff-0825-4c59-8c4b-bdc26cc7a9e1" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "id": "djUVsYwYYBJd" + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "1NqSOfNd1UmS" + }, + "id": "1NqSOfNd1UmS" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "5qzE4NHS1UmS", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "68bd5ff5-8663-49d2-cf32-0907384a849a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.636888 0.636888 0.664626 0.516128\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "NN_train_wv = model_performance_classification_sklearn(y_train,y_train_preds_wv)\n", + "print(\"Training performance:\\n\", NN_train_wv)" + ], + "id": "5qzE4NHS1UmS" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "4Nr34HI31UmT", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b07a23fe-a40e-4497-8df2-05e18239480e" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.760563 0.760563 0.804628 0.669911\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "NN_test_wv = model_performance_classification_sklearn(y_test, y_test_preds_wv)\n", + "print(\"Testing performance:\\n\",NN_test_wv)" + ], + "id": "4Nr34HI31UmT" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Building a Neural Network Model using text embeddings obtained from the Sentence Transformer**" + ], + "metadata": { + "id": "bcXtMsPu3JfI" + }, + "id": "bcXtMsPu3JfI" + }, + { + "cell_type": "code", + "source": [ + "# Convert the labels\n", + "label_mapping = {1: 2, -1: 0, 0: 1}\n", + "y_train_mapped_st = [label_mapping[label] for label in y_train]\n", + "y_test_mapped_st = [label_mapping[label] for label in y_test]\n", + "\n", + "# Convert your features DataFrame to a NumPy array\n", + "X_train_st_np = np.array(X_train_st)\n", + "X_test_st_np = np.array(X_test_st)\n", + "y_train_mapped_st = np.array(y_train_mapped_st)\n", + "y_test_mapped_st = np.array(y_test_mapped_st)" + ], + "metadata": { + "id": "FUfjCAua4A2-" + }, + "execution_count": null, + "outputs": [], + "id": "FUfjCAua4A2-" + }, + { + "cell_type": "code", + "source": [ + "import gc\n", + "\n", + "# Clear previous sessions\n", + "tf.keras.backend.clear_session()\n", + "gc.collect()\n", + "\n", + "# Define the model\n", + "model = Sequential()\n", + "model.add(Dense(128, activation='relu', input_shape=(X_train_st.shape[1],)))\n", + "model.add(Dropout(0.3))\n", + "model.add(Dense(64, activation='relu'))\n", + "model.add(Dense(3, activation='softmax')) # 3 classes (positive, negative, neutral)\n", + "\n", + "# Compile the model\n", + "model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['Accuracy'])\n", + "\n", + "# Summary\n", + "model.summary()" + ], + "metadata": { + "id": "ziE6DVHA4A2-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 257 + }, + "outputId": "55b5e48b-d3dd-4986-ce74-027c5f902891" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1mModel: \"sequential\"\u001b[0m\n" + ], + "text/html": [ + "
Model: \"sequential\"\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m49,280\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m8,256\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3\u001b[0m) │ \u001b[38;5;34m195\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ], + "text/html": [ + "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
+              "┃ Layer (type)                     Output Shape                  Param # ┃\n",
+              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
+              "│ dense (Dense)                   │ (None, 128)            │        49,280 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dropout (Dropout)               │ (None, 128)            │             0 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_1 (Dense)                 │ (None, 64)             │         8,256 │\n",
+              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+              "│ dense_2 (Dense)                 │ (None, 3)              │           195 │\n",
+              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m57,731\u001b[0m (225.51 KB)\n" + ], + "text/html": [ + "
 Total params: 57,731 (225.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m57,731\u001b[0m (225.51 KB)\n" + ], + "text/html": [ + "
 Trainable params: 57,731 (225.51 KB)\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ], + "text/html": [ + "
 Non-trainable params: 0 (0.00 B)\n",
+              "
\n" + ] + }, + "metadata": {} + } + ], + "id": "ziE6DVHA4A2-" + }, + { + "cell_type": "code", + "source": [ + "# Fitting the model\n", + "history = model.fit(\n", + " X_train_st_np, y_train_mapped_st,\n", + " epochs=15,\n", + " batch_size=32\n", + ")" + ], + "metadata": { + "id": "8J-JncGj4A2_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3faf37bb-8f28-4662-8b16-ca054230d4cd" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - Accuracy: 0.6300 - loss: 1.0422\n", + "Epoch 2/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6496 - loss: 0.8380 \n", + "Epoch 3/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6464 - loss: 0.7074 \n", + "Epoch 4/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6099 - loss: 0.7004 \n", + "Epoch 5/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6664 - loss: 0.6625 \n", + "Epoch 6/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.6915 - loss: 0.6035 \n", + "Epoch 7/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.7356 - loss: 0.5585 \n", + "Epoch 8/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - Accuracy: 0.7714 - loss: 0.5521 \n", + "Epoch 9/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - Accuracy: 0.7655 - loss: 0.5158 \n", + "Epoch 10/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - Accuracy: 0.7861 - loss: 0.4997 \n", + "Epoch 11/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - Accuracy: 0.8121 - loss: 0.4551\n", + "Epoch 12/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - Accuracy: 0.7897 - loss: 0.4756 \n", + "Epoch 13/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - Accuracy: 0.8454 - loss: 0.4200 \n", + "Epoch 14/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - Accuracy: 0.8362 - loss: 0.4135 \n", + "Epoch 15/15\n", + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - Accuracy: 0.8560 - loss: 0.3473 \n" + ] + } + ], + "id": "8J-JncGj4A2_" + }, + { + "cell_type": "markdown", + "source": [ + "#### **Checking Training and Test Performance**" + ], + "metadata": { + "id": "rbsZ24gM4A2_" + }, + "id": "rbsZ24gM4A2_" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on training data\n", + "y_train_pred_probs = model.predict(X_train_st_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_train_preds_st = tf.argmax(y_train_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "xaWGws3r4A2_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c3f459d7-9745-44f3-bfd6-0df051411294" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step\n" + ] + } + ], + "id": "xaWGws3r4A2_" + }, + { + "cell_type": "code", + "source": [ + "# Predict class probabilities on test data\n", + "y_test_pred_probs = model.predict(X_test_st_np)\n", + "\n", + "# Convert probabilities to class labels\n", + "y_test_preds_st = tf.argmax(y_test_pred_probs, axis=1).numpy()" + ], + "metadata": { + "id": "P8yF-MWH4A2_", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "0bfe417b-bb4a-446f-8ee0-7fde7e16f62a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m3/3\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step\n" + ] + } + ], + "id": "P8yF-MWH4A2_" + }, + { + "cell_type": "code", + "source": [ + "# Convert back to [-1, 0, 1] to match utility function expectations\n", + "label_mapping = {2: 1, 0: -1, 1: 0}\n", + "y_train_preds_st = np.array([label_mapping[index] for index in y_train_preds_st])\n", + "y_test_preds_st = np.array([label_mapping[index] for index in y_test_preds_st])" + ], + "metadata": { + "id": "YbwmP-dE4A3A" + }, + "execution_count": null, + "outputs": [], + "id": "YbwmP-dE4A3A" + }, + { + "cell_type": "markdown", + "source": [ + "**Confusion Matrix**" + ], + "metadata": { + "id": "YoVyydZW4A3A" + }, + "id": "YoVyydZW4A3A" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_train, y_train_preds_st)" + ], + "metadata": { + "id": "I2yC2oAB4A3A", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "c678cd56-9ae7-4a9c-becf-e1dfa09973d1" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "id": "I2yC2oAB4A3A" + }, + { + "cell_type": "code", + "source": [ + "plot_confusion_matrix(y_test, y_test_preds_st)" + ], + "metadata": { + "collapsed": true, + "id": "mZLu8fRk4A3A", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + }, + "outputId": "e96330e8-96aa-476e-b47d-e4d5bcc6a561" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "id": "mZLu8fRk4A3A" + }, + { + "cell_type": "markdown", + "source": [ + "**Classification Report**" + ], + "metadata": { + "id": "eDqgpX_a4A3B" + }, + "id": "eDqgpX_a4A3B" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Jq_ES16g4A3B", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "95db0a8b-3659-4319-ecab-82c051217d1f" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.878963 0.878963 0.864731 0.871679\n" + ] + } + ], + "source": [ + "#Calculating different metrics on training data\n", + "NN_train_st = model_performance_classification_sklearn(y_train,y_train_preds_st)\n", + "print(\"Training performance:\\n\", NN_train_st)" + ], + "id": "Jq_ES16g4A3B" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7MUEidM44A3B", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b3ebc9fb-7278-4621-cb18-5f53190b284a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance:\n", + " Accuracy Recall Precision F1\n", + "0 0.788732 0.788732 0.780908 0.784708\n" + ] + } + ], + "source": [ + "#Calculating different metrics on test data\n", + "NN_test_st = model_performance_classification_sklearn(y_test, y_test_preds_st)\n", + "print(\"Testing performance:\\n\",NN_test_st)" + ], + "id": "7MUEidM44A3B" + }, + { + "cell_type": "markdown", + "id": "gsmrYpkrFY2A", + "metadata": { + "id": "gsmrYpkrFY2A" + }, + "source": [ + "### **Model Performance Summary and Final Model Selection**" + ] + }, + { + "cell_type": "code", + "source": [ + "# Concatenate the training performance metrics from different models into a single DataFrame\n", + "models_train_comp_df = pd.concat(\n", + " [\n", + " rf_train_wv.T, # Random Forest using Word2Vec embeddings\n", + " NN_train_wv.T, # Neural Network using Word2Vec embeddings\n", + " rf_train_st.T, # Random Forest using Sentence Transformer embeddings\n", + " NN_train_st.T # Neural Network using Sentence Transformer embeddings\n", + " ],\n", + " axis=1 # Concatenate along columns (i.e., each model's metrics form one column)\n", + ")\n", + "\n", + "# Assigning meaningful column names for each model for clarity in the output DataFrame\n", + "models_train_comp_df.columns = [\n", + " \"Word2Vec (Random Forest)\",\n", + " \"Word2Vec (Neural Network)\",\n", + " \"Sentence Transformer (Random Forest)\",\n", + " \"Sentence Transformer (Neural Network)\"\n", + "]\n", + "\n", + "# Print the training performance comparison table\n", + "print(\"Training performance comparison:\")\n", + "models_train_comp_df" + ], + "metadata": { + "id": "FmgvAlKBWjR-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 192 + }, + "outputId": "68dd172d-e821-4c30-82e3-8df928e36a4c" + }, + "id": "FmgvAlKBWjR-", + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training performance comparison:\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Word2Vec (Random Forest) Word2Vec (Neural Network) \\\n", + "Accuracy 0.755043 0.636888 \n", + "Recall 0.755043 0.636888 \n", + "Precision 0.778891 0.664626 \n", + "F1 0.720565 0.516128 \n", + "\n", + " Sentence Transformer (Random Forest) \\\n", + "Accuracy 0.801153 \n", + "Recall 0.801153 \n", + "Precision 0.831835 \n", + "F1 0.775232 \n", + "\n", + " Sentence Transformer (Neural Network) \n", + "Accuracy 0.878963 \n", + "Recall 0.878963 \n", + "Precision 0.864731 \n", + "F1 0.871679 " + ], + "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", + "
Word2Vec (Random Forest)Word2Vec (Neural Network)Sentence Transformer (Random Forest)Sentence Transformer (Neural Network)
Accuracy0.7550430.6368880.8011530.878963
Recall0.7550430.6368880.8011530.878963
Precision0.7788910.6646260.8318350.864731
F10.7205650.5161280.7752320.871679
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "models_train_comp_df", + "summary": "{\n \"name\": \"models_train_comp_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Word2Vec (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.02400850605954694,\n \"min\": 0.720564904885155,\n \"max\": 0.7788911179618219,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7550432276657061,\n 0.7788911179618219,\n 0.720564904885155\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Word2Vec (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.06630504860294313,\n \"min\": 0.516128150662598,\n \"max\": 0.6646264228575315,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.6368876080691642,\n 0.6646264228575315,\n 0.516128150662598\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.02314897229764395,\n \"min\": 0.7752322113738629,\n \"max\": 0.8318353116624009,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.8011527377521613,\n 0.8318353116624009,\n 0.7752322113738629\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.006828124944117901,\n \"min\": 0.8647306583906008,\n \"max\": 0.8789625360230547,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.8789625360230547,\n 0.8647306583906008,\n 0.8716785041639248\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 72 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Concatenate the testing performance metrics from different models into a single DataFrame\n", + "models_test_comp_df = pd.concat(\n", + " [\n", + " rf_test_wv.T, # Random Forest using Word2Vec embeddings\n", + " NN_test_wv.T, # Neural Network using Word2Vec embeddings\n", + " rf_test_st.T, # Random Forest using Sentence Transformer embeddings\n", + " NN_test_st.T # Neural Network using Sentence Transformer embeddings\n", + " ],\n", + " axis=1 # Concatenate along columns so each model's test metrics appear as one column\n", + ")\n", + "\n", + "# Set descriptive column names for clarity in the resulting comparison table\n", + "models_test_comp_df.columns = [\n", + " \"Word2Vec (Random Forest)\",\n", + " \"Word2Vec (Neural Network)\",\n", + " \"Sentence Transformer (Random Forest)\",\n", + " \"Sentence Transformer (Neural Network)\"\n", + "]\n", + "\n", + "# Print the testing performance comparison table\n", + "print(\"Testing performance comparison:\")\n", + "models_test_comp_df" + ], + "metadata": { + "id": "APzbgeHrWjOj", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 192 + }, + "outputId": "2095fa14-43c0-42dc-e342-c8229f7750b9" + }, + "id": "APzbgeHrWjOj", + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing performance comparison:\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Word2Vec (Random Forest) Word2Vec (Neural Network) \\\n", + "Accuracy 0.746479 0.760563 \n", + "Recall 0.746479 0.760563 \n", + "Precision 0.687934 0.804628 \n", + "F1 0.680114 0.669911 \n", + "\n", + " Sentence Transformer (Random Forest) \\\n", + "Accuracy 0.718310 \n", + "Recall 0.718310 \n", + "Precision 0.551745 \n", + "F1 0.624105 \n", + "\n", + " Sentence Transformer (Neural Network) \n", + "Accuracy 0.788732 \n", + "Recall 0.788732 \n", + "Precision 0.780908 \n", + "F1 0.784708 " + ], + "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", + "
Word2Vec (Random Forest)Word2Vec (Neural Network)Sentence Transformer (Random Forest)Sentence Transformer (Neural Network)
Accuracy0.7464790.7605630.7183100.788732
Recall0.7464790.7605630.7183100.788732
Precision0.6879340.8046280.5517450.780908
F10.6801140.6699110.6241050.784708
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "models_test_comp_df", + "summary": "{\n \"name\": \"models_test_comp_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Word2Vec (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.03619949158384784,\n \"min\": 0.6801140174379611,\n \"max\": 0.7464788732394366,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7464788732394366,\n 0.687933571578726,\n 0.6801140174379611\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Word2Vec (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.05661832323426673,\n \"min\": 0.6699110653078362,\n \"max\": 0.8046277665995976,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7605633802816901,\n 0.8046277665995976,\n 0.6699110653078362\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Random Forest)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.08086640854457602,\n \"min\": 0.5517452541334966,\n \"max\": 0.7183098591549296,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7183098591549296,\n 0.5517452541334966,\n 0.6241052874624798\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sentence Transformer (Neural Network)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0037559350807984376,\n \"min\": 0.7809076682316118,\n \"max\": 0.7887323943661971,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.7887323943661971,\n 0.7809076682316118,\n 0.7847082494969819\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 73 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "#### **Model Performance Summary:**" + ], + "metadata": { + "id": "X0yz_T4j6uJc" + }, + "id": "X0yz_T4j6uJc" + }, + { + "cell_type": "markdown", + "source": [ + " **Model Selection: Sentence Transformer + Neural Network**\n", + "\n", + "**Rationale:**\n", + "\n", + "1. **Best Generalization**:\n", + " The Sentence Transformer + Neural Network model achieves the highest F1 score on the test set (0.788), indicating strong generalization and better handling of both precision and recall on unseen data.\n", + "\n", + "2. **Balanced Performance**:\n", + " Training F1 = 0.87 and testing F1 = 0.78 show a minimal gap, meaning the model learned meaningful representations without significant overfitting.\n", + "\n", + "3. **Superior Feature Encoding**:\n", + " Sentence Transformers capture semantic meaning more effectively than Word2Vec, which explains the performance boost across both Random Forest and Neural Network setups.\n", + "\n", + "4. **Neural Network Suitability**:\n", + " While Word2Vec + NN struggles due to sparse and less informative vectors, combining powerful embeddings (Sentence Transformer) with flexible learning (NN) achieves the best synergy.\n", + "\n", + "##### **Why Other Models Were Not Chosen?**\n", + "\n", + "* **Word2Vec + RF**:\n", + " Training F1 = 0.730, Test F1 = 0.685. Although the gap is small (shows some stability), the absolute test performance is lower than Sentence Transformer + NN.\n", + "\n", + "* **Word2Vec + NN**:\n", + " Low performance in both training (F1 = 0.516) and testing (F1 = 0.67) indicates underfitting and ineffective learning due to weak input representations.\n", + "\n", + "* **Sentence Transformer + RF**:\n", + " Strong training F1 = 0.775, but test F1 = 0.624 is slightly lower than the NN version, suggesting mild overfitting and less flexibility in modeling complex patterns." + ], + "metadata": { + "id": "wI7woP0xHrwW" + }, + "id": "wI7woP0xHrwW" + }, + { + "cell_type": "markdown", + "id": "HiOLoD7BO3L-", + "metadata": { + "id": "HiOLoD7BO3L-" + }, + "source": [ + "## **Conclusions and Recommendations**" + ] + }, + { + "cell_type": "markdown", + "source": [ + "* The daily opening, high, low, and closing prices of the stock exhibit similar distributions individually, when compared across different sentiment polarities, and negative sentiment news resulted in a lower value for each price.\n", + "\n", + "* The minimum variation also resulted in the prices exhibiting perfect correlation amongst them, while exhibiting a very low negative correlation with volume, which might be due to selling pressure during periods of negative sentiment.\n", + "\n", + "* The stock price gradually increased over time from ~40 to ~50 in the period for which the data is available while exhibiting a monthly trend.\n", + "\n", + "* We predicted the sentiment of market news by encoding them via different ML models.\n", + "\n", + "* The models largely overfit the data, with only **the Sentence Transformer + Neural Network model** yielding comparatively better performance than the others (train F1 = 0.876, test F1 = 0.788).\n", + "\n", + " * The predominance of neutral news also suggests a cautious market sentiment in this period. As such, a wider period should be considered for data collection to ensure volume and diversity in news sentiment polarities.\n", + "\n", + "* Integrating real-time sentiment analysis systems can allow financial analysts to make informed decisions and quickly respond to market sentiment changes to optimize investment strategies.\n", + "\n", + "* One can explore combining news sentiments with technical and fundamental indicators of the stock and introduce data of other similar stocks for a more comprehensive market analysis." + ], + "metadata": { + "id": "NMR7mKugPFme" + }, + "id": "NMR7mKugPFme" + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mQvaNDqQ3BJa" + }, + "source": [ + " Power Ahead \n", + "___" + ], + "id": "mQvaNDqQ3BJa" + } + ], + "metadata": { + "colab": { + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "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.11.5" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "1230a037e0b9479caa9db62c5f9ecb6a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_ed6c19298c4747a59992a79d99cdaaa7", + "IPY_MODEL_e010222da3cf4751995a51ffc82560ef", + "IPY_MODEL_9f3e3b616bcf482d9fd91a2b54d8d82a" + ], + "layout": "IPY_MODEL_6838e428d6d54a3f80d34638812441e6" + } + }, + "ed6c19298c4747a59992a79d99cdaaa7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_991c2589b56f444486443a31bef569d5", + "placeholder": "​", + "style": "IPY_MODEL_4ed01d32996f47f38fbaba687cee45ae", + "value": "Batches: 100%" + } + }, + "e010222da3cf4751995a51ffc82560ef": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a0ce999dbcfe427ba08202bc989b1c33", + "max": 11, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f598184dc72f443ab0ada8de6cf076ad", + "value": 11 + } + }, + "9f3e3b616bcf482d9fd91a2b54d8d82a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_96e9e320eec74a2e9094935af065b254", + "placeholder": "​", + "style": "IPY_MODEL_fb854fb10f3e415c9c4c0ac176fb74b4", + "value": " 11/11 [00:44<00:00,  3.41s/it]" + } + }, + "6838e428d6d54a3f80d34638812441e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "991c2589b56f444486443a31bef569d5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4ed01d32996f47f38fbaba687cee45ae": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a0ce999dbcfe427ba08202bc989b1c33": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f598184dc72f443ab0ada8de6cf076ad": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "96e9e320eec74a2e9094935af065b254": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fb854fb10f3e415c9c4c0ac176fb74b4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2fb4071397a049f888159e2cbec3ec99": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_280899c6e305423a8d6f20dd395b4e10", + "IPY_MODEL_f68b5d3640c54560b38a29f32deb33a8", + "IPY_MODEL_115335a31d874aba99efb63fa2830e09" + ], + "layout": "IPY_MODEL_7b371d0574e04f98bf87a88f722b8477" + } + }, + "280899c6e305423a8d6f20dd395b4e10": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9095b2b09d4a45928fbc3cf45eb35cbb", + "placeholder": "​", + "style": "IPY_MODEL_971a53d397494d76b8b5c4a2abb954f7", + "value": "Batches: 100%" + } + }, + "f68b5d3640c54560b38a29f32deb33a8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_54dd267783314434a5389477c97974e5", + "max": 3, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_5bfd23c3586e4615909878610be8e24b", + "value": 3 + } + }, + "115335a31d874aba99efb63fa2830e09": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4eda58c3e66e40db98ea40fc40ebb109", + "placeholder": "​", + "style": "IPY_MODEL_99ee6edbe0574c778200ae65b87d7e0f", + "value": " 3/3 [00:09<00:00,  2.81s/it]" + } + }, + "7b371d0574e04f98bf87a88f722b8477": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9095b2b09d4a45928fbc3cf45eb35cbb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "971a53d397494d76b8b5c4a2abb954f7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "54dd267783314434a5389477c97974e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5bfd23c3586e4615909878610be8e24b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "4eda58c3e66e40db98ea40fc40ebb109": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "99ee6edbe0574c778200ae65b87d7e0f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file