{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "iJZroSnbTbrf", "outputId": "2225daa4-b4d5-462c-f758-181e07811a2b" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Mounted at /content/drive\n" ] } ], "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "LTtjriHZUdyx", "outputId": "9f115791-19a0-4069-90bb-2fe495479bcc" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting VaderSentiment\n", " Downloading vaderSentiment-3.3.2-py2.py3-none-any.whl (125 kB)\n", "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/126.0 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━\u001b[0m \u001b[32m112.6/126.0 kB\u001b[0m \u001b[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m126.0/126.0 kB\u001b[0m \u001b[31m2.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from VaderSentiment) (2.31.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->VaderSentiment) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->VaderSentiment) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->VaderSentiment) (2.0.4)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->VaderSentiment) (2023.7.22)\n", "Installing collected packages: VaderSentiment\n", "Successfully installed VaderSentiment-3.3.2\n" ] } ], "source": [ "!pip install VaderSentiment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "MlFWUkrSUzxg", "outputId": "ea477eaf-551f-4b3f-d5bc-b5a5581ec131" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting flair\n", " Downloading flair-0.12.2-py3-none-any.whl (373 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m373.1/373.1 kB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.10/dist-packages (from flair) (2.8.2)\n", "Requirement already satisfied: torch!=1.8,>=1.5.0 in /usr/local/lib/python3.10/dist-packages (from flair) (2.0.1+cu118)\n", "Requirement already satisfied: gensim>=3.8.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.3.1)\n", "Requirement already satisfied: tqdm>=4.26.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.66.1)\n", "Collecting segtok>=1.5.7 (from flair)\n", " Downloading segtok-1.5.11-py3-none-any.whl (24 kB)\n", "Requirement already satisfied: matplotlib>=2.2.3 in /usr/local/lib/python3.10/dist-packages (from flair) (3.7.1)\n", "Collecting mpld3==0.3 (from flair)\n", " Downloading mpld3-0.3.tar.gz (788 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m788.5/788.5 kB\u001b[0m \u001b[31m11.6 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: scikit-learn>=0.21.3 in /usr/local/lib/python3.10/dist-packages (from flair) (1.2.2)\n", "Collecting sqlitedict>=1.6.0 (from flair)\n", " Downloading sqlitedict-2.1.0.tar.gz (21 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting deprecated>=1.2.4 (from flair)\n", " Downloading Deprecated-1.2.14-py2.py3-none-any.whl (9.6 kB)\n", "Requirement already satisfied: hyperopt>=0.2.7 in /usr/local/lib/python3.10/dist-packages (from flair) (0.2.7)\n", "Collecting boto3 (from flair)\n", " Downloading boto3-1.28.36-py3-none-any.whl (135 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m135.8/135.8 kB\u001b[0m \u001b[31m9.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting transformers[sentencepiece]>=4.18.0 (from flair)\n", " Downloading transformers-4.32.1-py3-none-any.whl (7.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m30.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting bpemb>=0.3.2 (from flair)\n", " Downloading bpemb-0.3.4-py3-none-any.whl (19 kB)\n", "Requirement already satisfied: regex in /usr/local/lib/python3.10/dist-packages (from flair) (2023.6.3)\n", "Requirement already satisfied: tabulate in /usr/local/lib/python3.10/dist-packages (from flair) (0.9.0)\n", "Collecting langdetect (from flair)\n", " Downloading langdetect-1.0.9.tar.gz (981 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m981.5/981.5 kB\u001b[0m \u001b[31m36.8 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: lxml in /usr/local/lib/python3.10/dist-packages (from flair) (4.9.3)\n", "Collecting ftfy (from flair)\n", " Downloading ftfy-6.1.1-py3-none-any.whl (53 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m53.1/53.1 kB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting janome (from flair)\n", " Downloading Janome-0.5.0-py2.py3-none-any.whl (19.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m19.7/19.7 MB\u001b[0m \u001b[31m44.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting gdown==4.4.0 (from flair)\n", " Downloading gdown-4.4.0.tar.gz (14 kB)\n", " 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", "Collecting huggingface-hub>=0.10.0 (from flair)\n", " Downloading huggingface_hub-0.16.4-py3-none-any.whl (268 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m268.8/268.8 kB\u001b[0m \u001b[31m20.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting conllu>=4.0 (from flair)\n", " Downloading conllu-4.5.3-py2.py3-none-any.whl (16 kB)\n", "Requirement already satisfied: more-itertools in /usr/local/lib/python3.10/dist-packages (from flair) (10.1.0)\n", "Collecting wikipedia-api (from flair)\n", " Downloading Wikipedia_API-0.6.0-py3-none-any.whl (14 kB)\n", "Collecting pptree (from flair)\n", " Downloading pptree-3.1.tar.gz (3.0 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting pytorch-revgrad (from flair)\n", " Downloading pytorch_revgrad-0.2.0-py3-none-any.whl (4.6 kB)\n", "Collecting transformer-smaller-training-vocab>=0.2.1 (from flair)\n", " Downloading transformer_smaller_training_vocab-0.3.1-py3-none-any.whl (14 kB)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (3.12.2)\n", "Requirement already satisfied: requests[socks] in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (2.31.0)\n", "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (1.16.0)\n", "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (4.11.2)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from bpemb>=0.3.2->flair) (1.23.5)\n", "Collecting sentencepiece (from bpemb>=0.3.2->flair)\n", " Downloading sentencepiece-0.1.99-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m23.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: wrapt<2,>=1.10 in /usr/local/lib/python3.10/dist-packages (from deprecated>=1.2.4->flair) (1.14.1)\n", "Requirement already satisfied: scipy>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from gensim>=3.8.0->flair) (1.10.1)\n", "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.10/dist-packages (from gensim>=3.8.0->flair) (6.3.0)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (2023.6.0)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (6.0.1)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (4.7.1)\n", "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (23.1)\n", "Requirement already satisfied: networkx>=2.2 in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (3.1)\n", "Requirement already satisfied: future in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (0.18.3)\n", "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (2.2.1)\n", "Requirement already satisfied: py4j in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (0.10.9.7)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (1.1.0)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (4.42.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (1.4.4)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (3.1.1)\n", "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->flair) (1.3.2)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->flair) (3.2.0)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (1.12)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (3.1.2)\n", "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (2.0.0)\n", "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch!=1.8,>=1.5.0->flair) (3.27.2)\n", "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch!=1.8,>=1.5.0->flair) (16.0.6)\n", "Collecting torch!=1.8,>=1.5.0 (from flair)\n", " Downloading torch-2.0.0-cp310-cp310-manylinux1_x86_64.whl (619.9 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m619.9/619.9 MB\u001b[0m \u001b[31m1.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cuda-nvrtc-cu11==11.7.99 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.0/21.0 MB\u001b[0m \u001b[31m45.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cuda-runtime-cu11==11.7.99 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m849.3/849.3 kB\u001b[0m \u001b[31m61.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cuda-cupti-cu11==11.7.101 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.8/11.8 MB\u001b[0m \u001b[31m89.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cudnn-cu11==8.5.0.96 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m557.1/557.1 MB\u001b[0m \u001b[31m1.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cublas-cu11==11.10.3.66 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m317.1/317.1 MB\u001b[0m \u001b[31m2.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cufft-cu11==10.9.0.58 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux1_x86_64.whl (168.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m168.4/168.4 MB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-curand-cu11==10.2.10.91 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl (54.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.6/54.6 MB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cusolver-cu11==11.4.0.1 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl (102.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m102.6/102.6 MB\u001b[0m \u001b[31m8.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cusparse-cu11==11.7.4.91 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl (173.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m173.2/173.2 MB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-nccl-cu11==2.14.3 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl (177.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m177.1/177.1 MB\u001b[0m \u001b[31m6.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-nvtx-cu11==11.7.91 (from torch!=1.8,>=1.5.0->flair)\n", " Downloading nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl (98 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98.6/98.6 kB\u001b[0m \u001b[31m8.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch!=1.8,>=1.5.0->flair) (67.7.2)\n", "Requirement already satisfied: wheel in /usr/local/lib/python3.10/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch!=1.8,>=1.5.0->flair) (0.41.2)\n", "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers[sentencepiece]>=4.18.0->flair)\n", " Downloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/7.8 MB\u001b[0m \u001b[31m65.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting safetensors>=0.3.1 (from transformers[sentencepiece]>=4.18.0->flair)\n", " Downloading safetensors-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m49.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: protobuf in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.18.0->flair) (3.20.3)\n", "Collecting botocore<1.32.0,>=1.31.36 (from boto3->flair)\n", " Downloading botocore-1.31.36-py3-none-any.whl (11.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.1/11.1 MB\u001b[0m \u001b[31m109.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting jmespath<2.0.0,>=0.7.1 (from boto3->flair)\n", " Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)\n", "Collecting s3transfer<0.7.0,>=0.6.0 (from boto3->flair)\n", " Downloading s3transfer-0.6.2-py3-none-any.whl (79 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m79.8/79.8 kB\u001b[0m \u001b[31m9.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: wcwidth>=0.2.5 in /usr/local/lib/python3.10/dist-packages (from ftfy->flair) (0.2.6)\n", "Collecting urllib3<1.27,>=1.25.4 (from botocore<1.32.0,>=1.31.36->boto3->flair)\n", " Downloading urllib3-1.26.16-py2.py3-none-any.whl (143 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.1/143.1 kB\u001b[0m \u001b[31m17.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting accelerate>=0.20.3 (from transformers[sentencepiece]>=4.18.0->flair)\n", " Downloading accelerate-0.22.0-py3-none-any.whl (251 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m251.2/251.2 kB\u001b[0m \u001b[31m24.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->gdown==4.4.0->flair) (2.4.1)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch!=1.8,>=1.5.0->flair) (2.1.3)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (3.4)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (2023.7.22)\n", "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (1.7.1)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch!=1.8,>=1.5.0->flair) (1.3.0)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from accelerate>=0.20.3->transformers[sentencepiece]>=4.18.0->flair) (5.9.5)\n", "Building wheels for collected packages: gdown, mpld3, sqlitedict, langdetect, pptree\n", " Building wheel for gdown (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for gdown: filename=gdown-4.4.0-py3-none-any.whl size=14758 sha256=5df426840ee967367c9df77389c67f469d52d29f91fcc7de7ed7ed16a2457953\n", " Stored in directory: /root/.cache/pip/wheels/03/0b/3f/6ddf67a417a5b400b213b0bb772a50276c199a386b12c06bfc\n", " Building wheel for mpld3 (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for mpld3: filename=mpld3-0.3-py3-none-any.whl size=116686 sha256=1fb369b23567dbe989f4a84e4a68a4a2cd966313293fc40f44f837475dc9780f\n", " Stored in directory: /root/.cache/pip/wheels/9c/92/f7/45d9aac5dcfb1c2a1761a272365599cc7ba1050ce211a3fd9a\n", " Building wheel for sqlitedict (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for sqlitedict: filename=sqlitedict-2.1.0-py3-none-any.whl size=16864 sha256=3e7a79b3e61ffd24b490417f95e2d6a2ab2df52dd590ea1321c6e5f1904e2109\n", " Stored in directory: /root/.cache/pip/wheels/79/d6/e7/304e0e6cb2221022c26d8161f7c23cd4f259a9e41e8bbcfabd\n", " Building wheel for langdetect (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for langdetect: filename=langdetect-1.0.9-py3-none-any.whl size=993224 sha256=961a135a080efa6c8cdd0d1f4b05139fd4ae63d1ddee873ef7be243b5d226242\n", " Stored in directory: /root/.cache/pip/wheels/95/03/7d/59ea870c70ce4e5a370638b5462a7711ab78fba2f655d05106\n", " Building wheel for pptree (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pptree: filename=pptree-3.1-py3-none-any.whl size=4609 sha256=88ed43904c52b06328a0ddb2984c8a34c213c343571aa309edbf38cf6f16c955\n", " Stored in directory: /root/.cache/pip/wheels/9f/b6/0e/6f26eb9e6eb53ff2107a7888d72b5a6a597593956113037828\n", "Successfully built gdown mpld3 sqlitedict langdetect pptree\n", "Installing collected packages: tokenizers, sqlitedict, sentencepiece, safetensors, pptree, mpld3, janome, urllib3, segtok, nvidia-nvtx-cu11, nvidia-nccl-cu11, nvidia-cusparse-cu11, nvidia-curand-cu11, nvidia-cufft-cu11, nvidia-cuda-runtime-cu11, nvidia-cuda-nvrtc-cu11, nvidia-cuda-cupti-cu11, nvidia-cublas-cu11, langdetect, jmespath, ftfy, deprecated, conllu, nvidia-cusolver-cu11, nvidia-cudnn-cu11, botocore, wikipedia-api, s3transfer, huggingface-hub, bpemb, transformers, gdown, boto3, torch, accelerate, transformer-smaller-training-vocab, pytorch-revgrad, flair\n", " Attempting uninstall: urllib3\n", " Found existing installation: urllib3 2.0.4\n", " Uninstalling urllib3-2.0.4:\n", " Successfully uninstalled urllib3-2.0.4\n", " Attempting uninstall: gdown\n", " Found existing installation: gdown 4.6.6\n", " Uninstalling gdown-4.6.6:\n", " Successfully uninstalled gdown-4.6.6\n", " Attempting uninstall: torch\n", " Found existing installation: torch 2.0.1+cu118\n", " Uninstalling torch-2.0.1+cu118:\n", " Successfully uninstalled torch-2.0.1+cu118\n", "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "torchaudio 2.0.2+cu118 requires torch==2.0.1, but you have torch 2.0.0 which is incompatible.\n", "torchdata 0.6.1 requires torch==2.0.1, but you have torch 2.0.0 which is incompatible.\n", "torchtext 0.15.2 requires torch==2.0.1, but you have torch 2.0.0 which is incompatible.\n", "torchvision 0.15.2+cu118 requires torch==2.0.1, but you have torch 2.0.0 which is incompatible.\u001b[0m\u001b[31m\n", "\u001b[0mSuccessfully installed accelerate-0.22.0 boto3-1.28.36 botocore-1.31.36 bpemb-0.3.4 conllu-4.5.3 deprecated-1.2.14 flair-0.12.2 ftfy-6.1.1 gdown-4.4.0 huggingface-hub-0.16.4 janome-0.5.0 jmespath-1.0.1 langdetect-1.0.9 mpld3-0.3 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-cupti-cu11-11.7.101 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 nvidia-cufft-cu11-10.9.0.58 nvidia-curand-cu11-10.2.10.91 nvidia-cusolver-cu11-11.4.0.1 nvidia-cusparse-cu11-11.7.4.91 nvidia-nccl-cu11-2.14.3 nvidia-nvtx-cu11-11.7.91 pptree-3.1 pytorch-revgrad-0.2.0 s3transfer-0.6.2 safetensors-0.3.3 segtok-1.5.11 sentencepiece-0.1.99 sqlitedict-2.1.0 tokenizers-0.13.3 torch-2.0.0 transformer-smaller-training-vocab-0.3.1 transformers-4.32.1 urllib3-1.26.16 wikipedia-api-0.6.0\n" ] } ], "source": [ "!pip install flair" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 419 }, "id": "pS8IoLN_U4SM", "outputId": "9aea6020-2dfd-4fae-d904-312ce1eafe99" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting pycountry\n", " Downloading pycountry-22.3.5.tar.gz (10.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.1/10.1 MB\u001b[0m \u001b[31m36.7 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: setuptools in /usr/local/lib/python3.10/dist-packages (from pycountry) (67.7.2)\n", "Building wheels for collected packages: pycountry\n", " Building wheel for pycountry (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pycountry: filename=pycountry-22.3.5-py2.py3-none-any.whl size=10681833 sha256=fc4004cf677b7fbbe25f7d2dcd3eb916196943025509f785db4abc12a7b9bea2\n", " Stored in directory: /root/.cache/pip/wheels/03/57/cc/290c5252ec97a6d78d36479a3c5e5ecc76318afcb241ad9dbe\n", "Successfully built pycountry\n", "Installing collected packages: pycountry\n", "Successfully installed pycountry-22.3.5\n", "Collecting emoji\n", " Downloading emoji-2.8.0-py2.py3-none-any.whl (358 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m358.9/358.9 kB\u001b[0m \u001b[31m4.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: emoji\n", "Successfully installed emoji-2.8.0\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ ":29: MatplotlibDeprecationWarning: The seaborn styles shipped by Matplotlib are deprecated since 3.6, as they no longer correspond to the styles shipped by seaborn. However, they will remain available as 'seaborn-v0_8-\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", "
textis_rumoruser.handletopic
0Charlie Hebdo became well known for publishing...0.0BBCDanielScharliehebdo
1Now 10 dead in a shooting there today RT \"@BBC...0.0robbylevycharliehebdo
2@BBCDanielS @BBCWorld I'm guessing this is bei...0.0ModerateInAllcharliehebdo
3@BBCDanielS @BBCWorld why would you mention th...0.0GabTarquinicharliehebdo
4@BBCDanielS @BBCWorld perps identified?0.0freethought41charliehebdo
...............
62440@AnonyOps @Xplant So that means its ok to torc...1.0RianAldenferguson
62441@RianAlden not at all, but they need to change...1.0Xplantferguson
62442@Xplant @AnonyOps Absoluteky. But it pains me...1.0RianAldenferguson
62443@Xplant @AnonyOps I'm curious how many of thes...1.0RianAldenferguson
62444@Xplant @AnonyOps You get 15,000 people showin...1.0RianAldenferguson
\n", "

62445 rows × 4 columns

\n", "\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", " \n" ] }, "metadata": {}, "execution_count": 6 } ], "source": [ "data = pd.read_csv('/content/drive/MyDrive/Dataset/pheme/dataset.csv')\n", "data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 423 }, "id": "I-aqe8QLX665", "outputId": "a1cb0cb5-e1c9-45fa-d75e-be7ce62f8355" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " text is_rumor \\\n", "4350 @Perseus009 @guardian After the 1962 Cuban Mis... 0.0 \n", "5520 @Independent After the 1962 Cuban Missile Cris... 0.0 \n", "6538 @cnni Call to register for this site and gain ... 0.0 \n", "6997 @bouckap At least 12 killed in shooting at off... 0.0 \n", "7477 @cnni At least 12 killed in shooting at office... 0.0 \n", "... ... ... \n", "62280 MSNBC is literally reporting that Police Chief... 1.0 \n", "62319 Remarkably, despite the military-style police ... 1.0 \n", "62339 Americans are 8 times more likely to be killed... 1.0 \n", "62408 I refuse to call the #Ferguson police chief in... 1.0 \n", "62427 Police in #Ferguson once charged a man w/ dest... 1.0 \n", "\n", " user.handle topic \n", "4350 mycubanfriends charliehebdo \n", "5520 mycubanfriends charliehebdo \n", "6538 ibraheemalmasri charliehebdo \n", "6997 hot10news charliehebdo \n", "7477 hot10news charliehebdo \n", "... ... ... \n", "62280 elonjames ferguson \n", "62319 TheDailyEdge ferguson \n", "62339 TheEyeOfControl ferguson \n", "62408 ProfessorCrunk ferguson \n", "62427 AnonyOps ferguson \n", "\n", "[800 rows x 4 columns]" ], "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", " \n", " \n", "
textis_rumoruser.handletopic
4350@Perseus009 @guardian After the 1962 Cuban Mis...0.0mycubanfriendscharliehebdo
5520@Independent After the 1962 Cuban Missile Cris...0.0mycubanfriendscharliehebdo
6538@cnni Call to register for this site and gain ...0.0ibraheemalmasricharliehebdo
6997@bouckap At least 12 killed in shooting at off...0.0hot10newscharliehebdo
7477@cnni At least 12 killed in shooting at office...0.0hot10newscharliehebdo
...............
62280MSNBC is literally reporting that Police Chief...1.0elonjamesferguson
62319Remarkably, despite the military-style police ...1.0TheDailyEdgeferguson
62339Americans are 8 times more likely to be killed...1.0TheEyeOfControlferguson
62408I refuse to call the #Ferguson police chief in...1.0ProfessorCrunkferguson
62427Police in #Ferguson once charged a man w/ dest...1.0AnonyOpsferguson
\n", "

800 rows × 4 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 10 } ], "source": [ "data[data.duplicated()]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "vpcHx_9jYB60" }, "outputs": [], "source": [ "data = data.drop_duplicates()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 53 }, "id": "gPVchIxwYG6N", "outputId": "a81fd829-09e9-474d-c320-1cdd2ca1cd1b" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Empty DataFrame\n", "Columns: [text, is_rumor, user.handle, topic]\n", "Index: []" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
textis_rumoruser.handletopic
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 13 } ], "source": [ "data[data.duplicated()]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uVz9TJgZXtiZ", "outputId": "7cb80003-38a6-4e87-e229-524624c62204" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.0 48018\n", "1.0 13625\n", "Name: is_rumor, dtype: int64" ] }, "metadata": {}, "execution_count": 16 } ], "source": [ "data['is_rumor'].value_counts()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 503 }, "id": "yqTbVQnlYjfq", "outputId": "90b9e74e-c937-4e4d-b946-c82470f94b27" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 17 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHVCAYAAAB8NLYkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAnM0lEQVR4nO3df3RU9Z3/8VcySH4QkpDQpjS1xENIzCQxKK3xRCUgx7KKYMvBbMLaNm5RBJFvouyqh41ID9VVQBTaBbJdqaye0xjcFbClujn8OHjAs2dbwckQSIlQ3RiIwgww5AdmMt8//DJfpySaCcEh7zwf53hOuZ97h89M516e5965M1GBQCAgAAAADHrRkZ4AAAAABgZhBwAAYARhBwAAYARhBwAAYARhBwAAYARhBwAAYARhBwAAYARhBwAAYARhBwAAYMSwSE/gcujq6tLp06cVExOj6GjaFQAADF7d3d3q7OxUUlKShg378nQLO+yys7N11VVXKSoqKrispKREVVVV2rdvn1atWqUPPvhAY8aM0bx58zRz5szgeps2bdKrr76qTz75RNnZ2VqyZIny8vIkSZ2dnfrFL36hXbt2qbOzU4WFhVq2bJlGjRolSWpubtayZct04MABxcfH684779Sjjz7aY7idPn1ax44dC/epAQAAXLEyMjKUmpr6pev064zdH/7wB33nO98JWdba2qoFCxZoyZIlmjFjhv74xz9q/vz5uuaaa5Sfn68dO3Zo7dq1+vWvf63s7Gxt2rRJDz74oN5++23Fx8dr9erVcrvdqqmpUVxcnKqqqvTEE09o/fr1kqSHH35Yubm5qqur08mTJzVv3jyNHj1a991330Xzi4mJCb4AcXFx/XmKGGL8fr8aGxuVlZUlh8MR6ekAMIpjDfqjvb1dx44dC/bNlxmwS7Hbtm1TRkaGZs+eLUkqKirSbbfdptraWuXn56umpkazZs1SQUGBJGnu3LnatGmTdu7cqWnTpmnz5s169tlnNWbMGElSRUWFpk+frhMnTqi1tVWHDh3Sxo0bNXLkSI0cOVLl5eV6+eWXewy7C2fx4uLiFB8fP1BPEYb5/X5JUnx8PAdbAJcNxxpcir58vKxfYbdq1Sq999578vl8uuOOO/T444/L7XbL6XSGrOd0OrV9+3ZJktvt1p133hkyuZycHLlcLuXk5Ojs2bPKzc0Njo8bN06xsbFyu91qbW1Venq6kpKSguO5ubk6evSofD6fEhISepyn3+8P7kTAl7nwPuH9AuBy4liD/gjn/RJ22E2YMEFFRUV69tln9dFHH6miokLLli2T1+tVWlpayLrJycnyeDySJK/XGxJmkpSUlCSPxyOv1ytJSkxMDBlPTEwMjv/12IXH8ng8vYZdY2NjuE8PQ5zL5Yr0FAAMARxrcLmEHXY1NTXB/z1u3DgtXrxY8+fP18SJE79y20Ag0O/xr9q2J1lZWVyKRZ/4/X65XC7l5+dzeQTAZcOxBv3R1tbW55NVl/wZu+985zvy+/2Kjo4Onnm7wOPxKCUlRZI0atSoi8a9Xq/Gjx8fXMfr9WrEiBHB8dOnTys1NVV+v7/HbaOiooLb9sThcLDjICy8ZwB8HTjWIBzhvFfC+pK3gwcP6p//+Z9DljU1NWn48OEqLi5WfX19yFh9fX3wZom8vDy53e7gmN/v18GDB1VQUKCrr75aSUlJIeONjY06f/688vLylJeXp5aWFp06dSo47nK5lJmZGRKCAAAAQ1lYYZeamqqamhpVV1fr/PnzOnr0qF588UX97d/+re6++241NzertrZWnZ2d2r17t3bv3q2SkhJJUllZmd544w3t379f7e3tWrdunYYPH67JkyfL4XCopKRE69evV0tLizwej55//nndfvvtGj16tJxOp/Lz87Vq1Sr5fD41NTVp48aNKisruywvCgAAwGAU1qXYtLQ0VVdXa9WqVcEw+9GPfqTKykrFxMRow4YNWr58uZYtW6b09HStWLFC1157rSRp0qRJeuSRR1RRUaGTJ08qPz9f1dXVio2NlSQtWrRI586d0913362uri5NmTJFTz31VPDvXrNmjaqqqnTzzTcrISFBpaWlmjNnzsC9EgAAAINcVKA/dyVc4dra2tTQ0KCcnBxunkCf+P1+7d+/XxMmTOBzLwAuG4416I9wuoYfUgUAADCCsAMAADCCsAMAADCCsAMAADCCsAMAADCCsAMAADCCsAMAADCCsAMAADCCsAP+n7i4uEhPAQCAS0LYDUH+bnM/NnLJHA6HnE4n3wTfC94zADA4hPVbsbDBER2l//Pb93Sk1RfpqWAQyPxmgl4svT7S0wAA9AFhN0QdafXJ/fGZSE8DAAAMIC7FAgAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGEHYAQAAGNHvsHv66aeVnZ0d/PO+ffs0e/Zs3XDDDZo+fbq2bt0asv6mTZs0bdo03XDDDSorK1N9fX1wrLOzU08++aQmTZqkwsJCLVq0SB6PJzje3NysBx54QIWFhZoyZYpWrFih7u7u/k4dAADApH6FXUNDg7Zs2RL8c2trqxYsWKDS0lLt27dPS5YsUVVVlVwulyRpx44dWrt2rZ577jnt3btXU6ZM0YMPPqi2tjZJ0urVq+V2u1VTU6O33npLgUBATzzxRPDxH374YaWlpamurk4bN25UXV2dXn755Ut53gAAAOaEHXbd3d1aunSpysvLg8u2bdumjIwMzZ49WzExMSoqKtJtt92m2tpaSVJNTY1mzZqlgoICxcbGau7cuZKknTt3qqurS5s3b9aCBQs0ZswYJScnq6KiQrt27dKJEyfkcrl06NAhLV68WCNHjlRGRobKy8tVU1MzMK8AAACAEcPC3eC3v/2tYmJiNGPGDL3wwguSJLfbLafTGbKe0+nU9u3bg+N33nlncCw6Olo5OTlyuVzKycnR2bNnlZubGxwfN26cYmNj5Xa71draqvT0dCUlJQXHc3NzdfToUfl8PiUkJPQ6V7/fL7/fH+5TNM/hcER6ChiE2JeAS3dhP2J/QjjCeb+EFXaffvqp1q5dq3//938PWe71epWWlhayLDk5Ofg5Oa/XGxJmkpSUlCSPxyOv1ytJSkxMDBlPTEwMjv/12IXH8ng8Xxp2jY2NfX9yQ0RcXNxFEQ70xeHDh9Xe3h7paQAmXPioEjDQwgq7Z555RrNmzVJmZqb+93//N6y/KBAI9Hv8q7btTVZWluLj4/u1LYBQX7xZCkD/+P1+uVwu5efnc/UEfdbW1tbnk1V9Drt9+/bpvffe05tvvnnR2KhRo4Jn3i7weDxKSUnpddzr9Wr8+PHBdbxer0aMGBEcP336tFJTU+X3+3vcNioqKrhtbxwOBzsOMEDYl4CBw79PCEc475U+3zyxdetWnTx5UlOmTFFhYaFmzZolSSosLFRWVlbI15dIUn19vQoKCiRJeXl5crvdwTG/36+DBw+qoKBAV199tZKSkkLGGxsbdf78eeXl5SkvL08tLS06depUcNzlcikzMzMkBAEAAIa6Pofd448/rrfeektbtmzRli1bVF1dLUnasmWLZsyYoebmZtXW1qqzs1O7d+/W7t27VVJSIkkqKyvTG2+8of3796u9vV3r1q3T8OHDNXnyZDkcDpWUlGj9+vVqaWmRx+PR888/r9tvv12jR4+W0+lUfn6+Vq1aJZ/Pp6amJm3cuFFlZWWX5xUBAAAYpPp8KTYpKSnkBoiuri5J0re+9S1J0oYNG7R8+XItW7ZM6enpWrFiha699lpJ0qRJk/TII4+ooqJCJ0+eVH5+vqqrqxUbGytJWrRokc6dO6e7775bXV1dmjJlip566qng37VmzRpVVVXp5ptvVkJCgkpLSzVnzpxLfvIAAACWRAX6e2fCFaytrU0NDQ3Kycnh5oleTF+zR+6Pz0R6GhgEcr+dqN8tujXS0wBM8Pv92r9/vyZMmMBn7NBn4XQNvxULAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgBGEHAABgRNhhd+jQIf30pz/VxIkTVVRUpIqKCn3yySeSpH379mn27Nm64YYbNH36dG3dujVk202bNmnatGm64YYbVFZWpvr6+uBYZ2ennnzySU2aNEmFhYVatGiRPB5PcLy5uVkPPPCACgsLNWXKFK1YsULd3d39fd4AAADmhBV258+f19///d/rxhtv1L59+/Tmm2/q5MmTeuqpp9Ta2qoFCxaotLRU+/bt05IlS1RVVSWXyyVJ2rFjh9auXavnnntOe/fu1ZQpU/Tggw+qra1NkrR69Wq53W7V1NTorbfeUiAQ0BNPPBH8ux9++GGlpaWprq5OGzduVF1dnV5++eUBfCkAAAAGt7DCrr29XZWVlZo3b56GDx+ulJQU3X777frzn/+sbdu2KSMjQ7Nnz1ZMTIyKiop02223qba2VpJUU1OjWbNmqaCgQLGxsZo7d64kaefOnerq6tLmzZu1YMECjRkzRsnJyaqoqNCuXbt04sQJuVwuHTp0SIsXL9bIkSOVkZGh8vJy1dTUDPwrAgAAMEgNC2flpKQk3XPPPcE/f/DBB/rP//xP3XHHHXK73XI6nSHrO51Obd++XZLkdrt15513Bseio6OVk5Mjl8ulnJwcnT17Vrm5ucHxcePGKTY2Vm63W62trUpPT1dSUlJwPDc3V0ePHpXP51NCQkKP8/X7/fL7/eE8xSHB4XBEegoYhNiXgEt3YT9if0I4wnm/hBV2FzQ3N2vatGnq6upSSUmJFi1apPvvv19paWkh6yUnJwc/J+f1ekPCTPo8FD0ej7xeryQpMTExZDwxMTE4/tdjFx7L4/H0GnaNjY39eXqmxcXFXRTgQF8cPnxY7e3tkZ4GYMKFjykBA61fYZeeni6Xy6W//OUvevLJJ/WP//iPfdouEAj0e/yrtu1JVlaW4uPjw94OwMWys7MjPQVg0PP7/XK5XMrPz+fqCfqsra2tzyer+hV2khQVFaWMjAxVVlaqtLRUxcXFwTNvF3g8HqWkpEiSRo0addG41+vV+PHjg+t4vV6NGDEiOH769GmlpqbK7/f3uG1UVFRw2544HA52HGCAsC8BA4d/nxCOcN4rYd08sW/fPk2bNi3ka0aioz9/iOuuuy7k60skqb6+XgUFBZKkvLw8ud3u4Jjf79fBgwdVUFCgq6++WklJSSHjjY2NOn/+vPLy8pSXl6eWlhadOnUqOO5yuZSZmRkSggAAAENZWGGXl5cnn8+nFStWqL29XadOndLatWv1ve99T2VlZWpublZtba06Ozu1e/du7d69WyUlJZKksrIyvfHGG9q/f7/a29u1bt06DR8+XJMnT5bD4VBJSYnWr1+vlpYWeTwePf/887r99ts1evRoOZ1O5efna9WqVfL5fGpqatLGjRtVVlZ2WV4UAACAwSissBs5cqReeukl1dfX66abbtL06dM1cuRIPf/880pNTdWGDRv0yiuvaOLEiXr66ae1YsUKXXvttZKkSZMm6ZFHHlFFRYVuvPFG7d27V9XV1YqNjZUkLVq0SAUFBbr77rs1depUjRgxQr/4xS+Cf/eaNWvU2tqqm2++WT/5yU/0wx/+UHPmzBnAlwIAAGBwiwr0566EK1xbW5saGhqUk5PDzRO9mL5mj9wfn4n0NDAI5H47Ub9bdGukpwGY4Pf7tX//fk2YMIHP2KHPwukafisWAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADAiLDDrrm5WQ899JAKCwtVVFSkxx9/XGfOnJEkNTQ06N5779XEiRP1gx/8QC+99FLItr///e81Y8YMXX/99Zo1a5beeeed4Fh3d7dWr16tqVOn6vvf/75+9rOf6aOPPgqOe71eVVRUqKioSLfccouWLFmijo6O/j5vAAAAc8IOuwcffFCJiYnasWOH/uM//kN//vOf9eyzz6qjo0Pz5s3TTTfdpD179mj16tXasGGD3n77bUmfR99jjz2mxYsX691331V5ebkWLlyo48ePS5JeffVVbdu2TdXV1dq5c6cyMjL00EMPKRAISJKqqqrU3t6uN998U6+//rqampq0cuXKAXwpAAAABrewwu7MmTPKy8vTo48+qhEjRuhb3/qWfvSjH+l//ud/tGvXLn322WeaP3++4uPjlZubq3vuuUc1NTWSpNraWhUXF6u4uFgxMTGaOXOmsrKytHXrVklSTU2NysvLNW7cOCUkJKiyslJNTU06cOCAPv30U9XV1amyslIpKSlKS0vTggUL9Prrr+uzzz4b+FcFAABgEBoWzsqJiYl65plnQpa1tLTom9/8ptxut7Kzs+VwOIJjTqdTtbW1kiS3263i4uKQbZ1Op1wulzo6OnTkyBE5nc7gWEJCgsaOHSuXy6WzZ8/K4XAoOzs7OJ6bm6u2tjZ98MEHIcu/yO/3y+/3h/MUh4Qv/n8E9BX7EnDpLuxH7E8IRzjvl7DC7q+5XC698sorWrdunbZv367ExMSQ8eTkZHm9XnV3d8vr9SopKSlkPCkpSUeOHNHp06cVCAR6HPd4PEpOTlZCQoKioqJCxiTJ4/H0Or/GxsZLeXomxcXFhQQ00FeHDx9We3t7pKcBmOByuSI9BRjV77D74x//qPnz5+vRRx9VUVGRtm/f3uN6X4yxC5+X682XjX/Vtj3JyspSfHx82NsBuFhvZ8YB9J3f75fL5VJ+fj5XT9BnbW1tfT5Z1a+w27Fjh/7hH/5BVVVV+uEPfyhJSklJ0bFjx0LW83q9Sk5OVnR0tEaNGiWv13vReEpKSnCdnsZTU1OVkpIin88nv98f3BEurJuamtrrPB0OBzsOMEDYl4CBw79PCEc475Ww74r905/+pMcee0wvvvhiMOokKS8vT4cPH1ZXV1dwmcvlUkFBQXC8vr4+5LEujMfExGj8+PFyu93BsTNnzujDDz/Uddddp5ycHAUCAR06dChk28TERF1zzTXhPgUAAACTwgq7rq4u/dM//ZMWL16sW265JWSsuLhYCQkJWrdundrb23XgwAFt3rxZZWVlkqSSkhLt3btXu3btUmdnpzZv3qxjx45p5syZkqSysjJt2rRJTU1N8vl8WrlypXJycpSfn6+UlBRNmzZNL7zwgk6dOqXjx4/rV7/6lWbPnq1hwy7pY4IAAABmhFVF+/fvV1NTk5YvX67ly5eHjP3hD3/Q+vXrtXTpUlVXV2v06NGqrKzU5MmTJX3+ebeVK1fqmWeeUXNzszIzM7VhwwZ94xvfkCSVlpbqk08+0Y9//GOdO3dOhYWF+uUvfxl8/J///OdaunSppk6dqquuukp33XWXKisrL/HpAwAA2BEV6M9dCVe4trY2NTQ0KCcnh5snejF9zR65Pz4T6WlgEMj9dqJ+t+jWSE8DMMHv92v//v2aMGECn7FDn4XTNfxWLAAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAgBGEHQAAX6O4uLhITwGGEXYAgMvC3x2I9BSuOA6HQ06nUw6HI9JTuSLxnrl0wyI9AQCATY7oKP2f376nI62+SE8Fg0DmNxP0Yun1kZ7GoEfYAQAumyOtPrk/PhPpaQBDBpdiAQAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjCDsAAAAjAg77Pbs2aOioiJVVlZeNPb73/9eM2bM0PXXX69Zs2bpnXfeCY51d3dr9erVmjp1qr7//e/rZz/7mT766KPguNfrVUVFhYqKinTLLbdoyZIl6ujoCI43NDTo3nvv1cSJE/WDH/xAL730UrhTBwAAMC2ssPvXf/1XLV++XGPHjr1orKGhQY899pgWL16sd999V+Xl5Vq4cKGOHz8uSXr11Ve1bds2VVdXa+fOncrIyNBDDz2kQCAgSaqqqlJ7e7vefPNNvf7662pqatLKlSslSR0dHZo3b55uuukm7dmzR6tXr9aGDRv09ttvX+rzBwAAMCOssIuJidHmzZt7DLva2loVFxeruLhYMTExmjlzprKysrR161ZJUk1NjcrLyzVu3DglJCSosrJSTU1NOnDggD799FPV1dWpsrJSKSkpSktL04IFC/T666/rs88+065du/TZZ59p/vz5io+PV25uru655x7V1NQMzKsAAABgwLBwVv7JT37S65jb7VZxcXHIMqfTKZfLpY6ODh05ckROpzM4lpCQoLFjx8rlcuns2bNyOBzKzs4Ojufm5qqtrU0ffPCB3G63srOz5XA4Qh67trb2S+fr9/vl9/vDeYpDwhdfR6Cv2JcQLo416A+ONRcL5zUJK+y+jNfrVVJSUsiypKQkHTlyRKdPn1YgEOhx3OPxKDk5WQkJCYqKigoZkySPxyOv16vExMSQbZOTk+X1etXd3a3o6J5PPDY2Ng7EUzMlLi4uJLCBvjp8+LDa29sjPQ0MEhxr0F8cay7NgIWdpODn5foz/lXb9uSLIdiTrKwsxcfHh/24AC72xTPqAHC5cKy5WFtbW59PVg1Y2I0aNUperzdkmdfrVUpKipKTkxUdHd3jeGpqqlJSUuTz+eT3+4On7i+se2H82LFjF2174XF743A4uBQADBD2JQBfB441FwvnNRmw77HLy8tTfX19yDKXy6WCggLFxMRo/PjxcrvdwbEzZ87oww8/1HXXXaecnBwFAgEdOnQoZNvExERdc801ysvL0+HDh9XV1XXRYwMAAOBzAxZ2JSUl2rt3r3bt2qXOzk5t3rxZx44d08yZMyVJZWVl2rRpk5qamuTz+bRy5Url5OQoPz9fKSkpmjZtml544QWdOnVKx48f169+9SvNnj1bw4YNU3FxsRISErRu3Tq1t7frwIED2rx5s8rKygZq+gAAAINeWJdi8/PzJSl45qyurk7S52fPsrKytHLlSj3zzDNqbm5WZmamNmzYoG984xuSpNLSUn3yySf68Y9/rHPnzqmwsFC//OUvg4/985//XEuXLtXUqVN11VVX6a677gp+CfLw4cO1fv16LV26VNXV1Ro9erQqKys1efLkS34BAAAArIgK9OeuhStcW1ubGhoalJOTw80TvZi+Zo/cH5+J9DQwCOR+O1G/W3RrpKeBQYpjDfqKY03vwukafisWAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADACMIOAADAiEEVds3NzXrggQdUWFioKVOmaMWKFeru7o70tAAAAK4IwyI9gXA8/PDDys3NVV1dnU6ePKl58+Zp9OjRuu+++yI9NQAAgIgbNGfsXC6XDh06pMWLF2vkyJHKyMhQeXm5ampqIj01AACAK8KgOWPndruVnp6upKSk4LLc3FwdPXpUPp9PCQkJweUXLs+eO3dOfr//a5/rlc7hcOjGq0dozIioSE8Fg8DVKfFqa2tjX0LYONYgHBxretfR0SFJffr42aAJO6/Xq8TExJBlFyLP4/GEhF1nZ6ck6cMPP/z6JjjI3PVdSd+Ni/Q0MCgE1NDQEOlJYJDiWIO+41jzVTo7O0N6pyeDJuwkKRAI9Gm9pKQkZWRkKCYmRtHRg+ZqMwAAwEW6u7vV2dkZctWyN4Mm7FJSUuT1ekOWeb1eRUVFKSUlJWT5sGHDlJqa+jXODgAA4PL5qjN1Fwya01l5eXlqaWnRqVOngstcLpcyMzM1YsSICM4MAADgyjBows7pdCo/P1+rVq2Sz+dTU1OTNm7cqLKyskhPDQAA4IoQFejrB9euAMePH1dVVZX++7//WwkJCSotLdXChQsVFcUdVwAAAIMq7AAAANC7QXMpFgAAAF9u0NwVCwykjo4O7dixQy6XK3i3dUpKigoKCjR58mQNHz48shMEYMb7778vl8slj8cj6f8fa3JzcyM8M1jEpVgMOW63W/PmzVNUVJRycnKC3wvk9Xp18OBBxcTEqLq6WpmZmRGeKYDB7KOPPtLChQvV1NSksWPHhhxrPvzwQ+Xm5mrNmjVKS0uL8ExhCWGHIefv/u7vNHnyZM2dO/eiG2+6u7v1L//yL3r33Xf1yiuvRGiGACy4//77NXbsWFVWVl70tVxnzpzRypUr1draqvXr10dohrCIsMOQ873vfU979+7t9XJrR0eHCgsLdeDAga95ZgAsKSws1M6dOxUfH9/juM/n06233qr33nvva54ZLOPmCQw5o0eP1uHDh3sdP3z48EW/ZgIA4Ro5cqROnDjR63hra2uv0Qf0FzdPYMiZM2eO5s6dq1mzZsnpdCoxMVGS5PF45Ha7tWXLFj3yyCMRniWAwW769Om6//77dd999wU/zxsIBOT1elVfX69NmzbxJfsYcFyKxZC0Y8cOvfbaa6qvrw+5KzYvL09lZWW69dZbIztBAINeIBDQK6+8otdee01HjhzRhX9uo6OjNX78eJWVlam0tDTCs4Q1hB0AAJdZZ2enTp8+LUlKTk7mK5Vw2RB2wF/505/+pLa2Nt1yyy2RngoAw5qbm3X+/Hldc801kZ4KDCHsgL/yN3/zN/rLX/6ihoaGSE8FgGF33HGHjh07xrEGA4qww5DW1tYW8m3wcXFxEZ4RgKHixIkT6urqUnp6eqSnAkMIOwxJv/nNb/Taa6/p6NGjwWVRUVEaN26c5syZw51qAIBBia87wZCzcuVK/dd//Zfuu+8+OZ1OJScnS/r8Z37ef/99/du//ZtOnTqlhx56KLITBWBeQUEBX4aOAcUZOww5t912m37zm9/ou9/9bo/jTU1N+ulPf6p33nnna54ZgKHmuuuu0/vvvx/pacAQzthhyDl37pxSU1N7HU9LS5PP5/saZwTAokcfffQr1/H7/V/DTDCU8JNiGHImTJig5557rsd483q9evbZZ3XjjTdGYGYALHn33Xd1/PhxDR8+vNf/gIHGpVgMOR9//LEWLlyoxsZGpaenKzExMfgzPy0tLcrPz9eLL76otLS0SE8VwCC2Z88ePf3006qtrVVCQkKP6/AZOww0wg5Dlsvl0sGDBy/6SbGcnJzITgyAGb/+9a8VGxure++9t8dxPmOHgUbYAQAAGMFn7AAAAIwg7AAAAIwg7AAAAIwg7AAAAIwg7AAAAIwg7AAAAIwg7AAAAIz4v87/IZK0qr6NAAAAAElFTkSuQmCC\n" }, "metadata": {} } ], "source": [ "data.is_rumor.value_counts().plot(kind='bar')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "jUMJByQiYrFm", "outputId": "0cbe0636-5ec1-47fa-b71c-3208cb4a720f" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: nltk in /usr/local/lib/python3.10/dist-packages (3.8.1)\n", "Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from nltk) (8.1.7)\n", "Requirement already satisfied: joblib in /usr/local/lib/python3.10/dist-packages (from nltk) (1.3.2)\n", "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.10/dist-packages (from nltk) (2023.6.3)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from nltk) (4.66.1)\n" ] } ], "source": [ "!pip install --user -U nltk" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "1_KrpPrnaQuT", "outputId": "fe5a18b1-8a7e-438e-d11e-10c2e4735e7f" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: numpy in /root/.local/lib/python3.10/site-packages (1.25.2)\n" ] } ], "source": [ "!pip install --user -U numpy" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "il2aGIHiaWwo", "outputId": "04ef5330-d5ab-4484-f001-26d39ac984a3" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: vaderSentiment in /usr/local/lib/python3.10/dist-packages (3.3.2)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from vaderSentiment) (2.31.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->vaderSentiment) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->vaderSentiment) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->vaderSentiment) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->vaderSentiment) (2023.7.22)\n" ] } ], "source": [ "!pip install vaderSentiment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3jDc6l9Rsjdz", "outputId": "2c3e6a26-130e-4409-a5aa-84ead3e20347" }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "[nltk_data] Downloading package vader_lexicon to /root/nltk_data...\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "True" ] }, "metadata": {}, "execution_count": 23 } ], "source": [ "import nltk\n", "nltk.download('vader_lexicon')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "4aXCcZFxsu-C" }, "outputs": [], "source": [ "sia_vader = SentimentIntensityAnalyzer()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "oljPIItLs_IX" }, "outputs": [], "source": [ "sentiments = []\n", "for tweet in data.text:\n", " sentiment_dict = sia_vader.polarity_scores(tweet)\n", " sentiment_dict.pop('compound', None)\n", " sentiments.append(max(sentiment_dict , key=sentiment_dict.get))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "udIdHsKttOIr", "outputId": "27b05357-5056-4ee5-ee67-715c8a0205d4" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "neu 58197\n", "neg 1826\n", "pos 1622\n", "Name: sentiment, dtype: int64" ] }, "metadata": {}, "execution_count": 26 } ], "source": [ "data['sentiment'] = sentiments\n", "data['sentiment'].value_counts()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VCrjJK0RtZX3", "outputId": "7b8897c8-85c5-40b6-df43-86a733ebefc2" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting demoji\n", " Downloading demoji-1.1.0-py3-none-any.whl (42 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m42.9/42.9 kB\u001b[0m \u001b[31m1.0 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" ] } ], "source": [ "!pip install demoji" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "VZ47IJeltkua" }, "outputs": [], "source": [ "#text cleaning\n", "##CUSTOM DEFINED FUNCTIONS TO CLEAN THE TWEETS\n", "\n", "#Clean emojis from text\n", "def strip_emoji(text):\n", " return re.sub(emoji.get_emoji_regexp(), r\"\", text) #remove emoji\n", "\n", "#Remove punctuations, links, mentions and \\r\\n new line characters\n", "def strip_all_entities(text):\n", " text = text.replace('\\r', '').replace('\\n', ' ').replace('\\n', ' ').lower() #remove \\n and \\r and lowercase\n", " text = re.sub(r\"(?:\\@|https?\\://)\\S+\", \"\", text) #remove links and mentions\n", " text = re.sub(r'[^\\x00-\\x7f]',r'', text) #remove non utf8/ascii characters such as '\\x9a\\x91\\x97\\x9a\\x97'\n", " banned_list= string.punctuation + 'Ã'+'±'+'ã'+'¼'+'â'+'»'+'§'\n", " table = str.maketrans('', '', banned_list)\n", " text = text.translate(table)\n", " return text\n", "#clean hashtags at the end of the sentence, and keep those in the middle of the sentence by removing just the # symbol\n", "def clean_hashtags(tweet):\n", " new_tweet = \" \".join(word.strip() for word in re.split('#(?!(?:hashtag)\\b)[\\w-]+(?=(?:\\s+#[\\w-]+)*\\s*$)', tweet)) #remove last hashtags\n", " new_tweet2 = \" \".join(word.strip() for word in re.split('#|_', new_tweet)) #remove hashtags symbol from words in the middle of the sentence\n", " return new_tweet2\n", "\n", "#Filter special characters such as & and $ present in some words\n", "def filter_chars(a):\n", " sent = []\n", " for word in a.split(' '):\n", " if ('$' in word) | ('&' in word):\n", " sent.append('')\n", " else:\n", " sent.append(word)\n", " return ' '.join(sent)\n", "\n", "def remove_mult_spaces(text): ## remove multiple spaces\n", " return re.sub(\"\\s\\s+\" , \" \", text)\n", "\n", "\n", "def remove_spam(text):\n", " match = re.search(r'subscribe', text)\n", " if match:\n", " return ''\n", " else:\n", " return text" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "V_F8xE75uDUT" }, "outputs": [], "source": [ "data['text']=data['text'].apply(str)\n", "data['text'] = data['text'].fillna('').apply(str)\n", "texts_new = []\n", "for t in data.text:\n", " texts_new.append(remove_spam(remove_mult_spaces(filter_chars(clean_hashtags(strip_all_entities(t))))))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "xdQ2U-nSuU-X" }, "outputs": [], "source": [ "data['text_clean'] = texts_new" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "KO4-rDu5uZvr" }, "outputs": [], "source": [ "data['text_clean'] = data['text_clean'].str.lower()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "NRZ2qtnJuffo" }, "outputs": [], "source": [ "text_len = []\n", "for text in data.text_clean:\n", " tweet_len = len(text.split())\n", " text_len.append(tweet_len)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Trts6iyYulPq" }, "outputs": [], "source": [ "data['text_len'] = text_len" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 506 }, "id": "5NXpYupIuqq6", "outputId": "82002ffe-aba4-4b2c-c927-1a0ae53f7995" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHpCAYAAACful8UAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABP00lEQVR4nO3deXgUVb7G8bezJwQSAopMYIiCBLKwQ7xchlVgFEFBRIKiuICAEFkFRARHlItsg6ggKjOijEYY9mFTWVxAcUS0CUtYRCHDZkgDSZpA0n3/wPQQSSBbpbqT7+d5eCB1qrt+dXLo7rfrVJXF6XQ6BQAAAAAASp2X2QUAAAAAAFBeEboBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugEA5cKJEyf06quvqmfPnmrZsqWio6PVqlUr9e3bVwsXLtSFCxfyrD9+/HhFRkYqMjLSpIqN9c0337j2b968eTdc/z//+Y/mzZunb775pgyqkxwOh958800tX778hutevS+FWb+sHT9+3FXfwoULC/WYouw/AMCzEboBAB5v3bp1+vOf/6x3331Xe/fuVdWqVRUdHS1vb299//33mjVrlrp166YDBw6YXarbWrFihV5//XXt3LmzTLa3a9cuzZ07VytWrCiT7bmbir7/AFCRELoBAB7txx9/1LPPPquLFy+qVq1aWr58uTZt2qSPP/5Y27dv16xZsxQQEKBTp05p1KhRysnJMbtkt7Rhw4ZyvT13U9H3HwAqEkI3AMCjvf7667p8+bIk6bXXXlN0dLSrzWKx6J577tH48eMVGxurO++8U+fPn7/u8126dElvvfWWunfvrkaNGqlp06aKj4/XZ599ds26KSkpGj9+vNq2bauYmBi1adNGTz31lH744Yc8682bN881/fjEiRN655131LlzZ8XExKhz585auXLlNc995swZTZkyRR07dlRMTIzi4uI0bNgwHTx48Jp1161bpx49eig2NlZt2rTR9OnTlZWVVZjuc9WWnJws6Up//n4a9/bt2/XEE08oLi5OMTExuvPOOzVnzhzZ7XbXOkOHDlVkZKRiYmK0f/9+1/KffvpJjRs3VmRkpB599FHt2LFDkZGRev/99yVJO3fuVGRkpMaPH1+oen+vMLVJ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335bFy5ckCTZbLZi7Y+Xl5frHPHvv/9eu3btcrW9++67Gjp0qF544QVdvnxZ1atXd12o65tvvtGPP/4o6crtxj744INCb/Pq6dZXT9tu3bq1goKCJF250Ft6erokKT09XQkJCXrmmWfy3FpsyZIl+vTTTyVJL730kl5++WVZLBbt3LlTb775Zp5t5l7o7T//+Y8cDkehay1ubUWRe064JC1evNg13X/nzp364osvivWcv1fS/QcAeA5CNwDAo9WpU0cLFixQaGiozpw5o4cfflgdO3bUgw8+qNatW2vMmDHKyspSzZo1tWDBAldQy0/Pnj3VqlUrSdKsWbPUpUsX9erVSwMHDtS2bduUkZGhOnXqKDg4WC1atJB05Z7Md911lzp16qRFixbpiSeekCQlJyfrvvvuc10RuyhGjx6t6tWry+FwqH///rr33nt111136dVXX9Vnn32m2267zTVN+sknn5R05YuCfv36qWfPnvrzn/+sW265pdDbu+mmm1S5cmVJ0sqVK3X//ffrH//4h0JCQlz3j7ZarerQoYP69OmjTp06aePGjfrmm2/UtGlTSVeOrOdeVb13795q27atWrRooYcffliS9Oabb+rf//63a5t169aVdCXk33XXXZo0aVKR+qgotRVVq1atXOMg97l79uypxx57rMDb0hVVSfcfAOA5CN0AAI/XqlUrbdy4UQkJCWrSpIkyMjJktVp16dIlNWnSRGPHjtW//vWvAqeV5/Lx8dE777yj4cOHq169ejp58qQOHTqkevXqaezYsfrrX//qOgd49uzZ6tq1q0JDQ3X69GnVrVtX//jHPzR48GC1bNlSvr6+SktLy3MUubBq1qypf/7zn+rTp49uvvlmHTp0SKdOnVKrVq302muvacCAAa517733Xr344ouqU6eOpCvnVD/66KN6/vnnC709b29vTZs2TbVq1ZKPj49OnDihgIAASVeu3P7222+7rsidlJQkf39/9erVSx9//LFuvfVWXbx4UaNGjXJ9uTFhwgTXc48aNUq1a9dWTk6ORo8e7ZoBMHbsWDVq1Ei+vr769ddfi9VPhamtuN544w3df//9Cg0Nld1ul8Vi0axZs/S///u/rnVKMl2+NPYfAOAZLM6CLq8KAACAPJ5//nktXbpU0pVbi+XeTgwAgIJwpBsAAOAqmZmZio+PV7t27fT444+7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UmxsrGbNmqX09HQdPnxYf/vb3xQfH292aQAAAACACqLcXkhNkk6ePKlJkyZp586dCg4OVt++fTVs2DBZyuCKzgAAAAAAlNsj3ZJ0yy236O2339YPP/ygr776SsOHD/fYwJ2SkqJBgwYpLi5OHTp00IwZM254aXpUPJGRkYqJiVFsbKzrz0svvWR2WXADX3zxhVq3bq2RI0de07Zu3Tp1795dTZs2Va9evfTll1+aUCHcRUFjZfny5WrQoEGe15fY2Fj9+OOPJlUKM6WkpOjpp59WXFycWrdurfHjx+v8+fOSpH379unhhx9W8+bN1aVLFy1atMjkamGWgsbJ8ePHFRkZec3rybvvvmt2yTDB/v379eijj6p58+Zq3bq1RowYoTNnzkiSduzYod69e6tZs2bq1q2bVq9ebXK1xVNuL6RW3gwfPlzR0dH69NNPlZqaqqeeekrVq1fXY489ZnZpcDMbNmxQrVq1zC4DbuTtt9/WsmXLVKdOnWva9u3bp3Hjxun111/XHXfcoY0bN2rYsGHasGGDbrnlFhOqhZmuN1YkqWXLlnr//ffLuCq4o8GDBysmJkabN2/WhQsX9PTTT2v69OmaNGmSnnrqKfXp00cLFy7UTz/9pMcff1y1atVSly5dzC4bZaygcTJkyBBJV663hIrt0qVLevzxx/XQQw/p7bffVnp6up555hlNmTJFkydP1tChQzVx4kR1795d3333nYYMGaJbb71VsbGxZpdeJOX6SHd5YbVatX//fo0ZM0aVK1dWRESEBgwYoMTERLNLA+AB/P39CwxSS5cuVbt27dSuXTv5+/urR48eql+/vsd+k4ySud5YAXKdP39eMTExGj16tCpVqqRbbrlFPXv21L///W9t3bpVly9f1pAhQxQUFKTo6Gg98MADfGapgK43ToBcdrtdI0eO1FNPPSU/Pz+FhYWpc+fOOnjwoNasWaOIiAj17t1b/v7+at26tTp27KilS5eaXXaREbo9QFJSksLDw/Pc/y06Olo//fST0tPTTawM7mjWrFlq3769WrRooUmTJikjI8PskmCyRx55RJUrV863LSkpSVFRUXmWRUVFcfShgrreWJGkEydO6LHHHlPLli3VqVMnrVq1qgyrg7uoUqWKpk2bpurVq7uWnThxQjfffLOSkpIUGRkpb29vV1tUVJT27NljRqkw0fXGSa5nn31Wbdq00R133KFZs2bp8uXLZpQKE4WEhOiBBx6Qj8+VCdhHjhzRihUrdNdddxX4GcUTX08I3R7AZrOpSpUqeZblBvC0tDQzSoKbatKkiVq3bq1NmzYpMTFRu3fv1osvvmh2WXBjNpstzxd60pXXF15b8HthYWGKiIjQ2LFj9dVXX2nUqFF67rnntGPHDrNLg8msVqs++OADDRkyJN/PLKGhobLZbFyLpoK7epz4+fmpadOm6ty5s7Zs2aKFCxdq9erVevPNN80uEyZJSUlRTEyM7r77bsXGxiohIaHA1xNP/IxC6PYQ5fgi8yhFiYmJeuCBB+Tn56e6detqzJgxWrt2rS5dumR2aXBjvL6gMNq3b6933nlHUVFR8vPzU7du3dS5c2ctX77c7NJgou+++05PPPGERo8erdatWxe4nqdeyBal4/fj5Oabb9ZHH32kzp07y9fXV40aNdJTTz3F60kFFh4eLqvVqg0bNujo0aN69tlnzS6pVBG6PUBYWJhsNlueZTabTRaLRWFhYeYUBY9Qq1Yt5eTkKDU11exS4KaqVq2a7+sLry0ojPDwcJ0+fdrsMmCSzZs3a9CgQXruuef0yCOPSLrymeX3R6FsNptCQ0Pl5cXHzooov3GSn/DwcP366698EVyBWSwWRUREaOTIkVq7dq18fHyu+YySlpbmkZ9RePXzADExMTpx4oTOnj3rWma1WlWvXj1VqlTJxMrgTvbu3av/+7//y7Ps8OHD8vPzy3P+FHC1mJiYa86Nslqtaty4sUkVwV19+OGHWrduXZ5lhw8fVu3atU2qCGbatWuXxo0bp7lz5+q+++5zLY+JidGBAweUnZ3tWsZrSsVV0DjZsWOH5s+fn2fdI0eOKDw8nFkRFcyOHTvUtWvXPKef5H5B16hRo2s+o+zZs8cjX08I3R4gKipKsbGxmjVrltLT03X48GH97W9/U3x8vNmlwY1Uq1ZNiYmJWrhwoS5duqSffvpJc+fO1YMPPpjngjbA1fr06aPt27dr69atysrK0rJly3T06FH16NHD7NLgZi5duqSXXnpJVqtVly9f1tq1a/X555+rb9++ZpeGMpadna3nn39eY8aMUZs2bfK0tWvXTsHBwZo/f77sdrt++OEHLVu2jM8sFdD1xknlypX1xhtvaNWqVbp8+bKsVqveffddxkkFFBMTo/T0dM2YMUN2u11nz57VvHnz1KJFC8XHxyslJUVLly5VVlaWtm3bpm3btqlPnz5ml11kFidzODzCyZMnNWnSJO3cuVPBwcHq27evhg0bxreByOPbb7/VrFmzdODAAfn5+alnz54aOXKk/P39zS4NJsq9l2XukafcK4TmXqF806ZNmjVrllJSUlSvXj1NnDhRLVu2NKdYmOp6Y8XpdGr+/PlatmyZzpw5o1q1aunZZ59Vhw4dTKsX5vj3v/+thx56SH5+fte0bdiwQRkZGZo8ebL27Nmj6tWra+DAgerXr58JlcJMNxone/fu1euvv66jR4+qcuXK6t+/vwYOHMhpCBXQgQMHNHXqVP34448KCgrSHXfcofHjx6tGjRr69ttvNXXqVB0+fFjh4eEaPXq0unTpYnbJRUboBgAAAADAIHyVBAAAAACAQQjdAAAAAAAYhNANAAAAAIBBCN0AAAAAABiE0A0AAAAAgEEI3QAAAAAAGITQDQAAAACAQQjdAAAAAAAYhNANAAAAAIBBCN0AAKDYjh8/rsjISEVGRur48eNmlwMAgNshdAMA4CGysrLUvHlzjR8/3qOeGwCAiozQDQCAh/jss8+Unp7ucc8NAEBFRugGAMAD9O/fXyNHjpQkrVixQpGRkfrmm290+PBhDR8+XO3atVOjRo3Us2dPffrpp67HPfvss4qMjFTv3r3lcDgkSb/88osaN26syMhIrV27tsDnLomtW7eqf//+iouLU9OmTfXEE0/o0KFDrvbly5crMjJS/fv31/79+9W3b181atRI7dq104oVK0q0bQAA3AmhGwAAD9C1a1fVrVtXklS3bl098sgj8vLyUr9+/bRp0yaFh4frnnvu0fHjxzV8+HDt2LFDkvTCCy8oPDxcVqtVixcvliRNnjxZFy9eVI8ePXTPPffk+9y33HJLsWvdvHmzBg8erO+++05xcXFq27attm/frv79++vs2bN51j1x4oSGDh2qWrVqqV69ejp58qTGjx+vpKSkYm8fAAB3QugGAMADPPzww2rUqJEkqVGjRpo4caI2btwom82mpk2b6h//+IdeeeUVzZkzRw6HQ2+++aYkKTg4WK+++qq8vLw0d+5cvfnmm9q+fbvCw8M1efLkAp+7Tp06xa71r3/9q5xOp5588km99tprmjt3rgYOHKizZ89qyZIledY9duyYxo0bp5kzZ+qjjz5SzZo1JUmbNm0q9vYBAHAnPmYXAAAAimfXrl2SpIsXL+rll192/VuSrFara70WLVpo0KBBWrBggebOnSsvLy+9+uqrCg4OLvWa0tPTdeDAAUlScnKyq66jR49Kkn788cc86wcGBqpLly6SJD8/PzVq1EgnTpzQmTNnSr02AADMQOgGAMBD5V74bN++fdq3b1+eNrvdLpvNptDQUElSnz59tHDhQjkcDtWrV0/NmjUzpKaMjAzXv7ds2XJN+8mTJ/P8HBYWJovF4vo5KChIklznnwMA4OkI3QAAeKgqVapIkh555BFNnDjxuuu+8MILcjgcCgoKUnJysv7+97/r8ccfL/WaKleuLIvFIqfTqTfeeEN33nlnqW8DAABPwjndAAB4iNwjwpmZmZKk5s2bS5K+/vprZWdnS5IOHz6sBQsWaOXKla7HLVmyRF9++aVuvfVWvffee/Lx8dGcOXN08ODBAp+7uIKCgtSwYUNJ0hdffOFavm3bNr3zzjuuC7wBAFBRELoBAPAQN998s6Qr07YnTJigTp06qUqVKkpOTlbv3r01fvx4Pfroo5ozZ46OHz8u6cq51DNmzJDFYtFf/vIXNWrUSAMGDNClS5c0duxYXb58Od/n/v7774td59NPPy2LxaKPPvpITz75pEaOHKmEhATNmTOnhD0AAIDnIXQDAOAh+vXrpyZNmsjpdOrzzz9XTk6OPvzwQ3Xo0EHHjx/X2rVrVblyZU2ZMkXDhg1TTk6Onn32Wdntdt1///1q1aqVJGnYsGGqVauW9u3bp9deey3f5869IFtx3HnnnXrzzTfVuHFj7dy5U5999pmio6P17rvv6n/+539KpS8AAPAUFqfT6TS7CAAAAAAAyiMupAYAAK7x0ksv5Xv18avddNNNSkxMLKOKAADwTBzpBgAAAADAIJzTDQAAAACAQQjdAAAAAAAYhNANAAAAAIBBCN0AAAAAABiE0A0AAAAAgEEI3QAAAAAAGITQDQAAAACAQQjdAAAAAAAY5P8B5VEAxssnNjwAAAAASUVORK5CYII=\n" }, "metadata": {} } ], "source": [ "plt.figure(figsize=(10,5))\n", "sns.histplot(x='text_len', data=data, bins=20)\n", "plt.title('Cleaned text lenght')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 506 }, "id": "PWjZDaVFuu_G", "outputId": "d3016afe-5db6-416e-bb24-e21f2e025bd8" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAHpCAYAAAB+2N8pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKv0lEQVR4nO3deXxMZ///8fckkRBJ7IKg2lh7R2whpPal2qqS0PKtGy1qqa1KKpaWKkLdaEqL1lLbjdpVW5R0QanY2tiX1paSKBKNLZLM7w+/nNs0sUXMOMnr+Xjk8TDnXOfM55oM3nOd6zpjsVqtVgEAAAAm4+ToAgAAAIDMIMgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCAADAlAiyAAAAMCWCLAAAAEyJIAsAAABTIsgCdtCxY0dVqFDhvn46duz4yOr4888/NWXKFP3yyy+P7Dke1JQpU4y+nzlzxtiempqqTz/9VCtWrLBpHxYWpgoVKqhy5cqZfs5ffvnFeM5/nv9xtWrVKk2ZMsVm24oVK4x+7N271zGF3Yfr169r8uTJ8vPzu+t7PCkpSVOnTtVzzz0nPz8/BQQEqHv37tq3b5+dK340zpw5Y/y+wsLCHF0OkC24OLoAICeoWLGizePY2FidPHlSkvTkk0+qSJEid2yblVauXKmpU6eqT58+CgwMfGTP8yB8fHxUq1YtSZKbm5uxfffu3YqIiFCtWrUUEhLiqPIeC9evX9f777+vq1evqm/fvo4u54Fs2bJFI0eO1OnTp+/ZNjQ0VOvWrZOTk5PKli2r8+fP68cff9SOHTu0ePHiR/p3A4A5EWQBOxg2bJjN4wULFuiDDz6QJHXv3t1uQW3dunV2eZ4HERISkmH/H8daHeWnn37S1atXHV3GAzt9+rS6du0qJycntWvXTps2bdJff/2VYdudO3cav/Nx48apVatWunHjhtq0aaOjR4/qP//5j2bOnGnP8gGYAFMLgMeQ1WrVokWL1LZtW1WrVk1VqlRRSEiIli1blq5tUlKSZsyYoZYtW8rf31/VqlXT//3f/2nTpk1Gm7TL90eOHJEkTZ061eayeto52rRpozp16sjf31+NGzfWe++9d9eRNKvVqsDAQFWoUEGjR4+2qalKlSrGZdS00WdJWr58uSpUqKBKlSrp0qVL6aYWpF32nz9/viRpx44dd7wUm5ycrI8++kgNGjSQn5+fWrZsqa1btz7gq23r559/VteuXRUYGCg/Pz81bdpUkydP1rVr12za/f3335o4caJatWqlWrVqqUqVKmrevLnCw8N18eJFm7ZxcXEaNWqUWrRooRo1aqhatWpq2bKlPv7443Tn/acKFSrYjMJWqFBBjRs3zrDtmjVr1LJlS1WuXFkNGjTQnDlz0rWJiYlRWFiY6tevLz8/P9WtW1c9evTQr7/+atPu9t/L2bNnNXPmTDVr1kx+fn5q1qyZVq1adde6pVvTQ6pUqaKlS5dq1KhRNiPu/7R+/XpJUp48edSiRQtJt0boX3jhBUm3fi9///13hsfOmzdPFSpUUMWKFRUfH29sT3ufV6hQQYMGDbI5plGjRunet3v37lW/fv1Ut25d+fn5qVatWnrttdf07bff2hx7+xSBTz/9VJ999plq166trl27Gm22bdumV155Rf7+/qpdu7aGDh2qy5cv37H/33zzjTp37qwGDRqocuXKqlu3rt58803t2LHjjscAIMgCj6WwsDCNHDlS0dHRKlSokEqXLq39+/dr2LBhmjp1qtEuOTlZb7zxhiZNmqQjR46oVKlSKlq0qHbv3q0333zTCBs+Pj6qUqWKcVza5fzChQtLkt5++21NmjRJBw4cUOHChfX0008rMTFRS5Ys0csvv6yYmJgM67RYLKpdu7Ykac+ePcb2Xbt26fr167JYLJKk7du3G/t2794tSXr66adVoECBdOf08vJSrVq15OrqKkny9PRUrVq19NRTT6V77g8++ECLFi2Sl5eXkpOTdeTIEXXr1i3T80WXLVum119/XVu2bJHFYlH58uUVGxur6dOnq1evXrJarZJuBbTXXntNn332mY4fP66SJUuqUqVKio2N1RdffKFXXnlFiYmJkqTExES1b99eCxcu1JkzZ/Tkk0+qbNmy+uOPP/TJJ5+oc+fOSk1NvWNNt/+e0h7f/rtM88033+jdd9+Vs7OzLBaLzp07p3Hjxunzzz832sTFxalDhw5auXKlLl26pKefflo3btzQDz/8oA4dOqQLs2kmTZqkqVOnKm/evJKkU6dOafDgwfr+++/v+nr6+PhoyZIl8vPzu2s7STp8+LAkqVSpUnJx+d/FwjJlykiSUlJSjDb/FBQUJOnWB6vbf/fbtm2TdOu9cvu88HPnzunPP/+UJNWtW1fSrfnGr776qtavX6/ExESVL19eFotF27Zt01tvvaUxY8Zk+Nxbt25VRESEihcvrqJFi0q6FYjfeOMN/frrr0pNTVWZMmX0888/a/DgwRmeY968eRowYIC2b98uFxcX+fn5KVeuXNq0aZNee+01mw+lAGwRZIHHzM8//2wE0I4dO2rjxo366quvNHLkSEnS9OnTdfbsWUm35rymhcTBgwfr66+/1vr16/XGG29IksaOHavr168rJCREkyZNMp4jODhY8+fPV/369XXp0iV99913kqS+ffvqq6++0uLFi7Vp0yZVrVpVZcqUuWPAkaRnnnlGknTo0CFdv35d0v+C6/PPP2/zWPpfkE077p8qVaqk+fPnG/OG0x53797dpl1SUpL+/PNP/fTTT/rqq6+MoJGamqo1a9bcsd47SUhI0NixYyVJ/v7++v7777VixQotXbpUuXLl0rZt24yRuYMHDxoLkMaMGaMVK1Zo8eLFWrduncqVKydvb2/t379f0q3fZ9oHgVmzZmnZsmVaunSplixZoieffFJubm76/fff71jX/PnzVa9ePZvHkydPTtdu06ZNWrdunVatWqWVK1caHwRWr15ttFmxYoUuXLggV1dXRURE6Msvv9TKlSvl5OSkmzdvatGiRRnWsHv3bq1fv16rVq3S3Llzje1Lliy562vq4uJifJi5l7RRbA8PD5vtXl5exp8vXLiQ4bFly5Y1QmTaB6qrV6/q119/VaFChVSrVi3FxcXp+PHjRn8kKVeuXKpZs6ZiY2M1YsQIpaSkyNfXV999951WrFihH3/80QjJ8+bN086dO9M9986dOzVt2jStXLlS4eHhkm6NBN+8eVOSNGPGDC1evFgbNmxQsWLFMqx/6dKlkqQ6depo06ZNWrRokSIjIxUSEqJKlSrd9e8fkNMRZIHHTNolVkl69dVXjT+3bdtWzs7OunnzpiIjI23aOjk52bRt166dpFvh7PYQmRFXV1djBOzbb7/VN998o9jYWHl6emrJkiVavHixcXk3I3Xq1JF0a3T4t99+k3QrvElSjx49lDt3bmM0LD4+Xn/88Yek/42iZZbVatWAAQOMy9WtW7c2/nw/C4v+aevWrbpy5YokqU2bNsqTJ4+kW4vvqlatKul/83Zz585tHPfll19q06ZNunTpkooVK6a1a9dq4cKFxmK629vOnj1bW7ZsUWJiov71r39p3bp1mj9/vsqWLfvA9f5Tx44dVbx4cUmSr6+vAgICJNm+Fj179lR0dLSio6ON6QklS5Y0PjSkjVJmdG5vb29JUo0aNYzR8cy8zneS9iHI2dnZZvvto7NpbTKS9n5KC6lRUVG6efOmateubVw1SPu7kNamatWqyps3r9atW6ekpCRJUteuXY3XI3fu3OrVq5fxHBnN265UqZLq169vsy3t/OXLlzc+sLm6uur111/PsPa099qBAwe0YMECI3CHh4dr+fLlevvtt+/YbyCnY7EX8Ji5/TJ+2ojmP6VdYk1rmzYX8U5tGzZseMfny5s3r0JDQzVu3DgdOXJEAwYMkHTrsnDt2rXVoUMH/etf/7rj8aVKlVLp0qV16tQp7dmzR5UqVdL+/ftVrFgxVaxYUdWrV9fPP/+sI0eOKCYmRlarVXny5FH16tXv+jrcj9sDoLOzswoWLKizZ8/eNfDcye23/hoxYoRGjBiRrk3a6+7r66tOnToZo3RpI3VlypRRvXr11KFDBz355JOSbgWs5s2ba/369dq0aZM2bdokJycnlStXTg0bNlSHDh2MkPgwfH19bR6nhbHbX4ukpCTNnDlT3377rc6cOZNuAVna1Il/+mfQLlSokH7//fd7zu99EGlhLjk52Wb77Y/T2mQkKChIq1at0r59+5ScnGyE1jp16hjB+5dfflGHDh2MoJkWftM+XElKN4UlbWqDJJ04cSLd8z7xxBM2jxMSEowPRCVLlrzjuW73zjvvqHv37kpISDAWgebLl081atRQmzZt1LRp0zv2G8jpCLLAY6xGjRrpRqgkGZdR07i4uNwxGObLl++ez/Paa6+pXr16WrNmjXbs2KEDBw4oJiZGy5cv1+rVq/XRRx+pWbNmdzy+Tp06RpD19fVVSkqKMVIbGBion3/+Wdu3b9f58+clSQEBAcal74fxz3M4OWXNRaby5csrf/786bbffpl72LBheumll7R27VpFRUXpyJEjOnHihE6cOKHly5drzpw5qlq1qlxcXPTxxx9r27ZtWr9+vXbt2qXjx4/r8OHDOnz4sFasWKGFCxemC0QP6n5eiyFDhmjt2rWSpAIFCqhixYpycXHR3r17jRHJjOTKlcvm8f1OF3gQRYoU0ZEjR9ItiLr98d0Cf1oovXr1qg4dOmRcFahTp468vb3l7u6uX375RVeuXDE+kGQ0veWf85Vvf5zRa/rPcH37h4G06QVpUlJSMqw9ICBAGzdu1OrVq7Vt2zb9+uuvio+PV2RkpCIjI9WlS5c7zq8FcjqCLPCYKVWqlPHncePGqXTp0ndt+/vvv8tqtWrWrFkPFQ59fX2N0djk5GRFRUXpnXfeUVxcnKZNm3bXIBsUFKQlS5Zoz549KlGihKT/TTm4/bJuWihJW2DzOLn9de/UqZNefvnlex5TuXJl44sZbty4oc2bNys0NFRXr17V7Nmz9fHHHxtt69SpY7wmiYmJWr9+vYYNG6bz589r8eLFjzyoXL58WV9//bWkW6OOq1atkpubm6xWq2rWrHnXIGsPfn5+2rp1q86cOaOkpCTjvZw2f9jV1VUVKlS44/FFihRRuXLldPToUW3atEmHDx9W6dKljVHR6tWra8uWLVq6dKmSk5OVL18+43d3+yjssWPHVKNGDZvHaf45WpuR/PnzK3fu3Lp+/bpOnTpls+9Oi9UkqWDBgnr99deN6QfHjh3TyJEjFRUVpS+++EJvvvmmPD097/n8QE7DHFngMXN7YJw9e7YxwnP48GF169ZNAwcONFZmp7VNSUnRF198YRy3detWde/eXaGhocbl0NvnGt5+Gf3nn39WSEiI6tata/zH6+Liolq1asnHx+e+aq5du7acnJwUHx+vr776StL/gqyfn5/c3d0VFRWl6OhoSfc3PzZtJPrPP/+866r+rBIUFCR3d3dJtxYx3X7XgX79+ql///7G7crWrFmjl156Sc2bNzcWKbm5uemZZ54x7sSQ9nubNWuWWrRoofbt2xuX4j08PNSoUSNj/uydLumnuX1UPrPzUp2cnIzn8fDwMOYTf/7558ZtrW6/dZW9vfDCC7JYLLpx44YRuK9du2a8n5o1a2Yz3zgjae+rBQsWyGq1Gu9BScac5bR70aa9ZyXpueeeM16PL774wvidJiYmatq0aZJujUK3atXqvvqS9rwnT540FlImJiba3EEizV9//aVXX31VdevWNfot3ZrO4e/vbzy+13sEyKkYkQUeM0FBQXrxxRe1du1aLVq0SN9//728vb118OBB4/6sad9wFBwcbEwHmDhxopYtWyYPDw8dOnRIKSkpatKkiXHJukiRIvL09NTff/+tVatW6dixY2rTpo1eeuklJSQk6Pz582rRooXKly8vV1dXnT592pgK0KlTp7vW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\n" }, "metadata": {} } ], "source": [ "plt.figure(figsize=(7,5))\n", "ax = sns.countplot(x='text_len', data=data[data['text_len'] < 10], palette='mako')\n", "plt.title('Teets with less than 10 words')\n", "plt.yticks([])\n", "ax.bar_label(ax.containers[0])\n", "plt.ylabel('count')\n", "plt.xlabel('')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JeOzOBVHvBQH" }, "outputs": [], "source": [ "data = data[data['text_len'] > 4]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "xpYdUBY_vKVE" }, "outputs": [], "source": [ "sia_vader = SentimentIntensityAnalyzer()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "jnJAWcY7vPxv" }, "outputs": [], "source": [ "sentiments_vader = []\n", "for tweet in data.text_clean:\n", " sentiment_dict = sia_vader.polarity_scores(tweet)\n", " sentiment_dict.pop('compound', None)\n", " sentiments_vader.append(max(sentiment_dict , key=sentiment_dict.get))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "OYUzWC5yvVwF", "outputId": "3df8ba12-70ed-4e57-d112-1e139233d154" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "neu 48919\n", "neg 2261\n", "pos 1261\n", "Name: sentiment_vader, dtype: int64" ] }, "metadata": {}, "execution_count": 39 } ], "source": [ "data['sentiment_vader'] = sentiments_vader\n", "data['sentiment_vader'].value_counts()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "jBFVffd2vdn9" }, "outputs": [], "source": [ "def polarity_to_text(blob):\n", " if (blob.sentiment.polarity >= 0.2):\n", " return 'pos'\n", " elif(blob.sentiment.polarity < 0.2 and blob.sentiment.polarity >= -0.01):\n", " return 'neu'\n", " else:\n", " return 'neg'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0Xzksg8svlzN" }, "outputs": [], "source": [ "sentiments_blob = []\n", "for tweet in data.text_clean:\n", " blob = TextBlob(tweet)\n", " sentiments_blob.append(polarity_to_text(blob))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "FT8izdeYvraN", "outputId": "1b1808fb-04c1-4c62-c8be-d1621a41407c" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "neu 27658\n", "neg 13556\n", "pos 11227\n", "Name: sentiment_blob, dtype: int64" ] }, "metadata": {}, "execution_count": 42 } ], "source": [ "data['sentiment_blob'] = sentiments_blob\n", "data['sentiment_blob'].value_counts()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 504 }, "id": "kECzmHC6vzLX", "outputId": "25851287-f7a2-4db5-f8b1-4ec8c5c8e872" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 43 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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BwAAYAjCDgAAwBCEHQAAgCEIOwAAAEN0a9glJycrPT1dGRkZ/j/PP/+8JOn999/XtGnT9M1vflOTJk3Stm3bAs5dv369Jk6cqG9+85sqKCjQoUOH/Gutra36+c9/rm9961vKysrSggULVF9f352jAwAA9HoR3f2Eb7/9tu6+++6AY6dPn9a8efO0dOlSTZkyRR9//LHmzp2roUOHKiMjQ3v27NFvfvMb/fa3v1VycrLWr1+vxx9/XLt27VJ0dLTKysrkcrlUUVGhqKgoFRcX66c//anWrl3b3eMDAAD0Wj3yUez27duVmJioadOmKTIyUtnZ2br//vu1adMmSVJFRYUefvhhjRo1Sn379tVjjz0mSdq7d6/a29tVWVmpefPm6etf/7ri4uK0cOFC7du3T//85z97YnwAAIBeoduv2L300kv65JNP1NjYqO9+97t65pln5HK5lJqaGvC41NRUvfXWW5Ikl8ulBx54wL8WHh6ulJQUOZ1OpaSk6OLFi0pLS/OvDxs2TH379pXL5dKgQYOuOYvX65XX6+3mV3jr2Ww2q0cIWb1xv5iAPW8d9nzPY79bqzfu+WBm7tawGz16tLKzs/XCCy/o5MmTWrhwoX7xi1/I4/FcFWBxcXH+++Q8Ho9iY2MD1mNjY1VfXy+PxyNJiomJCViPiYn5yvvsjh492sVX1POioqKuimD0nCNHjqi5udnqMUIKe95a7PmexX63nul7vlvDrqKiwv+/hw0bpsWLF2vu3Lm67777vvJcn8/XpfXOJCUlKTo6OujzELqSk5OtHgHoUex5hJreuOebmppu+GJVt38U+0V33323vF6vwsPD/Vferqivr5fD4ZAk3XnnnVetezwejRgxwv8Yj8ejfv36+dcvXLig+Pj46/77bTYbl7wRFPYLQg17HqGmN+75YGbuti9P/PWvf9X//M//BBxzu93q06ePcnNzA358iSQdOnRIo0aNkiSlp6fL5XL517xer/76179q1KhRGjx4sGJjYwPWjx49qsuXLys9Pb27xgcAAOj1ui3s4uPjVVFRofLycl2+fFl///vf9fLLL+v73/++HnzwQdXW1mrTpk1qbW3Vu+++q3fffVfTp0+XJBUUFOjNN9/UwYMH1dzcrDVr1qhPnz4aP368bDabpk+frrVr1+rUqVOqr6/Xr371K33nO9/RgAEDumt8AACA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\n" }, "metadata": {} } ], "source": [ "data.sentiment_blob.value_counts().plot(kind='bar')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 580 }, "id": "y0AQ3_IzwRRD", "outputId": "351a554c-a4d4-491b-fa0f-9fdde514a385" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " text is_rumor \\\n", "0 Charlie Hebdo became well known for publishing... 0.0 \n", "1 Now 10 dead in a shooting there today RT \"@BBC... 0.0 \n", "2 @BBCDanielS @BBCWorld I'm guessing this is bei... 0.0 \n", "3 @BBCDanielS @BBCWorld why would you mention th... 0.0 \n", "7 @GabTarquini @BBCDanielS @BBCWorld Maybe becau... 0.0 \n", "... ... ... \n", "62440 @AnonyOps @Xplant So that means its ok to torc... 1.0 \n", "62441 @RianAlden not at all, but they need to change... 1.0 \n", "62442 @Xplant @AnonyOps Absoluteky. But it pains me... 1.0 \n", "62443 @Xplant @AnonyOps I'm curious how many of thes... 1.0 \n", "62444 @Xplant @AnonyOps You get 15,000 people showin... 1.0 \n", "\n", " user.handle topic sentiment \\\n", "0 BBCDanielS charliehebdo neu \n", "1 robbylevy charliehebdo neu \n", "2 ModerateInAll charliehebdo neu \n", "3 GabTarquini charliehebdo neu \n", "7 S_Jakobsen charliehebdo neu \n", "... ... ... ... \n", "62440 RianAlden ferguson neu \n", "62441 Xplant ferguson neu \n", "62442 RianAlden ferguson neu \n", "62443 RianAlden ferguson neu \n", "62444 RianAlden ferguson neu \n", "\n", " text_clean text_len \\\n", "0 charlie hebdo became well known for publishing... 13 \n", "1 now 10 dead in a shooting there today rt charl... 22 \n", "2 im guessing this is being considered terrorism... 12 \n", "3 why would you mention that before knowing the ... 10 \n", "7 maybe because they shouted the prophet have be... 16 \n", "... ... ... \n", "62440 so that means its ok to torch and loot someone... 11 \n", "62441 not at all but they need to change some things... 13 \n", "62442 absoluteky but it pains me to see private citi... 20 \n", "62443 im curious how many of these protesters ever s... 21 \n", "62444 you get 15000 people showing up to a city meet... 21 \n", "\n", " sentiment_vader sentiment_blob \n", "0 neu neu \n", "1 neu neg \n", "2 neu pos \n", "3 neu neu \n", "7 neu pos \n", "... ... ... \n", "62440 neu pos \n", "62441 neu neu \n", "62442 neu neu \n", "62443 neu pos \n", "62444 neu pos \n", "\n", "[52441 rows x 9 columns]" ], "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", " \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", "
textis_rumoruser.handletopicsentimenttext_cleantext_lensentiment_vadersentiment_blob
0Charlie Hebdo became well known for publishing...0.0BBCDanielScharliehebdoneucharlie hebdo became well known for publishing...13neuneu
1Now 10 dead in a shooting there today RT \"@BBC...0.0robbylevycharliehebdoneunow 10 dead in a shooting there today rt charl...22neuneg
2@BBCDanielS @BBCWorld I'm guessing this is bei...0.0ModerateInAllcharliehebdoneuim guessing this is being considered terrorism...12neupos
3@BBCDanielS @BBCWorld why would you mention th...0.0GabTarquinicharliehebdoneuwhy would you mention that before knowing the ...10neuneu
7@GabTarquini @BBCDanielS @BBCWorld Maybe becau...0.0S_Jakobsencharliehebdoneumaybe because they shouted the prophet have be...16neupos
..............................
62440@AnonyOps @Xplant So that means its ok to torc...1.0RianAldenfergusonneuso that means its ok to torch and loot someone...11neupos
62441@RianAlden not at all, but they need to change...1.0Xplantfergusonneunot at all but they need to change some things...13neuneu
62442@Xplant @AnonyOps Absoluteky. But it pains me...1.0RianAldenfergusonneuabsoluteky but it pains me to see private citi...20neuneu
62443@Xplant @AnonyOps I'm curious how many of thes...1.0RianAldenfergusonneuim curious how many of these protesters ever s...21neupos
62444@Xplant @AnonyOps You get 15,000 people showin...1.0RianAldenfergusonneuyou get 15000 people showing up to a city meet...21neupos
\n", "

52441 rows × 9 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 44 } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 423 }, "id": "6D-DpF3ywlbt", "outputId": "b29ffda2-7298-4d4d-bbcd-2be89a0899f6" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " is_rumor sentiment_blob\n", "0 0.0 neu\n", "1 0.0 neg\n", "2 0.0 pos\n", "3 0.0 neu\n", "7 0.0 pos\n", "... ... ...\n", "62440 1.0 pos\n", "62441 1.0 neu\n", "62442 1.0 neu\n", "62443 1.0 pos\n", "62444 1.0 pos\n", "\n", "[52441 rows x 2 columns]" ], "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", "
is_rumorsentiment_blob
00.0neu
10.0neg
20.0pos
30.0neu
70.0pos
.........
624401.0pos
624411.0neu
624421.0neu
624431.0pos
624441.0pos
\n", "

52441 rows × 2 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 45 } ], "source": [ "data[['is_rumor','sentiment_blob']]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qB2CpXMbyCO7" }, "outputs": [], "source": [ "#no relevance\n", "data[data['is_rumor']==1.0]\n", "\n", "#subsetDataFrame = data[data['sentiment_blob'] == 'pos']\n", "filterinfDataframe = data[(data['is_rumor'] == 1.0) & (data['sentiment_blob'] =='pos') ]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 580 }, "id": "gFIMlUrPAb2j", "outputId": "4451e384-62a2-4520-f84a-86557fae31da" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " text is_rumor \\\n", "30925 @H_E_Samuel Hi Henry would you be willing to g... 1.0 \n", "30926 @H_E_Samuel @H_E_Samuel please call them terro... 1.0 \n", "30931 @EdwardBowden @H_E_Samuel @George_Berridge bla... 1.0 \n", "30940 @euronews LOL. 5 million Muslims in France, wh... 1.0 \n", "30942 @Channel4News @GidonShaviv must be that peace ... 1.0 \n", "... ... ... \n", "62417 @ProfessorCrunk Right now, he's fighting for h... 1.0 \n", "62423 @ProfessorCrunk you don't have to be competent... 1.0 \n", "62440 @AnonyOps @Xplant So that means its ok to torc... 1.0 \n", "62443 @Xplant @AnonyOps I'm curious how many of thes... 1.0 \n", "62444 @Xplant @AnonyOps You get 15,000 people showin... 1.0 \n", "\n", " user.handle topic sentiment \\\n", "30925 NickyRusmith NaN neu \n", "30926 pravsly NaN neu \n", "30931 imranali27 NaN neu \n", "30940 NeoSkywalker13 NaN neu \n", "30942 onielio NaN pos \n", "... ... ... ... \n", "62417 aagha_personal ferguson neu \n", "62423 ElGringoSpeaks ferguson neu \n", "62440 RianAlden ferguson neu \n", "62443 RianAlden ferguson neu \n", "62444 RianAlden ferguson neu \n", "\n", " text_clean text_len \\\n", "30925 hi henry would you be willing to give itv news... 20 \n", "30926 please call them terrorists not gunmen dont di... 21 \n", "30931 blame the shooter not the religion because the... 16 \n", "30940 lol 5 million muslims in france what a disgrac... 21 \n", "30942 must be that peace loving religion again 7 \n", "... ... ... \n", "62417 right now hes fighting for his jobnot justice ... 14 \n", "62423 you dont have to be competent to be malicious 9 \n", "62440 so that means its ok to torch and loot someone... 11 \n", "62443 im curious how many of these protesters ever s... 21 \n", "62444 you get 15000 people showing up to a city meet... 21 \n", "\n", " sentiment_vader sentiment_blob \n", "30925 neu pos \n", "30926 neu pos \n", "30931 neu pos \n", "30940 neu pos \n", "30942 pos pos \n", "... ... ... \n", "62417 neu pos \n", "62423 neu pos \n", "62440 neu pos \n", "62443 neu pos \n", "62444 neu pos \n", "\n", "[2157 rows x 9 columns]" ], "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", " \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", "
textis_rumoruser.handletopicsentimenttext_cleantext_lensentiment_vadersentiment_blob
30925@H_E_Samuel Hi Henry would you be willing to g...1.0NickyRusmithNaNneuhi henry would you be willing to give itv news...20neupos
30926@H_E_Samuel @H_E_Samuel please call them terro...1.0pravslyNaNneuplease call them terrorists not gunmen dont di...21neupos
30931@EdwardBowden @H_E_Samuel @George_Berridge bla...1.0imranali27NaNneublame the shooter not the religion because the...16neupos
30940@euronews LOL. 5 million Muslims in France, wh...1.0NeoSkywalker13NaNneulol 5 million muslims in france what a disgrac...21neupos
30942@Channel4News @GidonShaviv must be that peace ...1.0onielioNaNposmust be that peace loving religion again7pospos
..............................
62417@ProfessorCrunk Right now, he's fighting for h...1.0aagha_personalfergusonneuright now hes fighting for his jobnot justice ...14neupos
62423@ProfessorCrunk you don't have to be competent...1.0ElGringoSpeaksfergusonneuyou dont have to be competent to be malicious9neupos
62440@AnonyOps @Xplant So that means its ok to torc...1.0RianAldenfergusonneuso that means its ok to torch and loot someone...11neupos
62443@Xplant @AnonyOps I'm curious how many of thes...1.0RianAldenfergusonneuim curious how many of these protesters ever s...21neupos
62444@Xplant @AnonyOps You get 15,000 people showin...1.0RianAldenfergusonneuyou get 15000 people showing up to a city meet...21neupos
\n", "

2157 rows × 9 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 47 } ], "source": [ "filterinfDataframe = data[(data['is_rumor'] == 1.0) & (data['sentiment_blob'] =='pos')]\n", "filterinfDataframe" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7HTmn-xWzEJ_", "outputId": "7fc9be7b-5d89-4c11-c19b-e6f17c1c30d6" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: flair in /usr/local/lib/python3.10/dist-packages (0.12.2)\n", "Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.10/dist-packages (from flair) (2.8.2)\n", "Requirement already satisfied: torch!=1.8,>=1.5.0 in /usr/local/lib/python3.10/dist-packages (from flair) (2.0.0)\n", "Requirement already satisfied: gensim>=3.8.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.3.1)\n", "Requirement already satisfied: tqdm>=4.26.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.66.1)\n", "Requirement already satisfied: segtok>=1.5.7 in /usr/local/lib/python3.10/dist-packages (from flair) (1.5.11)\n", "Requirement already satisfied: matplotlib>=2.2.3 in /usr/local/lib/python3.10/dist-packages (from flair) (3.7.1)\n", "Requirement already satisfied: mpld3==0.3 in /usr/local/lib/python3.10/dist-packages (from flair) (0.3)\n", "Requirement already satisfied: scikit-learn>=0.21.3 in /usr/local/lib/python3.10/dist-packages (from flair) (1.2.2)\n", "Requirement already satisfied: sqlitedict>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from flair) (2.1.0)\n", "Requirement already satisfied: deprecated>=1.2.4 in /usr/local/lib/python3.10/dist-packages (from flair) (1.2.14)\n", "Requirement already satisfied: hyperopt>=0.2.7 in /usr/local/lib/python3.10/dist-packages (from flair) (0.2.7)\n", "Requirement already satisfied: boto3 in /usr/local/lib/python3.10/dist-packages (from flair) (1.28.36)\n", "Requirement already satisfied: transformers[sentencepiece]>=4.18.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.32.1)\n", "Requirement already satisfied: bpemb>=0.3.2 in /usr/local/lib/python3.10/dist-packages (from flair) (0.3.4)\n", "Requirement already satisfied: regex in /usr/local/lib/python3.10/dist-packages (from flair) (2023.6.3)\n", "Requirement already satisfied: tabulate in /usr/local/lib/python3.10/dist-packages (from flair) (0.9.0)\n", "Requirement already satisfied: langdetect in /usr/local/lib/python3.10/dist-packages (from flair) (1.0.9)\n", "Requirement already satisfied: lxml in /usr/local/lib/python3.10/dist-packages (from flair) (4.9.3)\n", "Requirement already satisfied: ftfy in /usr/local/lib/python3.10/dist-packages (from flair) (6.1.1)\n", "Requirement already satisfied: janome in /usr/local/lib/python3.10/dist-packages (from flair) (0.5.0)\n", "Requirement already satisfied: gdown==4.4.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.4.0)\n", "Requirement already satisfied: huggingface-hub>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from flair) (0.16.4)\n", "Requirement already satisfied: conllu>=4.0 in /usr/local/lib/python3.10/dist-packages (from flair) (4.5.3)\n", "Requirement already satisfied: more-itertools in /usr/local/lib/python3.10/dist-packages (from flair) (10.1.0)\n", "Requirement already satisfied: wikipedia-api in /usr/local/lib/python3.10/dist-packages (from flair) (0.6.0)\n", "Requirement already satisfied: pptree in /usr/local/lib/python3.10/dist-packages (from flair) (3.1)\n", "Requirement already satisfied: pytorch-revgrad in /usr/local/lib/python3.10/dist-packages (from flair) (0.2.0)\n", "Requirement already satisfied: transformer-smaller-training-vocab>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from flair) (0.3.1)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (3.12.2)\n", "Requirement already satisfied: requests[socks] in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (2.31.0)\n", "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (1.16.0)\n", "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from gdown==4.4.0->flair) (4.11.2)\n", "Requirement already satisfied: numpy in /root/.local/lib/python3.10/site-packages (from bpemb>=0.3.2->flair) (1.25.2)\n", "Requirement already satisfied: sentencepiece in /usr/local/lib/python3.10/dist-packages (from bpemb>=0.3.2->flair) (0.1.99)\n", "Requirement already satisfied: wrapt<2,>=1.10 in /usr/local/lib/python3.10/dist-packages (from deprecated>=1.2.4->flair) (1.14.1)\n", "Requirement already satisfied: scipy>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from gensim>=3.8.0->flair) (1.10.1)\n", "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.10/dist-packages (from gensim>=3.8.0->flair) (6.3.0)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (2023.6.0)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (6.0.1)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (4.7.1)\n", "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.10.0->flair) (23.1)\n", "Requirement already satisfied: networkx>=2.2 in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (3.1)\n", "Requirement already satisfied: future in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (0.18.3)\n", "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (2.2.1)\n", "Requirement already satisfied: py4j in /usr/local/lib/python3.10/dist-packages (from hyperopt>=0.2.7->flair) (0.10.9.7)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (1.1.0)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (4.42.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (1.4.4)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.2.3->flair) (3.1.1)\n", "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->flair) (1.3.2)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->flair) (3.2.0)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (1.12)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (3.1.2)\n", "Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.7.99)\n", "Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.7.99)\n", "Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.7.101)\n", "Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (8.5.0.96)\n", "Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.10.3.66)\n", "Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (10.9.0.58)\n", "Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (10.2.10.91)\n", "Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.4.0.1)\n", "Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.7.4.91)\n", "Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (2.14.3)\n", "Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (11.7.91)\n", "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch!=1.8,>=1.5.0->flair) (2.0.0)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch!=1.8,>=1.5.0->flair) (67.7.2)\n", "Requirement already satisfied: wheel in /usr/local/lib/python3.10/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch!=1.8,>=1.5.0->flair) (0.41.2)\n", "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch!=1.8,>=1.5.0->flair) (3.27.2)\n", "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch!=1.8,>=1.5.0->flair) (16.0.6)\n", "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.18.0->flair) (0.13.3)\n", "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.18.0->flair) (0.3.3)\n", "Requirement already satisfied: protobuf in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.18.0->flair) (3.20.3)\n", "Requirement already satisfied: botocore<1.32.0,>=1.31.36 in /usr/local/lib/python3.10/dist-packages (from boto3->flair) (1.31.36)\n", "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from boto3->flair) (1.0.1)\n", "Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from boto3->flair) (0.6.2)\n", "Requirement already satisfied: wcwidth>=0.2.5 in /usr/local/lib/python3.10/dist-packages (from ftfy->flair) (0.2.6)\n", "Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.10/dist-packages (from botocore<1.32.0,>=1.31.36->boto3->flair) (1.26.16)\n", "Requirement already satisfied: accelerate>=0.20.3 in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.18.0->flair) (0.22.0)\n", "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->gdown==4.4.0->flair) (2.4.1)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch!=1.8,>=1.5.0->flair) (2.1.3)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (3.4)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (2023.7.22)\n", "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown==4.4.0->flair) (1.7.1)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch!=1.8,>=1.5.0->flair) (1.3.0)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from accelerate>=0.20.3->transformers[sentencepiece]>=4.18.0->flair) (5.9.5)\n" ] } ], "source": [ "!pip install flair" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 234, "referenced_widgets": [ "4a6a9580116d4ddaa67db8d005f21327", "59045e07a2244bfc866502109b61c048", "f42b605677194c4681aa7ad08c940cdd", "c037b4a2ba0149e68cdbf9fd62b7bc65", "2546e6cb8d544a8f8801f0d8c749ac46", "a395dbf85af54838809d79a6e9367fe5", "1e451dcbeca14b95bd3d7ff546ed0ab3", "b811541bd23340f9bd2bd786efe0371d", "fda1445807e94776b607aace18000d20", "0645e921315a41498e0ca44bc3813922", "6b06cd82d171494bb3ba4838ee35e221", "0d232a6b1ac945b48157d4bc2bce5331", "49b3bb27e6334611a81b7c16cfa128c9", "19e60b7600a74a14802e6b726583a019", "56ac84afb4764a80b1830a700d88e3f5", "ff23c8632ad6413e815b7948b05f79a7", "613715b678934e6dbc139dc155e973dd", "2fe99d3bdae94540944f4cfd53122263", "e2a3b968093c4092b619e9f383bfff1a", "d53dc05aea7c4452aa7e9f36ef4e61b5", "e1e89eeca5e94f91ab6b835871f44ca6", "2baca0d555124aa0abedfd1d62aea660", "7c68767beaff489298dcf2bb47af43fd", "dab3499e56844088a33c61793d617b7e", "02c9e29a20564585925e82694c33cff0", "ad8f233c98ed4e99b90af6ed90ddcf26", "2bb1283a622845a79528ba0b96511fa3", "ba562193b3ca460e8e5e1b5fa22b1815", "f4aa61e7c89c409cb7590934c45f8274", "815e8594212144bab34934b281868683", "3970a49b216d42aea8ee4bb915c2a8cc", "08a9835d53b64edc8b883ea588c724e5", "0fb63f379970484791b247374c17cc1b", "6b874459216b42228cc3855efe264985", "190e0fea340245ba96770b908b33ba49", "272e8309da264ef29a6624973e97697b", "3258a05092d34e6992a3f9131c0fa8a9", "d6b68455f8c9475ba814cdfab5db84af", "e1409c0a86704ef1bde106dd5e67380b", "ed2a8e97b9644178a82bf6165386a6ec", "89cba3ca2a4e488a9464ff4737006c7c", "c509ae48b5d549cb9965de19b99776ca", "3b7f992ad7cc429fba033af430618173", "a1a81d0bf19a4e978340d6486475d33b" ] }, "id": "BSx7M807WsMO", "outputId": "36adb2b0-ce09-49c5-c29d-d73f292d7f4d" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "2023-08-29 05:19:41,880 https://nlp.informatik.hu-berlin.de/resources/models/sentiment-curated-distilbert/sentiment-en-mix-distillbert_4.pt not found in cache, downloading to /tmp/tmp3eomhzt6\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████| 253M/253M [00:15<00:00, 17.3MB/s]" ] }, { "output_type": "stream", "name": "stdout", "text": [ "2023-08-29 05:19:57,865 copying /tmp/tmp3eomhzt6 to cache at /root/.flair/models/sentiment-en-mix-distillbert_4.pt\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "2023-08-29 05:19:59,033 removing temp file /tmp/tmp3eomhzt6\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "Downloading (…)okenizer_config.json: 0%| | 0.00/28.0 [00:00\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", " \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", "
textis_rumoruser.handletopicsentimenttext_cleantext_lensentiment_vadersentiment_bloblabel
0Charlie Hebdo became well known for publishing...0.0BBCDanielScharliehebdoneucharlie hebdo became well known for publishing...13neuneuPOSITIVE
1Now 10 dead in a shooting there today RT \"@BBC...0.0robbylevycharliehebdoneunow 10 dead in a shooting there today rt charl...22neunegPOSITIVE
2@BBCDanielS @BBCWorld I'm guessing this is bei...0.0ModerateInAllcharliehebdoneuim guessing this is being considered terrorism...12neuposNEGATIVE
3@BBCDanielS @BBCWorld why would you mention th...0.0GabTarquinicharliehebdoneuwhy would you mention that before knowing the ...10neuneuNEGATIVE
7@GabTarquini @BBCDanielS @BBCWorld Maybe becau...0.0S_Jakobsencharliehebdoneumaybe because they shouted the prophet have be...16neuposNEGATIVE
.................................
62440@AnonyOps @Xplant So that means its ok to torc...1.0RianAldenfergusonneuso that means its ok to torch and loot someone...11neuposNEGATIVE
62441@RianAlden not at all, but they need to change...1.0Xplantfergusonneunot at all but they need to change some things...13neuneuNEGATIVE
62442@Xplant @AnonyOps Absoluteky. But it pains me...1.0RianAldenfergusonneuabsoluteky but it pains me to see private citi...20neuneuNEGATIVE
62443@Xplant @AnonyOps I'm curious how many of thes...1.0RianAldenfergusonneuim curious how many of these protesters ever s...21neuposNEGATIVE
62444@Xplant @AnonyOps You get 15,000 people showin...1.0RianAldenfergusonneuyou get 15000 people showing up to a city meet...21neuposPOSITIVE
\n", "

52441 rows × 10 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", " \n" ] }, "metadata": {}, "execution_count": 51 } ] }, { "cell_type": "code", "source": [ "data.label.value_counts()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "M1dM2QE8OmfA", "outputId": "6732dfb6-9426-45f6-d0bb-be92b10d214d" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "NEGATIVE 37543\n", "POSITIVE 14898\n", "Name: label, dtype: int64" ] }, "metadata": {}, "execution_count": 53 } ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "C7LRznzZ8HBt" }, "outputs": [], "source": [ "from flair.nn import Classifier\n", "from flair.data import Sentence\n", "tagger = Classifier.load('sentiment')\n", "labels = []\n", "for sentence in data.text_clean:\n", " sentence = Sentence(sentence)\n", " tagger.predict(sentence)\n", " labels.append(sentence)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 214, "referenced_widgets": [ "b3b8d7e9db6e432f8239404ccb742393", "370665f151284dc1875516a179be5cde", "a2757f02948f43ff9e49b1692b913598", "5035429bb8ce448b8ede488ad1938e74", "5a4b33bbfe334eaebebecc0f18dfe14c", "f870a835a9e44483bfc8a36837f6c416", "eb97e44493f7403b8f053c497beb36ee", "53a2958f03334b3cb1e3d764842626ad", "269f2950bf92403399911a9b4ac0571b", "df7b7ff06368440ca54f0e0b34bb27ec", "ab9bb53499d146138996d56dff7b000b", "6e12aefdb4914158b72b6ccd329c63a3", "e7ef92e7b67f41518058adc02eefcd68", "894c187cd59e4484b5603c4e5c0c36ba", "a7ce7b2d01fb4c46b8fb698370c5c02d", "dfd06ff56ad8494caafbf2ef1e0e1ccd", "34a5e1ef261743cc886cb58329d479e0", "74122d3ad6c4437bad9bf105586eb017", "76727a7add2f4391b3292d73cb0cb4b8", "634f01e7940a4c998f115b0d99d3c2f5", "706a72ddcbca4204932f7e4bb42c4f49", "f850a57656ab4a1a8cf54b6d622c7a4b", "ea7ff76cf2d34689a3754c6af412b1b2", "7b114d2de0bd4fd8a69e8303c1895de0", "42fb055bf6c14f8b91c06b46d170084c", "772c50f29a3540659be4133991647b05", "34fa667cd7134c9db05a0b247a4feca9", "092674977076491cacef894a127c683b", "70ed64666e7d434190327e1abd181034", "51ce722d544045439cc1828b0377592e", "949fd12e6a904943b977001260d7a32d", "c6ad3756ca124a86a587c8b72b6aa6fc", "a5db240d76aa4432947bbe30ba91df45", "5ac7f0eb7bf040a59c5d5b6887c3926b", "a54bfd41441241fe9375fe3b5a1a7e90", "9426b0cea645428bb7aef7a78ac0958d", "af048843a8c849e4839976550e6699db", "ad9ccb637afe4adab971f2f86f9ea4f1", "15cc1d55b0f744ec9d253e13c26842a2", "495febbc007e412f8fd506ed03c932f6", "329cfd81a32e425087e29e18c99421d5", "e29aabfa2d15482ba92823ed2d17bfa5", "0ea952386d1f44a2af8f609e861eaecc", "efa5ed771bf848ce8bd99c4c965929d6" ] }, "id": "7jha3YzKJGJY", "outputId": "d65d9250-5e14-4157-f6ff-4dd1e1cf8f68" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-08-01 12:02:26,005 https://nlp.informatik.hu-berlin.de/resources/models/sentiment-curated-distilbert/sentiment-en-mix-distillbert_4.pt not found in cache, downloading to /tmp/tmpux3s6vo_\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 253M/253M [00:12<00:00, 21.2MB/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2023-08-01 12:02:39,021 copying /tmp/tmpux3s6vo_ to cache at /root/.flair/models/sentiment-en-mix-distillbert_4.pt\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2023-08-01 12:02:40,230 removing temp file /tmp/tmpux3s6vo_\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b3b8d7e9db6e432f8239404ccb742393", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading (…)okenizer_config.json: 0%| | 0.00/28.0 [00:00