{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# HW5 Artificial Artificial Intelligence\n",
    "\n",
    "Kendra Osburn | 11-2-19 | IST 736"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## INTRODUCTION"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ARTIFICIAL INTELLIGENCE\n",
    "\n",
    "At the nexus of machines and humans is the hard-to-grasp, even-harder-to-quantify blanket term “artificial intelligence.” Once a Hollywood blockbuster starring Haley Joel Osment, artificial intelligence is now a Silicon Valley buzzword, like Bitcoin or blockchain, used to excite stakeholders and increase valuations. \n",
    "\n",
    "In reality, artificial intelligence is considerably less glamorous. Artificial intelligence refers to the application of computing power to a wide variety of tasks that are too tedious for humans, susceptible to human error, or both. \n",
    "For example, let’s imagine that we want to know how the country feels about the President of the United States. In the olden days, before innovations like mass communication, computers and the internet, we’d have to walk door to door, ring the doorbell, interview the inhabitants, take notes, and return to our university, where we would manually sift through notes to pull out words that might seem more “positive” or “negative” in nature. While this might be manageable across a city block or housing subdivision, on a larger scale, it’s nearly impossible. \n",
    "\n",
    "Even if we could magically snap our fingers and receive one sentence about the President from each person in the United States, we would have over 300 million sentences to review. Moreover, even we could review and categorize each sentence in under a second, it would take us over 9 years of around-the-clock work to complete this task — and by then, we’d have a different president! \n",
    "\n",
    "Computers, on the other hand, are much better at these kinds of menial tasks — especially those that involve counting. Computers are also very good at performing mathematical equations quickly and efficiently, with numbers too large even for our confusingly expensive Texas Instruments calculators. By leveraging these machine skills in service of a more nuanced or complex objective — for instance, assessing people’s feelings — artificial intelligence can train computers to do even more amazing things. \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ARTIFICIAL ARTIFICIAL INTELLIGENCE\n",
    "\n",
    "What happens when we come across a task a human still can perform better than a machine? What happens when this task involves detecting lies or identifying sarcasm, where our reasoning is difficult to articulate or quantify beyond a “gut feeling”? How do we measure “gut feeling,” and how can we train a computer on something so nebulous? \n",
    "\n",
    "Enter Amazon and its Mechanical Turk program. Touted as “artificial” artificial intelligence, Amazon Mechanical Turk (AMT) farms out tasks that involve “gut feeling” to hundreds of thousands of human workers (called “turkers”) a small sum. Amazon’s objective is to collect turkers’ data with the goal of automating them out of existence. Until that day arrives, however, the turkers at AMT are here to help those of us unfortunate enough to conduct a research project with unlabeled data. \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ANALYSIS & MODELS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "neg = pd.read_csv('AMT_neg.csv')\n",
    "pos = pd.read_csv('AMT_pos.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ABOUT THE DATA\n",
    "#### Initial EDA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ========================\n",
      "  ..  WorkerId        Answer.sentiment.label\n",
      "====  ==============  ========================\n",
      "   0  A100DH6ZVHB9EP  Neutral\n",
      "   1  AOMFEAWQHU3D8   Negative\n",
      "   2  A3HAEQW13YPT6A  Positive\n",
      "   3  A3NAHG3TXPNQFN  Negative\n",
      "   4  A1X9BD3KDIA2QB  Negative\n",
      "====  ==============  ========================\n"
     ]
    }
   ],
   "source": [
    "from tabulate import tabulate\n",
    "df = neg.copy()\n",
    "df = df[['WorkerId', 'Answer.sentiment.label']]\n",
    "print(tabulate(df[:5], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### How many unique turkers worked on each dataframe?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "53 Turkers worked on NEG batch\n",
      "38 Turkers worked on POS batch\n"
     ]
    }
   ],
   "source": [
    "def get_unique(df, column):\n",
    "    unique = np.unique(df[column], return_counts=True)\n",
    "    df = pd.DataFrame(zip(unique[0], unique[1]))\n",
    "    return len(unique[0]), unique, df\n",
    "\n",
    "num_neg, unique_neg, u_neg_df = get_unique(neg, 'WorkerId')    \n",
    "num_pos, unique_pos, u_pos_df = get_unique(pos, 'WorkerId')\n",
    "\n",
    "print(num_neg, 'Turkers worked on NEG batch')\n",
    "print(num_pos, 'Turkers worked on POS batch')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### How many HITS did each unique turker do?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10f6ef128>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "u_neg_df.plot(kind='bar',x=0,y=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11045c438>"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "u_pos_df.plot(kind='bar',x=0,y=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What's the `max` and `min` HIT for unique turkers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "For neg, the min was: 1 and the max was: 37\n",
      "For pos, the min was: 1 and the max was: 40\n"
     ]
    }
   ],
   "source": [
    "print('For {}, the min was: {} and the max was: {}'.format('neg', unique_neg[1].min(), unique_neg[1].max())) \n",
    "print('For {}, the min was: {} and the max was: {}'.format('pos', unique_pos[1].min(), unique_pos[1].max())) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Did a specitic Sentiment take longer for turkers to assess? "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1, 'Negative')"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "sns.catplot(x=\"Answer.sentiment.label\", \n",
    "            y=\"WorkTimeInSeconds\", \n",
    "            kind=\"bar\", \n",
    "            order=['Negative', 'Neutral', 'Positive'], \n",
    "            data=neg);\n",
    "plt.title('Negative')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1, 'Positive')"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.catplot(x=\"Answer.sentiment.label\", \n",
    "            y=\"WorkTimeInSeconds\", \n",
    "            kind=\"bar\", \n",
    "            order=['Negative', 'Neutral', 'Positive'], \n",
    "            data=pos)\n",
    "plt.title('Positive')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### How many turkers had less than 10 second response time?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "response_time = neg[neg['WorkTimeInSeconds'] < 10]\n",
    "response_time_check = neg[neg['WorkTimeInSeconds'] > 10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "48"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(response_time)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "312"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(response_time_check)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Checking for potential bots"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Did anyone have a consistent average low response time?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ===================  =======\n",
      "  ..  WorkerId          WorkTimeInSeconds    HITId\n",
      "====  ==============  ===================  =======\n",
      "   0  A13CLN8L5HFT46              7.23077       13\n",
      "   1  A18WFPSLFV4FKY             47              2\n",
      "   2  A1IQV3QUWRA8G1             22              1\n",
      "   3  A1N1ULK71RHVMM             10              3\n",
      "   4  A1S2MN0E9BHPVA            173.444         27\n",
      "====  ==============  ===================  =======\n"
     ]
    }
   ],
   "source": [
    "count = pos.groupby(['WorkerId'])['HITId'].count()\n",
    "work_time = pos.groupby(['WorkerId'])['WorkTimeInSeconds'].mean()\n",
    "new_df = pd.DataFrame([work_time, count]).T\n",
    "new_df.reset_index(inplace=True)\n",
    "\n",
    "df = new_df.copy()\n",
    "df = df[['WorkerId', 'WorkTimeInSeconds', 'HITId']]\n",
    "print(tabulate(df[:5], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Did anyone have a consistent average high response time?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ===============  =======\n",
      "  ..  WorkerId          WorkTimeInMin    HITId\n",
      "====  ==============  ===============  =======\n",
      "  36  AO2WNSGOXAX52          150.833         4\n",
      "  15  A2P7LKVCMHI1C5          83.2833        3\n",
      "  24  A3LE1BIVORW3VR          81.975         2\n",
      "  30  A7O82NXM2PI12           18.5883       10\n",
      "  25  A3M0LH8L12FR9N          17.131         7\n",
      "====  ==============  ===============  =======\n"
     ]
    }
   ],
   "source": [
    "new_df['WorkTimeInMin'] = new_df['WorkTimeInSeconds']/60\n",
    "\n",
    "df = new_df.copy()\n",
    "df = df.sort_values(by='WorkTimeInMin', ascending=False)\n",
    "df = df[['WorkerId', 'WorkTimeInMin', 'HITId']]\n",
    "print(tabulate(df[:5], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "==============================  =======\n",
      "..                                HITId\n",
      "==============================  =======\n",
      "('A13CLN8L5HFT46', 'Neutral')         2\n",
      "('A13CLN8L5HFT46', 'Positive')       11\n",
      "('A18WFPSLFV4FKY', 'Positive')        2\n",
      "('A1IQV3QUWRA8G1', 'Positive')        1\n",
      "('A1N1ULK71RHVMM', 'Negative')        1\n",
      "('A1N1ULK71RHVMM', 'Positive')        2\n",
      "('A1S2MN0E9BHPVA', 'Negative')        4\n",
      "('A1S2MN0E9BHPVA', 'Neutral')         2\n",
      "('A1S2MN0E9BHPVA', 'Positive')       21\n",
      "('A1X9BD3KDIA2QB', 'Neutral')         1\n",
      "==============================  =======\n"
     ]
    }
   ],
   "source": [
    "count = pd.DataFrame(pos.groupby(['WorkerId', 'Answer.sentiment.label'])['HITId'].count())\n",
    "\n",
    "df = count.copy()\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Did anyone answer ONLY pos/neg/neutral?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "==============  =========  ==========  ==========  =======\n",
      "..                Neutral    Positive    Negative    Total\n",
      "==============  =========  ==========  ==========  =======\n",
      "A13CLN8L5HFT46          2          11           0       13\n",
      "A18WFPSLFV4FKY          0           2           0        2\n",
      "A1IQV3QUWRA8G1          0           1           0        1\n",
      "A1N1ULK71RHVMM          0           2           1        3\n",
      "A1S2MN0E9BHPVA          2          21           4       27\n",
      "A1X9BD3KDIA2QB          1           3           0        4\n",
      "A1Y66T7FKJ8PJA          5          23           7       35\n",
      "A1YK1IKACUJMV4          0          15           0       15\n",
      "A2241A4P7UR7HY          2           2           1        5\n",
      "A22A52DRIIEV6K          3           6           0        9\n",
      "==============  =========  ==========  ==========  =======\n"
     ]
    }
   ],
   "source": [
    "pnn = pd.DataFrame()\n",
    "pnn['Neutral'] = pos.groupby('WorkerId')['Answer.sentiment.label'].apply(lambda x: (x=='Neutral').sum())\n",
    "pnn['Positive'] = pos.groupby('WorkerId')['Answer.sentiment.label'].apply(lambda x: (x=='Positive').sum())\n",
    "pnn['Negative'] = pos.groupby('WorkerId')['Answer.sentiment.label'].apply(lambda x: (x=='Negative').sum())\n",
    "pnn['Total'] = pos.groupby('WorkerId')['Answer.sentiment.label'].apply(lambda x: x.count())\n",
    "\n",
    "df = pnn.copy()\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### This is getting a little confusing, let's just look at our top performers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "top = pnn.sort_values(by=['Total'], ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "==============  =========  ==========  ==========  =======\n",
      "..                Neutral    Positive    Negative    Total\n",
      "==============  =========  ==========  ==========  =======\n",
      "A681XM15AN28F          13          20           7       40\n",
      "A1Y66T7FKJ8PJA          5          23           7       35\n",
      "A33ENZVC1XB4BA          0          34           0       34\n",
      "A1S2MN0E9BHPVA          2          21           4       27\n",
      "A37L5E8MHHQGZM          6          13           3       22\n",
      "AE03LUY7RH400           4          10           7       21\n",
      "A2G44A4ZPWRPXU          4          12           2       18\n",
      "A1YK1IKACUJMV4          0          15           0       15\n",
      "A3AW887GI0NLKF          3          10           2       15\n",
      "A3HAEQW13YPT6A          0          14           0       14\n",
      "==============  =========  ==========  ==========  =======\n"
     ]
    }
   ],
   "source": [
    "df = top.copy()\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Interesting!! Looking from here, we have three workers who ONLY chose positive. \n",
    "\n",
    "Let's look at their response time to see if we can determine if they are a bot!!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "top['Avg_WorkTimeInSeconds'] = pos.groupby('WorkerId')['WorkTimeInSeconds'].apply(lambda x: x.mean())\n",
    "top['Avg_WorkTimeInMin'] = pos.groupby('WorkerId')['WorkTimeInSeconds'].apply(lambda x: x.mean()/60)\n",
    "top['Min_WorkTimeInMin'] = pos.groupby('WorkerId')['WorkTimeInSeconds'].apply(lambda x: x.min()/60)\n",
    "top['Max_WorkTimeInMin'] = pos.groupby('WorkerId')['WorkTimeInSeconds'].apply(lambda x: x.max()/60)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  =========  ==========  ==========  ===================\n",
      "  ..  WorkerId          Neutral    Positive    Negative    Avg_WorkTimeInMin\n",
      "====  ==============  =========  ==========  ==========  ===================\n",
      "   0  A681XM15AN28F          13          20           7              0.22625\n",
      "   1  A1Y66T7FKJ8PJA          5          23           7             11.5976\n",
      "   2  A33ENZVC1XB4BA          0          34           0              6.11078\n",
      "   3  A1S2MN0E9BHPVA          2          21           4              2.89074\n",
      "   4  A37L5E8MHHQGZM          6          13           3              5.77121\n",
      "   5  AE03LUY7RH400           4          10           7              1.70397\n",
      "   6  A2G44A4ZPWRPXU          4          12           2              3.68796\n",
      "   7  A1YK1IKACUJMV4          0          15           0              9.89333\n",
      "   8  A3AW887GI0NLKF          3          10           2              4.49\n",
      "   9  A3HAEQW13YPT6A          0          14           0              7.38214\n",
      "====  ==============  =========  ==========  ==========  ===================\n"
     ]
    }
   ],
   "source": [
    "df = top.copy()\n",
    "df.reset_index(inplace=True)\n",
    "df = df[['WorkerId', 'Neutral', 'Positive','Negative','Avg_WorkTimeInMin']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Even more interesting! These two don't appear to be bots, based on our current metric which is time variability.\n",
    "\n",
    "HOWEVER, worker `A681XM15AN28F` appears to only work for an average of 13 seconds per review which doesn't seem like enough time to read and judge a review..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## PART 2: Second submission to AMT\n",
    "\n",
    "TOO MANY REVIEWERS!\n",
    "\n",
    "Here is when we realized that doing a kappa score with over 30 individual reviewers would be tricky, so we rusubmitted to AMT and required the turkers to be 'Master' in the hopes that this additional barrier-to-entry would help reduce the amount of turkers working on the project"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "293"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v2 = pd.read_csv('HW5_amt_v2.csv')\n",
    "v2[:5]\n",
    "len(v2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This time, I didn't separate the df into pos and neg before submitting to AMT, so we have to reimport the labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = pd.read_csv('all_JK_extremes_labeled.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "98"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Oops! That's right, we replicated each review * 3 so three separate people could look at each review"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels2 = labels.append([labels] * 2, ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "294"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(labels2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Reuploading now -- WITH BETTER CODE AND BETTER VARIABLE NAMES!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ========================\n",
      "  ..  WorkerId        Answer.sentiment.label\n",
      "====  ==============  ========================\n",
      "   0  AH5A86OLRZWCS   Negative\n",
      "   1  A2HGRSPR50ENHL  Negative\n",
      "   2  AKSJ3C5O3V9RB   Negative\n",
      "   3  ARLGZWN6W91WD   Negative\n",
      "   4  AKSJ3C5O3V9RB   Negative\n",
      "   5  A1L8RL58MYU4NC  Negative\n",
      "   6  A3EZ0H07TSDAPW  Positive\n",
      "   7  ASB8T0H7L99RF   Negative\n",
      "   8  A38DC3BG1ZCVZ2  Negative\n",
      "   9  A2XFO0X6RCS98M  Negative\n",
      "====  ==============  ========================\n"
     ]
    }
   ],
   "source": [
    "turker = pd.read_csv('HW5_amt_294.csv')\n",
    "\n",
    "df = turker.copy()\n",
    "df.reset_index(inplace=True)\n",
    "df = df[['WorkerId', 'Answer.sentiment.label']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "294\n",
      "====  =====  ========================================================\n",
      "  ..  PoN    short\n",
      "====  =====  ========================================================\n",
      "   0  N      ['', 'Everyone', 'praised', 'an', 'overrated']\n",
      "   1  N      ['', 'What', 'idiotic', 'FIlm\\nI', 'can']\n",
      "   2  N      ['', 'Terrible\\nThe', 'only', 'thing', 'good']\n",
      "   3  N      ['', 'Watch', 'Taxi', 'Driver', 'instead\\nThis']\n",
      "   4  N      ['', 'I', 'learned', 'one', 'thing.\\nIt']\n",
      "   5  N      ['', 'What', 'the', 'hell\\nI', 'HATE']\n",
      "   6  N      ['', \"Don't\", 'be', 'SHEEP\\nI', \"don't\"]\n",
      "   7  N      ['', 'So', 'dissapointing', 'and', 'boring!!!\\nJoaquin']\n",
      "   8  N      ['', 'Dark,', 'Depressing,', 'Slow,', 'Heavy,']\n",
      "   9  N      ['', 'What', 'happens', 'when', 'a']\n",
      "====  =====  ========================================================\n"
     ]
    }
   ],
   "source": [
    "# Getting labels...\n",
    "labels = pd.read_csv('all_JK_extremes_labeled.csv')\n",
    "# X3\n",
    "labels = labels.append([labels] * 2, ignore_index=True)\n",
    "print(len(labels))\n",
    "df = labels.copy()\n",
    "df['short'] = df.apply(lambda x: x['0'].split(' ')[:5], axis=1)\n",
    "\n",
    "df = df[['PoN', 'short']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### NOW, TO SORT!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "sorted_labels = labels.sort_values(by=['0'])\n",
    "sorted_turker = turker.sort_values(by=['Input.text'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [],
   "source": [
    "# sorted_turker['Input.text'][:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OMG HOORAY HOORAY HOORAY!!\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "NOTE: FUN FACT!! I can type here and then hit the `esc` key to turn this cell into markdown!!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  =======================================  ========================  =====\n",
      "  ..  short                                    Answer.sentiment.label    PoN\n",
      "====  =======================================  ========================  =====\n",
      " 228  ['#LetRottenTomatoesRotSquad\\nI', 'am']  Positive                  P\n",
      " 229  ['#LetRottenTomatoesRotSquad\\nI', 'am']  Positive                  P\n",
      " 230  ['#LetRottenTomatoesRotSquad\\nI', 'am']  Positive                  P\n",
      "  56  ['A', \"'Triumph\"]                        Negative                  N\n",
      "  55  ['A', \"'Triumph\"]                        Negative                  N\n",
      "  54  ['A', \"'Triumph\"]                        Neutral                   N\n",
      " 223  ['A', 'Breath']                          Positive                  P\n",
      " 222  ['A', 'Breath']                          Positive                  P\n",
      " 224  ['A', 'Breath']                          Positive                  P\n",
      "  46  ['A', 'MASTERPIECE\\nJoaquin']            Positive                  N\n",
      "====  =======================================  ========================  =====\n"
     ]
    }
   ],
   "source": [
    "# YUCK THIS IS SO AGGRIVATING!! This line below doens't work because it still uses indexes.\n",
    "# So the P and N didn't match up \n",
    "# sorted_turker['PoN'] = sorted_labels['PoN']\n",
    "sorted_turker['PoN'] = sorted_labels['PoN'].tolist()\n",
    "df = sorted_turker[sorted_turker.columns[-5:]][:10]\n",
    "\n",
    "df['short'] = df.apply(lambda x: x['Input.text'].split(' ')[1:3], axis=1)\n",
    "\n",
    "\n",
    "df = df[['short', 'Answer.sentiment.label', 'PoN']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## PART 3: ANALYZE"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, let's clean ALL the things"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_df = sorted_turker[['Input.text', 'WorkerId', 'Answer.sentiment.label', 'PoN']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ========================  =====\n",
      "  ..  WorkerId        Answer.sentiment.label    PoN\n",
      "====  ==============  ========================  =====\n",
      " 228  A681XM15AN28F   Positive                  P\n",
      " 229  A2XFO0X6RCS98M  Positive                  P\n",
      " 230  AURYD2FH3FUOQ   Positive                  P\n",
      "  56  A1T79J0XQXDDGC  Negative                  N\n",
      "  55  A2XFO0X6RCS98M  Negative                  N\n",
      "  54  A681XM15AN28F   Neutral                   N\n",
      " 223  ARLGZWN6W91WD   Positive                  P\n",
      " 222  ASB8T0H7L99RF   Positive                  P\n",
      " 224  A1T79J0XQXDDGC  Positive                  P\n",
      "  46  A1T79J0XQXDDGC  Positive                  N\n",
      "====  ==============  ========================  =====\n"
     ]
    }
   ],
   "source": [
    "df = all_df.copy()\n",
    "df = df[['WorkerId', 'Answer.sentiment.label', 'PoN']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_df_all = all_df.copy()\n",
    "all_df_all['APoN'] = all_df_all.apply(lambda x: x['Answer.sentiment.label'][0], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_df_all['agree'] = all_df_all.apply(lambda x: x['PoN'] == x['APoN'], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  =====  ======  =======\n",
      "  ..  WorkerId        PoN    APoN    agree\n",
      "====  ==============  =====  ======  =======\n",
      "  38  A3EZ0H07TSDAPW  N      N       True\n",
      " 216  A3EZ0H07TSDAPW  N      P       False\n",
      " 217  A2XFO0X6RCS98M  N      P       False\n",
      " 218  AKSJ3C5O3V9RB   N      P       False\n",
      " 264  A3EZ0H07TSDAPW  N      P       False\n",
      " 265  ARLGZWN6W91WD   N      P       False\n",
      " 266  A38DC3BG1ZCVZ2  N      P       False\n",
      "  93  A2XFO0X6RCS98M  N      N       True\n",
      "  94  A3EZ0H07TSDAPW  N      N       True\n",
      "  95  ASB8T0H7L99RF   N      N       True\n",
      "====  ==============  =====  ======  =======\n"
     ]
    }
   ],
   "source": [
    "\n",
    "df = all_df_all[-10:].copy()\n",
    "df = df[['WorkerId', 'PoN', 'APoN', 'agree']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Lets see how many agree!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  =====  ========\n",
      "  ..  PoN       agree\n",
      "====  =====  ========\n",
      "   0  P      1\n",
      "   1  N      1\n",
      "   2  P      1\n",
      "   3  N      0.333333\n",
      "   4  P      1\n",
      "   5  P      1\n",
      "   6  P      1\n",
      "   7  P      1\n",
      "   8  N      0\n",
      "   9  P      0.666667\n",
      "====  =====  ========\n"
     ]
    }
   ],
   "source": [
    "agree_df = pd.DataFrame(all_df_all.groupby(['Input.text','PoN'])['agree'].mean())\n",
    "agree_df = agree_df.reset_index()\n",
    "df = agree_df.copy()\n",
    "df = df[['PoN', 'agree']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OK so this actually gave us something we want...\n",
    "BUT PLEASE TELL ME THE BETTER WAY!!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  =====  ========  ==============\n",
      "  ..  PoN       agree  agree_factor\n",
      "====  =====  ========  ==============\n",
      "   0  P      1         agree\n",
      "   1  N      1         agree\n",
      "   2  P      1         agree\n",
      "   3  N      0.333333  disparity\n",
      "   4  P      1         agree\n",
      "   5  P      1         agree\n",
      "   6  P      1         agree\n",
      "   7  P      1         agree\n",
      "   8  N      0         agree_wrong\n",
      "   9  P      0.666667  disparity\n",
      "====  =====  ========  ==============\n"
     ]
    }
   ],
   "source": [
    "def return_agreement(num):\n",
    "    if num == 0:\n",
    "        return 'agree_wrong'\n",
    "    if num == 1:\n",
    "        return 'agree'\n",
    "    if (num/1) !=0:\n",
    "        return 'disparity'\n",
    "\n",
    "agree_df['agree_factor'] = agree_df.apply(lambda x: return_agreement(x['agree']), axis=1)\n",
    "agree_df\n",
    "\n",
    "df = agree_df.copy()\n",
    "df = df[['PoN', 'agree', 'agree_factor']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ============  =====  =======\n",
      "  ..  agree_factor      Input.text    PoN    agree\n",
      "====  ==============  ============  =====  =======\n",
      "   0  agree                     33     33       33\n",
      "   1  agree_wrong               31     31       31\n",
      "   2  disparity                 34     34       34\n",
      "====  ==============  ============  =====  =======\n"
     ]
    }
   ],
   "source": [
    "df1 = agree_df.groupby(['agree_factor']).count()\n",
    "df1.reset_index(inplace=True)\n",
    "df = df1.copy()\n",
    "df = df[['agree_factor','Input.text','PoN', 'agree']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'How many turkers agreed on sentiment?')"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=['Agreed', 'Disagreed'],\n",
    "           y= [64,34],\n",
    "           data = df1);\n",
    "plt.title('How many turkers agreed on sentiment?')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'How many turkers agreed on sentiment, but were wrong?')"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=\"agree_factor\", y=\"agree\", data=df1);\n",
    "plt.title('How many turkers agreed on sentiment, but were wrong?')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = agree_df.groupby(['agree_factor', 'PoN']).count()\n",
    "df2.reset_index(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'What was the pos/neg split for the turkers?')"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEXCAYAAAC3c9OwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3debxVdb3/8ddbQEHAATmRiog5NUCiIg5JaQ6p1xwqvXq9mYqR/Wwg0H6a3eI2Xc0xoyINHHLILCErNbVSsUQFRcUpyTAPehVBUcAB7HP/+H6PbLdrn7MPnL33OZz38/E4j7OG71rrs9bee33297vW/i5FBGZmZuXWaXQAZmbWOTlBmJlZIScIMzMr5ARhZmaFnCDMzKyQE4SZmRVyguhkJIWkbRodR61Imi9p30bHsbaQtJek5pLxhyXt1Y7lt5c0R9Irkr5Uoxhvk3RiLda9OiRNlHRFo+PoCpwgakjS6ZJuLJv2RIVpR3XA9jrVyVfSpZK+0+g42kvSupJekNSv0bG0V0R8ICJug6pPhF8F/hwR/SPiwjXdfq1Pvp3tPV6JpJ6SfiTpaUkvSbpaUp9Gx9VeThC1dQewh6QeAJI2BXoBO5ZN2yaXtc7hw8CciFja6EDqYEvg4dVZUFLPDo6l5joy5jbW1Qt4EdiZdIy3Ar7YUduum4jwX43+gHWB5cDOefxI4BLg9rJp80qWCeAk4AngJeBHgPK8rYE/AYuAF4ArgY3yvJ8D/wJeBZYCXy2I53bgk3n4Q3lb/5bH9yGdFFvdTp7//4EFwCvA48A+BdsaC6wA3sjx/DZPnw+cAjwILAGuAXqXLHcwMCfv+1+BD7ZyfAP4EvBkjvNsYJ08bx3g68BTwPPA5cCGeV5v4Iq8fy8B9wKDStZ7HjA+D98GfBv4S97fm4GBJWV3y3G+BDwA7FUybytS4n8FuDW/lldU2JeBwO/yehYDM0r2ZT5wOvAI6aRzScsxA/YCmkvWMx/YFzggH/sV+fg/ULDNPwFvAq/lMtsBG+ZjtTAfu6+XxHFcPg7n52P3nbL1FW5zTY5h2frf8R4v3//SY5CHJwK/yq/3y8CJedoVeX4v4Grg16TP6zrAacDf8z7+EhiQyw4lvefGAP/Mr22r76WSmH4KnNvoc1K7z2GNDmBt/wP+DHwlD08CTgC+WzZtakn5yCeKjYAh+YN6QJ63DbAfsB7QlN+gF5Qs+9YHo0Is3wJ+mIe/lj8EZ5XM+0Fb2wG2B54GNsvjQ4GtK2zv0oKTyHzgHmAzYADwKHBSnrcj6WS+K9AD+Ewuv16F9Uc+vgPysfobcGKedwIwD3gP0A+4Dvh5nvc54LfA+nk7OwMblKz3MWD7PHxbPk7bAX3y+Jl53ub5xHAQ6cSyXx5vyvPvAs4hnXj2JJ2gKiWI/wEmk05YvYDRrPpiMB+YC2yR9/UvLceVCgkiD0+stL2S8re1HLM8fjnwG6B/fm3/BozJ844DVpK+CfcE+hSs7x3bXJNjWLD+t/avaP8rHIMVwGF5/X1aYszDvye9T3vk8l8GZgKDSe//nwJXl7zXIx+jvnn5Vt9Lebk98mu/c6PPR+39cxNT7d1OarKA9KGfkf9Kp91etsyZEfFSRPyTdAIcARAR8yLiloh4PSIWkr7pfqSdsbSU/zDppNQy/pGWONrYzpukD877JfWKiPkR8fd2xABwYUQ8ExGLSR+uEXn6WOCnEXF3RLwZEZcBr5O+YVZyVkQszsfqAuDoPP0Y4LyIeDJSU9HpwFG5WWAFsAmwTd7O7Ih4GUDS1kDPiHi8ZBuXRMTfIuJV0jfKlnj/E7ghIm6IiH9FxC3ALOAgSUOAXYBvRMQbEXEncH0r+7EC2BTYMiJWRMSMyGeXbFJEPJ2P2XdL9rPD5GbPo4DTI+KViJgPnAt8uqTYMxHxw4hYmY9Htdp9DNd4h1a5KyKm5/W3xLwBcBMpcR0fEW/m6ScBZ0REc0S8TkomnyprTpoYEcvyuiq+lwAkbUt6j58QEbM7cJ/qwgmi9u4A9pQ0gPSt6AlSdXqPPG0Y77z+8L8lw8tJ34CRNEjSLyQtkPQy6VvQwHbEchewnaRBpA/o5cAWkgYCo1riaG07ETEPGEf64Dyfy23Wjhgq7h+prXZCvqj3kqSXSN+aW1v/0yXDT5WU3SyPl87rCQwiNVX8AfiFpGckfV9Sr1zuIOBtNxG0Ee8RZfHuSTrRbwYsjojlFWItdzapxnOzpCclnVblfnakgaTaS/lx27xCHO2xOsewoxTFvBvwQdKXsdJEvCUwrSSWR0lfigZVWF9r7yWA44HfRMSvOmJH6s0JovbuIrXrfpbUNED+hvFMnvZMRPyjynV9j1TFHR4RG5C+falkfqtd8+aT1WxSNXpuRLxBSlbjgb9HxAvVbCciroqIPUkfpgDOqrTJKverxdPAdyNio5K/9SPi6laW2aJkeAjpuJL/b1k2byXwXP6G/t8R8X5S9f9g4Nhc7iDghnbE+/OyePtGxJnAs8AASetXiPVt8jf2CRHxHuAQYLykfarYz9a09/i/QPpGXH7cFrRjnavzmlc6htWsfxmpeQd4qxbUVEVMN5Nq0H/MX5hK4zmwLJ7eEVF4DNp4L0FKdNW8Vp2SE0SN5WroLNJJeEbJrDvztPbcvdSfdHFuiaTNgVPL5j9HanNvze3AF1jVrHVb2Xir28n3zX9U0nqki5uvki4cFqkmnlIXAydJ2lVJX0n/Jql/K8ucKmljSVuQEt81efrVwFckbZVvV/0ecE1ErJS0t6Th+WTyMumk+K98Mh9FatarxhXAxyV9TFIPSb3z7xIGR8RTpNd9Yr5tdnfg45VWJOlgSdtIEuni/Zu8/bieLGlwrnWeUbKfrXkOGCqpqs95bmb5JfBdSf0lbUl6j7bnttV2bZNWjmEr6y99T/0N6J3fJ71IF9XXq2bDEfF94CpSkmipiU8m7f+WAJKaJB1aaR2V3kslRcYBlZJdp+cEUR+3A+8iJYUWM/K09iSI/wZ2Ip1Afk+68Frqf4Cv5+rxKa3E0r9ku+XjbW1nPdIb/gVSs8G7SO37RaaQrlW8JGl6WzsXEbNItapJpLt15pEujLbmN6Ra0Zwc65Q8fSqp+n8H8A9SMmu5zfDdpDtbXiY1Idyey36U1F79Wlux5nifBg4lXfBfSPr2eSqrPlfHALuT7/ghndRfr7C6bUl3Oi0l1Tp/HBGlieoq0rfeJ0nt5tX8vuTa/H+RpPuq2SfSMVqWt3Nn3u7UKpdt9zarOIbl3vYej4glwP8Dfkaq6SwDmissW7T9bwPTgVtz8v0B6VrRzZJeIV2w3rWVVVR6L7U4C/hKtfF0Ni13SZh1OZIC2DZfF+mI9f2Y1PT2445YX8H6rwEei4hvtnO5+aQ7jW6tRVxmlbgGYbbKHGBaR61M0i6Stpa0jqQDSN+U26xJmXUWXe6XkGa1EhEXdfAq301qntuE1Ozx+Yi4v4O3YVYzbmIyM7NCbmIyM7NCa1UT08CBA2Po0KGNDsPMrMuYPXv2CxFR/tsRYC1LEEOHDmXWrFmNDsPMrMuQ9FSleW5iMjOzQk4QZmZWyAnCzMwKrVXXIMzM6m3FihU0Nzfz2mtV9dDSML1792bw4MH06tWr7cKZE4SZ2Rpobm6mf//+DB06lNTXYucTESxatIjm5ma22mqrqpdzE5OZ2Rp47bXX2GSTTTptcgCQxCabbNLuWo4ThJnZGurMyaHF6sToBGFmZoWcIMzM6qxHjx6MGDGCYcOGccQRR7B8+fJWy0tiwoQJb42fc845TJw4scZR+iK1mdXZzqde3ugQ2m322ce2Xagd+vTpw5w5cwA45phjmDx5MuPHj69Yfr311uO6667j9NNPZ+DA9jyGfs24BmFm1kCjR49m3rz0zKvzzjuPYcOGMWzYMC644IK3yvTs2ZOxY8dy/vnn1zU2JwgzswZZuXIlN954I8OHD2f27Nlccskl3H333cycOZOLL76Y++9f9fiQk08+mSuvvJIlS5bULT4nCDOzOnv11VcZMWIEI0eOZMiQIYwZM4Y777yTww8/nL59+9KvXz8+8YlPMGPGjLeW2WCDDTj22GO58MIL6xanr0GYmdVZ6TWI9hg3bhw77bQTxx9/fA2ieifXIMzMOoHRo0czffp0li9fzrJly5g2bRqjR49+W5kBAwZw5JFHMmXKlLrE5ARhZtYJ7LTTThx33HGMGjWKXXfdlRNPPJEdd9zxHeUmTJjACy+8UJeY3MRkZlZnS5cuLZw+fvz4wttdS8sPGjSozd9NdBTXIMzMrJAThJmZFXKCMDOzQr4G0UX881vDGx1Cuw35xkONDsHM1oBrEGZmVqhmNQhJU4GDgecjYliedg2wfS6yEfBSRIwoWHY+8ArwJrAyIkbWKk4zMytWyyamS4FJwFtdN0bEv7cMSzoXaK1Tkb0joj43+5qZdZCO7q22mp5kJTF+/HjOPfdcIHUHvnTp0jXuErxmTUwRcQewuGie0qONjgSurtX2zcy6i5buwDv6B3SNugYxGnguIp6oMD+AmyXNljS2tRVJGitplqRZCxcu7PBAzcw6u1p1B96oBHE0rdce9oyInYADgZMlfbhSwYi4KCJGRsTIpqamjo7TzKxLqEV34HVPEJJ6Ap8ArqlUJiIW5P/PA9OAUfWJzsysa6pFd+CNqEHsCzwWEc1FMyX1ldS/ZRjYH5hbx/jMzLqkcePGMWXKFJYtW9Yh66tZgpB0NXAXsL2kZklj8qyjKGtekrSZpBvy6CDgTkkPAPcAv4+Im2oVp5nZ2qKjuwOv2W2uEXF0henHFUx7BjgoDz8J7FCruMzMaqma21JracKECUyaNKlD1uWuNszqwF2lWC3Vqjtwd7VhZmaFnCDMzKyQE4SZmRVygjAzs0JOEGZmVsgJwszMCvk2VzOzDtTRtzRXc7txjx49GD58OCtXruR973sfl112Geuvv/4ab9s1CDOzLq5Pnz7MmTOHuXPnsu666zJ58uQOWa8ThJnZWmT06NHMmzevQ9blBGFmtpZYuXIlN954I8OHd0wzl69BmJl1ca+++iojRowAUg1izJgxbSxRHScIM7MuruUaREdzE5OZmRVyDcLMrAOtTb3gugZhZtbFlXb33ZGcIMzMrJAThJmZFarlM6mnSnpe0tySaRMlLZA0J/8dVGHZAyQ9LmmepNNqFaOZWUeIiEaH0KbVibGWNYhLgQMKpp8fESPy3w3lMyX1AH4EHAi8Hzha0vtrGKeZ2Wrr3bs3ixYt6tRJIiJYtGgRvXv3btdyNbuLKSLukDR0NRYdBcyLiCcBJP0COBR4pOOiMzPrGIMHD6a5uZmFCxc2OpRW9e7dm8GDB7drmUbc5voFSccCs4AJEfFi2fzNgadLxpuBXSutTNJYYCzAkCFDqg5i51Mvr7psZzCtf6MjMOu+2uqhtQfQtz6hVKWjbrWt90XqnwBbAyOAZ4Fz13SFEXFRRIyMiJFNTU1rujozM8vqmiAi4rmIeDMi/gVcTGpOKrcA2KJkfHCeZmZmdVTXBCFp05LRw4G5BcXuBbaVtJWkdYGjgOvrEZ+Zma1Ss2sQkq4G9gIGSmoGvgnsJWkEEMB84HO57GbAzyLioIhYKekLwB9ITXtTI+LhWsVpZmbFankX09EFk6dUKPsMcFDJ+A3AO26BNTOz+vEvqc3MrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwK+Yly1uV0tW5SwF2lWNfkGoSZmRVygjAzs0JOEGZmVsgJwszMCjlBmJlZIScIMzMr5ARhZmaFnCDMzKyQE4SZmRVygjAzs0JOEGZmVsgJwszMCtUsQUiaKul5SXNLpp0t6TFJD0qaJmmjCsvOl/SQpDmSZtUqRjMzq6yWNYhLgQPKpt0CDIuIDwJ/A05vZfm9I2JERIysUXxmZtaKmiWIiLgDWFw27eaIWJlHZwKDa7V9MzNbM428BnECcGOFeQHcLGm2pLF1jMnMzLKGPDBI0hnASuDKCkX2jIgFkt4F3CLpsVwjKVrXWGAswJAhQ2oSr5lZd1T3GoSk44CDgWMiIorKRMSC/P95YBowqtL6IuKiiBgZESObmppqELGZWfdU1wQh6QDgq8AhEbG8Qpm+kvq3DAP7A3OLypqZWe3U8jbXq4G7gO0lNUsaA0wC+pOajeZImpzLbibphrzoIOBOSQ8A9wC/j4ibahWnmZkVq9k1iIg4umDylAplnwEOysNPAjvUKi4zM6uOf0ltZmaFnCDMzKyQE4SZmRVygjAzs0JOEGZmVsgJwszMCjlBmJlZIScIMzMr5ARhZmaFnCDMzKxQ1QlC0paS9s3DfVo61DMzs7VTVQlC0meBXwE/zZMGA9NrFZSZmTVetTWIk4EPAS8DRMQTwLtqFZSZmTVetQni9Yh4o2VEUk/SY0HNzGwtVW2CuF3S14A+kvYDrgV+W7uwzMys0apNEKcBC4GHgM8BNwBfr1VQZmbWeFU9MCgi/iXpCuCOiHi8xjGZmVknUO1dTIcAc4Cb8vgISdfXMjAzM2usapuYvgmMAl4CiIg5wFa1CsrMzBqv2gSxIiKWlE1r8y4mSVMlPS9pbsm0AZJukfRE/r9xhWU/k8s8IekzVcZpZmYdpNoE8bCk/wB6SNpW0g+Bv1ax3KXAAWXTTgP+GBHbAn/M428jaQCp1rIrqebyzUqJxMzMaqPaBPFF4APA68BVwBJgXFsLRcQdwOKyyYcCl+Xhy4DDChb9GHBLRCyOiBeBW3hnojEzsxpq8y4mST2Ab0XEKcAZHbDNQRHxbB7+X2BQQZnNgadLxpvztKL4xgJjAYYMGdIB4ZmZGVRRg4iIN4E9a7HxiAjW8BfZEXFRRIyMiJFNTU0dFJmZmVX1Owjg/nxb67XAspaJEXHdamzzOUmbRsSzkjYFni8oswDYq2R8MHDbamzLzMxWU7XXIHoDi4CPAh/Pfwev5javB1ruSvoM8JuCMn8A9pe0cb44vX+eZmZmdVLtL6mPX52VS7qaVBMYKKmZdGfSmcAvJY0BngKOzGVHAidFxIkRsVjSt4F786q+FRHlF7vNzKyGqkoQki4smLwEmBURRTUAACLi6Aqz9ikoOws4sWR8KjC1mvjMzKzjtaeJaQTwRP77IOm6wBhJF9QoNjMza6BqL1J/EPhQvqMJST8BZpDubnqoRrGZmVkDVVuD2BjoVzLeFxiQE8brHR6VmZk1XLU1iO8DcyTdBgj4MPA9SX2BW2sUm5mZNVC1dzFNkXQj8GngUeBmoDkilgGn1jA+MzNrkGrvYjoR+DLpwvQcYDfgLtLvIszMbC1U7TWILwO7AE9FxN7AjuRnQ5iZ2dqp2gTxWkS8BiBpvYh4DNi+dmGZmVmjVXuRulnSRsB04BZJL5J+BW1mZmupai9SH54HJ0r6M7Ah+fnUZma2dqq2BvGWiLi9FoGYmVnnUu01CDMz62acIMzMrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwKOUGYmVmhuicISdtLmlPy97KkcWVl9pK0pKTMN+odp5lZd9fuH8qtqYh4nPT4UiT1ABYA0wqKzoiIg+sZm5mZrdLoJqZ9gL9HhPt1MjPrZBqdII4Crq4wb3dJD0i6UdIHKq1A0lhJsyTNWrhwYW2iNDPrhhqWICStCxwCXFsw+z5gy4jYAfghqRfZQhFxUUSMjIiRTU1NtQnWzKwbamQN4kDgvoh4rnxGRLwcEUvz8A1AL0kD6x2gmVl31sgEcTQVmpckvVuS8vAoUpyL6hibmVm3V/e7mAAk9QX2Az5XMu0kgIiYDHwK+LyklcCrwFEREY2I1cysu2pIgoiIZcAmZdMmlwxPAibVOy4zM1ul0XcxmZlZJ+UEYWZmhZwgzMyskBOEmZkVcoIwM7NCThBmZlbICcLMzAo5QZiZWSEnCDMzK+QEYWZmhZwgzMyskBOEmZkVcoIwM7NCThBmZlbICcLMzAo5QZiZWSEnCDMzK+QEYWZmhRqWICTNl/SQpDmSZhXMl6QLJc2T9KCknRoRp5lZd9WQZ1KX2DsiXqgw70Bg2/y3K/CT/N/MzOqgMzcxHQpcHslMYCNJmzY6KDOz7qKRCSKAmyXNljS2YP7mwNMl48152ttIGitplqRZCxcurFGoZmbdTyMTxJ4RsROpKelkSR9enZVExEURMTIiRjY1NXVshGZm3VjDEkRELMj/nwemAaPKiiwAtigZH5ynmZlZHTQkQUjqK6l/yzCwPzC3rNj1wLH5bqbdgCUR8WydQzUz67YadRfTIGCapJYYroqImySdBBARk4EbgIOAecBy4PgGxWpm1i01JEFExJPADgXTJ5cMB3ByPeMyM7NVOvNtrmZm1kBOEGZmVsgJwszMCjlBmJlZIScIMzMr5ARhZmaFnCDMzKyQE4SZmRVygjAzs0JOEGZmVsgJwszMCjlBmJlZIScIMzMr5ARhZmaFnCDMzKyQE4SZmRVygjAzs0JOEGZmVqjuCULSFpL+LOkRSQ9L+nJBmb0kLZE0J/99o95xmpl1d414JvVKYEJE3CepPzBb0i0R8UhZuRkRcXAD4jMzMxpQg4iIZyPivjz8CvAosHm94zAzs9Y19BqEpKHAjsDdBbN3l/SApBslfaCugZmZWUOamACQ1A/4NTAuIl4um30fsGVELJV0EDAd2LbCesYCYwGGDBlSw4jNzLqXhtQgJPUiJYcrI+K68vkR8XJELM3DNwC9JA0sWldEXBQRIyNiZFNTU03jNjPrThpxF5OAKcCjEXFehTLvzuWQNIoU56L6RWlmZo1oYvoQ8GngIUlz8rSvAUMAImIy8Cng85JWAq8CR0VENCBWM7Nuq+4JIiLuBNRGmUnApPpEZGZmRfxLajMzK+QEYWZmhZwgzMyskBOEmZkVcoIwM7NCThBmZlbICcLMzAo5QZiZWSEnCDMzK+QEYWZmhZwgzMyskBOEmZkVcoIwM7NCThBmZlbICcLMzAo5QZiZWSEnCDMzK+QEYWZmhZwgzMysUEMShKQDJD0uaZ6k0wrmryfpmjz/bklD6x+lmVn3VvcEIakH8CPgQOD9wNGS3l9WbAzwYkRsA5wPnFXfKM3MrBE1iFHAvIh4MiLeAH4BHFpW5lDgsjz8K2AfSapjjGZm3V7PBmxzc+DpkvFmYNdKZSJipaQlwCbAC+UrkzQWGJtHl0p6vMMj7gS2hIEU7H+n9k3n9BZ+/bq2Lvf6te+127LSjEYkiA4VERcBFzU6jlqTNCsiRjY6Dls9fv26tu76+jWiiWkBsEXJ+OA8rbCMpJ7AhsCiukRnZmZAYxLEvcC2kraStC5wFHB9WZnrgc/k4U8Bf4qIqGOMZmbdXt2bmPI1hS8AfwB6AFMj4mFJ3wJmRcT1wBTg55LmAYtJSaS7W+ub0dZyfv26tm75+slfzM3MrIh/SW1mZoWcIMzMrFCXv83VrNYk9YyIlXXepkhNwP+q53bXNpImAkuBDYA7IuLWGm7rrxGxR+4aaI+IuKpW26oX1yC6mHzbr60GSdMlzZb0cP6BJZLGSPqbpHskXSxpUp5+qaTJku4Gvi+pr6Spudz9kg7N5XpIOlvSvZIelPS5Vrb/I0mH5OFpkqbm4RMkfVfS0NxH2eXAXGALSUdLekjSXElnlaxraV7mAUkzJQ3K07fO4w9J+o6kpTU6nF1KRHyjVsmh5TMZEXvkSUOB/6jFturNCaJBGn2y6qZOiIidgZHAlyRtDvwXsBvwIeC9ZeUHk74JjgfOIN1uPQrYGzhbUl9Sv2FLImIXYBfgs5K2qrD9GcDoPLw5qS8y8rQ78vC2wI8j4gPAClI/ZB8FRgC7SDosl+sLzIyIHfKyn83TfwD8ICKGk3op6HYknZE/R3cC2+dpl0r6VB4+U9Ij+TNyTsn8yZJm5WUPztOHSpoh6b78t0eevleefj3wSJ7WkozPBEZLmiPpK5LukDSiJL47Je1Qr+OxJvxttHFOiIjFkvoA90r6PelktRPwCvAn4IGS8i0nqzclfY90sjpB0kbAPZJuBY4hn6wkrQf8RdLNEfGPuu5Z5/UlSYfn4S2ATwO3R8RiAEnXAtuVlL82It7Mw/sDh0g6JY/3Bobk6R9sOfmQftS5LVB0zGcA45Q6p3wE2FjSpsDuwJdI3ck8FREzc/ldgNsiYmGO70rgw8B04A3gd7ncbGC/PLw70JJErgLOqebArC0k7Uy6LX4E6fx2H+n4tMzfBDgceG9ERP78tBhK6itua+DPkrYBngf2i4jXJG0LXE36ggHpszqs4PN1GnBKRLQkmcXAcaTXfjugd0Q8QBfgBNE4jT5ZdSuS9gL2BXaPiOWSbgMeA97XymLLSlcBfDIi3tbXlyQBX4yIP7QVQ0QsyCekA0jf+gcARwJLI+KVfPJa1to6Sqwo+fHom/iz3GI0MC0ilgPkb/illgCvAVMk/Y5VSRbgl/mazxOSniTVKP8BTMo1gDd5+2fyniq/fF0L/JekU4ETgEvbv1uN4SamBig7We0A3E86WbWm6GQ1Iv8NiYhH8/QvlkzfKiJursU+dEEbkrqQXy7pvaRmpb7ARyRtnNuRP9nK8n8AvpgTApJ2LJn+eUm98vTtctNTJTOBcaQEMQM4Jf8vck+Ob6BSN/lHA7e3sZ8zS/bDPzAtk282GEXqJfpg4KbS2eXFga8AzwE7kGoO65bMryqZ52R1C6mX6iOBK1cn9kZwgmiMznKy6k5uAnpKepTURjyT1OfX90gn4r8A80nfMIt8G+gFPCjp4TwO8DNSc9F9kuYCP6X1b/MzgJ4RMY/U/DGACgkiIp4lNVf8mdTcODsiftPGfo4Dxkt6ENimlf1ZW90BHCapj6T+wMdLZ0rqB2wYETeQTv6l1wKOkLSOpK2B9wCPkz6rz+aaxadJvT+05RWgf9m0nwEXAvdGxIursV8N4V9SN0C+PjCd1Ob5OLARMJFUfT2V1L3IY0BzRJwh6VLgdxHxq7x8H+ACYA9Skv9HRBwsaR3gO6QPhYCFwGER0d1OElWT1C8iluakPI3U9cu0Rse1uiStD7ya29ePAo6OiPLnrazVJJ1B6svteeCfpEQ8jNSc9BfgN6RmWQHnRMRl+TP2GqmWsAEwPiJ+l687/JpUm7gJODki+lVKSUwAAAKOSURBVOVWgLeuM+TtLs3zepG+rG0CXBoR5+f5jwHjIqK01tKpOUF0ImvbyaoryHex7Es6YdwMfLkrdwwpaTQwiXTye4l0M8S8xkbV+ZV/CavB+jcDbiNdHO8yv23xha3OZaKk0pPV9AbHs9aLiFPaLtU+koYDPy+b/HpElD8Yq8NFxAze3mxiDSbpWOC7pFpJl0kO4BqEmZlV4IvUZmZWyAnCzMwKOUGYmVkhJwgzMyvkBGFWZ7lDxYclnb0ay36tFjGZFfFdTGZVUAc+E0LSEmBASd9a7Vl2aUT0a0d5P1fCVptrENatqPHPhLge6AfMlvTvkj4u6e68vlu16rkO/SRdovRchwclfVLSmUAfpW6kr8zlxis9K2KupHF52jueK1G7I2prM9cgrFuRNKC0m3XgY6TuF97WzXpEfCH/unYgcGhJN+uPRMQVuVfWe4AdSd2svysivpO7UfkLcESlnj5LawGSNgZeyl1jnAi8LyImKD0caL2IaDnpbxwRL5YtuzOpZ9DdSL+cvhv4T+BF4ElS9/Azy7dvVi3/ktq6m87Wzfpg4Bql50KsW7LMvpT0xlqhg7c9SV1bL8uxX0fq7vp63v5cCbPV4gRh3YY6wTMhCvwQOC8irs/xTVyNdRSp9rkSZhX5GoR1J52xm/UNSd2OQ+qBtMUtwMktI7kpCmBFy3ZI3YQfJmn9vL3DqfxsCbN2c4Kw7qSzPBOi1ETgWkmzgRdKpn+H9EjSuZIeID0HG+CivP0rI+I+0jWIe0jXH34WEfdXuV2zNvkitXV77mbdrJhrEGapm/U5pFtC/4G7WTcDXIMwq4lGPhPCrKM4QZiZWSE3MZmZWSEnCDMzK+QEYWZmhZwgzMys0P8B9Safu8302H0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=\"agree_factor\",\n",
    "           y=\"agree\",\n",
    "           hue=\"PoN\",\n",
    "           data=df2);\n",
    "plt.title(\"What was the pos/neg split for the turkers?\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What was the kappa score for the turkers?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.33333333333333337"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Example code\n",
    "from sklearn.metrics import cohen_kappa_score\n",
    "y1 = [0,1,2,3,4,0,1,2,3,4,0,1,2,3,4]\n",
    "y2 = [0,1,2,2,4,1,2,3,0,0,0,2,2,4,4]\n",
    "cohen_kappa_score(y1,y2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### This was absolutely miserable and had me questioning both my intellect and the meaning of life"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "FIRST PASS: Oh boy! This will be super fun. First, I'm going to brainstorm \"out loud\" how I'm going to do this when AMT doesn't require that the same N turkers complete the task, making inter-rater reliability extremely hard to track when one turker has done 46/98 reviews and another has done 2/98"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at our top turkers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [],
   "source": [
    "turker_clean = turker[['HITId', 'WorkerId', 'Answer.sentiment.label', 'Input.text']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============================  ==============  ========================\n",
      "  ..  HITId                           WorkerId        Answer.sentiment.label\n",
      "====  ==============================  ==============  ========================\n",
      "   0  338GLSUI43BXEPY2ES6SPI72KKESF7  AH5A86OLRZWCS   Negative\n",
      "   1  338GLSUI43BXEPY2ES6SPI72KKESF7  A2HGRSPR50ENHL  Negative\n",
      "   2  338GLSUI43BXEPY2ES6SPI72KKESF7  AKSJ3C5O3V9RB   Negative\n",
      "   3  37MQ8Z1JQEWA9HYZP3JANL1ES162YC  ARLGZWN6W91WD   Negative\n",
      "   4  37MQ8Z1JQEWA9HYZP3JANL1ES162YC  AKSJ3C5O3V9RB   Negative\n",
      "   5  37MQ8Z1JQEWA9HYZP3JANL1ES162YC  A1L8RL58MYU4NC  Negative\n",
      "   6  38O9DZ0A62N8QXOTJKOI4UHLTRD62G  A3EZ0H07TSDAPW  Positive\n",
      "   7  38O9DZ0A62N8QXOTJKOI4UHLTRD62G  ASB8T0H7L99RF   Negative\n",
      "   8  38O9DZ0A62N8QXOTJKOI4UHLTRD62G  A38DC3BG1ZCVZ2  Negative\n",
      "   9  3I7SHAD35MWH116RCCCUPHVFU7E7M7  A2XFO0X6RCS98M  Negative\n",
      "====  ==============================  ==============  ========================\n"
     ]
    }
   ],
   "source": [
    "turker_clean\n",
    "\n",
    "df = turker_clean.copy()\n",
    "df = df[['HITId','WorkerId', 'Answer.sentiment.label']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And let's see how many turkers turked"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "==============  ==========\n",
      "..                WorkerId\n",
      "==============  ==========\n",
      "ARLGZWN6W91WD           46\n",
      "A681XM15AN28F           37\n",
      "A1T79J0XQXDDGC          34\n",
      "A2XFO0X6RCS98M          33\n",
      "A3EZ0H07TSDAPW          33\n",
      "A1L8RL58MYU4NC          28\n",
      "A38DC3BG1ZCVZ2          22\n",
      "AKSJ3C5O3V9RB           21\n",
      "ASB8T0H7L99RF           10\n",
      "AE03LUY7RH400            6\n",
      "==============  ==========\n"
     ]
    }
   ],
   "source": [
    "turker_counts = pd.DataFrame(turker_clean.WorkerId.value_counts())\n",
    "\n",
    "df = turker_counts.copy()\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OK let's make this easy on ourselves and just use the top 5 turkers for our first test\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [],
   "source": [
    "turker1 = turker_clean[turker_clean['WorkerId'] == 'ARLGZWN6W91WD']\n",
    "turker2 = turker_clean[turker_clean['WorkerId'] == 'A681XM15AN28F']\n",
    "turker3 = turker_clean[turker_clean['WorkerId'] == 'A1T79J0XQXDDGC']\n",
    "turker4 = turker_clean[turker_clean['WorkerId'] == 'A2XFO0X6RCS98M']\n",
    "turker5 = turker_clean[turker_clean['WorkerId'] == 'A3EZ0H07TSDAPW']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [],
   "source": [
    "turker1.reset_index(drop=True, inplace=True)\n",
    "turker2.reset_index(drop=True, inplace=True)\n",
    "turker3.reset_index(drop=True, inplace=True)\n",
    "turker4.reset_index(drop=True, inplace=True)\n",
    "turker5.reset_index(drop=True, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_df = pd.concat([turker1, turker2, turker3, turker4, turker5], axis=0, sort=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_df.reset_index(drop=True, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==============  ========================\n",
      "  ..  WorkerId        Answer.sentiment.label\n",
      "====  ==============  ========================\n",
      "  91  A1T79J0XQXDDGC  Negative\n",
      " 115  A1T79J0XQXDDGC  Positive\n",
      " 114  A1T79J0XQXDDGC  Positive\n",
      " 113  A1T79J0XQXDDGC  Positive\n",
      " 112  A1T79J0XQXDDGC  Negative\n",
      " 111  A1T79J0XQXDDGC  Positive\n",
      " 110  A1T79J0XQXDDGC  Positive\n",
      " 109  A1T79J0XQXDDGC  Positive\n",
      " 108  A1T79J0XQXDDGC  Positive\n",
      " 107  A1T79J0XQXDDGC  Positive\n",
      " 106  A1T79J0XQXDDGC  Positive\n",
      " 105  A1T79J0XQXDDGC  Positive\n",
      " 104  A1T79J0XQXDDGC  Positive\n",
      " 103  A1T79J0XQXDDGC  Positive\n",
      " 102  A1T79J0XQXDDGC  Positive\n",
      " 116  A1T79J0XQXDDGC  Positive\n",
      " 101  A1T79J0XQXDDGC  Positive\n",
      "  99  A1T79J0XQXDDGC  Positive\n",
      "  83  A1T79J0XQXDDGC  Positive\n",
      "  84  A1T79J0XQXDDGC  Negative\n",
      "====  ==============  ========================\n"
     ]
    }
   ],
   "source": [
    "df = merged_df.sort_values(by='WorkerId')\n",
    "df = df[['WorkerId', 'Answer.sentiment.label']]\n",
    "print(tabulate(df[:20], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "===========  ================  ================  ===============\n",
      "..           A2XFO0X6RCS98M    A3EZ0H07TSDAPW    A681XM15AN28F\n",
      "===========  ================  ================  ===============\n",
      "SENTIMENT1   Negative          Positive          Negative\n",
      "SENTIMENT2   Negative          Neutral           Positive\n",
      "SENTIMENT3   Negative          Positive          Positive\n",
      "SENTIMENT4   Negative          Negative          Positive\n",
      "SENTIMENT5   Positive          Negative          Positive\n",
      "SENTIMENT6   Negative          Positive          Negative\n",
      "SENTIMENT7   Negative          Negative          Neutral\n",
      "SENTIMENT8   Negative          Positive          Neutral\n",
      "SENTIMENT9   Negative          Positive          Neutral\n",
      "SENTIMENT10  Negative          Negative          Neutral\n",
      "===========  ================  ================  ===============\n"
     ]
    }
   ],
   "source": [
    "merged_df2 = pd.concat([turker1, turker2], axis=0, sort=False)\n",
    "df = pd.DataFrame({'Turker': merged_df['WorkerId'].tolist(),\n",
    "                   'SENTIMENT': merged_df['Answer.sentiment.label'].tolist(),\n",
    "                   'REVIEW': merged_df['HITId'].tolist() })\n",
    "\n",
    "grouped = df.groupby('Turker')\n",
    "values = grouped['REVIEW'].agg('sum')\n",
    "id_df = grouped['SENTIMENT'].apply(lambda x: pd.Series(x.values)).unstack()\n",
    "id_df = id_df.rename(columns={i: 'SENTIMENT{}'.format(i + 1) for i in range(id_df.shape[1])})\n",
    "result = pd.concat([id_df, values], axis=1)\n",
    "result_df = pd.DataFrame(result)\n",
    "\n",
    "df = result_df.T.copy()\n",
    "df = df[df.columns[1:4]]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Positive', 'Neutral', 'Positive', 'Negative', 'Negative']"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t1 = result_df.T['A3EZ0H07TSDAPW'].tolist()\n",
    "t2 = result_df.T['A2XFO0X6RCS98M'].tolist()\n",
    "t3 = result_df.T['A681XM15AN28F'].tolist()\n",
    "t4 = result_df.T['ARLGZWN6W91WD'].tolist()\n",
    "t1[:-1][:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Negative', 'Negative', 'Negative', 'Negative', 'Positive']"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t2[:-1][:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Negative', 'Positive', 'Positive', 'Positive', 'Positive']"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t3[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OK after all that work, we can finally calculate the kappa score between our first and second \"most prolific\" turkers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.43974358974358974"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import cohen_kappa_score\n",
    "y1 = t1[:-1]\n",
    "y2 = t2[:-1]\n",
    "cohen_kappa_score(y1,y2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "annnnnd just to make sure, let's calculate the same score between third and fourth \"most prolific\" turkers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.07585335018963324"
      ]
     },
     "execution_count": 177,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y3 = t3[:-1]\n",
    "y4 = t4[:-1]\n",
    "cohen_kappa_score(y3,y4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pretty sure a negative number isn't what we want... oh well. Can't worry about that because that's when the existential dread sinks in... like, why am I doing this right now? Why do I care so much? Why am I trying to calculate inter-rater reliability THIS way when this won't even be a measure I will use if/when I use turkers in the future? In the future, I will use the sample size itself to determine \"reliability\" -- e.g. If all N turkers agree on X, then it goes into the \"good\" pile, if not, then it goes back into the AMT pile until we have N turkers agreeing...Because the way AMT is set up right now, we won't be able to reliable calculate kappa when the number of HITS per turker is so varried. In order to get something truely accurate, I'd have to remove all the data that was only completed by M or fewer turkers and hope that the prolific turkers worked on the same ones and then compare those (which is exactly what I did below but seriously WHY WHY WHY.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Another failed test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Attempt 4:\n",
    "##### Maybe if I convert these huge opressive strings into smaller numbers, this won't feel as awful?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {},
   "outputs": [],
   "source": [
    "new_turker_ids = pd.factorize(turker_clean_test['WorkerId'].tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {},
   "outputs": [],
   "source": [
    "t_ids = ['T_' + str(id) for id in new_turker_ids[0]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['T_0', 'T_1', 'T_2', 'T_3', 'T_2']"
      ]
     },
     "execution_count": 181,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_ids[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {},
   "outputs": [],
   "source": [
    "turker_clean_test['T_ID'] = t_ids\n",
    "# turker_clean_test[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [],
   "source": [
    "turker_clean_test['sentiment'] = turker_clean_test.apply(lambda x: x['Answer.sentiment.label'][0], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {},
   "outputs": [],
   "source": [
    "# turker_clean_test[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Annnnd here we are... small and clean. This DID actually help my brain a bit... Noted for next time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {},
   "outputs": [],
   "source": [
    "even_cleaner_df = turker_clean_test[['ReviewID', 'T_ID', 'sentiment']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==========  ======  ===========\n",
      "  ..    ReviewID  T_ID    sentiment\n",
      "====  ==========  ======  ===========\n",
      "   0           0  T_0     N\n",
      "   1           0  T_1     N\n",
      "   2           0  T_2     N\n",
      "   3           1  T_3     N\n",
      "   4           1  T_2     N\n",
      "====  ==========  ======  ===========\n"
     ]
    }
   ],
   "source": [
    "df = even_cleaner_df[:5]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Attempt 5:\n",
    "#### Let's make our very own DIY sparse matrix!!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======  =====  ======  ======  ======  ======  ======  ======\n",
      "..       T_1    T_10    T_11    T_12    T_13    T_14    T_15\n",
      "=======  =====  ======  ======  ======  ======  ======  ======\n",
      "REVIEW1  N      P       N       N       N       N       N\n",
      "REVIEW2  nan    N       N       N       N       P       N\n",
      "REVIEW3  nan    P       P       N       N       nan     nan\n",
      "REVIEW4  nan    P       P       N       P       nan     nan\n",
      "REVIEW5  nan    N       N       P       P       nan     nan\n",
      "=======  =====  ======  ======  ======  ======  ======  ======\n"
     ]
    }
   ],
   "source": [
    "df = pd.DataFrame({'Turker': even_cleaner_df['T_ID'].tolist(),\n",
    "                   'SENTIMENT': even_cleaner_df['sentiment'].tolist(),\n",
    "                   'REVIEW': even_cleaner_df['ReviewID'].tolist() })\n",
    "\n",
    "grouped = df.groupby('Turker')\n",
    "values = grouped['REVIEW'].agg('sum')\n",
    "id_df = grouped['SENTIMENT'].apply(lambda x: pd.Series(x.values)).unstack()\n",
    "id_df = id_df.rename(columns={i: 'REVIEW{}'.format(i + 1) for i in range(id_df.shape[1])})\n",
    "result = pd.concat([id_df, values], axis=1)\n",
    "result_df = pd.DataFrame(result)\n",
    "\n",
    "df = result_df.T[:5]\n",
    "df = df[df.columns[1:8]]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And turn it into a data frame cuz why not?!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## That is obviously wrong because only THREE people commented on Review1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### ATTEMPT FUCKING 6:\n",
    "##### I ***clap emoji*** hate ***clap emoji*** everything ***clap emoji***"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame({'Turker': even_cleaner_df['T_ID'].tolist(),\n",
    "                   'SENTIMENT': even_cleaner_df['ReviewID'].tolist(),\n",
    "                   'REVIEW': even_cleaner_df['sentiment'].tolist() })\n",
    "\n",
    "grouped = df.groupby('Turker')\n",
    "values = grouped['REVIEW'].agg('sum')\n",
    "id_df = grouped['SENTIMENT'].apply(lambda x: pd.Series(x.values)).unstack()\n",
    "id_df = id_df.rename(columns={i: 'REVIEW{}'.format(i + 1) for i in range(id_df.shape[1])})\n",
    "result = pd.concat([id_df, values], axis=1)\n",
    "result_df = pd.DataFrame(result)\n",
    "# print(result_df.T[:5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(result_df.T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {},
   "outputs": [],
   "source": [
    "# df[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I want every review on the left side and I want all 46 turkers on the top"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame({ 'review': even_cleaner_df['ReviewID']})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Attempt 7: After eating some food and having a calm down"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_array_of_reviews(turker, df):\n",
    "    a = ['nan']*98\n",
    "    df = even_cleaner_df[even_cleaner_df['T_ID'] == turker] \n",
    "    t_reviews = df['ReviewID'].tolist()\n",
    "    t_sentiment = df['sentiment'].tolist()\n",
    "    for index,review in enumerate(t_reviews):\n",
    "        a[review] = t_sentiment[index]\n",
    "#     print(t_reviews)\n",
    "\n",
    "    return a\n",
    "\n",
    "sparse_df = even_cleaner_df.copy()\n",
    "sparse_df['big_array'] = sparse_df.apply(lambda x: get_array_of_reviews(x['T_ID'], even_cleaner_df), axis=1)\n",
    "t0 = even_cleaner_df[even_cleaner_df['T_ID'] == 'T_0']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==========  ======  ===========\n",
      "  ..    ReviewID  T_ID    sentiment\n",
      "====  ==========  ======  ===========\n",
      "   0           0  T_0     N\n",
      "  34          11  T_0     N\n",
      " 126          42  T_0     N\n",
      " 140          46  T_0     N\n",
      "====  ==========  ======  ===========\n"
     ]
    }
   ],
   "source": [
    "df = t0\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "====  ==========  ======  ===========  =================================\n",
      "  ..    ReviewID  T_ID    sentiment    big_array_sm\n",
      "====  ==========  ======  ===========  =================================\n",
      "   0           0  T_0     N            ['N', 'nan', 'nan', 'nan', 'nan']\n",
      "   1           0  T_1     N            ['N', 'nan', 'nan', 'nan', 'nan']\n",
      "   2           0  T_2     N            ['N', 'N', 'nan', 'nan', 'nan']\n",
      "   3           1  T_3     N            ['nan', 'N', 'nan', 'N', 'N']\n",
      "   4           1  T_2     N            ['N', 'N', 'nan', 'nan', 'nan']\n",
      "   5           1  T_4     N            ['nan', 'N', 'nan', 'nan', 'nan']\n",
      "   6           2  T_5     P            ['nan', 'nan', 'P', 'N', 'P']\n",
      "   7           2  T_6     N            ['nan', 'nan', 'N', 'nan', 'nan']\n",
      "   8           2  T_7     N            ['nan', 'nan', 'N', 'nan', 'nan']\n",
      "   9           3  T_8     N            ['nan', 'nan', 'nan', 'N', 'N']\n",
      "====  ==========  ======  ===========  =================================\n"
     ]
    }
   ],
   "source": [
    "\n",
    "sparse_df['big_array_sm'] = sparse_df.apply(lambda x: x['big_array'][:5], axis=1)\n",
    "df = sparse_df[['ReviewID', 'T_ID','sentiment', 'big_array_sm']]\n",
    "print(tabulate(df[:10], tablefmt=\"rst\", headers=df.columns))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "metadata": {},
   "outputs": [],
   "source": [
    "t0 = sparse_df[sparse_df['T_ID'] == 'T_0']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['N', 'N', 'nan', 'nan', 'nan']"
      ]
     },
     "execution_count": 223,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sparse_df['big_array'][sparse_df['T_ID'] == 'T_2'].tolist()[0][:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RESULTS\n",
    "### Finally Calculate the Kappa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 224,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.39004149377593356"
      ]
     },
     "execution_count": 224,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y1 = sparse_df['big_array'][sparse_df['T_ID'] == 'T_0'].tolist()[0]\n",
    "y2 = sparse_df['big_array'][sparse_df['T_ID'] == 'T_1'].tolist()[0]\n",
    "cohen_kappa_score(y1,y2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### And calculate kappas for other combinations (but not all combinations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_kappa(num):\n",
    "    y1 = sparse_df['big_array'][sparse_df['T_ID'] == 'T_'+str(num)].tolist()[0]\n",
    "    y2 = sparse_df['big_array'][sparse_df['T_ID'] == 'T_'+str(num + 1)].tolist()[0]\n",
    "    return cohen_kappa_score(y1,y2)\n",
    "\n",
    "kappas = [calculate_kappa(num) for num in range(16)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 226,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.39004149377593356,\n",
       " 0.07634307257304429,\n",
       " 0.023255813953488413,\n",
       " 0.11578947368421055,\n",
       " -0.10975609756097549,\n",
       " -0.04981253347616499,\n",
       " 0.29547088425593093,\n",
       " -0.02821170435999054,\n",
       " -0.01071003570011908,\n",
       " 0.005658536585365748,\n",
       " -0.06968933669185562,\n",
       " -0.04457364341085279,\n",
       " -0.04457364341085279,\n",
       " -0.02235469448584193,\n",
       " -0.015544041450777257,\n",
       " -0.01730103806228378]"
      ]
     },
     "execution_count": 226,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kappas"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Wonderful. More negative numbers. I love life. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "TL;DR: Calculating kappa and inter-rater reliability when there are multiple reviewers is challenging and deserves more delibrate time and study."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CONCLUSION"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "While computers have advanced in leaps and bounds over the past several decades, it’s clear that there are tasks that humans still perform better than machines. We know, for instance, that horseradish doesn’t belong in brownie recipes. We can tell if a tweet is sarcastic, or identify whether a photo depicts a chihuahua or a muffin. Some might say that machines can’t perform these tasks reliably because they aren’t “smart enough” yet. If intelligence is defined as the sum total of everything we’ve ever learned, then this assessment is accurate.\n",
    "\n",
    "However, this does not mean that machines will never be able to perform tasks like these. In reality, computers simply haven't been given enough data to determine that the blueberries in that muffin are not, in fact, chihuahua eyeballs. Just as a small child labels every four-legged creature a “doggie” until she has lived long enough to collect more data (“This four-legged creature is always bigger than a dog and makes a totally different noise! I’ve also noticed that the grownups refer to it as a ‘horse’”), the computer is simply at a data disadvantage. \n",
    "\n",
    "The solution, then, is expose the computer to more data, just like the child. This is exactly what Amazon Mechanical Turk is doing. Thanks to the “artificial” artificial intelligence of turkers, computers can process massive amounts of “gut feeling” data that will eventually enable them to distinguish between a chihuahua and a muffin as well as (or better than) humans.\n",
    "\n",
    "\n"
   ]
  }
 ],
 "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
