{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "601b739b",
"metadata": {
"_cell_guid": "f3fb334d-43c6-4fae-93a0-4b6783397ad9",
"_uuid": "da9ddfdf-832b-4d7d-bb6a-942f879f6447",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:06:50.055739Z",
"iopub.status.busy": "2024-11-11T01:06:50.055346Z",
"iopub.status.idle": "2024-11-11T01:06:50.059890Z",
"shell.execute_reply": "2024-11-11T01:06:50.059090Z"
},
"id": "gYpPYG55PDy0",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.02954,
"end_time": "2024-11-11T01:06:50.061890",
"exception": false,
"start_time": "2024-11-11T01:06:50.032350",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"## Try reverse input string (will increase the performance)\n",
"## adopt beam search"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ee5d0131",
"metadata": {
"_cell_guid": "53f3ea36-80e9-4eed-9b09-11fa0490ae70",
"_uuid": "2075d24a-41ad-4336-b551-a0909866836c",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:06:50.103209Z",
"iopub.status.busy": "2024-11-11T01:06:50.102887Z",
"iopub.status.idle": "2024-11-11T01:07:30.253102Z",
"shell.execute_reply": "2024-11-11T01:07:30.251825Z"
},
"executionInfo": {
"elapsed": 12078,
"status": "ok",
"timestamp": 1731233836806,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "sRPtnzMJ5DEN",
"jupyter": {
"outputs_hidden": false
},
"outputId": "7a2d1eaf-ddb8-4082-b260-dd52ed452c9b",
"papermill": {
"duration": 40.174693,
"end_time": "2024-11-11T01:07:30.256024",
"exception": false,
"start_time": "2024-11-11T01:06:50.081331",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"## Turn around camel-kenlm wheel error\n",
"!pip install -q future six docopt cachetools numpy scipy pandas scikit-learn torch transformers editdistance requests emoji pyrsistent muddler\n",
"!pip install -q camel-tools --no-deps\n",
"!pip install -q contractions datasets\n",
"\n",
"!pip install -q kaggle"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d453e83f",
"metadata": {
"_cell_guid": "8aa266b9-fd1e-4344-8d1a-5a7fab478b63",
"_uuid": "426a4f4a-d536-4eb3-a9d7-15e0b265fb63",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:30.296516Z",
"iopub.status.busy": "2024-11-11T01:07:30.296121Z",
"iopub.status.idle": "2024-11-11T01:07:43.286183Z",
"shell.execute_reply": "2024-11-11T01:07:43.284925Z"
},
"executionInfo": {
"elapsed": 264,
"status": "ok",
"timestamp": 1731240458903,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "oKlf2c2DFqoS",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 13.013489,
"end_time": "2024-11-11T01:07:43.288838",
"exception": false,
"start_time": "2024-11-11T01:07:30.275349",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"from tqdm import tqdm\n",
"import time\n",
"from camel_tools.tokenizers.word import simple_word_tokenize\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.model_selection import train_test_split\n",
"from zipfile import ZipFile\n",
"import torch\n",
"from torch import nn\n",
"from torch.nn import functional as F\n",
"from torch.utils.data import DataLoader, Dataset\n",
"import spacy\n",
"from collections import Counter\n",
"import random\n",
"import unicodedata\n",
"import pyarabic.araby as araby\n",
"import contractions\n",
"import nltk\n",
"from datasets import load_dataset\n",
"import re"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "83ec4bc2",
"metadata": {
"_cell_guid": "9b098a3a-f196-4d86-85e8-4918c3edbab4",
"_uuid": "eec15a85-e283-4d85-97f5-cb6d80ab078a",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:43.328761Z",
"iopub.status.busy": "2024-11-11T01:07:43.328171Z",
"iopub.status.idle": "2024-11-11T01:07:43.333426Z",
"shell.execute_reply": "2024-11-11T01:07:43.332598Z"
},
"executionInfo": {
"elapsed": 272,
"status": "ok",
"timestamp": 1731234205580,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "DlvMCmdIWudl",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.027077,
"end_time": "2024-11-11T01:07:43.335287",
"exception": false,
"start_time": "2024-11-11T01:07:43.308210",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"lr = 1e-3\n",
"epochs = 50\n",
"valid_test_size = 0.3\n",
"# maxlen = 100 # length of one training sample by words\n",
"embd_features = 128 # length of embedding vectors for each word (input_size) (=1000 in paper)\n",
"batch_size = 64\n",
"max_freq = 2 # to add all words to the vocabulary that seen more than one time\n",
"lstm_hidden_size = 128 # The number of features in the hidden state (=1000 in paper)\n",
"lstm_layers = 4 # Number of stacked recurrent layers\n",
"dropout_p = 0.5"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "fc2b096a",
"metadata": {
"_cell_guid": "a421e16e-78a1-45f1-a185-5ede26629408",
"_uuid": "3eb4f197-592d-4d39-8a09-79cc7b939b10",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:43.375090Z",
"iopub.status.busy": "2024-11-11T01:07:43.374478Z",
"iopub.status.idle": "2024-11-11T01:07:43.379619Z",
"shell.execute_reply": "2024-11-11T01:07:43.378747Z"
},
"executionInfo": {
"elapsed": 4,
"status": "ok",
"timestamp": 1731233855441,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "SPMCS8ajW1jK",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.027399,
"end_time": "2024-11-11T01:07:43.381624",
"exception": false,
"start_time": "2024-11-11T01:07:43.354225",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"seed = 42\n",
"g = torch.Generator().manual_seed(seed)\n",
"\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
"\n",
"isKaggle = True\n",
"base_dir = '/kaggle/working' if isKaggle else '/content'"
]
},
{
"cell_type": "markdown",
"id": "510bed3e",
"metadata": {
"_cell_guid": "2823160c-9473-4388-b059-a8f97ecebc30",
"_uuid": "fee9820e-a6f6-414c-b042-b320f067a2e8",
"collapsed": false,
"id": "jKW1NUp9XA9S",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.018429,
"end_time": "2024-11-11T01:07:43.418685",
"exception": false,
"start_time": "2024-11-11T01:07:43.400256",
"status": "completed"
},
"tags": []
},
"source": [
"## Data"
]
},
{
"cell_type": "markdown",
"id": "02c1cc46",
"metadata": {
"_cell_guid": "304718a6-ce41-4489-870f-cd7241f2ebdf",
"_uuid": "2872f338-182c-484e-9be4-c3d7322a3e40",
"collapsed": false,
"id": "TFfKvsudXDMI",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.018401,
"end_time": "2024-11-11T01:07:43.455689",
"exception": false,
"start_time": "2024-11-11T01:07:43.437288",
"status": "completed"
},
"tags": []
},
"source": [
"### Downloading"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "4d155cf0",
"metadata": {
"_cell_guid": "eb367fb7-e526-4d7d-8b1e-e576bdaa58a2",
"_uuid": "cd81eef9-90f5-466c-94dd-56c123e5ffda",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:43.494855Z",
"iopub.status.busy": "2024-11-11T01:07:43.494145Z",
"iopub.status.idle": "2024-11-11T01:07:57.356235Z",
"shell.execute_reply": "2024-11-11T01:07:57.355391Z"
},
"executionInfo": {
"elapsed": 6154,
"status": "ok",
"timestamp": 1731233861591,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "y7jys3D2W2rf",
"jupyter": {
"outputs_hidden": false
},
"outputId": "7eaed1e1-0941-4575-8482-e7f8d328c531",
"papermill": {
"duration": 13.883923,
"end_time": "2024-11-11T01:07:57.358298",
"exception": false,
"start_time": "2024-11-11T01:07:43.474375",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset URL: https://www.kaggle.com/datasets/samirmoustafa/arabic-to-english-translation-sentences\r\n",
"License(s): copyright-authors\r\n",
"Archive: /kaggle/working/arabic-to-english-translation-sentences.zip\r\n",
" inflating: ara_eng.txt \r\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "b5839b51ee1d4222b48ff200fa2aac6f",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"tatoeba_mt.py: 0%| | 0.00/15.5k [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "132bbe8e2c1e488ba4b8a148ba24f460",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"dataset_infos.json: 0%| | 0.00/1.96M [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "53ca5f02ab1d4a9c9b0a26f206959de2",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"README.md: 0%| | 0.00/12.1k [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d7945159d4774b6b8cb2554077b49b41",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"tatoeba-test.ara-eng.tsv: 0%| | 0.00/938k [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "1a800a2434f6435e8bbeadbc58a75a6d",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"tatoeba-dev.ara-eng.tsv: 0%| | 0.00/1.78M [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e87fe085d45c4fa0a0ff2a7f9d3cbf0e",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Generating test split: 0%| | 0/10304 [00:00, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "81a984dbbfa54e8b8f64fbae745422cb",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Generating validation split: 0%| | 0/19528 [00:00, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# !wget -q https://www.manythings.org/anki/ara-eng.zip\n",
"!kaggle datasets download -q samirmoustafa/arabic-to-english-translation-sentences\n",
"!unzip '{base_dir}/arabic-to-english-translation-sentences.zip'\n",
"\n",
"!wget -q -O ./tatoeba.tsv https://drive.google.com/uc?id=1aO0yDI4-rDxD5J0OYAgVlUUQuMuqtFSD\n",
"\n",
"hf_dataset = load_dataset('Helsinki-NLP/tatoeba_mt','ara-eng', trust_remote_code=True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b854edf1",
"metadata": {
"_cell_guid": "69daee9e-22ad-4562-9984-d49410ff0afc",
"_uuid": "05c81fe0-213d-4db9-a0c1-fe2cd66153e1",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:57.401994Z",
"iopub.status.busy": "2024-11-11T01:07:57.401118Z",
"iopub.status.idle": "2024-11-11T01:07:59.341331Z",
"shell.execute_reply": "2024-11-11T01:07:59.340234Z"
},
"executionInfo": {
"elapsed": 416,
"status": "ok",
"timestamp": 1731233862003,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "6jEOnMR3LK4A",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 1.964721,
"end_time": "2024-11-11T01:07:59.344111",
"exception": false,
"start_time": "2024-11-11T01:07:57.379390",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"df_manythings = pd.read_csv(f'{base_dir}/ara_eng.txt', delimiter='\\t', names=['EN_sentence',\n",
" 'AR_sentence'])\n",
"\n",
"df_tatoeba = pd.read_csv(f'{base_dir}/tatoeba.tsv', delimiter='\\t', names=['EN_id',\n",
" 'EN_sentence',\n",
" 'AR_id',\n",
" 'AR_sentence']).drop(columns=['EN_id',\n",
" 'AR_id'])\n",
"\n",
"df_hf_1, df_hf_2 = hf_dataset['test'], hf_dataset['validation']\n",
"\n",
"df_hf_1 = pd.DataFrame(df_hf_1)[['sourceString','targetString']]\n",
"df_hf_1.columns = ['AR_sentence', 'EN_sentence']\n",
"\n",
"df_hf_2 = pd.DataFrame(df_hf_2)[['sourceString','targetString']]\n",
"df_hf_2.columns = ['AR_sentence', 'EN_sentence']\n",
"\n",
"df_data = pd.concat([df_manythings, df_tatoeba, df_hf_1, df_hf_2], axis=0, ignore_index=True)\n",
"df_data = df_data.reset_index(drop=True)"
]
},
{
"cell_type": "markdown",
"id": "1896c69b",
"metadata": {
"_cell_guid": "658f76c9-5ad7-44a3-82dc-b95d3941f7a6",
"_uuid": "b0f7587c-8168-4dc8-ae42-77d1a3d7d588",
"collapsed": false,
"id": "MeuhdoYUXyyE",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.019918,
"end_time": "2024-11-11T01:07:59.385541",
"exception": false,
"start_time": "2024-11-11T01:07:59.365623",
"status": "completed"
},
"tags": []
},
"source": [
"### Visualizing"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "7ad2a644",
"metadata": {
"_cell_guid": "39366db9-8955-4c51-bc45-e2d32f4fca2c",
"_uuid": "999e8525-2c9b-4f46-8957-cab7543f7a3b",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:59.427717Z",
"iopub.status.busy": "2024-11-11T01:07:59.426958Z",
"iopub.status.idle": "2024-11-11T01:07:59.441030Z",
"shell.execute_reply": "2024-11-11T01:07:59.439963Z"
},
"executionInfo": {
"elapsed": 11,
"status": "ok",
"timestamp": 1731233862004,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "pr4K4EuwW1hG",
"jupyter": {
"outputs_hidden": false
},
"outputId": "22f7f6eb-8f88-4462-c090-f3c6f854a98f",
"papermill": {
"duration": 0.037366,
"end_time": "2024-11-11T01:07:59.443057",
"exception": false,
"start_time": "2024-11-11T01:07:59.405691",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" EN_sentence | \n",
" AR_sentence | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Hi. | \n",
" مرحبًا. | \n",
"
\n",
" \n",
" 1 | \n",
" Run! | \n",
" اركض! | \n",
"
\n",
" \n",
" 2 | \n",
" Help! | \n",
" النجدة! | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" EN_sentence AR_sentence\n",
"0 Hi. مرحبًا.\n",
"1 Run! اركض!\n",
"2 Help! النجدة!"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_data.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "f9c198b5",
"metadata": {
"_cell_guid": "f4aa1236-9a0d-4404-a567-99b74ce5cd62",
"_uuid": "2bdd8195-553f-420f-bacd-34f14fc7a122",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:59.485375Z",
"iopub.status.busy": "2024-11-11T01:07:59.485061Z",
"iopub.status.idle": "2024-11-11T01:07:59.493835Z",
"shell.execute_reply": "2024-11-11T01:07:59.492990Z"
},
"executionInfo": {
"elapsed": 8,
"status": "ok",
"timestamp": 1731233862004,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "Q6_5CpqeR1WZ",
"jupyter": {
"outputs_hidden": false
},
"outputId": "dafe43f3-f344-4d77-b589-e3dde59226e9",
"papermill": {
"duration": 0.031971,
"end_time": "2024-11-11T01:07:59.495776",
"exception": false,
"start_time": "2024-11-11T01:07:59.463805",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" EN_sentence | \n",
" AR_sentence | \n",
"
\n",
" \n",
" \n",
" \n",
" 101406 | \n",
" You'd better go. | \n",
" يستحسن انك تروح. | \n",
"
\n",
" \n",
" 101407 | \n",
" You should not talk here. | \n",
" يستحسن إنك ما تتكلمش هنا. | \n",
"
\n",
" \n",
" 101408 | \n",
" Make your choice. | \n",
" يلا اختار. | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" EN_sentence AR_sentence\n",
"101406 You'd better go. يستحسن انك تروح.\n",
"101407 You should not talk here. يستحسن إنك ما تتكلمش هنا.\n",
"101408 Make your choice. يلا اختار."
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_data.tail(3)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "ddd88e87",
"metadata": {
"_cell_guid": "82791955-ac05-4454-a04d-79ff1445e6b5",
"_uuid": "eb3335c0-e8c8-458d-97a9-cb5521fd4594",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:59.539311Z",
"iopub.status.busy": "2024-11-11T01:07:59.538539Z",
"iopub.status.idle": "2024-11-11T01:07:59.783825Z",
"shell.execute_reply": "2024-11-11T01:07:59.782983Z"
},
"executionInfo": {
"elapsed": 312,
"status": "ok",
"timestamp": 1731233862309,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "lkehEZmETpS3",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.269515,
"end_time": "2024-11-11T01:07:59.786005",
"exception": false,
"start_time": "2024-11-11T01:07:59.516490",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"df_data['EN_sentence_length'] = df_data['EN_sentence'].apply(lambda x: len(x.split(' ')))\n",
"df_data['AR_sentence_length'] = df_data['AR_sentence'].apply(lambda x: len(x.split(' ')))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "c2512e94",
"metadata": {
"_cell_guid": "2ce3e90d-84aa-4528-b3b8-ebb69e124bee",
"_uuid": "c0db62ea-a6e2-4884-8cb9-459b90c5d335",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:07:59.829149Z",
"iopub.status.busy": "2024-11-11T01:07:59.828349Z",
"iopub.status.idle": "2024-11-11T01:08:00.536692Z",
"shell.execute_reply": "2024-11-11T01:08:00.535734Z"
},
"executionInfo": {
"elapsed": 922,
"status": "ok",
"timestamp": 1731233863229,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "yYMZjHJsaUBK",
"jupyter": {
"outputs_hidden": false
},
"outputId": "0ba341d8-f865-496b-9920-fb489d215d61",
"papermill": {
"duration": 0.732373,
"end_time": "2024-11-11T01:08:00.539150",
"exception": false,
"start_time": "2024-11-11T01:07:59.806777",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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1FOaMWOGLl++rP79+1v9t7B792717t1bZ86c0WuvvaawsDBNnTo13zwTn3zyiZycnNS5c2fzfL/wwgtWMU8++aTOnz+v6dOn68knn1RMTMxt/QonAAClbenSperXr58cHR01cOBAHT58WDt27CjWe9PT03Xu3DnVrFnzprENGzZUTk6OPvnkk5vG3mp9cbPP46I+01NSUtSpUyetX79eERERmjt3rho3bqywsDDNmTMn37HefPNNffbZZ3r55Zc1YcIEbd26VYMGDbKKiYuLU5cuXbR//36NHj1aM2fOVPfu3bVmzRoz5lZrt5J44YUXNG7cON1///2aO3euhg4dqqVLlyokJERXrlyxij1y5Igef/xxPfjgg5o5c6Zq1qypIUOGWP0x9bffflP37t21b98+TZgwQWPHjtXSpUvzNdvmzJmjevXqqXnz5ub5/r//+z+rmOLUokCFZQC4YyxevNiQVODi5ORkFSvJCA8PNwzDMLp37274+voaFy9etNrPjh07ijze3r17DRcXF0OS0a5dO2P06NHG6tWrjczMTKu48+fPGx4eHsbw4cOt1lssFsPd3d1q/eDBgw1JxtSpU61i77nnHiMgIMB8ferUKUOSMXny5Hx59ezZ02jdurVx+fJlc11ubq5x3333GU2aNMl3voKDg43c3Fxz/dixYw0HBwcjLS3NMAzDSEtLM2rUqGEEBgYaly5dsjpW3vtyc3ONJk2aGCEhIVb7unjxouHn52c8+OCDBZ/E/+/YsWOGJOPtt98uNOaTTz4x7O3tjW+//dZqfXR0tCHJ+P777811kgxHR0fjyJEj5roffvjBkGS899575rpHHnnEcHV1NX777Tdz3eHDh40qVaoYN36EVKtWzRg8eHC+vCZPnmxIMoYNG2a1/rHHHjNq1apV5LgBACgvdu7caUgy4uLiDMP4/bO9Xr16xujRo/PFSjLCwsKMU6dOGampqcbOnTuN3r173/SzPI/FYjFq165tSDKaN29ujBw50li2bJlZe+S5lfriVj6PC/tMDwsLM+rUqWOcPn3aav1TTz1luLu7m7Xixo0bDUlGixYtjKysLDNu7ty5hiRjz549hmEYxtWrVw0/Pz+jYcOGxrlz5/KNLU9xa7fCXF/XFuTbb781JBlLly61Wh8bG5tvfcOGDQ1JxjfffGOuS01NNZycnIyXXnrJXPfi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yo0xbm5uqlKlitX68PBweXl5qWPHjlq0aJF+r7NQ2VSW+kmq+DUU9VP5Rw1VPj6nC1MZa6iKVD9J1FB5bFFDVbl5CGzt9OnTysnJsfqPWZJ8fHx08ODBMsrq1uTm5mrMmDG6//771apVK3P9008/rYYNG6pu3br68ccf9corr+jQoUP69NNPyzDbggUGBiomJkbNmjXTyZMn9dprr6lz587au3evLBaLHB0d833Q+fj4yGKxlE3CxbR69WqlpaVpyJAh5rqKdF2ul3euC/pZydtmsVjk7e1ttb1KlSry9PQs19fq8uXLeuWVVzRw4EC5ubmZ6//617+qffv28vT01JYtWzRhwgSdPHlSs2bNKsNs8+vdu7f69esnPz8/HT16VH//+9/Vp08fJSQkyMHBocJeF0lasmSJatSoke/rJuXt2hT0e7g4v7ssFkuBP1N528pCYZ8p1zt9+rSmTZuW7+sLU6dOVY8ePeTq6qqvv/5af/nLX3ThwgX99a9/tUXqsKHKUD9JFb+Gon4qf9ekINRQZf85XZjKWkNVlPpJoobKY6saiqYUbovw8HDt3bvXag4BSVb/obdu3Vp16tRRz549dfToUd199922TrNIffr0Mf/dpk0bBQYGqmHDhlq5cqVcXFzKMLM/ZuHCherTp4/q1q1rrqtI1+VOcOXKFT355JMyDEMLFiyw2hYZGWn+u02bNnJ0dNQLL7yg6dOny8nJydapFuqpp54y/926dWu1adNGd999tzZt2qSePXuWYWZ/3KJFizRo0CA5OztbrS9v16aw38MV0c3GkpGRodDQUPn7+2vKlClW21599VXz3/fcc48yMzP19ttv05RCuVXRayjqp/J3Te4k1FDlV0WpnyRqqDy2qqH4+l455OXlJQcHh3wz+aekpMjX17eMsiq+iIgIrVmzRhs3blS9evWKjA0MDJQkHTlyxBap/SEeHh5q2rSpjhw5Il9fX2VnZystLc0qprxfo19++UXr16/X888/X2RcRbkueee6qJ8VX1/ffBPcXr16VWfPni2X1yqvmPrll18UFxdn9Re+ggQGBurq1av6+eefbZNgCd11113y8vIy/5uqaNclz7fffqtDhw7d9GdIKttrU9jv4eL87vL19S3wZypvm63d7DPl/Pnz6t27t2rUqKHPPvtMVatWLXJ/gYGB+vXXX5WVlXW7UkYZ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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Create a figure and two subplots\n",
"fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n",
"\n",
"# Define custom tick range based on your data range\n",
"EN_x_ticks = np.arange(0, df_data['EN_sentence_length'].max()+1, 25)\n",
"AR_x_ticks = np.arange(0, df_data['AR_sentence_length'].max()+1, 25)\n",
"\n",
"# Plot histogram for EN_sentence_length\n",
"axes[0].hist(df_data['EN_sentence_length'], bins=50, color='skyblue', edgecolor='black')\n",
"axes[0].set_title('EN Sentence Length')\n",
"axes[0].set_xlabel('Length')\n",
"axes[0].set_ylabel('Frequency')\n",
"axes[0].set_xticks(EN_x_ticks) # Add more x-axis ticks\n",
"\n",
"# Plot histogram for AR_sentence_length\n",
"axes[1].hist(df_data['AR_sentence_length'], bins=50, color='salmon', edgecolor='black')\n",
"axes[1].set_title('AR Sentence Length')\n",
"axes[1].set_xlabel('Length')\n",
"axes[1].set_ylabel('Frequency')\n",
"axes[1].set_xticks(AR_x_ticks) # Add more x-axis ticks\n",
"\n",
"# Display the plots\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "d9a20ed6",
"metadata": {
"_cell_guid": "93840f23-72fc-4a14-afab-a7d0bb3cbdec",
"_uuid": "e1d2150a-bbdd-4a97-987f-3c5c348cf946",
"collapsed": false,
"id": "JnYOEPnJSK1I",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.02095,
"end_time": "2024-11-11T01:08:00.581884",
"exception": false,
"start_time": "2024-11-11T01:08:00.560934",
"status": "completed"
},
"tags": []
},
"source": [
"As we see there are long and too short sentences.\n",
"\n",
"Short sentences will suffer from vanishing Gradients, As we will do post-padding (right-padding), so we will dorp short sentences."
]
},
{
"cell_type": "markdown",
"id": "016a024c",
"metadata": {
"_cell_guid": "5401299b-ecd8-4433-8818-2dde942b8f1c",
"_uuid": "7993eb62-7c1c-4400-a2cc-488985cda970",
"collapsed": false,
"id": "yk9hgqksU9_W",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.020897,
"end_time": "2024-11-11T01:08:00.623676",
"exception": false,
"start_time": "2024-11-11T01:08:00.602779",
"status": "completed"
},
"tags": []
},
"source": [
"### Cleaning"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "32c51041",
"metadata": {
"_cell_guid": "de16e1a4-e20e-4ec4-b24f-b05db3f151dd",
"_uuid": "c68e2832-2b45-4638-96d4-9bbd6c10231c",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:08:00.667588Z",
"iopub.status.busy": "2024-11-11T01:08:00.666834Z",
"iopub.status.idle": "2024-11-11T01:08:00.724816Z",
"shell.execute_reply": "2024-11-11T01:08:00.723725Z"
},
"executionInfo": {
"elapsed": 9,
"status": "ok",
"timestamp": 1731233863229,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "D7-HJg_PVBWV",
"jupyter": {
"outputs_hidden": false
},
"outputId": "882a3d1e-ea75-4afb-a6ff-e976d037e084",
"papermill": {
"duration": 0.08227,
"end_time": "2024-11-11T01:08:00.726872",
"exception": false,
"start_time": "2024-11-11T01:08:00.644602",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 101409 entries, 0 to 101408\n",
"Data columns (total 4 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 EN_sentence 101409 non-null object\n",
" 1 AR_sentence 101409 non-null object\n",
" 2 EN_sentence_length 101409 non-null int64 \n",
" 3 AR_sentence_length 101409 non-null int64 \n",
"dtypes: int64(2), object(2)\n",
"memory usage: 3.1+ MB\n",
"None\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" EN_sentence_length | \n",
" AR_sentence_length | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 101409.000000 | \n",
" 101409.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 8.823053 | \n",
" 7.350225 | \n",
"
\n",
" \n",
" std | \n",
" 11.487242 | \n",
" 10.119463 | \n",
"
\n",
" \n",
" min | \n",
" 1.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 4.000000 | \n",
" 3.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 6.000000 | \n",
" 5.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 8.000000 | \n",
" 7.000000 | \n",
"
\n",
" \n",
" max | \n",
" 225.000000 | \n",
" 225.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" EN_sentence_length AR_sentence_length\n",
"count 101409.000000 101409.000000\n",
"mean 8.823053 7.350225\n",
"std 11.487242 10.119463\n",
"min 1.000000 1.000000\n",
"25% 4.000000 3.000000\n",
"50% 6.000000 5.000000\n",
"75% 8.000000 7.000000\n",
"max 225.000000 225.000000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(df_data.info())\n",
"df_data.describe()\n",
"## so Q3 at 8"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "dbf84937",
"metadata": {
"execution": {
"iopub.execute_input": "2024-11-11T01:08:00.771935Z",
"iopub.status.busy": "2024-11-11T01:08:00.771264Z",
"iopub.status.idle": "2024-11-11T01:08:00.779175Z",
"shell.execute_reply": "2024-11-11T01:08:00.778295Z"
},
"papermill": {
"duration": 0.032529,
"end_time": "2024-11-11T01:08:00.781173",
"exception": false,
"start_time": "2024-11-11T01:08:00.748644",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"# https://stackoverflow.com/a/518232/2809427\n",
"def unicodeToAscii(s):\n",
" return ''.join(c for c in unicodedata.normalize('NFD', s) if unicodedata.category(c) != 'Mn')\n",
"\n",
"def preprocess_ar(text):\n",
" text = araby.strip_diacritics(text).strip() # Remove diacritics \"التشكيل\"\n",
" text = re.sub(r'[a-zA-Z]', '', text) # Remove English letters\n",
" text = re.sub(r'\\s+', ' ', text).strip() # Trim multiple whitespaces to one\n",
" text = re.sub(r'[_|\\d+|\\\\|\\-|؛|،|,|\\[|\\]|\\(|\\)|\\\"|/|%|!|,|.|:|♪|«|»|}|{|*|#]+', '', text) # Remove special characters and digits\n",
" text = unicodeToAscii(text)\n",
" return text\n",
"\n",
"def preprocess_en(text):\n",
" text = text.lower()\n",
" text = contractions.fix(text) # Fix contractions \"it's\" -> \"it is\"\n",
" text = re.sub(r'[\\u0600-\\u06FF]', '', text) # Remove Arabic letters\n",
" text = re.sub(r'\\s+', ' ', text).strip() # Trim multiple whitespaces to one\n",
" text = re.sub(r'[_|\\d+|\\\\|\\-|؛|،|,|\\[|\\]|\\(|\\)|\\\"|/|%|!|,|.|:|♪|«|»|}|{|*|#]+', '', text) # Remove special characters and digits\n",
" text = unicodeToAscii(text)\n",
" return text"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "65970704",
"metadata": {
"execution": {
"iopub.execute_input": "2024-11-11T01:08:00.826388Z",
"iopub.status.busy": "2024-11-11T01:08:00.825773Z",
"iopub.status.idle": "2024-11-11T01:08:07.840714Z",
"shell.execute_reply": "2024-11-11T01:08:07.839840Z"
},
"papermill": {
"duration": 7.040131,
"end_time": "2024-11-11T01:08:07.842951",
"exception": false,
"start_time": "2024-11-11T01:08:00.802820",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"df_data['EN_sentence'] = df_data['EN_sentence'].apply(preprocess_en)\n",
"df_data['AR_sentence'] = df_data['AR_sentence'].apply(preprocess_ar)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "975eb354",
"metadata": {
"_cell_guid": "504b87d4-4ae2-4546-b20d-bd8a5a11a003",
"_uuid": "048c8e25-6fc4-4724-ba6d-0ec33961d904",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:08:07.888010Z",
"iopub.status.busy": "2024-11-11T01:08:07.887209Z",
"iopub.status.idle": "2024-11-11T01:08:07.896071Z",
"shell.execute_reply": "2024-11-11T01:08:07.895194Z"
},
"executionInfo": {
"elapsed": 8,
"status": "ok",
"timestamp": 1731233863230,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "E8ApzqfrVHw9",
"jupyter": {
"outputs_hidden": false
},
"outputId": "9e86fcd0-9677-4d6f-ef58-5d347f82f4be",
"papermill": {
"duration": 0.033156,
"end_time": "2024-11-11T01:08:07.897900",
"exception": false,
"start_time": "2024-11-11T01:08:07.864744",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"(101409, 7383, 3334)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arr_len = df_data['EN_sentence_length']\n",
"len(arr_len), len(arr_len[arr_len>20]), len(arr_len[arr_len<3])"
]
},
{
"cell_type": "markdown",
"id": "141b4830",
"metadata": {
"_cell_guid": "dbce33c5-d4b9-4569-bc38-057f5714efdc",
"_uuid": "19ce86d4-32d0-43ba-bac0-d5cc75013a9b",
"collapsed": false,
"id": "qHIb_lTkXmd_",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.022359,
"end_time": "2024-11-11T01:08:07.941762",
"exception": false,
"start_time": "2024-11-11T01:08:07.919403",
"status": "completed"
},
"tags": []
},
"source": [
"We will drop sentences that > 20 words or < 3 words for source language."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "77fa809d",
"metadata": {
"_cell_guid": "6b37401f-f687-4f7c-aca0-c9acd2bf4664",
"_uuid": "4ac3524d-109b-4e79-a6b2-8f63d3643f9f",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:08:07.987137Z",
"iopub.status.busy": "2024-11-11T01:08:07.986287Z",
"iopub.status.idle": "2024-11-11T01:08:08.112139Z",
"shell.execute_reply": "2024-11-11T01:08:08.111095Z"
},
"executionInfo": {
"elapsed": 6,
"status": "ok",
"timestamp": 1731233863230,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "1XTCKT3nXxOD",
"jupyter": {
"outputs_hidden": false
},
"papermill": {
"duration": 0.150953,
"end_time": "2024-11-11T01:08:08.114259",
"exception": false,
"start_time": "2024-11-11T01:08:07.963306",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"EN_sentence 0\n",
"AR_sentence 0\n",
"EN_sentence_length 0\n",
"AR_sentence_length 0\n",
"dtype: int64"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_data = df_data[(df_data['EN_sentence_length'] <= 20)]\n",
"df_data = df_data[(df_data['EN_sentence_length'] >= 3)]\n",
"\n",
"df_data = df_data[(df_data['AR_sentence_length'] <= 20)]\n",
"df_data = df_data[(df_data['AR_sentence_length'] >= 3)]\n",
"\n",
"df_data = df_data.drop_duplicates(keep='first', subset='AR_sentence')\n",
"df_data = df_data.drop_duplicates(keep='first', subset='EN_sentence')\n",
"\n",
"df_data = df_data.replace('', pd.NA).dropna()\n",
"df_data = df_data.replace(' ', pd.NA).dropna()\n",
"df_data.isna().sum()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "8bcf0f96",
"metadata": {
"_cell_guid": "e6d0a9ee-0f33-4fd3-9d10-3b26815ec3fe",
"_uuid": "06c813f4-6881-4566-a2df-485bdfac9520",
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-11-11T01:08:08.159726Z",
"iopub.status.busy": "2024-11-11T01:08:08.159108Z",
"iopub.status.idle": "2024-11-11T01:08:08.841666Z",
"shell.execute_reply": "2024-11-11T01:08:08.840716Z"
},
"executionInfo": {
"elapsed": 759,
"status": "ok",
"timestamp": 1731233863984,
"user": {
"displayName": "Abdelrhman Ashraf",
"userId": "11249532378747886614"
},
"user_tz": -120
},
"id": "JYQ1JaoEfw9F",
"jupyter": {
"outputs_hidden": false
},
"outputId": "4c7856f2-a45b-4a0b-b5a2-ccdbc377cb25",
"papermill": {
"duration": 0.707615,
"end_time": "2024-11-11T01:08:08.844017",
"exception": false,
"start_time": "2024-11-11T01:08:08.136402",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABzaElEQVR4nO3de1hVdfr//xfKURQUCZAUIjXBU55KyXOSZOSk0pRlnst0sPFQan5TMzVNy7MmOZlUg1P6mXRMS0U8peIhPKWiaVnbUqCdIimICOv3Rz92bgFFxL0Bn4/rWtfVXu97r3W/QWbfc++13svBMAxDAAAAAAAAgA1VsHcCAAAAAAAAuPvQlAIAAAAAAIDN0ZQCAAAAAACAzdGUAgAAAAAAgM3RlAIAAAAAAIDN0ZQCAAAAAACAzdGUAgAAAAAAgM3RlAIAAAAAAIDN0ZQCAAAAAACAzdGUAgCUqIkTJ8rBwUFms9neqQAAAJQJMTExcnBw0LfffmvvVACboikFlGN5H26Fbbt27bLE5u2bOXNmoccpyofkTz/9pP79+6t27dpydXWVn5+f2rVrpzfffLNE53a9jIwMTZw4UVu2bLmj57GVn376SQ4ODnrvvffsnUqhpk6dqlWrVtk7DQAA7pj3339fDg4OatmyZaEx19dXHh4eat++vdauXVvk8/z2228aNmyYgoOD5ebmJh8fHz388MMaM2aMLl68WBJTKVR5+zx3cHDQ0KFD7Z1God5//33FxMTYOw2g1HC0dwIA7rxJkyYpKCgo3/46derk2/fuu+9qyJAhqlSp0i2f5+TJk3rooYfk5uamAQMG6L777tPZs2e1b98+TZ8+XW+99Vax8i+KjIwMy/E7dOhwx86Dv0ydOlVPP/20unXrZu9UAAC4I2JjY3Xfffdpz549OnnyZIG1kyQ99thj6tOnjwzD0M8//6xFixapa9eu+vrrrxUeHn7Dc5w7d04tWrRQenq6BgwYoODgYP3+++86dOiQFi1apCFDhqhy5cp3YnqS+Dy3tffff1/e3t7q16+fvVMBSgWaUsBdoEuXLmrRosVN45o0aaIDBw4oOjpaI0eOvOXzzJ49WxcvXtSBAwcUGBhoNZaamnrLxwMAALCXU6dOaefOnfriiy/08ssvKzY2ttArvx944AG98MILlteRkZGqX7++5s6de9Om1JIlS2QymbRjxw498sgjVmPp6elydna+/ckAQCnF7XsALFq3bq1HH31UM2bMUGZm5i2//4cfflDNmjXzNaQkycfHJ9++r7/+Wm3btpW7u7uqVKmiiIgIHTlyxCqmX79+qly5sn799Vd169ZNlStX1j333KPXXntNOTk5kv681e2ee+6RJL311luWy+cnTpxoOc6xY8f09NNPy8vLS66urmrRooVWr15tda682xR37NihkSNH6p577pG7u7u6d++u3377rcD827dvrypVqsjDw0MPPfSQli1bZhWze/duPf744/L09FSlSpXUvn177dixo2g/0CLIysrSm2++qTp16sjFxUW1atXS6NGjlZWVZRWXdyn7qlWr1LBhQ7m4uKhBgwZat25dvmNu2bJFLVq0kKurq2rXrq0PPvjAsk7Utce7dOmSPv74Y8vP+/pv/NLS0tSvXz9VrVpVnp6e6t+/vzIyMkps7gAA3EmxsbGqVq2aIiIi9PTTTys2NrbI7w0JCZG3t7d++OGHm8b+8MMPqlixolq1apVvzMPDQ66urlb7ilJb5H1unzx58oafxTf7PP/11181YMAA+fr6WmqHjz76yOpcW7ZskYODg5YvX663335bNWvWlKurqzp16qSTJ0/mm9Pu3bv1xBNPqFq1anJ3d1fjxo01d+5cq5ii1G23Izc3V3PmzFGDBg3k6uoqX19fvfzyyzp//rxV3H333acnn3xS27dv18MPPyxXV1fdf//9+uSTT/Id89ChQ2rfvr3c3NxUs2ZNTZkyRUuXLpWDg4N++ukny/GOHDmirVu3Wn7e11/hn5WVVaQ6FCgvaEoBd4ELFy7IbDZbbb///nuBsRMnTlRKSooWLVp0y+cJDAzU6dOntWnTppvGfvrpp4qIiFDlypU1ffp0jR8/XkePHlWbNm0sH9x5cnJyFB4erurVq+u9995T+/btNXPmTC1evFiSdM8991jy7d69uz799FN9+umn6tGjhyTpyJEjatWqlZKSkvT6669r5syZcnd3V7du3bRy5cp8ub3yyis6ePCg3nzzTQ0ZMkRffvllvrUJYmJiFBERoXPnzmns2LF655131KRJE6smz6ZNm9SuXTulp6frzTff1NSpU5WWlqZHH31Ue/bsuaWfbUFyc3P1t7/9Te+99566du2q+fPnq1u3bpo9e7aeffbZfPHbt2/XP/7xD/Xs2VMzZszQ5cuXFRkZafVvYf/+/Xr88cf1+++/66233tLAgQM1adKkfGtNfPrpp3JxcVHbtm0tP++XX37ZKuaZZ57RH3/8oWnTpumZZ55RTEzMHb2FEwCAkhQbG6sePXrI2dlZzz33nE6cOKG9e/cW6b0XLlzQ+fPnVa1atZvGBgYGKicnR59++ulNY2+1trjZZ/GNPs9TUlLUqlUrbdy4UUOHDtXcuXNVp04dDRw4UHPmzMl3rnfeeUcrV67Ua6+9prFjx2rXrl3q1auXVUxcXJzatWuno0ePatiwYZo5c6Y6duyoNWvWWGJutW4rjpdfflmjRo1S69atNXfuXPXv31+xsbEKDw9Xdna2VezJkyf19NNP67HHHtPMmTNVrVo19evXz+qL1F9//VUdO3bUkSNHNHbsWI0YMUKxsbH5mm1z5sxRzZo1FRwcbPl5v/HGG1YxRalDgXLFAFBuLV261JBU4Obi4mIVK8mIiooyDMMwOnbsaPj5+RkZGRlWx9m7d+8Nz3f48GHDzc3NkGQ0adLEGDZsmLFq1Srj0qVLVnF//PGHUbVqVeOll16y2p+cnGx4enpa7e/bt68hyZg0aZJVbNOmTY3mzZtbXv/222+GJOPNN9/Ml1enTp2MRo0aGZcvX7bsy83NNR555BGjbt26+X5eYWFhRm5urmX/iBEjjIoVKxppaWmGYRhGWlqaUaVKFaNly5ZGZmam1bny3pebm2vUrVvXCA8PtzpWRkaGERQUZDz22GMF/xD/f6dOnTIkGe+++26hMZ9++qlRoUIF45tvvrHaHx0dbUgyduzYYdknyXB2djZOnjxp2Xfw4EFDkjF//nzLvq5duxqVKlUyfv31V8u+EydOGI6Ojsb1Hxnu7u5G37598+X15ptvGpKMAQMGWO3v3r27Ub169RvOGwCA0uDbb781JBlxcXGGYfz5uV6zZk1j2LBh+WIlGQMHDjR+++03IzU11fj222+Nxx9//Kaf43mSk5ONe+65x5BkBAcHG4MHDzaWLVtmqTvy3EptcSufxYV9ng8cONCoUaOGYTabrfb37NnT8PT0tNSJmzdvNiQZISEhRlZWliVu7ty5hiTju+++MwzDMK5evWoEBQUZgYGBxvnz5/PNLU9R67bCXFvTFuSbb74xJBmxsbFW+9etW5dvf2BgoCHJ2LZtm2Vfamqq4eLiYrz66quWfa+88orh4OBg7N+/37Lv999/N7y8vAxJxqlTpyz7GzRoYLRv3z5fXkWtQ4HyhiulgLvAwoULFRcXZ7V9/fXXhcZPnDhRycnJio6OvqXzNGjQQAcOHNALL7ygn376SXPnzlW3bt3k6+urf/3rX5a4uLg4paWl6bnnnrO6eqtixYpq2bKlNm/enO/YgwcPtnrdtm1b/fjjjzfN6dy5c9q0aZPlm8JrrxQLDw/XiRMn9Ouvv1q9Z9CgQVa3qrVt21Y5OTn6+eefLfn/8ccfev311/NdUp/3vgMHDujEiRN6/vnn9fvvv1vOe+nSJXXq1Enbtm1Tbm7uTfO/kRUrVigkJETBwcFWP8dHH31UkvL9HMPCwlS7dm3L68aNG8vDw8Pyc8zJydHGjRvVrVs3+fv7W+Lq1KmjLl263HJ+Bf3Ofv/9d6Wnp9/ysQAAsKXY2Fj5+vqqY8eOkv78fH/22Wf12WefWZYPuNaSJUt0zz33yMfHRy1atFB8fLxGjx5dpDU6fX19dfDgQQ0ePFjnz59XdHS0nn/+efn4+Gjy5MkyDENS8WqL4n4WG4ah//73v+ratasMw7CqM8LDw3XhwgXt27fP6j39+/e3Wv+qbdu2kmSpM/bv369Tp05p+PDhqlq1qtV78+qn4tRtt2rFihXy9PTUY489ZjWv5s2bq3Llyvnqp/r161vmIv15hX69evWs6tB169YpNDRUTZo0sezz8vLKd6VYUdysDgXKGxY6B+4CDz/8cJEWOs/Trl07dezYUTNmzMhXzNzMAw88oE8//VQ5OTk6evSo1qxZoxkzZmjQoEEKCgpSWFiYTpw4IUmW5sn1PDw8rF67urpa1ozKU61atXz3/Rfk5MmTMgxD48eP1/jx4wuMSU1N1b333mt5HRAQkO9ckizny1sfomHDhoWeN2+Offv2LTTmwoULRbqs/0bnSEpKyvezyXP94vLXz0uy/jmmpqYqMzOzwCcLFfa0oRu50c/x+t8xAAClRU5Ojj777DN17NhRp06dsuxv2bKlZs6cqfj4eHXu3NnqPU899ZSGDh2qK1euaO/evZo6daoyMjJUoULRrgGoUaOGFi1apPfff18nTpzQ+vXrNX36dE2YMEE1atTQiy++WKzaorifxb/99pvS0tK0ePFiy3IJ17tZnVGc+qk4ddutOnHihC5cuFDgeqd5x7/WzeonSfr5558VGhqaL66k6yegPKIpBaBAb775pjp06KAPPvgg37dZRVGxYkU1atRIjRo1UmhoqDp27KjY2FiFhYVZvsX79NNP5efnl++9jo6O+Y5VXHnneu211wp9+s31BUNh58v7pvJWzvvuu+9afWt2rdt9vHNubq4aNWqkWbNmFTheq1Ytq9clMa9bYevzAQBQEjZt2qSzZ8/qs88+02effZZvPDY2Nl9TqmbNmgoLC5MkPfHEE/L29tbQoUPVsWNHyxqXReHg4KAHHnhADzzwgCIiIlS3bl3FxsbqxRdfLFZtUdzP4rxzvfDCC4U2wRo3blwi5yrovLdSt92q3Nxc+fj4FLpw/fVf9lE/AXcWTSkABWrfvr06dOhg+ZbuduRdpXX27FlJstxC5uPjYyngbte1lzlf6/7775ckOTk5ldi58vI/fPhwoYVRXoyHh0eJnbegcxw8eFCdOnUqdP63wsfHR66urgU+KaegfSVxTgAASpvY2Fj5+Pho4cKF+ca++OILrVy5UtHR0XJzcyv0GC+//LJmz56tcePGqXv37sX6zLz//vtVrVq1fPVTSdcWBeV2zz33qEqVKsrJybkj9VNhx7wTdVtBeWzcuFGtW7e+4e/wVgQGBlI/AcXEmlIACpW3tlRhl21f75tvvsn3xBJJ+uqrryRJ9erVkySFh4fLw8NDU6dOLTC+OI+9rVSpkiQpLS3Nar+Pj4/liq+8ou52z9W5c2dVqVJF06ZN0+XLl63G8r7Fat68uWrXrq333ntPFy9eLJHzXu+ZZ57Rr7/+arVeV57MzExdunTplo5XsWJFhYWFadWqVTpz5oxl/8mTJwtcg8zd3T3fzxsAgLIsMzNTX3zxhZ588kk9/fTT+bahQ4fqjz/+0OrVq294HEdHR7366qtKSkrS//73vxvG7t69u8DP7D179uj333+31E93qrYo6PO8YsWKioyM1H//+18dPny4RM7VrFkzBQUFac6cOfnOl1c/3Ym67XrPPPOMcnJyNHny5HxjV69eLVZtEx4eroSEBB04cMCy79y5cwVejUX9BFjjSingLvD111/r2LFj+fY/8sgjlm+kCtK+fXu1b99eW7duLdJ5pk+frsTERPXo0cNySfe+ffv0ySefyMvLS8OHD5f05zd8ixYtUu/evdWsWTP17NlT99xzj0wmk9auXavWrVtrwYIFtzRHNzc31a9fX59//rkeeOABeXl5qWHDhmrYsKEWLlyoNm3aqFGjRnrppZd0//33KyUlRQkJCfrll1908ODBWzqXh4eHZs+erRdffFEPPfSQnn/+eVWrVk0HDx5URkaGPv74Y1WoUEEffvihunTpogYNGqh///6699579euvv2rz5s3y8PDQl19+edNzxcfH52t8SVK3bt3Uu3dvLV++XIMHD9bmzZvVunVr5eTk6NixY1q+fLnWr19/S2uJSX82Ijds2KDWrVtryJAhysnJ0YIFC9SwYUOrQkv6szjeuHGjZs2aJX9/fwUFBally5a3dD4AAEqT1atX648//tDf/va3AsdbtWqle+65R7GxsXr22WdveKx+/fppwoQJmj59urp161Zo3KeffqrY2Fh1795dzZs3l7Ozs5KSkvTRRx/J1dVV/+///T9JKrHa4nqFfZ6/88472rx5s1q2bKmXXnpJ9evX17lz57Rv3z5t3LhR586du6XzVKhQQYsWLVLXrl3VpEkT9e/fXzVq1NCxY8d05MgRrV+/XpJKpG779ttvNWXKlHz7O3TooPbt2+vll1/WtGnTdODAAXXu3FlOTk46ceKEVqxYoblz5+rpp5++pbmNHj1a//73v/XYY4/plVdekbu7uz788EMFBATo3LlzVldHNW/eXIsWLdKUKVNUp04d+fj4FLrOKnBXsMcj/wDYRt6jZQvbli5daolVIY/PzXvMryRj7969Nzzfjh07jKioKKNhw4aGp6en4eTkZAQEBBj9+vUzfvjhhwKPHR4ebnh6ehqurq5G7dq1jX79+hnffvutJaZv376Gu7t7vvfmPer4Wjt37jSaN29uODs7G5KMN9980zL2ww8/GH369DH8/PwMJycn49577zWefPJJ4//+7//y/byun2fez2Dz5s1W+1evXm088sgjhpubm+Hh4WE8/PDDxn/+8x+rmP379xs9evQwqlevbri4uBiBgYHGM888Y8THx9/wZ3nq1Kkb/u4+/fRTwzAM48qVK8b06dONBg0aGC4uLka1atWM5s2bG2+99ZZx4cIFy/EK+/0GBgbmewx0fHy80bRpU8PZ2dmoXbu28eGHHxqvvvqq4erqahV37Ngxo127doabm5shyXKcvN/Nb7/9ZhWf9/O99rHIAACUJl27djVcXV2NS5cuFRrTr18/w8nJyTCbzYZhFP4ZaxiGMXHi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Bg0apLS0NLVp00br1q2Tq6urJSY2NlZDhw5Vp06dVKFCBUVGRmrevHmWcU9PT23YsEFRUVFq3ry5vL29NWHCBA0aNMim8wUAAOVXqWpKXbx4UT/88IN69+6t5s2by8nJSfHx8YqMjJQkHT9+XCaTSaGhoZL+vKz87bffVmpqquUJMnFxcfLw8LCstRAaGqqvvvrK6jxxcXGWYwBlnU9QXd0b8qC90wAA2NCTTz6pJ598stBxBwcHTZo0SZMmTSo0xsvLS8uWLbvheRo3bqxvvvmm2HkCAADciF0XOn/ttde0detW/fTTT9q5c6e6d++uihUr6rnnnpOnp6cGDhyokSNHavPmzUpMTFT//v0VGhqqVq1aSZI6d+6s+vXrq3fv3jp48KDWr1+vcePGKSoqynKl0+DBg/Xjjz9q9OjROnbsmN5//30tX75cI0aMsOfUAQAAAAAA7mrFakr9+OOPJXLyX375Rc8995zq1aunZ555RtWrV9euXbt0zz33SJJmz56tJ598UpGRkWrXrp38/Pz0xRdfWN5fsWJFrVmzRhUrVlRoaKheeOEF9enTx+pbwaCgIK1du1ZxcXF68MEHNXPmTH344YcKDw8vkTkAAAAUVUnVUAAAAOVBsW7fq1Onjtq3b6+BAwfq6aeftlqf4FZ89tlnNxx3dXXVwoULtXDhwkJjAgMD892ed70OHTpo//79xcoRAACgpJRUDQUAAFAeFOtKqX379qlx48YaOXKk/Pz89PLLL+dbcBwAAADWqKEAAAD+UqymVJMmTTR37lydOXNGH330kc6ePas2bdqoYcOGmjVrln777beSzhMAAKDMo4YCAAD4y20tdO7o6KgePXpoxYoVmj59uk6ePKnXXntNtWrVUp8+fXT27NmSyhMAAKDcoIYCAAC4zabUt99+q3/84x+qUaOGZs2apddee00//PCD4uLidObMGT311FMllScAAEC5QQ0FAABQzIXOZ82apaVLl+r48eN64okn9Mknn+iJJ55QhQp/9riCgoIUExOj++67ryRzBQAAKNOooQAAAP5SrKbUokWLNGDAAPXr1081atQoMMbHx0dLliy5reQAAADKE2ooAACAvxSrKXXixImbxjg7O6tv377FOTwAAEC5RA0FAADwl2KtKbV06VKtWLEi3/4VK1bo448/vu2kAAAAyiNqKAAAgL8Uqyk1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",
"text/plain": [
"