{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import os; os.chdir('..')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# pip install apache-beam==2.43.0\n", "# pip install --no-deps multiprocess==0.70.14" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name 'get_context' from 'multiprocess' (/home/ubuntu/SentenceStructureComparision/venv/lib/python3.10/site-packages/multiprocess/__init__.py)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m/home/ubuntu/SentenceStructureComparision/wiki_gpt/process_wiki_data.ipynb Cell 3\u001b[0m line \u001b[0;36m1\n\u001b[0;32m----> 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdatasets\u001b[39;00m \u001b[39mimport\u001b[39;00m load_dataset\n\u001b[1;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtqdm\u001b[39;00m \u001b[39mimport\u001b[39;00m tqdm\n\u001b[1;32m 3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mpandas\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mpd\u001b[39;00m\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/__init__.py:22\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39m# flake8: noqa\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[39m# Copyright 2020 The HuggingFace Datasets Authors and the TensorFlow Datasets Authors.\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[39m#\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[39m# pylint: enable=line-too-long\u001b[39;00m\n\u001b[1;32m 18\u001b[0m \u001b[39m# pylint: disable=g-import-not-at-top,g-bad-import-order,wrong-import-position\u001b[39;00m\n\u001b[1;32m 20\u001b[0m __version__ \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m2.14.5\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m---> 22\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39marrow_dataset\u001b[39;00m \u001b[39mimport\u001b[39;00m Dataset\n\u001b[1;32m 23\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39marrow_reader\u001b[39;00m \u001b[39mimport\u001b[39;00m ReadInstruction\n\u001b[1;32m 24\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mbuilder\u001b[39;00m \u001b[39mimport\u001b[39;00m ArrowBasedBuilder, BeamBasedBuilder, BuilderConfig, DatasetBuilder, GeneratorBasedBuilder\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/arrow_dataset.py:67\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m config\n\u001b[1;32m 66\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39marrow_reader\u001b[39;00m \u001b[39mimport\u001b[39;00m ArrowReader\n\u001b[0;32m---> 67\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39marrow_writer\u001b[39;00m \u001b[39mimport\u001b[39;00m ArrowWriter, OptimizedTypedSequence\n\u001b[1;32m 68\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mdata_files\u001b[39;00m \u001b[39mimport\u001b[39;00m sanitize_patterns\n\u001b[1;32m 69\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mdownload\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdownload_config\u001b[39;00m \u001b[39mimport\u001b[39;00m DownloadConfig\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/arrow_writer.py:27\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mpyarrow\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mparquet\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mpq\u001b[39;00m\n\u001b[1;32m 26\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m config\n\u001b[0;32m---> 27\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mfeatures\u001b[39;00m \u001b[39mimport\u001b[39;00m Features, Image, Value\n\u001b[1;32m 28\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mfeatures\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mfeatures\u001b[39;00m \u001b[39mimport\u001b[39;00m (\n\u001b[1;32m 29\u001b[0m FeatureType,\n\u001b[1;32m 30\u001b[0m _ArrayXDExtensionType,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 36\u001b[0m to_pyarrow_listarray,\n\u001b[1;32m 37\u001b[0m )\n\u001b[1;32m 38\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mfilesystems\u001b[39;00m \u001b[39mimport\u001b[39;00m is_remote_filesystem\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/features/__init__.py:17\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39m# flake8: noqa\u001b[39;00m\n\u001b[1;32m 3\u001b[0m __all__ \u001b[39m=\u001b[39m [\n\u001b[1;32m 4\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mAudio\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 5\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mArray2D\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mTranslationVariableLanguages\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 16\u001b[0m ]\n\u001b[0;32m---> 17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39maudio\u001b[39;00m \u001b[39mimport\u001b[39;00m Audio\n\u001b[1;32m 18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mfeatures\u001b[39;00m \u001b[39mimport\u001b[39;00m Array2D, Array3D, Array4D, Array5D, ClassLabel, Features, Sequence, Value\n\u001b[1;32m 19\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mimage\u001b[39;00m \u001b[39mimport\u001b[39;00m Image\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/features/audio.py:11\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m config\n\u001b[1;32m 10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdownload\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdownload_config\u001b[39;00m \u001b[39mimport\u001b[39;00m DownloadConfig\n\u001b[0;32m---> 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdownload\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstreaming_download_manager\u001b[39;00m \u001b[39mimport\u001b[39;00m xopen, xsplitext\n\u001b[1;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtable\u001b[39;00m \u001b[39mimport\u001b[39;00m array_cast\n\u001b[1;32m 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpy_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m no_op_if_value_is_null, string_to_dict\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/download/__init__.py:9\u001b[0m\n\u001b[1;32m 1\u001b[0m __all__ \u001b[39m=\u001b[39m [\n\u001b[1;32m 2\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mDownloadConfig\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 3\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mDownloadManager\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 4\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mDownloadMode\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 5\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mStreamingDownloadManager\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 6\u001b[0m ]\n\u001b[1;32m 8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mdownload_config\u001b[39;00m \u001b[39mimport\u001b[39;00m DownloadConfig\n\u001b[0;32m----> 9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mdownload_manager\u001b[39;00m \u001b[39mimport\u001b[39;00m DownloadManager, DownloadMode\n\u001b[1;32m 10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mstreaming_download_manager\u001b[39;00m \u001b[39mimport\u001b[39;00m StreamingDownloadManager\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/download/download_manager.py:35\u001b[0m\n\u001b[1;32m 33\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39minfo_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m get_size_checksum_dict\n\u001b[1;32m 34\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mlogging\u001b[39;00m \u001b[39mimport\u001b[39;00m get_logger, is_progress_bar_enabled, tqdm\n\u001b[0;32m---> 35\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpy_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m NestedDataStructure, map_nested, size_str\n\u001b[1;32m 36\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mdownload_config\u001b[39;00m \u001b[39mimport\u001b[39;00m DownloadConfig\n\u001b[1;32m 39\u001b[0m logger \u001b[39m=\u001b[39m get_logger(\u001b[39m__name__\u001b[39m)\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/datasets/utils/py_utils.py:41\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mdill\u001b[39;00m\n\u001b[1;32m 40\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmultiprocess\u001b[39;00m\n\u001b[0;32m---> 41\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmultiprocess\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpool\u001b[39;00m\n\u001b[1;32m 42\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mnumpy\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mnp\u001b[39;00m\n\u001b[1;32m 43\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mpackaging\u001b[39;00m \u001b[39mimport\u001b[39;00m version\n", "File \u001b[0;32m~/SentenceStructureComparision/venv/lib/python3.10/site-packages/multiprocess/pool.py:29\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[39m# If threading is available then ThreadPool should be provided. Therefore\u001b[39;00m\n\u001b[1;32m 27\u001b[0m \u001b[39m# we avoid top-level imports which are liable to fail on some systems.\u001b[39;00m\n\u001b[1;32m 28\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m util\n\u001b[0;32m---> 29\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m get_context, \u001b[39mTimeoutError\u001b[39;00m\n\u001b[1;32m 30\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mconnection\u001b[39;00m \u001b[39mimport\u001b[39;00m wait\n\u001b[1;32m 32\u001b[0m \u001b[39m#\u001b[39;00m\n\u001b[1;32m 33\u001b[0m \u001b[39m# Constants representing the state of a pool\u001b[39;00m\n\u001b[1;32m 34\u001b[0m \u001b[39m#\u001b[39;00m\n", "\u001b[0;31mImportError\u001b[0m: cannot import name 'get_context' from 'multiprocess' (/home/ubuntu/SentenceStructureComparision/venv/lib/python3.10/site-packages/multiprocess/__init__.py)" ] } ], "source": [ "from datasets import load_dataset\n", "from tqdm import tqdm\n", "import pandas as pd\n", "import pyarrow as pa\n", "import pyarrow.compute as pc\n", "import re\n", "import pyarrow.dataset as ds" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading: 100%|██████████| 15.3k/15.3k [00:00<00:00, 19.5MB/s]\n", "Downloading: 3%|▎ | 703M/20.3G [00:11<05:19, 61.2MB/s] " ] } ], "source": [ "dataset = load_dataset(\"wikipedia\", \"20220301.en\", split=\"train\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data_df = dataset.to_pandas()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def keep_intro(text):\n", " return re.sub(r'\\(\\W*\\)', '', ' '.join(text.split('\\n\\n')[:2]))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "data_df['intro'] = data_df.apply(lambda row: keep_intro(row['text']), axis=1)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "data_df[['id', 'title', 'url', 'intro']].to_csv('wiki_intro.csv', index=False)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data_df = pd.read_csv('wiki_intro.csv')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6458670" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data_df)" ] }, { "cell_type": "code", "execution_count": 5, "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", " \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", " \n", " \n", " \n", " \n", " \n", "
idtitleurlintro
012Anarchismhttps://en.wikipedia.org/wiki/AnarchismAnarchism is a political philosophy and moveme...
125Autismhttps://en.wikipedia.org/wiki/AutismAutism is a neurodevelopmental disorder charac...
239Albedohttps://en.wikipedia.org/wiki/AlbedoAlbedo is the measure of the diffuse reflecti...
3290Ahttps://en.wikipedia.org/wiki/AA, or a, is the first letter and the first vow...
4303Alabamahttps://en.wikipedia.org/wiki/AlabamaAlabama is a state in the Southeastern region...
...............
645866570201819Bianca Fernandezhttps://en.wikipedia.org/wiki/Bianca%20FernandezBianca Jolie Fernandez (born 24 February 2004)...
645866670201882Condons and Clangibbonhttps://en.wikipedia.org/wiki/Condons%20and%20...Condons and Clangibbon is a barony in County ...
6458667702018862022 Chattanooga Red Wolves SC seasonhttps://en.wikipedia.org/wiki/2022%20Chattanoo...The 2022 Chattanooga Red Wolves SC season will...
645866870201947Nkiko Prosperhttps://en.wikipedia.org/wiki/Nkiko%20ProsperTuratsinze Nkiko Prosper (born 1985) professio...
645866970201959Michael O'Donnell (Missouri politician)https://en.wikipedia.org/wiki/Michael%20O%27Do...Michael A. O'Donnell (born June 17, 1968) is a...
\n", "

6458670 rows × 4 columns

\n", "
" ], "text/plain": [ " id title \\\n", "0 12 Anarchism \n", "1 25 Autism \n", "2 39 Albedo \n", "3 290 A \n", "4 303 Alabama \n", "... ... ... \n", "6458665 70201819 Bianca Fernandez \n", "6458666 70201882 Condons and Clangibbon \n", "6458667 70201886 2022 Chattanooga Red Wolves SC season \n", "6458668 70201947 Nkiko Prosper \n", "6458669 70201959 Michael O'Donnell (Missouri politician) \n", "\n", " url \\\n", "0 https://en.wikipedia.org/wiki/Anarchism \n", "1 https://en.wikipedia.org/wiki/Autism \n", "2 https://en.wikipedia.org/wiki/Albedo \n", "3 https://en.wikipedia.org/wiki/A \n", "4 https://en.wikipedia.org/wiki/Alabama \n", "... ... \n", "6458665 https://en.wikipedia.org/wiki/Bianca%20Fernandez \n", "6458666 https://en.wikipedia.org/wiki/Condons%20and%20... \n", "6458667 https://en.wikipedia.org/wiki/2022%20Chattanoo... \n", "6458668 https://en.wikipedia.org/wiki/Nkiko%20Prosper \n", "6458669 https://en.wikipedia.org/wiki/Michael%20O%27Do... \n", "\n", " intro \n", "0 Anarchism is a political philosophy and moveme... \n", "1 Autism is a neurodevelopmental disorder charac... \n", "2 Albedo is the measure of the diffuse reflecti... \n", "3 A, or a, is the first letter and the first vow... \n", "4 Alabama is a state in the Southeastern region... \n", "... ... \n", "6458665 Bianca Jolie Fernandez (born 24 February 2004)... \n", "6458666 Condons and Clangibbon is a barony in County ... \n", "6458667 The 2022 Chattanooga Red Wolves SC season will... \n", "6458668 Turatsinze Nkiko Prosper (born 1985) professio... \n", "6458669 Michael A. O'Donnell (born June 17, 1968) is a... \n", "\n", "[6458670 rows x 4 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_df" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Data Cleaning" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "data_df = data_df[data_df.apply(lambda x : len(str(x['title'])) > 1, axis = 1)]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/b5/qwcw21mn3973c1z_c12dw6hw0000gn/T/ipykernel_849/2014648341.py:1: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " data_df['intro_len'] = data_df.apply(lambda row: len(row['intro'].split(' ')), axis = 1)\n" ] } ], "source": [ "data_df['intro_len'] = data_df.apply(lambda row: len(row['intro'].split(' ')), axis = 1)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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J3RcCgAAELfa9QbWuXPnau7cuS2uKy0tjXh811136a677mrP0wAAgMMA300DAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgijICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgijICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgijICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgijICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgKtF6AgAgScMWvKBAo896Gh3O38XpT2OtZwHENq6MAAAAU5QRAABgijICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgijICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU5QRAABgijICAABMUUYAAICpROsJAMDhYNiCFxRo9FlPo8P5uzj9aaz1LBDvuDICAABMUUYAAIApyggAADBFGQEAAKYoIwAAwBRlBAAAmKKMAAAAU+36nJGlS5fq9ttvV01NjXJycnTPPfdo7NjWbzRftWqVbr75Zn300UcaMmSIbrvtNp1zzjntnjQAILZ49XNUJD5L5VCI+srIY489pvz8fM2fP19vvPGGcnJyNGnSJO3cubPF8a+88opmzJihyy67TJs3b9a0adM0bdo0bd269QdPHgAAxL+or4zceeedmj17ti655BJJ0rJly/TMM8/ooYce0g033NBs/N13363JkyfruuuukyQtWrRIxcXFuvfee7Vs2bIfOH0AAA4Nr179iYUrP1GVkf3796uiokIFBQXhZQkJCcrLy1NZWVmL25SVlSk/Pz9i2aRJk7RmzZpWnycQCCgQCIQf19XVSZJ27dqlYDAYzZQPKBgMqqGhQYnBBDWGvHeCSVJiyKmhIeTZjOSLf17PSL745/WMTfm+/PJLJSUldei+9+zZI0lyzh14DtHs9IsvvlBjY6PS09Mjlqenp+vdd99tcZuampoWx9fU1LT6PIWFhVq4cGGz5dnZ2dFMF//fTOsJdDLyxT+vZyRf/PN6xs7Ot2fPHvXs2bPV9TH5RXkFBQURV1NCoZB27dqlI488Uj5fx7XS+vp69evXT5988olSU1M7bL+xxOsZyRf/vJ6RfPHP6xk7M59zTnv27FFWVtYBx0VVRtLS0tSlSxfV1tZGLK+trVVGRkaL22RkZEQ1XpL8fr/8fn/Esl69ekUz1aikpqZ68gT7Lq9nJF/883pG8sU/r2fsrHwHuiLSJKq7aZKTkzV69GiVlJSEl4VCIZWUlCg3N7fFbXJzcyPGS1JxcXGr4wEAwOEl6pdp8vPzNWvWLI0ZM0Zjx47VkiVLtG/fvvDdNRdffLH69u2rwsJCSdK8efN05plnavHixZo6dapWrlyp8vJyPfDAAx2bBAAAxKWoy8j06dP1+eef65ZbblFNTY1OOukkPf/88+E3qVZXVysh4X8XXE499VStWLFCv/vd73TjjTdqyJAhWrNmjYYNG9ZxKdrJ7/dr/vz5zV4S8hKvZyRf/PN6RvLFP69njIV8Pnew+20AAAA6Ed9NAwAATFFGAACAKcoIAAAwRRkBAACmDusysnTpUg0cOFBdu3bVuHHj9Nprr1lPqV0WLFggn88X8XPccceF13/99deaM2eOjjzySHXv3l0//elPm30QXSzZsGGDzj33XGVlZcnn8zX7HiPnnG655RZlZmaqW7duysvL0/vvvx8xZteuXbrooouUmpqqXr166bLLLtPevXsPYYoDO1jGX/7yl82O6eTJkyPGxHLGwsJCnXzyyerRo4f69OmjadOmqaqqKmJMW87L6upqTZ06VSkpKerTp4+uu+46ffPNN4cySovakm/8+PHNjuGVV14ZMSZW891///0aMWJE+EOwcnNz9dxzz4XXx/Oxa3KwjPF8/Fpy6623yufz6eqrrw4vi6nj6A5TK1eudMnJye6hhx5yb731lps9e7br1auXq62ttZ5a1ObPn+9OPPFEt2PHjvDP559/Hl5/5ZVXun79+rmSkhJXXl7uTjnlFHfqqacazvjAnn32WXfTTTe5J5980klyq1evjlh/6623up49e7o1a9a4f//73+68885z2dnZ7quvvgqPmTx5ssvJyXGvvvqq+9e//uUGDx7sZsyYcYiTtO5gGWfNmuUmT54ccUx37doVMSaWM06aNMk9/PDDbuvWra6ystKdc845rn///m7v3r3hMQc7L7/55hs3bNgwl5eX5zZv3uyeffZZl5aW5goKCiwiRWhLvjPPPNPNnj074hjW1dWF18dyvn/84x/umWeece+9956rqqpyN954o0tKSnJbt251zsX3sWtysIzxfPy+77XXXnMDBw50I0aMcPPmzQsvj6XjeNiWkbFjx7o5c+aEHzc2NrqsrCxXWFhoOKv2mT9/vsvJyWlx3e7du11SUpJbtWpVeNk777zjJLmysrJDNMP2+/4v6lAo5DIyMtztt98eXrZ7927n9/vdo48+6pxz7u2333aS3Ouvvx4e89xzzzmfz+c+/fTTQzb3tmqtjJx//vmtbhNvGXfu3OkkufXr1zvn2nZePvvssy4hIcHV1NSEx9x///0uNTXVBQKBQxvgIL6fz7lvf5l99z/+74unfM45d8QRR7gHH3zQc8fuu5oyOued47dnzx43ZMgQV1xcHJEp1o7jYfkyzf79+1VRUaG8vLzwsoSEBOXl5amsrMxwZu33/vvvKysrS4MGDdJFF12k6upqSVJFRYWCwWBE1uOOO079+/ePy6zbt29XTU1NRJ6ePXtq3Lhx4TxlZWXq1auXxowZEx6Tl5enhIQEbdq06ZDPub1KS0vVp08fDR06VFdddZW+/PLL8Lp4y1hXVydJ6t27t6S2nZdlZWUaPnx4xLd+T5o0SfX19XrrrbcO4ewP7vv5mvz9739XWlqahg0bpoKCAjU0NITXxUu+xsZGrVy5Uvv27VNubq7njp3UPGMTLxy/OXPmaOrUqRHHS4q9f4Mx+a29ne2LL75QY2NjxF+wJKWnp+vdd981mlX7jRs3TkVFRRo6dKh27NihhQsX6vTTT9fWrVtVU1Oj5OTkZl80mJ6erpqaGpsJ/wBNc27p2DWtq6mpUZ8+fSLWJyYmqnfv3nGTefLkybrggguUnZ2tDz74QDfeeKOmTJmisrIydenSJa4yhkIhXX311TrttNPCn7zclvOypqamxePctC5WtJRPkmbOnKkBAwYoKytLb775pn7729+qqqpKTz75pKTYz7dlyxbl5ubq66+/Vvfu3bV69WqdcMIJqqys9Myxay2jFP/HT5JWrlypN954Q6+//nqzdbH2b/CwLCNeM2XKlPCfR4wYoXHjxmnAgAF6/PHH1a1bN8OZob1+/vOfh/88fPhwjRgxQsccc4xKS0s1YcIEw5lFb86cOdq6das2btxoPZVO0Vq+K664Ivzn4cOHKzMzUxMmTNAHH3ygY4455lBPM2pDhw5VZWWl6urq9MQTT2jWrFlav3699bQ6VGsZTzjhhLg/fp988onmzZun4uJide3a1Xo6B3VYvkyTlpamLl26NHvXcG1trTIyMoxm1XF69eqlY489Vtu2bVNGRob279+v3bt3R4yJ16xNcz7QscvIyNDOnTsj1n/zzTfatWtXXGaWpEGDBiktLU3btm2TFD8Z586dq6efflovvfSSjj766PDytpyXGRkZLR7npnWxoLV8LRk3bpwkRRzDWM6XnJyswYMHa/To0SosLFROTo7uvvtuzxw7qfWMLYm341dRUaGdO3dq1KhRSkxMVGJiotavX68///nPSkxMVHp6ekwdx8OyjCQnJ2v06NEqKSkJLwuFQiopKYl4vTBe7d27Vx988IEyMzM1evRoJSUlRWStqqpSdXV1XGbNzs5WRkZGRJ76+npt2rQpnCc3N1e7d+9WRUVFeMy6desUCoXC/6HEm//85z/68ssvlZmZKSn2MzrnNHfuXK1evVrr1q1TdnZ2xPq2nJe5ubnasmVLROkqLi5Wampq+FK6lYPla0llZaUkRRzDWM3XklAopEAgEPfH7kCaMrYk3o7fhAkTtGXLFlVWVoZ/xowZo4suuij855g6jh36dtg4snLlSuf3+11RUZF7++233RVXXOF69eoV8a7heHHNNde40tJSt337dvfyyy+7vLw8l5aW5nbu3Omc+/b2rf79+7t169a58vJyl5ub63Jzc41n3bo9e/a4zZs3u82bNztJ7s4773SbN292H3/8sXPu21t7e/Xq5Z566in35ptvuvPPP7/FW3tHjhzpNm3a5DZu3OiGDBkSM7e9OnfgjHv27HHXXnutKysrc9u3b3cvvviiGzVqlBsyZIj7+uuvw/uI5YxXXXWV69mzpystLY24NbKhoSE85mDnZdNthRMnTnSVlZXu+eefd0cddVRM3Dp5sHzbtm1zv//97115ebnbvn27e+qpp9ygQYPcGWecEd5HLOe74YYb3Pr169327dvdm2++6W644Qbn8/nc2rVrnXPxfeyaHChjvB+/1nz/DqFYOo6HbRlxzrl77rnH9e/f3yUnJ7uxY8e6V1991XpK7TJ9+nSXmZnpkpOTXd++fd306dPdtm3bwuu/+uor96tf/codccQRLiUlxf3kJz9xO3bsMJzxgb300ktOUrOfWbNmOee+vb335ptvdunp6c7v97sJEya4qqqqiH18+eWXbsaMGa579+4uNTXVXXLJJW7Pnj0GaVp2oIwNDQ1u4sSJ7qijjnJJSUluwIABbvbs2c2KcixnbCmbJPfwww+Hx7TlvPzoo4/clClTXLdu3VxaWpq75pprXDAYPMRpmjtYvurqanfGGWe43r17O7/f7wYPHuyuu+66iM+pcC5281166aVuwIABLjk52R111FFuwoQJ4SLiXHwfuyYHyhjvx6813y8jsXQcfc4517HXWgAAANrusHzPCAAAiB2UEQAAYIoyAgAATFFGAACAKcoIAAAwRRkBAACmKCMAAMAUZQQAAJiijAAAAFOUEQAAYIoyAgAATFFGAACAqf8Hc7Wzy0owsBoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data_df['intro_len'].hist(bins=[0,50,100,150,200,250,300,350,400])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "data_df = data_df[data_df['intro_len'].between(150, 350)]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "data_df['title_len'] = data_df.apply(lambda row: len(row['title'].split(' ')), axis = 1)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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bDNnztRTTz2lyZMna9CgQXrooYdUUFCgkpKSYLcGSYmJiZKkurq6gOV1dXXWuvZEEMI18fv9ysvL05tvvqktW7YoJSUl2C0ZbcyYMdq/f79qa2utn+HDh+vBBx9UbW2tIiIigt2iUe66666LPk7ib3/7m/r27Rukjsx29uxZhYcH/rqLiIhQc3NzkDrChVJSUpSYmKjKykprmcfj0c6dO+VwONr98Tk0hmuSm5urVatW6fe//726du1qHceNi4tTTExMkLszT9euXS86P6tz587q2bMn520FQUFBge6880795Cc/0b//+79r165devnll/Xyyy8HuzUj3XPPPXr++efVp08f3XrrrXr33Xe1cOFCPfLII8FuzRhnzpzRhx9+aN0+cuSIamtr1aNHD/Xp00f5+fl67rnndPPNNyslJUXPPPOMkpKSrCvL2pUfuAaSLvnz+uuvB7s1/H//9m//5n/iiSeC3Yax3nrrLf/AgQP9NpvN379/f//LL78c7JaM5fF4/E888YS/T58+/ujoaP83v/lN/49//GO/1+sNdmvG+NOf/nTJ3xk5OTl+v9/vb25u9j/zzDP+hIQEv81m848ZM8Z/+PDhf0lvfI4QAAAwFucIAQAAYxGEAACAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAAICxCEIAAMBYBCEAAGCs/wdaTjD4nrBYpAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data_df.title_len.hist(bins=[1,2,3,4,5,6,7,8,9,10])" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "data_df = data_df[data_df['title_len'] < 4]" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "data_df = data_df.sample(n=150000, random_state=1111)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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m19tx/iNN9642XFqaMzxGzNmTI21z5gxI2BMaz1+UsMZT5w4Ued5uGnTJntcaz2GL7/8soYOHWp/OZzT6dS7775r7w/l88+vvoyhfg5KDR/DVncOWmi0rVu3Wn//939v/fGPf7QkWZs3bw7Yn5GRYY0fP946deqU/efMmTMBY8aPH28NGzbM2rt3r/X+++9b/fv3tx5++OGbmKJuDeW7NtepU6es1atXW2FhYdYXX3xhj+nbt6+1cOHCgHEXLly4yUlq53K5rDVr1liHDx+2SktLrXvuucfq06dPwPpmzJhh9e7d2youLrb2799vjR492rrjjjvs/VevXrUGDx5spaamWgcPHrS2bt1qdevWzcrJyWmJSAEaynfo0CFr4sSJ1ttvv219/vnnVnFxsXX77bdbkyZNCphHkrVmzZqAY3j58uWWiBSgMcfvZz/7mTV9+vSAtZ87d87e35qPn2U1nPHq1as1zsMFCxZY7du3t86fP2/P01qP4dtvv20VFBRY//mf/2kdO3bMeu6556zIyEjr8OHDlmWF9vnnV1/GUD8HLavhY9jazkFKznWqq+Tcd999dd7nk08+sSRZH330kb3t3XfftcLCwqz/+Z//CdJKr09t+b7rvvvus8aOHRuwrW/fvtby5cuDt7BmdPr0aUuStWvXLsuyLOvs2bNWZGSktWnTJnvMp59+akmy3G63ZVl/LYLh4eGWx+Oxx7z88suWw+GwvF7vzQ3QgO/mq83GjRutqKgoy+fz2dsac+xbg9ry/exnP7OefvrpOu8TSsfPshp3DJOSkqzHHnssYFuoHEPLsqzOnTtbr776qnHn37X8GWsTyueg37X5Wts5yNtVzWznzp3q0aOHBgwYoJkzZ+qbb76x97ndbnXq1EkjR460t6Wmpio8PFwffvhhSyz3upWXl6ugoEDTpk2rsW/JkiXq2rWrhg8frueff75VvZR8Lf9LxF26dJEklZSUyOfzKTU11R4zcOBA9enTR263W9Jfj+GQIUMCvnDS5XKpoqJCR44cuYmrb9h389U1xuFwqE2bwO8FzczMVLdu3TRq1CitXr1aViv8Oq268r3++uvq1q2bBg8erJycHF26dMneF0rHT2r4GJaUlKi0tLTW87C1H8Oqqiq98cYbunjxopxOp3Hnn1QzY21C+RysK19rOgdD+huPW5vx48dr4sSJSkhI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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data_df['intro_len'].hist()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "data_df['starter_text'] = data_df['intro'].apply(lambda x: ' '.join(str(x).split(' ')[:7]))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "data_df.to_csv('data/wiki_intro_processed.csv', index=False)" ] } ], "metadata": { "kernelspec": { "display_name": "venv", "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.10.12" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "3f100d68d9cf80676b1a4c3ace5430b03ae266a1d88e3f101eb196b64b263632" } } }, "nbformat": 4, "nbformat_minor": 2 }