{ "cells": [ { "cell_type": "code", "execution_count": 7, "id": "923ea0e9", "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'gensim'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [7]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;66;03m# from urduhack.tokenization import sentence_tokenizer\u001b[39;00m\n\u001b[1;32m 13\u001b[0m warnings\u001b[38;5;241m.\u001b[39mfilterwarnings(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mignore\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 14\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mgensim\u001b[39;00m\n\u001b[1;32m 15\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mgensim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodels\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m word2vec\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mtf\u001b[39;00m\n", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'gensim'" ] } ], "source": [ "import numpy as np \n", "import pandas as pd\n", "import nltk\n", "import matplotlib.pyplot as plt\n", "import re\n", "from sklearn.feature_extraction.text import CountVectorizer\n", "from sklearn.feature_extraction import text\n", "import spacy \n", "from string import punctuation\n", "from spacy.lang.ur.stop_words import STOP_WORDS\n", "import warnings\n", "# from urduhack.tokenization import sentence_tokenizer\n", "warnings.filterwarnings(\"ignore\")\n", "import gensim\n", "from gensim.models import word2vec\n", "import tensorflow as tf\n", "import tensorflow.compat.v1 as tf1\n", "tf1.disable_v2_behavior()\n", "from tensorflow.python.layers.core import Dense\n", "from tensorflow.python.ops.rnn_cell_impl import _zero_state_tensors\n", "import re\n", "from nltk.corpus import stopwords\n", "import time\n", "print('TensorFlow Version: {}'.format(tf.__version__))\n", "import csv" ] }, { "cell_type": "code", "execution_count": 2, "id": "1713e680", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting nltk\n", " Downloading nltk-3.7-py3-none-any.whl (1.5 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.5/1.5 MB\u001b[0m \u001b[31m503.5 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: joblib in /home/gaditek/.local/lib/python3.8/site-packages (from nltk) (1.1.0)\n", "Collecting regex>=2021.8.3\n", " Downloading regex-2022.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (764 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m764.9/764.9 KB\u001b[0m \u001b[31m163.4 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: click in /usr/lib/python3/dist-packages (from nltk) (7.0)\n", "Collecting tqdm\n", " Downloading tqdm-4.64.0-py2.py3-none-any.whl (78 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m78.4/78.4 KB\u001b[0m \u001b[31m73.4 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m31m66.9 kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hInstalling collected packages: tqdm, regex, nltk\n", "Successfully installed nltk-3.7 regex-2022.6.2 tqdm-4.64.0\n", "\u001b[33mWARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.\n", "You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.\u001b[0m\u001b[33m\n", "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install nltk" ] }, { "cell_type": "code", "execution_count": 5, "id": "02ef603d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting spacy\n", " Downloading spacy-3.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.5/6.5 MB\u001b[0m \u001b[31m105.0 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:02\u001b[0m\n", "\u001b[?25hRequirement already satisfied: numpy>=1.15.0 in /home/gaditek/.local/lib/python3.8/site-packages (from spacy) (1.22.3)\n", "Collecting cymem<2.1.0,>=2.0.2\n", " Downloading cymem-2.0.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36 kB)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /home/gaditek/.local/lib/python3.8/site-packages (from spacy) (4.64.0)\n", "Requirement already satisfied: jinja2 in /home/gaditek/.local/lib/python3.8/site-packages (from spacy) (3.1.1)\n", "Collecting langcodes<4.0.0,>=3.2.0\n", " Downloading langcodes-3.3.0-py3-none-any.whl (181 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m181.6/181.6 KB\u001b[0m \u001b[31m204.0 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:01\u001b[0m\n", "\u001b[?25hCollecting wasabi<1.1.0,>=0.9.1\n", " Downloading wasabi-0.9.1-py3-none-any.whl (26 kB)\n", "Collecting preshed<3.1.0,>=3.0.2\n", " Downloading preshed-3.0.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m130.1/130.1 KB\u001b[0m \u001b[31m106.3 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:01\u001b[0m\n", "\u001b[?25hCollecting pydantic!=1.8,!=1.8.1,<1.9.0,>=1.7.4\n", " Downloading pydantic-1.8.2-cp38-cp38-manylinux2014_x86_64.whl (13.7 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.7/13.7 MB\u001b[0m \u001b[31m166.4 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:03\u001b[0m\n", "\u001b[?25hCollecting blis<0.8.0,>=0.4.0\n", " Downloading blis-0.7.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.9/9.9 MB\u001b[0m \u001b[31m149.2 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:02\u001b[0m\n", "\u001b[?25hCollecting spacy-legacy<3.1.0,>=3.0.9\n", " Downloading spacy_legacy-3.0.9-py2.py3-none-any.whl (20 kB)\n", "Collecting typer<0.5.0,>=0.3.0\n", " Downloading typer-0.4.1-py3-none-any.whl (27 kB)\n", "Collecting murmurhash<1.1.0,>=0.28.0\n", " Downloading murmurhash-1.0.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21 kB)\n", "Collecting pathy>=0.3.5\n", " Downloading pathy-0.6.1-py3-none-any.whl (42 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m42.8/42.8 KB\u001b[0m \u001b[31m154.6 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m1m103.5 kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting spacy-loggers<2.0.0,>=1.0.0\n", " Downloading spacy_loggers-1.0.2-py3-none-any.whl (7.2 kB)\n", "Collecting srsly<3.0.0,>=2.4.3\n", " Downloading srsly-2.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m459.7/459.7 KB\u001b[0m \u001b[31m67.7 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from spacy) (45.2.0)\n", "Collecting thinc<8.1.0,>=8.0.14\n", " Downloading thinc-8.0.17-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (671 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m671.1/671.1 KB\u001b[0m \u001b[31m91.0 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting catalogue<2.1.0,>=2.0.6\n", " Downloading catalogue-2.0.7-py3-none-any.whl (17 kB)\n", "Requirement already satisfied: packaging>=20.0 in /home/gaditek/.local/lib/python3.8/site-packages (from spacy) (21.3)\n", "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/lib/python3/dist-packages (from spacy) (2.22.0)\n", "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /home/gaditek/.local/lib/python3.8/site-packages (from packaging>=20.0->spacy) (3.0.8)\n", "Collecting smart-open<6.0.0,>=5.0.0\n", " Downloading smart_open-5.2.1-py3-none-any.whl (58 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.6/58.6 KB\u001b[0m \u001b[31m240.7 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting typing-extensions>=3.7.4.3\n", " Downloading typing_extensions-4.2.0-py3-none-any.whl (24 kB)\n", "Collecting click<9.0.0,>=7.1.1\n", " Downloading click-8.1.3-py3-none-any.whl (96 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m96.6/96.6 KB\u001b[0m \u001b[31m175.1 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: MarkupSafe>=2.0 in /home/gaditek/.local/lib/python3.8/site-packages (from jinja2->spacy) (2.1.1)\n", "Installing collected packages: wasabi, murmurhash, cymem, typing-extensions, spacy-loggers, spacy-legacy, smart-open, preshed, langcodes, click, catalogue, blis, typer, srsly, pydantic, thinc, pathy, spacy\n", "Successfully installed blis-0.7.7 catalogue-2.0.7 click-8.1.3 cymem-2.0.6 langcodes-3.3.0 murmurhash-1.0.7 pathy-0.6.1 preshed-3.0.6 pydantic-1.8.2 smart-open-5.2.1 spacy-3.3.1 spacy-legacy-3.0.9 spacy-loggers-1.0.2 srsly-2.4.3 thinc-8.0.17 typer-0.4.1 typing-extensions-4.2.0 wasabi-0.9.1\n", "\u001b[33mWARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.\n", "You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.\u001b[0m\u001b[33m\n", "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install spacy" ] }, { "cell_type": "code", "execution_count": null, "id": "e578b83d", "metadata": {}, "outputs": [], "source": [ "pip install urduhack" ] }, { "cell_type": "code", "execution_count": 18, "id": "f106f914", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting spacy\n", " Downloading spacy-3.3.1-cp39-cp39-win_amd64.whl (11.7 MB)\n", " -------------------------------------- 11.7/11.7 MB 108.2 kB/s eta 0:00:00\n", "Collecting spacy-legacy<3.1.0,>=3.0.9\n", " Downloading spacy_legacy-3.0.9-py2.py3-none-any.whl (20 kB)\n", "Requirement already satisfied: numpy>=1.15.0 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from spacy) (1.20.3)\n", "Collecting blis<0.8.0,>=0.4.0\n", " Downloading blis-0.7.7-cp39-cp39-win_amd64.whl (6.6 MB)\n", " ---------------------------------------- 6.6/6.6 MB 128.2 kB/s eta 0:00:00\n", "Requirement already satisfied: jinja2 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from spacy) (2.11.3)\n", "Collecting langcodes<4.0.0,>=3.2.0\n", " Downloading langcodes-3.3.0-py3-none-any.whl (181 kB)\n", " ------------------------------------ 181.6/181.6 KB 150.2 kB/s eta 0:00:00\n", "Requirement already satisfied: setuptools in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from spacy) (58.0.4)\n", "Collecting preshed<3.1.0,>=3.0.2\n", " Downloading preshed-3.0.6-cp39-cp39-win_amd64.whl (112 kB)\n", " ------------------------------------ 112.4/112.4 KB 102.2 kB/s eta 0:00:00\n", "Collecting cymem<2.1.0,>=2.0.2\n", " Downloading cymem-2.0.6-cp39-cp39-win_amd64.whl (36 kB)\n", "Collecting catalogue<2.1.0,>=2.0.6\n", " Downloading catalogue-2.0.7-py3-none-any.whl (17 kB)\n", "Collecting wasabi<1.1.0,>=0.9.1\n", " Downloading wasabi-0.9.1-py3-none-any.whl (26 kB)\n", "Collecting pydantic!=1.8,!=1.8.1,<1.9.0,>=1.7.4\n", " Downloading pydantic-1.8.2-cp39-cp39-win_amd64.whl (1.9 MB)\n", " ---------------------------------------- 1.9/1.9 MB 117.9 kB/s eta 0:00:00\n", "Collecting srsly<3.0.0,>=2.4.3\n", " Downloading srsly-2.4.3-cp39-cp39-win_amd64.whl (448 kB)\n", " ------------------------------------ 448.4/448.4 KB 126.9 kB/s eta 0:00:00\n", "Collecting typer<0.5.0,>=0.3.0\n", " Downloading typer-0.4.1-py3-none-any.whl (27 kB)\n", "Collecting spacy-loggers<2.0.0,>=1.0.0\n", " Downloading spacy_loggers-1.0.2-py3-none-any.whl (7.2 kB)\n", "Requirement already satisfied: packaging>=20.0 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from spacy) (21.0)\n", "Collecting murmurhash<1.1.0,>=0.28.0\n", " Downloading murmurhash-1.0.7-cp39-cp39-win_amd64.whl (18 kB)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from spacy) (4.62.3)\n", "Collecting pathy>=0.3.5\n", " Downloading pathy-0.6.1-py3-none-any.whl (42 kB)\n", " -------------------------------------- 42.8/42.8 KB 260.6 kB/s eta 0:00:00\n", "Collecting thinc<8.1.0,>=8.0.14\n", " Downloading thinc-8.0.17-cp39-cp39-win_amd64.whl (1.0 MB)\n", " ---------------------------------------- 1.0/1.0 MB 281.0 kB/s eta 0:00:00\n", "Requirement already satisfied: requests<3.0.0,>=2.13.0 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from spacy) (2.26.0)\n", "Requirement already satisfied: pyparsing>=2.0.2 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from packaging>=20.0->spacy) (2.4.7)\n", "Collecting smart-open<6.0.0,>=5.0.0\n", " Downloading smart_open-5.2.1-py3-none-any.whl (58 kB)\n", " -------------------------------------- 58.6/58.6 KB 205.9 kB/s eta 0:00:00\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from pydantic!=1.8,!=1.8.1,<1.9.0,>=1.7.4->spacy) (3.10.0.2)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (2021.10.8)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (2.0.4)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (1.26.7)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from requests<3.0.0,>=2.13.0->spacy) (3.2)\n", "Requirement already satisfied: colorama in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from tqdm<5.0.0,>=4.38.0->spacy) (0.4.4)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from typer<0.5.0,>=0.3.0->spacy) (8.0.3)\n", "Requirement already satisfied: MarkupSafe>=0.23 in c:\\users\\syeda nimrah\\anaconda3\\lib\\site-packages (from jinja2->spacy) (1.1.1)\n", "Installing collected packages: wasabi, murmurhash, cymem, spacy-loggers, spacy-legacy, smart-open, pydantic, preshed, langcodes, catalogue, blis, typer, srsly, thinc, pathy, spacy\n", "Successfully installed blis-0.7.7 catalogue-2.0.7 cymem-2.0.6 langcodes-3.3.0 murmurhash-1.0.7 pathy-0.6.1 preshed-3.0.6 pydantic-1.8.2 smart-open-5.2.1 spacy-3.3.1 spacy-legacy-3.0.9 spacy-loggers-1.0.2 srsly-2.4.3 thinc-8.0.17 typer-0.4.1 wasabi-0.9.1\n", "Note: you may need to restart the kernel to use updated packages.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError(\"HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)\")': /simple/spacy-legacy/\n", "WARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.\n", "You should consider upgrading via the 'C:\\Users\\Syeda Nimrah\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" ] } ], "source": [ "pip install -U spacy" ] }, { "cell_type": "code", "execution_count": null, "id": "b6bd3c54", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 26, "id": "87c894b2", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "46ac7e8d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "id": "0493b67a", "metadata": {}, "outputs": [], "source": [ "# importing dataset by using Pandas library.\n", "urdu_doc=pd.read_excel(r\"C:\\Users\\Syeda Nimrah\\Downloads\\dataset.xlsx\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "287bfd8f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(913, 8)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "urdu_doc = urdu_doc.dropna()\n", "urdu_doc.shape" ] }, { "cell_type": "code", "execution_count": 5, "id": "a3f8f8ac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 اسلام باد فیڈرل بورڈ ریونیو ایف بی نے دسمبر کی...\n", "1 اسلام باد بورڈ انویسٹمنٹ بی او ئی کے چیئرمین ع...\n", "2 اسلام اباد پاکستان میں ماہ نومبر میں مسلسل تیس...\n", "3 اسلام باد نیشنل ٹرانسمیشن اینڈ ڈسپیچ کمپنی این...\n", "4 اقوام متحدہ کے فوڈ ایجنسی کا کہنا ہے کہ موسم ک...\n", " ... \n", "908 اسلام باد ثناء نیوز دنیا میں سالانہ دس کھرب ڈا...\n", "909 اسلام باداین این ئیموبائل فون صارفین نے حکومتی...\n", "910 لاہور نیوز رپورٹر وفاقی وزیر پانی بجلی راجہ پر...\n", "911 لاہورسٹاف رپورٹر ایکشن ایڈ کے زیر اہتمام پنجاب...\n", "912 لاہور نیوز رپورٹر کھاد کمپنیوں نے یوریا کی 50 ...\n", "Name: اسلام باد عالمی بینک خیبرپختونخوا کے قبائلی اضلاع میں عسکریت پسندی سے پیدا ہونے والے بحران سے متاثرہ خاندانوں کی جلد بحالی بچوں کی صحت کی بہتری اور شہری مراکز ترسیل میں معاونت کے لیے فنڈز فراہم کرے گااس منصوبے کے لیے عالمی بینک ملٹی ڈونر ٹرسٹ کے تحت ایک کروڑ 20 لاکھ ڈالر فراہم کرے گا جس کے تحت شہریوں کی سہولت کے مراکز قائم کیے جائیں گے جو پوری قبائلی بادی اور اس سے منسلک اضلاع کو خدمات فراہم کرے گاڈان اخبار کی رپورٹ کے مطابق یہ جولائی 2019 میں ایک کروڑ 50 لاکھ ڈالر کی منظوری کے بعد سے منصوبے کی تیسری فنانسنگ ہوگییہ بھی پڑھیں ئندہ سال تک پاکستان میں غربت میں اضافے کا امکان ہے عالمی بینکان سہولیات کے مراکز کے ذریعے منتخب خدمات فراہم کی جائیں گی جس میں وائٹل رجسٹریشن سروس وی ایس سول رجسٹریشن منیجمنٹ سسٹم سی ایم ایس اور نادرا ای سہولت شامل ہے جو اس سے مستفید ہونے والوں کی مزید سرکاری خدمات تک رسائی کو بڑھائے گااس کے علاوہ ئندہ ماہ عالمی بینک کی اضافی فنانسنگ کی منظوری دی جائے گی جو گاہی سیشن میں حاضری سے منسلک نقدی کی منتقلی کے ذریعے بچوں کی صحت کو فروغ دے گیمنصوبے کی دستاویز کے مطابق اضافی سروسز مثلا وی ایس سی ایم ایس نادرا ای سہولت پلیٹ فارم اور دیگر سہولیات کے ساتھ اضلاع بنوں ڈیرہ اسمعیل خان لکی مروت اور ٹانک میں 16 نئے سہولت مراکز قائم کیے جائیں گےوی ایس میں کمپیوٹرائزڈ قومی شناختی کارڈ اور سی سیز کی تجدید اور اجرا سے متعلق تمام خدمات شامل ہوں گیمزید پڑھیں عالمی بینک سندھ میں چھوٹے ڈیموں کی تعمیر کے لیے 20 کروڑ ڈالر قرض دے گااس کے علاوہ بلدیاتی حکومت یا کمشنر کے دفاتر کے تعاون سے سی ایم ایس متعارف کروانے سے شہری بالخصوص خواتین پیدائش شادی اور موت کے سرٹیفکیٹ حاصل کرسکیں گیاس منصوبے پر خیبرپختونخوا میں ضم ہونے والے تمام ساتوں اضلاع میں عملدرمد کیا جارہا ہے ان اضلاع اور ان سے منسلک علاقوں میں شہریوں کی بنیادی سرکاری سروسز تک رسائی میں سیکیورٹی اور رسائی کے مسائل برقرار رہنے تک رکاوٹ ہےتاہم صوبہ خیبرپختونخوا میں ان اضلاع کے انضمام کا پیچیدہ عمل کمزور اداروں اور مسلسل سیکیورٹی خدشات کی وجہ سے اس ایجنڈے کی تکمیل ایک طویل عمل ہے, Length: 913, dtype: object\n" ] } ], "source": [ "urduText = urdu_doc.iloc[:,2]\n", "print(urduText)" ] }, { "cell_type": "code", "execution_count": 6, "id": "aa749004", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['کوًطب', 'ضت', 'اضکے', 'رکھتی', 'ضبت', 'چلا', 'کھولے', 'اپٌے', 'خلذی', 'توہیں', 'ہوًے', 'رکھتے', 'چھہ', 'رہب', 'ٹھیک', 'خبًتب', 'زصوں', 'یہبں', 'پبًب', 'اضطرذ', 'تو', 'تک', 'کرتب', 'پورا', 'ہوًی', 'ثغیر', 'ثہتر', 'خوًہی', 'اکٹھب', 'چھوٹے', 'ضروری', 'ضوچب', 'تھی', 'خٌبة', 'کہب', 'گٌتی', 'گروپ', 'اى', 'ظبہر', 'خبهوظ', 'لگیں', 'ثھرا', 'تبزٍ', 'کی', 'هطئلے', 'لو', 'ضوچتے', 'صورت', 'کے', 'هوکٌبت', 'دیکھٌب', 'اضتعوبل', 'رکي', 'لازهی', 'دو', 'کجھی', 'هہرثبى', 'کہوں', 'طورپر', 'ہوچکے', 'ہوبرا', 'ثٌذکرًب', 'اضکی', 'لیب', 'کوًطے', 'هکول', 'تر', 'هٌبضت', 'دکھبو', 'گروہوں', 'کہتی', 'ارکبى', 'زقبئق', 'هطئلہ', 'علاقے', 'هڑا', 'صبف', 'لڑکپي', 'ثٌذی', 'تھوڑا', 'اطراف', 'طرف', 'دلچطپ', 'خص', 'اوًچب', 'طریقے', 'دوضری', 'تھب', 'دش', 'ڈھوًڈو', 'پہلےضی', 'دلچطپی', 'ہورہب', 'ثہتری', 'کہتے', 'پوچھیں', 'پراًب', 'ثٌذکرو', 'دلچطپیبں', 'ثٌب', 'ارد', 'پبش', 'صورتوں', 'خبًتی', 'تھوڑے', 'یقیٌی', 'ہیں', 'کیوں', 'تیي', 'خگہ', 'پوچھب', 'دورى', 'قجیلہ', 'غخص', 'ثہتریي', 'ضکتب', 'خیطبکہ', 'اضتعوبلات', 'ضکب', 'عووهی', 'لوجے', 'ضبل', 'زبضر', 'لئے', 'دکھبتی', 'پہلے', 'اًذر', 'پیع', 'خبًب', 'اوًچبئی', 'لگی', 'ہی', 'ثٌذ', 'دی', 'عذد', 'ثبرے', 'درخہ', 'تن', 'گی', 'والے', 'ہن', 'ضوچو', 'ڈھوًڈی', 'گرد', 'کہو', 'چبہب', 'آخر', 'ثراں', 'کورے', 'غروع', 'کیب', 'دیکھو', 'تب', 'گے', 'ہوضکتی', 'ًکتہ', 'هسطوش', 'اضکب', 'ہو', 'ہورہی', 'عظین', 'ثبری', 'ہوچکب', 'دوضروں', 'لگتب', 'خگہوں', 'چبر', 'هوکٌہ', 'پچھلا', 'پوچھو', 'اش', 'اچھی', 'کرتبہوں', 'زکویہ', 'آئی', 'پل', 'پوچھتے', 'کرتی', 'خو', 'کہیں', 'رکھ', 'ثڑے', 'آش', 'کہتب', 'تھے', 'لوسہ', 'ڈھوًڈا', 'دیٌب', 'چکے', 'ہوں', 'تھوڑی', 'پر', 'ضیکٌڈ', 'اکیلی', 'ًئی', 'ضکے', 'چھوٹوں', 'ضوچٌب', 'چکب', 'صفر', 'اوًچی', 'هطبئل', 'آیب', 'ادھر', 'قطن', 'لوگ', 'اہن', 'دور', 'ضبرا', 'دکھبئیں', 'صسیر', 'طور', 'ثلٌذ', 'ضوچ', 'ہوگیب', 'ہوگئی', 'ہوئے', 'ثدبئے', 'ہوا', 'پوچھتب', 'ضبدٍ', 'کہی', 'اکثر', 'زبلات', 'اٹھبًب', 'ثہت', 'ثیچ', 'لوسبت', 'زقیقت', 'خواى', 'کورٍ', 'ہوًب', 'هیرے', 'زبلیہ', 'ضیذھے', 'زصہ', 'دیب', 'ًہیں', 'ہے', 'چکی', 'کورا', 'ًبگسیر', 'کیطے', 'علاقہ', 'ثرآں', 'زکن', 'دکھبتے', 'لگے', 'ضرور', 'زبصل', 'راضتہ', 'دفعہ', 'هتعلق', 'پوچھوں', 'ثڑا', 'ضے', 'گروٍ', 'هڑًب', 'هیری', 'ًطجت', 'کبم', 'لوگوں', 'کررہی', 'کھولٌب', 'رہی', 'کیوًکہ', 'ثعذ', 'ہر', 'رہے', 'رریعہ', 'ثٌبرہب', 'ثلکہ', 'چلے', 'افراد', 'غذ', 'ثٌبرہی', 'رریعے', 'تریي', 'هختلف', 'ضرورت', 'کوئی', 'ًئے', 'کریں', 'ہوضکتے', 'هطلق', 'غے', 'هػتول', 'چیسیں', 'تت', 'چھوٹی', 'لی', 'خبًتے', 'دے', 'هسترهہ', 'غبیذ', 'صورتیں', 'ڈھوًڈلیب', 'اور', 'ثٌبًب', 'خططرذ', 'کبفی', 'ضکی', 'ضکتے', 'اختتبم', 'قجل', 'دکھبًب', 'ہوتے', 'لوجی', 'هیں', 'پبئے', 'درخے', 'هڑے', 'آئے', 'آدهی', 'دیکھیں', 'لگتے', 'وار', 'ضوچی', 'طب', 'زیبدٍ', 'کرتے', 'هعلوم', 'پہلا', 'اچھے', 'خب', 'چھوٹب', 'دوًوں', 'ایک', 'ضوچتی', 'خبًٌب', 'ثبہر', 'آًب', 'خیطب', 'اپٌب', 'کب', 'ایطے', 'ضلطلہ', 'آج', 'ثٌبرہے', 'هوکي', 'طریقوں', 'دوضرے', 'دیکھی', 'کرو', 'ڈھوًڈیں', 'کوروں', 'اگرچہ', 'کوتر', 'خجکہ', 'پبًچ', 'درضت', 'ثبعث', 'تعذاد', 'ڈھوًڈًب', 'کہٌب', 'پوچھتی', 'کل', 'خگہیں', 'ہورہے', 'ًقطہ', 'هسترم', 'دوضرا', 'اکٹھی', 'ثھی', 'کوى', 'لے', 'کوطي', 'طریق', 'کھولو', 'هگر', 'صورتسبل', 'چلیں', 'دیتی', 'ہوچکی', 'ًکبلٌب', 'کرے', 'آٹھ', 'رکھے', 'ضیذھی', 'ثب', 'هلا', 'زقیتیں', 'دیتب', 'فرد', 'توبم', 'ضبلوں', 'کرًب', 'تٌہب', 'ثرش', 'چبہے', 'کھولا', 'رکھی', 'علاقوں', 'کن', 'ہوتی', 'چبہٌب', 'ًیب', 'کھولیں', 'در', 'پہلی', 'هطتعول', 'راضتے', 'فی', 'ضوچیں', 'ختن', 'اغیب', 'اچھب', 'کیے', 'غروعبت', 'ضبرے', 'ًوخواى', 'ثھر', 'لیں', 'درزقیقت', 'چلو', 'لگتی', 'پوچھٌب', 'خبر', 'ثبلا', 'ہوضکتب', 'خوکہ', 'لوجب', 'کئے', 'گیب', 'اکٹھے', 'گئی', 'ضکتی', 'ہوبرے', 'دیر', 'ضکٌب', 'رکھب', 'لیٌب', 'ثڑی', 'ہوبری', 'طریقہ', 'ترتیت', 'اکیلا', 'علاوٍ', 'یہ', 'کر', 'ضوچتب', 'کہ', 'راضتوں', 'کئی', 'ًبپطٌذ', 'دکھبتب', 'زصے', 'کہے', 'اکیلے', 'کرا', 'درخبت', 'اخبزت', 'پھر', 'ہوئی', 'چکیں', 'کوًطی', 'دیتے', 'زبل', 'ثھرپور', 'اوًچے', 'ثبلترتیت', 'کت', 'ضیذھب', 'هسیذ', 'الگ', 'گئے', 'گب', 'هیرا', 'اردگرد']\n" ] } ], "source": [ "stop_words = list(STOP_WORDS)\n", "print(stop_words)" ] }, { "cell_type": "code", "execution_count": 7, "id": "e18233cc", "metadata": {}, "outputs": [], "source": [ "nlp = spacy.blank('ur')\n", "doc = nlp(urduText[0])" ] }, { "cell_type": "code", "execution_count": 8, "id": "5940039c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "اسلام باد فیڈرل بورڈ ریونیو ایف بی نے دسمبر کی خری تاریخ سے قبل ٹیکس سال 2020 کے لیے گزشتہ سال کے مقابلے میں تقریبا 23 فیصد کم انکم ٹیکس گوشوارے موصول کیے ہیںڈان اخبار کی رپورٹ کے مطابق بورڈ کو دسمبر تک 13 لاکھ 10 ہزار ٹیکس گوشوارے موصول ہوئے جب کہ ٹیکس سال 2019 میں 16 لاکھ 90 ہزار ریٹرنز جمع کرائے گئے تھےان میں تنخواہ دار اور غیر تنخواہ دار افراد افرادی کمپنیوں کی ایسوسی ایشنز دونوں شامل ہیںمزید پڑھیں انکم ٹیکس گوشوراے جمع کروانے کی تاریخ میں ایک مرتبہ پھر توسیع جائزے کے دوران اس عرصے میں گوشواروں کے ساتھ وصول کیا گیا ٹیکس ارب 50 کروڑ روپے رہا جب کہ گزشتہ سال کے اسی عرصے میں یہ 12 ارب 80 کروڑ روپے وصول کیا گیا تھا جو 492 فیصد کی کمی کی عکاسی کرتا ہےٹیکس سال 2020 کے لیے انکم ٹیکس گوشوارے جمع کروانے کی خری تاریخ میں ستمبر کے بعد سے توسیع کی گئی تھی تاکہ عوام کو اپنا ریٹرن فائل کرنے میں سانی ہوٹیکس سال 2019 کے لیے ایف بی کو 29 لاکھ ریٹرنز ملے تھے جو ایف بی کی تاریخ میں سب سے زیادہ تھےبھارت میں بادی کے مقابلے میں ریٹرن فائل کرنے کا تناسب فیصد فرانس میں 58 فیصد اور کینیڈا میں 80 فیصد ہے جبکہ پاکستان میں یہ تقریبا 002 فیصد پر موجود ہےوزیر اعظم کے معاون خصوصی برائے ریونیو ڈاکٹر وقار مسعود خان نے ڈان کو بتایا کہ خری تاریخ میں مزید توسیع نہ کرنے کا اصولی فیصلہ کیا گیا ہے انہوں نے کہا کہ ریٹرن فائلنگ میں دن بدن اضافہ ہوتا جارہا ہےیہ بھی پڑھیں ٹیکس کے بغیر پاکستانی رقوم کی منتقلی کے باعث زی فائیو پر پابندی لگائی فواد چوہدریڈاکٹر وقار نے کہا کہ فیلڈ فارمیشنز کو ہدایت کی گئی ہے کہ وہ ان افراد کو انکم ٹیکس گوشوارے جمع کروانے کے لیے وقت میں توسیع کریں جو ڈیڈ لائن سے قبل ان کو فائل کرنے کے قابل نہیں تھےانہوں نے کہا کہ نان فائلرز کو ریٹرن فائل کرنے کے لیے اضافی وقت طلب کرنے کے لیے متعلقہ ٹیکس فس میں درخواست جمع کرانا ہوگیاسی طرح معاون خصوصی نے بتایا کہ ٹیکس پریکٹیشنرز کو بھی اپنے کلائنٹ کے لیے توسیع حاصل کرنے کی اجازت ہےتاہم معاون خصوصی نے بتایا کہ سب کے لیے کوئی توسیع نہیں کی جائے گیجرمانے کے بارے میں سوال پر انہوں نے کہا کہ ان لوگوں کے لیے کوئی جرمانہ نہیں ہوگا جنہوں نے ٹیکس گوشوارے جمع کروانے کے لیے توسیع مانگی ہےان کا کہنا تھا کہ مزید توسیع نہ کرنے کے فیصلے کا مقصد ملک میں ٹیکس نظم ضبط لانا ہے\n" ] } ], "source": [ "print(doc)" ] }, { "cell_type": "code", "execution_count": 9, "id": "c3a3a56c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['اسلام', 'باد', 'فیڈرل', 'بورڈ', 'ریونیو', 'ایف', 'بی', 'نے', 'دسمبر', 'کی', 'خری', 'تاریخ', 'سے', 'قبل', 'ٹیکس', 'سال', '2020', 'کے', 'لیے', 'گزشتہ', 'سال', 'کے', 'مقابلے', 'میں', 'تقریبا', '23', 'فیصد', 'کم', 'انکم', 'ٹیکس', 'گوشوارے', 'موصول', 'کیے', 'ہیںڈان', 'اخبار', 'کی', 'رپورٹ', 'کے', 'مطابق', 'بورڈ', 'کو', 'دسمبر', 'تک', '13', 'لاکھ', '10', 'ہزار', 'ٹیکس', 'گوشوارے', 'موصول', 'ہوئے', 'جب', 'کہ', 'ٹیکس', 'سال', '2019', 'میں', '16', 'لاکھ', '90', 'ہزار', 'ریٹرنز', 'جمع', 'کرائے', 'گئے', 'تھےان', 'میں', 'تنخواہ', 'دار', 'اور', 'غیر', 'تنخواہ', 'دار', 'افراد', 'افرادی', 'کمپنیوں', 'کی', 'ایسوسی', 'ایشنز', 'دونوں', 'شامل', 'ہیںمزید', 'پڑھیں', 'انکم', 'ٹیکس', 'گوشوراے', 'جمع', 'کروانے', 'کی', 'تاریخ', 'میں', 'ایک', 'مرتبہ', 'پھر', 'توسیع', 'جائزے', 'کے', 'دوران', 'اس', 'عرصے', 'میں', 'گوشواروں', 'کے', 'ساتھ', 'وصول', 'کیا', 'گیا', 'ٹیکس', 'ارب', '50', 'کروڑ', 'روپے', 'رہا', 'جب', 'کہ', 'گزشتہ', 'سال', 'کے', 'اسی', 'عرصے', 'میں', 'یہ', '12', 'ارب', '80', 'کروڑ', 'روپے', 'وصول', 'کیا', 'گیا', 'تھا', 'جو', '492', 'فیصد', 'کی', 'کمی', 'کی', 'عکاسی', 'کرتا', 'ہےٹیکس', 'سال', '2020', 'کے', 'لیے', 'انکم', 'ٹیکس', 'گوشوارے', 'جمع', 'کروانے', 'کی', 'خری', 'تاریخ', 'میں', 'ستمبر', 'کے', 'بعد', 'سے', 'توسیع', 'کی', 'گئی', 'تھی', 'تاکہ', 'عوام', 'کو', 'اپنا', 'ریٹرن', 'فائل', 'کرنے', 'میں', 'سانی', 'ہوٹیکس', 'سال', '2019', 'کے', 'لیے', 'ایف', 'بی', 'کو', '29', 'لاکھ', 'ریٹرنز', 'ملے', 'تھے', 'جو', 'ایف', 'بی', 'کی', 'تاریخ', 'میں', 'سب', 'سے', 'زیادہ', 'تھےبھارت', 'میں', 'بادی', 'کے', 'مقابلے', 'میں', 'ریٹرن', 'فائل', 'کرنے', 'کا', 'تناسب', 'فیصد', 'فرانس', 'میں', '58', 'فیصد', 'اور', 'کینیڈا', 'میں', '80', 'فیصد', 'ہے', 'جبکہ', 'پاکستان', 'میں', 'یہ', 'تقریبا', '002', 'فیصد', 'پر', 'موجود', 'ہےوزیر', 'اعظم', 'کے', 'معاون', 'خصوصی', 'برائے', 'ریونیو', 'ڈاکٹر', 'وقار', 'مسعود', 'خان', 'نے', 'ڈان', 'کو', 'بتایا', 'کہ', 'خری', 'تاریخ', 'میں', 'مزید', 'توسیع', 'نہ', 'کرنے', 'کا', 'اصولی', 'فیصلہ', 'کیا', 'گیا', 'ہے', 'انہوں', 'نے', 'کہا', 'کہ', 'ریٹرن', 'فائلنگ', 'میں', 'دن', 'بدن', 'اضافہ', 'ہوتا', 'جارہا', 'ہےیہ', 'بھی', 'پڑھیں', 'ٹیکس', 'کے', 'بغیر', 'پاکستانی', 'رقوم', 'کی', 'منتقلی', 'کے', 'باعث', 'زی', 'فائیو', 'پر', 'پابندی', 'لگائی', 'فواد', 'چوہدریڈاکٹر', 'وقار', 'نے', 'کہا', 'کہ', 'فیلڈ', 'فارمیشنز', 'کو', 'ہدایت', 'کی', 'گئی', 'ہے', 'کہ', 'وہ', 'ان', 'افراد', 'کو', 'انکم', 'ٹیکس', 'گوشوارے', 'جمع', 'کروانے', 'کے', 'لیے', 'وقت', 'میں', 'توسیع', 'کریں', 'جو', 'ڈیڈ', 'لائن', 'سے', 'قبل', 'ان', 'کو', 'فائل', 'کرنے', 'کے', 'قابل', 'نہیں', 'تھےانہوں', 'نے', 'کہا', 'کہ', 'نان', 'فائلرز', 'کو', 'ریٹرن', 'فائل', 'کرنے', 'کے', 'لیے', 'اضافی', 'وقت', 'طلب', 'کرنے', 'کے', 'لیے', 'متعلقہ', 'ٹیکس', 'فس', 'میں', 'درخواست', 'جمع', 'کرانا', 'ہوگیاسی', 'طرح', 'معاون', 'خصوصی', 'نے', 'بتایا', 'کہ', 'ٹیکس', 'پریکٹیشنرز', 'کو', 'بھی', 'اپنے', 'کلائنٹ', 'کے', 'لیے', 'توسیع', 'حاصل', 'کرنے', 'کی', 'اجازت', 'ہےتاہم', 'معاون', 'خصوصی', 'نے', 'بتایا', 'کہ', 'سب', 'کے', 'لیے', 'کوئی', 'توسیع', 'نہیں', 'کی', 'جائے', 'گیجرمانے', 'کے', 'بارے', 'میں', 'سوال', 'پر', 'انہوں', 'نے', 'کہا', 'کہ', 'ان', 'لوگوں', 'کے', 'لیے', 'کوئی', 'جرمانہ', 'نہیں', 'ہوگا', 'جنہوں', 'نے', 'ٹیکس', 'گوشوارے', 'جمع', 'کروانے', 'کے', 'لیے', 'توسیع', 'مانگی', 'ہےان', 'کا', 'کہنا', 'تھا', 'کہ', 'مزید', 'توسیع', 'نہ', 'کرنے', 'کے', 'فیصلے', 'کا', 'مقصد', 'ملک', 'میں', 'ٹیکس', 'نظم', 'ضبط', 'لانا', 'ہے']\n" ] } ], "source": [ "tokens = [token.text for token in doc]\n", "print(tokens)" ] }, { "cell_type": "code", "execution_count": 10, "id": "b341310c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~...'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "punctuation = punctuation + \"...\" \n", "punctuation" ] }, { "cell_type": "code", "execution_count": 11, "id": "3fd13f58", "metadata": {}, "outputs": [], "source": [ "# caculating each urdu word frequency\n", "All_Word_frequencies = {}\n", "for i in urduText:\n", " doc = nlp(i)\n", " for token in doc:\n", " if token.text not in stop_words:\n", " if token.text not in punctuation:\n", " if token.text not in All_Word_frequencies.keys():\n", " All_Word_frequencies[token.text] = 1;\n", " else:\n", " All_Word_frequencies[token.text] +=1;\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "e70e5ac4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6354\n" ] } ], "source": [ "#calculating the maximum frequency to normalize the frequency values\n", "max_frequency = max(All_Word_frequencies.values())\n", "print(max_frequency)" ] }, { "cell_type": "code", "execution_count": 13, "id": "9fcc7706", "metadata": {}, "outputs": [], "source": [ "# # now we normalize the frequency by dividing the each frequency value with the max frequency\n", "# for word in All_Word_frequencies.keys():\n", "# All_Word_frequencies[word] = All_Word_frequencies[word]/max_frequency\n", "# print(All_Word_frequencies);\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "f8d901dd", "metadata": {}, "outputs": [], "source": [ "model = word2vec.KeyedVectors.load_word2vec_format('C:\\\\Users\\\\Syeda Nimrah\\\\Downloads\\\\urduvec_140M_100K_300d.bin', binary=True)" ] }, { "cell_type": "code", "execution_count": 15, "id": "deb468cf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "KeyedVectors\n" ] } ], "source": [ "print(model)" ] }, { "cell_type": "code", "execution_count": 16, "id": "62a8bb6e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Word embeddings: 102125\n" ] } ], "source": [ "embeddings_index = {}\n", "\n", "for i in range(1,102214):\n", " values = model[i]\n", " word = values[0]\n", " embedding = np.asarray(values[1:], dtype='float32')\n", " embeddings_index[word] = embedding\n", "\n", "print('Word embeddings:', len(embeddings_index))" ] }, { "cell_type": "code", "execution_count": null, "id": "34eb04b9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "f3797832", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e8447205", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 18, "id": "0ea5e419", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'اسلام': 0, 'باد': 1, 'فیڈرل': 2, 'بورڈ': 3, 'ریونیو': 4, 'ایف': 5, 'بی': 6, 'نے': 7, 'دسمبر': 8, 'تاریخ': 9, 'سے': 10, 'قبل': 11, 'ٹیکس': 12, 'سال': 13, '2020': 14, 'لیے': 15, 'گزشتہ': 16, 'مقابلے': 17, 'میں': 18, 'تقریبا': 19, '23': 20, 'فیصد': 21, 'کم': 22, 'انکم': 23, 'گوشوارے': 24, 'موصول': 25, 'اخبار': 26, 'رپورٹ': 27, 'مطابق': 28, 'کو': 29, '13': 30, 'لاکھ': 31, '10': 32, 'ہزار': 33, 'جب': 34, '2019': 35, '16': 36, '90': 37, 'جمع': 38, 'کرائے': 39, 'دار': 40, 'غیر': 41, 'کمپنیوں': 42, 'ایسوسی': 43, 'دونوں': 44, 'شامل': 45, 'پڑھیں': 46, 'مرتبہ': 47, 'توسیع': 48, 'دوران': 49, 'اس': 50, 'عرصے': 51, 'ساتھ': 52, 'وصول': 53, 'کیا': 54, 'گیا': 55, 'ارب': 56, '50': 57, 'کروڑ': 58, 'روپے': 59, 'رہا': 60, 'اسی': 61, '12': 62, '80': 63, 'تھا': 64, 'جو': 65, 'کمی': 66, 'کرتا': 67, 'ستمبر': 68, 'بعد': 69, 'تاکہ': 70, 'عوام': 71, 'اپنا': 72, 'کرنے': 73, '29': 74, 'ملے': 75, 'سب': 76, 'زیادہ': 77, 'کا': 78, '58': 79, 'جبکہ': 80, 'پاکستان': 81, 'موجود': 82, 'اعظم': 83, 'معاون': 84, 'خصوصی': 85, 'برائے': 86, 'ڈاکٹر': 87, 'خان': 88, 'ڈان': 89, 'بتایا': 90, 'مزید': 91, 'نہ': 92, 'فیصلہ': 93, 'انہوں': 94, 'کہا': 95, 'دن': 96, 'اضافہ': 97, 'ہوتا': 98, 'جارہا': 99, 'ہےیہ': 100, 'بھی': 101, 'بغیر': 102, 'پاکستانی': 103, 'باعث': 104, 'پابندی': 105, 'ہدایت': 106, 'وہ': 107, 'ان': 108, 'وقت': 109, 'لائن': 110, 'قابل': 111, 'نہیں': 112, 'نان': 113, 'اضافی': 114, 'طلب': 115, 'متعلقہ': 116, 'درخواست': 117, 'طرح': 118, 'اپنے': 119, 'حاصل': 120, 'اجازت': 121, 'جائے': 122, 'بارے': 123, 'سوال': 124, 'جرمانہ': 125, 'ہوگا': 126, 'جنہوں': 127, 'ہےان': 128, 'کہنا': 129, 'فیصلے': 130, 'مقصد': 131, 'ملک': 132, 'ضبط': 133, 'او': 134, 'ئی': 135, 'چیئرمین': 136, 'سفیر': 137, 'ملاقات': 138, 'پاک': 139, 'چین': 140, 'اقتصادی': 141, 'سی': 142, 'پیک': 143, 'ایس': 144, 'ای': 145, 'ترقی': 146, 'سرمایہ': 147, 'کاری': 148, 'ممالک': 149, 'سندھ': 150, 'امکان': 151, 'گاہ': 152, 'کاروباری': 153, 'اداروں': 154, 'معاشی': 155, 'یونٹ': 156, 'قائم': 157, 'کراچی': 158, 'قریب': 159, 'ہونے': 160, 'وجہ': 161, 'بہت': 162, 'بہتر': 163, 'ہےمزید': 164, 'تین': 165, 'نئے': 166, 'منظوری': 167, 'تجویز': 168, 'تجارتی': 169, 'یا': 170, 'رابطہ': 171, 'ادارہ': 172, 'کرنا': 173, 'چاہیے': 174, 'صنعت': 175, 'کاروں': 176, 'تعلقات': 177, 'بنانے': 178, 'مدد': 179, 'زائد': 180, 'اہم': 181, 'مالیاتی': 182, 'دنیا': 183, 'بڑے': 184, 'شہری': 185, 'جواب': 186, 'وزارت': 187, 'تاہم': 188, 'دستیاب': 189, 'معلومات': 190, 'تجارت': 191, 'واقع': 192, 'وزیراعظم': 193, 'حکومت': 194, 'ترقیاتی': 195, 'منصوبے': 196, 'پانی': 197, 'فراہمی': 198, 'موجودہ': 199, 'نظام': 200, 'اپ': 201, 'ریلوے': 202, 'تا': 203, 'سمیت': 204, 'بہترین': 205, 'مواقع': 206, 'ہیںاس': 207, 'موقع': 208, 'بہتری': 209, 'غور': 210, 'ماہی': 211, 'شعبے': 212, 'تبادلہ': 213, 'خیال': 214, 'نجی': 215, 'شعبوں': 216, 'زور': 217, 'دیا': 218, 'گا': 219, 'جیسے': 220, 'منصوبوں': 221, 'ٹو': 222, 'انڈسٹری': 223, 'ٹیکسٹائل': 224, 'دینے': 225, 'بات': 226, 'اباد': 227, 'ماہ': 228, 'نومبر': 229, 'مسلسل': 230, 'مہینے': 231, 'برامدات': 232, 'دیکھا': 233, 'ڈالر': 234, 'بڑھ': 235, 'پہنچ': 236, 'اعداد': 237, 'شمار': 238, 'شماریات': 239, 'جانب': 240, 'جاری': 241, 'بنیادی': 242, 'دیکھنے': 243, 'اکتوبر': 244, '21': 245, 'درامدات': 246, 'گئیں': 247, 'خسارہ': 248, 'معمولی': 249, 'اضافے': 250, 'ظاہر': 251, '20': 252, 'مصنوعات': 253, 'چاول': 254, '14': 255, '11': 256, '41': 257, 'نمایاں': 258, 'جولائی': 259, 'انہیں': 260, 'مہینوں': 261, '60': 262, '70': 263, 'مالی': 264, 'اغاز': 265, 'مثبت': 266, 'رجحان': 267, 'لیکن': 268, 'اگست': 269, '19': 270, 'جا': 271, 'اف': 272, 'اینڈ': 273, 'ڈی': 274, 'ایل': 275, 'ٹی': 276, 'اسکیم': 277, 'حوالے': 278, 'مشیر': 279, 'داد': 280, 'مجھے': 281, 'امید': 282, 'ہمارے': 283, 'معاملات': 284, 'حل': 285, 'بڑھانے': 286, 'دیں': 287, 'گر': 288, '40': 289, 'تھیں': 290, 'اسے': 291, '22': 292, 'مئی': 293, 'بین': 294, 'الاقوامی': 295, 'واضح': 296, 'نظر': 297, 'ملکی': 298, 'برمدات': 299, 'مجموعی': 300, 'بل': 301, '17': 302, 'ہوگیا': 303, 'علاوہ': 304, 'جس': 305, 'یعنی': 306, 'نیشنل': 307, 'کمپنی': 308, 'این': 309, 'سوئی': 310, 'سدرن': 311, 'گیس': 312, 'جی': 313, 'ادائیگیاں': 314, 'قومی': 315, 'نیٹ': 316, 'الیکٹرک': 317, 'بجلی': 318, 'قانونی': 319, 'شکار': 320, 'ذرائع': 321, 'عوامی': 322, 'سیکٹر': 323, 'واجبات': 324, 'خریداری': 325, 'معاہدے': 326, 'پی': 327, 'اے': 328, 'دستخط': 329, 'انکار': 330, 'ممبئی': 331, 'چیف': 332, 'جسٹس': 333, 'کابینہ': 334, 'کمیٹی': 335, 'توانائی': 336, 'رواں': 337, 'جون': 338, 'تحت': 339, 'میگاواٹ': 340, 'ایم': 341, '200': 342, 'معاہدہ': 343, 'اب': 344, 'انتظامیہ': 345, 'وفاقی': 346, 'کسی': 347, 'ادائیگی': 348, 'منصوبہ': 349, 'چاہتے': 350, 'رقم': 351, 'مقابلہ': 352, 'دعوی': 353, 'رکھنے': 354, 'مسئلے': 355, 'دنوں': 356, 'مختلف': 357, 'سیاسی': 358, 'حکام': 359, 'مصروف': 360, 'کورونا': 361, 'چند': 362, 'عدم': 363, 'پیدا': 364, 'ہفتے': 365, 'درمیان': 366, 'اجلاس': 367, 'متوقع': 368, 'روز': 369, 'پریس': 370, 'کانفرنس': 371, 'وزیر': 372, 'بندی': 373, 'اسد': 374, 'عمر': 375, 'دیگر': 376, 'وصولی': 377, 'گردشی': 378, 'قرضوں': 379, 'کیونکہ': 380, 'سود': 381, 'اگر': 382, 'ادا': 383, 'سرکاری': 384, 'عمل': 385, 'ہونا': 386, 'بڑھا': 387, 'پیش': 388, 'فراہم': 389, 'تاخیر': 390, 'بننے': 391, 'اگلے': 392, 'قلت': 393, 'بن': 394, 'سکتا': 395, 'متحدہ': 396, 'ایجنسی': 397, 'صورتحال': 398, 'عالمی': 399, 'قیمتوں': 400, 'تیزی': 401, 'اعلی': 402, 'ترین': 403, 'سطح': 404, 'جانے': 405, 'والی': 406, 'اشیا': 407, 'قیمتیں': 408, '45': 409, 'دبا': 410, 'اپنی': 411, 'بیرونی': 412, 'انڈیکس': 413, 'پوائنٹس': 414, '39': 415, 'مہنگائی': 416, 'شرح': 417, 'بلند': 418, 'اسٹیٹ': 419, 'بینک': 420, 'ماہانہ': 421, 'تیل': 422, 'قیمت': 423, 'ئل': 424, '25': 425, 'گندم': 426, 'پیداواری': 427, 'امریکا': 428, 'پیداوار': 429, 'بڑی': 430, 'بڑھی': 431, 'چینی': 432, 'فروخت': 433, '18': 434, 'گوشت': 435, 'پاور': 436, 'ریگولیٹری': 437, 'اتھارٹی': 438, 'صنعتی': 439, 'صارفین': 440, 'جن': 441, 'لوڈ': 442, 'خاتمے': 443, 'طے': 444, 'شدہ': 445, 'سبسڈی': 446, 'ڈویژن': 447, 'شیخ': 448, 'طویل': 449, 'نیپرا': 450, 'سامنا': 451, 'بھر': 452, 'استعمال': 453, 'یو': 454, 'ٹیرف': 455, 'متعلق': 456, 'سمری': 457, 'منظور': 458, 'کرلیا': 459, 'جسے': 460, 'نوٹیفکیشن': 461, 'تمام': 462, 'جہاں': 463, 'پیکیج': 464, 'مختص': 465, 'کردی': 466, 'کچھ': 467, 'ہوگی': 468, 'قرضے': 469, 'حساب': 470, 'لگایا': 471, '15': 472, 'جاتا': 473, 'لیا': 474, 'بنیاد': 475, 'اعلامیے': 476, 'اطلاق': 477, 'یکم': 478, '30': 479, 'اپریل': 480, 'مدت': 481, 'موبائل': 482, 'پالیسی': 483, 'مقامی': 484, 'سلسلے': 485, 'سوشل': 486, 'میڈیا': 487, 'ٹوئٹر': 488, 'اکانٹ': 489, 'اعلان': 490, 'فون': 491, 'تیار': 492, 'سہولت': 493, 'خرید': 494, 'ردعمل': 495, 'خدشات': 496, 'گفتگو': 497, 'تیاری': 498, 'یہاں': 499, 'ممکن': 500, 'سیلز': 501, 'یقین': 502, 'اقدامات': 503, 'درامد': 504, 'ابھی': 505, 'مکمل': 506, 'نام': 507, 'چیت': 508, '54': 509, 'ڈیوٹی': 510, 'اسمبلی': 511, 'کمپنیاں': 512, 'جارہی': 513, 'منتقل': 514, 'کام': 515, 'فروغ': 516, 'درمدات': 517, '37': 518, 'ڈالرز': 519, 'معیشت': 520, 'باوجود': 521, 'ریکارڈ': 522, 'پنجاب': 523, 'گنے': 524, 'مارکیٹ': 525, 'کلو': 526, 'گرام': 527, 'اظہار': 528, 'سماجی': 529, 'ویب': 530, 'سائٹ': 531, 'درمد': 532, 'قرار': 533, 'ملز': 534, 'ایکس': 535, 'مل': 536, 'صوبائی': 537, 'فوری': 538, 'سیل': 539, 'حال': 540, 'تبدیلی': 541, 'اثر': 542, 'پچھلے': 543, '100': 544, 'ہم': 545, 'کررہے': 546, 'ہوجائے': 547, 'ئندہ': 548, 'ملنے': 549, 'تازہ': 550, 'نتیجے': 551, 'ئے': 552, 'لاہور': 553, 'مگر': 554, 'اثرات': 555, 'مرکزی': 556, 'منڈی': 557, 'صرف': 558, 'بلکہ': 559, 'ماضی': 560, 'ذریعے': 561, 'ایشن': 562, 'غاز': 563, 'مقرر': 564, 'مین': 565, 'کسانوں': 566, 'برقرار': 567, 'قدم': 568, 'سخت': 569, 'سپلائی': 570, 'یقینی': 571, 'زر': 572, 'ہوکر': 573, '83': 574, 'کردہ': 575, 'دوسرے': 576, 'ائی': 577, 'بڑھنے': 578, 'سالانہ': 579, 'پیاز': 580, 'کافی': 581, 'انداز': 582, 'نئی': 583, 'پیٹرولیم': 584, 'اشیائے': 585, '26': 586, 'دال': 587, 'ائندہ': 588, 'مہنگی': 589, '55': 590, 'پاس': 591, 'ساڑھے': 592, 'زیر': 593, '86': 594, 'پیسے': 595, 'سہ': 596, 'ایڈجسٹمنٹ': 597, 'دائر': 598, 'سماعت': 599, 'اختتام': 600, 'تبدیل': 601, 'نرخوں': 602, 'جلد': 603, 'ختم': 604, 'جگہ': 605, 'سینٹرل': 606, 'پرچیزنگ': 607, 'ایگزیکٹو': 608, 'فنانشل': 609, 'پورٹ': 610, 'لاگت': 611, 'تخمینہ': 612, 'چکا': 613, 'لہذا': 614, 'ہےاس': 615, 'قدر': 616, 'بڑھتی': 617, 'ہوسکتی': 618, 'اللہ': 619, 'پیر': 620, 'احمد': 621, 'سکتی': 622, 'حد': 623, 'تعداد': 624, 'شدید': 625, 'توقع': 626, 'پوری': 627, 'بجائے': 628, '35': 629, 'مبنی': 630, 'سو': 631, 'گھر': 632, 'کردیا': 633, 'پلانٹ': 634, 'کمرشل': 635, 'شروع': 636, 'تعمیر': 637, 'کمیشن': 638, 'ترجمان': 639, '31': 640, 'متعدد': 641, 'گھروں': 642, 'وائرس': 643, 'وبا': 644, 'جنرل': 645, 'محمد': 646, 'سینئر': 647, 'سستی': 648, 'تقریب': 649, 'ڈائریکٹر': 650, 'قرض': 651, 'بار': 652, 'گاڑیوں': 653, 'حالیہ': 654, 'وی': 655, '38': 656, 'ار': 657, 'ہدف': 658, 'کھرب': 659, 'اہداف': 660, 'لاک': 661, 'ادائیگیوں': 662, 'دوسری': 663, 'دوبارہ': 664, 'برس': 665, 'متعارف': 666, 'کرانے': 667, 'بحالی': 668, '27': 669, 'محصولات': 670, '300': 671, 'نقصان': 672, 'کسٹم': 673, 'ری': 674, 'بجٹ': 675, 'فنڈ': 676, 'وصولیوں': 677, 'کرائی': 678, 'قائمہ': 679, 'خزانہ': 680, 'سفارش': 681, 'سابق': 682, 'صدر': 683, 'گورنر': 684, 'بینکنگ': 685, 'کارپوریشن': 686, 'تفصیلات': 687, 'خدمات': 688, 'کیلئے': 689, 'ورلڈ': 690, 'عائد': 691, 'ملازمین': 692, 'حیثیت': 693, 'انتہائی': 694, 'وسائل': 695, 'معیار': 696, 'کوشش': 697, 'اعتماد': 698, 'کرکے': 699, 'انٹرویو': 700, 'کار': 701, 'توجہ': 702, 'پانچ': 703, 'سلسلہ': 704, 'کارکردگی': 705, 'ایسا': 706, 'کرنسی': 707, 'بٹ': 708, 'کوائن': 709, '2017': 710, 'سونا': 711, 'نیا': 712, 'ماہرین': 713, 'رہ': 714, 'پیٹرول': 715, 'ڈیزل': 716, 'لیٹر': 717, 'بیان': 718, 'ریلیف': 719, 'والا': 720, 'خود': 721, 'مٹی': 722, 'لائٹ': 723, 'رہیں': 724, 'ہائی': 725, 'اسپیڈ': 726, 'کمپنیز': 727, 'ڈیلرز': 728, 'مارجن': 729, 'رات': 730, 'بجے': 731, 'ائل': 732, 'اوگرا': 733, 'مارکیٹنگ': 734, 'منافع': 735, 'حتمی': 736, 'جائزہ': 737, 'اسٹاک': 738, 'بند': 739, 'پٹرولیم': 740, 'ایچ': 741, 'سالوں': 742, 'مطالبہ': 743, 'تعین': 744, 'حکم': 745, 'مستقبل': 746, 'لینے': 747, '2018': 748, 'بحران': 749, 'ذمہ': 750, 'کاسٹ': 751, 'داری': 752, 'سسٹم': 753, 'کسٹمز': 754, 'کامیاب': 755, 'بیرون': 756, 'دیکھ': 757, 'بڑا': 758, 'ہےانہوں': 759, 'خلاف': 760, 'واپس': 761, 'غلط': 762, 'مالیت': 763, 'ثابت': 764, 'تعلق': 765, 'مضبوط': 766, 'بھارت': 767, 'ادارے': 768, 'بحال': 769, 'روزگار': 770, 'کاروبار': 771, 'متاثر': 772, 'بھارتی': 773, 'جمعہ': 774, 'کمار': 775, 'مارچ': 776, 'اچھا': 777, 'اعتراف': 778, 'ہوگئے': 779, 'شعبہ': 780, 'اخراجات': 781, 'ہےوزارت': 782, 'رہنے': 783, 'سبب': 784, 'ایکسچینج': 785, 'کردار': 786, 'مسترد': 787, 'ہےرپورٹ': 788, 'کرنٹ': 789, 'ذخائر': 790, '24': 791, 'اسٹیل': 792, 'صحت': 793, 'فہرست': 794, 'دیے': 795, 'معاملے': 796, 'بوجھ': 797, 'رکھا': 798, 'نوٹس': 799, 'جائیں': 800, 'کورٹ': 801, 'چیلنج': 802, 'عدالت': 803, 'مد': 804, 'پائپ': 805, 'صدارت': 806, 'اختیار': 807, 'ایسے': 808, 'ماڈل': 809, 'اثاثوں': 810, 'جاتی': 811, 'شاہد': 812, 'ہیںانہوں': 813, 'ہیںان': 814, 'نا': 815, 'دبئی': 816, 'عرب': 817, 'امارات': 818, 'خوش': 819, 'شہر': 820, 'امن': 821, 'بنا': 822, 'حکومتی': 823, 'لانے': 824, 'وفد': 825, 'سامنے': 826, 'مشترکہ': 827, 'ایران': 828, 'اتفاق': 829, 'شہریوں': 830, 'فائدہ': 831, 'روک': 832, 'سکے': 833, 'خدشہ': 834, 'ٹریڈ': 835, 'امریکی': 836, 'سکتے': 837, 'ایکشن': 838, 'بنایا': 839, 'مدنی': 840, 'ایشیائی': 841, 'فورم': 842, 'خسارے': 843, 'خطاب': 844, 'اکنامک': 845, 'پروگرام': 846, 'بریفنگ': 847, 'ٹیکسوں': 848, 'چھوٹ': 849, 'منفی': 850, 'والوں': 851, 'زراعت': 852, 'بے': 853, 'نمو': 854, 'صلاحیت': 855, 'پڑے': 856, 'چار': 857, 'ایسی': 858, 'پلانٹس': 859, 'ملین': 860, 'یہی': 861, 'بازار': 862, 'میرے': 863, 'کروں': 864, 'ہماری': 865, 'تنقید': 866, 'نمبر': 867, 'سستا': 868, 'ہمیشہ': 869, 'خاقان': 870, 'عباسی': 871, 'مفتاح': 872, 'لگا': 873, 'ترسیل': 874, 'اسٹیج': 875, 'جنوری': 876, 'کبھی': 877, 'فیول': 878, 'فرنس': 879, 'مرتب': 880, 'سکیں': 881, 'حجم': 882, 'ہمیں': 883, 'فروری': 884, 'اصلاحات': 885, 'قرضہ': 886, 'مسلم': 887, 'یوٹیلٹی': 888, 'مشکل': 889, 'برامد': 890, 'زرمبادلہ': 891, 'برمد': 892, 'منعقد': 893, 'شرکت': 894, 'ناکام': 895, 'ٹیم': 896, 'اقبال': 897, 'دینا': 898, '48': 899, 'اختر': 900, 'عمران': 901, 'امور': 902, 'تحریک': 903, 'انصاف': 904, 'جاوید': 905, 'عملی': 906, 'کامیابی': 907, 'سونے': 908, 'اونس': 909, 'تولہ': 910, 'صرافہ': 911, 'پاکستانیوں': 912, 'اثاثے': 913, 'یوٹیلیٹی': 914, 'شیئر': 915, 'اوپن': 916, 'بلوچستان': 917, 'مدن': 918, '28': 919, 'بیرل': 920, 'بھرپور': 921, 'لیگ': 922, 'نیوز': 923, 'عام': 924, 'تقسیم': 925, 'مندی': 926, 'سیمنٹ': 927, 'شیئرز': 928, 'حصص': 929, 'بزنس': 930, 'مذاکرات': 931, 'رپورٹس': 932, 'استحکام': 933, 'کھاد': 934, 'شہروں': 935, 'کپاس': 936, 'قابو': 937, 'انکشاف': 938, 'مسائل': 939, 'اشیاء': 940, 'شہرت': 941, 'مشن': 942, 'ہےذرائع': 943, 'مہنگا': 944, 'مشکلات': 945, 'سعودی': 946, 'زندگی': 947, 'خام': 948, 'مال': 949, 'تحفظ': 950, 'سید': 951, 'مالکان': 952, 'کارروائی': 953, 'ہدایات': 954, 'بنائی': 955, 'بنے': 956, 'منی': 957, 'لانڈرنگ': 958, 'تحقیقات': 959, 'پولیس': 960, 'علی': 961, 'صوبوں': 962, 'بینکوں': 963, 'حسین': 964, 'امدنی': 965, 'ترجیح': 966, 'ائے': 967, 'نتائج': 968, 'ائیں': 969, 'سپر': 970, 'محنت': 971, 'خرچ': 972, 'دلچسپی': 973, 'تعاون': 974, 'ہےدوسری': 975, 'باکس': 976, 'ریلیز': 977, 'جدید': 978, 'بانڈز': 979, 'امداد': 980, '76': 981, 'مراعات': 982, 'اج': 983, 'اعشاریہ': 984, 'دل': 985, 'زرعی': 986, 'ٹن': 987, 'ہےخیال': 988, 'ہڑتال': 989, 'ایوارڈ': 990, 'ون': 991, 'حصہ': 992, 'سالہ': 993, 'اسٹورز': 994, 'پیکج': 995, 'انٹربینک': 996, 'یورو': 997, '44': 998, 'پمپس': 999, 'شاہ': 1000, 'اسٹار': 1001, 'میٹرک': 1002, 'ہےکہ': 1003, 'ذخیرہ': 1004, 'کہاکہ': 1005, 'بچوں': 1006, 'کارڈ': 1007, 'فیس': 1008, 'گاڑیاں': 1009, 'مخر': 1010, 'پٹرول': 1011, 'گذشتہ': 1012, 'جان': 1013, 'سروے': 1014, 'فورس': 1015, 'کونسل': 1016, 'انے': 1017, 'جنگ': 1018, 'رخ': 1019, 'معروف': 1020, 'نجکاری': 1021, 'شو': 1022, 'افس': 1023, 'مستحکم': 1024, 'ٹرانسپورٹرز': 1025, 'گڈز': 1026, 'گوادر': 1027, 'یوریا': 1028, 'ایکسپورٹ': 1029, 'انٹرنیشنل': 1030, 'انٹر': 1031, 'بک': 1032, 'پروڈیوسر': 1033, 'ڈرامہ': 1034, 'رمضان': 1035, 'اسماعیل': 1036, 'پروڈکشن': 1037, 'شاندار': 1038, 'خوشی': 1039, 'صد': 1040, 'حامد': 1041, 'شوہر': 1042, 'اردو': 1043, 'پرفارم': 1044, 'کہانی': 1045, 'دولت': 1046, 'طارق': 1047, 'ولی': 1048, 'نور': 1049, 'ٹائیگر': 1050, 'میرا': 1051, 'نگار': 1052, 'ایمنسٹی': 1053, 'نگران': 1054, 'سلمان': 1055, 'لین': 1056, 'دین': 1057, 'سگریٹ': 1058, 'فلم': 1059, 'فنکاروں': 1060, 'میری': 1061, 'انھوں': 1062, 'صدیقی': 1063, 'یوان': 1064, 'پوائنٹ': 1065, 'پسند': 1066, 'ابلاغ': 1067, 'اخبارتازہ': 1068, 'مارچ2017ء': 1069, 'ہالی': 1070, 'وڈ': 1071, 'ووڈ': 1072, 'اداکاری': 1073, 'گانے': 1074, 'مداحوں': 1075, 'گانا': 1076, 'اداکار': 1077, 'کپور': 1078, 'فلموں': 1079, 'جوہر': 1080, 'بالی': 1081, 'اداکارہ': 1082, 'زینت': 1083, 'گلوکار': 1084, 'اکشے': 1085, 'اداکاروں': 1086, 'لاہوراردو': 1087, 'شوٹنگ': 1088, 'شوبز': 1089, 'شادی': 1090, 'ممبئیاردو': 1091, 'ہدایتکار': 1092, 'نمائش': 1093, 'لاس': 1094, 'اینجلس': 1095, 'سینما': 1096, 'ہےفلم': 1097, 'گلوکارہ': 1098, 'اواز': 1099, 'ایان': 1100, 'عالیہ': 1101, 'ڈرامے': 1102, 'تھیٹر': 1103, 'ڈراموں': 1104, 'فلمیں': 1105, 'موسیقی': 1106, 'فلمی': 1107, 'بھٹ': 1108, 'انوشکا': 1109, 'شرما': 1110, 'سنگھ': 1111, 'دپیکا': 1112, 'سٹار': 1113, 'کرن': 1114}\n" ] } ], "source": [ "vocab_to_int = {} \n", "threshold = 20\n", "\n", "value = 0\n", "for word in All_Word_frequencies:\n", " if All_Word_frequencies[word] >= threshold or word in embeddings_index:\n", " vocab_to_int[word] = value\n", " value += 1\n", "print(vocab_to_int)\n", "# Special tokens that will be added to our vocab\n", "codes = [\"\",\"\",\"\",\"\"] \n", "\n", "# Add codes to vocab\n", "for code in codes:\n", " vocab_to_int[code] = len(vocab_to_int)\n", "\n" ] }, { "cell_type": "code", "execution_count": 20, "id": "47477b85", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1119\n" ] } ], "source": [ "# Need to use 300 for embedding dimensions to match CN's vectors.\n", "embedding_dim = 300\n", "nb_words = len(vocab_to_int)\n", "\n", "# Create matrix with default values of zero\n", "word_embedding_matrix = np.zeros((nb_words, embedding_dim), dtype=np.float32)\n", "for word, i in vocab_to_int.items():\n", " if word in embeddings_index:\n", " word_embedding_matrix[i] = embeddings_index[word]\n", " else:\n", " # If word not in CN, create a random embedding for it\n", " new_embedding = np.array(np.random.uniform(-1.0, 1.0, embedding_dim))\n", " #embeddings_index[word] = new_embedding\n", " word_embedding_matrix[i] = new_embedding\n", "\n", "# Check if value matches len(vocab_to_int)\n", "print(len(word_embedding_matrix))" ] }, { "cell_type": "code", "execution_count": null, "id": "1c3a6498", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d782d5c9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "bdf695bc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "09a0e47d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "670c8ba0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e51a8b94", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "14ab1851", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "248ff858", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "1f4b6a85", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "a20a66bc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "bdd3493d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e086da3f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 53, "id": "45132a70", "metadata": {}, "outputs": [], "source": [ "def model_inputs():\n", " '''Create palceholders for inputs to the model'''\n", " \n", " input_data = tf1.placeholder(tf1.int32, [None, None], name='input')\n", " targets = tf1.placeholder(tf1.int32, [None, None], name='targets')\n", " lr = tf1.placeholder(tf1.float32, name='learning_rate')\n", " keep_prob = tf1.placeholder(tf1.float32, name='keep_prob')\n", " summary_length = tf1.placeholder(tf1.int32, (None,), name='summary_length')\n", " max_summary_length = tf1.reduce_max(summary_length, name='max_dec_len')\n", " text_length = tf1.placeholder(tf1.int32, (None,), name='text_length')\n", "\n", " return input_data, targets, lr, keep_prob, summary_length, max_summary_length, text_length" ] }, { "cell_type": "code", "execution_count": 43, "id": "296f1762", "metadata": {}, "outputs": [], "source": [ "def process_encoding_input(target_data, vocab_to_int, batch_size):\n", " '''Remove the last word id from each batch and concat the to the begining of each batch'''\n", " \n", " ending = tf.strided_slice(target_data, [0, 0], [batch_size, -1], [1, 1])\n", " dec_input = tf.concat([tf.fill([batch_size, 1], vocab_to_int['']), ending], 1)\n", "\n", " return dec_input" ] }, { "cell_type": "code", "execution_count": 44, "id": "f910993a", "metadata": {}, "outputs": [], "source": [ "def encoding_layer(rnn_size, sequence_length, num_layers, rnn_inputs, keep_prob):\n", " '''Create the encoding layer'''\n", " \n", " for layer in range(num_layers):\n", " with tf.variable_scope('encoder_{}'.format(layer)):\n", " cell_fw = tf.contrib.rnn.LSTMCell(rnn_size,\n", " initializer=tf.random_uniform_initializer(-0.1, 0.1, seed=2))\n", " cell_fw = tf.contrib.rnn.DropoutWrapper(cell_fw, \n", " input_keep_prob = keep_prob)\n", "\n", " cell_bw = tf.contrib.rnn.LSTMCell(rnn_size,\n", " initializer=tf.random_uniform_initializer(-0.1, 0.1, seed=2))\n", " cell_bw = tf.contrib.rnn.DropoutWrapper(cell_bw, \n", " input_keep_prob = keep_prob)\n", "\n", " enc_output, enc_state = tf.nn.bidirectional_dynamic_rnn(cell_fw, \n", " cell_bw, \n", " rnn_inputs,\n", " sequence_length,\n", " dtype=tf.float32)\n", " # Join outputs since we are using a bidirectional RNN\n", " enc_output = tf.concat(enc_output,2)\n", " \n", " return enc_output, enc_state" ] }, { "cell_type": "code", "execution_count": 45, "id": "67ec436a", "metadata": {}, "outputs": [], "source": [ "def training_decoding_layer(dec_embed_input, summary_length, dec_cell, initial_state, output_layer, \n", " vocab_size, max_summary_length):\n", " '''Create the training logits'''\n", " \n", " training_helper = tf.contrib.seq2seq.TrainingHelper(inputs=dec_embed_input,\n", " sequence_length=summary_length,\n", " time_major=False)\n", "\n", " training_decoder = tf.contrib.seq2seq.BasicDecoder(dec_cell,\n", " training_helper,\n", " initial_state,\n", " output_layer) \n", "\n", " training_logits, _ = tf.contrib.seq2seq.dynamic_decode(training_decoder,\n", " output_time_major=False,\n", " impute_finished=True,\n", " maximum_iterations=max_summary_length)\n", " return training_logits" ] }, { "cell_type": "code", "execution_count": 46, "id": "a7659205", "metadata": {}, "outputs": [], "source": [ "def inference_decoding_layer(embeddings, start_token, end_token, dec_cell, initial_state, output_layer,\n", " max_summary_length, batch_size):\n", " '''Create the inference logits'''\n", " \n", " start_tokens = tf.tile(tf.constant([start_token], dtype=tf.int32), [batch_size], name='start_tokens')\n", " \n", " inference_helper = tf.contrib.seq2seq.GreedyEmbeddingHelper(embeddings,\n", " start_tokens,\n", " end_token)\n", " \n", " inference_decoder = tf.contrib.seq2seq.BasicDecoder(dec_cell,\n", " inference_helper,\n", " initial_state,\n", " output_layer)\n", " \n", " inference_logits, _ = tf.contrib.seq2seq.dynamic_decode(inference_decoder,\n", " output_time_major=False,\n", " impute_finished=True,\n", " maximum_iterations=max_summary_length)\n", " \n", " return inference_logits" ] }, { "cell_type": "code", "execution_count": 47, "id": "732bea16", "metadata": {}, "outputs": [], "source": [ "def decoding_layer(dec_embed_input, embeddings, enc_output, enc_state, vocab_size, text_length, summary_length, \n", " max_summary_length, rnn_size, vocab_to_int, keep_prob, batch_size, num_layers):\n", " '''Create the decoding cell and attention for the training and inference decoding layers'''\n", " \n", " for layer in range(num_layers):\n", " with tf.variable_scope('decoder_{}'.format(layer)):\n", " lstm = tf.contrib.rnn.LSTMCell(rnn_size,\n", " initializer=tf.random_uniform_initializer(-0.1, 0.1, seed=2))\n", " dec_cell = tf.contrib.rnn.DropoutWrapper(lstm, \n", " input_keep_prob = keep_prob)\n", " \n", " output_layer = Dense(vocab_size,\n", " kernel_initializer = tf.truncated_normal_initializer(mean = 0.0, stddev=0.1))\n", " \n", " #Attention Mechanism\n", " attn_mech = tf.contrib.seq2seq.BahdanauAttention(rnn_size,\n", " enc_output,\n", " text_length,\n", " normalize=False,\n", " name='BahdanauAttention')\n", "\n", " dec_cell = tf.contrib.seq2seq.DynamicAttentionWrapper(dec_cell,\n", " attn_mech,\n", " rnn_size)\n", " \n", " initial_state = tf.contrib.seq2seq.DynamicAttentionWrapperState(enc_state[0],\n", " _zero_state_tensors(rnn_size, \n", " batch_size, \n", " tf.float32)) \n", " with tf.variable_scope(\"decode\"):\n", " training_logits = training_decoding_layer(dec_embed_input, \n", " summary_length, \n", " dec_cell, \n", " initial_state,\n", " output_layer,\n", " vocab_size, \n", " max_summary_length)\n", " with tf.variable_scope(\"decode\", reuse=True):\n", " inference_logits = inference_decoding_layer(embeddings, \n", " vocab_to_int[''], \n", " vocab_to_int[''],\n", " dec_cell, \n", " initial_state, \n", " output_layer,\n", " max_summary_length,\n", " batch_size)\n", "\n", " return training_logits, inference_logits" ] }, { "cell_type": "code", "execution_count": 48, "id": "187a1885", "metadata": {}, "outputs": [], "source": [ "def seq2seq_model(input_data, target_data, keep_prob, text_length, summary_length, max_summary_length, \n", " vocab_size, rnn_size, num_layers, vocab_to_int, batch_size):\n", " '''Use the previous functions to create the training and inference logits'''\n", " \n", " # Use Numberbatch's embeddings and the newly created ones as our embeddings\n", " embeddings = word_embedding_matrix\n", " \n", " enc_embed_input = tf.nn.embedding_lookup(embeddings, input_data)\n", " enc_output, enc_state = encoding_layer(rnn_size, text_length, num_layers, enc_embed_input, keep_prob)\n", " \n", " dec_input = process_encoding_input(target_data, vocab_to_int, batch_size)\n", " dec_embed_input = tf.nn.embedding_lookup(embeddings, dec_input)\n", " \n", " training_logits, inference_logits = decoding_layer(dec_embed_input, \n", " embeddings,\n", " enc_output,\n", " enc_state, \n", " vocab_size, \n", " text_length, \n", " summary_length, \n", " max_summary_length,\n", " rnn_size, \n", " vocab_to_int, \n", " keep_prob, \n", " batch_size,\n", " num_layers)\n", " \n", " return training_logits, inference_logits" ] }, { "cell_type": "code", "execution_count": 49, "id": "c22012e2", "metadata": {}, "outputs": [], "source": [ "def pad_sentence_batch(sentence_batch):\n", " \"\"\"Pad sentences with so that each sentence of a batch has the same length\"\"\"\n", " max_sentence = max([len(sentence) for sentence in sentence_batch])\n", " return [sentence + [vocab_to_int['']] * (max_sentence - len(sentence)) for sentence in sentence_batch]" ] }, { "cell_type": "code", "execution_count": 50, "id": "22d8b91f", "metadata": {}, "outputs": [], "source": [ "def get_batches(summaries, texts, batch_size):\n", " \"\"\"Batch summaries, texts, and the lengths of their sentences together\"\"\"\n", " for batch_i in range(0, len(texts)//batch_size):\n", " start_i = batch_i * batch_size\n", " summaries_batch = summaries[start_i:start_i + batch_size]\n", " texts_batch = texts[start_i:start_i + batch_size]\n", " pad_summaries_batch = np.array(pad_sentence_batch(summaries_batch))\n", " pad_texts_batch = np.array(pad_sentence_batch(texts_batch))\n", " \n", " # Need the lengths for the _lengths parameters\n", " pad_summaries_lengths = []\n", " for summary in pad_summaries_batch:\n", " pad_summaries_lengths.append(len(summary))\n", " \n", " pad_texts_lengths = []\n", " for text in pad_texts_batch:\n", " pad_texts_lengths.append(len(text))\n", " \n", " yield pad_summaries_batch, pad_texts_batch, pad_summaries_lengths, pad_texts_lengths" ] }, { "cell_type": "code", "execution_count": 51, "id": "5a11d140", "metadata": {}, "outputs": [], "source": [ "# Set the Hyperparameters\n", "epochs = 50 # use 100\n", "batch_size = 64\n", "rnn_size = 256\n", "num_layers = 3\n", "learning_rate = 0.008\n", "keep_probability = 0.75" ] }, { "cell_type": "code", "execution_count": 55, "id": "1aa9df33", "metadata": {}, "outputs": [], "source": [ "train_graph = tf.Graph()\n", "# Set the graph to default to ensure that it is ready for training\n", "with train_graph.as_default():\n", " \n", " # Load the model inputs \n", " input_data, targets, lr, keep_prob, summary_length, max_summary_length, text_length = model_inputs()\n", "\n", " # Create the training and inference logits\n", " training_logits, inference_logits = seq2seq_model(tf.reverse(input_data, [-1]),\n", " targets, \n", " keep_prob, \n", " text_length,\n", " summary_length,\n", " max_summary_length,\n", " len(vocab_to_int)+1,\n", " rnn_size, \n", " num_layers, \n", " vocab_to_int,\n", " batch_size)\n", " \n", " # Create tensors for the training logits and inference logits\n", " training_logits = tf.identity(training_logits.rnn_output, 'logits')\n", " inference_logits = tf.identity(inference_logits.sample_id, name='predictions')\n", " \n", " # Create the weights for sequence_loss\n", " masks = tf.sequence_mask(summary_length, max_summary_length, dtype=tf.float32, name='masks')\n", "\n", " with tf.name_scope(\"optimization\"):\n", " # Loss function\n", " cost = tf.contrib.seq2seq.sequence_loss(\n", " training_logits,\n", " targets,\n", " masks)\n", "\n", " # Optimizer\n", " optimizer = tf.train.AdamOptimizer(learning_rate)\n", "\n", " # Gradient Clipping\n", " gradients = optimizer.compute_gradients(cost)\n", " capped_gradients = [(tf.clip_by_value(grad, -5., 5.), var) for grad, var in gradients if grad is not None]\n", " train_op = optimizer.apply_gradients(capped_gradients)\n", "print(\"Graph is built.\")" ] }, { "cell_type": "code", "execution_count": null, "id": "b672de49", "metadata": {}, "outputs": [], "source": [ "# Train the Model\n", "learning_rate_decay = 0.95\n", "min_learning_rate = 0.0005\n", "display_step = 5 # Check training loss after every 20 batches\n", "stop_early = 0 \n", "stop = 3 # If the update loss does not decrease in 3 consecutive update checks, stop training\n", "per_epoch = 3 # Make 3 update checks per epoch\n", "update_check = (len(sorted_texts)//batch_size//per_epoch)-1\n", "\n", "update_loss = 0 \n", "batch_loss = 0\n", "summary_update_loss = [] # Record the update losses for saving improvements in the model\n", "\n", "\n", "\n", "#uncomment the above line for new training." ] }, { "cell_type": "code", "execution_count": null, "id": "99dcf413", "metadata": {}, "outputs": [], "source": [ "print(\"Training will Strat now.\")\n", "with tf.Session(graph=train_graph) as sess:\n", " sess.run(tf.global_variables_initializer())\n", " \n", " # If we want to continue training a previous session\n", "\n", " #loader = tf.train.import_meta_graph(\"C:/Users/shrey/OneDrive/Study/Bennett/Sem2/HPC/Project/amazon_fine_food_review_summarizer/best_model.ckpt.meta\")\n", " #loader.restore(sess, checkpoint)\n", " \n", " #by commenting above 2 lines the code will start retrain the model. \n", " \n", " for epoch_i in range(1, epochs+1):\n", " update_loss = 0\n", " batch_loss = 0\n", " for batch_i, (summaries_batch, texts_batch, summaries_lengths, texts_lengths) in enumerate(\n", " get_batches(sorted_summaries, sorted_texts, batch_size)):\n", " start_time = time.time()\n", " _, loss = sess.run(\n", " [train_op, cost],\n", " {input_data: texts_batch,\n", " targets: summaries_batch,\n", " lr: learning_rate,\n", " summary_length: summaries_lengths,\n", " text_length: texts_lengths,\n", " keep_prob: keep_probability})\n", "\n", " batch_loss += loss\n", " update_loss += loss\n", " end_time = time.time()\n", " batch_time = end_time - start_time\n", "\n", " if batch_i % display_step == 0 and batch_i > 0:\n", " print('Epoch {:>3}/{} Batch {:>4}/{} - Loss: {:>6.3f}, Seconds: {:>4.2f}'\n", " .format(epoch_i,\n", " epochs, \n", " batch_i, \n", " len(sorted_texts) // batch_size, \n", " batch_loss / display_step, \n", " batch_time*display_step))\n", " batch_loss = 0\n", "\n", " if batch_i % update_check == 0 and batch_i > 0:\n", " print(\"Average loss for this update:\", round(update_loss/update_check,3))\n", " summary_update_loss.append(update_loss)\n", " \n", " # If the update loss is at a new minimum, save the model\n", " if update_loss <= min(summary_update_loss):\n", " print('New Record!') \n", " stop_early = 0\n", " saver = tf.train.Saver() \n", " saver.save(sess, checkpoint)\n", "\n", " else:\n", " print(\"No Improvement.\")\n", " stop_early += 1\n", " if stop_early == stop:\n", " break\n", " update_loss = 0\n", " \n", " saver = tf.train.Saver() \n", " saver.save(sess, checkpoint)\n", "\n", " # Reduce learning rate, but not below its minimum value\n", " learning_rate *= learning_rate_decay\n", " if learning_rate < min_learning_rate:\n", " learning_rate = min_learning_rate\n", " \n", " if stop_early == stop:\n", " print(\"Stopping Training.\")\n", " break\n", "\n", "print(\"Model Trained\")" ] }, { "cell_type": "code", "execution_count": null, "id": "a98b82a4", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "#print(\"Summary updated loss:\", summary_update_loss[:])\n", "#print(\"Updated loss: \", update_loss)\n", "\n", "plt.plot(summary_update_loss[:])\n", "plt.ylabel('Loss')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "bacdcffb", "metadata": {}, "outputs": [], "source": [ "def text_to_seq(text):\n", " '''Prepare the text for the model'''\n", " \n", " return [vocab_to_int.get(word, vocab_to_int['']) for word in text.split()]" ] }, { "cell_type": "code", "execution_count": null, "id": "c8c5482d", "metadata": {}, "outputs": [], "source": [ "count=35\n", "sum_F=12.346860213552002\n", "avg_F=0.3527674346729143" ] }, { "cell_type": "code", "execution_count": null, "id": "cca9955f", "metadata": {}, "outputs": [], "source": [ "loaded_graph = tf.Graph()\n", "with tf.Session(graph=loaded_graph) as sess:\n", " ## Load saved model\n", " loader = tf.train.import_meta_graph(checkpoint + '.meta')\n", " loader.restore(sess, checkpoint)\n", "\n", " input_data = loaded_graph.get_tensor_by_name('input:0')\n", " logits = loaded_graph.get_tensor_by_name('predictions:0')\n", " text_length = loaded_graph.get_tensor_by_name('text_length:0')\n", " summary_length = loaded_graph.get_tensor_by_name('summary_length:0')\n", " keep_prob = loaded_graph.get_tensor_by_name('keep_prob:0')\n", " \n", "## Multiply by batch_size to match the model's input parameters\n", " answer_logits = sess.run(logits, {input_data: [text]*batch_size, \n", " summary_length: [np.random.randint(5,8)], \n", " text_length: [len(text)]*batch_size,\n", " keep_prob: 1.0})[0] \n", "\n", "## Remove the padding from the summary\n", "pad = vocab_to_int[\"\"] \n", "\n", "elapsed_time=time.time()-start_time\n", "\n", "##for custom summary and text, comment this line.\n", "print(\"Index Value: \",random)\n", "\n", "##for custom summary and text use \"input_sequence\" as parameter insted of \"reviews.Text.loc[random]\"\n", "print('\\nOriginal Text:',reviews.Text.loc[random]) #input_sentence) #\n", "\n", "##for custom orignal summary and text uncomment the next line and comment the next to next line.\n", "#ogSum=\"Expired yeast!\"\n", "\n", "ogFile=open(r\"C:\\Users\\Syeda Nimrah\\Downloads\\dataset.xlsx\")\n", "ogFile.write(ogSum)\n", "\n", "ogFile.close()\n", "\n", "print('\\nOrignal Summary: ',ogSum)\n", "\n", "print('\\nText')\n", "print(' Word Ids: {}'.format([i for i in text]))\n", "print(' Input Words: {}'.format(\" \".join([int_to_vocab[i] for i in text])))\n", "\n", "print('\\nSummary')\n", "print(' Word Ids: {}'.format([i for i in answer_logits if i != pad]))\n", "\n", "predSum=\" \".join([int_to_vocab[i] for i in answer_logits if i != pad])\n", "predFile=open(r\"C:\\Users\\Syeda Nimrah\\Downloads\\dataset.xlsx\")\n", "predFile.write(predSum)\n", "\n", "predFile.close()\n", "\n", "print(\" Response Words: \",predSum)\n", "print(\"Time: \", elapsed_time)" ] }, { "cell_type": "code", "execution_count": null, "id": "5809e803", "metadata": {}, "outputs": [], "source": [ "import re\n", "from transformers import AutoTokenizer, AutoModelForSeq2SeqLM\n", "\n", "WHITESPACE_HANDLER = lambda k: re.sub('\\s+', ' ', re.sub('\\n+', ' ', k.strip()))\n", "\n", "article_text = \"\"\"اسلام باد عالمی بینک خیبرپختونخوا کے قبائلی اضلاع میں عسکریت پسندی سے پیدا ہونے والے بحران سے متاثرہ خاندانوں کی جلد بحالی بچوں کی صحت کی بہتری اور شہری مراکز ترسیل میں معاونت کے لیے فنڈز فراہم کرے گااس منصوبے کے لیے عالمی بینک ملٹی ڈونر ٹرسٹ کے تحت ایک کروڑ 20 لاکھ ڈالر فراہم کرے گا جس کے تحت شہریوں کی سہولت کے مراکز قائم کیے جائیں گے جو پوری قبائلی بادی اور اس سے منسلک اضلاع کو خدمات فراہم کرے گاڈان اخبار کی رپورٹ کے مطابق یہ جولائی 2019 میں ایک کروڑ 50 لاکھ ڈالر کی منظوری کے بعد سے منصوبے کی تیسری فنانسنگ ہوگییہ بھی پڑھیں ئندہ سال تک پاکستان میں غربت میں اضافے کا امکان ہے عالمی بینکان سہولیات کے مراکز کے ذریعے منتخب خدمات فراہم کی جائیں گی جس میں وائٹل رجسٹریشن سروس وی ایس سول رجسٹریشن منیجمنٹ سسٹم سی ایم ایس اور نادرا ای سہولت شامل ہے جو اس سے مستفید ہونے والوں کی مزید سرکاری خدمات تک رسائی کو بڑھائے گااس کے علاوہ ئندہ ماہ عالمی بینک کی اضافی فنانسنگ کی منظوری دی جائے گی جو گاہی سیشن میں حاضری سے منسلک نقدی کی منتقلی کے ذریعے بچوں کی صحت کو فروغ دے گیمنصوبے کی دستاویز کے مطابق اضافی سروسز مثلا وی ایس سی ایم ایس نادرا ای سہولت پلیٹ فارم اور دیگر سہولیات کے ساتھ اضلاع بنوں ڈیرہ اسمعیل خان لکی مروت اور ٹانک میں 16 نئے سہولت مراکز قائم کیے جائیں گےوی ایس میں کمپیوٹرائزڈ قومی شناختی کارڈ اور سی سیز کی تجدید اور اجرا سے متعلق تمام خدمات شامل ہوں گیمزید پڑھیں عالمی بینک سندھ میں چھوٹے ڈیموں کی تعمیر کے لیے 20 کروڑ ڈالر قرض دے گااس کے علاوہ بلدیاتی حکومت یا کمشنر کے دفاتر کے تعاون سے سی ایم ایس متعارف کروانے سے شہری بالخصوص خواتین پیدائش شادی اور موت کے سرٹیفکیٹ حاصل کرسکیں گیاس منصوبے پر خیبرپختونخوا میں ضم ہونے والے تمام ساتوں اضلاع میں عملدرمد کیا جارہا ہے ان اضلاع اور ان سے منسلک علاقوں میں شہریوں کی بنیادی سرکاری سروسز تک رسائی میں سیکیورٹی اور رسائی کے مسائل برقرار رہنے تک رکاوٹ ہےتاہم صوبہ خیبرپختونخوا میں ان اضلاع کے انضمام کا پیچیدہ عمل کمزور اداروں اور مسلسل سیکیورٹی خدشات کی وجہ سے اس ایجنڈے کی تکمیل ایک طویل عمل ہےہولوکاسٹ اور نسل کشی پر بین الاقوامی کانفرنس نسل کشی کے مطالعہ کے میدان میں پہلی بڑی کانفرنس تھی اور اس نے نسل کشی کو ایک غیر معقول مظہر کے طور پر دیکھنے سے اس تبدیلی کو نشان زد کیا جس کا مطالعہ اور سمجھا جا سکتا ہے۔ یہ 20-24 جون 1982 کو تل ابیب کے ہلٹن ہوٹل میں منعقد ہوا تھا اور ابتدا میں اس کا اہتمام اسرائیل چارنی، ایلی ویزل، اور شمائی ڈیوڈسن نے کیا تھا۔ ترک حکومت نے کانفرنس کو منسوخ کرنے کی کوشش کی کیونکہ اس میں آرمینیائی نسل کشی کے بارے میں پیشکشیں شامل تھیں، جس کی ترکی تردید کرتا ہے۔ ترکی نے شامی اور ایرانی یہودیوں کے لیے اپنی سرحدیں بند کرنے کی دھمکی دی تھی۔ اس کے جواب میں اسرائیلی حکومت نے شرکاء کو بلایا، یہ دعویٰ کیا کہ کانفرنس منسوخ کر دی گئی ہے اور ان سے شرکت نہ کرنے کو کہا گیا ہے۔ اسرائیلی ہولوکاسٹ کی سرکاری یادگار اور تل ابیب یونیورسٹی سے دستبردار ہو گئے، جیسا کہ ویزل سمیت بہت سے اعلیٰ شخصیات نے شرکت کی۔ منتظمین نے پروگرام سے آرمینیائی نسل کشی کو ہٹانے سے انکار کر دیا اور منصوبہ بندی سے کم شرکاء کے ساتھ کانفرنس کا انعقاد کیا۔ ۔\"\"\"\n", "\n", "model_name = \"csebuetnlp/mT5_multilingual_XLSum\"\n", "tokenizer = AutoTokenizer.from_pretrained(model_name)\n", "model = AutoModelForSeq2SeqLM.from_pretrained(model_name)\n", "\n", "input_ids = tokenizer(\n", " [WHITESPACE_HANDLER(article_text)],\n", " return_tensors=\"pt\",\n", " padding=\"max_length\",\n", " truncation=True,\n", " max_length=6666\n", ")[\"input_ids\"]\n", "\n", "output_ids = model.generate(\n", " input_ids=input_ids,\n", " max_length=5666,\n", " no_repeat_ngram_size=2,\n", " num_beams=4\n", ")[0]\n", "\n", "summary = tokenizer.decode(\n", " output_ids,\n", " skip_special_tokens=True,\n", " clean_up_tokenization_spaces=False\n", ")\n", "\n", "print(summary)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "8b328467", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "3a83c96c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "3051d693", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 9, "id": "20acef6b", "metadata": {}, "outputs": [], "source": [ "# #Remove unwanted characters, stopwords, and format the text to create fewer nulls word embeddings\n", "\n", "# def removing_unwanted_data(text):\n", " \n", "# # Format words and remove unwanted characters\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", " \n", "# # remove stop words\n", "# # if remove_stopwords:\n", "# # text = text.split()\n", "# # stops = set(stopwords.words(\"english\"))\n", "# # text = [w for w in text if not w in stops]\n", "# # text = \" \".join(text)\n", "\n", "# # Tokenize each word\n", "# text = nltk.WordPunctTokenizer().tokenize(text)\n", " \n", "# return text" ] }, { "cell_type": "code", "execution_count": 12, "id": "fda54a42", "metadata": {}, "outputs": [], "source": [ "# urdu_doc['text_cleaned']= list(map(removing_unwanted_data,urdu_doc.iloc[:,2]))" ] }, { "cell_type": "code", "execution_count": 14, "id": "becf492f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [اسلام, باد, فیڈرل, بورڈ, ریونیو, ایف, بی, نے,...\n", "1 [اسلام, باد, بورڈ, انویسٹمنٹ, بی, او, ئی, کے, ...\n", "2 [اسلام, اباد, پاکستان, میں, ماہ, نومبر, میں, م...\n", "3 [اسلام, باد, نیشنل, ٹرانسمیشن, اینڈ, ڈسپیچ, کم...\n", "4 [اقوام, متحدہ, کے, فوڈ, ایجنسی, کا, کہنا, ہے, ...\n", "Name: text_cleaned, dtype: object" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# urdu_doc[\"text_cleaned\"].head()" ] }, { "cell_type": "code", "execution_count": 8, "id": "996482cf", "metadata": {}, "outputs": [], "source": [ "# import json\n", "\n", "# from urduhack.config import LEMMA_LOOKUP_TABLE_PATH\n", "\n", "# _WORD2LEMMA = None\n", "\n", "\n", "# def lemma_lookup(text, lookup_path: str = LEMMA_LOOKUP_TABLE_PATH) -> list:\n", "# tokens = text\n", "# global _WORD2LEMMA\n", "# if _WORD2LEMMA is None:\n", "# with open(lookup_path, \"r\", encoding=\"utf-8\") as file:\n", "# _WORD2LEMMA = json.load(file)\n", "\n", "# return [_WORD2LEMMA[word] if word in _WORD2LEMMA else word for word in tokens]\n", "\n", "# urdu_doc['Lemmatized'] =list(map(lemma_lookup,urdu_doc.text_cleaned))" ] }, { "cell_type": "code", "execution_count": 9, "id": "6667e07c", "metadata": {}, "outputs": [ { "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", "
Sentencestext_cleanedLemmatized
0اسلام باد عالمی بینک خیبرپختونخوا کے قبائلی اض...[اسلام, باد, عالمی, بینک, خیبرپختونخوا, کے, قب...[اسلام, باد, عالمی, بینک, خیبرپختونخوا, کم, قب...
1اسلام باد فیڈرل بورڈ ریونیو ایف بی نے دسمبر کی...[اسلام, باد, فیڈرل, بورڈ, ریونیو, ایف, بی, نے,...[اسلام, باد, فیڈرل, بورڈ, ریونیو, ایف, بد, نے,...
2اسلام باد بورڈ انویسٹمنٹ بی او ئی کے چیئرمین ع...[اسلام, باد, بورڈ, انویسٹمنٹ, بی, او, ئی, کے, ...[اسلام, باد, بورڈ, انویسٹمنٹ, بد, او, ئی, کم, ...
3اسلام اباد پاکستان میں ماہ نومبر میں مسلسل تیس...[اسلام, اباد, پاکستان, میں, ماہ, نومبر, میں, م...[اسلام, اباد, پاکستان, میں, ماہ, نومبر, میں, م...
4اسلام باد نیشنل ٹرانسمیشن اینڈ ڈسپیچ کمپنی این...[اسلام, باد, نیشنل, ٹرانسمیشن, اینڈ, ڈسپیچ, کم...[اسلام, باد, نیشنل, ٹرانسمیشن, اینڈ, ڈسپیچ, کم...
\n", "
" ], "text/plain": [ " Sentences \\\n", "0 اسلام باد عالمی بینک خیبرپختونخوا کے قبائلی اض... \n", "1 اسلام باد فیڈرل بورڈ ریونیو ایف بی نے دسمبر کی... \n", "2 اسلام باد بورڈ انویسٹمنٹ بی او ئی کے چیئرمین ع... \n", "3 اسلام اباد پاکستان میں ماہ نومبر میں مسلسل تیس... \n", "4 اسلام باد نیشنل ٹرانسمیشن اینڈ ڈسپیچ کمپنی این... \n", "\n", " text_cleaned \\\n", "0 [اسلام, باد, عالمی, بینک, خیبرپختونخوا, کے, قب... \n", "1 [اسلام, باد, فیڈرل, بورڈ, ریونیو, ایف, بی, نے,... \n", "2 [اسلام, باد, بورڈ, انویسٹمنٹ, بی, او, ئی, کے, ... \n", "3 [اسلام, اباد, پاکستان, میں, ماہ, نومبر, میں, م... \n", "4 [اسلام, باد, نیشنل, ٹرانسمیشن, اینڈ, ڈسپیچ, کم... \n", "\n", " Lemmatized \n", "0 [اسلام, باد, عالمی, بینک, خیبرپختونخوا, کم, قب... \n", "1 [اسلام, باد, فیڈرل, بورڈ, ریونیو, ایف, بد, نے,... \n", "2 [اسلام, باد, بورڈ, انویسٹمنٹ, بد, او, ئی, کم, ... \n", "3 [اسلام, اباد, پاکستان, میں, ماہ, نومبر, میں, م... \n", "4 [اسلام, باد, نیشنل, ٹرانسمیشن, اینڈ, ڈسپیچ, کم... " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# urdu_doc.head()" ] }, { "cell_type": "code", "execution_count": null, "id": "29635cbd", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }