{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 08\n", "\n", "## Analyze how travelers expressed their feelings on Twitter\n", "\n", "A sentiment analysis job about the problems of each major U.S. airline. \n", "Twitter data was scraped from February of 2015 and contributors were \n", "asked to first classify positive, negative, and neutral tweets, followed\n", "by categorizing negative reasons (such as \"late flight\" or \"rude service\")." ] }, { "cell_type": "code", "execution_count": 4, "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", " \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", " \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", "
airline_sentimentairline_sentiment_confidencenegativereasonnegativereason_confidenceairlineairline_sentiment_goldnamenegativereason_goldretweet_counttexttweet_coordtweet_createdtweet_locationuser_timezone
tweet_id
570306133677760513neutral1.0000NaNNaNVirgin AmericaNaNcairdinNaN0@VirginAmerica What @dhepburn said.NaN2015-02-24 11:35:52 -0800NaNEastern Time (US & Canada)
570301130888122368positive0.3486NaN0.0000Virgin AmericaNaNjnardinoNaN0@VirginAmerica plus you've added commercials t...NaN2015-02-24 11:15:59 -0800NaNPacific Time (US & Canada)
570301083672813571neutral0.6837NaNNaNVirgin AmericaNaNyvonnalynnNaN0@VirginAmerica I didn't today... Must mean I n...NaN2015-02-24 11:15:48 -0800Lets PlayCentral Time (US & Canada)
570301031407624196negative1.0000Bad Flight0.7033Virgin AmericaNaNjnardinoNaN0@VirginAmerica it's really aggressive to blast...NaN2015-02-24 11:15:36 -0800NaNPacific Time (US & Canada)
570300817074462722negative1.0000Can't Tell1.0000Virgin AmericaNaNjnardinoNaN0@VirginAmerica and it's a really big bad thing...NaN2015-02-24 11:14:45 -0800NaNPacific Time (US & Canada)
\n", "
" ], "text/plain": [ " airline_sentiment airline_sentiment_confidence \\\n", "tweet_id \n", "570306133677760513 neutral 1.0000 \n", "570301130888122368 positive 0.3486 \n", "570301083672813571 neutral 0.6837 \n", "570301031407624196 negative 1.0000 \n", "570300817074462722 negative 1.0000 \n", "\n", " negativereason negativereason_confidence airline \\\n", "tweet_id \n", "570306133677760513 NaN NaN Virgin America \n", "570301130888122368 NaN 0.0000 Virgin America \n", "570301083672813571 NaN NaN Virgin America \n", "570301031407624196 Bad Flight 0.7033 Virgin America \n", "570300817074462722 Can't Tell 1.0000 Virgin America \n", "\n", " airline_sentiment_gold name negativereason_gold \\\n", "tweet_id \n", "570306133677760513 NaN cairdin NaN \n", "570301130888122368 NaN jnardino NaN \n", "570301083672813571 NaN yvonnalynn NaN \n", "570301031407624196 NaN jnardino NaN \n", "570300817074462722 NaN jnardino NaN \n", "\n", " retweet_count \\\n", "tweet_id \n", "570306133677760513 0 \n", "570301130888122368 0 \n", "570301083672813571 0 \n", "570301031407624196 0 \n", "570300817074462722 0 \n", "\n", " text \\\n", "tweet_id \n", "570306133677760513 @VirginAmerica What @dhepburn said. \n", "570301130888122368 @VirginAmerica plus you've added commercials t... \n", "570301083672813571 @VirginAmerica I didn't today... Must mean I n... \n", "570301031407624196 @VirginAmerica it's really aggressive to blast... \n", "570300817074462722 @VirginAmerica and it's a really big bad thing... \n", "\n", " tweet_coord tweet_created tweet_location \\\n", "tweet_id \n", "570306133677760513 NaN 2015-02-24 11:35:52 -0800 NaN \n", "570301130888122368 NaN 2015-02-24 11:15:59 -0800 NaN \n", "570301083672813571 NaN 2015-02-24 11:15:48 -0800 Lets Play \n", "570301031407624196 NaN 2015-02-24 11:15:36 -0800 NaN \n", "570300817074462722 NaN 2015-02-24 11:14:45 -0800 NaN \n", "\n", " user_timezone \n", "tweet_id \n", "570306133677760513 Eastern Time (US & Canada) \n", "570301130888122368 Pacific Time (US & Canada) \n", "570301083672813571 Central Time (US & Canada) \n", "570301031407624196 Pacific Time (US & Canada) \n", "570300817074462722 Pacific Time (US & Canada) " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "# read the data and set the datetime as the index\n", "import zipfile\n", "with zipfile.ZipFile('../datasets/Tweets.zip', 'r') as z:\n", " f = z.open('Tweets.csv')\n", " tweets = pd.read_csv(f, index_col=0)\n", "\n", "tweets.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(14640, 14)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tweets.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proportion of tweets with each sentiment" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "negative 9178\n", "neutral 3099\n", "positive 2363\n", "Name: airline_sentiment, dtype: int64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tweets['airline_sentiment'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proportion of tweets per airline\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "United 3822\n", "US Airways 2913\n", "American 2759\n", "Southwest 2420\n", "Delta 2222\n", "Virgin America 504\n", "Name: airline, dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tweets['airline'].value_counts()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pd.Series(tweets[\"airline\"]).value_counts().plot(kind = \"bar\",figsize=(8,6),rot = 0)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAAGDCAYAAACMU6xhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X2cVnWd//HXRyDxHjVsVVSoUAHFUQbSdV0pDclqtQRv1gqzQn/Yruu2FrZpduNmrZvmDZqlYUbiDZlsuaummKZ4A4YooomKirKIIiQqKvj5/XHO4CXODAPMnGGY1/PxmMec63u+55zvOXNd17yv7/le50RmIkmSpOps1N4NkCRJ6mwMYJIkSRUzgEmSJFXMACZJklQxA5gkSVLFDGCSJEkVM4BJqlREXBIRp7d3OxoTEXMj4uAKtvM/ETGqmfnHRcSfah4vjYgPtnW7JFXHACaJiPi7iLg7IpZExKKIuCsiBrfCet8VJAAy88TM/N66rnst2nJmRPyq6u02JjM/kZlXrEH9zTPzybZsk6RqdW3vBkhqXxGxJfA74P8B1wDvAw4A3mjPdnVWEeH7stQJ2AMmaVeAzLwqM1dk5uuZeXNmzmyoEBHHR8TsiHg5Im6KiF1q5mVEnBgRj5fzL4pCP+ASYL/yFNrisv74iPh+OT00IuZFxNcj4oWImB8Rh0fEoRHxl7I37ps129ooIsZGxBMR8VJEXBMR25TzepdtGRURz0TEixHx7+W84cA3gaPKtjzYzPEYHBGPlPvyi4joXq7j4Yj4dE1bupXbqFt1BRGxdUT8LiIWluv5XUT0qpl/e0R8uZw+ruxxPDciFgFnNrK+jIgP1xy/iyLi9xHxSkTcGxEfqqm7e0TcUh67xyLiyGb2VVI7MYBJ+guwIiKuiIhPRMTWtTMj4nCK8PJZoCdwJ3DVKuv4FDAY2As4EjgkM2cDJwJTy1NoPZrY/t8A3YEdgTOAnwGfAwZR9MSdUTP+6Z+Bw4EDgR2Al4GLVlnf3wG7AQeVy/bLzP8F/gO4umzLXs0cj2OBQ4APUYTTb5Xlvyzb1eBQYH5mzmhkHRsBvwB2AXYGXgcubGabHwGeBLYDzmqmXoNjgO8AWwNzGpaJiM2AW4Bfl+s6BhgXEQNasE5JFTKASZ1cZv6VIrQkRfhZGBGTI+IDZZUTgB9k5uzMXE4RZOpqe8GAszNzcWY+A0wB3tMr1Iy3gLMy8y1gIvB+4CeZ+UpmzgJmAQNr2vLvmTkvM9+g6C0ascppu++UvXgPAg9ShMI1cWFmPpuZiyiCzTFl+a+AQ8tTtgCfB65sbAWZ+VJmTsrM1zLzlXI9Bzazzecz84LMXJ6Zr7egjb/JzPvKv8cE3jnenwLmZuYvynU9AEwCRrRgnZIqZACTRBmujsvMXsAeFL1L55WzdwF+EhGLy9OIi4Cg6LFq8H81068Bm6/B5l/KzBXldEP4WFAz//Wa9e0CXF/TltnACuADNfXXpS0Az9ZMP01xLMjM54G7gCMiogfwCYrw8x4RsWlE/DQino6IvwJ3AD0ioksLttkSTe3jLsBHGo5PeYyOpehllLQecbCnpHfJzEcjYjxFbxMU4eCszGw0bKxuda3WsHfacnxm3rXqjIjo3Upt2almemfg+ZrHVwBfpnjvnJqZzzWxjq9RnAb9SGb+XzlO7M8UwXVd2rY6zwJ/zMyPt9L6JLURe8CkTq4ctP21hkHiEbETxWm3e8oqlwCnNYwjioitImJkC1e/AOgVEe9rpeZeApzVcPozInpGxGFr0JbeEbG6972TIqJXObj/m8DVNfN+C+wDnEwxJqwpW1D03C0u1/PtFrZxXf0O2DUiPl9+SaBbRAwuvxAhaT1iAJP0CsUg8Hsj4lWK4PUwRS8OmXk98ENgYnk67WGK028tcRvFGK7/i4gXW6GtPwEmAzdHxCtlWz/SwmWvLX+/FBEPNFPv18DNFIPinwS+3zCjHJ81CegD/KaZdZwHbAK8WLbxf1vYxnVSjjcbBhxN0XP3fxR/u42r2L6klovM1j5DIEkbrog4A9g1Mz+32sqS1ATHgElSC5WnE79E8Q1ISVprnoKUpBaIiK9QDHL/n8y8o73bI6lja3EAi4guEfHniPhd+bhPeQXmxyPi6oZBthGxcfl4Tjm/d806TivLH4uIQ1p7ZySprWTmzzJzs8w8sb3bIqnjW5MesJMprrnT4IfAuZnZl+Jq1F8qy78EvJyZHwbOLesREf0pBoYOAIZTXJ25qWviSJIkbbBaFMDKr6d/Evh5+TiAjwHXlVWuoLg9CMBh5WPK+QeV9Q8DJmbmG5n5FMXtM4a0xk5IkiR1JC0dhH8e8HWKa9sAbAssLm+DATCPd66KvSPlVZ0zc3lELCnr78g71xVadZlGvf/978/evXu3sImSJEntZ/r06S9mZs+W1F1tAIuITwEvZOb0iBjaUNxI1VzNvOaWqd3eaGA0wM4778y0adNW10RJkqR2FxFPt7RuS05B7g/8Q0TMpbhR7scoesR61NwAtxfv3K5jHuWtPMr5W1HcO25leSPLrJSZl2ZmfWbW9+zZohApSZLUoaw2gGXmaZnZKzN7Uwyivy0zjwWmACPKaqOAG8rpyeVjyvm3ZXG118nA0eW3JPsAfYH7Wm1PJEmSOoh1uRDrNyhuTfJ9ipvMXlaWXwZcGRFzKHq+jgbIzFkRcQ3wCLAcOCkzV6zD9iVJkjqk9fpWRPX19ekYMEmSmvbWW28xb948li1b1t5N6TS6d+9Or1696Nat27vKI2J6Zta3ZB3eikiSpA5s3rx5bLHFFvTu3Zviqk9qS5nJSy+9xLx58+jTp89ar8dbEUmS1IEtW7aMbbfd1vBVkYhg2223XeceRwOYJEkdnOGrWq1xvA1gkiRJFTOASZLUCRx66KEsXry40Xm9e/fmxRdfBOBv//Zvq2xWi/3Hf/zHux63dTsXL17MuHHj2mz9BjBJkjqBG2+8kR49eryrLDN5++2331V29913V9msFls1gLV1Ow1gkiRpjRx++OEMGjSIAQMGcOmllwLv9HLNnTuXfv36MWbMGPbZZx+effbZdy27+eabA3D77bczdOhQRowYwe67786xxx5Lw6Wrpk+fzoEHHsigQYM45JBDmD9/fpNtOf/88+nfvz8DBw7k6KOPBuDVV1/l+OOPZ/Dgwey9997ccENxLffx48fz2c9+luHDh9O3b1++/vWvAzB27Fhef/116urqOPbYY9/TzgMPPJAjjzySXXfdlbFjxzJhwgSGDBnCnnvuyRNPPAHAwoULOeKIIxg8eDCDBw/mrrvuAuDMM8/k+OOPZ+jQoXzwgx/k/PPPX7nNJ554grq6Ok499dR1/Is0IjPX259BgwalJElq2iOPPPKespdeeikzM1977bUcMGBAvvjii7nLLrvkwoUL86mnnsqIyKlTp66s3zAvM3OzzTbLzMwpU6bklltumc8++2yuWLEi991337zzzjvzzTffzP322y9feOGFzMycOHFifvGLX2yyfdtvv30uW7YsMzNffvnlzMw87bTT8sorr1xZ1rdv31y6dGn+4he/yD59+uTixYvz9ddfz5133jmfeeaZd7WrQW07t9pqq3z++edz2bJlucMOO+QZZ5yRmZnnnXdennzyyZmZecwxx+Sdd96ZmZlPP/107r777pmZ+e1vfzv322+/XLZsWS5cuDC32WabfPPNN/Opp57KAQMGrNFxB6ZlCzOO1wGTJGkDc/7553P99dcD8Oyzz/L444+/a/4uu+zCvvvuu9r1DBkyhF69egFQV1fH3Llz6dGjBw8//DAf//jHAVixYgXbb799k+sYOHAgxx57LIcffjiHH344ADfffDOTJ0/mnHPOAYpLaTzzzDMAHHTQQWy11VYA9O/fn6effpqddtqp8ZWXBg8evLINH/rQhxg2bBgAe+65J1OmTAHgD3/4A4888sjKZf7617/yyiuvAPDJT36SjTfemI033pjtttuOBQsWrPbYrCsDmCSpwxs3o+3G6rSlMXVjWn2dt99+O3/4wx+YOnUqm266KUOHDn3PNas222yzFq1r4403XjndpUsXli9fTmYyYMAApk6d2qJ1/P73v+eOO+5g8uTJfO9732PWrFlkJpMmTWK33XZ7V91777230W2uSTs32mijlY832mijlcu//fbbTJ06lU022aRF+9nWHAMmSdIGZMmSJWy99dZsuummPProo9xzzz2tuv7ddtuNhQsXrgxgb731FrNmzWq07ttvv82zzz7LRz/6UX70ox+xePFili5dyiGHHMIFF1ywckzZn//859Vut1u3brz11ltr3e5hw4Zx4YUXrnw8Y8aMZutvscUWK3vI2oIBTJKkDcjw4cNZvnw5AwcO5PTTT2/RqcY18b73vY/rrruOb3zjG+y1117U1dU1+Y3EFStW8LnPfY4999yTvffem1NOOYUePXpw+umn89ZbbzFw4ED22GMPTj/99NVud/To0StPZ66N888/n2nTpjFw4ED69+/PJZdc0mz9bbfdlv3335899tijTQbhezNuSVKH15lPQc6ePZt+/fq1Qmu0Jho77mtyM257wCRJkirmIHxJkrTOTjrppJXX1mpw8skn88UvfrGdWrR+M4BJkqR1dtFFF7V3EzoUT0FKkiRVzAAmSZJUMQOYJElSxQxgkiSpw1q8eDHjxr1zGZLnn3+eESNGtGOLWsZB+JIkdRLn3vKXVl3fKR/ftVXXtzYaAtiYMcU11XbYYQeuu+66dm7V6tkDJkmS2szcuXPp168fX/nKVxgwYADDhg3j9ddf54knnmD48OEMGjSIAw44gEcffRSAJ554gn333ZfBgwdzxhlnsPnmmwOwdOlSDjroIPbZZx/23HNPbrjhBgDGjh3LE088QV1dHaeeeipz585ljz32AOAjH/nIu26TNHToUKZPn86rr77K8ccfz+DBg9l7771XrqtKBjBJktSmHn/8cU466SRmzZpFjx49mDRpEqNHj+aCCy5g+vTpnHPOOSt7sE4++WROPvlk7r//fnbYYYeV6+jevTvXX389DzzwAFOmTOFrX/samcnZZ5/Nhz70IWbMmMF//ud/vmu7Rx99NNdccw0A8+fP5/nnn2fQoEGcddZZfOxjH+P+++9nypQpnHrqqbz66qvVHRAMYJIkqY316dOHuro6AAYNGsTcuXO5++67GTlyJHV1dZxwwgnMnz8fgKlTpzJy5EgA/vEf/3HlOjKTb37zmwwcOJCDDz6Y5557jgULFjS73SOPPJJrr70WgGuuuWblem+++WbOPvts6urqGDp0KMuWLeOZZ55p9f1ujmPAJElSm9p4441XTnfp0oUFCxbQo0cPZsyY0eJ1TJgwgYULFzJ9+nS6detG7969WbZsWbPL7Ljjjmy77bbMnDmTq6++mp/+9KdAEeYmTZrEbrvttnY71ArsAZMkSZXacsst6dOnz8reqczkwQcfBGDfffdl0qRJAEycOHHlMkuWLGG77bajW7duTJkyhaeffhqALbbYgldeeaXJbR199NH86Ec/YsmSJey5554AHHLIIVxwwQVkJgB//vOfW38nV8MAJkmSKjdhwgQuu+wy9tprLwYMGLByIPx5553Hj3/8Y4YMGcL8+fPZaqutADj22GOZNm0a9fX1TJgwgd133x2Abbfdlv3335899tiDU0899T3bGTFiBBMnTuTII49cWXb66afz1ltvMXDgQPbYYw9OP/30Cvb43aIh/a2P6uvrc9q0ae3dDEnSem7cjHGrr7QeGlM3Zp3XMXv2bPr169cKrVk/vPbaa2yyySZEBBMnTuSqq65ql28prk5jxz0ipmdmfUuWdwyYJElab0yfPp2vfvWrZCY9evTg8ssvb+8mtQkDmCRJWm8ccMABK8eDbcgcAyZJklQxA5gkSVLFVhvAIqJ7RNwXEQ9GxKyI+E5ZPj4inoqIGeVPXVkeEXF+RMyJiJkRsU/NukZFxOPlz6i22y1JkqT1V0vGgL0BfCwzl0ZEN+BPEfE/5bxTM3PVO15+Auhb/nwEuBj4SERsA3wbqAcSmB4RkzPz5dbYEUmSpI5itT1gWVhaPuxW/jR37YrDgF+Wy90D9IiI7YFDgFsyc1EZum4Bhq9b8yVJUmcwd+5cfv3rX6/Vsg039F6ftOhbkBHRBZgOfBi4KDPvjYj/B5wVEWcAtwJjM/MNYEfg2ZrF55VlTZWvuq3RwGiAnXfeeY13SJIkNWHKD1p3fR89rXXX14yGAFZ7f8gGy5cvp2vXjnVhhxYNws/MFZlZB/QChkTEHsBpwO7AYGAb4Btl9WhsFc2Ur7qtSzOzPjPre/bs2ZLmSZKk9dTcuXPp168fX/nKVxgwYADDhg3j9ddf54knnmD48OEMGjSIAw44gEcffRSA4447juuue2d0U0Pv1dixY7nzzjupq6vj3HPPZfz48YwcOZJPf/rTDBs2jKVLl3LQQQexzz77sOeee66XF2+ttUbfgszMxcDtwPDMnF+eZnwD+AUwpKw2D9ipZrFewPPNlEuSpA3Y448/zkknncSsWbPo0aMHkyZNYvTo0VxwwQVMnz6dc845hzFjmr8rwNlnn80BBxzAjBkzOOWUUwCYOnUqV1xxBbfddhvdu3fn+uuv54EHHmDKlCl87WtfY32+289q++sioifwVmYujohNgIOBH0bE9pk5PyICOBx4uFxkMvDViJhIMQh/SVnvJuA/ImLrst4wil40SZK0AevTpw91dXUADBo0iLlz53L33XczcuTIlXXeeOONNV7vxz/+cbbZZhuguKH3N7/5Te644w422mgjnnvuORYsWMDf/M3ftM5OtLKWnDDdHriiHAe2EXBNZv4uIm4rw1kAM4ATy/o3AocCc4DXgC8CZOaiiPgecH9Z77uZuaj1dkWSJK2PNt5445XTXbp0YcGCBfTo0YMZM2a8p27Xrl15++23gSJUvfnmm02ud7PNNls5PWHCBBYuXMj06dPp1q0bvXv3ZtmyZa24F61rtQEsM2cCezdS/rEm6idwUhPzLgc2zJs6SZKkFtlyyy3p06cP1157LSNHjiQzmTlzJnvttRe9e/dm+vTpHHnkkdxwww289dZbAGyxxRa88sorTa5zyZIlbLfddnTr1o0pU6bw9NNPV7U7a8Ur4UuSpMpNmDCByy67jL322osBAwasHDT/la98hT/+8Y8MGTKEe++9d2Uv18CBA+natSt77bUX55577nvWd+yxxzJt2jTq6+uZMGECu+++e6X7s6ZifR6gVl9fn9OmTWvvZkiS1nPjZoxr7yaslTF1zQ88b4nZs2fTr1+/VmiN1kRjxz0ipmdmfUuWtwdMkiSpYgYwSZKkihnAJEmSKmYAkyRJqpgBTJIkqWIGMEmSpIp1rFuHS5LUiDEvL2nvJqgNXXLJJWy66aZ84QtfYPz48QwbNowddtgBgC9/+cv867/+K/3792/nVq4ZA5gkSZ1Ea18vrTWuY9YSJ5544srp8ePHs8cee6wMYD//+c8raUNr8xSkJElqM3PnzmX33Xdn1KhRDBw4kBEjRvDaa69x6623svfee7Pnnnty/PHHr7wZ99ixY+nfvz8DBw7k3/7t3wA488wzOeecc7juuuuYNm0axx57LHV1dbz++usMHTqUadOmcfHFF/P1r3995XbHjx/PP/3TPwHwq1/9iiFDhlBXV8cJJ5zAihUrqj8QqzCASZKkNvXYY48xevRoZs6cyZZbbsmPf/xjjjvuOK6++moeeughli9fzsUXX8yiRYu4/vrrmTVrFjNnzuRb3/rWu9YzYsSIlbcamjFjBptsssm75v3mN79Z+fjqq6/mqKOOYvbs2Vx99dXcddddzJgxgy5dujBhwoTK9r0pBjBJktSmdtppJ/bff38APve5z3HrrbfSp08fdt11VwBGjRrFHXfcwZZbbkn37t358pe/zG9+8xs23XTTFm+jZ8+efPCDH+See+7hpZde4rHHHmP//ffn1ltvZfr06QwePJi6ujpuvfVWnnzyyTbZzzXhGDBJktSmIqJF9bp27cp9993HrbfeysSJE7nwwgu57bbbWrydo446imuuuYbdd9+dz3zmM0QEmcmoUaP4wQ9+sLbNbxP2gEmSpDb1zDPPMHXqVACuuuoqDj74YObOncucOXMAuPLKKznwwANZunQpS5Ys4dBDD+W8885jxowZ71nXFltswSuvvNLodj772c/y29/+lquuuoqjjjoKgIMOOojrrruOF154AYBFixbx9NNPt8VurhF7wCRJUpvq168fV1xxBSeccAJ9+/blJz/5Cfvuuy8jR45k+fLlDB48mBNPPJFFixZx2GGHsWzZMjKTc8899z3rOu644zjxxBPZZJNNVoa6BltvvTX9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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pd.crosstab(index = tweets[\"airline\"],columns = tweets[\"airline_sentiment\"]).plot(kind='bar',figsize=(10, 6),alpha=0.5,rot=0,stacked=True,title=\"Sentiment by airline\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 8.1 \n", "\n", "Predict the sentiment using CountVectorizer, stopwords, n_grams, stemmer, TfidfVectorizer\n", "\n", "use Random Forest classifier" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split, cross_val_score\n", "from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer\n", "from sklearn.ensemble import RandomForestClassifier\n", "from nltk.stem.snowball import SnowballStemmer\n", "from nltk.stem import WordNetLemmatizer" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "X = tweets['text']\n", "y = tweets['airline_sentiment'].map({'negative':-1,'neutral':0,'positive':1})" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 8.2\n", "\n", "Train a Deep Neural Network with the following architecture:\n", "\n", "- Input = text \n", "- Dense(128)\n", "- Relu Activation\n", "- BatchNormalization\n", "- Dropout(0.5)\n", "- Dense(10, Softmax)\n", "\n", "Optimized using rmsprop using as loss categorical_crossentropy\n", "\n", "Hints: \n", "- test with two iterations then try more. \n", "- learning can be ajusted\n", "\n", "Evaluate the performance using the testing set (aprox 55% with 50 epochs)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "from keras.models import Sequential\n", "from keras.utils import np_utils\n", "from keras.layers import Dense, Dropout, Activation, BatchNormalization\n", "from keras.optimizers import RMSprop\n", "from keras.callbacks import History\n", "from livelossplot import PlotLossesKeras" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }