haridarsan01/mp-kite
收藏Hugging Face2023-08-02 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/haridarsan01/mp-kite
下载链接
链接失效反馈官方服务:
资源简介:
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9IRAXydA3Yw3"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from nltk.probability import FreqDist\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
"from sklearn.decomposition import LatentDirichletAllocation\n",
"import matplotlib.pyplot as plt\n",
"\n"
]
},
{
"cell_type": "code",
"source": [
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"\n",
"# Topic modeling using LDA\n",
"def topic_modeling(sentences, num_topics):\n",
" vectorizer = CountVectorizer()\n",
" X = vectorizer.fit_transform(sentences)\n",
" lda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\n",
" lda.fit(X)\n",
" return lda, vectorizer\n",
"\n",
"# Assign sentences to themes based on dominant topics\n",
"def assign_sentences_to_themes(lda, vectorizer, sentences):\n",
" theme_sentences = {i: [] for i in range(lda.n_components)}\n",
" for sent in sentences:\n",
" X_sent = vectorizer.transform([sent])\n",
" topic_idx = lda.transform(X_sent).argmax()\n",
" theme_sentences[topic_idx].append(sent)\n",
" return theme_sentences\n",
"\n",
"# Visualize themes using a bar chart and pie chart\n",
"def visualize_themes(theme_freq):\n",
" plt.figure(figsize=(12, 6))\n",
"\n",
" plt.subplot(1, 2, 1)\n",
" plt.bar(theme_freq.keys(), theme_freq.values())\n",
" plt.xlabel(\"Themes\")\n",
" plt.ylabel(\"Frequency\")\n",
" plt.title(\"Themes Frequency (Bar Chart)\")\n",
"\n",
" plt.subplot(1, 2, 2)\n",
" plt.pie(theme_freq.values(), labels=theme_freq.keys(), autopct=\"%1.1f%%\")\n",
" plt.title(\"Themes Distribution (Pie Chart)\")\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"# Extract the most relevant words for each topic\n",
"def extract_topic_keywords(lda, vectorizer, num_words=5):\n",
" feature_names = vectorizer.get_feature_names_out()\n",
" topic_keywords = []\n",
" for topic_idx, topic in enumerate(lda.components_):\n",
" top_words_idx = topic.argsort()[-num_words:][::-1]\n",
" top_words = [feature_names[i] for i in top_words_idx]\n",
" topic_keywords.append(top_words)\n",
" return topic_keywords\n",
"\n",
"\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"/content/challenges.csv\"\n",
" num_topics = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" lda, vectorizer = topic_modeling(preprocessed_sentences, num_topics)\n",
" theme_sentences = assign_sentences_to_themes(lda, vectorizer, sentences)\n",
" theme_freq = {f\"Theme {i + 1}\": len(theme_sentences[i]) for i in range(num_topics)}\n",
"\n",
" # Extract most relevant words for each topic\n",
" topic_keywords = extract_topic_keywords(lda, vectorizer)\n",
"\n",
" # Print themes and their most relevant words\n",
" for theme, freq, keywords in zip(theme_freq.keys(), theme_freq.values(), topic_keywords):\n",
" print(f\"{theme}: {freq} sentences\")\n",
" print(\"Keywords:\", \", \".join(keywords))\n",
" print()\n",
"\n",
" visualize_themes(theme_freq)\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 937
},
"id": "OqL8PzoL6Vc_",
"outputId": "5847b355-6be0-4d65-bd71-fdfdb5e07851"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Theme 1: 9 sentences\n",
"Keywords: project, rather, work, mostly, many\n",
"\n",
"Theme 2: 19 sentences\n",
"Keywords: process, one, mindset, l4, l3\n",
"\n",
"Theme 3: 14 sentences\n",
"Keywords: client, lack, people, communication, process\n",
"\n",
"Theme 4: 7 sentences\n",
"Keywords: team, lack, need, collaboration, marketing\n",
"\n",
"Theme 5: 10 sentences\n",
"Keywords: sales, team, product, within, leaders\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 2 Axes>"
],
"image/png": "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X73wwgvq2LGjPD09tWPHjirPlZiYqHnz5umiiy6q8htWV1dXPfDAA5VGF2VmZlZ8axYYGKhJkyYpPz/fbp/58+frwgsvVFhYmDw9PdWjRw/NnTu30jmio6M1evRo/fDDD+rXr5+8vb01b948WSwW5eXlaeHChRXD3G+66aaK4/r27avg4GB9+eWXJ30/AaCp4xqljLe3t959910FBwfrqaeekmEYFdtOvLbIycnRP/7xD0VHR8vT01NhYWG66KKLtHnzZkll1wlLlizRgQMHKn7HlF+LlE+x+vDDD/XYY4+pbdu28vHxUXZ2dpVrGJXbtGmTBg4cKG9vb8XExFQqrCxYsEAWi0UJCQl27Sf2ebJs1a1h9OOPP2rw4MHy9fVVUFCQLr/88koFx/K/+7i4uFP+Dq/KkiVLVFpaqmHDhp1yX0kVX+bs37/f7vwnqsl1XVWeffZZ5ebm6q233rIrFpXr1KmTpk6dWqn9iy++0GmnnSZPT0/17NlT33//vd32AwcO6M4771TXrl3l7e2t1q1b65prrqn091b+9/nTTz/pzjvvVFhYmNq1a6cnnnhCDz74oCQpJiam4u/w+OMvuugi/frrr0pPTz/l6wQkRhgBpnvmmWfk4uKiBx54QFlZWXr22Wd1/fXX282V//HHHzVixAj17dtX06dPl4uLS8WH4l9++UVnn322XZ/XXnutunfvrmeeeUZLlizRv//9bwUHB2vevHm68MILNWvWLL333nt64IEHdNZZZ+m8886TVHZheNlll+nXX3/Vrbfequ7du+uPP/7Q888/rz179lSs6fLnn39q9OjROv300/Xkk0/K09NTcXFxlS4Oq1NSUlJp8WIfH5+KUURpaWkaMWKExo0bpxtuuEFt2rSpcTZJuuWWW7Ro0SJdd911GjhwoH788UeNGjWqtn81dp566in93//9n8aOHatbbrlFx44d08svv6zzzjtPv//+u92w34yMDF1yySW66qqrNHbsWH366ad66KGH1KtXL40YMUJS2do9o0eP1ooVKzRu3DhNnTpVOTk5WrZsmbZv366OHTvqhhtu0LPPPqv09HQFBwdX9P/1118rOzv7lKO01qxZoz59+lS7vfxiwWaz6fDhw5o5c6a8vLzsRiRlZ2frzTff1Pjx4zVlyhTl5OTorbfe0vDhw6ucujZ//nwVFhbq1ltvlaen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m2++qVtuuUXTpk3T0KFDddVVV2nMmDFycTl1HTokJOSk89Dbtm1bafh1TbMdOHBALi4ulaYQde3a9ZS5qrN3714ZhqHOnTtXuf3EO4a0a9euUjGnVatW2rZtW8Xz+Ph4de3a9ZSLME6YMEF33323Dhw4oKioKH3yyScqKSmp8VQu47h1Fk503nnn2f1MjBkzRp07d9Y999xjd5G5cOFCzZ49W7t27VJJSUlFe0xMTKU+q2qrSkBAgKSTX3RX5WT/Xsr7XL16taZPn661a9dWKuhkZWUpMDCw1nlPVP6+cpc0AM1ZS7xGOZnc3FxJJy8WPPvss5o4caLat2+vvn37auTIkZowYYJiY2NrfJ7a/G6KjIystNhxly5dJJWtO3TOOefUuK/aOHDggKSqr6+6d++uH374odJCzDX5HV6dk13PPP744xo8eLBcXV0VEhKi7t27n/T6qrbXdcdz1PWLVPb6y/8tSWV33Hv66ac1f/58HT582O41n/iFl1S3axiuX1BbFIwAk1X3zUD5/9DLvx177rnnqr1z1Ynzy6vq81TnKT9Xr169Kt0ytlz79u0llX0D8vPPP2vlypVasmSJvv/+e3300Ue68MILtXTp0lp/23Giqr5Vq2m22qjul6XVaq10bovFou+++67K11aT9186+cVOdcaNG6f77rtP7733nh555BEtWrRI/fr1O2UBLDg4WBaLxe5C5FT8/PzUv39/ffnllxUXeYsWLdJNN92kK664Qg8++KDCwsLk6uqqp59+umKNgOPV9BvRbt26SZL++OOPWt2R7VTvbXx8vIYOHapu3bppzpw5at++vTw8PPTtt9/q+eefr/Rtc03znigjI0M+Pj51Ph4AmgKuUext375dkqq8tXu5sWPHavDgwfr888+1dOlSPffcc5o1a5YWL15csY7hqTj6d0tNr3caWl2vj1q3bn3S65levXrVeEFsqfbXdccLCAhQZGRkxc9CTdXktd9zzz2aP3++/vGPf2jAgAEKDAyUxWLRuHHjqhwtV5efk/L38cQCLVAdCkaAkysfKRMQEFCrX4Z1PdfWrVs1dOjQU37z4OLioqFDh2ro0KGaM2eO/vOf/+jRRx/VypUrGyRnTbNFRUXJZrNVjOApt3v37kr7tmrVSpmZmZXay781O/7chmEoJiam4lu7+urYsaPWrVunkpKSk36TFRwcrFGjRum9997T9ddfr9WrV+uFF144Zf9ubm7q2LFjxR1Caqq0tFRS2beovr6++vTTTxUbG6vFixfbve/Tp0+vVb8nGjFihFxdXbVo0aJaL3x9Ml9//bWKior01Vdf2X2bd7Lh5VU51c///v371b179zplBIDmoiVdo+Tm5urzzz9X+/btT/n//4iICN1555268847lZKSoj59+uipp56qKBg5cnTHkSNHKo3k2bNnjyRVLDpdPpLnxGueE693apOtfAHqqq6vdu3apZCQkFPe5r2munXrps8++8whfUn1v64bPXq0/ve//2nt2rUaMGCAw3J9+umnmjhxot0dAgsLC6u8Vq1OTa5fJHENgxpjDSPAyfXt21cdO3bUf//734qh0Mc7duyYw841duxYHT58WG+88UalbQUFBcrLy5OkKm/FWf7N4om3tm3sbOUXYy+99JLdPlUVWTp27KisrCy7qWJJSUn6/PPP7fa76qqr5OrqqhkzZlT6FswwDLsh8zV19dVXKzU1Va+88kqlbSee48Ybb9SOHTv04IMPytXVVePGjavROQYMGKCNGzfWOFN6errWrFmj8PBwhYWFSfr7G7HjM61bt05r166tcb9Vad++vaZMmaKlS5fq5ZdfrrTdZrNp9uzZSkxMrFW/VeXNysrS/Pnza9WPr6/vSS/QNm/eXKu7owBAc9RSrlEKCgp04403Kj09XY8++uhJR+ycOHUoLCxMkZGRduf29fWtcopRXZSWlmrevHkVz4uLizVv3jyFhoaqb9++kv4u7P388892Wf/3v/9V6q+m2SIiItS7d28tXLjQ7vfl9u3btXTpUo0cObKuL6mSAQMGKCMjw269n/qo73Xdv/71L/n6+uqWW25RcnJype3x8fF68cUXa53L1dW1Up6XX365ViPByot01V3DbNq0SRaLxaGFLjRvjDACnJyLi4vefPNNjRgxQj179tSkSZPUtm1bHT58WCtXrlRAQIC+/vprh5zrxhtv1Mcff6zbb79dK1eu1Lnnniur1apdu3bp448/1g8//KB+/frpySef1M8//6xRo0YpKipKKSkpeu2119SuXTsNGjTIIVnqmq13794aP368XnvtNWVlZWngwIFasWKF4uLiKvU5btw4PfTQQ7ryyit17733Kj8/X3PnzlWXLl3sFhfs2LGj/v3vf+vhhx9WQkKCrrji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2r59u2JjY62Od15a4ry0a9dODz30kJKTkxUQEKBVq1Zp6tSpioyMVG5urtXxzqklzsl39uzZo3vvvVdDhgyxOsoFa6nzEhoa6vI+DMOwMA0AAIDvYoWRD4iOjm58hIWFyTAMl23BwcGN+27atEmZmZlyOp3Kzs52+UuzJK1cuVIZGRlyOBxKTExUQUGB6urqGn9vGIaKi4uVl5cnp9OplJQUbdiwQTt37lROTo6CgoKUnZ2tXbt2XdC4p+rXr58ef/xxXXvttT57a+WWOC//8z//ozvuuEO9e/dWcnKyfve736mhoUHr1q1z06fW/FrivOTk5GjcuHFKSUlR165dNWPGDKWnp+u9995z06fWvFrinEhSfX29Jk2apIKCAiUmJrrhk/Ksljovp76PqKgoN3xaAAAArZAJn/L888+bYWFhp23/3//9X1OSOWDAALO0tNTcvn27OWTIEDM7O7txn3feeccMDQ01S0pKzF27dplr1qwxExISzLlz5zbuI8mMjY01V6xYYZaVlZn5+flmQkKC+aMf/ch84403zB07dpgDBw40R44ceUHjnk18fLxZVFR00Z+JN2iJ82KapllZWWk6HA7z1VdfvbgPxmItcV4aGhrMtWvXmk6n01yzZs3FfzgWaUlzMmfOHDM/P980TdO86aabzB//+MeX9uFYqKXMy/PPP2/6+fmZcXFxZqdOncyrrrrK3LZtm3s+JAAAgFaGwsjHnOsv9WvXrm3c9tprr5mSzBMnTpimaZpDhw41H374YZfXLV261IyJiWl8LsmcPXt24/MNGzaYksxnn322cdsf/vAH0+FwND4/n3HPpjUURr44L6ZpmrfffruZmJjYmNXXtKR5qaioMIOCgky73W4GBga6HMOXtJQ5effdd83Y2Fjz0KFDpmm2/MLIV+Zl/fr15u9//3vzn//8p1laWmrm5eWZoaGh5meffXaOTwAAAACn4hpGLUx6enrjzzExMZKkgwcPKi4uTlu2bNH777+vhQsXNu5TX1+v6upqHT9+XE6n87QxvlvKn5aW5rKturpalZWVCg0NPe9xWzNfnJdHHnlEy5cvV2lpaYu9aKwvzUtISIg2b96sqqoqrVu3TjNnzlRiYqJycnIu/YPwIr4wJ0ePHtWNN96oJUuWqH379m58997LF+ZFkrKyspSVldX4PDs7WykpKSouLtb8+fMv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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['going well'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"\n",
"# Topic modeling using LDA\n",
"def topic_modeling(sentences, num_topics):\n",
" vectorizer = CountVectorizer()\n",
" X = vectorizer.fit_transform(sentences)\n",
" lda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\n",
" lda.fit(X)\n",
" return lda, vectorizer\n",
"\n",
"# Assign sentences to themes based on dominant topics\n",
"def assign_sentences_to_themes(lda, vectorizer, sentences):\n",
" theme_sentences = {i: [] for i in range(lda.n_components)}\n",
" for sent in sentences:\n",
" X_sent = vectorizer.transform([sent])\n",
" topic_idx = lda.transform(X_sent).argmax()\n",
" theme_sentences[topic_idx].append(sent)\n",
" return theme_sentences\n",
"\n",
"# Visualize themes using a bar chart and pie chart\n",
"def visualize_themes(theme_freq):\n",
" plt.figure(figsize=(12, 6))\n",
"\n",
" plt.subplot(1, 2, 1)\n",
" plt.bar(theme_freq.keys(), theme_freq.values())\n",
" plt.xlabel(\"Themes\")\n",
" plt.ylabel(\"Frequency\")\n",
" plt.title(\"Themes Frequency (Bar Chart)\")\n",
"\n",
" plt.subplot(1, 2, 2)\n",
" plt.pie(theme_freq.values(), labels=theme_freq.keys(), autopct=\"%1.1f%%\")\n",
" plt.title(\"Themes Distribution (Pie Chart)\")\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"# Extract the most relevant words for each topic\n",
"def extract_topic_keywords(lda, vectorizer, num_words=5):\n",
" feature_names = vectorizer.get_feature_names_out()\n",
" topic_keywords = []\n",
" for topic_idx, topic in enumerate(lda.components_):\n",
" top_words_idx = topic.argsort()[-num_words:][::-1]\n",
" top_words = [feature_names[i] for i in top_words_idx]\n",
" topic_keywords.append(top_words)\n",
" return topic_keywords\n",
"\n",
"\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"/content/going well.csv\"\n",
" num_topics = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" lda, vectorizer = topic_modeling(preprocessed_sentences, num_topics)\n",
" theme_sentences = assign_sentences_to_themes(lda, vectorizer, sentences)\n",
" theme_freq = {f\"Theme {i + 1}\": len(theme_sentences[i]) for i in range(num_topics)}\n",
"\n",
" # Extract most relevant words for each topic\n",
" topic_keywords = extract_topic_keywords(lda, vectorizer)\n",
"\n",
" # Print themes and their most relevant words\n",
" for theme, freq, keywords in zip(theme_freq.keys(), theme_freq.values(), topic_keywords):\n",
" print(f\"{theme}: {freq} sentences\")\n",
" print(\"Keywords:\", \", \".join(keywords))\n",
" print()\n",
"\n",
" visualize_themes(theme_freq)\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 937
},
"id": "2K_9qqov75yA",
"outputId": "2e6952e7-beb4-43e4-a43a-9b3546c53d85"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Theme 1: 14 sentences\n",
"Keywords: culture, taking, fun, experiment, learning\n",
"\n",
"Theme 2: 19 sentences\n",
"Keywords: work, new, good, life, balance\n",
"\n",
"Theme 3: 16 sentences\n",
"Keywords: explore, interest, values, clients, encouragement\n",
"\n",
"Theme 4: 13 sentences\n",
"Keywords: people, right, new, leaders, learning\n",
"\n",
"Theme 5: 12 sentences\n",
"Keywords: new, l3, l4, technology, team\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 2 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJAAAAJOCAYAAADoNP1MAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC3e0lEQVR4nOzdd3gUVdsG8HvTe09IQkJCQgtdikjvNSCCvAioFMWGBcWG4kcREAEpKlIsFEFFQQQEQYogVXroBBJSCOm9b7bM90fMypKebHK23L/r2ovs7MyZezcJmX32zDMySZIkEBERERERERERlcNMdAAiIiIiIiIiItJvLCAREREREREREVGFWEAiIiIiIiIiIqIKsYBEREREREREREQVYgGJiIiIiIiIiIgqxAISERERERERERFViAUkIiIiIiIiIiKqEAtIRERERERERERUIRaQiIiIiIiIiIioQiwgEdWDo0ePQiaTYfv27aKjkBHLzc2Fl5cXfvjhB9FRamXu3LmQyWRITU0VmmPt2rVo1KgR5HK50BxERPqGxzVVJ5PJMHfu3DrfT8n35OjRo5plffr0QevWret83wAQHR0NmUyGjRs31sv+yjJs2DC88MIL1d6u5LhDFJlMhtdee03Y/gFAoVDA398fq1evFpqD9B8LSEQ1JJPJqnR78A+5qQkMDCz3dSksLBQdz+h8/vnncHR0xLhx4zTLSg6KSm5mZmbw8fHB8OHD8c8//9RrPpVKhQ0bNqBPnz5wc3ODtbU1AgMDMWXKFJw/f75eszzok08+wc6dO0stnzx5MoqKirBu3br6D0VEVM94XFO5B49rzMzM4OLigjZt2uDFF1/EmTNndLafH3/8EStXrtTZeLqkr9lOnjyJAwcO4P3339csKymqldwsLS0RFBSEiRMn4u7du3WeKTIyEi+99BKCgoJgY2MDJycndO/eHZ9//jkKCgrqfP9lOXXqFObOnYvMzEyt5ZaWlpgxYwYWLlzIY3SqkIXoAESGavPmzVr3v//+exw8eLDU8pCQENy8ebM+o+mV9u3b4+233y613MrKSkAa46VQKPD555/jrbfegrm5eanH16xZAwcHB6jVaty7dw/ffPMNevXqhbNnz6J9+/Z1nq+goACjR4/G/v370atXL3z44Ydwc3NDdHQ0fvnlF2zatAmxsbHw8/Or8ywP++STTzBm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EVGFWEAiIiIiIiIiIqIKsYBEREREREREREQVYgGJiIiIiIiIiIgqxAISERERERERERFViAUkIiIiIiIiIiKqEAtIRERERERERERUIRaQiIiIiIiIiIioQiwgERERERERERFRhVhAIiIiIiIiIiKiClmIDkCkDwJn7hUdwaBFfxoqOgIRERERERHVIc5AIiIiIiIiIiKiCrGAREREREREREREFWIBiYiIiIiIiIiIKsQCEhERERERERERVYgFJCIiIiIiIiIiqhALSEREREREREREVCEWkIiIiIiIiIiIqEIsIBERERERERERUYVYQCIiIiIiIiIiogqxgERERERERERERBViAYmIiIiIiIiIiCrEAhIREREREREREVWIBSQiIiIiIiIiIqoQC0hERERERERERFQhFpCIiIiIiIiIiKhCLCAREREREREREVGFWEAiIiIiIiIiIqIKsYBEREREREREREQVYgGJiIiIiMiIHD16FDKZDJmZmaKjEBGREWEBiYiIiIjIQMhksgpvc+fOFR2x2r755hv07NkTrq6ucHV1xYABA3D27FnRsYiI6CEsIBERERERGYiEhATNbeXKlXByctJa9s4774iOWG1Hjx7F+PHjceTIEZw+fRr+/v4YNGgQ7t+/LzoaERE9gAUkIiIiIiID4e3trbk5OztDJpNpLXNwcNCse+HCBXTq1Al2dnbo1q0bwsPDtcbatWsXOnToABsbGwQFBWHevHlQKpWax2UyGdatW4fhw4fDzs4OISEhOH36NCIiItCnTx/Y29ujW7duiIyMrNa4D/vhhx8wbdo0tG/fHi1atMC3334LtVqNw4cP6+hVIyIiXWABiYiIiIjICM2aNQvLli3D+fPnYWFhgeeee07z2PHjxzFx4kRMnz4dN27cwLp167Bx40YsXLhQa4z58+dj4sSJCAsLQ4sWLTBhwgS89NJL+OCDD3D+/HlIkoTXXnut2uNWJD8/HwqFAm5ubrV/EYiISGdYQCIiIiIiMkILFy5E79690bJlS8ycOROnTp1CYWEhAGDevHmYOXMmJk2ahKCgIAwcOBDz58/HunXrtMaYMmUKxo4di2bNmuH9999HdHQ0nn76aQwePBghISGYPn06jh49qlm/quNW5P3334evry8GDBigk9eBiIh0w0J0ACIiIiIi0r22bdtqvvbx8QEAJCcno1GjRrh8+TJOnjypNTNIpVKhsLAQ+fn5sLOzKzVGgwYNAABt2rTRWlZYWIjs7Gw4OTlVedzyfPrpp9i6dSuOHj0KGxubWjx7IiLSNRaQiIiIiIiMkKWlpeZrmUwGAFCr1QCA3NxczJs3D6NHjy613YOFm7LG0MW4Zfnss8/w6aef4tChQ1qFK9KRonxAWQgo5cX/qoqKb2oloFYDkgpQqwBIgLkVYGENmFsX/2th/e8ym+KbGU9kITJFLCAREREREZmYDh06IDw8HE2aNNGLcZcsWYKFCxfizz//RKdOnXSaySipVUBOApAZC+QmAfnpQEE6UJD579cZ/97P+O+mLr+RebWZWQAWtoCtK2DnBth7AHbugJ3HQ/fdAXtPwNkPsLTV3f6JSAgWkIiIiIiITMzs2bMxfPhwNGrUCGPGjIGZmRkuX76Ma9euYcGCBfU67uLFizF79mz8+OOPCAwMRGJiIgDAwcFB66pyJkWlBLLuFReIsu4BmQ9+HQNkx+u2IFRdaiVQlFN8y4qt2jb2XoBr4L+3gOJ/Xf7916khZzURGQAWkIiIiIiITMzgwYOxZ88efPzxx1i8eDEsLS3RokULTJ06td7HXbNmDYqKijBmzBit5XPmzMHcuXNrlccgZN4Dkm8CydeBpBvFX6feBlRy0cl0Ky+5+BZ3tvRj5laAsz/g2QLwbg00aA00aAW4BQH/niZJROLJJEmSRIfQN9nZ2XB2dkZWVhacnJxEx6F6EDhzr+gIBi3601DREYiI9AKPIYioXMoiIOEykBAGJF3/t2h0E5BniU6mv6wcAK+WxcWkBwtL1o6ikxGZJM5AIiIiIiIi0rXcZODemX9vZ4H4MOObVVTXinKLZyxpzVqSAV4hQKPHgEZdi/91aSQsIpEpYQGJiIiIiIioNtRqIPkGcO+f4mLRvTNARrToVEZKKn6tk28A59cXL3Ly+7eg9G9RyasleyoR1QEWkIiIiIiIiKorNxmIOAREHAbuHgHy00QnMl3ZccC17cU3ALBxBvwfA4L7Ac0GFfdSIqJaE1qWPXbsGEaMGAFfX1/IZDLs3LlT63GZTFbmbenSpeWOOXfu3FLrt2jRoo6fCRERERERGTWVAog6DhyaC6ztAXzWDNj5SnHRgsUj/VKYBdz5E9j/PvDFI8AXHYB9M4uLfUqeRkhUU0JnIOXl5aFdu3Z47rnnMHr06FKPJyQkaN3ft28fnn/+eTz55JMVjtuqVSscOnRIc9/CghOtiIiIiIiomnKSgPC9wJ1DQNSx4svWk+FJjwTOrCm+WdoDjXsBTQcATQcDLv6i0xEZDKGVlaFDh2Lo0KHlPu7t7a11f9euXejbty+CgiqegmhhYVFqWyIiIiIiokrlJgM3dgHXdwKxpwBJLToR6ZIiD7i9r/iGtwGvVkDrUUDrJ3mqG1ElDGZqTlJSEvbu3YtNmzZVuu6dO3fg6+sLGxsbdO3aFYsWLUKjRuV35pfL5ZDL/5vKmJ2drZPMRERERERkAHJTgJv/Fo1iTrJoZEqSrwN/XQf+WgD4PgK0HgO0Hg04+YpORqR3DKaAtGnTJjg6OpZ5qtuDunTpgo0bN6J58+ZISEjAvHnz0LNnT1y7dg2Ojo5lbrNo0SLMmzevLmITEREREZE+yksDbuwsvkWfBCSV6EQkWvyl4tuBj4qv5tZ6NNBqFGDvIToZkV6QSZIkiQ4BFDfM/u233/DEE0+U+XiLFi0wcOBAfPnll9UaNzMzEwEBAVi+fDmef/75MtcpawaSv78/srKy4OTkVK39kWEKnLlXdASDFv1pqOgIRER6ITs7G87OzjyGINJXajVw9y/gwiYgfB+gVohORPpOZl7cM6n9BCDkccDSRnQiImEMYgbS8ePHER4ejp9//rna27q4uKBZs2aIiIgodx1ra2tYW1vXJiIREREREemrrPvApS3Ft6xY0WnIkEgq4O6R4pvNu0DbsUCHSYB3a9HJiOqdmegAVfHdd9+hY8eOaNeuXbW3zc3NRWRkJHx8fOogGRERERER6SWVErj5O/DD/4CVrYGjn7B4RLVTmAmc/RpY2x1Jv7yFX87dQ6GCpz6S6RA6Ayk3N1drZlBUVBTCwsLg5uamaXqdnZ2Nbdu2YdmyZWWO0b9/f4waNQqvvfYaAOCdd97BiBEjEBAQgPj4eMyZMwfm5uYYP3583T8hIiIiIiISKzMWOL8eCPsRyE0SnYaM1La0QHx28Qo+2XcTYzr44ZnHAhDoYS86FlGdElpAOn/+PPr27au5P2PGDADApEmTsHHjRgDA1q1bIUlSuQWgyMhIpKamau7HxcVh/PjxSEtLg6enJ3r06IF//vkHnp6edfdEiIiIiIhIrHtngdNfFc86YkNsqkMqBx98fi8YAJCZr8C3J6Lw3cko9GzqiYmPBaBfCy+YmckEpyTSPb1poq1P2ADT9LCJdu2wiTYRUTEeQxDVM7UKuLm7uHAUd050GjIRZ/xfwFN3+pb7uJ+rLV7qFYSxnf1hbWFej8mI6pZBNNEmIiIiIiLSUBQUN8Q+/RWQESU6DZkQSWaORUmdK1wnLqMA/7frOr46EomXegdh/KONYGPJQhIZPhaQiIiIiIjIMBRkAGe/Ac6sA/JTK1+fSMdSfXoh7K5DldZNzC7EvN9vYPXRSLzUKwhPdwmArRULSWS4WEAiIiIiIiL9VpgN/LMaOL0akGeJTkMm7Edl/2pvk5Ijx4K9N7HmaCSm9gzCxK4BsLfmW3EyPPypJSIiIiIi/VSUVzzb6NQXxbOPiARSOjbEqrjGNd4+La8Ii/ffwtfHIvF8j8aY1C0QjjaWOkxIVLdYQCIiIiIiIv2iKATOfwecWAHkpYhOQwQAOOsSCkVK7a+ulpGvwGcHbuOb41GY0j0QU7o3hrMtC0mk/1hAIiIiIiIi/aBSABc3AceWATnxotMQaUgycyxKrLh5dnVlFSiw8tAdfHciCpO6BuKFnkFwtmMhifSXmegARERERERk4iQJuLwV+LIDsPdtFo9I76T49MHVHPs6GTunUIlVRyLQ57Mj2PxPDNRqqU72Q1RbLCAREREREZE4cReA7wYCv70EZMaKTkNUph+Ufet8Hxn5CvzfzmsY/uUJnI1Kr/P9EVUXC0hERERERFT/cpKA314Bvu0PxJ0TnYaoXEpHP6y6F1hv+7uRkI2x607jjZ8uITGrsN72S1QZ9kAiIiIiIqL6oywC/vmquM9RUY7oNESV+sclFKqU+p97sftyPA7fTMK0vk3wQs8gWFlw/geJxZ9AIiIiIiKqH7f+AFZ3AQ7NZfGIDIJkZoGFCbptnl0deUUqLP0zHINW/I3DN5OE5SACWEAiIiIiIqK6lhYJbB4FbB0PpN8VnYaoypK9++Bmrp3oGIhOy8fzm85jyoaziErNEx2HTBQLSEREREREVDfUKuDESmBNdyDyL9FpiKpts6Kf6AhajoSnYPCKY1i07yby5ErRccjEsIBERERERES6l3gN+KYfcGgOoCwQnYao2pRO/lgT10h0jFKKVGqs+/su+n52FPuvJYiOQyaEBSQiIiIiItIdpRw4PB/4ug+QECY6DVGNnXIeDpWkv2+Zk3PkeHnLRcz4JQw5hQrRccgE6O9vAxERERERGZZ7Z4G1PYHjnwFqvqElwyWZWeCThI6iY1TJjov3MWTlcZyKTBUdhYwcC0hERERERFQ7RXnAvveB9YOB1HDRaYhqLcmnH27pQfPsqrqfWYCnvz2D+XtuoFChEh2HjBQLSEREREREVHNx54E13YAzawFJLToNkU5sKuorOkK1SRLw3YkoPL7qBK7dzxIdh4wQC0hERERERFR9ajVwfFnxrKOMaNFpiHRG4RyItXrYPLuqbiflYtTqk1j11x2o1JLoOGREWEAiIiIiIqLqyU4ANo8EDn8MqHkpcTIuJ52GQZJkomPUikIl4bMDt/G/tacQk5YnOg4ZCRaQiIiIiIio6m79UXzKWtQx0UmIdE4ys8Qn8YbRPLsqLsZmYujnx/HDmRjRUcgIsIBERERERESVUxQCe98Bto4HCtJFpyGqEwk+/XE7z1Z0DJ3KL1Jh1m/XMGXDWSTnFIqOQwaMBSQiIiIiIqpY8k3gm37AuW9EJyGqUxvlfURHqDNHwlMQ+sUJXIhhAZhqhgUkIiIiIiIq35VtwNd9geTropMQ1SmFc2N8c99fdIw6lZIjx/ivz+Cns7Gio5ABYgGJiIiIiIhKU6uAP2cBO6YCygLRaYjq3HGnUINvnl0VRSo1PthxFbN+uwqFSi06DhkQFpCIiIiIiEhbfjqwZTRwepXoJET1QjK3wsL7j4iOUa9+OBOLp785g9RcuegoZCBYQCIiIiIiov8kXgO+7gPcPSo6CVG9ue8zAJH5xtU8uyrORqdjxJcncDUuS3QUMgAsIBERERERUbFrvwLfDQQyeclvMi3rC3qLjiBMQlYhxqw9hd8uxYmOQnqOBSQiIiIiIlOnVgMHZwPbnwMU+aLTENWrIpcgrDfy5tmVkSvVeOvny1iw5wZUakl0HNJTLCAREREREZkyeQ7w4/+Ak5+LTkIkxDHHUNER9Ma3J6Iwaf1ZZOYXiY5CeogFJCIiIiIiU5WTCGwYCkQcEp2ESAjJ3BoL4kyreXZlTkSk4vFVJ3ErMVt0FNIzFqIDEBE9LHDmXtERDF70p/wkjYiIKpFyG9jyJJAVKzoJkTBxPgMQHWEjOobeiU3Px+jVp/DV0x3Qt7mX6DikJzgDiYiIiIjI1MSeAdYPYvGITN63+X1ER9Bb+UUqvPj9eey5Ei86CukJFpCIiIiIiEzJzT3A9yOBggzRSYiEKnJtik3xDUXH0GsKlYQ3frqErWdZbCYWkIiIiIiITMfZb4BfngWUBaKTEAl3xH6o6AgGQS0BM3dcxTfH7oqOQoKxgEREREREZAoOzQP+eAeQ1KKTEAknWdhg4f32omMYlIV/3MRnf4aLjkECsYBERERERGTM1Gpg9+vAieWikxDpjXveAxFbwObZ1bXqSATm7LoGSZJERyEBWEAiIiIiIjJWajWw+zXg4veikxDplW/ye4mOYLA2nY7B279chkrNIpKpYQGJiIiIiMgYqVXAzpeBsB9EJyHSK3LXZtjM5tm1suPSfbyy5QLkSpXoKFSPWEAiIiIiIjI2ahWw40Xgys+ikxDpnb/sh4mOYBQO3EjCcxvPIb9IKToK1RMWkIiIiIiIjIlKCWx/Dri2XXQSIr0jWdhiQVw70TGMxsmINDz97Rlk5StER6F6wAISEREREZGxUCmA7ZOBGztFJyHSSzHeg3C/0Fp0DKNyKTYTT319Gul5RaKjUB1jAYmIiIiIyBgoi4BfJgI3fxedhEhvrcvrKTqCUbqVmIMpG84iT87T2YwZC0hERERERIZOpQS2TQLC/xCdhEhvyd2a46cEX9ExjNbluCy8tPkCipRq0VGojrCARERERERkyNTq4qutsXhEVKFDdmyeXddORKTizZ8vQa2WREehOsACEhERERGRIfvjHeDqNtEpiPSaZGnH5tn15I+rifho1zXRMagOsIBERERERGSoDn8MnP9OdAoivRftPQgJhVaiY5iMH8/E4rM/w0XHIB1jAYmIiIiIyBCd/go4vkx0CiKDsDqnl+gIJmfVkQisPxElOgbpEAtIRERERESG5so24M9ZolMQGYRC95bYlugtOoZJmr/3Bn67FCc6BukIC0hERERERIYk8i9g5ysA2KSWqCoO2A4VHcFkSRLw7rYrOHIrWXQU0gEWkIiIiIiIDEV8GPDzRECtEJ2EyCBIlvb45F4b0TFMmlIt4ZUfLuB8dLroKFRLLCARERERERmC7ATgp3FAUY7oJEQGI8p7MBLlbJ4tWqFCjec2nsOtxGzRUagWhBaQjh07hhEjRsDX1xcymQw7d+7Uenzy5MmQyWRatyFDhlQ67ldffYXAwEDY2NigS5cuOHv2bB09AyIiIiKieqAoALaOB3ISRCchMihfZfcUHYH+lV2oxMTvzuJ+ZoHoKOU6evQoZDIZMjMzRUfRS0ILSHl5eWjXrh2++uqrctcZMmQIEhISNLeffvqpwjF//vlnzJgxA3PmzMHFixfRrl07DB48GMnJPOeSiIiIiAzUzmlA/CXRKYgMSoF7a/ya1EB0DHpAco4cL2++gEKFqt73/fDklIdvc+fOrfdMtXX9+nU8+eSTCAwMhEwmw8qVK+t0f0ILSEOHDsWCBQswatSoctextraGt7e35ubq6lrhmMuXL8cLL7yAKVOmoGXLlli7di3s7Oywfv16XccnIiIiIqp7fy8Bru8QnYLI4PxpW/nZK1T/rt7Pwkc7r9X7fh+cmLJy5Uo4OTlpLXvnnXfqPVNt5efnIygoCJ9++im8vev+SoN63wPp6NGj8PLyQvPmzfHKK68gLS2t3HWLiopw4cIFDBgwQLPMzMwMAwYMwOnTp8vdTi6XIzs7W+tGRERERCTcjV3AkU9EpyAyOJIVm2frs+0X4rD5n5h63eeDE1OcnZ0hk8m0ljk4OGjWvXDhAjp16gQ7Ozt069YN4eHhWmPt2rULHTp0gI2NDYKCgjBv3jwolUrN4zKZDOvWrcPw4cNhZ2eHkJAQnD59GhEREejTpw/s7e3RrVs3REZGVmvch3Xu3BlLly7FuHHjYG1traNXqnx6XUAaMmQIvv/+exw+fBiLFy/G33//jaFDh0KlKnu6W2pqKlQqFRo00J6m2KBBAyQmJpa7n0WLFsHZ2Vlz8/f31+nzICIiIiKqtoQrwG8vA5BEJyEyOBENhiJZbik6BlVg/u83cCEmQ3SMMs2aNQvLli3D+fPnYWFhgeeee07z2PHjxzFx4kRMnz4dN27cwLp167Bx40YsXLhQa4z58+dj4sSJCAsLQ4sWLTBhwgS89NJL+OCDD3D+/HlIkoTXXnut2uOKpNcFpHHjxuHxxx9HmzZt8MQTT2DPnj04d+4cjh49qtP9fPDBB8jKytLc7t27p9PxiYiIiIiqJScJ+Gk8oMgXnYTIIK3K7iE6AlWiSKXGtB8uIDmnUHSUUhYuXIjevXujZcuWmDlzJk6dOoXCwuKc8+bNw8yZMzFp0iQEBQVh4MCBmD9/PtatW6c1xpQpUzB27Fg0a9YM77//PqKjo/H0009j8ODBCAkJwfTp07VqG1UdVyQL0QGqIygoCB4eHoiIiED//v1LPe7h4QFzc3MkJSVpLU9KSqrwfEBra+t6me5FRERERFQpZRHw89NAdpzoJEQGKd+jDXbFeYmOQVWQlC3Hqz9cxI8vPAZLc/2Z39K2bVvN1z4+PgCA5ORkNGrUCJcvX8bJkye1ZgapVCoUFhYiPz8fdnZ2pcYoOUuqTZs2WssKCwuRnZ0NJyenKo8rkkEVkOLi4pCWlqb5Bj7MysoKHTt2xOHDh/HEE08AANRqNQ4fPqw1NYyIiIiISG8d+AiIOyc6BZHB2m/N5tmG5Fx0BhbsuYF5I1uLjqJhafnf6Y8ymQxAcW0BAHJzczFv3jyMHj261HY2NjYVjqGLcUUSWkDKzc1FRESE5n5UVBTCwsLg5uYGNzc3zJs3D08++SS8vb0RGRmJ9957D02aNMHgwYM12/Tv3x+jRo3SFIhmzJiBSZMmoVOnTnj00UexcuVK5OXlYcqUKfX+/IiIiIiIquXGbuCs/pyuQGRoJCsHLLqnP4UIqppNp2PQzt8Fozv4iY5SqQ4dOiA8PBxNmjQxiHF1SWgB6fz58+jbt6/m/owZMwAAkyZNwpo1a3DlyhVs2rQJmZmZ8PX1xaBBgzB//nyt080iIyORmpqquf/UU08hJSUFs2fPRmJiItq3b4/9+/eXaqxNRERERKRXMqKB3Zw1T1QbdxoMRcodNs82RB/+dhXNGjiidUNn0VEqNHv2bAwfPhyNGjXCmDFjYGZmhsuXL+PatWtYsGBBvY5bVFSEGzduaL6+f/8+wsLC4ODgUCeFKKEFpD59+kCSyr+qxJ9//lnpGNHR0aWWvfbaazxljYiIiIgMh0oBbH8OKMwSnYTIoH2R2VN0BKqhQoUaL2+5gD2v94CLnZXoOOUaPHgw9uzZg48//hiLFy+GpaUlWrRogalTp9b7uPHx8XjkkUc09z/77DN89tln6N27t84vPgYAMqmiCo6Jys7OhrOzM7KysuDk5CQ6DtWDwJl7RUcwaNGfhup0PH4/ak/X3xMiqhoeQ1CN7f8A+Ge16BREBi3Psz1a3XtPdAyqpZ5NPbBpyqMwM5OJjkIP0Z8250REREREpujWXhaPiHRgr9XgylcivXf8TipWHr4jOgaVgQUkIiIiIiJRMmOBndNEpyAyeJK1IxbFthIdg3TkqyMRuBibIToGPYQFJCIiIiIiEVTKf/seZYpOQmTwbnsNQ4ZCaItf0iGVWsKMn8OQX6QUHYUewN8wIiIiIiIRjn8GxJ0TncIkLToux45bCtxKVcPWQoZu/uZYPMAazT3MNev02ZiHv2NUWtu91NESa4fbljuubF52mcuXDLDGu92tIVdKmPp7IXbdUsDbwQyrQ20wIOi/t2RLT8oRm6XGl8PK3weVbWVmd9ERSMei0/KxYO9NfDKqjego9C8WkIiIiIiI6lvCFeDYZ6JTmKy/Y5R4tbMVOvuaQ6kGPvxLjkFb8nFjmgPsrf5r3PtCB0t83Ndac9/OsuKmvglvO2jd33dHied3F+LJlsWXlf/6ggIX4lU4/bw99kUoMeHXAiS94wCZTIaoDDW+uajA+RftdfhMTUOu5yPYd89DdAyqAz+eicXAkAbo28JLdBQCT2EjIiIiIqpfKgWw8xVArRCdxGTtf8Yek9tboZWXOdp5m2PjSBvEZkm4kKA948jOUgZvBzPNzcm64gLSg+t6O5hhV7gSfRubI8i1+G3XzVQVHm9ugVZe5ni1sxVS8iWk5hdfFPuVvQVYPMC60n1QaXssh4iOQHXovV+vID2vSHQMAgtIRERERET16+/FQNI10SnoAVny4n/dbLWLNz9cVcBjSQ5ar87FB4cKka+QqjxmUq4ae+8o8fwjVppl7RqY40SsCgUKCX9GKuHjIIOHnQw/XFHAxkKGUSGWOnk+pkSydsaieyGiY1AdSsmRY9ZvV0XHIPAUNiIiIiKi+nP/InBihegU9AC1JOHN/YXo7m+O1l7/9UCa0MYSAc5m8HWU4UqSGu8fKkR4mho7nrKr0ribLivgaAWMDvnvLddzj1jiSpIKLVfnwsNOhl/+Z4uMQmD20UIcnWSPj/4qxNZrCgS7mWH947Zo6MTP+ytz02sYsu7wba2x23ctEXuuxGN4W1/RUUwaf9OIiIiIiOqDUg7snAaoeVUhffLq3kJcS1bhxHPavYde7PjfzKE2Dczh4yhD/+/zEZmuRrBb5YWd9ZcUeLqNJWws/pvVZGkuw1eh2g2yp+wqwBuPWuFSogo7bylx+WUHLDkpxxv7C/Hr2KoVq0zZigw2zzYVc3ZdR7dgD7jZW1W+MtUJlrSJiIiIiOrDkU+AlJuiU9ADXvujAHvuKHFkkj38Kpnt06Vh8eykiHR1peMej1EiPE2NqR0qfqN7JEqJ68kqvPaoFY5GqzCsqQXsrWQY28oSR6NVFW5LQK5XRxxMdRMdg+pJWl4R5uy+LjqGSWMBiYiIiIiorsWdB059KToF/UuSJLz2RwF+u6XEXxPt0Ni18rdFYYnFBR0fx8qbXH93SYGOPmZo521e7jqFSgmv/lGIdcNtYW4mg0oNKP6tGSnUgEpd9X5Lpmq3xSDREaie/X45Hn9eTxQdw2SxgEREREREVJdUCmDXq4DEGSX64tU/CrHligI/jraFo7UMiblqJOaqUfBvk+zIdDXm/y3HhXgVojPV2B2uwMSdBegVYI62Df4rCrVYlYvfbmpfTS9bLmHbDUWls4/m/y3HsKYWeMSneLzujcyx45YCV5JUWHW2CN0bsdtIRdQ2LlgUy+bZpuijndeQlc+rWIrA/5WIiIiIiOrSP6uBlFuiU9AD1pwvfvPZZ1O+1vINI20wub0VrMyBQ1FKrDxThLwiCf7OZngyxBIf9bLWWj88TY0sufZMoa3XFJAkYHzr8q+odi1ZhV9uKBH20n99l8a0tMDRaAv03JCH5u5m+PFJ9j+qyE3PYcjJ5NtZU5SSI8e8PdexfGx70VFMjkySJM6NfEh2djacnZ2RlZUFJycn0XGoHgTO3Cs6gkGL/jRUp+Px+1F7uv6eEFHV8BiCSsmOB1Z1BopyRSchMirP2X+Fv9JcRccggba93BWdA9kDqz7xFDYiIiIiorry54csHhHpWLZXZxaPCB//fgOcD1O/WEAiIiIiIqoLd48C138TnYLI6OwyZ/NsAq7ez8L2C3GiY5gUFpCIiIiIiHRNpQD+eFd0CiKjo7Z1w6f3WoiOQXpi6Z/hyJMrRccwGSwgERERERHp2ulVQOpt0SmIjM51j6HIU5pXviKZhOQcOVYfjRAdw2Swbb0gbBJcO2wQTERERHor6z7w91LRKYiM0rK0bqIjkJ759ngUxnVuBH83XrmwrnEGEhERERGRLh2YBSjyRKcgMjrZDbrgaDqbZ5M2uVKNT/fdEh3DJLCARERERESkK7H/sHE2UR3ZYcbm2VS2vVcTcDYqXXQMo8cCEhERERGRrhyaKzoBkVFS27pjaWxz0TFIj3285zrUakl0DKPGAhIRERERkS6E7wdiT4tOQWSUrnoOQ56Kb1+pfNfuZ2P7xTjRMYwafwOJiIiIiGpLrQYOzxOdgsgoSZBhaSqbZ1Pllv4Zjjy5UnQMo8UCEhERERFRbV35GUi+IToFkVHKbtAFJ9KdRccgA5CSI8dXRyJExzBaLCAREREREdWGUg4c+UR0CiKj9avZQNERyIB8eyIK99LzRccwSiwgERERERHVxrnvgKxY0SmIjJLa1gPL2DybqqFIqcaqvzgLqS6wgEREREREVFPyHOD4Z6JTEBmty56hbJ5N1bbjUhziMwtExzA6/E0kIiIiIqqpU18C+WmiUxAZJQkyLEl5THQMMkAKlYSvj90VHcPosIBERERERFQThVnAP2tEpyAyWpne3XA6g82zqWZ+PncPably0TGMCgtIREREREQ1cfYbQJ4tOgWR0dqOAaIjkAErUKiw/mSU6BhGhQUkIiIiIqLqUhQAZ9aKTkFktNR2nlh+r4noGGTgvj8dg+xChegYRoMFJCIiIiKi6rq0BchLEZ2CyGhdcg9FgcpcdAwycDmFSmw+HSM6htFgAYmIiIiIqDpUSuDUF6JTEBktNs8mXVp/IgqFCpXoGEaBBSQiIiIiouq49iuQGSs6BZHRyvDujjOZTqJjkJFIyyvCT2f5f7YusIBERERERFRVkgScWCE6BZFR+0Vi82zSrW+O3YVCpRYdw+CxgEREREREVFXh+4CUm6JTEBktlX0DrGDzbNKx+KxC/HbxvugYBo8FJCIiIiKiqjqxXHQCIqN20S0UcjXfppLurf07Emq1JDqGQeNvJhERERFRVdw7C8SdE52CyGhJMjMsSu4iOgYZqbupedh7NUF0DIPGAhIRERERUVWc+050AiKjlu7dExezHEXHICO27lik6AgGjQUkIiIiIqLK5KcD138TnYLIqG1V9xMdgYzctfvZuHY/S3QMg8UCEhERERFRZS5tBlRy0SmIjJbK3htf3AsWHYNMwNZzsaIjGCwWkIiIiIiIKiJJwPkNolMQGbXzbsPZPJvqxa6weBQqVKJjGCQL0QGIiEj/Bc7cKzqCQYv+NFR0BCKqjcjDQEaU6BRERkuSmWFx8qOiY5CJyClU4o+rCRjdwU90FIPDEi8RERERUUXOrRedgMiopfn0wsUsB9ExyIRsPXdPdASDxAISEREREVF5suKA2/tFpyAyaj+p+ouOQCbmbFQ6olLzRMcwODyFjYiIiIioPBc2AhJ7ZRDVFZWDL764FyQ6hk4U3ruG7DO/oigpEqrcdHiOmgW7Zl01j6uLCpD590bk3/4H6sIcWDg3gGPHEXB8ZFi5Y0oqJbL+2Ya8a4ehzEmDpVtDuPaZAtugjpp1cq8fQebfmyAVFcC+zQC49X9B85gyKwlJP/8ffCathJm1Xd08cQP187l7mDm0hegYBoUzkIiIiIiIyqJWARc3i05BZNTOuoZCoZaJjqETUlEhLL2C4Dbw5TIfz/jrWxTcvQiPEW/Dd+oaOHYaifSDa5F/50y5Y2Ye34zcsH1wG/BS8TaPDEPKbwtRlBQJAFDlZyF9/5dw7fscvJ6aj7wbR5EfcVazfdqB1XDtPZnFozL8ejEOSpVadAyDwgISEREREVFZIv8CchNFpyAyWpLMHIuSOouOoTO2wZ3g2utZ2DXrVubj8vs3Yd+6H2watS2efdR+CKy8GkOecLvcMfOuH4Fz17GwDe4MSxdvOD4yDLZBnZB99jcAgDIzETJrO9iH9IK1TzPYNGoLRVpxf5+8G39DZmYBu+Zl5zF1KTly/HUrWXQMg8ICEhERERFRWS5vFZ2AyKil+vTGlWzTaZ5t3TAEBRFnocxJhSRJKIy5AkVGPGwbP1LuNpJSAZhbaS2TWVihMO4GAMDCrSEkhbz4tLmCHBQl3IaVZyBUhbnIPL6l3NlQVOxnNtOuFvZAIiIiIiJ6mDwHuLVXdAoio/aDsp/oCPXKbcDLSPvzS9xfPRkwMwdkMrgPeR02/q3L3camcQfknNsJG/9WsHD1QWH0ZeTfPg3p395s5jYO8Ah9C6l7lkNSFsG+dT/YBnVE6h+fw7HDcCizkpD863xArYRz9wmwb9Gjnp6tYTh6OwVJ2YVo4GQjOopBEDoD6dixYxgxYgR8fX0hk8mwc+dOzWMKhQLvv/8+2rRpA3t7e/j6+mLixImIj4+vcMy5c+dCJpNp3Vq0YGMsIiIiIqqGG7sBZYHoFERGS+nYEF/eCxQdo15lX/gd8vhweD5Z3NTate/zSD+4FgXRYeVu4zbgRVi4+SL+21cQu/QJpB9aC/s2AyCT/fdW3q5ZN/g+/xUavvQNXHo8jcLYq1CkRMOh/WCk7l4Ct/4vwPOJD5G27wuo8jLr/okaEJVawvYLcaJjGAyhBaS8vDy0a9cOX331VanH8vPzcfHiRfzf//0fLl68iB07diA8PByPP/54peO2atUKCQkJmtuJEyfqIj4RERERGakN2TdwqnEXqGTmoqMQGaUzLsOhkkyno4paIUfmse/h2m8q7Jp0gZVXYzh1HAH7Fj2RfXZHuduZ2znDa/RHaDRjOxq+sh6+U9fCzMoGFs7eZa4vKRVIP7AGboNfhTIjAZJaBZtGbWDp7gdLt4aQJ4TX1VM0WL+cvwdJkkTHMAhCT2EbOnQohg4dWuZjzs7OOHjwoNayVatW4dFHH0VsbCwaNWpU7rgWFhbw9i77F4qIiIiIqCJpBWn4PGYvVFDBo3kbDLHzw7CkGLS5f1V0NCKjIJlZ4JPETqJj1C+1ClArIcNDV5yTmQFVKF7ILKxg4egBSaVEfvgp2JVzKlrWqa2wCeoAa+8mxVdqU6s0j0lqJaDmVcceFpOWj3PRGXi0sZvoKHrPoHogZWVlQSaTwcXFpcL17ty5A19fX9jY2KBr165YtGhRhQUnIiIiIqISh2IOQfVvf5FUeTq2yNOxxQoIaP0Yhlq4I/T+LQSmRApOSWS4kr374Ppde9ExdE5dVABlRoLmvjIrCUVJd2Fm6wALJy9Y+7dGxtH1kFlawdzJC/J715B3/S+49puq2SZ1zzKYO7rDtfdkAIA8PhyqnDRYNgiCKicVWSd/BCQ1nLs8WWr/RamxyLt1HD6TvwAAWLj5ATIz5Fw+AHMHVyjS4mDl07RuXwQDdeB6IgtIVWAwBaTCwkK8//77GD9+PJycnMpdr0uXLti4cSOaN2+OhIQEzJs3Dz179sS1a9fg6OhY5jZyuRxyuVxzPzs7W+f5iYiIiMgw/BnzZ5nLY/LisRbxWOsAtPTphWGSHYbGXoZXVkKZ6xNR2bYo+oqOUCeKEu8g6acPNfcz/voWAGDfuj88Qt+C5+PvI+PvTUj9/TOoC3Nh7uQFl57PwqH9f2flKLNTimcl/UtSFiHz+GYoMhNhZmUL26COcA99G2Y22levkyQJ6ftXwbXfVJhZFTeENrO0hvuwN5F+cA0klQJuA1+GhaNHXb4EBuvQzSR8NLyl6Bh6zyAKSAqFAmPHjoUkSVizZk2F6z54Slzbtm3RpUsXBAQE4JdffsHzzz9f5jaLFi3CvHnzdJqZiIiIiAxPakEqLiRdqHS9GznRuAFgubs1OjcegNAiYMDdc3AszKr7kEQGTOnoh9VxAaJj1AmbRm0R8P6ech83d3CFR+ibFY7hPeHTh8ZsA9+pFb8HBgCZTAbvZ5aUWm7X5FHYNXm00u1NXXRaPiKSc9DEq+xJJ1RM77uWlRSPYmJicPDgwQpnH5XFxcUFzZo1Q0RERLnrfPDBB8jKytLc7t27V9vYRERERGSADkQfgFqqeo8QtaTGmazbmF1wG30aeuKtDkNxsFlPFJlb12FKIsN12sSaZ5PhOHAjSXQEvafXv7klxaM7d+7g0KFDcHd3r/YYubm5iIyMhI+PT7nrWFtbw8nJSetGRERERKbnz+iyT1+riiJ1EQ5lXMcMRQz6BAfj/zqE4p/Gj0It0+tDbqJ6I5lZ4JMEE2ueTQbjEAtIlRL61yw3NxdhYWEICwsDAERFRSEsLAyxsbFQKBQYM2YMzp8/jx9++AEqlQqJiYlITExEUVGRZoz+/ftj1apVmvvvvPMO/v77b0RHR+PUqVMYNWoUzM3NMX78+Pp+ekRERERkQJLzk3Ep+ZJOxspR5GJnxlW8gEQMaNEWix8JxfWGbXQyNpGhSvLpi5u5dqJjEJUp7F4mUnLkla9owoT2QDp//jz69v2vgdqMGTMAAJMmTcLcuXOxe/duAED79u21tjty5Aj69OkDAIiMjERqaqrmsbi4OIwfPx5paWnw9PREjx498M8//8DT07NunwwRERERGbRDMYcgofLLaVdXSmE6thQWX8ktsPVjGGbhjtC4G2iUGqXzfRHps01Fxtk8m4yDWgL+upWEpzrzCu7lEVpA6tOnDySp/D/SFT1WIjo6Wuv+1q1baxuLiIiIiEzQ6fjTdb6P6Lx4rEY8VjsCrRv2xjC1LYZGX4JHDk+dIOOmcArAWiNtnk3G4+ANFpAqYhBXYSMiIiIiqksqtapKV1/TpWvZUbgGYJmnHTo3GYBhcgkD756DQ2F2veYgqg8nnUMhJctExyCq0ImIVBQqVLCxNBcdRS+xox8RERERmbzradeRo8gRsm+VpMI/mbcxu+AO+vg1wIwOQ3C4Ka/kRsZDMrPEJ/EdRccgqlShQo3jd1IrX9FEsYBERERERCbvbOJZ0REAAHKVHAczbuBNZfGV3OZ0CMWZwE68khsZtESffridZys6BlGVHLyRKDqC3uIpbERERERk8v5J+Ed0hFJyFLnYkXEVO2SAV4v2GGLjg9CkaLSMvy46GlG1bJSzeTYZjr9uJUOtlmBmxlMuH8aPMoiIiIjIpBWpinA5+bLoGBVKLkzF95lX8ZR1Dh5v3RVr2g3DPfdA0bGIKqVwDsTX9/1FxyCqstTcIly6lyE6hl5iAYmIiIiITFpYchgKVYWiY1RZVN59rM6+hmFOakxo1wc/tBmCVAcv0bGIynTcKRSSxJkcZFgO3UwWHUEv8RQ2IiIiAxM4c6/oCAYt+tNQ0RFIz5xJPCM6Qo1dzb6LqwCWetmjS9OBGFaoxoC7Z2EvF9MQnOhBkrkVFt7vIDoGUbWdjUoXHUEvsYBERERERCbtTILhFpBKqCQVTmWG4xSABf7e6OXUA6E5ueh59wwsVUWi45GJivfuj8hINs8mw3P1fhaKlGpYWfCkrQexgEREREREJitPkYfrqcbVlLpQJceBjOs4AMCpSVMMtA9EaHoyOkWfhwyS6HhkQjYU9hEdgahGipRqXL2fhY4BrqKj6BWW04iIiIjIZF1IugClpBQdo85kF+Xg14yreE6WhIEtH8GyR4bjpk9L0bHIBCicg/BdvJ/oGEQ1djGGjbQfxgISEREREZksYzh9raqSClKxMfMKxtrkYmSbbljXbhjuuQeIjkVG6hibZ5OBu8ACUik8hY2IiIiITJYpFZAedDc3DqsQh1VOQFu/PhimtsaQqItwz00RHY2MgGRujYX3HxEdg6hWLsaygPQwFpCIiIiIyCRlFGbgdsZt0TGEu5J9F1cAfObliC5NH0FooRL9756FnTxXdDQyUPd9BuBuhI3oGES1kpwjx730fPi72YmOojdYQCIiIiIik3Q28SwkNpXWUEpKnMy8hZMAbPx90MepCYZlZ6PH3bOwVCtExyMD8m1+b9ERiHTiQkwGC0gPYA8kIiIiIjJJZxPOio6gtwpVcuzPuI43VPfQt2lzzOsQivMBHSGBPW2oYkUuTbCRzbPJSLAPkjbOQCIiIiIik3Q55bLoCAYhqygb24uuYrsZ4N2yA4ZaeyM0IQrNE2+IjkZ66KjDMNERiHSGBSRtLCARERERkclRqpWIyooSHcPgJBakYENBCjbYAk3adMcwM2cMu3cNDdNjRUcjPSCZW2PB/faiYxDpTHhSDvLkSthbs3QC8BQ2IiIiIjJBsdmxKFIXiY5h0CJy7+GL7GsY4gw8064vfmo9GOn2HqJjkUBxPgMRW8Dm2WQ8VGoJYfcyRcfQGyyjEREREZHJuZN5R3QEo3I5OxKXASxp4ITHnDtgWIEC/aPO8UpuJuab/D6iIxDp3IWYDHRvwuI4wAISEREREZmgyMxI0RGMklJS4kTmLZwAYOvviz5OTRCanYVuvJKb0ZO7NsP38b6iYxDpHPsg/YcFJCIiIiIyORGZEaIjGL0CVSH2ZVzDPgAuTVtgkH0jDEtNQIfYS5BBEh2PdOyI/VDREYjqxNX7WaIj6A0WkIiIiIjI5NzJ4Cls9SmzKAu/FF3FL+aAT8mV3OIj0SzpluhopAOShQ0WxLUXHYOoTqTnFSEzvwgudlaiowjHJtpEREREZFKKVEW4l3NPdAyTlVCQgvWZV/GkXT5GtemOb9sNRbxrI9GxqBZivQchrtBadAyiOnM3NU90BL3AAhIRERERmZSorCioJJXoGITiK7l9nn0dQ1xkmNiuL7a2HoQMe3fRsaia1uX1Fh2BqE7dTWEBCajhKWx3795FUFCQrrMQEREREdU5XoFN/0iQcCk7EpcALPZ2RlenjggtUKDv3bOwK+IbN30md2uOH+N9RMcgqlNRqbyiJFDDGUhNmjRB3759sWXLFhQWFuo6ExERERFRneEV2PSbUq3E8cxbmCmPRJ8AP7zfYRiOBXeD0oztW/XRYbthoiMQ1TnOQCpWowLSxYsX0bZtW8yYMQPe3t546aWXcPbsWV1nIyIiIiLSuYgMXoHNUBQoC/BHxjW8qo5Dv6YhWPBIKC75PwIJMtHRCIBkYYuFcW1FxyCqc1HsgQSghgWk9u3b4/PPP0d8fDzWr1+PhIQE9OjRA61bt8by5cuRkpKi65xERERERDrBU9gMU0ZRFn7OvIqJFmkY2qoTPn8kFBENmouOZdKivQfjPptnkwmISs2DJEmiYwhXqybaFhYWGD16NLZt24bFixcjIiIC77zzDvz9/TFx4kQkJCToKicRERERUa3lK/IRnxsvOgbV0v38JHybeRWj7Aowuk13fNd2KBJc/UXHMjlr83qJjkBUL+RKNe5nFoiOIVytCkjnz5/HtGnT4OPjg+XLl+Odd95BZGQkDh48iPj4eIwcOVJXOYmIiIiIau1u1l1I4KfIxuRO7j2szLmOwS5mmNS+H35pNRCZdm6iYxm9QrcQ/JzgLToGUb1hH6QaXoVt+fLl2LBhA8LDwzFs2DB8//33GDZsGMzMiutRjRs3xsaNGxEYGKjLrEREREREtXIng6evGSsJEi5mReAigEU+Luju1BnDCuToe/csbIvyRcczOgfZPJtMTFRqHno18xQdQ6gaFZDWrFmD5557DpMnT4aPT9mXbPTy8sJ3331Xq3BERERERLrEK7CZBqVaib8zb+JvAHYBjdDXMQihWRnoGnUOFmql6HgGT7K0x8J7bUTHIKpXd1NyRUcQrkYFpDt3Kv/kxsrKCpMmTarJ8EREREREdeJ+7n3REaie5SvzsTfjGvYCcGvWEoPsGiE0JQ7t74WJjmawohoMQmKElegYRPXqLq/EVrMC0oYNG+Dg4ID//e9/Wsu3bduG/Px8Fo6IiIiISC+lF6aLjkACpcszsVWeia0WQMNWnTHM0guh8XcQnHxbdDSDsjqXzbPJ9LAHUg2baC9atAgeHh6llnt5eeGTTz6pdSgiIiIiorrAAhKVuJ+fhG+yruIJ+0KMadsD69sORaKLn+hYeq/AvRW2JzYQHYOo3iVkFaBQoRIdQ6gazUCKjY1F48aNSy0PCAhAbGxsrUMREREREdUFFpCoLOE5sQgHsNLVHB0C+yNUYYZBd8/BuSBTdDS9c8BmqOgIREKoJSApuxAB7vaiowhToxlIXl5euHLlSqnlly9fhru7e61DERERERHpmkKtQE5RjugYpMckSLiQdQcf54ejr687Xn9kCPY3741CS1vR0fSCZGWPhXFsnk2mKyNfITqCUDWagTR+/Hi88cYbcHR0RK9exee//v3335g+fTrGjRun04BERERERLqQUZgBCZLoGGQgFGoFjmbewFEA9oEB6OcYhGGZ6egadQ7mkmmexhLZYAiS71iKjkEkTEZ+kegIQtWogDR//nxER0ejf//+sLAoHkKtVmPixInsgUREREREeimjMEN0BDJQecp8/J5xDb8DcGveGoNt/RCaGod29y6LjlavVmX3FB2BSKhMFpCqz8rKCj///DPmz5+Py5cvw9bWFm3atEFAQICu8xERERER6URaYZroCGQE0uUZ+EmegZ8sAL9Wj2KYpSdC48MRlBwhOlqdKnBvjZ33vUTHIBIqI4+nsNVYs2bN0KxZM11lISIiIiKqM2ygTboWl5+Ir5GIr+2BkLY9MQz2GBpzBQ2y4kVH07l9bJ5NxBlINdlIpVJh48aNOHz4MJKTk6FWq7Ue/+uvv3QSjoiIiIhIV9ILWECiunMzJwY3Aaxwt0LHxv0xTCHDwLvnjeJKbpKVAxbday06BpFw6SwgVd/06dOxceNGhIaGonXr1pDJZLrORURERESkUxly9kCiuqeW1DiXdQfnAHzi644eTo8hNL8AfSLPwFpZKDpejUQ0GIoUNs8m4lXYarLR1q1b8csvv2DYsGG6zkNEREREVCd4ChvVN4VagSOZN3AEgENQY/RzCEJoRiq6RJ83qCu5fZHVQ3QEIr3AU9hqwMrKCk2aNNF1FiIiIiKiOsNT2EikXEUedmdcxW4AHs3bYLBtQwxLuYe2cVdER6tQvkc7/B7nKToGkV4w9SbaZjXZ6O2338bnn38OSZJ0nYeIiIiIqE6ky1lAIv2QKk/HD5lX8bRlJkJbdcGq9qGI8gwWHatMf1gNER2BSG9wBlINnDhxAkeOHMG+ffvQqlUrWFpqnw+7Y8cOnYQjIiIiItIVzkAifRSbn4B1SMA6ByDEpxdCYY+hMWHwykoQHQ2StSMWxbUUHYNIb7AHUg24uLhg1KhRus5CRERERFRn2AOJ9N3NnGjcBLDc3RqdGw/AsCIJA++eh2NhlpA8t72GIo3Ns4k0ChQqFCpUsLE0Fx1FiBoVkDZs2KDrHEREREREdUaukiNfmS86BlGVqCU1zmTdxhkACxt6oqdTVwzLy0fvu2fr9Upun2eyeTbRwzLyi+DjbCs6hhA1KiABgFKpxNGjRxEZGYkJEybA0dER8fHxcHJygoODgy4zEhERERHVSoGiQHQEohopUhfhcOYNHAbgGBSEfg6Bmiu5mUnqOttvnmd7/HHPo87GJzJUGXkKFpCqIyYmBkOGDEFsbCzkcjkGDhwIR0dHLF68GHK5HGvXrtV1TiIiIiIiIpOWo8jFroxr2AXAs0VbDLbxQ2hyDFrfv6rzfe2xZPNsorIUKJSiIwhTo6uwTZ8+HZ06dUJGRgZsbf+rvI0aNQqHDx/WWTgiIiIiIiIqLaUwHVsyr2C8VRaGt34Mq9uHIsYjSCdjS9ZO+PQem2cTlUVVdxP/9F6NCkjHjx/HRx99BCsrK63lgYGBuH//fpXHOXbsGEaMGAFfX1/IZDLs3LlT63FJkjB79mz4+PjA1tYWAwYMwJ07dyod96uvvkJgYCBsbGzQpUsXnD17tsqZiIiIiIiIDElMXjzWZF3FcEclxrXrje/bDEGKk3eNx7vlNQwZihp3OyEyaiq1JDqCMDUqIKnVaqhUqlLL4+Li4OjoWOVx8vLy0K5dO3z11VdlPr5kyRJ88cUXWLt2Lc6cOQN7e3sMHjwYhYXlN477+eefMWPGDMyZMwcXL15Eu3btMHjwYCQnJ1c5FxERERERkSG6nh2Fpbk3MMDDBlPbD8BvLQcg18apWmOsyGDzbKLyqCUWkKpl0KBBWLlypea+TCZDbm4u5syZg2HDhlV5nKFDh2LBggUYNWpUqcckScLKlSvx0UcfYeTIkWjbti2+//57xMfHl5qp9KDly5fjhRdewJQpU9CyZUusXbsWdnZ2WL9+fXWeIhERERERkcEquZLb7ILb6OPXADM6DMWhpj1RZG5d4Xa5Xh1xINWtnlISGR7OQKqmZcuW4eTJk2jZsiUKCwsxYcIEzelrixcv1kmwqKgoJCYmYsCAAZplzs7O6NKlC06fPl3mNkVFRbhw4YLWNmZmZhgwYEC52xARERERERkzuUqOgxnX8ZYyBn2CgzG7Qyj+adwZalnpt4O7LQYJSEhkOEy5gFSjE1v9/Pxw+fJlbN26FVeuXEFubi6ef/55PP3001pNtWsjMTERANCgQQOt5Q0aNNA89rDU1FSoVKoyt7l161a5+5LL5ZDL5Zr72dnZNY1NRERERESkt3IUufgt4yp+A+DVoh0G2/giNCkGreKvQbJ2xuJ7IaIjEuk1FpBqsqGFBZ555hldZhFm0aJFmDdvnugYRERERERE9Sa5MA2bC9Ow2RoIbN0VL+X2waRsX9GxiPSaR81O5DIKNSogff/99xU+PnHixBqFeZC3d/FVA5KSkuDj46NZnpSUhPbt25e5jYeHB8zNzZGUlKS1PCkpSTNeWT744APMmDFDcz87Oxv+/v61SE9ERERERGQ4zLMKEPzNbmT374aMNKXoOER6y7mPTHQEYWpUQJo+fbrWfYVCgfz8fFhZWcHOzk4nBaTGjRvD29sbhw8f1hSMsrOzcebMGbzyyitlbmNlZYWOHTvi8OHDeOKJJwAUXzHu8OHDeO2118rdl7W1NaytK24mR0REREREZKw+OtMQyLyEFrG/4bTDCMB0z9IhqpDMdOtHNZt7lZGRoXXLzc1FeHg4evTogZ9++qnK4+Tm5iIsLAxhYWEAihtnh4WFITY2FjKZDG+++SYWLFiA3bt34+rVq5g4cSJ8fX01xSEA6N+/P1atWqW5P2PGDHzzzTfYtGkTbt68iVdeeQV5eXmYMmVKTZ4qERERERGRURuX1QL2xy4BAGzP7Uewj7ySLYhMl8zMdCtINe6B9LCmTZvi008/xTPPPFNhw+oHnT9/Hn379tXcLzmNbNKkSdi4cSPee+895OXl4cUXX0RmZiZ69OiB/fv3w8bGRrNNZGQkUlNTNfefeuoppKSkYPbs2UhMTET79u2xf//+Uo21iYiIiIiITJ2DZIUnf0/XmnDk9+dS3O8yB4X5KmG5iPSVmQlPQdJZAQkobqwdHx9f5fX79OkDSSp/bqRMJsPHH3+Mjz/+uNx1oqOjSy177bXXKjxljYiIiIiIiIDZd1pDundWa5l5WgJCZFdxCS0FpSLSXzLT7aFdswLS7t27te5LkoSEhASsWrUK3bt310kwIiIiIiIiqjud5L5o/HtYme2OXP5YjQZPrUFSImchET2Ip7BV04M9iIDimUKenp7o168fli1bpotcREREREREVIdmHHWAVFRU5mMySULTyxuQ4jsJahU7ahOVsLA0Fx1BmBoVkNRqta5zEBERERERUT15NbkNLC5eqnAdq5tn0KztCNxKcq2nVET6z9pOp52ADIoJn71HRERERKbCxsKm8pWITISX2h59dsZUaV3vPUvg4Gy6b5iJHmbKBaQaPfOSq6VVxfLly2uyCyIiIiIinbGxsIGthS0KlAWioxAJN/dKU0hp56u0rlleNlpm/Y2zYK9bIgCwYgGpei5duoRLly5BoVCgefPmAIDbt2/D3NwcHTp00KwnM+HL2xERERGRfnGzccP93PuiYxAJNSgvCB5/XqzWNg5Hf4T/hG64F8/3d2TaLKzNYW5uuidy1aiANGLECDg6OmLTpk1wdS0+HzYjIwNTpkxBz5498fbbb+s0JBERERFRbbGARKbOQjLD838qgRr0tG18/EskhLwJZRH74ZLpsrY13dlHQA17IC1btgyLFi3SFI8AwNXVFQsWLOBV2IiIiIhIL7nZuImOQCTUzHvtIAu/W6NtLe6FI8QhVseJiAyLKfc/AmpYQMrOzkZKSkqp5SkpKcjJyal1KCIiIiIiXWMBiUxZU4U72u26Uasx3Hcvg6uHpY4SERkeFpBqYNSoUZgyZQp27NiBuLg4xMXF4ddff8Xzzz+P0aNH6zojEREREVGtsYBEpuzDsz6QcvNqNYaZsggton8F2AqJTBRPYauBtWvXYujQoZgwYQICAgIQEBCACRMmYMiQIVi9erWuMxIRERER1ZqrjWvlKxEZofFZIbA/FqaTsWzP/4lgn0KdjEVkaEz5CmxADQtIdnZ2WL16NdLS0jRXZEtPT8fq1athb2+v64xERERERLXGGUhkihwkK4zenabTMf33L4WNvWm/kSbTZG1n2qdw1ur6cwkJCUhISEDTpk1hb28PSZJ0lYuIiIiISKfcbdxFRyCqd3PutIYUF6/TMc3SE9FSuqzTMYkMAU9hq4G0tDT0798fzZo1w7Bhw5CQkAAAeP755/H222/rNCARERERkS7wFDYyNZ3lvgjYfalOxnbetwYNvM3rZGwifcUm2jXw1ltvwdLSErGxsbCzs9Msf+qpp7B//36dhSMiIiIi0hWewkam5q0j9oBCUSdjyyQJTcO+g5k5O2qT6bB3sRYdQagaFZAOHDiAxYsXw8/PT2t506ZNERMTo5NgRERERES6xAISmZLXktvC4tLNOt2H1a1zaOaRXqf7INInTh62oiMIVaMCUl5entbMoxLp6emwtjbtihwRERER6SdLc0s4WjqKjkFU57zU9ui9M7pe9uW9ZwkcnE27sTCZDicPG9ERhKpRAalnz574/vvvNfdlMhnUajWWLFmCvn376iwcEREREZEuudlyFhIZv7mXm0JKq5+ZQWZ52WiZdaRe9kUkkqW1OWwdrETHEKpGHaCWLFmC/v374/z58ygqKsJ7772H69evIz09HSdPntR1RiIiIiIinXCzcUNMNlsukPEanB8EjwMX63WfDkd/gv+E7rgXz35IZLxMffYRUMMZSK1bt8bt27fRo0cPjBw5Enl5eRg9ejQuXbqE4OBgXWckIiIiItIJ9kEiY2YhmeH5fQpAra73fTc+/iUsrWv09pLIIDi6m3b/I6AGM5AUCgWGDBmCtWvXYtasWXWRiYiIiIioTvg6+IqOQFRnPrjXHrh9Vsi+Le6FI6RzDK7I/YXsn6iuOblzBlK1S8SWlpa4cuVKXWQhIiIiIqpTTVyaiI5AVCeaKtzRdud1oRncdi+Hm0eNuqQQ6T1TvwIbUMNT2J555hl89913us5CRERERFSngl3YboGM04dnfCDl5QnNYKYsQvPoHQBbIZERcuQMpJo10VYqlVi/fj0OHTqEjh07wt7eXuvx5cuX6yQcEREREZEuNXFpAhlkkCCJjkKkMxOyQmB/PEx0DACA7fk/ETx+ECIT+GabjAtnIFWzgHT37l0EBgbi2rVr6NChAwDg9u3bWuvIZCw3ExEREZF+sre0h4+9D+Lz4kVHIdIJB8kKo3al6lVJ1P/PpbjfdR4K85SioxDpDK/CVs0CUtOmTZGQkIAjR44AAJ566il88cUXaNCgQZ2EIyIiIiLStWCXYBaQyGjMud0a0n0xjbPLY5aeiJZSGC6itegoRDphY28JKxv296pWDyRJ0q5r79u3D3mCz7MlIiIiIqqOJq5spE3GobPcFwG/XxIdo0wuf6xBA+8atdwl0jucfVSsVr/RDxeUiIiIiIj0XVOXpqIjEOnEW0fsAYVCdIxyNb20HmbmbHFChs/Dz0F0BL1QrQKSTCYr1eOIPY+IiIiIyJDwSmxkDF5PbgeLSzdFx6iQVfg5NPdIEx2DqNY8GzmKjqAXqnUSnyRJmDx5MqytrQEAhYWFePnll0tdhW3Hjh26S0hEREREpEPBLsEwk5lBLalFRxEiZU8Ksi9kQ54gh8xSBrsmdvAe6w1rH2vNOulH05F5OhOFMYVQF6oR8lUIzO3NKx1bkaFA4i+JyL2SC3WRGlYNrOD3vB9sGxdfvSh1XypS/kgBAHgO84THUA/NtvmR+Yj/Ph7Bs4Mh46yVCnmp7dHrt7t61Ti7PA12L0bc4OXIydTfmVJElfHwZwEJqGYBadKkSVr3n3nmGZ2GISIiIiKqa9bm1vB39EdMdozoKELk3cqDWz832AbZQlJJSNqehOjPotH0k6Ywsy4+QUEtV8OxjSMc2zgiaXtSlcZV5alwd8Fd2IfYI+DtAFg4WkCeJIeZffGYhfcKkfRbEgLeDAAAxKyIgUNrB9j420BSSYjfFA/fyb4sHlXBvMtNIaWfFx2jSswKctEy4y+ckfUUHYWoRmRmMp7C9q9qFZA2bNhQVzmIiIiIiOpNE5cmJltACnwnUOu+31Q/3HrjFgqiC2DfvPjMAo/BxTODcm/mVnnclL0psHS3hN9UP80yK08rzdfyBDls/Gzg0LL4jZiNv03xMn8bpO5LhX1ze9gF2dX0aZmMIXnBcD9wUXSMarH/eyv8J3THvXg21SbD4+ptBwurymdgmgL+BhMRERGRyWEfpP+oClQAUKVT1CqSE5YD20BbxK6Kxc3XbyJidgTSj6ZrHrf2s0ZRUhGK0opQlFoEeaIc1n7WkCfLkXE8A16jvWq1f1NgIZnhuX1FgNrwTr9sfOwLWFrz7ScZHg9/zj4qUa0ZSERERERExoBXYismqSUk/pgIu6Z2sPGr3WWqi5KLkP5XOtyHuMNzhCcKogqQ8EMCZBYyuPZwhY2vDRo82QDRS6MBAN5jvGHja4OoJVHwHuuN3Gu5SN6ZDJm5DD5P+2hmQ9F/PoxtB9w5JzpGjVjE3UFI52hckTcSHYWoWjzZ/0iDBSQiIiIiMjlNXJqIjqAXEjYnoDCuEEGzgmo/mATYNLaB9xhvAIBtgC0K4wqRfiQdrj1cAQBu/dzg1s9Ns0nGiQyY2ZjBrokdbs+8jeA5wVBkKHBvzT00W9oMZpacsVKiqdIdbXbdMIjG2eVx+30F3J74EumpStFRiKqMBaT/8H9kIiIiIjI5Ac4BsDAz7c9S4zfHI/tyNhrPbAxLN8taj2fhYgEbX+1ZTNa+1lCklX31LWWOEsm7kuH7jC/y7+bD2tsa1t7WcAhxgKSSUJRYVOtMxmTWaW9IeXmiY9SKmbIILe5uB9gnnQyFDPBoxAJSCRaQiIiIiMjkWJpZItApUHQMISRJKi4eXchG4/caazW6rg27pnaQJ8q1lhUlFsHSo+ziVMKPCfAY5FFcvFIDkuq/uTWSSoKkNuS5Nrr1dGYI7E5cFh1DJ2wuHkQTnwLRMYiqxMndBta2pv1hw4NYQCIiIiIik9TOs53oCEIkbE5A5qlM+L/sDzMbMygyFVBkKqAu+q8xsyJTgYKYAhQlF88CKowrREFMAZS5/516FLU4CmmH0jT33Qe5Iz8yH8m/J0OeJEfm6UykH02Hez/3Uhlyr+WiKKkIbv2LT2ezbWwLeYIcOVdykH40HTIzGax9rOvqJTAojmprPLE7VXQMnWq4fyls7PmmnPSfJ2cfaeFvLRERERGZpEe9H8Wvd34VHaPepf9VfGW0qE+jtJY3fL4hXHsW9ypKP5KOlF0pmseiFkWVWqcouQjKnP8KSnZBdmj0eiMkbU9Cyq4UWHlawWeCD1y6uWjtR12kRvyWePi/4g+ZWfG5TJZulvB5xgf3v70PmaUMflP9YGbFz7oBYM6dVpDunxUdQ6fM05PQSn0JF9BGdBSiCrGApI0FJCIiIiIySY/6PCo6ghCtN7audJ0GoxqgwagGFa7TfFnzUsuc2jvBqb1ThduZWZmh2afNSi136+0Gt95uZWxhuh6VN0Sj3y+JjlEnnPethfe4tUhMVImOQlSuBoEV/39maljWJyIiIiKT5GHrwauxkV578y87QFF2E3Jj0OTitzAzZ0dt0k/mlmbwDnYWHUOvsIBERERERCari08X0RGIyvRGUjtYhN0UHaNOWd0+j+YeaZWvSCSAd5AzLCzNRcfQKywgEREREZHJetTbNE9jI/3mrXJAz513RceoFw12L4ajS9lX6iMSya+Fq+gIeocFJCIiIiIyWZ29O8Ncxk+YSb/MuRwMKT1DdIx6YVaQi5D0Q6JjEJXCAlJpLCARERERkclytHJEiFuI6BhEGkPzguF+4KLoGPXK4dgvaOSrFh2DSMPKxhxeAWyg/TAWkIiIiIjIpLEPEukLC8kMU/bJAUkSHaXeBf79OSyt+faU9INvM1eYmbHB+8P4G0pEREREJu1RH/ZBIv0wK7Y9cCdadAwhLO5HIMQuSnQMIgCAX3OevlYWFpCIiIiIyKR18OoAKzMr0THIxDVXeKD1zmuiYwjlvns53DwtRMcgYv+jcvC3k4iIiIhMmo2FDdp6tsX5pPOio5AJ++B0A0j5iaJjCCVTKdEichtOO48yqrP4IuKv4NDlnxGbegfZ+Wl4YdA8tGvcQ2udxIwY7DzzDSISrkCtVsHbNQBTB86Bm2ODMsc8eXMvzt4+gPj0aABAI89mGPHo8wj0aqFZ59DlX3Ao7GcAwMD2T6F/u7Gax6KTbuLnE5/jnVFfwdyMFxJ4kK2jJdx87UXH0EucgUREREREJo99kEikZzJbwu7kZdEx9ILNxUMI9i4QHUOn5MoCNHQPxlM93ijz8ZSseCzfNR3eLv6YPmIZPhjzDYZ0eAaWFuXPjLwTfxkdm/TD9BHL8PYTX8LF3hNf7X0PmXkpAID7aZHYe34jpgz4CFP6z8KecxtwP+0uAEClVmHr8ZUY1/NNFo/K0LC5K2Qy9j8qC2cgEREREZHJ6+LTBV+FfSU6BpkgR7U1Ru5KhhFNuKm1hn8uxf2uH6MgTyk6ik60atQFrRqVX6T+/dx3aNWoC5547CXNMk9n3wrHnNz/Q637T/d+G5ejjiP8/iV0aTYISZn30NAtCM0bPgIA8HUPKl7mHoRDl39GE582CHhgthL9h/2PyscZSERERERk8lp7tIadhZ3oGGSC5oa3ghRv2qeuPcw8PQkhqouiY9QLtaTG9dgz8HL2w6q972Pmpiex9LdXcTnqRLXGKVLKoVIrYWftCADwdWuM5Kw4pOckIT0nCcmZcfB1C0RKVjz+Cd+P4Z2fq4unYxT8Q9xER9BbLCARERERkcmzNLNEhwYdRMcgE9NF3hD+e0yjUFJdLvvXwdvb+N+u5hZkQq4owMGwrWjp3xmvhS5Gu8Ae+PbAXNyJr/ppjbvOfANne3e0aNgRAODtGoARjz6PVXvfw6q97+HxLlPh7RqArcdX4IkuL+Jm3Dks/OV5fLr9JUTEX6mrp2dwPPwd4ORhKzqG3tL738jAwEDIZLJSt1dffbXM9Tdu3FhqXRsbm3pOTURERESGpqtPV9ERyMS8edgWUBrHaVp1ocnF72Bmbty9aNSSGgDQJrAb+rUdAz+PJhj0yHi0CngMJ278XqUxDlz6CRcij+CFQfO0+ib1bDkCs8dtwuxxm9Cz5Qj8E/4nrC1t0bhBS/z49zK8MHgeRnd9GesPL4BCVVQnz8/QBD/iJTqCXtP7AtK5c+eQkJCguR08eBAA8L///a/cbZycnLS2iYmJqa+4RERERGSgBgYMFB2BTMj0pHYwv3xLdAy9ZnX7PFp4pIqOUaccbJxhZmYOH9cAreXeLo2QkZtc6faHLv+Cg2E/4dXQxWjoHlzuerkFWdh3YTP+1/11RCffgpezH7yc/dCs4SNQq5VIzoyr9XMxBk06soBUEb0vIHl6esLb21tz27NnD4KDg9G7d+9yt5HJZFrbNGhQ9qUPiYiIiIhK+Dj4oK1HW9ExyAR4qxzQ47dI0TEMgtfuJXB0sRQdo85YmFsiwLM5kjLvaS1PzoqDq2PF72MPhm3F/otbMG3YpwjwbF7hur+eXo2+bZ+Eq4MnJEkNlVqleUylVkH6dyaUKXNvaA+XBuyFVxG9LyA9qKioCFu2bMFzzz1X4WX1cnNzERAQAH9/f4wcORLXr1+vcFy5XI7s7GytGxERERGZnsGBg0VHIBMwNywYUkam6BgGwawgFyHph0THqBW5ogBxqRGIS40AAKTlJCIuNQLpOUkAgAHtnsLFyKM4eXMvUrLu4+9rO3Et5jR6tXxcM8b3f32KXWe+1dw/GPYT9p7biKd7vwN3R29k56cjOz8dckVBqf3fjDuP5Kw49Go1EgDQyLM5kjJjcT32DE7c2AMzMzN4ufjX5UtgEII7cPZRZSxEB6iOnTt3IjMzE5MnTy53nebNm2P9+vVo27YtsrKy8Nlnn6Fbt264fv06/Pz8ytxm0aJFmDdvXh2lJiIiIiJDMShwED47/xkkXlSd6siwvGC4HWTj7OpwOPYLGk3oidh4g5r/oBGTEo4vfn9bc3/H6TUAgC7NBuHZvu+jXeMeGNfzTRy49BO2n1wFLxd/TB00F8E+bTTbpOcma02iOH79dyjVCnx3UPt97NCOExHaaZLmfpFSjm0nvsRzA/4PZrLi18/VwRP/6/4athxdCgtzSzzb531YWVjXyXM3JOx/VDmZJEkG89dx8ODBsLKywu+/V62ZGAAoFAqEhIRg/PjxmD9/fpnryOVyyOVyzf3s7Gz4+/sjKysLTk5Otc5dlsCZe+tkXFMR/WmoTsfj96N2+P3QP/ye6Bd+P/SLrr8fD8rOzoazs3OdHkNQ3Zu4byIuJV8SHYOMkJVkji3bfYCIaNFRDI6yYROcbv02FHKeakW65+pjjwlzuoiOofcMpoQbExODQ4cOYerUqdXaztLSEo888ggiIiLKXcfa2hpOTk5aNyIiIiIyTTyNjerKhzFtWTyqIYv7EQixvSs6Bhmp4A6eoiMYBIMpIG3YsAFeXl4IDa3ep4YqlQpXr16Fj49PHSUjIiIiImMyMGCg5lQPIl1prvBAq10V92alirn/vgLungbVhYUMRBP2P6oSg/jLqFarsWHDBkyaNAkWFtr/YUycOBEffPCB5v7HH3+MAwcO4O7du7h48SKeeeYZxMTEVHvmEhEREZGxO3r0KGQyGTIzM0VH0Stedl54xOsR0THIyHx42gtSfr7oGAZNplKiecQvqOB6SkTV5uptB/eGDqJjGASDKCAdOnQIsbGxeO6550o9Fhsbi4SEBM39jIwMvPDCCwgJCcGwYcOQnZ2NU6dOoWXLlvUZmYiIiEgomUxW4W3u3LmiI1bbjh070KlTJ7i4uMDe3h7t27fH5s2b62RfI4JG1Mm4ZJqezWwJ25NXRMcwCjaXDiPYh4U40p2gR3j6WlUZxPy/QYMGobxe30ePHtW6v2LFCqxYsaIeUhERERHprwc/YPv5558xe/ZshIeHa5Y5ODjg/PnzIqLVmJubG2bNmoUWLVrAysoKe/bswZQpU+Dl5YXBg3Xbt2hw4GAsOrsIcpW88pWJKuCotsbju5J5XT8darhvKe53m4+CPKXoKGQEmnTk6WtVZRAzkIiIiIioery9vTU3Z2dnyGQyrWUODv9N179w4QI6deoEOzs7dOvWTavQBAC7du1Chw4dYGNjg6CgIMybNw9K5X9v3GQyGdatW4fhw4fDzs4OISEhOH36NCIiItCnTx/Y29ujW7duiIyMrNa4D+vTpw9GjRqFkJAQBAcHY/r06Wjbti1OnDiho1ftPw5WDujn30/n45LpmRfeClJ8ougYRsU8IxktVRdExyAj4NnIER5+jqJjGAwWkIiIiIhM3KxZs7Bs2TKcP38eFhYWWm0Djh8/jokTJ2L69Om4ceMG1q1bh40bN2LhwoVaY8yfPx8TJ05EWFgYWrRogQkTJuCll17CBx98gPPnz0OSJLz22mvVHrc8kiTh8OHDCA8PR69evXTzQjzk8SaP18m4ZDq6FvrBb89F0TGMkvP+r+Hjw7ezVDutevqKjmBQ+BtHREREZOIWLlyI3r17o2XLlpg5cyZOnTqFwsJCAMC8efMwc+ZMTJo0CUFBQRg4cCDmz5+PdevWaY0xZcoUjB07Fs2aNcP777+P6OhoPP300xg8eDBCQkIwffp0rdYDVR33YVlZWXBwcICVlRVCQ0Px5ZdfYuDAgTp/TQCgq09XeNqyNwbV3Bt/WQMVzKqj2gk+/w3MzNlRm2rG0sYcTTs3EB3DoBhEDyQiIiIiqjtt27bVfO3j4wMASE5ORqNGjXD58mWcPHlSa2aQSqVCYWEh8vPzYWdnV2qMBg2KD8jbtGmjtaywsBDZ2dlwcnKq8rgPc3R0RFhYGHJzc3H48GHMmDEDQUFB6NOnT+1fiIeYm5kjNCgUG69v1PnYZPzeTGwH88s8zaouWd25iOaPpOBmsofoKGSAmnVuACsblkSqg68WERERkYmztLTUfC379/rYarUaAJCbm4t58+Zh9OjRpbazsbGpcAxdjPswMzMzNGnSBADQvn173Lx5E4sWLaqTAhIAPB78OAtIVG0+Kkd03xnJxtn1oMHuJbg/dAWyMxSio5CBadWzoegIBocFJCIiIiIqV4cOHRAeHq4p2ujbuGq1GnJ53V0pralrU4S4heBm+s062wcZn7lhQZAyOPuoPpgV5iEk9QDOmPcVHYUMiFeAIzwbsXl2dbGARERERETlmj17NoYPH45GjRphzJgxMDMzw+XLl3Ht2jUsWLCgXsddtGgROnXqhODgYMjlcvzxxx/YvHkz1qxZU+McVTG+xXjMPjW7TvdBxiM0twlcD7Jxdn2yP74dARN6ISbeXHQUMhCcfVQzbKJNREREROUaPHgw9uzZgwMHDqBz58547LHHsGLFCgQEBNT7uHl5eZg2bRpatWqF7t2749dff8WWLVswderUWmWpzPCg4WymTVViJZlj0r5CQOLJa/Ut4OhKWFrz7S1VzorNs2uMM5CIiIiIjNzkyZMxefLkUsv79OkD6aE3uu3bty+1bPDgwRg8eHC54z+8fmBgYKllZe2rsnEftmDBglrNeqopS3NLjG8xHl9c+qLe902GZVZ0OyDirOgYJski/i5CHr2LK/JA0VFIzzV71BuW1pytVhMs0RIRERERVWJs87GwtbAVHYP0WAuFB1ruuio6hklz/30F3D05R4Iq1qqXr+gIBosFJCIiIiKiSjhbO2NUk1GiY5Ae++CUF6SCAtExTJpMpUTziF/w70UfiUpp0NgJHn5snl1TLCAREREREVXBsy2fhbmMpz1QaZMyWsH21BXRMQiAzaXDCPbOFx2D9BSbZ9cOC0hERERERFXg5+iH/o36i45BesZZssHwXYmiY9AD/P5YDFsHnspG2hxcrdHsUTbPrg0WkIiIiIiIqmhyq8miI5CemXMzBFJCkugY9ACzrFS0VFwQHYP0TPsBjWBuwRJIbfDVIyIiIiKqojaebdDBq4PoGKQnuhX6w2/vJdExqAzOf34NHx++3aViNg6WaNmTzbNri79RRERERETVwFlIBAAyCXj9sBWgVIqOQuVocu5rmFuwozYB7fr5w9KKPexqiwUkIiIiIqJq6OPfB4FOgaJjkGBvJraD+ZVw0TGoApYRl9DcLVl0DBLMysYcbfr6iY5hFFhAIiIiIiKqBplMhmdbPis6Bgnko3JEt12RomNQFXjtXgonV0vRMUig1r39YG3Lpuq6wAISEREREVE1jWwyEm42bqJjkCBzLwVBysgUHYOqwKwwDyGpB0THIEEsLM3Qrr+/6BhGgwUkIiIiIqJqsja3xrjm40THIAGG5zaB66GLomNQNdgf344AX5XoGCRASA9f2DlZiY5hNFhAIiIiIiKqgXEtxsHG3EZ0DKpHVpI5Jv5RAEiS6ChUTYFHVsDKhk2UTYmZuQyPDGwkOoZRYQGJiIiIiKgGXG1cMarpKNExqB7Nim4HRMaIjkE1YJ4QhRDrCNExqB416+INRzcW+XWJBSQiIiIiohp6ud3LcLB0EB2D6kFLhSda7roqOgbVgtuelXD3ZDNlUyCTAR0HB4iOYXRYQCIiIiIiqiE3Gzc83+Z50TGoHrx/0hNSQYHoGFQLMpUSze/8DJlMdBKqa006NYBLAzvRMYwOC0hERERERLXwbMtn4WvvKzoG1aHJGa1ge/qK6BikAzZhf6GJd57oGFSHzCxkeGxkkOgYRokFJCIiIiKiWrA2t8YbHd4QHYPqiLNkg9BdiaJjkA41/GMJ7Bx4KpuxatPbD04etqJjGCUWkIiIiIiIamlY42Fo7d5adAyqA3NvhkBKSBIdg3TILCsVIYrzomNQHbC2s0CnYYGiYxgtFpCIiIiIiGpJJpPh3c7vio5BOta90B8N914SHYPqgPOf38DHh2+HjU2HwQGwsbcUHcNo8TeGiIiIiEgHOjTogIEBA0XHIB2RScBrh6wApVJ0FKojTc6ug7kFO2obCwdXa7Tt5yc6hlFjAYmIiIiISEfe6vAWLM346bcxeCuxHcyvhouOQXXIMjIMzV2TRccgHXnsiWBYWJqLjmHUWEAiIiIiItIRfyd/jGsxTnQMqqWGKid03RkhOgbVgwa7F8PJlUVfQ9egsROaPdpAdAyjxwISEREREZEOvdT2JThbO4uOQbUw51JjSJlZomNQPZDJCxCS8qfoGPT/7d15eFTlwf7x+0xmMpPJzpKEJYthSwIJEIlAAEVBowiISCxIjaJSq6JYSlXUUgIiKirS2troq6av1GLrhiK1CG0qCr7+gooENAo1gErAhWxACEnO7w81JQIDgUnOzOT7ua65nJw585z7zBNa5uYsp8OQhuf2kmFwOmJro0ACAAAAvCjSGanrM663OgZO0fiaXopa857VMdCGQt96QYldudaVv+o1KFZxyW1b2hcVFckwDFVUVLTpdq1GgQQAAAB42eSUyUqMSLQ6Bloo2AzST187IJmm1VHQxpL+9YiCXVw/x9/Yg23KntjDq2MahuHxMW/ePK9ury0UFhYetR8ul6vF41AgAQAAAF7msDn0i8xfWB0DLXR3WX/pPzusjgELBO3+TKnOT62OgRbKzElUWHTLixBPdu/e3fR45JFHFBER0WzZ7Nmzvbq9tvLj/dixo+X/W0eBBAAAALSCUYmjdGbsmVbHwEnqWxej1BUfWh0DFurw6iPq2NludQycpA5dQ5WZ4/0jPePi4poekZGRMgyj2bKwsLCmdTdu3KhBgwbJ7XYrOztbpaXN79y4YsUKZWZmyuVyKTk5Wfn5+aqv/+/pkoZhqKCgQGPHjpXb7VZqaqo2bNigbdu2aeTIkQoNDVV2dra2b9/eonGP5cf7ERvb8ouOUyABAAAAreS2rNtkN/hC6g9uX99J5sFaq2PAQkZjg/p88hdxLWbfZxjSuT9NUZDd2krjrrvu0kMPPaTi4mLZ7XZdc801Ta+tW7dOeXl5mjlzprZu3aqCggIVFhZq4cKFzcZYsGCB8vLy9MEHHyglJUVXXHGFrr/+es2ZM0fFxcUyTVMzZsxo8bg/VlNTo8TERMXHx+uSSy7Rli1bWry/FEgAAABAK0nrmKZp/aZZHQMncPW3aXJt4OgjSK5NReoZt9/qGDiB9HO7t/mFs49l4cKFOuecc5SWlqY77rhD69evV23td0V0fn6+7rjjDl111VVKTk7W+eefrwULFqigoKDZGNOmTdPll1+u3r176/bbb1dZWZmmTp2qnJwcpaamaubMmSoqKmpa/2THPVKfPn301FNPacWKFVq2bJkaGxuVnZ2tzz//vEX7yz+HAAAAAK3ohgE36M3P31TpvtITr4w2F9no0sUrysVls/GDbqse0BcjFupADXdm80XhHV0acol3L5x9qjIyMpqed+nSRZK0d+9eJSQkaNOmTXr77bebHRnU0NCg2tpaHThwQG63+6gxfjitLD09vdmy2tpaVVVVKSIi4qTHPdLQoUM1dOjQpp+zs7OVmpqqgoICLViw4KT3lwIJAAAAaEUOm0MLhy/U5Ncmq76RL6S+Zt7HqTLL/5/VMeBDbJVfK63u/6lYA62OgmM4d2qKHE7fuGOew+Foem58f+5jY2OjpO9OGcvPz9fEiROPet+Rd0A71hjeGPdEuQcOHKht27ad1Po/oEACAAAAWlmfDn3084yf69EPHrU6Co4wrDZe3V573+oY8EERq/9HXab8Qbt3c2yaL0kZEqf4tA5WxzgpmZmZKi0tVc+ePX1u3IaGBm3evFljxoxp0fsokAAAAIA2cG36tfrXrn9pyzctv3ApvM8wpZvXOKQT3LkI7VfPdx/X3jN+poZ6SiRfEBIRrGG5vayOcdLmzp2rsWPHKiEhQZMmTZLNZtOmTZtUUlKie+65p03HnT9/voYMGaKePXuqoqJCixcv1o4dO3Tddde1aNtcRBsAAABoA3abXQuHL5QzyGl1FEiaVT5Ats2fWB0DPsyx/QP1id5rdQx87+yf9JYr1HHiFX1ETk6OVq5cqdWrVysrK0tDhgzRkiVLlJiY2Obj7tu3T9OnT1dqaqrGjBmjqqoqrV+/XmlpaS3atmGaJnXqj1RVVSkyMlKVlZWKiIholW0k3fFaq4zbXpTdd7FXx2M+Tg/z4XuYE9/CfPgWb8/Hkdri7xDwf4UlhXpo40NWx2jXutdHaskT9TIrKq2OAh9nOkO0ccxSVe07bHWUdu2M/p005oaME6+IVsURSAAAAEAbyuubp4ExXJzXSnPfT6I8wkkxDh1U2t6/Wx2jXQsOseucKX2sjgFRIAEAAABtymbYdM+wexRiD7E6Srs0vrqXota+Z3UM+BH32y8psSvXyrLK8NxeCo3i1F9fQIEEAAAAtLGEiATNzJxpdYx2x2kG6aer9ksBchWP4gMHdOPnu3TOtm1KK/1Ya6qrm72eVvrxMR9PfvuNx3H3HD6s2778UkM//UQDPynVJZ99ppLag02vP/XtNxq+7VMN3/apnv7RWJsOHtSkss9UHyCf8Q8S/7VEwS7fuHV8e9J7cKxSs7tYHQPf4y5sAAAAgAWuSLlC/9z5T71b/q7VUdqNu8sypP/8P6tjeM2Bxkb1cbo0MTJKt3z5xVGv/7tH89t8r9tfo1+Xl+uCsPDjjlnZ0KCpO3foLHeoCrrHq0NQkHYcPqwI23flSWltrR79+mv9oVt3mZJu/OJzDQsNVW+nS/Wmqfw95cqPjZPdMLy6r1az7y5T6lmfaFNtD6ujtBtRsW5OXfMxFEgAAACABQzD0IJhCzTxlYnaf3i/1XECXt+6GKWs2KxAOi7m7LAwnR0WdtzXO9ubf937Z02NznK7FR8cfNz3PPntN4pzOHRvl/8e9dH9iPX/U1en3k6nhoSGSpJ6O53fL3PpqW+/1aAQt9JDAvP0zA6vLlWnSX/Q13s5na21BdltuuC6vgp2UVn4Ek5hAwAAACzSNayrZg+abXWMduGOtzvKPFhrdQzLfF1frzdranRZZKTH9f5ZU6N+Lpdu/eILDd/2qSaWfaa/VVQ0vd7b6VRZXZ2+PHxYXxw+rB11deoV7NTOujq9VFmhmZ07tfKeWMdobFCf0r8owA6u8knDJvVU5/jjHykHa1AgAQAAABaa1HuSzu5+ttUxAtq0b/rK+c5mq2NYakVlpdw2m873cPqaJH1++LCWV1QoMThYj3eP1+SoaN27d49ervzurnU9nE7d2rmzrtu1S9N37dKtnTurh9OpeXvK9cvOMXpr/36N/+w/mlj2mYoPHGiLXWtTzk1F6hlXY3WMgJY8sLPSR3a3OgaOgQIJAAAAsNiiEYuUGJFodYyAFNno0pgVu62OYbkXqyo1NiJCTpvnr4CNpqk0p0u/6NxZaS6XLo+K0qTIKD1Xsa9pnclR0VqVnKxVycmaHBWtlysrFWqzaUBIiOaWl+u33brr9pgY/fLLL1XX2Njau9bmur32gNzhnFrVGsI7unTelSlWx8Bx+HSBNG/ePBmG0eyRkuL5l+lvf/ubUlJS5HK5lJ6erlWrVrVRWgAAAODURARHaOm5SxXqCLU6SsDJ/yhN5p69VsewVPGBA/qsrk6TIqNOuG5nu109nM2vkdQjOFi764993Z999fX6wzdf666YWH1Ye1BJwcFKCg7WYHeo6mWq7HCdN3bBp9iqvlHaof+zOkbAsdkMXXBtXzndDquj4Dh8ukCSpL59+2r37t1Nj7feeuu4665fv15TpkzRtddeq/fff18TJkzQhAkTVFJS0oaJAQAAgJbrEdVD9w6/V4a4wIq3DK+NV9dV71kdw3IvVlaor9OlFJfrhOtmhrj1WV3z0qfscJ262o/9pf6+r/YqLzpacQ6HGk3psPnfy5Q3mKYaAumq5UeIWP2Uunbhz6o3Db4kWXHJnq/RBWv5fIFkt9sVFxfX9OjU6fgXZVu6dKkuvPBC/epXv1JqaqoWLFigzMxMPfroo22YGAAAADg15yWcpxv632B1jIBgmNKMNxzScY6cCQT7Gxv1UW2tPqr97uLgXxw+rI9qa/Xl4cNN69Q0NOgf1dW6LOrYX8yn7dqpP+/77+lpedHR+vDgQRV887V21NVpZVWl/lZRoSnRUUe9d/3+/Sqrq9MVUdGSpH4ulz6rq9ObNTX6a0WFbIahMzzc8c3fJb/7RwU5fP4rtV9I6NtBAy9IsDoGTsDnf9s//fRTde3aVcnJyZo6dap27tx53HU3bNig0aNHN1uWk5OjDRs2eNzGoUOHVFVV1ewBAAAAWOHn/X+uUQmjrI7h935ZPkC2kk+sjtGqttQe1GU7ynTZjjJJ0v1f7dVlO8r06NdfNa2zqrpapqSLwyOOOcauujrta/hvyZYeEqLfduuuVVXVuqTsM/3xm290R0ysxkU0L6BqGxt1z549mhcbJ9v3tyWLczh0V0ys7irfrYJvvtaiuC5yneCaS/4sePuHSokqtzqG3wuNcmr01WkyuL2dz/PpK38NHjxYhYWF6tOnj3bv3q38/HyNGDFCJSUlCg8/+u4B5eXlio2NbbYsNjZW5eWe/1AvWrRI+fn5Xs0OAAAAnArDMHTv8Hs1ddVUbavYZnUcv9S9PlKDX/pEAXr2VJOz3KHa2sfzNWIvj4rS5VFRx319TY+eRy0bGRamkWFhHsd12WxalZx81PJJUVGa5GF7gSbmlQf0+cVLVfnt4ROvjKPYnUG6+MYMhYQH7pFqgcSn6+CLLrpIubm5ysjIUE5OjlatWqWKigr99a9/9ep25syZo8rKyqbHrl27vDo+AAAA0BJuh1tLz12qiOBjHzUCz37zfpLMSs4qQOszDh1Uajk3bjolhnT+tDR1Tjj64BD4Jp8ukH4sKipKvXv31rZtx/6XmLi4OO3Zs6fZsj179iguLs7juE6nUxEREc0eAAAAgJUSIhL0wNkPKMgIsjqKX7mkppci13LhbLQd9/qXldQ1cK+11VqGTuih5AGdrY6BFvCrAqmmpkbbt29Xly5djvn60KFDtXbt2mbL3njjDQ0dOrQt4gEAAABeNazbMN2SeYvVMfyG0wzST1ful8xAP3kNviZh7cMKDqHsPVkpQ+OUmZNodQy0kE8XSLNnz9a///1vlZWVaf369br00ksVFBSkKVOmSJLy8vI0Z86cpvVnzpyp119/XQ899JA+/vhjzZs3T8XFxZoxY4ZVuwAAAACclmv6XaOLzrjI6hh+4def9Zf52fFvugO0FvueHUoLLrU6hl/o2itKI6d6vnYXfJNPF0iff/65pkyZoj59+ujyyy9Xx44d9c4776hz5+8Oc9u5c6d2797dtH52draeffZZPf744+rfv7+ef/55vfzyy+rXr59VuwAAAACctvnZ85XaIdXqGD6t3+FY9XnlQ6tjoB2LfvW36hTj0/epslxE5xBddH26guw+XUXgOHz6t3v58uUeXy8qKjpqWW5urnJzc1spEQAAAND2XHaXlp67VJNfm6xva7+1Oo5Puv2tDjIPfmF1DLRjRmOD+nz8Z33T6ScyG61O43ucbrvG3pQhV5jD6ig4RdR+AAAAgB/oEtZFD57zoOw2n/43YEtc801fOd/ZbHUMQM4P31SvmBqrY/gcm81QzvR+io4LtToKTgMFEgAAAOAnsuKydN+I+7gz2xGiG0N00YrdJ14RaCNdVz0gdzhF75FGTO6t+NQOVsfAaaJAAgAAAPxITlKO5g+bL0OG1VF8wryPUmXu2Wt1DKCJreobpdW+Y3UMnzFgdLz6nd3N6hjwAgokAAAAwM+M7zFedw2+y+oYlhtRm6Auq96zOgZwlIg3nlbXLpS8fUd01bBJvayOAS+hQAIAAAD80E9SfqLZg2ZbHcMyhindtDpIqq+3OgpwTD3+748KcrTfr9x9hsTpnCv6WB0DXtR+f5sBAAAAP3dV36t044AbrY5hidm7B8i25VOrYwDH5fjPh0qJap/X5+qRGaPz8lJlGByFFUgokAAAAAA/dkP/GzSt3zSrY7SphIYonfXyJ1bHAE4oZsUDiuzQvm5bn5TeUedfmyabjfIo0FAgAQAAAH5u1pmzNCVlitUx2syvNybIrKyyOgZwQkZdrVLLV1kdo810T4nWhT9LV1AQVUMgYlYBAACAADDnrDm6tOelVsdodZdW91bkWi6cDf/hXv+ykroG/rW6uvSM1JgbM9r1dZ8CHTMLAAAABADDMDQve54uOuMiq6O0GqcZpCtWVlsdA2ixhLUPKzgkyOoYrSYmMVxjb+ovR3Dg7iMokAAAAICAYTNsunf4vTov/jyro7SKuZ/1l1m2y+oYQIvZ9+xQmqPU6hitomO3MI27ZYCCQ+xWR0Ero0ACAAAAAojdZteD5zyoYV2HWR3Fq9LrYtR7xYdWxwBOWfTK36pTTGCVLNFxbo2fOUCu0PZ1ofD2igIJAAAACDCOIIceOfcRDYodZHUUr7ltXQeZtbVWxwBOmdHYoN4fL5MRIN/CYxLDdensTLkjgq2OgjYSIL+6AAAAAI7ksrv0+1G/D4gjka77pp+c75ZYHQM4ba4P16lXrP9fx6t7SrQu+cVAhYRRHrUnFEgAAABAgHI73Hp01KN+fXe26MYQ5az4wuoYgNd0XfmA3OH+eypbj8wYjZ3RX8Eu/90HnBoKJAAAACCA2W12zR82Xzf0v8HqKKdk3tYUmXu+sjoG4DW26m+VVvuO1TFOSd+zuynnur4KslMltEfMOgAAANAO3DjgRs3Pni+74T9HDZxzMFFd/v6+1TEAr4t442l162JYHaNFzrwoUSOv6CPD5l+54T0USAAAAEA7cWmvS/W7Ub+T2+62OsoJGaZ0wxs2qb7e6ihAq0h+5w8KcvjBV3JDGp7bS0Mu6WF1EljMD35bAQAAAHjL8G7DVXhhoTqFdLI6ike/2j1Ati2fWh0DaDWOz0qUEvWl1TE8stkMjb46Tf1HxVsdBT6AAgkAAABoZ1I7purPY/6s5Mhkq6McU0JDlLJe+sTqGECri1mxWJEdHFbHOCa7w6aLbkhXn8FxVkeBj6BAAgAAANqhrmFd9b8X/a/OjD3T6ihHmVucILOqyuoYQKsz6mqVunul1TGOEhLu0PhbByop3bePVETbokACAAAA2qlIZ6QeP/9x5STlWB2lycTq3or453tWxwDajHvDKzqj62GrYzTpnBCuy+/MUpcekVZHgY+hQAIAAADaseCgYC0+e7GuSrvK6ihymXZNWcmRR2h/EtY8rOCQIKtjqPfgWE38VabCol1WR4EPokACAAAA2jnDMDQ7a7buOOsO2QzrviL8+j8ZMss+t2z7gFWC9u5UmuNjy7Zv2AwNm9RT50/rK7vD+iILvokCCQAAAIAkaWrqVD088mGFOcLafNvpdTHq/cqHbb5dwFdEr/ydOsfY23y7zlC7xt3cXwNGJ7T5tuFfKJAAAAAANBmVMEp/HfdX9e3Yt023e/u6DjJra9t0m4AvMRob1PujZWrLgwA7dA1V7h1Zik/t0HYbhd+iQAIAAADQTHx4vJ656Bn9NPWnbbK96d+kK/jdkjbZFuDLnJvXqXdsdZtsK3lgZ11225mK7BzSJtuD/6NAAgAAAHAUR5BDt591u3533u8U6Wy9uzF1aAjRBS/varXxAX/TZeUDCo1oxVPZDGnw+DN04c/6KdjV9qfMwX9RIAEAAAA4rpHxI/X8uOeVGZPZKuPP25oic+/XrTI24I9s1d8q7cD6VhnbFerQxTdkaNCYM2QYRqtsA4GLAgkAAACAR3GhcXoq5ylNT5/u1bu0jTyYqLi/v+e18YBAEb7mT+rWxbsFT3xaB02ee5aSMjp5dVy0HxRIAAAAAE4oyBakWzJv0WOjH1NHV8fTH0+Gfr7akBoavJAOCDzJ7/xBdsfpf2UPsts0PLeXxt3cX6GRTi8kQ3tFgQQAAADgpGV3zdbz45/XkC5DTmuc2V8MkG3rNi+lAgKP47MSpUR+eVpjdOwWqtw5g9R/VDynrOG0USABAAAAaJFOIZ1UcH6Bbh54s4KMoBa/P7E+SoNeLm2FZEBg6fzKYkV2cLT8jYbU/7x45d6RpY7dwrwfDO0SBRIAAACAFrMZNv0s42d6MudJxbpjW/TeXxcnyKyqaqVkQOAw6mqV+uWrLXqPOzJY428eoOGX91KQF06BA37AbxMAAACAU3Zm7Jl6ftzzOjf+3JNa/7LqPor4FxfOBk6W+51XdUbXwye1bvKAzpry68GKT+vQyqnQHlEgAQAAADgtUa4o/fa832rxOYs9XmDbZdo1eWVlGyYDAkPCmoflDDn+6aIOZ5DOvTJFF/08Xa6wUzjlDTgJFEgAAAAAvOLCpAu1YsIKXdbrMhk6+oK9c7dnyCz73IJkgH8L2rtTqfaPjvlaUnpHTfnNYKUN69rGqdDeUCABAAAA8JpIZ6TmZc/TkzlPKikiqWl5Rl2ser2yybpggJ+LXvlbdY7971FI7ohg5Uzvp4tv6q/wDi4Lk6G9oEACAAAA4HVZcVl6YfwL+lnGz2S32XXbumiZhw5ZHQvwW4ZpqveWZbIFGeo7oquuyB+inmfGWB0L7QgFEgAAAIBWERwUrJsH3qzXzv+bIhudVscB/F7E4a80+eaeGjk1Rc4Qu9Vx0M5QIAEAAABoVV3jeipp2TJ1feB+BXXuZHUcwO/YwsMVe+edOuPFFxSdEm91HLRTFEgAAAAA2kTk+PHq8fe/KzrvSino+HeUAvA9w1DkJZeox99XqUPelTL4cwMLUSABAAAAaDNBYWGKu/NOnfHiiwoZdKbVcQCf5ezTR4nLnlHX+++TvRNH7sF6nDQJAAAAoM25+vRW0rJlql67Vl8t/a0OffKJ1ZEAn+Do3l2dZtykyPHjZdg45gO+gwIJAAAAgGXCR41S2Lnnquq11/TV7x7V4Z07rY4EWMLeubM63vBzRefmynA4rI4DHIUCCQAAAIClDJtNkePGKeKii1Tx/Av6+rHHVL9nj9WxgDYRFBmpjtOvU/RPfyqby2V1HOC4KJAAAAAA+ATDblf05J8o8tIJ2vfnZ/XNE0+oYd8+q2MBrcLmdqvD1Vepw7RpCgoPtzoOcEKcUAkAAADAp9icTnW8Zpp6vPGGOs2YIVtoqNWRAK8xgoPV4ao89VjzhjrfcgvlEfwGBRIAAAAAnxQUFqrOM25SjzVvqMO0aTKcTqsjAafObldU7iT1+Mfrip0zR/YOHaxOBLQIp7ABAAAA8Gn26GjF3n6bOlx9lb596ilVPP+CGvfvtzoWcFIMp1MRYy9Wp+nTFZyUZHUc4JRRIAEAAADwC47YWMXOmaNON9+siuef175lf9bhzz+3OhZwTEGdOyl6yhRFT57M0UYICBRIAAAAAPxKUFiYOl59tTrk5al67Vp9+6c/6WDxRqtjAZIkZ1qqOuTlKXLMGBnBwVbHAbzGp6+BtGjRImVlZSk8PFwxMTGaMGGCSktLPb6nsLBQhmE0e7i4FSIAAAAQcAybTRHnn6+kZcuU9MLzirxkvAyHw+pYaI9sNoWNHqWE//2Tkl98UVETJlAeIeD49BFI//73v3XTTTcpKytL9fX1uvPOO3XBBRdo69atCvVwJ4aIiIhmRZNhGG0RFwAAAIBFQvr2Vcj996vzL3+pfX/5iyqWP6eGffusjoUAZwsNVeRlE9XhyisVHB9vdRygVfl0gfT66683+7mwsFAxMTHauHGjzj777OO+zzAMxcXFtXY8AAAAAD7GEROjmJkz1ennP1flK69o3/8+o0Offmp1LAQYR/fuiv7pVEVNmqSgsDCr4wBtwqcLpB+rrKyUJHU4wQXIampqlJiYqMbGRmVmZuree+9V37592yIiAAAAAB9gczoVnZur6NxcHfzgA1W+8qqq/v53jkrCKbOFhSn8ggsUOX6c3GedJcPm01eEAbzObwqkxsZG3XrrrRo2bJj69et33PX69Omjp556ShkZGaqsrNSDDz6o7OxsbdmyRd27dz/mew4dOqRDhw41/VxVVeX1/AAAAACsETJggEIGDFDsnXNUs26dql5dqep//lNmba3V0eDrHA6FDR+uyPHjFHbeebI5nVYnAizjNwXSTTfdpJKSEr311lse1xs6dKiGDh3a9HN2drZSU1NVUFCgBQsWHPM9ixYtUn5+vlfzAgAAAPAtht2u8HPPVfi556qhZr+q33hDVa++ov3v/J/U2Gh1PPiQkAEDFDF+nCIuukj26Gir4wA+wS8KpBkzZmjlypV68803j3sU0fE4HA4NHDhQ27ZtO+46c+bM0axZs5p+rqqqUjwXQAMAAAACVlBYqKIunaCoSyfo8J69qnrtNVW++qoOffSR1dFgkeCkJEWMH6fIceO4IDZwDD5dIJmmqZtvvlkvvfSSioqKdMYZZ7R4jIaGBm3evFljxow57jpOp1NODkUEAAAA2iVHbIw6XjNNHa+ZpkOffqrKV1eqes0a1f3nP1ZHQytzdO2qsFGjFDl+nELS062OA/g0ny6QbrrpJj377LNasWKFwsPDVV5eLkmKjIxUSEiIJCkvL0/dunXTokWLJEnz58/XkCFD1LNnT1VUVGjx4sXasWOHrrvuOsv2AwAAAIB/cPbqpZhZv1DMrF+o7vMvtP+tdap5c50OvPOOGg8csDoeTpMRHCx3VpZCRwxX2Nlny5mcbHUkwG/4dIH02GOPSZJGjhzZbPnTTz+tq6++WpK0c+dO2Y64+v2+ffs0ffp0lZeXKzo6WmeeeabWr1+vtLS0tooNAAAAIAAEd++m4MmTFT15ssy6Oh147z3VvLlO+9et06FPP7U6Hk6SIzFBYcNHKOzsEXKfdZZs3x+MAKBlfLpAMk3zhOsUFRU1+3nJkiVasmRJKyUCAAAA0B4ZwcEKHTJEoUOGSLf9SofLy1Wzbp32v7lO+995R43V1VZHxPeMkBC5z8pS2IizFTZiuIITE62OBAQEny6QAAAAAMAXOeLiFJ2bq+jcXJn19Tr4/vvav+EdHfzwQ9Vu3qyGykqrI7YbttBQufr1U0hGutyDh8idNUg2rnELeB0FEgAAAACcBsNulzsrS+6srKZldTt26ODmEtVu/lAHP9ys2o8+kllba2HKwGA4HHL26aOQjHS50jMUkt5PwcnJMo64rAmA1kGBBAAAAABeFpyYqODEREWOvViSZNbX69Ann+jg5hId3Pyhaj/crEPbt0sNDRYn9WGGoeCkpGZlkTM1VbbgYKuTAe0SBRIAAAAAtDLDbpcrLU2utDRF/+RySVLjgQOq3bpVh7ZtU93OXarbuUOHd+xU3eefyzx40OLEbccIDpaje3cFJyTIkRCv4IREOXsky9Wvn4LCw62OB+B7FEgAAAAAYAGb2y33oEFyDxrUbLlpmqrf+5UO79zxfbG087ty6fvn/njBbpvbLUdCgoLj4xWcmPDd8+8f9rg4TkED/AAFEgAAAAD4EMMw5IiNkSM2ptl1lX5Qv2+fDu/apfpvv1VjZaUaKivVUPH9f6uq1FBZoYbKSjVWfP9zVZV3T5Wz2RQUHi5bZKSCmj0ijlgWpaDICAVFRyu4e3fZO3f23vYBWIICCQAAAAD8iD06Wvbo6JNe3zRNNdbUfFcqVVXJrK+X2dAgNTYe9V/ZbDKCgo7+b1CQgsLDFRQZKVtEhAzDaMU9BOCLKJAAAAAAIIAZhvFd+cP1hACcBk40BQAAAAAAgEcUSAAAAAAAAPCIAgkAAAAAAAAeUSABAAAAAADAIwokAAAAAAAAeESBBAAAAAAAAI8okAAAAAAAAOARBRIAAAAAAAA8okACAAAAAACARxRIAAAAAAAA8IgCCQAAAAAAAB5RIAEAAAAATlpRUZEMw1BFRYXVUQC0IQokAAAAAIAkyTAMj4958+ZZHfG0LF++XIZhaMKECVZHAfyO3eoAAAAAAADfsHv37qbnzz33nObOnavS0tKmZWFhYSouLrYi2mkrKyvT7NmzNWLECKujAH6JI5AAAAAAAJKkuLi4pkdkZKQMw2i2LCwsrGndjRs3atCgQXK73crOzm5WNEnSihUrlJmZKZfLpeTkZOXn56u+vr7pdcMwVFBQoLFjx8rtdis1NVUbNmzQtm3bNHLkSIWGhio7O1vbt29v0bjH0tDQoKlTpyo/P1/Jycle+KSA9ocCCQAAAADQYnfddZceeughFRcXy26365prrml6bd26dcrLy9PMmTO1detWFRQUqLCwUAsXLmw2xoIFC5SXl6cPPvhAKSkpuuKKK3T99ddrzpw5Ki4ulmmamjFjRovH/bH58+crJiZG1157rXc/BKAdoUACAAAAALTYwoULdc455ygtLU133HGH1q9fr9raWklSfn6+7rjjDl111VVKTk7W+eefrwULFqigoKDZGNOmTdPll1+u3r176/bbb1dZWZmmTp2qnJwcpaamaubMmSoqKmpa/2THPdJbb72lJ598Uk888USrfA5Ae8E1kAAAAAAALZaRkdH0vEuXLpKkvXv3KiEhQZs2bdLbb7/d7MighoYG1dbW6sCBA3K73UeNERsbK0lKT09vtqy2tlZVVVWKiIg46XF/UF1drSuvvFJPPPGEOnXq5MW9B9ofCiQAAAAAQIs5HI6m54ZhSJIaGxslSTU1NcrPz9fEiROPep/L5fI4hjfG/cH27dtVVlamcePGNS37YSy73a7S0lL16NHjRLsKQBRIAAAAAAAvy8zMVGlpqXr27GnpuCkpKdq8eXOzZXfffbeqq6u1dOlSxcfHezUfEMgokAAAAAAAXjV37lyNHTtWCQkJmjRpkmw2mzZt2qSSkhLdc889bTauy+VSv379mi2LioqSpKOWA/CMi2gDAAAAALwqJydHK1eu1OrVq5WVlaUhQ4ZoyZIlSkxM9MlxAZwYRyABAAAAAI5y9dVX6+qrrz5q+ciRI2WaZrNlAwYMOGpZTk6OcnJyjjv+j9dPSko6atmxtnWicU+ksLDwlN8LtGccgQQAAAAAAACPKJAAAAAAAADgEQUSAAAAAAAAPKJAAgAAAAAAgEcUSAAAAAAAAPCIAgkAAAAAAAAeUSABAAAAAADAIwokAAAAAAAAeESBBAAAAAAAAI8okAAAAAAAAOARBRIAAAAAAAA8okACAAAAAACARxRIAAAAAAAA8IgCCQAAAAAAAB5RIAEAAAAAAMAjCiQAAAAAAAB4RIEEAAAAAAAAjyiQAAAAAAAA4BEFEgAAAAAAADyiQAIAAAAAAIBHFEgAAAAAAADwyC8KpN///vdKSkqSy+XS4MGD9e6773pc/29/+5tSUlLkcrmUnp6uVatWtVFSAAAAAACAwOPzBdJzzz2nWbNm6Te/+Y3ee+899e/fXzk5Odq7d+8x11+/fr2mTJmia6+9Vu+//74mTJigCRMmqKSkpI2TAwAAAAAABAafL5AefvhhTZ8+XdOmTVNaWpr++Mc/yu1266mnnjrm+kuXLtWFF16oX/3qV0pNTdWCBQuUmZmpRx99tI2TAwAAAAAABAafLpDq6uq0ceNGjR49ummZzWbT6NGjtWHDhmO+Z8OGDc3Wl6ScnJzjrg8AAAAAAADP7FYH8OTrr79WQ0ODYmNjmy2PjY3Vxx9/fMz3lJeXH3P98vLy427n0KFDOnToUNPPlZWVkqSqqqpTjX5CjYcOtNrY7YG354b5OD3Mh+9hTnwL8+FbWvP/338Y2zTNVtsGAACAFXy6QGorixYtUn5+/lHL4+PjLUiDkxH5iNUJcCTmw/cwJ76F+fAtbTEf1dXVioyMbP0NAQAAtBGfLpA6deqkoKAg7dmzp9nyPXv2KC4u7pjviYuLa9H6kjRnzhzNmjWr6efGxkZ9++236tixowzDOI098E9VVVWKj4/Xrl27FBERYXWcdo/58D3MiW9hPnxLe58P0zRVXV2trl27Wh0FAADAq3y6QAoODtaZZ56ptWvXasKECZK+K3fWrl2rGTNmHPM9Q4cO1dq1a3Xrrbc2LXvjjTc0dOjQ427H6XTK6XQ2WxYVFXW68f1eREREu/zLv69iPnwPc+JbmA/f0p7ngyOPAABAIPLpAkmSZs2apauuukqDBg3SWWedpUceeUT79+/XtGnTJEl5eXnq1q2bFi1aJEmaOXOmzjnnHD300EO6+OKLtXz5chUXF+vxxx+3cjcAAAAAAAD8ls8XSD/5yU/01Vdfae7cuSovL9eAAQP0+uuvN10oe+fOnbLZ/nszuezsbD377LO6++67deedd6pXr156+eWX1a9fP6t2AQAAAAAAwK/5fIEkSTNmzDjuKWtFRUVHLcvNzVVubm4rpwpcTqdTv/nNb446rQ/WYD58D3PiW5gP38J8AAAABCbD5D6zAAAAAAAA8MB24lUAAAAAAADQnlEgAQAAAAAAwCMKpABQVFQkwzBUUVFhdRSI+fA1zIdvYT58D3MCAACAk0GB5OMMw/D4mDdvntURW2zLli267LLLlJSUJMMw9Mgjj1gd6aQF4nw88cQTGjFihKKjoxUdHa3Ro0fr3XfftTrWSQnE+XjxxRc1aNAgRUVFKTQ0VAMGDNAzzzxjdayTEojzcaTly5fLMAxNmDDB6ignLRDnpLCw8Kj9cLlcVscCAAAIeH5xF7b2bPfu3U3Pn3vuOc2dO1elpaVNy8LCwlRcXGxFtFN24MABJScnKzc3V7/4xS+sjtMigTgfRUVFmjJlirKzs+VyuXT//ffrggsu0JYtW9StWzer43kUiPPRoUMH3XXXXUpJSVFwcLBWrlypadOmKSYmRjk5OVbH8ygQ5+MHZWVlmj17tkaMGGF1lBYJ1DmJiIhoth+GYViYBgAAoH3gCCQfFxcX1/SIjIyUYRjNloWFhTWtu3HjRg0aNEhut1vZ2dnN/nItSStWrFBmZqZcLpeSk5OVn5+v+vr6ptcNw1BBQYHGjh0rt9ut1NRUbdiwQdu2bdPIkSMVGhqq7Oxsbd++vUXj/lhWVpYWL16syZMn+91tngNxPv785z/rxhtv1IABA5SSkqL/+Z//UWNjo9auXeulT631BOJ8jBw5UpdeeqlSU1PVo0cPzZw5UxkZGXrrrbe89Km1nkCcD0lqaGjQ1KlTlZ+fr+TkZC98Um0nUOfkx/sRGxvrhU8LAAAAHpnwG08//bQZGRl51PJ//etfpiRz8ODBZlFRkbllyxZzxIgRZnZ2dtM6b775phkREWEWFhaa27dvN1evXm0mJSWZ8+bNa1pHktmtWzfzueeeM0tLS80JEyaYSUlJ5nnnnWe+/vrr5tatW80hQ4aYF154YYvG9SQxMdFcsmTJKX8mVgrE+TBN06yqqjJdLpf56quvntoHY5FAnI/GxkZzzZo1ptvtNlevXn3qH44FAmk+5s6da06YMME0TdO86qqrzEsuueT0PhyLBMqcPP3002ZQUJCZkJBgdu/e3Rw/frxZUlLinQ8JAAAAx0WB5EdO9Jf/NWvWNC177bXXTEnmwYMHTdM0zVGjRpn33ntvs/c988wzZpcuXZp+lmTefffdTT9v2LDBlGQ++eSTTcv+8pe/mC6Xq+nnkxnXk0AukPxxPkzTNG+44QYzOTm5Kau/CKT5qKioMENDQ0273W46nc5m2/AXgTIf69atM7t162Z+9dVXpmkGdoHkL3Oyfv16809/+pP5/vvvm0VFRebYsWPNiIgIc9euXSf4BAAAAHA6uAZSAMnIyGh63qVLF0nS3r17lZCQoE2bNuntt9/WwoULm9ZpaGhQbW2tDhw4ILfbfdQYP5wSkJ6e3mxZbW2tqqqqFBERcdLjtkf+OB/33Xefli9frqKiooC7KK0/zUd4eLg++OAD1dTUaO3atZo1a5aSk5M1cuTI0/8gfIQ/zEd1dbWuvPJKPfHEE+rUqZMX9943+cOcSNLQoUM1dOjQpp+zs7OVmpqqgoICLViw4HQ/BgAAABwHBVIAcTgcTc9/uKBoY2OjJKmmpkb5+fmaOHHiUe87sig41hjeGLc98rf5ePDBB3XfffdpzZo1zb4EBgp/mg+bzaaePXtKkgYMGKCPPvpIixYtCqgCyR/mY/v27SorK9O4ceOalv0wlt1uV2lpqXr06HGiXfUb/jAnx8s9cOBAbdu27aTWBwAAwKmhQGonMjMzVVpa2vSl1NfHDXS+Nh8PPPCAFi5cqH/84x8aNGiQVzP5A1+bjx9rbGzUoUOHvJTK9/nKfKSkpGjz5s3Nlt19992qrq7W0qVLFR8f79V8vsxX5uRYGhoatHnzZo0ZM8aLyQAAAPBjFEjtxNy5czV27FglJCRo0qRJstls2rRpk0pKSnTPPfe06bh1dXXaunVr0/MvvvhCH3zwgcLCwtpNEeVL83H//fdr7ty5evbZZ5WUlKTy8nJJ393e+8g7NAUyX5qPRYsWadCgQerRo4cOHTqkVatW6ZlnntFjjz12yjn8ja/Mh8vlUr9+/Zoti4qKkqSjlgc6X5kTSZo/f76GDBminj17qqKiQosXL9aOHTt03XXXnXIOAAAAnJjN6gBoGzk5OVq5cqVWr16trKwsDRkyREuWLFFiYmKbj/vll19q4MCBGjhwoHbv3q0HH3xQAwcObFd/+fel+XjsscdUV1enSZMmqUuXLk2PBx988LSy+BNfmo/9+/frxhtvVN++fTVs2DC98MILWrZsGX8+LJoPfMeX5mTfvn2aPn26UlNTNWbMGFVVVWn9+vVKS0s7rSwAAADwzDBN07Q6BAAAAAAAAHwXRyABAAAAAADAIwokAAAAAAAAeESBBAAAAAAAAI8okAAAAAAAAOARBRIAAAAAAAA8okACAAAAAACARxRIAAAAAAAA8IgCCQAAAAAAAB5RIAFoN4qKimQYhioqKqyOAgAAAAB+hQIJQEAwDMPjY968eVZHBAAAAAC/Zbc6AAB4w+7du5ueP/fcc5o7d65KS0ubloWFham4uNiKaAAAAADg9zgCCUBAiIuLa3pERkbKMIxmy8LCwprW3bhxowYNGiS3263s7OxmRZMkrVixQpmZmXK5XEpOTlZ+fr7q6+ubXjcMQwUFBRo7dqzcbrdSU1O1YcMGbdu2TSNHjlRoaKiys7O1ffv2kx7XNE3NmzdPCQkJcjqd6tq1q2655ZZW/MQAAAAA4ORRIAFod+666y499NBDKi4ult1u1zXXXNP02rp165SXl6eZM2dq69atKigoUGFhoRYuXNhsjAULFigvL08ffPCBUlJSdMUVV+j666/XnDlzVFxcLNM0NWPGjJMe94UXXtCSJUtUUFCgTz/9VC+//LLS09Pb5gMBAAAAgBMwTNM0rQ4BAN5UWFioW2+99aiLZRcVFencc8/VmjVrNGrUKEnSqlWrdPHFF+vgwYNyuVwaPXq0Ro0apTlz5jS9b9myZbrtttv05ZdfSvruCKS7775bCxYskCS98847Gjp0qJ588smmMmr58uWaNm2aDh48KEknHPfhhx9WQUGBSkpK5HA4Wu2zAQAAAIBTwRFIANqdjIyMpuddunSRJO3du1eStGnTJs2fP19hYWFNj+nTp2v37t06cODAMceIjY2VpGZHDMXGxqq2tlZVVVUnNW5ubq4OHjyo5ORkTZ8+XS+99FKz0+YAAAAAwEpcRBtAu3PkET6GYUiSGhsbJUk1NTXKz8/XxIkTj3qfy+XyOMbpjBsfH6/S0lKtWbNGb7zxhm688UYtXrxY//73vzkiCQAAAIDlKJAA4AiZmZkqLS1Vz54923zckJAQjRs3TuPGjdNNN92klJQUbd68WZmZmV7NAgAAAAAtRYEEAEeYO3euxo4dq4SEBE2aNEk2m02bNm1SSUmJ7rnnnlYbt7CwUA0NDRo8eLDcbreWLVumkJAQJSYmenHvAAAAAODUcA0kADhCTk6OVq5cqdWrVysrK0tDhgzRkiVLTrvIOdG4UVFReuKJJzRs2DBlZGRozZo1evXVV9WxY0dv7BYAAAAAnBbuwgYAAAAAAACPOAIJAAAAAAAAHlEgAQAAAAAAwCMKJAAAAAAAAHhEgQQAAAAAAACPKJAAAAAAAADgEQUSAAAAAAAAPKJAAgAAAAAAgEcUSAAAAAAAAPCIAgkAAAAAAAAeUSABAAAAAADAIwokAAAAAAAAeESBBAAAAAAAAI/+P/NnbDfeAhFPAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['idea'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"\n",
"# Topic modeling using LDA\n",
"def topic_modeling(sentences, num_topics):\n",
" vectorizer = CountVectorizer()\n",
" X = vectorizer.fit_transform(sentences)\n",
" lda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\n",
" lda.fit(X)\n",
" return lda, vectorizer\n",
"\n",
"# Assign sentences to themes based on dominant topics\n",
"def assign_sentences_to_themes(lda, vectorizer, sentences):\n",
" theme_sentences = {i: [] for i in range(lda.n_components)}\n",
" for sent in sentences:\n",
" X_sent = vectorizer.transform([sent])\n",
" topic_idx = lda.transform(X_sent).argmax()\n",
" theme_sentences[topic_idx].append(sent)\n",
" return theme_sentences\n",
"\n",
"# Visualize themes using a bar chart and pie chart\n",
"def visualize_themes(theme_freq):\n",
" plt.figure(figsize=(12, 6))\n",
"\n",
" plt.subplot(1, 2, 1)\n",
" plt.bar(theme_freq.keys(), theme_freq.values())\n",
" plt.xlabel(\"Themes\")\n",
" plt.ylabel(\"Frequency\")\n",
" plt.title(\"Themes Frequency (Bar Chart)\")\n",
"\n",
" plt.subplot(1, 2, 2)\n",
" plt.pie(theme_freq.values(), labels=theme_freq.keys(), autopct=\"%1.1f%%\")\n",
" plt.title(\"Themes Distribution (Pie Chart)\")\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"# Extract the most relevant words for each topic\n",
"def extract_topic_keywords(lda, vectorizer, num_words=5):\n",
" feature_names = vectorizer.get_feature_names_out()\n",
" topic_keywords = []\n",
" for topic_idx, topic in enumerate(lda.components_):\n",
" top_words_idx = topic.argsort()[-num_words:][::-1]\n",
" top_words = [feature_names[i] for i in top_words_idx]\n",
" topic_keywords.append(top_words)\n",
" return topic_keywords\n",
"\n",
"\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"/content/idea.csv\"\n",
" num_topics = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" lda, vectorizer = topic_modeling(preprocessed_sentences, num_topics)\n",
" theme_sentences = assign_sentences_to_themes(lda, vectorizer, sentences)\n",
" theme_freq = {f\"Theme {i + 1}\": len(theme_sentences[i]) for i in range(num_topics)}\n",
"\n",
" # Extract most relevant words for each topic\n",
" topic_keywords = extract_topic_keywords(lda, vectorizer)\n",
"\n",
" # Print themes and their most relevant words\n",
" for theme, freq, keywords in zip(theme_freq.keys(), theme_freq.values(), topic_keywords):\n",
" print(f\"{theme}: {freq} sentences\")\n",
" print(\"Keywords:\", \", \".join(keywords))\n",
" print()\n",
"\n",
" visualize_themes(theme_freq)\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 937
},
"id": "ZV7AWKYw789t",
"outputId": "7775ec04-97e1-407a-cfb4-1d3ccbd3b8d3"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Theme 1: 16 sentences\n",
"Keywords: team, lead, generation, profile, build\n",
"\n",
"Theme 2: 19 sentences\n",
"Keywords: resources, based, tech, process, clients\n",
"\n",
"Theme 3: 12 sentences\n",
"Keywords: l3, high, one, partners, resources\n",
"\n",
"Theme 4: 15 sentences\n",
"Keywords: enterprise, sales, new, relationship, business\n",
"\n",
"Theme 5: 10 sentences\n",
"Keywords: sales, capabilities, lead, events, try\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 2 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJEAAAJOCAYAAAAH9pZyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACzmElEQVR4nOzdd3hTZf8G8DtJ23Sme0IHZZa9FJmioMgSQURAZSkO9BVFfAX5yRCRoYAbcAGKvgKKoKLIEGSPsmeBQimlezdtk2ac3x+1kdDdpn2S9P5cVy7Jyclz7pO25uSbZ8gkSZJARERERERERERUAbnoAEREREREREREZP1YRCIiIiIiIiIiokqxiERERERERERERJViEYmIiIiIiIiIiCrFIhIREREREREREVWKRSQiIiIiIiIiIqoUi0hERERERERERFQpFpGIiIiIiIiIiKhSLCIREREREREREVGlWEQiqgd79uyBTCbDjz/+KDoK2TG1Wo2AgAB89913oqPUyty5cyGTyZCeni40x8qVKxEWFgatVis0BxGRCLx2qTqZTIa5c+fW+XFKfiZ79uwxbevbty/atm1b58cGgLi4OMhkMqxZs6ZejleWQYMGYfLkydV+Xsm1hSgymQwvvfSSsOMDgE6nQ2hoKD777DOhOcj2sYhEVEMymaxKt9vf6BuaiIiIcl8XjUYjOp7d+fDDD+Hh4YHRo0ebtpVcNJXc5HI5goODMWTIEBw+fLhe8xkMBqxevRp9+/aFj48PlEolIiIiMHHiRERHR9drltu9++672Lx5c6ntEyZMQFFREVatWlX/oYiI6gCvXSp3+7WLXC6Hl5cX2rVrh2effRZHjhyx2HG+//57fPDBBxZrz5KsNduBAwewfft2vPHGG6ZtJYW1kpujoyMiIyMxbtw4XLt2rc4zxcbG4rnnnkNkZCScnZ2hUqnQs2dPfPjhhygsLKzz45fl4MGDmDt3LrKzs822Ozo6Ytq0aViwYAGvw6lWHEQHILJV3377rdn9b775Bjt27Ci1PSoqChcvXqzPaFalY8eOeO2110ptd3JyEpDGful0Onz44Yd49dVXoVAoSj2+YsUKuLu7w2g04ubNm/jiiy/Qp08fHD16FB07dqzzfIWFhRgxYgS2bduGPn364M0334SPjw/i4uKwYcMGrF27FvHx8WjcuHGdZ7nTu+++i5EjR+KRRx4x2+7s7Izx48dj2bJl+M9//iP0G0wiIkvgtUvV3H7tkpeXh4sXL2Ljxo344osv8Oqrr2LZsmVm+xcWFsLBoXofq77//nucO3cOr7zySpWf06dPHxQWFtb5NVR52cLDw1FYWAhHR8c6PX553nvvPfTr1w/NmjUr9djLL7+Mu+66CzqdDidOnMDnn3+OrVu34uzZswgJCcH//d//YcaMGRbNs3XrVjz22GNQKpUYN24c2rZti6KiIuzfvx+vv/46zp8/j88//9yix6yKgwcPYt68eZgwYQK8vLzMHps4cSJmzJiB77//HpMmTar3bGQfWEQiqqEnn3zS7P7hw4exY8eOUtsBNOgLsUaNGpX5mpSnoKAArq6udZjIPv32229IS0vDqFGjynx85MiR8PPzM91/5JFH0LZtW2zcuNEiRSS9Xg+j0Vjuhe3rr7+Obdu2Yfny5aUuSufMmYPly5fXOkN1SJIEjUYDFxeXCvcbNWoUlixZgt27d+P++++vp3RERHWD1y5VU9a1y+LFizF27FgsX74czZs3xwsvvGB6zNnZuU7zaDQaODk5QS6X1/mxKiKTyYQdPzU1FVu3bsXKlSvLfLx3794YOXIkgOJCSYsWLfDyyy9j7dq1mDlzJhwcHKpd6KvI9evXMXr0aISHh+Ovv/5CcHCw6bEXX3wRV69exdatWy12vKrIz8+Hm5tbhft4eXnhwQcfxJo1a1hEohrjcDaiemQ0GrFgwQI0btwYzs7O6NevH65evVpqvyNHjuChhx6Cp6cnXF1dce+99+LAgQNm+5QMU7p8+TKefPJJeHp6wt/fH2+99RYkScLNmzcxbNgwqFQqBAUFYenSpaWOo9VqMWfOHDRr1gxKpRKhoaH473//W2oOmB07dqBXr17w8vKCu7s7WrZsiTfffLPWr0fJOP7jx4+jT58+cHV1NbVb1WxarRavvvoq/P394eHhgYcffhgJCQml5ieYMGECIiIiSmUob4z8unXr0KVLF7i4uMDHxwejR4/GzZs3y8x/4cIF3HfffXB1dUWjRo2wZMmSUu1pNBrMnTsXLVq0gLOzM4KDgzFixAjExsZCkiRERERg2LBhZT7P09MTzz33XIWv5ebNmxEREYGmTZtWuF+JoKAgADC7oCoqKsLs2bPRpUsXeHp6ws3NDb1798bu3bvNnlsyJ8L777+PDz74AE2bNoVSqcSFCxfKPFZCQgJWrVqFBx54oMxvXBUKBaZPn16qF1J2drbpWzRPT09MnDgRBQUFZvusXr0a999/PwICAqBUKtG6dWusWLGi1DEiIiIwZMgQ/Pnnn+jatStcXFywatUqyGQy5OfnY+3ataau8BMmTDA9r0uXLvDx8cGWLVsqfD2JiOwVr12Kubi44Ntvv4WPjw8WLFgASZJMj915zZGXl4dXXnkFERERUCqVCAgIwAMPPIATJ04AKL5+2Lp1K27cuGF67ym5RikZnvXDDz/g//7v/9CoUSO4uroiNze3zDmRShw/fhw9evSAi4sLmjRpUqrYsmbNGshkMsTFxZltv7PNirKVNyfSX3/9hd69e8PNzQ1eXl4YNmxYqSJkyc/+6tWrlb63l2Xr1q3Q6/Xo379/pfsCMH3xc/36dbPj36kq13tlWbJkCdRqNb766iuzAlKJZs2aYerUqaW2b968GW3btoVSqUSbNm2wbds2s8dv3LiBKVOmoGXLlnBxcYGvry8ee+yxUj+3kp/n33//jSlTpiAgIACNGzfG3Llz8frrrwMAmjRpYvoZ3v78Bx54APv370dmZmal50lUFvZEIqpHixYtglwux/Tp05GTk4MlS5bgiSeeMBtj/9dff2HgwIHo0qUL5syZA7lcbvqgvG/fPtx9991mbT7++OOIiorCokWLsHXrVrzzzjvw8fHBqlWrcP/992Px4sX47rvvMH36dNx1113o06cPgOKLwocffhj79+/Hs88+i6ioKJw9exbLly/H5cuXTXPEnD9/HkOGDEH79u3x9ttvQ6lU4urVq6UuDMuj0+lKTZDs6upq6m2UkZGBgQMHYvTo0XjyyScRGBhY5WwA8Mwzz2DdunUYO3YsevTogb/++guDBw+u7o/GzIIFC/DWW29h1KhReOaZZ5CWloaPP/4Yffr0wcmTJ826BmdlZeGhhx7CiBEjMGrUKPz4449444030K5dOwwcOBBA8VxAQ4YMwa5duzB69GhMnToVeXl52LFjB86dO4emTZviySefxJIlS5CZmQkfHx9T+7/++ityc3Mr7c118OBBdO7cudzHSy4UjEYjbt26hfnz58PZ2dms51Jubi6+/PJLjBkzBpMnT0ZeXh6++uorDBgwoMxhb6tXr4ZGo8Gzzz4LpVJplvt2f/zxB/R6PZ566qkKz+FOo0aNQpMmTbBw4UKcOHECX375JQICArB48WLTPitWrECbNm3w8MMPw8HBAb/++iumTJkCo9GIF1980ay9mJgYjBkzBs899xwmT56Mli1b4ttvv8UzzzyDu+++G88++ywAlCrEde7cucq/70RE9qYhXruUx93dHcOHD8dXX32FCxcuoE2bNmXu9/zzz+PHH3/ESy+9hNatWyMjIwP79+/HxYsX0blzZ8yaNQs5OTlISEgw9cR1d3c3a2P+/PlwcnLC9OnTodVqKxzClpWVhUGDBmHUqFEYM2YMNmzYgBdeeAFOTk7V7m1SlWy327lzJwYOHIjIyEjMnTsXhYWF+Pjjj9GzZ0+cOHGi1Bd4VXlvL8vBgwfh6+uL8PDwKp1HbGwsAMDX17fcfapzvXenX3/9FZGRkejRo0eV8gDA/v37sWnTJkyZMgUeHh746KOP8OijjyI+Pt6U89ixYzh48CBGjx6Nxo0bIy4uDitWrEDfvn1x4cKFUr31p0yZAn9/f8yePRv5+fkYOHAgLl++jP/9739Yvny5qRe6v7+/6TldunSBJEk4ePAghgwZUuX8RCYSEVnEiy++KJX3J7V7924JgBQVFSVptVrT9g8//FACIJ09e1aSJEkyGo1S8+bNpQEDBkhGo9G0X0FBgdSkSRPpgQceMG2bM2eOBEB69tlnTdv0er3UuHFjSSaTSYsWLTJtz8rKklxcXKTx48ebtn377beSXC6X9u3bZ5Z15cqVEgDpwIEDkiRJ0vLlyyUAUlpaWrVfk/DwcAlAqducOXMkSZKke++9VwIgrVy50ux5Vc126tQpCYA0ZcoUs/3Gjh1rdhxJkqTx48dL4eHhpTKWvI4l4uLiJIVCIS1YsMBsv7Nnz0oODg5m20vyf/PNN6ZtWq1WCgoKkh599FHTtq+//loCIC1btqzU8Ut+zjExMRIAacWKFWaPP/zww1JERITZ78OddDqdJJPJpNdee63c87vz5uXlJW3bts1sX71eb/b7KUnFvzuBgYHSpEmTTNuuX78uAZBUKpWUmppabq4Sr776qgRAOnnyZKX73p759mNKkiQNHz5c8vX1NdtWUFBQ6vkDBgyQIiMjzbaV/C7eec6SJElubm5mfxt3evbZZyUXF5cqZScisiW8diktPDxcGjx4cLmPl7S9ZcsW07Y7rzk8PT2lF198scLjDB48uMzrkpLXPTIystR7XMlju3fvNm0ruRZZunSpaZtWq5U6duwoBQQESEVFRZIkSdLq1aslANL169crbbO8bCXv/6tXrzZtKzlORkaGadvp06cluVwujRs3zrStOu/tZenVq5fUpUuXUttL8n/99ddSWlqalJiYKG3dulWKiIiQZDKZdOzYMbPjl6jO9d6dcnJyJADSsGHDKs1dAoDk5OQkXb161bTt9OnTEgDp448/Nm0r67rm0KFDpa43S36evXr1kvR6vdn+7733Xpk/6xKJiYkSAGnx4sVVzk90Ow5nI6pHEydONPsmqXfv3gBgWj3i1KlTuHLlCsaOHYuMjAykp6cjPT0d+fn56NevH/bu3Quj0WjW5jPPPGP6t0KhQNeuXSFJEp5++mnTdi8vL7Rs2dJslYqNGzciKioKrVq1Mh0nPT3d1P23ZAhTybcwW7ZsKXXsqujWrRt27Nhhdhs3bpzpcaVSiYkTJ5o9p6rZfv/9dwDFkynerjqTVN5p06ZNMBqNGDVqlNmxg4KC0Lx581JDu9zd3c16CTk5OeHuu+82e61/+ukn+Pn54T//+U+p45V0rW7RogW6deuG7777zvRYZmYm/vjjDzzxxBMVTuqcmZkJSZLg7e1d7j4//fQTduzYge3bt2P16tVo0aIFHn30URw8eNC0j0KhMP1+Go1GZGZmQq/Xo2vXrqYu+Ld79NFHzb7ZKk9ubi4AwMPDo9J9b/f888+b3e/duzcyMjJM7QEwm9MoJycH6enpuPfee3Ht2jXk5OSYPb9JkyYYMGBAtTIAgLe3NwoLC6vU3Z6IyN40xGuXipT0ysnLyyt3Hy8vLxw5cgSJiYk1Ps748eMrnbevhIODg9mwdycnJzz33HNITU3F8ePHa5yhMklJSTh16hQmTJhg1hu5ffv2eOCBB0zXaberynt7WTIyMiq8zpk0aRL8/f0REhKCwYMHm4aqd+3atcz9q3u9d7uaXtf079/frLdz+/btoVKpzH7Hb/+Z63Q6ZGRkoFmzZvDy8irzWmzy5MllLqhSkZLX8c6RAkRVxeFsRPUoLCzM7H7J/8SzsrIAAFeuXAFQfOFQnpycHLM30Tvb9PT0hLOzs9kkyiXbMzIyTPevXLmCixcvllsESE1NBVDc5fzLL7/EM888gxkzZqBfv34YMWIERo4cCbm88jq0n59fhePXGzVqVKqLdlWz3bhxA3K5vNTwo5YtW1aaqzxXrlyBJElo3rx5mY/fuSJJ48aNSxV4vL29cebMGdP92NhYtGzZstIJHceNG4eXXnoJN27cQHh4ODZu3AidTlflYWDSbfMz3KlPnz5mvxMjR45E8+bN8Z///MfsAnPt2rVYunQpLl26BJ1OZ9repEmTUm2Wta0sKpUKQMUX3GWp6O+lpM0DBw5gzpw5OHToUKkiT05ODjw9Paud904lrytXZyOihqghXrtURK1WA6i4gLBkyRKMHz8eoaGh6NKlCwYNGoRx48YhMjKyysepzntWSEhIqQmVW7RoAaB4HqN77rmnym1Vx40bNwCUfd0VFRWFP//8s9Rkz1V5by9PRdc5s2fPRu/evaFQKODn54eoqKgKr7uqe713O0td1wDF51/ytwQUr/S3cOFCrF69Grdu3TI75zu/HANqdm3D6xqqLRaRiOpRed8UlPzPvOTbsvfee6/cFbPuHJdeVpuVHafkWO3atSu1TG2J0NBQAMXfiOzduxe7d+/G1q1bsW3bNqxfvx73338/tm/fXu1vP+5U1rdsVc1WHeW9URoMhlLHlslk+OOPP8o8t6q8/kDFFzrlGT16NF599VV89913ePPNN7Fu3Tp07dq10qKYj48PZDKZ2UVIZdzd3dGtWzds2bLFdIG3bt06TJgwAY888ghef/11BAQEQKFQYOHChaa5BW5X1W9IW7VqBQA4e/ZstVaCq+y1jY2NRb9+/dCqVSssW7YMoaGhcHJywu+//47ly5eX+va5qnnvlJWVBVdX1xo/n4jIlvHaxdy5c+cAoMxl5kuMGjUKvXv3xs8//4zt27fjvffew+LFi7Fp0ybTfImVsfR7TlWvg+paTa+bfH19K7zOadeuXZUn3Qaqf713O5VKhZCQENPvQlVV5dz/85//YPXq1XjllVfQvXt3eHp6QiaTYfTo0WX2qqvJ70nJ63hn0ZaoqlhEIrIiJT1qVCpVtd4Ia3qs06dPo1+/fpV+EyGXy9GvXz/069cPy5Ytw7vvvotZs2Zh9+7ddZKzqtnCw8NhNBpNPX1KxMTElNrX29sb2dnZpbaXfIt2+7ElSUKTJk1M3+LVVtOmTXHkyBHodLoKv9ny8fHB4MGD8d133+GJJ57AgQMH8MEHH1TavoODA5o2bWpagaSq9Ho9gOJvVd3c3PDjjz8iMjISmzZtMnvd58yZU6127zRw4EAoFAqsW7eu2pNrV+TXX3+FVqvFL7/8YvbtXkVd0MtS2e//9evXERUVVaOMRET2riFdu6jVavz8888IDQ2t9H0hODgYU6ZMwZQpU5CamorOnTtjwYIFpiKSJXuBJCYmlurxc/nyZQAwTWxd0uPnzmuhO6+DqpOtZJLrsq67Ll26BD8/v0qXnK+qVq1a4aeffrJIW0Dtr/eGDBmCzz//HIcOHUL37t0tluvHH3/E+PHjzVYm1Gg0ZV7Dlqcq1zUAeG1DNcY5kYisSJcuXdC0aVO8//77pu7St0tLS7PYsUaNGoVbt27hiy++KPVYYWEh8vPzAaDM5T9Lvmm8cznd+s5WciH20Ucfme1TVuGladOmyMnJMRtmlpSUhJ9//tlsvxEjRkChUGDevHmlvhWTJMmsW31VPfroo0hPT8cnn3xS6rE7j/HUU0/hwoULeP3116FQKDB69OgqHaN79+6Ijo6ucqbMzEwcPHgQQUFBCAgIAPDvN2S3Zzpy5AgOHTpU5XbLEhoaismTJ2P79u34+OOPSz1uNBqxdOlSJCQkVKvdsvLm5ORg9erV1WrHzc2twouzEydOVGv1FSKihqShXLsUFhbiqaeeQmZmJmbNmlVhz547hx0FBAQgJCTE7Nhubm5lDk+qCb1ej1WrVpnuFxUVYdWqVfD390eXLl0A/Fvs27t3r1nWzz//vFR7Vc0WHByMjh07Yu3atWbvo+fOncP27dsxaNCgmp5SKd27d0dWVpbZ/EG1Udvrvf/+979wc3PDM888g5SUlFKPx8bG4sMPP6x2LoVCUSrPxx9/XK0eYyWFu/KubY4fPw6ZTGbR4hc1LOyJRGRF5HI5vvzySwwcOBBt2rTBxIkT0ahRI9y6dQu7d++GSqXCr7/+apFjPfXUU9iwYQOef/557N69Gz179oTBYMClS5ewYcMG/Pnnn+jatSvefvtt7N27F4MHD0Z4eDhSU1Px2WefoXHjxujVq5dFstQ0W8eOHTFmzBh89tlnyMnJQY8ePbBr1y5cvXq1VJujR4/GG2+8geHDh+Pll19GQUEBVqxYgRYtWphNVNi0aVO88847mDlzJuLi4vDII4/Aw8MD169fx88//4xnn30W06dPr9b5jBs3Dt988w2mTZuGo0ePonfv3sjPz8fOnTsxZcoUDBs2zLTv4MGD4evri40bN2LgwIGmAk9lhg0bhm+//RaXL18u8xu1H3/8Ee7u7pAkCYmJifjqq6+QlZWFlStXmi6EhwwZgk2bNmH48OEYPHgwrl+/jpUrV6J169ZlfjCojqVLlyI2NhYvv/wyNm3ahCFDhsDb2xvx8fHYuHEjLl26VOWCWYkHH3wQTk5OGDp0KJ577jmo1Wp88cUXCAgIQFJSUpXb6dKlC3bu3Illy5YhJCQETZo0Qbdu3QAUX2hlZmaa/YyIiOhf9njtcuvWLaxbtw5Ace+jCxcuYOPGjUhOTsZrr71mNon1nfLy8tC4cWOMHDkSHTp0gLu7O3bu3Iljx46Z9S7p0qUL1q9fj2nTpuGuu+6Cu7s7hg4dWqPXJSQkBIsXL0ZcXBxatGiB9evX49SpU/j8889NPaDbtGmDe+65BzNnzkRmZiZ8fHzwww8/mHol36462d577z0MHDgQ3bt3x9NPP43CwkJ8/PHH8PT0xNy5c2t0PmUZPHgwHBwcsHPnTjz77LO1bq+213tNmzbF999/j8cffxxRUVEYN24c2rZti6KiIhw8eBAbN27EhAkTqp1ryJAh+Pbbb+Hp6YnWrVvj0KFD2LlzJ3x9favcRknhcNasWRg9ejQcHR0xdOhQU3Fpx44d6NmzZ7XaJDJTL2vAETUAVVkmd+PGjWbby1oqVZIk6eTJk9KIESMkX19fSalUSuHh4dKoUaOkXbt2mfYpWar0zuVrx48fL7m5uZXKcO+990pt2rQx21ZUVCQtXrxYatOmjaRUKiVvb2+pS5cu0rx586ScnBxJkiRp165d0rBhw6SQkBDJyclJCgkJkcaMGSNdvny50teksmVyy8pUnWySJEmFhYXSyy+/LPn6+kpubm7S0KFDpZs3b5ZableSJGn79u1S27ZtJScnJ6lly5bSunXrSi35WuKnn36SevXqJbm5uUlubm5Sq1atpBdffFGKiYmpNP/48eNLLY1bUFAgzZo1S2rSpInk6OgoBQUFSSNHjpRiY2NLPX/KlCkSAOn7778v97W7k1arlfz8/KT58+ebbS85v9tvbm5uUvfu3aUNGzaY7Ws0GqV3331XCg8Pl5RKpdSpUyfpt99+K3U+Jb+37733XpXzSVLxMs5ffvml1Lt3b8nT01NydHSUwsPDpYkTJ0onT54slfnO3+2ylif+5ZdfpPbt20vOzs5SRESEtHjxYunrr78utV9Fv4uXLl2S+vTpI7m4uEgAzJaTfuONN6SwsDCzZauJiOwFr11KCw8PN71fymQySaVSSW3atJEmT54sHTlypMzn3H7NodVqpddff13q0KGD5OHhIbm5uUkdOnSQPvvsM7PnqNVqaezYsZKXl5cEwPQ+W97rfvtju3fvLvUaRUdHS927d5ecnZ2l8PBw6ZNPPin1/NjYWKl///6SUqmUAgMDpTfffFPasWNHqTbLy1bez37nzp1Sz549JRcXF0mlUklDhw6VLly4YLZPdd7by/Pwww9L/fr1K/M1Kev1Kuv4d6rK9V5FLl++LE2ePFmKiIiQnJycJA8PD6lnz57Sxx9/LGk0GtN+AKQXX3yx1PPDw8PNrjuysrKkiRMnSn5+fpK7u7s0YMAA6dKlS6X2K3ndjh07Vmau+fPnS40aNZLkcrnZ65udnS05OTlJX375ZZXOj6gsMkmqweyvRERWTiaTYc6cORb9Fqy+vPrqq/jqq6+QnJwMV1fXKj9v/vz5WL16Na5cuVLrCc+peMhDREQEZsyYgalTp4qOQ0RE1KDt27cPffv2xaVLl8pdVY0q9sEHH2DJkiWIjY3lgiFUY5wTiYjIimg0Gqxbtw6PPvpotQpIQHHxSa1W44cffqijdA3L6tWr4ejoiOeff150FCIiogavd+/eePDBB7FkyRLRUWySTqfDsmXL8H//938sIFGtsCcSEdklW+uJlJqaip07d+LHH3/E5s2bceLEiXKXSiYiIiIiIhKBE2sTEVmBCxcu4IknnkBAQAA++ugjFpCIiIiIiMjqsCcSERERERERERFVinMiERERERERERFRpVhEIiIiIiIiIiKiSnFOpDIYjUYkJibCw8MDMplMdBwiIiKyEZIkIS8vDyEhIZDL+V0dERER2RcWkcqQmJiI0NBQ0TGIiIjIRt28eRONGzcWHYOIiIjIolhEKoOHhweA4gtAlUolOA0RERHZitzcXISGhpquJYiIiIjsCYtIZSgZwqZSqVhEIiIiomrjcHgiIiKyRxysT0RERERERERElWIRiYiIiIiIiIiIKsUiEhERERERERERVYpFJCIiIiIiIiIiqhSLSEREREREREREVCkWkYiIiIiIiIiIqFIsIhERERERERERUaVYRCIiIiIiIiIiokqxiERERERERERERJViEYmIiIiIiIiIiCrFIhIREREREREREVWKRSQiIiIiIiIiIqoUi0hERERERERERFQpFpGIiIiIiIiIiKhSLCIREREREREREVGlWEQiIiIiIiIiIqJKsYhERERERERERESVYhGJiIiIiIiIiIgqxSISERERERERERFVikUkIiIiIiIiIiKqFItIRERERERERERUKQfRAYisQcSMraIj2Ly4RYNFRyAiIiIiIqI6xJ5IRERERERERERUKRaRiIiIiIiIiIioUiwiERERERERERFRpVhEIiIiIiIiIiKiSrGIRERERERERERElWIRiYiIiIiIiIiIKsUiEhERERERERERVYpFJCIiIiIiIiIiqhSLSEREREREREREVCkWkYiIiIiIiIiIqFIsIhERERERERERUaVYRCIiIiIiIiIiokqxiERERERERERERJViEYmIiIiIiIiIiCrFIhIREREREREREVWKRSQiIiIiIiIiIqoUi0hERERERERERFQpFpGIiIiIiIiIiKhSLCIREREREREREVGlWEQiIiIiIiIiIqJKsYhERERERERERESVYhGJiIiIiIiIiIgqxSISERERERERERFVikUkIiIiIiIiIiKqFItIRERERERERERUKQfRAYiIiIiIiMhCJAnQFQJ6zb83Xcm/tcX7KBwBucM//3UEFA7F/zVtcwAcXQAHpdhzISKrwyISERERERGRNSrMAvLT/7mlFd8KMv79d8ljhZn/Fo4MRZY7voML4OJ9280LcPW5Y5sPoGoEeIUB7v6WOzYRWSUWkYiIiIiIiEQw6IGcm0DWdSDz+m3/jSu+FanF5tMXAnmFQF5i1fZ3dAU8GxcXlDxDi/9bcvMMBTyCAJmsbjMTUZ1iEYmIiIiIiKgu6bVA6gUg+WzxLeNqcbEo5yZg1ItOZzm6AiD9cvGtLE7ugF8LwL8VENAK8I9Clv9d8Pb2rt+cRFRjLCIRERERERFZiianuFCUdAZIPlP877QYwKgTnUy8IjWQeKL49o/nnFciRuuLVkEeiApWoXWICp1CvdAswB0y9loisjosIhEREREREdWEQQ8knQbiDwE3jxT/OzsegCQ6mU2QnNxwLMcDkqTDkeuZOHI90/SYytkBHcO80TnMC53DvNExzAsqZ0eBaYkIYBGJiIiIiIioanQaIOEoEHcAiD8IJBwHdPmiU9msfM8WkHLL7m2Uq9Fj7+U07L2cBqB4KqVm/u7o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2Zq0yywgkVWLLgwWHYEszJoLSY6OjqZ/y2TFwyiNRiMAQK1WY968eRgxYkSp5zk7O1fYhiXatTcsIhERERER2ZLM68A3D7OARFZtd5a/6AhUB6y5kFSezp07IyYmBs2aNbOJdq0di0hERERERLYi51ZxASkvSXQSonIZ3AJwLcN+e2I0dIu3XYIECVP62kbxZPbs2RgyZAjCwsIwcuRIyOVynD59GufOncM777xTr+0WFRXhwoULpn/funULp06dgru7u80UozixNhERERGRLVCnAd8MA7LjRSchqlCuR3PREaiOLdkWg7UH40THqJIBAwbgt99+w/bt23HXXXfhnnvuwfLlyxEeHl7v7SYmJqJTp07o1KkTkpKS8P7776NTp0545plnapWlPskkSZJEh7A2ubm58PT0RE5ODlQqVZ0cI2LG1jppt6GIWzTYou3x51F7lv6ZEBHZovq4hqAGqjALWDMUSDkrOglRpc6GPYmhlweJjkF1TCYDPhzdCQ93CBEdheoReyIREREREVkzbR6wbiQLSGQzzutDRUegeiBJwGsbTmHv5TTRUagesYhERERERGStdIXA96OBW9GikxBV2aH8QNERqJ7oDBKeX3ccJ+OzREehesIiEhERERGRNTIagI0TgRv7RSchqjJJpsBfGT6iY1A9KigyYNKaY7iamic6CtUDFpGIiIiIiKzRtpnA5T9EpyCqFp1nBPL0XAS8ockq0OGpr44iMbtQdBSqYywiERERERFZm8MrgaOrRKcgqrYMN9tYppwsLylHg6e+OoKcAp3oKFSHWEQiIiIiIrImMX8Af84UnYKoRq7La7dsOtm22LR8PLcuGjqDUXQUqiNCi0h79+7F0KFDERISAplMhs2bN5s9PmHCBMhkMrPbQw89VGm7n376KSIiIuDs7Ixu3brh6NGjdXQGREREREQWlHQa+PFpQOIHMLJNp4saiY5Agh2+lomZm7iapL0SWkTKz89Hhw4d8Omnn5a7z0MPPYSkpCTT7X//+1+Fba5fvx7Tpk3DnDlzcOLECXTo0AEDBgxAamqqpeMTEREREVlOzi3g+8cBXb7oJEQ1ti83QHQEsgI/Hk/Ap7uvio5BdUDojGcDBw7EwIEDK9xHqVQiKCioym0uW7YMkydPxsSJEwEAK1euxNatW/H1119jxowZtcpLRERERFQntOriAlJe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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"\n",
"# Topic modeling using LDA\n",
"def topic_modeling(sentences, num_topics):\n",
" vectorizer = CountVectorizer()\n",
" X = vectorizer.fit_transform(sentences)\n",
" lda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\n",
" lda.fit(X)\n",
" return lda, vectorizer\n",
"\n",
"# Assign sentences to themes based on dominant topics\n",
"def assign_sentences_to_themes(lda, vectorizer, sentences):\n",
" theme_sentences = {i: [] for i in range(lda.n_components)}\n",
" for sent in sentences:\n",
" X_sent = vectorizer.transform([sent])\n",
" topic_idx = lda.transform(X_sent).argmax()\n",
" theme_sentences[topic_idx].append(sent)\n",
" return theme_sentences\n",
"\n",
"# Visualize themes using a bar chart and pie chart\n",
"def visualize_themes(theme_freq):\n",
" plt.figure(figsize=(12, 6))\n",
"\n",
" plt.subplot(1, 2, 1)\n",
" plt.bar(theme_freq.keys(), theme_freq.values())\n",
" plt.xlabel(\"Themes\")\n",
" plt.ylabel(\"Frequency\")\n",
" plt.title(\"Themes Frequency (Bar Chart)\")\n",
"\n",
" plt.subplot(1, 2, 2)\n",
" plt.pie(theme_freq.values(), labels=theme_freq.keys(), autopct=\"%1.1f%%\")\n",
" plt.title(\"Themes Distribution (Pie Chart)\")\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"# Extract the most relevant words for each topic\n",
"def extract_topic_keywords(lda, vectorizer, num_words=5):\n",
" feature_names = vectorizer.get_feature_names_out()\n",
" topic_keywords = []\n",
" for topic_idx, topic in enumerate(lda.components_):\n",
" top_words_idx = topic.argsort()[-num_words:][::-1]\n",
" top_words = [feature_names[i] for i in top_words_idx]\n",
" topic_keywords.append(top_words)\n",
" return topic_keywords\n",
"\n",
"# Generate theme names based on sentence content\n",
"def generate_theme_names(theme_sentences, num_words=3):\n",
" theme_names = []\n",
" for sentences in theme_sentences.values():\n",
" words = []\n",
" for sent in sentences:\n",
" words.extend(word_tokenize(sent.lower()))\n",
" fdist = FreqDist(words)\n",
" top_words = [word for word, _ in fdist.most_common(num_words)]\n",
" theme_names.append(\" \".join(top_words))\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"/content/challenges.csv\"\n",
" num_topics = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" lda, vectorizer = topic_modeling(preprocessed_sentences, num_topics)\n",
" theme_sentences = assign_sentences_to_themes(lda, vectorizer, sentences)\n",
" theme_freq = {f\"Theme {i + 1}\": len(theme_sentences[i]) for i in range(num_topics)}\n",
"\n",
" # Extract most relevant words for each topic\n",
" topic_keywords = extract_topic_keywords(lda, vectorizer)\n",
"\n",
" # Generate theme names based on sentence content\n",
" theme_names = generate_theme_names(theme_sentences)\n",
"\n",
" # Print themes and their most relevant words\n",
" for theme, freq, keywords, name in zip(theme_freq.keys(), theme_freq.values(), topic_keywords, theme_names):\n",
" print(f\"{theme}: {freq} sentences\")\n",
" print(\"Keywords:\", \", \".join(keywords))\n",
" print(\"Theme Name:\", name)\n",
" print()\n",
"\n",
" visualize_themes(theme_freq)\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "WZplVyUA6lwh",
"outputId": "8cd84e09-a0a3-4a78-f8de-54e4a1a1fdcb"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Theme 1: 9 sentences\n",
"Keywords: project, rather, work, mostly, many\n",
"Theme Name: not in rather\n",
"\n",
"Theme 2: 19 sentences\n",
"Keywords: process, one, mindset, l4, l3\n",
"Theme Name: the in not\n",
"\n",
"Theme 3: 14 sentences\n",
"Keywords: client, lack, people, communication, process\n",
"Theme Name: not of client\n",
"\n",
"Theme 4: 7 sentences\n",
"Keywords: team, lack, need, collaboration, marketing\n",
"Theme Name: team ( we\n",
"\n",
"Theme 5: 10 sentences\n",
"Keywords: sales, team, product, within, leaders\n",
"Theme Name: for no team\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 2 Axes>"
],
"image/png": "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X73wwgvq2LGjPD09tWPHjirPlZiYqHnz5umiiy6q8htWV1dXPfDAA5VGF2VmZlZ8axYYGKhJkyYpPz/fbp/58+frwgsvVFhYmDw9PdWjRw/NnTu30jmio6M1evRo/fDDD+rXr5+8vb01b948WSwW5eXlaeHChRXD3G+66aaK4/r27avg4GB9+eWXJ30/AaCp4xqljLe3t959910FBwfrqaeekmEYFdtOvLbIycnRP/7xD0VHR8vT01NhYWG66KKLtHnzZkll1wlLlizRgQMHKn7HlF+LlE+x+vDDD/XYY4+pbdu28vHxUXZ2dpVrGJXbtGmTBg4cKG9vb8XExFQqrCxYsEAWi0UJCQl27Sf2ebJs1a1h9OOPP2rw4MHy9fVVUFCQLr/88koFx/K/+7i4uFP+Dq/KkiVLVFpaqmHDhp1yX0kVX+bs37/f7vwnqsl1XVWeffZZ5ebm6q233rIrFpXr1KmTpk6dWqn9iy++0GmnnSZPT0/17NlT33//vd32AwcO6M4771TXrl3l7e2t1q1b65prrqn091b+9/nTTz/pzjvvVFhYmNq1a6cnnnhCDz74oCQpJiam4u/w+OMvuugi/frrr0pPTz/l6wQkRhgBpnvmmWfk4uKiBx54QFlZWXr22Wd1/fXX282V//HHHzVixAj17dtX06dPl4uLS8WH4l9++UVnn322XZ/XXnutunfvrmeeeUZLlizRv//9bwUHB2vevHm68MILNWvWLL333nt64IEHdNZZZ+m8886TVHZheNlll+nXX3/Vrbfequ7du+uPP/7Q888/rz179lSs6fLnn39q9OjROv300/Xkk0/K09NTcXFxlS4Oq1NSUlJp8WIfH5+KUURpaWkaMWKExo0bpxtuuEFt2rSpcTZJuuWWW7Ro0SJdd911GjhwoH788UeNGjWqtn81dp566in93//9n8aOHatbbrlFx44d08svv6zzzjtPv//+u92w34yMDF1yySW66qqrNHbsWH366ad66KGH1KtXL40YMUJS2do9o0eP1ooVKzRu3DhNnTpVOTk5WrZsmbZv366OHTvqhhtu0LPPPqv09HQFBwdX9P/1118rOzv7lKO01qxZoz59+lS7vfxiwWaz6fDhw5o5c6a8vLzsRiRlZ2frzTff1Pjx4zVlyhTl5OTorbfe0vDhw6ucujZ//nwVFhbq1ltvlaen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m2++qVtuuUXTpk3T0KFDddVVV2nMmDFycTl1HTokJOSk89Dbtm1bafh1TbMdOHBALi4ulaYQde3a9ZS5qrN3714ZhqHOnTtXuf3EO4a0a9euUjGnVatW2rZtW8Xz+Ph4de3a9ZSLME6YMEF33323Dhw4oKioKH3yyScqKSmp8VQu47h1Fk503nnn2f1MjBkzRp07d9Y999xjd5G5cOFCzZ49W7t27VJJSUlFe0xMTKU+q2qrSkBAgKSTX3RX5WT/Xsr7XL16taZPn661a9dWKuhkZWUpMDCw1nlPVP6+cpc0AM1ZS7xGOZnc3FxJJy8WPPvss5o4caLat2+vvn37auTIkZowYYJiY2NrfJ7a/G6KjIystNhxly5dJJWtO3TOOefUuK/aOHDggKSqr6+6d++uH374odJCzDX5HV6dk13PPP744xo8eLBcXV0VEhKi7t27n/T6qrbXdcdz1PWLVPb6y/8tSWV33Hv66ac1f/58HT582O41n/iFl1S3axiuX1BbFIwAk1X3zUD5/9DLvx177rnnqr1z1Ynzy6vq81TnKT9Xr169Kt0ytlz79u0llX0D8vPPP2vlypVasmSJvv/+e3300Ue68MILtXTp0lp/23Giqr5Vq2m22qjul6XVaq10bovFou+++67K11aT9186+cVOdcaNG6f77rtP7733nh555BEtWrRI/fr1O2UBLDg4WBaLxe5C5FT8/PzUv39/ffnllxUXeYsWLdJNN92kK664Qg8++KDCwsLk6uqqp59+umKNgOPV9BvRbt26SZL++OOPWt2R7VTvbXx8vIYOHapu3bppzpw5at++vTw8PPTtt9/q+eefr/Rtc03znigjI0M+Pj51Ph4AmgKuUext375dkqq8tXu5sWPHavDgwfr888+1dOlSPffcc5o1a5YWL15csY7hqTj6d0tNr3caWl2vj1q3bn3S65levXrVeEFsqfbXdccLCAhQZGRkxc9CTdXktd9zzz2aP3++/vGPf2jAgAEKDAyUxWLRuHHjqhwtV5efk/L38cQCLVAdCkaAkysfKRMQEFCrX4Z1PdfWrVs1dOjQU37z4OLioqFDh2ro0KGaM2eO/vOf/+jRRx/VypUrGyRnTbNFRUXJZrNVjOApt3v37kr7tmrVSpmZmZXay781O/7chmEoJiam4lu7+urYsaPWrVunkpKSk36TFRwcrFGjRum9997T9ddfr9WrV+uFF144Zf9ubm7q2LFjxR1Caqq0tFRS2beovr6++vTTTxUbG6vFixfbve/Tp0+vVb8nGjFihFxdXbVo0aJaL3x9Ml9//bWKior01Vdf2X2bd7Lh5VU51c///v371b179zplBIDmoiVdo+Tm5urzzz9X+/btT/n//4iICN1555268847lZKSoj59+uipp56qKBg5cnTHkSNHKo3k2bNnjyRVLDpdPpLnxGueE693apOtfAHqqq6vdu3apZCQkFPe5r2munXrps8++8whfUn1v64bPXq0/ve//2nt2rUaMGCAw3J9+umnmjhxot0dAgsLC6u8Vq1OTa5fJHENgxpjDSPAyfXt21cdO3bUf//734qh0Mc7duyYw841duxYHT58WG+88UalbQUFBcrLy5OkKm/FWf7N4om3tm3sbOUXYy+99JLdPlUVWTp27KisrCy7qWJJSUn6/PPP7fa76qqr5OrqqhkzZlT6FswwDLsh8zV19dVXKzU1Va+88kqlbSee48Ybb9SOHTv04IMPytXVVePGjavROQYMGKCNGzfWOFN6errWrFmj8PBwhYWFSfr7G7HjM61bt05r166tcb9Vad++vaZMmaKlS5fq5ZdfrrTdZrNp9uzZSkxMrFW/VeXNysrS/Pnza9WPr6/vSS/QNm/eXKu7owBAc9RSrlEKCgp04403Kj09XY8++uhJR+ycOHUoLCxMkZGRduf29fWtcopRXZSWlmrevHkVz4uLizVv3jyFhoaqb9++kv4u7P388892Wf/3v/9V6q+m2SIiItS7d28tXLjQ7vfl9u3btXTpUo0cObKuL6mSAQMGKCMjw269n/qo73Xdv/71L/n6+uqWW25RcnJype3x8fF68cUXa53L1dW1Up6XX365ViPByot01V3DbNq0SRaLxaGFLjRvjDACnJyLi4vefPNNjRgxQj179tSkSZPUtm1bHT58WCtXrlRAQIC+/vprh5zrxhtv1Mcff6zbb79dK1eu1Lnnniur1apdu3bp448/1g8//KB+/frpySef1M8//6xRo0YpKipKKSkpeu2119SuXTsNGjTIIVnqmq13794aP368XnvtNWVlZWngwIFasWKF4uLiKvU5btw4PfTQQ7ryyit17733Kj8/X3PnzlWXLl3sFhfs2LGj/v3vf+vhhx9WQkKCrrji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2r59u2JjY62Od15a4ry0a9dODz30kJKTkxUQEKBVq1Zp6tSpioyMVG5urtXxzqklzsl39uzZo3vvvVdDhgyxOsoFa6nzEhoa6vI+DMOwMA0AAIDvYoWRD4iOjm58hIWFyTAMl23BwcGN+27atEmZmZlyOp3Kzs52+UuzJK1cuVIZGRlyOBxKTExUQUGB6urqGn9vGIaKi4uVl5cnp9OplJQUbdiwQTt37lROTo6CgoKUnZ2tXbt2XdC4p+rXr58ef/xxXXvttT57a+WWOC//8z//ozvuuEO9e/dWcnKyfve736mhoUHr1q1z06fW/FrivOTk5GjcuHFKSUlR165dNWPGDKWnp+u9995z06fWvFrinEhSfX29Jk2apIKCAiUmJrrhk/Ksljovp76PqKgoN3xaAAAArZAJn/L888+bYWFhp23/3//9X1OSOWDAALO0tNTcvn27OWTIEDM7O7txn3feeccMDQ01S0pKzF27dplr1qwxExISzLlz5zbuI8mMjY01V6xYYZaVlZn5+flmQkKC+aMf/ch84403zB07dpgDBw40R44ceUHjnk18fLxZVFR00Z+JN2iJ82KapllZWWk6HA7z1VdfvbgPxmItcV4aGhrMtWvXmk6n01yzZs3FfzgWaUlzMmfOHDM/P980TdO86aabzB//+MeX9uFYqKXMy/PPP2/6+fmZcXFxZqdOncyrrrrK3LZtm3s+JAAAgFaGwsjHnOsv9WvXrm3c9tprr5mSzBMnTpimaZpDhw41H374YZfXLV261IyJiWl8LsmcPXt24/MNGzaYksxnn322cdsf/vAH0+FwND4/n3HPpjUURr44L6ZpmrfffruZmJjYmNXXtKR5qaioMIOCgky73W4GBga6HMOXtJQ5effdd83Y2Fjz0KFDpmm2/MLIV+Zl/fr15u9//3vzn//8p1laWmrm5eWZoaGh5meffXaOTwAAAACn4hpGLUx6enrjzzExMZKkgwcPKi4uTlu2bNH777+vhQsXNu5TX1+v6upqHT9+XE6n87QxvlvKn5aW5rKturpalZWVCg0NPe9xWzNfnJdHHnlEy5cvV2lpaYu9aKwvzUtISIg2b96sqqoqrVu3TjNnzlRiYqJycnIu/YPwIr4wJ0ePHtWNN96oJUuWqH379m58997LF+ZFkrKyspSVldX4PDs7WykpKSouLtb8+fMv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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn.cluster import KMeans\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"# TF-IDF vectorization\n",
"def tfidf_vectorization(sentences):\n",
" tfidf_vectorizer = TfidfVectorizer()\n",
" tfidf_matrix = tfidf_vectorizer.fit_transform(sentences)\n",
" return tfidf_matrix, tfidf_vectorizer\n",
"\n",
"# K-means clustering\n",
"def kmeans_clustering(tfidf_matrix, num_clusters):\n",
" km = KMeans(n_clusters=num_clusters, random_state=42)\n",
" km.fit(tfidf_matrix)\n",
" return km.labels_\n",
"\n",
"# Generate theme names based on clustering results\n",
"def generate_theme_names(sentences, num_clusters):\n",
" tfidf_matrix, tfidf_vectorizer = tfidf_vectorization(sentences)\n",
" cluster_labels = kmeans_clustering(tfidf_matrix, num_clusters)\n",
" theme_names = {}\n",
"\n",
" for i in range(num_clusters):\n",
" cluster_sentences = [sentences[j] for j in range(len(sentences)) if cluster_labels[j] == i]\n",
" theme_names[f\"Theme {i + 1}\"] = cluster_sentences\n",
"\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"challenges.csv\"\n",
" num_clusters = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" theme_names = generate_theme_names(sentences, num_clusters)\n",
"\n",
" print(\"Based on the provided text, the issues and challenges can be summarized into the following themes:\")\n",
" for theme, sentences in theme_names.items():\n",
" print(f\"{theme}:\")\n",
" for sent in sentences:\n",
" print(\"-\", sent)\n",
" print()\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QBg9xdt68Ncm",
"outputId": "4fd7e164-dde5-4cf0-c272-dc13e9c40e2f"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n",
"/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
" warnings.warn(\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Based on the provided text, the issues and challenges can be summarized into the following themes:\n",
"Theme 1:\n",
"- Lack of due deligence with client interactions\n",
"- Haven't developed a project that competes in the market\n",
"- Lack of collaboration between L3/L4 across the chapters\n",
"- Lack of communication both internal and external\n",
"- L3 & L4 involvement in terms of marketing activities\n",
"- We were too late in marketing our capabilities\n",
"- Need to still refine our digital marketing strategies/capabilities\n",
"- Tight project schedule will create impact in upskill\n",
"- Strict in process- Not analyxing the need\n",
"- Lack of experience\n",
"\n",
"Theme 2:\n",
"- Lack of sales partners & \"Door knocking\" team\n",
"- Open up for cross team appreciation\n",
"- Proper coordination with sales and engineering team\n",
"- Cross team collaboration\n",
"- Process not followers by some business unit - one team\n",
"one culture is missing\n",
"- Stop muscling and fight as one team with shares responsibilities\n",
"\n",
"Theme 3:\n",
"- No direct/travel for makrketing/sales visit for opportunities\n",
"- Not being present in foreign locations physically\n",
"- Not my job attitude\n",
"- Hesitation\n",
"- Mostly it is derm and comb rather than definite\n",
"- Not sure why we are building this project\n",
"- Less product initiation\n",
"- Should have focussed on few products\n",
"- salary correction\n",
"- Being financially conservative (We can pay more)\n",
"- Sometimes there is communication gap\n",
"- Developers hidden away(Only few front)\n",
"- Resource shadowing\n",
"- Mostly it’s the fantastic 4 & they have limitations\n",
"- Recent recruitments not seeing commited as previous 3 batch\n",
"- Not predicting - few cases\n",
"- Technology and process definition from the client\n",
"- Leaders are doers and not mostly innovators\n",
"- Conscious growth rather than disruptive approach\n",
"- Losing a customer\n",
"- Better branding\n",
"- Bringing new/fresh minds\n",
"- Setting high stardards during hiring process\n",
"- Setting high expectations on recruitment\n",
"- Need more kaders and ideas\n",
"- Sometimes stop me - Fear or mistake\n",
"- No meeting discussion happen within units around solutions.\n",
"And product conversion\n",
"- Geographical/ Cultural difference\n",
"- Not defing clear requirements\n",
"- Can't follow process in all at our projects which creates process\n",
"lag within the people\n",
"- Mentorship viod for leaders\n",
"- Protecting your own\n",
"- Risk taking- Middle class values\n",
"- Comfort zone - who we are? Are we doing the same thing\n",
"\n",
"Theme 4:\n",
"- Few negative mindset\n",
"- Mindset change\n",
"- Mindset change (Organic)\n",
"\n",
"Theme 5:\n",
"- Selling people to the client\n",
"- Learning path for people is not probably managed because\n",
"of project / pressure\n",
"- No work life balance\n",
"- Too much stress\n",
"- Too many people getting into same work\n",
"- Too many meetings for Sm3 context\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn.cluster import KMeans\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"# TF-IDF vectorization\n",
"def tfidf_vectorization(sentences):\n",
" tfidf_vectorizer = TfidfVectorizer()\n",
" tfidf_matrix = tfidf_vectorizer.fit_transform(sentences)\n",
" return tfidf_matrix, tfidf_vectorizer\n",
"\n",
"# K-means clustering\n",
"def kmeans_clustering(tfidf_matrix, num_clusters):\n",
" km = KMeans(n_clusters=num_clusters, random_state=42)\n",
" km.fit(tfidf_matrix)\n",
" return km.labels_\n",
"\n",
"# Generate theme names based on clustering results\n",
"def generate_theme_names(sentences, num_clusters):\n",
" tfidf_matrix, tfidf_vectorizer = tfidf_vectorization(sentences)\n",
" cluster_labels = kmeans_clustering(tfidf_matrix, num_clusters)\n",
" theme_names = {}\n",
"\n",
" for i in range(num_clusters):\n",
" cluster_sentences = [sentences[j] for j in range(len(sentences)) if cluster_labels[j] == i]\n",
" theme_names[f\"Theme {i + 1}\"] = cluster_sentences\n",
"\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"challenges.csv\"\n",
" num_clusters = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" theme_names = generate_theme_names(sentences, num_clusters)\n",
"\n",
" print(\"Based on the provided text, the issues and challenges can be summarized into the following themes:\")\n",
" for theme, sentences in theme_names.items():\n",
" print(f\"{theme}:\")\n",
" for sent in sentences:\n",
" print(\"-\", sent)\n",
" print()\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kMEvisCJ8-Qx",
"outputId": "9b622370-b396-4d26-eb75-fa91e579b9c6"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Based on the provided text, the issues and challenges can be summarized into the following themes:\n",
"Theme 1:\n",
"- Lack of due deligence with client interactions\n",
"- Haven't developed a project that competes in the market\n",
"- Lack of collaboration between L3/L4 across the chapters\n",
"- Lack of communication both internal and external\n",
"- L3 & L4 involvement in terms of marketing activities\n",
"- We were too late in marketing our capabilities\n",
"- Need to still refine our digital marketing strategies/capabilities\n",
"- Tight project schedule will create impact in upskill\n",
"- Strict in process- Not analyxing the need\n",
"- Lack of experience\n",
"\n",
"Theme 2:\n",
"- Lack of sales partners & \"Door knocking\" team\n",
"- Open up for cross team appreciation\n",
"- Proper coordination with sales and engineering team\n",
"- Cross team collaboration\n",
"- Process not followers by some business unit - one team\n",
"one culture is missing\n",
"- Stop muscling and fight as one team with shares responsibilities\n",
"\n",
"Theme 3:\n",
"- No direct/travel for makrketing/sales visit for opportunities\n",
"- Not being present in foreign locations physically\n",
"- Not my job attitude\n",
"- Hesitation\n",
"- Mostly it is derm and comb rather than definite\n",
"- Not sure why we are building this project\n",
"- Less product initiation\n",
"- Should have focussed on few products\n",
"- salary correction\n",
"- Being financially conservative (We can pay more)\n",
"- Sometimes there is communication gap\n",
"- Developers hidden away(Only few front)\n",
"- Resource shadowing\n",
"- Mostly it’s the fantastic 4 & they have limitations\n",
"- Recent recruitments not seeing commited as previous 3 batch\n",
"- Not predicting - few cases\n",
"- Technology and process definition from the client\n",
"- Leaders are doers and not mostly innovators\n",
"- Conscious growth rather than disruptive approach\n",
"- Losing a customer\n",
"- Better branding\n",
"- Bringing new/fresh minds\n",
"- Setting high stardards during hiring process\n",
"- Setting high expectations on recruitment\n",
"- Need more kaders and ideas\n",
"- Sometimes stop me - Fear or mistake\n",
"- No meeting discussion happen within units around solutions.\n",
"And product conversion\n",
"- Geographical/ Cultural difference\n",
"- Not defing clear requirements\n",
"- Can't follow process in all at our projects which creates process\n",
"lag within the people\n",
"- Mentorship viod for leaders\n",
"- Protecting your own\n",
"- Risk taking- Middle class values\n",
"- Comfort zone - who we are? Are we doing the same thing\n",
"\n",
"Theme 4:\n",
"- Few negative mindset\n",
"- Mindset change\n",
"- Mindset change (Organic)\n",
"\n",
"Theme 5:\n",
"- Selling people to the client\n",
"- Learning path for people is not probably managed because\n",
"of project / pressure\n",
"- No work life balance\n",
"- Too much stress\n",
"- Too many people getting into same work\n",
"- Too many meetings for Sm3 context\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n",
"/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn.cluster import KMeans\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"# TF-IDF vectorization\n",
"def tfidf_vectorization(sentences):\n",
" tfidf_vectorizer = TfidfVectorizer()\n",
" tfidf_matrix = tfidf_vectorizer.fit_transform(sentences)\n",
" return tfidf_matrix, tfidf_vectorizer\n",
"\n",
"# K-means clustering\n",
"def kmeans_clustering(tfidf_matrix, num_clusters):\n",
" km = KMeans(n_clusters=num_clusters, random_state=42)\n",
" km.fit(tfidf_matrix)\n",
" return km.labels_\n",
"\n",
"# Generate theme names based on clustering results and keywords\n",
"def generate_theme_names(sentences, num_clusters):\n",
" tfidf_matrix, tfidf_vectorizer = tfidf_vectorization(sentences)\n",
" cluster_labels = kmeans_clustering(tfidf_matrix, num_clusters)\n",
" theme_names = {}\n",
"\n",
" for i in range(num_clusters):\n",
" cluster_sentences = [sentences[j] for j in range(len(sentences)) if cluster_labels[j] == i]\n",
" keywords_matrix = tfidf_vectorizer.transform(cluster_sentences)\n",
" keywords = tfidf_vectorizer.get_feature_names_out()[keywords_matrix.sum(axis=0).argmax()]\n",
" theme_name = \" \".join(keywords.split())\n",
" theme_names[theme_name] = cluster_sentences\n",
"\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"challenges.csv\"\n",
" num_clusters = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" theme_names = generate_theme_names(sentences, num_clusters)\n",
"\n",
" print(\"Based on the provided text, the issues and challenges can be summarized into the following themes:\")\n",
" for theme_name, sentences in theme_names.items():\n",
" print(f\"{theme_name}:\")\n",
" for sent in sentences:\n",
" print(\"-\", sent)\n",
" print()\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "UPn285H89g85",
"outputId": "e0ded1ba-5c52-4839-b72a-d50264292acc"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n",
"/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
" warnings.warn(\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Based on the provided text, the issues and challenges can be summarized into the following themes:\n",
"of:\n",
"- Lack of due deligence with client interactions\n",
"- Haven't developed a project that competes in the market\n",
"- Lack of collaboration between L3/L4 across the chapters\n",
"- Lack of communication both internal and external\n",
"- L3 & L4 involvement in terms of marketing activities\n",
"- We were too late in marketing our capabilities\n",
"- Need to still refine our digital marketing strategies/capabilities\n",
"- Tight project schedule will create impact in upskill\n",
"- Strict in process- Not analyxing the need\n",
"- Lack of experience\n",
"\n",
"team:\n",
"- Lack of sales partners & \"Door knocking\" team\n",
"- Open up for cross team appreciation\n",
"- Proper coordination with sales and engineering team\n",
"- Cross team collaboration\n",
"- Process not followers by some business unit - one team\n",
"one culture is missing\n",
"- Stop muscling and fight as one team with shares responsibilities\n",
"\n",
"not:\n",
"- No direct/travel for makrketing/sales visit for opportunities\n",
"- Not being present in foreign locations physically\n",
"- Not my job attitude\n",
"- Hesitation\n",
"- Mostly it is derm and comb rather than definite\n",
"- Not sure why we are building this project\n",
"- Less product initiation\n",
"- Should have focussed on few products\n",
"- salary correction\n",
"- Being financially conservative (We can pay more)\n",
"- Sometimes there is communication gap\n",
"- Developers hidden away(Only few front)\n",
"- Resource shadowing\n",
"- Mostly it’s the fantastic 4 & they have limitations\n",
"- Recent recruitments not seeing commited as previous 3 batch\n",
"- Not predicting - few cases\n",
"- Technology and process definition from the client\n",
"- Leaders are doers and not mostly innovators\n",
"- Conscious growth rather than disruptive approach\n",
"- Losing a customer\n",
"- Better branding\n",
"- Bringing new/fresh minds\n",
"- Setting high stardards during hiring process\n",
"- Setting high expectations on recruitment\n",
"- Need more kaders and ideas\n",
"- Sometimes stop me - Fear or mistake\n",
"- No meeting discussion happen within units around solutions.\n",
"And product conversion\n",
"- Geographical/ Cultural difference\n",
"- Not defing clear requirements\n",
"- Can't follow process in all at our projects which creates process\n",
"lag within the people\n",
"- Mentorship viod for leaders\n",
"- Protecting your own\n",
"- Risk taking- Middle class values\n",
"- Comfort zone - who we are? Are we doing the same thing\n",
"\n",
"mindset:\n",
"- Few negative mindset\n",
"- Mindset change\n",
"- Mindset change (Organic)\n",
"\n",
"too:\n",
"- Selling people to the client\n",
"- Learning path for people is not probably managed because\n",
"of project / pressure\n",
"- No work life balance\n",
"- Too much stress\n",
"- Too many people getting into same work\n",
"- Too many meetings for Sm3 context\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn.cluster import KMeans\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"\n",
"\n",
"# TF-IDF vectorization\n",
"def tfidf_vectorization(sentences):\n",
" tfidf_vectorizer = TfidfVectorizer()\n",
" tfidf_matrix = tfidf_vectorizer.fit_transform(sentences)\n",
" return tfidf_matrix, tfidf_vectorizer\n",
"\n",
"# K-means clustering\n",
"def kmeans_clustering(tfidf_matrix, num_clusters):\n",
" km = KMeans(n_clusters=num_clusters, random_state=42)\n",
" km.fit(tfidf_matrix)\n",
" return km.labels_\n",
"\n",
"# Generate theme names based on the most relevant keywords\n",
"def generate_theme_names(sentences, num_clusters):\n",
" tfidf_matrix, tfidf_vectorizer = tfidf_vectorization(sentences)\n",
" cluster_labels = kmeans_clustering(tfidf_matrix, num_clusters)\n",
" theme_names = {}\n",
"\n",
" for i in range(num_clusters):\n",
" cluster_sentences = [sentences[j] for j in range(len(sentences)) if cluster_labels[j] == i]\n",
" keywords_matrix = tfidf_vectorizer.transform(cluster_sentences)\n",
" keywords = tfidf_vectorizer.get_feature_names_out()[keywords_matrix.sum(axis=0).argmax()]\n",
" theme_name = \" \".join(keywords.split())\n",
" theme_names[theme_name] = cluster_sentences\n",
"\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"challenges.csv\"\n",
" num_clusters = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" theme_names = generate_theme_names(sentences, num_clusters)\n",
"\n",
" print(\"Based on the provided text, the issues and challenges can be summarized into the following themes:\")\n",
" for theme_name, sentences in theme_names.items():\n",
" print(f\"{theme_name.capitalize()}:\")\n",
" for sent in sentences:\n",
" print(\"-\", sent)\n",
" print()\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "nrseB1mr-VyF",
"outputId": "7de262a0-2d3f-4e37-b86f-5d01c8fca9fd"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n",
"/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
" warnings.warn(\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Based on the provided text, the issues and challenges can be summarized into the following themes:\n",
"Of:\n",
"- Lack of due deligence with client interactions\n",
"- Haven't developed a project that competes in the market\n",
"- Lack of collaboration between L3/L4 across the chapters\n",
"- Lack of communication both internal and external\n",
"- L3 & L4 involvement in terms of marketing activities\n",
"- We were too late in marketing our capabilities\n",
"- Need to still refine our digital marketing strategies/capabilities\n",
"- Tight project schedule will create impact in upskill\n",
"- Strict in process- Not analyxing the need\n",
"- Lack of experience\n",
"\n",
"Team:\n",
"- Lack of sales partners & \"Door knocking\" team\n",
"- Open up for cross team appreciation\n",
"- Proper coordination with sales and engineering team\n",
"- Cross team collaboration\n",
"- Process not followers by some business unit - one team\n",
"one culture is missing\n",
"- Stop muscling and fight as one team with shares responsibilities\n",
"\n",
"Not:\n",
"- No direct/travel for makrketing/sales visit for opportunities\n",
"- Not being present in foreign locations physically\n",
"- Not my job attitude\n",
"- Hesitation\n",
"- Mostly it is derm and comb rather than definite\n",
"- Not sure why we are building this project\n",
"- Less product initiation\n",
"- Should have focussed on few products\n",
"- salary correction\n",
"- Being financially conservative (We can pay more)\n",
"- Sometimes there is communication gap\n",
"- Developers hidden away(Only few front)\n",
"- Resource shadowing\n",
"- Mostly it’s the fantastic 4 & they have limitations\n",
"- Recent recruitments not seeing commited as previous 3 batch\n",
"- Not predicting - few cases\n",
"- Technology and process definition from the client\n",
"- Leaders are doers and not mostly innovators\n",
"- Conscious growth rather than disruptive approach\n",
"- Losing a customer\n",
"- Better branding\n",
"- Bringing new/fresh minds\n",
"- Setting high stardards during hiring process\n",
"- Setting high expectations on recruitment\n",
"- Need more kaders and ideas\n",
"- Sometimes stop me - Fear or mistake\n",
"- No meeting discussion happen within units around solutions.\n",
"And product conversion\n",
"- Geographical/ Cultural difference\n",
"- Not defing clear requirements\n",
"- Can't follow process in all at our projects which creates process\n",
"lag within the people\n",
"- Mentorship viod for leaders\n",
"- Protecting your own\n",
"- Risk taking- Middle class values\n",
"- Comfort zone - who we are? Are we doing the same thing\n",
"\n",
"Mindset:\n",
"- Few negative mindset\n",
"- Mindset change\n",
"- Mindset change (Organic)\n",
"\n",
"Too:\n",
"- Selling people to the client\n",
"- Learning path for people is not probably managed because\n",
"of project / pressure\n",
"- No work life balance\n",
"- Too much stress\n",
"- Too many people getting into same work\n",
"- Too many meetings for Sm3 context\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
"from sklearn.decomposition import LatentDirichletAllocation\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"# Bag-of-words vectorization\n",
"def bow_vectorization(sentences):\n",
" vectorizer = CountVectorizer()\n",
" bow_matrix = vectorizer.fit_transform(sentences)\n",
" return bow_matrix, vectorizer\n",
"\n",
"# Latent Dirichlet Allocation (LDA)\n",
"def perform_lda(bow_matrix, num_topics):\n",
" lda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\n",
" lda.fit(bow_matrix)\n",
" return lda\n",
"\n",
"# Extract the most relevant words for each topic\n",
"def extract_topic_keywords(lda, vectorizer, num_words=5):\n",
" topic_keywords = []\n",
" for topic_idx, topic in enumerate(lda.components_):\n",
" top_words_idx = topic.argsort()[-num_words:][::-1]\n",
" top_words = [vectorizer.get_feature_names_out()[i] for i in top_words_idx]\n",
" topic_keywords.append(top_words)\n",
" return topic_keywords\n",
"\n",
"# Generate theme names based on topic keywords\n",
"def generate_theme_names(topic_keywords):\n",
" theme_names = []\n",
" for idx, keywords in enumerate(topic_keywords):\n",
" theme_name = \" \".join(keywords)\n",
" theme_names.append(f\"Theme {idx + 1}: {theme_name}\")\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"challenges.csv\"\n",
" num_topics = 5 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" bow_matrix, vectorizer = bow_vectorization(preprocessed_sentences)\n",
" lda = perform_lda(bow_matrix, num_topics)\n",
" topic_keywords = extract_topic_keywords(lda, vectorizer)\n",
" theme_names = generate_theme_names(topic_keywords)\n",
"\n",
" print(\"Based on the provided text, the issues and challenges can be summarized into the following themes:\")\n",
" for theme_name, sentences in zip(theme_names, topic_keywords):\n",
" print(theme_name)\n",
" for keyword in sentences:\n",
" print(\"-\", keyword)\n",
" print()\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "NHyoOLJR-zZB",
"outputId": "b3aed694-d5fe-4a17-bdbd-4b51e72b8b78"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Based on the provided text, the issues and challenges can be summarized into the following themes:\n",
"Theme 1: project rather work mostly many\n",
"- project\n",
"- rather\n",
"- work\n",
"- mostly\n",
"- many\n",
"\n",
"Theme 2: process one mindset l4 l3\n",
"- process\n",
"- one\n",
"- mindset\n",
"- l4\n",
"- l3\n",
"\n",
"Theme 3: client lack people communication process\n",
"- client\n",
"- lack\n",
"- people\n",
"- communication\n",
"- process\n",
"\n",
"Theme 4: team lack need collaboration marketing\n",
"- team\n",
"- lack\n",
"- need\n",
"- collaboration\n",
"- marketing\n",
"\n",
"Theme 5: sales team product within leaders\n",
"- sales\n",
"- team\n",
"- product\n",
"- within\n",
"- leaders\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import nltk\n",
"from nltk.tokenize import sent_tokenize, word_tokenize\n",
"from nltk.corpus import stopwords\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
"from sklearn.decomposition import LatentDirichletAllocation\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Function to preprocess the text\n",
"def preprocess_text(text):\n",
" words = word_tokenize(text)\n",
" stop_words = set(stopwords.words(\"english\"))\n",
" filtered_words = [word.lower() for word in words if word.lower() not in stop_words]\n",
" return \" \".join(filtered_words)\n",
"\n",
"# Read sentences from CSV or plain text file\n",
"def read_sentences(file_path):\n",
" if file_path.endswith(\".csv\"):\n",
" df = pd.read_csv(file_path)\n",
" # Replace 'your_column_name' with the actual column name in your CSV file.\n",
" sentences = df['challenges'].tolist() # Replace 'your_column_name'\n",
" else:\n",
" with open(file_path, \"r\") as file:\n",
" sentences = file.readlines()\n",
" return sentences\n",
"# Bag-of-words vectorization\n",
"def bow_vectorization(sentences):\n",
" vectorizer = CountVectorizer()\n",
" bow_matrix = vectorizer.fit_transform(sentences)\n",
" return bow_matrix, vectorizer\n",
"\n",
"# Latent Dirichlet Allocation (LDA)\n",
"def perform_lda(bow_matrix, num_topics):\n",
" lda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\n",
" lda.fit(bow_matrix)\n",
" return lda\n",
"\n",
"# Extract the most relevant words for each topic\n",
"def extract_topic_keywords(lda, vectorizer, num_words=5):\n",
" topic_keywords = []\n",
" for topic_idx, topic in enumerate(lda.components_):\n",
" top_words_idx = topic.argsort()[-num_words:][::-1]\n",
" top_words = [vectorizer.get_feature_names_out()[i] for i in top_words_idx]\n",
" topic_keywords.append(top_words)\n",
" return topic_keywords\n",
"\n",
"# Generate theme names based on topic keywords\n",
"def generate_theme_names(topic_keywords):\n",
" theme_names = []\n",
" for idx, keywords in enumerate(topic_keywords):\n",
" theme_name = \" \".join(keywords)\n",
" theme_names.append(f\"Theme {idx + 1}: {theme_name}\")\n",
" return theme_names\n",
"\n",
"# Main function\n",
"def main():\n",
" nltk.download(\"punkt\")\n",
" nltk.download(\"stopwords\")\n",
"\n",
" # Replace 'your_file_path.csv' with the path to your CSV file or plain text file.\n",
" file_path = \"challenges.csv\"\n",
" num_topics = 9 # Number of themes to generate (you can adjust this)\n",
"\n",
" sentences = read_sentences(file_path)\n",
" preprocessed_sentences = [preprocess_text(sent) for sent in sentences]\n",
"\n",
" bow_matrix, vectorizer = bow_vectorization(preprocessed_sentences)\n",
" lda = perform_lda(bow_matrix, num_topics)\n",
" topic_keywords = extract_topic_keywords(lda, vectorizer)\n",
" theme_names = generate_theme_names(topic_keywords)\n",
"\n",
" print(\"Based on the provided text, the issues and challenges can be summarized into the following themes:\")\n",
" for theme_name, sentences in zip(theme_names, topic_keywords):\n",
" print(theme_name)\n",
" for keyword in sentences:\n",
" print(\"-\", keyword)\n",
" print()\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()\n"
],
"metadata": {
"id": "pjB-mzUrDdj1",
"outputId": "2d3ad416-eb6a-4a8c-b77b-6990602bc396",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Based on the provided text, the issues and challenges can be summarized into the following themes:\n",
"Theme 1: project mostly rather create impact\n",
"- project\n",
"- mostly\n",
"- rather\n",
"- create\n",
"- impact\n",
"\n",
"Theme 2: lack team project sales knocking\n",
"- lack\n",
"- team\n",
"- project\n",
"- sales\n",
"- knocking\n",
"\n",
"Theme 3: lack sometimes communication many team\n",
"- lack\n",
"- sometimes\n",
"- communication\n",
"- many\n",
"- team\n",
"\n",
"Theme 4: marketing work l3 l4 cross\n",
"- marketing\n",
"- work\n",
"- l3\n",
"- l4\n",
"- cross\n",
"\n",
"Theme 5: product within meeting conversion units\n",
"- product\n",
"- within\n",
"- meeting\n",
"- conversion\n",
"- units\n",
"\n",
"Theme 6: process people capabilities need ca\n",
"- process\n",
"- people\n",
"- capabilities\n",
"- need\n",
"- ca\n",
"\n",
"Theme 7: people lack project leaders collaboration\n",
"- people\n",
"- lack\n",
"- project\n",
"- leaders\n",
"- collaboration\n",
"\n",
"Theme 8: client definition technology zone thing\n",
"- client\n",
"- definition\n",
"- technology\n",
"- zone\n",
"- thing\n",
"\n",
"Theme 9: mindset process one change team\n",
"- mindset\n",
"- process\n",
"- one\n",
"- change\n",
"- team\n",
"\n"
]
}
]
}
]
}
提供机构:
haridarsan01
原始信息汇总
数据集概述
该数据集详情页面提供了一个用于文本预处理和主题建模的Python脚本。以下是该脚本的主要功能和结构:
主要功能
-
文本预处理:
- 使用NLTK库进行分词、去除停用词和转换为小写。
- 定义了一个
preprocess_text函数来处理输入文本。
-
读取句子:
- 从CSV文件或纯文本文件中读取句子。
- 定义了一个
read_sentences函数来读取文件内容。
-
主题建模:
- 使用Latent Dirichlet Allocation (LDA)进行主题建模。
- 定义了一个
topic_modeling函数来进行主题建模。
-
分配句子到主题:
- 根据主要主题将句子分配到不同的主题。
- 定义了一个
assign_sentences_to_themes函数来分配句子。
-
可视化主题:
- 使用Matplotlib库绘制主题频率的条形图和饼图。
- 定义了一个
visualize_themes函数来进行可视化。
-
提取主题关键词:
- 提取每个主题的关键词。
- 定义了一个
extract_topic_keywords函数来提取关键词。
主要结构
-
导入库:
- 导入了Pandas、NLTK、Scikit-learn和Matplotlib等库。
-
函数定义:
- 定义了多个函数来处理文本、读取文件、进行主题建模、分配句子、可视化主题和提取关键词。
-
主函数:
- 定义了一个
main函数来执行整个流程,包括下载NLTK数据、读取文件、预处理文本、进行主题建模、分配句子、提取关键词和可视化主题。
- 定义了一个
示例输出
- 主题和关键词:
- 示例输出显示了每个主题的句子数量和关键词。
Theme 1: 9 sentences Keywords: project, rather, work, mostly, many
Theme 2: 19 sentences Keywords: process, one, mindset, l4, l3
Theme 3: 14 sentences Keywords: client, lack, people, communication, process
Theme 4: 7 sentences Keywords: team, lack, need, collaboration, marketing
Theme 5: 10 sentences Keywords: sales, team, product, within, leaders
使用方法
- 用户需要替换文件路径和主题数量,然后运行
main函数来执行整个流程。
python def main(): nltk.download("punkt") nltk.download("stopwords")
file_path = "/content/challenges.csv"
num_topics = 5
sentences = read_sentences(file_path)
preprocessed_sentences = [preprocess_text(sent) for sent in sentences]
lda, vectorizer = topic_modeling(preprocessed_sentences, num_topics)
theme_sentences = assign_sentences_to_themes(lda, vectorizer, sentences)
theme_freq = {f"Theme {i + 1}": len(theme_sentences[i]) for i in range(num_topics)}
topic_keywords = extract_topic_keywords(lda, vectorizer)
for theme, freq, keywords in zip(theme_freq.keys(), theme_freq.values(), topic_keywords):
print(f"{theme}: {freq} sentences")
print("Keywords:", ", ".join(keywords))
print()
visualize_themes(theme_freq)
if name == "main": main()
依赖库
- Pandas
- NLTK
- Scikit-learn
- Matplotlib
文件格式
- CSV文件或纯文本文件
主题数量
- 用户可以调整
num_topics变量来设置主题数量。
可视化
- 使用Matplotlib绘制主题频率的条形图和饼图。
关键词提取
- 提取每个主题的关键词并输出。
示例文件路径
/content/challenges.csv
示例主题数量
- 5个主题
示例输出
- 每个主题的句子数量和关键词。



