nlp-lab/Jonas_Solutions/Task_02_JonasWeinz.ipynb
2018-05-13 18:29:18 +02:00

1523 lines
186 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:\\n' + 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": [
"X1, Xt1, y1, yt1 = train_test_split(df_1.drop('label', axis=1)['text'], df_1.label, test_size=0.25, random_state=4222)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"vectorizer_1 = CountVectorizer(stop_words='english')\n",
"vec_train_1 = vectorizer_1.fit_transform(X1)\n",
"vec_test_1 = vectorizer_1.transform(Xt1)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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": 11,
"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": 12,
"metadata": {},
"outputs": [],
"source": [
"#display(tfidf_vectorizer.get_feature_names()[:10])\n",
"#display(tfidf_vectorizer.get_feature_names()[-10:])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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": 14,
"metadata": {},
"outputs": [],
"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": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.9320143127762577'\n",
"Confusion matrix, without normalization\n",
"'score: 0.8838383838383839'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f458289be80>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f45828bbd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf_a = MultinomialNB()\n",
"clf_a.fit(vec_train_1, y1)\n",
"test_classifier(labels=[\"FAKE\",\"REAL\"], title=\"Configuration 1, model a -- train\", Xt=vec_train_1,yt=y1, clf=clf_a)\n",
"test_classifier(labels=[\"FAKE\",\"REAL\"], title=\"Configuration 1, model a -- test\", Xt=vec_test_1,yt=yt1, clf=clf_a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* try to get most important features"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\ndef 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\\nmost_informative_feature_for_binary_classification(tfidf_vectorizer_1, linear_clf, n=30)\\n'"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"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": 17,
"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"
},
{
"data": {
"text/markdown": [
"----\n",
"#### Valid 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>2</th>\n",
" <td>7891.json</td>\n",
" <td>false</td>\n",
" <td>Says Having organizations parading as being so...</td>\n",
" <td>campaign-finance,congress,taxes</td>\n",
" <td>earl-blumenauer</td>\n",
" <td>U.S. representative</td>\n",
" <td>Oregon</td>\n",
" <td>democrat</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>a U.S. Ways and Means hearing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>9416.json</td>\n",
" <td>false</td>\n",
" <td>Says when armed civilians stop mass shootings ...</td>\n",
" <td>guns</td>\n",
" <td>jim-rubens</td>\n",
" <td>Small business owner</td>\n",
" <td>New Hampshire</td>\n",
" <td>republican</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>in an interview at gun shop in Hudson, N.H.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>6861.json</td>\n",
" <td>true</td>\n",
" <td>Says Tennessee is providing millions of dollar...</td>\n",
" <td>education,state-budget</td>\n",
" <td>andy-berke</td>\n",
" <td>Lawyer and state senator</td>\n",
" <td>Tennessee</td>\n",
" <td>democrat</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>a letter to state Senate education committee c...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1122.json</td>\n",
" <td>false</td>\n",
" <td>The health care reform plan would set limits s...</td>\n",
" <td>health-care</td>\n",
" <td>club-growth</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>none</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>a TV ad</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>13138.json</td>\n",
" <td>true</td>\n",
" <td>Says Donald Trump started his career back in 1...</td>\n",
" <td>candidates-biography,diversity,housing</td>\n",
" <td>hillary-clinton</td>\n",
" <td>Presidential candidate</td>\n",
" <td>New York</td>\n",
" <td>democrat</td>\n",
" <td>40</td>\n",
" <td>29</td>\n",
" <td>69</td>\n",
" <td>76</td>\n",
" <td>7</td>\n",
" <td>the first presidential debate</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id label statement \\\n",
"2 7891.json false Says Having organizations parading as being so... \n",
"5 9416.json false Says when armed civilians stop mass shootings ... \n",
"6 6861.json true Says Tennessee is providing millions of dollar... \n",
"7 1122.json false The health care reform plan would set limits s... \n",
"8 13138.json true Says Donald Trump started his career back in 1... \n",
"\n",
" subjects speaker \\\n",
"2 campaign-finance,congress,taxes earl-blumenauer \n",
"5 guns jim-rubens \n",
"6 education,state-budget andy-berke \n",
"7 health-care club-growth \n",
"8 candidates-biography,diversity,housing hillary-clinton \n",
"\n",
" job state party #barely_true #false \\\n",
"2 U.S. representative Oregon democrat 0 1 \n",
"5 Small business owner New Hampshire republican 1 1 \n",
"6 Lawyer and state senator Tennessee democrat 0 0 \n",
"7 NaN NaN none 4 5 \n",
"8 Presidential candidate New York democrat 40 29 \n",
"\n",
" #half_true #mostly_true #pants_on_fire \\\n",
"2 1 1 0 \n",
"5 0 1 0 \n",
"6 0 0 0 \n",
"7 4 2 0 \n",
"8 69 76 7 \n",
"\n",
" context \n",
"2 a U.S. Ways and Means hearing \n",
"5 in an interview at gun shop in Hudson, N.H. \n",
"6 a letter to state Senate education committee c... \n",
"7 a TV ad \n",
"8 the first presidential debate "
]
},
"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",
"df_2_valid= pd.read_csv(\"data/valid.tsv\", delimiter='\\t', names=names)\n",
"\n",
"# use only 'False' and 'True' statements\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",
"df_2_valid = df_2_valid[df_2_valid['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())\n",
"display(Markdown(\"----\\n#### Valid Data:\"))\n",
"display(df_2_valid.head())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### tdidf vectorizer on new dataset\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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",
"Xv2 = df_2_valid['statement']\n",
"yv2 = df_2_valid['label']\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"vectorizer_2 = CountVectorizer(stop_words='english', max_df=0.7)\n",
"vec_train_2 = vectorizer_2.fit_transform(X2)\n",
"vec_test_2 = vectorizer_2.transform(Xt2)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf_b = MultinomialNB()\n",
"clf_b.fit(vec_train_2, y2)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.8760555706891855'\n",
"Confusion matrix, without normalization\n",
"'score: 0.6105032822757112'\n",
"Confusion matrix, without normalization\n",
"'score: 0.6527777777777778'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f45827aaf98>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f45828673c8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f457ff9bfd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2 -- train\", Xt=vec_train_2, yt=y2, clf=clf_b)\n",
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2 -- test\", Xt=vec_test_2, yt=yt2, clf=clf_b)\n",
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2 -- valid\", Xt=vectorizer_2.transform(Xv2), yt=yv2, clf=clf_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 3"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.4617067833698031'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f457feb8eb8>"
]
},
"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=[\"REAL\", \"FAKE\"], \n",
" title=\"configuration 3: model a) → dataset 2\",\n",
" Xt=vectorizer_1.transform(Xt2),\n",
" yt=yt2_c3, clf=clf_a)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.4962121212121212'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f457fe43978>"
]
},
"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=[\"true\", \"false\"], \n",
" title=\"configuration 3: model b) → dataset 1\",\n",
" Xt=vectorizer_2.transform(Xt1),\n",
" yt=yt1_c3, clf=clf_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 4)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"def get_dataset3_split(dataset1_in, dataset2_in):\n",
" try:\n",
" print('processing datasets')\n",
" print('ds1=', dataset1_in)\n",
" print('ds2=', dataset2_in)\n",
"\n",
" print('-- fake news')\n",
" df1 = pd.read_csv(dataset1_in, sep=',', usecols=['title','text','label'])\n",
" df1['claim'] = df1[['title', 'text']].apply(lambda x: '. '.join(x), axis=1)\n",
" del df1['title']\n",
" del df1['text']\n",
" df1.rename(index=str, columns={'label': 'y'}, inplace=True)\n",
" print(df1.keys())\n",
" print(len(df1[df1['y']=='REAL']))\n",
" print(len(df1[df1['y']=='FAKE']))\n",
" df1['y'] = np.where(df1['y'] == 'FAKE', 'false', 'true')\n",
" print(len(df1))\n",
"\n",
" print('-- liar liar')\n",
" df2 = pd.read_csv(dataset2_in, sep='\\t', header=None, usecols=[1,2], names=['y', 'claim'])\n",
" print(df2.keys())\n",
" print(set(df2.y), len(df2))\n",
" print(len(df2[df2['y'] == 'true']))\n",
" print(len(df2[df2['y'] == 'false']))\n",
" df2=df2[(df2['y'] == 'true') | (df2['y'] == 'false')]\n",
" print(set(df2.y), len(df2))\n",
"\n",
" df3=pd.concat([df1, df2], ignore_index=True)\n",
"\n",
" print(df3['y'].value_counts())\n",
" print('done')\n",
" return train_test_split(df3['claim'], df3['y'], test_size=0.25, random_state=4222)\n",
" except Exception as e:\n",
" print(e)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"processing datasets\n",
"ds1= data/fake_or_real_news.csv\n",
"ds2= data/train.tsv\n",
"-- fake news\n",
"Index(['y', 'claim'], dtype='object')\n",
"3171\n",
"3164\n",
"6335\n",
"-- liar liar\n",
"Index(['y', 'claim'], dtype='object')\n",
"{'mostly-true', 'pants-fire', 'half-true', 'barely-true', 'false', 'true'} 10240\n",
"1676\n",
"1995\n",
"{'true', 'false'} 3671\n",
"false 5159\n",
"true 4847\n",
"Name: y, dtype: int64\n",
"done\n"
]
}
],
"source": [
"X3, Xt3, y3, yt3 = get_dataset3_split('data/fake_or_real_news.csv', 'data/train.tsv')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"vectorizer_3 = CountVectorizer(stop_words='english')\n",
"vec_train_3 = vectorizer_3.fit_transform(X3)\n",
"vec_test_3 = vectorizer_3.transform(Xt3)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf_3 = MultinomialNB()\n",
"clf_3.fit(vec_train_3, y3)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.8030383795309168'\n",
"Confusion matrix, without normalization\n",
"'score: 0.746203037569944'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAUYAAAEmCAYAAAAeIzmqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XmcXfP9x/HXe2aykUgiIY1YoiTW2murfau1aFGqtdeu1aoW1Z+tihYttZVSUWppVcUaqaK1hERIJNZYQiJkDyF7Pr8/znfizs3MnZtxZ+7cmffT4zxy7/d8z/l+z8R88l3O+R5FBGZm9oWqclfAzKy1cWA0M8vjwGhmlseB0cwsjwOjmVkeB0YzszwOjG2IpC6SHpA0S9Lfv8R5Dpf0WCnrVg6SHpF0ZBOP/bWkqZI+KnW9rPVzYCwDSd+TNELSbEmT0i/wdiU49UFAH6BXRBzc1JNExB0RsUcJ6lOHpJ0khaT78tI3TulPFnme8yXd3li+iNgrIgY1oZ6rA2cA60fEV5b1eKt8DowtTNJPgT8AvyELYqsD1wH7l+D0awBvRsTCEpyruUwBtpHUKyftSODNUhWgzJf5f3t1YFpETG5C2TVfolxrLSLCWwttQHdgNnBwgTydyALnh2n7A9Ap7dsJmEDWmpkMTAKOTvsuAOYDC1IZxwLnA7fnnLs/EEBN+n4U8A7wKfAucHhO+tM5x20LDAdmpT+3zdn3JHAR8Ew6z2NA7waurbb+NwCnpLRqYCLwf8CTOXmvAj4APgFeBLZP6XvmXeeonHpcnOoxB1g7pR2X9l8P3Jtz/suAxwHl1XG3dPzidP5bU/q3gLHAzHTe9XKOeQ/4BTAamFf78/VWuVvZK9CetvRLvbDQLw5wITAMWBlYCXgWuCjt2ykdfyHQAdgb+BzomfbnB8IGAyOwfAo666R9fYEN0uclgRFYEZgB/CAdd1j63ivtfxJ4GxgIdEnfL23g2moD47bA8yltb2AIcFxeYPw+0CuVeQbwEdC5vuvKqcf7wAbpmA55gXE5slbpUcD2wFRg1UL1zPk+EPgM2D2d9+fAOKBj2v8e8DKwGtAlpV0HXFfu/+e8NW1zV7pl9QKmRuGu7uHAhRExOSKmkLUEf5Czf0HavyAiHiZr1azTxPosBjaU1CUiJkXE2Hry7AO8FRF/jYiFEXEn8DqwX06ev0TEmxExB7gH2KRQoRHxLLCipHWAI4Db6slze0RMS2VeQdaSbuw6b42IsemYBXnn+5zs53glcDtwWkRMaOR8tb4LPBQRQ9N5Lyf7R2DbnDxXR8QH6WdARJwcEScXeX5rZRwYW9Y0oHcj41CrAONzvo9PaUvOkRdYPwe6LmtFIuIzsl/4E4FJkh6StG4R9amtU7+c77kzt8XW56/AqcDOwH35OyX9TNJraYZ9JtkwRO9GzvlBoZ0R8TzZ0IHIAnix6vwMImJxKiv3Z1CwbKssDowt6zmyMagDCuT5kGwSpdbqKa0pPiPrQtaqM8MaEUMiYneybvTrwE1F1Ke2ThObWKdafwVOBh5OrbklJG1P1l09hGyYoAfZ+KZqq97AOQsuFSXpFLKW54fp/MWq8zOQJLJuc+7PwMtUtSEOjC0oImaRTTJcK+kASctJ6iBpL0m/TdnuBM6VtJKk3il/o7emNOBlYAdJq0vqDpxdu0NSH0n7S1qeLFjPJuta53sYGJhuMaqR9F1gfeDBJtYJgIh4F9gR+GU9u7uRjaVOAWok/R+wQs7+j4H+yzLzLGkg8GuyscsfAD+XVLDLn+MeYB9Ju0rqQDbmOY9s/NfaIAfGFpbGy34KnEv2i/8BWZfyXynLr4ERZDOcrwAjU1pTyhoK3J3O9SJ1g1lVqseHwHSyIHVSPeeYBuxLFgymkbW09o2IqU2pU965n46I+lrDQ4BHySZLxgNzqdtVrb15fZqkkY2Vk4Yubgcui4hREfEWcA7wV0mdiqjnG2QB9Y9kkzb7AftFxPwCZd4g6YbGzm2tkyLcAzAzy+UWo5lZHgdGM7M8DoxmZnkcGM3M8jgwVqj8JcZa21Jhks6R9Ody16Mc0u1RsyVVl7su1jQOjM2spZYYi2ZaKqwYaTmxOo/XRcRvIuK4Zi73lrRc2dolPOdRkp7+MueIiPcjomtELCpVvaxlOTA2o7awxFgJlvBqFukfl7XKVLZbgm1duVexaKsbLb/E2FHUXSpsD+ANskfprgOe4ouVZs6n8HJkT7L0El5HA6+RLS32DnBCyrs8dZfpmk32bHF+GY0t2/UzshvRZ5HdlN65wM+tBngJ2CjVe+0S/Z2tR3Yz+aJ0HTNT+q1ky5Y9TPaY5W5ki2u8RLZC0QfA+Y38PItams1b69haXUugDdkG6Ew9CyTk+CWwNdlqNBsDW5I9EVPrK2QBth9Z8LtWUs+IOI+sFXp3ZF22m3NPmh4l/AfZI4C9yAJk7kowxfgBcDzZ43njyYLzvmSP5h0N/F7SZpEtRrEX8GGqS9fIe5olPY53J3A62VJqDwMPSOqYk+0QsmXZ1iQLeEcVqNtPgP9GxOhlvKaCIuI1skU1nkvX0SNn9/fI/rHoBjxNFiCPAHqQBcmTJBV6Bv57ZD+3lYGOZP8QWCvlwNh8yrnE2N7A2Ij4Zyr/auqugFOMWyNnCa+IeCgi3o7MU2Stnu2LPFexy3Z9GBHTgQdoYOkySasBJ5A9Q96S7o+IZyJicUTMjYgnI+KV9H00WeDfscDxf4llWJrNysuBsfmUc4mxVch5tjgigqxbvizqLKOVFroYJml6WgZsbxpfBiy3Po0t21Xs0mV/IPvHYlZjhaaZ8dlpuyFntni2pNlF1r1W/s9jK0lPSJoiaRZZS7PQz6MpS7NZmTgwNp+WXmIs1yRg1dovaZmsVXP2F1yOLFnyEH1aaOFespZen9TFfJjGlwGrVcyyXcXaFfidpI9y3uD3nKTvLXUB2cx4bff+xPhitrhrRDQUmIpd0uxvwGBgtYjoTva6Bi11lFUkB8ZmEi2/xFiuh4CvpXJrgFOoG/waXI6sAR3JJoqmAAsl7UU2uVPrY6BXOld9Srls10Cy8dhN+KI7uh+Fx3KXxcfAqnnjn/XpBkyPiLmStiQbQ7Q2woGxGUULLjGWV+5U4GDgt2Rd+vVTOfPS/kLLkdV3vk+BH5EFuBlkQWBwzv7XyYL8O5JmSlol7/hlXrarQF0mR8RHtVtKnprG7krhP2Sz5x9JKrS02snAhZI+JfsHbVlWBLdWzsuOtQPpPsQJZG8BfKLc9TFr7dxibKMkfVNSjzQ+eA7Z+NewMlfLrCI4MLZd25C91rS263pACbubZm2au9JmZnncYjQzy1Po5uOKpJouoY7dyl0Ny7PpequXuwrWgJEjX5waESuV6nzVK6wRsbDxUZuYM2VIROxZqnJLqe0Fxo7d6LTOIeWuhuV55vlryl0Fa0CXDhrfeK7ixcI5Rf0Ozn352mKfnGpxbS4wmlmZSVBV2SuzOTCaWem1viU8l4kDo5mVnir7sXEHRjMrMbnFaGZWh/AYo5lZXXJX2sxsKe5Km5nlcYvRzCyH72M0M6uHu9JmZrl8u46Z2dKqPMZoZvaFNnAfY2W3d82sFUpd6ca2xs4idZb0gqRRksZKuiClrynpeUnjJN1d+0ZHSZ3S93Fpf/+cc52d0t+Q9M3GynZgNLPSkxrfGjcP2CUial+Xu6ekrYHLgN9HxNpkb608NuU/FpiR0n+f8iFpfeBQYANgT+A6SQWbtA6MZlZ6JWgxRmZ2+tohbQHsAvwjpQ8CDkif90/fSft3laSUfldEzIuId4FxwJaFynZgNLPSqr2PsbGtqFOpWtLLwGRgKNkL3mZGxMKUZQLQL33uR/budtL+WUCv3PR6jqmXJ1/MrPSK6yr3ljQi5/uNEXFjboaIWARsIqkHcB+wbukq2TAHRjMrsaLvY5waEVsUkzEiZkp6guy1wD0k1aRW4arAxJRtIrAaMEFSDdAdmJaTXiv3mHq5K21mpVeCyRdJK6WWIpK6ALsDrwFPAAelbEcC96fPg9N30v7/RPZ+6MHAoWnWek1gAPBCobLdYjSz0pKgqiShpS8wKM0gVwH3RMSDkl4F7pL0a+Al4OaU/2bgr5LGAdPJZqKJiLGS7gFeBRYCp6QueoMcGM2s9Eqwuk5EjAY2rSf9HeqZVY6IucDBDZzrYuDiYst2YDSz0vOz0mZmebweo5lZDq/HaGa2NLnFaGb2BeHAaGZWl9JWwRwYzazERFWVZ6XNzOpwV9rMLI8Do5lZLo8xmpnVJY8xmpktzV1pM7M8DoxmZrk8xmhmVpfHGM3M6uGutJlZvsqOiw6MZlZicovRzGwpHmM0M8sh5BajFa9Txxr+ffPpdOxYQ011Nff9+yV+fcPD/OXiI9ls/dVZsHARI8aM59SL72ThwsUAbL/5AH535nfoUFPNtJmz2eO4qwDYfdv1uPzMg6iuquLWfz3L5X8ZWs5La1Pmzp3LbjvvwPx581i4aCEHfvsgfnXeBfzwmKP43/+eovsK3QG48eZb2XiTTXhg8P1ceN6vqKqqoqamht9e8Qe+sd12Zb6KMqvsuOjA2JLmzV/InsdfzWdz5lNTU8V/bvkpjz3zKnc9MpyjfzkIgEGXHMXRB27LTX9/mu5du3DVOYew/ynX8cFHM1ipZ1cAqqrEH846hH1OuoaJH8/k6TvO5MGnXuH1dz4q5+W1GZ06deLRof+ha9euLFiwgF123I49vrkXAL+59Hd8+zsH1cm/8y67su9+30ISr4wezfe/dwijxrxejqq3Dm1gjLGyBwIq0Gdz5gPQoaaamppqIoIhT7+6ZP+IMePpt3JPAL671xbc//goPvhoBgBTZswG4Osb9uftD6by3sRpLFi4iL8PGcm+O23UwlfSdkmia9fsH6EFCxawcMGCgr/oXbt2XbL/s88+q/igUApVVVWNbq1Z665dG1RVJYbddRbvP34p/xn2OsPHjF+yr6amisP22ZKhz2aBcsAaK9NjheUYctOPeeaOn/O9fbNX6a6ycncmfDxjyXETP55Bv5W6t+yFtHGLFi1iq803YfVVVmaX3XZny622AuD8//slX990I8484yfMmzdvSf77/3UfG2+4Lt/efx9uuPGWclW79VARWyvWIoFRUg9JJ7dEWa3d4sXB1odeytrfPJctNlyD9dfqu2TfVWd/l2dGjuOZl94GoKa6is3WW40DT7ueb51yLWf/cE/WXn3lclW9Xamurub5F19m3HsTGDH8BcaOGcOFF1/CqDGv8/Sw4cyYPp0rfnfZkvz7H3Ago8a8zj33/osLz/9VGWveOkhqdGvNWqrF2ANYKjBKardjnLNmz+GpEW+yx7brA3DO8XuxUs+u/PyKfy7JM3HyTIY+9xqfz53PtJmf8fTIcWw0sB8fTp7Fqn16LsnXr09PJk6Z1eLX0B706NGDHXfamccee5S+ffsiiU6dOnHEUUczYvgLS+XfbvsdePfdd5g6dWoZats6FBMUHRgzlwJrSXpZ0nBJ/5M0GHhVUn9JY2ozSvqZpPPT57UkPSrpxXTMui1U32bRu2dXunftAkDnTh3Ydat1eeO9jznqwG3Yfdv1OOLsW4mIJfkfeHI0226yFtXVVXTp3IGvb9if19/9iBFjx7P26iuxxiq96FBTzcHf3IyHnhxdrstqc6ZMmcLMmTMBmDNnDo//eyjrrLMukyZNAiAiGHz/v1h/gw0BeHvcuCV/by+NHMm8efPo1atXeSrfSlT6GGNLtdjOAjaMiE0k7QQ8lL6/K6l/geNuBE6MiLckbQVcB+ySn0nS8cDxAHToWtqal9BXeq/ATRf+gOqqKqqqxL1DR/LI/8bw6fCreH/SdJ4cdAYA9//nZS658VHeePdjhj77KsPvOZvFi4Nb73uWV9/Ofjl/ctk9PHDdKVRXiUH3D+M1z0iXzEeTJvHDY45k0aJFLI7FfOegQ9h7n33Zc/ddmDplCkGw0Uab8MfrbgDgvvvu5W+330aHmg507tKFv95xd6tvETW7Ely+pNWA24A+QAA3RsRVqeH0Q2BKynpORDycjjkbOBZYBPwoIoak9D2Bq4Bq4M8RcWnBsnNbKM0lBb8HI2LDFBjPi4id8/el7z8DugKXk134Gzmn6hQR6xUqq2q5laPTOoeU+Arsy5ox/JpyV8Ea0KWDXoyILUp1vk59BkS/w69qNN+7v9+nYLmS+gJ9I2KkpG7Ai8ABwCHA7Ii4PC//+sCdwJbAKsC/gYFp95vA7sAEYDhwWES8SgPKNcb3Wc7nhdTt0ndOf1YBMyNikxarlZl9eSW6jzEiJgGT0udPJb0G9CtwyP7AXRExD3hX0jiyIAkwLiLeAZB0V8rbYGBsqY7+p0C3BvZ9DKwsqZekTsC+ABHxCdnFHQygzMYtUlsza7JsPcbGN6C3pBE52/ENnjPrWW4KPJ+STpU0WtItkmpnIvsBH+QcNiGlNZTeoBZpMUbENEnPpEmWOWTBsHbfAkkXAi8AE4HcRwYOB66XdC7QAbgLGNUSdTazpiuywTi1mC68pK7AvcDpEfGJpOuBi8jGHS8CrgCOaXptl9ZiXemI+F6BfVcDV9eT/i6wZ3PWy8xKr1STT5I6kAXFOyLinwAR8XHO/puAB9PXicBqOYevmtIokF6v1j1nbmaVR1mLsbGt0dNk0fVm4LWIuDInvW9OtgOB2tv9BgOHSuokaU1gAFlPdDgwQNKakjoCh6a8DWq3N1ibWfMQUF1dkhbjN4AfAK9IejmlnQMcJmkTsq70e8AJABExVtI9ZJMqC4FTImIRgKRTgSFkt+vcEhFjCxXswGhmJVeiWemnqf+OyIcLHHMxcHE96Q8XOi6fA6OZlVaRXeXWzIHRzEpKVP56jA6MZlZiS+5TrFgOjGZWcm4xmpnl8hijmVldHmM0M6uHxxjNzPJUeIPRgdHMSqwNvD7VgdHMSiobYyx3Lb4cB0YzKzHfx2hmthR3pc3Mcvk+RjOzunwfo5lZPTzGaGaWxy1GM7NcHmM0M6tLyC1GM7N81W11jFHSCoUOjIhPSl8dM2sLKrzBWLDFOJbsLVy5l1j7PYDVm7FeZlah1JaflY6I1RraZ2ZWSIX3pKkqJpOkQyWdkz6vKmnz5q2WmVWyqio1urVmjQZGSdcAO5O9+Brgc+CG5qyUmVUukWamG/mvNStmVnrbiNhM0ksAETFdUsdmrpeZVbBW3iBsVDGBcYGkKrIJFyT1AhY3a63MrHKp8u9jLGaM8VrgXmAlSRcATwOXNWutzKxiiew+xsa2Rs8jrSbpCUmvShor6ccpfUVJQyW9lf7smdIl6WpJ4ySNlrRZzrmOTPnfknRkY2U32mKMiNskvQjslpIOjogxjV6VmbVbJWowLgTOiIiRkroBL0oaChwFPB4Rl0o6CzgL+AWwFzAgbVsB1wNbSVoROA/Ygqzn+6KkwRExo6GCi5qVBqqBBcD8ZTjGzNoppe50oa0xETEpIkamz58CrwH9gP2BQSnbIOCA9Hl/4LbIDAN6SOoLfBMYGhHTUzAcCuxZqOxiZqV/CdwJrAKsCvxN0tmNXpWZtUtScRvQW9KInO34hs+p/sCmwPNAn4iYlHZ9BPRJn/sBH+QcNiGlNZTeoGImX44ANo2Iz1MFLwZeAi4p4lgza4eqi+tLT42ILRrLJKkr2TzH6RHxSW5rMyJCUjS5og0opls8iboBtCalmZnVqxRd6XSeDmRB8Y6I+GdK/jh1kUl/Tk7pE4HcJ/ZWTWkNpTeowcAo6feSrgSmA2Ml/VnSTcArwNSirsrM2h2R3cfY2NboebLoeTPwWkRcmbNrMFA7s3wkcH9O+hFpdnprYFbqcg8B9pDUM81g75HSGlSoK1078zwWeCgnfVjjl2Rm7ZZK9sjfN8ieuHtF0ssp7RzgUuAeSccC44FD0r6Hgb2BcWRP6B0NSx5KuQgYnvJdGBHTCxVcaBGJm5t2LWbW3pXiBu+IeBoafHZw13ryB3BKA+e6Bbil2LIbnXyRtBZwMbA+0DmnoIHFFmJm7UdtV7qSFTP5civwF7Lr3Qu4B7i7GetkZhWuVJMv5VJMYFwuIoYARMTbEXEuWYA0M1uKlN2u09jWmhVzH+O8tIjE25JOJJvm7ta81TKzStbK416jigmMPwGWB35ENtbYHTimOStlZpWttXeVG1PMIhLPp4+f8sVitWZmDarwuFjwLYH3kdZgrE9EfLtZamRmFU0qblmx1qxQi/GaFqtFCQ386ircePeF5a6G5el79B3lroK1oDbblY6Ix1uyImbWdlT62oTFTL6YmRVNtOEWo5lZU9VUeJOx6MAoqVNEzGvOyphZ5csWoq3sFmMxK3hvKekV4K30fWNJf2z2mplZxSrFsmPlVEyD92pgX2AaQESMAnZuzkqZWWUr8tUGrVYxXemqiBif1zRe1Ez1MbMKJ6CmtUe+RhQTGD+QtCUQkqqB04A3m7daZlbJKjwuFhUYTyLrTq8OfAz8O6WZmS1FElUVHhmLeVZ6MnBoC9TFzNqICo+LRa3gfRP1PDMdEQ2+A9bM2i8BNa192rkRxXSl/53zuTNwIHVfXm1mVkebbzFGRJ3XGEj6K/B0s9XIzCpbBdyn2JimPBK4JtCn1BUxs7ZDDb7crzIUM8Y4gy/GGKuA6cBZzVkpM6tc2RhjuWvx5RQMjMru6t6Y7D0vAIvTu1vNzBrUpp+VTkHw4YhYlDYHRTMrqPa90m39WemXJW3a7DUxs7ahiOekW3uDssHAKKm2m70pMFzSG5JGSnpJ0siWqZ6ZVZra+xgb2xo9j3SLpMmSxuSknS9poqSX07Z3zr6zJY1LseqbOel7prRxkoqaHyk0xvgCsBnwrWJOZGZWq0QtwlvJ3j11W1767yPi8rrlaX2yJ/Q2AFYB/i1pYNp9LbA7MIGskTc4Il4tVHChwCiAiHi7yIswMwNEVQlu14mI/0rqX2T2/YG70mLa70oaB2yZ9o2LiHcAJN2V8jY5MK4k6acFKn1lkRU2s3Yke+dLUVl7SxqR8/3GiLixiONOlXQEMAI4IyJmAP2AYTl5JqQ0qPuk3gRgq8YKKBQYq4GuUOF3appZy1LRz0pPjYgtlvHs1wMXkd1bfRFwBXDMMp6jUYUC46SI8AuazWyZLEOLcZlFxMdLyskWuHkwfZ0IrJaTdVW+uP+6ofQGFbpdxy1FM2uSqrQmY6GtKST1zfl6IFA7Yz0YOFRSJ0lrAgPIJpCHAwMkrSmpI9kEzeDGyinUYty1STU3s3avFC1GSXcCO5GNRU4AzgN2krQJWVf6PeAEgIgYK+keskmVhcApEbEonedUYAjZ8OAtETG2sbIbDIwRMf1LXJOZtVMSVJcgMkbEYfUk31wg/8XAxfWkPww8vCxlN2V1HTOzgip9HM6B0cxKKntWurJDowOjmZVcZYdFB0YzKzlR1dqXz2mEA6OZlZQobtmu1syB0cxKrtIXqnVgNLOSq+yw6MBoZiVWqvsYy8mB0cxKzl1pM7M8lR0WHRjNrBlUeIPRgdHMSkt4jNHMLI9QhXemHRjNrOQqvMHowGhmpZU9+VLZkdGB0cxKS1BV4c8EOjC2sEvPPo3nnnyMnr16c+uDzwDwxCP3c+s1lzH+7Te54e9DWfdrmwIw/JknuPGKi1iwYD4dOnTkpDPPZ7NtdgDgxz/4FtMmf0Snzl0AuPyWf9Cz10rluagK12/F5bj+hG1YqXsXIoJBT4zjT4+9wc2nbMeAvt0A6L5cR2Z9Pp8dzn0EgA1W68GVR29Jty4diIBdznuEeQsW06G6it8euQXbrduHxRH8+u+jeGDEB4WKb5M8xmjLZK9vH8a3v38cv/nFyUvS1hy4Lhf9cRBXnHdGnbzde/bikuvvoHefvrzz5muceexB3Pu/L1ZlP/fyPy0JotZ0Cxct5ty/jWT0+Bl07VzDExfuxZNjJnHstU8vyXPRYZvxyZz5AFRXiT+duC0n/ulZxrw/k55dO7JgYQBwxv4bMPWTeXz95w8gQc/lO5XlmsopW4+x3LX4ciq8wVt5Nv76tnTr3rNOWv+11mH1rw5YKu/A9Teid5/s3T9rDliXefPmMn/+vBapZ3vy8ay5jB4/A4DZcxfy5oez6LvicnXyHLjV6tz73HgAdvlaX8Z+MJMx788EYMbs+SyOLDB+f4e1+P0D2fuZImD67Pb596Ui/mvN3GKsEE8NeYCB629Ex45ftEAuPec0qquq2WGP/Tji5DMq/jGs1mC13suz0Ror8uK4qUvStl1nZSbPmss7H38KwFpf6UYE/OPMnem9Qmf+OWw8Vz/0Kiss1wGAc76zMdut14d3J3/KzweNYMonc8tyLeVU6St4N1uLUdKPJL0m6Y4G9u8k6cH69lld7771On+6/ALOuPDKJWnnXn4Dtz7wNH+840FGv/gcQ+6/u4w1bBuW71TDbT/anrPveJFP5y5ckv6dbdbg3mHvLfleU13F1uusxPHXP8teFz3GPpuvyg7r96Gmqop+vZbnhbemsNOvHmH4W1O56LDNynAl5VXblW5sa82asyt9MrB7RBzejGW0eZM/msi5px7BOZddR7/V11ySvlKfVQBYrms3dtv3O7w+emS5qtgm1FSLQT/anr8/+x4P5kyWVFeJfbdYjfuGjV+S9uH0z3n29clMnz2POfMXMXTUh2zcf0Wmz57HZ/MWLplsuf+F99mof8+lymr7iulIt+7I2CyBUdINwFeBRyT9QtJzkl6S9KykderJv6Okl9P2kqRuKf1MScMljZZ0QXPUtTX79JNZnHX8YZxwxq/42uZbLUlfuHAhM6dPyz4vWMBzTz7GmgPWK1c124Q/Hrc1b374Cdc9+nqd9J02+ApvTfqED2fMWZL2+OhJrL9aD7p0rKa6Snxj3ZV5Y+IsAIa8NIHt1usDwA4bfIU3PpzVchfRWii7wbuxrTVrljHGiDhR0p7AzsB84IqIWChpN+A3wHfyDvkZ2Quyn5HUFZgraQ9gALAlWet8sKQdIuK/zVHnlnLBT3/Iyy88w6wZ0zhohw05+rSz6NajB1dfdBYzp0/jrBMOY+31NuTym//BfbffxMT332XQtZcz6NrLgey2nM5dluPM4w5m4YIFLF68iM232ZF9DzmrTHhpAAAMtklEQVSizFdWubYeuBKHbvdVxr4/g//+ei8ALvr7KIaO+pBvb7PGkkmXWrM+n891j7zG4xfsCcDQUR/y2KgPATj/rpe54cRtueTwDkz9dB6n3vRcy15MK9AWnpVWpNm0kp9Yeg/YAugCXE0W5ALoEBHrStoJ+FlE7CvpLOBA4A7gnxExQdLlwEHAzHTKrsAlEbHUC7clHQ8cD9BnlVU3v+eJUc1yTdZ0+1/0SLmrYA2Yefv3X4yILUp1vvW+tmn85b4nGs23zYCeJS23lFridp2LgCciYkNgP6BzfoaIuBQ4jiyIPiNpXbJ/eC6JiE3StnZ9QTEdf2NEbBERW/To2av5rsTMiqMitlasJQJjd2Bi+nxUfRkkrRURr0TEZcBwYF1gCHBM6lojqZ+klVugvmb2JZVi8kXSLZImSxqTk7aipKGS3kp/9kzpknS1pHFpTmKznGOOTPnfknRkMfVvicD4W+ASSS/R8Jjm6ZLGSBoNLAAeiYjHgL8Bz0l6BfgH0K0F6mtmX1KJbte5FdgzL+0s4PGIGAA8nr4D7EU2XDeAbFjtesgCKXAesBXZfMV5tcG0kGa7wTsi+qePU4GBObvOTfufBJ5Mn09r4BxXAVc1Vx3NrJmUoKscEf+V1D8veX9gp/R5EFkM+UVKvy2ySZNhknpI6pvyDo2I6QCShpIF2zsLle0nX8yspLIhxKIiY29JI3K+3xgRNzZyTJ+ImJQ+fwT0SZ/7AbmrdUxIaQ2lF+TAaGalVfx9ilO/zKx0RISkZrmtxotImFnJNeMN3h+nLjLpz8kpfSKwWk6+VVNaQ+kFOTCaWYk16yOBg4HameUjgftz0o9Is9NbA7NSl3sIsIeknmnSZY+UVpC70mZWcqV48EXSnWSTJ70lTSCbXb4UuEfSscB44JCU/WFgb2Ac8DlwNEBETJd0EdltgAAX1k7EFOLAaGYlVar7tyPisAZ27VpP3gBOaeA8twC3LEvZDoxmVnKVvjaoA6OZlVyFx0UHRjMrvQqPiw6MZlZiFbBIRGMcGM2spLJXG1R2ZHRgNLOSq+yw6MBoZs2hwiOjA6OZlVxrf9lVYxwYzazkWvvrURvjwGhmpefAaGb2hWVYj7HVcmA0s9KqgPdGN8aB0cxKzoHRzKyOL7XeYqvgwGhmJecWo5lZjjbwqLQDo5mVntdjNDPLU+Fx0YHRzEqvwuOiA6OZlZjvYzQzq0t4jNHMbCmVHRYdGM2sGVR4g9GB0cxKz11pM7M8lR0WHRjNrMTUBmalq8pdATNre1TEf0WdR3pP0iuSXpY0IqWtKGmopLfSnz1TuiRdLWmcpNGSNmtq/R0YzazkaluNhbZlsHNEbBIRW6TvZwGPR8QA4PH0HWAvYEDajgeub2r9HRjNrORKHBjz7Q8MSp8HAQfkpN8WmWFAD0l9m1KAA6OZlVgxHWkB9JY0Imc7vp6TBfCYpBdz9veJiEnp80dAn/S5H/BBzrETUtoy8+SLmZVU9uRLUVmn5nSPG7JdREyUtDIwVNLruTsjIiRF02raMLcYzazkStWVjoiJ6c/JwH3AlsDHtV3k9OfklH0isFrO4aumtGXmwGhmJVeKWWlJy0vqVvsZ2AMYAwwGjkzZjgTuT58HA0ek2emtgVk5Xe5l4q60mZVW6e5j7APcl56iqQH+FhGPShoO3CPpWGA8cEjK/zCwNzAO+Bw4uqkFOzCaWUmV6tUGEfEOsHE96dOAXetJD+CUEhTtwGhmpednpc3M8lR4XHRgNLPSq/C46MBoZs2gwiOjA6OZlZSAqgrvSyubyGk7JE0hm8JvC3oDU8tdCVtKW/t7WSMiVirVySQ9SvYzaszUiNizVOWWUpsLjG2JpBFFPDJlLcx/L22fn3wxM8vjwGhmlseBsXW7sdwVsHr576WN8xijmVketxjNzPI4MJqZ5XFgNDPL48Bo1kTKW0Im/7tVLgdGsyaQpLT+H5J6wZL1AK0N8Kx0BZB0IPAZUBURj5a7PvYFSacB2wCTgKeARyJiQXlrZV+WW4ytnKRTgZ8BKwL3Stq+zFWyRNLBwMHASWTvI9nOQbFtcGBspdILfdYAdgd2IXs/7lPAs5I6lLVy7VTtGKKk2t+bfsClwIHAh8Av0/6vlKWCVjIOjK2XgClkLw3/P2BH4KCIWAQcKWlgOSvX3uSOKQK1ge8d4DfAERHxzYhYIOkM4MSc4GkVyOsxtkKStgM2iojrJC0HHBsRndO+7wHHkb0RzZpZbSsxZ6LldOAASfsAbwOvAcMlbQ4MBA4HfhARi8tUZSsBT760IqmVIeBYYHPgCbJ35t4O9CB7p+62wDER8Uq56tmeSOoUEfPS52OBHwIHR8QHaUhje7K/qx2BOcCF/rupfA6MrYik1SPi/dRKPJjsF25YRPxN0reARcBr6bWS1swkrU02hnhGRIyX9FOydxbPJXut5zHAdWT/cM0l+336vFz1tdLxOEgrIWkV4H+S9kq/XP8gayEeKekI4OGIeMhBsUXNJ+suXyKpL1lQPBn4KfA+2WTLDkD3iJjjoNh2ODC2ApJ+TnYv3DnAbyTtERGfRcSNQEdgI6BrOevYHkXE+8C1ZJMsV5DdFXAQ8J2IuBv4FFgVmFe2SlqzcGAsM0l7AzsBwyPiDuB3wJWS9knd5znAFRExs4zVbBfSLVJ1fidScLySrIX4J2DFiPhM0snAZcDxETGp5WtrzcljjC1MUkdg7Yh4VdJRwFnAuIjYNyfPQcAZZEHx9IgYXZbKtjOSukbE7PT5BGAFsqeNLpPUHfgF0J+sK90XmOWhjbbJgbGFpQH968geIVsduAU4HRgUEVfn5OsOLIyIz8pS0XYmtc73j4hjJf0EOAD4FXAN8EpEHC6pG3AxsBxZS9G35LRRvo+xhUXEOEmjgeOBX0TEXyVNBU5I9xD/MeWbVdaKtiNpEYgfAadKWgfYAtgrpb0NdJH0j4g4SNIvgS4Oim2bA2N53ACMAn4qaXpE3C1pMnCdpKkRcWeZ69fezAcWAucBAZwNbEnWgtxG0pbAI5Juj4jvk026WBvmwFgGETEOGCdpJnBx+rMz2S/osLJWrh2KiE8l/Yfs0cvL0z2LawLPpSzrkk2K3VWuOlrLcmAso4h4QNIC4HKyZcWOjYh3y1yt9upu4EXgGknTgEeATSXdQtat3jEi3itj/awFefKlFZC0MtnjuFPKXZf2TtJmZEHyHOBpshV0pvkfrPbFgdEsj6SNgf8AZ6eb7K2dcWA0q4ekDYE5EfF2uetiLc+B0cwsjx8JNDPL48BoZpbHgdHMLI8Do5lZHgdGM7M8DoxtlKRFkl6WNEbS39PrEpp6rp0kPZg+f0vSWQXy9khrFS5rGedL+lmx6Xl5bk1LtRVbVn9JY5a1jtZ+ODC2XXMiYpOI2JDsGewTc3fWtyhrMSJicERcWiBLD7Ll/80qlgNj+/A/YO3UUnpD0m1k75NZTdIekp6TNDK1LLsCSNpT0uuSRgLfrj2RpKMkXZM+95F0n6RRaduW7OVRa6XW6u9SvjMlDZc0WtIFOef6paQ3JT0NrNPYRUj6YTrPKEn35rWCd5M0Ip1v35S/WtLvcso+4cv+IK19cGBs4yTVkC2CUPtKzwHAdRGxAdnCFecCu0XEZsAIsqXQOgM3AfuRvanwK0udOHM18FREbAxsBowlW5H87dRaPVPSHqnMLYFNgM0l7aDsPcyHprS9ga8XcTn/jIivp/JeI3vNbK3+qYx9gBvSNRxLtsr219P5f5hWzTEryKvrtF1dJL2cPv8PuBlYBRgfEbVLm20NrA88o+y98h3JltpaF3g3It4CkHQ72cK6+XYBjgCIiEXALEk98/LskbaX0veuZIGyG3Bf7Zv1JA0u4po2lPRrsu56V2BIzr570uKxb0l6J13DHsBGOeOP3VPZbxZRlrVjDoxt15yI2CQ3IQW/3FclCBgaEYfl5atz3Jck4JKI+FNeGac34Vy3AgdExKj0vpydcvblP9saqezTIiI3gCKpfxPKtnbEXen2bRjwjfQeGiQtL2kg8DrQX9JaKd9hDRz/OHBSOrY6vafmU7LWYK0hwDE5Y5f90jJr/wUOkNQlvUtlvyLq2w2YJKkDcHjevoMlVaU6fxV4I5V9UsqPpIGSli+iHGvn3GJsxyJiSmp53SmpU0o+NyLelHQ88JCkz8m64t3qOcWPgRslHQssAk6KiOckPZNuh3kkjTOuBzyXWqyzge9HxEhJd5O94mEyMLyIKv8KeB6Ykv7MrdP7wAtkb/Y7MSLmSvoz2djjSGWFTyF7yZVZQV5dx8wsj7vSZmZ5HBjNzPI4MJqZ5XFgNDPL48BoZpbHgdHMLI8Do5lZnv8HwMWSOvETnxsAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f457f9a8e10>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f457fa31cf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test_classifier(labels=[\"true\",\"false\"], title=\"Configuration 4 -- train\", Xt=vec_train_3, yt=y3, clf=clf_3)\n",
"test_classifier(labels=[\"true\",\"false\"], title=\"Configuration 4 -- test\", Xt=vec_test_3, yt=yt3, clf=clf_3)"
]
},
{
"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
}