{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "PIa-kJ-Frdm-"
   },
   "source": [
    "<h1>Chapter 5 - Text Clustering and Topic Modeling</h1>\n",
    "<i>Clustering documents using a wide variety of language models.</i>\n",
    "\n",
    "<a href=\"https://www.amazon.com/Hands-Large-Language-Models-Understanding/dp/1098150961\"><img src=\"https://img.shields.io/badge/Buy%20the%20Book!-grey?logo=amazon\"></a>\n",
    "<a href=\"https://www.oreilly.com/library/view/hands-on-large-language/9781098150952/\"><img src=\"https://img.shields.io/badge/O'Reilly-white.svg?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAzNCAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTMiIGN5PSIxNCIgcj0iMTEiIHN0cm9rZT0iI0Q0MDEwMSIgc3Ryb2tlLXdpZHRoPSI0Ii8+CjxjaXJjbGUgY3g9IjMwLjUiIGN5PSIzLjUiIHI9IjMuNSIgZmlsbD0iI0Q0MDEwMSIvPgo8L3N2Zz4K\"></a>\n",
    "<a href=\"https://github.com/HandsOnLLM/Hands-On-Large-Language-Models\"><img src=\"https://img.shields.io/badge/GitHub%20Repository-black?logo=github\"></a>\n",
    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/HandsOnLLM/Hands-On-Large-Language-Models/blob/main/chapter05/Chapter%205%20-%20Text%20Clustering%20and%20Topic%20Modeling.ipynb)\n",
    "\n",
    "---\n",
    "\n",
    "This notebook is for Chapter 5 of the [Hands-On Large Language Models](https://www.amazon.com/Hands-Large-Language-Models-Understanding/dp/1098150961) book by [Jay Alammar](https://www.linkedin.com/in/jalammar) and [Maarten Grootendorst](https://www.linkedin.com/in/mgrootendorst/).\n",
    "\n",
    "---\n",
    "\n",
    "<a href=\"https://www.amazon.com/Hands-Large-Language-Models-Understanding/dp/1098150961\">\n",
    "<img src=\"https://raw.githubusercontent.com/HandsOnLLM/Hands-On-Large-Language-Models/main/images/book_cover.png\" width=\"350\"/></a>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "lHIkQSBkV2Y3"
   },
   "source": [
    "# **ArXiv Articles: Computation and Language**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 6820,
     "status": "ok",
     "timestamp": 1713954686818,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "VWSp_UCgWbr4",
    "outputId": "e44563d7-16ee-455c-c534-7aba6f9a1233"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: UserWarning: \n",
      "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
      "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
      "You will be able to reuse this secret in all of your notebooks.\n",
      "Please note that authentication is recommended but still optional to access public models or datasets.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "# Load data from huggingface\n",
    "from datasets import load_dataset\n",
    "dataset = load_dataset(\"maartengr/arxiv_nlp\")[\"train\"]\n",
    "\n",
    "# Extract metadata\n",
    "abstracts = dataset[\"Abstracts\"]\n",
    "titles = dataset[\"Titles\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "pcFT-b2QV3_r"
   },
   "source": [
    "# **A Common Pipeline for Text Clustering**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "tBpD9d2EV6HJ"
   },
   "source": [
    "## **1. Embedding Documents**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 49,
     "referenced_widgets": [
      "18e03962f36049e2869ea5f7dbda3973",
      "5478cef31f6c4df89f37ab9619672b94",
      "89655f0c32194549a5b6f910a806d64b",
      "82bb3afe96b84887b6dec2836e346707",
      "9977f43a9e514adda488325cb2eafa2e",
      "1e474f19cfb44eee8f08193e70542313",
      "4ef0e581a3134a37b035b1cedcc67065",
      "13c85fbfa9e44714a2d9400fb6c21396",
      "3b9fce1566c5461b82a2931087dfe096",
      "44b60956730f45b0834c738b3ad83175",
      "4ac21e7871f540df9b382a0d08d03141"
     ]
    },
    "executionInfo": {
     "elapsed": 293293,
     "status": "ok",
     "timestamp": 1713954980110,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "woTpVEpCV5kH",
    "outputId": "511a50d3-01be-4f27-b6b9-9d76c7a90f28"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "18e03962f36049e2869ea5f7dbda3973",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Batches:   0%|          | 0/1405 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sentence_transformers import SentenceTransformer\n",
    "\n",
    "# Create an embedding for each abstract\n",
    "embedding_model = SentenceTransformer('thenlper/gte-small')\n",
    "embeddings = embedding_model.encode(abstracts, show_progress_bar=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 396,
     "status": "ok",
     "timestamp": 1713954980467,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "QZwmECcNA519",
    "outputId": "113498d9-df69-4bb5-f7e7-d00ef2fbf84f"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(44949, 384)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Check the dimensions of the resulting embeddings\n",
    "embeddings.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "G_nsz_U7WEsw"
   },
   "source": [
    "## **2. Reducing the Dimensionality of Embeddings**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 80138,
     "status": "ok",
     "timestamp": 1713955060601,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "fXeo08d1WvOJ",
    "outputId": "4f388685-0ac4-450c-ec2c-d40b9e44f688"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/umap/umap_.py:1945: UserWarning: n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism.\n",
      "  warn(f\"n_jobs value {self.n_jobs} overridden to 1 by setting random_state. Use no seed for parallelism.\")\n"
     ]
    }
   ],
   "source": [
    "from umap import UMAP\n",
    "\n",
    "# We reduce the input embeddings from 384 dimenions to 5 dimenions\n",
    "umap_model = UMAP(\n",
    "    n_components=5, min_dist=0.0, metric='cosine', random_state=42\n",
    ")\n",
    "reduced_embeddings = umap_model.fit_transform(embeddings)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "dqzr_8LFWGld"
   },
   "source": [
    "## **3. Cluster the Reduced Embeddings**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 4416,
     "status": "ok",
     "timestamp": 1713955064994,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "fwq6qDydgWSP",
    "outputId": "b7e73337-bc2b-4abb-d1bb-e86b59c87a12"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/joblib/externals/loky/backend/fork_exec.py:38: RuntimeWarning: os.fork() was called. os.fork() is incompatible with multithreaded code, and JAX is multithreaded, so this will likely lead to a deadlock.\n",
      "  pid = os.fork()\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "156"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from hdbscan import HDBSCAN\n",
    "\n",
    "# We fit the model and extract the clusters\n",
    "hdbscan_model = HDBSCAN(\n",
    "    min_cluster_size=50, metric='euclidean', cluster_selection_method='eom'\n",
    ").fit(reduced_embeddings)\n",
    "clusters = hdbscan_model.labels_\n",
    "\n",
    "# How many clusters did we generate?\n",
    "len(set(clusters))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "OZh8mgujoZH3"
   },
   "source": [
    "## **Inspecting the Clusters**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "vi6ACUR4pU0f"
   },
   "source": [
    "Manually inspect the first three documents in cluster 0:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 47,
     "status": "ok",
     "timestamp": 1713955064995,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "uiPK4m0rpJl7",
    "outputId": "174ff96e-508c-419a-e0a6-7270500c1286"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  This works aims to design a statistical machine translation from English text\n",
      "to American Sign Language (ASL). The system is based on Moses tool with some\n",
      "modifications and the results are synthesized through a 3D avatar for\n",
      "interpretation. First, we translate the input text to gloss, a written fo... \n",
      "\n",
      "  Researches on signed languages still strongly dissociate lin- guistic issues\n",
      "related on phonological and phonetic aspects, and gesture studies for\n",
      "recognition and synthesis purposes. This paper focuses on the imbrication of\n",
      "motion and meaning for the analysis, synthesis and evaluation of sign lang... \n",
      "\n",
      "  Modern computational linguistic software cannot produce important aspects of\n",
      "sign language translation. Using some researches we deduce that the majority of\n",
      "automatic sign language translation systems ignore many aspects when they\n",
      "generate animation; therefore the interpretation lost the truth inf... \n",
      "\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "# Print first three documents in cluster 0\n",
    "cluster = 0\n",
    "for index in np.where(clusters==cluster)[0][:3]:\n",
    "    print(abstracts[index][:300] + \"... \\n\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "F9izgGjMX1Go"
   },
   "source": [
    "Next, we reduce our embeddings to 2-dimensions so that we can plot them and get a rough understanding of the generated clusters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 42808,
     "status": "ok",
     "timestamp": 1713955107766,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "gzr6xbTEYcyl",
    "outputId": "fbe9f434-560b-4118-edc8-b913974dd132"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/umap/umap_.py:1945: UserWarning: n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism.\n",
      "  warn(f\"n_jobs value {self.n_jobs} overridden to 1 by setting random_state. Use no seed for parallelism.\")\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# Reduce 384-dimensional embeddings to 2 dimensions for easier visualization\n",
    "reduced_embeddings = UMAP(\n",
    "    n_components=2, min_dist=0.0, metric='cosine', random_state=42\n",
    ").fit_transform(embeddings)\n",
    "\n",
    "# Create dataframe\n",
    "df = pd.DataFrame(reduced_embeddings, columns=[\"x\", \"y\"])\n",
    "df[\"title\"] = titles\n",
    "df[\"cluster\"] = [str(c) for c in clusters]\n",
    "\n",
    "# Select outliers and non-outliers (clusters)\n",
    "clusters_df = df.loc[df.cluster != \"-1\", :]\n",
    "outliers_df = df.loc[df.cluster == \"-1\", :]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "w3bUq3HHyQcw"
   },
   "source": [
    "### Static Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 406
    },
    "executionInfo": {
     "elapsed": 3096,
     "status": "ok",
     "timestamp": 1713955705852,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "nptZUr0mLWSN",
    "outputId": "7d2766c9-5aee-4e30-f09c-2b53327104e2"
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 113692 characters]",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Plot outliers and non-outliers seperately\n",
    "plt.scatter(outliers_df.x, outliers_df.y, alpha=0.05, s=2, c=\"grey\")\n",
    "plt.scatter(\n",
    "    clusters_df.x, clusters_df.y, c=clusters_df.cluster.astype(int),\n",
    "    alpha=0.6, s=2, cmap='tab20b'\n",
    ")\n",
    "plt.axis('off')\n",
    "# plt.savefig(\"matplotlib.png\", dpi=300)  # Uncomment to save the graph as a .png"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "1BgkDN8gWUUD"
   },
   "source": [
    "# From Text Clustering to Topic Modeling"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "JkYhkfUMMrpm"
   },
   "source": [
    "## **BERTopic: A Modular Topic Modeling Framework**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 68432,
     "status": "ok",
     "timestamp": 1713955177613,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "oySav_RqKvsS",
    "outputId": "8d3083fe-3fb4-4a5f-c726-d74e2193049c"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-04-24 10:38:31,273 - BERTopic - Dimensionality - Fitting the dimensionality reduction algorithm\n",
      "2024-04-24 10:39:22,540 - BERTopic - Dimensionality - Completed ✓\n",
      "2024-04-24 10:39:22,543 - BERTopic - Cluster - Start clustering the reduced embeddings\n",
      "2024-04-24 10:39:24,548 - BERTopic - Cluster - Completed ✓\n",
      "2024-04-24 10:39:24,563 - BERTopic - Representation - Extracting topics from clusters using representation models.\n",
      "2024-04-24 10:39:34,185 - BERTopic - Representation - Completed ✓\n"
     ]
    }
   ],
   "source": [
    "from bertopic import BERTopic\n",
    "\n",
    "# Train our model with our previously defined models\n",
    "topic_model = BERTopic(\n",
    "    embedding_model=embedding_model,\n",
    "    umap_model=umap_model,\n",
    "    hdbscan_model=hdbscan_model,\n",
    "    verbose=True\n",
    ").fit(abstracts, embeddings)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Popz6QTitaWB"
   },
   "source": [
    "Now, let's start exploring the topics that we got by running the code above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 423
    },
    "executionInfo": {
     "elapsed": 15,
     "status": "ok",
     "timestamp": 1713955177614,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "q8vYjkscqUeX",
    "outputId": "39a414c2-9774-458f-fd42-5714307778ba"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "summary": "{\n  \"name\": \"topic_model\",\n  \"rows\": 156,\n  \"fields\": [\n    {\n      \"column\": \"Topic\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 45,\n        \"min\": -1,\n        \"max\": 154,\n        \"num_unique_values\": 156,\n        \"samples\": [\n          95,\n          68,\n          81\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Count\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1175,\n        \"min\": 50,\n        \"max\": 14520,\n        \"num_unique_values\": 116,\n        \"samples\": [\n          101,\n          986,\n          182\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 156,\n        \"samples\": [\n          \"95_vqa_visual_question_image\",\n          \"68_covid_19_pandemic_tweets\",\n          \"81_knowledge_dialogue_grounded_response\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Representation\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Representative_Docs\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
       "type": "dataframe"
      },
      "text/html": [
       "\n",
       "  <div id=\"df-13f143e8-ab77-4adf-8d98-a1ce0feb4277\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Topic</th>\n",
       "      <th>Count</th>\n",
       "      <th>Name</th>\n",
       "      <th>Representation</th>\n",
       "      <th>Representative_Docs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1</td>\n",
       "      <td>14520</td>\n",
       "      <td>-1_the_of_and_to</td>\n",
       "      <td>[the, of, and, to, in, we, that, language, for...</td>\n",
       "      <td>[  This paper presents new state-of-the-art mo...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>2290</td>\n",
       "      <td>0_speech_asr_recognition_end</td>\n",
       "      <td>[speech, asr, recognition, end, acoustic, spea...</td>\n",
       "      <td>[  End-to-end models have achieved impressive ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>1403</td>\n",
       "      <td>1_medical_clinical_biomedical_patient</td>\n",
       "      <td>[medical, clinical, biomedical, patient, healt...</td>\n",
       "      <td>[  Recent years have seen particular interest ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>1156</td>\n",
       "      <td>2_sentiment_aspect_analysis_reviews</td>\n",
       "      <td>[sentiment, aspect, analysis, reviews, opinion...</td>\n",
       "      <td>[  Aspect-based sentiment analysis of review t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>986</td>\n",
       "      <td>3_translation_nmt_machine_neural</td>\n",
       "      <td>[translation, nmt, machine, neural, bleu, engl...</td>\n",
       "      <td>[  Neural machine translation (NMT) becomes a ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>150</td>\n",
       "      <td>54</td>\n",
       "      <td>150_coherence_discourse_paragraph_text</td>\n",
       "      <td>[coherence, discourse, paragraph, text, cohesi...</td>\n",
       "      <td>[  While there has been significant progress t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>152</th>\n",
       "      <td>151</td>\n",
       "      <td>54</td>\n",
       "      <td>151_prompt_prompts_optimization_prompting</td>\n",
       "      <td>[prompt, prompts, optimization, prompting, llm...</td>\n",
       "      <td>[  Prompt optimization aims to find the best p...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153</th>\n",
       "      <td>152</td>\n",
       "      <td>53</td>\n",
       "      <td>152_sentence_sts_embeddings_similarity</td>\n",
       "      <td>[sentence, sts, embeddings, similarity, embedd...</td>\n",
       "      <td>[  Sentence representation at the semantic lev...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>154</th>\n",
       "      <td>153</td>\n",
       "      <td>53</td>\n",
       "      <td>153_counseling_mental_health_therapy</td>\n",
       "      <td>[counseling, mental, health, therapy, psychoth...</td>\n",
       "      <td>[  Mental health care poses an increasingly se...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>155</th>\n",
       "      <td>154</td>\n",
       "      <td>50</td>\n",
       "      <td>154_backdoor_attacks_attack_triggers</td>\n",
       "      <td>[backdoor, attacks, attack, triggers, poisoned...</td>\n",
       "      <td>[  Deep neural networks (DNNs) and natural lan...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>156 rows × 5 columns</p>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-13f143e8-ab77-4adf-8d98-a1ce0feb4277')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-13f143e8-ab77-4adf-8d98-a1ce0feb4277 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-13f143e8-ab77-4adf-8d98-a1ce0feb4277');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "<div id=\"df-fe2f856d-e742-4d0c-a74d-8083151a239a\">\n",
       "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-fe2f856d-e742-4d0c-a74d-8083151a239a')\"\n",
       "            title=\"Suggest charts\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "     width=\"24px\">\n",
       "    <g>\n",
       "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
       "    </g>\n",
       "</svg>\n",
       "  </button>\n",
       "\n",
       "<style>\n",
       "  .colab-df-quickchart {\n",
       "      --bg-color: #E8F0FE;\n",
       "      --fill-color: #1967D2;\n",
       "      --hover-bg-color: #E2EBFA;\n",
       "      --hover-fill-color: #174EA6;\n",
       "      --disabled-fill-color: #AAA;\n",
       "      --disabled-bg-color: #DDD;\n",
       "  }\n",
       "\n",
       "  [theme=dark] .colab-df-quickchart {\n",
       "      --bg-color: #3B4455;\n",
       "      --fill-color: #D2E3FC;\n",
       "      --hover-bg-color: #434B5C;\n",
       "      --hover-fill-color: #FFFFFF;\n",
       "      --disabled-bg-color: #3B4455;\n",
       "      --disabled-fill-color: #666;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart {\n",
       "    background-color: var(--bg-color);\n",
       "    border: none;\n",
       "    border-radius: 50%;\n",
       "    cursor: pointer;\n",
       "    display: none;\n",
       "    fill: var(--fill-color);\n",
       "    height: 32px;\n",
       "    padding: 0;\n",
       "    width: 32px;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart:hover {\n",
       "    background-color: var(--hover-bg-color);\n",
       "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "    fill: var(--button-hover-fill-color);\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart-complete:disabled,\n",
       "  .colab-df-quickchart-complete:disabled:hover {\n",
       "    background-color: var(--disabled-bg-color);\n",
       "    fill: var(--disabled-fill-color);\n",
       "    box-shadow: none;\n",
       "  }\n",
       "\n",
       "  .colab-df-spinner {\n",
       "    border: 2px solid var(--fill-color);\n",
       "    border-color: transparent;\n",
       "    border-bottom-color: var(--fill-color);\n",
       "    animation:\n",
       "      spin 1s steps(1) infinite;\n",
       "  }\n",
       "\n",
       "  @keyframes spin {\n",
       "    0% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "      border-left-color: var(--fill-color);\n",
       "    }\n",
       "    20% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    30% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    40% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    60% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    80% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "    90% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "  }\n",
       "</style>\n",
       "\n",
       "  <script>\n",
       "    async function quickchart(key) {\n",
       "      const quickchartButtonEl =\n",
       "        document.querySelector('#' + key + ' button');\n",
       "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
       "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
       "      try {\n",
       "        const charts = await google.colab.kernel.invokeFunction(\n",
       "            'suggestCharts', [key], {});\n",
       "      } catch (error) {\n",
       "        console.error('Error during call to suggestCharts:', error);\n",
       "      }\n",
       "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
       "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
       "    }\n",
       "    (() => {\n",
       "      let quickchartButtonEl =\n",
       "        document.querySelector('#df-fe2f856d-e742-4d0c-a74d-8083151a239a button');\n",
       "      quickchartButtonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "    })();\n",
       "  </script>\n",
       "</div>\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "text/plain": [
       "     Topic  Count                                       Name  \\\n",
       "0       -1  14520                           -1_the_of_and_to   \n",
       "1        0   2290               0_speech_asr_recognition_end   \n",
       "2        1   1403      1_medical_clinical_biomedical_patient   \n",
       "3        2   1156        2_sentiment_aspect_analysis_reviews   \n",
       "4        3    986           3_translation_nmt_machine_neural   \n",
       "..     ...    ...                                        ...   \n",
       "151    150     54     150_coherence_discourse_paragraph_text   \n",
       "152    151     54  151_prompt_prompts_optimization_prompting   \n",
       "153    152     53     152_sentence_sts_embeddings_similarity   \n",
       "154    153     53       153_counseling_mental_health_therapy   \n",
       "155    154     50       154_backdoor_attacks_attack_triggers   \n",
       "\n",
       "                                        Representation  \\\n",
       "0    [the, of, and, to, in, we, that, language, for...   \n",
       "1    [speech, asr, recognition, end, acoustic, spea...   \n",
       "2    [medical, clinical, biomedical, patient, healt...   \n",
       "3    [sentiment, aspect, analysis, reviews, opinion...   \n",
       "4    [translation, nmt, machine, neural, bleu, engl...   \n",
       "..                                                 ...   \n",
       "151  [coherence, discourse, paragraph, text, cohesi...   \n",
       "152  [prompt, prompts, optimization, prompting, llm...   \n",
       "153  [sentence, sts, embeddings, similarity, embedd...   \n",
       "154  [counseling, mental, health, therapy, psychoth...   \n",
       "155  [backdoor, attacks, attack, triggers, poisoned...   \n",
       "\n",
       "                                   Representative_Docs  \n",
       "0    [  This paper presents new state-of-the-art mo...  \n",
       "1    [  End-to-end models have achieved impressive ...  \n",
       "2    [  Recent years have seen particular interest ...  \n",
       "3    [  Aspect-based sentiment analysis of review t...  \n",
       "4    [  Neural machine translation (NMT) becomes a ...  \n",
       "..                                                 ...  \n",
       "151  [  While there has been significant progress t...  \n",
       "152  [  Prompt optimization aims to find the best p...  \n",
       "153  [  Sentence representation at the semantic lev...  \n",
       "154  [  Mental health care poses an increasingly se...  \n",
       "155  [  Deep neural networks (DNNs) and natural lan...  \n",
       "\n",
       "[156 rows x 5 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "topic_model.get_topic_info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "6TNa-xEttfkf"
   },
   "source": [
    "Hundreds of topics were generated using the default model! To get the top 10 keywords per topic as well as their c-TF-IDF weights, we can use the `get_topic()` function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 310,
     "status": "ok",
     "timestamp": 1713955289487,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "sPtrkto0wYyc",
    "outputId": "5e323f45-8943-4609-e14f-7b5f937903eb"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('speech', 0.028177697715245358),\n",
       " ('asr', 0.018971184497453525),\n",
       " ('recognition', 0.013457745472471012),\n",
       " ('end', 0.00980445092749381),\n",
       " ('acoustic', 0.009452082794507863),\n",
       " ('speaker', 0.0068822647060204885),\n",
       " ('audio', 0.006807649923681604),\n",
       " ('the', 0.0063343444687017645),\n",
       " ('error', 0.006320144717019838),\n",
       " ('automatic', 0.006290216996043161)]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "topic_model.get_topic(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "n8_tWTkowTLX"
   },
   "source": [
    "We can use the `find_topics()` function to search for specific topics based on a search term. Let’s search for a topic about topic modeling:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 204,
     "status": "ok",
     "timestamp": 1713955296432,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "xGzBPAt4pCfm",
    "outputId": "729db3f6-7f0a-400b-8ef7-3b617156efeb"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([22, -1, 1, 47, 32],\n",
       " [0.95456535, 0.91173744, 0.9074769, 0.9067007, 0.90510106])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "topic_model.find_topics(\"topic modeling\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "-nF29PoFwasH"
   },
   "source": [
    "It returns that topic 22 has a relatively high similarity (0.95) with our search term. If we then inspect the topic, we can see that it is indeed a topic about topic modeling:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 284,
     "status": "ok",
     "timestamp": 1713955298122,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "D3rjQuPHwb2H",
    "outputId": "5d5e19b4-8023-4d8d-8442-74ab8342191b"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('topic', 0.06634619076655907),\n",
       " ('topics', 0.035308535091932707),\n",
       " ('lda', 0.016386314730705634),\n",
       " ('latent', 0.013372311924864435),\n",
       " ('document', 0.012973600191120576),\n",
       " ('documents', 0.012383715497143821),\n",
       " ('modeling', 0.011978375291037142),\n",
       " ('dirichlet', 0.010078277589545706),\n",
       " ('word', 0.008505619415413312),\n",
       " ('allocation', 0.007930890698168108)]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "topic_model.get_topic(22)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "JwMgKD7OzFJs"
   },
   "source": [
    "That seems like a topic that is, in part, characterized by the classic LDA technique. Let's see if the BERTopic paper was also assigned to topic 22:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 200,
     "status": "ok",
     "timestamp": 1713954391725,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "Sp_WTxHazA-g",
    "outputId": "15be0add-ea70-4bb4-dc85-4d761f8f59b1"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "topic_model.topics_[titles.index('BERTopic: Neural topic modeling with a class-based TF-IDF procedure')]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "P5EZ3pvzzEpI"
   },
   "source": [
    "It is! We expected it might be because there are non-LDA specific words in the topic describtion such as \"clustering\" and \"topic\"."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "6Jy6tpcRxOxN"
   },
   "source": [
    "### **Visualizations**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "wxwMHwDA5H8-"
   },
   "source": [
    "**Visualize Documents**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 767,
     "output_embedded_package_id": "1Mq2eYqDifdCkOEdIHWBoRJ0DlqDp8vnw"
    },
    "executionInfo": {
     "elapsed": 4595,
     "status": "ok",
     "timestamp": 1713955324161,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "rR6UXe1t5H8_",
    "outputId": "f3964771-fb30-440a-d646-302b587c2d86"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Output hidden; open in https://colab.research.google.com to view."
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize topics and documents\n",
    "fig = topic_model.visualize_documents(\n",
    "    titles,\n",
    "    reduced_embeddings=reduced_embeddings,\n",
    "    width=1200,\n",
    "    hide_annotations=True\n",
    ")\n",
    "\n",
    "# Update fonts of legend for easier visualization\n",
    "fig.update_layout(font=dict(size=16))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "executionInfo": {
     "elapsed": 621,
     "status": "ok",
     "timestamp": 1713955337920,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "R2mvH4fSVzDr",
    "outputId": "eaa44cc0-9b63-46e5-e187-f28e7cfb2034"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\n",
       "<head><meta charset=\"utf-8\" /></head>\n",
       "<body>\n",
       "    <div>            <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>                <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
       "        <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script>                <div id=\"b2d541c8-0729-4236-8c27-5a796eb3a4cb\" class=\"plotly-graph-div\" style=\"height:2525px; width:1000px;\"></div>            <script type=\"text/javascript\">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"b2d541c8-0729-4236-8c27-5a796eb3a4cb\")) {                    Plotly.newPlot(                        \"b2d541c8-0729-4236-8c27-5a796eb3a4cb\",                        [{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.7141190850282715,0.7141190850282715,0.0],\"xaxis\":\"x\",\"y\":[-5.0,-5.0,-15.0,-15.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.31422854366409303,0.31422854366409303,0.0],\"xaxis\":\"x\",\"y\":[-45.0,-45.0,-55.0,-55.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.31422854366409303,0.4610478549748978,0.4610478549748978,0.0],\"xaxis\":\"x\",\"y\":[-50.0,-50.0,-65.0,-65.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.5075167896074003,0.5075167896074003,0.4610478549748978],\"xaxis\":\"x\",\"y\":[-35.0,-35.0,-57.5,-57.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.6409367794734607,0.6409367794734607,0.5075167896074003],\"xaxis\":\"x\",\"y\":[-25.0,-25.0,-46.25,-46.25],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.4446161967861699,0.4446161967861699,0.0],\"xaxis\":\"x\",\"y\":[-75.0,-75.0,-85.0,-85.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.6409367794734607,0.7879093532839085,0.7879093532839085,0.4446161967861699],\"xaxis\":\"x\",\"y\":[-35.625,-35.625,-80.0,-80.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.7141190850282715,0.917778493960832,0.917778493960832,0.7879093532839085],\"xaxis\":\"x\",\"y\":[-10.0,-10.0,-57.8125,-57.8125],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.3500441711697999,0.3500441711697999,0.0],\"xaxis\":\"x\",\"y\":[-105.0,-105.0,-115.0,-115.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.3500441711697999,0.43453574770757564,0.43453574770757564,0.0],\"xaxis\":\"x\",\"y\":[-110.0,-110.0,-125.0,-125.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.5658706473631245,0.5658706473631245,0.43453574770757564],\"xaxis\":\"x\",\"y\":[-95.0,-95.0,-117.5,-117.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.917778493960832,1.2009681200765168,1.2009681200765168,0.5658706473631245],\"xaxis\":\"x\",\"y\":[-33.90625,-33.90625,-106.25,-106.25],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.31131104083248584,0.31131104083248584,0.0],\"xaxis\":\"x\",\"y\":[-135.0,-135.0,-145.0,-145.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.326737917964086,0.326737917964086,0.0],\"xaxis\":\"x\",\"y\":[-165.0,-165.0,-175.0,-175.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.4014070047900763,0.4014070047900763,0.0],\"xaxis\":\"x\",\"y\":[-185.0,-185.0,-195.0,-195.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.326737917964086,0.6540541826365287,0.6540541826365287,0.4014070047900763],\"xaxis\":\"x\",\"y\":[-170.0,-170.0,-190.0,-190.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.7370238697268102,0.7370238697268102,0.6540541826365287],\"xaxis\":\"x\",\"y\":[-155.0,-155.0,-180.0,-180.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.507782621411722,0.507782621411722,0.0],\"xaxis\":\"x\",\"y\":[-205.0,-205.0,-215.0,-215.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.507782621411722,0.6475545570950039,0.6475545570950039,0.0],\"xaxis\":\"x\",\"y\":[-210.0,-210.0,-225.0,-225.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.7370238697268102,0.8054982518226634,0.8054982518226634,0.6475545570950039],\"xaxis\":\"x\",\"y\":[-167.5,-167.5,-217.5,-217.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.31131104083248584,0.9010909463484595,0.9010909463484595,0.8054982518226634],\"xaxis\":\"x\",\"y\":[-140.0,-140.0,-192.5,-192.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.5032031601776961,0.5032031601776961,0.0],\"xaxis\":\"x\",\"y\":[-235.0,-235.0,-245.0,-245.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.9010909463484595,0.9931712408117281,0.9931712408117281,0.5032031601776961],\"xaxis\":\"x\",\"y\":[-166.25,-166.25,-240.0,-240.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.2009681200765168,1.3868589407513918,1.3868589407513918,0.9931712408117281],\"xaxis\":\"x\",\"y\":[-70.078125,-70.078125,-203.125,-203.125],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.38636139299291283,0.38636139299291283,0.0],\"xaxis\":\"x\",\"y\":[-265.0,-265.0,-275.0,-275.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.7077868518150771,0.7077868518150771,0.38636139299291283],\"xaxis\":\"x\",\"y\":[-255.0,-255.0,-270.0,-270.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.6025089768271952,0.6025089768271952,0.0],\"xaxis\":\"x\",\"y\":[-285.0,-285.0,-295.0,-295.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.6025089768271952,0.7097643211127128,0.7097643211127128,0.0],\"xaxis\":\"x\",\"y\":[-290.0,-290.0,-305.0,-305.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.7077868518150771,0.8454010721096386,0.8454010721096386,0.7097643211127128],\"xaxis\":\"x\",\"y\":[-262.5,-262.5,-297.5,-297.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.0,0.5899757237015626,0.5899757237015626,0.0],\"xaxis\":\"x\",\"y\":[-315.0,-315.0,-325.0,-325.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.0,0.49622493859013517,0.49622493859013517,0.0],\"xaxis\":\"x\",\"y\":[-345.0,-345.0,-355.0,-355.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.0,0.7202017639222836,0.7202017639222836,0.49622493859013517],\"xaxis\":\"x\",\"y\":[-335.0,-335.0,-350.0,-350.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.5899757237015626,0.9586447419614538,0.9586447419614538,0.7202017639222836],\"xaxis\":\"x\",\"y\":[-320.0,-320.0,-342.5,-342.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5201060680733234,0.5201060680733234,0.0],\"xaxis\":\"x\",\"y\":[-365.0,-365.0,-375.0,-375.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5258512160736217,0.5258512160736217,0.0],\"xaxis\":\"x\",\"y\":[-385.0,-385.0,-395.0,-395.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.5201060680733234,0.6686485775258632,0.6686485775258632,0.5258512160736217],\"xaxis\":\"x\",\"y\":[-370.0,-370.0,-390.0,-390.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.41275853841776144,0.41275853841776144,0.0],\"xaxis\":\"x\",\"y\":[-405.0,-405.0,-415.0,-415.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.6686485775258632,0.9009998641232976,0.9009998641232976,0.41275853841776144],\"xaxis\":\"x\",\"y\":[-380.0,-380.0,-410.0,-410.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.9586447419614538,1.0440263221646022,1.0440263221646022,0.9009998641232976],\"xaxis\":\"x\",\"y\":[-331.25,-331.25,-395.0,-395.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.6016961504560332,0.6016961504560332,0.0],\"xaxis\":\"x\",\"y\":[-435.0,-435.0,-445.0,-445.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.6016961504560332,0.7234809062686066,0.7234809062686066,0.0],\"xaxis\":\"x\",\"y\":[-440.0,-440.0,-455.0,-455.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.8198785911243108,0.8198785911243108,0.7234809062686066],\"xaxis\":\"x\",\"y\":[-425.0,-425.0,-447.5,-447.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.6646661205362165,0.6646661205362165,0.0],\"xaxis\":\"x\",\"y\":[-465.0,-465.0,-475.0,-475.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.5277031477497947,0.5277031477497947,0.0],\"xaxis\":\"x\",\"y\":[-485.0,-485.0,-495.0,-495.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.5431910833293624,0.5431910833293624,0.0],\"xaxis\":\"x\",\"y\":[-505.0,-505.0,-515.0,-515.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.5277031477497947,0.6378903623134071,0.6378903623134071,0.5431910833293624],\"xaxis\":\"x\",\"y\":[-490.0,-490.0,-510.0,-510.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.6646661205362165,0.6967643979032296,0.6967643979032296,0.6378903623134071],\"xaxis\":\"x\",\"y\":[-470.0,-470.0,-500.0,-500.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.5875840544854773,0.5875840544854773,0.0],\"xaxis\":\"x\",\"y\":[-525.0,-525.0,-535.0,-535.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.6967643979032296,0.7488886517693605,0.7488886517693605,0.5875840544854773],\"xaxis\":\"x\",\"y\":[-485.0,-485.0,-530.0,-530.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.8198785911243108,0.8569287449863912,0.8569287449863912,0.7488886517693605],\"xaxis\":\"x\",\"y\":[-436.25,-436.25,-507.5,-507.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.6589033038456154,0.6589033038456154,0.0],\"xaxis\":\"x\",\"y\":[-545.0,-545.0,-555.0,-555.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.6589033038456154,0.8407397381419599,0.8407397381419599,0.0],\"xaxis\":\"x\",\"y\":[-550.0,-550.0,-565.0,-565.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.8569287449863912,0.9073908547919556,0.9073908547919556,0.8407397381419599],\"xaxis\":\"x\",\"y\":[-471.875,-471.875,-557.5,-557.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.0440263221646022,1.1012480805652278,1.1012480805652278,0.9073908547919556],\"xaxis\":\"x\",\"y\":[-363.125,-363.125,-514.6875,-514.6875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.8454010721096386,1.1194988085180375,1.1194988085180375,1.1012480805652278],\"xaxis\":\"x\",\"y\":[-280.0,-280.0,-438.90625,-438.90625],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.32218400158325644,0.32218400158325644,0.0],\"xaxis\":\"x\",\"y\":[-595.0,-595.0,-605.0,-605.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.5435262888506658,0.5435262888506658,0.32218400158325644],\"xaxis\":\"x\",\"y\":[-585.0,-585.0,-600.0,-600.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.7079388956415603,0.7079388956415603,0.5435262888506658],\"xaxis\":\"x\",\"y\":[-575.0,-575.0,-592.5,-592.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.43020737051141966,0.43020737051141966,0.0],\"xaxis\":\"x\",\"y\":[-615.0,-615.0,-625.0,-625.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.7079388956415603,0.7480259389846435,0.7480259389846435,0.43020737051141966],\"xaxis\":\"x\",\"y\":[-583.75,-583.75,-620.0,-620.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.5231163801360237,0.5231163801360237,0.0],\"xaxis\":\"x\",\"y\":[-635.0,-635.0,-645.0,-645.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.7538227066019825,0.7538227066019825,0.0],\"xaxis\":\"x\",\"y\":[-655.0,-655.0,-665.0,-665.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.4902024085167399,0.4902024085167399,0.0],\"xaxis\":\"x\",\"y\":[-675.0,-675.0,-685.0,-685.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.7538227066019825,0.8035580700233654,0.8035580700233654,0.4902024085167399],\"xaxis\":\"x\",\"y\":[-660.0,-660.0,-680.0,-680.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.8035580700233654,0.899852322188234,0.899852322188234,0.0],\"xaxis\":\"x\",\"y\":[-670.0,-670.0,-695.0,-695.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.5231163801360237,0.9175219465667506,0.9175219465667506,0.899852322188234],\"xaxis\":\"x\",\"y\":[-640.0,-640.0,-682.5,-682.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.7480259389846435,0.9690356288556168,0.9690356288556168,0.9175219465667506],\"xaxis\":\"x\",\"y\":[-601.875,-601.875,-661.25,-661.25],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.1194988085180375,1.1968299328215575,1.1968299328215575,0.9690356288556168],\"xaxis\":\"x\",\"y\":[-359.453125,-359.453125,-631.5625,-631.5625],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.442086293635495,0.442086293635495,0.0],\"xaxis\":\"x\",\"y\":[-715.0,-715.0,-725.0,-725.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.5741209314245406,0.5741209314245406,0.442086293635495],\"xaxis\":\"x\",\"y\":[-705.0,-705.0,-720.0,-720.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.4813283164548795,0.4813283164548795,0.0],\"xaxis\":\"x\",\"y\":[-735.0,-735.0,-745.0,-745.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.4813283164548795,0.5670486485862284,0.5670486485862284,0.0],\"xaxis\":\"x\",\"y\":[-740.0,-740.0,-755.0,-755.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.5741209314245406,0.7362459160580519,0.7362459160580519,0.5670486485862284],\"xaxis\":\"x\",\"y\":[-712.5,-712.5,-747.5,-747.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.1968299328215575,1.2867129137708926,1.2867129137708926,0.7362459160580519],\"xaxis\":\"x\",\"y\":[-495.5078125,-495.5078125,-730.0,-730.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.5681624481259828,0.5681624481259828,0.0],\"xaxis\":\"x\",\"y\":[-775.0,-775.0,-785.0,-785.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.6753866775933725,0.6753866775933725,0.5681624481259828],\"xaxis\":\"x\",\"y\":[-765.0,-765.0,-780.0,-780.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.6753866775933725,0.7930231696363776,0.7930231696363776,0.0],\"xaxis\":\"x\",\"y\":[-772.5,-772.5,-795.0,-795.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.3529967492991274,0.3529967492991274,0.0],\"xaxis\":\"x\",\"y\":[-805.0,-805.0,-815.0,-815.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.3529967492991274,0.7240206570264243,0.7240206570264243,0.0],\"xaxis\":\"x\",\"y\":[-810.0,-810.0,-825.0,-825.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.28807396157803433,0.28807396157803433,0.0],\"xaxis\":\"x\",\"y\":[-845.0,-845.0,-855.0,-855.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.6729913908788294,0.6729913908788294,0.28807396157803433],\"xaxis\":\"x\",\"y\":[-835.0,-835.0,-850.0,-850.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.5463000936710728,0.5463000936710728,0.0],\"xaxis\":\"x\",\"y\":[-885.0,-885.0,-895.0,-895.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.5463000936710728,0.5974282440605866,0.5974282440605866,0.0],\"xaxis\":\"x\",\"y\":[-890.0,-890.0,-905.0,-905.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.6286267116611606,0.6286267116611606,0.5974282440605866],\"xaxis\":\"x\",\"y\":[-875.0,-875.0,-897.5,-897.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.597396846859946,0.597396846859946,0.0],\"xaxis\":\"x\",\"y\":[-915.0,-915.0,-925.0,-925.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.597396846859946,0.6751281924275551,0.6751281924275551,0.0],\"xaxis\":\"x\",\"y\":[-920.0,-920.0,-935.0,-935.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.6286267116611606,0.740650366033797,0.740650366033797,0.6751281924275551],\"xaxis\":\"x\",\"y\":[-886.25,-886.25,-927.5,-927.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.0,0.8027450892041416,0.8027450892041416,0.740650366033797],\"xaxis\":\"x\",\"y\":[-865.0,-865.0,-906.875,-906.875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.8027450892041416,0.8815095873721371,0.8815095873721371,0.0],\"xaxis\":\"x\",\"y\":[-885.9375,-885.9375,-945.0,-945.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(35,205,205)\"},\"mode\":\"lines\",\"x\":[0.6729913908788294,0.9167361368056557,0.9167361368056557,0.8815095873721371],\"xaxis\":\"x\",\"y\":[-842.5,-842.5,-915.46875,-915.46875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.7240206570264243,1.0369722700071156,1.0369722700071156,0.9167361368056557],\"xaxis\":\"x\",\"y\":[-817.5,-817.5,-878.984375,-878.984375],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.7930231696363776,1.0889175247504288,1.0889175247504288,1.0369722700071156],\"xaxis\":\"x\",\"y\":[-783.75,-783.75,-848.2421875,-848.2421875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.6743535490928352,0.6743535490928352,0.0],\"xaxis\":\"x\",\"y\":[-955.0,-955.0,-965.0,-965.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.5604119149360296,0.5604119149360296,0.0],\"xaxis\":\"x\",\"y\":[-975.0,-975.0,-985.0,-985.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.6456463445891372,0.6456463445891372,0.0],\"xaxis\":\"x\",\"y\":[-995.0,-995.0,-1005.0,-1005.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.0,0.7062756751524307,0.7062756751524307,0.0],\"xaxis\":\"x\",\"y\":[-1015.0,-1015.0,-1025.0,-1025.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.7062756751524307,0.7760472191383451,0.7760472191383451,0.0],\"xaxis\":\"x\",\"y\":[-1020.0,-1020.0,-1035.0,-1035.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.6456463445891372,0.8406255447345206,0.8406255447345206,0.7760472191383451],\"xaxis\":\"x\",\"y\":[-1000.0,-1000.0,-1027.5,-1027.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.5604119149360296,0.892795919500099,0.892795919500099,0.8406255447345206],\"xaxis\":\"x\",\"y\":[-980.0,-980.0,-1013.75,-1013.75],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(133,20,75)\"},\"mode\":\"lines\",\"x\":[0.6743535490928352,0.9549656605358128,0.9549656605358128,0.892795919500099],\"xaxis\":\"x\",\"y\":[-960.0,-960.0,-996.875,-996.875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.0,0.6014354369074728,0.6014354369074728,0.0],\"xaxis\":\"x\",\"y\":[-1045.0,-1045.0,-1055.0,-1055.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.0,0.4999654911978477,0.4999654911978477,0.0],\"xaxis\":\"x\",\"y\":[-1065.0,-1065.0,-1075.0,-1075.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.4999654911978477,0.7070539944063658,0.7070539944063658,0.0],\"xaxis\":\"x\",\"y\":[-1070.0,-1070.0,-1085.0,-1085.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.0,0.7463267970279713,0.7463267970279713,0.0],\"xaxis\":\"x\",\"y\":[-1095.0,-1095.0,-1105.0,-1105.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.7070539944063658,0.7876883244453925,0.7876883244453925,0.7463267970279713],\"xaxis\":\"x\",\"y\":[-1077.5,-1077.5,-1100.0,-1100.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,220,0)\"},\"mode\":\"lines\",\"x\":[0.6014354369074728,0.9499822409953648,0.9499822409953648,0.7876883244453925],\"xaxis\":\"x\",\"y\":[-1050.0,-1050.0,-1088.75,-1088.75],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.7131568443847784,0.7131568443847784,0.0],\"xaxis\":\"x\",\"y\":[-1115.0,-1115.0,-1125.0,-1125.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5892995911366068,0.5892995911366068,0.0],\"xaxis\":\"x\",\"y\":[-1145.0,-1145.0,-1155.0,-1155.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.7703469919661773,0.7703469919661773,0.5892995911366068],\"xaxis\":\"x\",\"y\":[-1135.0,-1135.0,-1150.0,-1150.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.7556777324663838,0.7556777324663838,0.0],\"xaxis\":\"x\",\"y\":[-1165.0,-1165.0,-1175.0,-1175.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.7703469919661773,0.7916813336623533,0.7916813336623533,0.7556777324663838],\"xaxis\":\"x\",\"y\":[-1142.5,-1142.5,-1170.0,-1170.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.6735764629266389,0.6735764629266389,0.0],\"xaxis\":\"x\",\"y\":[-1185.0,-1185.0,-1195.0,-1195.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.6735764629266389,0.7233204691638533,0.7233204691638533,0.0],\"xaxis\":\"x\",\"y\":[-1190.0,-1190.0,-1205.0,-1205.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.7916813336623533,0.8095458867755456,0.8095458867755456,0.7233204691638533],\"xaxis\":\"x\",\"y\":[-1156.25,-1156.25,-1197.5,-1197.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.7131568443847784,0.876137483982165,0.876137483982165,0.8095458867755456],\"xaxis\":\"x\",\"y\":[-1120.0,-1120.0,-1176.875,-1176.875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.4772114376626603,0.4772114376626603,0.0],\"xaxis\":\"x\",\"y\":[-1225.0,-1225.0,-1235.0,-1235.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5177785675979515,0.5177785675979515,0.0],\"xaxis\":\"x\",\"y\":[-1245.0,-1245.0,-1255.0,-1255.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.4772114376626603,0.5907616636716532,0.5907616636716532,0.5177785675979515],\"xaxis\":\"x\",\"y\":[-1230.0,-1230.0,-1250.0,-1250.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.6633083945191381,0.6633083945191381,0.5907616636716532],\"xaxis\":\"x\",\"y\":[-1215.0,-1215.0,-1240.0,-1240.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.44686998890154717,0.44686998890154717,0.0],\"xaxis\":\"x\",\"y\":[-1275.0,-1275.0,-1285.0,-1285.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5878522527320741,0.5878522527320741,0.44686998890154717],\"xaxis\":\"x\",\"y\":[-1265.0,-1265.0,-1280.0,-1280.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5929204999924151,0.5929204999924151,0.0],\"xaxis\":\"x\",\"y\":[-1295.0,-1295.0,-1305.0,-1305.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.5929204999924151,0.707515045499071,0.707515045499071,0.0],\"xaxis\":\"x\",\"y\":[-1300.0,-1300.0,-1315.0,-1315.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.5878522527320741,0.7160792541845676,0.7160792541845676,0.707515045499071],\"xaxis\":\"x\",\"y\":[-1272.5,-1272.5,-1307.5,-1307.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.6633083945191381,0.7320381922084576,0.7320381922084576,0.7160792541845676],\"xaxis\":\"x\",\"y\":[-1227.5,-1227.5,-1290.0,-1290.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.6619516580988868,0.6619516580988868,0.0],\"xaxis\":\"x\",\"y\":[-1335.0,-1335.0,-1345.0,-1345.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.6619516580988868,0.7492684728126868,0.7492684728126868,0.0],\"xaxis\":\"x\",\"y\":[-1340.0,-1340.0,-1355.0,-1355.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.7947965892129707,0.7947965892129707,0.7492684728126868],\"xaxis\":\"x\",\"y\":[-1325.0,-1325.0,-1347.5,-1347.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.7320381922084576,0.8256148440686691,0.8256148440686691,0.7947965892129707],\"xaxis\":\"x\",\"y\":[-1258.75,-1258.75,-1336.25,-1336.25],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.876137483982165,0.9170105227072304,0.9170105227072304,0.8256148440686691],\"xaxis\":\"x\",\"y\":[-1148.4375,-1148.4375,-1297.5,-1297.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.7153117181883573,0.7153117181883573,0.0],\"xaxis\":\"x\",\"y\":[-1365.0,-1365.0,-1375.0,-1375.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5034533773704983,0.5034533773704983,0.0],\"xaxis\":\"x\",\"y\":[-1385.0,-1385.0,-1395.0,-1395.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.7153117181883573,0.7824795850138553,0.7824795850138553,0.5034533773704983],\"xaxis\":\"x\",\"y\":[-1370.0,-1370.0,-1390.0,-1390.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.0,0.5445140563929236,0.5445140563929236,0.0],\"xaxis\":\"x\",\"y\":[-1405.0,-1405.0,-1415.0,-1415.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.7824795850138553,0.8605364911258939,0.8605364911258939,0.5445140563929236],\"xaxis\":\"x\",\"y\":[-1380.0,-1380.0,-1410.0,-1410.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(40,35,35)\"},\"mode\":\"lines\",\"x\":[0.9170105227072304,0.9860484062668092,0.9860484062668092,0.8605364911258939],\"xaxis\":\"x\",\"y\":[-1222.96875,-1222.96875,-1395.0,-1395.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.9499822409953648,1.048575411357849,1.048575411357849,0.9860484062668092],\"xaxis\":\"x\",\"y\":[-1069.375,-1069.375,-1308.984375,-1308.984375],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.9549656605358128,1.0587172664210198,1.0587172664210198,1.048575411357849],\"xaxis\":\"x\",\"y\":[-978.4375,-978.4375,-1189.1796875,-1189.1796875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.3572382139038801,0.3572382139038801,0.0],\"xaxis\":\"x\",\"y\":[-1435.0,-1435.0,-1445.0,-1445.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(61,153,112)\"},\"mode\":\"lines\",\"x\":[0.0,0.5328563216172585,0.5328563216172585,0.3572382139038801],\"xaxis\":\"x\",\"y\":[-1425.0,-1425.0,-1440.0,-1440.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.8138252554105029,0.8138252554105029,0.0],\"xaxis\":\"x\",\"y\":[-1455.0,-1455.0,-1465.0,-1465.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.8138252554105029,0.8474857143001786,0.8474857143001786,0.0],\"xaxis\":\"x\",\"y\":[-1460.0,-1460.0,-1475.0,-1475.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.8474857143001786,0.9072671343118667,0.9072671343118667,0.0],\"xaxis\":\"x\",\"y\":[-1467.5,-1467.5,-1485.0,-1485.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.6321598835911784,0.6321598835911784,0.0],\"xaxis\":\"x\",\"y\":[-1495.0,-1495.0,-1505.0,-1505.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.0,0.6958497839659121,0.6958497839659121,0.0],\"xaxis\":\"x\",\"y\":[-1515.0,-1515.0,-1525.0,-1525.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.6958497839659121,0.7341939998287454,0.7341939998287454,0.0],\"xaxis\":\"x\",\"y\":[-1520.0,-1520.0,-1535.0,-1535.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.6321598835911784,0.818343516401408,0.818343516401408,0.7341939998287454],\"xaxis\":\"x\",\"y\":[-1500.0,-1500.0,-1527.5,-1527.5],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.818343516401408,0.8487974320691654,0.8487974320691654,0.0],\"xaxis\":\"x\",\"y\":[-1513.75,-1513.75,-1545.0,-1545.0],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(255,65,54)\"},\"mode\":\"lines\",\"x\":[0.9072671343118667,0.9699597595004835,0.9699597595004835,0.8487974320691654],\"xaxis\":\"x\",\"y\":[-1476.25,-1476.25,-1529.375,-1529.375],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[0.5328563216172585,1.107330623037678,1.107330623037678,0.9699597595004835],\"xaxis\":\"x\",\"y\":[-1432.5,-1432.5,-1502.8125,-1502.8125],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.0587172664210198,1.206535534032926,1.206535534032926,1.107330623037678],\"xaxis\":\"x\",\"y\":[-1083.80859375,-1083.80859375,-1467.65625,-1467.65625],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.0889175247504288,1.4147922137619051,1.4147922137619051,1.206535534032926],\"xaxis\":\"x\",\"y\":[-815.99609375,-815.99609375,-1275.732421875,-1275.732421875],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.2867129137708926,1.4322343635578496,1.4322343635578496,1.4147922137619051],\"xaxis\":\"x\",\"y\":[-612.75390625,-612.75390625,-1045.8642578125,-1045.8642578125],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hoverinfo\":\"text\",\"marker\":{\"color\":\"rgb(0,116,217)\"},\"mode\":\"lines\",\"x\":[1.3868589407513918,1.522437055472125,1.522437055472125,1.4322343635578496],\"xaxis\":\"x\",\"y\":[-136.6015625,-136.6015625,-829.30908203125,-829.30908203125],\"yaxis\":\"y\",\"type\":\"scatter\"}],                        {\"autosize\":false,\"height\":2525,\"hovermode\":\"closest\",\"showlegend\":false,\"width\":1000,\"xaxis\":{\"mirror\":\"allticks\",\"rangemode\":\"tozero\",\"showgrid\":false,\"showline\":true,\"showticklabels\":true,\"ticks\":\"outside\",\"type\":\"linear\",\"zeroline\":false},\"yaxis\":{\"mirror\":\"allticks\",\"rangemode\":\"tozero\",\"showgrid\":false,\"showline\":true,\"showticklabels\":true,\"tickmode\":\"array\",\"ticks\":\"outside\",\"ticktext\":[\"37_sql_queries_spider\",\"124_table_tables_tabular\",\"83_hop_multi_reasoning\",\"92_kbqa_question_questions\",\"63_question_questions_qg\",\"117_question_answering_answer\",\"141_cqa_question_answer\",\"67_retrieval_dense_question\",\"133_retrieval_rag_augmented\",\"95_vqa_visual_question\",\"101_visual_dialog_image\",\"10_image_visual_vision\",\"125_mmt_multimodal_visual\",\"88_meeting_summarization_di...\",\"4_summarization_summaries_s...\",\"93_persona_personas_persona...\",\"81_knowledge_dialogue_groun...\",\"82_response_responses_dialo...\",\"49_dialogue_evaluation_dialog\",\"71_metrics_evaluation_nlg\",\"50_dst_dialogue_tracking\",\"65_dialogue_policy_dialog\",\"142_act_dialog_dialogue\",\"73_slot_filling_intent\",\"64_intent_intents_ood\",\"91_amr_meaning_smatch\",\"76_parsing_semantic_parser\",\"12_parsing_dependency_parser\",\"100_grammars_grammar_pcfgs\",\"39_semantics_distributional...\",\"96_compositional_generaliza...\",\"48_gec_correction_grammatical\",\"121_spelling_csc_correction\",\"116_segmentation_cws_chinese\",\"135_sequence_labeling_tagging\",\"129_pos_tagging_tagger\",\"25_law_zipf_frequency\",\"75_change_semantic_time\",\"19_word_embeddings_embedding\",\"38_sense_wsd_senses\",\"152_sentence_sts_embeddings\",\"132_contrastive_sentence_si...\",\"127_recipes_recipe_procedural\",\"21_commonsense_knowledge_re...\",\"70_editing_knowledge_factual\",\"90_continual_forgetting_cat...\",\"44_entailment_nli_negation\",\"119_probing_probe_linguistic\",\"36_rnns_recurrent_lstm\",\"20_attention_transformer_tr...\",\"15_tuning_fine_lora\",\"85_masking_masked_mlm\",\"57_brain_reading_eye\",\"28_mrc_comprehension_reading\",\"98_pruning_compression_spar...\",\"79_distillation_teacher_stu...\",\"104_nat_autoregressive_nar\",\"123_african_languages_pidgin\",\"111_alignment_parallel_pairs\",\"3_translation_nmt_machine\",\"14_translation_mt_qe\",\"89_bilingual_lingual_bli\",\"60_lingual_cross_transfer\",\"35_code_programming_source\",\"118_switching_code_switched\",\"140_cognate_phylogenetic_co...\",\"112_morphological_inflectio...\",\"45_arabic_transliteration_s...\",\"114_identification_dialect_...\",\"113_sign_gloss_asl\",\"136_ea_alignment_entity\",\"23_graph_knowledge_kg\",\"7_relation_extraction_relat...\",\"8_ner_entity_named\",\"41_entity_linking_el\",\"149_typing_entity_type\",\"154_backdoor_attacks_attack\",\"18_adversarial_attacks_attack\",\"74_safety_llms_jailbreak\",\"77_privacy_private_dp\",\"109_math_mathematical_mwp\",\"120_math_mathematical_reaso...\",\"59_cot_reasoning_thought\",\"61_icl_context_demonstrations\",\"40_prompt_tuning_shot\",\"151_prompt_prompts_optimiza...\",\"110_moral_values_ethical\",\"66_preference_feedback_reward\",\"9_agents_agent_game\",\"105_llms_evaluation_chinese\",\"69_instruction_instructions...\",\"13_explanations_explanation...\",\"102_calibration_uncertainty...\",\"58_hallucination_hallucinat...\",\"130_personality_traits_llms\",\"145_counterfactual_counterf...\",\"122_causal_causality_effect\",\"139_temporal_event_events\",\"33_event_extraction_events\",\"97_srl_role_argument\",\"30_argument_arguments_argum...\",\"138_active_al_learning\",\"126_annotation_tools_formats\",\"27_coreference_resolution_m...\",\"52_discourse_rst_relations\",\"150_coherence_discourse_par...\",\"148_gans_gan_adversarial\",\"17_generation_text_control\",\"43_story_stories_narrative\",\"72_poetry_lyrics_music\",\"51_style_transfer_content\",\"137_climate_change_esg\",\"46_financial_stock_market\",\"11_legal_court_law\",\"47_citation_scientific_papers\",\"144_materials_chemistry_sci...\",\"99_patent_job_patents\",\"106_taxonomy_taxonomies_hyp...\",\"22_topic_topics_lda\",\"94_layout_document_documents\",\"80_keyphrase_keyphrases_ext...\",\"108_augmentation_data_class...\",\"2_sentiment_aspect_analysis\",\"16_classification_label_lab...\",\"0_speech_asr_recognition\",\"5_hate_offensive_speech\",\"32_political_news_media\",\"54_nlp_bias_biases\",\"6_gender_bias_biases\",\"62_generated_detectors_dete...\",\"29_authorship_author_attrib...\",\"107_geographic_location_geo...\",\"103_scoring_essay_essays\",\"26_simplification_readabili...\",\"55_paraphrase_paraphrases_p...\",\"87_metaphor_figurative_lite...\",\"115_product_commerce_attrib...\",\"131_dementia_ad_alzheimer\",\"1_medical_clinical_biomedical\",\"86_radiology_reports_report\",\"42_depression_mental_health\",\"153_counseling_mental_health\",\"78_empathetic_empathy_emotion\",\"56_emotion_emotions_affective\",\"24_emotion_multimodal_erc\",\"134_humor_pun_humorous\",\"84_sarcasm_sarcastic_detect...\",\"143_memes_meme_hateful\",\"147_emoji_emojis_emoticons\",\"128_crisis_disaster_disasters\",\"68_covid_19_pandemic\",\"31_fake_news_detection\",\"53_stance_detection_rumor\",\"34_fact_checking_claim\",\"146_propaganda_techniques_n...\"],\"tickvals\":[-5.0,-15.0,-25.0,-35.0,-45.0,-55.0,-65.0,-75.0,-85.0,-95.0,-105.0,-115.0,-125.0,-135.0,-145.0,-155.0,-165.0,-175.0,-185.0,-195.0,-205.0,-215.0,-225.0,-235.0,-245.0,-255.0,-265.0,-275.0,-285.0,-295.0,-305.0,-315.0,-325.0,-335.0,-345.0,-355.0,-365.0,-375.0,-385.0,-395.0,-405.0,-415.0,-425.0,-435.0,-445.0,-455.0,-465.0,-475.0,-485.0,-495.0,-505.0,-515.0,-525.0,-535.0,-545.0,-555.0,-565.0,-575.0,-585.0,-595.0,-605.0,-615.0,-625.0,-635.0,-645.0,-655.0,-665.0,-675.0,-685.0,-695.0,-705.0,-715.0,-725.0,-735.0,-745.0,-755.0,-765.0,-775.0,-785.0,-795.0,-805.0,-815.0,-825.0,-835.0,-845.0,-855.0,-865.0,-875.0,-885.0,-895.0,-905.0,-915.0,-925.0,-935.0,-945.0,-955.0,-965.0,-975.0,-985.0,-995.0,-1005.0,-1015.0,-1025.0,-1035.0,-1045.0,-1055.0,-1065.0,-1075.0,-1085.0,-1095.0,-1105.0,-1115.0,-1125.0,-1135.0,-1145.0,-1155.0,-1165.0,-1175.0,-1185.0,-1195.0,-1205.0,-1215.0,-1225.0,-1235.0,-1245.0,-1255.0,-1265.0,-1275.0,-1285.0,-1295.0,-1305.0,-1315.0,-1325.0,-1335.0,-1345.0,-1355.0,-1365.0,-1375.0,-1385.0,-1395.0,-1405.0,-1415.0,-1425.0,-1435.0,-1445.0,-1455.0,-1465.0,-1475.0,-1485.0,-1495.0,-1505.0,-1515.0,-1525.0,-1535.0,-1545.0],\"type\":\"linear\",\"zeroline\":false,\"range\":[-1550.0,0.0]},\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"white\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"white\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"#C8D4E3\",\"linecolor\":\"#C8D4E3\",\"minorgridcolor\":\"#C8D4E3\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"#C8D4E3\",\"linecolor\":\"#C8D4E3\",\"minorgridcolor\":\"#C8D4E3\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"geo\":{\"bgcolor\":\"white\",\"lakecolor\":\"white\",\"landcolor\":\"white\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#C8D4E3\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"light\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"white\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#EBF0F8\",\"linecolor\":\"#EBF0F8\",\"ticks\":\"\"},\"bgcolor\":\"white\",\"radialaxis\":{\"gridcolor\":\"#EBF0F8\",\"linecolor\":\"#EBF0F8\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"white\",\"gridcolor\":\"#DFE8F3\",\"gridwidth\":2,\"linecolor\":\"#EBF0F8\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#EBF0F8\"},\"yaxis\":{\"backgroundcolor\":\"white\",\"gridcolor\":\"#DFE8F3\",\"gridwidth\":2,\"linecolor\":\"#EBF0F8\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#EBF0F8\"},\"zaxis\":{\"backgroundcolor\":\"white\",\"gridcolor\":\"#DFE8F3\",\"gridwidth\":2,\"linecolor\":\"#EBF0F8\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#EBF0F8\"}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#DFE8F3\",\"linecolor\":\"#A2B1C6\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#DFE8F3\",\"linecolor\":\"#A2B1C6\",\"ticks\":\"\"},\"bgcolor\":\"white\",\"caxis\":{\"gridcolor\":\"#DFE8F3\",\"linecolor\":\"#A2B1C6\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#EBF0F8\",\"linecolor\":\"#EBF0F8\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#EBF0F8\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#EBF0F8\",\"linecolor\":\"#EBF0F8\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#EBF0F8\",\"zerolinewidth\":2}}},\"title\":{\"font\":{\"size\":22,\"color\":\"Black\"},\"text\":\"\\u003cb\\u003eHierarchical Clustering\\u003c\\u002fb\\u003e\",\"x\":0.5,\"xanchor\":\"center\",\"yanchor\":\"top\"},\"hoverlabel\":{\"font\":{\"size\":16,\"family\":\"Rockwell\"},\"bgcolor\":\"white\"},\"plot_bgcolor\":\"#ECEFF1\"},                        {\"responsive\": true}                    ).then(function(){\n",
       "                            \n",
       "var gd = document.getElementById('b2d541c8-0729-4236-8c27-5a796eb3a4cb');\n",
       "var x = new MutationObserver(function (mutations, observer) {{\n",
       "        var display = window.getComputedStyle(gd).display;\n",
       "        if (!display || display === 'none') {{\n",
       "            console.log([gd, 'removed!']);\n",
       "            Plotly.purge(gd);\n",
       "            observer.disconnect();\n",
       "        }}\n",
       "}});\n",
       "\n",
       "// Listen for the removal of the full notebook cells\n",
       "var notebookContainer = gd.closest('#notebook-container');\n",
       "if (notebookContainer) {{\n",
       "    x.observe(notebookContainer, {childList: true});\n",
       "}}\n",
       "\n",
       "// Listen for the clearing of the current output cell\n",
       "var outputEl = gd.closest('.output');\n",
       "if (outputEl) {{\n",
       "    x.observe(outputEl, {childList: true});\n",
       "}}\n",
       "\n",
       "                        })                };                            </script>        </div>\n",
       "</body>\n",
       "</html>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize barchart with ranked keywords\n",
    "topic_model.visualize_barchart()\n",
    "\n",
    "# Visualize relationships between topics\n",
    "topic_model.visualize_heatmap(n_clusters=30)\n",
    "\n",
    "# Visualize the potential hierarchical structure of topics\n",
    "topic_model.visualize_hierarchy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "_-8h5SnZmLe5"
   },
   "source": [
    "## **Representation Models**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "_0vuZhqfmVEt"
   },
   "source": [
    "In these examples that follow, we will update our topic representations **after** having trained our model. This allows for quick iteration. If, however, you want to use a representation model at the start of training, you will need to run it as follows:\n",
    "\n",
    "```python\n",
    "from bertopic.representation import KeyBERTInspired\n",
    "from bertopic import BERTopic\n",
    "\n",
    "# Create your representation model\n",
    "representation_model = KeyBERTInspired()\n",
    "\n",
    "# Use the representation model in BERTopic on top of the default pipeline\n",
    "topic_model = BERTopic(representation_model=representation_model)\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "yY6hAIvOo9zT"
   },
   "source": [
    "To use the representation models, we are first going to duplicate our topic model such that easily show the differences between a model with and without representation model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "usLIeMFbqM7y"
   },
   "outputs": [],
   "source": [
    "# Save original representations\n",
    "from copy import deepcopy\n",
    "original_topics = deepcopy(topic_model.topic_representations_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "3dYLwbyEoeag"
   },
   "outputs": [],
   "source": [
    "def topic_differences(model, original_topics, nr_topics=5):\n",
    "    \"\"\"Show the differences in topic representations between two models \"\"\"\n",
    "    df = pd.DataFrame(columns=[\"Topic\", \"Original\", \"Updated\"])\n",
    "    for topic in range(nr_topics):\n",
    "\n",
    "        # Extract top 5 words per topic per model\n",
    "        og_words = \" | \".join(list(zip(*original_topics[topic]))[0][:5])\n",
    "        new_words = \" | \".join(list(zip(*model.get_topic(topic)))[0][:5])\n",
    "        df.loc[len(df)] = [topic, og_words, new_words]\n",
    "\n",
    "    return df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "kaDMxMIimNou"
   },
   "source": [
    "### KeyBERTInspired"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 206
    },
    "executionInfo": {
     "elapsed": 20619,
     "status": "ok",
     "timestamp": 1713955372302,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "1sp23Uzzr2KJ",
    "outputId": "4e231236-f925-4341-c450-7ce36e4e6990"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "summary": "{\n  \"name\": \"topic_differences(topic_model, original_topics)\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"Topic\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 4,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          1,\n          4,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Original\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"medical | clinical | biomedical | patient | health\",\n          \"summarization | summaries | summary | abstractive | document\",\n          \"sentiment | aspect | analysis | reviews | opinion\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Updated\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"nlp | ehr | clinical | biomedical | language\",\n          \"summarization | summarizers | summaries | summary | text\",\n          \"aspect | sentiment | aspects | sentiments | classifier\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
       "type": "dataframe"
      },
      "text/html": [
       "\n",
       "  <div id=\"df-b1bf60e6-3d7d-44a1-a5dd-1b5a9816aa33\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Topic</th>\n",
       "      <th>Original</th>\n",
       "      <th>Updated</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>speech | asr | recognition | end | acoustic</td>\n",
       "      <td>speech | encoder | phonetic | language | trans...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>medical | clinical | biomedical | patient | he...</td>\n",
       "      <td>nlp | ehr | clinical | biomedical | language</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>sentiment | aspect | analysis | reviews | opinion</td>\n",
       "      <td>aspect | sentiment | aspects | sentiments | cl...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>translation | nmt | machine | neural | bleu</td>\n",
       "      <td>translation | translating | translate | transl...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>summarization | summaries | summary | abstract...</td>\n",
       "      <td>summarization | summarizers | summaries | summ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b1bf60e6-3d7d-44a1-a5dd-1b5a9816aa33')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-b1bf60e6-3d7d-44a1-a5dd-1b5a9816aa33 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-b1bf60e6-3d7d-44a1-a5dd-1b5a9816aa33');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "<div id=\"df-2a2f62a5-e0eb-4df3-b29f-7ccd2560e83b\">\n",
       "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-2a2f62a5-e0eb-4df3-b29f-7ccd2560e83b')\"\n",
       "            title=\"Suggest charts\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "     width=\"24px\">\n",
       "    <g>\n",
       "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
       "    </g>\n",
       "</svg>\n",
       "  </button>\n",
       "\n",
       "<style>\n",
       "  .colab-df-quickchart {\n",
       "      --bg-color: #E8F0FE;\n",
       "      --fill-color: #1967D2;\n",
       "      --hover-bg-color: #E2EBFA;\n",
       "      --hover-fill-color: #174EA6;\n",
       "      --disabled-fill-color: #AAA;\n",
       "      --disabled-bg-color: #DDD;\n",
       "  }\n",
       "\n",
       "  [theme=dark] .colab-df-quickchart {\n",
       "      --bg-color: #3B4455;\n",
       "      --fill-color: #D2E3FC;\n",
       "      --hover-bg-color: #434B5C;\n",
       "      --hover-fill-color: #FFFFFF;\n",
       "      --disabled-bg-color: #3B4455;\n",
       "      --disabled-fill-color: #666;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart {\n",
       "    background-color: var(--bg-color);\n",
       "    border: none;\n",
       "    border-radius: 50%;\n",
       "    cursor: pointer;\n",
       "    display: none;\n",
       "    fill: var(--fill-color);\n",
       "    height: 32px;\n",
       "    padding: 0;\n",
       "    width: 32px;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart:hover {\n",
       "    background-color: var(--hover-bg-color);\n",
       "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "    fill: var(--button-hover-fill-color);\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart-complete:disabled,\n",
       "  .colab-df-quickchart-complete:disabled:hover {\n",
       "    background-color: var(--disabled-bg-color);\n",
       "    fill: var(--disabled-fill-color);\n",
       "    box-shadow: none;\n",
       "  }\n",
       "\n",
       "  .colab-df-spinner {\n",
       "    border: 2px solid var(--fill-color);\n",
       "    border-color: transparent;\n",
       "    border-bottom-color: var(--fill-color);\n",
       "    animation:\n",
       "      spin 1s steps(1) infinite;\n",
       "  }\n",
       "\n",
       "  @keyframes spin {\n",
       "    0% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "      border-left-color: var(--fill-color);\n",
       "    }\n",
       "    20% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    30% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    40% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    60% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    80% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "    90% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "  }\n",
       "</style>\n",
       "\n",
       "  <script>\n",
       "    async function quickchart(key) {\n",
       "      const quickchartButtonEl =\n",
       "        document.querySelector('#' + key + ' button');\n",
       "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
       "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
       "      try {\n",
       "        const charts = await google.colab.kernel.invokeFunction(\n",
       "            'suggestCharts', [key], {});\n",
       "      } catch (error) {\n",
       "        console.error('Error during call to suggestCharts:', error);\n",
       "      }\n",
       "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
       "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
       "    }\n",
       "    (() => {\n",
       "      let quickchartButtonEl =\n",
       "        document.querySelector('#df-2a2f62a5-e0eb-4df3-b29f-7ccd2560e83b button');\n",
       "      quickchartButtonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "    })();\n",
       "  </script>\n",
       "</div>\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "text/plain": [
       "   Topic                                           Original  \\\n",
       "0      0        speech | asr | recognition | end | acoustic   \n",
       "1      1  medical | clinical | biomedical | patient | he...   \n",
       "2      2  sentiment | aspect | analysis | reviews | opinion   \n",
       "3      3        translation | nmt | machine | neural | bleu   \n",
       "4      4  summarization | summaries | summary | abstract...   \n",
       "\n",
       "                                             Updated  \n",
       "0  speech | encoder | phonetic | language | trans...  \n",
       "1       nlp | ehr | clinical | biomedical | language  \n",
       "2  aspect | sentiment | aspects | sentiments | cl...  \n",
       "3  translation | translating | translate | transl...  \n",
       "4  summarization | summarizers | summaries | summ...  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from bertopic.representation import KeyBERTInspired\n",
    "\n",
    "# Update our topic representations using KeyBERTInspired\n",
    "representation_model = KeyBERTInspired()\n",
    "topic_model.update_topics(abstracts, representation_model=representation_model)\n",
    "\n",
    "# Show topic differences\n",
    "topic_differences(topic_model, original_topics)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "h7MV_-UiyCtS"
   },
   "source": [
    "### Maximal Marginal Relevance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 206
    },
    "executionInfo": {
     "elapsed": 19221,
     "status": "ok",
     "timestamp": 1713955391521,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "SGfm-c_-yEsp",
    "outputId": "3fdd05f3-5d66-41ec-eb59-25be66be272a"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "summary": "{\n  \"name\": \"topic_differences(topic_model, original_topics)\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"Topic\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 4,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          1,\n          4,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Original\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"medical | clinical | biomedical | patient | health\",\n          \"summarization | summaries | summary | abstractive | document\",\n          \"sentiment | aspect | analysis | reviews | opinion\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Updated\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"clinical | biomedical | patient | healthcare | extraction\",\n          \"summarization | document | extractive | rouge | evaluation\",\n          \"sentiment | analysis | reviews | absa | polarity\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
       "type": "dataframe"
      },
      "text/html": [
       "\n",
       "  <div id=\"df-48d39772-e62c-4e7a-9247-d721fcf49203\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Topic</th>\n",
       "      <th>Original</th>\n",
       "      <th>Updated</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>speech | asr | recognition | end | acoustic</td>\n",
       "      <td>speech | asr | error | model | training</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>medical | clinical | biomedical | patient | he...</td>\n",
       "      <td>clinical | biomedical | patient | healthcare |...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>sentiment | aspect | analysis | reviews | opinion</td>\n",
       "      <td>sentiment | analysis | reviews | absa | polarity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>translation | nmt | machine | neural | bleu</td>\n",
       "      <td>translation | nmt | bleu | parallel | multilin...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>summarization | summaries | summary | abstract...</td>\n",
       "      <td>summarization | document | extractive | rouge ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-48d39772-e62c-4e7a-9247-d721fcf49203')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-48d39772-e62c-4e7a-9247-d721fcf49203 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-48d39772-e62c-4e7a-9247-d721fcf49203');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "<div id=\"df-c3458c17-4a1d-483a-b608-a042c3097950\">\n",
       "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c3458c17-4a1d-483a-b608-a042c3097950')\"\n",
       "            title=\"Suggest charts\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "     width=\"24px\">\n",
       "    <g>\n",
       "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
       "    </g>\n",
       "</svg>\n",
       "  </button>\n",
       "\n",
       "<style>\n",
       "  .colab-df-quickchart {\n",
       "      --bg-color: #E8F0FE;\n",
       "      --fill-color: #1967D2;\n",
       "      --hover-bg-color: #E2EBFA;\n",
       "      --hover-fill-color: #174EA6;\n",
       "      --disabled-fill-color: #AAA;\n",
       "      --disabled-bg-color: #DDD;\n",
       "  }\n",
       "\n",
       "  [theme=dark] .colab-df-quickchart {\n",
       "      --bg-color: #3B4455;\n",
       "      --fill-color: #D2E3FC;\n",
       "      --hover-bg-color: #434B5C;\n",
       "      --hover-fill-color: #FFFFFF;\n",
       "      --disabled-bg-color: #3B4455;\n",
       "      --disabled-fill-color: #666;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart {\n",
       "    background-color: var(--bg-color);\n",
       "    border: none;\n",
       "    border-radius: 50%;\n",
       "    cursor: pointer;\n",
       "    display: none;\n",
       "    fill: var(--fill-color);\n",
       "    height: 32px;\n",
       "    padding: 0;\n",
       "    width: 32px;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart:hover {\n",
       "    background-color: var(--hover-bg-color);\n",
       "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "    fill: var(--button-hover-fill-color);\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart-complete:disabled,\n",
       "  .colab-df-quickchart-complete:disabled:hover {\n",
       "    background-color: var(--disabled-bg-color);\n",
       "    fill: var(--disabled-fill-color);\n",
       "    box-shadow: none;\n",
       "  }\n",
       "\n",
       "  .colab-df-spinner {\n",
       "    border: 2px solid var(--fill-color);\n",
       "    border-color: transparent;\n",
       "    border-bottom-color: var(--fill-color);\n",
       "    animation:\n",
       "      spin 1s steps(1) infinite;\n",
       "  }\n",
       "\n",
       "  @keyframes spin {\n",
       "    0% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "      border-left-color: var(--fill-color);\n",
       "    }\n",
       "    20% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    30% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    40% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    60% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    80% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "    90% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "  }\n",
       "</style>\n",
       "\n",
       "  <script>\n",
       "    async function quickchart(key) {\n",
       "      const quickchartButtonEl =\n",
       "        document.querySelector('#' + key + ' button');\n",
       "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
       "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
       "      try {\n",
       "        const charts = await google.colab.kernel.invokeFunction(\n",
       "            'suggestCharts', [key], {});\n",
       "      } catch (error) {\n",
       "        console.error('Error during call to suggestCharts:', error);\n",
       "      }\n",
       "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
       "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
       "    }\n",
       "    (() => {\n",
       "      let quickchartButtonEl =\n",
       "        document.querySelector('#df-c3458c17-4a1d-483a-b608-a042c3097950 button');\n",
       "      quickchartButtonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "    })();\n",
       "  </script>\n",
       "</div>\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "text/plain": [
       "   Topic                                           Original  \\\n",
       "0      0        speech | asr | recognition | end | acoustic   \n",
       "1      1  medical | clinical | biomedical | patient | he...   \n",
       "2      2  sentiment | aspect | analysis | reviews | opinion   \n",
       "3      3        translation | nmt | machine | neural | bleu   \n",
       "4      4  summarization | summaries | summary | abstract...   \n",
       "\n",
       "                                             Updated  \n",
       "0            speech | asr | error | model | training  \n",
       "1  clinical | biomedical | patient | healthcare |...  \n",
       "2   sentiment | analysis | reviews | absa | polarity  \n",
       "3  translation | nmt | bleu | parallel | multilin...  \n",
       "4  summarization | document | extractive | rouge ...  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from bertopic.representation import MaximalMarginalRelevance\n",
    "\n",
    "# Update our topic representations to MaximalMarginalRelevance\n",
    "representation_model = MaximalMarginalRelevance(diversity=0.5)\n",
    "topic_model.update_topics(abstracts, representation_model=representation_model)\n",
    "\n",
    "# Show topic differences\n",
    "topic_differences(topic_model, original_topics)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "SJez0aYvRmhw"
   },
   "source": [
    "## Text Generation\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "8ZZRe0dkSWko"
   },
   "source": [
    "### Flan-T5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 448,
     "referenced_widgets": [
      "e828d529dfca42abaea5e11d351bc263",
      "1ffeeead973a43d1a69cd4db3a6e1fe0",
      "a9ce4b28fdcd4a129742ddaf2cc5ed3e",
      "d36fabd5360d4db0a95fd38e39c556fd",
      "3d5ace4e3dff40d7887cc5d627f412f1",
      "08e990c55fe6440999bfe35e7076df04",
      "b3988ae1e5084c13900200287d366468",
      "2bd761c7c0c44b2899c3049a0e514342",
      "2587d09e03e141e98e76b783eb40dd53",
      "dbf6fc98e363470982154ad5e8d491ec",
      "c5a392a10e3d4940887869effa8ce87e",
      "e77fd60d7cfe444086e0f4c1e13fe872",
      "47d5cb87c80847eba31a238cc8ecb3c0",
      "e1ee198bf35e45e2a627610464e951fd",
      "d2e5d0a7024f4b17b3e3ea75542c1314",
      "bdcb59a969e942e88e8ca33c5307db06",
      "63f62ba934d347d9841b40e206b475d9",
      "1cc1d64a932c43c4b4bcf9cbcdfe9786",
      "97288f9a9d0b42b3b0040fa054082337",
      "f86cacc871e3485da0cac588c8b6ae24",
      "8198d008574f49558b0633c6db4e8bdc",
      "58a1dbbc903947eb8a2d836599fa5da7",
      "67eb5e43728e4587b352f875333299ce",
      "45681b510d65408cb1df805672bec26c",
      "b1a5bb0da1e74791b30da583c4b02f8d",
      "453ebf55995c4d24935c56188e516a20",
      "1355d5e0b3b94e03b0fa721fcb79005b",
      "498805684105443095adb28509ce3e22",
      "5344d9c5bfa94e089d62c160a17b0646",
      "f8ad5cef5b3e4507a426899aa41072c4",
      "5311286e67c74bb78ede05ae51ec87b3",
      "9c6dde93000d4e3d9f8205635e493c57",
      "1c88039327cc44ea933fdf182ce5bd02",
      "d5a523c75f044d759760af77b0fe2ad3",
      "5cafec2a71194cec914741dbe8b3083a",
      "0203b4842d884c4a95f22148a95268ba",
      "9dc50ffb6fda42339abeda6a640ef50e",
      "bd50fcd718c5456598c4ee6853677835",
      "278d00880c18472fb06720a8f398e1bb",
      "2352127df6ec4ada9afea952c39e3ba3",
      "01441e4441fd4cf8b341603e5fb931cb",
      "d2ecdaf719ef42f29f7e63549377364e",
      "609a90f5700947c68ee8ff64d7f42600",
      "4f9323cf392041eaa9ea810bbe1e6a39",
      "2be9c6cf4b434a46a4db0c0304f29390",
      "6fc8306b6ad64c239f781e824d22c2d6",
      "49e155bb2dd84f54a02998d5a364d226",
      "a39555fcfe6341ba9e039fe85ff4a8b6",
      "0a1f1cb7c84a44c7ba8a0e3ccb46b5b3",
      "bb18dbb52c1a440399f16ecdd0ae7cba",
      "49c02110e5364998bb298185b8b3c7d9",
      "f0015c06af5747c2841a555d1fe68d4f",
      "56f06e72f2e14e329cbf42960922af2e",
      "f8cd368460f74a439296d7ed3ab02091",
      "6c346f5856df486c9171a4daa398751e",
      "3f7a543bbca740d58cfed6bc0f7bb938",
      "2c066184dc8849378da92e8c549bb729",
      "93fed86b1a8a4d348a8d7eca64d36e21",
      "4018674e3e744836bd4dae59a7071931",
      "0d4bd89bb2c848afad74249ed097f4e1",
      "c2e3689ccbde4ccf88609498723b02af",
      "6ffaba639fa842fd9fe9570308bd95a5",
      "a966eb29912345d38306b51a1d4413b3",
      "5b02bd09345a477d884282853a152ffb",
      "39fbf1ab519148e1987be5775b2629e7",
      "4c0a5849d92b471e8257f04d6e512364",
      "ec7dbf66134e4171a83817f1b046d91b",
      "e804f01b4384400d8ff8dfb77e43819f",
      "9719d0fe800340bca18f83c5f9b54b5c",
      "7397bdbfd89a494bbe5a9196cadadd64",
      "2aec8e14d0ce462ab22650dbf729f6c2",
      "bc2f09fcd4f5475eb8d01dce50a57c27",
      "534a8c1bfe2e46b481588e7b3eef7eb6",
      "a542af6cedee423691a4208e4edb8991",
      "d99506f6425245b984fc064323ef6eae",
      "91e4c0f446c54f9db4094b6978170dc1",
      "61b974c4138f4f32b5152a299b525d7a"
     ]
    },
    "executionInfo": {
     "elapsed": 107684,
     "status": "ok",
     "timestamp": 1713955499199,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "4yisDTfcIrbq",
    "outputId": "bf62bf70-280a-47c3-f7b0-47cc564768f4"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e828d529dfca42abaea5e11d351bc263",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "config.json:   0%|          | 0.00/1.40k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e77fd60d7cfe444086e0f4c1e13fe872",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "model.safetensors:   0%|          | 0.00/308M [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "67eb5e43728e4587b352f875333299ce",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "generation_config.json:   0%|          | 0.00/147 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d5a523c75f044d759760af77b0fe2ad3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "tokenizer_config.json:   0%|          | 0.00/2.54k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2be9c6cf4b434a46a4db0c0304f29390",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "spiece.model:   0%|          | 0.00/792k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3f7a543bbca740d58cfed6bc0f7bb938",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "tokenizer.json:   0%|          | 0.00/2.42M [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ec7dbf66134e4171a83817f1b046d91b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "special_tokens_map.json:   0%|          | 0.00/2.20k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 156/156 [01:28<00:00,  1.76it/s]\n"
     ]
    },
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "summary": "{\n  \"name\": \"topic_differences(topic_model, original_topics)\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"Topic\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 4,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          1,\n          4,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Original\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"medical | clinical | biomedical | patient | health\",\n          \"summarization | summaries | summary | abstractive | document\",\n          \"sentiment | aspect | analysis | reviews | opinion\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Updated\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Science/Tech |  |  |  | \",\n          \"Summarization |  |  |  | \",\n          \"Review |  |  |  | \"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
       "type": "dataframe"
      },
      "text/html": [
       "\n",
       "  <div id=\"df-59674830-19cd-43d7-ac2f-3b58c810eb9e\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Topic</th>\n",
       "      <th>Original</th>\n",
       "      <th>Updated</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>speech | asr | recognition | end | acoustic</td>\n",
       "      <td>Speech-to-description |  |  |  |</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>medical | clinical | biomedical | patient | he...</td>\n",
       "      <td>Science/Tech |  |  |  |</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>sentiment | aspect | analysis | reviews | opinion</td>\n",
       "      <td>Review |  |  |  |</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>translation | nmt | machine | neural | bleu</td>\n",
       "      <td>Attention-based neural machine translation |  ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>summarization | summaries | summary | abstract...</td>\n",
       "      <td>Summarization |  |  |  |</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-59674830-19cd-43d7-ac2f-3b58c810eb9e')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-59674830-19cd-43d7-ac2f-3b58c810eb9e button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-59674830-19cd-43d7-ac2f-3b58c810eb9e');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "<div id=\"df-73ce633b-b25f-4cd2-bb03-c5b15a08209d\">\n",
       "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-73ce633b-b25f-4cd2-bb03-c5b15a08209d')\"\n",
       "            title=\"Suggest charts\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "     width=\"24px\">\n",
       "    <g>\n",
       "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
       "    </g>\n",
       "</svg>\n",
       "  </button>\n",
       "\n",
       "<style>\n",
       "  .colab-df-quickchart {\n",
       "      --bg-color: #E8F0FE;\n",
       "      --fill-color: #1967D2;\n",
       "      --hover-bg-color: #E2EBFA;\n",
       "      --hover-fill-color: #174EA6;\n",
       "      --disabled-fill-color: #AAA;\n",
       "      --disabled-bg-color: #DDD;\n",
       "  }\n",
       "\n",
       "  [theme=dark] .colab-df-quickchart {\n",
       "      --bg-color: #3B4455;\n",
       "      --fill-color: #D2E3FC;\n",
       "      --hover-bg-color: #434B5C;\n",
       "      --hover-fill-color: #FFFFFF;\n",
       "      --disabled-bg-color: #3B4455;\n",
       "      --disabled-fill-color: #666;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart {\n",
       "    background-color: var(--bg-color);\n",
       "    border: none;\n",
       "    border-radius: 50%;\n",
       "    cursor: pointer;\n",
       "    display: none;\n",
       "    fill: var(--fill-color);\n",
       "    height: 32px;\n",
       "    padding: 0;\n",
       "    width: 32px;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart:hover {\n",
       "    background-color: var(--hover-bg-color);\n",
       "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "    fill: var(--button-hover-fill-color);\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart-complete:disabled,\n",
       "  .colab-df-quickchart-complete:disabled:hover {\n",
       "    background-color: var(--disabled-bg-color);\n",
       "    fill: var(--disabled-fill-color);\n",
       "    box-shadow: none;\n",
       "  }\n",
       "\n",
       "  .colab-df-spinner {\n",
       "    border: 2px solid var(--fill-color);\n",
       "    border-color: transparent;\n",
       "    border-bottom-color: var(--fill-color);\n",
       "    animation:\n",
       "      spin 1s steps(1) infinite;\n",
       "  }\n",
       "\n",
       "  @keyframes spin {\n",
       "    0% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "      border-left-color: var(--fill-color);\n",
       "    }\n",
       "    20% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    30% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    40% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    60% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    80% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "    90% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "  }\n",
       "</style>\n",
       "\n",
       "  <script>\n",
       "    async function quickchart(key) {\n",
       "      const quickchartButtonEl =\n",
       "        document.querySelector('#' + key + ' button');\n",
       "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
       "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
       "      try {\n",
       "        const charts = await google.colab.kernel.invokeFunction(\n",
       "            'suggestCharts', [key], {});\n",
       "      } catch (error) {\n",
       "        console.error('Error during call to suggestCharts:', error);\n",
       "      }\n",
       "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
       "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
       "    }\n",
       "    (() => {\n",
       "      let quickchartButtonEl =\n",
       "        document.querySelector('#df-73ce633b-b25f-4cd2-bb03-c5b15a08209d button');\n",
       "      quickchartButtonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "    })();\n",
       "  </script>\n",
       "</div>\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "text/plain": [
       "   Topic                                           Original  \\\n",
       "0      0        speech | asr | recognition | end | acoustic   \n",
       "1      1  medical | clinical | biomedical | patient | he...   \n",
       "2      2  sentiment | aspect | analysis | reviews | opinion   \n",
       "3      3        translation | nmt | machine | neural | bleu   \n",
       "4      4  summarization | summaries | summary | abstract...   \n",
       "\n",
       "                                             Updated  \n",
       "0                  Speech-to-description |  |  |  |   \n",
       "1                           Science/Tech |  |  |  |   \n",
       "2                                 Review |  |  |  |   \n",
       "3  Attention-based neural machine translation |  ...  \n",
       "4                          Summarization |  |  |  |   "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from transformers import pipeline\n",
    "from bertopic.representation import TextGeneration\n",
    "\n",
    "prompt = \"\"\"I have a topic that contains the following documents:\n",
    "[DOCUMENTS]\n",
    "\n",
    "The topic is described by the following keywords: '[KEYWORDS]'.\n",
    "\n",
    "Based on the documents and keywords, what is this topic about?\"\"\"\n",
    "\n",
    "# Update our topic representations using Flan-T5\n",
    "generator = pipeline('text2text-generation', model='google/flan-t5-small')\n",
    "representation_model = TextGeneration(\n",
    "    generator, prompt=prompt, doc_length=50, tokenizer=\"whitespace\"\n",
    ")\n",
    "topic_model.update_topics(abstracts, representation_model=representation_model)\n",
    "\n",
    "# Show topic differences\n",
    "topic_differences(topic_model, original_topics)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Zah9jGGsgkP_"
   },
   "source": [
    "### OpenAI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 224
    },
    "executionInfo": {
     "elapsed": 151373,
     "status": "ok",
     "timestamp": 1713963906916,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "oXhqvQ2agkQF",
    "outputId": "364224a6-151d-443f-e1c5-d560cbac459c"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 156/156 [02:13<00:00,  1.17it/s]\n"
     ]
    },
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "summary": "{\n  \"name\": \"topic_differences(topic_model, original_topics)\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"Topic\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 4,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          1,\n          4,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Original\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"medical | clinical | biomedical | patient | health\",\n          \"summarization | summaries | summary | abstractive | document\",\n          \"sentiment | aspect | analysis | reviews | opinion\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Updated\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Improved Representation Learning for Biomedical Terms Using HiPrBERT\",\n          \"Document Summarization Techniques\",\n          \"\\\"Advancements in Aspect-Based Sentiment Analysis using Neural Models\\\"\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
       "type": "dataframe"
      },
      "text/html": [
       "\n",
       "  <div id=\"df-f002f563-105a-4a82-af36-fdbf487e2dfa\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Topic</th>\n",
       "      <th>Original</th>\n",
       "      <th>Updated</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>speech | asr | recognition | end | acoustic</td>\n",
       "      <td>Leveraging External Data for Improving Low-Res...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>medical | clinical | biomedical | patient | he...</td>\n",
       "      <td>Improved Representation Learning for Biomedica...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>sentiment | aspect | analysis | reviews | opinion</td>\n",
       "      <td>\"Advancements in Aspect-Based Sentiment Analys...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>translation | nmt | machine | neural | bleu</td>\n",
       "      <td>Neural Machine Translation Enhancements</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>summarization | summaries | summary | abstract...</td>\n",
       "      <td>Document Summarization Techniques</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f002f563-105a-4a82-af36-fdbf487e2dfa')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-f002f563-105a-4a82-af36-fdbf487e2dfa button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-f002f563-105a-4a82-af36-fdbf487e2dfa');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "<div id=\"df-4f80d5c4-a924-443d-afca-9d1ba764340b\">\n",
       "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4f80d5c4-a924-443d-afca-9d1ba764340b')\"\n",
       "            title=\"Suggest charts\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "     width=\"24px\">\n",
       "    <g>\n",
       "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
       "    </g>\n",
       "</svg>\n",
       "  </button>\n",
       "\n",
       "<style>\n",
       "  .colab-df-quickchart {\n",
       "      --bg-color: #E8F0FE;\n",
       "      --fill-color: #1967D2;\n",
       "      --hover-bg-color: #E2EBFA;\n",
       "      --hover-fill-color: #174EA6;\n",
       "      --disabled-fill-color: #AAA;\n",
       "      --disabled-bg-color: #DDD;\n",
       "  }\n",
       "\n",
       "  [theme=dark] .colab-df-quickchart {\n",
       "      --bg-color: #3B4455;\n",
       "      --fill-color: #D2E3FC;\n",
       "      --hover-bg-color: #434B5C;\n",
       "      --hover-fill-color: #FFFFFF;\n",
       "      --disabled-bg-color: #3B4455;\n",
       "      --disabled-fill-color: #666;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart {\n",
       "    background-color: var(--bg-color);\n",
       "    border: none;\n",
       "    border-radius: 50%;\n",
       "    cursor: pointer;\n",
       "    display: none;\n",
       "    fill: var(--fill-color);\n",
       "    height: 32px;\n",
       "    padding: 0;\n",
       "    width: 32px;\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart:hover {\n",
       "    background-color: var(--hover-bg-color);\n",
       "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "    fill: var(--button-hover-fill-color);\n",
       "  }\n",
       "\n",
       "  .colab-df-quickchart-complete:disabled,\n",
       "  .colab-df-quickchart-complete:disabled:hover {\n",
       "    background-color: var(--disabled-bg-color);\n",
       "    fill: var(--disabled-fill-color);\n",
       "    box-shadow: none;\n",
       "  }\n",
       "\n",
       "  .colab-df-spinner {\n",
       "    border: 2px solid var(--fill-color);\n",
       "    border-color: transparent;\n",
       "    border-bottom-color: var(--fill-color);\n",
       "    animation:\n",
       "      spin 1s steps(1) infinite;\n",
       "  }\n",
       "\n",
       "  @keyframes spin {\n",
       "    0% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "      border-left-color: var(--fill-color);\n",
       "    }\n",
       "    20% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    30% {\n",
       "      border-color: transparent;\n",
       "      border-left-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    40% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-top-color: var(--fill-color);\n",
       "    }\n",
       "    60% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "    }\n",
       "    80% {\n",
       "      border-color: transparent;\n",
       "      border-right-color: var(--fill-color);\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "    90% {\n",
       "      border-color: transparent;\n",
       "      border-bottom-color: var(--fill-color);\n",
       "    }\n",
       "  }\n",
       "</style>\n",
       "\n",
       "  <script>\n",
       "    async function quickchart(key) {\n",
       "      const quickchartButtonEl =\n",
       "        document.querySelector('#' + key + ' button');\n",
       "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
       "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
       "      try {\n",
       "        const charts = await google.colab.kernel.invokeFunction(\n",
       "            'suggestCharts', [key], {});\n",
       "      } catch (error) {\n",
       "        console.error('Error during call to suggestCharts:', error);\n",
       "      }\n",
       "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
       "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
       "    }\n",
       "    (() => {\n",
       "      let quickchartButtonEl =\n",
       "        document.querySelector('#df-4f80d5c4-a924-443d-afca-9d1ba764340b button');\n",
       "      quickchartButtonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "    })();\n",
       "  </script>\n",
       "</div>\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "text/plain": [
       "   Topic                                           Original  \\\n",
       "0      0        speech | asr | recognition | end | acoustic   \n",
       "1      1  medical | clinical | biomedical | patient | he...   \n",
       "2      2  sentiment | aspect | analysis | reviews | opinion   \n",
       "3      3        translation | nmt | machine | neural | bleu   \n",
       "4      4  summarization | summaries | summary | abstract...   \n",
       "\n",
       "                                             Updated  \n",
       "0  Leveraging External Data for Improving Low-Res...  \n",
       "1  Improved Representation Learning for Biomedica...  \n",
       "2  \"Advancements in Aspect-Based Sentiment Analys...  \n",
       "3            Neural Machine Translation Enhancements  \n",
       "4                  Document Summarization Techniques  "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import openai\n",
    "from bertopic.representation import OpenAI\n",
    "\n",
    "prompt = \"\"\"\n",
    "I have a topic that contains the following documents:\n",
    "[DOCUMENTS]\n",
    "\n",
    "The topic is described by the following keywords: [KEYWORDS]\n",
    "\n",
    "Based on the information above, extract a short topic label in the following format:\n",
    "topic: <short topic label>\n",
    "\"\"\"\n",
    "\n",
    "# Update our topic representations using GPT-3.5\n",
    "client = openai.OpenAI(api_key=\"YOUR_KEY_HERE\")\n",
    "representation_model = OpenAI(\n",
    "    client, model=\"gpt-3.5-turbo\", exponential_backoff=True, chat=True, prompt=prompt\n",
    ")\n",
    "topic_model.update_topics(abstracts, representation_model=representation_model)\n",
    "\n",
    "# Show topic differences\n",
    "topic_differences(topic_model, original_topics)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "executionInfo": {
     "elapsed": 19102,
     "status": "ok",
     "timestamp": 1713965080448,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "36c3UUvXZ8L-",
    "outputId": "2236e530-0e1c-49de-a98b-0a9bbebdba15"
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 655204 characters]",
      "text/plain": [
       "<Figure size 1200x1200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize topics and documents\n",
    "fig = topic_model.visualize_document_datamap(\n",
    "    titles,\n",
    "    topics=list(range(20)),\n",
    "    reduced_embeddings=reduced_embeddings,\n",
    "    width=1200,\n",
    "    label_font_size=11,\n",
    "    label_wrap_width=20,\n",
    "    use_medoids=True,\n",
    ")\n",
    "plt.savefig(\"datamapplot.png\", dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "fj9Z47wkxTzl"
   },
   "source": [
    "\n",
    "## **BONUS**: Word Cloud\n",
    "\n",
    "Make sure to pip install `wordcloud` first in order to follow this bonus:\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zdq9LzkxzxzT"
   },
   "source": [
    "First, we need to make sure that each topic is described by a bit more words than just 10 as that would make for a much more interesting wordcloud."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "qT2IKjyfxkkV"
   },
   "outputs": [],
   "source": [
    "topic_model.update_topics(abstracts, top_n_words=500)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "L3NIkt0Hz4AJ"
   },
   "source": [
    "Then, we can run the following code to generate the wordcloud for our topic modeling topic:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 422
    },
    "executionInfo": {
     "elapsed": 9354,
     "status": "ok",
     "timestamp": 1680586974170,
     "user": {
      "displayName": "Maarten Grootendorst",
      "userId": "11015108362723620659"
     },
     "user_tz": -120
    },
    "id": "YFSNG30jxWGo",
    "outputId": "2eca5376-4938-46be-d656-f7907617944f"
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 562320 characters]",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from wordcloud import WordCloud\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def create_wordcloud(model, topic):\n",
    "    plt.figure(figsize=(10,5))\n",
    "    text = {word: value for word, value in model.get_topic(topic)}\n",
    "    wc = WordCloud(background_color=\"white\", max_words=1000, width=1600, height=800)\n",
    "    wc.generate_from_frequencies(text)\n",
    "    plt.imshow(wc, interpolation=\"bilinear\")\n",
    "    plt.axis(\"off\")\n",
    "    plt.show()\n",
    "\n",
    "# Show wordcloud\n",
    "create_wordcloud(topic_model, topic=17)"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "authorship_tag": "ABX9TyMHpyx42/p7cmXd8aM7qpKc",
   "gpuType": "T4",
   "provenance": []
  },
  "gpuClass": "standard",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "01441e4441fd4cf8b341603e5fb931cb": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "0203b4842d884c4a95f22148a95268ba": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_01441e4441fd4cf8b341603e5fb931cb",
      "max": 2539,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_d2ecdaf719ef42f29f7e63549377364e",
      "value": 2539
     }
    },
    "08e990c55fe6440999bfe35e7076df04": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "0a1f1cb7c84a44c7ba8a0e3ccb46b5b3": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "0d4bd89bb2c848afad74249ed097f4e1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "1355d5e0b3b94e03b0fa721fcb79005b": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "13c85fbfa9e44714a2d9400fb6c21396": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "18e03962f36049e2869ea5f7dbda3973": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_5478cef31f6c4df89f37ab9619672b94",
       "IPY_MODEL_89655f0c32194549a5b6f910a806d64b",
       "IPY_MODEL_82bb3afe96b84887b6dec2836e346707"
      ],
      "layout": "IPY_MODEL_9977f43a9e514adda488325cb2eafa2e"
     }
    },
    "1c88039327cc44ea933fdf182ce5bd02": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "1cc1d64a932c43c4b4bcf9cbcdfe9786": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "1e474f19cfb44eee8f08193e70542313": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "1ffeeead973a43d1a69cd4db3a6e1fe0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_08e990c55fe6440999bfe35e7076df04",
      "placeholder": "​",
      "style": "IPY_MODEL_b3988ae1e5084c13900200287d366468",
      "value": "config.json: 100%"
     }
    },
    "2352127df6ec4ada9afea952c39e3ba3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "2587d09e03e141e98e76b783eb40dd53": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "278d00880c18472fb06720a8f398e1bb": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "2aec8e14d0ce462ab22650dbf729f6c2": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "2bd761c7c0c44b2899c3049a0e514342": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "2be9c6cf4b434a46a4db0c0304f29390": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_6fc8306b6ad64c239f781e824d22c2d6",
       "IPY_MODEL_49e155bb2dd84f54a02998d5a364d226",
       "IPY_MODEL_a39555fcfe6341ba9e039fe85ff4a8b6"
      ],
      "layout": "IPY_MODEL_0a1f1cb7c84a44c7ba8a0e3ccb46b5b3"
     }
    },
    "2c066184dc8849378da92e8c549bb729": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_c2e3689ccbde4ccf88609498723b02af",
      "placeholder": "​",
      "style": "IPY_MODEL_6ffaba639fa842fd9fe9570308bd95a5",
      "value": "tokenizer.json: 100%"
     }
    },
    "39fbf1ab519148e1987be5775b2629e7": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "3b9fce1566c5461b82a2931087dfe096": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "3d5ace4e3dff40d7887cc5d627f412f1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "3f7a543bbca740d58cfed6bc0f7bb938": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_2c066184dc8849378da92e8c549bb729",
       "IPY_MODEL_93fed86b1a8a4d348a8d7eca64d36e21",
       "IPY_MODEL_4018674e3e744836bd4dae59a7071931"
      ],
      "layout": "IPY_MODEL_0d4bd89bb2c848afad74249ed097f4e1"
     }
    },
    "4018674e3e744836bd4dae59a7071931": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_39fbf1ab519148e1987be5775b2629e7",
      "placeholder": "​",
      "style": "IPY_MODEL_4c0a5849d92b471e8257f04d6e512364",
      "value": " 2.42M/2.42M [00:00&lt;00:00, 27.8MB/s]"
     }
    },
    "44b60956730f45b0834c738b3ad83175": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "453ebf55995c4d24935c56188e516a20": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_9c6dde93000d4e3d9f8205635e493c57",
      "placeholder": "​",
      "style": "IPY_MODEL_1c88039327cc44ea933fdf182ce5bd02",
      "value": " 147/147 [00:00&lt;00:00, 10.0kB/s]"
     }
    },
    "45681b510d65408cb1df805672bec26c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_498805684105443095adb28509ce3e22",
      "placeholder": "​",
      "style": "IPY_MODEL_5344d9c5bfa94e089d62c160a17b0646",
      "value": "generation_config.json: 100%"
     }
    },
    "47d5cb87c80847eba31a238cc8ecb3c0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_63f62ba934d347d9841b40e206b475d9",
      "placeholder": "​",
      "style": "IPY_MODEL_1cc1d64a932c43c4b4bcf9cbcdfe9786",
      "value": "model.safetensors: 100%"
     }
    },
    "498805684105443095adb28509ce3e22": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "49c02110e5364998bb298185b8b3c7d9": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "49e155bb2dd84f54a02998d5a364d226": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_f0015c06af5747c2841a555d1fe68d4f",
      "max": 791656,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_56f06e72f2e14e329cbf42960922af2e",
      "value": 791656
     }
    },
    "4ac21e7871f540df9b382a0d08d03141": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "4c0a5849d92b471e8257f04d6e512364": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "4ef0e581a3134a37b035b1cedcc67065": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "4f9323cf392041eaa9ea810bbe1e6a39": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "5311286e67c74bb78ede05ae51ec87b3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "5344d9c5bfa94e089d62c160a17b0646": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "534a8c1bfe2e46b481588e7b3eef7eb6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "5478cef31f6c4df89f37ab9619672b94": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_1e474f19cfb44eee8f08193e70542313",
      "placeholder": "​",
      "style": "IPY_MODEL_4ef0e581a3134a37b035b1cedcc67065",
      "value": "Batches: 100%"
     }
    },
    "56f06e72f2e14e329cbf42960922af2e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "58a1dbbc903947eb8a2d836599fa5da7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "5b02bd09345a477d884282853a152ffb": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "5cafec2a71194cec914741dbe8b3083a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_278d00880c18472fb06720a8f398e1bb",
      "placeholder": "​",
      "style": "IPY_MODEL_2352127df6ec4ada9afea952c39e3ba3",
      "value": "tokenizer_config.json: 100%"
     }
    },
    "609a90f5700947c68ee8ff64d7f42600": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "61b974c4138f4f32b5152a299b525d7a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "63f62ba934d347d9841b40e206b475d9": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "67eb5e43728e4587b352f875333299ce": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_45681b510d65408cb1df805672bec26c",
       "IPY_MODEL_b1a5bb0da1e74791b30da583c4b02f8d",
       "IPY_MODEL_453ebf55995c4d24935c56188e516a20"
      ],
      "layout": "IPY_MODEL_1355d5e0b3b94e03b0fa721fcb79005b"
     }
    },
    "6c346f5856df486c9171a4daa398751e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "6fc8306b6ad64c239f781e824d22c2d6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_bb18dbb52c1a440399f16ecdd0ae7cba",
      "placeholder": "​",
      "style": "IPY_MODEL_49c02110e5364998bb298185b8b3c7d9",
      "value": "spiece.model: 100%"
     }
    },
    "6ffaba639fa842fd9fe9570308bd95a5": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "7397bdbfd89a494bbe5a9196cadadd64": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_91e4c0f446c54f9db4094b6978170dc1",
      "placeholder": "​",
      "style": "IPY_MODEL_61b974c4138f4f32b5152a299b525d7a",
      "value": " 2.20k/2.20k [00:00&lt;00:00, 156kB/s]"
     }
    },
    "8198d008574f49558b0633c6db4e8bdc": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "82bb3afe96b84887b6dec2836e346707": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_44b60956730f45b0834c738b3ad83175",
      "placeholder": "​",
      "style": "IPY_MODEL_4ac21e7871f540df9b382a0d08d03141",
      "value": " 1405/1405 [04:36&lt;00:00, 19.53it/s]"
     }
    },
    "89655f0c32194549a5b6f910a806d64b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_13c85fbfa9e44714a2d9400fb6c21396",
      "max": 1405,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3b9fce1566c5461b82a2931087dfe096",
      "value": 1405
     }
    },
    "91e4c0f446c54f9db4094b6978170dc1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "93fed86b1a8a4d348a8d7eca64d36e21": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_a966eb29912345d38306b51a1d4413b3",
      "max": 2424064,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_5b02bd09345a477d884282853a152ffb",
      "value": 2424064
     }
    },
    "9719d0fe800340bca18f83c5f9b54b5c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_a542af6cedee423691a4208e4edb8991",
      "max": 2201,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_d99506f6425245b984fc064323ef6eae",
      "value": 2201
     }
    },
    "97288f9a9d0b42b3b0040fa054082337": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "9977f43a9e514adda488325cb2eafa2e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "9c6dde93000d4e3d9f8205635e493c57": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "9dc50ffb6fda42339abeda6a640ef50e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_609a90f5700947c68ee8ff64d7f42600",
      "placeholder": "​",
      "style": "IPY_MODEL_4f9323cf392041eaa9ea810bbe1e6a39",
      "value": " 2.54k/2.54k [00:00&lt;00:00, 179kB/s]"
     }
    },
    "a39555fcfe6341ba9e039fe85ff4a8b6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_f8cd368460f74a439296d7ed3ab02091",
      "placeholder": "​",
      "style": "IPY_MODEL_6c346f5856df486c9171a4daa398751e",
      "value": " 792k/792k [00:00&lt;00:00, 38.9MB/s]"
     }
    },
    "a542af6cedee423691a4208e4edb8991": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "a966eb29912345d38306b51a1d4413b3": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "a9ce4b28fdcd4a129742ddaf2cc5ed3e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_2bd761c7c0c44b2899c3049a0e514342",
      "max": 1401,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_2587d09e03e141e98e76b783eb40dd53",
      "value": 1401
     }
    },
    "b1a5bb0da1e74791b30da583c4b02f8d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_f8ad5cef5b3e4507a426899aa41072c4",
      "max": 147,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_5311286e67c74bb78ede05ae51ec87b3",
      "value": 147
     }
    },
    "b3988ae1e5084c13900200287d366468": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "bb18dbb52c1a440399f16ecdd0ae7cba": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "bc2f09fcd4f5475eb8d01dce50a57c27": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "bd50fcd718c5456598c4ee6853677835": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "bdcb59a969e942e88e8ca33c5307db06": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "c2e3689ccbde4ccf88609498723b02af": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "c5a392a10e3d4940887869effa8ce87e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "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": ""
     }
    },
    "d2e5d0a7024f4b17b3e3ea75542c1314": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_8198d008574f49558b0633c6db4e8bdc",
      "placeholder": "​",
      "style": "IPY_MODEL_58a1dbbc903947eb8a2d836599fa5da7",
      "value": " 308M/308M [00:01&lt;00:00, 173MB/s]"
     }
    },
    "d2ecdaf719ef42f29f7e63549377364e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "d36fabd5360d4db0a95fd38e39c556fd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_dbf6fc98e363470982154ad5e8d491ec",
      "placeholder": "​",
      "style": "IPY_MODEL_c5a392a10e3d4940887869effa8ce87e",
      "value": " 1.40k/1.40k [00:00&lt;00:00, 60.4kB/s]"
     }
    },
    "d5a523c75f044d759760af77b0fe2ad3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_5cafec2a71194cec914741dbe8b3083a",
       "IPY_MODEL_0203b4842d884c4a95f22148a95268ba",
       "IPY_MODEL_9dc50ffb6fda42339abeda6a640ef50e"
      ],
      "layout": "IPY_MODEL_bd50fcd718c5456598c4ee6853677835"
     }
    },
    "d99506f6425245b984fc064323ef6eae": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "dbf6fc98e363470982154ad5e8d491ec": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "e1ee198bf35e45e2a627610464e951fd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "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_97288f9a9d0b42b3b0040fa054082337",
      "max": 307867048,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_f86cacc871e3485da0cac588c8b6ae24",
      "value": 307867048
     }
    },
    "e77fd60d7cfe444086e0f4c1e13fe872": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_47d5cb87c80847eba31a238cc8ecb3c0",
       "IPY_MODEL_e1ee198bf35e45e2a627610464e951fd",
       "IPY_MODEL_d2e5d0a7024f4b17b3e3ea75542c1314"
      ],
      "layout": "IPY_MODEL_bdcb59a969e942e88e8ca33c5307db06"
     }
    },
    "e804f01b4384400d8ff8dfb77e43819f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "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_bc2f09fcd4f5475eb8d01dce50a57c27",
      "placeholder": "​",
      "style": "IPY_MODEL_534a8c1bfe2e46b481588e7b3eef7eb6",
      "value": "special_tokens_map.json: 100%"
     }
    },
    "e828d529dfca42abaea5e11d351bc263": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_1ffeeead973a43d1a69cd4db3a6e1fe0",
       "IPY_MODEL_a9ce4b28fdcd4a129742ddaf2cc5ed3e",
       "IPY_MODEL_d36fabd5360d4db0a95fd38e39c556fd"
      ],
      "layout": "IPY_MODEL_3d5ace4e3dff40d7887cc5d627f412f1"
     }
    },
    "ec7dbf66134e4171a83817f1b046d91b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "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_e804f01b4384400d8ff8dfb77e43819f",
       "IPY_MODEL_9719d0fe800340bca18f83c5f9b54b5c",
       "IPY_MODEL_7397bdbfd89a494bbe5a9196cadadd64"
      ],
      "layout": "IPY_MODEL_2aec8e14d0ce462ab22650dbf729f6c2"
     }
    },
    "f0015c06af5747c2841a555d1fe68d4f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "f86cacc871e3485da0cac588c8b6ae24": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "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": ""
     }
    },
    "f8ad5cef5b3e4507a426899aa41072c4": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    },
    "f8cd368460f74a439296d7ed3ab02091": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "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
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
