diff --git a/visualization.ipynb b/visualization.ipynb index 302eaed..cb51207 100644 --- a/visualization.ipynb +++ b/visualization.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 194, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 248, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 249, + "execution_count": 80, "metadata": {}, "outputs": [ { @@ -96,420 +96,140 @@ " \n", " \n", " 0\n", - " 10.909697\n", - " ASSIN 1 (PT-PT)\n", - " 1\n", - " RoBERTa\n", - " \n", - " \n", - " 1\n", - " 5.876683\n", - " ASSIN 1 (PT-PT)\n", - " 2\n", - " RoBERTa\n", - " \n", - " \n", - " 2\n", - " 2.033864\n", - " ASSIN 1 (PT-PT)\n", - " 3\n", - " RoBERTa\n", - " \n", - " \n", - " 3\n", - " 0.308391\n", - " ASSIN 1 (PT-PT)\n", - " 4\n", - " RoBERTa\n", - " \n", - " \n", - " 4\n", - " 0.174404\n", - " ASSIN 1 (PT-PT)\n", - " 5\n", - " RoBERTa\n", - " \n", - " \n", - " 0\n", - " 12.632929\n", - " ASSIN 1 (PT-BR)\n", - " 1\n", - " RoBERTa\n", - " \n", - " \n", - " 1\n", - " 6.194206\n", - " ASSIN 1 (PT-BR)\n", - " 2\n", - " RoBERTa\n", - " \n", - " \n", - " 2\n", - " 2.937050\n", - " ASSIN 1 (PT-BR)\n", - " 3\n", - " RoBERTa\n", - " \n", - " \n", - " 3\n", - " 0.724028\n", - " ASSIN 1 (PT-BR)\n", - " 4\n", - " RoBERTa\n", - " \n", - " \n", - " 4\n", - " 0.064349\n", - " ASSIN 1 (PT-BR)\n", - " 5\n", - " RoBERTa\n", - " \n", - " \n", - " 0\n", - " 9.952024\n", + " 1.413047\n", " ASSIN 2\n", " 1\n", " RoBERTa\n", " \n", " \n", " 1\n", - " 4.991293\n", + " 2.391685\n", " ASSIN 2\n", " 2\n", " RoBERTa\n", " \n", " \n", " 2\n", - " 2.177242\n", + " 1.058928\n", " ASSIN 2\n", " 3\n", " RoBERTa\n", " \n", " \n", " 3\n", - " 0.672338\n", + " 0.426405\n", " ASSIN 2\n", " 4\n", " RoBERTa\n", " \n", " \n", " 4\n", - " 0.025624\n", + " 0.089732\n", " ASSIN 2\n", " 5\n", " RoBERTa\n", " \n", " \n", " 0\n", - " 6.907404\n", - " ASSIN 1 (PT-PT)\n", - " 1\n", - " BERT-multilingual\n", - " \n", - " \n", - " 1\n", - " 3.459370\n", - " ASSIN 1 (PT-PT)\n", - " 2\n", - " BERT-multilingual\n", - " \n", - " \n", - " 2\n", - " 1.129345\n", - " ASSIN 1 (PT-PT)\n", - " 3\n", - " BERT-multilingual\n", - " \n", - " \n", - " 3\n", - " 0.167825\n", - " ASSIN 1 (PT-PT)\n", - " 4\n", - " BERT-multilingual\n", - " \n", - " \n", - " 4\n", - " 0.283227\n", - " ASSIN 1 (PT-PT)\n", - " 5\n", - " BERT-multilingual\n", - " \n", - " \n", - " 0\n", - " 8.330867\n", - " ASSIN 1 (PT-BR)\n", - " 1\n", - " BERT-multilingual\n", - " \n", - " \n", - " 1\n", - " 4.018704\n", - " ASSIN 1 (PT-BR)\n", - " 2\n", - " BERT-multilingual\n", - " \n", - " \n", - " 2\n", - " 1.632923\n", - " ASSIN 1 (PT-BR)\n", - " 3\n", - " BERT-multilingual\n", - " \n", - " \n", - " 3\n", - " 0.330470\n", - " ASSIN 1 (PT-BR)\n", - " 4\n", - " BERT-multilingual\n", - " \n", - " \n", - " 4\n", - " 0.146850\n", - " ASSIN 1 (PT-BR)\n", - " 5\n", - " BERT-multilingual\n", - " \n", - " \n", - " 0\n", - " 8.773182\n", + " 6.265721\n", " ASSIN 2\n", " 1\n", " BERT-multilingual\n", " \n", " \n", " 1\n", - " 4.314068\n", + " 3.696093\n", " ASSIN 2\n", " 2\n", " BERT-multilingual\n", " \n", " \n", " 2\n", - " 1.598185\n", + " 1.358086\n", " ASSIN 2\n", " 3\n", " BERT-multilingual\n", " \n", " \n", " 3\n", - " 0.416740\n", + " 0.383777\n", " ASSIN 2\n", " 4\n", " BERT-multilingual\n", " \n", " \n", " 4\n", - " 0.030240\n", + " 0.032836\n", " ASSIN 2\n", " 5\n", " BERT-multilingual\n", " \n", " \n", " 0\n", - " 4.548327\n", - " ASSIN 1 (PT-PT)\n", - " 1\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 1\n", - " 2.156652\n", - " ASSIN 1 (PT-PT)\n", - " 2\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 2\n", - " 0.861034\n", - " ASSIN 1 (PT-PT)\n", - " 3\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 3\n", - " 0.248775\n", - " ASSIN 1 (PT-PT)\n", - " 4\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 4\n", - " 0.369529\n", - " ASSIN 1 (PT-PT)\n", - " 5\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 0\n", - " 4.981972\n", - " ASSIN 1 (PT-BR)\n", - " 1\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 1\n", - " 2.657034\n", - " ASSIN 1 (PT-BR)\n", - " 2\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 2\n", - " 0.999332\n", - " ASSIN 1 (PT-BR)\n", - " 3\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 3\n", - " 0.248256\n", - " ASSIN 1 (PT-BR)\n", - " 4\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 4\n", - " 0.375841\n", - " ASSIN 1 (PT-BR)\n", - " 5\n", - " Ensemble ( stacking, 5-fold )\n", - " \n", - " \n", - " 0\n", - " 9.079303\n", + " 3.585998\n", " ASSIN 2\n", " 1\n", " Ensemble ( stacking, 5-fold )\n", " \n", " \n", " 1\n", - " 4.411754\n", + " 1.765864\n", " ASSIN 2\n", " 2\n", " Ensemble ( stacking, 5-fold )\n", " \n", " \n", " 2\n", - " 1.512965\n", + " 0.536087\n", " ASSIN 2\n", " 3\n", " Ensemble ( stacking, 5-fold )\n", " \n", " \n", " 3\n", - " 0.347414\n", + " 0.159993\n", " ASSIN 2\n", " 4\n", " Ensemble ( stacking, 5-fold )\n", " \n", " \n", " 4\n", - " 0.054075\n", + " 0.128111\n", " ASSIN 2\n", " 5\n", " Ensemble ( stacking, 5-fold )\n", " \n", " \n", " 0\n", - " 8.780042\n", - " ASSIN 1 (PT-PT)\n", - " 1\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 1\n", - " 4.569723\n", - " ASSIN 1 (PT-PT)\n", - " 2\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 2\n", - " 1.532580\n", - " ASSIN 1 (PT-PT)\n", - " 3\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 3\n", - " 0.213651\n", - " ASSIN 1 (PT-PT)\n", - " 4\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 4\n", - " 0.214348\n", - " ASSIN 1 (PT-PT)\n", - " 5\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 0\n", - " 10.357174\n", - " ASSIN 1 (PT-BR)\n", - " 1\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 1\n", - " 5.035915\n", - " ASSIN 1 (PT-BR)\n", - " 2\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 2\n", - " 2.225965\n", - " ASSIN 1 (PT-BR)\n", - " 3\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 3\n", - " 0.491161\n", - " ASSIN 1 (PT-BR)\n", - " 4\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 4\n", - " 0.084493\n", - " ASSIN 1 (PT-BR)\n", - " 5\n", - " Ensemble ( averaging )\n", - " \n", - " \n", - " 0\n", - " 9.345122\n", + " 3.111972\n", " ASSIN 2\n", " 1\n", " Ensemble ( averaging )\n", " \n", " \n", " 1\n", - " 4.630961\n", + " 2.928381\n", " ASSIN 2\n", " 2\n", " Ensemble ( averaging )\n", " \n", " \n", " 2\n", - " 1.858004\n", + " 1.164618\n", " ASSIN 2\n", " 3\n", " Ensemble ( averaging )\n", " \n", " \n", " 3\n", - " 0.524902\n", + " 0.382613\n", " ASSIN 2\n", " 4\n", " Ensemble ( averaging )\n", " \n", " \n", " 4\n", - " 0.022092\n", + " 0.039629\n", " ASSIN 2\n", " 5\n", " Ensemble ( averaging )\n", @@ -519,132 +239,30 @@ "" ], "text/plain": [ - " Average absolute error dataset score \\\n", - "0 10.909697 ASSIN 1 (PT-PT) 1 \n", - "1 5.876683 ASSIN 1 (PT-PT) 2 \n", - "2 2.033864 ASSIN 1 (PT-PT) 3 \n", - "3 0.308391 ASSIN 1 (PT-PT) 4 \n", - "4 0.174404 ASSIN 1 (PT-PT) 5 \n", - "0 12.632929 ASSIN 1 (PT-BR) 1 \n", - "1 6.194206 ASSIN 1 (PT-BR) 2 \n", - "2 2.937050 ASSIN 1 (PT-BR) 3 \n", - "3 0.724028 ASSIN 1 (PT-BR) 4 \n", - "4 0.064349 ASSIN 1 (PT-BR) 5 \n", - "0 9.952024 ASSIN 2 1 \n", - "1 4.991293 ASSIN 2 2 \n", - "2 2.177242 ASSIN 2 3 \n", - "3 0.672338 ASSIN 2 4 \n", - "4 0.025624 ASSIN 2 5 \n", - "0 6.907404 ASSIN 1 (PT-PT) 1 \n", - "1 3.459370 ASSIN 1 (PT-PT) 2 \n", - "2 1.129345 ASSIN 1 (PT-PT) 3 \n", - "3 0.167825 ASSIN 1 (PT-PT) 4 \n", - "4 0.283227 ASSIN 1 (PT-PT) 5 \n", - "0 8.330867 ASSIN 1 (PT-BR) 1 \n", - "1 4.018704 ASSIN 1 (PT-BR) 2 \n", - "2 1.632923 ASSIN 1 (PT-BR) 3 \n", - "3 0.330470 ASSIN 1 (PT-BR) 4 \n", - "4 0.146850 ASSIN 1 (PT-BR) 5 \n", - "0 8.773182 ASSIN 2 1 \n", - "1 4.314068 ASSIN 2 2 \n", - "2 1.598185 ASSIN 2 3 \n", - "3 0.416740 ASSIN 2 4 \n", - "4 0.030240 ASSIN 2 5 \n", - "0 4.548327 ASSIN 1 (PT-PT) 1 \n", - "1 2.156652 ASSIN 1 (PT-PT) 2 \n", - "2 0.861034 ASSIN 1 (PT-PT) 3 \n", - "3 0.248775 ASSIN 1 (PT-PT) 4 \n", - "4 0.369529 ASSIN 1 (PT-PT) 5 \n", - "0 4.981972 ASSIN 1 (PT-BR) 1 \n", - "1 2.657034 ASSIN 1 (PT-BR) 2 \n", - "2 0.999332 ASSIN 1 (PT-BR) 3 \n", - "3 0.248256 ASSIN 1 (PT-BR) 4 \n", - "4 0.375841 ASSIN 1 (PT-BR) 5 \n", - "0 9.079303 ASSIN 2 1 \n", - "1 4.411754 ASSIN 2 2 \n", - "2 1.512965 ASSIN 2 3 \n", - "3 0.347414 ASSIN 2 4 \n", - "4 0.054075 ASSIN 2 5 \n", - "0 8.780042 ASSIN 1 (PT-PT) 1 \n", - "1 4.569723 ASSIN 1 (PT-PT) 2 \n", - "2 1.532580 ASSIN 1 (PT-PT) 3 \n", - "3 0.213651 ASSIN 1 (PT-PT) 4 \n", - "4 0.214348 ASSIN 1 (PT-PT) 5 \n", - "0 10.357174 ASSIN 1 (PT-BR) 1 \n", - "1 5.035915 ASSIN 1 (PT-BR) 2 \n", - "2 2.225965 ASSIN 1 (PT-BR) 3 \n", - "3 0.491161 ASSIN 1 (PT-BR) 4 \n", - "4 0.084493 ASSIN 1 (PT-BR) 5 \n", - "0 9.345122 ASSIN 2 1 \n", - "1 4.630961 ASSIN 2 2 \n", - "2 1.858004 ASSIN 2 3 \n", - "3 0.524902 ASSIN 2 4 \n", - "4 0.022092 ASSIN 2 5 \n", - "\n", - " model \n", - "0 RoBERTa \n", - "1 RoBERTa \n", - "2 RoBERTa \n", - "3 RoBERTa \n", - "4 RoBERTa \n", - "0 RoBERTa \n", - "1 RoBERTa \n", - "2 RoBERTa \n", - "3 RoBERTa \n", - "4 RoBERTa \n", - "0 RoBERTa \n", - "1 RoBERTa \n", - "2 RoBERTa \n", - "3 RoBERTa \n", - "4 RoBERTa \n", - "0 BERT-multilingual \n", - "1 BERT-multilingual \n", - "2 BERT-multilingual \n", - "3 BERT-multilingual \n", - "4 BERT-multilingual \n", - "0 BERT-multilingual \n", - "1 BERT-multilingual \n", - "2 BERT-multilingual \n", - "3 BERT-multilingual \n", - "4 BERT-multilingual \n", - "0 BERT-multilingual \n", - "1 BERT-multilingual \n", - "2 BERT-multilingual \n", - "3 BERT-multilingual \n", - "4 BERT-multilingual \n", - "0 Ensemble ( stacking, 5-fold ) \n", - "1 Ensemble ( stacking, 5-fold ) \n", - "2 Ensemble ( stacking, 5-fold ) \n", - "3 Ensemble ( stacking, 5-fold ) \n", - "4 Ensemble ( stacking, 5-fold ) \n", - "0 Ensemble ( stacking, 5-fold ) \n", - "1 Ensemble ( stacking, 5-fold ) \n", - "2 Ensemble ( stacking, 5-fold ) \n", - "3 Ensemble ( stacking, 5-fold ) \n", - "4 Ensemble ( stacking, 5-fold ) \n", - "0 Ensemble ( stacking, 5-fold ) \n", - "1 Ensemble ( stacking, 5-fold ) \n", - "2 Ensemble ( stacking, 5-fold ) \n", - "3 Ensemble ( stacking, 5-fold ) \n", - "4 Ensemble ( stacking, 5-fold ) \n", - "0 Ensemble ( averaging ) \n", - "1 Ensemble ( averaging ) \n", - "2 Ensemble ( averaging ) \n", - "3 Ensemble ( averaging ) \n", - "4 Ensemble ( averaging ) \n", - "0 Ensemble ( averaging ) \n", - "1 Ensemble ( averaging ) \n", - "2 Ensemble ( averaging ) \n", - "3 Ensemble ( averaging ) \n", - "4 Ensemble ( averaging ) \n", - "0 Ensemble ( averaging ) \n", - "1 Ensemble ( averaging ) \n", - "2 Ensemble ( averaging ) \n", - "3 Ensemble ( averaging ) \n", - "4 Ensemble ( averaging ) " + " Average absolute error dataset score model\n", + "0 1.413047 ASSIN 2 1 RoBERTa\n", + "1 2.391685 ASSIN 2 2 RoBERTa\n", + "2 1.058928 ASSIN 2 3 RoBERTa\n", + "3 0.426405 ASSIN 2 4 RoBERTa\n", + "4 0.089732 ASSIN 2 5 RoBERTa\n", + "0 6.265721 ASSIN 2 1 BERT-multilingual\n", + "1 3.696093 ASSIN 2 2 BERT-multilingual\n", + "2 1.358086 ASSIN 2 3 BERT-multilingual\n", + "3 0.383777 ASSIN 2 4 BERT-multilingual\n", + "4 0.032836 ASSIN 2 5 BERT-multilingual\n", + "0 3.585998 ASSIN 2 1 Ensemble ( stacking, 5-fold )\n", + "1 1.765864 ASSIN 2 2 Ensemble ( stacking, 5-fold )\n", + "2 0.536087 ASSIN 2 3 Ensemble ( stacking, 5-fold )\n", + "3 0.159993 ASSIN 2 4 Ensemble ( stacking, 5-fold )\n", + "4 0.128111 ASSIN 2 5 Ensemble ( stacking, 5-fold )\n", + "0 3.111972 ASSIN 2 1 Ensemble ( averaging )\n", + "1 2.928381 ASSIN 2 2 Ensemble ( averaging )\n", + "2 1.164618 ASSIN 2 3 Ensemble ( averaging )\n", + "3 0.382613 ASSIN 2 4 Ensemble ( averaging )\n", + "4 0.039629 ASSIN 2 5 Ensemble ( averaging )" ] }, - "execution_count": 249, + "execution_count": 80, "metadata": {}, "output_type": "execute_result" } @@ -669,26 +287,26 @@ " dataplot['model'] = plot_title\n", " return dataplot\n", "\n", - " test_file = './sources/assin-ptpt-test.xml'\n", - " submission_file = './generated_submissions/assin1ptpt/{0}.xml'.format(model_file)\n", + " test_file = './assin2-test.xml'\n", + " submission_file = './samples/{0}.xml'.format(model_file)\n", " task_name = 'similarity'\n", - " dataset_name = \"ASSIN 1 (PT-PT)\"\n", + " dataset_name = \"ASSIN 2\"\n", " dataplot = generate_section(test_file, submission_file, dataset_name, plot_title)\n", "\n", "\n", - " test_file = './sources/assin-ptbr-test.xml'\n", - " submission_file = './generated_submissions/assin1ptbr/{0}.xml'.format(model_file)\n", - " task_name = 'similarity'\n", - " dataset_name = \"ASSIN 1 (PT-BR)\"\n", - " df = generate_section(test_file, submission_file, dataset_name, plot_title)\n", - " dataplot = dataplot.append(df)\n", + "# test_file = './sources/assin-ptbr-test.xml'\n", + "# submission_file = './generated_submissions/assin1ptbr/{0}.xml'.format(model_file)\n", + "# task_name = 'similarity'\n", + "# dataset_name = \"ASSIN 1 (PT-BR)\"\n", + "# df = generate_section(test_file, submission_file, dataset_name, plot_title)\n", + "# dataplot = dataplot.append(df)\n", "\n", - " test_file = './sources/assin2-test.xml'\n", - " submission_file = './generated_submissions/assin2-trainonly/{0}.xml'.format(model_file)\n", - " task_name = 'similarity'\n", - " dataset_name = \"ASSIN 2\"\n", - " df = generate_section(test_file, submission_file, dataset_name, plot_title)\n", - " dataplot = dataplot.append(df)\n", + "# test_file = './sources/assin2-test.xml'\n", + "# submission_file = './generated_submissions/assin2-trainonly/{0}.xml'.format(model_file)\n", + "# task_name = 'similarity'\n", + "# dataset_name = \"ASSIN 2\"\n", + "# df = generate_section(test_file, submission_file, dataset_name, plot_title)\n", + "# dataplot = dataplot.append(df)\n", "\n", "\n", " return dataplot\n", @@ -699,24 +317,24 @@ "\n", "\n", "\n", - "model_file = \"submission-roberta\"\n", + "model_file = \"roberta\"\n", "task_name = 'similarity'\n", "plot_title = \"RoBERTa\"\n", "dataplot = generate_grid(model_file, task_name, plot_title)\n", "\n", - "model_file = \"submission-bert\"\n", + "model_file = \"bert\"\n", "task_name = 'similarity'\n", "plot_title = \"BERT-multilingual\"\n", "df = generate_grid(model_file, task_name, plot_title)\n", "dataplot = dataplot.append(df)\n", "\n", - "model_file = \"final_submission_5folds\"\n", + "model_file = \"5fold_stacking\"\n", "task_name = 'similarity'\n", "plot_title = \"Ensemble ( stacking, 5-fold )\"\n", "df = generate_grid(model_file, task_name, plot_title)\n", "dataplot = dataplot.append(df)\n", "\n", - "model_file = \"submission-average\"\n", + "model_file = \"average\"\n", "task_name = 'similarity'\n", "plot_title = \"Ensemble ( averaging )\"\n", "df = generate_grid(model_file, task_name, plot_title)\n", @@ -727,33 +345,83 @@ }, { "cell_type": "code", - "execution_count": 251, + "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0.5, 0.98, 'Semantic similarity: Mean squared error on each score range')" + "Text(0, 0.5, 'Mean squared error')" ] }, - "execution_count": 251, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" }, { "data": { + "image/png": "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VZubbdmyRUuWLNGkSZNUt25d/fjjj5o8ebJcXFzUu3fv2/b56quv5ObmpgceeMDmdzR9+nSlpaUpNjZW5cqV0//+9z/Lta1bt6p79+5au3atatWqZZnh9ddff6lTp06aOHGiJCkuLk4DBgzQ+++/r0qVKslsNqt///66evWqZs+eraCgIJ09e1bp6em57n/58mX169dPwcHBiomJkZubW55h2oIFCzRmzBgZjUbNnj1bY8aM0Z49e2QwGPT1119r0qRJGjVqlNq1a6cvv/xSCxcutPnstjz55JNKT09XcHCwBg8erIcffjjPthMnTlS1atW0fft2bdu2zRI2xcTEaO/evZo9e7YCAgL0xhtvqH///tq3b598fX1zjXPx4kUNHTpUTz31lHr16qUffvhBc+fOtavekJCQPP//FBQBEgAAAACg1Ni/f3+ujZh79eqll156yXLcuXNnde7cWZI0YsQIxcbG6ssvv1Tnzp114cIFGY1GNWvWTK6urqpWrZpln5/U1FS98cYbWrduncLCwiRJAQEBOn78uOLi4qwCpOeff16tWrWSJPXt21eDBg3S0qVLLYFD7969NWPGDKs6r1+/rnnz5qlatWqSboQ4zzzzjH766SdVr14917OuWLFCY8aMUYcOHSy1JCQkaMOGDXkGSOfPn5ePj0++y9fOnz+vRx55RLVq1bKMnSNn2VbFihWtlpQ1adLEaozJkyfr/fff16effqrOnTvrwIEDOnr0qHbv3m3ZN+jmcXP8/PPPev7559W8eXNNmzYt3/17RowYYflehwwZol69euny5cu67777tH79ejVr1swSQgYFBenEiRMF3hPLaDRq2rRpql+/vjIyMvTuu+/queee09tvv235v3ArLy8vlStXzmrpXWpqqjZt2qSZM2da/r9Mnz5dn3/+ueLi4vTiiy/mGmfjxo2qVq2aJk2aJIPBoODgYP30009avHhxvnX7+vrq8uXLyszMlIvL3UVABEgAAAAAgFIjLCwsVzDj5eVldXzz8iUXFxd5e3tbZrd06NBBsbGxioiIUPPmzdWiRQtFRETIzc1Np0+fVlpamvr16yeDwWAZIyMjQ35+fnnew8fHR5JUs2ZNq3Opqam6du2aPDw8JElVqlSxhEfSjc2/nZycdObMmVwBUkpKii5evKipU6dq+vTplvOZmZkym815fj9paWlyc3PL83qOPn36aNq0adq/f78efvhhtWvXTvXq1bPZJzk5WYsXL9ahQ4f0yy+/KDs7W9evX9fFixclSd99952MRqPNTaczMjLUq1cvtW/fXlOnTs23Tsn6u86ZwZOcnKz77rtPZ8+eVevWra3ah4SEFDhAuv/++3X//fdbjhs2bKjz589r7dq1CgsL0+HDh9W/f3/L9enTp6tTp065xklISFBGRobVnkjOzs5q0KCBzpw5c9t7nzlzRqGhoVb/52y9re5m7u7uMpvNSktLI0ACAAAAACCHh4eHAgMDbba59Q9pg8Fg2TeoatWq2rt3rw4ePKgDBw5o3rx5Wr58ubZs2WIJZlauXGkV9NxuzJuPc/7wv905W/sV2ZLTb/r06XaHCZJUqVIlXb16Nd923bt3V4sWLfTJJ5/owIEDevrppzVw4EANGzYszz7R0dFKTk7W+PHj5efnJzc3Nz333HPKyMiwuz4XFxc1a9ZMn3zyic6fP58rmMurT467/V4LIjQ01LIvVL169fTOO+9YruWEhgVxc0BUWH7//XeVKVNG5cqVu+ux2EQbAAAAAICblClTRuHh4ZowYYK2bdumH3/8UUeOHFFwcLDc3Nx04cIFBQYGWn3sCTryc/nyZctsHenGptTZ2dm3nbFTuXJl+fr6KiEhIVcttgK02rVrKyUlJd/NuSXpvvvuU48ePbR48WINHz5cmzdvlvT/32p3a0jz1VdfqXfv3goPD9cDDzygcuXKKSkpyXK9Tp06SkpKynOmjXQjRJk7d64eeugh9enTRxcuXMi3Tlvuv/9+y6bbOW49vlMnT560LE1zd3e3+v49PT1v2+cf//iHXF1ddeTIEcu5rKwsHT16NM+ZWcHBwTp27JjVzLKjR4/aVeOpU6dUp04dex/JJmYgAQAAAABKjfT0dKvQQrqxRCi/163niI+PV1ZWlkJCQlS2bFm99957cnV1tYQCffv2VUxMjMxmsxo1aqTU1FQdPXpUTk5O6tGjx13V7u7urujoaI0fP17Xr1/XtGnTFB4eftv9jyRp+PDhmjFjhsqXL6+WLVsqMzNT3333nS5fvqyBAwfetk+dOnXk4+OjI0eOqG3btnnWMnPmTLVs2VJBQUH6888/tX//ftWoUUPSjdk17u7u2r9/v/z8/FSmTBl5eXkpKChIO3fuVGhoqFJTU/XKK69Ywibpxh5JoaGhGjZsmMaPH6/q1asrISFB165ds6rFyclJ8+bN09ixYxUZGan169fnmvFlr8jISPXq1Utr165V27Zt9eWXX+qDDz4o8Dhvvvmm/P39VaNGDWVkZGjnzp3697//raVLlxZonLJly6pnz56aP3++KlWqJH9/f7355ptKTk5Wr169btvn6aef1rp16zRr1iz16tVLp06d0qZNm+y631dffaUWLVoUqMa8ECABAAAAAEqNAwcOqHnz5lbnqlSpok8//dSu/uXLl9eaNWs0b948ZWZmKjg4WEuXLrVs9jxy5EhVrlxZ69at07Rp0+Tp6frSITgAACAASURBVKnatWurX79+d127n5+fHn30UQ0aNEi//vqrmjVrplmzZuXZvnv37vLw8NDrr7+uBQsWyN3dXTVq1MhzA23pRpj2xBNPaOfOnTYDJLPZrJkzZ+rixYsqV66cmjRponHjxkm6sWRs0qRJWr58uZYvX66wsDCtX79es2fP1uTJk9WtWzf5+voqKipKv/76q2VMJycnrVmzRjExMXrppZf0119/KSAgQFFRUbnunxMiRUdHq0+fPoqNjbXnK8ylYcOGmjFjhpYuXaolS5aoadOm6t+/vxYtWmRpk5iYqIiICM2ZM0fdunW77TgZGRmKiYnRpUuXLN/z6tWrLRulF0TOhu7jx4/X1atXVadOHa1Zs+a2b2CTpGrVqmnZsmWaM2eONm/erLp162r06NFWG8PfzuXLl/X111/rlVdeKXCNt2Mw29pdqwTK+Yf98MMP5e/v7+hySoS8kuWSatWqVY4uAQAAAEAhOXnypGrXrm05Loy3Pd2qKMb8O0tOTlbHjh21bdu2274FrbSbPXu2Dh48qF27dkmSPv/8cw0YMEC7d+8uVd/HvHnz9Oeff+baVD7Hrb+7+eUt7IEEAAAAACg0RRH0EB4VLh8fH82ePdtqv6XSbO3atTp58qR+/vlnbdy4UZs2bdITTzxhuf7JJ5+of//+pSo8km78O48YMaLQxuO3EAAAAACAv5mIiAhHl1BsvvnmG61bt05//PGH/P39NWrUKD377LOW69HR0Q6srugUxrLKmxEgAQAAAACAUuvm/Y5w51jCBgAAAAAAAJsIkAAAAAAAAGATARIAAAAAAABsIkACAAAAAACATQRIAAAAAAAAsIkACQAAAAAAB1u6dKkee+yxu25jr8jI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YBRRUVQUNZqoMckxDkG90cRzwDExDkgcDg7oijMajNFExZDcKHFCmVRUEJBBxr5/+KN/tkBRjXRXI8+zlmtZe+/69lu9+Kjql72/AgAovaKuQJo5c2a6deu22n3169fPokWL1msoAAAAAGqPogqkLbfcMm+99dZq973xxhtp06bNeg0FAAAAQO1RVIF06KGH5vrrr8+ECRMqtpWVleXdd9/N73//+xx++OHVFhAAAACA0ipqDaRhw4bl73//e44//vi0atUqSXLOOefkgw8+yK677pohQ4ZUa0gAAAAASqeoAqlRo0YZNWpUHnnkkTz//PNp165dmjVrlqFDh+bII49MvXpFDQMAAADABmitzc/SpUszfvz4dOjQIf369Uu/fv1qIhcAAAAAtcRa10CqX79+zj333MyYMaMm8gAAAABQyxS1iPY222yT2bNnV3cWAAAAAGqhogqkU045JTfeeKMSCQAAAGAjVNTq13/9618zd+7cHHDAAenWrVu22GKLlJWVVewvKyvL1VdfXW0hAQAAACidogqkCRMmpF69emnevHmmTp2aqVOnVtr/5TIJAAAAgG+WogqkZ555prpzAAAAAFBLFbUGEgAAAAAbr6KuQPqyWbNmZfHixatsb9Wq1XoJBAAAAEDtUlSBtGLFilx33XW59957M2/evNUeM2nSpPUaDAAAAIDaoahb2O64446MHj06J510UsrLy3PaaafljDPOSJs2bdK2bdtcfvnl1Z0TAAAAgBIpqkB64IEHcuaZZ+bUU09Nkhx00EE5++yz8+ijj6Zly5b54IMPqjUkAAAAAKVTVIE0bdq0dOnSJXXr1k29evXy+eefJ0nq16+fQYMG5f7776/WkAAAAACUTlEFUpMmTSoWzm7ZsmXefffdin3Lly/P3LlzqycdAAAAACVX1CLanTp1yjvvvJN99tknvXv3zogRI9KoUaPUrVs31113XTp16lTdOQEAAAAokaIKpEGDBmXatGlJkmHDhuW1117Lj370oyRJq1at8vOf/7z6EgIAAABQUkUVSL169ar4/y222CJjxozJ1KlTs2jRouywww6pX79+tQUEAAAAoLSKKpC+qqysLO3atVvfWQAAAACohYoqkF5++eW1HtOjR4+vHQYAAACA2qeoAmngwIEpKysreMykSZPWSyAAAAAAapeiCqQ777xzlW1z5szJs88+m5dfftki2gAAAADfYEUVSHvsscdqtx988MEZPnx4nn322ey3337rNRgAAAAAtUOdrzvA/vvvn8cee2x9ZAEAAACgFvraBdK7776bOnW+9jAAAAAA1FJF3cL20EMPrbJt6dKlefPNNzNmzJgcfPDB6z0YAAAAALVDUQXSRRddtNrtDRo0yOGHH56f/vSn6zUUAAAAALVHUQXSuHHjVtnWsGHDbL755us9EAAAAAC1S1EFUuvWras7BwAAAAC1lNWvoQgrVqwodYQq2dDyAgAAULsVdQXSTjvtlLKysqIGLCsry+uvv/61QkFtU6dOnUyYMKHUMYq2++67lzoCAAAA3yBFFUhDhw7NAw88kM8//zx9+vTJ5ptvnk8++STPPvtsGjdunP79+xddMAEAAACwYSmqQKpXr15atWqVW2+9NY0bN67YvnDhwgwePDj16tXLGWecDxsr7QAAIABJREFUUW0hAQAAACidotZAuvfeezN48OBK5VGSfOtb38rgwYNzzz33FHWyxx9/PAMGDEjPnj3TtWvXHHLIIbnhhhuyZMmSqicHAAAAoEYUdQXSp59+mqVLl65235IlSzJnzpyiTjZnzpz07NkzgwcPzqabbpp//vOfGTlyZD755JP853/+Z/GpAQAAAKgxRRVIXbp0yYgRI7Lrrrtmyy23rNg+c+bMjBw5Ml27di3qZAMGDKj0eM8998yCBQsyevTo/PznP7eOEgAAAEAtVFSB9LOf/SyDBg3KgQcemF122SWbbbZZZs2alYkTJ6Zx48a59tpr1zlAs2bN1nh1EwAAAAClV9QaSJ06dcqTTz6Zk08+OXXq1Mmbb76ZOnXq5OSTT84TTzyRjh07Vumky5cvz6JFi/LKK69k1KhROfbYY119BAAAAFBLFXUFUpI0b948P/zhD9fLSXfZZZeKhbP79euXCy64YL2MCwAAAMD6V9QVSCtWrMiyZcsqbfvzn/+c3//+93n99derfNJ77rkno0ePzkUXXZRx48blsssuq/IYAAAAANSMoq5AOu+889KgQYP8n//zf5Ikd999dy699NIvBqhXL7fcckv23nvvok/auXPnJEn37t3TvHnzXHjhhTn55JPTtm3bquYHAAAAoJoVdQXSP/7xj+y3334Vj2+99dZ873vfyyuvvJKDDz44N9544zoH6NSpU5Jk+vTp6zwGAAAAANWnqAJp1qxZ2XLLLZMkU6ZMyfTp03PcccelSZMm6d+/f9588811DvDqq68mSdq0abPOYwAAAABQfYq6ha1JkyaZM2dOkuSll15K8+bNs9NOOyVJ6tatW7Eg9toMHjw4e++9d3bcccfUrVs3r776am677bYcfvjhbl8DAAAAqKWKKpB23XXX3HLLLalbt27uuOOOSrezTZkypeLqpLXp2rVrHnzwwcyYMSN169bNNttsk/POOy8DBgxYt/QAfKOtWLEideoUdbFsrbCh5QUAgGIVVSD9+Mc/zpAhQ3LGGWdkm222yVlnnVWx79FHH82uu+5a1MnOPffcnHvuueuWFICNTp06dTJhwoRSxyja7rvvXuoIAABQLYoqkLbddts8+eST+fTTT9O8efNK+376059miy22qJZwAAAAAJReUQXSSl8tj5KkQ4cO6y0MAAAAALWPhRoAAAAAKEiBBAAAAEBBCiQAAAAAClIgAQAAAFCQAgkAAACAgor+Frb58+dn/Pjxef/997N48eJK+8rKynLmmWeu93AAAAAAlF5RBdKECRNyxhlnZN68eavdr0ACAAAA+OYqqkAaPnx4Wrdund///vdp3759GjRoUN25AAAAAKgliiqQJk+enOuuuy5dunSp7jwAAAAA1DJFLaK99dZbZ8mSJdWdBQAAAIBaqKgC6ayzzsott9yS+fPnV3ceAAAAAGqZom5he/bZZzNr1qwccMAB2WWXXfLtb3+70v6ysrJcffXV1RIQAAAAgNIq+lvYkmSTTTbJW2+9tcr+srKy9ZsKAAAAgFqjqALpmWeeqe4cAAAAANRSRa2BBAAAAMDGq6grkL5s1qxZWbx48SrbW7VqtV4CAQAAAFC7FFUgrVixItddd13uvffezJs3b7XHTJo0ab0GAwAAAKB2KOoWtjvuuCOjR4/OSSedlPLy8px22mk544wz0qZNm7Rt2zaXX355decEAAAAoESKKpAeeOCBnHnmmTn11FOTJAcddFDOPvvsPProo2nZsmU++OCDag0JAAAAQOkUVSBNmzYtXbp0Sd26dVOvXr18/vnnSZL69etn0KBBuf/++6s1JAAAAAClU1SB1KRJk4qFs1u2bJl33323Yt/y5cszd+7c6kkHAAAAQMkVtYh2p06d8s4772SfffZJ7969M2LEiDRq1Ch169bNddddl06dOlV3TgAAAABKpKgCadCgQZk2bVqSZNiwYXnttdfyox/9KEnSqlWr/PznP6++hAAAAACUVFEFUq9evSr+f4sttsiYMWMyderULFq0KDvssEPq169fbQEBAAAAKK2iCqSvKisrS7t27dZ3FgAAAABqoaIW0U6SmTNn5sorr0z//v3Tt2/fvPnmm0mS22+/Pf/4xz+qLSAAAAAApVVUgfTWW2/lyCOPzNixY9OyZct88MEHWbp0aZLk/fffz5133lmtIQEAAAAonaIKpKuuuirbb799xo0bl5EjR6a8vLxi36677pqJEydWW0AAAAAASquoAunVV1/NkCFDsskmm6SsrKzSvs033zyffPJJtYQDAAAAoPSKKpC+Whp92aeffppGjRqtt0AAAAAA1C5FFUg777xzHnjggdXue+yxx7Lrrruu11AAAAAA1B71ijlo6NChOemkk3LyySfniCOOSFlZWV544YXceeedeeqppzJ69OjqzgkAAABAiRR1BdIee+yR66+/PtOnT8/FF1+c8vLyXHvttXnllVdy/fXXp1u3btWdEwAAAIASKeoKpCTZf//9s//++2fKlCmZNWtWmjVrlu233746swEAAABQCxRdIK3Url27tGvXrjqyAAAAAFALrbFAevHFF6s00F577fW1wwAAAABQ+6yxQDrppJNSVlaWJCkvL1/tMWVlZSkvL09ZWVkmTZpUPQkBAAAAKKmCt7BtsskmOfjgg3PIIYekcePGNZUJAAAAgFpkjQXSqFGj8uCDD+aJJ57I448/noMOOij9+vVzqxoAAADARqbOmnb06NEjw4cPzwsvvJBLL700s2bNyimnnJL9998/1157bd55552azAkAAABAiayxQFqpYcOGOfLII/O73/0uzz77bE444YSMHz8+RxxxRC677LKayAgAAABACa21QPqyZs2apXXr1mndunXKysoyd+7c6soFbGQWL15c6ggAAACsQcFFtFeaMGFCxo4dmyeeeCJLlixJ3759c/PNN6dXr17VnQ/YSDRs2DDdu3cvdYyivfLKK6WOAAAAUGPWWCBNmTIlY8eOzcMPP5wZM2ake/fuueCCC3LooYdmk002qcmMAAAAAJTQGgukQw45JE2aNMlBBx2UK664Iq1bt06SzJ49O7Nnz17l+G222ab6UgIAAABQMgVvYZs/f34efPDBPPTQQ2sdaNKkSest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K2374IMPsmjRomy//fY1GQUAAACAItVogbTvvvvm+eefr3QV0qOPPppGjRpljz32qMkoAAAAABSpRgukAQMGpEGDBhk2bFheeOGF3HvvvRk5cmROPPHENGnSpCajAAAAAFCkGv0WtiR5++23c9lll2XixIlp2rRpjjnmmAwbNsyC2AAAAAC1VI0XSAAAAABsWGr0FjYAAAAANjwKJAAAAAAKUiABAAAAUJACaSMycODAdOjQIR06dMjtt99esf3//t//m4suuiiHHHJIdtppp1x00UVFjzlz5syceeaZ2XXXXdOzZ89cdtllWbRoUZWzzZ49O1dccUWOOeaYdOnSJX379q3yGEly5plnpkOHDrnrrrsqbb/ooosqXvvVV1+9TmPD17G+59/f/va3ivG+/N8111xT5WwvvPBCzj333PTp0yfdunXLEUcckbvuuivLly+v0jjDhw9f7RwbMWJERb6zzz67yvng61jT3Lvnnnty0kknZe+9987uu++eAQMG5Pnnn1/reNOnT1/t3PvhD39Y5WxvvfVWBg8enN69e6dLly7Zf//989Of/jQfffRRlcYx96iN1jT3Ro8enf79+6dHjx7p1q1bjjzyyIwePTprW5Z1fb7vfdnChQuz3377pUOHDnnzzTer9FyfO6mN1jT3vuz1119Px44d07Nnz7WOtz7n3tcZa8mSJbnqqquy1157ZZdddsmQIUMyffr0SseYe9WvXqkDULN69uyZ8847L61bt67Y9uqrr2bChAnp1q1bFixYUPRYS5cuzeDBg1O/fv385je/ybx583LVVVdl3rx5Vf4LZebMmXn00Uez8847Z6eddsrs2bOr9Pwkef755zNx4sTV7hs6dGgGDBiQs846q8rjwvqyPuffStdcc0222Wabisdbbrlllce499578/nnn+ecc87J1ltvnQkTJuSqq67K9OnTiy603n777YwZMyZNmjRZZd/3vve97LPPPrn00kurnA3Wh9XNvZtuuin77LNPjjvuuDRu3DgPP/xwTjnllFx//fU54IAD1jrmhRdemN12263icfPmzauc67PPPkubNm3Sr1+/tGzZMtOnT8/111+f1157LWPGjEm9emv/mGbuUZutbu7NmzcvBx10UDp06JDGjRvnxRdfzOWXX57PP/88gwcPXuuY6+N978tuuummLFu2rMrP87mT2mx1c2+l8vLyXHbZZWnRokWV/uyvz7m3LmNdccUVeeKJJ/KTn/wkzZs3z8iRI3PyySfnkUceScOGDZOYezVBgbSRadasWXbZZZdK2wYOHJhBgwYlSfr371/0WE888UTeeeedPPnkkxV/AdSrVy/nnXdezjrrrGy77bZFj9WhQ4e88MILSZKrr746TzzxRNHPTb4os375y1/m3HPPzc9+9rNV9rdt2zZt27ZNgwYNqjQurE/rc/6t1KFDh7Rv3/5r5brkkkvSokWLisc9e/bM559/nttvvz3nnXdeUfPm8ssvzwknnJCHH354lX1bbbVVttpqq9X+ggs1YXVz74EHHqj0575Xr16ZMmVKbr/99qIKpO22226VMatqt912q1RC9ezZM1tttVVOPvnkvPHGG+ncufNaxzD3qM1WN/fOOOOMSo/32muvzJgxIw899FBRBdL6eN9bacqUKRk1alQuuOCC/OIXvyj6eT53Ututbu6tNHbs2MyaNSvf/e53c++99xY95vqce1Ud68MPP8yYMWMyfPjw9OvXL0my00475YADDsjDDz+c733ve0nMvZrgFjZSp866/TF47rnn0rVr10rt8YEHHpj69evnz3/+c41kWOnOO+9Mo0aN8t3vfvdrjQM17ev+2V8fvvxL9EodO3bM4sWLM2fOnLU+//HHH8/kyZMzZMiQ6ogH1WJNf+6revvY+tasWbMkX/yCujbmHt8UzZs3L+rP/Po2fPjwHHPMMdl+++2r9DyfO9lQzZ8/P9dcc00uvPDC1K9fv9RxirbyFvODDjqoYtuWW26Z3XbbLc8991ypYm2USv+bCxusyZMnr/KG26BBg7Rt2zaTJ0+usRwff/xxbrjhhlx88cW14pdxqEmDBg1Kx44d07dv39xwww1VXrdoTSZOnJimTZtms802K3jc559/nquvvjrnn39+vvWtb62Xc0OpTJw4Mdttt11Rx/7kJz9Jx44d07t371x55ZX5/PPP1/m8K1asyJIlSzJ58uRce+216dq1a3beeeeCzzH32NAtW7YsCxYsyPjx4/PQQw/luOOOK+p56+t9709/+lMmTpxY5VtdfO5kQ3b99ddnhx12yIEHHljl567Pz5xVHWvy5MnZaqutsskmm1TavsMOO9To7524hY2vYd68edl0001X2d60adPMmzevxnL86le/Su/evdOjR48aOyeU2qabbpohQ4ake/fuqV+/fp599tmMGDEis2fPXu3l9FXx9ttv5+67786pp56aunXrFjz25ptvzhZbbJGjjjrqa50TSm3MmDF5/fXXc+GFFxY8rkGDBjnuuOPSq1evNGnSJC+99FJ++9vfZurUqbnxxhvX6dynnnpqxb+udu7cOb/97W/X+oupuceG7OOPP07v3r0rHp9xxhkZOHBgweesz/e9JUuWZPjw4Tn77LPz7W9/u0rP9bmTDdXkyZPzhz/8Iffdd1+Vnrc+5966jlXo9865c+dWKQNfjwKJDdrf//73PPHEE3n00UdLHQVqVKdOndKpU6eKx3vvvXcaNGiQ22+/PUOHDl3t7TnFmDt3boYNG5YOHTrktNNOK3jstGnT8vvf/z533nlnysrK1ul8UBv861//yhVXXJETTjghe+65Z8FjW7Zsmf/8z/+seNyzZ89sttlmufTSS/Pvf/87O+20U5XP//Of/zxz587Ne++9lxtvvDGnnnpq7r777opFQb/K3GND17x584wZMyYLFy7MSy+9lFtuuSWbbLJJTj311DU+Z32+791+++1p2LBhBgwYUKXcPneyIfvlL3+Zo48+Oh06dKjS89bn3Kuuz6/UHNddss6aNm2a+fPnr7J93rx5adq0aY1kGD58eL7//e9n0003zbx58yqufPr888/z2Wef1UgGqC0OOeSQLFu2LG+88cY6PX/x4sUZOnRolixZkhtvvHGtCxBee+212XfffbPddttVzL+Vt+LMmzdvrV/JDLXBtGnTctppp2XPPfcs+lsHv+rQQw9N8kURtS623XbbdOvWLUcddVRuvfXWvP7663nkkUfWeLy5x4auXr166dq1a3r27Jlhw4bltNNOy4gRI7Jo0aIqjbMu73uzZ8/OjTfemLPOOisLFizIvHnzsnDhwiTJggULKv5/dXzuZEM1fvz4vPrqqznppJMq/uwuXrw4yRe/uy1ZsqRK433dz5xVHatp06arnWPz5s2r8lWEfD2uQGKdbb/99qvcc7pkyZJMmzatyv+is67efffd/POf/8wdd9xRafuvfvWr/PrXv87rr79eIzmgNlh5JcK6XJGwfPnynH/++RW3r22++eZrfc67776bf//733nyyScrbb/rrrty1113Zfz48dlqq62qnAVqyqxZszJ48OC0atUqv/nNb9Z6y+barI+rgVq3bp1vf/vbmTZt2hqPMff4puncuXMWL16cjz76KO3atSv6eevyvjdz5swsXLgwZ5999ir7BgwYkL322iu33377ap/rcycbqnfffTcLFy7MwQcfvMq+Hj165JxzzsnQoUOLHu/rfOZcl7G23377fPjhh1m4cGGldf9WtyYv1UuBxDrbd999c8EFF2TGjBlp3bp1kuSZZ57JkiVLss8++9RIhptuummVRddOOOGEDBw4cLV/QcI32RNPPJF69epV+dLkJLn00kvz5z//ObfddlvRb8RXXHHFKv9Se95556VHjx459thjXYZMrbZgwYKK22VuvvnmNG7ceJ3HeuKJJ5J88Uvw1zV58uTMmTMnbdq0WeMx5h7fNK+++moaNGiQli1bVul56/K+17Zt29x5552Vtk2aNClXXnllhg8fXnAe+9zJhurQQw9Nx44dK2178MEH89RTT+WGG24o+J6zOl/nM+e6jLVyzbSnnnqqYu2/mTNnZsKECbnkkku+dgaKp0Ais2fPzksvvZTki8sAZ8yYkccffzzJ/39ZfvLFPatDhw6t+LaKQw45JDfddFOGDRuWc845J5999lmuvPLKHHFAsQUhAAAPaklEQVTEEdl2220rnnfRRRflpZdeyjPPPFMwx8pzvvvuu1m0aFHF4z322KPiw/CgQYOSpOJffrp3777asbbddtvsscceVfo5QCms6/y75JJL0qJFi3Tt2jX169fP+PHjM3r06AwaNCjNmzeveF4x8++mm27Kvffem9NOOy116tTJxIkTK/btuOOOadKkSZLk4osvzssvv5ynnnoqSdK1a9dVxmrYsGG23nrr9OzZc11/JFAjhg0bljfffDNXXnllpk6dmqlTp1bs22WXXSr+/6CDDkqPHj0yfPjwJMmIESOyYMGC7LbbbmnSpElefvnl3HrrrTn44IMrrX80YsSIjBw5suAl+VdffXXq1q2bbt26ZdNNN80777yTW2+9NW3bts13vvOdiuPMPb5Jvvvd7+boo4/Odtttl2XLluUvf/lLRo8enZNOOqlSkVtd73ubbLLJGudJ165d0759+4rHPnfyTbHVVlutcmXqSy+9lHr16q0yH6rzM2exY3117m211VY55phjMnz48JSXl6dFixYZOXJkWrVqlf/4j//4ej8cqkSBRN56662cc845FY+nTZtW8Qvtlz/4Ll++vNK6CvXr18/vfve7XHbZZTn33HPToEGDHH744bngggsqjb9o0aKi/jX0yxm+/PjOO++s+IttxYoVVXx1ULut6/zbYYcd8j//8z+5/fbbs3Tp0rRr1y4XXnhhxRvuSsXMv7/85S9JvrgK4+abb66076vz7+t8ZSvUJiv/3P/oRz9aZd9X596X33u233773Hrrrfmf//mfLF68OFtvvXUGDx6cM844o9IYxcy9Ll26ZNSoUbnvvvsqxjr44IMzZMiQSpfom3t8k3Ts2DGjRo3Khx9+mEaNGmXbbbfN8OHDV/klsDrf94rlcycbo+qce8WOtbq597Of/SyNGzfOVVddlc8//zw9evTItddeu8YvnKB6lJVbaXGjMXDgwDRr1qxinYea+uaWPn365Oyzz87RRx9dI+dbnRUrVmTFihU5+OCDc8ghh6z1a5phfTP/VuTEE09MixYt8t///d8ly8LGp1Rz7/jjj8+ee+5Z8S+4pWDuUUre93zupDTMPXOvOvkWto3Mk08+mc6dO6+y+F91mTlzZpYuXVrpUvxSuPjii9O5c+fMmDGjpDnYuG2s8+/6669P586d8/LLL5c0Bxuvmp57y5Yty1tvvZUf/OAHNXK+NTH3KLWN9X3P505Kzdwz96qLK5A2IpMnT86CBQuSJK1atcpmm21W4kQ1Z/r06fn000+TJFtssYVvp6HGbczzb+bMmfnoo4+SJM2aNcs222xT4kRsTMw9c4/S2Jjnns+dlJK5Z+5VJwUSAAAAAAW5hQ0AAACAghRIAAAAABSkQAIAWAcXXXRROnToUOoYJTNw4MD07du31DEAgBqiQAIAKIHp06dnxIgRmTRpUqmjAACslQIJAGAdXH755fnnP/+5zs+fMWNGRo4cqUACADYICiQAYKMxf/789TZW/fr107Bhw/U23vq2Pl8rAIACCQCoNosXL86IESNyyCGHpFu3bunevXuOPPLIXH311asc+9e//jVDhgxJz54907Vr1xxwwAG5+OKLM3v27Ipjli1blltuuSWHH354unbtmp49e+bMM8/MG2+8UWms6dOnp0OHDhkxYkQeffTR9O/fPzvvvHOuuOKKimM++uijXHLJJdl///3TpUuX9O7dOz//+c8za9asol7b6tZAWrnts88+yyWXXJK99torXbt2zYABA/KPf/yj4rgHHnggJ5xwQpLkJz/5STp06JAOHTpk4MCBFceUl5fnD3/4Q/r3759u3bpl1113zcCBA/PXv/616Nf6q1/9Kh06dMi///3vVfJ/9tln2XnnnTN06NCKbY8++mhOP/30ip9Jz549M3To0NU+f3XeeuutnH322dlnn33SpUuX9OrVKwMHDsyf/vSnop4PANRe9UodAAD45rr00ktz//33p1+/ftl1112zfPnyvPfee/nb3/5W6bh77rknv/jFL7LllltmwIABad26dd5///08++yzmTlzZlq0aJEk+dGPfpTHHnssvXr1yrHHHptPPvkko0ePzoABAzJ69Oh06tSp0rhPP/10Ro0alWOPPTYDBgxIkyZNkiTvv/9+vv/972fp0qU55phj0rZt20yZMiV33313/va3v+X+++/Ppptuus6ve/DgwWnRokXOPPPMzJkzJ7fddluGDBmScePGpUmTJunRo0dOP/303HTTTfn+97+f3XffPUmy+eabV4zx4x//OH/84x9zyCGHpH///lmyZEkeeeSRnHzyyRkxYkQOOOCAtb7W9u3b53e/+13Gjh2bnXbaqdLxjz32WBYvXpyjjz66Yttdd92VZs2a5X//7/+dLbbYIlOnTs19992XY489Ng8++GC23XbbNb7mTz/9NIMGDUqSDBgwIK1atcqnn36af/3rX/nHP/6R/ffff51/ngBALVAOAFBNevToUX7KKacUPOaDDz4o79y5c/lhhx1WPnfu3FX2L1++vLy8vLz8+eefL2/fvn35OeecU75ixYqK/ZMmTSrv2LFj+bHHHluxbdq0aeXt27cv79SpU/nbb7+9ypinn356+Z577ln+wQcfVNr+z3/+s7xjx47l//3f/73W13bhhReWt2/ffrXbLrnkkkrbH3300fL27duX33333RXb/vrXv5a3b9++/P77719l7CeffLK8ffv25ffcc0+l7UuXLi0/+uijy/v06VPxM1jba+3fv395r169ypctW1Zp+7HHHlu+xx57lC9evLhi24IFC1Z5/ttvv13euXPnVV7T8ccfX96nT5+Kx08//XR5+/bty//4xz+uMgYAsOFzCxsAUG2aNGmSt99+O2+++eYaj3n88cezdOnSnHXWWWnatOkq++vU+eLjylNPPZUkOf3001NWVlaxf6eddkqfPn0yYcKESre7Jcl+++2XHXbYodK2zz77LH/605/St2/fNGjQILNnz674r3Xr1mnbtm3+8pe/rPNrTpITTzyx0uM999wzSTJlypSinv/www9nk002yYEHHlgp37x589K3b9/MmDEj7733XqXnrO61JsnRRx+djz/+uNJrmjZtWl599dUcccQRadCgQcX2b33rW0m+uH1u/vz5mT17dpo3b57tttturQuGr7xi689//rP1lwDgG8gtbABAtbn44otzwQUX5Mgjj8w222yTnj17pk+fPunbt29FMbSyCOnYsWPBsaZPn546deqstiTZcccd8/TTT2f69OkVt7slWe0tV++++25WrFiRMWPGZMyYMas91zbbbFPkK1y9rz6/efPmSZI5c+YU9fx33nknCxYsyN57773GY2bNmpXtttuu4vGabi/7zne+k6uuuipjx47NvvvumyQZO3ZsysvLc9RRR1U69vXXX89//dd/5aWXXsrChQsr7WvTpk3BzHvssUf69euXBx54II888ki6dOmSvffeO4cffnh23HHHgs8FAGo/BRIAUG0OPPDAPPPMMxk/fnxefvnlvPDCCxkzZky6d++e2267rdLVL9WhcePGq2wrLy9PkvzHf/xHpfV/vuzrfrta3bp1V7t95bnXpry8PC1atMi11167xmP+1//6X5Uer+61Jl+UV/vtt1+efvrpzJ8/P02aNMnYsWOzww47ZOedd6447v33389xxx2XJk2a5Iwzzsj222+fxo0bp6ysLMOHD1+lUFqdq6++OoMHD85zzz2XV155JbfddltuuummXHzxxTn++OOLeu0AQO2kQAIAqlWzZs1y1FFH5aijjkp5eXmuueaa/O53v8u4ceNy2GGHVVw5M2nSpEpX1HzVNttskxUrVuSdd95ZZUHod955J8nar5JJkrZt26asrCxLly4teIVPdfvybXhf1a5du7z33nvp1q1bNtlkk699rqOPPjpPP/10Hn/88Wy33XaZOnVqzj///ErHPPXUU1m4cGFuvPHGilvuVpozZ07RZV/79u3Tvn37nHLKKZk3b16+973v5dprr81xxx1X8DUDALWbNZAAgGqxfPnyzJs3r9K2srKyim9Kmzt3bpLk0EMPTf369XP99devdu2clVftHHjggUmSW265pdKVPG+++WaeeeaZ7L777pVuX1uTlVfkPPXUU5k4ceJqz/fVtZSqw8r1hlb+HL6sX79+WbFiRX7961+v9rmffPJJlc613377pXnz5hk7dmzGjh2bOnXqrHL72sqrpr56ldR9992Xjz/+eK3nmDNnTlasWFFpW9OmTdOmTZssWrQoixcvrlJmAKB2cQUSAFAtFixYkN69e6dv377p1KlTWrRokenTp+fuu+/Ot7/97fTp0ydJstVWW+Xiiy/OZZddliOPPDJHHXVUWrdunZkzZ2bcuHEZPnx4OnbsmF69euWwww7LH//4x8ydOzd9+vTJxx9/nD/84Q9p2LBhfvaznxWd7Re/+EV+8IMf5Pjjj89RRx2VTp06ZcWKFZk2bVrGjRuXfv36ZdiwYdX1o0nyxbpNm2yySf7whz+kUaNGadq0aVq0aJG99torhx56aPr375+77rorr732Wvr06ZPmzZvnww8/zMSJEzNlypSMGzeu6HPVr18/RxxxRO66667861//yt57750tt9yy0jH77rtvGjdunAsuuCDHH398mjZtmldffTXPPfdc2rZtm+XLlxc8x0MPPZQ77rgjBx54YNq1a5d69erl5ZdfzvPPP5/DDjssjRo1WqefEwBQOyiQAIBq0ahRowwaNCgvvvhiXnzxxSxYsCAtW7ZM3759c9ppp1UqMH7wgx+kbdu2ufXWWzNq1KgsWbIkLVu2zF577ZWtttqq4rhrrrkmnTp1yoMPPpirrroq3/rWt9KjR4+cc8456dChQ9HZtt5669x///357W9/m2eeeSYPP/xwGjZsmK233jp9+vTJYYcdtl5/FqvTqFGj/OY3v8l1112X4cOHZ8mSJdljjz2y1157JUmuvPLK9OzZM/fdd19uvvnmLF26NFtssUU6deq0yu1nxejXr19GjRqVhQsXrnL1UfLFrX2//e1v8+tf/zo33XRT6tatm9122y2jRo3K5ZdfnhkzZhQcv2fPnpk0aVL+9Kc/5eOPP06dOnXSpk2bXHjhhdY/AoBvgLLyYldzBAAAAGCjZA0kAAAAAApSIAEAAABQkAIJAAAAgIIUSAAAAAAUpEACAAAAoCAFEgAAAAAFKZAAAAAAKEiBBAAAAEBBCiQAAAAAClIgAQAAAFDQ/wOiVvRPC8xn9gAAAABJRU5ErkJggg==\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.rcParams[\"figure.figsize\"] = (20,10)\n", + "\n", + "# sns.set(font_scale=0.95)\n", + "# g = sns.FacetGrid(dataplot, row=\"dataset\", col=\"model\", margin_titles=True, palette=\"gray\")\n", + "# g.map(sns.lineplot, x=\"score\", y=\"Average absolute error\", hue=\"model\");\n", + "dataplot = dataplot.rename(columns={\n", + " \"Average absolute error\" : \"Mean squared error\",\n", + " \"score\": \"score range\"\n", + "})\n", + "# g = sns.FacetGrid(dataplot, col=\"dataset\", hue=\"model\", margin_titles=True, legend_out=True)\n", + "# g.map(sns.lineplot, \"score\", \"Mean squared error\")\n", + "# g.add_legend()\n", + "# g.fig.subplots_adjust(top=0.8)\n", + "# g.fig.suptitle('Semantic similarity: Mean squared error on each score range', fontsize=14)\n", + "\n", + "sns.set_style(\"white\")\n", + "g = sns.barplot( x=\"score range\", y=\"Mean squared error\", hue=\"model\", data=dataplot, palette='gray')\n", + "\n", + "g.set(xticklabels=['[1.0, 1.4]', '[1.5, 2.4]', '[2.5, 3.4]', '[3.5, 4.4]', '[4.5, 5.0]'])\n", + "\n", + "ax = g\n", + "plt.setp(ax.get_legend().get_texts(), fontsize='14') # for legend text\n", + "plt.setp(ax.get_legend().get_title(), fontsize='14') # for legend title\n", + "\n", + "ax.tick_params(axis='both', which='major', labelsize=15)\n", + "ax.tick_params(axis='both', which='minor', labelsize=15)\n", + "\n", + "plt.xlabel('score intervals', fontsize=18)\n", + "plt.ylabel('Mean squared error', fontsize=16)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Pearson correlation')" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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fvpp1a9fX8HBwRo7dqzhWm5urpYvX642bdrI399fHTp0MOqfmJgoPz8/bd++Xb169ZK/v786d+6sn376SadOnVK3bt0UGBio7t276+zZs/nq37hxo0JDQ+Xv76+hQ4fq8uXLhT7v5s2b1b59ezVo0EDPPPOMVq1aVehndfnyZe3fv1+tW7cudNyEhAQNGTJEwcHBCgwM1PPPP69///vfhuvz5s1Tly5d8vXr1q2bZs6cWez6/Pz8tGbNGg0bNkyBgYF65513lJ2drQkTJqh169by9/dXu3bttHz5cqN+WVlZioqKUuPGjdW4cWNFRUVp6tSp6t27t6HN7Uv8evfurWnTpmnevHlq0qSJmjVrpujoaKNxf//9dw0ePFj+/v56+umntXnzZj333HNatGhRoZ9X69at9dVXXyk9Pb3QdhUdM6gAAAAAABWGubm5Dh8+XKpjPvnkk6U21uLFizV69GiNHj1amzZt0sSJE9W4cWO5u7tr165dWrlypebNm6datWopJSVFx44dM/SdP3++du7cqSlTpsjLy0tHjx7V5MmT5eTkpNDQUEO7hQsXasKECfLw8NC0adM0evRoOTs7a+TIkXJxcVFkZKRmzZqld99919Dn3Llz+vTTT7VkyRKlp6drypQpmjBhglGbW23YsEELFy7UpEmTVK9ePf3yyy+aPHmyLC0t1atXrzv2OXz4sKytrfXEE08U+hmlpaWpZcuWGjlypGxtbbVjxw4NHz5cn3zyiXx8fNSxY0e99957OnPmjHx8fCRJZ8+e1XfffacJEyaUqL7Y2FiNGjVKkZGRkm6GkY899pjmz58vZ2dnHT9+XFOmTFHlypXVtWtXSdLKlSu1detWzZw5U0888YQ++ugj/fOf/1TdunULfa5t27apT58+WrdunU6ePKkxY8aoXr16hr29IiMjlZycrH/84x+ytbXVnDlzdO7cuULHlKT69esrOztbR48eVbNmzYpsX1ERUAEAAAAAUAx79+5Vw4YNjc716NFDb7zxhuG4U6dO6tSpkyTptddeU1xcnL799lt16tRJ58+fl6urq4KDg2VlZSV3d3c1aNBA0s3Q5oMPPtDKlSsNS7lq1Kih48ePa82aNUYB1csvv6xWrVpJkvr376/Bgwdr0aJFatq0qSSpV69emjFjhlGd169fV3R0tNzd3SVJ06dPV8+ePfXbb7+pZs2a+Z51yZIlGjNmjJ599llDLQkJCfroo48KDKjOnTsnFxeXIpf31a5dW7Vr1zYcDxkyRP/+97+1a9cuDR06VL6+vqpbt662bdumkSNHSroZ/tSsWVP+/v4lqq99+/aG4CnPa6+9ZvhvDw8P/fjjj9q+fbuhXVxcnCIiIvTMM89Iurnf1N69ewt9Jkny9fU1jO3l5aWNGzfqwIEDeu655xQfH699+/Zp/fr1CgwMlCTNmTOnyNlmkmRnZycHBwclJiYW2bYiI6ACAAAAAKAYgoKC8gU/t+9F5OfnZ/hvS0tLOTs7G5bSPfvss4qLi1NYWJhCQkLUokULhYWFydraWqdPn1ZGRoYGDBggMzMzwxiZmZmqXr16gfdwcXGRJNWqVcvoXFpamtLT02VnZydJeuyxxwzhlHRzc3dzc3OdOXMmX0B1+fJlJSUlaerUqZo+fbrhfFZWVqEbg2dkZBRrj6e0tDTFxsbq66+/VnJysrKyspSRkWH0XB07dtSaNWuMAqq8jddLUl/9+vXz3X/t2rXauHGjzp8/r4yMDKPP+OrVq0pOTjYEh5JkZmYmf39/XbhwodDnurV+SXJzc1NKSookKT4+Xubm5kb1VKtWTW5uboWOmcfGxkYZGRnFaltREVABAAAAAFAMdnZ28vT0LLSNpaXxX7PNzMwM+xBVq1ZNO3fu1IEDB7R//35FR0dr8eLF2rBhgyFYWbp0qVGQdKcxbz3OC7PudO5u9+vK6zd9+vR8M8YK8+ijjyo1NbXIdtHR0dq7d68iIyPl6ekpOzs7RUZGKjMz09AmPDxcb731lr777jtZW1srPj7eMDOtJPXlBXR5duzYoaioKEVGRqphw4ayt7fXmjVr9MUXXxT7OQtypz/70nrT35UrV+Ts7FwqY92vCKgAE8vJyZG5ecV6X0FFrBkAAAC4H9jY2Cg0NFShoaEaOHCggoODdeTIEQUGBsra2lrnz58vk32GLl68qKSkJFWrVk2SdPz4ceXk5Bj2eLpVlSpV5ObmpoSEBHXu3LnY96hTp44uX76sy5cvFxqmHDlyRJ07dzYsocvIyFBCQoLRTC43Nzc1bdpU27Ztk7W1tRo2bKgaNWrcU33SzX2yAgICjJYBJiQkGP7bwcFBrq6uOnHihOHPITc3VydOnJCrq2uJ7nUrb29v5eTk6IcfflBAQIAk6cKFC7p06VKRfRMSEpSRkVHkHlgVHQEVYGJlscljWSvNTSQBAACAiuLGjRtKTk42OmdhYVHsmS1btmxRdna2/P39ValSJX322WeysrKSp6en7O3t1b9/f8XExCg3N1eNGzdWWlqajh49KnNzc7300kv3VLutra0iIyM1fvx4Xb9+XdOmTVNoaOgd95+SpBEjRmjGjBlydHRUy5YtlZWVpR9//FEXL140envdrerWrSsXFxcdOXJEbdq0KbCWmjVr6vPPP1dYWJgsLS21ePHiOy5f69ixo+bMmSMrKysNHjz4nuvLu/eWLVu0e/dueXp6avv27fr222/l5ORkaNOnTx+9//778vLyko+Pj9avX6/k5OR7DqhCQkI0depUTZs2TTY2NoqJiZGtra3Rks47OXTokGrUqFHgn9WDgoAKAAAAAFBh5OTklPo/mBZ3hcD+/fsVEhJidO6xxx7Tnj17inUfR0dHLV++XNHR0crKypKPj48WLVpkmBk0cuRIValSRStXrtS0adNkb2+vOnXqaMCAASV/qNtUr15d4eHhGjx4sP744w8FBwdr1qxZBbbv2rWr7Ozs9P7772vu3LmytbWVr69vgRukSzfDur///e/69NNPCw2oxo0bp4kTJ6pnz55ydHRU37597xhQtW3bVtOmTdO1a9fUvn37e65Pkl566SXDG/Zyc3PVrl07vfzyy9qyZYuhTf/+/ZWcnKzx48fLzMxMXbp0Udu2bfX7778XOnZR5syZo8mTJ6t3795ycXHRiBEjdPbs2SL37dq+fbtefPHFe7p3RWCWW1oLIh8QiYmJCgsL05dffikPDw9Tl4OHBDOoykfe21AqgkOHDpm6hIdGRfr5q6g/ewBMoyL93pMq5u++ZcuWmbqEEhk4cGCF+r0n3fzdd/LkSdWpU8fUpaCYUlJS1L59e23atMkQvD0IOnfurCeffFKTJ08utTEvX76sli1bau7cuYbljrc7deqU+vXrp127duXbkP9+d/vPblF5CzOoAAAAAABAqXBxcVFUVJSSkpIqbEB17tw57du3T40bN1ZWVpY2bNign3/+Od8bHEvqwIED+uuvv+Tn56eUlBS98847qly5slq0aFFgn0uXLik6OrrChVN3g4AKAAAAAACUmrCwMFOXcE/Mzc318ccfKyYmRjk5OfL19dXy5cvVoEGDexo3KytLCxYs0NmzZ2Vra6vA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HJDZs2fn2GOP3eDYH//4xxxyyCEFnaxDhw6ZNGlSrr322nz5y19OeXl5hg8fnqqqqgb91qxZk7Vr19a//u1vf5skefjhh/Pwww836DtmzJicdtppSf43rPrRj36URYsWpVWrVvnoRz+aO++8M4MGDSqoPgAAAABaXkEB1Wc+85nccccd6dSpUz75yU8m+d+9nZ577rn86Ec/yoUXXljwCbt27Zp77713s32efvrpBq/Hjh2bsWPHbnHu9SuuAAAAANh2FBRQfelLX8rLL7+cb3zjG7nqqquSJGeeeWZWr16dT3/60zn77LObtUgAAAAAtl8FBVStW7fOrbfemrPOOiu/+c1vsnjx4uy222752Mc+tsXNzQEAAABgc7YYUNXV1eWBBx7Isccem969exf8DXoAAAAAUIhWW+pQWlqa7373u1myZElL1AMAAADADmaLAVWSdOnSJfPnz2/uWgAAAADYARUUUF100UWZMGFCXnnlleauBwAAAIAdTEGbpN99991ZsWJFPvvZz6ZTp07p2LFjSkpK6o+XlJRk8uTJzVYkAAAAANuvgr/Fr0uXLs1dCwAAAAA7oIICqh//+MfNXQcAAAAAO6gt7kFVV1eXUaNG5b/+679aoh4AAAAAdjBbDKhKS0szY8aMrF27tiXqAQAAAGAHU9C3+B111FH5wx/+0Ny1AAAAALADKmgPqssvvzyjRo3KLrvskhNPPHGDb/FLklatCsq6AAAAAKCBggKqk08+OUlyww035IYbbtjgeElJSV588cWmrQwAAACAHUJBAdWoUaM2WDEFAAAAAE2hoICqqqqquesAAAAAYAfV6I2jli9fnoULF2b58uXNUQ8AAAAAO5iCVlAlyW9+85vceuutefnll7Nu3bqUlJTkox/9aC6++OL079+/OWsEAAAAYDtWUED1m9/8JiNHjkznzp1zwQUXZK+99sqiRYsyderUnH/++bnrrruEVAAAAABslYICqurq6vTv3z933nlnWrX6/54KHDVqVEaOHJlx48YJqAAAAADYKgXtQfXyyy/nrLPOahBOJUmrVq1y5pln5qWXXmqW4gAAAADY/hUUUJWWlmbZsmUbPbZ8+fKUlpY2aVEAAAAA7DgKCqj69u2b2267LfPnz2/Q/tprr2XcuHHp169fsxQHAAAAwPavoD2oLr300nz+85/Ppz71qfTs2TMdO3bMW2+9ldmzZ6e8vDyXXnppc9cJAAAAwHaqoBVUhxxySB599NGcffbZqaury4svvpjVq1fnnHPOySOPPJKDDz64mcsEAAAAYHtV0AqqJNl7771z2WWXNWctAAAAAOyAClpBNXfu3MycOXOjx/7rv/4rf/vb35qyJgAAAAB2IAUFVDfeeGN+9atfbfTYr371q4wZM6ZJiwIAAABgx1FQQPXCCy+kd+/eGz3Wp0+f/OlPf2rSogAAAADYcRQUUC1fvjxt27bd6LE2bdpk6dKlTVoUAAAAADuOggKqAw88MM8+++xGjz333HPp1KlTkxbFh8e7775b7BIabVusGQAAAHZkBX2L36mnnprbb789+++/f4YOHZrS0tLU1dXlpz/9aX70ox+lqqqqueukSHbaaaeMHDmy2GU0yp133lnsEgAAAIBGKCigOu+88/LCCy/kuuuuyw033JAOHTpkyZIlWbt2bU466aRUVlY2d50AAAAAbKcKCqhat26d22+/Pc8++2xmzJiRd955J7vvvnv69++ffv36NXeNAAAAAGzHCgqo1jv22GNz7LHHNlctAAAAAOyACtokHQAAAACai4AKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAAABAUQmoAAAAACiqNoV0qqury1133ZXHH388CxcuTF1dXYPjJSUlefHFF5ulQAAAAAC2bwUFVN/5zndy//33Z+DAgTnppJNSWlra3HUBAAAAsIMoKKB66qmnUlVVla985SvNXQ8AAAAAO5iC9qBasWJFevXq1dy1AAAAALADKiigOv744zNr1qzmrgUAAACAHVBBj/idffbZ+cY3vpGSkpIMGjQou+222wZ9DjzwwCYvDgAAAIDtX0EB1ec+97kkSXV1dcaPH7/RPi+99FLTVQUAAADADqOggOrGG29MSUlJk5xwzpw5ue666zJ79uy0b98+Q4cOzYUXXpjWrVtvcswf//jHPPDAA5k1a1befPPN7Lvvvjn55JNTWVmZtm3bNuj7u9/9LmPHjs3LL7+cjh07ZsSIETnnnHOapHYAAAAAml5BAdVpp53WJCdbsmRJRowYka5du2bChAmZN29ebrrppqxduzYXX3zxJsc98cQTmTdvXiorK3PQQQfllVdeyW233ZZXXnkl48aNq+/397//PV/60pfy8Y9/PJdcckn+9Kc/ZezYsWnXrl2GDh3aJNcAAAAAQNMqKKBab926dZkzZ06WLFmSDh06pGvXro1aWTVlypSsXr061dXVKSsrS//+/bNs2bJUV1ensrIyZWVlGx1XWVmZPfbYo/51v3790rZt23z729/OggUL0qlTpyTJD3/4w+y99965+eab06ZNmxx77LF57bXXUl1dnTPOOKPJVoEBAAAA0HQK+ha/JPnpT3+aAQMG5JRTTsnZZ5+dU045JR/72Mfy05/+tOCTTZs2LQMGDGgQRA0ZMiSrVq3KzJkzNznu/eHUeocddliS5M0332ww/+DBg9Omzf+Xuw0ZMiSvv/56/vznPxdcJwAAAAAtp6AVVI8++mi+9a1v5dhjj80pp5ySvfbaK2+99VYee+yxfPvb3067du3yb//2b1ucp6amJsccc0yDtv333z/t2rVLTU1NTjjhhIILnz17dlq1apXOnTsnSVasWJGFCxemoqKiQb8uXbrUn7tbt24Fzw8AAABAyygooPrBD36Qk08+OTfffHOD9s9+9rP5+te/nrvvvruggKq2tjbt27ffoL28vDy1tbUFlpwsWrQoEydOzKmnnpo999wzSbJ06dL6uf557vXnBgAAAODDp6BH/ObOnZtTTjllo8dOOeWUzJ07t0mL2py6urqMHj06u+yyS6644ooWOy8AAAAAzaOgFVS77rprXn/99Y0ee/3117PrrrsWdLLy8vIsW7Zsg/ba2toNVj5tzLp163LZZZdlzpw5uf/++9OhQ4f6Y+tXZq1fSfX+udefGwAAAIAPn4JWUA0cODC33nprZs2a1aD997//fW677bYMHDiwoJNVVFSkpqamQdvChQuzcuXKDfaO2pgbbrghv/zlLzN+/Pj6vaXW22WXXbLffvttMP/614XMDwAAAEDLK2gF1de//vX84Q9/yNlnn5199tknHTt2zFtvvZXXX389nTt3zte//vWCTjZw4MD88Ic/zLJly+q/yW/q1KnZeeed07dv382OvfPOO3Pffffl+9//fnr37r3J+X/+859n9OjRad26df38++23X/7lX/6loBoBAAAAaFkFraDq2LFjHnnkkXzzm99Mr169UlZWlp49e+aqq67KI488kr322qugkw0bNiylpaWpqqrKjBkz8uCDD6a6ujojRoyoD6ySZPDgwbnyyivrXz/22GP53ve+l8985jPZZ599Mnv27Po/ixcvru933nnn5Y033sg3vvGNPPfcc7n77rvz4IMPZtSoUSkpKSn0vwkAAAAALaigFVRJ0q5du3zhC1/IF77wha0+WYcOHTJp0qRce+21+fKXv5zy8vIMHz48VVVVDfqtWbMma9eurX/929/+Nkny8MMP5+GHH27Qd8yYMTnttNOSJAcddFDuvvvujB07NpWVlenYsWMuu+yyDB06dKtrBgAAAKB5FRRQLV68OKtWrcr+++9f3zZlypT85S9/yYABA3L88ccXfMKuXbvm3nvv3Wyfp59+usHrsWPHZuzYsQXN37t37zz00EMF1wMAAABAcRX0iN+VV16Zu+66q/71+PHjc/XVV+fxxx/PBRdckKlTpzZbgQAAAABs3woKqF544YUce+yx9a+nTJmSkSNH5vnnn89ZZ52Ve+65p9kKBAAAAGD7VlBAtWTJkuy5555Jkj//+c9566238tnPfjZJ8olPfCJz585tvgoBAAAA2K4VFFDttttueeONN5Ikzz33XPbee+8cfPDBSZL33nuvwYbmAAAAANAYBW2Sftxxx2XcuHF5++23c8899+TEE0+sP1ZTU5NOnTo1W4EAAAAAbN8KWkH19a9/Pfvtt1+++93v5sADD8yoUaPqjz322GM56qijmq1AAAAAALZvBa2gatu2be644460bdt2g2OTJk1KaWlpkxcGAAAAwI5hiyuo3nvvvfTr1y+//e1vN3q8rKxMQAUAAADAVttiQNWmTZvsueeead26dUvUAwAAAMAOpqA9qE455ZT89Kc/be5aAAAAANgBFbQHVadOnfL444/n9NNPzyc+8Yl07NgxJSUlDfqcccYZzVIgAAAAANu3ggKqa6+9Nknyxhtv5H/+5382OF5SUiKgAgAAAGCrFBRQ/fKXv2zuOgAAAADYQRX8iB8AAAAANIeCNkkHAAAAgOZS0AqqJJk+fXoeeOCBzJ07N6tXr97guMcAAQAAANgaBa2geuaZZ1JZWZlVq1alpqYmFRUV2X///fP666+nVatW6du3b3PXCQAAAMB2qqCAasKECTnrrLNy1113JUlGjx6dH//4x3n88cezZs2afOxjH2vWIgEAAADYfhUUUNXU1OT4449Pq1atUlJSkjVr1iRJDjnkkFRVVWXixInNWiQAAAAA26+CAqpWrVqldevWKSkpyR577JHXXnut/tjee++defPmNVuBAAAAAGzfCgqoDjnkkCxYsCBJcsQRR+RHP/pR3nzzzSxevDj/8R//kU6dOjVrkQAAAABsvwr6Fr+TTz45f/3rX5MkVVVV+eIXv5hBgwYlSVq3bp1bbrml+SoEAAAAYLtWUEB11lln1f/9iCOOyGOPPZZp06Zl1apVOe6449K1a9dmKxAAAAC2BatXr07btm2LXQZskwoKqP7Zvvvum3//939v6loAAABgm9W2bdv07t272GU0yqxZs4pdAiRpREC1bt26PP3005k1a1beeeedXHjhhenUqVNmzpyZgw46KPvss09z1gkAAADAdqqggGrJkiU5//zz84c//CG77rprVqxYkS984Qvp1KlTfvKTn2S33XbLVVdd1dy1AgAAALAdKuhb/L7zne9k4cKFeeCBB/L8889n3bp19ceOO+64PPvss81WIAAAAADbt4ICql/+8pe5+OKLc+SRR6akpKTBsf322y8LFy5sluIAAAAA2P4VFFCtWLFik3tM1dXVNVhRBQAAAACNUVBAdcghh2T69OkbPTZz5sx069atSYsCAAAAYMdRUEB15pln5t57783EiRPz2muvJUlqa2vzf//v/819992XM888s1mLBAAAAGD7VdC3+H3uc5/L/PnzM27cuNx+++1JknPPPTetWrXKl770pZxyyinNWiQAAAAA26+CAqokufTSSzNs2LA8++yz+cc//pHddtst/fv3z4EHHtic9QEAAACwnSsooFq8eHF23XXXHHDAARk6dGhz1wQAAADADmSTe1CtWbMm48aNS58+fdK/f/8cffTRqaqqSm1tbUvWBwAAAMB2bpMrqKZMmZLx48enb9++6d69e+bPn59f/OIXKSsry5gxY1qyRgAAAAC2Y5sMqH7yk5/k3//933PttdfWt02ZMiXXXXddrrnmmpSWlrZIgQAAAABs3zb5iN/8+fPzr//6rw3aPv3pT2fNmjV57bXXmr0wAAAAAHYMmwyoVqxYkbKysgZtu+66a5Jk+fLlzVsVAAAAADuMzX6L3xtvvJH58+fXv16zZk19e3l5eYO+Bx54YDOUBwAAAMD2brMB1UUXXbTR9lGjRm3Q9tJLLzVNRQAAAADsUDYZUPmmPgAAAABawiYDqs9+9rMtWQcAAAAAO6hNbpIOAAAAAC1BQAUAAABAUQmoAAAAACgqARUAAAAARSWgAgAAAKCoNvktfs1lzpw5ue666zJ79uy0b98+Q4cOzYUXXpjWrVtvckxdXV1uvfXW/OEPf8gLL7yQ1atX55VXXtmg3+WXX57//M//3KB96tSp6dKlS5NeBwAAAABNo0UDqiVLlmTEiBHp2rVrJkyYkHnz5uWmm27K2rVrc/HFF29y3KpVq/LQQw+lR48eOfLII/Pcc89tsm9FRUXGjBnToO2AAw5osmsAAAAAoGm1aEA1ZcqUrF69OtXV1SkrK0v//v2zbNmyVFdXp7KyMmVlZRsdV15enpkzZ6akpCSTJ0/ebEDVrl279OrVq7kuAQAAAIAm1qJ7UE2bNi0DBgxoEEQNGTIkq1atysyZMzc7tqSkpLnLAwAAAKAIWjSgqqmpSUVFRYO2/fffP+3atUtNTU2TnOOvf/1rjjrqqBxxxBH5/Oc/v8XgCwAAAIDiatFH/Gpra9O+ffsN2svLy1NbW/uB5z/ssMPSo0ePdO3aNYsXL84999yTc889N/fff3969OjxgecHAAAAoOm1+Lf4Nafhw4c3eD1o0KAMGTIkd9xxRyZMmFCkqgAAAADYnBZ9xK+8vDzLli3boL22tjbl5eVNfr527dpl0KBBefHFF5t8bgAAAACaRosGVBUVFRvsNbVw4cKsXLlyg72pmkpJSYkN1gEAAAA+xFo0oBo4cGCmT5/eYBXV1KlTs/POO6dv375Nfr5Vq1bl17/+dQ4//PAmnxsAAACAptGie1ANGzYsP/7xj1NVVZXKysrMnz8/1dXVGTFiRMrKyur7DR48OH369MmNN95Y3/bMM89k5cqVeemll5IkTz75ZJKke/fu6dSpU5YuXZqRI0fmlFNOyUEHHZS33347kyZNyptvvpnbbrutJS8TAAAAgEZo0YCqQ4cOmTRpUq699tp8+ctfTnl5eYYPH56qqqoG/dasWZO1a9c2aLvmmmuyYMGC+tdf/epXkyRjxozJaaedltLS0uyxxx6ZOHFi/vGPf6Rt27bp1atXJk+enO7duzf/xQEAAACwVVr8W/y6du2ae++9d7N9nn766YLa3q9t27aprq7+QLUBAAAA0PJadA8qAAAAAPhnAioAAAAAikpABQAAAEBRCagAAAAAKCoBFQAAAABFJaACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAAABAUQmoAAAAACgqARUAAAAARSWgAgAAAKCoBFQAAAAAFJWACgAAAICiElABAAAAUFQCKgAAAACKSkAFAAAAQFEJqAAAAAAoKgEVAAAAAEUloAIAAACgqARUAAAAABSVgAoAAACAohJQAQAAAFBUAioAAAAAikpABQAAAEBRCagAAAAAKCoBFQAAAABFJaACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAzWb16tXFLqFRtrV6AQC2F22KXQAAsP1q27ZtevfuXewyCjZr1qxilwAAsEOyggoAAACAohJQAQAAAFBUAioAAAAAikpABQAAAEBRCagAAAAAKCoBFQAAAABFJaACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAQItau3ZtsUtolG2tXgDYFrUpdgEAAOxYWrVqld/97nfFLqNgRx99dLFLAIDtXouvoJozZ06GDx+enj17ZsCAAbntttuyZs2azY6pq6vLTTfdlDPPPDM9evRIt27dNtn3F7/4RU4++eR07949n/70pzN16tSmvgQAAAAAmlCLBlRLlizJiBEjUlJSkgkTJmTUqFG55557cvvtt2923KpVq/LQQw+lXbt2OfLIIzfZb9asWbnooovSr1+/3H333Rk0aFAuueSSTJ8+vakvBQAAAIAm0qKP+E2ZMiWrV69OdXV1ysrK0r9//yxbtizV1dWprKxMWVnZRseVl5dn5syZKSkpyeTJk/Pcc89ttN/EiRPTu3fvXHXVVUmSY445JnPmzMn48eMzYMCAZrsuAAAAALZei66gmjZtWgYMGNAgiBoyZEhWrVqVmTNnbnZsSUnJZo/X1dXl+eefz6c+9akG7UOGDMns2bOzdOnSrS8cAAAAgGbTogFVTU1NKioqGrTtv//+adeuXWpqaj7Q3PPmzcu77767wfwVFRVZu3Zt5s6d+4HmBwAAAKB5tGhAVVtbm/bt22/QXl5entra2g8095IlS+rner8OHTrUnxsAAACAD58W/xY/AACaznvvvVfsEgAAPrAW3SS9vLw8y5Yt26C9trZ2g5VPjbV+pdQ/7zW1qZVVAADbgzZt2uSuu+4qdhmNcv755xe7BADgQ6ZFV1BVVFRssNfUwoULs3Llyg32jmqszp07Z6eddtpg/pqamrRq1SqHHHLIB5ofAAAAgObRogHVwIEDM3369AarqKZOnZqdd945ffv2/UBzl5aWpl+/fnnyyScbtD/xxBPp1avXRve+AgAAAKD4WjSgGjZsWEpLS1NVVZUZM2bkwQcfTHV1dUaMGJGysrL6foMHD86VV17ZYOwzzzyTJ598Mi+99FKS5Mknn8yTTz6ZBQsW1Pf5yle+kpkzZ+aGG27I888/n+985zt55plnMmrUqJa5QAAAAAAarUX3oOrQoUMmTZqUa6+9Nl/+8pdTXl6e4cOHp6qqqkG/NWvWZO3atQ3arrnmmgZh1Fe/+tUkyZgxY3LaaaclSXr37p3bb7893//+9/PAAw/kgAMOyHe/+90MGDCgma8MAAAAgK3VogFVknTt2jX33nvvZvs8/fTTBbVtzIknnpgTTzxxq2oDAAAAoOW16CN+AAAAAPDPBFQAAAAAFJWACgAAAICiElABAAAAUFQCKgAAAACKSkAFAAAAQFEJqAAAAAAoKgEVAAAAAEUloAIAAACgqARUAAAAABSVgAoAAACAohJQAQAAAFBUAiq2O++9916xSwAAAAAaoU2xC4Cm1qZNm9x1113FLqNg559/frFLAAAAgKKyggoAAACAohJQAQAAAFBUAioAAAAAikrKug9vAAAgAElEQVRABQAAAEBRCagAAAAAKCoBFQAAAABFJaACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAAABAUQmoAAAAACgqARUAAAAARSWgAgAAAKCoBFQAAAAAFJWACgAAAICiElABAAAAUFQCKgAAAACKSkAFAAAAQFEJqAAAAAAoKgEVAAAAAEUloAIA+P979913i10CAMAOqU2xCwAA+LDYaaedMnLkyGKX0Sh33nlnsUsAAPjArKACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAAABAUQmoAAAAACgqARUAAAAARSWgAgAAAKCoBFQAAAAAFFWLB1Rz5szJ8OHD07NnzwwYMCC33XZb1qxZs8VxS5cuzRVXXJE+ffrk6KOPzte+9rW8/fbbDfpcfvnl6dat2wZ//vrXvzbX5QAAAADwAbVpyZMtWbIkI0aMSNeuXTNhwoTMmzcvN910U9auXZuLL754s2NHjx6duXPn5vrrr0+rVq1yyy23ZNSoUbn//vsb9KuoqMiYMWMatB1wwAFNfi0AAAAANI0WDaimTJmS1atXp7q6OmVlZenfv3+WLVuW6urqVFZWpqysbKPjfv/732f69OmZPHly+vTpkyTZZ599MnTo0MyYMSPHHXdcfd927dqlV69eLXI9AAAAAHxwLfqI37Rp0zJgwIAGQdSQIUOyatWqzJw5c7Pj9tprr/pwKkl69OiRAw44INOmTWvWmgEAAABoXi0aUNXU1KSioqJB2/7775927dqlpqamUeOSpEuXLhuM++tf/5qjjjoqRxxxRD7/+c9vNvgCAAAAoPha9BG/2tratG/ffoP28vLy1NbWbtW4V199tf71YYcdlh49eqRr165ZvHhx7rnnnpx77rm5//7706NHj6a5CAAAAACaVIsGVM1t+PDhDV4PGjQoQ4YMyR133JEJEyYUqSoAAAAANqdFH/ErLy/PsmXLNmivra1NeXn5ZsctXbq00ePatWuXQYMG5cUXX9y6ggEAAABodi0aUFVUVGywZ9TChQuzcuXKje4x9f5xc+fO3aB9U3tTvV9JSUlKSkq2rmAAAAAAml2LBlQDBw7M9OnTG6yimjp1anbeeef07dt3s+MWLVqUWbNm1bf96U9/yvz58zNw4MBNjlu1alV+/etf5/DDD2+aCwAAAACgybVoQDVs2LCUlpamqqoqM2bMyIMPPpjq6uqMGDEiZWVl9f0GDx6cK6+8sv71kUcemQEDBuSyyy7Lz372s/ziF7/IpZdemqOPPjrHHXdckmTp0qU588wzM2XKlDz77LOZOnVqzjnnnLz55psZOXJkS14mAAAAAI3Qopukd+jQIZMmTcq1116bL3/5yykvL8/w4cNTVVXVoN+aNWuydu3aBm233nprxowZkyuvvDJr167N8ccfn29+85v1x0tLS7PHHntk4sSJ+cc//pG2bdumV69emTx5crp3794i1wcAAABA47X4t/h17do1995772b7PP300xu0lZeXZ8yYMRkzZsxGx7Rt2zbV1dVNUiMAAAAALadFH/EDAAAAgH8moAIAAACgqARUAAAAABSVgAoAAACAohJQAQAAAFBUAioAAAAAikpABQAAAEBRCagAAAAAKCoBFQAAAABFJaACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAAABAUQmoAAAAACgqARUAAAAARSWgAgAAAKCoBFQAAAAAFJWACgAAAICiElABAAAAUFQCKgAAAACKSkAFAAAAQFEJqAAAAAAoKgEVAAAAAEUloAIAAACgqARUAAAAABSVgAoAAACAohJQAQAAAFBUAioAAAAAikpABQAAAEBRCagAAAAAKCoBFQAAAABFJaACAAAAoKgEVAAAAAAUlYAKAAAAgKISUAEAAABQVAIqAAAAAIpKQAUAAABAUQmoAAAAACgqARUAAAAARSWgAgAAAKCoBFQAAAAAFJWACgAAAICiElABAAAAUFQCKgAAAACKSkAFAAAAQFEJqAAAAAAoqhYPqObMmZPhw4enZ8+eGTBgQG677basWbNmi+OWLl2aK664In369MnRRx+dr33ta3n77bc36PeLX/wiJ598crp3755Pf/rTmTp1anNcBgAAAABNpEUDqiVLlmTEiBEpKSnJhAkTMmrUqNxzzz25/fbbtzh29OjRef7553P99ddn7NixeeGFFzJq1KgGfWbNmpWLLroo/fr1y913351BgwblkksuyfTp05vrkgAAAAD4gNq05MmmTJmS1atXp7q6OmVlZenfv3+WLVuW6urqVFZWpqysbKPjfv/732f69OmZPHly+vTpkyTZZ599MnTo0MyYMSPHHXdckmTixInp3bt3rrrqqiTJMccckzlz5mT8+PEZMGBAy1wkAAAAAI3Soiuopk2blgEDBjQIooYMGZJVq1Zl5syZmx2311571YdTSdKjR48ccMABmTZtWpKkrq4uzz//fD71qU81GDtkyJDMnj07S5cubeKrAQAAAKAptOgKqpqamhxzzDEN2vbff/+0a9cuNTU1OeGEEzY5rqKiYoP2Ll26pKamJkkyb968vPvuuxv0q6ioyNq1azN37tz06NFjizWu3w/r9ddfL+iaGmvt2rXNMm9zefXVV7Ny5cpil9Eor776apYsWVLsMgr26quvZtGiRcUuo1FeffXVYpewVbal+8+91zK2tfvPvdf83Hstw73XMraley/Z9u4/917L2BbvP/de83LvtYzmuPfW5yyb2oe8RQOq2tratG/ffoP28vLy1NbWbtW49f/R1r9By8vLG/Tp0KFD/RyFWP+mOeusswrqv737xCc+UewSGm1bq/kHP/hBsUvgQ2hbex8n22bN7j/+2bb4Pt4Wa3bvsTHb2nt5W6s3ce+xcdvae3lbqzdx7/2zRYsW5aCDDtqgvUUDqm3BEUcckfvuuy8dO3ZM69ati10OAAAAwDZvzZo1WbRoUY444oiNHm/RgKq8vDzLli3boL22tnaDlU//PG7x4sWbHbd+pdQ/7zW1qZVVm7Lzzjund+/eBfUFAAAAoDAbWzm1Xotukl5RUVG/Z9R6CxcuzMqVKze6x9T7x82dO3eD9vfvTdW5c+fstNNOG8xfU1OTVq1a5ZBDDmmCKwAAAACgqbVoQDVw4MBMnz69wSqqqVOnZuedd07fvn03O27RokWZNWtWfduf/vSnzJ8/PwMHDkySlJaWpl+/fnnyyScbjH3iiSfSq1evje5hBQAAAEDxtb766quvbqmTfeQjH8mDDz6Y559/PnvvvXdmzJiR733vexk+fHgGDRpU32/w4MF5+eWX6zc/22+//TJ79uw89NBD2W+//TJ37txcffXV6dKlS0aPHl0/rlOnTqmurs4777yTtm3b5v77788jjzyS66+/Pp07d26pywQAAACgEUrWrVu3riVPOGfOnFx77bWZPXt2ysvLc8YZZ6SqqqrBhuQnnHBC+vbtm7Fjx9a31dbWZsyYMfn5z3+etWvX5vjjj883v/nN7LHHHg3m/8UvfpHvf//7+dvf/pYDDjggVVVVGTJkSItdHwAAAACN0+IBFQAAAAC8X4vuQQUAAAAA/0xABQAAAEBRCagAAAAAKCoBFU3m7LPPTrdu3dKtW7dMmjSpvv1Pf/pTLr/88nzyk5/MoYcemssvv7zgOd94442MGjUqRx55ZPr165drr702K1eubHRtixcvzvXXX58zzjgjRxxxRE444YRGz5Eko0aNSrdu3TJ58uQG7Zdffnn9td90001bNTdsraa+955//vn6+d7/55Zbbml0bTNmzMjo0aNz/PHHp2fPnvm3f/u3TJ48OWvWrGnUPDfeeONG769x48bV13fRRRc1uj74oDZ1/02ZMiVf/OIXc9xxx+Xoo4/OsGHDMn369C3O9+qrr270/rv44osbXdtf/vKXnHfeeRkwYECOOOKIfPzjH883v/nNvPnmm42ax/3Hh9Gm7r377rsvp512Wvr06ZOePXvm5JNPzn333ZctbbvblD/73m/FihUZNGhQunXrlj//+c+NGutzJx9Gm7r33u/FF1/MYYcdln79+m1xvqa89z7IXHV1dRk7dmyOPfbY9OrVK+eff35effXVBn3ce82vTbELYPvSr1+/XHLJJenUqVN923//93/nd7/7XXr27Jnly5cXPNe7776b8847LzvttFNuvfXW1NbWZuzYsamtrW30P1hvvPFGpk6dmh49euTQQw/N4sWLGzU+SaZPn57Zs2dv9NgFF1yQYcOG5cILL2z0vNAUmvLeW++WW27JgQceWP96n332afQcDz74YFatWpWvfvWr2W+//fK73/0uY8eOzauvvlpwYDZnzpw89NBDKSsr2+DY0KFD87GPfSzXXHNNo2uDprKx+++OO+7Ixz72sZx11llp165dHn300XzpS1/K+PHj84lPfGKLc1522WU56qij6l/vvvvuja5r6dKlOeCAA/KZz3wme++9d1599dWMHz8+//M//5OHHnoobdps+WOg+48Ps43de7W1tRk8eHC6deuWdu3a5dlnn811112XVatW5bzzztvinE3xs+/97rjjjrz33nuNHudzJx9mG7v31lu3bl2uvfba7LHHHo167zflvbc1c11//fV56qmncsUVV2T33XdPdXV1zj333Dz22GNp27ZtEvdeSxBQ0aR222239OrVq0Hb2WefneHDhydJTjvttILneuqpp/LXv/41P/vZz+r/gWnTpk0uueSSXHjhhTn44IMLnqtbt26ZMWNGkuSmm27KU089VfDY5H/DshtuuCGjR4/OVVddtcHxzp07p3PnziktLW3UvNBUmvLeW69bt275l3/5lw9U1//5P/8ne+yxR/3rfv36ZdWqVZk0aVIuueSSgu6Z6667Luecc04effTRDY7tu+++2XfffTf6yzO0lI3dfw8//HCD937//v3z97//PZMmTSoooDrkkEM2mLOxjjrqqAYhV79+/bLvvvvm3HPPzSuvvJLDDz98i3O4//gw29i995WvfKXB62OPPTYLFizII488UlBA1RQ/+9b7+9//nh//+Mf5xje+kauvvrrgcT538mG3sXtvvf/3//5f/vGPf+T000/Pgw8+WPCcTXnvNXau119/PQ899FBuvPHGfOYzn0mSHHroofnEJz6RRx99NEOHDk3i3msJHvGj2bVqtXVvs2nTpqV79+4N0u8TTzwxO+20U37zm9+0SA3r3Xvvvdl5551z+umnf6B5oCV90Pd9U3j/L+jrHXbYYVm9enXeeeedLY5/8sknU1NTk/PPP785yoNms6n3fmMfr2tqu+22W5L//QV4S9x/bC923333gt7zTe3GG2/MGWeckYqKikaN87mTbdWyZctyyy235LLLLstOO+1U7HIKtv4R/MGDB9e37bPPPjnqqKMybdq0YpW1Qyr+by+wCTU1NRv8QC8tLU3nzp1TU1PTYnUsWrQoEyZMyJVXXvmh+IUfWsrw4cNz2GGH5YQTTsiECRMavW/UpsyePTvl5eXZc889N9tv1apVuemmm/K1r30tu+yyS5OcG4pp9uzZOeSQQwrqe8UVV+Swww7LgAEDMmbMmKxatWqrz7t27drU1dWlpqYm3/3ud9O9e/f06NFjs2Pcf2zr3nvvvSxfvjzPPPNMHnnkkZx11lkFjWuqn32//vWvM3v27EY/CuRzJ9uy8ePHp0uXLjnxxBMbPbYpP3c2dq6amprsu+++2XXXXRu0d+nSpUV/78QjfnyI1dbWpn379hu0l5eXp7a2tsXquPnmmzNgwID06dOnxc4JxdS+ffucf/756d27d3baaaf86le/yrhx47J48eKNPmrQGHPmzMkDDzyQysrKtG7derN977zzznTs2DGnnnrqBzonfBg89NBDefHFF3PZZZdttl9paWnOOuus9O/fP2VlZZk5c2buvvvuzJs3LxMnTtyqc1dWVtb/3+HDDz88d9999xZ/8XX/sS1btGhRBgwYUP/6K1/5Ss4+++zNjmnKn311dXW58cYbc9FFF6VDhw6NGutzJ9uqmpqa3H///fnJT37SqHFNee9t7Vyb+71zyZIljaqBD0ZABZvx+9//Pk899VSmTp1a7FKgxXz0ox/NRz/60frXxx13XEpLSzNp0qRccMEFG310qRBLlixJVVVVunXrlpEjR2627/z58/Mf//Efuffee1NSUrJV54MPixdeeCHXX399zjnnnBxzzDGb7bv33nvn29/+dv3rfv36Zc8998w111yTl19+OYceemijz/+tb30rS5Ysyd/+9rdMnDgxlZWVeeCBB+o3ff1n7j+2dbvvvnseeuihrFixIjNnzsxdd92VXXfdNZWVlZsc05Q/+yZNmpS2bdtm2LBhjarb5062ZTfccEM++9nPplu3bo0a15T3XnN9hqXlWDfKh1Z5eXmWLVu2QXttbW3Ky8tbpIYbb7wxn/vc59K+ffvU1tbWr9xatWpVli5d2iI1wIfBJz/5ybz33nt55ZVXtmr86tWrc8EFF6Suri4TJ07c4uaS3/3udzNw4MAccsgh9ffe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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -761,21 +429,99 @@ } ], "source": [ + "from collections import defaultdict\n", + "from scipy.stats import pearsonr\n", + "def generate_scores_df(f1=None, f2=None, f1_label='f1_label', f2_label='f2_label', task=None):\n", + " f1_list = np.array(extract_scores(f1, task))\n", + " f2_list = np.array(extract_scores(f2, task))\n", + " df_dct = defaultdict(list)\n", + " for idx, item in enumerate(f1_list):\n", + " df_dct[round(item)].append({'gold': item, 'pred': f2_list[idx]})\n", + " for key, value in df_dct.items():\n", + " new_df = pd.DataFrame(df_dct[key])\n", + " gold = new_df['gold'].values.tolist()\n", + " pred = new_df['pred'].values.tolist()\n", + " goal = pearsonr(gold, pred)[0]\n", + " df_dct[key] = goal\n", + " keys = []\n", + " values = []\n", + " for key, value in dict(df_dct).items():\n", + " keys.append(key)\n", + " values.append(value)\n", + " return pd.DataFrame({'score': keys, 'pearson': values}).sort_values('score')\n", + "\n", + "def generate_grid(model_file, task_name, plot_title):\n", + " def generate_section(test_file, submission_file, dataset_name, plot_title):\n", + " dataplot = generate_scores_df(test_file, \n", + " submission_file, \n", + " task=task_name,\n", + " f1_label=\"Gold scores\",\n", + " f2_label=\"Average absolute error\")\n", "\n", - "# figure size in inches\n", - "plt.figure(figsize=(20, 30))\n", + "# value_rename = \"Gold scores vs. absolute error\"\n", + "# idx_rename = \"sentence pair\"\n", + "# variable_rename = \"model\"\n", "\n", - "sns.set(font_scale=0.95)\n", - "# g = sns.FacetGrid(dataplot, row=\"dataset\", col=\"model\", margin_titles=True, palette=\"gray\")\n", - "# g.map(sns.lineplot, x=\"score\", y=\"Average absolute error\", hue=\"model\");\n", - "dataplot = dataplot.rename(columns={\n", - " \"Average absolute error\" : \"Mean squared error\"\n", - "})\n", - "g = sns.FacetGrid(dataplot, col=\"dataset\", hue=\"model\", margin_titles=True, legend_out=True)\n", - "g.map(sns.lineplot, \"score\", \"Mean squared error\")\n", - "g.add_legend()\n", - "g.fig.subplots_adjust(top=0.8)\n", - "g.fig.suptitle('Semantic similarity: Mean squared error on each score range', fontsize=14)" + "# dataplot = get_dataplot(dataplot, value_rename, idx_rename, variable_rename)\n", + "\n", + "# dataplot['dataset'] = dataset_name\n", + "# dataplot['score'] = dataplot.index + 1\n", + " dataplot['model'] = plot_title\n", + " return dataplot\n", + "\n", + " test_file = './assin2-test.xml'\n", + " submission_file = './samples/{0}.xml'.format(model_file)\n", + " task_name = 'similarity'\n", + " dataset_name = \"ASSIN 2\"\n", + " dataplot = generate_section(test_file, submission_file, dataset_name, plot_title)\n", + " return dataplot\n", + "\n", + "model_file = \"roberta\"\n", + "task_name = 'similarity'\n", + "plot_title = \"RoBERTa\"\n", + "dataplot = generate_grid(model_file, task_name, plot_title)\n", + "\n", + "model_file = \"bert\"\n", + "task_name = 'similarity'\n", + "plot_title = \"BERT-multilingual\"\n", + "df = generate_grid(model_file, task_name, plot_title)\n", + "dataplot = dataplot.append(df)\n", + "\n", + "model_file = \"5fold_stacking\"\n", + "task_name = 'similarity'\n", + "plot_title = \"Ensemble ( stacking, 5-fold )\"\n", + "df = generate_grid(model_file, task_name, plot_title)\n", + "dataplot = dataplot.append(df)\n", + "\n", + "model_file = \"average\"\n", + "task_name = 'similarity'\n", + "plot_title = \"Ensemble ( averaging )\"\n", + "df = generate_grid(model_file, task_name, plot_title)\n", + "dataplot = dataplot.append(df)\n", + "\n", + "dataplot\n", + "\n", + "import matplotlib.pyplot as plt\n", + "plt.rcParams[\"figure.figsize\"] = (20,10)\n", + "dataplot = dataplot.rename(\n", + " columns={\n", + " \"score\": \"score range\"\n", + " }\n", + ")\n", + "sns.set_style(\"white\")\n", + "g = sns.barplot( x=\"score range\", y=\"pearson\", hue=\"model\", data=dataplot, palette='gray')\n", + "\n", + "g.set(xticklabels=['[1.0, 1.4]', '[1.5, 2.4]', '[2.5, 3.4]', '[3.5, 4.4]', '[4.5, 5.0]'])\n", + "\n", + "ax = g\n", + "plt.setp(ax.get_legend().get_texts(), fontsize='14') # for legend text\n", + "plt.setp(ax.get_legend().get_title(), fontsize='14') # for legend title\n", + "\n", + "ax.tick_params(axis='both', which='major', labelsize=15)\n", + "ax.tick_params(axis='both', which='minor', labelsize=15)\n", + "\n", + "plt.xlabel('score intervals', fontsize=18)\n", + "plt.ylabel('Pearson correlation', fontsize=16)" ] }, { @@ -805,6 +551,8 @@ } ], "source": [ + "\n", + "\n", "sns.distplot(extract_scores('./sources/assin2-test.xml', task=\"similarity\"))" ] }, @@ -916,88 +664,22 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 1, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
GoldPredictiondatasetmodel
0EntailmentNoneASSIN 1 (PT-PT)RoBERTa
1ParaphraseEntailmentASSIN 1 (PT-PT)RoBERTa
2NoneNoneASSIN 1 (PT-PT)RoBERTa
3NoneNoneASSIN 1 (PT-PT)RoBERTa
4NoneNoneASSIN 1 (PT-PT)RoBERTa
\n", - "
" - ], - "text/plain": [ - " Gold Prediction dataset model\n", - "0 Entailment None ASSIN 1 (PT-PT) RoBERTa\n", - "1 Paraphrase Entailment ASSIN 1 (PT-PT) RoBERTa\n", - "2 None None ASSIN 1 (PT-PT) RoBERTa\n", - "3 None None ASSIN 1 (PT-PT) RoBERTa\n", - "4 None None ASSIN 1 (PT-PT) RoBERTa" - ] - }, - "execution_count": 153, - "metadata": {}, - "output_type": "execute_result" + "ename": "NameError", + "evalue": "name 'np' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0mtask_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'similarity'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0mplot_title\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"RoBERTa\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 75\u001b[0;31m \u001b[0mdataplot\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgenerate_grid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtask_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplot_title\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 76\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[0mmodel_file\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"submission-bert\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mgenerate_grid\u001b[0;34m(model_file, task_name, plot_title)\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[0mtask_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'similarity'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 45\u001b[0m \u001b[0mdataset_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"ASSIN 1 (PT-PT)\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 46\u001b[0;31m \u001b[0mdataplot\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgenerate_section\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubmission_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdataset_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplot_title\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 47\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mgenerate_section\u001b[0;34m(test_file, submission_file, dataset_name, plot_title)\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0msubmission_file\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[0mf1_label\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Gold\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 30\u001b[0;31m f2_label=\"Prediction\")\n\u001b[0m\u001b[1;32m 31\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 32\u001b[0m \u001b[0mvalue_rename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"Gold scores vs. absolute error\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mgenerate_scores_df\u001b[0;34m(f1, f2, f1_label, f2_label)\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgenerate_scores_df\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf1\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf1_label\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'f1_label'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf2_label\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'f2_label'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mf1_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mextract_scores\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0mf2_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mextract_scores\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0mf1_label\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf1_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf2_label\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf2_list\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'np' is not defined" + ] } ], "source": [ @@ -1100,20 +782,81 @@ }, { "cell_type": "code", - "execution_count": 175, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.6176862005394158" + "array([[1150, 74],\n", + " [ 212, 1012]])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "from sklearn.metrics import confusion_matrix\n", + "\n", + "test_file = './sources/assin2-test.xml'\n", + "submission_file = './samples/5fold_stacking.xml'\n", + "df = generate_scores_df(test_file, submission_file)\n", + "y_true = df['f1_label']\n", + "y_pred = df['f2_label']\n", + "\n", + "cm = confusion_matrix(y_true, y_pred)\n", + "cm" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1146, 78],\n", + " [ 206, 1018]])" ] }, - "execution_count": 175, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], + "source": [ + "test_file = './sources/assin2-test.xml'\n", + "submission_file = './samples/roberta.xml'\n", + "df = generate_scores_df(test_file, submission_file)\n", + "y_true = df['f1_label']\n", + "y_pred = df['f2_label']\n", + "\n", + "cm = confusion_matrix(y_true, y_pred)\n", + "cm" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'dataplot' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0my_true\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0my_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgenerate_confusion_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"ASSIN 2\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"RoBERTa\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mmatthews_corrcoef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mgenerate_confusion_matrix\u001b[0;34m(selected_dataset_name, model_name, top_param)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgenerate_confusion_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mselected_dataset_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodel_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtop_param\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mdataplot_section\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataplot\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdataplot\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'dataset'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0mselected_dataset_name\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mdataplot_section\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataplot_section\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdataplot_section\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'model'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0mmodel_name\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0my_true\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataplot_section\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Gold'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtolist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'dataplot' is not defined" + ] + } + ], "source": [ "from sklearn.metrics import confusion_matrix\n", "from sklearn.metrics import matthews_corrcoef\n",