{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"x4N1GRI4PB61","outputId":"02ff3dba-b805-47ac-d31c-faa12a301762"},"outputs":[{"name":"stdout","output_type":"stream","text":["Mounted at /content/drive\n"]}],"source":["from google.colab import drive\n","drive.mount('/content/drive')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"8v3yfIgiPC-e"},"outputs":[],"source":["path = \"/content/drive/My Drive/KhoaLuan/\""]},{"cell_type":"code","execution_count":null,"metadata":{"id":"d2pFgULmOl9s"},"outputs":[],"source":["import torch\n","import numpy as np\n","import pandas as pd\n","import seaborn as sns\n","import matplotlib.pyplot as plt\n","\n","from sklearn.model_selection import StratifiedKFold\n","from sklearn.metrics import classification_report, confusion_matrix\n","\n","import torch.nn as nn\n","from torch.optim import AdamW\n","from torch.utils.data import Dataset, DataLoader\n","\n","from transformers import get_linear_schedule_with_warmup, AutoTokenizer, AutoModel, logging\n","\n","import warnings\n","import time\n","import pickle\n","warnings.filterwarnings(\"ignore\")\n","\n","logging.set_verbosity_error()"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"QoQ54muyOl9x"},"outputs":[],"source":["def seed_everything(seed_value):\n"," np.random.seed(seed_value)\n"," torch.manual_seed(seed_value)\n","\n"," if torch.cuda.is_available():\n"," torch.cuda.manual_seed(seed_value)\n"," torch.cuda.manual_seed_all(seed_value)\n"," torch.backends.cudnn.deterministic = True\n"," torch.backends.cudnn.benchmark = True\n","\n","seed_everything(86)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":177,"referenced_widgets":["cb4ab79526d440ca83477ff3a04a08a1","5b8c0cae78494560b77e662f62390b6a","a9fd54f8549448c7a0bcddb54f6291a0","975e44350bac401e9a252d91690f403c","96c86a9389b54e93a0b8bc4f1f8062c5","dcf1858dfb5d41cba8b389c8ce5e25df","f1283c390edb43d7a594b1698edb88d6","3194b7dfd003461f820aaf76f6f28e06","e6b4b08966444e48a27761a636f82d2f","29abb95da6bb456b8c93a908b224d595","9fce6620292549bd8680cab5fd9897e3","55efea9e72ee4c2a8dcd996d94b9d7d5","9f49bdbc16574981a5690557df4e86ed","ceec605689804459b4f4ef4a04ed350b","6c0a0e0995044ac68407772af686d110","e25ee9487fa74a46afa7312c114dc3c3","6b9b61cb50434953bdc9ffcc4927ce88","6e4032fac7cd44c287999dc2cc0140f3","b5e76d03302d4b1abff06a50cdcb1ae7","302f6ad8468d4b1ca5e84ff1be0a26cf","607a095cb82f46579d5225425c46d74c","37cfc2155b6942b0bdc2dc15d38d318b","b1a6ea2be64045e79757be9464101305","31f972a384f5484bb2e650f51ab0c07b","9087321a22a04369b3725d5e2c1b66ff","38afe0e6db004016a5041b44d20af4cd","ede18324dd254411adc81ec2060c1205","0b76d88f6b944d168ac720508995afb4","acdf3e8b1b6947fbbeaa4a9dc6bcfd1a","d4bd359fdc0d463fbf13a7939347c025","f0568aaa8be14d69938b16b28520bf58","72905e749d2f4319829bc847485ec12e","d31b652832bf4705a51240f52d3e123e","3f323509e43341078d14adba6014d4ac","b60001ec86c240819b4d1a3c6c36ef53","145fd1ddd7594e028b80d854b6ab1aee","1d3278e129d34725a5464966ea79096c","edf4474b02894f178f85e6753a9a8626","aa41fbef0b4440cbb3d286bb56e76221","304f1513ed774371af3f0a31a2ab62ae","4e66e5fd590049f3900ed96122be7765","c574f94bd30c4f919b27178f7663f04e","080e1c9cf237477abb8a4a886e24909d","454a25bd88f64938b4b479400167c1a0","14adb10381eb4f4481093c14aa902146","98f0555d5062403a9699411c89d313c7","d096bd334125477f9e566c5ee4ef77a4","91446629c2554a59aa3f32b845fb7551","d73cf8f1c1254f5d87846e0e35bf41b8","111f8a76f73a4752bd64cf80bf30c318","040ddedda1174ab6b9408e41c97e2e5c","83729c714d754ebfa84fef037d3c932e","578f14272fdf477dbc8693ab7bdf984e","be7cb164ab3e41eaa6c72209f0c6094e","d1b2dbd6bb054f70aac7f1fd493e3c19"]},"id":"au9SE5_YOl9x","outputId":"c0b300c6-23f9-44e8-b157-bce1e834caa8"},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"cb4ab79526d440ca83477ff3a04a08a1","version_major":2,"version_minor":0},"text/plain":["tokenizer_config.json: 0%| | 0.00/311 [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"55efea9e72ee4c2a8dcd996d94b9d7d5","version_major":2,"version_minor":0},"text/plain":["vocab.txt: 0%| | 0.00/895k [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"b1a6ea2be64045e79757be9464101305","version_major":2,"version_minor":0},"text/plain":["bpe.codes: 0%| | 0.00/1.14M [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"3f323509e43341078d14adba6014d4ac","version_major":2,"version_minor":0},"text/plain":["added_tokens.json: 0%| | 0.00/22.0 [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"14adb10381eb4f4481093c14aa902146","version_major":2,"version_minor":0},"text/plain":["special_tokens_map.json: 0%| | 0.00/167 [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"}],"source":["model_name = \"bluenguyen/longformer-phobert-base-4096\" # vinai/phobert-base-v2\n","max_len = 512 # 256\n","n_classes = 13\n","tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ItGXacmyOl9y"},"outputs":[],"source":["device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\n","EPOCHS = 5\n","N_SPLITS = 5"]},{"cell_type":"markdown","metadata":{"id":"01RxDq7COl9y"},"source":["## Data"]},{"cell_type":"markdown","metadata":{"id":"l4ynf_f2Ol9z"},"source":["### Get data"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"nYjLbabaOl90"},"outputs":[],"source":["# Function to read data from JSON file\n","def get_data(path):\n"," df = pd.read_json(path, lines=True)\n"," return df\n","\n","TRAIN_PATH = path + \"train_data_162k.json\"\n","TEST_PATH = path + \"test_data_162k.json\"\n","VAL_PATH = path + \"val_data_162k.json\"\n","\n","# Read the data from JSON files\n","train_df = get_data(TRAIN_PATH)\n","test_df = get_data(TEST_PATH)\n","valid_df = get_data(VAL_PATH)\n","\n","# Combine train and validation data\n","train_df = pd.concat([train_df, valid_df], ignore_index=True)\n","\n","# Apply StratifiedKFold\n","skf = StratifiedKFold(n_splits=N_SPLITS)\n","for fold, (_, val_) in enumerate(skf.split(X=train_df, y=train_df.category)):\n"," train_df.loc[val_, \"kfold\"] = fold"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Lv08-h2nOl90","outputId":"417804bf-64a2-4f7a-ad2f-4d4990eb59c3"},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
category
\n","
processed_content
\n","
kfold
\n","
\n"," \n"," \n","
\n","
96994
\n","
Xe co
\n","
fiat giới_thiệu động_cơ siêu_sạch air triển_lã...
\n","
3.0
\n","
\n","
\n","
22834
\n","
Phap luat
\n","
cận_cảnh hiện_trường quán karaoke xảy vụ bắn c...
\n","
1.0
\n","
\n","
\n","
14391
\n","
Nha dat
\n","
thổi giá kích_cầu đợt ấm đột_biến thị_trường đ...
\n","
2.0
\n","
\n","
\n","
100151
\n","
Xa hoi
\n","
quảng_ninh người_dân nuôi ngao run phóng_viên ...
\n","
0.0
\n","
\n","
\n","
31397
\n","
Giao duc
\n","
hội tư_vấn xét tuyển đại_học cao_đẳng diễn onl...
\n","
1.0
\n","
\n"," \n","
\n","
"],"text/plain":[" category processed_content kfold\n","96994 Xe co fiat giới_thiệu động_cơ siêu_sạch air triển_lã... 3.0\n","22834 Phap luat cận_cảnh hiện_trường quán karaoke xảy vụ bắn c... 1.0\n","14391 Nha dat thổi giá kích_cầu đợt ấm đột_biến thị_trường đ... 2.0\n","100151 Xa hoi quảng_ninh người_dân nuôi ngao run phóng_viên ... 0.0\n","31397 Giao duc hội tư_vấn xét tuyển đại_học cao_đẳng diễn onl... 1.0"]},"execution_count":6,"metadata":{},"output_type":"execute_result"}],"source":["train_df.sample(5)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"0NQYr2vPOl91","outputId":"857865a2-3ddd-4d20-bced-2d101e767b7d"},"outputs":[{"name":"stdout","output_type":"stream","text":["\n","RangeIndex: 138223 entries, 0 to 138222\n","Data columns (total 3 columns):\n"," # Column Non-Null Count Dtype \n","--- ------ -------------- ----- \n"," 0 category 138223 non-null object \n"," 1 processed_content 138223 non-null object \n"," 2 kfold 138223 non-null float64\n","dtypes: float64(1), object(2)\n","memory usage: 3.2+ MB\n","\n","RangeIndex: 24126 entries, 0 to 24125\n","Data columns (total 2 columns):\n"," # Column Non-Null Count Dtype \n","--- ------ -------------- ----- \n"," 0 category 24126 non-null object\n"," 1 processed_content 24126 non-null object\n","dtypes: object(2)\n","memory usage: 377.1+ KB\n"]},{"data":{"text/plain":["(None, None)"]},"execution_count":9,"metadata":{},"output_type":"execute_result"}],"source":["train_df.info(), test_df.info()"]},{"cell_type":"markdown","metadata":{"id":"3su2QfYwOl92"},"source":["### Distribution of Categories"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":767},"id":"QceYF-mFOl92","outputId":"6d47e4c4-5613-45ae-ff2e-bc83ff1fd557"},"outputs":[{"data":{"image/png":"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rFhhLDPjvl5ybt68qcOHDzc+B9bXfuTIEXVxcdGvvvpKVe/v+1mDvq+vr06ePPmF10r4TwNGjBihFotFK1WqZCxLfARk0KBBWrFiRR00aFCa68ncv3+/lixZUoODg40d6Js3b+pXX32lZ8+e1X/++UfLli2rISEhqvp/EyI2btzYOIUirUo8IeQff/yhN2/e1GrVqhmdJtHR0err66uOjo7apk0be5X53D04Md2OHTt02LBhev78eZvly5cv1zx58mi7du3S1I7lX3/9pbt27dLOnTuri4uLrlixIknniOr976S0tKPwKPPmzdNy5crZbJPTp0/ra6+9pvXr13+pjqo9q8TvifDwcC1durT+9NNPum3bNu3evbv6+vraDNmePHmyjho1SseNG2cchezatavWr1/fmCjRLBISEjQmJkZr1aqlo0ePNpbfvXtXO3TooL6+vrp//35VvX9E95dffjF9R9HD7N27V/Pnz2+MPLp8+bJmzpxZixQpoiEhIcbRyRs3bqiqpslzlFXvv0dKly6t9evX1/Xr12urVq2Mc5KjoqI0ICBAq1SpomvWrDHuc/78eWOkjerLN6IvISFBb9y4ofXr19eRI0farLOGuMuXL+uWLVt0wIABOn36dGMEhNklJCQ89Df57Nmz6uPjo927d7c59eH69etaoUIFXbVq1QusMnV48Dd5wYIFOmnSJCNr9e/fX1955RXds2eP0eb69evq7e2tCxYseKG1qhL+04RPPvlE+/fvrzly5NAWLVoYyxPvgPfp00erVq2a5AhtWjBjxgytWrWqtm/f3hgBcP36dVVV/eKLL9Tf399YvnTpUq1Ro4bmz58/zZ7vpXp/cr8WLVroyZMnjWUnT55UT09P/f7771X1/g9my5Ytddu2baYNK5s2bdL//e9/+v777xvLJk+erFmyZNFRo0YlmX192rRp6uLiom3atEkTHQAPHgFq27aturi46KpVq4zvn48//jhNn9+fmHVH65NPPlEvL68ko7H27dunFovFVDNqP6mvv/5a27VrZ4wyUr0fPPr166dlypTRDz/8MMl9Ll++rKGhoZotWzY9evToiyz3hbl7966WL19eP/jgA1X9v479+Ph49fHx0Q4dOtixutRhxYoVxqR+v//+uxYuXFhDQkJ07Nixmi1bNu3Zs6fN6Ku02Alp/Y757bff1NvbW2vXrq2VKlWymbzv8uXLGhAQoNWqVdOvv/46yXZ6WbdbXFycent7G6OIHtxfSWsT+1nnTrF25OzcuVPff/99nTBhgnHQZ82aNZolSxbt0qWLbtiwQX///XcdMmSI5sqVK01edSbx5a7v3Lmjr732mvr5+ens2bP17t27evXqVQ0ODtZ06dLpiBEjdPz48VqvXj318fGxS4cZ4T8N2bx5s2bPnt2mA0BVjfPa0lrwT/yBmz59utarV087duxoc47SmDFjtHTp0saIiKFDh+pHH31kynNH/4t169Zp5syZtWvXrsYcCDExMVquXDlt0KCBbtmyRQMCArRu3brGD+nLOBTwcS5evKjdu3dXf39/mw6A6dOna548eXT48OE2P4Rffvml+vj4aJUqVUw51D85if/v27Vrp1mzZtUJEyZoaGioOjg4pMmh/tadhYftMIeHh6vFYjGuxmJ18uRJ9fb2ThMdR4lFRkZq48aNNVu2bEkuvWXtAPDz89NRo0YZy//66y+dO3euVq5c2bRzSFgvq1q5cmVt2bKlsdz6+zRgwABt0KCBvcpLNW7cuKEnT57UuLg4rV+/vs3VVv73v/+pu7u7vvXWW6b8jXoSD4bdEydO6KuvvqoZM2bUb7/91mZdRESEBgYGqre3t27fvv1Flvnc3LlzR4sUKWJzaUfrNjlz5ox+9NFHaebc9UWLFmm2bNmM1/vtt9/qK6+8ohUrVtT8+fOru7u78X26du1aLV++vObKlUuLFSuWJuaeeZjEv+HWkVXR0dHavn17rVixos6ZM0fv3bund+/e1UmTJmn58uW1Zs2aGhwcbLdTZQj/JvH+++8nOf/mQQkJCbplyxbNkSOHvvHGG/rnn3/qyJEj1cvLK80Ff9X/+8Du3r1bBwwYoF5eXuro6KidO3c2PsA//fSTOjo6arVq1TQgIEBdXFyMWdvTgoSEhGSP2oeFhWnWrFm1c+fORgfA119/reXKldPChQtrrVq1TD2rv/XL+urVq9qnTx+tUaOGzdHHqVOnGh0A1g62ESNG6Lx589LE6TUPhtrEP26hoaFapUoVLVeunGmD2aNYOx6tIW3fvn26ePFi3bhxozEz8vvvv68ZMmTQ6dOn66VLlzQmJkaHDx+uhQoVMv2O6MM6Rg4fPqxt2rTRvHnz6qJFi2zaX7hwQTt37qwdO3a0uc+VK1dMc7naxJeh+/vvvzU2NtY4Qrdt2zZ1cnKy6fxQVW3ZsqW2a9fOlN+/ybG+1jt37iQZvv/7779riRIldNOmTap6v4OoefPm+u6775rm8nTPYseOHcZ2OHPmjJYuXVrr1q2bZN/y8uXL2rdvX1N0lljfL7Nnz9acOXPq/PnzbdYPGDBAq1evniZ+s1Xvd/z4+flp8eLF9fLly9q/f39duHCh3rt3Ty9cuKBNmjTR7NmzG6PPLl++rMeOHdM9e/aY/nfpYRJ/t65evVpr1qxp7NNER0dr27ZttWLFijp79mxjfzg6Otrmd4oj/3gq586d044dOz7RZZ4SEhJ0x44dmitXLi1atKh6eHgY5wSmRZs2bVKLxaIffvihLl++XLt27aolS5a0OQVg586d2rp1a+3Zs2eamv33wR/2HTt2JOkk2rJli7q4uGi7du2MSXJu376tp06dMr4UX7ZzAJ+U9fUdO3ZMR4wYoYULF1ZPT0+b84+nT5+uJUuW1GLFimmVKlU0c+bMphx+bN0WMTExj7xKSOL3VGRkpMbExDz32lKbhQsXakBAgHF+8fLly9XNzU0LFiyoRYsW1aCgIOOa9B9++KE6OjpqoUKFtGTJkurh4WH6IyuJd6b++ecfvXbtmrHTdPToUW3durVWrVpVFy9ebHO/iIgI475mCrsrV660mYF91apVWqFCBfXx8dGBAwcandGzZ89WR0dHbdq0qQ4ZMkS7dOmimTJlMuX3zYN++OEHm++WtWvXalBQkNaoUUNnzZplrDt37pz6+PjoqFGj9OLFi/rOO+9o9erVbeavSUsSf062bt2qxYsX12HDhhkh7uTJk1qqVCmtX7++cTrfg8zQAaB6fwSR9fTYHj166NixY7VTp07q6upqM3t9WnD69GmtWLGiFixYUOvWrWszr1FUVJQ2bdpUs2fPniYnDk3swc9Pu3bt1M3NTZs2bWq8Z6wdAP7+/jpr1qwko4btdaoM4d8krEcAdu/erVu3bn1s+6ioKN2wYYPNrKZpSUJCgsbFxWmbNm20U6dONuumTJmixYsXtxkBkHh2zrRg6NCh+v777xvB/ZdfflGLxaKDBg1KsqO0ceNGTZcunYaGhibpHDH7Nlu9erU6OTnp8OHDddSoUcblxiZOnGi02bx5s06ZMkWHDx9uM0fCy27NmjU24X3VqlVasWJF9fX11bfeeivZTgCzvyceJT4+XufOnauvvvqqvvnmm3r58mVt3bq1fvHFFxoVFaXLli3TatWqqb+/v9EBcODAAV2xYoUuX748ySSSZpN4R2jcuHFGyK1atarRSX3s2DGjA2DJkiVJHsNM768jR45omTJl9PXXX9cLFy7o77//ri4uLjphwgTt3bu31q5dW2vVqmV0CO3atUvr1aundevW1WbNmqWJ00MOHz6sFotFx4wZo6r3O6mzZMmiXbt21U6dOmmGDBn0rbfe0ujoaI2Pj9dBgwbp//73P/X09NTcuXOn2QCT+LM2Z84cHTx4sGbPnl2zZs2qI0eONPZ9Tp48qT4+PhoUFKRbtmyxV7kvxF9//aWLFy9WPz8/rVatmjZv3jxNdJ49zKlTpzQoKEgtFov++OOPqvp/361Xr17VN954Qy0WS5rrGHmYfv36aYkSJbRfv376xhtvqIeHh7722mvGb5b1FICiRYvaXAnBngj/L7nEX+BXr17VFi1aaKFChXTHjh1PdJ+0rl27dvraa68l2Sbt27fXzJkza7NmzfTPP/+0U3X2cevWLW3UqJFWrlxZ58yZY/RULly4UNOnT69DhgyxmQDn+vXrWrRoUbVYLDbnvZuZ9ZKQ1atXtxlq+8cff2jXrl21VKlSNiMAzObSpUtqsVi0VatWGhsbq3v27FE3NzcdNGiQvvvuu5orVy6tW7eunjt3zt6lpjqxsbG6aNEirVSpktarV0+DgoJsJg/dsGGDVq1aVStWrJgmh1Gqqr7zzjuaPXt2/fTTT3X27NnaqFEjzZw5s3H+8aFDh7Rt27ZavHhxYwi3WS1YsEBr1aqlrVu31g8++MAIuar33ytBQUFavXp14+ictcP2YVfUMKv58+ero6OjfvDBB7pw4UKdOnWqsW7z5s3q5OSkXbp00bt37+q9e/d0z549un79+jQ5MdmD3n33XXVxcdFvvvlGN2/erO3atdPixYvriBEjjHlpTp48qbly5dL+/fvbudqnk3gytgePvD6sszDxqSNp2cmTJ7VatWpauHBh47fIui3//fdfDQ4OTjNXPkjO7t271cPDw+ggUb0/b0K1atX0tddeM0ZmRUVF6bvvvptqRsoQ/k3m+++/1+DgYPXx8dFt27bZu5xUb8yYMVqyZEk9efKkTQfA3Llz1cvLS9988800Ff6t2yAmJkbbt2+vlSpV0hkzZhg/gp9//rlaLBYdMmSIcQrA1atXdfDgwbp58+ZU88X2IiQkJKifn58OHTrUuK16/xy4kiVLasGCBY3LHprR999/r9myZdPOnTvrihUrdPz48ca6c+fOad68ebVOnTqmP1r9X1jfI7GxsfrZZ5+pv7+/ZsuWzTgFwNpmw4YNWqtWLS1RokSam4/lypUrWrZs2STn9Xfv3l2zZMlivJ/27dunY8aMMe13TuJQsnDhQq1bt64WKFDA5moHqv/XAVC7dm3j+uyq5u/kt16GzPo6P/30U3VwcNBcuXIluW72li1b1NHRUbt16/bI05LSkoSEBI2KitJXX301SUf1wIEDNXfu3Dpq1CijA+DChQsv5WfN+v7YuHGjdu7cWX19fXX8+PHJjmJI/Lkz+2foSZw+fVr9/f21SJEiRgeAdRuxff5vP+jBERAff/yxOjs762uvvZZkdFFq+BwR/l9iyX3wdu3apS1btqQD4AnExsZq8eLFtUqVKvrrr78a55YOHDhQR48eneYu8aJqe/52u3btHtoB4OjoqG3bttWJEydqgwYNtGrVqsb9zXqOf2IJCQl6+/ZtbdGihbZu3VpjYmJsdkT79OmjBQsW1Ndee83U76Fdu3apq6urOjk52cyUrHq/AyBPnjxar149PXv2rJ0qTH0SdwB8/vnnWqhQIQ0KCkrSAbBmzRpt0KCB6UdPPPg7dv78ec2RI4dxRN/6nayqWq5cOe3Xr1+Sx0gNO1PPQ+IgsnjxYvXx8dGSJUvqb7/9ZtNu06ZNWq1aNQ0KCjL9Neqt2yTxEVzrEfxly5Zp+vTptUuXLsZ66/srLCxMLRaL9u3b11SnhjyL27dva8WKFfW9995TVdvf7tq1a2uePHl09OjRxilIqi/XZ836f7969Wp95ZVXdOjQoTpjxgz19/fX0qVLp6k5nJ6FtQOgRIkSxukguG///v1auHBhXbVqlarafmf7+Pion5+ftm3bNtVNKEr4f0lZv9R++OEHHTFihI4YMcJmAqRdu3Zpq1at1MfHxzSXY0lp1h+xiIgI9fLyUm9vb61Ro4Y2btxYHR0dn2gCRbN6XAfAqlWrtFatWurn56dBQUHGDnpa6wnesWOHcd1W6yztqqq9evXSiRMn2uw0mdWePXs0d+7cWqdOHWNmdev74Pz585oxY0Zt0qRJmugUelLW7RMXF6eLFi3SChUqaLNmzYy5W6xtEncImFHiHaXEc4lUrlxZmzdvbmwn63Dthg0bap8+fV54nfaUeBstXbpUq1Spom+++WaS4bZhYWE2p4+Y2cWLF7VTp04aHR2tq1at0ly5chkdjAsXLlQHBwcdN25ckiOUO3bsSJOXFVVNfi6M119/XcuVK6e3bt1S1f/bLwoNDdXy5ctruXLldPny5ar68vy+J94fiYiIUH9/f505c6aq3u/wyJYtmw4YMMCeJaZayf0fnzlzRr28vPTVV199qTqAXoRmzZpp/vz5bY7wX758WVu2bKnjxo3TQoUK6caNG+1YYVKE/5fYt99+q1mzZtXmzZtrkyZNtESJEjp48GBj/a5du7Rt27aaN2/eZGdqTesSz0g/efJk7d27t/bq1ctmduW0KrkOAOsRlX///Vdv3rxps4Oelli3z1dffaXp06fXZs2aac+ePbVz586aOXNm/f333+1cYcqz/l8/eC7k7t271dXVVdu0aWNMAmhte/HixSRHKmE7AmDhwoVaoUIFffPNN206AMwscRj58MMPddCgQcYlkhYsWKAVKlSw2UFPSEjQKlWqJLmcXVqQeFstWrRIa9SooW+88Uaa/VwtW7ZMK1WqpFWrVlUnJydj4scHTwF4WAdAWpT4/RMeHq5Hjhwx3juRkZGaN29erV+/vv7zzz/Gd3uLFi108+bN+tprr6mfn59d6n4av/32m44aNcp4zVFRUerr66sXLlzQs2fPap48ebRr165G+23btqWZTrPErJ+HqKgojYqKsvndSa6j6OzZs6YfifZfJO4EsY6UGTNmjM6fP19r166tgYGBqqpavHjxVNdpTfh/STwYrH766SfNly+fzps3T1XvzwqcPXt2TZ8+fZIvtpCQkDQ57DbxJC+Jh44mXqeadBgbQwL/z4MdAMldriStbjPr+2j37t3auXNnrVWrljZu3NiUM+AmPneyQ4cO+vrrr+u2bduMI7a7du1SFxcXbdOmjV6/ft3mPni4B08BKFasmLZv397OVb1YgwYN0hw5cujy5cuNoZHXrl3TCRMmqLe3t/r6+mqPHj20UqVK6u3tbfpOxuQ+Mw92ANSpU0cDAwP1zJkzL6q0VGXo0KFqsVi0QoUKxlDk+Ph4mw4AJycnHTp0aJr9fXqQ9Vz+XLly2Vwt48CBA1qgQAEtWrSoVq9eXcuWLatFihRRVdWPPvpIy5Ytm+Q3P7UaNWqUUbvq/c5nLy8vXbFihRYpUkRDQkKM98OpU6c0ODj4kRNkm5H1M7J27VqtU6eO5s+fX4ODg/Xzzz832vCZuc+6rRJ/Lyf+d+Lt1Lt3b61evbp6eXlpo0aNjNE0VatW1Tlz5rygip8M4f8lMHDgQGPYldXcuXO1Z8+eqnr/fLdChQppx44dddq0aZohQwabEQDWN2BaYv1wbt68Wdu3b6/VqlXT999/32byseR2stJSYHmS15q4A6BDhw6p6nIlz1PiYPZgB9HDvvytHUxmPud2+/bt6ujoqJ07d1Y/Pz/Nnz+/jh8/3tj53rVrl2bPnl0bN25s+iHrj5N4RMyD74mH7UjExsbq0qVLTTliJDlffvml5s2b15gRWfX+94z1ErTh4eHarl07bdu2rfbv398I/mYcdprcCKrEO5eJ/z1v3jxt1KhRmrtcr3X7TJs2Tfv166d16tTRN954wzgN4t69e8a2nDNnjmbPnj3NTZpplfh7Zt++fVq0aFENDw/XlStXaq9evTRv3rxG4Lt9+7aOHTtWBw8erKNHjza2c7t27bRx48apfub7xJ3TXl5eNt+5/fv3V4vFoi1atLC5z7Bhw7RMmTKp7nzs58m6nb777jvNmDGjTpw4UVetWqUdO3bUfPny6axZs4y2ab0DIPHrv3Xrlk3nYuLv6cTtbty4YTOp6KhRo9TDw0NPnz79Aip+coT/l0C/fv2MI4mJg0Z4eLjGxcVpnTp1tGPHjqp6v5czb968arFYtFevXnarOTVYvXq1uri4aJcuXfSDDz7QrFmzavv27Y1LIqmmraD/oMRfWH///bdGRkYmu9767+joaB07dqwpd74Ts74vNmzYYJzyMGLECA0LC0vSJrnbZmF9XRERETpkyBCdPXu2sW7EiBHq7e2tY8eONToAtm3bpvnz509TV8l4UOId0TZt2qivr69OnDjR5pzA5I4kpCUzZszQmjVrqur94bpTp07VokWLaoECBbR3794PvY8Zj/xb//+3bt2q3bt31/79++uuXbuM793kOgASzzOS1li32cKFCx96GoT1+uxpeRtZLViwQHv06KEjR440lp0+fVr79u2rnp6e+umnnya5z8WLF/Xtt9/W7Nmzv1TXuj958qRmzJjRZrLrixcvaqtWrTRz5sy6YMECnTNnjoaGhmqWLFlMOUovsQcPTqjeH75frlw5nTt3rqre/4zkzp1by5Ytq4ULF6YDQG1f97Rp07Rp06Zar1497dat20MPqD74G3769Glt3bq15s6dWw8ePPjc6/2vCP+p2IMfuk2bNukXX3xhDKlVvb/D5OPjYwTaiIgIbd26tS5YsCDNDgdUvf/DX6xYMeO0CFXV7Nmzq4uLizZu3Fj3799vLE+rO95WI0aMUD8/P3Vzc9POnTsbQwFVbd+DDwZ+s3cArFmzRh0dHbV///7aqVMnrV+/vhYoUECXLVtm79Keu0WLFtl0kv3yyy9aokQJLV68eJLXP3LkSC1RooS+9957xlHItDja6EGrV6/WzJkz69tvv62TJk1SLy8vbdq0qc0lptLKd09yr/Pjjz9WHx8fbdGihZYoUULbtGmjY8eO1Xnz5mmOHDlS5U7T8xIWFqbp0qXT1q1ba968ebVy5co6efLkh3YApJX3zaM8eBpEzZo1tVmzZsYlIPPkyWNMQJqW/fnnn9qsWTN1dXXVHj162Kw7c+aM9uvXT/Pnz2/TqRsREaFz5sxRX1/fVB+Oz507p5999pn+/vvv+tdff2lsbKyWLl1a16xZo6r/91k5e/asvv3221qsWDF99dVX9fXXX9cjR47Ys/QX5sF5EGJiYnTgwIF68eJF/eOPP7RYsWL61ltv6dmzZ7V69eqaM2dO/eCDD+xcdeowZMgQzZkzp86cOVM//fRTzZkzp1aqVOmxp8HcuXNHN27cmOqO+FsR/lOh5HraevTooRaLRZcuXWoMaTp37py6ubnp2LFj9c6dOzps2DCtUqWKqS8v9iR+/vlnHTNmjN69e1cvXryoBQsW1L59++revXvV0dFRW7VqlWYnQUz8/po9e7a6u7vrZ599pjNnztRGjRrpq6++qtOnT7djhfZ39epVrVWrlnEJJNX7RxQGDBighQoV0p07d9qxuucnISFBjx07pjVr1kwysU/Hjh3VwcFBBwwYYNMBqar6zjvvqLu7u06aNMlm2G1adezYMS1evLjR+Xj37l3Nli2bMbFW4iuwpOVtdevWLX3//fc1ODjY2IFXvT9EuXz58mlmrppLly7pwIED9aOPPlLV+3MedO/eXf39/fX99983OlrT6lG4J5kHYcmSJVqrVi3NnTu3FihQQPfu3fuiykv1fv75Z23Tpo26urrqd999Z7PuzJkz2rlzZ23SpInNdv73339trsCRGsXGxmqjRo3U09NT8+bNqzly5NA2bdqoxWLRpk2b6unTp5P8jkVHR2tsbGyamVhV1XYeBOv/sbWDfuDAgfrGG28YI2TefvttLVy4MDlC7/+O+/j4GFlhzZo16uLikuT8/ZfxN5zwn8pYf8wuXbqkS5Ys0fnz5xvXsFW9f/kVZ2dnXbx4sd66dUvv3bun48aNUxcXFy1SpEiaO1qSnKtXr+qpU6c0Pj5eW7ZsqR06dDDOQa5WrZpaLBbt1KmTqc/Pfpz9+/fr4MGDbS4ReebMGR04cKCWL18+zU2Ck1hUVJTmz59fZ8yYYbP8xIkTWqtWLVP2iifekbYOrT506JDN+6BLly5auHBh/eSTT4xZ/a3Gjx+fpkcbJXbs2DEdOXKk3rp1y+h87N27t/7www/q6uqqDRo0SLITbkatW7e2GX2VWOL3m3VIanx8vF6/fl0bN26sdevWTRNh9+DBg1qvXj0tXbq0bt261VgeFRVlTHRo7VRLa6w71Q++9uTOtz179qzu2bMnTc7e/jCJQ8nBgwc1ODhYS5UqpevXr7dp98cffzx0hMnLwPo7dPDgQV22bJlOmjRJvb291WKxaN68edXDw0MDAgK0Xbt2OmvWLJtRn2b3qHkQrOrXr69t27Y1boeGhuqUKVMYNaOqO3fu1Pz586vq/eCfOXNm4/fs+vXr+vnnn790nxcrwn8qYn0THTt2TMuUKaNt27a1mbjPqnv37kYHgOr9L7+ff/5Zv/zyS5sJ7dKC2NhY4wvu77//1ps3bxoT0yQkJOidO3e0atWqOm3aNOM+PXv21CVLlqTZoJKQkKAHDhxQi8WiFoslSS/m2bNn1cvLS6dMmWKnCu0j8ayut2/f1iZNmmifPn1sJm9RvX9N16CgIHuU+NwdPXpUp06dqrdv39aIiAj18/PTRo0a6a5du4w2HTp00GLFiun8+fOTdACkZYl3tK9fv64XLlzQ+Ph4bdeunbZv397ofKxXr55my5ZN27VrZ+pJEf/++2/96KOPklxpJbmdpRs3bugnn3yigYGB6uvra9MhYGaXLl3SBg0a6CuvvKJjxoyxWRcdHa2hoaFaokSJNDcay/p52rZtm7711lsaHBysQ4cOtfl9f7Atkkq8bX7++Wdt27atlipV6qHXHX8ZP2sP+7+fNGmStm3bVg8dOqRbtmzR4cOHa4MGDbRSpUqmvzzmw/4PHzYPQkJCgiYkJOioUaO0fPny+u6772qfPn00R44cafJyfg/7Pvn999+1YcOGOmnSJM2cObN+/PHHRpu9e/dqixYtUv1pMckh/KcS1jfbsWPHNGvWrDpy5Eib0LF27VpduXKlcbt79+7G9W3T4tHrBQsW2Aw9Xr16tZYqVUrLly+vTZs21StXrqjq/fPdSpYsqV27dtXNmzfr8OHDNV++fKl+ONuLsGTJErVYLPrmm28ak7VZNW/eXFu3bp0mdqqSe43jx49Xd3d3/eKLL2w+i23atNE+ffq8lDtKybFugwYNGmhoaKixfM2aNVqlShVt2bKlzakOHTp0UG9vb505c2aSUwDSGuu2u379epLzAOPi4rRy5co2p4907dpV58yZk6aOTn700Uc2HdkP++zExsbqxIkTdeDAgcaRXTNO7vcwf/31lzZr1kwrVqyoixYtslkXFRWlAwYMSJM75CtXrtRMmTJp3759dcSIEVqyZEn18vJiTpEHJP4Ns3aaJdc5sm/fPu3QoYPmzJlTw8PDX1yRL9DXX3+tbm5uSa6EYebO1sQeNw9C4pE0Bw4c0O7du6uXl5dWqFBBDx06ZKeq7Se5kUVXrlzRKlWqqMVisemYvXXrljZo0ECbNWv20u4HEv5TkX///VerV69us/Otqvr++++rxWLR2rVr23QAvPXWW2qxWPSrr75KEyHN6sKFC1q4cGH19fXV2NhYvXTpkmbKlEknTpyoo0eP1urVq2vevHmNQLtmzRrNlSuXFitWTAsUKJDmTot41JfTp59+qhaLRYcNG2aEkevXr2vZsmV10KBBL6pEu7F+bn744QcdMWKEjhgxwuY0iJ49e6q7u7uGhITou+++qz169NAsWbLosWPH7FXyc1W9enV95513bJatX79eK1asmKQDoFmzZlquXDm9evXqiy0yFUl82aRatWqpn5+fVqlSRbdu3arXrl3TGzduaK1atbRDhw66YsUKo/PR2jmZFty4cUMHDhyoRYsW1bFjxxrLHzaBXeKdMLMNc7ceaVO9P/v4wYMH9a+//jI6zy5evKhNmjTR6tWrJ+kASEu/71YRERHq6+trnHp14cIF9fT01C5duti0e1l3vlNK4vfGkiVLdNSoUcZ7KrkOgB9//NG0V+1JSEjQEydOaL58+YzRndbXafbPUUJCwhPNg5D4VGLV/zvdKq39lp88edLm9ocffqhvvvmmNm/eXH/88UdVvX/0P3fu3Fq7dm0dM2aMzp8/X2vVqqU+Pj4v9eg0wn8q8uuvv2qRIkV0+/btxptp7ty5miFDBp0zZ47WrVtXGzZsqN9++61xn4EDB+qJEyfsVbJd3Lt3T8PCwrRChQpavnx5/e6773TcuHHG+uPHj2v16tU1d+7cxuXGTp06padOndKIiAh7lW0Xib+UVq5cqfPmzdO5c+dqVFSU8UM4b948tVgsWrZsWQ0JCdEmTZpomTJlHjubqVl8++23mjVrVm3evLk2adJES5QooQMHDjTWT548Wdu0aaOlS5fWpk2b2lyT/GX2sB+swMBAnT9/vqrahq/EHQCJTwFIy5fzs9qwYYNmyJBBR44cqdOmTdNmzZppjhw5jNNpvvvuO/Xx8dGiRYtqkSJFbC73Z0YPe19duHBB3333XS1evLjNEZSXcafpv3hY+Fq5cqUWL15c8+bNq6VKldKBAwcaR/UvXLigTZo00dq1ayc7V0Ja8dtvv2nhwoX1xo0b+ueff2revHm1e/fuxvrvvvvOlOH1v0j8+Tl27JhWq1ZNixcvrlOnTjUmtHvc6RFm3YbFixfXTz75xN5l2AXzIDzetGnT1GKx6A8//KCq9yctzpkzp3bp0kVr1aqlDg4OunTpUlW9nx/atm2rPj4+GhAQoCEhIS/96DTCfyqyePFiTZcunc0X9KVLl4yd7aNHj2qdOnXS5NAc6zaxfqnFxcXp1q1btVKlSurs7JzkmtDWDoB8+fIlGfqVViR+Hw0ZMkTd3d21du3amj17dq1fv75u3rzZ2HlYuHChWiwWrVKlin755ZfG/R48X/dl9+AX9U8//aT58uUzdrSPHDmi2bNn1/Tp02tISIjRzjo7sNlOsblw4YLNpIZly5bVzz77TFVtj1Sq3u8AqFKlitavX9/4wUzLrHOKNGrUSN9++22bdYMHD1Y3NzdjluCzZ8/q+fPnNTIy0g6VvjiJw8iFCxf0woULxlDbyMhIfeedd5J0AJg1fFg/O//884/xGjds2KAuLi46bdo0vXnzpo4aNUpz5cqlbdq0MY5SXrx4UWvVqqVBQUFp+hr1//zzj9auXVu//PJLzZ8/v3bv3t34/j5z5owGBwen2Sv2PKhfv34aEBCgDRo00MKFC6uHh4d+8MEHDx0BYHbW1+rr66vDhw+3czX2wTwIj3f27Fnt0aOHZs6cWX/88Ud95513dPfu3ap6f1j/kCFDNH369MZI0Li4OJs5xVRf3uCvSvhPVXbv3q1OTk7Gkf3EH2DrTtX8+fO1fPny+tdff9mlRnuKjIzUHDly6PLly1X1/odxy5YtWqVKFS38/9q787CoyvYP4N8DDALKpqjkmoILJiKNO6iUmmtCmuaWK25ILqXiruSCqK++ZZmS4V6amoiZglb6Q1wCRUVRUXPBBMMNUkO27+8PrzkxgmW9xsDM/bku/5hzzgz3jDPnnPtZ7qd27UJLtyQlJdHDw4Nubm4mvfzYsmXLWK1aNbXHcfPmzVQUhT4+PtyzZ4/63QoPD6eiKJw9e7ZRLoMzceJE9buj89lnn3H06NEknyQrtWrV4uDBg7ls2TJqNJoiC24ai9zcXAYFBbFevXpcsmQJSdLd3Z2rV69+5nMiIyPZrl07k21Qe1pOTg5btmypzukveGPQrVs3tm/f3lChFbuC59eZM2fSzc2NNWrUYI0aNbhu3TpmZWXxzp07nD17Nt3c3BgcHGzAaIvHvXv3WKFCBa5fv54k2aVLF3WU2q+//sqaNWvS29ubjRo1Yr9+/dQRACkpKUxJSTFU2MXq6UZGnfv377NDhw5UFIV9+/bV2zdp0iSTvQ962pYtW+jo6MiEhAS1FsKgQYPo4eHBxYsXFzkCwBSsWLGCiYmJhg6jxDD1OggFbdy4kXPmzOH169fZv39/lilThi4uLnrLg2ZnZzMoKIgajUavQ0yntP+eJPkvQVJSUlipUiV27979mVX7P/jgA/bq1cskq2ynp6dz6NChtLS0VGsfZGdn8/vvv6eHhwe1Wm2hE9n58+dNbgWEgu7du8cJEyaoCd22bdvo4ODAkJAQ1q9fn1qtlrt371YbAD7//HNqNBpOnDjR6OZ/TZgwQa3Mqnu/2dnZPHLkCLOzs9muXTsOHjyY5JPet2rVqlFRlEKjSozJjRs3OG7cODZt2pSzZs1iixYtuHTpUm7fvp3bt2/n7t27uXPnTm7ZsoWrV69mUlKSFNt6So8ePdi0aVP1sa4BYMaMGWzXrp2hwjKYBQsWsEKFCty+fTujo6M5YcIE2tvbc8GCBSTJmzdvMjg4mOXLl1dHmRirx48f08/Pj7169WJGRga3bdvGxMREpqen083NjSNGjCBJjh8/nuXKlWPXrl1NZhUaXRKi6z2Ljo7muHHjOHbsWP70008kn8y3rVatGl9//XV+/vnn3LVrF8eMGUN7e3ujmX71v/r444/5yiuvMDMzU01IsrOz2bNnT1aoUIGLFy82yaKspT05e5FMuQ7C01atWkVFUbh3716STzoV33vvPSqKwoiICJJ/3B/m5ORw2rRpVBRFbxlWYyDJfwmzbds2Wlpa8t133+XZs2fV7RkZGZw0aRIdHR2NttjY04o6Kd26dYtjx46loiiFGgC0Wi2bNGlilL3W/1ROTg5jYmKYnp7OxMREurq6qktGRUZGUqPRUKvV6g3jXr58OR0cHJienm6osF+op+cV7927l+vXr9e7IUpOTqa7uzuPHj1K8kmxqb59+zI8PNzob8ZTU1M5ZswYarVaKopCOzs71q5dm+XLl6ejoyMrVqzIKlWq0NnZ2eTqixSku1lKS0tjenq6WhPj2LFjdHNzY//+/fWOHzZsGN966y295UiN3cOHD9mmTRsuXrxYb3toaCitra25b98+kk9G2XzxxRdGO+S/oOXLl7N8+fK8fPmyuu3jjz/mG2+8wdu3b5N8Uni1YcOGfOedd0xiVE1ERAQVRVGnNEZGRtLa2podO3akVqulubm52tt2/vx5durUiXXq1GGDBg3YoUMHSfxJvbpQrq6uahFR3XnpwoULtLe3Z8uWLfnpp5+W6iHK4sUw5ToIJLl+/XpqNBru3r1bb3taWhoHDRpEGxsbtdBfwYa0zz77zOh+P5L8lzC5ublcuXIlLSwsWL9+fQ4dOpQjR45kt27d6OzsbDKV6nUXtgcPHhRaZ/3mzZsMDAws1ACwf/9+Nm/enK6uribXAJCXl1foRlp38tLdDISFhdHLy0u9Sdi0aRP79u1Lf3//Qs81hl7/ZxUTGzVqFBVF4aZNm9Q5/FeuXKGDgwM//PBDZmVlcerUqfTy8lJvzo1damoqx44dy+bNmzMwMFBvqZsHDx4wPz/fKL4Tf9eOHTv4448/qo+3bdtGT09PVqlShQEBAWrysmHDBtarV48eHh6cMGEC+/Tpw7Jly/L06dMGivzf9/TvKz8/n3fv3mXdunX52WefkdSfBuHr68suXboUaggxpgaAZxVX8/T01Bu6Pnv2bLq7u6sNrJMmTeL8+fN59+7d4gvWAHTfmRs3btDf3592dnY8fPgwly5dqq6hfe/evULzbR8+fMjbt28zPT3d5K7tOs+6nt2+fZtOTk6FGh+PHTvGvn37slevXnR3dzeZa5koTOog/FHXqkOHDuq2ggn9r7/+ygEDBrBs2bKFGgCKOr60k+S/hDp69Ch79OhBDw8Pent7c8qUKbx48aKhwypWycnJbNy4Mb29vblu3TpGRUWp+7KysjhmzBgqisJt27aRfNIAsGfPHvr4+PDnn382VNjF7umK68uXL+fw4cP5/vvvq3Pe8vLyOG/ePLq7u/P06dPMyMhg9+7duWzZMvV5BesilPaeSt2NUkpKCjdu3MiwsDC95W0CAwNpZWXFDRs28NGjR8zNzeXcuXNpZ2dHFxcXOjk5mUxDm46uUa1p06ZcuHChul13wSvt34m/Iz8/nxcvXmTdunXZo0cPxsXFMTk5mZUrV+aiRYu4aNEitmjRgm+88Qajo6NJkidPnmT//v3ZrVs3DhgwwOhHaGVnZ/PRo0e8ceOGXgLfs2dPuru7q9NDdI2PAQEB7N27t0Fi/bfpzjcFGzvIP347ixYtolarVQtrrVmzhs2aNWPHjh3Zq1cv2tjYFFp2ytjoPqOkpCTOnTuXly9fZv/+/WltbU2tVstdu3apx+rm2xYcASCeWLFiBf39/RkcHMwjR46QJL///nva29vTz8+P+/bt408//cTOnTtz3LhxzMjIoKIoat0JYbpMtQ5CWFgYzczM6O/vzypVqnDs2LHqvoIJfXp6Ot99913a2dnpNfobI0n+SzBj6hH5u/Ly8tS5NtbW1mzYsCFr167NJk2aMCAggPHx8YyPj+esWbP05u/oKnKainnz5lGj0fDChQskySlTptDJyYm+vr5s1qwZnZycePjwYZJPGlOcnZ1Zq1Yt1qxZk40aNTK6av7kHzeZZ86coYeHBwcMGFBk4b6RI0eqDQDkk5UkfvrpJ3711VcmWydC1wDg5eXFWbNmGTocgyjYw/b999+zZcuWHDRoEOfOncsZM2ao+44dO8YuXbqwffv2/Pbbb/Vew9jP3VFRURw9ejSrV69OBwcHdu3aVe25PXnyJF999VV27dpVHVmTn59PHx8ftbimMfr555/p5+fH8PDwQnUxUlJS6OjoqPeb+s9//sOBAwfyrbfeMvobct1v6uTJk1QURW1cvHXrltqIv3HjRr1jC863Lbi8sakpeD6aPn06K1SowDfffJNarZavvPIK9+zZQ5KMi4tjgwYNWLNmTVatWpXNmzfno0ePePfuXbq5uRl9MiP+mik14OvolvT77rvvSD5Z2trJyelPGwC6du1q9PV6JPkvwf5qfVZjl5qayvHjx/PNN9/khAkTeOnSJQYHB7N9+/asVKkS69evzy5durBy5cpUFMUkL25Hjx5lt27dWLNmTSYkJHDy5MmMi4sj+cdySJaWlurw5IsXLzIsLIyrV68u9euUFkX3Ozlz5gwdHR05Y8YMvWkjkZGR6lQR8kkDQJkyZbhx40ajW8bvn0pNTeXgwYPZvn17kx0qevr0aS5dupQkuXPnTrZs2ZJVq1alv7+/3nFHjx5l586d2blzZ5Ppofziiy9YtWpVvv/++wwNDeWqVavYsGFDOjs7q8ltZGQkPT096ezszM6dO1Or1bJBgwZGPYokKSmJ3bp1o4WFBdu0acOpU6cyMzNTHQ0QEhLChg0bFhoRohsZYax0yevZs2dpbW3N2bNn6+1PS0vj4MGDnznfNjg4mElJScUac0mUlJTECRMmqBXJjx8/zsGDB7N69erqHOaHDx/yzJkzTExMVD/D6dOn08XFxWRWjxCioAMHDuhdm+/fv89Vq1b9aQPA/fv3nznNxlhI8i9KtF9++YVjxoxh06ZNuWLFCnX70aNH+c0337BTp050d3enoih6BRJNSWJiIjt16sRKlSqxUaNGegXqUlJSOGDAAFpZWakNAAVvvI2xh/LOnTts06YNAwMD9bYvXLiQiqLw9ddf12sACAgIoKIo3LJli1EmJf9EWloa09LSDB1GsdP9/3fu3Fmvl3rfvn308PCgh4eH+jvSOXbsGL28vNijRw+jr6q9cuVKWlpa8quvvtIbNZScnMxBgwaxYsWK6nk6JSWFc+fOVeezG2NjY1FOnTrFESNG0MXFhTVq1ODEiROZmJjI+Ph4Vq9eXR0lYozn3qfpbqATExPp5ORENzc3dV/B78/zzLc1Zd988w2rVq1Kd3d3vYKQiYmJHDJkCGvWrMnIyEi955w5c4YDBgxghQoVmJCQUMwRC1GyFDyfZGRkFNkA8PRIWGNuAJDkX5R4Beciz58/X29fdnY2s7KyeOvWLQNFZxgXLlzg4cOH1aXrkpOT+fbbb9PCwkK90OtOdikpKRw4cCAVRTH64aXkkx4SFxcX/vDDD3oVkTUaDT/99FN26NCBXbp00RtKOnHiRJOuZC/0tWnTplAPZVRUFJs1a8Y+ffqoCYpOfHw8r1+/XowRFr8dO3ZQURQ1ydAl8bok9tKlS/Tx8aFWq+XNmzeLfA1TSHjJJ3P/7927x4kTJ9LLy4sajYazZ8+mk5MTPT09jb6RiNQf6m9jY0MfH5+/nG87YMAAOjg48MCBA8Ueb0m2Z88e+vr60sbGRp3nr5OYmEh/f39aWlqqU/zIJ/cEoaGhMmpCiCLoGgAqVqzI8ePHGzqcYifJvygVUlNTGRgYyObNmzMkJETdbuy9SEVZu3Yt3dzcaGdnx5deeokBAQEknzQItGvXjs7OzmrxKF0DwNWrVxkcHGwSn9eGDRtobm6u19KbkpKi9tgmJiayXbt2bNasmfSIiCJb9zt27MiwsDCS+gnr7t272bx5c/bu3VvvRtvYZWVlcdSoUXRxceHy5cvV7U+vFR0VFUUzMzPGxMQYJM6SKD09nWvWrGHbtm1pY2NDR0dHdcUVYxcXF0eNRsM5c+YwNzf3L4fbpqen09fXl1WrVi1UN8FUPKu3MSYmhh06dNBbklbnxIkTXLBgQaHGNWPuuRTif5WRkcGwsDAqiqIugW0qJPkXpYauAcCUi5GtXLmSZcqU4cqVK7lv3z6OGTOGL730EkNDQ0k+uQno0qULq1evXqgBQMfYGwBiYmJYpkwZtWe/4PvX3QyFhYWxadOmTE1NNUiMomS5du0aP/roI/Wxp6cnv/jiC5JPvj8Fv0O7d++ml5cXO3XqVOgm3JjdvHmT48aNY/PmzfVWg8jLy1M/nwsXLtDKykotwGrKnj7v3rp1i8eOHePly5cNFFHxO3jwoF6i/zzzbW/fvl1oBRtTUTBZj46OZkREBDdv3qxui42Npa+vLz09PdW5/08zldE1QrwI9+7dY0REhMn9biT5F6WKKRcje3rYLfmk5bJx48b08/NTtyUkJLBbt258+eWXjX65saKkpKSwUqVK7N69+zOr9n/wwQfs1asXMzMzizk6UdLk5uYyKCiI9erV45IlS0iS7u7uXL169TOfExkZyXbt2unNvzUFBUdgFbUc5LZt2+jl5WX0UyDE36drDHne+bam7IMPPuBLL73EevXq0dbWli1atFBH08TExPCtt95ikyZNZISNEC+QsXeMFWQBIUoRZ2dnLFy4EABQoUIFA0dTfB4/foyoqCjUrl0b165dU7fb2dnB3d0dv/32G7KysmBlZYXGjRtj7ty5GD16NGbOnIlvvvnGgJEXv2rVqmHFihXo168fZs6ciSlTpqBBgwYAgMzMTMybNw/h4eGIiYmBra2tgaMVhmZubo733nsPWVlZ2LJlCzIzM1G2bFlkZmaqvx0rKyvk5uYiKysLv/32G1q1aoVdu3bB2trawNEXL2dnZ0yfPh3z58/Hjh07AABBQUGwsLDAb7/9hvDwcNSvXx/VqlUzcKSipFEUBcCTa1afPn0AANOnT4e5uTmWLl0KjUZjyPBKjDVr1mD9+vWIiopClSpVQBK+vr4YN24c1q5dC29vb2RnZyM4OBjh4eHw9vY2dMhCGAULC9NJiRWSNHQQQoi/lpqaitDQUBw5cgR+fn6YOnUq9uzZg65du2L//v14/fXXQVK9ybp48SJcXFxgZmZm4MiLX15eHlavXo3AwEC4urqiVatW0Gg0+OWXXxAfH4/vvvsOnp6ehg5TlCBpaWmYN28ejh49ihMnTsDW1hZOTk64f/8+SMLCwgIajQb5+fn48ccfUb9+fUOHbDBpaWmYP38+4uLi8Pbbb2PixInw8/PD1atXER8fDwsLC71zkRBPy8zMxNdff40RI0YgKCgIISEhhg7JoHS/l2nTpuHs2bPYuXMncnNzYWFhgaysLGi1WtSuXRu7du0CACQkJMDDw8Mkr+9CiP+NJP9ClCK6m+6EhATUrFkTu3btwvLlyzFo0CDk5+fDzMys0E23brspOnbsGBYtWoTLly/D1tYW3t7eGDZsGFxdXQ0dmiiB0tLSEBISgmPHjqFp06ZYtmwZLCwskJ6eDhsbG9jY2CAjIwMODg6GDtXg0tLSsGDBAhw/fhyXLl2Cg4MDzpw5A41Gg7y8PJibmxs6RFHCZWRkICIiAi1btkTdunUNHU6xO3XqFK5evQonJyd4eXkBAIYOHYrk5GQcOnQIAPD777/D2toae/bswZAhQxAbGwsXFxf1NUz5+i6E+Gck+ReilElNTUVISAi+/vprtGjRAhEREQAgN9zPIJ+L+DtSU1OxYMECHDt2DD179kRQUBAAqL1w0qP9h7S0NAQFBSE9PR07d+6ERqNRPychnoep/p42bdqEJUuWoEaNGnjllVewYMECAEBMTAy6dOmCuXPnYvz48erxkZGRmDZtGn744QdUqlTJQFELIYyBJP9ClEK3bt1Sh936+fmpCYqp3kj9mYKfiXw+4nnoGgASEhLQrl07BAcHGzqkEuvevXuwt7eHmZmZJP5CPIf169dj1KhRCA8PR6dOnfRGEmVkZGDp0qXYsGEDRowYgdGjR+P+/fsIDAxETk4O9uzZI9cwIcT/RJJ/IUqpgsNuX3vtNcybN8/QIQlhNNLS0jB16lTcuHEDmzdvNqkCo/+EDD8W4q+dPXsW77zzDsaPHw9/f391e8GG6evXr2Pz5s2YN28ebGxsYGtrC0dHR8TGxqp1R+S3JoT4pyT5F6IUS0tLw+TJk2FlZYVVq1ZJj4AQL9CtW7cAAJUrVzZwJEIIYxAdHY1Ro0Zh7969qFOnTqFrdsFGAF2BWnt7e7Ru3Rrm5uYyukYI8T+T5F+IUu7u3btwcHAostifEEIIIUqGkJAQLF26FOnp6QCKnop27tw53Lp1Cz4+PnrbpX6NEOJFkHFDQpRy5cuXh5mZGfLz8yXxF0IIIUooV1dXPHz4ENHR0QBQ5DV7/fr1+PLLL/F035wk/kKIF0GSfyGMhMwBFEIIIUourVYLS0tLhIWF4fr16+p2XaKfmZmJixcvwt3dXRrzhRD/CskWhBBCCCGE+JfVrl0bK1euxLfffoupU6ciISEBwJMRADdv3kSfPn2QlpaG0aNHGzhSIYSxkjn/QgghhBBCFIO8vDysWbMGAQEBqFy5Mho2bIj8/HxkZGQgPz9freovc/yFEP8GSf6FEEIIIYQoRidPnkR4eDguXLiA6tWrw9PTE6NGjZKq/kKIf5Uk/0IIIYQQQpQA0uMvhPg3SfIvhBBCCCFEMZPleYUQxU0K/gkhhBBCCFHMJPEXQhQ3Sf6FEEIIIYQQQggjJ8m/EEIIIYQQQghh5CT5F0IIIYQQQgghjJwk/0IIIYQQQgghhJGT5F8IIYQQQgghhDBykvwLIYQQQgghhBBGTpJ/IYQQQgghhBDCyEnyL4QQQgghhBBCGDlJ/oUQQohSaPDgwVAUBQsXLtTbHhERAUVRDBRV0RISEtCrVy9UrlwZVlZWqFOnDoYPH47k5OTnfo3BgwfDz8/v3wtSCCGEMHKS/AshhBCllJWVFUJDQ3Hv3j1Dh/JM3377LVq0aIHHjx9j06ZNOHfuHDZu3Ah7e3vMnDnT0OH9IySRm5tr6DCEEEKIv0WSfyGEEKKUat++PZydnRESEvKnxx06dAitW7eGtbU1qlevjrFjx+Lhw4cAgE8++QQNGzZUj9WNHFi5cqXe35kxYwYA4NSpU3jttddga2sLOzs7aLVaxMfHF/l3Hz16hCFDhqBLly6IjIxE+/btUatWLTRv3hxLlizBqlWrAAB5eXkYNmwYatWqBWtra9SrVw8fffSR+jpz5szBunXrsHPnTiiKAkVRcODAAQBASkoKevfuDQcHB5QvXx6+vr64evWq+tzc3FyMHTsWDg4OqFChAoKCgjBo0CC9UQSPHz/G2LFjUalSJVhZWcHb2xtxcXHq/gMHDkBRFOzZswdarRZlypTBxo0bYWZmVui9//e//0XNmjWRn5//p/8nQgghRHGT5F8IIYQopczNzbFgwQIsX74cN27cKPKYy5cvo1OnTujZsydOnz6NLVu24NChQwgMDAQAtG3bFklJSUhPTwcAHDx4EE5OTmpynZOTgyNHjsDHxwcA0L9/f1SrVg1xcXE4fvw4pkyZAo1GU+TfjoqKwu3btzF58uQi9zs4OAAA8vPzUa1aNWzduhVJSUmYNWsWpk2bhq+//hoAMHHiRPTu3RudOnVCamoqUlNT0apVK+Tk5KBjx46wtbVFTEwMYmNjUa5cOXTq1AnZ2dkAgNDQUGzatAlr1qxBbGwsMjMzERERoRfH5MmTsX37dqxbtw4nTpyAq6srOnbsiLt37+odN2XKFCxcuBDnzp1D9+7d0b59e6xZs0bvmDVr1mDw4MEwM5NbLCGEECUMhRBCCFHqDBo0iL6+viTJFi1acOjQoSTJHTt2sODlfdiwYRwxYoTec2NiYmhmZsbff/+d+fn5rFChArdu3UqSbNy4MUNCQujs7EySPHToEDUaDR8+fEiStLW15dq1a58rxtDQUALg3bt3//b7GzNmDHv27Fnk+9XZsGED69Wrx/z8fHXb48ePaW1tzaioKJJk5cqVuXjxYnV/bm4ua9Soob7WgwcPqNFouGnTJvWY7OxsVqlShYsWLSJJ/vjjjwTAiIgIvb+/ZcsWOjo6MisriyR5/PhxKorCK1eu/O33K4QQQvzbpFlaCCGEKOVCQ0Oxbt06nDt3rtC+U6dOYe3atShXrpz6r2PHjsjPz8eVK1egKAratGmDAwcO4P79+0hKSkJAQAAeP36M8+fP4+DBg2jatClsbGwAAO+//z78/f3Rvn17LFy4EJcvX35mXCSf+z18+umn0Gq1qFixIsqVK4ewsDBcv379T59z6tQpXLp0Cba2tup7K1++PLKysnD58mVkZGTg1q1baNasmfocc3NzaLVa9fHly5eRk5MDLy8vdZtGo0GzZs0KfZ5NmjTRe+zn5wdzc3Ps2LEDALB27Vq89tprePnll5/7fQshhBDFRZJ/IYQQopRr06YNOnbsiKlTpxba9+DBA4wcORInT55U/506dQoXL16Ei4sLAMDHxwcHDhxATEwMPD09YWdnpzYIHDx4EG3btlVfb86cOTh79iy6du2KH374AQ0aNFCT36fVrVsXAHD+/Pk/jX/z5s2YOHEihg0bhujoaJw8eRJDhgxRh+4/y4MHD6DVavXe28mTJ5GcnIx+/fr96XP/ibJly+o9trS0xMCBA7FmzRpkZ2fjyy+/xNChQ1/43xVCCCFeBEn+hRBCCCOwcOFC7Nq1C0eOHNHb/uqrryIpKQmurq6F/llaWgL4Y97/1q1b1bn9Pj4+2L9/P2JjY9VtOnXr1sWECRMQHR2NHj16FJr3rvPGG2/AyckJixYtKnL//fv3AQCxsbFo1aoVAgIC4OnpCVdX10IjCiwtLZGXl1fovV28eBGVKlUq9N7s7e1hb2+PypUr6xXvy8vLw4kTJ9THLi4usLS0RGxsrLotJycHcXFxaNCgQZFxF+Tv74/9+/djxYoVyM3NRY8ePf7yOUIIIYQhSPIvhBBCGAF3d3f0798fH3/8sd72oKAgHD58GIGBgTh58iQuXryInTt3qgX/AKBRo0ZwdHTEl19+qZf8R0RE4PHjx+qQ+N9//x2BgYE4cOAArl27htjYWMTFxcHNza3ImMqWLYvVq1dj9+7d6N69O/bv34+rV68iPj4ekydPxqhRowAAderUQXx8PKKiopCcnIyZM2fqJewA8PLLL+P06dO4cOECbt++jZycHPTv3x9OTk7w9fVFTEwMrly5ggMHDmDs2LFqAcT33nsPISEh2LlzJy5cuIBx48bh3r17UBRFjXH06NGYNGkS9u7di6SkJAwfPhyPHj3CsGHD/vJzd3NzQ4sWLRAUFIS+ffvC2tr6Of63hBBCiOInyb8QQghhJD788MNCS8w1atQIBw8eRHJyMlq3bg1PT0/MmjULVapUUY9RFAWtW7eGoijw9vZWn2dnZ4cmTZqow93Nzc1x584dDBw4EHXr1kXv3r3RuXNnBAcHPzMmX19fHD58GBqNBv369UP9+vXRt29fZGRkYN68eQCAkSNHokePHnjnnXfQvHlz3LlzBwEBAXqvM3z4cNSrVw9NmjRBxYoVERsbCxsbG/zf//0fatSogR49esDNzQ3Dhg1DVlYW7OzsAEBNygcOHIiWLVuqNQ+srKzU1164cCF69uyJd999F6+++iouXbqEqKgoODo6PtfnPmzYMGRnZ8uQfyGEECWawr9TjUcIIYQQohTLz8+Hm5sbevfujblz576Q15w7dy62bt2K06dPv5DXE0IIIf4NFoYOQAghhBDi33Lt2jVER0ejbdu2ePz4MT755BNcuXLlhRQEfPDgAa5evYpPPvlEHcUghBBClFQy7F8IIYQQRsvMzAxr165F06ZN4eXlhcTEROzfv/+ZdQr+jsDAQGi1Wvj4+MiQfyGEECWeDPsXQgghhBBCCCGMnPT8CyGEEEIIIYQQRk6SfyGEEEIIIYQQwshJ8i+EEEIIIYQQQhg5Sf6FEEIIIYQQQggjJ8m/EEIIIYQQQghh5CT5F0IIIYQQQgghjJwk/0IIIYQQQgghhJGT5F8IIYQQQgghhDBy/w95PbvfpGiXIwAAAABJRU5ErkJggg==","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["# Plotting with Seaborn\n","plt.figure(figsize=(12, 8))\n","\n","# Get the unique categories\n","news_categories = train_df['category'].unique()\n","\n","colors = sns.color_palette(\"husl\", len(news_categories))\n","\n","color_mapping = {article: colors[i] for i, article in enumerate(news_categories)}\n","\n","# Plot with each bar having a different color\n","ax = sns.countplot(x='category', data=train_df, palette=color_mapping)\n","\n","# Add title and labels\n","plt.title('Distribution of Categories')\n","plt.xlabel('News Category')\n","plt.ylabel('Count')\n","plt.xticks(rotation=45) # Rotate x labels for better readability\n","\n","# Display the plot\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"ZNxd_KCGOl93"},"source":["### Distribution of length of Sentence"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":564},"id":"j81aV78YOl93","outputId":"01d28bdb-0f7f-4b6c-e437-b2296f58056f"},"outputs":[{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAA1sAAAIjCAYAAAD1OgEdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB5VElEQVR4nO3deXhTZf7+8fskadI13aAtawFBFhEZcWPcBUXBXX/jLiqjo4OOqOOoM467o6OD27ig31HRUcdlRkVFUWRxRQUEkVV2EFpaCm26L8nz+yNNJOwtSU/avl/X1YvmnCfnfJIeSm6e5VjGGCMAAAAAQFQ57C4AAAAAANoiwhYAAAAAxABhCwAAAABigLAFAAAAADFA2AIAAACAGCBsAQAAAEAMELYAAAAAIAYIWwAAAAAQA4QtAAAAAIgBwhaAVu2uu+6SZVktcq7jjjtOxx13XPjxzJkzZVmW/vvf/7bI+S+77DL16NGjRc7VXBUVFfrtb3+rvLw8WZalcePGxfR8oZ//5s2bY3oeAACag7AFIG5MnDhRlmWFvxITE9W5c2eNGDFCTzzxhMrLy6Nyno0bN+quu+7S/Pnzo3K8aIrn2vbG3/72N02cOFHXXHON/v3vf+uSSy7ZoU0oIO3pa9tg25ps2rRJf/zjH9WvXz8lJycrJSVFQ4YM0X333afS0lK7y5Mkvfbaa3rsscfsLqNJKioqdOedd2rgwIFKSUlRdna2Bg8erOuvv14bN26M6bmffvppTZw4MabnANA2uewuAAC2d88996hnz56qr69XYWGhZs6cqXHjxumRRx7Re++9p0GDBoXb3n777br11lubdPyNGzfq7rvvVo8ePTR48OC9ft4nn3zSpPM0x+5q+7//+z8FAoGY17Avpk+friOOOEJ33nnnLtucffbZ6t27d/hxRUWFrrnmGp111lk6++yzw9tzc3NjWmsszJ49WyNHjlRFRYUuvvhiDRkyRJI0Z84cPfjgg/r8889b5Drak9dee00LFy6Mec9jtNTX1+uYY47R0qVLNXr0aF133XWqqKjQokWL9Nprr+mss85S586dY3b+p59+Wh06dNBll10Ws3MAaJsIWwDizimnnKJDDjkk/Pi2227T9OnTdeqpp+r000/XkiVLlJSUJElyuVxyuWL7q6yqqkrJyclyu90xPc+eJCQk2Hr+vVFUVKQBAwbsts2gQYMiAvPmzZt1zTXXaNCgQbr44otjXWLMlJaW6qyzzpLT6dS8efPUr1+/iP3333+//u///s+m6uJfTU2N3G63HI4dB928++67mjdvnl599VVdeOGFOzyvrq6upcoEgCZhGCGAVuGEE07QX//6V61du1avvPJKePvO5mxNnTpVRx11lDIyMpSamqq+ffvqz3/+s6TgPKtDDz1UknT55ZeHh6yFhggdd9xxGjhwoObOnatjjjlGycnJ4eduP2crxO/3689//rPy8vKUkpKi008/XevXr49o06NHj53+r/i2x9xTbTubs1VZWambbrpJ3bp1k8fjUd++ffWPf/xDxpiIdpZl6dprr9W7776rgQMHyuPx6IADDtCUKVN2/oZvp6ioSGPGjFFubq4SExN10EEH6aWXXgrvD81fW716tSZPnhyufc2aNXt1/J2ZPn26jj76aKWkpCgjI0NnnHGGlixZssfnrV27Vr1799bAgQO1adMmScEgNG7cuPD71Lt3b/3973+P6Clcs2aNLMvSP/7xDz333HPab7/95PF4dOihh2r27Nl7PO+zzz6rDRs26JFHHtkhaEnBnrrbb789YtvTTz+tAw44QB6PR507d9bYsWN3GGq4N9eO9MvP4M0339T999+vrl27KjExUcOGDdOKFSsinjd58mStXbs2/HPa01zA0PXz6quvqm/fvkpMTNSQIUP0+eef79B2w4YNuuKKK5Sbmxu+zl544YWINqFaX3/9dd1+++3q0qWLkpOT5fP5dnr+lStXSpKOPPLIHfYlJibK6/VGbFu6dKnOPfdcZWVlKTExUYcccojee++9iDahYctfffWVbrzxRnXs2FEpKSk666yzVFxcHG7Xo0cPLVq0SJ999tlOh7jG4tpaunSpfvOb36hjx45KSkpS37599Ze//KXJ7zMA+9GzBaDVuOSSS/TnP/9Zn3zyia688sqdtlm0aJFOPfVUDRo0SPfcc488Ho9WrFihr776SpLUv39/3XPPPbrjjjt01VVX6eijj5Yk/frXvw4fo6SkRKeccorOP/98XXzxxXscznb//ffLsizdcsstKioq0mOPPabhw4dr/vz54R64vbE3tW3LGKPTTz9dM2bM0JgxYzR48GB9/PHHuvnmm7VhwwY9+uijEe2//PJLvf322/r973+vtLQ0PfHEEzrnnHO0bt06ZWdn77Ku6upqHXfccVqxYoWuvfZa9ezZU2+99ZYuu+wylZaW6vrrr1f//v3173//WzfccIO6du2qm266SZLUsWPHvX792/r00091yimnqFevXrrrrrtUXV2tf/7znzryyCP1/fff7zIcrFy5UieccIKysrI0depUdejQQVVVVTr22GO1YcMG/e53v1P37t319ddf67bbblNBQcEOc5dee+01lZeX63e/+50sy9JDDz2ks88+W6tWrdpt7+J7772npKQknXvuuXv1Gu+66y7dfffdGj58uK655hotW7ZMzzzzjGbPnq2vvvqq2T2ZDz74oBwOh/74xz+qrKxMDz30kC666CJ9++23kqS//OUvKisr088//xy+RlJTU/d43M8++0xvvPGG/vCHP8jj8ejpp5/WySefrO+++04DBw6UFJyvdsQRR4TDWceOHfXRRx9pzJgx8vl8OwxbvPfee+V2u/XHP/5RtbW1u+w9zs/PlyS9/PLLuv3223e7KM6iRYt05JFHqkuXLrr11luVkpKiN998U2eeeab+97//6ayzzopof9111ykzM1N33nmn1qxZo8cee0zXXnut3njjDUnSY489puuuu06pqanhwBP6nRCLa2vBggU6+uijlZCQoKuuuko9evTQypUr9f777+v+++9v1vsMwEYGAOLEiy++aCSZ2bNn77JNenq6+dWvfhV+fOedd5ptf5U9+uijRpIpLi7e5TFmz55tJJkXX3xxh33HHnuskWQmTJiw033HHnts+PGMGTOMJNOlSxfj8/nC2998800jyTz++OPhbfn5+Wb06NF7PObuahs9erTJz88PP3733XeNJHPfffdFtDv33HONZVlmxYoV4W2SjNvtjtj2ww8/GEnmn//85w7n2tZjjz1mJJlXXnklvK2urs4MHTrUpKamRrz2/Px8M2rUqN0eb3vFxcVGkrnzzjvD2wYPHmxycnJMSUlJRL0Oh8Nceuml4W2hn39xcbFZsmSJ6dy5szn00EPNli1bwm3uvfdek5KSYn766aeI8956663G6XSadevWGWOMWb16tZFksrOzI54/adIkI8m8//77u30dmZmZ5qCDDtqr11xUVGTcbrc56aSTjN/vD29/8sknjSTzwgsvhLft7bUTuh779+9vamtrw9sff/xxI8n8+OOP4W2jRo2KuJb2RJKRZObMmRPetnbtWpOY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S9XQ0KBNmzZp+vTpmjp1qvLz8/Xee+8pMTFxl8+955579Pnnn2vUqFHKz89XUVGRnn76aXXt2lVHHXWUpOCH14yMDE2YMEFpaWlKSUnR4Ycf3qT5I9vKysrSUUcdpcsvv1ybNm3SY489pt69e0csT//b3/5W//3vf3XyySfrN7/5jVauXKlXXnklYsGKptZ22mmn6fjjj9df/vIXrVmzRgcddJA++eQTTZo0SePGjdvh2M111VVX6dlnn9Vll12muXPnqkePHvrvf/+rr776So899theLwrRFA8//LBOOeUUDR06VGPGjAkv/Z6enq677rprp89xOBx65ZVXdOaZZ+o3v/mNPvzwQ51wwgm6+eab9d577+nUU0/VZZddpiFDhqiyslI//vij/vvf/2rNmjXq0KHDPtecmZmpd955RyNHjtTgwYN18cUXhxeU+P777/Wf//xHQ4cOlRT8UH3bbbfp7rvv1sknn6zTTz9dy5Yt09NPP61DDz004ubOe3vtNMWQIUP0xhtv6MYbb9Shhx6q1NRUnXbaabt9zsCBAzVixIiIpd8l6e677w63efDBBzVjxgwdfvjhuvLKKzVgwABt2bJF33//vT799NOd/mfI3pg6daruvPNOnX766TriiCOUmpqqVatW6YUXXlBtbW3ENfHUU0/pqKOO0oEHHqgrr7xSvXr10qZNmzRr1iz9/PPP+uGHH5p8/iFDhuiZZ57Rfffdp969eysnJydm19YTTzyho446SgcffLCuuuoq9ezZU2vWrNHkyZM1f/58SbF7nwHEgB1LIALAzoSWYg59ud1uk5eXZ0488UTz+OOPRywxHrL90u/Tpk0zZ5xxhuncubNxu92mc+fO5oILLthhaeZJkyaZAQMGGJfLFbHU+rHHHmsOOOCAnda3q6W2//Of/5jbbrvN5OTkmKSkJDNq1Kgdlm02xpjx48ebLl26GI/HY4488kgzZ86cHY65u9q2X/rdGGPKy8vNDTfcYDp37mwSEhJMnz59zMMPPxyxTLQxwaW7x44du0NNu1pWfHubNm0yl19+uenQoYNxu93mwAMP3Ony9NFa+t0YYz799FNz5JFHmqSkJOP1es1pp51mFi9eHNFm26XfQ6qqqsyxxx5rUlNTzTfffGOMCb5Pt912m+ndu7dxu92mQ4cO5te//rX5xz/+Yerq6owxvyzP/fDD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0osvvqj+/fvrm2++0RFHHKFPPvlEixcv1qeffqrc3FwNHjxY9957r2655RbdddddcrvdmjBhgnr27Knx48dLkvr3768vv/xSjz76qEaMGNHir3l34ilsGWPkqClTUoJD1fUBrdlcqT65aXaXBQAAALQacTNny+/36/XXX1dlZaWGDh2quXPnqr6+XsOHDw+36devn7p3765Zs2ZJkmbNmqUDDzxQubm54TYjRoyQz+cL947NmjUr4hihNqFj7Extba18Pl/EV0uIp2GElb6tem76UiU5gvPI5i7fIGOMzVUBAAAArYftYevHH39UamqqPB6Prr76ar3zzjsaMGCACgsL5Xa7lZGREdE+NzdXhYWFkqTCwsKIoBXaH9q3uzY+n0/V1dU7remBBx5Qenp6+Ktbt27ReKm7ZYzRpi1lkqQEZ8xPt1dSvJlKSwgGv1e+Wqni4mKbKwIAAABaD9vDVt++fTV//nx9++23uuaaazR69GgtXrzY1ppuu+02lZWVhb/Wr18f83MWFxfr88UbJUlWwB/z8+0trzv4Z5Xc9hYCAAAAtDK2ztmSJLfbrd69e0uShgwZotmzZ+vxxx/Xeeedp7q6OpWWlkb0bm3atEl5eXmSpLy8PH333XcRxwutVrhtm+1XMNy0aZO8Xq+SkpJ2WpPH45HH44nK62sK4/JIqpUrDoYRhoTCVmlN/ARAAAAAoDWwvWdre4FAQLW1tRoyZIgSEhI0bdq08L5ly5Zp3bp1Gjp0qCRp6NCh+vHHH1VUVBRuM3XqVHm9Xg0YMCDcZttjhNqEjhFP6gPBOVEJcfRT8SYE/yyr8SvAnC0AAABgr9nas3XbbbfplFNOUffu3VVeXq7XXntNM2fO1Mcff6z09HSNGTNGN954o7KysuT1enXddddp6NChOuKIIyRJJ510kgYMGKBLLrlEDz30kAoLC3X77bdr7Nix4Z6pq6++Wk8++aT+9Kc/6YorrtD06dP15ptvavLkyXa+9J1q8AfDjCuOwlZKguSwJL+RCnx1ysvd83MAAAAA2By2ioqKdOmll6qgoEDp6ekaNGiQPv74Y5144omSpEcffVQOh0PnnHOOamtrNWLECD399NPh5zudTn3wwQe65pprNHToUKWkpGj06NG65557wm169uypyZMn64YbbtDjjz+url276l//+lfcLfsubduzFT/DCB2W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fYehn9H6t2Ho0KERxwi14XNG/NjTtbAz8+fPl6SI3w1cC+2U3St0xLvXX3/deDweM3HiRLN48WJz1VVXmYyMjIjVZND63XTTTWbmzJlm9erV5quvvjLDhw83HTp0MEVFRcYYY66++mrTvXt3M336dDNnzhwzdOhQM3To0PDzGxoazMCBA81JJ51k5s+fb6ZMmWI6duxobrvtNrteEvZSeXm5mTdvnpk3b56RZB555BEzb948s3btWmOMMQ8++KDJyMgwkyZNMgsWLDBnnHGG6dmzp6murg4f4+STTza/+tWvzLfffmu+/PJL06dPH3PBBReE95eWlprc3FxzySWXmIULF5rXX3/dJCcnm2effbbFXy92b3fXQ3l5ufnjH/9oZs2aZVavXm0+/fRTc/DBB5s+ffqYmpqa8DG4HtqGa665xqSnp5uZM2eagoKC8FdVVVW4TTT+bVi1apVJTk42N998s1myZIl56qmnjNPpNFOmTGnR14td29O1sGLFCnPPPfeYOXPmmNWrV5tJkyaZXr16mWOOOSZ8DK6F9ouwtRf++c9/mu7duxu3220OO+ww880339hdEqLsvPPOM506dTJut9t06dLFnHfeeWbFihXh/dXV1eb3v/+9yczMNMnJyeass84yBQUFEcdYs2aNOeWUU0xSUpLp0KGDuemmm0x9fX1LvxQ00YwZM4ykHb5Gjx5tjAku//7Xv/7V5ObmGo/HY4YNG2aWLVsWcYySkhJzwQUXmNTUVOP1es3ll19uysvLI9r88MMP5qijjjIej8d06dLFPPjggy31EtEEu7seqqqqzEknnWQ6duxoEhISTH5+vrnyyit3+M83roe2YWfXgSTz4osvhttE69+GGTNmmMGDBxu322169eoVcQ7Yb0/Xwrp168wxxxxjsrKyjMfjMb179zY333yzKSsrizgO10L7ZBljTMv1owEAAABA+8CcLQAAAACIAcIWAAAAAMQAYQsAAAAAYoCwBQAAAAAxQNgCAAAAgBggbAEAAABADBC2AAAAACAGCFsAAAAAEAOELQBAq7ZmzRpZlqX58+fbXQoAABEIWwAA21mWtduvu+66y+4Sd2rFihW6/PLL1bVrV3k8HvXs2VMXXHCB5syZ06J1EDgBID657C4AAICCgoLw92+88YbuuOMOLVu2LLwtNTXVjrJ2a86cORo2bJgGDhyoZ599Vv369VN5ebkmTZqkm266SZ999pndJQIAbEbPFgDAdnl5eeGv9PR0WZYVfpyTk6NHHnkk3Hs0ePBgTZkyZZfH8vv9uuKKK9SvXz+tW7dOkjRp0iQdfPDBSkxMVK9evXT33XeroaEh/BzLsvSvf/1LZ511lpKTk9WnTx+99957uzyHMUaXXXaZ+vTpoy+++EKjRo3Sfvvtp8GDB+vOO+/UpEmTwm1//PFHnXDCCUpKSlJ2drauuuoqVVRUhPcfd9xxGjduXMTxzzzzTF122WXhxz169NDf/vY3XXHFFUpLS1P37t313HPPhff37NlTkvSrX/1KlmXpuOOO2+37DQBoGYQtAEBce/zxxzV+/Hj94x//0IIFCzRixAidfvrpWr58+Q5ta2tr9f/+3//T/Pnz9cUXX6h79+764osvdOmll+r666/X4sWL9eyzz2rixIm6//77I55799136ze/+Y0WLFigkSNH6qKLLtKWLVt2WtP8+fO1aNEi3XTTTXI4dvynNCMjQ5JUWVmpESNGKDMzU7Nnz9Zbb72lTz/9VNdee22T34fx48frkEMO0bx58/T73/9e11xzTbj377vvvpMkffrppyooKNDbb7/d5OMDAKKPsAUAiGv/+Mc/dMstt+j8889X37599fe//12DBw/WY489FtGuoqJCo0aNUnFxsWbMmKGOHTtKCoaoW2+9VaNHj1avXr104okn6t5779Wzzz4b8fzLLrtMF1xwgXr37q2//e1vqqioCIeY7YWCXr9+/XZb+2uvvaaamhq9/PLLGjhwoE444QQ9+eST+ve//61NmzY16X0YOXKkfv/736t379665ZZb1KFDB82YMUOSwq81OztbeXl5ysrKatKxAQCxwZwtAEDc8vl82rhxo4488siI7UceeaR++OGHiG0XXHCBunbtqunTpyspKSm8/YcfftBXX30V0ZPl9/tVU1OjqqoqJScnS5IGDRoU3p+SkiKv16uioqKd1mWM2av6lyxZooMOOkgpKSkRtQcCAS1btky5ubl7dZzt6wsNs9xVfQCA+EDPFgCgTRg5cqQWLFigWbNmRWyvqKjQ3Xffrfnz54e/fvzxRy1fvlyJiYnhdgkJCRHPsyxLgUBgp+faf//9JUlLly7d57odDscO4a2+vn6Hdk2pDwAQHwhbAIC45fV61blzZ3311VcR27/66isNGDAgYts111yjBx98UKeffnrESoAHH3ywli1bpt69e+/wtbP5Vntj8ODBGjBggMaPH7/TwFNaWipJ6t+/v3744QdVVlZG1O5wONS3b19JwSGA267G6Pf7tXDhwibV43a7w88FAMQPwhYAIK7dfPPN+vvf/6433nhDy5Yt06233qr58+fr+uuv36Htddddp/vuu0+nnnqqvvzyS0nSHXfcoZdffll33323Fi1apCVLluj111/X7bff3uyaLMvSiy++qJ9++klHH320PvzwQ61atUoLFizQ/fffrzPOOEOSdNFFFykxMVGjR4/WwoULNWPGDF133XW65JJLwkMITzjhBE2ePFmTJ0/W0qVLdc0114TD2t7KyclRUlKSpkyZok2bNqmsrKzZrw0AED2ELQBAXPvDH/6gG2+8UTfddJMOPPBATZkyRe+995769Omz0/bjxo3T3XffrZEjR+rrr7/WiBEj9MEHH+iTTz7RoYceqiOOOEKPPvqo8vPz96muww47THPmzFHv3r115ZVXqn///jr99NO1aNGi8OIdycnJ+vjjj7VlyxYdeuihOvfcczVs2DA9+eST4eNcccUVGj16tC699FIde+yx6tWrl44//vgm1eJyufTEE0/o2WefVefOncNhDwBgL8vs7SxfAAAAAMBeo2cLAAAAAGKAsAUAAAAAMUDYAgAAAIAYIGwBAAAAQAwQtgAAAAAgBghbAAAAABADhC0AAAAAiAHCFgAAAADEAGELAAAAAGKAsAUAAAAAMUDYAgAAAIAY+P8Fy0eBXkVixgAAAABJRU5ErkJggg==","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["\n","# Combine processed content from train and test dataframes\n","all_data = train_df.processed_content.tolist() + test_df.processed_content.tolist()\n","# Encode the text\n","encoded_text = [tokenizer.encode(text, add_special_tokens=True) for text in all_data]\n","\n","# Calculate the length of each encoded text\n","token_lens = [len(text) for text in encoded_text]\n","\n","# Plot the distribution of token lengths\n","plt.figure(figsize=(10, 6))\n","sns.histplot(token_lens, kde=True)\n","plt.xlim([0, max(token_lens)])\n","plt.xlabel('Token Count')\n","plt.ylabel('Frequency')\n","plt.title('Distribution of Token Count per Sentence')\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"BjMv5-vvOl93"},"source":["## Model PhoBert"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Mz4mEyJqOl93"},"outputs":[],"source":["class NewsDataset(Dataset):\n"," def __init__(self, df, tokenizer, max_len):\n"," self.df = df\n"," self.max_len = max_len\n"," self.tokenizer = tokenizer\n","\n"," def __len__(self):\n"," return len(self.df)\n","\n"," def __getitem__(self, index):\n"," \"\"\"\n"," To customize dataset, inherit from Dataset class and implement\n"," __len__ & __getitem__\n"," __getitem__ should return\n"," data:\n"," input_ids\n"," attention_masks\n"," text\n"," targets\n"," \"\"\"\n"," row = self.df.iloc[index]\n"," text, label = self.get_input_data(row)\n","\n"," # Encode_plus will:\n"," # (1) split text into token\n"," # (2) Add the '[CLS]' and '[SEP]' token to the start and end\n"," # (3) Truncate/Pad sentence to max length\n"," # (4) Map token to their IDS\n"," # (5) Create attention mask\n"," # (6) Return a dictionary of outputs\n"," encoding = self.tokenizer.encode_plus(\n"," text,\n"," truncation=True,\n"," add_special_tokens=True,\n"," max_length=self.max_len,\n"," padding='max_length',\n"," return_attention_mask=True,\n"," return_token_type_ids=False,\n"," return_tensors='pt',\n"," )\n","\n"," return {\n"," 'text': text,\n"," 'input_ids': encoding['input_ids'].flatten(),\n"," 'attention_masks': encoding['attention_mask'].flatten(),\n"," 'targets': torch.tensor(label, dtype=torch.long),\n"," }\n","\n","\n"," def labelencoder(self, text):\n"," label_map = {\n"," 'Cong nghe': 0, 'Doi song': 1, 'Giai tri': 2, 'Giao duc': 3, 'Khoa hoc': 4,\n"," 'Kinh te': 5, 'Nha dat': 6, 'Phap luat': 7, 'The gioi': 8, 'The thao': 9,\n"," 'Van hoa': 10, 'Xa hoi': 11, 'Xe co': 12\n"," }\n"," return label_map.get(text, -1)\n","\n"," def get_input_data(self, row):\n"," text = row['processed_content']\n"," label = self.labelencoder(row['category'])\n"," return text, label"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"zMq3qvM0Ol94"},"outputs":[],"source":["class NewsClassifier(nn.Module):\n"," def __init__(self, n_classes, model_name):\n"," super(NewsClassifier, self).__init__()\n"," # Load a pre-trained BERT model\n"," self.bert = AutoModel.from_pretrained(model_name)\n"," # Dropout layer to prevent overfitting\n"," self.drop = nn.Dropout(p=0.3)\n"," # Fully-connected layer to convert BERT's hidden state to the number of classes to predict\n"," self.fc = nn.Linear(self.bert.config.hidden_size, n_classes)\n"," # Initialize weights and biases of the fully-connected layer using the normal distribution method\n"," nn.init.normal_(self.fc.weight, std=0.02)\n"," nn.init.normal_(self.fc.bias, 0)\n","\n"," def forward(self, input_ids, attention_mask):\n"," # Get the output from the BERT model\n"," last_hidden_state, output = self.bert(\n"," input_ids=input_ids,\n"," attention_mask=attention_mask,\n"," return_dict=False\n"," )\n"," # Apply dropout\n"," x = self.drop(output)\n"," # Pass through the fully-connected layer to get predictions\n"," x = self.fc(x)\n"," return x"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"X7wuM4oAOl94"},"outputs":[],"source":["def prepare_loaders(df, fold):\n"," df_train = df[df.kfold != fold].reset_index(drop=True)\n"," df_valid = df[df.kfold == fold].reset_index(drop=True)\n","\n"," train_dataset = NewsDataset(df_train, tokenizer, max_len)\n"," valid_dataset = NewsDataset(df_valid, tokenizer, max_len)\n","\n"," train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True, num_workers=2)\n"," valid_loader = DataLoader(valid_dataset, batch_size=16, shuffle=True, num_workers=2)\n","\n"," return train_loader, valid_loader"]},{"cell_type":"markdown","metadata":{"id":"h4gy1xRfOl94"},"source":["### Train"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"BRIOWDxqOl94"},"outputs":[],"source":["# Function to train the model for one epoch\n","def train(model, criterion, optimizer, train_loader, lr_scheduler):\n"," model.train()\n"," losses = []\n"," correct = 0\n","\n"," for batch_idx, data in enumerate(train_loader):\n"," input_ids = data['input_ids'].to(device)\n"," attention_mask = data['attention_masks'].to(device)\n"," targets = data['targets'].to(device)\n","\n"," optimizer.zero_grad()\n"," outputs = model(\n"," input_ids=input_ids,\n"," attention_mask=attention_mask\n"," )\n","\n"," loss = criterion(outputs, targets)\n"," _, pred = torch.max(outputs, dim=1)\n","\n"," correct += torch.sum(pred == targets)\n"," losses.append(loss.item())\n"," loss.backward()\n"," nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)\n"," optimizer.step()\n"," lr_scheduler.step()\n","\n"," if batch_idx % 1000 == 0:\n"," print(f'Batch {batch_idx}/{len(train_loader)} - Loss: {loss.item():.4f}, Accuracy: {correct.double() / ((batch_idx + 1) * train_loader.batch_size):.4f}')\n","\n"," train_accuracy = correct.double() / len(train_loader.dataset)\n"," avg_loss = np.mean(losses)\n"," print(f'Train Accuracy: {train_accuracy:.4f} Loss: {avg_loss:.4f}')\n","\n","# Function to evaluate the model\n","def eval(model, criterion, valid_loader, test_loader=None):\n"," model.eval()\n"," losses = []\n"," correct = 0\n","\n"," with torch.no_grad():\n"," data_loader = test_loader if test_loader else valid_loader\n"," for batch_idx, data in enumerate(data_loader):\n"," input_ids = data['input_ids'].to(device)\n"," attention_mask = data['attention_masks'].to(device)\n"," targets = data['targets'].to(device)\n","\n"," outputs = model(\n"," input_ids=input_ids,\n"," attention_mask=attention_mask\n"," )\n","\n"," loss = criterion(outputs, targets)\n"," _, pred = torch.max(outputs, dim=1)\n","\n"," correct += torch.sum(pred == targets)\n"," losses.append(loss.item())\n","\n"," dataset_size = len(test_loader.dataset) if test_loader else len(valid_loader.dataset)\n"," accuracy = correct.double() / dataset_size\n"," avg_loss = np.mean(losses)\n","\n"," if test_loader:\n"," print(f'Test Accuracy: {accuracy:.4f} Loss: {avg_loss:.4f}')\n"," else:\n"," print(f'Valid Accuracy: {accuracy:.4f} Loss: {avg_loss:.4f}')\n","\n"," return accuracy\n","\n","\n","total_start_time = time.time()\n","\n","# Main training loop\n","for fold in range(skf.n_splits):\n"," print(f'----------- Fold: {fold + 1} ------------------')\n"," train_loader, valid_loader = prepare_loaders(train_df, fold=fold)\n"," model = NewsClassifier(n_classes=13).to(device)\n"," criterion = nn.CrossEntropyLoss()\n"," optimizer = AdamW(model.parameters(), lr=2e-5)\n","\n"," lr_scheduler = get_linear_schedule_with_warmup(\n"," optimizer,\n"," num_warmup_steps=0,\n"," num_training_steps=len(train_loader) * EPOCHS\n"," )\n"," best_acc = 0\n","\n"," for epoch in range(EPOCHS):\n"," print(f'Epoch {epoch + 1}/{EPOCHS}')\n"," print('-' * 30)\n","\n"," train(model, criterion, optimizer, train_loader, lr_scheduler)\n"," val_acc = eval(model, criterion, valid_loader)\n","\n"," if val_acc > best_acc:\n"," torch.save(model.state_dict(), f'phobert_fold{fold + 1}.pth')\n"," best_acc = val_acc\n"," print(f'Best Accuracy for Fold {fold + 1}: {best_acc:.4f}')\n"," print()\n"," print(f'Finished Fold {fold + 1} with Best Accuracy: {best_acc:.4f}')\n"," print('--------------------------------------')\n","\n","\n","total_end_time = time.time()\n","\n","total_duration = total_end_time - total_start_time\n","print(f'Total training time: {total_duration:.2f} seconds')\n"]},{"cell_type":"markdown","metadata":{"id":"qwlF0GZOOl95"},"source":["### Test"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"_SCp99aOOl95"},"outputs":[],"source":["# Function to decode numeric labels into their corresponding text names\n","def decode_labels(labels):\n"," label_map = {\n"," 0: 'Cong nghe', 1: 'Doi song', 2: 'Giai tri', 3: 'Giao duc', 4: 'Khoa hoc',\n"," 5: 'Kinh te', 6: 'Nha dat', 7: 'Phap luat', 8: 'The gioi', 9: 'The thao',\n"," 10: 'Van hoa', 11: 'Xa hoi', 12: 'Xe co'\n"," }\n"," return [label_map[label] for label in labels]\n","\n","# Function to test the model\n","def test(data_loader):\n"," models = []\n"," for fold in range(skf.n_splits):\n"," model = NewsClassifier(n_classes=13)\n"," model.to(device)\n"," model.load_state_dict(torch.load(f'{path}phobert_fold{fold+1}.pth'))\n"," model.eval()\n"," models.append(model)\n","\n"," texts = []\n"," predicts = []\n"," predict_probs = []\n"," real_values = []\n","\n"," for data in data_loader:\n"," text = data['text']\n"," input_ids = data['input_ids'].to(device)\n"," attention_mask = data['attention_masks'].to(device)\n"," targets = data['targets'].to(device)\n","\n"," total_outs = []\n"," for model in models:\n"," with torch.no_grad():\n"," outputs = model(\n"," input_ids=input_ids,\n"," attention_mask=attention_mask\n"," )\n"," total_outs.append(outputs)\n","\n"," # Taking the average of predictions from 5 models\n"," total_outs = torch.stack(total_outs)\n"," _, pred = torch.max(total_outs.mean(0), dim=1)\n"," texts.extend(text)\n"," predicts.extend(pred)\n"," predict_probs.extend(total_outs.mean(0))\n"," real_values.extend(targets)\n","\n"," predicts = torch.stack(predicts).cpu().numpy()\n"," predict_probs = torch.stack(predict_probs).cpu().numpy()\n"," real_values = torch.stack(real_values).cpu().numpy()\n","\n"," # Decode numeric labels into text labels\n"," decoded_real_values = decode_labels(real_values)\n"," decoded_predicts = decode_labels(predicts)\n","\n"," # Generate classification report\n"," report = classification_report(decoded_real_values, decoded_predicts, output_dict=True)\n","\n"," # Convert to DataFrame\n"," df_report = pd.DataFrame(report).transpose()\n","\n"," return df_report, real_values, predicts"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":81,"referenced_widgets":["df3cbd2c4920474bad84ec99eda619c0","85effd0ef07646eebdd4f3f11600d7a9","20b90fbcd3e847e9ba32754533006005","17b8728e992b4492b462fc43e818aeb0","3f8b887fb7734f5c8f6039635e56bd1e","fdebb25d116543588433193b23754ee3","19bbaf575d524985a9500f970cc26ae5","fd5ffeec51ad471880fe0727281064bb","33f3c907f87d457f9668159dc751474d","5a1c448958014944975d9aa23ea6e731","c861c40db6514b1c8edeef8807893947","2596e14f143b4b84993ee6c11f2a70c1","e851ec492a5f4e55aabab75132452164","9806430ca6034e7993a4a10db28688a8","244f1f1d736748fab96fca0e84953a81","82c39e0cbb9349e085d2cd661fb653f5","baefa134fff04b9f930d9970256453b7","ba6cdff06d4f4813989193ada3e9efb6","e0a021045cb74752b3d4766d26226cc0","25086f17dc4747e38effd3c43acff41f","37c0a263d21046758c860ab98154dc0a","43291225a3294dd0a90d480264337e72"]},"id":"p7laJqSVOl96","outputId":"6739c89c-841d-4339-d811-c26e36516e6b"},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"df3cbd2c4920474bad84ec99eda619c0","version_major":2,"version_minor":0},"text/plain":["config.json: 0%| | 0.00/916 [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"2596e14f143b4b84993ee6c11f2a70c1","version_major":2,"version_minor":0},"text/plain":["pytorch_model.bin: 0%| | 0.00/637M [00:00, ?B/s]"]},"metadata":{},"output_type":"display_data"}],"source":["# Create dataloader for test set\n","test_dataset = NewsDataset(test_df, tokenizer, max_len)\n","test_loader = DataLoader(test_dataset, batch_size=16, shuffle=True, num_workers=2)\n","df_report, real_values, predicts = test(test_loader)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":551},"id":"3PfIY0jkg16s","outputId":"7ea15cdf-afb6-4e0b-9be3-c91653646a30"},"outputs":[{"data":{"application/vnd.google.colaboratory.intrinsic+json":{"summary":"{\n \"name\": \"df_report\",\n \"rows\": 16,\n \"fields\": [\n {\n \"column\": \"precision\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.03124322214613196,\n \"min\": 0.8457655636567583,\n \"max\": 0.9698681732580038,\n \"num_unique_values\": 16,\n \"samples\": [\n 0.9432234432234432,\n 0.8915956151035322,\n 0.9139344262295082\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"recall\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.03650359365888964,\n \"min\": 0.8543909348441926,\n \"max\": 0.9826187717265353,\n \"num_unique_values\": 15,\n \"samples\": [\n 0.9826187717265353,\n 0.8543909348441926,\n 0.9426479560707749\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"f1-score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0333532065632639,\n \"min\": 0.8500563697857947,\n \"max\": 0.974152785755313,\n \"num_unique_values\": 16,\n \"samples\": [\n 0.9429356118400978,\n 0.8870039382005452,\n 0.8946840521564694\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"support\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 7668.022603263057,\n \"min\": 0.9163972477824753,\n \"max\": 24126.0,\n \"num_unique_values\": 15,\n \"samples\": [\n 1726.0,\n 1765.0,\n 1639.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}","type":"dataframe","variable_name":"df_report"},"text/html":["\n","