{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "fake-news-classifier", "provenance": [], "collapsed_sections": [ "0b6d7Y4Y5C21", "QJ23voyoViq1", "F4RMi9W4aOiD", "aoKj7P7PmDCc", "x48sYX_gALT1" ] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "accelerator": "GPU" }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "eBpjBBZc6IvA" }, "source": [ "**Fake News Classifier**: Text classification model to detect fake news articles!\n", "\n", "**Dataset**: [Kaggle Fake and real news dataset](https://www.kaggle.com/datasets/clmentbisaillon/fake-and-real-news-dataset)" ] }, { "cell_type": "code", "source": [ "# !pip install --upgrade git+https://github.com/fastai/fastai.git # from github" ], "metadata": { "id": "E90i018KyJH3" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "import os\n", "import csv\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "import fastai\n", "from fastai.text.all import *\n", "from fastai.imports import *\n", "\n", "from google.colab import files\n", "from sklearn.metrics import roc_curve, auc" ], "metadata": { "id": "DXa0wSdOVGgn" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "fastai.__version__" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "MvTJ4LhuVaVK", "outputId": "d017101f-3f98-4183-d9b8-eb40d28efef7" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'2.5.6'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 3 } ] }, { "cell_type": "markdown", "source": [ "# Upload dataset" ], "metadata": { "id": "0b6d7Y4Y5C21" } }, { "cell_type": "code", "source": [ "os.makedirs('data', exist_ok=True)\n", "\n", "os.chdir('data') # change directory to data\n", "files.upload()\n", "os.chdir('/content') # change directory " ], "metadata": { "colab": { "resources": { "http://localhost:8080/nbextensions/google.colab/files.js": { "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgZG8gewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwoKICAgICAgbGV0IHBlcmNlbnREb25lID0gZmlsZURhdGEuYnl0ZUxlbmd0aCA9PT0gMCA/CiAgICAgICAgICAxMDAgOgogICAgICAgICAgTWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCk7CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPSBgJHtwZXJjZW50RG9uZX0lIGRvbmVgOwoKICAgIH0gd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCk7CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK", "ok": true, "headers": [ [ "content-type", "application/javascript" ] ], "status": 200, "status_text": "" } }, "base_uri": "https://localhost:8080/", "height": 107 }, "id": "zzx_iQhA5g9v", "outputId": "97c31f52-c198-4e0b-ffad-5d90d009646f" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " Upload widget is only available when the cell has been executed in the\n", " current browser session. Please rerun this cell to enable.\n", " \n", " " ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Saving True.csv to True.csv\n", "Saving Fake.csv to Fake.csv\n" ] } ] }, { "cell_type": "markdown", "source": [ "# Dataset" ], "metadata": { "id": "QJ23voyoViq1" } }, { "cell_type": "code", "source": [ "def read_csv(file):\n", " return pd.read_csv(file, encoding='UTF-8', low_memory=False)\n", "\n", "DATASET_DIRECTORY = 'data'\n", "true_df = read_csv(f'{DATASET_DIRECTORY}/True.csv')\n", "fake_df = read_csv(f'{DATASET_DIRECTORY}/Fake.csv')" ], "metadata": { "id": "pqerLEAHVkRO" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "true_df.head()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 511 }, "id": "D2aEk8wqWmFY", "outputId": "3a8909db-46c9-41e7-a32a-7c34cc0b1df5" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " title \\\n", "0 As U.S. budget fight looms, Republicans flip their fiscal script \n", "1 U.S. military to accept transgender recruits on Monday: Pentagon \n", "2 Senior U.S. Republican senator: 'Let Mr. Mueller do his job' \n", "3 FBI Russia probe helped by Australian diplomat tip-off: NYT \n", "4 Trump wants Postal Service to charge 'much more' for Amazon shipments \n", "\n", " text \\\n", "0 WASHINGTON (Reuters) - The head of a conservative Republican faction in the U.S. Congress, who voted this month for a huge expansion of the national debt to pay for tax cuts, called himself a “fiscal conservative” on Sunday and urged budget restraint in 2018. In keeping with a sharp pivot under way among Republicans, U.S. Representative Mark Meadows, speaking on CBS’ “Face the Nation,” drew a hard line on federal spending, which lawmakers are bracing to do battle over in January. When they return from the holidays on Wednesday, lawmakers will begin trying to pass a federal budget in a figh... \n", "1 WASHINGTON (Reuters) - Transgender people will be allowed for the first time to enlist in the U.S. military starting on Monday as ordered by federal courts, the Pentagon said on Friday, after President Donald Trump’s administration decided not to appeal rulings that blocked his transgender ban. Two federal appeals courts, one in Washington and one in Virginia, last week rejected the administration’s request to put on hold orders by lower court judges requiring the military to begin accepting transgender recruits on Jan. 1. A Justice Department official said the administration will not chal... \n", "2 WASHINGTON (Reuters) - The special counsel investigation of links between Russia and President Trump’s 2016 election campaign should continue without interference in 2018, despite calls from some Trump administration allies and Republican lawmakers to shut it down, a prominent Republican senator said on Sunday. Lindsey Graham, who serves on the Senate armed forces and judiciary committees, said Department of Justice Special Counsel Robert Mueller needs to carry on with his Russia investigation without political interference. “This investigation will go forward. It will be an investigation ... \n", "3 WASHINGTON (Reuters) - Trump campaign adviser George Papadopoulos told an Australian diplomat in May 2016 that Russia had political dirt on Democratic presidential candidate Hillary Clinton, the New York Times reported on Saturday. The conversation between Papadopoulos and the diplomat, Alexander Downer, in London was a driving factor behind the FBI’s decision to open a counter-intelligence investigation of Moscow’s contacts with the Trump campaign, the Times reported. Two months after the meeting, Australian officials passed the information that came from Papadopoulos to their American co... \n", "4 SEATTLE/WASHINGTON (Reuters) - President Donald Trump called on the U.S. Postal Service on Friday to charge “much more” to ship packages for Amazon (AMZN.O), picking another fight with an online retail giant he has criticized in the past. “Why is the United States Post Office, which is losing many billions of dollars a year, while charging Amazon and others so little to deliver their packages, making Amazon richer and the Post Office dumber and poorer? Should be charging MUCH MORE!” Trump wrote on Twitter. The president’s tweet drew fresh attention to the fragile finances of the Posta... \n", "\n", " subject date \n", "0 politicsNews December 31, 2017 \n", "1 politicsNews December 29, 2017 \n", "2 politicsNews December 31, 2017 \n", "3 politicsNews December 30, 2017 \n", "4 politicsNews December 29, 2017 " ], "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", "
titletextsubjectdate
0As U.S. budget fight looms, Republicans flip their fiscal scriptWASHINGTON (Reuters) - The head of a conservative Republican faction in the U.S. Congress, who voted this month for a huge expansion of the national debt to pay for tax cuts, called himself a “fiscal conservative” on Sunday and urged budget restraint in 2018. In keeping with a sharp pivot under way among Republicans, U.S. Representative Mark Meadows, speaking on CBS’ “Face the Nation,” drew a hard line on federal spending, which lawmakers are bracing to do battle over in January. When they return from the holidays on Wednesday, lawmakers will begin trying to pass a federal budget in a figh...politicsNewsDecember 31, 2017
1U.S. military to accept transgender recruits on Monday: PentagonWASHINGTON (Reuters) - Transgender people will be allowed for the first time to enlist in the U.S. military starting on Monday as ordered by federal courts, the Pentagon said on Friday, after President Donald Trump’s administration decided not to appeal rulings that blocked his transgender ban. Two federal appeals courts, one in Washington and one in Virginia, last week rejected the administration’s request to put on hold orders by lower court judges requiring the military to begin accepting transgender recruits on Jan. 1. A Justice Department official said the administration will not chal...politicsNewsDecember 29, 2017
2Senior U.S. Republican senator: 'Let Mr. Mueller do his job'WASHINGTON (Reuters) - The special counsel investigation of links between Russia and President Trump’s 2016 election campaign should continue without interference in 2018, despite calls from some Trump administration allies and Republican lawmakers to shut it down, a prominent Republican senator said on Sunday. Lindsey Graham, who serves on the Senate armed forces and judiciary committees, said Department of Justice Special Counsel Robert Mueller needs to carry on with his Russia investigation without political interference. “This investigation will go forward. It will be an investigation ...politicsNewsDecember 31, 2017
3FBI Russia probe helped by Australian diplomat tip-off: NYTWASHINGTON (Reuters) - Trump campaign adviser George Papadopoulos told an Australian diplomat in May 2016 that Russia had political dirt on Democratic presidential candidate Hillary Clinton, the New York Times reported on Saturday. The conversation between Papadopoulos and the diplomat, Alexander Downer, in London was a driving factor behind the FBI’s decision to open a counter-intelligence investigation of Moscow’s contacts with the Trump campaign, the Times reported. Two months after the meeting, Australian officials passed the information that came from Papadopoulos to their American co...politicsNewsDecember 30, 2017
4Trump wants Postal Service to charge 'much more' for Amazon shipmentsSEATTLE/WASHINGTON (Reuters) - President Donald Trump called on the U.S. Postal Service on Friday to charge “much more” to ship packages for Amazon (AMZN.O), picking another fight with an online retail giant he has criticized in the past. “Why is the United States Post Office, which is losing many billions of dollars a year, while charging Amazon and others so little to deliver their packages, making Amazon richer and the Post Office dumber and poorer? Should be charging MUCH MORE!” Trump wrote on Twitter. The president’s tweet drew fresh attention to the fragile finances of the Posta...politicsNewsDecember 29, 2017
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 5 } ] }, { "cell_type": "code", "source": [ "# add is_fake column\n", "true_df['is_fake'] = 0;" ], "metadata": { "id": "aUNnvfVWYZaq" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "fake_df.head()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 511 }, "id": "e-L6MevjYtyS", "outputId": "4648e5f1-465c-4b7f-f826-c98bae45395a" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " title \\\n", "0 Donald Trump Sends Out Embarrassing New Year’s Eve Message; This is Disturbing \n", "1 Drunk Bragging Trump Staffer Started Russian Collusion Investigation \n", "2 Sheriff David Clarke Becomes An Internet Joke For Threatening To Poke People ‘In The Eye’ \n", "3 Trump Is So Obsessed He Even Has Obama’s Name Coded Into His Website (IMAGES) \n", "4 Pope Francis Just Called Out Donald Trump During His Christmas Speech \n", "\n", " text \\\n", "0 Donald Trump just couldn t wish all Americans a Happy New Year and leave it at that. Instead, he had to give a shout out to his enemies, haters and the very dishonest fake news media. The former reality show star had just one job to do and he couldn t do it. As our Country rapidly grows stronger and smarter, I want to wish all of my friends, supporters, enemies, haters, and even the very dishonest Fake News Media, a Happy and Healthy New Year, President Angry Pants tweeted. 2018 will be a great year for America! As our Country rapidly grows stronger and smarter, I want to wish all of m... \n", "1 House Intelligence Committee Chairman Devin Nunes is going to have a bad day. He s been under the assumption, like many of us, that the Christopher Steele-dossier was what prompted the Russia investigation so he s been lashing out at the Department of Justice and the FBI in order to protect Trump. As it happens, the dossier is not what started the investigation, according to documents obtained by the New York Times.Former Trump campaign adviser George Papadopoulos was drunk in a wine bar when he revealed knowledge of Russian opposition research on Hillary Clinton.On top of that, Papadopoul... \n", "2 On Friday, it was revealed that former Milwaukee Sheriff David Clarke, who was being considered for Homeland Security Secretary in Donald Trump s administration, has an email scandal of his own.In January, there was a brief run-in on a plane between Clarke and fellow passenger Dan Black, who he later had detained by the police for no reason whatsoever, except that maybe his feelings were hurt. Clarke messaged the police to stop Black after he deplaned, and now, a search warrant has been executed by the FBI to see the exchanges.Clarke is calling it fake news even though copies of the search... \n", "3 On Christmas day, Donald Trump announced that he would be back to work the following day, but he is golfing for the fourth day in a row. The former reality show star blasted former President Barack Obama for playing golf and now Trump is on track to outpace the number of golf games his predecessor played.Updated my tracker of Trump s appearances at Trump properties.71 rounds of golf including today s. At this pace, he ll pass Obama s first-term total by July 24 next year. https://t.co/Fg7VacxRtJ pic.twitter.com/5gEMcjQTbH Philip Bump (@pbump) December 29, 2017 That makes what a Washingt... \n", "4 Pope Francis used his annual Christmas Day message to rebuke Donald Trump without even mentioning his name. The Pope delivered his message just days after members of the United Nations condemned Trump s move to recognize Jerusalem as the capital of Israel. The Pontiff prayed on Monday for the peaceful coexistence of two states within mutually agreed and internationally recognized borders. We see Jesus in the children of the Middle East who continue to suffer because of growing tensions between Israelis and Palestinians, Francis said. On this festive day, let us ask the Lord for peace fo... \n", "\n", " subject date \n", "0 News December 31, 2017 \n", "1 News December 31, 2017 \n", "2 News December 30, 2017 \n", "3 News December 29, 2017 \n", "4 News December 25, 2017 " ], "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", "
titletextsubjectdate
0Donald Trump Sends Out Embarrassing New Year’s Eve Message; This is DisturbingDonald Trump just couldn t wish all Americans a Happy New Year and leave it at that. Instead, he had to give a shout out to his enemies, haters and the very dishonest fake news media. The former reality show star had just one job to do and he couldn t do it. As our Country rapidly grows stronger and smarter, I want to wish all of my friends, supporters, enemies, haters, and even the very dishonest Fake News Media, a Happy and Healthy New Year, President Angry Pants tweeted. 2018 will be a great year for America! As our Country rapidly grows stronger and smarter, I want to wish all of m...NewsDecember 31, 2017
1Drunk Bragging Trump Staffer Started Russian Collusion InvestigationHouse Intelligence Committee Chairman Devin Nunes is going to have a bad day. He s been under the assumption, like many of us, that the Christopher Steele-dossier was what prompted the Russia investigation so he s been lashing out at the Department of Justice and the FBI in order to protect Trump. As it happens, the dossier is not what started the investigation, according to documents obtained by the New York Times.Former Trump campaign adviser George Papadopoulos was drunk in a wine bar when he revealed knowledge of Russian opposition research on Hillary Clinton.On top of that, Papadopoul...NewsDecember 31, 2017
2Sheriff David Clarke Becomes An Internet Joke For Threatening To Poke People ‘In The Eye’On Friday, it was revealed that former Milwaukee Sheriff David Clarke, who was being considered for Homeland Security Secretary in Donald Trump s administration, has an email scandal of his own.In January, there was a brief run-in on a plane between Clarke and fellow passenger Dan Black, who he later had detained by the police for no reason whatsoever, except that maybe his feelings were hurt. Clarke messaged the police to stop Black after he deplaned, and now, a search warrant has been executed by the FBI to see the exchanges.Clarke is calling it fake news even though copies of the search...NewsDecember 30, 2017
3Trump Is So Obsessed He Even Has Obama’s Name Coded Into His Website (IMAGES)On Christmas day, Donald Trump announced that he would be back to work the following day, but he is golfing for the fourth day in a row. The former reality show star blasted former President Barack Obama for playing golf and now Trump is on track to outpace the number of golf games his predecessor played.Updated my tracker of Trump s appearances at Trump properties.71 rounds of golf including today s. At this pace, he ll pass Obama s first-term total by July 24 next year. https://t.co/Fg7VacxRtJ pic.twitter.com/5gEMcjQTbH Philip Bump (@pbump) December 29, 2017 That makes what a Washingt...NewsDecember 29, 2017
4Pope Francis Just Called Out Donald Trump During His Christmas SpeechPope Francis used his annual Christmas Day message to rebuke Donald Trump without even mentioning his name. The Pope delivered his message just days after members of the United Nations condemned Trump s move to recognize Jerusalem as the capital of Israel. The Pontiff prayed on Monday for the peaceful coexistence of two states within mutually agreed and internationally recognized borders. We see Jesus in the children of the Middle East who continue to suffer because of growing tensions between Israelis and Palestinians, Francis said. On this festive day, let us ask the Lord for peace fo...NewsDecember 25, 2017
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 7 } ] }, { "cell_type": "code", "source": [ "# add is_fake column\n", "fake_df['is_fake'] = 1" ], "metadata": { "id": "asxxr5buYuvv" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "train_df = pd.concat([true_df, fake_df], axis=0) # concat fake_df and true_df\n", "train_df['text'] = train_df['title'] + \" \\n \" + train_df['text'] # concat title and text\n", "train_df.drop(['title', 'subject', 'date'], axis=1)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 815 }, "id": "kG7bVsU4ZCSs", "outputId": "8d83cd3b-3ef7-4c94-d815-e523c0b313d6" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " text \\\n", "0 As U.S. budget fight looms, Republicans flip their fiscal script \\n WASHINGTON (Reuters) - The head of a conservative Republican faction in the U.S. Congress, who voted this month for a huge expansion of the national debt to pay for tax cuts, called himself a “fiscal conservative” on Sunday and urged budget restraint in 2018. In keeping with a sharp pivot under way among Republicans, U.S. Representative Mark Meadows, speaking on CBS’ “Face the Nation,” drew a hard line on federal spending, which lawmakers are bracing to do battle over in January. When they return from the holidays on Wedne... \n", "1 U.S. military to accept transgender recruits on Monday: Pentagon \\n WASHINGTON (Reuters) - Transgender people will be allowed for the first time to enlist in the U.S. military starting on Monday as ordered by federal courts, the Pentagon said on Friday, after President Donald Trump’s administration decided not to appeal rulings that blocked his transgender ban. Two federal appeals courts, one in Washington and one in Virginia, last week rejected the administration’s request to put on hold orders by lower court judges requiring the military to begin accepting transgender recruits on Jan. 1.... \n", "2 Senior U.S. Republican senator: 'Let Mr. Mueller do his job' \\n WASHINGTON (Reuters) - The special counsel investigation of links between Russia and President Trump’s 2016 election campaign should continue without interference in 2018, despite calls from some Trump administration allies and Republican lawmakers to shut it down, a prominent Republican senator said on Sunday. Lindsey Graham, who serves on the Senate armed forces and judiciary committees, said Department of Justice Special Counsel Robert Mueller needs to carry on with his Russia investigation without political interference. “... \n", "3 FBI Russia probe helped by Australian diplomat tip-off: NYT \\n WASHINGTON (Reuters) - Trump campaign adviser George Papadopoulos told an Australian diplomat in May 2016 that Russia had political dirt on Democratic presidential candidate Hillary Clinton, the New York Times reported on Saturday. The conversation between Papadopoulos and the diplomat, Alexander Downer, in London was a driving factor behind the FBI’s decision to open a counter-intelligence investigation of Moscow’s contacts with the Trump campaign, the Times reported. Two months after the meeting, Australian officials passed t... \n", "4 Trump wants Postal Service to charge 'much more' for Amazon shipments \\n SEATTLE/WASHINGTON (Reuters) - President Donald Trump called on the U.S. Postal Service on Friday to charge “much more” to ship packages for Amazon (AMZN.O), picking another fight with an online retail giant he has criticized in the past. “Why is the United States Post Office, which is losing many billions of dollars a year, while charging Amazon and others so little to deliver their packages, making Amazon richer and the Post Office dumber and poorer? Should be charging MUCH MORE!” Trump wrote on Twitter. The pr... \n", "... ... \n", "23476 McPain: John McCain Furious That Iran Treated US Sailors Well \\n 21st Century Wire says As 21WIRE reported earlier this week, the unlikely mishap of two US Naval vessels straying into Iranian waters just hours before the President s State of the Union speech, followed by the usual parade of arch-neocons coming on TV in real time to declare the incident as an act of aggression by Iran against the United States is no mere coincidence.24 hours after the incident, the Iranians returned all 11 US sailors, unharmed and in good spirits. The only remaining casualty from this event was an i... \n", "23477 JUSTICE? Yahoo Settles E-mail Privacy Class-action: $4M for Lawyers, $0 for Users \\n 21st Century Wire says It s a familiar theme. Whenever there is a dispute or a change of law, and two tribes go to war, there is normally only one real winner after the tribulation the lawyers. Ars TechnicaIn late 2013, Yahoo was hit with six lawsuits over its practice of using automated scans of e-mail to produce targeted ads. The cases, which were consolidated in federal court, all argued that the privacy rights of non-Yahoo users, who did not consent to Yahoo s interception and scanning of their email... \n", "23478 Sunnistan: US and Allied ‘Safe Zone’ Plan to Take Territorial Booty in Northern Syria \\n Patrick Henningsen 21st Century WireRemember when the Obama Administration told the world how it hoped to identify 5,000 reliable non-jihadist moderate rebels hanging out in Turkey and Jordan, who might want to fight for Washington in Syria? After all the drama over its infamous train and equip program to create their own Arab army in Syria, they want to give it another try.This week, Pentagon officials announced their new plan to train up to 7,000 more moderate fighters, but this time the proje... \n", "23479 How to Blow $700 Million: Al Jazeera America Finally Calls it Quits \\n 21st Century Wire says Al Jazeera America will go down in history as one of the biggest failures in broadcast media history.Ever since the US and its allies began plotting to overthrow Libya and Syria, Al Jazeera has deteriorated from a promising international news network in 2003 into what it has become in 2016 a full-blown agit prop media shop for the US State Department and the Pentagon. In fact, US Military Central Command (CENTCOM) for the Middle East region is located in Qatar s capital of Doha, conveniently l... \n", "23480 10 U.S. Navy Sailors Held by Iranian Military – Signs of a Neocon Political Stunt \\n 21st Century Wire says As 21WIRE predicted in its new year s look ahead, we have a new hostage crisis underway.Today, Iranian military forces report that two small riverine U.S. Navy boats were seized in Iranian waters, and are currently being held on Iran s Farsi Island in the Persian Gulf. A total of 10 U.S. Navy personnel, nine men and one woman, have been detained by Iranian authorities. NAVY STRAYED: U.S. Navy patrol boat in the Persian Gulf (Image Source: USNI)According to the Pentagon, the initial... \n", "\n", " is_fake \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "... ... \n", "23476 1 \n", "23477 1 \n", "23478 1 \n", "23479 1 \n", "23480 1 \n", "\n", "[44898 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", " \n", "
textis_fake
0As U.S. budget fight looms, Republicans flip their fiscal script \\n WASHINGTON (Reuters) - The head of a conservative Republican faction in the U.S. Congress, who voted this month for a huge expansion of the national debt to pay for tax cuts, called himself a “fiscal conservative” on Sunday and urged budget restraint in 2018. In keeping with a sharp pivot under way among Republicans, U.S. Representative Mark Meadows, speaking on CBS’ “Face the Nation,” drew a hard line on federal spending, which lawmakers are bracing to do battle over in January. When they return from the holidays on Wedne...0
1U.S. military to accept transgender recruits on Monday: Pentagon \\n WASHINGTON (Reuters) - Transgender people will be allowed for the first time to enlist in the U.S. military starting on Monday as ordered by federal courts, the Pentagon said on Friday, after President Donald Trump’s administration decided not to appeal rulings that blocked his transgender ban. Two federal appeals courts, one in Washington and one in Virginia, last week rejected the administration’s request to put on hold orders by lower court judges requiring the military to begin accepting transgender recruits on Jan. 1....0
2Senior U.S. Republican senator: 'Let Mr. Mueller do his job' \\n WASHINGTON (Reuters) - The special counsel investigation of links between Russia and President Trump’s 2016 election campaign should continue without interference in 2018, despite calls from some Trump administration allies and Republican lawmakers to shut it down, a prominent Republican senator said on Sunday. Lindsey Graham, who serves on the Senate armed forces and judiciary committees, said Department of Justice Special Counsel Robert Mueller needs to carry on with his Russia investigation without political interference. “...0
3FBI Russia probe helped by Australian diplomat tip-off: NYT \\n WASHINGTON (Reuters) - Trump campaign adviser George Papadopoulos told an Australian diplomat in May 2016 that Russia had political dirt on Democratic presidential candidate Hillary Clinton, the New York Times reported on Saturday. The conversation between Papadopoulos and the diplomat, Alexander Downer, in London was a driving factor behind the FBI’s decision to open a counter-intelligence investigation of Moscow’s contacts with the Trump campaign, the Times reported. Two months after the meeting, Australian officials passed t...0
4Trump wants Postal Service to charge 'much more' for Amazon shipments \\n SEATTLE/WASHINGTON (Reuters) - President Donald Trump called on the U.S. Postal Service on Friday to charge “much more” to ship packages for Amazon (AMZN.O), picking another fight with an online retail giant he has criticized in the past. “Why is the United States Post Office, which is losing many billions of dollars a year, while charging Amazon and others so little to deliver their packages, making Amazon richer and the Post Office dumber and poorer? Should be charging MUCH MORE!” Trump wrote on Twitter. The pr...0
.........
23476McPain: John McCain Furious That Iran Treated US Sailors Well \\n 21st Century Wire says As 21WIRE reported earlier this week, the unlikely mishap of two US Naval vessels straying into Iranian waters just hours before the President s State of the Union speech, followed by the usual parade of arch-neocons coming on TV in real time to declare the incident as an act of aggression by Iran against the United States is no mere coincidence.24 hours after the incident, the Iranians returned all 11 US sailors, unharmed and in good spirits. The only remaining casualty from this event was an i...1
23477JUSTICE? Yahoo Settles E-mail Privacy Class-action: $4M for Lawyers, $0 for Users \\n 21st Century Wire says It s a familiar theme. Whenever there is a dispute or a change of law, and two tribes go to war, there is normally only one real winner after the tribulation the lawyers. Ars TechnicaIn late 2013, Yahoo was hit with six lawsuits over its practice of using automated scans of e-mail to produce targeted ads. The cases, which were consolidated in federal court, all argued that the privacy rights of non-Yahoo users, who did not consent to Yahoo s interception and scanning of their email...1
23478Sunnistan: US and Allied ‘Safe Zone’ Plan to Take Territorial Booty in Northern Syria \\n Patrick Henningsen 21st Century WireRemember when the Obama Administration told the world how it hoped to identify 5,000 reliable non-jihadist moderate rebels hanging out in Turkey and Jordan, who might want to fight for Washington in Syria? After all the drama over its infamous train and equip program to create their own Arab army in Syria, they want to give it another try.This week, Pentagon officials announced their new plan to train up to 7,000 more moderate fighters, but this time the proje...1
23479How to Blow $700 Million: Al Jazeera America Finally Calls it Quits \\n 21st Century Wire says Al Jazeera America will go down in history as one of the biggest failures in broadcast media history.Ever since the US and its allies began plotting to overthrow Libya and Syria, Al Jazeera has deteriorated from a promising international news network in 2003 into what it has become in 2016 a full-blown agit prop media shop for the US State Department and the Pentagon. In fact, US Military Central Command (CENTCOM) for the Middle East region is located in Qatar s capital of Doha, conveniently l...1
2348010 U.S. Navy Sailors Held by Iranian Military – Signs of a Neocon Political Stunt \\n 21st Century Wire says As 21WIRE predicted in its new year s look ahead, we have a new hostage crisis underway.Today, Iranian military forces report that two small riverine U.S. Navy boats were seized in Iranian waters, and are currently being held on Iran s Farsi Island in the Persian Gulf. A total of 10 U.S. Navy personnel, nine men and one woman, have been detained by Iranian authorities. NAVY STRAYED: U.S. Navy patrol boat in the Persian Gulf (Image Source: USNI)According to the Pentagon, the initial...1
\n", "

44898 rows × 2 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 9 } ] }, { "cell_type": "markdown", "source": [ "# Dataloaders (Language Model)" ], "metadata": { "id": "F4RMi9W4aOiD" } }, { "cell_type": "code", "source": [ "!pip install sentencepiece" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ECWgLnkWkA6-", "outputId": "2bcd2cd0-bcd1-4660-ab06-716dec8167c3" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting sentencepiece\n", " Downloading sentencepiece-0.1.96-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)\n", "\u001b[?25l\r\u001b[K |▎ | 10 kB 20.8 MB/s eta 0:00:01\r\u001b[K |▌ | 20 kB 11.6 MB/s eta 0:00:01\r\u001b[K |▉ | 30 kB 9.4 MB/s eta 0:00:01\r\u001b[K |█ | 40 kB 4.4 MB/s eta 0:00:01\r\u001b[K |█▍ | 51 kB 4.3 MB/s eta 0:00:01\r\u001b[K |█▋ | 61 kB 5.2 MB/s eta 0:00:01\r\u001b[K |██ | 71 kB 5.3 MB/s eta 0:00:01\r\u001b[K |██▏ | 81 kB 5.4 MB/s eta 0:00:01\r\u001b[K |██▍ | 92 kB 6.0 MB/s eta 0:00:01\r\u001b[K |██▊ | 102 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███ | 112 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███▎ | 122 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███▌ | 133 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███▉ | 143 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████ | 153 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████▎ | 163 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████▋ | 174 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████▉ | 184 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████▏ | 194 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████▍ | 204 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████▊ | 215 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████ | 225 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████▏ | 235 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████▌ | 245 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████▊ | 256 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████ | 266 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████▎ | 276 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████▋ | 286 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████▉ | 296 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████ | 307 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████▍ | 317 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████▋ | 327 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████ | 337 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████▏ | 348 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████▌ | 358 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████▊ | 368 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████ | 378 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████▎ | 389 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████▌ | 399 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████▉ | 409 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████ | 419 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████▍ | 430 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████▋ | 440 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████▉ | 450 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████▏ | 460 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████▍ | 471 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████▊ | 481 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████ | 491 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████▎ | 501 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████▌ | 512 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████▊ | 522 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████ | 532 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████▎ | 542 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████▋ | 552 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████▉ | 563 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████▏ | 573 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████▍ | 583 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████▋ | 593 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████ | 604 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████▏ | 614 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████▌ | 624 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████▊ | 634 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████ | 645 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████▎ | 655 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████▌ | 665 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████▉ | 675 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████ | 686 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████▍ | 696 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████▋ | 706 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████ | 716 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████▏ | 727 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████▍ | 737 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████▊ | 747 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████ | 757 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████▎ | 768 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████▌ | 778 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████▉ | 788 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████ | 798 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████▎ | 808 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████▋ | 819 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████▉ | 829 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████▏ | 839 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████▍ | 849 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████▊ | 860 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████ | 870 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████▏ | 880 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████▌ | 890 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████▊ | 901 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████ | 911 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████▎ | 921 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████▋ | 931 kB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████▉ | 942 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████ | 952 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████▍ | 962 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████▋ | 972 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████ | 983 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████▏ | 993 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████▌ | 1.0 MB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████▊ | 1.0 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████ | 1.0 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████▎ | 1.0 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████▌ | 1.0 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████▉ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████████ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████████▍ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████████▋ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████████▉ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▏ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▍ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▊ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████████ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▎ | 1.1 MB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▌ | 1.2 MB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▊ | 1.2 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████████ | 1.2 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▎| 1.2 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▋| 1.2 MB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▉| 1.2 MB 5.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 1.2 MB 5.1 MB/s \n", "\u001b[?25hInstalling collected packages: sentencepiece\n", "Successfully installed sentencepiece-0.1.96\n" ] } ] }, { "cell_type": "code", "source": [ "def get_dls(bs, is_lm=False, seq_len=72, vocab=None):\n", " set_seed(42, reproducible=True)\n", " if is_lm:\n", " dls = DataBlock(\n", " blocks=(TextBlock.from_df('text', is_lm=is_lm, tok=SentencePieceTokenizer())),\n", " get_x=ColReader('text'),\n", " splitter=RandomSplitter(0.1)\n", " ).dataloaders(train_df, bs=bs, seq_len=seq_len)\n", " elif not is_lm and vocab:\n", " dls = DataBlock(\n", " blocks=(TextBlock.from_df('text', vocab=vocab, is_lm=is_lm, tok=SentencePieceTokenizer()), CategoryBlock),\n", " get_x=ColReader('text'),\n", " get_y=ColReader('is_fake'),\n", " splitter=TrainTestSplitter(stratify=train_df['is_fake'])\n", " ).dataloaders(train_df, bs=bs, seq_len=seq_len)\n", " \n", " return dls" ], "metadata": { "id": "eCpjs4dYk7P8" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "dls_lm = get_dls(bs=64, is_lm=True, seq_len=80)" ], "metadata": { "id": "eyztNuegj5UF", "colab": { "base_uri": "https://localhost:8080/", "height": 17 }, "outputId": "8273b637-afc4-40a1-97c3-ebd5d6c9e36d" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "dls_lm.show_batch(max_n=2)" ], "metadata": { "id": "JPLb8J6kllvA", "colab": { "base_uri": "https://localhost:8080/", "height": 407 }, "outputId": "a90f7621-0915-452a-973c-e4f367f6909b" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
texttext_
0▁xxbos ▁xxup ▁u . s . ▁citizen ▁facing ▁subversion ▁charges ▁in ▁xxmaj ▁zimbabwe ▁released ▁from ▁jail ▁xxup ▁harare ▁( reuters ) ▁ - ▁a ▁xxup ▁u . s . ▁citizen ▁accused ▁of ▁attempting ▁to ▁subvert ▁xxmaj ▁president ▁xxmaj ▁robert ▁xxmaj ▁mugabe ▁s ▁government ▁was ▁released ▁from ▁xxmaj ▁zimbabwe ▁s ▁maximum ▁security ▁jail ▁on ▁xxmaj ▁friday , ▁a ▁day ▁after ▁the ▁xxmaj ▁high ▁xxmaj ▁court ▁ordered ▁her ▁to ▁be ▁freed ▁on ▁bail , ▁xxmaj ▁ reuters ▁witnesses ▁said . ▁xxmaj ▁judge▁xxup ▁u . s . ▁citizen ▁facing ▁subversion ▁charges ▁in ▁xxmaj ▁zimbabwe ▁released ▁from ▁jail ▁xxup ▁harare ▁( reuters ) ▁ - ▁a ▁xxup ▁u . s . ▁citizen ▁accused ▁of ▁attempting ▁to ▁subvert ▁xxmaj ▁president ▁xxmaj ▁robert ▁xxmaj ▁mugabe ▁s ▁government ▁was ▁released ▁from ▁xxmaj ▁zimbabwe ▁s ▁maximum ▁security ▁jail ▁on ▁xxmaj ▁friday , ▁a ▁day ▁after ▁the ▁xxmaj ▁high ▁xxmaj ▁court ▁ordered ▁her ▁to ▁be ▁freed ▁on ▁bail , ▁xxmaj ▁ reuters ▁witnesses ▁said . ▁xxmaj ▁judge ▁xxmaj
1▁tensions ▁running ▁high ▁and ▁matters ▁of ▁racial ▁justice ▁becoming ▁an ▁ever ▁more ▁partisan ▁subject , ▁xxmaj ▁trump ▁entered ▁the ▁2016 ▁primary ▁election ▁fully ▁exploiting ▁that ▁tension . ▁xxmaj ▁his ▁rallies ▁have ▁nearly ▁turned ▁into ▁all ▁out ▁race ▁battles , ▁his ▁racist ▁rhetoric ▁is ▁up ▁front ▁and ▁he ▁is ▁unapologetic ▁about ▁that . ▁xxmaj ▁in ▁the ▁segment , ▁xxmaj ▁maddow ▁points ▁towards ▁one ▁of ▁his ▁recent ▁statements ▁involving ▁the ▁judge ▁who ▁ruled ▁against ▁him ▁in ▁a ▁lawsuit ▁over ▁one ▁of ▁xxmaj▁running ▁high ▁and ▁matters ▁of ▁racial ▁justice ▁becoming ▁an ▁ever ▁more ▁partisan ▁subject , ▁xxmaj ▁trump ▁entered ▁the ▁2016 ▁primary ▁election ▁fully ▁exploiting ▁that ▁tension . ▁xxmaj ▁his ▁rallies ▁have ▁nearly ▁turned ▁into ▁all ▁out ▁race ▁battles , ▁his ▁racist ▁rhetoric ▁is ▁up ▁front ▁and ▁he ▁is ▁unapologetic ▁about ▁that . ▁xxmaj ▁in ▁the ▁segment , ▁xxmaj ▁maddow ▁points ▁towards ▁one ▁of ▁his ▁recent ▁statements ▁involving ▁the ▁judge ▁who ▁ruled ▁against ▁him ▁in ▁a ▁lawsuit ▁over ▁one ▁of ▁xxmaj ▁trump
" ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Interpretation Utilies" ], "metadata": { "id": "OhdnwJ3T3dHl" } }, { "cell_type": "code", "source": [ "def get_classification_interpretation(learn):\n", " return ClassificationInterpretation.from_learner(learn)\n", "\n", "def plot_top_losses(interp, k=9, nrows=3):\n", " interp.plot_top_losses(k, nrows=nrows)\n", "\n", "def plot_confusion_matrix(interp, figsize=(12, 12), dpi=60):\n", " interp.plot_confusion_matrix(figsize=figsize, dpi=dpi)\n", "\n", "def print_classification_report(interp):\n", " interp.print_classification_report()" ], "metadata": { "id": "rjsHShpP3hF2" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "# Fine-Tuning the Language Model" ], "metadata": { "id": "aoKj7P7PmDCc" } }, { "cell_type": "code", "source": [ "learn = language_model_learner(\n", " dls_lm, AWD_LSTM, drop_mult=0.3, \n", " metrics=[accuracy, Perplexity()]).to_fp16()" ], "metadata": { "id": "VuUTad1Kl_SZ", "colab": { "base_uri": "https://localhost:8080/", "height": 37 }, "outputId": "be4ea411-6c13-4142-a425-460845086a29" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "
\n", " \n", " 100.00% [105070592/105067061 00:01<00:00]\n", "
\n", " " ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "learn.lr_find()" ], "metadata": { "id": "_aJ8FMDHqZ8t", "colab": { "base_uri": "https://localhost:8080/", "height": 300 }, "outputId": "c45380f5-1e5f-47f7-dc1d-03a767ac8958" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "execute_result", "data": { "text/plain": [ "SuggestedLRs(valley=0.013182567432522774)" ] }, "metadata": {}, "execution_count": 17 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "learn.fit_one_cycle(3, 1e-2, cbs=SaveModelCallback(monitor='valid_loss', fname='awd-lstm-stage-1'))" ], "metadata": { "id": "rVowARmiqN29", "colab": { "base_uri": "https://localhost:8080/", "height": 196 }, "outputId": "f135540b-9179-423d-e4c3-3d856979638e" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "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", "
epochtrain_lossvalid_lossaccuracyperplexitytime
03.8595573.7720700.33537843.4699401:51:30
13.6637793.5586500.35397335.1157611:51:33
23.5526193.4861120.36222132.6587181:51:57
" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Better model found at epoch 0 with valid_loss value: 3.7720696926116943.\n", "Better model found at epoch 1 with valid_loss value: 3.558650016784668.\n", "Better model found at epoch 2 with valid_loss value: 3.486111879348755.\n" ] } ] }, { "cell_type": "code", "source": [ "learn = learn.load('awd-lstm-stage-1')" ], "metadata": { "id": "gTyq2TqTqlos" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "learn.unfreeze()\n", "learn.lr_find()" ], "metadata": { "id": "-llb6RCJqpX4" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "learn.fit_one_cycle(3, lr_max=slice(1e-6, 1e-3), cbs=SaveModelCallback(monitor='valid_loss', fname='awd-lstm-stage-2'))" ], "metadata": { "id": "WE8VR9gQq0vj", "colab": { "base_uri": "https://localhost:8080/", "height": 196 }, "outputId": "abb5721c-fd0b-4708-bbc4-ea0d8dee7b8e" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "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", "
epochtrain_lossvalid_lossaccuracyperplexitytime
03.4004963.4096330.36941330.2541372:08:47
13.3630573.3644470.37469628.9174922:09:32
23.3441053.3544400.37601028.6295602:09:38
" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Better model found at epoch 0 with valid_loss value: 3.409632921218872.\n", "Better model found at epoch 1 with valid_loss value: 3.3644466400146484.\n", "Better model found at epoch 2 with valid_loss value: 3.3544397354125977.\n" ] } ] }, { "cell_type": "code", "source": [ "learn = learn.load('awd-lstm-stage-2')\n", "learn.save_encoder('awd-lstm-finetuned')" ], "metadata": { "id": "g3aQgr7lq7f4" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "# Dataloaders (Classifier)" ], "metadata": { "id": "HE19o2N4rmVl" } }, { "cell_type": "code", "source": [ "dls_clas = get_dls(bs=64, is_lm=False, seq_len=80, vocab=dls_lm.vocab)" ], "metadata": { "id": "S2ONHVdtrusy", "colab": { "base_uri": "https://localhost:8080/", "height": 17 }, "outputId": "33ea44cd-e0b8-4bfc-8e02-bd3af9b859e8" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "dls_clas.show_batch(max_n=3)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 369 }, "id": "BRet8JODwLzB", "outputId": "f78f9eed-4718-4df1-e0f7-70cddfab9c35" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "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", "
textcategory
0▁xxbos ▁xxmaj ▁fed ▁xxmaj ▁up ▁xxmaj ▁republicans ▁xxmaj ▁threaten ▁xxmaj ▁third ▁xxmaj ▁party ▁xxmaj ▁option ▁xxmaj ▁if ▁xxmaj ▁trump ▁xxmaj ▁is ▁xxmaj ▁the ▁xxmaj ▁nominee ▁i ▁ve ▁been ▁saying ▁for ▁a ▁long ▁time ▁now ▁that ▁the ▁xxmaj ▁republican ▁xxmaj ▁party ▁was ▁on ▁the ▁verge ▁of ▁splitting ▁and ▁i ▁was ▁right . ▁xxmaj ▁sort ▁of . ▁i ▁always ▁assumed ▁that ▁the ▁establishment ▁would ▁control ▁the ▁party ▁with ▁an ▁iron ▁fist ▁and ▁the ▁xxmaj ▁tea ▁xxmaj ▁party ▁white ▁supremacists ▁would ▁abandon ▁the ▁xxup ▁gop ▁to ▁form ▁their ▁own ▁xxmaj ▁white ▁xxmaj ▁power ▁party . ▁xxmaj ▁but ▁with ▁the ▁rise ▁of ▁xxmaj ▁donald ▁xxmaj ▁trump , ▁it ▁looks ▁like ▁the ▁establishment ▁is ▁going ▁to ▁abandon ▁the ▁party ▁and ▁run ▁a ▁candidate ▁that ▁s ▁not ▁a ▁raving ▁sociopath : s pur red ▁by ▁xxmaj ▁donald ▁xxup ▁j . ▁xxmaj ▁trump ▁s ▁mounting ▁victories , ▁a ▁small ▁but ▁influential ▁and ▁growing ▁group ▁of ▁conservative ▁leaders1
1▁xxbos ▁xxup ▁another ▁xxup ▁american ▁xxup ▁known ▁xxup ▁wolf ? ▁xxmaj ▁for t ▁xxmaj ▁lauderdale ▁xxmaj ▁shooter ▁xxmaj ▁known ▁to ▁xxup ▁fbi , ▁xxmaj ▁worked ▁for ▁xxmaj ▁security , ▁xxmaj ▁amid ▁xxmaj ▁backdrop ▁of ▁xxmaj ▁mass ▁xxmaj ▁drills ▁xxmaj ▁shawn ▁xxmaj ▁helton ▁21 st ▁xxmaj ▁century ▁wire another ▁shocking ▁active - shoot er ▁incident ▁rocks ▁xxmaj ▁america . ▁xxmaj ▁this ▁time , ▁according ▁to ▁xxmaj ▁florida ▁s ▁xxmaj ▁broward ▁xxmaj ▁county ▁xxmaj ▁sheriff ▁s ▁xxmaj ▁department , ▁ thirteen ▁people ▁were ▁shot , ▁including ▁five ▁dead , ▁after ▁an ▁apparent ▁shooting ▁rampage ▁took ▁place ▁at ▁xxmaj ▁for t ▁xxmaj ▁lauderdale ▁s ▁xxmaj ▁hollywood ▁xxmaj ▁international ▁xxmaj ▁airport ▁yesterday . at ▁the ▁moment , ▁there ▁is ▁still ▁no ▁clear ▁motive ▁for ▁the ▁shooting ▁attack ▁and ▁no ▁evidence ▁linking ▁the ▁suspect ▁to ▁terror . ▁xxmaj ▁however , ▁officials ▁have ▁yet ▁to ▁rule ▁out ▁the ▁possibility ▁of ▁terrorism . the ▁timing ▁of ▁this1
2▁xxbos ▁xxmaj ▁sunni stan : ▁xxup ▁us ▁and ▁xxmaj ▁allied ▁‘ safe ▁xxmaj ▁zone ’ ▁xxmaj ▁plan ▁to ▁xxmaj ▁take ▁xxmaj ▁territorial ▁xxmaj ▁booty ▁in ▁xxmaj ▁northern ▁xxmaj ▁syria ▁xxmaj ▁patrick ▁xxmaj ▁henningsen ▁21 st ▁xxmaj ▁century ▁wire remember ▁when ▁the ▁xxmaj ▁obama ▁xxmaj ▁administration ▁told ▁the ▁world ▁how ▁it ▁hoped ▁to ▁identify ▁5, ▁xxrep ▁3 ▁0 ▁reliable ▁non - jihad ist ▁moderate ▁rebels ▁hanging ▁out ▁in ▁xxmaj ▁turkey ▁and ▁xxmaj ▁jordan , ▁who ▁might ▁want ▁to ▁fight ▁for ▁xxmaj ▁washington ▁in ▁xxmaj ▁syria ? ▁xxmaj ▁after ▁all ▁the ▁drama ▁over ▁its ▁infamous ▁train ▁and ▁equip ▁program ▁to ▁create ▁their ▁own ▁xxmaj ▁arab ▁army ▁in ▁xxmaj ▁syria , ▁they ▁want ▁to ▁give ▁it ▁another ▁try . this ▁week , ▁xxmaj ▁pentagon ▁officials ▁announced ▁their ▁new ▁plan ▁to ▁train ▁up ▁to ▁7, ▁xxrep ▁3 ▁0 ▁more ▁moderate ▁fighters , ▁but ▁this ▁time ▁the ▁project ▁would ▁take ▁place ▁inside ▁xxmaj ▁syria ▁(1
" ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Fine-Tuning the classifier" ], "metadata": { "id": "qgnuBE72wT1x" } }, { "cell_type": "code", "source": [ "learn = text_classifier_learner(dls_clas, AWD_LSTM, drop_mult=0.5, metrics=accuracy).to_fp16()" ], "metadata": { "id": "qxUlPVf1wO1M" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "learn = learn.load_encoder('awd-lstm-finetuned')" ], "metadata": { "id": "kWNvpR-Gw4Kq" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "learn.lr_find()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 300 }, "id": "2yxDw8ycw8iX", "outputId": "e3a6972b-070c-4a6d-9e02-c71c6926b40d" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "execute_result", "data": { "text/plain": [ "SuggestedLRs(valley=0.0020892962347716093)" ] }, "metadata": {}, "execution_count": 24 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd3xV9f3H8dcni5BBWAECAQICSiBhRdyKikUFxaKAiBMVrdtaf9XWWuuo1l0Vq1gVRxWRtoqrroKKOAhLdtgSZggQEiD7+/vjXm3ETMjNyc19Px+PPMg999xz3vcG8uas7zHnHCIiErrCvA4gIiLeUhGIiIQ4FYGISIhTEYiIhDgVgYhIiFMRiIiEuAivA9RV27ZtXUpKitcxRESCyrx583Y45xIrey7oiiAlJYXMzEyvY4iIBBUz21DVc9o1JCIS4lQEIiIhTkUgIhLigu4YgYhIVUpKSsjOzqawsNDrKJ6Jjo4mOTmZyMjIWr9GRSAiTUZ2djbx8fGkpKRgZl7HaXDOOXJzc8nOzqZbt261fp12DYlIk1FYWEibNm1CsgQAzIw2bdrUeYsoZIpge34h73632esYIhJgoVoCPziY9x8yRfDGtxu57rUFbN693+soIiIAxMXFAbB+/Xr69u3rWY6QKYIR/ToC8P7iLR4nEZFG47tp8FhfuKul78/vpnmdyBMhUwTd2sbSp2ML3vlORSAi+H7pv3MD5G0EnO/Pd244pDK47bbbmDRp0o+P77rrLu69915OPfVUBg4cSFpaGm+//Xa1yygrK+PWW2/lyCOPJD09nWeffRaAiy++mLfeeuvH+caPH1/jsmorZIoAYER6RxZt3M3Gnfu8jiIiXvv0big5YFdxyX7f9IM0duxYpk37X5FMmzaNSy65hH//+9/Mnz+fmTNncsstt1DdLYKff/55EhISmDt3LnPnzuW5555j3bp1XH755UyZMgWAvLw85syZw/Dhww86a0UhVgRJALyjg8Yikpddt+m1MGDAALZv387mzZtZtGgRrVq1okOHDvzud78jPT2doUOHsmnTJrZt21blMj766CNefvll+vfvz1FHHUVubi6rVq3ipJNOYtWqVeTk5PD6669z7rnnEhFRP1cAhNR1BJ1bx9C/c0veXbSFa4b08DqOiHgpIdm/W6iS6Ydg9OjRTJ8+na1btzJ27Fj+8Y9/kJOTw7x584iMjCQlJaXa0zudczz55JMMGzbsZ89dfPHFvPrqq0ydOpUXX3zxkHJWFFJbBODbKli2ZQ9rcwq8jiIiXjr1Tohs/tNpkc190w/B2LFjmTp1KtOnT2f06NHk5eXRrl07IiMjmTlzJhs2VDkIKADDhg3jb3/7GyUlJQBkZWWxd+9eAC699FIef/xxAFJTUw8pZ0UhVwTD/buH3tVBY5HQlj4GznoCEjoD5vvzrCd80w9Bnz59yM/Pp1OnTiQlJTF+/HgyMzNJS0vj5Zdf5ogjjqj29VdccQWpqakMHDiQvn37ctVVV1FaWgpA+/bt6d27N5dddtkhZTyQVXfQojHKyMhwh3o/gjHPfMXu/cV8dPNJ9ZRKRBqD5cuX07t3b69jBMy+fftIS0tj/vz5JCQkVDlfZZ+Dmc1zzmVUNn/IbREAjOiXRNa2AlZs3eN1FBGRWvnkk0/o3bs3119/fbUlcDBCsgjOTEuiWUQYz32+zusoIiK1MnToUDZs2MBNN91U78sOySJoG9eMS45N4d8Lslm1Ld/rOCIingrJIgC4+qTDiImK4NGPs7yOIiL1KNiOe9a3g3n/IVsErWOjuPz4bnywZCuLs/O8jiMi9SA6Oprc3NyQLYMf7kcQHR1dp9eF1AVlB7rihG689NV6Hv5oJS9NGOx1HBE5RMnJyWRnZ5OTk+N1FM/8cIeyugjpIoiPjuSaIYfx5/dX8N8V2zj58HYhP5a5SDCLjIys0525xCekiwDg4mNSePHL9UyYkkmb2CgGdW3F8T3bct6gZGKiQv7jEZEQEJIXlB1o+55CPl2xncz1u8jcsJMNuftoExvFFSd056JjuhLXTIUgIsGtugvKVASVyFy/kyf+u5rPs3JoFRPJm1cfQ4928QFdp4hIIOnK4jrKSGnNyxMG8+9rjqWotJynZ6456GXlF5aQk19Uj+lEROqXiqAaA7q0YkxGZ2Ys2szWvKqHja1KWbnjwue/5dgHPuX2f32nG+KISKOkIqjB5cd3o9w5psxZX+fXvvbNBhZt3M0JPRP55/xNDHl4FrdMW8TXa3MpLw+uXXIi0nTpKGgNOreO4Yy+Sfzjmw1cd0qPKg8cl5c7wsL+d+rp9vxCHvxwJcf1aMPzl2SwPb+IZz5bw9RvN/LP+dl0aBHNmWlJdEhoRmm5o7TM0SEhmhN7JtIhoW4Xg4iIHAoVQS1ccUI33lu8hWlzNzLh+J+eo1xW7nj8kyyen72OiSd259qTexAZHsaf31tOUUk594zsi5nRvkU0fzyrD7cOO5yPl23jnUWbeeXr9ZSU/XzLoFf7OIb2bs+VJ3SnVWxUQ71NEQlROmuolkY/M4cteYXM+s0QIsJ9e9RyC4q4cepCZq/eQe+kFizfsofUpBacP7gzd769lBtO6cGvf3F4lcssLCmjrNwRHmZEhBmrcwr4PCuHz7N2MGfNDuKjI7lpaE8uPLorkeHaiyciB8+z00fN7HTgr0A48Hfn3AMHPP8YcLL/YQzQzjnXsrplelUEHy3dysRX5jFqQCc6JEQTHma8mZnNzn3F3DOyD2OP7MJ/lmzljrcWs6OgmC6tY/jo5hOJjgw/qPWt3JrPPe8uY/bqHaS0iSExvhk7CorZUVBEp5bNGZ6WxIh+HenSOoalm/P4em0uWdsKGJ6exJBeibpCWkR+wpMiMLNwIAs4DcgG5gLjnHPLqpj/emCAc25Cdcv1qgjKyx1jnv2KxZvyKCt3lJY7uifG8sT5A+jb6X83idi5t5i/zVrNmWlJDOjS6pDW6Zzj0+XbmfzFWsLNaBMXRZvYKJZu3kPmhl0ANI8MZ39JGQBxzSIoKCplYJeW/Pq0wzmuRxsVgogA3hXBMcBdzrlh/se3Azjn7q9i/jnAH51zH1e3XK+KoDLOOc9+0W7J2897321h4859DEppzdHdWtMyJorp87J58r+r2JJXSGpSC0YN7MTZ/TuSGNeM9bn7+HZdLiu25tM6Joqkls1JSogmv7CEjTv3s3HXPppHhXN6nw7079yyzu+tvNyRX1hKUWnZjwfAE+Ob0Tzq4LaKRKT+eFUE5wGnO+eu8D++CDjKOXddJfN2Bb4Gkp1zZdUttzEVQWNVVFrGm5nZvJm5kUXZeYSZb9jtHQXFwE+3IiqKbxZBYWkZJWWOTi2bM6JfEtec1IOEmMhK11NQVMqUL9fx3uKt7CgoYufeYsoOOC02IsxIT07gqO5tOPnwdgzu1rr+37CI1CgYiuC3+Erg+iqWNRGYCNClS5dBGzZsCEjmpmj19gL+vSCbLbsLGZTSiqO6teGwxFiKSsvZmlfIlrxC4qMj6NwqhoSYSPL2lfDx8m28v3gLn2Xl0CY2ivt+mcZpqe1/XGZBUSmvfr2BZz9bw659JRzdvTXd2sbSOjaKVjFRREeGExFmhIUZa3P28s26XBZn51Fa7hjauz13jkilS5sYwLcVsXJbPrFREXRu3Vy7skQCpNHvGjKzBcC1zrk5NS1XWwQNZ3F2HrdOX8SKrfkMT0+ibWwU87/fzbIteygrdww5PJGbh/aiX+dqj+8DsLeolFe+3sATn66itNxx0dFd2VFQxOxVO8jd69tSad+iGRkprenbMYE2cVG0jomiTVwU3dvGVblVIiK141URROA7WHwqsAnfweILnHNLD5jvCOA/QDdXizAqgoZVXFrO07NW89R/VxMVEUa/5JYM6tqKU3u3O6iD4VvzCvnz+8uZsWgzbeOiOKFnIsf3aMu+kjLmrtvJ3PU72VLJcB6J8c3okRjHeYOSGTWwk7YcROrIy9NHzwQex3f66AvOufvM7G4g0zk3wz/PXUC0c+622ixTReCNgqJSoiPCfryG4lDt2ltMQvPIn1yN/YO9RaXs3FvMrn3FbN9TxNodBazaVsDCjbtZtb2Ao7u35r5fpnFYYly9ZBEJBRqGWpqE8nLH63O/54EPVlBUUs7EE7sz8aTutIjWbiORmmgYamkSwsKM8Ud15dNbTuKMtA48NXM1Jz44k2c+W8P+4mpPNhORaqgIJOi0i4/mr+cP4J3rjqdfckse+GAFQx6eyaKNu72OJhKUVAQStNKSE3hpwmDevPoYoiLCGPfc13yeleN1LJGgoyKQoHdkSmv+efWxdG0Ty4Qpc3l74SavI4kEFRWBNAntWkTzxlVHk5HSihunLuSKl+byxtzvdZtQkVrQ/QikyWgRHcmUywbz2CdZvLtoC58s347ZYob0SuSOEak63VSkCjp9VJok5xwrtubznyVbeeHLdRSWlDHh+G5cf0rPKu8yJ9KU6ToCCWk7Cor4ywcreHNeNs0jw4ltFkFkuBEdGc6ZaR24/PjutNad4KSJUxGIAPO/38WMhZspKi2ntKycnIIiPsvKoXlkOBce3ZWrTzpMhSBNVnVFoG1kCRkDu7Ri4AHjI63als+kmav5+xdrmbNmB29dc1y9DaMhEiz0N15CWs/28Tx+/gCeGDeAJZv2MGXOeq8jiTQ4FYEIMDwtiVOOaMcjH2WRvWuf13FEGpSKQAQwM+4e2QeAO99eSrAdOxM5FCoCEb/kVjHc8ote/HfFdj5YstXrOCINRkUgUsGlx6bQt1ML/jhjKbkFuipZQoOKQKSCiPAwHjy3H3n7S7jlzUWUl2sXkTR9KgKRA6R2bMEfRqQya2UOk79Y63UckYBTEYhU4sKjunBmWgce+nAl8zbs9DqOSECpCEQqYWY8cG46HVtGc8PrC9m9r9jrSCIBoyIQqUKL6EieGjeQ7fmF3Dr9O51SKk2WikCkGv06t+S2M3rz8bJtvPjleq/jiASEikCkBhOOS2Fo7/bc/8FyvsvWfZGl6VERiNTAzHh4dDqJcc247rUF7Cks8TqSSL1SEYjUQsuYKJ68YACbdu/ntzpeIE2MikCklgZ1bc1vTz+cD5Zs5fnZ67yOI1JvVAQidXDlCd0Z1qc9D3ywgsz1ur5AmgYVgUgdmBkPje5HcqvmXPvafHZoPCJpAlQEInXUIjqSv104iLz9JVzzj/nsLy7zOpLIIVERiByE3kkt+Mu56cxdv5PLX5qrMpCgpiIQOUgj+3fi0TH9+HptLpdN+Za9RaVeRxI5KCoCkUPwywHJPDa2P9+u28llL86lsERbBhJ8VAQih2hk/0789fwBfLt+J3+btcbrOCJ1FtAiMLPTzWylma02s9uqmGeMmS0zs6Vm9log84gEyln9OnJ2v44889kaNu7c53UckToJWBGYWTgwCTgDSAXGmVnqAfP0BG4HjnPO9QFuClQekUC7/cwjCDPjvveWex1FpE4CuUUwGFjtnFvrnCsGpgIjD5jnSmCSc24XgHNuewDziARUUkJzrjulB/9ZupXZq3Z4HUek1gJZBJ2AjRUeZ/unVdQL6GVmX5rZ12Z2egDziATc5cd3o0vrGP70zlJKysq9jiNSK14fLI4AegJDgHHAc2bW8sCZzGyimWWaWWZOTk4DRxSpvejIcO4Y3ptV2wt46r+rvY4jUiuBLIJNQOcKj5P90yrKBmY450qcc+uALHzF8BPOucnOuQznXEZiYmLAAovUh9NS2/PLAZ3466ereEGD00kQCGQRzAV6mlk3M4sCzgdmHDDPW/i2BjCztvh2Fa0NYCaRgDMzHjwvnWF92nP3u8t47ZvvvY4kUq2AFYFzrhS4DvgQWA5Mc84tNbO7zexs/2wfArlmtgyYCdzqnMsNVCaRhhIZHsaT4wZy8uGJ/P6txfxrfrbXkUSqZMF2g42MjAyXmZnpdQyRWiksKWPClLlkrt/F29cdR++kFl5HkhBlZvOccxmVPef1wWKRJi06Mpwnxw0gISaSG6cu0BAU0iipCEQCrE1cMx4e3Y+sbQXc/74uNpPGR0Ug0gBO6pXIhOO68dJXG5i5QtdNSuOiIhBpIP93+uEc0SGeW6cvYtfeYq/jiPxIRSDSQKIjw3lsbH927SvhkY9Xeh1H5EcqApEG1DupBRcd3ZXXvvmepZvzvI4jAqgIRBrczUN70TImij/NWEawnb4tTZOKQKSBJcREcuuww/l2/U7e+W6L13FEVAQiXhiT0Zm+nVpw//vL2Vesex2Lt1QEIh4IDzP+dHYftuQVcsdbSygv1y4i8Y6KQMQjg7q25ten9eJf8zdx3/vLdbxAPBPhdQCRUHb9KT3YubeY52evo1VMJNed8rNR2EUCTkUg4iEz484RqeTtL+Hhj7JoE9eMcYO7eB1LQox2DYl4LCzMd/+CE3q25e53lrFtT6HXkSTEqAhEGoHI8DDuPacvZeWOhz/UVcfSsFQEIo1E1zaxXHpcCtPnZ7Nkk646loZTqyIws1gzC/N/38vMzjazyMBGEwk9157cg5bNI7nvPZ1FJA2ntlsEnwPRZtYJ+Ai4CJgSqFAioSqheSQ3n9aLr9bm8slyDVctDaO2RWDOuX3AKOBp59xooE/gYomErnGDu3BYYix/fn85e4t01bEEXq2LwMyOAcYD7/mnhQcmkkhoiwwP4+6Rffl+5z6uemUeRaW6vaUEVm2L4CbgduDfzrmlZtYdmBm4WCKh7bgebfnLuenMXr2DG19fSGlZudeRpAmr1QVlzrnPgM8A/AeNdzjnbghkMJFQd96gZPbsL+Hud5dx+78W8+B56ZiZ17GkCartWUOvmVkLM4sFlgDLzOzWwEYTkQnHd+OGU3vy5rxspsxZ73UcaaJqu2so1Tm3BzgH+ADohu/MIREJsJuH9uSEnm159OMscguKvI4jTVBtiyDSf93AOcAM51wJoJOcRRqAmfHHs1LZX1zGwx/pqmOpf7UddO5ZYD2wCPjczLoCewIVSkR+qke7eC45NoUdX71C8drziSrYDAnJcOqdkD7G63gS5Gp7sPgJ4IkKkzaY2cmBiSQilbmlwyIs8u9EFRT7JuRthHf852yoDOQQ1PZgcYKZPWpmmf6vR4DYAGcTkQpivriP5hT/dGLJfvj0bm8CSZNR22MELwD5wBj/1x7gxUCFEpFK5GXXbbpILdX2GMFhzrlzKzz+k5ktDEQgEalCQrJvd1Bl00UOQW23CPab2fE/PDCz44D9gYkkIpU69U6IbP6TScXWDHfqnR4FkqaitlsEVwMvm1mC//Eu4JLARBKRSv1wQPjTuyEvmz3N2nNH/igy9g7mYm+TSZCr1RaBc26Rc64fkA6kO+cGAKfU9DozO93MVprZajO7rZLnLzWzHDNb6P+6os7vQCSUpI+Bm5fAXbuJ++0K9vYaxd3vLGPOmh1eJ5MgVqc7lDnn9vivMAb4dXXzmlk4MAk4A0gFxplZaiWzvuGc6+//+ntd8oiEsrAw47Hz+9OtbSy/enU+a3MKvI4kQepQblVZ0+hXg4HVzrm1zrliYCow8hDWJyIHaBEdyQuXHklEmDFhylx27S2u+UUiBziUIqhpiIlOQMVTHLL90w50rpl9Z2bTzaxzZQsys4k/XMOQk5NzkHFFmqbOrWOYfPEgNucVcvWr8ygu1ZDVUjfVFoGZ5ZvZnkq+8oGO9bD+d4AU51w68DHwUmUzOecmO+cynHMZiYmJ9bBakaZlUNfWPHReOt+s28kjGo9I6qjaInDOxTvnWlTyFe+cq+mMo01Axf/hJ/unVVx+rnPuh+EU/w4MqusbEBGfkf07Mf6oLkz+Yq0OHkudHMquoZrMBXqaWTcziwLOB2ZUnMHMkio8PBtYHsA8Ik3e74f3JqVNLL+Ztoi8/SVex5EgEbAicM6VAtcBH+L7BT/Nf5vLu83sbP9sN5jZUjNbBNwAXBqoPCKhICYqgsfH9mdbfhF3vr3E6zgSJMy54LqtQEZGhsvMzPQ6hkij9sSnq3j04yweG9uPXw7QEBQCZjbPOZdR2XOB3DUkIh65ZshhHJnSitv/tZjvsnd7HUcaORWBSBMUER7G3y4cRJvYZlz5ciZb8wq9jiSNmIpApIlqG9eMv1+SQUFhKRNfyWR/cZnXkaSRUhGINGG9k1rw1/MHsHhTHr95cxFl5cF1TFAahopApIkbmtqe353Rm/cWb+GOt5YQbCeISODVdhhqEQliV57YnV37inl61hrimoXzuzN7Y1bTcGESKlQEIiHi1mGHU1BUynNfrCM+OpIbTu3pdSRpJFQEIiHCzLjrrD4UFJXy6MdZxESFc8UJ3b2OJY2AikAkhISFGQ+em05hSRn3vrecZhFhXHRMitexxGMqApEQExEexuNjB1BcOo8/vL2UZpHhjMmodAR4CRE6a0gkBEVFhPHUBQM5oWdbfvvP7/jPki1eRxIPqQhEQlR0ZDiTL8ogPbkl/zf9O119HMJUBCIhrHlUOI+P7U9JmePW6Yt0jUGIUhGIhLhubWP53fDefLFqB69+vcHrOOIBFYGIcOFRXTixVyL3vb+cdTv2eh1HGpiKQEQw851W2iwinBunLtAAdSFGRSAiAHRIiObh0f1YvCmPm95YoAHqQoiKQER+dFpqe/4wPJUPl27j3veWeR1HGoguKBORn5hwfDc27trHi1+up3OrGCYc383rSBJgKgIR+Zk7hqeyadd+7nlvGT3axXFir0SvI0kAadeQiPxMeJjx+Pn96dkujpveWKiLzZo4FYGIVComKoKnxw+ksKSM61+fT2lZudeRJEBUBCJSpR7t4rl/VBpz1+/i4Y+yvI4jAaIiEJFqjezfiQuO6sIzn63h0+XbvI4jAaAiEJEa3TkildSkFtzy5iI2797vdRypZyoCEalRdGQ4k8YPpKS0nOtfX0CJjhc0KSoCEamVbm1j+fOoNOZt2MUjOl7QpKgIRKTWRvbvxLjBvuMFM1du9zqO1BMVgYjUyR/PSuWIDvHc/MZCvs/d53UcqQcqAhGpk+jIcJ69aBDOwcRXMtlbVOp1JDlEKgIRqbOubWJ5ctwAsrbl685mTYCKQEQOyom9ErntjCN4f/FWJs1c7XUcOQQBLQIzO93MVprZajO7rZr5zjUzZ2YZgcwjIvXryhO6c07/jjzycRYzV+jgcbAKWBGYWTgwCTgDSAXGmVlqJfPFAzcC3wQqi4gEhplx/6h0endowY1TF7Bet7kMSoHcIhgMrHbOrXXOFQNTgZGVzHcP8BdAwxuKBKHmUb6Dx2FhxtWvzmNfsQ4eB5tAFkEnYGOFx9n+aT8ys4FAZ+fce9UtyMwmmlmmmWXm5OTUf1IROSSdW8fwxPm+g8f/N/07HTwOMp4dLDazMOBR4Jaa5nXOTXbOZTjnMhITdYMMkcboxF6J/GbY4bz73Rae/Xyt13GkDgJZBJuAzhUeJ/un/SAe6AvMMrP1wNHADB0wFglevzrpMEakJ/GX/6zg42UaqTRYBLII5gI9zaybmUUB5wMzfnjSOZfnnGvrnEtxzqUAXwNnO+cyA5hJRALIzHh4dD/SOiVw09QFLN+yx+tIUgsBKwLnXClwHfAhsByY5pxbamZ3m9nZgVqviHgrOjKc5y7OIC46giteymRHQZHXkaQGFmwHdTIyMlxmpjYaRBq777J3M+bZrzi8fTyvXnEU8dGRXkcKaWY2zzlX6a53XVksIgGRntySp8YNZOnmPVz24lyNSdSIqQhEJGCGprbniXEDWLBxN5e/NJf9xWU/m6e83HHPu8t4Y+73HiQUgAivA4hI03ZmWhIlZeXc9MZCJr6SyXMXZxAdGf7j85O/WMvzs9cBEB8dyZlpSV5FDVnaIhCRgBvZvxMPnpvO7NU7uOqVeRSW+LYM5m3YyUMfruT0Ph3I6NqKm99YyLwNuzxOG3pUBCLSIEZndOYvo9L5LCuHq1+dx9a8Qq57bQGdWjbnwdHpTL44g6SEaK58OZMNuRqzqCGpCESkwYw5sjN/OTeNWStzOPWRWeQWFDPpgoG0iI6kdWwUL142GOccl704l117i72OGzJUBCLSoMYe2YUHRqVRWFrOHSN6k5ac8ONz3drG8tzFGWTv3s8VL2f+uAtJAkvXEYiIJ/YWlRLbrPLzVT5YvIVrXpvPL1Lb8/T4QYSHWQOna3p0HYGINDpVlQDAGWlJ/GF4Kh8u3cY97y7TaKYBptNHRaRRmnB8Nzbt3s/zs9exo6CI+85JIyFGVycHgopARBqt35/Zm9axUTz2cRbzN+zi0bH9Obp7G69jNTnaNSQijVZYmHHtyT2Y/qtjiYoIY9xzX/Oc7nVQ71QEItLo9e/ckvduOIEz+nbgvveX88xna7yO1KRo15CIBIXYZhE8cf4AwsMW8cAHKwC4+qTDPE7VNKgIRCRoRISH8diYfgA88MEKSkrLufbkHoTp9NJDoiIQkaDyQxmEGTzycRZfrc3lodH96NSyudfRgpaOEYhI0IkID+Pxsf25f1Qaizbu5vTHPmf6vGxdb3CQVAQiEpTMjHGDu/DBjSdyRFI8v3lzEaOf+YoF32v00rpSEYhIUOvSJoapE4/h/lFprM/dxy+fnsP1ry9ge36h19GChopARIJeeJhv62DWrUO4/pQefLR0K6Of+YrsXfu8jhYUVAQi0mTENYvgll8czusTj2bX3mLGPPMV63fo3gY1URGISJMzsEsrXrvyaPaXlDHm2a/I2pbvdaRGTUUgIk1S304JvHHVMTjg7Kdm89R/V1FU2rjvb/D12lz+OS+b0rLyBl2vikBEmqxe7eOZcd1xnHJEOx7+KIthj33OZ1k5XseqVEFRKdf8Yz63vLmIXzz+OR8u3dpgp8OqCESkSUtKaM7T4wfx8oTBhJlxyQvfcv3rC8jJL/I62k9M+XIdO/cWc9sZR2DAVa/M4+ynvuTed5fxZuZGlmzKC9gd23SHMhEJGUWlZTwzay2TZq4mOjKM3w/vzZiMzph5O0RF3r4Sjn/wvxzVrQ1/vySD0rJypmVmM3Xu96zcmk9RqW9X0Z0jUplwfLeDWkd1dyhTEYhIyFm9vYDf/Xsx367byUm9Enl4dD8S45t5luehD1fw9Kw1vH/DCfROamYzq3cAAAtRSURBVPGT58rKHetz97JiSz59O7Wga5vYg1qHblUpIlJBj3ZxTL3yaO4Z2Yev1+Zyxl8/Z+aK7Z5k2VFQxItfrmdEeseflQD4rpE4LDGO4elJB10CNVERiEhICgszLjomhXeuP562cc24bMpc7n9/OeXlDbuX5OmZaygsKeOmoT0bdL0VqQhEJKT1ah/PW9cex/ijuvDs52u5edpCiksb5vTN/MISXv1mA6MGJnNYYlyDrLMyGoZaREJedGQ4957Tl44tm/PQhyvZubeYZy4cRGyzwP6K/HJ1LsWl5Zw3KDmg66lJQLcIzOx0M1tpZqvN7LZKnr/azBab2UIzm21mqYHMIyJSFTPf/ZEfPDedOWtyGTv5K1ZvD+wVyZ9lbSe+WQSDurYK6HpqErAiMLNwYBJwBpAKjKvkF/1rzrk051x/4EHg0UDlERGpjTFHdmbyRYPI3rWfM/86m0kzV1MSgCt9nXPMXJHDcT3aEhnu7V76QK59MLDaObfWOVcMTAVGVpzBObenwsNYILjOZRWRJunU3u35+OaTOK1Pex76cCUjn/qSZZv31PzCOli5LZ+tewo5+YjEel3uwQjkDrBOwMYKj7OBow6cycyuBX4NRAGnBDCPiEitJcY3Y9IFAzm731bueGsJIyfN5sZTe3L1SYcRER7G97n7eOXr9WRtK+CwxDh6tY+jT8cE+nZqUasL1Gat9A11cVKvdoF+KzXy/GCxc24SMMnMLgDuAC45cB4zmwhMBOjSpUvDBhSRkDasTwcGp7TmD28v4eGPsvh4+XbaxEYxc+V2wszo2S6Ob9blUlji2300elAy95zTl+jI8GqXO3PFdnontaBDQnRDvI1qBbIINgGdKzxO9k+rylTgb5U94ZybDEwG35XF9RVQRKQ2WsVG8dQFAxnWZzN/eHsJm3fv5/pTenLB4C50SIimvNyxcdc+3szM5qmZq1m5LZ9nLhxEx5bNK13ensIS5m3YxZUndm/gd1K5QBbBXKCnmXXDVwDnAxdUnMHMejrnVvkfDgdWISLSSJ3VryNnpiXhnCOiwgHesDCja5tYfjPscNKTE/j1tEWc9eRszhuUTHx0BPHRkaQnJzCgi+/soC9X7aC03DGkl/fHByCAReCcKzWz64APgXDgBefcUjO7G8h0zs0ArjOzoUAJsItKdguJiDQm4WEGVH0M4Bd9OvDWtXH8etpCXpyz/seL08zgttOPYOKJ3Zm1Mof46AgGenza6A806JyISAAVlZaRt6+EP72zjPcWb2HUwE58uXoHg7q24unxgxosR3WDznl+sFhEpClrFhFOuxbhPDluAD3bx/H4J7494EMO9/5soR+oCEREGkBYmHHT0F70bBfP1Lnfc1rv9l5H+pGKQESkAQ1PT2J4epLXMX5Co4+KiIQ4FYGISIhTEYiIhDgVgYhIiFMRiIiEOBWBiEiIUxGIiIQ4FYGISIgLurGGzCwH2OB/mADkVfP9gX+2BXbUcZUVl1ub5w6cVlPGyvLWNWddMx5MzkBmrOr5hs5YU866ZqwsW2XTmuLP+2ByHmzGH6ZFepyxumyN4d9OS+dc5cOdOueC9guYXN33lfyZeSjrqM1zB06rKWN95KxrxoPJGciM9fVZNrafd2WZQuXnXd+fZXUZf/je64xe/LwPNueBX8G+a+idGr4/8M9DXUdtnjtwWk0ZK35/sDnrmrGy6YH+LGt6XX18lo3t513xcaj9vGt6bX3+vGtaV3WC/edd1fM15fyJoNs1dCjMLNNVMQxrYxIMOZWx/gRDTmWsP40xZ7BvEdTVZK8D1FIw5FTG+hMMOZWx/jS6nCG1RSAiIj8XalsEIiJyABWBiEiIUxGIiIQ4FYGfmZ1gZs+Y2d/NbI7XeSpjZmFmdp+ZPWlml3idpypmNsTMvvB/nkO8zlMVM4s1s0wzG+F1lsqYWW//ZzjdzH7ldZ6qmNk5Zvacmb1hZr/wOk9lzKy7mT1vZtO9zlKR/+/gS/7Pb7xXOZpEEZjZC2a23cyWHDD9dDNbaWarzey26pbhnPvCOXc18C7wUmPMCIwEkoESILu+M9ZjTgcUANGByFlPGQF+C0yr73z1ldE5t9z/d3IMcFwjzvmWc+5K4GpgbCPNuNY5d3l9Z6tMHfOOAqb7P7+zGyJfpep6JV5j/AJOBAYCSypMCwfWAN2BKGARkAqk4ftlX/GrXYXXTQPiG2NG4DbgKv9rpzfWzxII87+uPfCPRprxNOB84FJgRGPM6H/N2cAHwAWN9edd4XWPAAMbecaA/Ls5hLy3A/3987wW6GxVfTWJm9c75z43s5QDJg8GVjvn1gKY2VRgpHPufqDSXQFm1gXIc87lN8aMZpYNFPsfltV3xvrKWcEuoFljzOjfZRWL7x/jfjN73zlX3pgy+pczA5hhZu8Br9VXvvrMaWYGPAB84Jyb3xgzNqS65MW3xZwMLMTDPTRNogiq0AnYWOFxNnBUDa+5HHgxYIl+rq4Z/wU8aWYnAJ8HMtgB6pTTzEYBw4CWwFOBjfajOmV0zv0ewMwuBXbUZwlUo66f4xB8uw6aAe8HNNlP1fXv5fXAUCDBzHo4554JZDi/un6WbYD7gAFmdru/MBpSVXmfAJ4ys+Ec2nAeh6QpF0GdOef+6HWG6jjn9uErq0bNOfcvfKXV6DnnpnidoSrOuVnALI9j1Mg59wS+X2iNlnMuF98xjEbFObcXuMzrHE3iYHEVNgGdKzxO9k9rTIIhIwRHTmWsP8GQMxgyVtSo8zblIpgL9DSzbmYWhe/A4AyPMx0oGDJCcORUxvoTDDmDIWNFjTuvV0ep6/ko/evAFv53WuXl/ulnAln4jtb/XhmbRk5lDK2cwZAxmPM65zTonIhIqGvKu4ZERKQWVAQiIiFORSAiEuJUBCIiIU5FICIS4lQEIiIhTkUgTYKZFTTw+urlnhXmu3dDnpktNLMVZvZwLV5zjpml1sf6RUBFIFIpM6t2HC7n3LH1uLovnHP9gQHACDOr6d4D5+AbNVWkXqgIpMkys8PM7D9mNs98d0w7wj/9LDP7xswWmNknZtbeP/0uM3vFzL4EXvE/fsHMZpnZWjO7ocKyC/x/DvE/P93/P/p/+IdlxszO9E+bZ2ZPmNm71eV1zu3HNxxxJ//rrzSzuWa2yMz+aWYxZnYsvnsUPOTfijisqvcpUlsqAmnKJgPXO+cGAb8BnvZPnw0c7ZwbAEwF/q/Ca1KBoc65cf7HR+AbUnsw8Eczi6xkPQOAm/yv7Q4cZ2bRwLPAGf71J9YU1sxaAT353xDj/3LOHemc6wcsxzdUwRx8Y9Tc6pzr75xbU837FKkVDUMtTZKZxQHHAm/6/4MO/7tJTjLwhpkl4btb1LoKL53h/5/5D95zzhUBRWa2Hd9d1w68/ea3zrls/3oXAin4btW51jn3w7JfByZWEfcEM1uErwQed85t9U/va2b34ruvQxzwYR3fp0itqAikqQoDdvv3vR/oSeBR59wM/81f7qrw3N4D5i2q8H0Zlf+bqc081fnCOTfCzLoBX5vZNOfcQmAKcI5zbpH/BjpDKnltde9TpFa0a0iaJOfcHmCdmY0G3+0Uzayf/+kE/jcW/CUBirAS6F7hloU13tTdv/XwAPBb/6R4YIt/d9T4CrPm+5+r6X2K1IqKQJqKGDPLrvD1a3y/PC/373ZZiu8eseDbAnjTzOYBOwIRxr976RrgP/715AN5tXjpM8CJ/gL5A/AN8CWwosI8U4Fb/Qe7D6Pq9ylSKxqGWiRAzCzOOVfgP4toErDKOfeY17lEDqQtApHAudJ/8Hgpvt1Rz3qcR6RS2iIQEQlx2iIQEQlxKgIRkRCnIhARCXEqAhGREKciEBEJcSoCEZEQ9/9GkhSeWIjZcwAAAABJRU5ErkJggg==\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "learn.fit_one_cycle(1, 1e-3, cbs=SaveModelCallback(monitor='valid_loss', fname='awd-lstm-text-classifier-stage-1'))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 98 }, "id": "snmMVgKlw-3K", "outputId": "24db1099-dd9b-4a67-a8a8-e9a9e55691fe" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracytime
00.0692850.0064990.99877518:34
" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Better model found at epoch 0 with valid_loss value: 0.006499091163277626.\n" ] } ] }, { "cell_type": "code", "source": [ "# freeze all except the last two parameter groups and finetune\n", "learn.freeze_to(-2)\n", "learn.fit_one_cycle(1, lr_max=slice(1e-2/(2.6**4),1e-2), cbs=SaveModelCallback(monitor='valid_loss', fname='awd-lstm-text-classifier-stage-2'))" ], "metadata": { "id": "uNPytEaGxEQ5", "colab": { "base_uri": "https://localhost:8080/", "height": 98 }, "outputId": "ffe49e2e-c202-4278-c68e-6f6cf3514f66" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracytime
00.0327140.0069110.99699323:17
" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Better model found at epoch 0 with valid_loss value: 0.006911424454301596.\n" ] } ] }, { "cell_type": "code", "source": [ "# freeze all except the last three parameter groups and finetune\n", "learn.freeze_to(-3)\n", "learn.fit_one_cycle(1, lr_max=slice(5e-3/(2.6**4),5e-3), cbs=SaveModelCallback(monitor='valid_loss', fname='awd-lstm-text-classifier-stage-3'))" ], "metadata": { "id": "kzbXMWQ2xXgz", "colab": { "base_uri": "https://localhost:8080/", "height": 98 }, "outputId": "51d5d48d-91cb-47f1-9f3a-942c233d9b9c" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracytime
00.0202880.0010730.99944338:31
" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Better model found at epoch 0 with valid_loss value: 0.0010730033973231912.\n" ] } ] }, { "cell_type": "code", "source": [ "# freeze the whole model and finetune\n", "learn.load('awd-lstm-text-classifier-stage-3')\n", "learn.unfreeze()\n", "learn.fit_one_cycle(2, lr_max=slice(1e-3/(2.6**4),1e-3), cbs=SaveModelCallback(monitor='valid_loss', fname='awd-lstm-text-classifier-stage-4'))" ], "metadata": { "id": "RGpeZWEsxmOy", "colab": { "base_uri": "https://localhost:8080/", "height": 147 }, "outputId": "0714d548-7765-441b-ee37-6f2a6d8e2527" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "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", "
epochtrain_lossvalid_lossaccuracytime
00.0136140.0008110.99988905:46
10.0106490.0007550.99955504:57
" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Better model found at epoch 0 with valid_loss value: 0.0008106339373625815.\n", "Better model found at epoch 1 with valid_loss value: 0.0007553881732746959.\n" ] } ] }, { "cell_type": "code", "source": [ "learn = learn.load('awd-lstm-text-classifier-stage-4')\n", "learn.show_results()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "Jh3QaBZg3N8S", "outputId": "30a637b1-6bfd-4c79-bdd3-b12785f88289" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "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", "
textcategorycategory_
0▁xxbos ▁xxup ▁media ▁xxup ▁trip wire ? ▁xxmaj ▁ ping ▁xxmaj ▁p ong ▁xxmaj ▁pizza ▁xxmaj ▁conspiracy ▁xxmaj ▁propel s ▁xxmaj ▁internet ▁xxmaj ▁censorship ▁xxmaj ▁amid ▁‘ fake ▁xxmaj ▁news ’ ▁witch - hunt ▁xxmaj ▁funny ▁how ▁secrets ▁travel . ▁i ▁d ▁start ▁to ▁believe , ▁if ▁i ▁were ▁to ▁bleed . ▁xxmaj ▁lyrics ▁written ▁by ▁xxmaj ▁david ▁xxmaj ▁bowie ▁from ▁the ▁album ▁outside shawn ▁xxmaj ▁helton ▁21 st ▁xxmaj ▁century ▁xxmaj ▁wire ▁xxmaj ▁in ▁the ▁days ▁before ▁the ▁xxup ▁us ▁presidential ▁election ▁in ▁xxmaj ▁november ▁2016, ▁xxmaj ▁wikileaks ▁revealed ▁a ▁new ▁string ▁of ▁emails ▁connected ▁to ▁xxmaj ▁hillary ▁xxmaj ▁clinton ▁s ▁2016 ▁campaign ▁chairman , ▁xxmaj ▁john ▁xxmaj ▁podesta . ▁xxmaj ▁online ▁interpretation s ▁of ▁the ▁leaked ▁xxmaj ▁podesta ▁email ▁exchanges ▁subsequently ▁led ▁to ▁a ▁digital ▁firestorm ▁on ▁social ▁media , ▁producing ▁an ▁intense ▁ conspirator ial ▁open ▁source ▁investigation ▁still ▁in ▁search ▁of ▁its ▁smoking ▁gun . ▁xxmaj11
1▁xxbos ▁xxmaj ▁stephen ▁xxmaj ▁colbert ▁xxmaj ▁gets ▁xxmaj ▁donald ▁xxmaj ▁ rumsfeld ▁xxmaj ▁to ▁xxmaj ▁admit ▁xxmaj ▁the ▁xxmaj ▁iraq ▁xxmaj ▁war ▁xxmaj ▁was ▁xxmaj ▁all ▁a ▁xxmaj ▁lie ▁( video ) ▁xxmaj ▁donald ▁xxmaj ▁ rumsfeld ▁is ▁in ▁full ▁damage ▁control ▁mode ▁after ▁a ▁declassified ▁memo ▁from ▁2002 ▁making ▁the ▁rounds ▁revealed ▁that ▁he ▁lied ▁about ▁xxmaj ▁iraq ▁s ▁wmd s . ▁xxmaj ▁like ▁anyone ▁desperate ▁to ▁sway ▁public ▁opinion ▁and ▁keep ▁himself ▁out ▁of ▁jail , ▁xxmaj ▁ rumsfeld ▁is ▁giving ▁interviews ▁to ▁tell ▁his ▁side . ▁xxmaj ▁why ▁he ▁decided ▁to ▁go ▁xxmaj ▁the ▁xxmaj ▁late ▁xxmaj ▁show ▁with ▁xxmaj ▁stephen ▁xxmaj ▁colbert ▁is ▁unclear . ▁xxmaj ▁colbert ▁is ▁a ▁screaming ▁liberal , ▁very ▁smart ▁and ▁very ▁well - informed . ▁xxmaj ▁perhaps ▁xxmaj ▁ rumsfeld ▁thought ▁he ▁could ▁out man eu ver ▁the ▁comedian ? ▁xxmaj ▁maybe ▁he ▁thought ▁xxmaj ▁colbert ▁would ▁go ▁easy ▁on ▁him11
2▁xxbos ▁xxup ▁year ▁xxup ▁in ▁xxup ▁review : ▁2017 ▁xxmaj ▁top ▁xxmaj ▁ten ▁xxmaj ▁conspiracies ▁xxmaj ▁patrick ▁xxmaj ▁henningsen ▁and ▁xxmaj ▁shawn ▁xxmaj ▁helton ▁21 st ▁xxmaj ▁century ▁wire once ▁again , ▁we ▁ve ▁arrived ▁at ▁our ▁xxmaj ▁new ▁xxmaj ▁years ▁xxmaj ▁eve ▁wrap - up ▁of ▁some ▁of ▁the ▁most ▁compelling ▁and ▁ conspirator ial ▁stories ▁of ▁the ▁year . ▁xxmaj ▁like ▁in ▁years ▁past , ▁2017 ▁presented ▁a ▁polarizing ▁political ▁landscape , ▁further ▁exposing ▁the ▁current ▁establishment ▁paradigm . ▁xxmaj ▁unlike ▁the ▁establishment ▁gatekeeper s , ▁when ▁we ▁use ▁the ▁word ▁conspiracy ▁here , ▁we ▁are ▁talking ▁about ▁a ▁real ▁crime ▁scene . ▁xxmaj ▁whether ▁it ▁was ▁the ▁ousting ▁of ▁thousands ▁of ▁western - backed ▁terrorists ▁in ▁xxmaj ▁iraq ▁and ▁xxmaj ▁syria ▁or ▁a ▁string ▁of ▁known ▁wolf ▁attacks ▁amplified ▁by ▁made - to - order ▁media ▁ag it pro p , ▁or ▁the ▁heavily ▁manufactured ▁xxmaj ▁russia11
3▁xxbos ▁xxmaj ▁hillary ’ s ▁‘ russian ▁xxmaj ▁hack ’ ▁xxmaj ▁hoax : ▁xxmaj ▁the ▁xxmaj ▁biggest ▁xxmaj ▁lie ▁of ▁xxmaj ▁this ▁xxmaj ▁election ▁xxmaj ▁season ▁xxmaj ▁patrick ▁xxmaj ▁henningsen ▁21 st ▁xxmaj ▁century ▁wire the ▁longer ▁this ▁soap ▁opera ▁drags ▁on , ▁it ▁s ▁becoming ▁more ▁and ▁more ▁evident ▁that ▁the ▁xxmaj ▁russian ▁government ▁did ▁not ▁hack ▁into ▁the ▁xxup ▁dnc , ▁and ▁xxmaj ▁moscow ▁is ▁not ▁feeding ▁xxmaj ▁john ▁xxmaj ▁podesta ▁s ▁emails ▁to ▁xxmaj ▁wikileaks . ▁xxmaj ▁for ▁those ▁who ▁are ▁deeply ▁invested ▁in ▁this ▁now ▁official ▁conspiracy ▁theory , ▁however , ▁this ▁might ▁be ▁a ▁hard ▁pill ▁to ▁swallow . ▁xxmaj ▁the ▁xxmaj ▁white ▁xxmaj ▁house ▁and ▁the ▁xxmaj ▁hillary ▁xxmaj ▁clinton ▁campaign ▁are ▁now ▁married ▁to ▁the ▁idea ▁that ▁xxmaj ▁putin ▁is ▁hacking ▁the ▁xxup ▁us ▁elections . ▁xxmaj ▁in ▁response , ▁the ▁xxmaj ▁president ▁is ▁weighing ▁his ▁options ▁tougher ▁economic ▁sanctions , ▁re vo11
4▁xxbos ▁‘ one ▁for ▁the ▁xxmaj ▁ages ’ ▁xxmaj ▁full ▁xxmaj ▁video ▁and ▁xxmaj ▁transcript ▁of ▁xxmaj ▁trump ’ s ▁xxmaj ▁incredible ▁xxup ▁un ▁xxmaj ▁speech ▁[ video ] ▁a ▁speech ▁for ▁the ▁ages ▁was ▁given ▁today ▁by ▁xxmaj ▁president ▁xxmaj ▁donald ▁xxmaj ▁trump . ▁xxmaj ▁he ▁addressed ▁the ▁72 nd ▁meeting ▁of ▁the ▁xxmaj ▁united ▁xxmaj ▁nations ▁xxmaj ▁general ▁xxmaj ▁assembly ▁in ▁xxmaj ▁new ▁xxmaj ▁york ▁for ▁the ▁first ▁time ▁in ▁his ▁presidency . ▁xxmaj ▁the ▁transcript ▁is ▁below . president ▁xxup ▁trump : ▁xxmaj ▁mr . ▁xxmaj ▁secretary ▁xxmaj ▁general , ▁xxmaj ▁mr . ▁xxmaj ▁president , ▁world ▁leaders , ▁and ▁distinguished ▁delegates : ▁xxmaj ▁welcome ▁to ▁xxmaj ▁new ▁xxmaj ▁york . ▁xxmaj ▁it ▁is ▁a ▁profound ▁honor ▁to ▁stand ▁here ▁in ▁my ▁home ▁city , ▁as ▁a ▁representative ▁of ▁the ▁xxmaj ▁american ▁people , ▁to ▁address ▁the ▁people ▁of ▁the ▁world . as ▁millions ▁of ▁our ▁citizens11
5▁xxbos ▁xxup ▁scar s ▁& ▁xxup ▁strife : ▁‘ the ▁xxmaj ▁purge ▁xxmaj ▁election ▁xxmaj ▁year ’ ▁xxmaj ▁ag it pro p , ▁xxmaj ▁change ▁xxmaj ▁agents ▁& ▁xxmaj ▁false ▁left – right ▁xxmaj ▁state craft ▁xxmaj ▁your ▁government ▁thanks ▁you ▁for ▁your ▁participation . ▁xxup ▁psa ▁from ▁xxmaj ▁the ▁xxmaj ▁purge : ▁xxmaj ▁election ▁xxmaj ▁year ▁xxmaj ▁shawn ▁xxmaj ▁helton ▁21 st ▁xxmaj ▁century ▁xxmaj ▁wire ▁a ▁hyper - real ▁vision ▁of ▁xxmaj ▁america ▁serves ▁as ▁a ▁stark ▁backdrop ▁for ▁xxmaj ▁hollywood ▁s ▁social ▁science ▁fiction ▁horror ▁film , ▁xxmaj ▁the ▁xxmaj ▁purge : ▁xxmaj ▁election ▁year . the ▁xxmaj ▁purge : ▁xxmaj ▁election ▁xxmaj ▁year ▁( 2016) ▁is ▁the ▁third ▁installment ▁of ▁the ▁xxmaj ▁purge ▁film ▁franchise , ▁arriving ▁on ▁screen ▁just ▁in ▁time ▁for ▁the ▁hotly ▁contested ▁2016 ▁presidential ▁election ▁between ▁presumptive ▁nominees ▁xxmaj ▁donald ▁xxmaj ▁trump ▁and ▁xxmaj ▁hillary ▁clinton . the ▁film ▁s ▁recent ▁release11
6▁xxbos ▁xxup ▁bush - hi nck ley ▁xxup ▁nexus : ▁xxmaj ▁reagan ▁xxmaj ▁gunman ▁xxmaj ▁released , ▁xxmaj ▁reviving ▁xxmaj ▁conspiracy ▁xxmaj ▁suspicions ▁xxmaj ▁shawn ▁xxmaj ▁helton ▁21 st ▁xxmaj ▁century ▁wire on ▁the ▁eve ▁of ▁the ▁15 th ▁anniversary ▁of ▁the ▁9 ▁/ ▁11 ▁xxmaj ▁attacks , ▁the ▁man ▁implicated ▁in ▁shooting ▁the ▁40 th ▁xxmaj ▁president ▁of ▁the ▁xxmaj ▁united ▁xxmaj ▁states ▁will ▁be ▁released ▁from ▁captivity ▁after ▁35 ▁years . the ▁attempted ▁assassination ▁of ▁xxup ▁us ▁xxmaj ▁president ▁xxmaj ▁ronald ▁xxmaj ▁reagan ▁is ▁one ▁of ▁the ▁most ▁infamous ▁crimes ▁of ▁the ▁20 th ▁century . ▁xxmaj ▁like ▁the ▁assassination ▁of ▁xxup ▁jfk , ▁it ▁was ▁an ▁act ▁that ▁will ▁forever ▁be ▁shroud ed ▁in ▁conspiracy , ▁intrigue ▁and ▁mystery . ▁xxup ▁calculated ▁xxup ▁crime ▁xxmaj ▁photo ▁xxmaj ▁illustration ▁21 wire ▁s ▁xxmaj ▁shawn ▁helton although ▁it ▁s ▁been ▁over ▁three ▁decades ▁since ▁xxmaj ▁john ▁xxmaj ▁hi nck11
7▁xxbos ▁xxmaj ▁fake ▁xxmaj ▁news : ▁xxmaj ▁the ▁xxmaj ▁unravel ling ▁of ▁xxup ▁us ▁xxmaj ▁empire ▁xxmaj ▁from ▁xxmaj ▁within ▁xxmaj ▁setting ▁the ▁xxmaj ▁stage ▁of ▁the ▁press - president ▁war . us ▁ruling ▁ideology ▁and ▁xxmaj ▁washington ▁power ▁have ▁become ▁un s tu ck ▁as ▁never ▁before . ▁a ▁war ▁of ▁opposing ▁ cer t itude s ▁and ▁denunciation s ▁is ▁waged ▁day ▁to ▁day ▁between ▁the ▁long - ruling ▁xxup ▁us ▁corporate ▁media ▁and ▁the ▁xxmaj ▁white ▁xxmaj ▁house . ▁xxmaj ▁both ▁continuously ▁proclaim ▁ring ing ▁recrimination s ▁of ▁the ▁other ▁s ▁fake ▁news ▁ . ▁xxmaj ▁over ▁months ▁they ▁both ▁portray ▁each ▁other ▁as ▁male vol ent ▁liars . ▁xxmaj ▁pro f . ▁xxmaj ▁john ▁mc mur try ▁xxmaj ▁global ▁research us ▁bully ▁pulpit s ▁are ▁now ▁beyond ▁show ▁disagreements ▁and ▁successful ▁media ▁in qui s it ions ▁of ▁the ▁past . ▁xxmaj ▁slander ous ▁accusations ▁long11
8▁xxbos ▁xxmaj ▁hillary ▁xxmaj ▁clinton : ▁xxmaj ▁neocon ▁war - hawk ▁in ▁xxmaj ▁waiting ▁xxmaj ▁robert ▁xxmaj ▁parry ▁xxmaj ▁consortium ▁news if ▁there ▁were ▁any ▁doubts ▁that ▁xxmaj ▁hillary ▁xxmaj ▁clinton ▁favour s ▁a ▁neo - conservative ▁foreign ▁policy , ▁her ▁performance ▁at ▁xxmaj ▁thursday ▁s ▁debate ▁should ▁have ▁laid ▁them ▁to ▁rest . ▁xxmaj ▁in ▁every ▁meaningful ▁sense , ▁she ▁is ▁a ▁neocon ▁and ▁if ▁she ▁becomes ▁xxmaj ▁president ▁xxmaj ▁americans ▁should ▁expect ▁more ▁global ▁tensions ▁and ▁conflicts ▁in ▁pursuit ▁of ▁the ▁ neocons ▁signature ▁goal ▁of ▁regime ▁change ▁in ▁countries ▁that ▁get ▁in ▁their ▁way . beyond ▁sharing ▁this ▁neocon ▁regime ▁change ▁obsession , ▁former ▁xxmaj ▁secretary ▁of ▁xxmaj ▁state ▁xxmaj ▁clinton ▁also ▁talks ▁like ▁a ▁neocon . ▁xxmaj ▁one ▁of ▁their ▁trademark ▁skills ▁is ▁to ▁use ▁propaganda ▁or ▁perception ▁management ▁to ▁demonize ▁their ▁targets ▁and ▁to ▁roman tic ize ▁their ▁allies , ▁what ▁is ▁called ▁ glue11
" ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Interpretation" ], "metadata": { "id": "r0HPiBWI4RkP" } }, { "cell_type": "code", "source": [ "learn = learn.load('awd-lstm-text-classifier-stage-4')\n", "interp = get_classification_interpretation(learn)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 17 }, "id": "RqfvXi_t4Tc4", "outputId": "3074d695-b7f1-4719-82ae-7795ab9de47a" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "# top losses\n", "plot_top_losses(interp)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "ryJ3QtI24WDn", "outputId": "fa86669f-521e-4873-b69a-016abbc1de7a" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "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", "
inputtargetpredictedprobabilityloss
0▁xxbos ▁xxmaj ▁stephen ▁xxmaj ▁colbert ▁xxmaj ▁gets ▁xxmaj ▁donald ▁xxmaj ▁ rumsfeld ▁xxmaj ▁to ▁xxmaj ▁admit ▁xxmaj ▁the ▁xxmaj ▁iraq ▁xxmaj ▁war ▁xxmaj ▁was ▁xxmaj ▁all ▁a ▁xxmaj ▁lie ▁( video ) ▁xxmaj ▁donald ▁xxmaj ▁ rumsfeld ▁is ▁in ▁full ▁damage ▁control ▁mode ▁after ▁a ▁declassified ▁memo ▁from ▁2002 ▁making ▁the ▁rounds ▁revealed ▁that ▁he ▁lied ▁about ▁xxmaj ▁iraq ▁s ▁wmd s . ▁xxmaj ▁like ▁anyone ▁desperate ▁to ▁sway ▁public ▁opinion ▁and ▁keep ▁himself ▁out ▁of ▁jail , ▁xxmaj ▁ rumsfeld ▁is ▁giving ▁interviews ▁to ▁tell ▁his ▁side . ▁xxmaj ▁why ▁he ▁decided ▁to ▁go ▁xxmaj ▁the ▁xxmaj ▁late ▁xxmaj ▁show ▁with ▁xxmaj ▁stephen ▁xxmaj ▁colbert ▁is ▁unclear . ▁xxmaj ▁colbert ▁is ▁a ▁screaming ▁liberal , ▁very ▁smart ▁and ▁very ▁well - informed . ▁xxmaj ▁perhaps ▁xxmaj ▁ rumsfeld ▁thought ▁he ▁could ▁out man eu ver ▁the ▁comedian ? ▁xxmaj ▁maybe ▁he ▁thought ▁xxmaj ▁colbert ▁would ▁go ▁easy ▁on ▁him110.92324703931808472.2531027793884277
1▁xxbos ▁xxup ▁list ▁xxup ▁of ▁20 ▁“ vetted ” ▁xxmaj ▁refugees ▁xxmaj ▁who ▁xxmaj ▁were ▁xxmaj ▁charged ▁xxmaj ▁with ▁xxmaj ▁terrorism ▁xxmaj ▁after ▁xxmaj ▁entering ▁xxup ▁u . s : ” i ▁want ▁to ▁blow ▁myself ▁up ... i ▁am ▁against ▁xxmaj ▁america ” ▁xxmaj ▁while ▁the ▁lying ▁media ▁is ▁ perpetuating ▁the ▁lie ▁refugees ▁do ▁not ▁pose ▁a ▁terrorist ▁threat , ▁the ▁facts ▁show ▁otherwise . 1) ▁xxmaj ▁on ▁xxmaj ▁may ▁25, ▁2016, ▁in ▁the ▁xxup ▁u . s . ▁xxmaj ▁district ▁xxmaj ▁court ▁for ▁the ▁xxmaj ▁northern ▁xxmaj ▁district ▁of ▁xxmaj ▁texas , ▁xxmaj ▁bila l ▁xxmaj ▁a boo d ▁was ▁sentenced ▁to ▁four ▁years ▁in ▁prison ▁for ▁making ▁a ▁false ▁statement ▁to ▁the ▁xxup ▁fbi . ▁xxmaj ▁a boo d , ▁an ▁xxmaj ▁iraqi ▁translator ▁for ▁the ▁xxup ▁u . s . ▁military , ▁was ▁admitted ▁to ▁the ▁xxmaj ▁united ▁xxmaj ▁states ▁through ▁the ▁xxmaj ▁special ▁xxmaj110.65325134992599492.2531027793884277
2▁xxbos ▁xxup ▁hillary ▁xxup ▁set ▁xxup ▁to ▁xxup ▁destroy ▁xxup ▁lives ▁xxmaj ▁of ▁xxmaj ▁proud , ▁hard - working , ▁xxmaj ▁black ▁xxmaj ▁coal ▁xxmaj ▁miners ▁xxmaj ▁to ▁xxmaj ▁satisfy ▁xxmaj ▁mostly ▁xxmaj ▁white ▁xxmaj ▁environmental ▁xxmaj ▁activists ▁[ video ] ▁xxmaj ▁stealing ▁xxmaj ▁jobs ▁xxmaj ▁from ▁xxmaj ▁minorities ▁xxmaj ▁to ▁xxmaj ▁satisfy ▁xxmaj ▁white ▁xxmaj ▁ environmentalist s ▁xxmaj ▁is ▁xxmaj ▁the ▁xxmaj ▁worst ▁xxmaj ▁kind ▁xxmaj ▁of ▁xxmaj ▁racism ▁xxmaj ▁it ▁s ▁always ▁about ▁the ▁money ▁for ▁xxmaj ▁hillary . ▁a ▁xxmaj ▁university ▁of ▁xxmaj ▁michigan ▁survey ▁in ▁xxmaj ▁may ▁found ▁that ▁leaders ▁of ▁environmental ▁groups ▁are ▁overwhelmingly ▁white ▁males , ▁with ▁ethnic ▁minorities ▁occupying ▁fewer ▁than ▁12% ▁of ▁leadership ▁positions . the ▁environmental ▁groups ▁that ▁are ▁calling ▁for ▁sweeping ▁changes ▁to ▁the ▁economy ▁moving ▁away ▁from ▁oil ▁and ▁coal ▁to ▁carbon - free ▁sources ▁of ▁energy ▁seem ▁incapable ▁of ▁making ▁a ▁transition ▁themselves . ▁xxmaj ▁these ▁almost110.99210804700851441.0165505409240723
3▁xxbos ▁xxup ▁delegates ▁xxup ▁for ▁xxup ▁dummies : ▁xxmaj ▁how ▁xxmaj ▁they ’ re ▁awarded ... and ▁xxmaj ▁how ▁xxmaj ▁many ▁xxmaj ▁your ▁xxmaj ▁candidate ▁xxmaj ▁needs ▁xxmaj ▁to ▁xxmaj ▁win ▁[ video ] ▁xxmaj ▁stop ▁counting ▁the ▁votes ! ▁xxmaj ▁your ▁candidates ▁nomination ▁based ▁strictly ▁on ▁the ▁number ▁of ▁delegates ▁they ▁are ▁able ▁to ▁obtain ▁from ▁each ▁state ▁following ▁their ▁elections . watch ▁this ▁great ▁video ▁explaining ▁how ▁xxmaj ▁hillary ▁can ▁receive ▁less ▁votes , ▁but ▁still ▁win ▁with ▁super ▁delegates : the ▁nominating ▁contests ▁that ▁will ▁determine ▁the ▁xxmaj ▁democratic ▁and ▁xxmaj ▁republican ▁nominees ▁for ▁the ▁xxmaj ▁nov . ▁8 ▁xxup ▁u . s . ▁presidential ▁election ▁are ▁about ▁to ▁enter ▁a ▁critical ▁phase . ▁xxmaj ▁on ▁xxmaj ▁march ▁1, ▁known ▁as ▁xxmaj ▁super ▁xxmaj ▁tuesday , ▁primaries ▁or ▁caucuses ▁are ▁being ▁held ▁in ▁about ▁a ▁dozen ▁states , ▁and ▁they ▁could ▁be ▁turning ▁points ▁in ▁both ▁parties110.97384440898895260.7605207562446594
4▁xxbos ▁xxup ▁priorities : ▁# ▁ blacklivesmatter ▁xxmaj ▁terrorists ▁xxmaj ▁protest ▁xxmaj ▁cops ▁xxmaj ▁in ▁gun - free ▁xxmaj ▁chicago , ▁xxmaj ▁while ▁xxmaj ▁ignoring ▁6 ▁xxmaj ▁murders , ▁21 people ▁xxmaj ▁shot ▁xxmaj ▁over ▁xxmaj ▁christmas ▁xxmaj ▁weekend ▁xxmaj ▁the ▁xxmaj ▁december ▁tally ▁in ▁xxmaj ▁chicago ▁( so ▁far ) ▁is : ▁xxmaj ▁december ▁to ▁xxmaj ▁date ▁xxmaj ▁shot ▁& ▁xxmaj ▁killed : ▁29 ▁xxmaj ▁shot ▁& ▁xxmaj ▁wounded : ▁18 9 ▁xxmaj ▁total ▁xxmaj ▁shot : ▁ 218 ▁xxmaj ▁total ▁xxmaj ▁homicides : ▁31 six ▁men ▁were ▁killed ▁and ▁at ▁least ▁21 ▁other ▁people ▁have ▁been ▁wounded ▁in ▁shootings ▁across ▁xxmaj ▁chicago ▁over ▁the ▁holiday ▁weekend . ▁xxmaj ▁the ▁latest ▁homicide ▁happened ▁early ▁xxmaj ▁sunday ▁in ▁the ▁xxmaj ▁en gle wood ▁neighborhood ▁on ▁the ▁xxmaj ▁south ▁side . about ▁2 :15 ▁a . m . , ▁29- year - old ▁xxmaj ▁ ty ree ▁xxmaj ▁white ▁was ▁outside110.9958660602569580.08030933141708374
5▁xxbos ▁xxup ▁russia ▁xxup ▁hits ▁xxup ▁obama ... hard : ▁“ we ▁are ▁reaching ▁a ▁really ▁terrifying ▁conclusion ▁for ▁the ▁whole ▁world : ▁xxmaj ▁that ▁the ▁xxmaj ▁white ▁xxmaj ▁house ▁is ▁defending ▁xxmaj ▁islamic ▁xxmaj ▁state . ▁u . s . - led ▁coalition ▁air ▁strikes ▁killed ▁dozens ▁of ▁xxmaj ▁syrian ▁soldiers ▁on ▁xxmaj ▁saturday , ▁endangering ▁a ▁u . s . - russian ▁ceasefire ▁and ▁prompting ▁an ▁emergency ▁xxup ▁u . n . ▁xxmaj ▁security ▁xxmaj ▁council ▁meeting ▁as ▁tensions ▁between ▁xxmaj ▁moscow ▁and ▁xxmaj ▁washington ▁escalated . just ▁a ▁few ▁days ▁ago ▁it ▁was ▁reported ▁that ▁xxmaj ▁putin ▁felt ▁that ▁if ▁anything ▁happened ▁to ▁damage ▁the ▁tentative ▁ceasefire ▁agreement ▁that ▁it ▁would ▁be ▁xxmaj ▁obama ▁s ▁fault . ▁xxmaj ▁seems ▁he ▁was ▁right . reuters ▁reported : the ▁xxmaj ▁united ▁xxmaj ▁states ▁military ▁said ▁the ▁coalition ▁stopped ▁the ▁attacks ▁against ▁what ▁it ▁had ▁believed ▁to ▁be ▁xxmaj ▁islamic110.94585132598876950.05556420981884003
6▁xxbos ▁xxup ▁voting ▁xxup ▁machines ▁xxup ▁stolen ▁xxmaj ▁in ▁xxmaj ▁controversial ▁xxup ▁ga ▁xxmaj ▁election ▁xxmaj ▁where ▁xxmaj ▁dems ▁xxmaj ▁hope ▁xxmaj ▁to ▁xxmaj ▁embarrass ▁xxmaj ▁trump ▁xxmaj ▁with ▁30- yr ▁xxmaj ▁old ▁xxmaj ▁jon ▁xxmaj ▁ossoff ▁xxmaj ▁win ▁xxup ▁sandy ▁xxup ▁springs , ▁xxmaj ▁ga . , ▁xxmaj ▁april ▁18 ▁( reuters ) ▁xxmaj ▁for ▁xxup ▁u . s . ▁xxmaj ▁president ▁xxmaj ▁donald ▁xxmaj ▁trump , ▁an ▁off - year ▁congressional ▁election ▁on ▁xxmaj ▁tuesday ▁in ▁the ▁reliably ▁xxmaj ▁republican ▁northern ▁suburbs ▁of ▁xxmaj ▁atlanta ▁could ▁spell ▁trouble ▁if ▁xxmaj ▁democratic ▁up start ▁xxmaj ▁jon ▁xxmaj ▁ossoff ▁pulls ▁off ▁a ▁surprise ▁victory . watch ▁xxup ▁msnbc ▁xxmaj ▁morning ▁xxmaj ▁joe ▁show ▁hosts ▁and ▁guest ▁attempt ▁to ▁contain ▁their ▁excitement ▁over ▁the ▁possibility ▁of ▁a ▁xxmaj ▁democrat ▁winning ▁the ▁seat ▁of ▁former ▁xxmaj ▁house ▁xxmaj ▁leader ▁xxmaj ▁newt ▁xxmaj ▁gingrich ▁and ▁now , ▁in ▁a ▁special ▁election ▁they ▁are110.51269257068634030.02645277790725231
7▁xxbos ▁xxup ▁voting ▁xxup ▁machines ▁xxup ▁stolen ▁xxmaj ▁in ▁xxmaj ▁controversial ▁xxup ▁ga ▁xxmaj ▁election ▁xxmaj ▁where ▁xxmaj ▁dems ▁xxmaj ▁hope ▁xxmaj ▁to ▁xxmaj ▁embarrass ▁xxmaj ▁trump ▁xxmaj ▁with ▁30- yr ▁xxmaj ▁old ▁xxmaj ▁jon ▁xxmaj ▁ossoff ▁xxmaj ▁win ▁xxup ▁sandy ▁xxup ▁springs , ▁xxmaj ▁ga . , ▁xxmaj ▁april ▁18 ▁( reuters ) ▁xxmaj ▁for ▁xxup ▁u . s . ▁xxmaj ▁president ▁xxmaj ▁donald ▁xxmaj ▁trump , ▁an ▁off - year ▁congressional ▁election ▁on ▁xxmaj ▁tuesday ▁in ▁the ▁reliably ▁xxmaj ▁republican ▁northern ▁suburbs ▁of ▁xxmaj ▁atlanta ▁could ▁spell ▁trouble ▁if ▁xxmaj ▁democratic ▁up start ▁xxmaj ▁jon ▁xxmaj ▁ossoff ▁pulls ▁off ▁a ▁surprise ▁victory . watch ▁xxup ▁msnbc ▁xxmaj ▁morning ▁xxmaj ▁joe ▁show ▁hosts ▁and ▁guest ▁attempt ▁to ▁contain ▁their ▁excitement ▁over ▁the ▁possibility ▁of ▁a ▁xxmaj ▁democrat ▁winning ▁the ▁seat ▁of ▁former ▁xxmaj ▁house ▁xxmaj ▁leader ▁xxmaj ▁newt ▁xxmaj ▁gingrich ▁and ▁now , ▁in ▁a ▁special ▁election ▁they ▁are110.51269257068634030.01297942828387022
8▁xxbos ▁xxmaj ▁factbox : ▁xxmaj ▁trump ▁xxmaj ▁supreme ▁xxmaj ▁court ▁appointee ▁to ▁affect ▁pending ▁cases ▁xxmaj ▁neil ▁xxmaj ▁gorsuch , ▁xxmaj ▁president ▁xxmaj ▁donald ▁xxmaj ▁trump ’ s ▁appointee ▁to ▁the ▁xxup ▁u . s . ▁xxmaj ▁supreme ▁xxmaj ▁court ▁who ▁was ▁confirmed ▁by ▁the ▁xxmaj ▁senate ▁to ▁the ▁lifetime ▁job ▁on ▁xxmaj ▁friday ▁in ▁a ▁54- 45 ▁vote , ▁will ▁have ▁an ▁immediate ▁impact ▁on ▁cases ▁already ▁pending ▁before ▁the ▁justices . ▁xxmaj ▁the ▁nine - seat ▁court ▁has ▁operated ▁with ▁only ▁eight ▁justices ▁after ▁the ▁death ▁of ▁conservative ▁xxmaj ▁antonin ▁xxmaj ▁scalia ▁on ▁xxmaj ▁feb . ▁13, ▁2016, ▁with ▁four ▁liberals ▁and ▁four ▁conservatives . ▁xxmaj ▁gorsuch ’ s ▁confirmation ▁restore s ▁a ▁ 5-4 ▁conservative ▁majority . ▁xxmaj ▁the ▁new ▁justice ▁could ▁cast ▁the ▁deciding ▁vote ▁in ▁new ▁cases ▁before ▁the ▁court ▁as ▁well ▁as ▁some ▁cases ▁already ▁argued ▁during ▁the ▁current ▁term ▁that ▁ends ▁in ▁xxmaj010.5328809618949890.011710472404956818
" ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "# classification report\n", "print_classification_report(interp)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 173 }, "id": "KW88vFbgAy1W", "outputId": "3d040863-1fe9-4ecc-c51b-ca330e786436" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 1.00 1.00 4284\n", " 1 1.00 1.00 1.00 4696\n", "\n", " accuracy 1.00 8980\n", " macro avg 1.00 1.00 1.00 8980\n", "weighted avg 1.00 1.00 1.00 8980\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "# confusion matrix\n", "plot_confusion_matrix(interp, figsize=(12, 12))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 743 }, "id": "mpjM3k5a4dIN", "outputId": "3da6ded3-9345-4a01-d2e2-0138f7441172" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAskAAALWCAYAAAC0tQ6jAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJOgAACToB8GSSSgAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAc9ElEQVR4nO3dabhlZXnn4f9TA0NFBUQMLTg1DiBq4YAREAUixBA1iIJNxwGHiF6JAyJmkNi20RgEW5OYDg6oqDRKlQNxHpFBohgVUANo4wQItIIWiBGoqrc/nF1YPlZRgKfOroL7/nL2WXvvdz2roM71u1ats3aNMQIAAPzKvGkPAAAAGxqRDAAAjUgGAIBGJAMAQCOSAQCgEckAa1BV21bV+6rqoqr6alV9vKrudyvX2rOqvlVV51TV5rfwvc+vqmfcmv3Opqraq6p2v4nnn1hVfzmXMwGsT+UWcAC/rqoqyVlJThhjHDfZtjjJncYYZ9yK9Y5LcuYY472zO+ncqapXJfn5GOPYNTy3YIyxfO6nAlh/nEkG+E17J7lhVSAnyRjj3DHGGTXjmKr6ZlV9o6qemtx4pvULVbW0qi6oqhMnr31ukoOT/O1k215V9dFV61bVm6vq0Mnjv6+q/6iq86rq2Mm2V1XVyyaPd6mqL02e/1BVbTXZ/oWqOrqqzq6qb1fVnv2AJvs9rapOqarvTvb1J5P3fKOqdpi87glV9eWq+npVfbaqfreq7pXk+UkOn5wN37Oq3lVVx1XVl5O8vqoOrao3T9Y4ZdXZ76o6rKpOnOX/PgDr3YJpDwCwAXpgkq+u5bkDk+ySZHGSuyT5SlWdPnnuIUl2TvKjJF9MsscY4+1V9agkHx1jLK2qvda0aFVtneRJSXYcY4yq2nINL3t3kheOMU6rqlcn+R9JXjJ5bsEY4xFVtf9k+2PX8P7FSXZKclWS7yZ5++Q9L07ywslaZyZ55GSG5yZ5+RjjiMnZ8BvPJFfVc5Jsn2T3McaKVaE/8bwkX6yq7yU5Iskj1/JnCbDBciYZ4JZ5VJKTxhgrxhhXJDktya6T584eY1wyxliZ5Jwk97oF6y5L8sskx1fVgUl+sfqTVbVFki3HGKdNNp2Q5NGrveSDk69fvYn9fmWMcdkY47okFyX59GT7N1Z7z/ZJPlVV30hyZGaif22WjDFW9I2TP5dXJjk1yRFjjKtuYg2ADZJIBvhN30rysFvxvutWe7wia/7XuuX59Z+9myXJ5JreRyRZmuTxST55K/e9tv32+Vau9v3K1d7zT0nePMZ4UJLDVs23FtfexHMPSnJlkrvdxGsANlgiGeA3fT7JplX1vFUbqurBk2t9z0jy1KqaX1XbZOZs7tm3YO0fJHlAVW06uaTi9yfr3yHJFmOMjyc5PDOXRtxojLEsyU9Xu9746Zk5iz3btkhy6eTxM1fbfk2SO96cBarqEUn+MDOXn7ysqu49qxMCzAGRDNCMmdv+PCnJYye3gPtWktcluTzJh5Kcl+TczMT0y8cYl9+CtS9OcnKSb06+fn3y1B2TfLSqzsvMdcEvXcPbn5nkmMlrdkny6ltxeOvyqiRLquqrSX6y2vaPJHnSql/cW9ubq2rTJG9L8uwxxo8yc03yOyZ3DAHYaLgFHAAANM4kAwBAI5IBAKARyQAA0IhkAABopvKJe/PutP2oRVtPY9cAtxkH7Hn/aY8AsNH74NIlXxtj/Ma98acSybVo62yy+BnT2DXAbcaJJx0x7REANnqbL62L1rTd5RYAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IpnbrYP32jE/fP8LcofNF+YTRx+Uzxz71Hzi6INyj7veMUmy+87b5fR/+O859Y2H5NXPelSS5EH/dZuc+sZD8uljDs7S/3lAFm26YJqHALDBWrZsWR612yNyly3vkG9985vTHgdusVmP5Ko6uqrOqKr3VNXC2V4fZsO8eZUD97xfLvnxNblh+co8++iPZ9+XvT9vOPnsHH7QrkmSww/aNc855hPZ+/CT8vD7b5v/cuffyfk/uDJ7H35S9jvy5Hz9O1fkiXvcd8pHArBhWrRoUT70rx/Lkw58yrRHgVtlViO5qhYn2W6MsWeSC5L4m8EG6eC9dswHz/h2Vo6R625YkcuuujZJcv3ylVm5ciRJLvjhldnydzbN/HmV+fPm5RfXLc/yFStvXGPzTRfkO5dcNZX5ATZ0CxcuzDbbbDPtMeBWm+0zybsn+fTk8SeT7DHL68Nvbd68ypMfff8sOe2CX9u+cMG8HPW03fK/T/l6kuSUL34nJ/3NE3Pe8c/Ol87/UZZde12SZN+H3yv/9s9Pz6MffPdc9KOfzfn8AMD6N9uRvFWSqyePlyW586onquqgqjq5qk4ev1w2y7uFm++QfXbKB06/MGP8+vZ/fvG+eetHz70xfF9/2F7Z98j354HPPj473WPr7HiPmf+dP/Pv389uf/aefPjM7+S5+y+e6/EBgDkw27919LMkd5o83iLJjf8WPcZYkmRJkszfdvH4zbfC3Njpnltn8Q53zSG/v1Pus91WecML9s6VV/8y37t8WZaeduGNrxsj+dnPr5t8/WXutGjTbLJwfq6/YUWSZNm112XThfOndRgAwHo025F8VpKXJnl3kj9I8sVZXh9+a0cdf8aNj8/8pz/JG5f+e84/4bk565uXZq/F98iXz/9RXvnOM/N3J/5bTnnNgblh+cpcePFVOfuCy/L43XbIiw58WMZIrrrmP/Oc139iikcCsGE74An759xzz8m3v31hnvunh+Xpzzx02iPBzVaj/5vzb7tg1TFJHpnkh0meNca4vr9m/raLxyaLnzGr+wW4vfnpx46Y9ggAG73NF9aSMcbBffus3+R1jHHkbK8JAABzyYeJAABAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKARyQAA0IhkAABoRDIAADQiGQAAGpEMAACNSAYAgEYkAwBAI5IBAKBZsKaNVXVMkrGm58YYL1+vEwEAwJStMZKTfHROpwAAgA3IGiN5jHHaqsdVtUOSuyWpuRoKAACmaW1nkpMkVfWPSe6R5CFJzslMKJ8+B3MBAMDUrOsX9x42xjggyffGGH+c5Po5mAkAAKZqXZF8w+TrL6pqnyQ7rud5AABg6tYVyX9eVZsmOSLJAUkOX/8jAQDAdN3kNclJrk7yu0muTXLs+h8HAACmb12R/IbM3C95XpKdk1yeZO/1PRQAAEzTTUbyGOOgVY+rakGSd673iQAAYMrWdQu4Rat9u32SxbOx0wP2vH9OPOmI2VgK4HZrq13/fNojANxmretyi4/lVx9PfVX84h4AALcD64rkV48xTl31TVXttp7nAQCAqVvXLeD+pn3/0vU1CAAAbCjWeCa5qv40yfOS3L+qzs7Mx1GPJBfO4WwAADAVa4zkMcbbkrytqp4/xjhujmcCAICpWtflFjuselAzjlnP8wAAwNStK5IfturBGGOs/j0AANxWrSuSV1bVLklSVQ/Jr24HBwAAt1nrugXcYUleX1XbJ7kkyefX/0gAADBd6zqTPD/J15OsTHJ5kgvW+0QAADBla7sF3FFJ9spMFL8vyR5jjD+bw7kAAGBq1nYm+Q+TXJnkU0nOjmuRAQC4HVljJI8x9khyRGZuAffhJA+sqgOraqu5HA4AAKZhrdckjzEuGWO8aYyxf5Ldktw9M8EMAAC3aev6xb0kyRjj0jHGP4wxHrO+BwIAgGm7WZEMAAC3JyIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCARiQDAEAjkgEAoBHJ0FxxxRXZa8/ds+8+j8nj9t0nl1122bRHAthgHfy4h+WHn39dkmS7u26ZJW86LJ9864ty1PP3T5LsfJ+75bPHvySfOf4lecp+D02SPOh+2+XUd700n377i7P0TYdl0WabTG1+WJsFs7lYVW2R5DNJHpDkkWOMb87m+jAX7nKXu+Tzp52ZefPm5T0nvCsnvPP4/OVfHzXtsQA2OPPmVQ587ENyyeU/S5L83eEH5MWvfV9+9ONlN77m1S98Yp73qvfm+5demU+85UX5yBfOy/nfvSx7H/q/kiSvOGz/PHGfxXnfx78ylWOAtZntM8m/SPJHSZbO8rowZ+bPn59582b+alxzzTXZ6QE7T3kigA3TwY97eD742a9n5RhZsGBe7nm3rfP3RxyYT7zlhXnk4nsnSX536zvmuxf/JCtXjlx6xU+z833uluXLV964xuabLsx3vn/FtA4B1mpWI3mMccMY48ezuSZMw7nnnJM9d/+9HPcvb84uD3notMcB2ODMm1d58n4PzZJPfS1Jcpct75AH32+7vOJNH86hf/2uHHvkU5IkF1/+0zx853tm0Wab5BEPune2vOOiJMm+u++UfzvpL/Loh983F10sHdjwzNk1yVV1UFWdXFUnX3LxxXO1W7hVFu+yS84468t55av+Nsce/bppjwOwwTnkjx6RD3z6axljJEl+ds1/5qKLf5KLL/9prrjymtywfEXmz5+Xv3rjh/KK5++f977+2bnge5fniiuvTpJ85qzzs9shR+fDnzsnz33Ko6Z5KLBGs3pN8k0ZYyxJsiRJnnzQwWOu9gu31PXXX59NNpn5JZItttgimy9aNOWJADY8O9172yzecfscsv+uuc/dt8lrX/zHuWrZtdniDpvnhuUrssnCBVmxYmW+f+mVedIL/yWbb7YwJ7zuWfmPiy7LJgsX5PoblidJlv38P7PpJnOWI3Cz+b8SmnPPOSd/9Rcvy/z587PZZpvluLe9Y9ojAWxwjvrHU258fOaJL88Rr1+aRy6+dz7wD4dlk4UL8prjPp4kedoTfi9Pe8LvZfmKlXnlP/1rxhjZb4+d8qKn7ZMxkquWXZvnHPXuaR0GrFWt+meSWVuw6uNJdknygyRvGWO8q7/myQcdPE486eRZ3S/A7c1Wu/75tEcA2Oj98px/XjLGOLhvn/UzyWOM/Wd7TQAAmEs+TAQAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgEckAANCIZAAAaEQyAAA0IhkAABqRDAAAjUgGAIBGJAMAQCOSAQCgqTHG3O+06qtJLprzHcMts32SS6Y9BMBGzs9SNnQ7jDEe1jdOJZJhY1BVJ48xDp72HAAbMz9L2Vi53AIAABqRDGu3ZNoDANwG+FnKRsnlFgAA0DiTDAAAjUgGAIBmwbQHgA1BVc1P8pQkeyS5c5KrknwxyQfGGMunORvAxq6qnjHGePe054BbwjXJkKSqTkhyYZJPJlmWZIskf5DkAWOMp09zNoCNRVU9YE2bk7x1jLHHXM8Dvw1nkmHGvccYz2zbvlZVp09lGoCN05eSLM1MGK/unlOYBX4rIhlmnFVV707y6SRXJ7lTksdm5gc+ADfP+UmOHGNcufrGqvrYlOaBW83lFjBRVQ9OsnuSrZL8LMlZY4xzpzsVwMajqu6U5NoxxoppzwK/LZEMAACNW8ABAEAjkgHmUFXdq6p+XFVfqKqzq2rXW/j+Y6tqr6rapapecBP72O8WrLm0qu51S+YAuK0TyQBz77Qxxl5JXpjktas2VtXN/pk8xjhnjPEva3n6XkludiQD8JtEMsD0nJPk7lX1kar6UJJDq+pxVXVGVZ1VVYckSVUtrqqvVNVHkzx4sm2vqjp28nj/qvrS5Oz005O8IMlTJ9/fuaoOXW3NfSbveWxVfa2qPphku2kcPMCGzC3gAKbnMUm2TfLjyeMkOTPJ3klWJDm9qk5O8pokT0vyncnzN5qcfX5dkj3HGFdPvr84ycVjjJdV1dZJ/luSRydZlORjST4/WfOxSa5N8u31eZAAGyORDDD3HlNVX0jy8yRHZuaTHUdV3TXJ/TJzv+4k2TLJNkm2HWNcmCRV9dW21jaZCeKrk2SMsbLq1z7HYYckOyc5dbXXJ8n8McZVkzXPm8VjA7hNEMkAc++0McZTkpnLJpLsONn+kyQXJNlvjHF9VS0cY9xQVVdU1X2T/N8kD03ygdXW+nGS7avqDmOMn0/OJN+QZP7k+e8mOS/J4ychvnCyfUVVbZXkF0ketP4OFWDjJJIBNhCTs8CvSfKZqlqZmQA+OMnfJPk/Sf5fkp+u4T2vSPK5qvpFknckOSXJ66pqSZI/TfK+JKdV1Yok30jyoiSvTPK5JN9P8sM5ODyAjYoPEwEAgMbdLQAAoBHJAADQiGQAAGhEMgAANCIZAAAakQwAAI1IBgCA5v8DOXF6lI/ylZUAAAAASUVORK5CYII=\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "## Examples of Misclassified labels" ], "metadata": { "id": "ot3O26boHSEk" } }, { "cell_type": "markdown", "source": [ "Factbox: Trump Supreme Court appointee to affect pending cases\n", "\n", "Neil Gorsuch, President Donald Trump’s appointee to the U.S. Supreme Court who was confirmed by the Senate to the lifetime job on Friday in a 54-45 vote, will have an immediate impact on cases already pending before the justices. The nine-seat court has operated with only eight justices after the death of conservative Antonin Scalia on Feb. 13, 2016, with four liberals and four conservatives. Gorsuch’s confirmation restores a 5-4 conservative majority. The new justice could cast the deciding vote in new cases before the court as well as some cases already argued during the current term that ends in June. The court could decide to hear fresh arguments in cases in which they otherwise would be split 4-4. Here is a list of five such cases in which Gorsuch could be pivotal. Religious rights: Trinity Lutheran Church v. Comer A case from Missouri to be argued on April 19 in which a church contends the state violated the U.S. Constitution’s First Amendment guarantee of religious freedom by denying it funds for a playground project because of a state ban on aid to religious organizations. Employee class-action lawsuits: Epic Systems Corp v. Lewis A significant case for business and labor on whether companies can head off costly class-action lawsuits by forcing employees to give up their right to pursue work-related legal claims as a group in court. An issue that has divided the court in the past, this case is set to be argued in the next term, which starts in October. Housing discrimination: Bank of America v. Miami The eight-justice court appeared closely divided when it heard arguments on Nov. 8 on whether the city of Miami could pursue lawsuits accusing major banks of predatory mortgage lending to black and Hispanic home buyers. The court may need to reargue the case with Gorsuch on board to avoid a 4-4 split. Cross-border shooting: Hernandez v. Mesa A 4-4 split appeared possible when the court heard arguments in this civil rights case on Feb. 21. The court has been asked to revive a civil rights lawsuit filed by the family of a Mexican teenager against a U.S. Border Patrol agent who fatally shot the 15-year-old from across the border in Texas in 2010. Corporate liability: Jesner v. Arab Bank In a case to be heard next term, the court agreed on Monday to consider reviving litigation that seeks to hold Arab Bank Plc ARBK.AM financially liable for militant attacks in Israel and the Palestinian territories and accuses the Jordan-based bank of being the “paymaster” to militant groups. The question of whether companies can be held liable for actions overseas under a federal law called the Alien Tort Statute is one the court also took up in 2013 but failed to decide.\n", "\n", "\n", "- **Category**: politicsNews\n", "- **Date**: April 7, 2017\n", "- **Target** : Not Fake News\n", "- **Prediction** : Fake News" ], "metadata": { "id": "OHdYBsFGHZ74" } }, { "cell_type": "markdown", "source": [ "# ROC curve" ], "metadata": { "id": "x48sYX_gALT1" } }, { "cell_type": "code", "source": [ "preds, y, loss = learn.get_preds(with_loss=True)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 17 }, "id": "0S3OTvrMAMq0", "outputId": "7544b465-e94b-44d1-860e-74e1a1abe4fd" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "\n" ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "" ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "probs = np.exp(preds[:, 1])\n", "\n", "# compute ROC curve\n", "fpr, tpr, thresholds = roc_curve(y, probs, pos_label=1)\n", "roc_auc = auc(fpr, tpr)\n", "\n", "print('ROC are is {}'.format(roc_auc))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "j0q5BFruAXfH", "outputId": "40e71c84-e3ad-45f1-dbfa-dfb03fe240b0" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "ROC are is 0.9999998508773185\n" ] } ] }, { "cell_type": "code", "source": [ "plt.figure()\n", "plt.plot(fpr, tpr, color='darkorange', label='ROC curve (area = %0.2f)' % roc_auc)\n", "plt.plot([0, 1], [0, 1], color='navy', linestyle='--')\n", "plt.xlim([-0.01, 1.0])\n", "plt.ylim([0.0, 1.01])\n", "plt.xlabel('False Positive Rate')\n", "plt.ylabel('True Positive Rate')\n", "plt.title('Receiver operating characteristic')\n", "plt.legend(loc=\"lower right\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 312 }, "id": "tPfpLqIGBArH", "outputId": "e5f2f110-4cce-46fe-88f0-09336baaf524" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 30 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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nesTxcKF8Vx2WQmKFw/jo49upmjRUEqUsPpMJmdIHqM4fvw4rVu3ZsSIEfTr14+oqCh+/vnn/yy7ZcsWChcuTEREBDVr1mTp0qUp3TrnyvMNLfU1/YUKFUp53qRJEzZv3szevXuZPn06zz33HABJSUksXLiQ0NBQr8fmue3nn3+ea6+9li+//JKtW7fSvHnzNPepqnz++edUq1btP9sbOHAgF110EStWrCApKSndfWd2i6J8+fLEx8enTMfHx1O+fHkALrroInbu3EnZsmXZuXMnpUv/e8vk5C62QMi1He/Hjp3m4Ye/5cor/y3iV7lycUsSJkcqWLAg77zzDkOHDiUxMZE77riDX375hdmzZwNOy6Nfv348+eSTADzxxBO88sorKZ+qk5KSGD169FnbbdWqVcoAOfzb9XTRRRexbt06kpKS+PLLL9ONS0S4+eabefTRR6lRowYlSpQA4Prrr2f48OEpyy1ffvb4To0aNdi8eXPK9KFDh1LeYCdMmJDuPlu3bs3w4cNTrixatmxZyvply5YlT548fPTRR5w5cybN9efPn8/y5cvPepxPkgAoW7YsERERLFy4EFXlww8/pGPHjgB06NCBiRMnAjBx4sSU1wE2btz4n643f8qViWL27C3UqjWKt99eRJ8+DRk0yIr4mZyvfv361KlTh0mTJhEWFsaMGTN46aWXqFatGrVr16Zhw4b07dsXgDp16vDWW2/RtWtXatSoQa1atdiyZctZ23zuuec4cOAAtWrVom7dusydOxdwrtZp164dV155ZUofe3o6d+7Mxx9/nNLtBPDOO+8QFxdHnTp1iIqKSjNJVa9enUOHDqV8un/yySd55plnqF+/vterm55//nkSEhKoU6cONWvW5PnnnwegT58+TJw4kbp167J+/fr/tELO15IlS4iMjGTq1Kk88MAD1KxZM2VevXr1Up6PHDmSHj16UKVKFSpXrkybNm0AePrpp/nhhx+oWrUqs2fP5umnn05ZZ+7cubRt2/aCY/SFeF43nR1ER0drXFwcfNbceaHzvHNaP7mIX9WqxRk3rgNXX10x02M0BmDdunXUqFEj2GHkaMOGDSM8PJwePXoEO5SA2r17N926dWPOnDlpzk/rb09Elqpq9PnsL9eMURw/nkDBgvno0KEaf/99hP79r7b6TMZkc71792bq1KnBDiPgtm3bxtChQwO2vxyfKHbvPspDD33D3r3H+fHHuylfPoLBg68LdljGmEwQGhrKXXfdFewwAq5hw4YB3V+OHaNwBoVWUKPGCGbM2ECrVpdaET8TcNmta9dkf/74m8uRLYrdu4/SvfsMvv12M1deWYFx4zpQvXrJYIdlcpnQ0FD27dtnpcZNwCTfj8LbZcXnI0cmioIF87F9+yGGD29Dnz4NyZPH/klN4EVGRhIfH8/evXuDHYrJRZLvcJeZckyi2LDhH4YM+ZVRo9oSHl6AFSt6WQE/E1T58uXL1LuMGRMsfn0nFZEbRGSDiGwWkafTmF9ARD5z5y8SkUrnuo/ExCSGDPmFunVHM336etas2QNgScIYYzKJ395NRSQEGAG0AaKAriISlWqxGOCAqlYBhgGvnss+lm8tTOPG7/PMM3No1+4y1q17kAYNymVG+MYYY1z+7HpqBGxW1S0AIjIZ6Ais9VimIzDQfT4NeFdERH0YtleFPuMuY8fhw0ybdhu33po6BxljjMkM/kwU5YHtHtPxQOP0llHVRBE5BJQA/vFcSER6Aj3dyaMissF5+lNJ4J9OnZ7I7Nizo5KkOm+5lJ0Hh52Hf9m5cFTLeJG0ZYvBbFUdA4xJ/bqIxJ3vV9JzGjsXDjsPDjsP/7Jz4RCRs2+u4SN/jvjuACp4TEe6r6W5jIjkBYoA+/wYkzHGmHPkz0SxBKgqIpeISH6gCxCbaplY4B73eSfgR1/GJ4wxxgSO37qe3DGHvsB3QAgwXlXXiMggIE5VY4FxwEcishnYj5NMzsVZ3VG5mJ0Lh50Hh52Hf9m5cJz3ech2ZcaNMcYEln0rzRhjjFeWKIwxxniVLRJFIEqBZAc+nIdHRWStiKwUkTkikmNv35fRufBY7lYRURHJkZdH+nIeROR29+9ijYh8GugYA8GH/42LRWSuiCxz/z9uDEac/iYi40Vkj4isTme+iMg77nlaKSKX+7RhVc3SD5yB8D+AS4H8wAogKtUyfYDR7vMuwGfBjjtI5+FaoKD7vHdOPA++ngt3uXDgZ2AhEB3suIP0N1EVWAYUc6dLBzvuIJ2HMUBv93kUsDXYcfvpXDQDLgdWpzP/RuAbQIArgEW+bDc7tChSSoGo6mkguRSIp47ARPf5NKCF5LwbAGR4HlR1rqoedycX4nx3JSfy5W8CYDBO/bCTgQwugHw5D/cDI1T1AICq7glwjIHgy3lQIMJ9XgT4O4DxBYyq/oxzBWl6OgIfqmMhUFREyma03eyQKNIqBVI+vWVUNRFILgWSk/hyHjzF4HxyyIkyPBduk7qCqn4VyMACzJe/icuAy0TkVxFZKCI3BCy6wPHlPAwE7hSReOBr4KHAhJblnOv7CJBNSniYcyMidwLRwDXBjiUYRCQP8CbQPcihZAV5cbqfmuO0MH8WkdqqejCoUQVeV2CCqg4VkSY439+qpapJwQ4sO8gOLQorBeLw5TwgIi2BZ4EOqnoqQLEFWkbnIhyoBcwTka04fbGxOXBA25e/iXggVlUTVPVPYCNO4shJfDkPMcAUAFVdAITiFAvMbXx6H0ktOyQKKwXiyPA8iEh94D2cJJET+6KTeT0XqnpIVUuqaiVVrYQzXtNBVc+7KFoW5cv/xnSc1gQiUhKnK2pLIIMMAF/OwzagBYCI1MBJFLnxHrWxwN3u1U9XAIdUdWdGK2X5ricNTCmQLM/H8/A6UBiY6o7lb1PVDkEL2k98PBc5no/n4TvgehFZC5wBnlDVHNXa9vE8PAaMFZFHcAa2u+fAD5OIyCScDwYl3fGYAUA+AFUdjTM+cyOwGTgO3OvTdnPguTLGGJOJskPXkzHGmCCyRGGMMcYrSxTGGGO8skRhjDHGK0sUxhhjvLJEYbIkETkjIss9HpW8LHs0E/Y3QUT+dPf1u/vt3XPdxvsiEuU+759q3m8XGqO7neTzslpEZopI0QyWr5dTK6WawLHLY02WJCJHVbVwZi/rZRsTgFmqOk1ErgfeUNU6F7C9C44po+2KyERgo6q+7GX57jiVc/tmdiwm97AWhckWRKSwe4+N30VklYicVS1WRMqKyM8en7ivdl+/XkQWuOtOFZGM3sB/Bqq46z7qbmu1iDzsvlZIRL4SkRXu653d1+eJSLSIDAHC3Dg+cecddX9OFpG2HjFPEJFOIhIiIq+LyBL3PgEP+HBaFuAWdBORRu4xLhOR30Skmvst5UFAZzeWzm7s40VksbtsWlV3jfmvYNdPt4c90nrgfIt4ufv4EqeKQIQ7ryTON0uTW8RH3Z+PAc+6z0Nwaj6VxHnjL+S+/hTwQhr7mwB0cp/fBiwCGgCrgEI433hfA9QHbgXGeqxbxP05D/e+F8kxeSyTHOPNwET3eX6cSp5hQE/gOff1AkAccEkacR71OL6pwA3udASQ133eEvjcfd4deNdj/VeAO93nRXFqPxUK9u/bHln7keVLeJhc64Sq1kueEJF8wCsi0gxIwvkkfRGwy2OdJcB4d9npqrpcRK7BuVHNr25Zk/w4n8TT8rqIPIdTAygGpzbQl6p6zI3hC+Bq4FtgqIi8itNdNf8cjusb4G0RKQDcAPysqifc7q46ItLJXa4ITvG+P1OtHyYiy93jXwf84LH8RBGpilOiIl86+78e6CAij7vTocDF7raMSZMlCpNd3AGUAhqoaoI4VWFDPRdQ1Z/dRNIWmCAibwIHgB9UtasP+3hCVaclT4hIi7QWUtWN4tzv4kbgJRGZo6qDfDkIVT0pIvOA1kBnnJvsgHPHsYdU9bsMNnFCVeuJSEGc2kYPAu/g3KRprqre7A78z0tnfQFuVdUNvsRrDNgYhck+igB73CRxLXDW/cDFuUf4blUdC7yPc0vIhUBTEUkecygkIpf5uM/5wE0iUlBECuF0G80XkXLAcVX9GKcQY1r3HU5wWzZp+QynGFty6wScN/3eyeuIyGXuPtOkzp0M+wGPyb+l9ZPLRXf3WPQIThdcsu+Ah8RtXolTcdgYryxRmOziEyBaRFYBdwPr01imObBCRJbhfFp/W1X34rxxThKRlTjdTtV92aGq/o4zdrEYZ8zifVVdBtQGFrtdQAOAl9JYfQywMnkwO5XvcW4qNVudW3eCk9jWAr+LyGqccvFeW/xuLCtxbsrzGvB/7rF7rjcXiEoezMZpeeRzY1vjThvjlV0ea4wxxitrURhjjPHKEoUxxhivLFEYY4zxyhKFMcYYryxRGGOM8coShTHGGK8sURhjjPHq/wFJbR3sBn/yiwAAAABJRU5ErkJggg==\n" }, "metadata": { "needs_background": "light" } } ] } ] }