Skip to content

Instantly share code, notes, and snippets.

@miguel-castillo
Last active January 2, 2021 14:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miguel-castillo/8af16dee70603cb1d551359a2c3941ab to your computer and use it in GitHub Desktop.
Save miguel-castillo/8af16dee70603cb1d551359a2c3941ab to your computer and use it in GitHub Desktop.
covid_tweets_project.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "covid_tweets_project.ipynb",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyN6F0otS2mpo1c3kqh8xaGO",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/miguel-castillo/8af16dee70603cb1d551359a2c3941ab/covid_tweets_project.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "aDGKhafecaV1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "f2725fa7-43da-48de-eb35-d76462163dee"
},
"source": [
"!pip install wordninja\n",
"!pip install autocorrect\n",
"!pip install wordsegment\n",
"!apt-get update\n",
"!apt install openjdk-8-jdk\n",
"!update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java\n",
"!pip install language-check\n",
"!pip install pycontractions\n",
"!python -m spacy link en_core_web_md en_md"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting wordninja\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/30/15/abe4af50f4be92b60c25e43c1c64d08453b51e46c32981d80b3aebec0260/wordninja-2.0.0.tar.gz (541kB)\n",
"\r\u001b[K |▋ | 10kB 13.8MB/s eta 0:00:01\r\u001b[K |█▏ | 20kB 1.8MB/s eta 0:00:01\r\u001b[K |█▉ | 30kB 2.6MB/s eta 0:00:01\r\u001b[K |██▍ | 40kB 3.4MB/s eta 0:00:01\r\u001b[K |███ | 51kB 2.2MB/s eta 0:00:01\r\u001b[K |███▋ | 61kB 2.5MB/s eta 0:00:01\r\u001b[K |████▎ | 71kB 2.9MB/s eta 0:00:01\r\u001b[K |████▉ | 81kB 3.3MB/s eta 0:00:01\r\u001b[K |█████▌ | 92kB 2.6MB/s eta 0:00:01\r\u001b[K |██████ | 102kB 2.8MB/s eta 0:00:01\r\u001b[K |██████▋ | 112kB 2.8MB/s eta 0:00:01\r\u001b[K |███████▎ | 122kB 2.8MB/s eta 0:00:01\r\u001b[K |███████▉ | 133kB 2.8MB/s eta 0:00:01\r\u001b[K |████████▌ | 143kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████ | 153kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████▊ | 163kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████▎ | 174kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████ | 184kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████▌ | 194kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████ | 204kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████▊ | 215kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████▎ | 225kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████ | 235kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████▌ | 245kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████▏ | 256kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████▊ | 266kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████▍ | 276kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████ | 286kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████▌ | 296kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████▏ | 307kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████▊ | 317kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████████▍ | 327kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████████ | 337kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████████▋ | 348kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████████▏ | 358kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████████▉ | 368kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████████▍ | 378kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████████████ | 389kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████████████▋ | 399kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████████████▏ | 409kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████████████▉ | 419kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████████████▍ | 430kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████████████ | 440kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████████████▋ | 450kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████████████████▎ | 460kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████████████████▉ | 471kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████████████████▍ | 481kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████████████████ | 491kB 2.8MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▋ | 501kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▎ | 512kB 2.8MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▉ | 522kB 2.8MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▌| 532kB 2.8MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 542kB 2.8MB/s \n",
"\u001b[?25hBuilding wheels for collected packages: wordninja\n",
" Building wheel for wordninja (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for wordninja: filename=wordninja-2.0.0-cp36-none-any.whl size=541552 sha256=1fe44e2b07a6f4c9d17b00033a612dadc6b19cb2625d248b9d72d670a70c609e\n",
" Stored in directory: /root/.cache/pip/wheels/22/46/06/9b6d10ed02c85e93c3bb33ac50e2d368b2586248f192a2e22a\n",
"Successfully built wordninja\n",
"Installing collected packages: wordninja\n",
"Successfully installed wordninja-2.0.0\n",
"Collecting autocorrect\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/a9/b0/a1d628fa192e8ebf124b4cebc2a42b4e3aa65b8052fdf4888e04fadf3e8d/autocorrect-1.1.0.tar.gz (1.8MB)\n",
"\u001b[K |████████████████████████████████| 1.8MB 2.8MB/s \n",
"\u001b[?25hBuilding wheels for collected packages: autocorrect\n",
" Building wheel for autocorrect (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for autocorrect: filename=autocorrect-1.1.0-cp36-none-any.whl size=1810772 sha256=619ac3b958d6c51e7df402dc96d5dba21a7165a698eb8f1e43be8df2df100dc8\n",
" Stored in directory: /root/.cache/pip/wheels/78/7f/b1/527522820ae623df6a2dbe14f778d23adaea4bebe43f7ebcfe\n",
"Successfully built autocorrect\n",
"Installing collected packages: autocorrect\n",
"Successfully installed autocorrect-1.1.0\n",
"Collecting wordsegment\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/cf/6c/e6f4734d6f7d28305f52ec81377d7ce7d1856b97b814278e9960183235ad/wordsegment-1.3.1-py2.py3-none-any.whl (4.8MB)\n",
"\u001b[K |████████████████████████████████| 4.8MB 2.8MB/s \n",
"\u001b[?25hInstalling collected packages: wordsegment\n",
"Successfully installed wordsegment-1.3.1\n",
"Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]\n",
"Ign:2 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease\n",
"Get:3 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease [3,626 B]\n",
"Hit:4 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease\n",
"Hit:5 http://archive.ubuntu.com/ubuntu bionic InRelease\n",
"Ign:6 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 InRelease\n",
"Hit:7 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Release\n",
"Hit:8 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 Release\n",
"Get:9 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]\n",
"Get:10 http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic InRelease [15.4 kB]\n",
"Get:11 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [844 kB]\n",
"Get:12 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [908 kB]\n",
"Get:13 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]\n",
"Get:16 http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic/main Sources [1,814 kB]\n",
"Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [1,205 kB]\n",
"Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1,376 kB]\n",
"Get:19 http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic/main amd64 Packages [875 kB]\n",
"Fetched 7,294 kB in 3s (2,178 kB/s)\n",
"Reading package lists... Done\n",
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"The following additional packages will be installed:\n",
" fonts-dejavu-core fonts-dejavu-extra libatk-wrapper-java\n",
" libatk-wrapper-java-jni libxxf86dga1 openjdk-8-jdk-headless openjdk-8-jre\n",
" openjdk-8-jre-headless x11-utils\n",
"Suggested packages:\n",
" openjdk-8-demo openjdk-8-source visualvm icedtea-8-plugin libnss-mdns\n",
" fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei\n",
" fonts-wqy-zenhei fonts-indic mesa-utils\n",
"The following NEW packages will be installed:\n",
" fonts-dejavu-core fonts-dejavu-extra libatk-wrapper-java\n",
" libatk-wrapper-java-jni libxxf86dga1 openjdk-8-jdk openjdk-8-jdk-headless\n",
" openjdk-8-jre openjdk-8-jre-headless x11-utils\n",
"0 upgraded, 10 newly installed, 0 to remove and 32 not upgraded.\n",
"Need to get 40.7 MB of archives.\n",
"After this operation, 153 MB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 libxxf86dga1 amd64 2:1.1.4-1 [13.7 kB]\n",
"Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 fonts-dejavu-core all 2.37-1 [1,041 kB]\n",
"Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 fonts-dejavu-extra all 2.37-1 [1,953 kB]\n",
"Get:4 http://archive.ubuntu.com/ubuntu bionic/main amd64 x11-utils amd64 7.7+3build1 [196 kB]\n",
"Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 libatk-wrapper-java all 0.33.3-20ubuntu0.1 [34.7 kB]\n",
"Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 libatk-wrapper-java-jni amd64 0.33.3-20ubuntu0.1 [28.3 kB]\n",
"Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jre-headless amd64 8u252-b09-1~18.04 [27.5 MB]\n",
"Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jre amd64 8u252-b09-1~18.04 [69.8 kB]\n",
"Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk-headless amd64 8u252-b09-1~18.04 [8,250 kB]\n",
"Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk amd64 8u252-b09-1~18.04 [1,622 kB]\n",
"Fetched 40.7 MB in 2s (19.9 MB/s)\n",
"Selecting previously unselected package libxxf86dga1:amd64.\n",
"(Reading database ... 144429 files and directories currently installed.)\n",
"Preparing to unpack .../0-libxxf86dga1_2%3a1.1.4-1_amd64.deb ...\n",
"Unpacking libxxf86dga1:amd64 (2:1.1.4-1) ...\n",
"Selecting previously unselected package fonts-dejavu-core.\n",
"Preparing to unpack .../1-fonts-dejavu-core_2.37-1_all.deb ...\n",
"Unpacking fonts-dejavu-core (2.37-1) ...\n",
"Selecting previously unselected package fonts-dejavu-extra.\n",
"Preparing to unpack .../2-fonts-dejavu-extra_2.37-1_all.deb ...\n",
"Unpacking fonts-dejavu-extra (2.37-1) ...\n",
"Selecting previously unselected package x11-utils.\n",
"Preparing to unpack .../3-x11-utils_7.7+3build1_amd64.deb ...\n",
"Unpacking x11-utils (7.7+3build1) ...\n",
"Selecting previously unselected package libatk-wrapper-java.\n",
"Preparing to unpack .../4-libatk-wrapper-java_0.33.3-20ubuntu0.1_all.deb ...\n",
"Unpacking libatk-wrapper-java (0.33.3-20ubuntu0.1) ...\n",
"Selecting previously unselected package libatk-wrapper-java-jni:amd64.\n",
"Preparing to unpack .../5-libatk-wrapper-java-jni_0.33.3-20ubuntu0.1_amd64.deb ...\n",
"Unpacking libatk-wrapper-java-jni:amd64 (0.33.3-20ubuntu0.1) ...\n",
"Selecting previously unselected package openjdk-8-jre-headless:amd64.\n",
"Preparing to unpack .../6-openjdk-8-jre-headless_8u252-b09-1~18.04_amd64.deb ...\n",
"Unpacking openjdk-8-jre-headless:amd64 (8u252-b09-1~18.04) ...\n",
"Selecting previously unselected package openjdk-8-jre:amd64.\n",
"Preparing to unpack .../7-openjdk-8-jre_8u252-b09-1~18.04_amd64.deb ...\n",
"Unpacking openjdk-8-jre:amd64 (8u252-b09-1~18.04) ...\n",
"Selecting previously unselected package openjdk-8-jdk-headless:amd64.\n",
"Preparing to unpack .../8-openjdk-8-jdk-headless_8u252-b09-1~18.04_amd64.deb ...\n",
"Unpacking openjdk-8-jdk-headless:amd64 (8u252-b09-1~18.04) ...\n",
"Selecting previously unselected package openjdk-8-jdk:amd64.\n",
"Preparing to unpack .../9-openjdk-8-jdk_8u252-b09-1~18.04_amd64.deb ...\n",
"Unpacking openjdk-8-jdk:amd64 (8u252-b09-1~18.04) ...\n",
"Setting up fonts-dejavu-core (2.37-1) ...\n",
"Setting up libxxf86dga1:amd64 (2:1.1.4-1) ...\n",
"Setting up fonts-dejavu-extra (2.37-1) ...\n",
"Setting up openjdk-8-jre-headless:amd64 (8u252-b09-1~18.04) ...\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/orbd to provide /usr/bin/orbd (orbd) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/servertool to provide /usr/bin/servertool (servertool) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/tnameserv to provide /usr/bin/tnameserv (tnameserv) in auto mode\n",
"Setting up openjdk-8-jdk-headless:amd64 (8u252-b09-1~18.04) ...\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/idlj to provide /usr/bin/idlj (idlj) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/wsimport to provide /usr/bin/wsimport (wsimport) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jsadebugd to provide /usr/bin/jsadebugd (jsadebugd) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/native2ascii to provide /usr/bin/native2ascii (native2ascii) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/javah to provide /usr/bin/javah (javah) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/clhsdb to provide /usr/bin/clhsdb (clhsdb) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/extcheck to provide /usr/bin/extcheck (extcheck) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/hsdb to provide /usr/bin/hsdb (hsdb) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/schemagen to provide /usr/bin/schemagen (schemagen) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/xjc to provide /usr/bin/xjc (xjc) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jhat to provide /usr/bin/jhat (jhat) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/wsgen to provide /usr/bin/wsgen (wsgen) in auto mode\n",
"Setting up x11-utils (7.7+3build1) ...\n",
"Setting up libatk-wrapper-java (0.33.3-20ubuntu0.1) ...\n",
"Setting up libatk-wrapper-java-jni:amd64 (0.33.3-20ubuntu0.1) ...\n",
"Setting up openjdk-8-jre:amd64 (8u252-b09-1~18.04) ...\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/policytool to provide /usr/bin/policytool (policytool) in auto mode\n",
"Setting up openjdk-8-jdk:amd64 (8u252-b09-1~18.04) ...\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer to provide /usr/bin/appletviewer (appletviewer) in auto mode\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode\n",
"Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n",
"Processing triggers for hicolor-icon-theme (0.17-2) ...\n",
"Processing triggers for fontconfig (2.12.6-0ubuntu2) ...\n",
"Processing triggers for mime-support (3.60ubuntu1) ...\n",
"Processing triggers for libc-bin (2.27-3ubuntu1) ...\n",
"/sbin/ldconfig.real: /usr/local/lib/python3.6/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n",
"\n",
"update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode\n",
"Collecting language-check\n",
" Downloading https://files.pythonhosted.org/packages/97/45/0fd1d3683d6129f30fa09143fa383cdf6dff8bc0d1648f2cf156109cb772/language-check-1.1.tar.gz\n",
"Building wheels for collected packages: language-check\n",
" Building wheel for language-check (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for language-check: filename=language_check-1.1-cp36-none-any.whl size=90190899 sha256=ebd0f3df7c321c9bff2c2aaed4bbc288d3b15ec88ff4fb1d2e55cd8a82cacf35\n",
" Stored in directory: /root/.cache/pip/wheels/d5/46/82/90a89c23eac1837364ed7217a9eed71bc9e6ad4825be93968e\n",
"Successfully built language-check\n",
"Installing collected packages: language-check\n",
"Successfully installed language-check-1.1\n",
"Collecting pycontractions\n",
" Downloading https://files.pythonhosted.org/packages/a6/f5/d3ec9491c530cbc03af32ca2c6b69b0e89660daeb2856b485d90f9d82e5e/pycontractions-2.0.1-py3-none-any.whl\n",
"Requirement already satisfied: pyemd>=0.4.4 in /usr/local/lib/python3.6/dist-packages (from pycontractions) (0.5.1)\n",
"Requirement already satisfied: gensim>=2.0 in /usr/local/lib/python3.6/dist-packages (from pycontractions) (3.6.0)\n",
"Requirement already satisfied: language-check>=1.0 in /usr/local/lib/python3.6/dist-packages (from pycontractions) (1.1)\n",
"Requirement already satisfied: numpy<2.0.0,>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from pyemd>=0.4.4->pycontractions) (1.18.4)\n",
"Requirement already satisfied: six>=1.5.0 in /usr/local/lib/python3.6/dist-packages (from gensim>=2.0->pycontractions) (1.12.0)\n",
"Requirement already satisfied: smart-open>=1.2.1 in /usr/local/lib/python3.6/dist-packages (from gensim>=2.0->pycontractions) (2.0.0)\n",
"Requirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.6/dist-packages (from gensim>=2.0->pycontractions) (1.4.1)\n",
"Requirement already satisfied: boto in /usr/local/lib/python3.6/dist-packages (from smart-open>=1.2.1->gensim>=2.0->pycontractions) (2.49.0)\n",
"Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from smart-open>=1.2.1->gensim>=2.0->pycontractions) (2.23.0)\n",
"Requirement already satisfied: boto3 in /usr/local/lib/python3.6/dist-packages (from smart-open>=1.2.1->gensim>=2.0->pycontractions) (1.13.3)\n",
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->smart-open>=1.2.1->gensim>=2.0->pycontractions) (2.9)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->smart-open>=1.2.1->gensim>=2.0->pycontractions) (2020.4.5.1)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->smart-open>=1.2.1->gensim>=2.0->pycontractions) (3.0.4)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->smart-open>=1.2.1->gensim>=2.0->pycontractions) (1.24.3)\n",
"Requirement already satisfied: botocore<1.17.0,>=1.16.3 in /usr/local/lib/python3.6/dist-packages (from boto3->smart-open>=1.2.1->gensim>=2.0->pycontractions) (1.16.3)\n",
"Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/lib/python3.6/dist-packages (from boto3->smart-open>=1.2.1->gensim>=2.0->pycontractions) (0.9.5)\n",
"Requirement already satisfied: s3transfer<0.4.0,>=0.3.0 in /usr/local/lib/python3.6/dist-packages (from boto3->smart-open>=1.2.1->gensim>=2.0->pycontractions) (0.3.3)\n",
"Requirement already satisfied: docutils<0.16,>=0.10 in /usr/local/lib/python3.6/dist-packages (from botocore<1.17.0,>=1.16.3->boto3->smart-open>=1.2.1->gensim>=2.0->pycontractions) (0.15.2)\n",
"Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.6/dist-packages (from botocore<1.17.0,>=1.16.3->boto3->smart-open>=1.2.1->gensim>=2.0->pycontractions) (2.8.1)\n",
"Installing collected packages: pycontractions\n",
"Successfully installed pycontractions-2.0.1\n",
"\n",
"\u001b[38;5;1m✘ Can't locate model data\u001b[0m\n",
"The data should be located in en_core_web_md\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "V3L4oA0xhCRb",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 131
},
"outputId": "c1f201ee-3657-4d53-a648-017a3e6f3c8d"
},
"source": [
"from google.colab import drive\n",
"drive.mount('/content/drive')"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly\n",
"\n",
"Enter your authorization code:\n",
"··········\n",
"Mounted at /content/drive\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "mgHa446oO1rs",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 675
},
"outputId": "af9e517f-5f4d-4bab-ee47-74d042543e1d"
},
"source": [
"!pip3 install https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.2.0/en_core_web_md-2.2.0.tar.gz\n",
"!python -m spacy link en_core_web_md en_md"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.2.0/en_core_web_md-2.2.0.tar.gz\n",
"\u001b[?25l Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.2.0/en_core_web_md-2.2.0.tar.gz (96.4MB)\n",
"\u001b[K |████████████████████████████████| 96.4MB 48kB/s \n",
"\u001b[?25hRequirement already satisfied: spacy>=2.2.0 in /usr/local/lib/python3.6/dist-packages (from en-core-web-md==2.2.0) (2.2.4)\n",
"Requirement already satisfied: wasabi<1.1.0,>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (0.6.0)\n",
"Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (3.0.2)\n",
"Requirement already satisfied: blis<0.5.0,>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (0.4.1)\n",
"Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (1.18.4)\n",
"Requirement already satisfied: srsly<1.1.0,>=1.0.2 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (1.0.2)\n",
"Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (1.0.2)\n",
"Requirement already satisfied: catalogue<1.1.0,>=0.0.7 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (1.0.0)\n",
"Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (46.1.3)\n",
"Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (2.0.3)\n",
"Requirement already satisfied: thinc==7.4.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (7.4.0)\n",
"Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (4.41.1)\n",
"Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (2.23.0)\n",
"Requirement already satisfied: plac<1.2.0,>=0.9.6 in /usr/local/lib/python3.6/dist-packages (from spacy>=2.2.0->en-core-web-md==2.2.0) (1.1.3)\n",
"Requirement already satisfied: importlib-metadata>=0.20; python_version < \"3.8\" in /usr/local/lib/python3.6/dist-packages (from catalogue<1.1.0,>=0.0.7->spacy>=2.2.0->en-core-web-md==2.2.0) (1.6.0)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.0->en-core-web-md==2.2.0) (3.0.4)\n",
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.0->en-core-web-md==2.2.0) (2.9)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.0->en-core-web-md==2.2.0) (2020.4.5.1)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.0->en-core-web-md==2.2.0) (1.24.3)\n",
"Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/dist-packages (from importlib-metadata>=0.20; python_version < \"3.8\"->catalogue<1.1.0,>=0.0.7->spacy>=2.2.0->en-core-web-md==2.2.0) (3.1.0)\n",
"Building wheels for collected packages: en-core-web-md\n",
" Building wheel for en-core-web-md (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for en-core-web-md: filename=en_core_web_md-2.2.0-cp36-none-any.whl size=98072934 sha256=21382d52460e1f3f092f376a01009a3bb71a396445cbb300916b615c0ec30c45\n",
" Stored in directory: /root/.cache/pip/wheels/5f/3e/c9/36dd6e13b449fd84cd1f94b72dfbc559daf09f53dbf4e697a3\n",
"Successfully built en-core-web-md\n",
"Installing collected packages: en-core-web-md\n",
"Successfully installed en-core-web-md-2.2.0\n",
"\u001b[38;5;2m✔ Linking successful\u001b[0m\n",
"/usr/local/lib/python3.6/dist-packages/en_core_web_md -->\n",
"/usr/local/lib/python3.6/dist-packages/spacy/data/en_md\n",
"You can now load the model via spacy.load('en_md')\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "nSsnhdBoqCzs",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 168
},
"outputId": "9a52cde6-4dc6-4915-f1e1-11d7ddf632e4"
},
"source": [
"import glob\n",
"import pandas as pd\n",
"import re\n",
"import spacy\n",
"from autocorrect import Speller\n",
"from wordsegment import load, segment\n",
"from pycontractions import Contractions\n",
"import gensim.downloader as api\n",
"import wordninja\n",
"from tqdm import tqdm\n",
"import nltk\n",
"from nltk.corpus import stopwords\n",
"from nltk.tokenize import word_tokenize\n",
"\n",
"nlp = spacy.load('en_md')\n",
"\n",
"nltk.download('punkt')\n",
"nltk.download('stopwords')\n",
"\n",
"load()\n",
"\n",
"spell = Speller()\n",
"\n",
"model = api.load(\"glove-twitter-100\")\n",
"\n",
"cont = Contractions(kv_model=model)\n",
"cont.load_models()\n",
"\n",
"path = '/content/drive/My Drive/annotated_tweets'"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Unzipping tokenizers/punkt.zip.\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Unzipping corpora/stopwords.zip.\n",
"[=================================================-] 98.9% 382.9/387.1MB downloaded\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/smart_open/smart_open_lib.py:253: UserWarning: This function is deprecated, use smart_open.open instead. See the migration notes for details: https://github.com/RaRe-Technologies/smart_open/blob/master/README.rst#migrating-to-the-new-open-function\n",
" 'See the migration notes for details: %s' % _MIGRATION_NOTES_URL\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "KlzK9kbCzFok"
},
"source": [
"pd.options.display.max_colwidth = 400"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "bWhU1N4jsAIX"
},
"source": [
"files = glob.glob(path + '/project_*_labeled_data.csv')\n",
"li = []\n",
"for file in files:\n",
" li.append(pd.read_csv(file))\n",
"tweets_df = pd.concat(li)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "mFdV3k04wCGZ"
},
"source": [
"X = tweets_df['Text']\n",
"y = tweets_df['Label']\n"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "V03wjD308D9D"
},
"source": [
"def clean_tweet(tweet):\n",
" tweet = re.sub(r'https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)', '',\n",
" tweet, flags=re.MULTILINE)\n",
" tweet = re.sub(r'[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)', '',\n",
" tweet, flags=re.MULTILINE)\n",
" tweet = ' '.join(re.sub(\"(@[A-Za-z0-9]+(?:_[a-zA-Z]+)*)|([^0-9A-Za-z \\' \\t])|(\\w+:\\/\\/\\S+)\", \n",
" \"\", tweet).split())\n",
" tweet = list(cont.expand_texts([tweet], precise=True))[0]\n",
" tweet = ' '.join(re.sub(\"('[A-Za-z0-9]+)\", \"\", tweet).split())\n",
" tweet = re.sub(r\"\\d\", \"\", tweet)\n",
" tweet = ' '.join(segment(tweet))\n",
" tweet = ' '.join([spell(w) for w in tweet.split()])\n",
" tweet = tweet.lower()\n",
" text_tokens = word_tokenize(tweet)\n",
" tweet = ' '.join([w for w in text_tokens if not w in stopwords.words()])\n",
"\n",
" tokenise = nlp(tweet)\n",
" tokens = [word.lemma_ if word.lemma_ != \"-PRON-\" else word.lower_ for word in tokenise]\n",
" tweet = ' '.join(tokens)\n",
"\n",
" return tweet"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "gXQMdBdV-tWh",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 92
},
"outputId": "eb808c2b-ffd1-4fa9-dba5-36695eaf741e"
},
"source": [
"import nltk\n",
"nltk.download('punkt')\n",
"from nltk.corpus import stopwords\n",
"nltk.download('stopwords')\n",
"from nltk.tokenize import word_tokenize\n",
"\n",
"def remove_stopwords(tweet):\n",
" text_tokens = word_tokenize(tweet)\n",
" tweet = ' '.join([w for w in text_tokens if not w in stopwords.words()])\n",
" return tweet"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Package punkt is already up-to-date!\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Package stopwords is already up-to-date!\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "kCNmdEXM-PvK",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 36
},
"outputId": "93755624-1cd0-4b38-810b-3af6d4b9cbb7"
},
"source": [
"clean_tweets = []\n",
"for tweet in tqdm(X):\n",
" clean_tweets.append(clean_tweet(tweet))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"100%|██████████| 1996/1996 [12:41<00:00, 2.62it/s]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1PA1_UA5Vfbx",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 36
},
"outputId": "45fb8a6a-2c81-4f8d-cd4c-ee31d3ed58ec"
},
"source": [
"X = []\n",
"for tweet in tqdm(clean_tweets):\n",
" X.append(remove_stopwords(tweet))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"100%|██████████| 1996/1996 [02:02<00:00, 16.28it/s]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "NAXkf2vwgdrK",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 412
},
"outputId": "df329b46-7349-4c0a-d41f-b35242a9eab9"
},
"source": [
"for i in range (0,20):\n",
" print(X[i])"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"rip free hug guy lockdown co stay home corona crisis coronavirus\n",
"upside lockdown fo mo quarantine coronavirus pandemic lockdown\n",
"get double dipping virus co quar life quarantine corona crisis coronavirus\n",
"remember home remember happy time co quarantine activity\n",
"play gaze co lockdown\n",
"pandemic get bad even video game send day worth peace shield virtual self quarantine co coronavirus pandemic\n",
"warning outbreak desperate celebrity advantage co lockdown may appear radio tv online demand resuscitation dead career please warn public spot corona crisis coronavirus\n",
"second full day quarantine already lose track day fully impression weekend past day covidcovidquaratine chill quar life\n",
"world health organization determine rt actor give co officially let quarantine essentially mean let know taha\n",
"normal daily life style call quarantine good quarantine year quarantine co corona stop krona\n",
"reach please remember rewind internet return stay home save life stay home stay safe video coronavirus lockdown homestay\n",
"give social gathering lend co quarantine life\n",
"cold case story uplifting hour day know coronavirus pandemic quarantine rough\n",
"due coronavirus pandemic quarantine recommend blow homie goodnight kiss foot away\n",
"know need hear fake eyelash get hand look freakish natural use quarantine let fallout permanently quarantine coronavirus\n",
"go need get pickle go survive quarantine co\n",
"anyone else already kitchen onslaught bore hungry teenager consider fridge freezer lockdown co stay home\n",
"quarantine times right would invite round swift ie party kane west party coronavirus taylor tell truth\n",
"weird force quarantine parent use spending much time commit murder co coronavirus\n",
"quarantine even get stress quar life stay home co lockdown\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "pVfjn71eldZu",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 746
},
"outputId": "afb82ffd-5bc9-4b1b-9b60-1b0ca027e3c3"
},
"source": [
"tweets_df.head(20)"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ID</th>\n",
" <th>Label</th>\n",
" <th>Text</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>115</td>\n",
" <td>joke</td>\n",
" <td>RIP FREE HUGS GUY. #lockdown #Covid_19 #StayHome #CoronaCrisis #coronavirus</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>760</td>\n",
" <td>joke</td>\n",
" <td>The upside of lockdown: NO FOMO. #Quarantine #CoronavirusPandemic #lockdown</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>40</td>\n",
" <td>joke</td>\n",
" <td>This is what you get for double-dipping #virus #covid19 #QuaratineLife #Quarantined #CoronaCrisis #coronavirus</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>781</td>\n",
" <td>joke</td>\n",
" <td>Just remember, while we're all home our dogs will remember this as the happy time. #COVID19 #QuarantineActivities</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>975</td>\n",
" <td>joke</td>\n",
" <td>@14wardi @FreshAz6 Just playin' with my ding a ling ... #COVID19 #lockdown</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>572</td>\n",
" <td>joke</td>\n",
" <td>\"This pandemic has gotten so bad that even my video game sent me 14days worth of \"\"peace shields\"\" so my virtual self can be quarantined #Covid_19 #CoronavirusPandemic\"</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>13</td>\n",
" <td>joke</td>\n",
" <td>WARNING There is an outbreak of desperate celebrities taking advantage of the #Covid_19 lockdown. They may appear on radio, TV or online demanding resuscitation of their dead career. Please warn the public if you spot one. #CoronaCrisis #coronavirus</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>985</td>\n",
" <td>joke</td>\n",
" <td>it’s my second full day of quarantine and i’ve already lost track of the days. i was fully under the impression it has been the weekend for the past 3 days. #COVID19 #Covid_19 #QuaratineAndChill #QuaratineLife</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>569</td>\n",
" <td>joke</td>\n",
" <td>The #WorldHealthOrganization determined dogs can't conrtact, or give, #Covid_19 They officially let dogs out of Quarantine. So does this essentially means: W H O let the dogs out? We now know. #bahamen</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>681</td>\n",
" <td>joke</td>\n",
" <td>So normal daily life style is called QUARANTINE , Good! 🌼🤗 QUARANTINE YEAR 25🌼🤗 #Quarantine #വീട്ടിലിരിമൈരേ #Covid_19 #CoronaStopKaroNa</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>32</td>\n",
" <td>joke</td>\n",
" <td>You have reached the end of @netflix - please remember to rewind the Internet before you return it. #StayHomeSaveLives #StayHomeStaySafe #COVID19 #Covid_19 #coronavirus #Lockdown #Homestay https://t.co/8aN3ycksCF</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>191</td>\n",
" <td>joke</td>\n",
" <td>I am giving up social gatherings for lent .... #COVID19 #QuarantineLife</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>820</td>\n",
" <td>joke</td>\n",
" <td>When an @ABC2020 #coldcase story is an uplifting hour of your day, you know the #CoronavirusPandemic quarantine has been rough.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>230</td>\n",
" <td>joke</td>\n",
" <td>Due to #CoronavirusPandemic and #Quarantine it's now recommended that you blow your homies goodnight kisses from 6 feet away</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>524</td>\n",
" <td>joke</td>\n",
" <td>I don’t know who needs to hear this but your fake eyelashes have gotten out of hand and look freakish, not natural. Use this quarantine to let them fall out....permanently. #Quarantine #Coronavirus</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>348</td>\n",
" <td>joke</td>\n",
" <td>I’m going to need to get some pickles if I am going to survive this quarantine #Covid_19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>656</td>\n",
" <td>joke</td>\n",
" <td>Anyone else already facing a kitchen onslaught from bored, hungry teenagers and considering a fridge-freezer lockdown? #Covid_19 #StayAtHome</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>549</td>\n",
" <td>joke</td>\n",
" <td>If we weren’t in quarantine times right now, I’d be inviting y’all round for a swiftie party #KanyeWestIsOverParty #coronavirus #TaylorToldTheTruth</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>551</td>\n",
" <td>joke</td>\n",
" <td>Isn’t it weird when you’re forced to quarantine with your parents and you aren’t used to spending that much time with him and now you want to commit murder. #COVID19 #coronavirus</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>308</td>\n",
" <td>joke</td>\n",
" <td>Quarantining even got my dog stressed. #QuaratineLife #StayAtHome #Covid_19 #lockdown https://t.co/dYRaEWBHLk</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ID ... Text\n",
"0 115 ... RIP FREE HUGS GUY. #lockdown #Covid_19 #StayHome #CoronaCrisis #coronavirus\n",
"1 760 ... The upside of lockdown: NO FOMO. #Quarantine #CoronavirusPandemic #lockdown\n",
"2 40 ... This is what you get for double-dipping #virus #covid19 #QuaratineLife #Quarantined #CoronaCrisis #coronavirus\n",
"3 781 ... Just remember, while we're all home our dogs will remember this as the happy time. #COVID19 #QuarantineActivities\n",
"4 975 ... @14wardi @FreshAz6 Just playin' with my ding a ling ... #COVID19 #lockdown\n",
"5 572 ... \"This pandemic has gotten so bad that even my video game sent me 14days worth of \"\"peace shields\"\" so my virtual self can be quarantined #Covid_19 #CoronavirusPandemic\"\n",
"6 13 ... WARNING There is an outbreak of desperate celebrities taking advantage of the #Covid_19 lockdown. They may appear on radio, TV or online demanding resuscitation of their dead career. Please warn the public if you spot one. #CoronaCrisis #coronavirus\n",
"7 985 ... it’s my second full day of quarantine and i’ve already lost track of the days. i was fully under the impression it has been the weekend for the past 3 days. #COVID19 #Covid_19 #QuaratineAndChill #QuaratineLife\n",
"8 569 ... The #WorldHealthOrganization determined dogs can't conrtact, or give, #Covid_19 They officially let dogs out of Quarantine. So does this essentially means: W H O let the dogs out? We now know. #bahamen\n",
"9 681 ... So normal daily life style is called QUARANTINE , Good! 🌼🤗 QUARANTINE YEAR 25🌼🤗 #Quarantine #വീട്ടിലിരിമൈരേ #Covid_19 #CoronaStopKaroNa\n",
"10 32 ... You have reached the end of @netflix - please remember to rewind the Internet before you return it. #StayHomeSaveLives #StayHomeStaySafe #COVID19 #Covid_19 #coronavirus #Lockdown #Homestay https://t.co/8aN3ycksCF\n",
"11 191 ... I am giving up social gatherings for lent .... #COVID19 #QuarantineLife\n",
"12 820 ... When an @ABC2020 #coldcase story is an uplifting hour of your day, you know the #CoronavirusPandemic quarantine has been rough.\n",
"13 230 ... Due to #CoronavirusPandemic and #Quarantine it's now recommended that you blow your homies goodnight kisses from 6 feet away\n",
"14 524 ... I don’t know who needs to hear this but your fake eyelashes have gotten out of hand and look freakish, not natural. Use this quarantine to let them fall out....permanently. #Quarantine #Coronavirus\n",
"15 348 ... I’m going to need to get some pickles if I am going to survive this quarantine #Covid_19\n",
"16 656 ... Anyone else already facing a kitchen onslaught from bored, hungry teenagers and considering a fridge-freezer lockdown? #Covid_19 #StayAtHome\n",
"17 549 ... If we weren’t in quarantine times right now, I’d be inviting y’all round for a swiftie party #KanyeWestIsOverParty #coronavirus #TaylorToldTheTruth\n",
"18 551 ... Isn’t it weird when you’re forced to quarantine with your parents and you aren’t used to spending that much time with him and now you want to commit murder. #COVID19 #coronavirus\n",
"19 308 ... Quarantining even got my dog stressed. #QuaratineLife #StayAtHome #Covid_19 #lockdown https://t.co/dYRaEWBHLk\n",
"\n",
"[20 rows x 3 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 20
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "l8pjjXSkKM05"
},
"source": [
"tweet_data_df = pd.DataFrame(X, columns=['text'])"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "bELCdhyUK6Op",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 187
},
"outputId": "060a2b22-b8f1-4d72-e037-82684a52916b"
},
"source": [
"tweet_data_df.text.values"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array(['rip free hug guy lockdown co stay home corona crisis coronavirus',\n",
" 'upside lockdown fo mo quarantine coronavirus pandemic lockdown',\n",
" 'get double dipping virus co quar life quarantine corona crisis coronavirus',\n",
" ...,\n",
" 'co muslim youth run nationwide campaign help neighbour self isolate due lockdown amp ongoing coronavirus australia pandemic please see attached picture detail let us get together',\n",
" 'know virus corona stop krona lockdown italy socially responsible pakistani stay safe stay home coronavirus pakistan coronavirus pandemic coronavirus corn virus corona outbreak corona pandemic',\n",
" 'request listen carefully coronavirus india corona corona chains coronavirus outbreak india coronavirus pakistan corona india lockdown pakistan kawika corona row virus santa curfew march co india co corona fighter'],\n",
" dtype=object)"
]
},
"metadata": {
"tags": []
},
"execution_count": 22
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "dUAU3mPfIjoO",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 36
},
"outputId": "c86eed74-223a-45e4-81cd-67146d1adad1"
},
"source": [
"from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer\n",
"from sklearn.cluster import KMeans\n",
"\n",
"random_state = 0\n",
"\n",
"vec = TfidfVectorizer()\n",
"vec.fit(tweet_data_df.text.values)\n",
"features = vec.transform(tweet_data_df.text.values)\n",
"\n",
"cls = KMeans(n_clusters=7, random_state=random_state)\n",
"cls.fit(features)\n",
"\n",
"cls.predict(features)"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([2, 0, 2, ..., 0, 2, 3], dtype=int32)"
]
},
"metadata": {
"tags": []
},
"execution_count": 23
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "lswoQChzNQVO",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 36
},
"outputId": "41ed9355-9f2d-4fd8-fe14-80f015d22dee"
},
"source": [
"cls.labels_"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([2, 0, 2, ..., 0, 2, 3], dtype=int32)"
]
},
"metadata": {
"tags": []
},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "27IH452-Nc-W"
},
"source": [
"from sklearn.decomposition import PCA\n",
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline\n",
"\n",
"pca = PCA(n_components=2, random_state=random_state)\n",
"reduced_features = pca.fit_transform(features.toarray())\n",
"\n",
"reduced_cluster_centers = pca.fit_transform(cls.cluster_centers_)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "SME-xP50OZWa",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"outputId": "465eb7d9-c790-4ebf-8946-593420d5b85e"
},
"source": [
"plt.scatter(reduced_features[:,0], reduced_features[:,1], c=cls.predict(features))\n",
"plt.scatter(reduced_cluster_centers[:, 0], reduced_cluster_centers[:,1], marker='x', s=150, c='b')"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fec78974780>"
]
},
"metadata": {
"tags": []
},
"execution_count": 27
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "X0fir1IIOaOL"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment