{ "cells": [ { "cell_type": "code", "execution_count": 68, "id": "fb106e20", "metadata": {}, "outputs": [], "source": [ "import json, pickle\n", "import numpy as np\n", "from keras.models import Model\n", "from keras.layers import Input, Embedding, Bidirectional, LSTM, TimeDistributed, Dense\n", "from keras.preprocessing.sequence import pad_sequences\n", "from keras.utils import to_categorical\n", "from seqeval.metrics import classification_report\n", "from sklearn.model_selection import train_test_split\n", "from tensorflow.keras.metrics import CategoricalAccuracy\n", "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n", "import matplotlib.pyplot as plt\n", "from collections import Counter\n" ] }, { "cell_type": "code", "execution_count": 69, "id": "00347a5f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribusi label SRL:\n", "ARG1: 2597\n", "O: 1487\n", "V: 943\n", "ARGM-LOC: 781\n", "ARGM-TMP: 736\n", "ARG0: 685\n", "ARG2: 445\n", "ARGM-MNR: 221\n", "ARGM-CAU: 113\n", "ARGM-MOD: 90\n", "ARGM-ADV: 29\n", "ARGM-NEG: 18\n", "ARGM-PRP: 18\n", "ARGM-SRC: 16\n", "ARGM-COM: 16\n", "ARGM-PRD: 13\n", "ARGM-DIR: 13\n", "ARG3: 12\n", "ARGM-DIS: 8\n", "ARGM-BNF: 6\n", "I-TIME: 4\n", "ARGM-FRQ: 2\n", "ARGM-ORD: 2\n", "ARGM-EXT: 2\n", "ARGM-REC: 2\n", "B-TIME: 2\n", "Osoe: 1\n", "ARGM-ADJ: 1\n", "ARGM-EX: 1\n", "\n", "Distribusi label NER:\n", "O: 5782\n", "B-LOC: 551\n", "I-QUANT: 224\n", "B-QUANT: 203\n", "I-LOC: 202\n", "I-EVENT: 151\n", "I-DATE: 146\n", "B-EVENT: 143\n", "B-DATE: 139\n", "I-PER: 121\n", "B-TIME: 113\n", "B-PER: 110\n", "I-TIME: 98\n", "B-ETH: 83\n", "I-ETH: 65\n", "B-ORG: 60\n", "I-ORG: 24\n", "B-MISC: 22\n", "B-RES: 8\n", "B-MIN: 6\n", "I-MISC: 4\n", "I-TERM: 3\n", "B-REL: 2\n", "B-TERM: 2\n", "I-RES: 2\n", "\n", "Total kalimat: 799\n", "Total token: 8264\n" ] } ], "source": [ "from collections import Counter\n", "\n", "data = []\n", "\n", "with open(\"../dataset/dataset_ner_srl.tsv\", encoding=\"utf-8\") as f:\n", " tokens, ner_labels, srl_labels = [], [], []\n", " \n", " for line in f:\n", " line = line.strip()\n", " if not line:\n", " if tokens:\n", " data.append({\n", " \"tokens\": tokens,\n", " \"labels_ner\": ner_labels,\n", " \"labels_srl\": srl_labels\n", " })\n", " tokens, ner_labels, srl_labels = [], [], []\n", " else:\n", " token, ner, srl = line.split(\"\\t\")\n", " tokens.append(token)\n", " ner_labels.append(ner)\n", " srl_labels.append(srl)\n", "\n", "# Preprocessing\n", "sentences = [[tok.lower() for tok in item[\"tokens\"]] for item in data]\n", "labels_ner = [item[\"labels_ner\"] for item in data]\n", "labels_srl = [item[\"labels_srl\"] for item in data]\n", "\n", "# Hitung total label SRL\n", "srl_counter = Counter()\n", "for srl_sequence in labels_srl:\n", " srl_counter.update(srl_sequence)\n", "\n", "print(\"Distribusi label SRL:\")\n", "for label, count in srl_counter.most_common():\n", " print(f\"{label}: {count}\")\n", "\n", "# Hitung total label NER\n", "ner_counter = Counter()\n", "for ner_sequence in labels_ner:\n", " ner_counter.update(ner_sequence)\n", "\n", "print(\"\\nDistribusi label NER:\")\n", "for label, count in ner_counter.most_common():\n", " print(f\"{label}: {count}\")\n", "\n", "# Total kalimat dan token\n", "total_kalimat = len(data)\n", "total_token = sum(len(item[\"tokens\"]) for item in data)\n", "\n", "print(\"\\nTotal kalimat:\", total_kalimat)\n", "print(\"Total token:\", total_token)\n" ] }, { "cell_type": "code", "execution_count": 70, "id": "ac8eb374", "metadata": {}, "outputs": [], "source": [ "# tagging \n", "words = sorted({w for s in sentences for w in s})\n", "ner_tags = sorted({t for seq in labels_ner for t in seq})\n", "srl_tags = sorted({t for seq in labels_srl for t in seq})\n", "\n", "word2idx = {w: i + 2 for i, w in enumerate(words)}\n", "word2idx[\"PAD\"], word2idx[\"UNK\"] = 0, 1\n", "\n", "tag2idx_ner = {t: i for i, t in enumerate(ner_tags)}\n", "tag2idx_srl = {t: i for i, t in enumerate(srl_tags)}\n", "idx2tag_ner = {i: t for t, i in tag2idx_ner.items()}\n", "idx2tag_srl = {i: t for t, i in tag2idx_srl.items()}" ] }, { "cell_type": "code", "execution_count": 71, "id": "80356f1f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "39\n" ] } ], "source": [ "# encoding\n", "\n", "X = [[word2idx.get(w, word2idx[\"UNK\"]) for w in s] for s in sentences]\n", "y_ner = [[tag2idx_ner[t] for t in seq] for seq in labels_ner]\n", "y_srl = [[tag2idx_srl[t] for t in seq] for seq in labels_srl]\n", "\n", "maxlen = max(len(s) for s in sentences)\n", "print(maxlen)\n", "\n", "X = pad_sequences(X, maxlen=maxlen, padding=\"post\", value=word2idx[\"PAD\"])\n", "y_ner = pad_sequences(y_ner, maxlen=maxlen, padding=\"post\", value=tag2idx_ner[\"O\"])\n", "y_srl = pad_sequences(y_srl, maxlen=maxlen, padding=\"post\", value=tag2idx_srl[\"O\"])\n", "\n", "y_ner = [to_categorical(seq, num_classes=len(tag2idx_ner)) for seq in y_ner]\n", "y_srl = [to_categorical(seq, num_classes=len(tag2idx_srl)) for seq in y_srl]\n", "\n", "X = np.array(X)\n", "y_ner = np.array(y_ner)\n", "y_srl = np.array(y_srl)" ] }, { "cell_type": "code", "execution_count": 72, "id": "fe219c96", "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_ner_train, y_ner_test, y_srl_train, y_srl_test = train_test_split(\n", " X, y_ner, y_srl, \n", " test_size=0.20, \n", " random_state=42,\n", " shuffle=True \n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "7a9636b6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Model: \"functional_6\"\n",
"
\n"
],
"text/plain": [
"\u001b[1mModel: \"functional_6\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n", "┃ Layer (type) ┃ Output Shape ┃ Param # ┃ Connected to ┃\n", "┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩\n", "│ input_layer_6 │ (None, 39) │ 0 │ - │\n", "│ (InputLayer) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ embedding_6 │ (None, 39, 64) │ 130,816 │ input_layer_6[0]… │\n", "│ (Embedding) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ bidirectional_6 │ (None, 39, 128) │ 66,048 │ embedding_6[0][0] │\n", "│ (Bidirectional) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ ner_output │ (None, 39, 25) │ 3,225 │ bidirectional_6[… │\n", "│ (TimeDistributed) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ srl_output │ (None, 39, 29) │ 3,741 │ bidirectional_6[… │\n", "│ (TimeDistributed) │ │ │ │\n", "└─────────────────────┴───────────────────┴────────────┴───────────────────┘\n", "\n" ], "text/plain": [ "┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mConnected to \u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩\n", "│ input_layer_6 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m39\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │ - │\n", "│ (\u001b[38;5;33mInputLayer\u001b[0m) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ embedding_6 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m39\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m130,816\u001b[0m │ input_layer_6[\u001b[38;5;34m0\u001b[0m]… │\n", "│ (\u001b[38;5;33mEmbedding\u001b[0m) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ bidirectional_6 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m39\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m66,048\u001b[0m │ embedding_6[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n", "│ (\u001b[38;5;33mBidirectional\u001b[0m) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ ner_output │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m39\u001b[0m, \u001b[38;5;34m25\u001b[0m) │ \u001b[38;5;34m3,225\u001b[0m │ bidirectional_6[\u001b[38;5;34m…\u001b[0m │\n", "│ (\u001b[38;5;33mTimeDistributed\u001b[0m) │ │ │ │\n", "├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n", "│ srl_output │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m39\u001b[0m, \u001b[38;5;34m29\u001b[0m) │ \u001b[38;5;34m3,741\u001b[0m │ bidirectional_6[\u001b[38;5;34m…\u001b[0m │\n", "│ (\u001b[38;5;33mTimeDistributed\u001b[0m) │ │ │ │\n", "└─────────────────────┴───────────────────┴────────────┴───────────────────┘\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Total params: 203,830 (796.21 KB)\n", "\n" ], "text/plain": [ "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m203,830\u001b[0m (796.21 KB)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Trainable params: 203,830 (796.21 KB)\n", "\n" ], "text/plain": [ "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m203,830\u001b[0m (796.21 KB)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Non-trainable params: 0 (0.00 B)\n", "\n" ], "text/plain": [ "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 10ms/step - loss: 1.8462 - ner_output_accuracy: 0.9063 - ner_output_loss: 0.7988 - srl_output_accuracy: 0.8035 - srl_output_loss: 1.0474 - val_loss: 0.8543 - val_ner_output_accuracy: 0.9196 - val_ner_output_loss: 0.3470 - val_srl_output_accuracy: 0.8340 - val_srl_output_loss: 0.5073\n", "Epoch 2/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.7499 - ner_output_accuracy: 0.9186 - ner_output_loss: 0.3147 - srl_output_accuracy: 0.8535 - srl_output_loss: 0.4352 - val_loss: 0.6488 - val_ner_output_accuracy: 0.9325 - val_ner_output_loss: 0.2552 - val_srl_output_accuracy: 0.8750 - val_srl_output_loss: 0.3936\n", "Epoch 3/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.5438 - ner_output_accuracy: 0.9362 - ner_output_loss: 0.2241 - srl_output_accuracy: 0.9011 - srl_output_loss: 0.3197 - val_loss: 0.5199 - val_ner_output_accuracy: 0.9534 - val_ner_output_loss: 0.1888 - val_srl_output_accuracy: 0.9000 - val_srl_output_loss: 0.3311\n", "Epoch 4/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.3795 - ner_output_accuracy: 0.9596 - ner_output_loss: 0.1522 - srl_output_accuracy: 0.9356 - srl_output_loss: 0.2273 - val_loss: 0.4739 - val_ner_output_accuracy: 0.9631 - val_ner_output_loss: 0.1609 - val_srl_output_accuracy: 0.9090 - val_srl_output_loss: 0.3131\n", "Epoch 5/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.2946 - ner_output_accuracy: 0.9706 - ner_output_loss: 0.1146 - srl_output_accuracy: 0.9507 - srl_output_loss: 0.1799 - val_loss: 0.4509 - val_ner_output_accuracy: 0.9678 - val_ner_output_loss: 0.1383 - val_srl_output_accuracy: 0.9114 - val_srl_output_loss: 0.3125\n", "Epoch 6/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.2389 - ner_output_accuracy: 0.9789 - ner_output_loss: 0.0907 - srl_output_accuracy: 0.9578 - srl_output_loss: 0.1482 - val_loss: 0.4452 - val_ner_output_accuracy: 0.9692 - val_ner_output_loss: 0.1355 - val_srl_output_accuracy: 0.9165 - val_srl_output_loss: 0.3097\n", "Epoch 7/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.1932 - ner_output_accuracy: 0.9821 - ner_output_loss: 0.0719 - srl_output_accuracy: 0.9663 - srl_output_loss: 0.1214 - val_loss: 0.4347 - val_ner_output_accuracy: 0.9704 - val_ner_output_loss: 0.1281 - val_srl_output_accuracy: 0.9228 - val_srl_output_loss: 0.3066\n", "Epoch 8/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.1375 - ner_output_accuracy: 0.9875 - ner_output_loss: 0.0495 - srl_output_accuracy: 0.9763 - srl_output_loss: 0.0880 - val_loss: 0.4387 - val_ner_output_accuracy: 0.9710 - val_ner_output_loss: 0.1257 - val_srl_output_accuracy: 0.9204 - val_srl_output_loss: 0.3130\n", "Epoch 9/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.1198 - ner_output_accuracy: 0.9895 - ner_output_loss: 0.0440 - srl_output_accuracy: 0.9801 - srl_output_loss: 0.0758 - val_loss: 0.4530 - val_ner_output_accuracy: 0.9715 - val_ner_output_loss: 0.1357 - val_srl_output_accuracy: 0.9204 - val_srl_output_loss: 0.3173\n", "Epoch 10/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0948 - ner_output_accuracy: 0.9914 - ner_output_loss: 0.0358 - srl_output_accuracy: 0.9846 - srl_output_loss: 0.0590 - val_loss: 0.4690 - val_ner_output_accuracy: 0.9716 - val_ner_output_loss: 0.1320 - val_srl_output_accuracy: 0.9202 - val_srl_output_loss: 0.3370\n", "Epoch 11/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0820 - ner_output_accuracy: 0.9926 - ner_output_loss: 0.0303 - srl_output_accuracy: 0.9860 - srl_output_loss: 0.0518 - val_loss: 0.4649 - val_ner_output_accuracy: 0.9710 - val_ner_output_loss: 0.1344 - val_srl_output_accuracy: 0.9208 - val_srl_output_loss: 0.3305\n", "Epoch 12/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0625 - ner_output_accuracy: 0.9952 - ner_output_loss: 0.0218 - srl_output_accuracy: 0.9902 - srl_output_loss: 0.0407 - val_loss: 0.5084 - val_ner_output_accuracy: 0.9712 - val_ner_output_loss: 0.1403 - val_srl_output_accuracy: 0.9213 - val_srl_output_loss: 0.3681\n", "Epoch 13/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0495 - ner_output_accuracy: 0.9957 - ner_output_loss: 0.0173 - srl_output_accuracy: 0.9923 - srl_output_loss: 0.0321 - val_loss: 0.4905 - val_ner_output_accuracy: 0.9718 - val_ner_output_loss: 0.1420 - val_srl_output_accuracy: 0.9226 - val_srl_output_loss: 0.3485\n", "Epoch 14/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0447 - ner_output_accuracy: 0.9957 - ner_output_loss: 0.0180 - srl_output_accuracy: 0.9934 - srl_output_loss: 0.0267 - val_loss: 0.5138 - val_ner_output_accuracy: 0.9710 - val_ner_output_loss: 0.1449 - val_srl_output_accuracy: 0.9205 - val_srl_output_loss: 0.3689\n", "Epoch 15/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0353 - ner_output_accuracy: 0.9980 - ner_output_loss: 0.0116 - srl_output_accuracy: 0.9942 - srl_output_loss: 0.0236 - val_loss: 0.5168 - val_ner_output_accuracy: 0.9679 - val_ner_output_loss: 0.1456 - val_srl_output_accuracy: 0.9197 - val_srl_output_loss: 0.3712\n", "Epoch 16/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0315 - ner_output_accuracy: 0.9969 - ner_output_loss: 0.0122 - srl_output_accuracy: 0.9957 - srl_output_loss: 0.0193 - val_loss: 0.5367 - val_ner_output_accuracy: 0.9694 - val_ner_output_loss: 0.1467 - val_srl_output_accuracy: 0.9231 - val_srl_output_loss: 0.3900\n", "Epoch 17/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0229 - ner_output_accuracy: 0.9988 - ner_output_loss: 0.0073 - srl_output_accuracy: 0.9971 - srl_output_loss: 0.0157 - val_loss: 0.5494 - val_ner_output_accuracy: 0.9691 - val_ner_output_loss: 0.1525 - val_srl_output_accuracy: 0.9213 - val_srl_output_loss: 0.3969\n", "Epoch 18/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0235 - ner_output_accuracy: 0.9985 - ner_output_loss: 0.0081 - srl_output_accuracy: 0.9971 - srl_output_loss: 0.0154 - val_loss: 0.5552 - val_ner_output_accuracy: 0.9710 - val_ner_output_loss: 0.1546 - val_srl_output_accuracy: 0.9216 - val_srl_output_loss: 0.4006\n", "Epoch 19/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0184 - ner_output_accuracy: 0.9989 - ner_output_loss: 0.0065 - srl_output_accuracy: 0.9976 - srl_output_loss: 0.0119 - val_loss: 0.5899 - val_ner_output_accuracy: 0.9686 - val_ner_output_loss: 0.1588 - val_srl_output_accuracy: 0.9196 - val_srl_output_loss: 0.4311\n", "Epoch 20/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0157 - ner_output_accuracy: 0.9989 - ner_output_loss: 0.0057 - srl_output_accuracy: 0.9982 - srl_output_loss: 0.0100 - val_loss: 0.5719 - val_ner_output_accuracy: 0.9692 - val_ner_output_loss: 0.1592 - val_srl_output_accuracy: 0.9215 - val_srl_output_loss: 0.4126\n", "Epoch 21/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0142 - ner_output_accuracy: 0.9987 - ner_output_loss: 0.0061 - srl_output_accuracy: 0.9990 - srl_output_loss: 0.0081 - val_loss: 0.5963 - val_ner_output_accuracy: 0.9705 - val_ner_output_loss: 0.1665 - val_srl_output_accuracy: 0.9220 - val_srl_output_loss: 0.4298\n", "Epoch 22/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0114 - ner_output_accuracy: 0.9989 - ner_output_loss: 0.0047 - srl_output_accuracy: 0.9990 - srl_output_loss: 0.0067 - val_loss: 0.6074 - val_ner_output_accuracy: 0.9707 - val_ner_output_loss: 0.1674 - val_srl_output_accuracy: 0.9215 - val_srl_output_loss: 0.4400\n", "Epoch 23/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0080 - ner_output_accuracy: 0.9994 - ner_output_loss: 0.0030 - srl_output_accuracy: 0.9993 - srl_output_loss: 0.0050 - val_loss: 0.6179 - val_ner_output_accuracy: 0.9692 - val_ner_output_loss: 0.1691 - val_srl_output_accuracy: 0.9215 - val_srl_output_loss: 0.4488\n", "Epoch 24/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0094 - ner_output_accuracy: 0.9988 - ner_output_loss: 0.0038 - srl_output_accuracy: 0.9990 - srl_output_loss: 0.0057 - val_loss: 0.6226 - val_ner_output_accuracy: 0.9686 - val_ner_output_loss: 0.1738 - val_srl_output_accuracy: 0.9229 - val_srl_output_loss: 0.4488\n", "Epoch 25/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0086 - ner_output_accuracy: 0.9993 - ner_output_loss: 0.0032 - srl_output_accuracy: 0.9991 - srl_output_loss: 0.0054 - val_loss: 0.6720 - val_ner_output_accuracy: 0.9696 - val_ner_output_loss: 0.1785 - val_srl_output_accuracy: 0.9232 - val_srl_output_loss: 0.4935\n", "Epoch 26/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0094 - ner_output_accuracy: 0.9993 - ner_output_loss: 0.0032 - srl_output_accuracy: 0.9983 - srl_output_loss: 0.0062 - val_loss: 0.6702 - val_ner_output_accuracy: 0.9699 - val_ner_output_loss: 0.1800 - val_srl_output_accuracy: 0.9244 - val_srl_output_loss: 0.4902\n", "Epoch 27/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0071 - ner_output_accuracy: 0.9996 - ner_output_loss: 0.0023 - srl_output_accuracy: 0.9989 - srl_output_loss: 0.0048 - val_loss: 0.6484 - val_ner_output_accuracy: 0.9708 - val_ner_output_loss: 0.1834 - val_srl_output_accuracy: 0.9221 - val_srl_output_loss: 0.4650\n", "Epoch 28/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0092 - ner_output_accuracy: 0.9992 - ner_output_loss: 0.0036 - srl_output_accuracy: 0.9988 - srl_output_loss: 0.0055 - val_loss: 0.6592 - val_ner_output_accuracy: 0.9668 - val_ner_output_loss: 0.1848 - val_srl_output_accuracy: 0.9216 - val_srl_output_loss: 0.4744\n", "Epoch 29/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0071 - ner_output_accuracy: 0.9990 - ner_output_loss: 0.0034 - srl_output_accuracy: 0.9995 - srl_output_loss: 0.0037 - val_loss: 0.6624 - val_ner_output_accuracy: 0.9696 - val_ner_output_loss: 0.1908 - val_srl_output_accuracy: 0.9220 - val_srl_output_loss: 0.4716\n", "Epoch 30/30\n", "\u001b[1m320/320\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 9ms/step - loss: 0.0053 - ner_output_accuracy: 0.9994 - ner_output_loss: 0.0025 - srl_output_accuracy: 0.9995 - srl_output_loss: 0.0028 - val_loss: 0.6863 - val_ner_output_accuracy: 0.9668 - val_ner_output_loss: 0.1852 - val_srl_output_accuracy: 0.9216 - val_srl_output_loss: 0.5011\n" ] } ], "source": [ "input_layer = Input(shape=(maxlen,))\n", "embed = Embedding(len(word2idx), 64)(input_layer)\n", "bilstm = Bidirectional(LSTM(64, return_sequences=True))(embed)\n", "\n", "ner_output = TimeDistributed(\n", " Dense(len(tag2idx_ner), activation=\"softmax\"), name=\"ner_output\"\n", ")(bilstm)\n", "srl_output = TimeDistributed(\n", " Dense(len(tag2idx_srl), activation=\"softmax\"), name=\"srl_output\"\n", ")(bilstm)\n", "\n", "model = Model(inputs=input_layer, outputs=[ner_output, srl_output])\n", "model.compile(\n", " optimizer=\"adam\",\n", " loss={\n", " \"ner_output\": \"categorical_crossentropy\",\n", " \"srl_output\": \"categorical_crossentropy\",\n", " },\n", " metrics={\n", " \"ner_output\": [CategoricalAccuracy(name=\"accuracy\")],\n", " \"srl_output\": [CategoricalAccuracy(name=\"accuracy\")],\n", " },\n", ")\n", "\n", "callbacks = [\n", " tf.keras.callbacks.EarlyStopping(monitor=\"val_loss\",\n", " patience=3,\n", " restore_best_weights=True),\n", " tf.keras.callbacks.ModelCheckpoint(\n", " \"best_model.keras\", monitor=\"val_loss\", save_best_only=True)\n", "]\n", "\n", "model.summary()\n", "history = model.fit(\n", " X_train, {\"ner_output\": y_ner_train, \"srl_output\": y_srl_train}, \n", " validation_data=(X_test, {\"ner_output\": y_ner_test, \"srl_output\": y_srl_test}),\n", " batch_size=2,\n", " epochs=30,\n", " verbose=1\n", ")\n", "\n", "# ---------- 6. Simpan artefak ----------\n", "model.save(\"multi_task_lstm_ner_srl_model.keras\")\n", "with open(\"word2idx.pkl\", \"wb\") as f:\n", " pickle.dump(word2idx, f)\n", "with open(\"tag2idx_ner.pkl\", \"wb\") as f:\n", " pickle.dump(tag2idx_ner, f)\n", "with open(\"tag2idx_srl.pkl\", \"wb\") as f:\n", " pickle.dump(tag2idx_srl, f)\n" ] }, { "cell_type": "code", "execution_count": 74, "id": "82dfe902", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAjZRJREFUeJzs3Xd4FOXexvF7d5NsCgkJgYQAIYQiSO8IKlhogihWxKMUFRDFxlEURJpHsWI5oL56KCoWjo1jRQFFFBCUolKlgxAILYWEJJvdef/YZCGkbUI2k4Tv57r2yu7sMzO/2YySe+eZ57EYhmEIAAAAAACUOavZBQAAAAAAUFURugEAAAAA8BFCNwAAAAAAPkLoBgAAAADARwjdAAAAAAD4CKEbAAAAAAAfIXQDAAAAAOAjhG4AAAAAAHyE0A0AAAAAgI8QugEAldawYcPUoEGDUq07ZcoUWSyWMq8JqCiGDRumatWqmV0GAJz3CN0AgDJnsVi8eixbtszsUk138803y2Kx6NFHHzW7FJTQsGHDCj23AwMDzS4PAFBBWAzDMMwuAgBQtcyfPz/P63feeUeLFy/Wu+++m2d5r169FB0dXer9OBwOuVwu2e32Eq+bnZ2t7OxsU8NRSkqKoqOjVbt2bTmdTu3du5er75XIsGHD9OGHH+o///lPvvdsNpsGDx5sSl25hg0bpo8//lgnT540tQ4AON/5mV0AAKDque222/K8/uWXX7R48eJ8y8+Wnp6u4OBgr/fj7+9f6hr9/Pzk52fuP4OffPKJnE6n5syZoyuuuELLly9Xjx49TK2pIIZhKCMjQ0FBQWaXUq68OW4/P79iz2sAwPmN7uUAAFNcdtllatmypdauXavu3bsrODhYEyZMkCT973//U//+/VWnTh3Z7XY1atRITz75pJxOZ55tnH1P9549e2SxWPTCCy/ozTffVKNGjWS329WpUyf9+uuvedYt6J5ui8WiMWPGaOHChWrZsqXsdrtatGihRYsW5at/2bJl6tixowIDA9WoUSP93//9X4nvE3/vvffUq1cvXX755brwwgv13nvvFdhu69atuvnmm1WrVi0FBQWpadOmevzxx/O0OXDggO68807PZxYfH6/Ro0crKyur0OOVpHnz5slisWjPnj2eZQ0aNNDVV1+tb7/9Vh07dlRQUJD+7//+T5I0d+5cXXHFFYqKipLdblfz5s31+uuvF1j3N998ox49eig0NFRhYWHq1KmT3n//fUnS5MmT5e/vryNHjuRbb+TIkQoPD1dGRkahn13u/cq7du1Snz59FBISojp16mjatGk6uxOfy+XSyy+/rBYtWigwMFDR0dEaNWqUTpw4kaddUcd9LnI/4+XLl2vUqFGKjIxUWFiYhgwZkq8GSXrttdfUokUL2e121alTR/fee6+SkpLytVu9erX69euniIgIhYSEqHXr1nrllVfytTtw4IAGDhyoatWqqVatWnr44Yfz/bcEAPAdrnQDAExz7NgxXXXVVbrlllt02223ebqaz5s3T9WqVdPYsWNVrVo1ff/995o0aZJSUlL0/PPPF7vd999/X6mpqRo1apQsFouee+45XX/99dq1a1exV8d//vlnffrpp7rnnnsUGhqqV199VTfccIP27dunyMhISdL69evVt29fxcTEaOrUqXI6nZo2bZpq1arl9bEfPHhQP/zwg95++21J0uDBg/XSSy9p5syZCggI8LT7448/dOmll8rf318jR45UgwYNtHPnTn3xxRd66qmnPNvq3LmzkpKSNHLkSDVr1kwHDhzQxx9/rPT09Dzb89a2bds0ePBgjRo1SiNGjFDTpk0lSa+//rpatGiha665Rn5+fvriiy90zz33yOVy6d577/WsP2/ePN1xxx1q0aKFxo8fr/DwcK1fv16LFi3Srbfeqttvv13Tpk3TggULNGbMGM96WVlZ+vjjj3XDDTcU2/Xf6XSqb9++uuiii/Tcc89p0aJFmjx5srKzszVt2jRPu1GjRmnevHkaPny47r//fu3evVszZ87U+vXrtWLFijznRGHHXZSjR4/mWxYQEKCwsLA8y8aMGaPw8HBNmTJF27Zt0+uvv669e/dq2bJlni9EpkyZoqlTp6pnz54aPXq0p92vv/6ap9bFixfr6quvVkxMjB544AHVrl1bW7Zs0ZdffqkHHnggz2fUp08fdenSRS+88IKWLFmiF198UY0aNdLo0aOLPTYAQBkwAADwsXvvvdc4+5+cHj16GJKMN954I1/79PT0fMtGjRplBAcHGxkZGZ5lQ4cONeLi4jyvd+/ebUgyIiMjjePHj3uW/+9//zMkGV988YVn2eTJk/PVJMkICAgwduzY4Vn2+++/G5KMf//7355lAwYMMIKDg40DBw54lm3fvt3w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eLh69+6t+vXr684779Qjjzwim82mOXPmqFatWvkCfWF69+6tgIAADRgwQKNGjdLJkyf11ltvKSoqSgkJCZ52YWFheumll3TXXXepU6dOuvXWWxUREaHff/9d6enpeYK+v7+/brnlFs2cOVM2m02DBw/28rfgvl950aJFGjp0qLp06aJvvvlGX331lSZMmODpNt6jRw+NGjVK06dP14YNG9S7d2/5+/tr+/bt+uijj/TKK6/oxhtv9HqfZ8vOzvbcLnC26667TiEhIZ7XWVlZuvLKK3XzzTdr27Zteu2113TJJZfommuukXJ6LYwfP15Tp05V3759dc0113jaderUyfOFhNVq1euvv64BAwaobdu2Gj58uGJiYrR161Zt2rRJ3377bamPBwDgA2YPnw4AqPoKmzKsRYsWBbZfsWKFcdFFFxlBQUFGnTp1jHHjxhnffvttvqmkCpsy7Pnnn8+3TUnG5MmTPa8LmzLs3nvvzbduXFycMXTo0DzLli5darRr184ICAgwGjVqZPznP/8x/vnPfxqBgYGFfg5ZWVlGZGSkcemllxbaxjAMIz4+3mjXrp3n9caNG43rrrvOCA8PNwIDA42mTZsaTzzxRJ519u7dawwZMsSoVauWYbfbjYYNGxr33nuvkZmZ6Wmzdu1ao0uXLkZAQIBRv359Y8aMGYVOGda/f/8Ca/v888+N1q1bG4GBgUaDBg2MZ5991pgzZ06+beS27datmxEUFGSEhYUZnTt3Nj744IN821yzZo0hyejdu3eRn8uZhg4daoSEhBg7d+40evfubQQHBxvR0dHG5MmT80y3levNN980OnToYAQFBRmhoaFGq1atjHHjxhkHDx706rgLq6GwKcPO/DxyP+Mff/zRGDlypBEREWFUq1bN+Mc//mEcO3Ys33ZnzpxpNGvWzPD39zeio6ON0aNH55sazDAM4+effzZ69eplhIaGGiEhIUbr1q3zTG2X+xmdrbDp4wAAvmExKtKlAwAAKrGBAwdq06ZN2r59u9mlVCq///672rZtq3feeUe33367V+sMGzZMH3/8sU6ePOnz+s7VvHnzNHz4cP36668FTusGAKjauKcbAIBSOHXqVJ7X27dv19dff63LLrvMtJoqq7feekvVqlXT9ddfb3YpAACUOe7pBgCgFBo2bKhhw4Z55k9+/fXXFRAQoHHjxpldWqXx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71d0dLRGjRqlxx9/3HOV/sSJE57aN2zYoHbt2mn37t1q0KCB5s2bp4ceekhvv/22JkyYoL/++ks7duzQkSNHNGHCBK1fv14Oh0Nt27bVSy+9pPbtT09DmZSUpEcffVQLFy5UcnKyGjdurGeeeUaXX365YmJiNGfOHN14442e9gsXLtQ//vEPHTp0SKGhJfgy3UuEbgAoBW/usb7/g/WKDNmkQ6mZxd4/HR1mV/0awYqtEaz6OY/c57Wq2WVI5T/ImKS+LWP0+m3t833LX9sX3/J7e5P54ie8a2exSkE1ipjuKlLKSJYWPVr8tvzs3u3TG3S9BgBTGIahUw6nV22dLkOTP99U6L/zFklTPt+sixvX9OrL5yB/W4lGwbbZbHr66ad166236v7771e9evW8Xrcoe/bs0bfffquAgIBi2/7www9KT09Xz549VbduXXXr1k0vvfSSQkJCpJyQfOWVV+qOO+7QK6+8Ij8/P/3www9yOt2f8fjx4/XWW2/ppZde0iWXXKKEhARt3bq1RPWeOnVKzz//vP7zn/8oMjJSUVFR2rVrl4YOHap///vfMgxDL774ovr166ft27crNDRULpdLV111lVJTUzV//nw1atRImzdvls1mU0hIiG655RbNnTs3T+jOfe2LwC1CN4Cqxlf3XRmGoRPpDu0+mqY9R9P0844jxd5jneU0lJDi7kYcHGDzBOnYiGDVrxGk+pHuUF0vItirQcfMuurct2WMejWvXfafa0qCdHCddGCt+7H/N+/Wi24phdcvZB7pMwK2vbpUXBc0M+6xBgCY4pTDqeaTvi2TbRmSDqVkqNWU77xqv3laHwUHlCx6XXfddWrbtq0mT56s2bNnF9ru7EAeFxenTZs2eV7/+eefqlatmpxOpzIy3H+7zJgxo9j9z549W7fccotsNptatmyphg0b6qOPPtKwYcMkSc8995w6duyo1157zbNOixYtJEmpqal65ZVXNHPmTA0dOlSS1KhRI11yySUl+gwcDodmzpypdu3aeZZdccUVedq8+eabCg8P148//qirr75aS5Ys0Zo1a7RlyxZdcMEFkqSGDRt62t91113q1q2bEhISFBMTo8TERH399ddasmRJiWorCUI3gCqjLO67SkrPcgfrY2nafTRde46mae+xNO0+mqaUjKK7gRfkoV5N9I8ucYoMCTjneR7L9apzrqT9Uvox2SR1DZIUlLP8UM690N52hc5IcXcJzw3YB9ZJqQdLV9O1s6Q6bUu3LgAAlcizzz6rK664Qg8//HChbX766ac8V2j9z7p1qGnTpvr888+VkZGh+fPna8OGDbrvvvuK3G9SUpI+/fRT/fzzz55lt912m2bPnu0J3Rs2bNBNN91U4PpbtmxRZmamrrzySq+PtSABAQFq3bp1nmWHDx/WxIkTtWzZMiUmJsrpdCo9PV379u3z1FWvXj1P4D5b586d1aJFC7399tt67LHHNH/+fMXFxal79+7nVGtRCN0AqoSS3HeVkuHQnqNpOVet03MCtjtoJ6U7itxPneqBalAzRIH+Nn2/NbHYujo3iFTNamXXNTn3qvOqHYn67qfV6n1pF3VtHOWb+6qT9kszOxQ/6NeYs0YTz86SDm88Ha4PrJWO/nXW9fmc7t+1LpTqtpfqdpACqkmf3lX2x1EUMwY2AwCYIsjfps3T+njVds3u4xrmxYwg84Z38urWrqASTqOZq3v37urTp4/Gjx/vCbtni4+PL/Ke7oCAADVu3FiS9Mwzz6h///6aOnWqnnzyyULXef/995WRkZHnHm7DMORyufTXX3/pggsuUFBQUKHrF/WeckZSz91mLocj/99ggYGB+S5aDB06VMeOHdMrr7yiuLg42e12de3aVVlZWV7tWzlXu2fNmqXHHntMc+fO1fDhw8/54khRCN0AKj1v7q9+aMHv+r8fd2rf8VM6lpZV5Paiw+xqEBmi+JohalAzxPM8LvJ0N3CnyzDlHmvlDHDWJb6Gjm0x1MWX05Z4O5r4wQ3S3hWnr2If+lNyFvAZV69/OmDX7eAeyMte7fT7ZnT1NmtgMwBAubNYLF538b60SS3FVA8s9t/5S5vU8vmAos8884zatm2rpk2blsn2Jk6cqCuuuEKjR49WnTp1Cmwze/Zs/fOf/8wX9O+55x7NmTNHzzzzjFq3bq2lS5d6piQ7U5MmTRQUFKSlS5fqrrvyf6Feq1YtKWdqs9zR2Tds8O7vgBUrVui1115Tv379JEn79+/X0aNHPe+3bt1af//9t+fLgYLcdtttGjdunF599VVt3rzZ0wXeVwjdACq9VTuPFnt/9SmHU+v3J3te16xmV3zNYDWIdAfr+Jxw3aBmsFf/IFfYkb3N8N/b8i8Lijgdrut2kOq0l6rVKno7Zl11ZmAzAMBZKtK/861atdI//vEPvfrqqwW+n5iY6LlXO1dkZGS+bua5unbtqtatW+vpp5/WzJkz872/YcMGrVu3Tu+9956aNWuW573Bgwdr2rRp+te//qXx48erVatWuueee3T33XcrICBAP/zwg2666SbVrFlTjz76qMaNG6eAgABdfPHFOnLkiDZt2qQ777xTjRs3VmxsrKZMmaKnnnpKf/31l1588UWvPo8mTZro3XffVceOHZWSkqJHHnkkz9XtHj16qHv37rrhhhs0Y8YMNW7cWFu3bpXFYlHfvn0lSREREbr++uv1yCOPqHfv3mU2UF1hCN0AKp3kdIfW7T+hdXtPaO3eE/ptz3Gv1hvWLU43dohVXGSwQgPPfaqkcr/HOuf+aklSdraqp++REn6Xynqu5cxU6fhuadcy79rbAqQ67c4I2e2liHippN20uOoMAKhATBlLpRDTpk0rdF7tgq6Ar1q1ShdddFGh23vooYc0bNgwPfroo4qNzfvv6uzZs9W8efN8gVs5g7uNGTNGX3/9ta655hp99913mjBhgjp37qygoCB16dJFgwcPliQ98cQT8vPz06RJk3Tw4EHFxMTo7rvvlnLuO//ggw80evRotW7dWp06ddK//vWvQu8RP7u+kSNHqn379oqNjdXTTz+d7573Tz75RA8//LAGDx6stLQ0z5RhZ7rzzjv1/vvv64477ih2n+fKYhjeztFy/khJSVH16tWVnJycb6L5wjgcDn399dfq169fod8qAWfjvCmeYRjafTRNa3MC9tq9J7Q98WSptvXBiIvKbA7rM/lqxPQ8Snt/dWHSj7uD9fFd7seJM56nHSlZbXctlep1LNk6MA3/30FpcN6gtMw6dzIyMrR7927Fx8crMDDwnLZVLv/OIx+Xy6WUlBSFhYV57gEvS++++64eeughHTx4sMgp1Io6l7zNjVzpBuBTJf2H6lSWU3/8naS1+05fyT5RwOBm8TVD1L5+hDrERahtbLjumPerDqeU//3VyumC5oswn4e391enH3OHbsOQTiYWHKqP73LPT12U4EipWrSUuLn42qz8UwIAqLrK5d95lJv09HQlJCTomWee0ahRo7yas/xc8ZcSAJ/xZgqvQ8kZ7i7ie49r3d4T2nQwRdmuvNE5wM+qNvWqq31chDrUj1D7uIh8I4JPuaZi3Hdluu8mSqdOuK9iO9KK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", "text/plain": [ "