nlp-lab/Jonas_Solutions/Task_02_JonasWeinz.ipynb
2018-05-13 12:44:36 +02:00

1348 lines
139 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# NLP-LAB Exercise 02 by Jonas Weinz (2571421)\n",
"## links:\n",
"\n",
"* Article: https://miguelmalvarez.com/2017/03/23/how-can-machine-learning-and-ai-help-solving-the-fake-news-problem/\n",
" * corresponding code: https://github.com/kjam/random_hackery/blob/master/Attempting%20to%20detect%20fake%20news.ipynb\n",
"\n",
"* Tutorial on Datacamp: https://www.datacamp.com/community/tutorials/scikit-learn-fake-news\n",
"\n",
"* liar dataset paper: https://www.cs.ucsb.edu/~william/papers/acl2017.pdf\n",
" * dataset: https://www.cs.ucsb.edu/~william/data/liar_dataset.zip"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dependencies for this Notebook:\n",
"* library [rdflib](https://github.com/RDFLib/rdflib)\n",
" * install: `pip3 install rdflib`\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import itertools\n",
"import sklearn.utils as sku\n",
"from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer, HashingVectorizer\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.linear_model import PassiveAggressiveClassifier\n",
"from sklearn.naive_bayes import MultinomialNB\n",
"from sklearn import metrics\n",
"import matplotlib.pyplot as plt\n",
"from pprint import pprint as pp\n",
"from IPython.display import display, Markdown, Latex\n",
"import collections\n",
"import traceback\n",
"import os"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tools used later"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def plot_confusion_matrix(cm, classes,\n",
" title,\n",
" normalize=False,\n",
" cmap=plt.cm.Blues):\n",
" fig_1, ax_1 = plt.subplots()\n",
" \"\"\"\n",
" See full source and example: \n",
" http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\n",
" \n",
" This function prints and plots the confusion matrix.\n",
" Normalization can be applied by setting `normalize=True`.\n",
" \"\"\"\n",
" plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
" plt.title('Confusion Matrix for: ' + title)\n",
" plt.colorbar()\n",
" tick_marks = np.arange(len(classes))\n",
" plt.xticks(tick_marks, classes, rotation=45)\n",
" plt.yticks(tick_marks, classes)\n",
"\n",
" if normalize:\n",
" cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
" print(\"Normalized confusion matrix\")\n",
" else:\n",
" print('Confusion matrix, without normalization')\n",
"\n",
" thresh = cm.max() / 2.\n",
" for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
" plt.text(j, i, cm[i, j],\n",
" horizontalalignment=\"center\",\n",
" color=\"white\" if cm[i, j] > thresh else \"black\")\n",
"\n",
" plt.tight_layout()\n",
" plt.ylabel('True label')\n",
" plt.xlabel('Predicted label')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def test_classifier(labels, title, Xt, yt, clf):\n",
" pred = clf.predict(Xt)\n",
" score = metrics.accuracy_score(yt, pred)\n",
" pp(\"score: \" + str(score))\n",
" cm = metrics.confusion_matrix(yt, pred, labels=labels)\n",
" plot_confusion_matrix(cm, classes=labels, title=title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate/Download Datasets we are working on\n",
"\n",
"* running bash script to download all needed data and store it into the `data` subfolder"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"================================================================================\n",
"checking whether unzip is installed\n",
"================================================================================\n",
"UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.\n",
"\n",
"Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ;\n",
"see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites.\n",
"\n",
"Compiled with gcc 6.3.0 20170415 for Unix (Linux ELF).\n",
"\n",
"UnZip special compilation options:\n",
" ACORN_FTYPE_NFS\n",
" COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported)\n",
" SET_DIR_ATTRIB\n",
" SYMLINKS (symbolic links supported, if RTL and file system permit)\n",
" TIMESTAMP\n",
" UNIXBACKUP\n",
" USE_EF_UT_TIME\n",
" USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported)\n",
" USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported)\n",
" UNICODE_SUPPORT [wide-chars, char coding: UTF-8] (handle UTF-8 paths)\n",
" LARGE_FILE_SUPPORT (large files over 2 GiB supported)\n",
" ZIP64_SUPPORT (archives using Zip64 for large files supported)\n",
" USE_BZIP2 (PKZIP 4.6+, using bzip2 lib version 1.0.6, 6-Sept-2010)\n",
" VMS_TEXT_CONV\n",
" WILD_STOP_AT_DIR\n",
" [decryption, version 2.11 of 05 Jan 2007]\n",
"\n",
"UnZip and ZipInfo environment options:\n",
" UNZIP: [none]\n",
" UNZIPOPT: [none]\n",
" ZIPINFO: [none]\n",
" ZIPINFOOPT: [none]\n",
"================================================================================\n",
"successfully finished action: checking whether unzip is installed\n",
"================================================================================\n",
"================================================================================\n",
"downloading and unpacking https://www.cs.ucsb.edu/~william/data/liar_dataset.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"successfully finished action: downloading and unpacking https://www.cs.ucsb.edu/~william/data/liar_dataset.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"downloading and unpacking https://raw.githubusercontent.com/GeorgeMcIntire/fake_real_news_dataset/master/fake_or_real_news.csv.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"successfully finished action: downloading and unpacking https://raw.githubusercontent.com/GeorgeMcIntire/fake_real_news_dataset/master/fake_or_real_news.csv.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"downloading Helper script: script_dataset3.py\n",
"================================================================================\n",
"================================================================================\n",
"successfully finished action: downloading Helper script: script_dataset3.py\n",
"================================================================================\n"
]
}
],
"source": [
"%%bash\n",
"./Task_2_gen_data.sh"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df_1 = pd.read_csv('data/fake_or_real_news.csv').set_index('Unnamed: 0')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* display first 10 entries"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(6335, 3)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>title</th>\n",
" <th>text</th>\n",
" <th>label</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Unnamed: 0</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8476</th>\n",
" <td>You Can Smell Hillarys Fear</td>\n",
" <td>Daniel Greenfield, a Shillman Journalism Fello...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10294</th>\n",
" <td>Watch The Exact Moment Paul Ryan Committed Pol...</td>\n",
" <td>Google Pinterest Digg Linkedin Reddit Stumbleu...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3608</th>\n",
" <td>Kerry to go to Paris in gesture of sympathy</td>\n",
" <td>U.S. Secretary of State John F. Kerry said Mon...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10142</th>\n",
" <td>Bernie supporters on Twitter erupt in anger ag...</td>\n",
" <td>— Kaydee King (@KaydeeKing) November 9, 2016 T...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>875</th>\n",
" <td>The Battle of New York: Why This Primary Matters</td>\n",
" <td>It's primary day in New York and front-runners...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6903</th>\n",
" <td>Tehran, USA</td>\n",
" <td>\\nIm not an immigrant, but my grandparents ...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7341</th>\n",
" <td>Girl Horrified At What She Watches Boyfriend D...</td>\n",
" <td>Share This Baylee Luciani (left), Screenshot o...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>Britains Schindler Dies at 106</td>\n",
" <td>A Czech stockbroker who saved more than 650 Je...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4869</th>\n",
" <td>Fact check: Trump and Clinton at the 'commande...</td>\n",
" <td>Hillary Clinton and Donald Trump made some ina...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2909</th>\n",
" <td>Iran reportedly makes new push for uranium con...</td>\n",
" <td>Iranian negotiators reportedly have made a las...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" title \\\n",
"Unnamed: 0 \n",
"8476 You Can Smell Hillarys Fear \n",
"10294 Watch The Exact Moment Paul Ryan Committed Pol... \n",
"3608 Kerry to go to Paris in gesture of sympathy \n",
"10142 Bernie supporters on Twitter erupt in anger ag... \n",
"875 The Battle of New York: Why This Primary Matters \n",
"6903 Tehran, USA \n",
"7341 Girl Horrified At What She Watches Boyfriend D... \n",
"95 Britains Schindler Dies at 106 \n",
"4869 Fact check: Trump and Clinton at the 'commande... \n",
"2909 Iran reportedly makes new push for uranium con... \n",
"\n",
" text label \n",
"Unnamed: 0 \n",
"8476 Daniel Greenfield, a Shillman Journalism Fello... FAKE \n",
"10294 Google Pinterest Digg Linkedin Reddit Stumbleu... FAKE \n",
"3608 U.S. Secretary of State John F. Kerry said Mon... REAL \n",
"10142 — Kaydee King (@KaydeeKing) November 9, 2016 T... FAKE \n",
"875 It's primary day in New York and front-runners... REAL \n",
"6903 \\nIm not an immigrant, but my grandparents ... FAKE \n",
"7341 Share This Baylee Luciani (left), Screenshot o... FAKE \n",
"95 A Czech stockbroker who saved more than 650 Je... REAL \n",
"4869 Hillary Clinton and Donald Trump made some ina... REAL \n",
"2909 Iranian negotiators reportedly have made a las... REAL "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(df_1.shape)\n",
"display(df_1[:10])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* create test dataset"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def create_training_and_test_set(dset, cutoff=0.7):\n",
" shuffled = sku.shuffle(dset) # shuffle dataset\n",
" y = shuffled.label\n",
" shuffled = shuffled.drop('label', axis=1)['text']\n",
" size = int(cutoff * shuffled.shape[0])\n",
" return shuffled[:size], y[:size], shuffled[size:], y[size:]\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"X1,y1, Xt1,yt1 = create_training_and_test_set(df_1)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"count_vectorizer_1 = CountVectorizer(stop_words='english')\n",
"count_train_1 = count_vectorizer_1.fit_transform(X1)\n",
"count_test_1 = count_vectorizer_1.transform(Xt1)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"tfidf_vectorizer_1 = TfidfVectorizer(stop_words='english', max_df=0.7)\n",
"tfidf_train_1 = tfidf_vectorizer_1.fit_transform(X1)\n",
"tfidf_test_1 = tfidf_vectorizer_1.transform(Xt1)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"#display(count_vectorizer.get_feature_names()[0:10])\n",
"#display(count_vectorizer.get_feature_names()[-10:])\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"#display(tfidf_vectorizer.get_feature_names()[:10])\n",
"#display(tfidf_vectorizer.get_feature_names()[-10:])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"#count_df = pd.DataFrame(count_train.A, columns=count_vectorizer.get_feature_names())\n",
"#tfidf_df = pd.DataFrame(count_train.A, columns=tfidf_vectorizer.get_feature_names())\n",
"#diff = set(count_df.columns) - set(tfidf_df.columns)\n",
"#pp(count_df.equals(tfidf_df))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.8395581273014203'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbbb033dc88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf = MultinomialNB()\n",
"clf.fit(tfidf_train_1, y1)\n",
"pred = clf.predict(tfidf_test_1)\n",
"score = metrics.accuracy_score(yt1, pred)\n",
"pp(\"score: \" + str(score))\n",
"cm = metrics.confusion_matrix(yt1, pred, labels=[\"FAKE\", \"REAL\"])\n",
"plot_confusion_matrix(cm, classes=[\"FAKE\", \"REAL\"], title= \"TFIDF_Vecctorizer, Multinomial Naive Bayes\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.8869016307206733'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEmCAYAAACj7q2aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xe8FNX9xvHPAyqCBRQUEVBULIkxYo0lKpbYe2KPLSQYYzSWXxJTjWmaakliLDGKGguaGIk1ihpjInbsDQsCIkWBqNjA7++Pcy4s17uzey97797yvHnNi50zszNndubOd06ZGUUEZmZmLdGt3hkwM7OOy0HEzMxazEHEzMxazEHEzMxazEHEzMxazEHEzMxarK5BRFJPSf+QNEfStYuxnMMk/bOWeasHSbdIOrKF3/2ppJmSXq91vqzlOvqxKekVSTsVTG/xMbs4mrPeStuwmPnYRtJzrbHsDiMiKg7AocBDwNvAVOAW4LPVfLfCcg8HHgCWWNxltcYADAcCuL5R+oY5/e4ql/Mj4IpWzOdqwLvAyq24DgEnAE8C7wCTgWuBDVp5HwzJv3WTxwhwMPAKoEbpSwDTgT0XY91HAfe25TFXw9/t7vy7bdgo/fqcPrzK5bwC7JQ/t+px3Iq/xYJtaGLapfn32LwkbWg6NdY1zz8CPszn3LeBZ4DP1/u3bGqoWBKRdDJwNvBzoH8+YZ0H7FPpu1VYHXg+IubVYFmtZQawpaS+JWlHAs/XagVKFqdUuBrwRkRMb8G6l6hy1nOAb5ACyYrAOsDfgT2au84a+zvQB9iuUfqupJPDrW2eo6wZv21rLfd54IiS7/UFtiQd07bQm8BP652JJlwTEctGxLLAicAVkvrXO1MfUyEa9iZFwQMK5ulBCjKv5eFsoEeeNpx0xXoK6apwKnB0nnY68AELo+0IGl3p0OgqlHRl+BLwFvAycFhJ+r0l39sKeBCYk//fqmTa3cBPgP/k5fwT6Fdm2xryfz5wXE7rDkwBfkhJSYR0kp0E/A94GNgmp+/aaDsfK8nHz3I+3iVd/dwNfDlP/yPw15Ll/wIYy8evuHfK3/8oL//SnL438BQwOy/3E42uzL4NPA68T4WSILA2MJ+Sq7Uyx8plpBPUROD7QLeSq6qi/Vp2nwCv5nkbrsi2bGLdFwJ/bpQ2GjirZHxPYHz+Pf4LfLpk2mDgbznvbwC/Bz4BvJe3+21gdhXbeVTehrPycn5KybEJfKtkO97Ox8SlJcu9mPQ3MiV/t3u55VZxJXs36RidXLKcr5OOq8nkkgjpSvynJd8bDkxudKzsRPFx/OWSfN4L/BqYRfob3a1kWasCY0gn7QnAV0qm/YhUsr0iHwNPkC5UvkM6d0wCdm60fQ3rXQu4M/82M4G/AH0ab0OZ3+lS4LfA68B2OW2RkghwNKkk8Bbp/HNMU78X6W/qukbLPwc4t9I+biJfP6JRqS//DlvlzysAN5KOw1n586A87QDg4UbfPRm4oeSc/WvS39Y00vmtZ57WLy9rdt5P/yYf32WPtQoH4q7APApOMsCPgXHAysBKpD/Qn5T8wPPyPEsCuwNzgRXKnFwajw8hn2yAZUgn6HXztAHA+qUHb/68Yv5RD8/fOySP9y05+F4kHaA98/iZZbZtOOkPbivg/py2O3Ab8GUWDSJfBPrmdZ5COiiXLjgg7s47cf38nSVZ9A+jF+lK8ihgG9Ifx6CifJaMr0OqcvpcXu63SH+0S5X8UY0nnTwbDp7zgPPKLP+rwMQKx8plwA3Acnm/PQ+MqLRfK+2TxvOWWffW+dho2JbepMA6LI9vRPoD/AzpIuDI/Bv0yOOPkU7QywBLk6tqaaI6q8J2HkU63o/P+7RnU8vI8w4mXXTtlsevBy7IeViZVM17TLnlFu2Lkt/0y6SA3LCOB0glkWYHkQrHcWkQ+RD4Sv5dj83bqDz9HtJxtjQwjHQC3KFk2e8Bu+RtvIwUhL5HOoa/ArxcZr1DScd6D9I56B7g7Ka2oYnf6VLSyfwEFp5DGgeRPUiBSqQS71xg48a/F6lmZS6wXB7vTgoYW1Tax03ka8Fvnde7B+nE3ien9QU+TzpPLEcKwH/P03qQAkDpheOj5Oow0rE+hnSuXA74B3BGnnYGKagsmYdtaHTh2nioVIXSF5gZxdVNhwE/jojpETGDVMI4vGT6h3n6hxFxM+kqZt0K6y3nI+BTknpGxNSIeKqJefYAXoiIyyNiXkRcBTwL7FUyzyUR8XxEvEu6Yh1WtNKI+C+woqR1SdUDlzUxzxUR8UZe529IO7LSdl4aEU/l73zYaHlzSb/jb0lXZ8dHxOQKy2twEHBTRNyel/tr0gltq5J5zo2ISfk3ICK+FhFfK7O8vqQ/hiZJ6k5qm/hORLwVEa8Av2HR46CSZu2TUhHxH9IV1X456UBSNen4PD4SuCAi7o+I+RExilQC2wLYnHSF/M2IeCci3ouIexdjO1+LiN/lffpumeX0JFXDnRMRt+Qqit2BE3MeppP+0A9uznLLuAw4QtJ6pBPQfc34bktMjIiLImI+MIp0sddf0mBSsP92/o3HA3+ipLoN+HdE3JbPN9eSAsKZ+Ri+GhgiqU/jFUbEhHysv5/PQb/l49WblVwArCZptyaWf1NEvBjJv0iBeZsm5psIPMLC43AHYG5EjKtyHzd2oKTZpHPmGODnETE7r+uNiPhrRMyNiLdItRrb5WnvA9eQLmyRtD7pgudGSSL9PZwUEW/m7/68JB8fkvbZ6vmc/e/I0aWcSkHkDaBfhTrYVUnF+gYTc9qCZTQKQnOBZSus92Mi4h3SyfGrwFRJN+U/jEr5acjTwJLx0h5M1ebnclJ1wPakK4pFSPo/Sc/knmazSVfD/Sosc1LRxIi4n1R8FunEWq1FfoOI+Civq/Q3KFx3I2+QDqxy+pGuWhofBwObnr1JLdknpS5j4QnpcBYN9KsDp0ia3TCQSgKr5v8nVrhQalDNdlbzu14MPBcRvyjJ35Kk47ohfxeQrlabs9ym/I10Mvs66RhubQv2Y74QgrQvVwUaTloNGv9200o+v0u6gJ1fMt6wrEVI6i/paklTJP2PdNFV6W9vEfnE+5M8NF7+bpLGSXoz75vdC5Z/Jan2A1KHpCvz52r2cWOjI6JPRCxDKgkdIemYnKdeki6QNDFv8z1An3yhAymAH5qDxuF5We+TAnMv4OGSfNya0wF+Raq1+KeklySdWpA/oHIQuY90xbZvwTyvkX6gBqvltJZ4h7SBDVYpnZivUj5HOqE9C1xURX4a8jSlhXlqcDnwNeDmkj8OIHXzI1UZHUiqqutDao9RQ9bLLLMwwks6jlSieS0vv1qL/Ab5QBrMor9B4bobGQsMkrRpmekzSVcwjY+DhvUV7tcKqs3n5cCOkrYklTD+UjJtEvCz/AfZMPTKpdRJpCvQpi6UGq+70nZWzG/+o1yH1AZYmr/3Se1ADflbPiLWr3a55eRj9RZS1VJTQaQ5+6ZFecheI5XmlytJq8XfJaQr6SD1FFyedAWu4q806RJSJ439GxIk9QD+SirN989/2zcXLP9aYLikQaQSSUMQqWYfl5VLvbewsEblFFJNx2fyNm/bkOU8/zhSG9Y2pGDWsO9nkgLy+iX56B2p8Z5cwj4lItYktaueLGnHorwVBpGImENqnPuDpH1z9FsyR+Zf5tmuAr4vaSVJ/fL8V1TxuzRlPLCtpNUk9SY1qgELrjb2kbQMaWe8TareauxmYB1Jh0paQtJBwCdJjUUtFhEvk4qL32ti8nKkOusZwBKSfggsXzJ9GqkoXnUPLEnrkOpqv0i6kviWpGqreEYDe0jaUdKSpAPufVJ7VbNFxAukuuyrJA2XtJSkpSUdLOnUfLU4GviZpOUkrU5qyGs4Dsru1yrMIO3nNSvk8RVSo+5VwO0RUVqyuQj4qqTP5J5wy0jaI5/QHiBV1Z2Z05eWtHX+3jRS8Fwqr6PSdhbKVSUnAPuVVklFxFRSFclvJC0vqZuktSSVrZKRNERSSBpSxaq/S2o0fqWJaeOB3SWtKGkVUi+gcpp9HDeIiEmk4++M/Bt/mhRIW3quKLUc6XwwR9JA4JstWUgujZ5GaiBvsBTpQm4GMC/vw50LljGD1F5zCakN55mc3ux9XCoHpV1JnWUgbfO7wGxJK+Z8N3YZqZPIhw1VtLlW4iLgLEkr52UPlLRL/rynpKH5wnMOqWNJU+fZBSoeDJHq908m9UKZQYqoXyfV6UI60T1E6unzBKlOsEXd5SLidlJd3uOkHk6lJ/5uOR+vkRqNtiNdXTVexhuknjinkKphvkW6V2BmS/LUaNn3RkRTpazbSEXC50lF9PdYtPqh4UbKNyQ9Umk9+ar4CuAXEfFYPol/F7g8XxlVyudzpODzO9KVx17AXhHxQcE6z5d0fsFiTyAdkH8gNfC9SLrS+keefjzpqvYl0sn8SuDPOT9F+7XStswl92LLxe8tCmYfRSolLNJmFREPkRpmf0/qZDGB1AjcEBj2IjWmvkpqdD4of/VO0h/t65Iajp+y21mFg0jVBs9IejsPDb/5EaQT1tM5j9dRXIU4mHSsVbySj4jXyrXzkK5QHyM1Pv+TtJ/KadZx3IRDSHXzr5GqhE+LiDtasJzGTgc2Jp30biJV4bXUVZS0/+XqtxNIFw+zSFf1Yyos40pSj7YrG6U3dx8f1HCckHqZ/oe0rZB6wfYk/X2Po+mu7JcDn+LjgfrbpL+Bcbkq7A4Wtt+uncffJtVEnRcRdxVtbEOvCTPrQCR9H5gRERfUOy/WPil14JhO6kn2Qqutx0HEzKzzUbpRfM+I2KE119Mqd9SamVn9SHqF1Mhe1CmqNutyScTMzFrKj4I3M7MWc3VWG9NSy4Z69a08o7UbG6zRrPvWrB2Y9OpE3nxjZkvuFVlE9+VXj5hX3QMC4t0Zt0XErou7zo7GQaSNqVdfemxT8SZQa0duu2JE5ZmsXdll+JY1WU7Me5ce6x5Y1bzvjf9Dl7zacBAxMytLsFhvaej8HETMzMoR0K17xdm6MgcRM7MiWuymlU7NQcTMrCxXZ1XiIGJmVsQlkUIOImZm5QiXRCpwEDEzK0suiVTgIGJmVsS9swo5iJiZleWG9UocRMzMyhGuzqrAQcTMrIhLIoUcRMzMynJ1ViUOImZmRbq5OquIg4iZWTl+dlZFDiJmZmW5OqsSBxEzsyLunVXIQcTMrIhLIoUcRMzMypEfe1KJg4iZWRGXRAr51zEzK0upd1Y1Q6UlSSdJekrSk5KukrS0pDUk3S9pgqRrJC2V5+2Rxyfk6UNaeUNbzEHEzKxIQ5VWpaFwERoInABsGhGfAroDBwO/AM6KiKHALGBE/soIYFZOPyvP1y45iJiZldPwPpFqhsqWAHpKWgLoBUwFdgCuy9NHAfvmz/vkcfL0HaX22TjjIGJmVpaaE0T6SXqoZBjZsJSImAL8GniVFDzmAA8DsyNiXp5tMjAwfx4ITMrfnZfn79sWW9xcblg3MytSfQFgZkRs2vQitAKpdLEGMBu4Fti1JvmrMwcRM7MitXnsyU7AyxExA0DS34CtgT6SlsiljUHAlDz/FGAwMDlXf/UG3qhFRmrN1VlmZuWoWdVZRV4FtpDUK7dt7Ag8DdwFfCHPcyRwQ/48Jo+Tp98ZEVHTbasRl0TMzIrUoD07Iu6XdB3wCDAPeBS4ELgJuFrST3PaxfkrFwOXS5oAvEnqydUuOYiYmRWoVaeoiDgNOK1R8kvA5k3M+x5wQE1W3MocRMzMykhvx22XPWvbDQcRM7NylAcry0HEzKws0a2b+x8VcRAxMyvg6qxiDiJmZgUcRIo5iJiZleM2kYocRMzMyhBySaQCBxEzswIOIsUcRMzMCrh3VjEHETOzctwmUpGDiJlZAVdnFXMQMTMrww3rlTmImJkVcBAp5iBiZlbEMaSQg4iZWTly76xKHETMzAq4OquYg4iZWRluWK/MQcTMrIhjSCEHEato7YF9uPxbn1swvsYqy/OTvzzIvx6fwu+O25Zlll6SidPf4uhf38Fb737IwdutzYn7D1sw/wZD+rLlidfy+Mtv1CP7XdZJx43k9ttupt9KK3H3fY8uMu38353F6T84lSdfnELfvv2ICH7w7ZMZe/ut9OzZi7PP+xOfHrZRnXLejqg21VmS1gWuKUlaE/ghcFlOHwK8AhwYEbOUVnoOsDswFzgqIh5Z7Iy0ArcYWUUvTJnNFt+4li2+cS1bnXQdc9+fx5j7XuKPJwzn+6PGsdnxoxlz38uclAPH1f96YcH8I347llem/c8BpA4OPPRwrrzuHx9LnzJ5EnffdQcDB622IO3O22/lpZcm8N9HnuZX55zHqacc35ZZbdckVTUUiYjnImJYRAwDNiEFhuuBU4GxEbE2MDaPA+wGrJ2HkcAfW2nzFpuDiDXL9hsO5OWpc3h1xtsMXbU39z45FYA7x09i363W/Nj8B267Ntf+e0JbZ9OALbfehhVWWOFj6ad995v84PQzFjnx3XrzPzjg4C8iiU02+wz/mzObaa9PbcvstlvqpqqGZtgReDEiJgL7AKNy+ihg3/x5H+CySMYBfSQNqNU21ZKDiDXLAdsMZfQ9KSg88+os9tpiCAD7b70Wg/ot+7H5v7DNWoz+l4NIe3HrTWNYZcCqrL/BpxdJf33qa6w6cNCC8QGrDmTq1NfaOnvtUjNKIv0kPVQyjCyzyIOBq/Ln/hHREK1fB/rnzwOBSSXfmZzT2p0u1yYiaT7wREnSvhHxSp52NnAAMDgiPsppRwGbRsTXJXUDLgHmAyOAl4G38jjAPRFxQltsRz0suUQ39vjMEH542f0AHHPuXfxm5Gc59aBNuen+V/hg3keLzL/ZOisz9/15PP3qm/XIrjUyd+5czv3tL7n6bzfVOysdRjVVVSVmRsSmFZa3FLA38J3G0yIiJEXzc1lfXS6IAO/meslF5ACxHyn6bwfc1Wi6gPOBJYGj8w4H2D4iZrZ6rtuBXTZZjfEvzmT67HcBeH7ybPb64Y0ADF21N7ttttoi8x+w7cJSi9XfxJdf4tWJr7DjZzcDYOprk9l5uy24Zey9rDJgVV6bMnnBvFNfm8KAAavWK6vtSo27+O4GPBIR0/L4NEkDImJqrq6antOnAINLvjcop7U7rs5aaDjwFKkB65Ampp8L9AWOaCildDUHbjuU0f96YcH4Sr17AiDBqQdtwkW3PL1gmgSf/+xaXHvPCx9bjtXHJ9b/FE9OmMyDTzzPg088z4BVB/HPf41j5f6rsMtue3Lt1VcQETz84P0st3xv+q/SLqvg21wtGtZLHMLCqiyAMcCR+fORwA0l6Uco2QKYU1Lt1a50xZJIT0nj8+eXI2K//Llh594A/FzSkhHxYZ52KPAMMDwi5jVa3l25igxgVESc1XiFuW401Y/2XLF2W9KGevVYgh2GDebrf7hnQdqB2w7lmD0+BcAN973EZXc8u2DaZ9dflckz3uGVaW+1eV4tOXbE4fz33nt4842ZbPzJNfm/U3/AoUcc3eS8O+68G2Nvv5UtN/oEPXv14qw/XNTGuW2/mtloXn450jLA54BjSpLPBEZLGgFMBA7M6TeTuvdOIPXkanrHtQOK6HBVcItF0tsRsWyjtKVI7RvrRcRbkv4G/DkibsxtIl8E1gMOioj/lHzvFVJ7SdXVWd36rB49tjm18ozWbrx8xYh6Z8GaaZfhW/LYow8v9tm/xyprx6DDzq1q3pd+u/vDldpEOiNXZyW7AH2AJ3Jg+CyLVmk9S7pCuEbS+m2fPTOrB5GqZqsZuioHkeQQ4MsRMSQihgBrAJ+T1Kthhoj4L3AscKOk1ZpejJl1LtW1h3Tl52t1xTaRReRAsSvw1Ya0iHhH0r3AXqXzRsQ/JPUDbpW0TU4ubRN5PCKOaIt8m1nb6MLxoSpdLog0bg+JiLnAx1q7I2L/ktFLS9IvId0rAul5N2bWiXXlUkY1ulwQMTOrlgTduzuIFHEQMTMr4IJIMQcRM7MCrs4q5iBiZlZOF+++Ww0HETOzMtJ9Io4iRRxEzMzK6tr3gFTDQcTMrEC3Gj07q7NyEDEzK8dtIhU5iJiZleE2kcocRMzMCjiGFHMQMTMr4JJIMQcRM7MCjiHFHETMzMqQ3DurEgcRM7OyfJ9IJX4plZlZgVq92VBSH0nXSXpW0jOStpS0oqTbJb2Q/18hzytJ50qaIOlxSRu39na2lIOImVmBGr7Z8Bzg1ohYD9gQeAY4FRgbEWsDY/M4wG7A2nkYCfyx1ttVKw4iZmblVFkKqRRDJPUGtgUuBoiIDyJiNrAPMCrPNgrYN3/eB7gsknFAH0kDWmELF5uDiJlZGQK6detW1QD0k/RQyTCyZFFrADOASyQ9KulPkpYB+kfE1DzP60D//HkgMKnk+5NzWrvjhnUzswLNaFefGRGblpm2BLAxcHxE3C/pHBZWXQEQESEpWpzROnFJxMysQI3aRCYDkyPi/jx+HSmoTGuopsr/T8/TpwCDS74/KKe1Ow4iZmbl1KhNJCJeByZJWjcn7Qg8DYwBjsxpRwI35M9jgCNyL60tgDkl1V7tiquzzMzKUG3vEzke+IukpYCXgKNJF/KjJY0AJgIH5nlvBnYHJgBz87ztkoOImVmBWsWQiBgPNNVmsmMT8wZwXG3W3LocRMzMCnT3Y08KOYiYmZWR2jscRIp0uCAiafmi6RHxv7bKi5l1fi6IFOtwQQR4CgjSfUANGsYDWK0emTKzzsklkWIdLohExODKc5mZ1YZjSLEOfZ+IpIMlfTd/HiRpk3rnycw6D5G7+Vbxr6vqsEFE0u+B7YHDc9Jc4Pz65cjMOh2J7t2qG7qqDledVWKriNhY0qMAEfFmvonHzKxmXJ1VrCMHkQ8ldSM1piOpL/BRfbNkZp2JgG6OIoU6bHUW8Afgr8BKkk4H7gV+Ud8smVlnU6s3G3ZWHbYkEhGXSXoY2CknHRART9YzT2bW+biLb7EOG0Sy7sCHpCqtjlyqMrN2qKuXMqrRYU+8kr4HXAWsSnrW/pWSvlPfXJlZZ9NdqmroqjpySeQIYKOImAsg6WfAo8AZdc2VmXUqrs4q1pGDyFQWzf8SOc3MrCZS76x656J963BBRNJZpDaQN4GnJN2Wx3cGHqxn3sysk6nu1bddWocLIkBDD6yngJtK0sfVIS9m1sk5hhTrcEEkIi6udx7MrOtwSaRYhwsiDSStBfwM+CSwdEN6RKxTt0yZWaciavdmQ0mvAG8B84F5EbGppBWBa4AhwCvAgRExSylynUN6z/pc4KiIeKQmGamxDtvFF7gUuIS0n3cDRpN2hplZzajKoUrbR8SwiGh41/qpwNiIWBsYm8chndPWzsNI4I+Lux2tpSMHkV4RcRtARLwYEd8n/fBmZjUhpWdnVTO00D7AqPx5FLBvSfplkYwD+kgasHhb0zo6bHUW8H5+AOOLkr4KTAGWq3OezKyTaUZ86CfpoZLxCyPiwpLxAP4pKYAL8rT+EdFwa8LrQP/8eSAwqeS7k3Nau7uNoSMHkZOAZYATSG0jvYEv1TVHZtbpNKNhfWZJNVVTPhsRUyStDNwu6dnSiREROcB0KB02iETE/fnjWyx8MZWZWc2I2r1wKiKm5P+nS7oe2ByYJmlAREzN1VXT8+xTgNJXgQ/Kae1Ohwsi+ccvG60jYv82zI6ZdWY1egCjpGWAbhHxVv68M/BjYAxwJHBm/v+G/JUxwNclXQ18BphTUu3VrnS4IAL8vt4ZWBwbrbUS/7n+2Hpnw5phhc2+Xu8sWDO9/9ykyjNVqUb3ifQHrs/LWgK4MiJulfQgMFrSCGAicGCe/2ZS994JpC6+R9ciE62hwwWRiBhb7zyYWddRiy6sEfESsGET6W8AOzaRHsBxNVh1q+twQcTMrK0I37FeiYOImVkBP8W3WIcPIpJ6RMT79c6HmXU+Uu0ee9JZddg71iVtLukJ4IU8vqGk39U5W2bWyXRTdUNX1WGDCHAusCfwBkBEPAZsX9ccmVmn0/Ce9UpDV9WRq7O6RcTERo1e8+uVGTPrfNKbDbtwhKhCRw4ikyRtDoSk7sDxwPN1zpOZdTIdubqmLXTkIHIsqUprNWAacEdOMzOrGRdEinXYIBIR04GD650PM+u8pNo9O6uz6rBBRNJFNPEMrYgYWYfsmFkn5RhSrMMGEVL1VYOlgf1Y9Pn7ZmaLxQ3rlXXYIBIRi7wKV9LlwL11yo6ZdVKOIcU6bBBpwhosfCuYmdni6+I3ElajwwYRSbNY2CbSDXiThS+5NzOrCeEoUqRDBhGlOww3ZOGbvj7Kj042M6sZAUv4RpFCHfLnyQHj5oiYnwcHEDNrFZKqGrqqDhlEsvGSNqp3Jsys80q9s/wAxiIdLohIaqiC2wh4UNJzkh6R9KikR+qZNzPrZKp8+GK1BRFJ3fO56sY8voak+yVNkHSNpKVyeo88PiFPH9Jam7i4OmKbyAPAxsDe9c6ImXV+Nb5P5BvAM8DyefwXwFkRcbWk84ERwB/z/7MiYqikg/N8B9UyI7XS4UoipBImEfFiU0O9M2dmnUctq7MkDQL2AP6UxwXsAFyXZxkF7Js/75PHydN3VDtteOmIJZGVJJ1cbmJE/LYtM2NmnZnoXrtz99nAt4Dl8nhfYHZEzMvjk4GB+fNA8hM4ImKepDl5/pm1ykytdMQg0h1YFtx528xal2jWHev9JD1UMn5hRFwIIGlPYHpEPCxpeE0zWWcdMYhMjYgf1zsTZtYFNK/n1cyI2LTMtK2BvSXtTnrW3/LAOUAfSUvk0sggFt77NgUYDEzOnYl6k9/i2t502DYRM7O20E2qaigSEd+JiEERMYT0Cos7I+Iw4C7gC3m2I4Eb8ucxeZw8/c72ej9cRwwiO9Y7A2bWNTRUZ7XiO9a/DZwsaQKpzePinH4x0Denn0w7fqRTh6vOiog3650HM+s6av1Sqoi4G7g7f34J2LyJed4DDqjpiltJhwsiZmZtRXTM6pq25CBiZlaO6NLPxaqGg4iZWQGHkGIOImZmZfj1uJU5iJiZFXAIKeYgYmZWlujWlZ/zXgUHETOzMtw7qzIHETOzAu6dVcxBxMysgENIMQcRM7NyfJ9IRQ4iZmZluE2kMgcRM7N57uxlAAAStElEQVQCvk+kmIOImVkBx5BiDiJmZmWk6ixHkSIOImZmBVwSKeYgYmZWlpBLIoUcRMzMCrgkUsxBxMysDAm6O4oUchdoM7MCtXjHuqSlJT0g6TFJT0k6PaevIel+SRMkXSNpqZzeI49PyNOHtPZ2tpSDiJlZAVX5r4L3gR0iYkNgGLCrpC2AXwBnRcRQYBYwIs8/ApiV08/K87VLrs6yZnv+uec4/NCDFoy//PJL/OC0HzNnzmz+fPFFrNRvJQBO/+nP2XW33euVzS7v+MO256j9tiIieGrCa4w87Qq2HLYmPz9xP7p1E+/MfZ+vnHY5L02ayWoDVuD8075IvxWWZdb/5vKl741iyvTZ9d6EuksvpVr85UREAG/n0SXzEMAOwKE5fRTwI+CPwD75M8B1wO8lKS+nXXFJxJptnXXX5f6Hx3P/w+P57wMP06tXL/bedz8Ajv/GSQumOYDUz6or9eZrh2zH1of9kk0P+Dndu3XjgF024dzvHszR37uULQ4+k2tueYhTv7wrAGectB9/uekBNj/oDH5+4S38+Pi967wF7UczSiL9JD1UMoxcZDlSd0njgenA7cCLwOyImJdnmQwMzJ8HApMA8vQ5QN/W39rmcxCxxXLXnWNZY821WH311eudFWtkie7d6dljSbp370bPpZdi6ow5RATLL7M0AMsv15OpM+YAsN6aA/jXA88B8K8Hn2fP4RvULd/tTTPaRGZGxKYlw4Wly4mI+RExDBgEbA6s1/ZbU3sOIrZYrr3mag486JAF4+ef93s22+jTHPPlLzFr1qw65qxre23GHM6+bCzP3/ITXr79Z/zv7XcZO+5ZvvbjK7n+d19jwq0/4dA9NuPXl9wOwBPPT2GfHYYBsM8OG7L8sj1Zsfcy9dyEdkGk3lnVDNWKiNnAXcCWQB9JDc0Kg4Ap+fMUYDBAnt4beKNGm1VTXS6ISJovabykJyX9Q1KfnD5E0rt5WsNwRMn3hkkKSbs2Wt7bjdfRVXzwwQfcdOMY9v/CAQB85Zhjefq5F7n/4fGsMmAAp37zlDrnsOvqs1xP9hy+AZ/Y8zTW3Pl7LNNzKQ7efTOOP2x79jv+PIbu+gMuv2EcvzhlfwC+c9b1bLPJUO676ttss8lQpkybxfz5H9V5K9qDaiuzioOIpJVKzjU9gc8Bz5CCyRfybEcCN+TPY/I4efqd7bE9BLpmw/q7uUiJpFHAccDP8rQXG6Y14RDg3vz/ra2eyw7gtltvYdhGG9O/f3+ABf8DfGnEV9h/3z3rlbUub4fPrMcrr73BzFnpGufvdz7GlsPWZIN1BvLgkxMBuO6fj3DDH74GwNQZczj4//4EwDI9l2LfHYcx5+1365P59qSK7rtVGgCMktSddPE+OiJulPQ0cLWknwKPAhfn+S8GLpc0AXgTOLgmuWgFXTGIlLoP+HSlmZTeSnMA6erh35KWjoj3Wjtz7d3oa65apCpr6tSpDBgwAIAb/n49n1z/U/XKWpc36fU32XyDNei59JK8+96HbL/5ujzy9Kvsv9NGDF1tZSa8Op0dtliP516eBkDfPsvw5py5RATf/NIujLphXJ23oP2oRQyJiMeBjZpIf4nUPtI4/T3SOafd67JBJF8R7MjCyA+wVu490eD4iPg3sBXwckS8KOluYA/gr81Y10hgJMDg1VZb3Ky3C++88w533nE7vz/vggVp3zv1Wzz+2HgksfqQIfyuZJq1rQefnMj1dzzKfVd+m3nzP+KxZydz8V//w5Rps7jq11/mo/iI2f97l2N+dAUA2266Nj8+fm8i4N5HJnDiGaPrvAXtQ+ri6zvWi6idVrO1GknzgSdIXeieAbaPiPn5jtAbI+Jjl8+Sfg88FhEXSdobOCIivpCnvR0Ry1a7/k022TT+c/9DNdgSaysrbPb1emfBmun950bz0dzpi332/8QGG8Ulf7+rqnm3HLrCwxGx6eKus6Ppcg3rLGwTWZ10oXFc0cy5xPJ54IeSXgF+R7rbdLnWzqiZ1V+N7ljvtLpiEAEgIuYCJwCnlHSxa8qOwOMRMTgihkTE6qSqrP3aIp9mVl+1eHZWZ9ZlgwhARDwKPE7qcQW5TaRkOCFPu77RV/9a8p1ekiaXDCe3Te7NrC2oyqGr6nIN643bLyJir5LRnlUuYwypHzcR0aUDsVmn15UjRBW6XBAxM6tWKmU4ihRxEDEzK0e1eYpvZ+YgYmZWxEGkkIOImVlZXbv7bjUcRMzMCnTl7rvVcBAxMyujq3ffrYaDiJlZEUeRQg4iZmYF/ADGYg4iZmYFHEKKOYiYmZXjRpGKHETMzAq4i28xBxEzszKEu/hW4ocHmpkVqMVTfCUNlnSXpKclPSXpGzl9RUm3S3oh/79CTpekcyVNkPS4pI1ba/sWl4OImVkBSVUNFcwDTomITwJbAMdJ+iRwKjA2ItYGxuZxgN2AtfMwEvhja2xbLTiImJkVqMVLqSJiakQ8kj+/RXo190BgH2BUnm0UsG/+vA9wWSTjgD6SBrTC5i02BxEzswLNqM7qJ+mhkmFkk8uThgAbAfcD/SNiap70OtA/fx4ITCr52uSc1u64Yd3MrEj1DeszI2LTwkVJy5LejHpiRPyvtBosIkJStDSb9eKSiJlZGQ0vparmX8VlSUuSAshfIuJvOXlaQzVV/n96Tp8CDC75+qCc1u44iJiZlZNfSlXNULiYVOS4GHgmIn5bMmkMcGT+fCRwQ0n6EbmX1hbAnJJqr3bF1VlmZkVqc5/I1sDhwBOSxue07wJnAqMljQAmAgfmaTcDuwMTgLnA0TXJRStwEDEzK6s2L6WKiHspH452bGL+AI5b7BW3AQcRM7MCvmO9mIOImVkZfv5iZQ4iZmZFHEUKOYiYmRXwS6mKOYiYmRVwCCnmIGJmVk4Vz8Xq6hxEzMwKOYoUcRAxMyvDL6WqzEHEzKyAY0gxBxEzswLunVXMQcTMrIhjSCEHETOzAo4hxRxEzMzKqObVt12dg4iZWYFaPMW3M3MQMTMr4hhSyEHEzKxApbcWdnUOImZmZdXmpVSdmYOImVkZvmO9sm71zoCZWVcg6c+Spkt6siRtRUm3S3oh/79CTpekcyVNkPS4pI3rl/NiDiJmZgUauvlWGqpwKbBro7RTgbERsTYwNo8D7AasnYeRwB9rsS2twUHEzKyAqvxXSUTcA7zZKHkfYFT+PArYtyT9skjGAX0kDajRJtWU20TMzMqQmtU7q5+kh0rGL4yICyt8p39ETM2fXwf6588DgUkl803OaVNpZxxEzMyKVB9EZkbEpi1dTUSEpGjp9+vF1VlmZgVqVZ1VxrSGaqr8//ScPgUYXDLfoJzW7jiImJkVqGHDelPGAEfmz0cCN5SkH5F7aW0BzCmp9mpXXJ1lZlagVreJSLoKGE5qO5kMnAacCYyWNAKYCByYZ78Z2B2YAMwFjq5RNmrOQcTMrIBqdLdhRBxSZtKOTcwbwHE1WXErcxAxMyvDd6xXphTwrK1ImkEqtnY2/YCZ9c6ENUtn3merR8RKi7sQSbeSfqdqzIyIxjcTdnoOIlYTkh5anO6N1va8z6wW3DvLzMxazEHEzMxazEHEaqXS4x2s/fE+s8XmNhEzM2sxl0TMzKzFHETMzKzFHESsVUjqW+88mFnrcxCxmpO0M3C2pBVUq2dGWKvxPrLF4SBiNZUDyK+AiyNiFn60TkfQF0CSzwfWbD5orGYk7UoKIMdExN2SBgPflVTtYyOsDeXHjK8MTJS0d0R85EBizeUDxmrpM0CviBgnaSXgemB6RHTW5zN1aPn93dNJjxm/RNLuDYFEUvd65886Blc12GKTtDWwXUScLmlNSfeRLlAuiIiLSuYbHBGTyi7I6iIiRkv6ALha0iERcVNDiUTSXmmWuLG+ubT2yiURa7GSqo+dgd4AEXEkcA+wQqMAchhwrqTl2jyjtghJu0r6oaStGtIi4u+kEsnVkvbMJZJjgPOBZ+uVV2v/XBKxxdEbmAW8Byyo/oiIb0taSdJdEbG9pM8DJwFHRMRbdcqrLbQtcCywq6QngT8AL0XEX3NPrUsl3QhsDuweERPqmFdr51wSsRaRtAZwhqQ1gWnAcjm9J0BEfAl4SdJU4LukAPJ0vfJri/gHcAewP+nVqwcBl0taMyKuI72idW/g0Ih4rH7ZtI7AJRFrqaWB6cAxwMpAQ1tHD0nv5UbbEZL+D7jZAaS+JK0HvB8RL0fEfZJ6ACdGxImSDgVOBZaVNAU4G1glIj6oZ56tY/ADGK3FJH0K2AU4HlgNGANsBLwGfAC8DewbER/WLZOGpN2BHwCHN1RNSRoKjASeI5UUv0zab1sBd0fEy3XKrnUwLolY1SQNJx0z/46I9yPiSUkfAssAnwAuBZ4AliVVb81wAKkvSbuQAsiPImKCpGWBAN4gBf7jgN0i4p48//PhK0trBpdErCqSegM3AmsC5wDzI+I3edqawMHAAODyiHigbhm1BSRtADwG7BQRd0paC7gAODkiHs/TRwEHRMSL9cyrdVxuWLeqRMQcUhD5AHge2E3SpZL2A2aQevjMAg6UtLSfx1Q/Jb/9K6QbPg+UNIT0EqrbcgDpFhFPkLpjD/fNhdZSDiJWSNIqJSel3wK3AG9FxE7AUjntHmC7/P/PI+I9V4nU1VIAuTv1YaTqxReBv0fEr3IA+UjSMFK11q0RMb9+2bWOzEHEypK0B6mxvF/JjYXTgGG5CmsL4ChSb579gUcj4s165NWS/ADMqyX9SNL+EfEeqQfdlcCWADmAjADOBS6KiCn1y7F1dG4TsSblhyl+D/hZRNwqaamI+CA/VPEhUsP5gQ2Pw5DUKyLm1jHLXV7eZ6cDl5G6Xa8K/DIiXshPCjiP1Kj+T+CrwFcj4sl65dc6BwcR+xhJKwIzgf0j4u+5QfaHwDcjYrqkrwAbRsTXG4JLXTNspftsn4j4h6RBwM+A8yPivjzPUsA1pMfUbOZ7d6wWXJ1lH5OrpPYCfijp06QG2UfzE18h9fjZQdI6DiDtQ8k+O1PS8hExGegH/ErS2ZJOJnXFHgEMdQCxWvF9Itak/CTX+cB44LsRcbak7hExPyIekHRVvfNoi8r77CPgYUm3ki4SfwOsRLqZcH3gJLdbWS25OssKSfoc8DvgMxExR1KPiHi/3vmy8iTtRGr3GBAR03JaN2BFv9vFas3VWVYoIm4nPYH3AUkrOoC0fxFxB7AHcFd+cyER8ZEDiLUGV2dZRRFxS26UvUPSpuSX4tU7X1ZeyT67VdKmEfFRvfNknZOrs6xqkpaNiLfrnQ+rnveZtTYHETMzazG3iZiZWYs5iJiZWYs5iJiZWYs5iJiZWYs5iFi7Imm+pPGSnpR0raRei7Gs4ZIaHhC5t6RTC+btI+lrLVjHj/J75KtKbzTPpZK+0Ix1DZHkByZau+IgYu3NuxExLCI+RXoB1ldLJypp9nEbEWMi4syCWfoAzQ4iZl2dg4i1Z/8GhuYr8OckXQY8CQyWtLOk+yQ9kkssy0J6HLqkZyU9QnrHCTn9KEm/z5/7S7pe0mN52Ao4E1grl4J+lef7pqQHJT0u6fSSZX1P0vOS7gXWrbQRkr6Sl/OYpL82Kl3tJOmhvLw98/zdJf2qZN3HLO4PadZaHESsXZK0BLAb8EROWhs4LyLWB94Bvk96d/jGpPebnCxpaeAi0tNsNwFWKbP4c4F/RcSGwMbAU8CpwIu5FPTN/HKntYHNgWHAJpK2lbQJ6X3yw4Ddgc2q2Jy/RcRmeX3PkJ6k22BIXscewPl5G0YAcyJis7z8r0hao4r1mLU5P/bE2pueksbnz/8GLia9XGliRIzL6VsAnwT+k9/cuxRwH7Ae8HJEvAAg6QpgZBPr2AE4AiC/FnaOpBUazbNzHh7N48uSgspywPUNL+CSNKaKbfqUpJ+SqsyWBW4rmTY6P5LkBUkv5W3YGfh0SXtJ77zu56tYl1mbchCx9ubdiBhWmpADxTulScDtEXFIo/kW+d5iEnBGRFzQaB0ntmBZlwL7RsRjko4ChpdMa/zIiMjrPj4iSoMNkoa0YN1mrcrVWdYRjQO2ljQUQNIyktYBngWG5DcxAhxS5vtjgWPzd7tL6g28RSplNLgN+FJJW8vA/ETce4B9JfXMr5zdq4r8LgdMlbQkcFijaQdI6pbzvCbwXF73sXl+JK0jaZkq1mPW5lwSsQ4nImbkK/qrJPXIyd+PiOcljQRukjSXVB22XBOL+AZwoaQRwHzg2Ii4T9J/chfaW3K7yCeA+3JJ6G3gixHxiKRrSG93nA48WEWWfwDcD8zI/5fm6VXgAWB50jvP35P0J1JbySNKK58B7Fvdr2PWtvwARjMzazFXZ5mZWYs5iJiZWYs5iJiZWYs5iJiZWYs5iJiZWYs5iJiZWYs5iJiZWYv9P2d0MneHLIvvAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbbb02122b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf_a = MultinomialNB()\n",
"clf_a.fit(count_train_1, y1)\n",
"test_classifier(labels=[\"FAKE\",\"REAL\"], title=\"Count Vectorizer, Multinomial Naive Bayes\", Xt=count_test_1,yt=yt1, clf=clf_a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* comparing to PassiveAggresiveClassifier"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jonas/.local/lib/python3.6/site-packages/sklearn/linear_model/stochastic_gradient.py:117: DeprecationWarning: n_iter parameter is deprecated in 0.19 and will be removed in 0.21. Use max_iter and tol instead.\n",
" DeprecationWarning)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.933\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbbb01b8a90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"linear_clf = PassiveAggressiveClassifier(n_iter=50)\n",
"\n",
"linear_clf.fit(tfidf_train_1, y1)\n",
"pred = linear_clf.predict(tfidf_test_1)\n",
"score = metrics.accuracy_score(yt1, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(yt1, pred, labels=['FAKE', 'REAL'])\n",
"plot_confusion_matrix(cm, classes=['FAKE', 'REAL'], title= \"TFIDF Vectorite, PassiveAggressive Classifier\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"#clf = MultinomialNB(alpha=0.1)\n",
"#last_score = 0\n",
"#for alpha in np.arange(0,1,.1):\n",
"# nb_classifier = MultinomialNB(alpha=alpha)\n",
"# nb_classifier.fit(tfidf_train_1, y1)\n",
"# pred = nb_classifier.predict(tfidf_test_1)\n",
"# score = metrics.accuracy_score(yt1, pred)\n",
"# if score > last_score:\n",
"# clf = nb_classifier\n",
"# print(\"Alpha: {:.2f} Score: {:.5f}\".format(alpha, score))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* try to get most important features"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('FAKE', -5.09148236435967, '2016'),\n",
" ('FAKE', -4.711308849297324, 'october'),\n",
" ('FAKE', -3.7170090859114935, 'hillary'),\n",
" ('FAKE', -2.9629451875503636, 'election'),\n",
" ('FAKE', -2.9532733338247192, 'article'),\n",
" ('FAKE', -2.5913388599541607, 'share'),\n",
" ('FAKE', -2.5113445616853625, 'wikileaks'),\n",
" ('FAKE', -2.4154047960961784, 'source'),\n",
" ('FAKE', -2.3661872358294853, 'podesta'),\n",
" ('FAKE', -2.2727185001128776, 'november'),\n",
" ('FAKE', -2.204821774138259, 'advertisement'),\n",
" ('FAKE', -2.1570514850733904, 'corporate'),\n",
" ('FAKE', -2.1316069320786863, 'kelly'),\n",
" ('FAKE', -2.100506081374764, 'establishment'),\n",
" ('FAKE', -2.063743396467079, 'email'),\n",
" ('FAKE', -2.047274951558231, 'snip'),\n",
" ('FAKE', -2.0443830149677353, 'print'),\n",
" ('FAKE', -1.9775756559762447, 'mosul'),\n",
" ('FAKE', -1.8875909018863903, 'oct'),\n",
" ('FAKE', -1.8829089357171849, 'war'),\n",
" ('FAKE', -1.844565871218784, 'corruption'),\n",
" ('FAKE', -1.8422478599882626, '26'),\n",
" ('FAKE', -1.8386058868939217, 'uk'),\n",
" ('FAKE', -1.8285844309040236, 'pipeline'),\n",
" ('FAKE', -1.8173437410790223, 'reuters'),\n",
" ('FAKE', -1.804934691375235, 'donald'),\n",
" ('FAKE', -1.7225692073057894, 'stated'),\n",
" ('FAKE', -1.7216024583216563, 'fbi'),\n",
" ('FAKE', -1.7171991085276201, 'watch'),\n",
" ('FAKE', -1.7084797259301832, 'order')]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"[('FAKE', -5.09148236435967, '2016'),\n",
" ('FAKE', -4.711308849297324, 'october'),\n",
" ('FAKE', -3.7170090859114935, 'hillary'),\n",
" ('FAKE', -2.9629451875503636, 'election'),\n",
" ('FAKE', -2.9532733338247192, 'article'),\n",
" ('FAKE', -2.5913388599541607, 'share'),\n",
" ('FAKE', -2.5113445616853625, 'wikileaks'),\n",
" ('FAKE', -2.4154047960961784, 'source'),\n",
" ('FAKE', -2.3661872358294853, 'podesta'),\n",
" ('FAKE', -2.2727185001128776, 'november'),\n",
" ('FAKE', -2.204821774138259, 'advertisement'),\n",
" ('FAKE', -2.1570514850733904, 'corporate'),\n",
" ('FAKE', -2.1316069320786863, 'kelly'),\n",
" ('FAKE', -2.100506081374764, 'establishment'),\n",
" ('FAKE', -2.063743396467079, 'email'),\n",
" ('FAKE', -2.047274951558231, 'snip'),\n",
" ('FAKE', -2.0443830149677353, 'print'),\n",
" ('FAKE', -1.9775756559762447, 'mosul'),\n",
" ('FAKE', -1.8875909018863903, 'oct'),\n",
" ('FAKE', -1.8829089357171849, 'war'),\n",
" ('FAKE', -1.844565871218784, 'corruption'),\n",
" ('FAKE', -1.8422478599882626, '26'),\n",
" ('FAKE', -1.8386058868939217, 'uk'),\n",
" ('FAKE', -1.8285844309040236, 'pipeline'),\n",
" ('FAKE', -1.8173437410790223, 'reuters'),\n",
" ('FAKE', -1.804934691375235, 'donald'),\n",
" ('FAKE', -1.7225692073057894, 'stated'),\n",
" ('FAKE', -1.7216024583216563, 'fbi'),\n",
" ('FAKE', -1.7171991085276201, 'watch'),\n",
" ('FAKE', -1.7084797259301832, 'order'),\n",
" ('REAL', 4.508982042083319, 'said'),\n",
" ('REAL', 3.3796648925637793, 'says'),\n",
" ('REAL', 2.7428581189713164, 'continue'),\n",
" ('REAL', 2.675308116230245, 'conservative'),\n",
" ('REAL', 2.638551059102554, 'gop'),\n",
" ('REAL', 2.4045606763615432, 'convention'),\n",
" ('REAL', 2.2410618398240536, 'marriage'),\n",
" ('REAL', 2.212540718614501, 'cruz'),\n",
" ('REAL', 2.183898002782542, 'friday'),\n",
" ('REAL', 2.124815973937978, 'rush'),\n",
" ('REAL', 2.0707150774238916, 'candidates'),\n",
" ('REAL', 1.9853629354008258, 'sen'),\n",
" ('REAL', 1.9729043146369485, 'say'),\n",
" ('REAL', 1.9657190715110686, 'religious'),\n",
" ('REAL', 1.9311072591240155, 'tuesday'),\n",
" ('REAL', 1.9138872139225251, 'debate'),\n",
" ('REAL', 1.8162413993482667, 'islamic'),\n",
" ('REAL', 1.8093845232958181, 'fox'),\n",
" ('REAL', 1.784804594337268, 'polarization'),\n",
" ('REAL', 1.7842543921517697, 'attacks'),\n",
" ('REAL', 1.7747155390419898, 'message'),\n",
" ('REAL', 1.7705633058033061, 'department'),\n",
" ('REAL', 1.7491082531650968, 'sanders'),\n",
" ('REAL', 1.7389738921456226, 'trade'),\n",
" ('REAL', 1.7015175820515849, 'conservatives'),\n",
" ('REAL', 1.699272122627768, 'baltimore'),\n",
" ('REAL', 1.6960675135616523, 'told'),\n",
" ('REAL', 1.679538975802049, 'nomination'),\n",
" ('REAL', 1.5914923698104775, 'percent'),\n",
" ('REAL', 1.588312518913584, 'oil')]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def most_informative_feature_for_binary_classification(vectorizer, classifier, n=100):\n",
" \"\"\"\n",
" See: https://stackoverflow.com/a/26980472\n",
" \n",
" Identify most important features if given a vectorizer and binary classifier. Set n to the number\n",
" of weighted features you would like to show. (Note: current implementation merely prints and does not \n",
" return top classes.)\n",
" \"\"\"\n",
"\n",
" class_labels = classifier.classes_\n",
" feature_names = vectorizer.get_feature_names()\n",
" topn_class1 = sorted(zip(classifier.coef_[0], feature_names))[:n]\n",
" topn_class2 = sorted(zip(classifier.coef_[0], feature_names))[-n:]\n",
" \n",
" l = []\n",
" \n",
" for coef, feat in topn_class1:\n",
" l.append((class_labels[0], coef, feat))\n",
"\n",
" display(l)\n",
"\n",
" for coef, feat in reversed(topn_class2):\n",
" l.append((class_labels[1], coef, feat))\n",
" \n",
" display(l)\n",
"\n",
"\n",
"most_informative_feature_for_binary_classification(tfidf_vectorizer_1, linear_clf, n=30)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 2\n",
"\n",
"* read data"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"----\n",
"#### Train Data:"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>label</th>\n",
" <th>statement</th>\n",
" <th>subjects</th>\n",
" <th>speaker</th>\n",
" <th>job</th>\n",
" <th>state</th>\n",
" <th>party</th>\n",
" <th>#barely_true</th>\n",
" <th>#false</th>\n",
" <th>#half_true</th>\n",
" <th>#mostly_true</th>\n",
" <th>#pants_on_fire</th>\n",
" <th>context</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2635.json</td>\n",
" <td>false</td>\n",
" <td>Says the Annies List political group supports ...</td>\n",
" <td>abortion</td>\n",
" <td>dwayne-bohac</td>\n",
" <td>State representative</td>\n",
" <td>Texas</td>\n",
" <td>republican</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>a mailer</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1123.json</td>\n",
" <td>false</td>\n",
" <td>Health care reform legislation is likely to ma...</td>\n",
" <td>health-care</td>\n",
" <td>blog-posting</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>none</td>\n",
" <td>7.0</td>\n",
" <td>19.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>44.0</td>\n",
" <td>a news release</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>12465.json</td>\n",
" <td>true</td>\n",
" <td>The Chicago Bears have had more starting quart...</td>\n",
" <td>education</td>\n",
" <td>robin-vos</td>\n",
" <td>Wisconsin Assembly speaker</td>\n",
" <td>Wisconsin</td>\n",
" <td>republican</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>a an online opinion-piece</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>5947.json</td>\n",
" <td>false</td>\n",
" <td>When Mitt Romney was governor of Massachusetts...</td>\n",
" <td>history,state-budget</td>\n",
" <td>mitt-romney</td>\n",
" <td>Former governor</td>\n",
" <td>Massachusetts</td>\n",
" <td>republican</td>\n",
" <td>34.0</td>\n",
" <td>32.0</td>\n",
" <td>58.0</td>\n",
" <td>33.0</td>\n",
" <td>19.0</td>\n",
" <td>an interview with CBN News</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>620.json</td>\n",
" <td>true</td>\n",
" <td>McCain opposed a requirement that the governme...</td>\n",
" <td>federal-budget</td>\n",
" <td>barack-obama</td>\n",
" <td>President</td>\n",
" <td>Illinois</td>\n",
" <td>democrat</td>\n",
" <td>70.0</td>\n",
" <td>71.0</td>\n",
" <td>160.0</td>\n",
" <td>163.0</td>\n",
" <td>9.0</td>\n",
" <td>a radio ad</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id label statement \\\n",
"0 2635.json false Says the Annies List political group supports ... \n",
"3 1123.json false Health care reform legislation is likely to ma... \n",
"5 12465.json true The Chicago Bears have had more starting quart... \n",
"12 5947.json false When Mitt Romney was governor of Massachusetts... \n",
"16 620.json true McCain opposed a requirement that the governme... \n",
"\n",
" subjects speaker job \\\n",
"0 abortion dwayne-bohac State representative \n",
"3 health-care blog-posting NaN \n",
"5 education robin-vos Wisconsin Assembly speaker \n",
"12 history,state-budget mitt-romney Former governor \n",
"16 federal-budget barack-obama President \n",
"\n",
" state party #barely_true #false #half_true #mostly_true \\\n",
"0 Texas republican 0.0 1.0 0.0 0.0 \n",
"3 NaN none 7.0 19.0 3.0 5.0 \n",
"5 Wisconsin republican 0.0 3.0 2.0 5.0 \n",
"12 Massachusetts republican 34.0 32.0 58.0 33.0 \n",
"16 Illinois democrat 70.0 71.0 160.0 163.0 \n",
"\n",
" #pants_on_fire context \n",
"0 0.0 a mailer \n",
"3 44.0 a news release \n",
"5 1.0 a an online opinion-piece \n",
"12 19.0 an interview with CBN News \n",
"16 9.0 a radio ad "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"----\n",
"#### Test Data:"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>label</th>\n",
" <th>statement</th>\n",
" <th>subjects</th>\n",
" <th>speaker</th>\n",
" <th>job</th>\n",
" <th>state</th>\n",
" <th>party</th>\n",
" <th>#barely_true</th>\n",
" <th>#false</th>\n",
" <th>#half_true</th>\n",
" <th>#mostly_true</th>\n",
" <th>#pants_on_fire</th>\n",
" <th>context</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>11972.json</td>\n",
" <td>true</td>\n",
" <td>Building a wall on the U.S.-Mexico border will...</td>\n",
" <td>immigration</td>\n",
" <td>rick-perry</td>\n",
" <td>Governor</td>\n",
" <td>Texas</td>\n",
" <td>republican</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" <td>42</td>\n",
" <td>23</td>\n",
" <td>18</td>\n",
" <td>Radio interview</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11685.json</td>\n",
" <td>false</td>\n",
" <td>Wisconsin is on pace to double the number of l...</td>\n",
" <td>jobs</td>\n",
" <td>katrina-shankland</td>\n",
" <td>State representative</td>\n",
" <td>Wisconsin</td>\n",
" <td>democrat</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>a news conference</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>11096.json</td>\n",
" <td>false</td>\n",
" <td>Says John McCain has done nothing to help the ...</td>\n",
" <td>military,veterans,voting-record</td>\n",
" <td>donald-trump</td>\n",
" <td>President-Elect</td>\n",
" <td>New York</td>\n",
" <td>republican</td>\n",
" <td>63</td>\n",
" <td>114</td>\n",
" <td>51</td>\n",
" <td>37</td>\n",
" <td>61</td>\n",
" <td>comments on ABC's This Week.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5962.json</td>\n",
" <td>true</td>\n",
" <td>Over the past five years the federal governmen...</td>\n",
" <td>federal-budget,pensions,retirement</td>\n",
" <td>brendan-doherty</td>\n",
" <td>NaN</td>\n",
" <td>Rhode Island</td>\n",
" <td>republican</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>a campaign website</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>7070.json</td>\n",
" <td>true</td>\n",
" <td>Says that Tennessee law requires that schools ...</td>\n",
" <td>county-budget,county-government,education,taxes</td>\n",
" <td>stand-children-tennessee</td>\n",
" <td>Child and education advocacy organization.</td>\n",
" <td>Tennessee</td>\n",
" <td>none</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>in a post on Facebook.</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id label statement \\\n",
"0 11972.json true Building a wall on the U.S.-Mexico border will... \n",
"1 11685.json false Wisconsin is on pace to double the number of l... \n",
"2 11096.json false Says John McCain has done nothing to help the ... \n",
"5 5962.json true Over the past five years the federal governmen... \n",
"6 7070.json true Says that Tennessee law requires that schools ... \n",
"\n",
" subjects speaker \\\n",
"0 immigration rick-perry \n",
"1 jobs katrina-shankland \n",
"2 military,veterans,voting-record donald-trump \n",
"5 federal-budget,pensions,retirement brendan-doherty \n",
"6 county-budget,county-government,education,taxes stand-children-tennessee \n",
"\n",
" job state party \\\n",
"0 Governor Texas republican \n",
"1 State representative Wisconsin democrat \n",
"2 President-Elect New York republican \n",
"5 NaN Rhode Island republican \n",
"6 Child and education advocacy organization. Tennessee none \n",
"\n",
" #barely_true #false #half_true #mostly_true #pants_on_fire \\\n",
"0 30 30 42 23 18 \n",
"1 2 1 0 0 0 \n",
"2 63 114 51 37 61 \n",
"5 1 2 1 1 0 \n",
"6 0 0 0 0 0 \n",
"\n",
" context \n",
"0 Radio interview \n",
"1 a news conference \n",
"2 comments on ABC's This Week. \n",
"5 a campaign website \n",
"6 in a post on Facebook. "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"names = [\n",
" \"id\",\n",
" \"label\",\n",
" \"statement\",\n",
" \"subjects\",\n",
" \"speaker\",\n",
" \"job\",\n",
" \"state\",\n",
" \"party\",\n",
" \"#barely_true\",\n",
" \"#false\",\n",
" \"#half_true\",\n",
" \"#mostly_true\",\n",
" \"#pants_on_fire\",\n",
" \"context\"\n",
"]\n",
"\n",
"df_2_train = pd.read_csv(\"data/train.tsv\", delimiter='\\t', names=names)\n",
"df_2_test = pd.read_csv(\"data/test.tsv\", delimiter='\\t', names=names)\n",
"\n",
"# use only 'False' and 'True' statements\n",
"\n",
"df_2_train = df_2_train[df_2_train['label'].isin([\"false\",\"true\"])]\n",
"df_2_test = df_2_test[df_2_test['label'].isin([\"false\",\"true\"])]\n",
"\n",
"display(Markdown(\"----\\n#### Train Data:\"))\n",
"display(df_2_train.head())\n",
"display(Markdown(\"----\\n#### Test Data:\"))\n",
"display(df_2_test.head())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### tdidf vectorizer on new dataset\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"X2 = df_2_train['statement']\n",
"y2 = df_2_train['label']\n",
"Xt2 = df_2_test['statement']\n",
"yt2 = df_2_test['label']\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"count_vectorizer_2 = TfidfVectorizer(stop_words='english', max_df=0.7)\n",
"count_train_2 = count_vectorizer_2.fit_transform(X2)\n",
"count_test_2 = count_vectorizer_2.transform(Xt2)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf_b = MultinomialNB()\n",
"clf_b.fit(count_train_2, y2)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.6192560175054704'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbbaf9c4908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2\", Xt=count_test_2, yt=yt2, clf=clf_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 3"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.45295404814004375'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbbafe56f60>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yt2_c3 = yt2.copy()\n",
"yt2_c3[yt2_c3 == \"true\"] = \"REAL\"\n",
"yt2_c3[yt2_c3 == \"false\"] = \"FAKE\"\n",
"\n",
"test_classifier(labels=[\"FAKE\", \"REAL\"], \n",
" title=\"configuration 3: model a) → dataset 2\",\n",
" Xt=count_vectorizer_1.transform(Xt2),\n",
" yt=yt2_c3, clf=clf_a)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.4807995791688585'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbbafdd90f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yt1_c3 = yt1.copy()\n",
"yt1_c3[yt1_c3 == \"REAL\"] = \"true\"\n",
"yt1_c3[yt1_c3 == \"FAKE\"] = \"false\"\n",
"\n",
"test_classifier(labels=[\"false\", \"true\"], \n",
" title=\"configuration 3: model b) → dataset 1\",\n",
" Xt=count_vectorizer_2.transform(Xt1),\n",
" yt=yt1_c3, clf=clf_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}