nlp-lab/Carsten_Solutions/Task 2 - Carsten Draschner....

1891 lines
227 KiB
Plaintext
Raw Permalink 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": [
"import all usefull tool"
]
},
{
"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\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import itertools\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.neural_network import MLPClassifier\n",
"from sklearn import metrics\n",
"import matplotlib.pyplot as plt\n",
"\n",
"#https://github.com/kjam/random_hackery/blob/master/Attempting%20to%20detect%20fake%20news.ipynb"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read in Datasets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Dataset 1 - fake_or_real_news.csv\n",
"Read in File fake_or_real_news.csv"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/fake_or_real_news.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ignores first column"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = df.set_index('Unnamed: 0')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"quick view at the data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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",
" </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",
"\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 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"store label column with the classification of each text"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#store label before dropping it\n",
"bin_y = df.label\n",
"#y.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"cut of label column to get an unlabled array"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = df.drop('label', axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"from skikit learn the function: train_test_split\n",
"* in the dataframe get text column by df['text']\n",
"* use stored y label df\n",
"* use seed 4222\n",
"* determine split size: in this case 0.25\n",
"* **take care that these config is the same to get compareable results**"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"bin_X_train, bin_X_test, bin_y_train, bin_y_test = train_test_split(df['text'], bin_y, test_size=0.25, random_state=4222)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Dataset 2 - liar_dataset.zip\n",
"* Read in File liar_dataset.zip\n",
"* cause of three file read in each file on its own and assign it to train test vaidation \n",
"\n",
"#### So first train set\n",
"\n",
"* only use the text part and ignore the others\n",
"* it would also be possible to for example to concatiate the other information ito the text part but youll lose the robustness againstother datasets without these coulums and you'll mix up information"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#training data file\n",
"df = pd.read_csv('/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/train.tsv', delimiter=\"\\t\", header=None, usecols=[1,2], names=['y', 'claim'])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>y</th>\n",
" <th>claim</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>false</td>\n",
" <td>Says the Annies List political group supports ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>half-true</td>\n",
" <td>When did the decline of coal start? It started...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>mostly-true</td>\n",
" <td>Hillary Clinton agrees with John McCain \"by vo...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>false</td>\n",
" <td>Health care reform legislation is likely to ma...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>half-true</td>\n",
" <td>The economic turnaround started at the end of ...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" y claim\n",
"0 false Says the Annies List political group supports ...\n",
"1 half-true When did the decline of coal start? It started...\n",
"2 mostly-true Hillary Clinton agrees with John McCain \"by vo...\n",
"3 false Health care reform legislation is likely to ma...\n",
"4 half-true The economic turnaround started at the end of ..."
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mul_X_train = df.claim\n",
"mul_y_train = df.y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### second dataset: test set"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#test data file\n",
"df = pd.read_csv('/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/test.tsv', delimiter=\"\\t\", header=None, usecols=[1,2], names=['y', 'claim'])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>y</th>\n",
" <th>claim</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>true</td>\n",
" <td>Building a wall on the U.S.-Mexico border will...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>false</td>\n",
" <td>Wisconsin is on pace to double the number of l...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>false</td>\n",
" <td>Says John McCain has done nothing to help the ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>half-true</td>\n",
" <td>Suzanne Bonamici supports a plan that will cut...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>pants-fire</td>\n",
" <td>When asked by a reporter whether hes at the ce...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" y claim\n",
"0 true Building a wall on the U.S.-Mexico border will...\n",
"1 false Wisconsin is on pace to double the number of l...\n",
"2 false Says John McCain has done nothing to help the ...\n",
"3 half-true Suzanne Bonamici supports a plan that will cut...\n",
"4 pants-fire When asked by a reporter whether hes at the ce..."
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mul_X_test = df.claim\n",
"mul_y_test = df.y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### as third dataset: validation set"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#test data file\n",
"df = pd.read_csv('/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/valid.tsv', delimiter=\"\\t\", header=None, usecols=[1,2], names=['y', 'claim'])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mul_X_valid = df.claim\n",
"mul_y_valid = df.y"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.series.Series'>\n"
]
}
],
"source": [
"print(type(mul_X_valid))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate Dataset 3\n",
"* using code from Diego by copy paste with some small modifications\n",
"* thanks for distributing this code @diego ;)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-- fake news\n",
"Index(['y', 'claim'], dtype='object')\n",
"3171\n",
"3164\n",
"6335\n",
"-- liar liar\n",
"Index(['y', 'claim'], dtype='object')\n",
"{'true', 'pants-fire', 'false', 'barely-true', 'mostly-true', 'half-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": [
"'''import random\n",
"import sys\n",
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.cross_validation import train_test_split\n",
"\n",
"ds1 = sys.argv[1]\n",
"ds2 = sys.argv[2]'''\n",
"\n",
"try:\n",
" print('-- fake news')\n",
" df1 = pd.read_csv('/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/fake_or_real_news.csv', 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('/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/train.tsv', 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",
" concat_X_train, concat_X_test, concat_y_train, concat_y_test = train_test_split(df3['claim'], df3['y'], test_size=0.25, random_state=4222)\n",
" \n",
" \n",
"except Exception as e:\n",
" print(e)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Vectorizer Classifiers\n",
"* tfids removes words in pregenerating the vectors by evaluating if this word appears more than 70% often in all articles (tfidf)\n",
"* an immense naive approach would be to store a set of the over all occuring word in all the texts and for each text determining how often this word occurs.\n",
"* also testing some min df thresholds as lower bound for regarded occurences of words over all texts ... not easy to predict if this is a good idea"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate Vectorizer on Binary Classes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"generate two different vectorizers"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#building the vectorspace\n",
"bin_count_vectorizer = CountVectorizer(stop_words='english')\n",
"bin_count_train = bin_count_vectorizer.fit_transform(bin_X_train)\n",
"#transform the other sets into same feature vector as trained on train data \n",
"bin_count_test = bin_count_vectorizer.transform(bin_X_test)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#building the vectorspace\n",
"bin_tfidf_vectorizer = TfidfVectorizer(stop_words='english', max_df=0.7)#, min_df=0.0005)\n",
"bin_tfidf_train = bin_tfidf_vectorizer.fit_transform(bin_X_train)\n",
"#transform the other sets into same feature vector as trained on train data \n",
"bin_tfidf_test = bin_tfidf_vectorizer.transform(bin_X_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a short look on the last 10 tokens for the vectors"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['تنجح', 'حلب', 'عن', 'لم', 'ما', 'محاولات', 'من', 'هذا', 'والمرضى', 'ยงade']"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bin_tfidf_vectorizer.get_feature_names()[-10:]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['تنجح', 'حلب', 'عن', 'لم', 'ما', 'محاولات', 'من', 'هذا', 'والمرضى', 'ยงade']"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bin_count_vectorizer.get_feature_names()[-10:]#[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate Vectorizer on Multilabel Classes\n",
"* same again\n",
"* only additional transform for validation set"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mul_count_vectorizer = CountVectorizer(stop_words='english')\n",
"mul_count_train = mul_count_vectorizer.fit_transform(mul_X_train)\n",
"mul_count_test = mul_count_vectorizer.transform(mul_X_test)\n",
"mul_count_valid = mul_count_vectorizer.transform(mul_X_valid)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mul_tfidf_vectorizer = TfidfVectorizer(stop_words='english', max_df=0.7)#, min_df=0.0005)\n",
"mul_tfidf_train = mul_tfidf_vectorizer.fit_transform(mul_X_train)\n",
"mul_tfidf_test = mul_tfidf_vectorizer.transform(mul_X_test)\n",
"mul_tfidf_valid = mul_tfidf_vectorizer.transform(mul_X_valid)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['zip',\n",
" 'zippo',\n",
" 'zombie',\n",
" 'zombies',\n",
" 'zone',\n",
" 'zones',\n",
" 'zoning',\n",
" 'zoo',\n",
" 'zuckerberg',\n",
" 'zuckerbergs']"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mul_tfidf_vectorizer.get_feature_names()[-10:]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"['zip',\n",
" 'zippo',\n",
" 'zombie',\n",
" 'zombies',\n",
" 'zone',\n",
" 'zones',\n",
" 'zoning',\n",
" 'zoo',\n",
" 'zuckerberg',\n",
" 'zuckerbergs']"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mul_count_vectorizer.get_feature_names()[-10:]#[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate Vectors on merged Sets\n",
"* again the same ..."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"concat_count_vectorizer = CountVectorizer(stop_words='english')\n",
"concat_count_train = concat_count_vectorizer.fit_transform(concat_X_train)\n",
"concat_count_test = concat_count_vectorizer.transform(concat_X_test)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"concat_tfidf_vectorizer = TfidfVectorizer(stop_words='english', max_df=0.7)#, min_df=0.0005)\n",
"concat_tfidf_train = concat_tfidf_vectorizer.fit_transform(concat_X_train)\n",
"concat_tfidf_test = concat_tfidf_vectorizer.transform(concat_X_test)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['القادمون',\n",
" 'ایران',\n",
" 'جنگ',\n",
" 'سال',\n",
" 'عربي',\n",
" 'علیه',\n",
" 'مطالعاتی',\n",
" 'مورد',\n",
" 'کدآمایی',\n",
" 'ยงade']"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"concat_tfidf_vectorizer.get_feature_names()[-10:]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['القادمون',\n",
" 'ایران',\n",
" 'جنگ',\n",
" 'سال',\n",
" 'عربي',\n",
" 'علیه',\n",
" 'مطالعاتی',\n",
" 'مورد',\n",
" 'کدآمایی',\n",
" 'ยงade']"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"concat_count_vectorizer.get_feature_names()[-10:]#[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Confusion Matrix Code\n",
"* copy paste by distributed notebook\n",
"* thx for providing"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def plot_confusion_matrix(cm, classes,\n",
" normalize=False,\n",
" title='Confusion matrix',\n",
" cmap=plt.cm.Blues):\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",
" #added after jonas hint\n",
" fig_1,ax_1 = plt.subplots()\n",
" \n",
" plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
" plt.title(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": "markdown",
"metadata": {},
"source": [
"## Dictionary definition for export to rdf in the end"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"example_configuration = {\n",
" \"name\":\"experiment1\",\n",
" \n",
" \"model\":\"generic_model_1_name\",\n",
" \"model-name\":\"deepNN\",\n",
"\n",
"\n",
" \"dataset\":\"X1\",\n",
" \"dataset-name\":\"fake_or_real_news\",\n",
" \"dataset-link\":\"'/Users/Carsten/GitRepos/NLP-LAB/Carsten_Solutions/sets/fact checking/fake_or_real_news.csv'\",\n",
" \n",
" \"measurement-name\":\"measurement_configuration1\",\n",
" \n",
" \"execution-name\":\"execution_configuration1\",\n",
" \n",
" \"precision\":0.33,\n",
" \"recall\":0.73,\n",
" \"accuracy\":0.55\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Configurations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Configuration 1\n",
"* model a - train - [performance measures][0:4]\n",
"* model a - test - [performance measures][0:4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* model a = MultinomialNB\n",
" * with tfidf vectorizer* dataset 1\n",
" * in contrast to the notebook with count vect.\n",
" * with dataset 1: fake_or_real_news.csv\n",
" * ** Take care with seeds for example split train test data function**\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_model_a = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.887\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1640c550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf_model_a.fit(bin_tfidf_train, bin_y_train)\n",
"pred = clf_model_a.predict(bin_tfidf_train)\n",
"score = metrics.accuracy_score(bin_y_train, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(bin_y_train, pred, labels=['FAKE', 'REAL'])\n",
"plot_confusion_matrix(cm, classes=['FAKE', 'REAL'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.826\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a162f7b70>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#clf_model_a.fit(bin_tfidf_train, bin_y_train)\n",
"pred = clf_model_a.predict(bin_tfidf_test)\n",
"score = metrics.accuracy_score(bin_y_test, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(bin_y_test, pred, labels=['FAKE', 'REAL'])\n",
"plot_confusion_matrix(cm, classes=['FAKE', 'REAL'])\n",
"\n",
"precision = cm[1,1]/(cm[1,1]+cm[0,1])\n",
"recall = cm[1,1]/(cm[1,1]+cm[1,0])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"configuration_1 = {\n",
" \"name\":\"configuration1\",\n",
" \n",
" \"model\":\"model_a\",\n",
" \"model-name\":\"multinomialNB\",\n",
"\n",
"\n",
" \"dataset\":\"X1\",\n",
" \"dataset-name\":\"fake_or_real_news\",\n",
" \"dataset-link\":\"unknown\",\n",
" \n",
" \"measurement-name\":\"measurement_config1\",\n",
" \n",
" \"execution-name\":\"execution_config1\",\n",
" \n",
" \"precision\":precision,\n",
" \"recall\":recall,\n",
" \"accuracy\":score\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Configuration 2\n",
"* model b - train - [performance measures]\n",
"* model b - validation - [performance measures]\n",
"* model b - test - [performance measures]"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_model_b = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.602\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a14d84a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf_model_b.fit(mul_tfidf_train, mul_y_train)\n",
"pred = clf_model_b.predict(mul_tfidf_train)\n",
"\n",
"#print(pred[:20])\n",
"\n",
"score = metrics.accuracy_score(mul_y_train, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(mul_y_train, pred, labels=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])\n",
"plot_confusion_matrix(cm, classes=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#clf = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.238\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\nJElSEv8GmCutT8r42l8AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a162ee240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#clf.fit(mul_tfidf_train, mul_y_train)\n",
"pred = clf_model_b.predict(mul_tfidf_test)\n",
"score = metrics.accuracy_score(mul_y_test, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(mul_y_test, pred, labels=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])\n",
"plot_confusion_matrix(cm, classes=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#clf_model_b = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.231\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\nYIuiKFrEvwEZTQgEsUeetgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a16437780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#clf_model_b.fit(mul_tfidf_train, mul_y_train)\n",
"pred = clf_model_b.predict(mul_tfidf_valid)\n",
"score = metrics.accuracy_score(mul_y_valid, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(mul_y_valid, pred, labels=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])\n",
"plot_confusion_matrix(cm, classes=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"precision = cm[1,1]/(cm[1,1]+cm[0,1])\n",
"recall = cm[1,1]/(cm[1,1]+cm[1,0])"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"configuration_2 = {\n",
" \"name\":\"configuration2\",\n",
" \n",
" \"model\":\"model_a\",\n",
" \"model-name\":\"multinomialNB\",\n",
"\n",
"\n",
" \"dataset\":\"X2\",\n",
" \"dataset-name\":\"liar\",\n",
" \"dataset-link\":\"unknown\",\n",
" \n",
" \"measurement-name\":\"measurement_config2\",\n",
" \n",
" \"execution-name\":\"execution_config2\",\n",
" \n",
" \"precision\":precision,\n",
" \"recall\":recall,\n",
" \"accuracy\":score\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Configuration 3\n",
"**In contrast to the discussed true false FAKE REAL bin class approch, I just want to see the expected horible results :)**\n",
"* model a - test - dataset2 - [performance measures]\n",
"* model b - test - dataset1 - [performance measures]"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_tmp = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 true\n",
"1 false\n",
"2 false\n",
"3 half-true\n",
"4 pants-fire\n",
"Name: y, dtype: object\n"
]
}
],
"source": [
"#print(type(bin_tfidf_train),type(mul_tfidf_test))\n",
"\n",
"tmp_mul_tfidf_test = bin_tfidf_vectorizer.transform(mul_X_test)\n",
"\n",
"print(mul_y_test[:5])"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_tmp.fit(bin_tfidf_train, bin_y_train)\n",
"pred = clf_tmp.predict(tmp_mul_tfidf_test)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1267\n",
"['true' 'true' 'true' 'true' 'true' 'true' 'true' 'true' 'true' 'true'\n",
" 'true' 'true' 'true' 'true' 'true' 'true' 'false' 'true' 'true' 'true'\n",
" 'true' 'true' 'true' 'false' 'false' 'true' 'true' 'true' 'true' 'false']\n"
]
}
],
"source": [
"print(len(pred))\n",
"pred = np.array(pred, dtype=object)\n",
"\n",
"pred[pred == \"FAKE\"] = \"false\"\n",
"pred[pred == \"REAL\"] = \"true\"\n",
"\n",
"print(pred[:30])\n",
"#pred[pred['FAKE']==false]"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.170\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a164043c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"score = metrics.accuracy_score(mul_y_test, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(mul_y_test, pred, labels=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true' ])\n",
"plot_confusion_matrix(cm, classes=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_tmp = MultinomialNB()\n",
"#from sklearn.neural_network import MLPClassifier\n",
"\n",
"#clf = MLPClassifier(hidden_layer_sizes=(40,20))"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 true\n",
"1 false\n",
"2 false\n",
"3 half-true\n",
"4 pants-fire\n",
"5 true\n",
"6 true\n",
"7 barely-true\n",
"8 true\n",
"9 barely-true\n",
"Name: y, dtype: object\n"
]
}
],
"source": [
"tmp_bin_tfidf_test = mul_tfidf_vectorizer.transform(bin_X_test)\n",
"\n",
"print(mul_y_test[:10])"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_tmp.fit(mul_tfidf_train, mul_y_train)\n",
"pred = clf_tmp.predict(tmp_bin_tfidf_test)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['half-true' 'false' 'false' 'half-true' 'half-true' 'barely-true' 'false'\n",
" 'mostly-true' 'half-true' 'false' 'half-true' 'half-true' 'false' 'false'\n",
" 'false' 'half-true' 'half-true' 'half-true' 'false' 'true']\n"
]
}
],
"source": [
"print(pred[:20])\n",
"\n",
"bin_y_test = np.array(bin_y_test, dtype=object)\n",
"\n",
"bin_y_test[bin_y_test == \"FAKE\"] = \"false\"\n",
"bin_y_test[bin_y_test == \"REAL\"] = \"true\""
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.220\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\nxMpH1DMCAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a15546a90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"score = metrics.accuracy_score(bin_y_test, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(bin_y_test, pred, labels=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])\n",
"plot_confusion_matrix(cm, classes=['false', 'barely-true' , 'half-true' , 'mostly-true' , 'true'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected not these fancy results -.- "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Configuration 4\n",
"* model c - train - [performance measures][0:4]\n",
"* model c - test - [performance measures][0:4]"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf_model_c = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.860\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\nIQnZbuu3YdLMj5mzIPl7e2rszCq3aWpU5P9q3Y90s6RZkt4oKGsnaZikienPddJySRokaZKk1yVt\nXbDNUWn9iZKOKuYcHKw5sfGmm/PqKy8y/6O5fL7wM158ZhgfzJxe1LZPPjqUXltsyWotW9ZzK21F\nXTuswZbd2zFy0hzGT5vH3v02BOCA7brRed01vlb/h9t3558vJsH69vsL2LTT2nTtsAbNKsQ+3+pK\nlyq2aUoqhwKKWYpwKzBghbKBwBMR0RN4Iv0OsCfQM11OAK6HJIiBC4Ftgf7AhZVhXJN6C1ZJP5M0\nXtKd1azfRdKD9XX8xqb7Jr048sTT+elR+3P6MT+i52a9ada89pGat98az7VXXsjA3/ypAVpphdZo\n2Zw7zvwuAwePYMHCxZzy1xc4fvfNePbyfWjTugWLlyxdrn6/Tdqz8IsljJ82D4B5n37Bz/8+nFtP\n35nHLx7Au7M/YcnSKMWp5Eix/dXakzUingXmrlC8HzA4/TwY2L+g/LZIDAfaSuoI7AEMi4i5EfER\nMIyvh/XX1OcY6ynAnhExpR6PUVZ+cPCR/ODgIwG47qpLWG+DTjXW/2Dme/zi5CO48Pd/pctG3Rui\niZZq3kzccdYuDHn+bYa+8i4Ab834mP1/OwyATTquxR5bdVlumx/t8NUwQKVHRk/nkdHJbybH7NaT\npV828WCt232s7SWNLPh+Q0TcUMs260fETICImClpvbS8MzCtoN70tKy68hrVS49V0l+BjYGhks6V\n9KKkV9Ofvaqov7OkMenyqqQ10/JzJI1Ixzwuro+25sncObMBeH/GNJ5+7D/svu+B1dZd8PE8zjzu\nYE4559f06bddQzXRUteetCMT3pvPNQ+9uays/VqtgCQYzvnhltw8bMKydRIcsN1G/OvF5YO1cpu2\na6zGcbtvxuAnJzZA6/NNRS7AnIjoV7DUFqq1HXZFUUN5jeqlxxoRJ0kaAHwX+AL4Q0QskfQ94LfA\nj1bY5Gzg1Ih4QVIb4HNJu5OMd/QnObmhkr6Tdu+XI+kEknERNui0YX2cUoMYeOqRzJ83l+bNm3PO\nRVex1tptefqx/3DVJecyb+4cfn7cwWy6xTcZdOu9/PO2G5k+dQo3X/N7br7m9wAMuvU+2rXvUOKz\nKH/b91qPw77TgzemzuWF3+0LwMV3jaZHx7U4Yfek3zD0lXe5/elJy7bZcfP1mTH3M96Z9cly+7ry\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a155caf60>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf_model_c.fit(concat_tfidf_train, concat_y_train)\n",
"pred = clf_model_c.predict(concat_tfidf_train)\n",
"score = metrics.accuracy_score(concat_y_train, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(concat_y_train, pred, labels=['true', 'false'])\n",
"plot_confusion_matrix(cm, classes=['true', 'false'])"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#clf = MultinomialNB()"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy: 0.749\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVYAAAEmCAYAAAA5jbhCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XecFdXdx/HPdwEpAiIgoKBiQSw8\nit1YMfYKJtbYRbHFEks0amKPGn1ssUVDFMtjiSkSe9doFClib6CiKEovAirg7/ljZsllXXYvy+ze\n2bvft6957b0z586cYd3vnj1z5owiAjMzy05FqStgZlZuHKxmZhlzsJqZZczBamaWMQermVnGHKxm\nZhlzsFq1JLWW9C9JMyT9dSn2c7CkJ7OsW6lI2kbSB6Wuh+WfPI61cZP0C+A0YG1gFjAauDQiXlrK\n/R4KnARsGRHzl7qiOScpgF4RMabUdbHGzy3WRkzSacC1wO+BrsAqwE1A/wx2vyrwYVMI1WJIal7q\nOlgjEhFeGuECLAd8A+xXQ5mWJMH7ZbpcC7RMt/UDxgOnAxOBCcCR6bYLge+BeekxBgIXAHcX7Lsn\nEEDz9P0RwMckreZPgIML1r9U8LktgeHAjPTrlgXbngcuBl5O9/Mk0Hkx51ZZ/18X1H8AsDvwITAV\nOKeg/GbAK8D0tOwNwDLpthfTc5mdnu8BBfs/C/gKuKtyXfqZNdJjbJS+XwmYDPQr9f8bXkq/uMXa\neP0EaAX8o4Yy5wJbAH2BDUjC5byC7d1IAro7SXjeKGn5iDifpBV8f0S0jYjBNVVE0rLA9cBuEdGO\nJDxHV1OuI/BIWrYTcDXwiKROBcV+ARwJdAGWAc6o4dDdSP4NugO/A24DDgE2BrYBfidp9bTsAuBX\nQGeSf7sdgBMAImLbtMwG6fneX7D/jiSt90GFB46IsSShe4+kNsDtwB0R8XwN9bUmwsHaeHUCJkfN\nf6ofDFwUERMjYhJJS/TQgu3z0u3zIuJRktZa7zrW5wegj6TWETEhIt6ppswewEcRcVdEzI+Ie4H3\ngb0KytweER9GxFzgAZJfCoszj6Q/eR5wH0loXhcRs9LjvwOsDxARIyPi1fS4nwJ/ArYr4pzOj4jv\n0vosIiJuAz4ChgErkvwiM3OwNmJTgM619P2tBIwreD8uXbdwH1WCeQ7QdkkrEhGzSf58Pg6YIOkR\nSWsXUZ/KOnUveP/VEtRnSkQsSF9XBt/XBdvnVn5e0lqSHpb0laSZJC3yzjXsG2BSRHxbS5nbgD7A\nHyPiu1rKWhPhYG28XgG+JelXXJwvSf6MrbRKuq4uZgNtCt53K9wYEU9ExE4kLbf3SQKntvpU1umL\nOtZpSdxMUq9eEdEeOAdQLZ+pcciMpLYk/daDgQvSrg4zB2tjFREzSPoVb5Q0QFIbSS0k7SbpD2mx\ne4HzJK0gqXNa/u46HnI0sK2kVSQtB/ymcoOkrpL2TvtavyPpUlhQzT4eBdaS9AtJzSUdAKwLPFzH\nOi2JdsBM4Ju0NX18le1fA6v/6FM1uw4YGRFHk/Qd37LUtbSy4GBtxCLiapIxrOcBk4DPgV8C/0yL\nXAKMAN4E3gJGpevqcqyngPvTfY1k0TCsIBld8CXJlfLtSC8MVdnHFGDPtOwUkiv6e0bE5LrUaQmd\nQXJhbBZJa/r+KtsvAIZImi5p/9p2Jqk/sCtJ9wck34eNJB2cWY2t0fINAmZmGXOL1cwsYw5WM7OM\nOVjNzDLmYDUzy1jZTSyh5q1Dy7QrdTVsCW24ziqlroLVwahRIydHxApZ7a9Z+1Uj5v/oJrdqxdxJ\nT0TErlkdO0vlF6zLtKNl71pHy1jOvDzshlJXweqgdQtVvZNuqcT8uUX//H47+sba7pwrmbILVjNr\nzARq/D2UDlYzyw8BFc1KXYul5mA1s3xRbVM45J+D1cxyxF0BZmbZc4vVzCxDwi1WM7NsyS1WM7PM\neVSAmVmWfPHKzCxbwl0BZmaZc4vVzCxL7gowM8tehbsCzMyy47kCzMyyVh5dAY3/DMysvEjFLbXu\nRn+RNFHS2wXrOkp6StJH6dfl0/WSdL2kMZLelLRRwWcOT8t/JOnwYk7BwWpm+aKK4pba3QFUfcLA\n2cAzEdELeCZ9D7Ab0CtdBgE3QxLEwPnA5sBmwPmVYVwTB6uZ5UexrdUiWqwR8SIwtcrq/sCQ9PUQ\nYEDB+jsj8SrQQdKKwC7AUxExNSKmAU/x47D+Efexmlm+FN/H2lnSiIL3t0bErbV8pmtETACIiAmS\nuqTruwOfF5Qbn65b3PoaOVjNLEe0JKMCJkfEJtkd+EeihvU1cleAmeVLRl0Bi/F1+ic+6deJ6frx\nwMoF5XoAX9awvkYOVjPLj8r5WLO5eFWdoUDllf3DgYcK1h+Wjg7YApiRdhk8Aewsafn0otXO6boa\nuSvAzHIku3Gsku4F+pH0xY4nubp/OfCApIHAZ8B+afFHgd2BMcAc4EiAiJgq6WJgeFruooioekHs\nRxysZpYvGc1uFREHLWbTDtWUDeDExeznL8BfluTYDlYzy5cyuPPKwWpm+aElGhWQWw5WM8sXT3Rt\nZpYtOVjNzLKTPJnFwWpmlh1R/b1OjYyD1cxyRG6xmpllraLCw63MzDLlFquZWZbcx2pmli25j9XM\nLHsOVjOzjDlYzcyyJFCFg9XMLFNusZqZZcgXr8zM6oGD1cwsa40/Vx2sZpYjcovVzCxznivAzCxD\nvnhlZlYfGn+u0vjb3I3cLecfzLhnLmPEX89ZuG759m14+OZf8tZDv+Phm39Jh3atAWjfthUPXnss\nw+4/m5EPnsuhe28BwCorLs/L9/yaV+9L1h+979YlOZem6Nijj2KVlbqwcd8+C9ddctEFrL5qdzbf\nuC+bb9yXxx97FIApU6awy47b07lDW049+ZelqnK+pX2sxSx55mAtsbv+9Sr9T7xxkXVnHLkTz7/2\nAf/T/yKef+0DzjhyZwCO3X9b3v/4KzY/4HJ2OeY6Lj9tH1o0b8aESTPZ/oir2eLAy9n20Cs548id\nWHGF5UpxOk3OoYcfwUMPP/6j9Sed8iuGjRzNsJGj2XW33QFo1aoVv7vgYi674qqGrmaj4mC1pfby\nqLFMnTFnkXV79lufu/81DIC7/zWMvbZfH4AA2i7bEoBlW7dk2ow5zF/wA/PmL+D7efMBaLlMCypy\n/j9dOdl6m23p2LFjUWWXXXZZttp6a1q1alXPtWrcHKxWL7p0asdXk2cC8NXkmazQsR0At9z3Amuv\n1o2Pn7yUEX89hzOufJCIAKBH1w68dv9v+Oixi/nfO55mwqQZJau/wS033cCmG67PsUcfxbRp00pd\nnUZFFSpqybMGCVZJHSSd0BDHKmc7bbkOb34wntV3PpfND7yMa87ej3bLJq2f8V9PZ7MDLqNP/ws5\nZK/N6JKGsTW8Y449nnc/GMuwkaPptuKKnH3m6aWuUqNRbGvVLdZEB+BHwSqpWQMdv1GZOGUW3Tq3\nB6Bb5/ZMmjoLgEP33oKHnn0DgI8/n8ynX0yhd8+ui3x2wqQZvDv2K7baaI2GrbQt1LVrV5o1a0ZF\nRQVHDTyGESNeK3WVGhUHa/EuB9aQNFrScEnPSfo/4C1JPSW9XVlQ0hmSLkhfryHpcUkjJf1b0toN\nVN+SeuSFtzhkr80BOGSvzXn4+TcB+PyrafTbrDcAXTq2Y62eXfnki8l079KBVi1bANChXWt+0nd1\nPvx0Ymkqb0yYMGHh64f++Q/WXa9PDaWtqnII1oYax3o20Cci+krqBzySvv9EUs8aPncrcFxEfCRp\nc+Am4KdVC0kaBAwCoEXbbGtez4ZcdgTbbNyLzh3aMubxi7n4lke56vanuPuKozh8wE/4fMI0Dv71\nYAAuv+1xbr3wEIY/cA4SnHvdQ0yZPpufbr42l5+2D0EgxLV3PsM7Y74s8Zk1DYcdchD/fuF5Jk+e\nzBo9e/Db313Iiy88z5tvjEYSq/bsyR9v+tPC8r3X7MmsmTP5/vvv+dfQf/Lwo0+yzrrrlvAMcijf\nmVkUVV78qNeDJOH5cET0SYP1/IjYvuq29P0ZQFvgKmAS8EHBrlpGxDo1HauiTZdo2Xv/jM/A6tu0\n4TeUugpWB61baGREbJLV/lp27RXdD76uqLKfXLNHpsfOUqnuvJpd8Ho+i3ZJVI5FqQCmR0TfBquV\nmZWUBBU5v+JfjIbqY50FLO4y9ddAF0mdJLUE9gSIiJnAJ5L2A1BigwaprZmVSHmMCmiQFmtETJH0\ncnqRai5JmFZumyfpImAY8AnwfsFHDwZulnQe0AK4D3ijIepsZqWR88wsSoN1BUTEL2rYdj1wfTXr\nPwF2rc96mVm+5L01WgzPbmVm+SG3WM3MMiXK4+KVg9XMcqUcgtWTsJhZfqRdAcUsRe1O+pWkdyS9\nLeleSa0krSZpmKSPJN0vaZm0bMv0/Zh0e8+6noaD1cxyQ2R3S6uk7sDJwCbpDUjNgAOBK4BrIqIX\nMA0YmH5kIDAtItYErknL1YmD1cxyJPNxrM2B1pKaA22ACSS3xT+Ybh8CDEhf90/fk27fQXUcouBg\nNbNcWYKugM6SRhQsgwr3ExFfkNwa/xlJoM4ARpLc0Tk/LTYe6J6+7g58nn52flq+U13OwRevzCxX\nlqCROLmmuQIkLU/SCl0NmA78FditmqKVE6ZUd+A6TabiYDWz3Mh4roAdgU8iYlKyb/0d2BLoIKl5\n2irtAVROBTceWBkYn3YdLAdMrcuB3RVgZrmS4aiAz4AtJLVJ+0p3AN4FngP2TcscDjyUvh6avifd\n/mzUcfo/t1jNLFeyuqU1IoZJehAYRTKL3uskczw/Atwn6ZJ03eD0I4OBuySNIWmpHljXYztYzSxX\nsrylNSLOB86vsvpjYLNqyn4L7JfFcR2sZpYf8iQsZmaZSm4QKHUtlp6D1cxyRGUxV4CD1cxyxV0B\nZmZZ8nysZmbZqpyEpbFzsJpZrjhYzcwyVga56mA1sxzJdq6AknGwmlluiCWaazW3HKxmlitlkKsO\nVjPLl4oySFYHq5nlShnkqoPVzPJD5T4Ji6T2NX0wImZmXx0za+qalfmogHdInvdSeJaV7wNYpR7r\nZWZNVBk0WBcfrBGxckNWxMxMJEOuGruinnkl6UBJ56Sve0jauH6rZWZNVYWKW/Ks1mCVdAOwPXBo\numoOcEt9VsrMmiglNwgUs+RZMaMCtoyIjSS9DhARUyUtU8/1MrMmKueZWZRignWepAqSC1ZI6gT8\nUK+1MrMmSZTHqIBi+lhvBP4GrCDpQuAl4Ip6rZWZNVlNoisgIu6UNBLYMV21X0S8Xb/VMrOmSE3s\nCQLNgHkk3QFFjSQwM6uLcpgroJhRAecC9wIrAT2A/5P0m/qumJk1TSpyybNiWqyHABtHxBwASZcC\nI4HL6rNiZtY05b3/tBjFBOu4KuWaAx/XT3XMrCmTVBajAmqahOUakj7VOcA7kp5I3+9MMjLAzCxz\nZdBgrbHFWnnl/x3gkYL1r9ZfdcysqSvrroCIGNyQFTEzE/mfB6AYtfaxSloDuBRYF2hVuT4i1qrH\neplZE1UOLdZixqTeAdxO8stkN+AB4L56rJOZNWHlMNyqmGBtExFPAETE2Ig4j2S2KzOzTEnJXAHF\nLHlWzHCr75S0zcdKOg74AuhSv9Uys6aqHLoCignWXwFtgZNJ+lqXA46qz0qZWdNVBrla1CQsw9KX\ns/jvZNdmZpkTKou5Amq6QeAfpHOwViciflYvNTKzpqsJzG51Q4PVIkM9e3bj0sFnl7oatoS2/P2z\npa6C5URZ97FGxDMNWREzMwHNMgxWSR2APwN9SP4CPwr4ALgf6Al8CuwfEdPSi/TXAbuT3Mp/RESM\nqstxPbeqmeVKxk9pvQ54PCLWBjYA3gPOBp6JiF7AM+l7SMbp90qXQcDNdT6Hun7QzKw+ZBWsktoD\n2wKDASLi+4iYDvQHhqTFhgAD0tf9gTsj8SrQQdKKdTqHYgtKalmXA5iZFSt5NEvRz7zqLGlEwTKo\nyu5WByYBt0t6XdKfJS0LdI2ICQDp18px+d2Bzws+Pz5dt8SKeYLAZpLeAj5K328g6Y91OZiZWW2W\noMU6OSI2KVhurbKr5sBGwM0RsSEwm//+2V+d6trBix0ZVeM5FFHmemBPYApARLyBb2k1s3pS+UDB\n2pYijAfGF4zFf5AkaL+u/BM//TqxoPzKBZ/vAXxZl3MoJlgrImJclXUL6nIwM7OaCGguFbXUJiK+\nAj6X1DtdtQPwLjAUODxddzjwUPp6KHCYElsAMyq7DJZUMbe0fi5pMyAkNQNOAj6sy8HMzGqT8TDW\nk4B7JC1D8kipI0kalA9IGgh8BuyXln2UZKjVGJLhVkfW9aDFBOvxJN0BqwBfA0+n68zMMiVle0tr\nRIwGNqlm0w7VlA3gxCyOW8xcAROBA7M4mJlZbcrgxquiniBwG9VcGYuIqkMbzMyWWs6nWi1KMV0B\nTxe8bgXsw6JjvczMMpE886rxJ2sxXQH3F76XdBfwVL3VyMyaLkGzMrgftJgWa1WrAatmXREzM0jm\nZG3siuljncZ/+1grgKnUfPeCmVmdNInHX6fTaG1A8pwrgB/SIQlmZvWiHIK1xt6MNET/EREL0sWh\namb1agkmYcmtYrqJX5O0Ub3XxMyavMqugAznYy2Jmp551Twi5gNbA8dIGksyO4xIGrMOWzPLlqBZ\n3lOzCDX1sb5GMhPMgBrKmJllpilcvBJARIxtoLqYmZX9La0rSDptcRsj4up6qI+ZNWmioszHsTYD\n2lL9rNpmZpkT5d9inRARFzVYTczMGsEV/2LU2sdqZtZQRPmPCvjRRLBmZvWtrGe3ioipDVkRMzMo\n/z5WM7MGJYq7HTTvHKxmlh8i9/MAFMPBama50vhj1cFqZjkioJlbrGZm2SqDXHWwmlme5H+u1WI4\nWM0sNzwqwMysHrjFamaWscYfqw5WM8sRyaMCzMwy564AM7OMNf5YdbCaWc6UQYPVwWpm+ZEMt2r8\nyepgNbNccYvVzCxTKu+Jrs3MGpq7AszMsiZ3BZiZZc7BamaWMbkrwLL2w4IFnHvoHnRcoRtnXncH\nFw78Gd/OmQ3AjKmTWWO9vpx+9WDmzJrJjb89hSlffcGCBQvY49BB9Nv7gBLXvulZtVMbLv/5egvf\nd1++Nbc8/zHDP53OuXv0pnWLZkyY8S3n/v0dZn+/AIAjt1qVARuuyIIfgiuf+IhXxvq5nZUEZPn0\na0nNgBHAFxGxp6TVgPuAjsAo4NCI+F5SS+BOYGNgCnBARHxa1+M6WHPmsXsH073nmsyd/Q0A5w/+\n+8Jt15w5iI232xmAJ/86hB6r9+LMa29n5rQpnP6z7dh6t31o3mKZktS7qRo3ZQ4H3TocSALh8V9t\nxXPvT+YP+/bhmqfHMGrcdPr3XZHDtlyFm5//hNU6t2GX9bqw783DWKFdS24+ZEP2ufEVfogSn0iO\nZDwq4BTgPaB9+v4K4JqIuE/SLcBA4Ob067SIWFPSgWm5OrdUymHqw7Ix5esJjH7pWbYfcNCPts2d\n/Q3vDP8Pm/TbBUj+XJo7+xsigm/nzKZt+w5UNPPvyVLabLWOjJ82lwkzvmXVzm0YNW46AK9+PJUd\n1ukCQL/eK/DEOxOZtyD4cvq3jJ82hz7d29e02yZHRf5X636kHsAewJ/T9wJ+CjyYFhkCDEhf90/f\nk27fQUsxaYGDNUfu+t8LOOiUc1DFj78tw597nD6bbUWbtu0A2PmAI/jykzGcuMsmnHXAThx2xoVU\nVPM5azi7rNeFJ97+GoCxE2ez3VqdAdhx3S50bd8SgC7tWvL1zG8Xfubrmd+xQruWDV/ZnKrsCihm\nATpLGlGwDKqyu2uBXwM/pO87AdMjYn76fjzQPX3dHfgcIN0+Iy1fJ/X2kyjpZEnvSbpnMdv7SXq4\nvo7f2Ix68WnaL9+J1ddZv9rtrzzxEFvu0n/h+zdfeYFVe6/LjU+M4LJ7H+eOP/yWOd/MaqjqWhXN\nK8S2vTvz1LsTAbhw6Hvsv2kP7jl6E5ZdphnzFiR/61fXBgp3AxQotr0qgMkRsUnBcuvCvUh7AhMj\nYuQiO/+xKGLbEqvPvx1PAHaLiE/q8Rhl48M3RjDqxacY/fJzzPv+O+Z+M4sbzzuZEy+5nlnTpzH2\nndH86qrbFpZ/YegD7H3kCUii28qrscJKK/Plp2NYs8+GJTyLpmurNTvx/oRvmDp7HgCfTpnDifeM\nBmCVjq3ZulfSev165nd0bd9q4ee6tm/J5G++a/gK51V241i3AvaWtDvQiqSP9Vqgg6Tmaau0B/Bl\nWn48sDIwXlJzYDmgzlcV66XFmnYKrw4MlXSWpP9Iej392rua8ttJGp0ur0tql64/U9JwSW9KurA+\n6poXB550Njc8NpzrH36Fk35/I+ttuhUnXnI9AMOefpgNt96RZVr+9weyU7eVePu1lwGYMWUSE8aN\npUv3VUtSd4Nd+3Rd2A0AsHybFkDSDDp6m578beQXALzw4WR2Wa8LLZqJlTq0YuWObXj7i5mlqHJu\nqcilJhHxm4joERE9gQOBZyPiYOA5YN+02OHAQ+nroel70u3PRtT9b4l6abFGxHGSdgW2B74H/jci\n5kvaEfg98PMqHzkDODEiXpbUFvhW0s5AL2Azkn/HoZK2jYgXqx4v7VsZBNC5W/eqmxu9V54cyt5H\nnLDIup8dcwq3nH8aZ+2/I0Fw0Mnn0H75jiWqYdPWqnkFm6/ekUsfeX/hul37dGX/TXsA8Oz7k3ho\n9AQAPp40m6fenciDx2/Bgh9+4PLHPvCIgAKi3p8gcBZwn6RLgNeBwen6wcBdksaQtFQPXJqDaClC\nueYdS58CmwCtgetJQjKAFhGxtqR+wBnp2LKzgX2Ae4C/R8R4SVeR/OaYnu6yLXBZRAymBquvu35c\nevej9XFKVo+ufPjDUlfB6uD183cYGRGbZLW/df5nw7j9n88VVfYnay6f6bGz1BDjcy4GnouIfST1\nBJ6vWiAiLpf0CLA78GrashVJkP6pAepoZjlRDndeNcT4nOWAL9LXR1RXQNIaEfFWRFxBcpfE2sAT\nwFFp1wCSukvq0gD1NbMSkopb8qwhWqx/AIZIOg14djFlTpW0PbAAeBd4LCK+k7QO8Eo6Tvcb4BBg\nYgPU2cxKJOeZWZR6C9b0ahzAZGCtgk2/Tbc/T9otEBEnLWYf1wHX1VcdzSyHyiBZfQ+kmeWGlPlc\nASXhYDWzXGn8sepgNbO8KYNkdbCaWY4UN3NV3jlYzSxXyqCL1cFqZvlRzDwAjYGD1cxyZSnml84N\nB6uZ5UoZ5KqD1czypQxy1cFqZjlSJp2sDlYzyxUPtzIzy5BwH6uZWeYcrGZmGXNXgJlZxtxiNTPL\nWBnkqoPVzHKmDJLVwWpmuZEMY238yepgNbP8EFQ0/lx1sJpZzjhYzcyy5Imuzcwy5+FWZmYZKpM5\nWBysZpYzZZCsDlYzy5WKMugLcLCaWa40/lh1sJpZnsgXr8zM6kHjT1YHq5nlhie6NjOrB2WQqw5W\nM8sXjwowM8ta489VB6uZ5UsZ5KqD1czyQ2Uy3Kqi1BUwMyukIv+rdT/SypKek/SepHcknZKu7yjp\nKUkfpV+XT9dL0vWSxkh6U9JGdT0HB6uZ5YuKXGo3Hzg9ItYBtgBOlLQucDbwTET0Ap5J3wPsBvRK\nl0HAzXU9BQermeVKhYpbahMREyJiVPp6FvAe0B3oDwxJiw0BBqSv+wN3RuJVoIOkFet0DnX5kJlZ\n/Si2I0AAnSWNKFgGLXavUk9gQ2AY0DUiJkASvkCXtFh34POCj41P1y0xX7wys9xYwjuvJkfEJrXu\nU2oL/A04NSJmavEHqG5DFF2bAm6xmlnZktSCJFTviYi/p6u/rvwTP/06MV0/Hli54OM9gC/rclwH\nq5nlSuWQq9qW2vcjAYOB9yLi6oJNQ4HD09eHAw8VrD8sHR2wBTCjsstgSbkrwMxyJcOHCW4FHAq8\nJWl0uu4c4HLgAUkDgc+A/dJtjwK7A2OAOcCRdT2wg9XMckNFXvEvRkS8xOIHZu1QTfkATszi2A5W\nM8uXMrjzysFqZrmSYVdAyThYzSxXymGuAAermeVKGeSqg9XMcqYMktXBama5IcrjCQJKRhiUD0mT\ngHGlrkc96QxMLnUlbImV8/dt1YhYIaudSXqc5N+rGJMjYtesjp2lsgvWciZpRDH3Rlu++PvW9PiW\nVjOzjDlYzcwy5mBtXG4tdQWsTvx9a2Lcx2pmljG3WM3MMuZgNTPLmIPVzCxjDlazBqIqD1uq+t7K\nh4PVrAFIUjqRMpI6wcKJla0MeVRAIyRpH2A2UBERj5e6PlY8SScBPwEmAC8Aj0XEvNLWyrLmFmsj\nI+mXwBlAR+BvkrYpcZWsSJL2I3m+0vHAzsDWDtXy5GBtJNInR64K7AT8FOhO0uL5T/qIX8uZyj5U\nSZU/Z91JHmS3D8ljlc9Nt3crSQWt3jhYGw8Bk0ieff47YDtg34hYABwuaa1SVs4WVdinClQG58fA\n74HDImKXiJgn6XTguILwtTLg+VgbAUlbA+tHxE2S2gADI6JVuu0XwNEkj+61EqtspRZcqDoVGCBp\nD2As8B4wXNLGwFrAwcChEfFDiaps9cAXr3IsbcUIGAhsDDwHPATcDXQA3ga2BI6KiLdKVU/7L0kt\nI+K79PVA4Bhgv4j4PO2y2Ybke7kdMBe4yN+78uNgzTFJq0TEZ2krdT+SH8hXI+L/JO0NLADei4iP\nS1pRA0DSmiR9qKdHxDhJpwFjgG+BDUhC9gbgTuA7kp+/OaWqr9Uf9+vklKSVgH9L2i394XuQpIV6\nuKTDgEcj4hGHaq58T/Ln/mWSViQJ1ROA00ieanEO0A/oEBFzHarlyy3WHEpbOuOAViRDq86KiCfT\nbc8CrwMXR8T00tXSqiNpFWAQsDrJsKoFJF2usyXtCFwE/DwiJpSwmlbP3GLNGUk7AVsAwyPiHuBK\n4GpJe0jaE5gJXOVQLb10CNwiP0MR8RlwNfAZ8CegYxqqJwB/AI51qJY/t1hLTNIywJoR8a6kI4Bf\nA2MjYq+CMvsCp5Nc7Dg1It4sSWVtEZLaRsQ36etjgfYkd8NdIWk54CygJ0lXwIrADHfdNA0O1hJL\nL3jcRHKL4yrAX4BTgSERcX33ZvQqAAAEiUlEQVRBueWA+RExuyQVtUWkFw/7R8TAdEjVPsBvSS5O\nvRURB0tqB1wKtAEGeUhV0+FxrCUWEWMkvUnSL3dWRNwlaTJwbDrG/I9puRklragtlE6icjJwiqTe\nwCbAbum6sUBrSQ9GxL6SzgVaO1SbFgdrPtwCvAGcJmlqRNwvaSJwk6TJEXFvietni/oemE9yB9x8\nkqv9m5G0YH8iaTPgMUl3R8QhwKzSVdVKwcGaAxExBhgjaTpwafq1FckP8KslrZz9SETMkvQMcD7J\nhcRxklYDXkmLrAFcATxQqjpaaTlYcyQi/iVpHnAVybSAAyPikxJXy6r3ADAKuEHSFOAxYENJtwM7\nAD+NiE9LWD8rIV+8yiFJXUjGPk4qdV2sZpI2Au4n6Q54iWQGqyn+hdi0OVjNlpKkDYBngd9ExK2l\nro+VnoPVLAOS+gBzI2JsqetipedgNTPLmG9pNTPLmIPVzCxjDlYzs4w5WM3MMuZgNTPLmIO1iZK0\nQNJoSW9L+mv6+Je67qufpIfT13tLOruGsh3SuUmX9BgXSDqj2PVVytyRTr1Y7LF6Snp7SetoVsnB\n2nTNjYi+EdGHZE6C4wo3VjeJczEiYmhEXF5DkQ4kjysxK1sOVgP4N7Bm2lJ7T9JNJPfBryxpZ0mv\nSBqVtmzbAkjaVdL7kl4Cfla5I0lHSLohfd1V0j8kvZEuW5I8bG+NtLV8ZVruTEnDJb0p6cKCfZ0r\n6QNJTwO9azsJScek+3lD0t+qtMJ3lPRvSR+mT2JAUjNJVxYc+9il/Yc0AwdrkyepOclcopWPYO4N\n3BkRG5JMBHMesGNEbASMIJnasBVwG7AXyeOcuy1m99cDL0TEBsBGwDvA2SRPSOgbEWdK2hnoRTLt\nXl9gY0nbStoYOBDYkCS4Ny3idP4eEZumx3uP5LHhlXqSPHJ6D+CW9BwGkszqv2m6/2PSWarMlopn\nt2q6Wksanb7+NzAYWAkYFxGVUxVuAawLvCwJYBmSqfHWBj6JiI8AJN1NMlF3VT8FDgOIiAXADEnL\nVymzc7q8nr5vSxK07YB/VD7JVNLQIs6pj6RLSLob2gJPFGx7IJ1s+iNJH6fnsDOwfkH/63LpsT8s\n4lhmi+VgbbrmRkTfwhVpeBY++kXAUxFxUJVyfYGs7oUWcFlE/KnKMU6twzHuAAZExBvp88P6FWyr\nuq9Ij31SRBQGMJJ6LuFxzRbhrgCryavAVulzuZDURtJawPvAapLWSMsdtJjPP0PyCOjK/sz2JLPp\ntyso8wRwVEHfbfd02sQXgX0ktU6fHbUXtWsHTJDUAji4yrb9JFWkdV4d+CA99vFpeSStJWnZIo5j\nViO3WG2xImJS2vK7V1LLdPV5EfGhpEHAI0qez/US0KeaXZwC3CppILAAOD4iXpH0cjqc6bG0n3Ud\n4JW0xfwNcEhEjJJ0PzAaGEfSXVGb3wLD0vJvsWiAfwC8AHQFjouIbyX9maTvdZSSg08CBhT3r2O2\neJ7dyswsY+4KMDPLmIPVzCxjDlYzs4w5WM3MMuZgNTPLmIPVzCxjDlYzs4z9PwDNbmOVIKyxAAAA\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a16435278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#clf.fit(concat_tfidf_train, concat_y_train)\n",
"pred = clf_model_c.predict(concat_tfidf_test)\n",
"score = metrics.accuracy_score(concat_y_test, pred)\n",
"print(\"accuracy: %0.3f\" % score)\n",
"cm = metrics.confusion_matrix(concat_y_test, pred, labels=['true', 'false'])\n",
"plot_confusion_matrix(cm, classes=['true', 'false'])"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"precision = cm[1,1]/(cm[1,1]+cm[0,1])\n",
"recall = cm[1,1]/(cm[1,1]+cm[1,0])"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"configuration_4 = {\n",
" \"name\":\"configuration4\",\n",
" \n",
" \"model\":\"model_c\",\n",
" \"model-name\":\"multinomialNB\",\n",
"\n",
"\n",
" \"dataset\":\"X3\",\n",
" \"dataset-name\":\"concat\",\n",
" \"dataset-link\":\"unknown\",\n",
" \n",
" \"measurement-name\":\"measurement_config4\",\n",
" \n",
" \"execution-name\":\"execution_config4\",\n",
" \n",
" \"precision\":precision,\n",
" \"recall\":recall,\n",
" \"accuracy\":score\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exporting results as RDF data"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from rdflib import Namespace, Graph, Literal\n",
"from rdflib.namespace import FOAF, OWL, XSD, RDFS, DCTERMS, DOAP, DC, RDF"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"prov = Namespace('http://www.w3.org/ns/prov#')\n",
"dcat = Namespace('http://www.w3.org/ns/dcat#')\n",
"mexalgo = Namespace('http://mex.aksw.org/mex-algo#')\n",
"mexperf = Namespace('http://mex.aksw.org/mex-perf#')\n",
"mexcore = Namespace('http://mex.aksw.org/mex-core#')\n",
"this = Namespace('http://mex.aksw.org/examples/')"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"example_configuration = {\n",
" \"name\":\"experiment1\",\n",
" \n",
" \"model\":\"generic_model_1_name\",\n",
" \"model-name\":\"deepNN\",\n",
"\n",
"\n",
" \"dataset\":\"X1\",\n",
" \"dataset-name\":\"Liar\",\n",
" \"dataset-link\":\"google.com\",\n",
" \n",
" \"measurement-name\":\"generic_measurement_hub\",\n",
" \n",
" \"execution-name\":\"genereric_execution_name\",\n",
" \n",
" \"precision\":0.33,\n",
" \"recall\":0.73,\n",
" \"accuracy\":0.55\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"def experiment_root_graph(root_node_name):\n",
" g = Graph()\n",
" g.add((this[root_node_name],RDF.type, mexcore.Experiment))\n",
" g.add((this[root_node_name],RDF.type, mexcore.ApplicationContext))\n",
" g.add((this[root_node_name],RDFS.label, Literal('2719095')))\n",
" g.add((this[root_node_name],DCTERMS.date, Literal('2018-05-22',datatype=XSD.date)))\n",
" g.add((this[root_node_name],FOAF.givenName, Literal('Carsten')))\n",
" g.add((this[root_node_name],FOAF.mbox, Literal('carsten.draschner@gmail.com')))\n",
" return g ,this[root_node_name]\n"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'rdflib.term.URIRef'>\n"
]
}
],
"source": [
"g, r = experiment_root_graph(\"first_test\")\n",
"print(type(r))"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#extend a rdf graph with a configuration\n",
"def experiment_to_rdf(graph, experiment, root_node):\n",
" \n",
" g.add((this[experiment[\"name\"]],RDF.type,mexcore.ExperimentConfiguration))\n",
" g.add((this[experiment[\"name\"]],prov.used, this[experiment[\"model\"]]))\n",
" g.add((this[experiment[\"name\"]],prov.wasStartedBy, root_node))\n",
" \n",
" #dataset information\n",
" g.add((this[experiment[\"dataset\"]],RDF.type,mexcore.Dataset))\n",
" g.add((this.dataset2,RDFS.label,Literal(experiment[\"dataset-name\"])))\n",
" g.add((this.dataset2,DCTERMS.landingPage,Literal(experiment[\"dataset-link\"])))\n",
" \n",
" #model description\n",
" g.add((this[experiment[\"model\"]],RDF.type,mexalgo.Algorithm))\n",
" g.add((this[experiment[\"model\"]],RDFS.label,Literal(experiment[\"model-name\"])))\n",
" g.add((this[experiment[\"model\"]],DCTERMS.identifier,Literal(experiment[\"model-name\"])))\n",
" ###g.add((this.model1,mexalgo.hasHyperParameter,this.hyerparameter1))\n",
" \n",
" #execution\n",
" g.add((this[experiment[\"execution-name\"]],RDF.type,mexcore.ExecutionOverall))\n",
" g.add((this[experiment[\"execution-name\"]],prov.generated,this[experiment[\"measurement-name\"]]))\n",
" g.add((this[experiment[\"execution-name\"]],prov.used,this.test))\n",
" g.add((this[experiment[\"execution-name\"]],prov.used,this[experiment[\"model\"]]))\n",
" \n",
" #test\n",
" g.add((this.test,RDF.type,mexcore.Test))\n",
" g.add((this.test,RDFS.label,Literal('Test')))\n",
" \n",
" #evaluation information\n",
" g.add((this[experiment[\"measurement-name\"]],RDF.type,mexcore.PerformanceMeasure))\n",
" g.add((this[experiment[\"measurement-name\"]],mexperf.precision,Literal(experiment[\"precision\"],datatype=XSD.float)))\n",
" g.add((this[experiment[\"measurement-name\"]],mexperf.recall,Literal(experiment[\"recall\"],datatype=XSD.float)))\n",
" g.add((this[experiment[\"measurement-name\"]],mexperf.accuracy,Literal(experiment[\"accuracy\"],datatype=XSD.float)))\n",
" g.add((this[experiment[\"measurement-name\"]],prov.wasGeneratedBy,this[experiment[\"execution-name\"]]))\n"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"experiment_to_rdf(g,configuration_1,r)\n",
"experiment_to_rdf(g,configuration_2,r)\n",
"experiment_to_rdf(g,configuration_4,r)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"with open('task2_metadata.ttl','wb') as f:\n",
" f.write(g.serialize(format='turtle'))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}