{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "code", "source": [ "!pip install demoji\n", "!pip install swifter\n", "!pip install camel_tools" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "collapsed": true, "id": "LDP5bay1RQ1G", "outputId": "2fe77923-a5e6-423f-b11e-0255d94b1f17" }, "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting demoji\n", " Downloading demoji-1.1.0-py3-none-any.whl.metadata (9.2 kB)\n", "Downloading demoji-1.1.0-py3-none-any.whl (42 kB)\n", "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/42.9 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m42.9/42.9 kB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: demoji\n", "Successfully installed demoji-1.1.0\n", "Collecting swifter\n", " Downloading swifter-1.4.0.tar.gz (1.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: pandas>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from swifter) (2.2.2)\n", "Requirement already satisfied: psutil>=5.6.6 in /usr/local/lib/python3.11/dist-packages (from swifter) (5.9.5)\n", "Requirement already satisfied: dask>=2.10.0 in /usr/local/lib/python3.11/dist-packages (from dask[dataframe]>=2.10.0->swifter) (2024.10.0)\n", "Requirement already satisfied: tqdm>=4.33.0 in /usr/local/lib/python3.11/dist-packages (from swifter) (4.67.1)\n", "Requirement already satisfied: click>=8.1 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (8.1.8)\n", "Requirement already satisfied: cloudpickle>=3.0.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (3.1.1)\n", "Requirement already satisfied: fsspec>=2021.09.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (2024.10.0)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (24.2)\n", "Requirement already satisfied: partd>=1.4.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (1.4.2)\n", "Requirement already satisfied: pyyaml>=5.3.1 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (6.0.2)\n", "Requirement already satisfied: toolz>=0.10.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (0.12.1)\n", "Requirement already satisfied: importlib-metadata>=4.13.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (8.6.1)\n", "Collecting dask-expr<1.2,>=1.1 (from dask[dataframe]>=2.10.0->swifter)\n", " Downloading dask_expr-1.1.21-py3-none-any.whl.metadata (2.6 kB)\n", "Requirement already satisfied: numpy>=1.23.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (1.26.4)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2024.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2025.1)\n", "INFO: pip is looking at multiple versions of dask-expr to determine which version is compatible with other requirements. This could take a while.\n", " Downloading dask_expr-1.1.20-py3-none-any.whl.metadata (2.6 kB)\n", " Downloading dask_expr-1.1.19-py3-none-any.whl.metadata (2.6 kB)\n", " Downloading dask_expr-1.1.18-py3-none-any.whl.metadata (2.6 kB)\n", " Downloading dask_expr-1.1.16-py3-none-any.whl.metadata (2.5 kB)\n", "Requirement already satisfied: pyarrow>=14.0.1 in /usr/local/lib/python3.11/dist-packages (from dask-expr<1.2,>=1.1->dask[dataframe]>=2.10.0->swifter) (17.0.0)\n", "Requirement already satisfied: zipp>=3.20 in /usr/local/lib/python3.11/dist-packages (from importlib-metadata>=4.13.0->dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (3.21.0)\n", "Requirement already satisfied: locket in /usr/local/lib/python3.11/dist-packages (from partd>=1.4.0->dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (1.0.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->pandas>=1.0.0->swifter) (1.17.0)\n", "Downloading dask_expr-1.1.16-py3-none-any.whl (243 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m243.2/243.2 kB\u001b[0m \u001b[31m17.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hBuilding wheels for collected packages: swifter\n", " Building wheel for swifter (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for swifter: filename=swifter-1.4.0-py3-none-any.whl size=16507 sha256=1fa89f4628bffb1b2cc65468161015ce77dc2b0ecb3cf563260e699171e1d341\n", " Stored in directory: /root/.cache/pip/wheels/ef/7f/bd/9bed48f078f3ee1fa75e0b29b6e0335ce1cb03a38d3443b3a3\n", "Successfully built swifter\n", "Installing collected packages: dask-expr, swifter\n", "Successfully installed dask-expr-1.1.16 swifter-1.4.0\n", "Collecting camel_tools\n", " Downloading camel_tools-1.5.5-py3-none-any.whl.metadata (10 kB)\n", "Requirement already satisfied: future in /usr/local/lib/python3.11/dist-packages (from camel_tools) (1.0.0)\n", "Requirement already satisfied: six in /usr/local/lib/python3.11/dist-packages (from camel_tools) (1.17.0)\n", "Collecting docopt (from camel_tools)\n", " Downloading docopt-0.6.2.tar.gz (25 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: cachetools in /usr/local/lib/python3.11/dist-packages (from camel_tools) (5.5.1)\n", "Requirement already satisfied: numpy<2 in /usr/local/lib/python3.11/dist-packages (from camel_tools) (1.26.4)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.11/dist-packages (from camel_tools) (1.13.1)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.11/dist-packages (from camel_tools) (2.2.2)\n", "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (from camel_tools) (1.6.1)\n", "Collecting dill (from camel_tools)\n", " Downloading dill-0.3.9-py3-none-any.whl.metadata (10 kB)\n", "Requirement already satisfied: torch>=2.0 in /usr/local/lib/python3.11/dist-packages (from camel_tools) (2.5.1+cu124)\n", "Collecting transformers<4.44.0,>=4.0 (from camel_tools)\n", " Downloading transformers-4.43.4-py3-none-any.whl.metadata (43 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.7/43.7 kB\u001b[0m \u001b[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: editdistance in /usr/local/lib/python3.11/dist-packages (from camel_tools) (0.8.1)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from camel_tools) (2.32.3)\n", "Collecting emoji (from camel_tools)\n", " Downloading emoji-2.14.1-py3-none-any.whl.metadata (5.7 kB)\n", "Collecting pyrsistent (from camel_tools)\n", " Downloading pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (27 kB)\n", "Requirement already satisfied: tabulate in /usr/local/lib/python3.11/dist-packages (from camel_tools) (0.9.0)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (from camel_tools) (4.67.1)\n", "Collecting muddler (from camel_tools)\n", " Downloading muddler-0.1.3-py3-none-any.whl.metadata (7.5 kB)\n", "Collecting camel-kenlm>=2024.5.6 (from camel_tools)\n", " Downloading camel-kenlm-2024.5.6.zip (556 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m556.4/556.4 kB\u001b[0m \u001b[31m13.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (3.17.0)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (4.12.2)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (3.4.2)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (3.1.5)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (2024.10.0)\n", "Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (2.21.5)\n", "Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (12.4.127)\n", "Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=2.0->camel_tools)\n", " Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Requirement already satisfied: triton==3.1.0 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (3.1.0)\n", "Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0->camel_tools) (1.13.1)\n", "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy==1.13.1->torch>=2.0->camel_tools) (1.3.0)\n", "Requirement already satisfied: huggingface-hub<1.0,>=0.23.2 in /usr/local/lib/python3.11/dist-packages (from transformers<4.44.0,>=4.0->camel_tools) (0.27.1)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from transformers<4.44.0,>=4.0->camel_tools) (24.2)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.11/dist-packages (from transformers<4.44.0,>=4.0->camel_tools) (6.0.2)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.11/dist-packages (from transformers<4.44.0,>=4.0->camel_tools) (2024.11.6)\n", "Requirement already satisfied: safetensors>=0.4.1 in /usr/local/lib/python3.11/dist-packages (from transformers<4.44.0,>=4.0->camel_tools) (0.5.2)\n", "Collecting tokenizers<0.20,>=0.19 (from transformers<4.44.0,>=4.0->camel_tools)\n", " Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas->camel_tools) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas->camel_tools) (2024.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas->camel_tools) (2025.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests->camel_tools) (3.4.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->camel_tools) (3.10)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests->camel_tools) (2.3.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests->camel_tools) (2024.12.14)\n", "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->camel_tools) (1.4.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->camel_tools) (3.5.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from jinja2->torch>=2.0->camel_tools) (3.0.2)\n", "Downloading camel_tools-1.5.5-py3-none-any.whl (124 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m124.5/124.5 kB\u001b[0m \u001b[31m9.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m363.4/363.4 MB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.8/13.8 MB\u001b[0m \u001b[31m62.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m24.6/24.6 MB\u001b[0m \u001b[31m34.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m883.7/883.7 kB\u001b[0m \u001b[31m39.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m664.8/664.8 MB\u001b[0m \u001b[31m2.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m211.5/211.5 MB\u001b[0m \u001b[31m6.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.3/56.3 MB\u001b[0m \u001b[31m13.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m127.9/127.9 MB\u001b[0m \u001b[31m7.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m207.5/207.5 MB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.1/21.1 MB\u001b[0m \u001b[31m56.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading transformers-4.43.4-py3-none-any.whl (9.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.4/9.4 MB\u001b[0m \u001b[31m62.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading dill-0.3.9-py3-none-any.whl (119 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m119.4/119.4 kB\u001b[0m \u001b[31m7.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading emoji-2.14.1-py3-none-any.whl (590 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m590.6/590.6 kB\u001b[0m \u001b[31m31.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading muddler-0.1.3-py3-none-any.whl (16 kB)\n", "Downloading pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (120 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m120.0/120.0 kB\u001b[0m \u001b[31m8.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.6/3.6 MB\u001b[0m \u001b[31m49.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hBuilding wheels for collected packages: camel-kenlm, docopt\n", " Building wheel for camel-kenlm (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for camel-kenlm: filename=camel_kenlm-2024.5.6-cp311-cp311-linux_x86_64.whl size=3186794 sha256=19fd1b893847fd879d92bbc3d18154afe4c1c8a5fcae6a1151f668d51330ab01\n", " Stored in directory: /root/.cache/pip/wheels/21/a6/a5/4f25e9750d0cddf53013b69f0e4d18930a2f89a78fc6019c97\n", " Building wheel for docopt (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13706 sha256=a92161488772543fdae6cd8d2fdab00720f15590a47af876d60a107ab09806d8\n", " Stored in directory: /root/.cache/pip/wheels/1a/b0/8c/4b75c4116c31f83c8f9f047231251e13cc74481cca4a78a9ce\n", "Successfully built camel-kenlm docopt\n", "Installing collected packages: docopt, camel-kenlm, pyrsistent, nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, muddler, emoji, dill, nvidia-cusparse-cu12, nvidia-cudnn-cu12, tokenizers, nvidia-cusolver-cu12, transformers, camel_tools\n", " Attempting uninstall: nvidia-nvjitlink-cu12\n", " Found existing installation: nvidia-nvjitlink-cu12 12.5.82\n", " Uninstalling nvidia-nvjitlink-cu12-12.5.82:\n", " Successfully uninstalled nvidia-nvjitlink-cu12-12.5.82\n", " Attempting uninstall: nvidia-curand-cu12\n", " Found existing installation: nvidia-curand-cu12 10.3.6.82\n", " Uninstalling nvidia-curand-cu12-10.3.6.82:\n", " Successfully uninstalled nvidia-curand-cu12-10.3.6.82\n", " Attempting uninstall: nvidia-cufft-cu12\n", " Found existing installation: nvidia-cufft-cu12 11.2.3.61\n", " Uninstalling nvidia-cufft-cu12-11.2.3.61:\n", " Successfully uninstalled nvidia-cufft-cu12-11.2.3.61\n", " Attempting uninstall: nvidia-cuda-runtime-cu12\n", " Found existing installation: nvidia-cuda-runtime-cu12 12.5.82\n", " Uninstalling nvidia-cuda-runtime-cu12-12.5.82:\n", " Successfully uninstalled nvidia-cuda-runtime-cu12-12.5.82\n", " Attempting uninstall: nvidia-cuda-nvrtc-cu12\n", " Found existing installation: nvidia-cuda-nvrtc-cu12 12.5.82\n", " Uninstalling nvidia-cuda-nvrtc-cu12-12.5.82:\n", " Successfully uninstalled nvidia-cuda-nvrtc-cu12-12.5.82\n", " Attempting uninstall: nvidia-cuda-cupti-cu12\n", " Found existing installation: nvidia-cuda-cupti-cu12 12.5.82\n", " Uninstalling nvidia-cuda-cupti-cu12-12.5.82:\n", " Successfully uninstalled nvidia-cuda-cupti-cu12-12.5.82\n", " Attempting uninstall: nvidia-cublas-cu12\n", " Found existing installation: nvidia-cublas-cu12 12.5.3.2\n", " Uninstalling nvidia-cublas-cu12-12.5.3.2:\n", " Successfully uninstalled nvidia-cublas-cu12-12.5.3.2\n", " Attempting uninstall: nvidia-cusparse-cu12\n", " Found existing installation: nvidia-cusparse-cu12 12.5.1.3\n", " Uninstalling nvidia-cusparse-cu12-12.5.1.3:\n", " Successfully uninstalled nvidia-cusparse-cu12-12.5.1.3\n", " Attempting uninstall: nvidia-cudnn-cu12\n", " Found existing installation: nvidia-cudnn-cu12 9.3.0.75\n", " Uninstalling nvidia-cudnn-cu12-9.3.0.75:\n", " Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75\n", " Attempting uninstall: tokenizers\n", " Found existing installation: tokenizers 0.21.0\n", " Uninstalling tokenizers-0.21.0:\n", " Successfully uninstalled tokenizers-0.21.0\n", " Attempting uninstall: nvidia-cusolver-cu12\n", " Found existing installation: nvidia-cusolver-cu12 11.6.3.83\n", " Uninstalling nvidia-cusolver-cu12-11.6.3.83:\n", " Successfully uninstalled nvidia-cusolver-cu12-11.6.3.83\n", " Attempting uninstall: transformers\n", " Found existing installation: transformers 4.47.1\n", " Uninstalling transformers-4.47.1:\n", " Successfully uninstalled transformers-4.47.1\n", "Successfully installed camel-kenlm-2024.5.6 camel_tools-1.5.5 dill-0.3.9 docopt-0.6.2 emoji-2.14.1 muddler-0.1.3 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127 pyrsistent-0.20.0 tokenizers-0.19.1 transformers-4.43.4\n" ] } ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "id": "oive9n-fd3ze", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "285aa56f-3867-40ba-a5b7-ff1385355bc9" }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", "[nltk_data] Unzipping corpora/stopwords.zip.\n", "[nltk_data] Downloading package punkt to /root/nltk_data...\n", "[nltk_data] Unzipping tokenizers/punkt.zip.\n", "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", "[nltk_data] Package stopwords is already up-to-date!\n", "[nltk_data] Downloading package punkt_tab to /root/nltk_data...\n", "[nltk_data] Unzipping tokenizers/punkt_tab.zip.\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "True" ] }, "metadata": {}, "execution_count": 5 } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import nltk\n", "from nltk.sentiment.vader import SentimentIntensityAnalyzer\n", "from nltk.corpus import stopwords\n", "from nltk.tokenize import word_tokenize\n", "from nltk.stem import WordNetLemmatizer\n", "from nltk.stem.isri import ISRIStemmer\n", "import matplotlib.pyplot as plt\n", "from camel_tools.utils.dediac import dediac_ar\n", "from camel_tools.tokenizers.word import simple_word_tokenize\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", "from sklearn.model_selection import train_test_split, GridSearchCV\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.naive_bayes import MultinomialNB\n", "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n", "import seaborn as sns\n", "import string\n", "import demoji\n", "from demoji import replace_with_desc\n", "import re\n", "import swifter\n", "from google.colab import drive\n", "import tensorflow as tf\n", "from tensorflow.keras.optimizers import Adam\n", "from tensorflow.keras.preprocessing.text import Tokenizer\n", "from tensorflow.keras.callbacks import EarlyStopping\n", "from tensorflow.keras.preprocessing.sequence import pad_sequences\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Embedding, LSTM, Dense, Dropout, Bidirectional\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.pipeline import make_pipeline\n", "\n", "SEED=42\n", "# tf.random.set_seed(SEED)\n", "\n", "nltk.download('stopwords')\n", "demoji.download_codes()\n", "nltk.download('punkt')\n", "nltk.download('stopwords')\n", "nltk.download('punkt_tab')\n" ] }, { "cell_type": "code", "source": [ "drive.mount('/content/drive')\n", "\n", "df=pd.read_csv(\"/content/drive/MyDrive/Colab Notebooks/nlp/data.csv\")" ], "metadata": { "id": "LxlbRSsJeHU0", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "9ae2b2cb-f0ea-402e-fc90-3ef1150c745e" }, "execution_count": 6, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Mounted at /content/drive\n" ] } ] }, { "cell_type": "code", "source": [ "print(df[df['label']==0]['text'].apply(lambda x: len(x)).mean())\n", "print(df[df['label']==1]['text'].apply(lambda x: len(x)).mean())" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Af4gXg4FfgOZ", "outputId": "76181ffc-b287-43f2-8274-975040243e48" }, "execution_count": 31, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "62.04973833311708\n", "67.83814230076636\n" ] } ] }, { "cell_type": "code", "source": [ "df[\"text_length\"] = df[\"text\"].apply(len)\n", "\n", "plt.figure(figsize=(8, 5))\n", "sns.histplot(df, x=\"text_length\", hue=\"label\", bins=30, kde=True)\n", "plt.title(\"Text Length Distribution\")\n", "plt.xlabel(\"Number of Characters\")\n", "plt.ylabel(\"Frequency\")\n", "\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 487 }, "id": "U6LCU-5HTYpH", "outputId": "49dcadac-3ad3-49fa-c47a-2f5fbbd65a4d" }, "execution_count": 9, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAHWCAYAAAB5SD/0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAArZ9JREFUeJzs3Xd4VFX6wPHvlMxkJr0XUgg9oYUOCgiKFLEgKjYUFevCWrD97HVXxbU3dC3oCruCXVHpVamBUENogQCpk14mU+/vj4FIpKVMMiHzfp4nDzN3zj33vUlI3px5zzkqRVEUhBBCCCGE8BJqTwcghBBCCCFES5IEWAghhBBCeBVJgIUQQgghhFeRBFgIIYQQQngVSYCFEEIIIYRXkQRYCCGEEEJ4FUmAhRBCCCGEV5EEWAghhBBCeBVJgIUQQgghhFeRBFgIIdqIESNG0KNHjxa9pkql4tlnn23266xYsQKVSsWKFStqj7Xk/R48eBCVSsXs2bNb5HpCiOYlCbAQokWpVKp6fZyY6DRFTk4Ozz77LOnp6fVqP3v2bFQqFZs2bXLL9d2toffTEO3bt6/9/KvVaoKDg+nZsyd33nkn69evd9t15s6dy5tvvum2/typNccmhHAfracDEEJ4l//85z91nn/xxRcsXrz4pOPJycluuV5OTg7PPfcc7du3JzU11S19elJz309qaioPPvggABUVFWRkZDB//nz+/e9/88ADD/D666/XaW82m9FqG/arZO7cuezYsYP777+/3ucMHz4cs9mMTqdr0LUa6nSxJSYmYjab8fHxadbrCyFahiTAQogWNXny5DrP161bx+LFi086LjyjXbt2J30tXnnlFW644QbeeOMNOnfuzD333FP7mq+vb7PGU1NTg06nQ61WN/u1zkSlUnn0+kII95ISCCFEq+N0OnnzzTfp3r07vr6+REVFcdddd1FSUlLb5plnnkGtVrN06dI65955553odDq2bt3KihUrGDBgAAC33npr7dv77qjjPHr0KLfddhtRUVHo9Xq6d+/Op59+WqfN8brVefPm8Y9//IO4uDh8fX256KKL2Ldv30l9vvfee3To0AGDwcDAgQNZvXo1I0aMYMSIEbX91ed+du3axciRIzEajbRr146ZM2c26V4NBgP/+c9/CA0N5R//+AeKotS+9tca4IqKCu6//37at2+PXq8nMjKSiy++mM2bNwOuut0FCxZw6NCh2vjbt29f5/P1v//9jyeffJJ27dphNBopLy8/ZQ3wcWlpaZx33nkYDAaSkpKYNWtWndePl7UcPHiwzvG/9nmm2E5XA7xs2TKGDRuGn58fwcHBXHHFFWRkZNRp8+yzz6JSqdi3bx+33HILwcHBBAUFceutt1JdXV2/L4IQwq1kBFgI0ercddddzJ49m1tvvZV7772XrKws3n33XbZs2cLvv/+Oj48PTz75JD/99BNTp05l+/btBAQEsHDhQv7973/zwgsv0Lt3b/Lz83n++ed5+umnufPOOxk2bBgA5513XpPiy8/PZ/DgwahUKqZPn05ERAS//vorU6dOpby8/KS3z19++WXUajUPPfQQZWVlzJw5kxtvvLFOXe0HH3zA9OnTGTZsGA888AAHDx5kwoQJhISEEBcXB7jKQs52PyUlJYwdO5aJEycyadIkvv76ax599FF69uzJuHHjGn3P/v7+XHnllXzyySfs2rWL7t27n7Ld3Xffzddff8306dNJSUmhqKiINWvWkJGRQd++fXniiScoKyvjyJEjvPHGG7V9n+iFF15Ap9Px0EMPYbFYzlj2UFJSwiWXXMKkSZO4/vrrmTdvHvfccw86nY7bbrutQfdYn9hOtGTJEsaNG0eHDh149tlnMZvNvPPOO5x//vls3ry5Nnk+btKkSSQlJfHSSy+xefNmPv74YyIjI3nllVcaFKcQwg0UIYTwoGnTpikn/ihavXq1Aihz5syp0+6333476fj27dsVnU6n3H777UpJSYnSrl07pX///orNZqtts3HjRgVQPvvss3rF89lnnymAsnHjxtO2mTp1qhITE6OYTKY6x6+77jolKChIqa6uVhRFUZYvX64ASnJysmKxWGrbvfXWWwqgbN++XVEURbFYLEpYWJgyYMCAOrHPnj1bAZQLLrigXvdzwQUXKIDyxRdf1B6zWCxKdHS0ctVVV5313hMTE5Xx48ef9vU33nhDAZQffvih9higPPPMM7XPg4KClGnTpp3xOuPHj1cSExNPOn7889WhQ4faz+FfX1u+fHntseP3+9prr9Ues1gsSmpqqhIZGalYrVZFUf78mmZlZZ21z9PFlpWVddLn/fh1ioqKao9t3bpVUavVys0331x77JlnnlEA5bbbbqvT55VXXqmEhYWddC0hRPOTEggh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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "def extract_emojis(text):\n", " return ','.join(demoji.findall(text).values())\n", "df[\"emojis\"] = df[\"text\"].apply(extract_emojis)\n" ], "metadata": { "id": "_Ty-5mfBeLxL" }, "execution_count": 17, "outputs": [] }, { "cell_type": "code", "source": [ "all_emojis = pd.Series(','.join(df[\"emojis\"]).split(','))\n", "\n", "plt.figure(figsize=(10, 6))\n", "all_emojis.value_counts().head(10)[1:].plot(kind='bar')\n", "plt.title(\"Most Used Emojis\")\n", "plt.xlabel(\"Emoji\")\n", "plt.ylabel(\"Count\")\n", "plt.xticks(rotation=45)\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 664 }, "id": "Ey5eXSyea4-Y", "outputId": "154c6a1f-fc24-474f-a002-a37c10bbe46a" }, "execution_count": 25, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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Qw89ZBcvXvR6zoULF257HYQt/GMHDhyw3r1725tvvuk1ferUqebxeOy1116zPXv22JtvvmnBwcF27tw53xQKO3z4sKVIkcLKlStnjRo1sp9//tnMzL799lvz9/dPlDu1N7Jp0yZ77rnn7Omnn7aIiAgnWJqZ9erVyx566CFr2rSpderUyTweD2HrDkkY5E+dOmWRkZFmZvbcc89ZixYtLCgoyD744AOnzf79+61+/fo2c+bMO17rfxEZGWlt27a1AQMGmJnZyZMnLVu2bNalSxcfV3Z/2LZtm7344ovWtGlTu3z5sl29etWZ17lzZ8uXL5916dLF+f7/+OOPPqw28Uv4vY5f1ocOHbLixYtb3759LSgoyCv0btmyxSpVqmTff//9nS410bnRwc+VK1da48aNbfr06V4h1sxsxYoV1rFjRztw4MCdLDPROnTokFWtWtXWrVtnZtdC2OrVq6106dJWrlw5J2C1bdvWPvzww9v+9wlb+Ed+/vlnCwsLs5w5c9q4cePMzCw6Oto5avDxxx9bqlSprESJEpYhQwb77rvvfFnufedGK+ozZ87Yp59+anXq1LHg4GB7+umnbfbs2dayZUt77rnn7MqVKz6o9Pa5evWqvf766xYSEmIFCxb0mh5v6NCh9uSTT1rlypXthx9+8EWZ952En8U33njDWrVqZVu2bDEzsw8++MA8Ho81adLEwsPDzeza57Ru3bpWtWpVi4mJ8UnN/0X16tVt0qRJdvToUcuaNau1b9/emTd79mxbvHixD6u7d125csXat29vwcHBVrx4cWd6wu9/3759rX79+lahQgW+//9Rwu/1hx9+aKNHj7bDhw/bhQsX7Nlnn7WUKVNa165dnTZXr161+vXr2+OPP57or6JwW8LlM336dFuzZo1FRUXZ/v37LVOmTObxeGzUqFFOmytXrtijjz5qLVq0uO4KAlzvnXfesUqVKlndunWdM91mZjExMU7gypQpk1WuXNly5Mhh0dHRt70Gwhb+sa5du1q6dOmsYcOGzo5Swg/ld999Z0uWLOFIyx2WcEW9fft227Ztm+3YscOrzaxZs6x3796WPHlyS5EihWXLls2OHTt23fMTg4QblwMHDlj//v0tMDDQXnvtNWd6/JkUM7OoqKjrLhOA+1599VXnkuOjR486099++21Lmzat1ahRwx599FGrVKmSlShRwjkrmRgCV3yt0dHR9vzzz9vzzz9voaGhXkHr3Llz1qZNGxs5cmSieE+JxZ+//507d7a0adPaG2+84UxP+P2PiIjg+38bvfLKK5YpUyabPHmyHTp0yMyuXUpYsWJFq1ixog0YMMCGDx9uDz/8sBUpUsT5riS27Ywv9OjRwzJnzmwjR460U6dOmZnZ119/bYGBgdamTRv77LPP7Msvv7SaNWta0aJFnf0vAtdfW7x4saVLl84yZsxov/76q5n93zKLi4uzX3/91QYOHGh9+vRxluntXmcTtnBLevXqZYULF7aBAwc6lwmyI+E7CVeyvXr1spw5c1r27NktefLk9tJLL11379zevXttyJAhlidPHnv++efvdLn/Sfx7jd+Riv/cHT582Pr06WP58uXzusQ14SWFuLM2b95soaGhziUbZt47WwsWLLA33njDXnzxRRs3bpyzgXPjiOLttmTJEnvuuefsyJEjZma2fPlyS5IkiRUrVsxZJ8bFxdlrr71muXLlsn379vmw2ntH/Pc//jMS/3k6dOiQdezY0cqVK2fvv/++057v/+332WefWdasWe2bb765bt66deusR48elitXLqtTp461b98+UX2vfW3ChAmWKVMm2759u7ONi/+ML1u2zEqUKGHZsmWzsLAwa9KkSaI6OHUn3Sx4rl271lKnTm0tW7a0S5cu/eVruLFMGWcL17H/PzbJnj17dOjQIaVNm1bZs2dX5syZNWTIEEVGRuqLL76Qx+NRly5dlDZtWsYz8pH4HgVHjRqljz76SPPmzdMDDzygX3/9Ve3bt9e5c+c0ePBgZc2aVbGxscqXL5+6deumlClTavbs2QoPD1fatGl9+yb+gfjP5MqVKzV9+nRFRESoYMGCeuWVV5QtWza1a9dOHo9H06dPl8fj0WuvvSZ/f39fl33fOn/+vJIkSaL8+fM7/7v4z2pcXJwee+wxNWzY0Os5sbGxSpr07t4kzZ07V23btlXbtm114sQJZcmSRY888oimTZumVq1aqXXr1kqaNKkCAgK0ePFirV69Wnny5PF12Yle/Gdo1apVmjt3rk6cOKFq1aqpcePGyp49u3r27Kl33nlHn3/+uZIkSaKXX36Z778Ldu7cqRIlSqhMmTLOtNjYWPn5+alKlSqqUqWK+vfvr5QpUzrzY2Ji7vrv9d3g+++/V+PGjVWyZEnFxsZ6zatVq5YqVKigCxcuyN/fX+nTp5fH42HZ/knC/dBjx44pJiZG2bNnlyRVrVpVc+fOVaNGjRQYGKhRo0YpefLk1z1Pkvz8/G57bewdw0v8Rm3evHmqWbOmunfvrieeeEI9e/bU2rVrJV0bvLBy5cpatGiRhgwZ4uxY4c74+uuvr+u+eMuWLWrWrJkqV66swoULq1GjRlqwYIHmzJmj6dOnS7q2AjEzBQQEqFq1avrpp5905MgRX7yFW+bxeLRgwQI9/vjjSpcunXLlyqX169erYcOGOnPmjHLmzKk2bdqoadOmGjlypN577z1fl3xfu3Llig4ePKirV6/K4/EoNjbWCVtr1qzR5s2br/sMu7GBu5127typF154Qe+++66GDRumkiVLSro2vlaLFi309ddfK1u2bIqNjdWDDz6oLVu2OG3w33g8Hs2fP18NGzZU0qRJlTp1as2bN08dO3bU4cOHFRoaql69eql06dIaP368xo8f7+uS7ynx39Vjx445A5THxcXJzOTn56eYmBgtXbpUR48e9QpaZkYY+Aeio6OdQYul/9tWJ0mSRFFRUdq5c6cCAgKUOXNmZciQwRnOgGX7fxIGpjfffFN16tRRlSpVVLZsWe3YsUNRUVF65JFHNH/+fH322Wfq2rWrLl++LOkODdFx28+VIdFbsWKFPfDAAzZmzBgzu9bbYJo0aax69eq2dOlSp1379u2tWrVqzrXFcF+XLl2sefPmXqfKr169apUrV7YXXnjBzK6dAo+/xODNN9+0ggUL2vnz572eM3bsWEufPr1zKdTd7ocffrACBQo4PdgdPHjQMmfObGnTprUiRYo43bv/9ttv9vbbb3Pp1h1ys/swjh8/bhUrVrSGDRs693WYXbuxu0aNGtf1aJoYLFy40MLCwszsWqceU6dOtVq1almWLFns1VdftaioKO6dcMm2bdvswQcfdHoJO3LkiKVPn96yZ89u1atXdz5jv/76q3Xr1s3279/vw2oTv5t9jj/++GPzeDy2evVqr+knT560pk2b0hX5P5DwXqGE3nzzTStcuLBt2LDBa/qePXusadOm9KT7D/Xt29cyZ85sn3zyie3fv98KFSpkpUuXtqVLlzr7RcuXLzePx2NDhgy5Y3URtuDl0qVL1qZNG+vZs6eZXbsePjQ01B599FGrWLGiVapUydasWeO0P378uI8qvT9dvnzZWWHs3bvX+f29996z1KlT2+bNm83s/3aChw0bZpUrV/a6BjkmJsYGDx6cqLpBXrVqlbVt29bMrgWtPHnyWNu2bW3x4sUWHBxsFStWdEI/9wfcGQmD1vLly23+/Pm2cOFCZ9qUKVOsSpUqVqFCBfviiy/s448/ttq1a1vx4sUTzf8o4Q7Rxo0bzePxWK9evaxMmTLWoEEDe/nll+2dd965p4ZTuButWLHCmjdvbmbXhgnIkyePtWvXzqZNm2YhISFWr149J2Alls/W3Srh9/rw4cPOsCHx34VmzZpZypQpbf78+Xbw4EH79ddfrU6dOla6dGnuH/obCZftmTNnvIbHWbNmjYWFhVnTpk2dfazDhw9bgwYNrFKlSizbf2Djxo1WunRpW7VqlZld2y4FBQXZgw8+aCEhIbZ06VKnt9Jvv/32jq4rCFu4zjfffGPbt2+3c+fOWfHixZ2d3KlTp1ry5MmtVKlStmzZMh9Xef9JuKL+5JNP7MEHH7Q5c+ZYdHS0HTt2zJ588kkrVKiQbdiwweLi4uzChQv26KOP2lNPPXVPHHHfvXu3mZk9+eSTzo5XbGysVapUyTwej5UrV85iY2PvifeamLz66quWNWtWK1mypCVPntxatmzpDB67aNEia9KkiaVOndpKly5tjRo1SlQ3dsffSB0/TMIHH3xgFSpUsG7dunkdrHjooYdYJ7ps7969FhcXZ48//rgzMLvZtWWfMmVKq1evntdwJLh1Cb+T/fr1sxIlSliqVKmsTp069tlnn1lsbKydPHnSXnrpJQsMDLSsWbNawYIFrUKFConqe32nxcXFeW2/hwwZYmFhYVaiRAmrU6eO01vmwoULrU6dOpY+fXrLkyePFSpUyEqVKkWPjv/Qjh07bPz48WZ2bYyyjBkz2qRJk8zMrECBAlaqVClbsGCBV8i6U4GLsHWf+6sN08yZMy0sLMzptnnx4sVWrlw5a9u2rR08ePBOlQi7/v8UERFhVapUsfLly9sXX3xhZmbff/+9NW/e3Pz8/KxIkSJWsGBBK1asmLOiTiw7IfF1njlzxk6cOOF1merx48etePHiNmPGDDO7thPcunVrmzFjhv3xxx8+qfd+MnjwYK+jse+8845lzpzZ6Z1szJgx5vF4rGHDhl7riAMHDlhERMR1PcrdzRYvXmyNGjWyatWq2VNPPeWEq8uXL3u16927t4WGhvL5u03iPyMRERF26tQpr14Fjxw5YoUKFbLPP//czMzOnz9vLVq0sDFjxiSaS6LvRitWrPDqLr9///4WHBxsc+bMscOHD1v58uWtWLFiXj2HbtmyxZYtW2arV692QkBi+F7fafHD5MR77bXXLCQkxMaPH28rV660zJkzW+XKlW3v3r1mZvb777/bmjVrbNiwYTZnzhwnvLJsvd0seB47dsyio6Ptsccesx49epjZ/41LFhgYaI899tidLNNB2LqPxW/U1q9fb6NGjbJOnTrZ119/7ezcTp482XLkyGHbtm0zs2s7FT169PDa2YK7pk2bdt0YMfEr3YsXL1qNGjWsTJky9uWXX5rZtaOKixYtsjFjxti0adMS3Yo6/jO5YMECq169uuXMmdMaNGjgjKEVExNjFStWtDp16tiuXbusR48eVrBgQXa07oBatWpZnjx5nJ3fY8eOWYsWLWzmzJlmZjZ37lxLmzat9evXz9KmTWuPP/74dUMPmCWOo7MLFy60gIAAe/XVV+2ll16yunXrWmBgoHOZZFxcnC1cuNCeffZZy5gxo23fvt3HFd8b4r//CxcutEceecSyZctmTZs2tbffftvMzC5cuGAVK1a0Fi1a2O7du+21116zEiVKcDn7f1CmTBlr0aKFs6345ptvrGTJkrZy5Uozu9ale4oUKaxMmTKWP39+Gz9+vFcwi8cZresVLFjQ6yzssmXLrFixYs6QGIsXL7bUqVNb5syZLX/+/E7g+jOWrbeE25ANGzbY2rVrva4suHDhghUvXtzGjh1rZteWX6tWrezgwYM+2/4Qtu5zc+fOtaCgIGvVqpXVqFHDSpYsaa1atbLLly/bunXrrGLFilaiRAmrVq2apUyZ0nbu3Onrku8bFSpUsAYNGtwwKMWvfC9cuOAErgULFtxwbJnEtqJevHixJUuWzEaMGGFbtmyx119/3Twejy1atMji4uLs888/t6JFi1pISIiFhoY6BwPgnm+++cZCQ0OdywPjdxbmz59v586ds61bt1poaKiNHDnSzMzef/9983g8VqNGDec5iUVUVJTVqVPHXn31VWfa5cuXrVu3bpYsWTLnctbPPvvMmjdv7jzG7bFo0SJLnjy5vfvuu7Zx40br0KGDJUuWzJYvX25xcXE2ZswYK168uAUHB1vOnDn5/v8HM2fOtLx58zoHUK9e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S5YscXp8OnDggG3evNl69OhhadKk4UbNOyzhJRmXL1+2Tz/91Hbv3m2NGjWykJAQW7du3d9etjFz5kzLmjWr87+/23zyySdeN6cuXLjQSpQoYRUqVLCmTZva+fPnzezaPT8ej8eaN29uLVq0sBYtWljatGnp9e0ucO7cORs/frzlyZPH6xKvP0tMN9Bv377dHnzwQStRooTT4UJMTIxNmzbNmjdvbmXLlrXGjRsnqoHA70azZ8/26gr7iy++sHLlylnlypWtS5cuznrrnXfeMY/HY23atLHnn3/ennvuOUuTJo19//33Pqr83hX/Pd2/f7+VKVPGChUq5DWMwZ87XUpM32tfi99eT5w40SpVqmRPPvmknThxwpkfGxtrx48fT1RDYtwpf97X+f77723Dhg3O/sPmzZstLCzMwsLCnP2CP/74w+rWrWvly5e/6zoGI2zdo2bMmGEVK1a0LVu2mNm1G7+TJ09uDz30kGXJksVq167tdO06b948y549u9P96EMPPcRG7Q7783Xaf35cp04dJ3D9lQ0bNthvv/122+u7HX7//XfLkiWLVahQwXmcPHlyGzRokPXs2dPKli1refLkcQLX7NmzrX379lavXj177bXX7Oeff/Zl+UggPDzcxo8fbw8++KB17NjR1+XcFj/88IMVK1bM2rVrZz/88IPXvMuXL9+wp0/8czt37rT8+fNbvXr1LDIy0vbt22fJkiWzgQMHWvv27Z1xA+M7vZk9e7Y1atTI6tSpYy+//DIdNN0BBw8etDJlyljhwoWdwJVwp5d7tG5Nwh3+Dz/80AlcJ0+evK4t92r9n06dOtmaNWucx6+88oplypTJ0qVLZ/nz53fuS1+4cKFVrlzZQkJCrFChQlayZEkrW7bsXTnANmHrHjVz5kyrUaOG1a9f31atWmWdO3d2eh1cvny5NWnSxMqWLet8aC9fvmzr16+3X375xU6fPu3L0u87CVeyo0aNsmeffdYqV65s48ePtz179jjz6tata1myZLH169cnyo1eVFSULV682IoXL25Vq1a1xYsX21tvvWVm15bB999/b2XKlLHcuXM7R7/je3tLjO83MUq4nP/uKGt4eLh98MEHlipVKnvnnXfcLu2O2L59u5UqVcratWvnnP3H7REVFWVTp061ChUqWKNGjWzy5MnO99/sWlfYVatWtYceesjphfXC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PM512xEREfbcc89ZgQIFnOtd4RvLli0zj8djadOmta+++uq6+eHh4bZs2TKrW7euFSlSxFmpJJbr5+M3KJcvXzYz77rr1q3rFbjMru0UXLx4kXsHfeD333+36Oho69u3r1WoUMG6du3qFbgqV65sjz/+uH355Zc+rhSJzXfffWcZMmSwyZMnm9m177nH47GhQ4c6bdauXWuTJk2ykSNH2q+//uqrUu8JCXfk49elu3fvthdffNEKFChw3b2WZtd6hh06dOg9t+N6u/05JA0ZMsSKFCliXbt2tb1795qZ2enTp61ixYpWsWJFW7Ro0XXPIWh5S7g84jsCizdr1ixr2bKlZc6c2Vq1amVPPfWUvffee173F5vdW1dUELYSiRdeeMG6d+9uZtd2oB588EFr3769mf3fzu65c+fs+eeft/379/uqTPx/ffv2dXY8/rwS/v77761u3brWpEkT5yzk3b5SWb58uf3888/O440bN1qBAgWco1EJA1ft2rUte/bs9vXXX3OW1YemT59u1atXNzOzS5cuWb9+/axcuXJegWvdunVWoEAB69Wrly9LRSI0a9Yse/zxx83sWsc3OXLk8Op19M+dBuDfS7gNefvtt+355593egXdtWuXPf/885Y/f36bPn260+5e3nG9nRJuu8aNG2e///67mZmNHDnSSpYsaS+99JITuM6cOWNVqlSxBx98kE6e/kLCz+vw4cOtQYMGVr9+fXvxxRedeUeOHLF58+ZZtmzZzOPxWKpUqeyPP/7wVcmuI2zdpeJXAPGX8pQvX94mTZpkV65csaxZs1qHDh2cNiNHjrQNGzZ4PQ93xl8dzerevbsFBAR4dacd7/fff3eeezdvBOPi4mznzp2WLFky69Spk3N0+vTp05Y/f34rXry4My3+/fz444+WNGlSy5Qpk1e3w7iz1q9fbx6PxzlrdfnyZevfv7+VK1fOunXr5gSu77//nksG8bfity2bNm2y8PBwGzVqlIWFhdmxY8csZ86c1qFDB2cd8Pnnn9sLL7xwV6/bEqMePXpY5syZbcKECV47prt27bIOHTpYgQIF7NNPP/VhhYnHt99+63w+Y2Nj7ffff7fg4GCvoS2GDx9+XeA6efKkdezYkXXmP/Dqq69a+vTprU+fPvb8889b7ty5rXDhwl6f3ePHj1vHjh3t0UcfvaeXKWHrLvbVV185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Hps4caIzPS4uzrZu3WolSpSwokWLXjdgNN/pG0u4XH744Qd79tln7dtvvzWza0PrNGjQwCpVquRcgh0eHm6FChWy9u3b+6TexCR+/2b37t0WFBRkDRo0sH379jnzX375ZUuWLNkNxxm9l3sdvBnClg/NnTvXUqVKZbVq1bL8+fNbtmzZrFmzZs78Xr16We7cua1fv3524sQJH1aKL774wrJmzWrbtm0zM7MNGzaYx+Oxzz77zGmzYcMG69Wrl7399tvOiigxbgR/++03a9CggXk8Hnv11Ve95l26dMmKFStmr732mjPtflxx3mkJg9aIESPs3XfftXPnzpnZtfvnypcvb82bN7cDBw6Ymff/JP65jRs3tlatWiXKgwC4+xw4cMBrSAHcuj+vO69cuWILFiywIkWKWPny5a9ru23bNgsJCbHmzZvfyTITnRkzZng9njlzppUvX96qVavmdXBg+fLl1qBBA6tcubITuC5dupQot9t3wp8P+MV/fn/88UdLnTq1PfbYY16Bq1u3bubxeGz16tV3tM67EWHLR/bt22fZsmWzMWPGmNm1AWLnzJljGTNmtGeeecZp17VrVytSpIidPn3aV6Xel/68Upk0aZI1bdrUzK6tuFOlSuWc1Tp37pwz6nzC5yXmndr4m+FLlixpU6dO9ZpXq1Yte/XVV50BdHHn9OjRw0JCQmzkyJF25MgRZ/oHH3xglStXtmeeecYZhy9h1+4HDhywpEmT2nfffeeTugF4S7ituHr1qp09e9Z5vHTpUgsNDbWaNWt6PScuLs727NlDGPgL48aNswYNGlhsbKyzDhw/fryVKVPGMmTIYD/99JNX++XLl9vjjz9uBQoU8BqygGXsLeHn9csvv7QxY8bYBx984HTitnPnTucMV8JOM0aMGJGo94VuF8KWj2zfvt1y5szp7BiZXRv75vPPP7dcuXJ5jQD/54FK4a74QQ3NzLmEc8SIEValShWbN2+eBQUF2bhx45w2kyZNsmeeecYuXLhwx2t10/79+61evXpWtGhR69atm3322WfWs2dPCwwMpAdCH5gzZ45lzpzZObtq5r0BnDhxolWtWtXq1Kljx48fv+75XI4M3B0Sfm/feuste+yxxyxTpkzWs2dPW7p0qZmZLVq0yAoUKGC1atW64WsQBm7s6NGjzrLZtGmTM/3zzz+3MmXK2GOPPXZdL89ffvml9erVi2X6D/To0cNCQ0OtSpUq1qBBA/Pz83POCv7000+WJk0aa9SokTMOZ7z7PXDd3Xfs34OWLFmi6dOnK02aNLp48aK2bt3qzAsICFClSpUUHR2tP/74w5meMWNGX5R6X1q5cqXGjRsnSerYsaOeeeYZxcXFqUaNGoqJidFTTz2l/v3764UXXpAkXbp0SV988YVSpEihlClT+rL02y5XrlwaM2aMcufOrVGjRmno0KHODdoFChTwdXn3nUOHDqlYsWIqXry4YmJiJMmrg5327durUaNGypUr1w3XGalSpbpjtQK4ufjOkvr06aMRI0boySef1Lhx4/TVV1+pf//+OnHihGrWrKn33ntPhw8fVqlSpa57jfulF7dblTlzZvn5+Wn16tVq2LChhgwZIkl66qmn1KVLF128eFF9+/bVTz/95Dynfv36GjJkiPz8/BQbG+ur0u9606dP1yeffKLPP/9c69at0xNPPKG4uDgdOXJEklSwYEFt3LhRCxcu1EcffeT13PuqM4wbuL/f/R22ZcsWNWvWTGPHjlXKlClVtmxZzZkzR6Ghoc7KNFOmTMqVK5eMTiLvuKioKE2ePFn79u3TV199pW3btmnDhg1KkiSJChcurEcffVTh4eHav3+/du3apRMnTmjYsGHOoJIej+emPUwmVvGB69y5c8qWLZv69OmjdOnS+bqs+9LBgwf1+++/OztZ8T0OxsTEaNOmTSpdurS6du3qfAb/3APmvfS5BBK7n3/+WV9++aVmz56tqlWrauPGjfrtt980YcIEp2fXevXqKTIyUrNnz04UPdreTXLmzKlWrVrpk08+UZIkSdSzZ089++yzkq51/96/f3/16dNHxYsX93oeIfZ68duUffv2qWnTpnrooYc0b948de7cWR988IGaN2+uiIgInT9/XoULF9Zvv/2m7Nmz+7rsu4tvT6zdP/bv329vvfWW9enTx5m2YsUKK1y4sDVp0sQ+/vhj+/HHH+2VV16x9OnTOz2L4c4rVarUDTuHiI6Otn79+lmFChXMz8/PHnroIatXr55z2eG9fAnC/v37uRnex5YvX24PPvigjRgxwuuzdurUKatZs6YzkKQZnZYAd7tffvnFihYtambXBiZPeB/wpUuXbPbs2XbmzBmv7zoDF18vLi7upsvl119/tV69eln+/PntnXfecaZ//PHH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eFz+3dnZmTt37rBu3TpWr17N3/72N/bv30/dunWxt7fn0aNHtnwLIiIiIiIFSmFLCtTPP/+Mo6Mj//znP7l48SL9+/cHHi9G7OLiQkJCAnv27GHGjBk8fPiQpKQkDAYDZrNZc7REREREpEhRNUIpcI8ePcLOzg6TycSMGTPw9PRk1apVlv1paWlkZGRQqVIlDAaDyruLiIiISJGksCVWc//+fT777DOmT59O8+bNWblyJfDL/C5ACxaLiIiISJGlsCVWdf/+feLi4oiMjMTd3Z1//etftm6SiIiIiMgLobFbYlWlS5emV69e3L9/n6SkJPVkiYiIiEixoZ4teSEyMzNxcnLCYDAocImIiIhIsaCwJS/Uk/O1RERERESKMnUvyAuloCUiIiIixYXCloiIiIiIiBUobImIiIiIiFiBwpaIiIiIiIgVKGyJiIiIiIhYgcKWiIiIiIiIFShsiYiIWJGHhwezZs2y/GwwGNi4caPN2iMiIi+O1tkSEZFiYcCAASxfvvyZ7V26dGH79u1W+703b96kdOnSlCpVCoDr16/j4uKCk5OT1X6niIi8HBxs3QAREZEX5c9//jMmkynfNmuHnooVK+b7uUqVKlb9fSIi8vLQMEIRESk2nJycqFKlSr4vFxcX4PHwvkWLFtG9e3dKlSpFgwYN2LdvH+fOnaN9+/aULl2aNm3acP78+XznXLBgAbVq1aJEiRLUq1ePlStX5tuvYYQiIsWXwpaIiMj/i4iI4N133+XYsWPUr1+fvn37EhgYyNixYzl06BBms5ng4GDL8QkJCRiNRkJDQzl58iSBgYEMHDiQXbt22fBdiIjIy0JhS0REio0tW7ZQpkyZfF9Tp0617B84cCC9e/embt26vP/++yQnJ9OvXz+6dOlCgwYNMBqNfP3115bjIyMjGTBgAEFBQdStW5eRI0fSs2dPIiMjbfDuRETkZaM5WyIiUmx06NCBBQsW5Nv26quvWr5v0qSJ5fvKlSsD0Lhx43zbMjMzuXfvHuXKlePUqVMEBATkO5+XlxfR0dHWaL6IiBQyClsiIlJslC5dmtq1a//H/Y6OjpbvDQbDf9yWm5trpRaKiEhRomGEIiIi/6MGDRqQlJSUb1tSUhINGza0UYtERORlop4tEREpNrKysrh+/Xq+bQ4ODlSoUOF/Ot/o0aPp3bs3TZs2pWPHjmzevJkNGzawc+fOgmiuiIgUcgpbIiJSbGzfvh1XV9d82+rVq8fp06f/p/P5+PgQHR1NZGQkRqORGjVqYDKZaN++fQG0VkRECjuD2Ww227oRIiIiRZWrqysREREMHjzY1k0REZEXTD1bIiIiVpCRkUFSUhIpKSk0atTI1s0REREbUIEMERERK4iJiaFPnz6MGDGC1q1b27o5IiJiAxpGKCIiIiIiYgXq2RIREREREbEChS0RERERERErUNgSERERERGxAoUtERERERERK1DYEhERERERsQKFLREREREREStQ2BIREREREbEChS0RERERERErUNgSERERERGxgv8DbBod30cFa3AAAAAASUVORK5CYII=\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "\n", "nltk.download('punkt')\n", "\n", "stemmer = ISRIStemmer()\n", "\n", "def preprocess_text(text):\n", " text = demoji.replace_with_desc(text, sep=\" \")\n", " text = re.sub(r'\\s+', ' ', text).strip()\n", " tokens = word_tokenize(text)\n", " stemmed_tokens = [stemmer.stem(token) for token in tokens]\n", " return ' '.join(stemmed_tokens)\n", "\n", "df['clean_text'] = df['text'].apply(preprocess_text)\n", "\n", "label_encoder = LabelEncoder()\n", "df['label'] = label_encoder.fit_transform(df['label'])\n", "\n", "max_words = 10000\n", "tokenizer = Tokenizer(num_words=max_words, oov_token=\"\")\n", "tokenizer.fit_on_texts(df['clean_text'])\n", "\n", "sequences = tokenizer.texts_to_sequences(df['clean_text'])\n", "max_length = 100\n", "X = pad_sequences(sequences, maxlen=max_length, padding='post', truncating='post')\n", "\n", "y = df['label'].values\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=SEED)\n", "\n", "\n", "\n", "model = Sequential([\n", " Embedding(input_dim=max_words, output_dim=128, input_length=max_length),\n", " Bidirectional(LSTM(128, return_sequences=True)),\n", " Dropout(0.5),\n", " Bidirectional(LSTM(64)),\n", " Dense(32, activation='relu'),\n", " Dense(1, activation='sigmoid')\n", "])\n", "\n", "\n", "optimizer = Adam(learning_rate=0.001)\n", "model.compile(loss=\"binary_crossentropy\", metrics=[\"accuracy\"])\n", "\n", "\n", "early_stop = EarlyStopping(monitor=\"val_loss\", patience=3, restore_best_weights=True)\n", "model.fit(X_train, y_train, epochs=10, batch_size=64, validation_data=(X_test, y_test))\n", "\n", "loss, accuracy = model.evaluate(X_test, y_test)\n", "print(f\"Test Accuracy: {accuracy:.4f}\")\n" ], "metadata": { "id": "DmYB0y8FeWO0" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "model.save(\"lstm_text_model.h5\")\n", "import pickle\n", "\n", "with open(\"tokenizer.pkl\", \"wb\") as tokenizer_file:\n", " pickle.dump(tokenizer, tokenizer_file)\n", "\n", "with open(\"label_encoder.pkl\", \"wb\") as encoder_file:\n", " pickle.dump(label_encoder, encoder_file)" ], "metadata": { "id": "az1YQm8qk9Xj" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "test_df=pd.read_csv(\"/content/drive/MyDrive/Colab Notebooks/nlp/nlp_submission.csv\")\n", "test_df['clean_text'] = test_df['text'].apply(preprocess_text)\n", "\n", "\n", "test_sequences = tokenizer.texts_to_sequences(test_df['clean_text'])\n", "\n", "X_test = pad_sequences(test_sequences, maxlen=max_length, padding='post', truncating='post')\n", "\n", "predictions = model.predict(X_test)\n", "\n", "predicted_labels = (predictions > 0.5).astype(int)\n", "\n", "test_df['predicted_label'] = predicted_labels\n", "\n", "\n", "# test_df.to_csv('predictions.csv', index=False)" ], "metadata": { "id": "J8gNQUjysnyv" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "test_df.to_csv('nlp_predictions.csv', index=False)" ], "metadata": { "id": "XEQwhxtAssIf" }, "execution_count": null, "outputs": [] } ] }