diff --git a/test.ipynb b/test.ipynb deleted file mode 100644 index b2cb7d5..0000000 --- a/test.ipynb +++ /dev/null @@ -1 +0,0 @@ -{"cells":[{"cell_type":"markdown","metadata":{"id":"QUdOQKBjalTs"},"source":["**# Install the library Urduhack: A Python NLP library for Urdu language**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"7hDKYcogbFzg"},"outputs":[],"source":["!pip install Urduhack"]},{"cell_type":"markdown","metadata":{"id":"hsILf-3dbdIV"},"source":["**# Import the necessary libraries**"]},{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":3055,"status":"ok","timestamp":1702895856151,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"t3JWEU9kaJhS","outputId":"9e92627f-cfc4-4fc1-d4b5-e06b692e9b24"},"outputs":[{"name":"stderr","output_type":"stream","text":["/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tensorflow_addons/utils/tfa_eol_msg.py:23: UserWarning: \n","\n","TensorFlow Addons (TFA) has ended development and introduction of new features.\n","TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024.\n","Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). \n","\n","For more information see: https://github.com/tensorflow/addons/issues/2807 \n","\n"," warnings.warn(\n","[nltk_data] Downloading package punkt to\n","[nltk_data] /Users/danial.shabbir/nltk_data...\n","[nltk_data] Package punkt is already up-to-date!\n"]}],"source":["from tqdm import tqdm\n","import os\n","import re\n","import calendar\n","import numpy as np\n","import pandas as pd\n","import pickle\n","from collections import Counter\n","import urduhack\n","import nltk\n","from nltk.tokenize import word_tokenize\n","nltk.download('punkt')\n","import json\n","import itertools\n","from typing import List\n","from sklearn.metrics import confusion_matrix, precision_score, recall_score\n","# Download UrduHack resources\n","urduhack.download()\n","from urduhack.normalization import normalize\n","from urduhack.preprocessing import normalize_whitespace, remove_punctuation, remove_accents, replace_urls, replace_emails, replace_numbers, replace_currency_symbols, remove_english_alphabets"]},{"cell_type":"markdown","metadata":{"id":"lf6xJ8mOaRRz"},"source":["**# Load the dataset from your google drive directory**"]},{"cell_type":"code","execution_count":78,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":67280,"status":"ok","timestamp":1702891465908,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"UrJmeCOrIyd2","outputId":"1fd7d5ac-43db-4649-ce33-aa89d9789d56"},"outputs":[],"source":["# from google.colab import drive\n","# drive.mount('/content/drive')\n","# os.chdir('/content/drive/MyDrive/Colab Notebooks/Khubaib')\n","# import pandas as pd\n","\n","\n","data = pd.read_csv('data/urdu-news-dataset-1M.csv', index_col='Index', encoding='unicode_escape')"]},{"cell_type":"markdown","metadata":{"id":"GPVSV7XkK1vW"},"source":["**# Data preprocessing**"]},{"cell_type":"code","execution_count":79,"metadata":{"id":"TIeey5R-PH8C"},"outputs":[],"source":["# Drop null values\n","data = data.dropna()\n","data.reset_index(drop=True, inplace=True)"]},{"cell_type":"code","execution_count":80,"metadata":{"id":"Xm0w7zAbKwP2"},"outputs":[],"source":["# Function to convert encodings\n","def encodings_change(series):\n"," try:\n"," return [text.encode('latin1').decode('utf-8') for text in series]\n"," except:\n"," return series"]},{"cell_type":"code","execution_count":81,"metadata":{"id":"RMC_roiALETh"},"outputs":[],"source":["# Function to update date format\n","english_month_name = [i.lower() for i in list(calendar.month_name)]\n","urdu_month_map = ['',\n"," 'جنوری',\n"," 'فروری',\n"," 'مارچ',\n"," 'اپريل',\n"," 'مئی',\n"," 'جون',\n"," 'جولائی',\n"," 'اگست',\n"," 'ستمبر',\n"," 'اکتوبر',\n"," 'نومبر',\n"," 'دسمبر',\n"," '','','',\n"," 'اپریل',\n"," 'مئ','',\n"," 'جولائ',\n"," '','','','',''\n"," ]\n","\n","short_month_name = ['','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug',\n"," 'Sep','Oct','Nov','Dec']\n","\n","def date_encoding(date,urdu_month_map = urdu_month_map,\n"," english_month_name = english_month_name,\n"," short_month_name = short_month_name):\n","\n"," month = None\n"," if bool(re.match('\\d\\d\\d\\d\\-\\d\\d\\-\\d\\d',str(date))):\n"," return date\n"," if '/'in date:\n"," date = date.split('/')\n"," year = date[-1]\n"," month = date[0]\n"," day = date[1]\n"," date = f'{year}-{month}-{day}'\n"," return date\n","\n"," for i in date.encode('latin1').decode('utf-8').split():\n"," if ',' in i:\n"," i = i.replace(',','')\n"," if i in urdu_month_map:\n"," month = urdu_month_map.index(i)\n"," if month > 12:\n"," month = month - 12\n","\n"," elif i.lower() in english_month_name:\n"," month = english_month_name.index(i.lower())\n","\n"," elif i.lower() in short_month_name:\n"," month = short_month_name.index(i.lower())\n","\n"," if len(i)==4:\n"," year = i\n","\n"," if len(i)<=2:\n"," day = i\n","\n"," date = f'{year}-{month}-{day}'\n"," return date"]},{"cell_type":"code","execution_count":82,"metadata":{"id":"5baU_vQoLghD"},"outputs":[],"source":["def date_update(series):\n"," all_dates = []\n","\n"," for i,date in enumerate(series):\n"," if 'hours' in str(date):\n"," all_dates.append(np.nan)\n"," continue\n"," all_dates.append(date_encoding(date))\n"," return all_dates"]},{"cell_type":"code","execution_count":83,"metadata":{"id":"GHZcX0YALmpD"},"outputs":[],"source":["# Apply encodings_change and date_encoding to relevant columns\n","data['News Text'] = encodings_change(data['News Text'])\n","data['Headline'] = encodings_change(data['Headline'])\n","data['Date'] = date_update(data['Date'])"]},{"cell_type":"code","execution_count":84,"metadata":{},"outputs":[],"source":["# data = data.query('Headline.str.contains(\"خیبرپختونخوا\")')\\\n","# # .groupby('Category',as_index = False,group_keys=False).apply(lambda s: s.sample(2))\n","# #data.head()\n","# # data.head()\n"]},{"cell_type":"code","execution_count":85,"metadata":{"id":"ChzPzRiCR2AI"},"outputs":[],"source":["#save clean dataset\n","data_file = open('data/Urdu_News', 'wb')\n","pickle.dump(data, data_file)\n","data_file.close()"]},{"cell_type":"code","execution_count":86,"metadata":{"id":"IGHRNmsrV0NY"},"outputs":[],"source":[" # remove stop words\n","stop_words = frozenset(\"\"\"\n","آ آئی آئیں آئے آتا آتی آتے آداب آدھ آدھا آدھی آدھے آس\n"," آمدید آنا آنسہ آنی آنے آپ آگے آہ آہا آیا اب ابھی ابے\n"," اتوار ارب اربویں ارے اس اسکا اسکی اسکے اسی اسے اف افوہ الاول البتہ\n"," الثانی الحرام السلام الف المکرم ان اندر انکا انکی انکے انہوں انہی انہیں\n"," اوئے اور اوپر اوہو اپ اپنا اپنوں اپنی اپنے اپنےآپ اکبر اکثر اگر اگرچہ\n"," اگست اہاہا ایسا ایسی ایسے ایک بائیں بار بارے بالکل باوجود باہر بج بجے\n"," بخیر برسات بشرطیکہ بعض بغیر بلکہ بن بنا بناؤ بند بڑی بھر بھریں\n"," بھی بہار بہت بہتر بیگم تاکہ تاہم تب تجھ تجھی تجھے ترا تری\n"," تلک تم تمام تمہارا تمہاروں تمہاری تمہارے تمہیں تو تک تھا تھی تھیں تھے\n"," تہائی تیرا تیری تیرے تین جا جاؤ جائیں جائے جاتا جاتی جاتے جانی جانے\n"," جب جبکہ جدھر جس جسے جن جناب جنہوں جنہیں جو جہاں جی جیسا\n"," جیسوں جیسی جیسے جیٹھ حالانکہ حالاں حصہ حضرت خاطر خالی خدا خزاں خواہ خوب\n"," خود دائیں درمیان دریں دو دوران دوسرا دوسروں دوسری دوشنبہ دوں دکھائیں دگنا دی\n"," دیئے دیا دیتا دیتی دیتے دیر دینا دینی دینے دیکھو دیں دیے دے ذریعے\n"," رکھا رکھتا رکھتی رکھتے رکھنا رکھنی رکھنے رکھو رکھی رکھے رہ رہا رہتا\n"," رہتی رہتے رہنا رہنی رہنے رہو رہی رہیں رہے ساتھ سامنے ساڑھے سب سبھی\n"," سراسر سلام سمیت سوا سوائے سکا سکتا سکتے سہ سہی سی سے شام شاید\n"," شکریہ صاحب صاحبہ صرف ضرور طرح طرف طور علاوہ عین فروری فقط فلاں\n"," فی قبل قطا لائی لائے لاتا لاتی لاتے لانا لانی لایا لو لوجی لوگوں\n"," لگ لگا لگتا لگتی لگی لگیں لگے لہذا لی لیا لیتا لیتی لیتے لیکن\n"," لیں لیے لے ماسوا مت مجھ مجھی مجھے محترم محترمی محض مرا مرحبا\n"," مری مرے مزید مس مسز مسٹر مطابق مطلق مل منٹ منٹوں مکرمی مگر\n"," مگھر مہربانی میرا میروں میری میرے میں نا نزدیک نما نو نومبر نہ نہیں\n"," نیز نیچے نے و وار واسطے واقعی والا والوں والی والے واہ وجہ ورنہ\n"," وعلیکم وغیرہ ولے وگرنہ وہ وہاں وہی وہیں ویسا ویسے ویں پاس\n"," پایا پر پس پلیز پون پونا پونی پونے پھاگن پھر پہ پہر پہلا پہلی\n"," پہلے پیر پیچھے چاہئے چاہتے چاہیئے چاہے چلا چلو چلیں چلے چناچہ چند چونکہ\n"," چوگنی چکی چکیں چکے چہارشنبہ چیت ڈالنی ڈالنے ڈالے کئے کا کاتک کاش کب\n"," کبھی کدھر کر کرتا کرتی کرتے کرم کرنا کرنے کرو کریں کرے کس\n"," کسی کسے کل کم کن کنہیں کو کوئی کون کونسا کونسے کچھ کہ کہا\n"," کہاں کہہ کہی کہیں کہے کی کیا کیسا کیسے کیونکر کیونکہ کیوں کیے کے\n"," گئی گئے گا گرما گرمی گنا گو گویا گھنٹا گھنٹوں گھنٹے گی گیا\n"," ہائیں ہائے ہاڑ ہاں ہر ہرچند ہرگز ہزار ہفتہ ہم ہمارا ہماری ہمارے ہمی\n"," ہمیں ہو ہوئی ہوئیں ہوئے ہوا ہوبہو ہوتا ہوتی ہوتیں ہوتے ہونا ہونگے ہونی\n"," وہاں یہاں کہاں ہم ہر ہوۓ ہوئ ہوا ہوگا ہوگی ہوں گے میں کو تھا تھی تھے ہے سے اور اس ان اسے انہوں انہیں تک تم تو کا کی کے نا نے گا گی گے آئ آۓ گۓ گئ گیا جاتی جاتے جاتا چکا چکی چکے دیا دیۓ دیتا دیتے رک رکی رکا رکے سکی سکا سکے ہونے ہوں ہی ہیلو ہیں ہے یا یات یعنی یک یہ یہاں یہی یہیں\n","\"\"\".split())"]},{"cell_type":"code","execution_count":87,"metadata":{"id":"oodPMLHzWUcQ"},"outputs":[],"source":["def remove_stopwords(text: str):\n"," return \" \".join(word for word in text.split() if word not in stop_words)\n","def preprocess_stopwords(text):\n"," text = remove_stopwords(text)\n"," return text\n","def apply_stopwords_preprocess(series):\n"," preprocessed_stopword = []\n"," for text in series:\n"," preprocessed_stopword.append(preprocess_stopwords(text))\n"," return preprocessed_stopword"]},{"cell_type":"code","execution_count":88,"metadata":{"id":"TMu1_zWAWopr"},"outputs":[],"source":["data['Headline'] = apply_stopwords_preprocess(data['Headline'])\n","data['Headline'] = data['Headline'].apply(normalize)\n","data['Headline'] = data['Headline'].apply(remove_accents)\n","data['Headline'] = data['Headline'].apply(replace_urls)\n","data['Headline'] = data['Headline'].apply(replace_emails)\n","data['Headline'] = data['Headline'].apply(replace_currency_symbols)\n","data['Headline'] = data['Headline'].apply(normalize_whitespace)\n","data['Headline'] = data['Headline'].apply(remove_punctuation)\n","data['Headline'] = data['Headline'].apply(replace_numbers)\n","data['Headline'] = data['Headline'].apply(remove_english_alphabets)"]},{"cell_type":"code","execution_count":89,"metadata":{"id":"Uz0hUOjoXyGw"},"outputs":[],"source":["def removing_unwanted_data(text):\n","\n"," # Format words and remove unwanted characters from news headlines\n"," text = re.sub(r'https?:\\/\\/.*[\\r\\n]*', '', text, flags=re.MULTILINE)\n"," text = re.sub(r'\\', ' ', text)\n"," text = re.sub(r'\\'', ' ', text)\n"," return text\n","data['Headline']= list(map(removing_unwanted_data,data.Headline))"]},{"cell_type":"markdown","metadata":{"id":"DodGGrB6dqoO"},"source":["**# Divide dataset into headlines that are related to user query and those headlines that are not related to user query**"]},{"cell_type":"code","execution_count":90,"metadata":{"id":"xnYPgI07Yk9t"},"outputs":[],"source":["#consider the entertainment as negative topic and the other as positive docs.\n","positive_headlines = []\n","business_positive_headlines = data['Headline'][(data['Category'] == 'Business & Economics')][0:19309]\n","science_positive_headlines = data['Headline'][(data['Category'] == 'Science & Technology')][0:6400]\n","sports_positive_headlines = data['Headline'][(data['Category'] == 'Sports')][0:35870]\n","negative_headlines = data['Headline'][data['Category'] == 'Entertainment'][0:27930]\n","#concatenate them into 80% training data\n","positive_headlines = pd.concat([business_positive_headlines, science_positive_headlines, sports_positive_headlines], axis=0)"]},{"cell_type":"markdown","metadata":{"id":"YKekSrF3dMQz"},"source":["**# Features extraction**"]},{"cell_type":"code","execution_count":91,"metadata":{"id":"hM1TPi-mc6NN"},"outputs":[],"source":["positive_unique_words = set()\n","positive_headlines.str.lower().str.split().apply(positive_unique_words.update)\n","positive_unique_words = list(positive_unique_words)"]},{"cell_type":"markdown","metadata":{"id":"8L-5ZtaUlMLU"},"source":["**# Apply pattern taxonomy model (PTM)**"]},{"cell_type":"code","execution_count":92,"metadata":{"id":"aAZ4hLHlfotM"},"outputs":[],"source":["#assign each head a number.\n","positive_titles_refs = [f'dp{i+1}' for i in positive_headlines.index]"]},{"cell_type":"code","execution_count":93,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":441326,"status":"ok","timestamp":1702896320269,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"QWmZUqQBf33c","outputId":"f787e68a-bda6-46bb-a97f-663149f598f7"},"outputs":[{"name":"stderr","output_type":"stream","text":["100%|██████████| 61579/61579 [01:35<00:00, 645.96it/s] \n"]}],"source":["#assign each ref to its words.\n","#example:- dp1: ['he', 'is', 'mad']\n","set_of_paragraphs = {}\n","for i in tqdm(range(len(positive_headlines))):\n"," #tokenize headline\n"," title = word_tokenize(positive_headlines.iloc[i])\n"," terms = []\n"," for j in range(len(title)):\n"," if title[j] in positive_unique_words:\n"," terms.append(positive_unique_words[positive_unique_words.index(title[j])])\n"," set_of_paragraphs[positive_titles_refs[i]] = terms"]},{"cell_type":"code","execution_count":94,"metadata":{"id":"SZt2yUnkh-B6"},"outputs":[],"source":["#get tokenized terms\n","positive_terms = list(set_of_paragraphs.values())\n","#get dps\n","positive_dp = list(set_of_paragraphs.keys())"]},{"cell_type":"code","execution_count":95,"metadata":{"id":"iND12vDYiEwC"},"outputs":[],"source":["#save positive paragraphs refs to use them later in pattern depolying step\n","model_file = open('Model/Urdu Positive dp', 'wb')\n","pickle.dump(positive_dp, model_file)\n","model_file.close()\n","\n","#save positive terms to use them later in pattern depolying step\n","model_file = open('Model/Urdu Positive terms', 'wb')\n","pickle.dump(positive_terms, model_file)\n","model_file.close()"]},{"cell_type":"markdown","metadata":{"id":"v7VjULuPjxCR"},"source":["**# Create patterns from positive terms**"]},{"cell_type":"code","execution_count":96,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"UbmI43nWiZMb","outputId":"19330bc2-6f0b-491a-ac04-fe3fdce0dab2"},"outputs":[{"name":"stderr","output_type":"stream","text":["100%|██████████| 61579/61579 [06:03<00:00, 169.36it/s] \n"]}],"source":["def create_combinations_of_terms(terms):\n"," #combinations list.\n"," all_combinations = []\n"," for i in tqdm(range(len(terms))):\n"," combinations = []\n"," for j in range(1, len(terms[i])+1):\n"," combinations.append(list(itertools.combinations(terms[i], j)))\n"," #flatten it since it's 2d list.\n"," combinations = [item for sublist in combinations for item in sublist]\n"," all_combinations.append(combinations)\n"," return all_combinations\n","positive_combinations = create_combinations_of_terms(positive_terms)\n","len(positive_combinations)\n","#flatten the whole list of patterns. 2d -> 1d\n","positive_patterns = [item for sublist in positive_combinations for item in sublist]"]},{"cell_type":"markdown","metadata":{"id":"Hqx3FiSajK4B"},"source":["**# Create covering sets for the positive patterns**"]},{"cell_type":"code","execution_count":97,"metadata":{"id":"D-tjWnCWii3G"},"outputs":[{"name":"stderr","output_type":"stream","text":[" 0%| | 0/335673740 [00:00 dict:\n"," covering_sets = {}\n"," for i in tqdm(range(len(patterns))):\n"," count = 0\n"," terms_dp = []\n"," for j in range(len(terms)):\n"," #if pattern in the terms list\n"," if set(patterns[i]) <= set(terms[j]):\n"," count += 1\n"," terms_dp.append(dp[j])\n"," #if the support of the pattern is greater than min_support then its frequent pattern\n"," if count / len(terms) >= min_support:\n"," covering_sets[tuple(patterns[i])] = terms_dp\n"," return covering_sets\n","min_support = 0.0001\n","positive_covering_sets = create_covering_sets(positive_patterns, positive_terms, positive_dp, min_support)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Ua7E4dO7kjcZ"},"outputs":[],"source":["#Save PTM dictionary.\n","model_file = open('Model/Urdu Positive Doc PTM', 'wb')\n","pickle.dump(positive_covering_sets, model_file)\n","model_file.close()"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"YTX4VcMhklFN"},"outputs":[],"source":["#Open PTM dictionary.\n","with open('Model/Urdu Positive Doc PTM', 'rb') as f:\n"," positive_covering_sets = pickle.load(f)"]},{"cell_type":"markdown","metadata":{"id":"z4dkYhbWlw-X"},"source":["**# Apply closed sequential pattern mining algorithm to extract closed sequential patterns**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"AlicapQzmKlI"},"outputs":[{"name":"stderr","output_type":"stream","text":["100%|██████████| 5398/5398 [00:05<00:00, 1003.15it/s]\n"]}],"source":["from tqdm import tqdm\n","closed_covering_sets = {}\n","covering_sets_keys = list(positive_covering_sets.keys())\n","# Create a tqdm instance with the total number of iterations\n","for i in tqdm(range(len(covering_sets_keys))):\n"," current_pattern = covering_sets_keys[i]\n"," is_closed = True\n"," for j in range(len(covering_sets_keys)):\n"," if i != j:\n"," other_pattern = covering_sets_keys[j]\n"," if set(current_pattern).issubset(other_pattern) and len(positive_covering_sets[current_pattern]) <= len(positive_covering_sets[other_pattern]):\n"," is_closed = False\n"," break\n"," if is_closed:\n"," closed_covering_sets[current_pattern] = positive_covering_sets[current_pattern]\n","\n","# Now, closed_covering_sets should contain the closed covering sets"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"gcG2WLtwmSFZ"},"outputs":[],"source":["#save clospan dictionary.\n","model_file = open('Model/Urdu Positive Doc Closed PTM', 'wb')\n","pickle.dump(closed_covering_sets, model_file)\n","model_file.close()"]},{"cell_type":"markdown","metadata":{"id":"_EQb32BPmlKK"},"source":["**# Now, features extraction from negative docs**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"9B1-sUBFnMXE"},"outputs":[{"name":"stderr","output_type":"stream","text":["100%|██████████| 2/2 [00:00<00:00, 9754.20it/s]\n"]}],"source":["#Negative docs title refrences and negative docs titles dictionaries.\n","negative_titles_refs = [f'dp{i+1}' for i in negative_headlines.index]\n","titles = []\n","for i in tqdm(range(len(negative_headlines))):\n"," title = word_tokenize(negative_headlines.iloc[i])\n"," titles.append(title)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"I5JKrcmUnWiq"},"outputs":[],"source":["negative_doc_weights = {}\n","negative_doc_titles = {}\n","for i in range(len(titles)):\n"," summ = []\n"," for word in titles[i]:\n"," summ.append(sum([row.count(word) for row in titles]) / len(titles))\n"," negative_doc_weights[negative_titles_refs[i]] = sum(summ)\n"," negative_doc_titles[negative_titles_refs[i]] = titles[i]"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Ln1L3Gg-oOXS"},"outputs":[],"source":["#save weights of the negative docs.\n","model_file = open('Model/Urdu Negative_doc_weights', 'wb')\n","pickle.dump(negative_doc_weights, model_file)\n","model_file.close()\n","model_file = open('Model/Urdu Negative_doc_titles', 'wb')\n","pickle.dump(negative_doc_titles, model_file)\n","model_file.close()"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"JQV_T0iLo0m9"},"outputs":[],"source":["# Load required data and files\n","with open('data/Urdu_News', 'rb') as f:\n"," test_data = pickle.load(f)\n","with open('Model/Urdu Positive Doc Closed PTM', 'rb') as f:\n"," closed_positive_covering_sets = pickle.load(f)\n","with open('Model/Urdu Positive dp', 'rb') as f:\n"," positive_dp = pickle.load(f)\n","with open('Model/Urdu Positive terms', 'rb') as f:\n"," positive_terms = pickle.load(f)\n","with open('Model/Urdu Negative_doc_weights', 'rb') as f:\n"," negative_doc_weights = pickle.load(f)\n","with open('Model/Urdu Negative_doc_titles', 'rb') as f:\n"," negative_doc_titles = pickle.load(f)"]},{"cell_type":"markdown","metadata":{"id":"03jejSIJSaaF"},"source":["**# Patterns deployment**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"cmTjvwauQniZ"},"outputs":[],"source":["positive_temp_covering_set = {}\n","def create_empty_covering_set(list_dps):\n"," temp_covering_set = {}\n"," for i in range(len(list_dps)):\n"," temp_covering_set[list_dps[i]] = []\n"," return temp_covering_set\n","positive_temp_covering_set = create_empty_covering_set(positive_dp)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"GIEIaWcaTuah"},"outputs":[],"source":["# d_patterns creation\n","def create_d_patterns(closed_covering_sets, empty_covering_set):\n","\n"," for key, value in closed_covering_sets.items():\n"," for i in range(len(value)):\n"," empty_covering_set[value[i]].append(key)\n"," return empty_covering_set\n","positive_temp_covering_set = create_d_patterns(closed_positive_covering_sets, positive_temp_covering_set)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"DIxR2O-iT-JH"},"outputs":[],"source":["def get_support_of_each_term(temp_covering_set):\n"," temp_values = []\n"," new_temp_covering_set = {}\n"," for key, value in temp_covering_set.items():\n"," if value != []:\n"," tmp_lst = [j for i in value for j in i]\n"," new_temp_covering_set[key] = dict(Counter(tmp_lst))\n"," temp_values.append(new_temp_covering_set[key])\n"," return new_temp_covering_set, temp_values\n","positive_terms_supports, positive_temp_values = get_support_of_each_term(positive_temp_covering_set)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"8eUZ4XAzUHpg"},"outputs":[],"source":["import copy\n","#create a deep copy of the positive terms support.\n","none_normalized_positive_d_pattern = copy.deepcopy(positive_terms_supports)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"i21jHXM0UTQB"},"outputs":[],"source":["# normalize d_patterns\n","def create_normalized_d_patterns(closed_covering_Set,terms_supports):\n"," \"\"\"\n"," This function is used to normalize the support of each pattern.\n"," ex:- {dp1: {'t1':1, 't2':2, 't3':3}} -> {dp1: {'t1':1/6, 't2':2/6, 't3':3/6}}\n"," \"\"\"\n"," for i in range(len(terms_supports)):\n"," summ = sum(list(terms_supports[i].values()))\n"," for key, value in terms_supports[i].items():\n"," terms_supports[i][key] = value * (1 / summ)\n"," i = 0\n"," for key, value in closed_covering_Set.items():\n"," closed_covering_Set[key] = terms_supports[i]\n"," i += 1\n"," return closed_covering_Set\n","normalized_positive_d_pattern = create_normalized_d_patterns(positive_terms_supports, positive_temp_values)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"082FgzYzUkYi"},"outputs":[],"source":["supports = list(none_normalized_positive_d_pattern.values())\n","sum_of_supports = []\n","for key, value in none_normalized_positive_d_pattern.items():\n"," sum_of_supports.append(sum(list(value.values())))\n","Threshold = min(sum_of_supports)"]},{"cell_type":"markdown","metadata":{"id":"0ih3RIrjVAvp"},"source":["**# Shuffling Algorithm**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ZGYccRmFVK78"},"outputs":[],"source":["def shuffling_algorithm(nd: dict, norm_d_patterns:dict, mu:int) -> dict:\n"," \"\"\"\n"," This function is used to shuffle the supports of terms in dp if there are a noise term in the dp or remove the whole dp if all terms in the negative pattern.\n"," Params:-\n"," nd:- similar terms between positive and negative patterns.\n"," norm_d_patterns:- normalized positive d-pattern.\n"," mu:- constant value.\n"," \"\"\"\n"," keys = list(norm_d_patterns.keys())\n"," for key in keys:\n"," if key in nd:\n"," offering = 0\n"," base = 0\n"," if sorted(nd[key]) == sorted(list(norm_d_patterns[key].keys())):\n","\n"," del norm_d_patterns[key]\n"," else:\n"," supports = np.array(list(norm_d_patterns[key].values()))\n","\n"," dps = list(norm_d_patterns[key].keys())\n"," in_indices = [i for i, x in enumerate(dps) if x in nd[key]]\n"," out_indices = [i for i, x in enumerate(dps) if x not in nd[key]]\n"," sum_of_offering_supports = np.sum(supports[in_indices])\n"," sum_of_base_supports = np.sum(supports[out_indices])\n"," offering = (1 - (1/mu)) * sum_of_offering_supports\n"," base = sum_of_base_supports\n","\n"," for term in norm_d_patterns[key].keys():\n"," if term in nd[key]:\n"," norm_d_patterns[key][term] = (1/ mu) * norm_d_patterns[key][term]\n"," else:\n"," norm_d_patterns[key][term] = (1 + offering / base) * norm_d_patterns[key][term]\n"," return norm_d_patterns"]},{"cell_type":"markdown","metadata":{"id":"ULXDrvGfViAX"},"source":["**# IPEvolving Algorithm**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"3A9NL3E9Vqul"},"outputs":[],"source":["negative_doc_titles_keys = list(negative_doc_titles.keys())\n","for key in negative_doc_titles_keys:\n"," #if the weight of the negaitve pattern >= TAHRESHOLD\n"," if negative_doc_weights[key] >= Threshold:\n"," nd = {}\n"," #get the terms in each dp\n"," normalized_positive_d_pattern_keys = list(normalized_positive_d_pattern.keys())\n"," for key_2 in normalized_positive_d_pattern_keys:\n"," #if there similar terms between positive patterns and negative patterns.\n"," if list(set(normalized_positive_d_pattern[key_2].keys()) & set(negative_doc_titles[key])) != []:\n"," #add these similar terms to the nd.\n"," nd[key_2] = list(set(normalized_positive_d_pattern[key_2].keys()) & set(negative_doc_titles[key]))\n"," #do shuffling.\n"," normalized_positive_d_pattern = shuffling_algorithm(nd, normalized_positive_d_pattern, 5)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"HRL_RrKhV4IB"},"outputs":[],"source":["# save updated d patterns\n","model_file = open('Model/d_patterns', 'wb')\n","pickle.dump(normalized_positive_d_pattern, model_file)\n","model_file.close()"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"flx5Kq9nWP5C"},"outputs":[],"source":["# open updated d patterns\n","with open('Model/d_patterns', 'rb') as f:\n"," data_patterns = pickle.load(f)"]},{"cell_type":"markdown","metadata":{"id":"IS0l7sW2XFah"},"source":["**# Test pattern mining algorithms**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Ujth4cqKWu4K"},"outputs":[],"source":["# function to get headlines from testing data that are related to user query and contain updated d patterns\n","def search_for_query(query, data_patterns):\n"," \"\"\"\n"," This function searches for query in the normalized_positive_d_pattern and if it exists it will return the top paragraphs indecis.\n"," \"\"\"\n"," all_supports = {}\n"," words = word_tokenize(query)\n"," for key, value in data_patterns.items():\n"," dp_support = 0\n"," for word in words:\n"," if word in list(value.keys()):\n"," dp_support += value[word]\n"," all_supports[key] = dp_support\n"," #sort supports\n"," all_supports = dict(sorted(all_supports.items(), key=lambda item: item[1], reverse = True))\n"," results = list(all_supports.keys())\n"," final_supports = list(all_supports.values())\n"," #check if final supports has supports > 0\n"," check = all(v == 0 for v in final_supports)\n"," top_paragraphs = []\n"," #if all final supports has 0 values\n"," if check:\n"," print(\"ہم معزرت خواہ ہیں۔ آپ کے استفسار کے مطابق سسٹم میں ڈاکومنٹس موجود نہیں ہیں۔ یہ سسٹم محدود ڈیٹا سیٹ پر تیار کیا گیا ہے۔\")\n"," else:\n","\n"," for i in range(len(results)):\n"," if final_supports[i] >= 0.3:\n"," top_paragraphs.append(int(results[i][results[i].index('p')+1:]) -1)\n"," return top_paragraphs"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"xFmfCMYlYxf4"},"outputs":[],"source":["# function to print the retrieved result\n","def print_retrieved_queries(query, test_data,top_paragraphs):\n"," if top_paragraphs == []:\n"," print(\"ہم معزرت خواہ ہیں۔ آپ کے استفسار کے مطابق سسٹم میں ڈاکومنٹس موجود نہیں ہیں۔ یہ سسٹم محدود ڈیٹا سیٹ پر تیار کیا گیا ہے۔\")\n"," else:\n"," print(f\"Documents retrieved for query: {query}\")\n"," for i in range(len(top_paragraphs)):\n"," print(f\"Page {i+1}, Date {test_data['Date'].iloc[top_paragraphs[i]]}\")\n"," print(f\"Category: {test_data['Category'].iloc[top_paragraphs[i]]}\")\n"," print(f\"Source: {test_data['Source'].iloc[top_paragraphs[i]]}, {data['URL'].iloc[top_paragraphs[i]]}\")\n"," print(\"------------------------------------------------------Headline--------------------------------------------------------\")\n"," print(test_data['Headline'].iloc[top_paragraphs[i]])\n"," print(\"------------------------------------------------------News Text--------------------------------------------------------\")\n"," print(test_data['News Text'].iloc[top_paragraphs[i]])\n"," print(\"\\n\\n\")"]},{"cell_type":"markdown","metadata":{"id":"LqOaD2rkZbCG"},"source":["**# Function to calculate precision and recall**"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"exhWlc-GZulj"},"outputs":[],"source":["def compute_precision_recall(retrieved_categories, intended_category, total_relevant):\n"," # Count the number of retrieved documents that are relevant\n"," relevant_retrieved = sum([1 for cat in retrieved_categories if cat == intended_category])\n"," #print(relevant_retrieved)\n"," # Precision: fraction of retrieved documents that are relevant\n"," precision = relevant_retrieved / len(retrieved_categories) if retrieved_categories else 0\n"," # Recall: fraction of the total relevant documents that were retrieved\n"," recall = relevant_retrieved / total_relevant if total_relevant else 0\n"," return precision, recall"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["metrics = {\n"," \"Business & Economics\":{},\n"," \"Science & Technology\":{},\n"," \"Sports\":{}\n","}"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"3mWBxHObZUKD"},"outputs":[{"name":"stdout","output_type":"stream","text":["Documents retrieved for query: خیبرپختونخوا\n"]},{"ename":"IndexError","evalue":"single positional indexer is out-of-bounds","output_type":"error","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)","Cell \u001b[0;32mIn[77], line 4\u001b[0m\n\u001b[1;32m 2\u001b[0m query \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mخیبرپختونخوا\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;66;03m#input(\"Enter query: \")\u001b[39;00m\n\u001b[1;32m 3\u001b[0m top_paragraphs \u001b[38;5;241m=\u001b[39m search_for_query(query, data_patterns)\n\u001b[0;32m----> 4\u001b[0m \u001b[43mprint_retrieved_queries\u001b[49m\u001b[43m(\u001b[49m\u001b[43mquery\u001b[49m\u001b[43m \u001b[49m\u001b[43m,\u001b[49m\u001b[43mtest_data\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_paragraphs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 5\u001b[0m query_intended_category \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBusiness & Economics\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;66;03m# This should be set based on the query's intended category\u001b[39;00m\n\u001b[1;32m 6\u001b[0m retrieved_categories \u001b[38;5;241m=\u001b[39m [test_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCategory\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39miloc[i] \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m top_paragraphs]\n","Cell \u001b[0;32mIn[73], line 8\u001b[0m, in \u001b[0;36mprint_retrieved_queries\u001b[0;34m(query, test_data, top_paragraphs)\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDocuments retrieved for query: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mquery\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(top_paragraphs)):\n\u001b[0;32m----> 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPage \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;241m+\u001b[39m\u001b[38;5;241m1\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, Date \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[43mtest_data\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mDate\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miloc\u001b[49m\u001b[43m[\u001b[49m\u001b[43mtop_paragraphs\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m]\u001b[49m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCategory: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtest_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCategory\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39miloc[top_paragraphs[i]]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSource: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtest_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSource\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39miloc[top_paragraphs[i]]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mdata[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mURL\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39miloc[top_paragraphs[i]]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n","File \u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pandas/core/indexing.py:1103\u001b[0m, in \u001b[0;36m_LocationIndexer.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1100\u001b[0m axis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maxis \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 1102\u001b[0m maybe_callable \u001b[38;5;241m=\u001b[39m com\u001b[38;5;241m.\u001b[39mapply_if_callable(key, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj)\n\u001b[0;32m-> 1103\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_getitem_axis\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmaybe_callable\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m)\u001b[49m\n","File \u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pandas/core/indexing.py:1656\u001b[0m, in \u001b[0;36m_iLocIndexer._getitem_axis\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1653\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCannot index by location index with a non-integer key\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 1655\u001b[0m \u001b[38;5;66;03m# validate the location\u001b[39;00m\n\u001b[0;32m-> 1656\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_validate_integer\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1658\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj\u001b[38;5;241m.\u001b[39m_ixs(key, axis\u001b[38;5;241m=\u001b[39maxis)\n","File \u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pandas/core/indexing.py:1589\u001b[0m, in \u001b[0;36m_iLocIndexer._validate_integer\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1587\u001b[0m len_axis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj\u001b[38;5;241m.\u001b[39m_get_axis(axis))\n\u001b[1;32m 1588\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m key \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m len_axis \u001b[38;5;129;01mor\u001b[39;00m key \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m-\u001b[39mlen_axis:\n\u001b[0;32m-> 1589\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mIndexError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msingle positional indexer is out-of-bounds\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n","\u001b[0;31mIndexError\u001b[0m: single positional indexer is out-of-bounds"]}],"source":["# precision and recall for Business & Economics\n","query = \"آسٹریلیا میں کھیلوں کا انفراسٹرکچر\"#input(\"Enter query: \")\n","top_paragraphs = search_for_query(query, data_patterns)\n","print_retrieved_queries(query ,test_data, top_paragraphs)\n","query_intended_category = \"Business & Economics\" # This should be set based on the query's intended category\n","retrieved_categories = [test_data['Category'].iloc[i] for i in top_paragraphs]\n","#print(retrieved_categories)\n","total_relevant_docs = len(test_data[test_data['Category'] == query_intended_category])\n","#print(total_relevant_docs)\n","precision, recall = compute_precision_recall(retrieved_categories, query_intended_category, total_relevant_docs)\n","print(f\"Precision for the query: {precision:.7f}\")\n","print(f\"Recall for the query: {recall:.7f}\")\n","print(\"---------------------------------------------------------------\")\n","\n","# gather metrics category wise\n","metrics['Business & Economics']['precision'] = precision\n","metrics['Business & Economics']['recall'] = recall\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"4NE7CuKXaips"},"outputs":[{"name":"stdout","output_type":"stream","text":["ہم معزرت خواہ ہیں۔ آپ کے استفسار کے مطابق سسٹم میں ڈاکومنٹس موجود نہیں ہیں۔ یہ سسٹم محدود ڈیٹا سیٹ پر تیار کیا گیا ہے۔\n","ہم معزرت خواہ ہیں۔ آپ کے استفسار کے مطابق سسٹم میں ڈاکومنٹس موجود نہیں ہیں۔ یہ سسٹم محدود ڈیٹا سیٹ پر تیار کیا گیا ہے۔\n","Precision for the query: 0.0000000\n","Recall for the query: 0.0000000\n","---------------------------------------------------------------\n"]}],"source":["# precision and recall for Science & Technology\n","query = \"آسٹریلیا میں کھیلوں کا انفراسٹرکچر\"#input(\"Enter query: \")\n","top_paragraphs = search_for_query(query, data_patterns)\n","print_retrieved_queries(query ,test_data, top_paragraphs)\n","query_intended_category = \"Science & Technology\" # This should be set based on the query's intended category\n","retrieved_categories = [test_data['Category'].iloc[i] for i in top_paragraphs]\n","#print(retrieved_categories)\n","total_relevant_docs = len(test_data[test_data['Category'] == query_intended_category])\n","#print(total_relevant_docs)\n","precision, recall = compute_precision_recall(retrieved_categories, query_intended_category, total_relevant_docs)\n","print(f\"Precision for the query: {precision:.7f}\")\n","print(f\"Recall for the query: {recall:.7f}\")\n","print(\"---------------------------------------------------------------\")\n","\n","# gather metrics category wise\n","metrics['Science & Technology']['precision'] = precision\n","metrics['Science & Technology']['recall'] = recall\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"OosySb_Cavxp"},"outputs":[{"name":"stdout","output_type":"stream","text":["ہم معزرت خواہ ہیں۔ آپ کے استفسار کے مطابق سسٹم میں ڈاکومنٹس موجود نہیں ہیں۔ یہ سسٹم محدود ڈیٹا سیٹ پر تیار کیا گیا ہے۔\n","ہم معزرت خواہ ہیں۔ آپ کے استفسار کے مطابق سسٹم میں ڈاکومنٹس موجود نہیں ہیں۔ یہ سسٹم محدود ڈیٹا سیٹ پر تیار کیا گیا ہے۔\n","Precision for the query: 0.0000000\n","Recall for the query: 0.0000000\n","---------------------------------------------------------------\n"]}],"source":["# precision and recall for Sports\n","query = \"آسٹریلیا میں کھیلوں کا انفراسٹرکچر \" #input(\"Enter query: \")\n","top_paragraphs = search_for_query(query, data_patterns)\n","print_retrieved_queries(query ,test_data, top_paragraphs)\n","query_intended_category = \"Sports\" # This should be set based on the query's intended category\n","retrieved_categories = [test_data['Category'].iloc[i] for i in top_paragraphs]\n","#print(retrieved_categories)\n","total_relevant_docs = len(test_data[test_data['Category'] == query_intended_category])\n","#print(total_relevant_docs)\n","precision, recall = compute_precision_recall(retrieved_categories, query_intended_category, total_relevant_docs)\n","print(f\"Precision for the query: {precision:.7f}\")\n","print(f\"Recall for the query: {recall:.7f}\")\n","print(\"---------------------------------------------------------------\")\n","\n","\n","# gather metrics category wise\n","metrics['Sports']['precision'] = precision\n","metrics['Sports']['recall'] = recall\n"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Metrics for categories\n"]},{"data":{"text/html":["
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
categoriesprecisionrecall
0Business & Economics0.00.0
1Science & Technology0.00.0
2Sports0.00.0
\n","
"],"text/plain":[" categories precision recall\n","0 Business & Economics 0.0 0.0\n","1 Science & Technology 0.0 0.0\n","2 Sports 0.0 0.0"]},"metadata":{},"output_type":"display_data"},{"data":{"text/html":["
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
categoriesprecisionrecalloccurenceweighted_precisionweighted_recall
0Business & Economics0.00.0100.00.0
1Science & Technology0.00.0100.00.0
2Sports0.00.0100.00.0
\n","
"],"text/plain":[" categories precision recall occurence weighted_precision \\\n","0 Business & Economics 0.0 0.0 10 0.0 \n","1 Science & Technology 0.0 0.0 10 0.0 \n","2 Sports 0.0 0.0 10 0.0 \n","\n"," weighted_recall \n","0 0.0 \n","1 0.0 \n","2 0.0 "]},"metadata":{},"output_type":"display_data"},{"name":"stdout","output_type":"stream","text":["Overal Precision: 0.0\n","Overal Recall: 0.0\n"]}],"source":["import pandas as pd \n","print(\"Metrics for categories\")\n","df = pd.DataFrame(metrics).T.head().reset_index().rename(columns = {'index':'categories'})\n","display(df.head())\n","\n","# get total headlines which belongs to this category\n","def total_instance(category):\n"," return data[data['Category'] == category].shape[0]\n","\n","df['occurence'] = df['categories'].apply(total_instance)\n","df['weighted_precision'] = df['occurence'] * df['precision']\n","df['weighted_recall'] = df['occurence'] * df['recall']\n","display(df.head())\n","overal_precision = round(df['weighted_precision'].sum() / df['occurence'].sum(), 2)\n","overal_recall = round(df['weighted_recall'].sum() / df['occurence'].sum(), 2)\n","\n","print(f\"Overal Precision: {overal_precision}\")\n","print(f\"Overal Recall: {overal_recall}\")\n","# total instances of each category \n","\n"]},{"cell_type":"markdown","metadata":{"id":"SbYimIpxfdDq"},"source":["**# precision line graph for single word queries**\n","\n","* first calculate precision for 25 queries one by one\n","* then enter calculated precision values one by one in y list\n","\n","* repeate the same process for recall line graph\n","\n","* remember its a manual line graph not system generated\n","\n","\n","\n","\n","\n"]},{"cell_type":"code","execution_count":83,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"executionInfo":{"elapsed":749,"status":"ok","timestamp":1702929430728,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"o6g8R5kUbrLp","outputId":"d63dd061-9ff2-4948-a354-60aeaee018a2"},"outputs":[{"data":{"image/png":"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UL0xh4aGwsbGBgkJCbh7965av7rOBPz1119qP5uYmKguqZSWltY4JjAwEC4uLkhOTlbrs3PnTpw5cwaDBg3SaNs00bJlS3h6euKjjz5CeXk5evbsCeDeB++FCxewefNmPPnkk/XeP6TqfkEPfpA11IP7z9raGn5+frXuO22YmpoiJCQEW7duxbVr11Tt58+fx86dO+sdP2LECBw8eBC7du2q9rtbt26hoqKizvG67PuBAwciJycHKSkpqraKigosW7YM1tbW6Nu3b73bHBYWhq1btyIzM1PVfubMmRq340GBgYFwdnZGcnIyysrKVO1r1qyp9revKlrun3tUWVmJlStXqvULCAhA69atsXjxYhQVFVVbZ35+fr151WTo0KEwNTXFvHnzqr1GhRCqY6uwsLDa36pz584wMTHRy3FGxodnbkjy+vbti8mTJyMhIQEnTpxAaGgozMzMkJGRgU2bNuHjjz/G888/D1tbW3z00UeYMGECunXrprrHxsmTJ1FSUlLrJaYJEybg5s2b6NevH1q0aIErV65g2bJl6NKli2qexIPMzMywcOFCREdHo2/fvhg5cqTqq+C+vr547bXX9LoPevfujY0bN6Jz586qf2137doVVlZWOHfunEbzbarOLkyfPh1hYWEwNTXFCy+80ODcHnvsMTz11FMICAiAg4MDjhw5gs2bN2Pq1KkNjg3c+6r5Tz/9hJ49e+KVV15BZWUlli9fjk6dOuHEiRN1jp05cya2b9+Of/3rXxg7diwCAgJQXFyM06dPY/Pmzbh8+TKcnJzqjKHtvp80aRI+++wzjB07FkePHoWvry82b96MAwcOIDExETY2NvVu87x585CamorevXtjypQpquKoY8eOOHXqVJ1jzczM8N5772Hy5Mno168fIiMjcenSJaxevbranJuOHTviySefRFxcHG7evAkHBwds3LixWiFhYmKCL774AuHh4ejYsSOio6Ph6emJ7Oxs7N27F7a2tvj+++/r3a4HtW7dGu+99x7i4uJw+fJlREREwMbGBpcuXcJ3332HSZMm4fXXX8d//vMfTJ06FcOHD0fbtm1RUVGBr7/+Gqamphg2bJjW66UmwIDf1CLSSNXXTQ8fPlxnv6ioKGFlZVXr71euXCkCAgKEhYWFsLGxEZ07dxZvvPGGuHbtmlq/7du3ix49eggLCwtha2srunfv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VIuXl5dWeRIREVHTolNxU1xcjHHjxsHd3R19+vRBnz594OHhgfHjx6OkpETfOaoolUq4uLhg5cqVCAgIQGRkJN5++20kJyfXOiYuLg4FBQWqJSsr66HlR0RERIanU3ETGxuLn3/+Gd9//z1u3bqluoz0888/49///rdGMZycnGBqaorc3Fy19tzcXLi5udU4xt3dHW3btlW7BNWhQwfk5OSgrKysxjEKhQK2trZqCxEREUmXTsXNt99+iy+//BLh4eGqgmHgwIH4/PPPsXnzZo1iyOVyBAQEIC0tTdWmVCqRlpaG4ODgGsf07NkT58+fV3vcw7lz5+Du7g65XK7LphAREZHE6FTclJSUVJsrAwAuLi5aXZaKjY3F559/jv/7v//DmTNn8Morr6C4uFj17akxY8YgLi5O1f+VV17BzZs3MWPGDJw7dw4//vgj3n//fcTExOiyGURERCRBOn0VPDg4GPHx8fjqq69gbm4OALhz5w7mzZtX61mXmkRGRiI/Px9z5sxBTk4OunTpgtTUVFXhlJmZCROTf+ovLy8v7Nq1C6+99hoef/xxeHp6YsaMGXjzzTd12QwiIiKSIJ2+Cv7bb78hLCwMpaWl8Pf3BwCcPHkS5ubm2LVrFzp27Kj3RPVFm6+SERERkXHQ5vNb5/vclJSUYN26dfjzzz8B3JvYO3r0aFhYWOgSrtGwuCEiImp6tPn81umyFABYWlpi4sSJug4nIiIieig0Lm62b9+O8PBwmJmZYfv27XX2ffbZZxucGBEREZEuNL4sZWJigpycHLi4uKhN8q0WUCZDZWWl3hLUN16WIiIianoeymWp++8tc///ExERERmTBj1b6n63bt3SVygiIiIinelU3CxcuBApKSmqn4cPHw4HBwd4enri5MmTekuOiIiISFs6FTfJycmqp2vv3r0be/bsQWpqKsLDwzFz5ky9JkhERESkDZ2+Cp6Tk6Mqbn744QeMGDECoaGh8PX1RVBQkF4TJCIiItKGTmdumjdvjqysLABAamoqQkJCAABCCKP+phQRERFJn05nboYOHYpRo0ahTZs2+OuvvxAeHg4AOH78OPz8/PSaIBEREZE2dCpuPvroI/j6+iIrKwsffvghrK2tAQDXr1/HlClT9JogERERkTZ0frZUU8Wb+BERETU9D+Umfnz8AhERETUFfPwCERERGT0+foGI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","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\n","x = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19', '20','21','22','23','24','25']\n","y = [0.99, 0.99,0.99, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99]\n","width = 1.5\n","fig, ax = plt.subplots()\n","# plot line chart\n","ax.plot(x, y,color='r', label='Precision')\n","ax.set_ylim(0, max(y)+0.1)# set the y-axis limit to a multiple of 0.1\n","plt.yticks([i/10 for i in range(11)]) # set yticks with step of 0.1\n","plt.scatter(x, y,color= 'red')\n","ax.set_xlabel('Queries')\n","ax.set_ylabel('Precision')\n","ax.set_title('Precision with single word queries')\n","ax.legend(loc='lower right')\n","# display the plot\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"E2kPwoK6f6vn"},"source":["**# recall line graph for single word queries**"]},{"cell_type":"code","execution_count":84,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"executionInfo":{"elapsed":1065,"status":"ok","timestamp":1702929557037,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"sAkntlPzf_lP","outputId":"c02c40d5-dbbc-49a0-aedc-eceffad5350d"},"outputs":[{"data":{"image/png":"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ioqK8Pzzzz/qNomIiOgxYtKZGwCIiYlBVFQUAgICEBgYiPj4eBQUFCA6OhoAEBkZCXd3d8TFxemst3TpUoSHh6Nhw4amaJuIiIjMlMnDzfDhw5GTk4MZM2YgMzMTfn5+SExM1J5knJ6eDgsL3QmmU6dOYc+ePfjll19M0TIRERGZMZkQQpi6iZqUn58PlUqFvLw82Nvbm7odIiIi0oMhr9+P9aeliIiIiB7GcENERESSwnBDREREksJwQ0RERJLCcENERESSwnBDREREksJwQ0RERJLCcENERESSwnBDREREksJwQ0RERJLCcENERESSwnBDREREksJwQ0RERJLCcENERESSwnBDREREksJwQ0RERJLCcENERESSwnBDREREksJwQ0RERJLCcENERESSwnBDREREksJwQ0RERJLCcENERESSYvJws2jRIvj4+MDKygpBQUHYt29fhcvfuHED48ePh6urK5RKJZo3b46tW7fWULdERERk7uqYcuPr1q1DTEwMEhISEBQUhPj4eISFheHUqVNwcnIqtXxxcTF69+4NJycnbNiwAe7u7rhw4QLq1atX880TERGRWZIJIYSpNh4UFIROnTph4cKFAACNRgNPT0+88sormDp1aqnlExIS8OGHH+LkyZOwtLQ0apv5+flQqVTIy8uDvb19lfonIiKimmHI67fJ3pYqLi7GwYMHERoa+m8zFhYIDQ1FSkpKmets3rwZwcHBGD9+PJydndG2bVvMmTMHarW63O0UFRUhPz9f50ZERETSZbJwk5ubC7VaDWdnZ51xZ2dnZGZmlrnO2bNnsWHDBqjVamzduhXTp0/H/Pnz8d5775W7nbi4OKhUKu3N09OzWveDiIiIzIvJTyg2hEajgZOTE5YsWQJ/f38MHz4cb7/9NhISEspdZ9q0acjLy9PeLl68WIMdExERUU3T+4Tio0eP6l20ffv2lS7j4OAAuVyOrKwsnfGsrCy4uLiUuY6rqyssLS0hl8u1Y61atUJmZiaKi4uhUChKraNUKqFUKvXunYiIiB5veocbPz8/yGQylHf+ccnPZDJZhefAlFAoFPD390dSUhLCw8MB3J+ZSUpKwoQJE8pcp0uXLlizZg00Gg0sLO5POv3zzz9wdXUtM9gQERFR7aN3uDl37ly1bzwmJgZRUVEICAhAYGAg4uPjUVBQgOjoaABAZGQk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or3t2bPH4BrXr19Hly5dYGlpiZ9//hl///035s+fj/r16xtca//+/Tr9bN++HQCMutzAvHnz8Pnnn2PhwoU4ceIE5s2bhw8++ACffvqpwbUAYOzYsdi+fTtWrlyJY8eOoU+fPggNDUVGRkaF61X2mPzggw/wv//9DwkJCdi7dy9sbW0RFhaGO3fuGFSnoKAAXbt2xbx58yrdl4pqFRYWIjU1FdOnT0dqaio2btyIU6dOYdCgQUbtX/PmzbFw4UIcO3YMe/bsgY+PD/r06YOcnByDa5X4/vvv8eeff1Z46Xd9avXt21fn8fbNN98YXOfMmTPo2rUrWrZsieTkZBw9ehTTp0+HlZWVwbUe7OXKlStYtmwZZDIZhgwZYnCtmJgYJCYmYtWqVThx4gReffVVTJgwAZs3bzaolhAC4eHhOHv2LH744QccOnQI3t7eCA0NLfV8qM/z5uTJk/Hjjz9i/fr1+O2333D58mU888wzpbarT63CwkL07dsXb731VpnHQN9aly9fxuXLl/HRRx/h+PHjWLFiBRITEzFmzBiDe/L398fy5ctx4sQJbNu2DUII9OnTB2q12uBaJeLj4yv8iiJ9a40bN07n8fXBBx9UeNyqjaBqBUB8//331VIrOztbABC//fZbtdSrX7+++PLLL41a9+bNm6JZs2Zi+/btIiQkREyaNMmoOrGxscLX19eodR/05ptviq5du1a5TlkmTZokmjRpIjQajcHrDhgwQIwePVpn7JlnnhHPPfecwbUKCwuFXC4XP/30k854x44dxdtvv613nYcfkxqNRri4uIgPP/xQO3bjxg2hVCrFN998o3edB507d04AEIcOHTKqp7Ls27dPABAXLlyocq28vDwBQPz6669G1bp06ZJwd3cXx48fF97e3uLjjz+usE55taKiosTgwYMrXbeyOsOHDxfPP/+8QXXKq/WwwYMHiyeffNKoWm3atBHvvvuuzpg+j9eHa506dUoAEMePH9eOqdVq4ejoKL744osKaz38vHnjxg1haWkp1q9fr13mxIkTAoBISUkxqNaDdu7cKQCI69evV1hDn1olvv32W6FQKMTdu3erVOfIkSMCgDh9+rRRPR06dEi4u7uLK1eu6P2aVlatqrxWVBVnbsxYyfRkgwYNqlRHrVZj7dq1KCgoKPc7uCozfvx4DBgwAKGhoVXqBQDS0tLg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","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\n","x = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19', '20','21','22','23','24','25']\n","y = [0.99, 0.99,0.99, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99]\n","width = 1.5\n","fig, ax = plt.subplots()\n","# plot line chart\n","ax.plot(x, y,color='g', label='Recall')\n","ax.set_ylim(0, max(y)+0.1)# set the y-axis limit to a multiple of 0.1\n","plt.yticks([i/10 for i in range(11)]) # set yticks with step of 0.1\n","plt.scatter(x, y,color= 'green')\n","ax.set_xlabel('Queries')\n","ax.set_ylabel('Recall')\n","ax.set_title('Recall with single word queries')\n","ax.legend(loc='lower right')\n","# display the plot\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"2JiLCXlRirpM"},"source":["**# precision line graph for double word queries**\n","\n"]},{"cell_type":"code","execution_count":85,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"executionInfo":{"elapsed":742,"status":"ok","timestamp":1702930178513,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"QFSk0k_4iy0B","outputId":"1e43961c-487b-487c-d041-53de8411a87c"},"outputs":[{"data":{"image/png":"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1tZYsmSJxv5OTk5wd3dXTVu3boW1tTWLGyIiIgJg5OKmtLQUBw4cQFhYmKrNzMwMYWFh2LNnj1YxFi9ejJdeegk2NjYany8pKUFhYaHaRERERNJl1OLm6tWrKCsrg5ubm1q7m5sbcnJyqp1/7969OHbsGIYPH15pn6SkJDg4OKgmb2/vGudNREREpsvop6VqYvHixWjbti06dOhQaZ9JkyahoKBANWVlZdVihkRERFTb6hlz4c7OzjA3N0dubq5ae25uLtzd3auct6ioCKtXr8b7779fZT+FQgGFQlHjXImIiKhuMOrIjVwuR2BgINLT01VtSqUS6enpCA0NrXLeNWvWoKSkBC+//PKjTpOIiIjqEKOO3ABAQkICYmNjERQUhA4dOiA5ORlFRUWIi4sDAMTExMDLywtJSUlq8y1evBhRUVFo0KCBMdImIiIiE2X04iY6Ohr5+fmYMmUKcnJy0K5dO6SlpakuMr548SLMzNQHmE6cOIFdu3bhl19+MUbKREREZMJkQghh7CRqU2FhIRwcHFBQUAB7e3tjp0NERERa0OX4Xae/LUVERET0MBY3REREJCksboiIiEhSWNwQERGRpLC4ISIiIklhcUNERESSwuKGiIiIJIXFDREREUkKixsiIiKSFBY3REREJCksboiIiEhSWNwQERGRpLC4ISIiIklhcUNERESSwuKGiIiIJIXFDREREUkKixsiIiKSFBY3REREJCksboiIiEhS6ukzU1lZGZYtW4b09HTk5eVBqVSqPf/rr78aJDkiIiIiXelV3IwdOxbLli1D79690aZNG8hkMkPnRURERKQXvYqb1atX47vvvkOvXr0MnQ8RERFRjeh1zY1cLoe/v7+hcyEiIiKqMb2Km//+97/45JNPIISocQIpKSnw8/ODpaUlQkJCsHfv3ir737hxA/Hx8fDw8IBCoUCzZs2wadOmGudBRERE0qDXaaldu3Zh+/bt2Lx5M1q3bg0LCwu159etW6dVnNTUVCQkJGDhwoUICQlBcnIyIiIicOLECbi6ulboX1paimeffRaurq5Yu3YtvLy8cOHCBTg6OuqzGkRERCRBehU3jo6OeP7552u88Hnz5mHEiBGIi4sDACxcuBA///wzlixZgokTJ1bov2TJEly/fh2///67qqDy8/OrcR5EREQkHTJhiHNLeigtLYW1tTXWrl2L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","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\n","x = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19', '20','21','22','23','24','25']\n","y = [0.99, 0.99,0.99, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99]\n","width = 1.5\n","fig, ax = plt.subplots()\n","# plot line chart\n","ax.plot(x, y,color='b', label='Precision')\n","ax.set_ylim(0, max(y)+0.1)# set the y-axis limit to a multiple of 0.1\n","plt.yticks([i/10 for i in range(11)]) # set yticks with step of 0.1\n","plt.scatter(x, y,color= 'blue')\n","ax.set_xlabel('Queries')\n","ax.set_ylabel('Precision')\n","ax.set_title('Precision with double word queries')\n","ax.legend(loc='lower right')\n","# display the plot\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"BeA19C8djImg"},"source":["**# recall line graph for double word queries**"]},{"cell_type":"code","execution_count":86,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"executionInfo":{"elapsed":661,"status":"ok","timestamp":1702930440195,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"GDgAbhq2jQ5g","outputId":"dd85ebee-ea2c-45b8-b466-a3be5a0d5bfb"},"outputs":[{"data":{"image/png":"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GuMuLi7Iy8urd/n9+/fj2LFjeOWVV2qdJyEhAUqlUj15eno2uG8iIiIyXya/LNUQK1aswGOPPYbAwMBa55k1axaKi4vVU05OTiN2SERERI2tiSlX7ujoCLlcjvz8fI3x/Px8uLq61rlsaWkpvvnmG7z//vt1zqdQKKBQKBrcKxERET0cTHrmxsrKCv7+/khLS1OPqVQqpKWlITg4uM5l169fj/Lycrz00ksPuk0iIiJ6iJj0zA0AxMXFISYmBgEBAQgMDERiYiJKS0sRGxsLAIiOjoaHhwcSEhI0lluxYgUiIyPRsmVLU7RNREREZsrk4SYqKgqFhYWYM2cO8vLy4Ofnh9TUVPVNxtnZ2bCw0DzBlJWVhX379uGnn34yRctERERkxmRCCGHqJhpTSUkJlEoliouLYW9vb+p2iIiISAf6vH4/1O+WIiIiIrofww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJisnDTVJSEnx8fGBtbY2goCDs37+/zvmvX7+OSZMmwc3NDQqFAh06dMC2bdsaqVsiIiIyd01MufKUlBTExcUhOTkZQUFBSExMREREBLKysuDs7Fxj/oqKCjz99NNwdnbGhg0b4OHhgYsXL8LBwaHxmyciIiKzJBNCCFOtPCgoCD179sSSJUsAACqVCp6enpgyZQpmzpxZY/7k5GR8/PHHOHnyJCwtLQ1aZ0lJCZRKJYqLi2Fvb9+g/omIiKhx6PP6bbLLUhUVFTh06BDCw8P/14yFBcLDw5Genq51mS1btiA4OBiTJk2Ci4sLunXrhnnz5qGqqqrW9ZSXl6OkpERjIiIiIukyWbgpKipCVVUVXFxcNMZdXFyQl5endZlz585hw4YNqKqqwrZt2zB79mwsXLgQ//znP2tdT0JCApRKpXry9PQ06nYQERGReTH5DcX6UKlUcHZ2xrJly+Dv74+oqCi88847SE5OrnWZWbNmobi4WD3l5OQ0YsdERETU2HS+ofjo0aM6F+3evXu98zg6OkIulyM/P19jPD8/H66urlqXcXNzg6WlJeRyuXqsc+fOyMvLQ0VFBaysrGoso1AooFAodO6diIiIHm46hxs/Pz/IZDLUdv9x9e9kMlmd98BUs7Kygr+/P9LS0hAZGQng7pmZtLQ0TJ48WesyvXv3xrp166BSqWBhcfek06lTp+Dm5qY12BAREdGjR+dwc/78eaOvPC4uDjExMQgICEBgYCASExNRWlqK2NhYAEB0dDQ8PDyQkJAAAHj11VexZMkSTJs2DVOmTMHp06cxb948TJ061ei9ERER0cNJ53Dj7e1t9JVHRUWhsLAQc+bMQV5eHvz8/JCamqq+yTg7O1t9hgYAPD09sX37dkyfPh3du3eHh4cHpk2bhrfeesvovREREdHDSefPudmyZYvORYcOHWpwQw8aP+eGiIjo4aPP67fOZ26q74upj6733BARERE9CDqHG5VK9SD7ICIiIjKKh+pzboiIiIjqY/AXZ5aWluKXX35BdnY2KioqNH7Hdy8RERGRqRgUbg4fPoxBgwahrKwMpaWlaNGiBYqKimBrawtnZ2eGGyIiIjIZgy5LTZ8+HUOGDMHff/8NGxsb/P7777h48SL8/f3xySefGLtHIiIiIp0ZFG6OHDmCf/zjH7CwsIBcLkd5eTk8PT3x0Ucf4e233zZ2j0REREQ6MyjcWFpaqj9cz9nZGdnZ2QAApVLJL6YkIiIikzLonpvHH38cBw4cQPv27REWFoY5c+agqKgIa9asQbdu3YzdIxEREZHODDpzM2/ePLi5uQEAPvzwQzRv3hyvvvoqCgsLsXTpUqM2SERERKQPnb9+QSr49QtEREQPH31evw06c3P+/HmcPn26xvjp06dx4cIFQ0oSERERGYVB4WbMmDH47bffaoz/8ccfGDNmTEN7IiIiIjKYQeHm8OHD6N27d43xJ554AkeOHGloT0REREQGMyjcyGQy3Lhxo8Z4cXExvxGciIiITMqgcBMaGoqEhASNIFNVVYWEhAT06dPHaM0RERER6cugz7lZsGABQkND0bFjR4SEhAAA9u7di5KSEuzcudOoDRIRERHpw6AzN126dMHRo0cxYsQIFBQU4MaNG4iOjsbJkyf5IX5ERERkUvycGyIiIjJ7D/xzboC7l6Feeukl9OrVC7m5uQCANWvWYN++fYaWJCIiImowg8LNxo0bERERARsbG2RkZKC8vBzA3XdLzZs3z6gNEhEREenDoHDzz3/+E8nJyVi+fDksLS3V471790ZGRobRmiMiIiLSl0HhJisrC6GhoTXGlUolrl+/3tCeiIiIiAxmULhxdXXFmTNnaozv27cPbdq00bteUlISfHx8YG1tjaCgIOzfv7/WeVevXg2ZTKYxWVtb671OIiIikiaDws348eMxbdo0/PHHH5DJZLh8+TK++uor/OMf/8Crr76qV62UlBTExcUhPj4eGRkZ8PX1RUREBAoKCmpdxt7eHleuXFFPFy9eNGQziIiISIIM+hC/mTNnQqVSoV+/figrK0NoaCgUCgVmzJiBV155Ra9aixYtwvjx4xEbGwsASE5OxtatW7Fy5UrMnDlT6zIymQyurq6GtE5EREQSZ/B3S73zzju4du0ajh07ht9//x2FhYVQKpVo3bq1znUqKipw6NAhhIeH/68hCwuEh4cjPT291uVu3rwJb29veHp6YtiwYTh+/Hit85aXl6OkpERjIiIiIunSK9yUl5dj1qxZCAgIQO/evbFt2zZ06dIFx48fR8eOHfHZZ59h+vTpOtcrKipCVVUVXFxcNMZdXFyQl5endZmOHTti5cqV+P7777F27VqoVCr06tULly5d0jp/QkIClEqlevL09NR9g4mIiOiho9dlqTlz5mDp0qUIDw/Hb7/9huHDhyM2Nha///47Fi5ciOHDh0Mulz+oXgEAwcHBCA4OVv/cq1cvdO7cGUuXLsUHH3xQY/5Zs2YhLi5O/XNJSQkDDhERkYTpFW7Wr1+P//znPxg6dCiOHTuG7t27o7KyEpmZmZDJZHqv3NHREXK5HPn5+Rrj+fn5Ot9TY2lpiccff1zru7cAQKFQQKFQ6N0bERERPZz0uix16dIl+Pv7AwC6desGhUKB6dOnGxRsAMDKygr+/v5IS0tTj6lUKqSlpWmcnalLVVUV/vzzT7i5uRnUAxEREUmLXmduqqqqYGVl9b+FmzRB06ZNG9RAXFwcYmJiEBAQgMDAQCQmJqK0tFT97qno6Gh4eHggISEBAPD+++/jiSeeQLt27XD9+nV8/PHHuHjxot7v0iIiIiJp0ivcCCEwZswY9WWe27dvY+LEibCzs9OYb9OmTTrXjIqKQmFhIebMmYO8vDz4+fkhNTVVfZNxdnY2LCz+d4Lp77//xvjx45GXl4fmzZvD398fv/32G7p06aLPphAREZFEyYQQQteZq8+m1GfVqlUGN/Sg6fOV6URERGQe9Hn91uvMjTmHFiIiIiLAwA/xIyIiIjJXDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpZhFukpKS4OPjA2trawQFBWH//v06LffNN99AJpMhMjLywTZIREREDw2Th5uUlBTExcUhPj4eGRkZ8PX1RUREBAoKCupc7sKFC3jjjTcQEhLSSJ0SERHRw8Dk4WbRokUYP348YmNj0aVLFyQnJ8PW1hYrV66sdZmqqiqMHj0a7733Htq0adOI3RIREZG5M2m4qaiowKFDhxAeHq4es7CwQHh4ONLT02td7v3334ezszPGjRtX7zrKy8tRUlKiMREREZF0mTTcFBUVoaqqCi4uLhrjLi4uyMvL07rMvn37sGLFCixfvlyndSQkJECpVKonT0/PBvdNRERE5svkl6X0cePGDbz88stYvnw5HB0ddVpm1qxZKC4uVk85OTkPuEsiIiIypSamXLmjoyPkcjny8/M1xvPz8+Hq6lpj/rNnz+LChQsYMmSIekylUgEAmjRpgqysLLRt21ZjGYVCAYVC8QC6JyIiInNk0jM3VlZW8Pf3R1pamnpMpVIhLS0NwcHBNebv1KkT/vzzTxw5ckQ9DR06FE8++SSOHDnCS05ERERk2jM3ABAXF4eYmBgEBAQgMDAQiYmJKC0tRWxsLAAgOjoaHh4eSEhIgLW1Nbp166axvIODAwDUGCciIqJHk8nDTVRUFAoLCzFnzhzk5eXBz88Pqamp6puMs7OzYWHxUN0aRERERCYkE0IIUzfRmEpKSqBUKlFcXAx7e3tTt0NEREQ60Of1m6dEiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSGG6IiIhIUhhuiIiISFIYboiIiEhSzCLcJCUlwcfHB9bW1ggKCsL+/ftrnXfTpk0ICAiAg4MD7Ozs4OfnhzVr1jRit0RERGTOTB5uUlJSEBcXh/j4eGRkZMDX1xcREREoKCjQOn+LFi3wzjvvID09HUePHkVsbCxiY2Oxffv2Ru6ciIiIzJFMCCFM2UBQUBB69uyJJUuWAABUKhU8PT0xZcoUzJw5U6caPXr0wODBg/HBBx/UO29JSQmUSiWKi4thb2/foN6JiIiocejz+m3SMzcVFRU4dOgQwsPD1WMWFhYIDw9Henp6vcsLIZCWloasrCyEhoZqnae8vBwlJSUaExEREUmXScNNUVERqqqq4OLiojHu4uKCvLy8WpcrLi5G06ZNYWVlhcGDB2Px4sV4+umntc6bkJAApVKpnjw9PY26DURERGReTH7PjSGaNWuGI0eO4MCBA/jwww8RFxeH3bt3a5131qxZKC4uVk85OTmN2ywRERE1qiamXLmjoyPkcjny8/M1xvPz8+Hq6lrrchYWFmjXrh0AwM/PDydOnEBCQgL69u1bY16FQgGFQmHUvomIiMh8mfTMjZWVFfz9/ZGWlqYeU6lUSEtLQ3BwsM51VCoVysvLH0SLRERE9JAx6ZkbAIiLi0NMTAwCAgIQGBiIxMRElJaWIjY2FgAQHR0NDw8PJCQkALh7D01AQADatm2L8vJybNu2DWvWrMEXX3xhys0gIiIiM2HycBMVFYXCwkLMmTMHeXl58PPzQ2pqqvom4+zsbFhY/O8EU2lpKV577TVcunQJNjY26NSpE9auXYuoqChTbQIRERGZEZN/zk1j4+fcEBERPXwems+5ISIiIjI2hhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFLMIN0lJSfDx8YG1tTWCgoKwf//+Wuddvnw5QkJC0Lx5czRv3hzh4eF1zk9ERESPFpOHm5SUFMTFxSE+Ph4ZGRnw9fVFREQECgoKtM6/e/dujBw5Ert27UJ6ejo8PT3Rv39/5ObmNnLnREREZI5kQghhygaCgoLQs2dPLFmyBACgUqng6emJKVOmYObMmfUuX1VVhebNm2PJkiWIjo6ud/6SkhIolUoUFxfD3t6+wf0TERHRg6fP67dJz9xUVFTg0KFDCA8PV49ZWFggPDwc6enpOtUoKyvDnTt30KJFC62/Ly8vR0lJicZERERE0mXScFNUVISqqiq4uLhojLu4uCAvL0+nGm+99Rbc3d01AtK9EhISoFQq1ZOnp2eD+yYiIiLzZfJ7bhpi/vz5+Oabb/Ddd9/B2tpa6zyzZs1CcXGxesrJyWnkLomIiKgxNTHlyh0dHSGXy5Gfn68xnp+fD1dX1zqX/eSTTzB//nz8/PPP6N69e63zKRQKKBQKo/RLRERE5s+kZ26srKzg7++PtLQ09ZhKpUJaWhqCg4NrXe6jjz7CBx98gNTUVAQEBDRGq0RERPSQMOmZGwCIi4tDTEwMAgICEBgYiMTERJSWliI2NhYAEB0dDQ8PDyQkJAAAFixYgDlz5mDdunXw8fFR35vTtGlTNG3a1GTbQURERObB5OEmKioKhYWFmDNnDvLy8uDn54fU1FT1TcbZ2dmwsPjfCaYvvvgCFRUVeOGFFzTqxMfHY+7cuY3ZOhEREZkhk3/OTWPj59wQERE9fB6az7khIiIiMjaGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUhhsiIiKSFIYbIiIikhSGGyIiIpIUk4ebpKQk+Pj4wNraGkFBQdi/f3+t8x4/fhzPP/88fHx8IJPJkJiY2HiNEhER0UPBpOEmJSUFcXFxiI+PR0ZGBnx9fREREYGCggKt85eVlaFNmzaYP38+XF1dG7lbIiIiehiYNNwsWrQI48ePR2xsLLp06YLk5GTY2tpi5cqVWufv2bMnPv74Y7z44otQKBSN3C0RERE9DEwWbioqKnDo0CGEh4f/rxkLC4SHhyM9Pd1o6ykvL0dJSYnGRERERNJlsnBTVFSEqqoquLi4aIy7uLggLy/PaOtJSEiAUqlUT56enkarTUREROaniakbeNBmzZqFuLg49c8lJSUMOEREpDchBCorK1FVVWXqViTL0tIScrm8wXVMFm4cHR0hl8uRn5+vMZ6fn2/Um4UVCgXvzyEiogapqKjAlStXUFZWZupWJE0mk6FVq1Zo2rRpg+qYLNxYWVnB398faWlpiIyMBACoVCqkpaVh8uTJpmqLiIhIg0qlwvnz5yGXy+Hu7g4rKyvIZDJTtyU5QggUFhbi0qVLaN++fYPO4Jj0slRcXBxiYmIQEBCAwMBAJCYmorS0FLGxsQCA6OhoeHh4ICEhAcDd5PzXX3+p/z83NxdHjhxB06ZN0a5dO5NtBxERSVdFRQVUKhU8PT1ha2tr6nYkzcnJCRcuXMCdO3ce3nATFRWFwsJCzJkzB3l5efDz80Nqaqr6JuPs7GxYWPzvnufLly/j8ccfV//8ySef4JNPPkFYWBh2797d2O0TEdEj5N7XI3owjHVGTCaEEEap9JAoKSmBUqlEcXEx7O3tTd0OERGZudu3b+P8+fNo3bo1rK2tTd2OpNW1r/V5/WYMJSIiogdGJpNh8+bNAIALFy5AJpPhyJEjD3SdDDdEREQSNWbMGMhkMshkMlhaWqJ169Z48803cfv2bVO39kBJ/nNuiIiIHmUDBgzAqlWrcOfOHRw6dAgxMTGQyWRYsGCBqVt7YHjmhoiISMIUCgVcXV3h6emJyMhIhIeHY8eOHQDuvs09ISEBrVu3ho2NDXx9fbFhwwaN5Y8fP45nnnkG9vb2aNasGUJCQnD27FkAwIEDB/D000/D0dERSqUSYWFhyMjIaPRtvB/P3BAREelBCGGyD/OztbVt0DuKjh07ht9++w3e3t4A7n5F0dq1a5GcnIz27dtjz549eOmll+Dk5ISwsDDk5uYiNDQUffv2xc6dO2Fvb49ff/0VlZWVAIAbN24gJiYGixcvhhACCxcuxKBBg3D69Gk0a9bMKNtsCIYbIiIiPZSVlTX4E3QNdfPmTdjZ2em1zA8//ICmTZuisrIS5eXlsLCwwJIlS1BeXo558+bh559/RnBwMACgTZs22LdvH5YuXYqwsDAkJSVBqVTim2++gaWlJQCgQ4cO6tpPPfWUxrqWLVsGBwcH/PLLL3jmmWcauLWGY7ghIiKSsCeffBJffPEFSktL8emnn6JJkyZ4/vnncfz4cZSVleHpp5/WmL+iokL9mXJHjhxBSEiIOtjcLz8/H++++y52796NgoICVFVVoaysDNnZ2Q98u+rCcENERKQHW1tb3Lx502Tr1pednZ36U/xXrlwJX19frFixAt26dQMAbN26FR4eHhrLVH8no42NTZ21Y2JicPXqVXz22Wfw9vaGQqFAcHAwKioq9O7TmBhuiIiI9CCTyfS+NGQuLCws8PbbbyMuLg6nTp2CQqFAdnY2wsLCtM7fvXt3fPnll7hz547Wsze//vorPv/8cwwaNAgAkJOTg6Kioge6Dbrgu6WIiIgeIcOHD4dcLsfSpUvxxhtvYPr06fjyyy9x9uxZZGRkYPHixfjyyy8BAJMnT0ZJSQlefPFFHDx4EKdPn8aaNWuQlZUFAGjfvj3WrFmDEydO4I8//sDo0aPrPdvTGHjmhoiI6BHSpEkTTJ48GR999BHOnz8PJycnJCQk4Ny5c3BwcECPHj3w9ttvAwBatmyJnTt3YsaMGQgLC4NcLoefnx969+4NAFixYgUmTJiAHj16wNPTE/PmzcMbb7xhys0DwO+WMnU7RERk5vjdUo2H3y1FREREpAXDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0REZEOHrE3F5uEsfYxww0REVEdqj+Z11TfBP4oqf7aBrlc3qA6/BA/IiKiOsjlcjg4OKCgoADA3e93kslkJu5KelQqFQoLC2Fra4smTRoWTxhuiIiI6uHq6goA6oBDD4aFhQW8vLwaHB4ZboiIiOohk8ng5uYGZ2dn3Llzx9TtSJaVlRUsLBp+x4xZhJukpCR8/PHHyMvLg6+vLxYvXozAwMBa51+/fj1mz56NCxcuoH379liwYIH6G0mJiIgeFLlc3uD7QejBM/kNxSkpKYiLi0N8fDwyMjLg6+uLiIiIWk/9/fbbbxg5ciTGjRuHw4cPIzIyEpGRkTh27Fgjd05ERETmyORfnBkUFISePXtiyZIlAO7eUOTp6YkpU6Zg5syZNeaPiopCaWkpfvjhB/XYE088AT8/PyQnJ9e7Pn5xJhER0cPnofnizIqKChw6dAjh4eHqMQsLC4SHhyM9PV3rMunp6RrzA0BERESt8xMREdGjxaT33BQVFaGqqgouLi4a4y4uLjh58qTWZfLy8rTOn5eXp3X+8vJylJeXq38uLi4GcDcBEhER0cOh+nVblwtOZnFD8YOUkJCA9957r8a4p6enCbohIiKihrhx4waUSmWd85g03Dg6OkIulyM/P19jPD8/X/2ZAvdzdXXVa/5Zs2YhLi5O/bNKpcK1a9fQsmVLo38IU0lJCTw9PZGTk9Pg+3mMVcsce3oUapljT+Zayxx7ehRqmWNPj0Itc+zJnGvdSwiBGzduwN3dvd55TRpurKys4O/vj7S0NERGRgK4Gz7S0tIwefJkrcsEBwcjLS0Nr7/+unpsx44dCA4O1jq/QqGAQqHQGHNwcDBG+7Wyt7c32h/UWLXMsadHoZY59mSutcyxp0ehljn29CjUMseezLlWtfrO2FQz+WWpuLg4xMTEICAgAIGBgUhMTERpaSliY2MBANHR0fDw8EBCQgIAYNq0aQgLC8PChQsxePBgfPPNNzh48CCWLVtmys0gIiIiM2HycBMVFYXCwkLMmTMHeXl58PPzQ2pqqvqm4ezsbI1PK+zVqxfWrVuHd999F2+//Tbat2+PzZs3o1u3bqbaBCIiIjIjJg83ADB58uRaL0Pt3r27xtjw4cMxfPjwB9yV/hQKBeLj42tcBjNlLXPs6VGoZY49mWstc+zpUahljj09CrXMsSdzrmUok3+IHxEREZExmfzrF4iIiIiMieGGiIiIJIXhhoiIiCSF4YaIiIgkheHGCPbs2YMhQ4bA3d0dMpkMmzdvNqhOQkICevbsiWbNmsHZ2RmRkZHIysoyqNYXX3yB7t27qz9EKTg4GD/++KNBte41f/58yGQyjQ9R1MfcuXMhk8k0pk6dOhlUKzc3Fy+99BJatmwJGxsbPPbYYzh48KDedXx8fGr0JJPJMGnSJL1rVVVVYfbs2WjdujVsbGzQtm1bfPDBBzp9F4o2N27cwOuvvw5vb2/Y2NigV69eOHDgQL3L1XdMCiEwZ84cuLm5wcbGBuHh4Th9+rTedTZt2oT+/furP/H7yJEjBvV0584dvPXWW3jsscdgZ2cHd3d3REdH4/LlywZt39y5c9GpUyfY2dmhefPmCA8Pxx9//GFQrXtNnDgRMpkMiYmJBtUaM2ZMjeNswIABBvV04sQJDB06FEqlEnZ2dujZsyeys7P1rqXt2JfJZPj444/1rnXz5k1MnjwZrVq1go2NDbp06YLk5GSD9lV+fj7GjBkDd3d32NraYsCAAVqPUV2eN2/fvo1JkyahZcuWaNq0KZ5//vkan3Sva61ly5ahb9++sLe3h0wmw/Xr17VuX321rl27hilTpqBjx46wsbGBl5cXpk6dqv7+Q316+r//+z+0bdsWNjY2cHJywrBhw7R+P6M+rzFCCAwcOLDW40+XWn379q1xXE2cOFHr+oyN4cYISktL4evri6SkpAbV+eWXXzBp0iT8/vvv2LFjB+7cuYP+/fujtLRU71qtWrXC/PnzcejQIRw8eBBPPfUUhg0bhuPHjxvc34EDB7B06VJ0797d4BoA0LVrV1y5ckU97du3T+8af//9N3r37g1LS0v8+OOP+Ouvv7Bw4UI0b95c71oHDhzQ6GfHjh0AYNDHDSxYsABffPEFlixZghMnTmDBggX46KOPsHjxYr1rAcArr7yCHTt2YM2aNfjzzz/Rv39/hIeHIzc3t87l6jsmP/roI/zrX/9CcnIy/vjjD9jZ2SEiIgK3b9/Wq05paSn69OmDBQsW1LstddUqKytDRkYGZs+ejYyMDGzatAlZWVkYOnSoQdvXoUMHLFmyBH/++Sf27dsHHx8f9O/fH4WFhXrXqvbdd9/h999/r/Oj33WpNWDAAI3j7euvv9a7ztmzZ9GnTx906tQJu3fvxtGjRzF79mxYW1vrXeveXq5cuYKVK1dCJpPh+eef17tWXFwcUlNTsXbtWpw4cQKvv/46Jk+ejC1btuhVSwiByMhInDt3Dt9//z0OHz4Mb29vhIeH13g+1OV5c/r06fjvf/+L9evX45dffsHly5fx3HPP1VivLrXKysowYMAAvP3221r3ga61Ll++jMuXL+OTTz7BsWPHsHr1aqSmpmLcuHF69+Tv749Vq1bhxIkT2L59O4QQ6N+/P6qqqvSuVS0xMbHOryjStdb48eM1jq+PPvqozv1mNIKMCoD47rvvjFKroKBAABC//PKLUeo1b95c/Pvf/zZo2Rs3boj27duLHTt2iLCwMDFt2jSD6sTHxwtfX1+Dlr3XW2+9Jfr06dPgOtpMmzZNtG3bVqhUKr2XHTx4sBg7dqzG2HPPPSdGjx6td62ysjIhl8vFDz/8oDHeo0cP8c477+hc5/5jUqVSCVdXV/Hxxx+rx65fvy4UCoX4+uuvda5zr/PnzwsA4vDhwwb1pM3+/fsFAHHx4sUG1youLhYAxM8//2xQrUuXLgkPDw9x7Ngx4e3tLT799NM669RWKyYmRgwbNqzeZeurExUVJV566SW96tRW637Dhg0TTz31lEG1unbtKt5//32NMV2O1/trZWVlCQDi2LFj6rGqqirh5OQkli9fXmet+583r1+/LiwtLcX69evV85w4cUIAEOnp6XrVuteuXbsEAPH333/XWUOXWtW+/fZbYWVlJe7cudOgOpmZmQKAOHPmjEE9HT58WHh4eIgrV67o/JqmrVZDXisaimduzFj16ckWLVo0qE5VVRW++eYblJaW1vodXPWZNGkSBg8ejPDw8Ab1AgCnT5+Gu7s72rRpg9GjR2s9lV6fLVu2ICAgAMOHD4ezszMef/xxLF++vMG9VVRUYO3atRg7dqxBX6zaq1cvpKWl4dSpUwCAzMxM7Nu3DwMHDtS7VmVlJaqqqmr8a9zGxsags13Vzp8/j7y8PI2/pVKpRFBQENLT0w2ua2zFxcWQyWQN/i64iooKLFu2DEqlEr6+vnovr1Kp8PLLL2PGjBno2rVrg3oB7n4wqbOzMzp27IhXX30VV69e1bufrVu3okOHDoiIiICzszOCgoIMvhx+r/z8fGzdurXG2QNd9erVC1u2bEFubi6EENi1axdOnTqF/v3761WnvLwcADSOfQsLCygUinqP/fufNw8dOoQ7d+5oHO+dOnWCl5dXvce7sZ6Dda1VXFwMe3t7NGlS++fr1lentLQUq1atQuvWreHp6al3T2VlZRg1ahSSkpJq/UJqffr66quv4OjoiG7dumHWrFkoKyvTuWaDmCRSSRiMdOamqqpKDB48WPTu3dvgGkePHhV2dnZCLpcLpVIptm7dalCdr7/+WnTr1k3cunVLCNGwNL5t2zbx7bffiszMTJGamiqCg4OFl5eXKCkp0auOQqEQCoVCzJo1S2RkZIilS5cKa2trsXr1aoP6qpaSkiLkcrnIzc01aPmqqirx1ltvCZlMJpo0aSJkMpmYN2+ewf0EBweLsLAwkZubKyorK8WaNWuEhYWF6NChg8417j8mf/31VwFAXL58WWO+4cOHixEjRuhc517GPnNz69Yt0aNHDzFq1CiDa/33v/8VdnZ2QiaTCXd3d7F//36Das2bN088/fTT6jN5DTlz8/XXX4vvv/9eHD16VHz33Xeic+fOomfPnqKyslLnOtX/mra1tRWLFi0Shw8fFgkJCUImk4ndu3fr3dO9FixYIJo3b65+rOtb6/bt2yI6OloAEE2aNBFWVlbiyy+/1LtWRUWF8PLyEsOHDxfXrl0T5eXlYv78+QKA6N+/f611tD1vfvXVV8LKyqrGvD179hRvvvmmXrXupc+ZG12ezwsLC4WXl5d4++23DaqTlJQk7OzsBADRsWPHes/a1FZrwoQJYty4ceqfdXlNq63W0qVLRWpqqjh69KhYu3at8PDwEM8++2ydtYyF4cbIjBVuJk6cKLy9vUVOTo7BNcrLy8Xp06fFwYMHxcyZM4Wjo6M4fvy4XjWys7OFs7OzyMzMVI8Z81Tj33//Lezt7fW+XGZpaSmCg4M1xqZMmSKeeOKJBvXTv39/8cwzzxi8/Ndffy1atWolvv76a3H06FHxn//8R7Ro0cLg0HXmzBkRGhoqAAi5XC569uwpRo8eLTp16qRzjYct3FRUVIghQ4aIxx9/XBQXFxtc6+bNm+L06dMiPT1djB07Vvj4+Ij8/Hy9ah08eFC4uLhohN2GhJv7nT17tt7LZffXyc3NFQDEyJEjNeYbMmSIePHFFxvUU8eOHcXkyZPrrFFXrY8//lh06NBBbNmyRWRmZorFixeLpk2bih07duhd6+DBg8LX11d97EdERIiBAweKAQMG1FpH2/OmoeGmvudgfcJNfbWKi4tFYGCgGDBggKioqDCozvXr18WpU6fEL7/8IoYMGSJ69OhRZ0jVVuv7778X7dq1Ezdu3FCP6XIc6/p6lZaWptPlMmNguDEyY4SbSZMmiVatWolz584Zp6n/r1+/fmLChAl6LfPdd9+pn1yqJwBCJpMJuVxe5784dRUQECBmzpyp1zJeXl4a/7oQQojPP/9cuLu7G9zHhQsXhIWFhdi8ebPBNVq1aiWWLFmiMfbBBx+Ijh07GlxTiLsv1NVhZMSIEWLQoEE6L3v/MVn9gnp/EAkNDRVTp07Vuc69jBVuKioqRGRkpOjevbsoKipqUK37tWvXrt6zaPfX+vTTT9XH+r3Hv4WFhfD29jZKX46OjiI5OVnnOuXl5aJJkybigw8+0JjvzTffFL169TK4pz179ggA4siRI/X2rK1WWVmZsLS0rHGP2Lhx40RERITBfV2/fl0UFBQIIYQIDAwUr732mtb5anverH5BvT+EeHl5iUWLFulV6166hpv6apWUlIjg4GDRr1+/OsOIPq8L5eXlwtbWVqxbt06vWtOmTav1eA8LC2twXzdv3hQARGpqar3zNhTvuTEjQghMnjwZ3333HXbu3InWrVsbtb5KpVJfy9ZVv3798Oeff+LIkSPqKSAgAKNHj8aRI0cgl8sb1NPNmzdx9uxZuLm56bVc7969a7zt8NSpU/D29ja4l1WrVsHZ2RmDBw82uEZZWZnGt9gDgFwuh0qlMrgmANjZ2cHNzQ1///03tm/fjmHDhhlcq3Xr1nB1dUVaWpp6rKSkBH/88YfB92QZw507dzBixAicPn0aP//8M1q2bGnU+oYc/y+//DKOHj2qcfy7u7tjxowZ2L59e4N7unTpEq5evarX8W9lZYWePXsa/fhfsWIF/P39DbovCbj797tz547Rj3+lUgknJyecPn0aBw8erHHs1/e86e/vD0tLS43jPSsrC9nZ2TWOd2M+B+tSq6SkBP3794eVlRW2bNmi9d1uhvQk7p64qHG811dr5syZNY53APj000+xatWqBvdVXU/f53tDmMW3gj/sbt68iTNnzqh/Pn/+PI4cOYIWLVrAy8tL5zqTJk3CunXr8P3336NZs2bIy8sDcPfBbWNjo1dPs2bNwsCBA+Hl5YUbN25g3bp12L17t95PyM2aNUO3bt00xuzs7NCyZcsa47p44403MGTIEHh7e+Py5cuIj4+HXC7HyJEj9aozffp09OrVC/PmzcOIESOwf/9+LFu2DMuWLdO7J+DuC9+qVasQExNT58189RkyZAg+/PBDeHl5oWvXrjh8+DAWLVqEsWPHGlSv+m2dHTt2xJkzZzBjxgx06tQJsbGxdS5X3zH5+uuv45///Cfat2+P1q1bY/bs2XB3d0dkZKReda5du4bs7Gz159FUv+C6urrWuBmxrlpubm544YUXkJGRgR9++AFVVVXq479FixawsrLSuVbLli3x4YcfYujQoXBzc0NRURGSkpKQm5ur9e399W3j/SHL0tISrq6u6Nixo161WrRogffeew/PP/88XF1dcfbsWbz55pto164dIiIi9OppxowZiIqKQmhoKJ588kmkpqbiv//9L3bv3q339gF3X2TXr1+PhQsX1lhen1phYWGYMWMGbGxs4O3tjV9++QX/+c9/sGjRIr1rrV+/Hk5OTvDy8sKff/6JadOmITIyssbNyfU9byqVSowbNw5xcXFo0aIF7O3tMWXKFAQHB+OJJ57QqxYA5OXlIS8vT937n3/+iWbNmsHLy0vjZtr6alUHm7KyMqxduxYlJSUoKSkBADg5Oan/4VhfnXPnziElJQX9+/eHk5MTLl26hPnz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","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\n","x = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19', '20','21','22','23','24','25']\n","y = [0.99, 0.99,0.99, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99]\n","width = 1.5\n","fig, ax = plt.subplots()\n","# plot line chart\n","ax.plot(x, y,color='black', label='Recall')\n","ax.set_ylim(0, max(y)+0.1)# set the y-axis limit to a multiple of 0.1\n","plt.yticks([i/10 for i in range(11)]) # set yticks with step of 0.1\n","plt.scatter(x, y,color= 'black')\n","ax.set_xlabel('Queries')\n","ax.set_ylabel('Recall')\n","ax.set_title('Recall with double word queries')\n","ax.legend(loc='lower right')\n","# display the plot\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"cH5nEKCbk_rv"},"source":["**# precision line graph for sentence based queries**"]},{"cell_type":"code","execution_count":87,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"executionInfo":{"elapsed":478,"status":"ok","timestamp":1702930571570,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"Qd36Rn7VkRvp","outputId":"8bb2a5a0-e5e3-4fc7-971b-4b49acbe36b5"},"outputs":[{"data":{"image/png":"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Cly/fh22trZP9GvpiYiISH+EELh79y48PDzK/Rbh4566cHP9+nV4eXkZug0iIiLSQVpaGurXr1/pmKcu3Nja2gJ4uHHKfsaeiIiIjFteXh68vLyU7+OVeerCTdmpKDs7O4YbIiKiWkaTS0p4QTERERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSYpBw80ff/yBPn36wMPDAzKZDJs2bapynuTkZLRt2xZyuRx+fn5YsWLFE++TiIiIag+DhpuCggL4+/tj4cKFGo2/fPkyevfujeeffx7Hjh3DpEmTMHr0aOzYseMJd0pERES1RR1DLrxnz57o2bOnxuOXLFmCBg0aYO7cuQCA5s2bY9++ffjyyy8RHh7+pNokIiKiWsSg4UZbKSkpCA0NVZkWHh6OSZMmGaahRylKgey9wL0bgKU74NwZMDE1bC199mSspL7dpV7LGHt6GmoZ62uDMW4rfdbidq8xtSrcZGRkwNXVVWWaq6sr8vLycO/ePVhaWpabp6ioCEVFRcq/8/Ly9N9Y2gbg8ESg8Nq/06zqA4FfAV4vG6aWPnsyVlLf7lKvZYw9PQ21jPW1wRi3lT5rcbvrp18NSf7TUnFxcbC3t1fevLy89LuAtA3A3ldUH0wAKEx/OD1tQ83X0mdPxkrq213qtYyxp6ehlrG+NhjjttJnLW73Gl9HmRBC1OgSKyCTybBx40b069evwjFdunRB27ZtER8fr5y2fPlyTJo0Cbm5uWrnUXfkxsvLC7m5ubCzs6te04pSYItv+QfzUZb1gT4Xqz4spygFfmkI3EuvXq0q68geJumXLmt3qNCYDlvWyu1ugJ6MtZYx9vQ01DLW1wZjfD7rsxa3O3Rex8fk5eXB3t5eo/fvWhVu3n//fWzbtg0nT55UThs6dChu376NxMREjZajzcapUmYykPR89WoYSsefAO9XAJms6rHGdNjyfjZw+Qfg6DvaLZeINNNxLeA9qGZeG0ryHz6fD0Xr3q9U1ORrckkecOm/wOEJuveri+67Adfn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","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\n","x = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19', '20','21','22','23','24','25']\n","y = [0.99, 0.99,0.99, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99]\n","width = 1.5\n","fig, ax = plt.subplots()\n","# plot line chart\n","ax.plot(x, y,color='orange', label='Precision')\n","ax.set_ylim(0, max(y)+0.1)# set the y-axis limit to a multiple of 0.1\n","plt.yticks([i/10 for i in range(11)]) # set yticks with step of 0.1\n","plt.scatter(x, y,color= 'orange')\n","ax.set_xlabel('Queries')\n","ax.set_ylabel('Precision')\n","ax.set_title('Precision with sentence based queries')\n","ax.legend(loc='lower right')\n","# display the plot\n","plt.show()"]},{"cell_type":"markdown","metadata":{"id":"11FRVnAplOIq"},"source":["**# recall line graph for sentence based queries**"]},{"cell_type":"code","execution_count":88,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"executionInfo":{"elapsed":1108,"status":"ok","timestamp":1702930619609,"user":{"displayName":"Khubaib Ahmad","userId":"13992953376961780846"},"user_tz":-300},"id":"Zyc0hAb4kNXC","outputId":"825c5a1f-377d-47d1-804d-cb3d2562d068"},"outputs":[{"data":{"image/png":"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sBrnVSqVsLe313oQERGRdDUx5cpjY2MRHR2NwMBABAUFITExESUlJYiJiQEAjB49Gh4eHkhISAAA/PXXX8jJyYG/vz9ycnIwZ84cqNVqzJgxw5SbQURERGbEpOEmKioKBQUFmD17NnJzc+Hv74+UlBTNTcbZ2dla99PcvHkTb775Jk6fPo2mTZti8ODBWLVqFRwdHU20BURERGRuTPo5N6bAz7khIiJqfBrF59wQERER3QsMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpJg83SUlJ8PHxgZWVFYKDg7Fnz55a509MTESHDh1gbW0NT09PTJs2DTdv3mygbomIiMjcmTTcrF27FrGxsYiPj0dGRgb8/PwQERGB/Pz8audfs2YNZs6cifj4eBw7dgzLli3D2rVr8frrrzdw50RERGSuTBpuFi5ciPHjxyMmJgadO3dGcnIybGxssHz58mrn/+OPP9CzZ08888wz8PHxwYABA/D000/XOdpDRERE9w+ThZvy8nKkp6cjPDz832YsLBAeHo60tLRql+nRowfS09M1Yeb06dPYunUrBg8eXON6ysrKUFxcrPUgIiIi6WpiqhUXFhZCpVLB1dVVa7qrqyuOHz9e7TLPPPMMCgsL0atXLwghUFFRgYkTJ9Z6WSohIQFvvfWWUXsnIiIi82XyG4r1sWPHDsybNw//+9//kJGRgQ0bNmDLli2YO3dujcvExcWhqKhI8zh//nwDdkxEREQNzWQjN05OTpDL5cjLy9OanpeXBzc3t2qXmTVrFp577jmMGzcOANC1a1eUlJTghRdewBtvvAELi6pZTalUQqlUGn8DiIiIyCyZbORGoVAgICAAqampmmlqtRqpqakICQmpdpnS0tIqAUYulwMAhBD3rlkiIiJqNEw2cgMAsbGxiI6ORmBgIIKCgpCYmIiSkhLExMQAAEaPHg0PDw8kJCQAAIYOHYqFCxfioYceQnBwME6ePIlZs2Zh6NChmpBDRERE9zeThpuoqCgUFBRg9uzZyM3Nhb+/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/O9//8O0adO07rvJzc3Fl19+iUmTJgG4HVAuXbqkeT4rKwulpaWan7t164a1a9fCxcUF9vb2BvfUrVs35ObmokmTJvDx8alxPl9fX/j6+mLatGl4+umnsWLFCoYbIjPGG4qJqMEsXrwYZWVliIiIwM6dO3H+/HmkpKSgf//+8PX1xezZswEAjzzyCBYvXoz9+/dj3759mDhxotZNvKNGjYKTkxOGDRuGXbt24cyZM9ixYwdefvllXLhwQed+wsPDERISgsjISPz00084e/Ys/vjjD7zxxhvYt28fbty4gcmTJ2PHjh04d+4cfv/9d+zdu7fG+4aIyDww3BBRg2nfvj327t2LNm3aYOTIkfD29sagQYPg6+ureccTACxYsACenp7o3bs3nnnmGbz66qtan01jY2ODnTt3wsvLC0888QQ6deqE559/Hjdv3tRrJEcmk2Hr1q0IDQ1FTEwMfH198dRTT+HcuXNwdXWFXC7HP//8g9GjR8PX1xcjR47EoEGD8NZbbxl93xCR8ciELu+7JCK6R+Lj47Fw4UJs374dDz/8sKnbISIJYLghIpNbsWIFioqK8PLLL8PCggPKRFQ/DDdEREQkKfwnEhEREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERScr/AZ7k0DFypEe5AAAAAElFTkSuQmCC","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\n","x = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19', '20','21','22','23','24','25']\n","y = [0.99, 0.99,0.99, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99, 0.99, 0.99, 0.98, 0.99, 0.99]\n","width = 1.5\n","fig, ax = plt.subplots()\n","# plot line chart\n","ax.plot(x, y,color='brown', label='Recall')\n","ax.set_ylim(0, max(y)+0.1)# set the y-axis limit to a multiple of 0.1\n","plt.yticks([i/10 for i in range(11)]) # set yticks with step of 0.1\n","plt.scatter(x, y,color= 'brown')\n","ax.set_xlabel('Queries')\n","ax.set_ylabel('Recall')\n","ax.set_title('Recall with sentence based queries')\n","ax.legend(loc='lower right')\n","# display the plot\n","plt.show()"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]}],"metadata":{"colab":{"authorship_tag":"ABX9TyM032Jk9WAvN1DDtbUH4KNg","provenance":[]},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.11.4"}},"nbformat":4,"nbformat_minor":0}