{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Pinterest Analysis about the NYFW Fall 2014" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Index__
\n", "1. Getting the data
\n", "2. Auditing and cleaning
\n", "3. Store in MongoDB
\n", "4. Data analysis
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "1. Getting the data" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import json\n", "import re" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "# pinterest_boards contained the gathered urls to the Pinterest boards from the search:\n", "# http://www.pinterest.com/search/boards/?q=nyfw%20fall%202014\n", "filename = \"pinterest_boards.json\"\n", "with open(filename, \"r\") as f:\n", " file_boards = json.loads(f.read())" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# make sure all the boards belongs to the event. The url have to contain the words: nyfw, fall and 2014\n", "# the boards that doesn't contain the words will be added to a separate dictionary for manually inspection\n", "boards = {}\n", "check_boards = {}\n", "mandatory_words = ['nyfw','fall','2014']\n", "for board in file_boards:\n", " board = board['href'].encode(\"ascii\")\n", " valid_board = True\n", " for word in mandatory_words:\n", " if word not in board:\n", " valid_board = False\n", " break\n", " if valid_board:\n", " boards['_'.join(board.split('/')[3:5])] = board\n", " else:\n", " check_boards['_'.join(board.split('/')[3:5])] = board" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": true, "input": [ "print \"Number of boards to manually inspect: \" + str(len(check_boards))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Number of boards to manually inspect: 84\n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "#After checking the names of the check_boards, I manually review some of them, and those 8 are the ones that belong to other events\n", "del check_boards['fawkeshunter_fallwinter-2013']\n", "del check_boards['csquared224_new-york-paris-fashion-week-spring-2014']\n", "del check_boards['sadeesays_rock-it-%2B-with-2013-14-fallwinter-trend-looks']\n", "del check_boards['sinnstyle_nyfw-fall14-at-sinn']\n", "del check_boards['squarekey_nyfw']\n", "del check_boards['themodeclectic_womens-fashion-vol-i-new-york-nyfw']\n", "del check_boards['tide_tracy-reese-washable-fashion-designs-for-tide-pods']\n", "del check_boards['tracyreeseny_tracy-tide-pods']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "#Call Pinterest for get the pins from the selected boards\n", "##You can find the gathered pins under the boards/ directory" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "2-3. Cleaning, auditing and storing the pins in a Mongodb database" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Create a client object to a mongod localhost instance and create or retrieve a database\n", " Input: Database name we want to connect to\n", " Output: Database connection'''\n", "def get_db(db_name):\n", " from pymongo import MongoClient\n", " client = MongoClient('localhost:27017')\n", " db = client.db_name\n", " return db\n", "\n", "'''Insert a pin on the 'pins' collection from the db database\n", " Input: Database name, Pin dictionary'''\n", "def add_pin(db, pin):\n", " if not db.pins.find_one(pin):\n", " db.pins.insert(pin)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "'''Integer fields clean up (pins, likes and comments).\n", " Remove \\n characters and whitespaces. Transform str to int\n", " Input: Pin object, Name of the field to clean\n", " Output: Integer value'''\n", "def clean_int_field(pin, field):\n", " try:\n", " return int(re.sub('\\n','', pin[field]).strip())\n", " except:\n", " return 0\n", "\n", "'''Pin cleaning and create the desired structure to store on the collection\n", " Input: Pin dictionary\n", " Output: Pin cleaned dictionary'''\n", "def clean_pin(pin):\n", " pin['board'] = re.sub('\\n','', pin['board']).strip()\n", " pin['comments'] = clean_int_field(pin, 'comments')\n", " pin['likes'] = clean_int_field(pin, 'likes')\n", " pin['repins'] = clean_int_field(pin, 'repins')\n", " return pin\n", "\n", "not_valid = ['london', 'milan', 'paris', '2013', 'parisfashionweek', 'pfw', 'londonfashionweek', 'lfw', 'milanfashionweek', 'mfw']\n", "\n", "'''Verify that the pin doesn't belongs to another runway event\n", " Input: Pin object\n", " Output: boolean'''\n", "def valid_pin(pin):\n", " valid = True\n", " for word in not_valid:\n", " if word in pin['description'].lower():\n", " valid = False\n", " break\n", " return valid\n", "\n", "'''Verify if is a valid pin, clean it and add it to the database\n", " Input: Pin object'''\n", "def clean_and_add(db, pins):\n", " for pin in pins:\n", " if valid_pin(pin):\n", " pin = clean_pin(pin)\n", " add_pin(db,pin)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "file_boards = !ls \"boards/\"\n", "print \"Number of boards to analyze: \" + str(len(file_boards))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Number of boards to analyze: 321\n" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "db = get_db('pinterest')\n", "#db.pins.drop() #delete all pins from the collection and the metadata associated\n", "#db.create_collection('pins')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "#store in the database all the pins contained on each board json document\n", "for filename in file_boards:\n", " filename = 'boards/' + filename\n", " with open(filename, \"r\") as f:\n", " pins = json.loads(f.read())\n", " clean_and_add(db, pins)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "print \"Total number of pins in the Pinterest database: \" + str(db.pins.find().count())" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Total number of pins in the Pinterest database: 33525\n" ] } ], "prompt_number": 15 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4. Data analysis" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "4.0. Total number of unique pins" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print \"Total number of unique pins: \" + str(len(db.pins.distinct(\"pin_page\")))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Total number of unique pins: 24314\n" ] } ], "prompt_number": 16 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "4.1. Boards analysis" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.1.1. Boards containing more pins (Who are the content generators?)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Boards whose pins appeared more times or originally have uploaded more images the same pin can appear in different users \n", " boards but the \"pinned from\" board should be the same, in that case, the pin will be double count, but it's ok as \n", " we are trying to see which boards are the most influence'''\n", "pipeline = [\n", " { \"$group\": { \"_id\": \"$board\",\n", " \"count\": { \"$sum\": 1 } } },\n", " { \"$sort\": { \"count\" : -1 } }\n", " ]\n", "relevant_boards = db.pins.aggregate(pipeline)['result']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "first10_boards = relevant_boards[:10]\n", "sum_pins = 0\n", "for board in first10_boards:\n", " sum_pins += board['count']\n", "print \"Number of pins contained in the 10 boards with more pins: \" + str(sum_pins)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Number of pins contained in the 10 boards with more pins: 26588\n" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "26588/33525.0 #The 10 first boards contain the 79% of the total gathered pins" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "0.7930797912005966" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "\n", "'''Add text to each graph bars\n", " Input: bars, subplot object, boolean for correct displaying float values\n", " Output: subplot object\n", "'''\n", "def autolabel(rects, ax, round_height):\n", " # attach some text labels\n", " for rect in rects:\n", " height = rect.get_height()\n", " if round_height:\n", " height = round(height, 2)\n", " ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, height,\n", " ha='center', va='bottom')\n", " return ax\n", "\n", "'''Plot a bar chart\n", " Input: x data, y data, figure number, title, xlabel, ylabel, color, figure size, round value (true if data to display is float)\n", " Output: bar chart plot\n", "'''\n", "def plot_bar_chart(x_data, y_data, num_fig, title='', xlabel='', ylabel='', color='blue', figsize=(8,5), round_values=False):\n", " fig = plt.figure(num_fig, figsize=figsize)\n", " ax = plt.subplot(111)\n", " width = 0.8\n", " barlist = ax.bar(range(len(y_data)), y_data, color=color)\n", " ax = autolabel(barlist, ax, round_values)\n", " ax.set_xticks(np.arange(len(x_data)) + width/2)\n", " ax.set_xticklabels(x_data, rotation=90)\n", " ax.set_title(\" \" + title)\n", " plt.xlabel(xlabel)\n", " plt.ylabel(ylabel)\n", " return plt.show()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "board_names = [ board['_id'].encode('ascii', 'ignore') for board in first10_boards]\n", "pins_per_board = [ board['count'] for board in first10_boards]\n", "plot_bar_chart(board_names, pins_per_board, 1, title=\"#Pins per each board\", xlabel='', ylabel=\"#Pins\", color='orange')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAf0AAAGdCAYAAAAYOKrSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtcVXW+//HXRvCW4gUVlI3iCAYoIKKM2pgYg6IdzaTR\nwZKbTo2eX2PaqcyZJq0p7XaacqIzU6iEFZZOYo2RpGFaJyrNS2K5M1RAoswbCoLg+v3hcSUDqBXs\nzXa/n48Hjwf7u9fls5Zs32t911rfbTEMw0BERESuem6OLkBERETsQ6EvIiLiIhT6IiIiLkKhLyIi\n4iIU+iIiIi5CoS8iIuIiXCr0U1NT8fb2JjQ01GxbuHAhVquViIgIIiIiePvttwGorq4mJSWFsLAw\nBg0axObNm815tm3bRmhoKIGBgcyZM8dsf//99xk8eDAeHh6sWbPGfhsmIiJyBVwq9FNSUsjJyanT\nZrFYmDdvHp999hmfffYZ48aNA+CFF17Azc2NXbt2kZuby913323OM2vWLNLT07HZbNhsNnOZffr0\nISMjg2nTptlvo0RERK6QS4X+yJEj6dKlS732hsYn2rt3L6NHjwage/fudO7cmU8++YTS0lLKy8uJ\niooCIDExkbVr1wLnQz80NBQ3N5farSIi4iSUTsDSpUsJDw9nxowZHD9+HIDw8HDWrVtHbW0thYWF\nbNu2jeLiYkpKSrBarea8vr6+lJSUOKp0ERGRK+byoT9r1iwKCwvZsWMHPXv2NLvxU1NTsVqtDBky\nhLlz5zJixAhatWqFxWJxcMUiIiI/jbujC3C0Hj16mL/PnDmTCRMmANCqVSv++7//23zvuuuuo3//\n/nTq1Ini4mKzvbi4GF9f33rL1cGBiIi0NC5/pl9aWmr+/sYbb5h39ldWVnL69GkAcnNz8fDwICgo\niJ49e+Lp6Ul+fj6GYZCZmcmkSZPqLNMwjAbvExAREXEklwr9hIQERowYwZdffomfnx/Lli3jvvvu\nIywsjPDwcDZv3szTTz8NQFlZGZGRkYSEhPDEE0+QmZlpLictLY2ZM2cSGBhIQEAAcXFxAHzyySf4\n+fmxevVq7rjjjjqPBorY28CBA3n//fcdXYbDrVixgpEjR17x9P7+/mzcuLEZK2rcwoULmT59ukPW\nLa7Bpbr3X3311XptqampDU7r7+/PF1980eB7kZGR7N69u1770KFDKSoq+nlFivybKVOmcPvttzNy\n5Ej8/f3r9E5FR0eTn5+Pu7s7bdu25frrr+e5557Dx8eHzz//3IFVOy+LxeKwy3O6LCjNzaXO9EWc\n0fbt2xkyZAi7du2q13tksVh47rnnKC8vZ9++fRw/fpy5c+c6qNIf59y5c44uwaFqa2sdXYK4IIW+\nSAt27NgxDMOgc+fOfPrpp0RERDQ6bZcuXZg8ebJ5hu/v78+mTZuA893GU6ZMISkpCU9PTwYOHMi2\nbdvMeR977DGsViuenp4EBQWZ8/275ORkfv/73zNmzBg8PT2Jjo7m0KFD5vtffPEFsbGxeHl5ERQU\nxOuvv15n3lmzZjF+/Hg6dOhAXl5eveWfOHGCGTNm0KtXL6xWKw888IB5cLB//35uuOEGunXrRvfu\n3bnttts4ceKEOW9RURGTJ0+mR48edOvWjTvvvLPOsu+55x66du3KL37xi3qDdP27jz/+mAEDBtC1\na1dSU1Opqqoy33vhhRcIDAzEy8uLm266qU7Py5w5c+jduzedOnViyJAhbN261Xxv4cKF3HLLLUyf\nPp1OnTqRkZFBYWEho0aNwtPTkzFjxnDkyJFL1iXysxki0uJs3LjR6Ny5s9GhQwejTZs2RufOnY3W\nrVsb11xzjdGlSxfj/fffNwzDMKKjo40XX3zRMAzD+O6774zRo0cbiYmJhmEYhr+/v7Fx40bDMAzj\nwQcfNNq2bWu8/fbbxrlz54z777/fGDZsmGEYhvHFF18Yfn5+RmlpqWEYhnHw4EFj//79DdaVlJRk\ndOzY0diyZYtRVVVlzJkzx/jVr35lGIZhnDp1yrBarcaKFSuM2tpa47PPPjO6detmFBQUmPN26tTJ\n+PDDDw3DMIwzZ87UW/6kSZOM3//+90ZFRYXx7bffGlFRUcbf//53wzAM46uvvjLeffddo7q62vju\nu++M66+/3rjrrrsMwzCMmpoaIywszJg3b55RUVFhnDlzxvjggw8MwzCM5cuXGx4eHsaLL75onDt3\nznj++eeNXr16Nbrv+/TpY4SGhhrFxcXG0aNHjeuuu87405/+ZP67dOvWzfjss8+Mqqoq48477zSu\nv/56c96VK1caR48eNWpra42nnnrK8PHxMaqqqsx/Aw8PDyM7O9swDMOorKw0hg0bZtx9991GdXW1\n8f777xsdO3Y0pk+f3mhtIj+XQl+kBbvtttuM7Oxs49SpU0b//v2NysrKOu+PGjXKaN++vdG5c2fD\n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\nTiQjI4Nhw4axevVqYmJiGl33wvhm3zwRERGHiY6OJjo62ny9aNGiBqdrttBPSEhg8+bNfP/99/j5\n+fHQQw+RkpJivm+xWMzfQ0JCmDJlCiEhIbi7u5OWlma+n5aWRnJyMpWVlYwfP564uDgAZsyYwfTp\n0wkMDMTLy4usrKzm2hQREZGrgsW4yi+sWywWjJcdXcUPLLfqXgYREWleFoulwazRiHwiIiIuQqEv\nIiLiIhT6IiIiLkKhLyIi4iIU+iIiIi5CoS8iIuIiFPoiIiIuQqEvIiLiIhT6IiIiLkKhLyIi4iIU\n+iIiIi5CoS8iIuIiFPoiIiIuQqEvIiLiIhT6IiIiLkKhLyIi4iIU+iIiIi5CoS8iIuIiFPoiIiIu\nQqEvIiLiIhT6IiIiLkKhLyIi4iIU+iIiIi5CoS8iIuIiFPoiIiIuQqEvIiLiIpot9FNTU/H29iY0\nNNRsu+eeewgODiY8PJzJkydz4sQJ873FixcTGBhIUFAQGzZsMNu3bdtGaGgogYGBzJkzx2yvqqpi\n6tSpBAYGMmzYMA4ePNhcmyIiInJVaLbQT0lJIScnp07bmDFj2LNnDzt37qR///4sXrwYgIKCAlat\nWkVBQQE5OTnMnj0bwzAAmDVrFunp6dhsNmw2m7nM9PR0vLy8sNlszJ07l/vuu6+5NkVEROSq0Gyh\nP3LkSLp06VKnLTY2Fje386v85S9/SXFxMQDZ2dkkJCTg4eGBv78/AQEB5OfnU1paSnl5OVFRUQAk\nJiaydu1aANatW0dSUhIA8fHxbNy4sbk2RURE5KrgsGv6y5YtY/z48QAcPnwYq9Vqvme1WikpKanX\n7uvrS0lJCQAlJSX4+fkB4O7uTqdOnTh69Kgdt0BERMS5uDtipY888gitW7dm2rRpdlnfwjU//B4d\nDNEhdlmtiIiIXeTl5ZGXl3fZ6ewe+itWrGD9+vV1uuN9fX0pKioyXxcXF2O1WvH19TUvAVzcfmGe\nQ4cO0atXL2pqajhx4gRdu3ZtcJ0L45tpY0RERFqA6OhooqOjzdeLFi1qcDq7du/n5OTwxBNPkJ2d\nTdu2bc32iRMnkpWVRXV1NYWFhdhsNqKiovDx8cHT05P8/HwMwyAzM5ObbrrJnCcjIwOA1atXExMT\nY89NERERcTrNdqafkJDA5s2bOXLkCH5+fixatIjFixdTXV1NbGwsAMOHDyctLY2QkBCmTJlCSEgI\n7u7upKWlYbFYAEhLSyM5OZnKykrGjx9PXFwcADNmzGD69OkEBgbi5eVFVlZWc22KiIjIVcFiXHg2\n7iplsVgwXnZ0FT+w3ApX+S4XEREHs1gsDWaNRuQTERFxEQp9ERERF6HQFxERcREKfREREReh0BcR\nEXERCn0REREXodAXERFxEQp9ERERF6HQFxERcREKfREREReh0BcREXERCn0REREXodAXERFxEQp9\nERERF6HQFxERcREKfREREReh0BcREXERCn0REREXodAXERFxEQp9ERERF6HQFxERcREKfREREReh\n0BcREXERCn0REREXodAXERFxEQp9ERERF9FsoZ+amoq3tzehoaFm29GjR4mNjaV///6MGTOG48eP\nm+8tXryYwMBAgoKC2LBhg9m+bds2QkNDCQwMZM6cOWZ7VVUVU6dOJTAwkGHDhnHw4MHm2hQREZGr\nQrOFfkpKCjk5OXXalixZQmxsLPv27SMmJoYlS5YAUFBQwKpVqygoKCAnJ4fZs2djGAYAs2bNIj09\nHZvNhs1mM5eZnp6Ol5cXNpuNuXPnct999zXXpoiIiFwVmi30R44cSZcuXeq0rVu3jqSkJACSkpJY\nu3YtANnZ2SQkJODh4YG/vz8BAQHk5+dTWlpKeXk5UVFRACQmJprzXLys+Ph4Nm7c2FybIiIiclWw\n6zX9srIyvL29AfD29qasrAyAw4cPY7VazemsVislJSX12n19fSkpKQGgpKQEPz8/ANzd3enUqRNH\njx6116aIiIg4HXdHrdhisWCxWOyyroVrfvg9OhiiQ+yyWhEREbvIy8sjLy/vstPZNfS9vb355ptv\n8PHxobS0lB49egDnz+CLiorM6YqLi7Farfj6+lJcXFyv/cI8hw4dolevXtTU1HDixAm6du3a4HoX\nxjfjRomIiDhYdHQ00dHR5utFixY1OJ1du/cnTpxIRkYGABkZGUyaNMlsz8rKorq6msLCQmw2G1FR\nUfj4+ODp6Ul+fj6GYZCZmclNN91Ub1mrV68mJibGnpsiIiLidJrtTD8hIYHNmzdz5MgR/Pz8eOih\nh5g/fz5TpkwhPT0df39/XnvtNQBCQkKYMmUKISEhuLu7k5aWZnb9p6WlkZycTGVlJePHjycuLg6A\nGTNmMH36dAIDA/Hy8iIrK6u5NkVEROSqYDEuPBt3lbJYLBgvO7qKH1huhat8l4uIiINZLJYGs0Yj\n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\n+Pv7ExAQQH5+PqWlpZSXlxMVFQVAYmKiOY+IiIjUZ/fQLywspHv37qSkpDB48GB+97vfcfr0acrK\nyvD29gYW4hSLAAAgAElEQVTA29ubsrIyAA4fPozVajXnt1qtlJSU1Gv39fWlpKTEvhsjIiLiRNzt\nvcKamhq2b9/O3/72N4YOHcpdd91lduVfYLFYsFgsTbbOhWt++D06GKJDmmzRIiIiDpeXl0deXt5l\np7N76FutVqxWK0OHDgXglltuYfHixfj4+PDNN9/g4+NDaWkpPXr0AM6fwRcVFZnzFxcXY7Va8fX1\npbi4uE67r69vg+tcGN+MGyQiIuJg0dHRREdHm68XLVrU4HR279738fHBz8+Pffv2AfDuu+8yYMAA\nJkyYQEZGBgAZGRlMmjQJgIkTJ5KVlUV1dTWFhYXYbDaioqLw8fHB09OT/Px8DMMgMzPTnEdERETq\ns/uZPsDSpUu59dZbqa6upl+/fixfvpza2lqmTJlCeno6/v7+vPbaawCEhIQwZcoUQkJCcHd3Jy0t\nzez6T0tLIzk5mcrKSsaPH09cXJwjNkdERMQpWIwLz79dpSwWC8bLjq7iB5Zb4Srf5SIi4mAWi6XB\nrNGIfCIiIi5CoS8iIuIiFPoiIiIuQqEvIiLiIhT6IiIiLkKhLyIi4iIU+iIiIi5CoS8iIuIiFPoi\nIiIuQqEvIiLiIhT6IiIiLkKhLyIi4iIU+iIiIi5CoS8iIuIiFPoiIiIuQqEvIiLiIhT6IiIiLkKh\nLyIi4iIU+iIiIi5CoS8iIuIiFPoiIiIuQqEvIiLiIhT6IiIiLkKhLyIi4iIU+iIiIi5CoS8iIuIi\nHBb6tbW1REREMGHCBACOHj1KbGws/fv3Z8yYMRw/ftycdvHixQQGBhIUFMSGDRvM9m3bthEaGkpg\nYCBz5syx+zaIiIg4E4eF/jPPPENISAgWiwWAJUuWEBsby759+4iJiWHJkiUAFBQUsGrVKgoKCsjJ\nyWH27NkYhgHArFmzSE9Px2azYbPZyMnJcdTmiIiItHgOCf3i4mLWr1/PzJkzzQBft24dSUlJACQl\nJbF27VoAsrOzSUhIwMPDA39/fwICAsjPz6e0tJTy8nKioqIASExMNOcRERGR+hwS+nPnzuWJJ57A\nze2H1ZeVleHt7Q2At7c3ZWVlABw+fBir1WpOZ7VaKSkpqdfu6+tLSUmJnbbAMc6cOcMvf/lLBg0a\n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\nPoZhkJmZac7z7xbG//CjwLevkSNH0qVLl3rt8+bN4/HHH6/TtmHDBsLCwsyz7C5duuDm5ka7du0Y\nNWoUcP5G0MGDBzfbpZwfU++gQYPw8fEBICQkhMrKSvOM/kLgnz17lurqarp169Ys9ULDvRMPPPAA\n4eHhDBo0iJiYmDoHzgCHDh2iQ4cOPPXUU2abeidEnFd0dDQLFy40fxpj99D/4IMPWLlyJe+99x4R\nERFERESQk5PD/Pnzyc3NpX///mzatIn58+cD5/8znTJlCiEhIYwbN460tDSz6z8tLY2ZM2cSGBhI\nQEBAs5z5SdPLzs7GarUSFhZWp91ms2GxWIiLiyMyMpInnnii3rzHjx/nzTffJCYmxl7lNlrvxdas\nWUNkZCQeHh5m29ixY/H29qZdu3bN+reZkpJS78mVe++9l507d7Jjxw4mTZrEokWL6rw/b948brzx\nxjptq1evZseOHezZs4cTJ06watWqZqtZRBzD7t37v/rVrzh37lyD77377rsNti9YsIAFCxbUa4+M\njGT37t1NWp80r4qKCh599FFyc3PNtguPYJ49e5atW7fy6aef0q5dO2JiYoiMjOSGG24Aznf/JyQk\nMGfOHPz9/R1e7wV79uwxD1ov9s4771BVVcXUqVPJyMgwn05paiNHjuTAgQN12i6+T+bUqVN1ehrW\nrl3LL37xC6655po689izd0JEHEMj8old7d+/nwMHDhAeHk7fvn0pLi4mMjKSsrIy/Pz8uP766+na\ntSvt2rVj/PjxbN++3Zz39ttv59prr+UPf/iDw+v99ttvgfP3kkyePJnMzEz69u1bb/42bdoQHx/P\nJ598YreaL/jjH/9I7969ycjIMHvOTp06xeOPP95o95+9eidExDEU+mJXoaGhlJWVUVhYSGFhIVar\nle3bt+Pt7c3YsWPZvXs3lZWV1NTUsHnzZgYMGADAn/70J06ePMnTTz/dIurt0aMHx48f58Ybb+Sx\nxx5j+PDh5jynT5+mtLQUON878dZbbxEREWHXugEeeeQRDh06RHJyMnPnzgVg4cKFzJ07l/bt29fr\nsYDzvROlpaVUVVWZ99iIyNVDoS/NKiEhgREjRrBv3z78/PxYvnx5nfcvfjSzc+fOzJs3j6FDhxIR\nEUFkZCTjxo2juLiYRx99lL179zJ48GAiIiJYtmyZQ+q92N/+9jf279/PokWLzPtTjhw5wqlTp7jp\n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\n", "text": [ "" ] } ], "prompt_number": 22 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.1.2. Most liked boards in absolute values (boards containing the major number of likes)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pipeline = [\n", " { \"$group\": { \"_id\": \"$board\",\n", " \"count\": { \"$sum\": \"$likes\" } } },\n", " { \"$sort\": { \"count\" : -1 } }\n", " ]\n", "liked_boards = db.pins.aggregate(pipeline)['result'][:10]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "board_names = [ board['_id'].encode('ascii', 'ignore') for board in liked_boards]\n", "likes_per_board = [ board['count'] for board in liked_boards]\n", "plot_bar_chart(board_names, likes_per_board, 1, title=\"#Likes per each board\", xlabel='', ylabel=\"#Likes\", color='orange')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAGZCAYAAABlgCOAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X98zoXi///Haz+QX9vIZl0XbTHNZmzRRMkchkiHN9Em\n5ld1OO+j4h2pd8fUu+xUclA7R31ERyq8lUm1JjUVJ2NZ3kyMiM0sYpn9wLbX9w9fVy3bUK5dP/a8\n325ut12v63Vd1/N69er1vF6/DdM0TURERMSteDg6gIiIiFx7KngRERE3pIIXERFxQyp4ERERN6SC\nFxERcUMqeBERETekghdxMYcPH6ZZs2ZcPMM1JiaGJUuWODiVc0lPT6dNmzZXPL4jp+GyZcvo1auX\nQz5b3JsKXsSBRo4cySeffMLZs2cJDAys8lxNpdO2bVuKioowDAMAwzBsf8tvo2ko7kgFL+JAX3/9\nNd26dWPnzp1ERERUec4dS6eiosLRERyqvn9/qVsqeBEHOXXqFKZp4uvry/bt24mKirqi1x06dAgP\nDw8qKysveS4/P5/OnTszb948AL766it69uyJn58fkZGRbNq0yTbusmXLaNeuHc2bN+emm27irbfe\nqvbzEhMTGTFiBPfddx/Nmzena9eu7Ny50/b80aNHGT58OP7+/tx0000sWrTokteOGTMGHx8f3njj\njUve/+zZs/zXf/0XN954I61bt2by5MmUlZUBUFhYyN13342/vz8tWrRgyJAh5OXl2V578uRJxo8f\nj8VioUWLFgwbNqzKe7/00ksEBARwww03sGzZslqn6/79++nevTs+Pj4MHTqUU6dO2Z5bt24d4eHh\n+Pn50adPH7799lvbc0lJSbRv357mzZsTHh7O2rVrq0zj22+/nWnTpnH99dczZ84cTp48yT333IOP\njw/du3fnwIEDteYS+c1MEalTGzduNH19fc2mTZuaDRs2NH19fc0GDRqYTZo0Mf38/MzPP//cNE3T\njImJMZcsWXLJ6w8ePGgahmFWVFRUGe+7774zO3ToYL722mumaZpmbm6u2bJlS/Ojjz4yTdM0N2zY\nYLZs2dI8ceKEeebMGbN58+bmvn37TNM0zWPHjpm7d++uNu/s2bNNb29vc82aNWZ5ebn54osvmsHB\nwWZ5eblZUVFh3nLLLeYzzzxjnj9/3vzuu+/Mm266yfz444+rvDYlJcU0TdMsLS295P0feeQR849/\n/KN56tQps6ioyBwyZIg5a9Ys0zRN88cffzTfffdds7S01CwqKjLvvfdec+jQobbXDho0yLzvvvvM\nwsJC8/z587Zp99lnn5leXl7m7NmzzfLycvPDDz80GzdubBYWFlb7HXv37m1aLBZz9+7dZnFxsTl8\n+HDz/vvvN03TNPfu3Ws2adLE/OSTT8zy8nLz+eefN9u3b2+eP3/eNE3TXL16tZmfn2+apmmuXLnS\nbNKkiXns2DHTNE1z6dKlppeXl/nyyy+bFRUVZmlpqTlq1Chz1KhRZklJiblr1y7TYrGYvXr1qjaX\nyO+hghdxkPvvv99MSUkxz5w5Y3bo0OGS8ruagp82bZoZFBRkvvPOO7bxkpKSzDFjxlR57YABA8w3\n3njDLC4uNn19fc01a9aYJSUlteacPXu22aNHD9vjyspKMzAw0Pziiy/Mr776ymzbtm2V8Z977jlz\n/Pjxttf27t27xveurKw0mzRpYh44cMA2bMuWLWZwcHC14+/YscP08/MzTdM0jx49anp4eFRb2p99\n9pl53XXX2aaRaZqmv7+/uXXr1mrfNyYmxvajwjRNMzs722zQoIFZUVFhPv300+aoUaOqZLZYLGZ6\nenq17xUZGWn7QbN06dIq06e8vNz09vY29+7daxv2xBNPmHfccUe17yXye3g5eguCSH1jtVopLi6m\nqKiI9evXc/78ecrLywkMDGTChAm2zetXyjRNVqxYQUhICMOHD7cN//7771m9ejXvv/++bVh5eTl/\n+MMfaNy4MStXruTFF19k4sSJ3H777cybN4+bb765xswXGYaB1Wrl6NGjGIbB0aNH8fPzsz1fUVHB\nnXfeWe1rf+348eOUlJTQtWvXKt/n4u6HkpISHn30UT7++GPbJvMzZ85gmiZHjhyhRYsW+Pj4VPve\nLVu2xMPj572QjRs35syZMzVm+eVR923btuX8+fOcOHGC/Px82rZtW+X7t2nThqNHjwLwr3/9i/nz\n53Po0CFbvh9//LHa9z1+/Djl5eWXfJaIPWgfvEgdy83NJTU1ldjYWE6dOsWDDz5IcnIyp06duupy\nhwuFM2fOHFq2bEl8fLytHNu2bcuYMWM4deqU7V9RUREzZswAoH///qSlpXHs2DFCQ0N54IEHavyM\nI0eO2P6urKwkNzcXi8VCmzZtCA4OrvIZp0+fZv369bZstR0oeP3113PdddeRnZ1te31hYSGnT58G\n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\nEhERQUhICA8//LA9I4uIiLgFuxZ8dVdkMwyDadOmsWPHDnbs2MFdd90FQHZ2NitXriQ7O5vU1FSm\nTJli2+zsNbLFAAAgAElEQVQwefJklixZQk5ODjk5OdVe5U1ERER+ZteCr+mKbNXtL0hJSSEuLg5v\nb2+CgoJo3749W7duJT8/n6KiIqKjowEYO3Ysa9eutWdsERERl+eQffCLFi2iS5cuTJw4kcLCQgCO\nHj2K1Wq1jWO1WsnLy7tkuMViIS8vr84zi4iIuJI6L/jJkydz8OBBsrKyCAwMrHJzFBEREbk26vxC\nN/7+/ra/J02axJAhQ4ALa+ZHjhyxPZebm4vVasVisVS5tnpubi4Wi6XG909c8/PfMR0hJuwahr/G\nWvg151RhkaNj2Pj5NuPkqdOOjiEiIjVIT08nPT39isat84LPz88nMDAQgPfee892hP0999xDfHw8\n06ZNIy8vj5ycHKKjozEMg+bNm7N161aio6NZvnw5U6dOrfH9E4fXyde4Jk4VFjnNefsAxmjn+bEh\nIiKXiomJISYmxvZ4zpw5NY5r14KPi4tj06ZNnDhxgjZt2jBnzhzS09PJysrCMAyCg4NZvHgxAGFh\nYYwcOZKwsDC8vLxITk62XbEtOTmZcePGUVpayqBBgxg4cKA9Y4uIiLg8XcnOTq7kSnbOlBd09T0R\nEVejK9mJiIjUMyp4ERERN6SCFxERcUMqeBERETekghcREXFDKngRERE3pIIXERFxQyp4ERERN6SC\nFxERcUMqeBERETekghcREXFDKngRERE3pIIXERFxQyp4ERERN6SCFxERcUMqeBERETekghcREXFD\nKngRERE3pIIXERFxQyp4ERERN6SCFxERcUMqeBERETekghcREXFDKngRERE3pIIXERFxQ3Yt+AkT\nJhAQEEBERIRt2MmTJ4mNjaVDhw7079+fwsJC23Nz584lJCSE0NBQ0tLSbMMzMzOJiIggJCSEhx9+\n2J6RRURE3IJdC378+PGkpqZWGZaUlERsbCz79u2jb9++JCUlAZCdnc3KlSvJzs4mNTWVKVOmYJom\nAJMnT2bJkiXk5OSQk5NzyXuKiIhIVXYt+F69euHn51dl2Lp160hISAAgISGBtWvXApCSkkJcXBze\n3t4EBQXRvn17tm7dSn5+PkVFRURHRwMwduxY22tERESkenW+D76goICAgAAAAgICKCgoAODo0aNY\n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\niV27djk6xlVxtfnCFZcX3bp148477yQiIqLKPu2EhARHR6uWq80T4LzLi3q/Bh8REcGpU6cICAhw\ndJQr1rRpU6ZOneroGFclJCTEqTex/ZorTuNBgwbx8ccfM2DAAEdHuWKuNl+44vKioqKCl156ydEx\nrpirzRPgvMuLer8G37t3b3bu3Mmtt97qVJtWajNt2jQaNmzIPffcY8sMjj8lozZDhw5l9+7d9OnT\np8p0dtbNhK44jZs2bUpJSQkNGjTA29sbcP7T5FxtvnDF5cUTTzzBjTfeeMm87KynybnaPAHOu7yo\n9wWfnp4O/Hyqy8XNV47etFKbmJiYak8bceb9gMuWLQMunc7OupnQFaexK3K1+cIVlxdBQUGXzMvO\nvE/b1eYJcN7lRb0veIBjx46xbds2DMMgOjoaf39/R0dyS2fPnmXfvn0AhIaG2tYy5dpJSUnh888/\nt5XOkCFDHB3pslxtvtDywv5cbZ5wVq5xNQw7WrVqFd27d2f16tWsWrWK6OhoVq9e7ehYtSosLOTR\nRx+la9eudO3alenTp/PTTz85Olat0tPT6dChA3/+85/585//TEhICJs2bXJ0rBq54jR+/PHHWbhw\nIeHh4XTs2JGFCxcya9YsR8eqlavNF664vDh37hwLFixg+PDhjBgxgkWLFnH+/HlHx6qRq80T4MTL\ni99/p3bXFhERYRYUFNge//DDD2ZERIQDE13esGHDzL/+9a/mgQMHzP3795uzZ882hw0b5uhYtYqK\nijK//fZb2+O9e/eaUVFRDkxUO1ecxp06dTLLy8ttj8vLy81OnTo5MNHludp84YrLiwkTJphjx441\nN27caH7yySdmQkKCOXHiREfHqpGrzROm6bzLi3p/FL1pmrRq1cr2uGXLlphOvtfiwIEDvPvuu7bH\niYmJdOnSxYGJLq+8vJybb77Z9rhDhw5VrovtbFxxGhuGQWFhIS1btgQurFU4+yU+XW2+cMXlxbZt\n29i5c6ftcd++fencubMDE9XO1eYJcN7lRb0v+IEDBzJgwADi4+MxTZOVK1dy1113OTpWra677jq+\n+OILevXqBcCXX35J48aNHZyqdl27dmXSpEncf//9mKbJihUr6Natm6Nj1cgVp/GsWbO45ZZb6NOn\nD6ZpsmnTJpKSkhwdq1auNl+44vLCy8uL/fv30759e+BCGXl5Oe+i39XmCXDe5YUOsgPWrFnD5s2b\n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\n84J89QAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 24 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.1.3. Most liked boards based on relative value (depending the number of pins they contain)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pipeline = [\n", " { \"$group\": { \"_id\": \"$board\",\n", " \"avg_likes\": { \"$avg\": \"$likes\" } } },\n", " { \"$sort\": { \"avg_likes\" : -1 } }\n", " ]\n", "liked_avg_boards = db.pins.aggregate(pipeline)['result'][:10]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "board_names = [ board['_id'].encode('ascii', 'ignore') for board in liked_avg_boards]\n", "avg_likes_per_board = [ board['avg_likes'] for board in liked_avg_boards]\n", "plot_bar_chart(board_names, avg_likes_per_board, 1, title=\"Avarage of likes per each board\", xlabel='', ylabel=\"Avarage of likes\", \n", " color='orange', round_values=True)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n2zbpwr0uzkOta5l1LS/AzC9L1/IC+ptZnx09ehQdO3aEs7Oz1DT8fOc9AHjvvfcQFhaGGjVqICQk\nBK1bt67wmRU113dZetgREZHuKUvnPQBYsmSJFtKUjdIzy36NuixT+hEREVVUshbqskzpR0REVJHJ\nNo66tB52s7f897ufPeDnoMVwREQapKSJZcoyqYyS8gL6kzk8PBzh4eGlvlaWQl2WHnaz+2s5FBGR\nlihpYpmyTCqjpLyA/mT28/ODn5+f9PiLL74o8rWyNH0XNfwgLCxMjihERESKJssZdVl72BEREVV0\nsvf6JiIiouKxUBMRESkYCzUREZGCsVATEREpGAs1ERGRgrFQExERKRgLNRERkYKxUBMRESkYCzUR\nEZGCsVATEREpGAs1ERGRgrFQExERKRgLNRERkYKxUBMRESkYCzUREZGCsVATEREpGAs1ERGRgrFQ\nExERKRgLNRERkYKxUBMRESkYCzUREZGCsVATEREpGAs1ERGRgrFQExERKRgLNRERkYKxUBMRESmY\nLIU6LCwMdnZ2aN68Ob755hs5IhAREekErRfqnJwcvPfeewgLC8PFixexfv16XLp0SSPbCr+okbfV\nKF3LrGt5AWbWBl3LCzCzNuhaXkAZmbVeqCMjI9GsWTPY2NjAyMgIQ4YMwfbt2zWyrXDN1H+N0rXM\nupYXYGZt0LW8ADNrg67lBZSRWeuF+ubNm7C2tpYeN2zYEDdv3tR2DCIiIp2g9UKtUqm0vUkiIiLd\nJbTsxIkTomvXrtLjuXPninnz5qmt4+LiIgDwhz/84Q9/+FNhflxcXIqsmyohhIAWZWdno2XLljhw\n4AAaNGiAtm3bYv369bC3t9dmDCIiIp1gqPUNGhpiyZIl6Nq1K3JycjB69GgWaSIiomJo/YyaiIiI\nyo4zkxERESmY1pu+NS0lJQU3btxATk6OtKx169YyJipZVFQU5s6di/j4eGRnZwPI6xl//vx5mZMV\n7erVq1i8eHGhvKGhoTInK93Dhw+lzABgbm4uY5qS6cp+njFjBubOnQsA2LdvH/z9/WVOVDY5OTmY\nOnUqFixYIHeUF5KSkoLVq1cX+lwsWrRI5mTq0tPTUbNmzSKfi4uLQ9OmTbWcqOyUeEzWq6bvzz77\nDKtWrUKTJk1gYPBfY8HBgwdlTFWyFi1aYMGCBXB0dFTLbGNjI1+oEjg7O2PMmDFqeVUqFXx9fWVO\nVrxly5Zh1qxZqFKlilrmq1evypyseLqyn93c3HDmzJlCv+uCdu3a4cSJEzo1ZNTLywteXl5wcnKC\ngYEBhBBQqVQYMWKE3NHUNG3aFHPnzsXgwYOlZZmZmfj666+xfv16xMXFyZiuZEo8JuvVGfXGjRsR\nFxeHypUryx2lzOrWrYtevXrJHaPMqlativfff1/uGC/k22+/xT///IM6derIHaXMdHE/6xpXV1f0\n7t0bAwcORPXq1QHkfRnq16+fzMmK9/TpU/zf//2f3DFKtXfvXkyYMAErVqzA0qVLER0djU8++QS9\ne/fGuXPn5I5XIiUek/XqjLpv37746aefYGlpKXeUMtu7dy82btyI119/XfqCoeSDxZo1axAXF4eu\nXbuiSpUq0nIlX17o0qUL/vjjD9SoUUPuKGWmK/u5YcOGmDx5MoQQ+O6776TfgbzP8eTJk2VOWLyR\nI0cCKDwJU0hIiAxpymbBggWoVasWevbsqfa5UOplnPnz52PGjBmoV68ewsLC4OjoKHekUinxmKxX\nhToqKgq9e/eGo6Oj9CFW4nW9goYOHYqYmBi0atVKrZlFqQeLadOmYc2aNWjWrJnOXF44ffo0Ro4c\nCS8vL7X/eEq7rleQruzn2bNnS4Uuvxm2oFmzZskRS28tWbIEn376KUxNTRV9GefZs2dYsGABli9f\njqlTp2LPnj149OgRli5dCjs7O7njlUiJx2S9KtT29vZ45513FH9dr6CWLVvi8uXLOnOdrGnTprh0\n6ZJOXV7w8PBAx44dFX9dryBd2c+RkZFo27at3DHKJSYmBu+++y6SkpIQHR2N8+fPIzQ0FDNnzpQ7\nWrFsbW0RFRWl+Ms4jo6O8PX1xdy5c2FiYgIA2LlzJz766CP069cP//vf/2ROWDxFHpNf5fSgcvPw\n8JA7wgsbOXKk+Oeff+SOUWa9e/cWSUlJcsd4Ia6urnJHeGG6sp9dXFxE06ZNxcyZM0V0dLTccV6I\nj4+PiIiIkD4fubm5wsHBQeZUJfP39xfp6elyxyhVVFRUkcszMjLEjBkztJzmxSjxmKxXncl8fHww\nffp09OrVS9HX9Qo6ceIEXF1dYWtrq9Zcr9ThWSkpKbCzs0ObNm105vJC9+7dsWzZskKfC6Ve1wN0\nZz+fPXsWly9fxoYNGzBgwAAYGhoiMDAQQ4YMUezIhXwZGRnw9PSUHqtUKhgZGcmYqHTVq1eHq6sr\nOnXqpPa5UNplHA8PD+zevRvz5s1DdHQ0gLyz7ClTpuDrr7+WOV3JlHhM1qumbz8/vyKbK5R2Xa+g\n+Ph4AFC7zgcod3hWeHg4ABS6Lqnkyws2NjaFPhdKvK5XkC7uZyCvcG/cuBEbN25EvXr1cPz4cbkj\nFat79+5YvHgxBg4ciDNnzuD333/HihUrsGfPHrmjFWvVqlUACn8ulHYZZ/ny5Vi2bBnmz58Pd3d3\nAMCpU6cwbdo0jB49Gm+//bbMCYunxGOyXhVqXXX27FkcOXIEKpUKPj4+cHFxkTtSiZKSkhAVFQWV\nSoW2bdvCwsJC7kh6Sdf2c25uLvbv348NGzZg165d8Pb2xh9//CF3rGLFxcVh3LhxOH78OMzMzGBr\na4u1a9cq9ktyvqdPnyI2NhYAYGdnp8hWAHt7exw9ehS1a9dWW37//n20b98ely9flilZ2SjtmKxX\nU4impqbiww8/hLu7O9zd3fHRRx8hLS1N7lglCg4OxrBhw5CcnIw7d+5g2LBhimvGKmjTpk3w9PTE\n5s2bsWnTJrRt2xabN2+WO1aJsrKyEBwcjP79+2PAgAFYvHgxnj17JnesEunSfj58+DDeffddNGzY\nEAsWLICPjw9iY2MVXaSBvA57Bw4cwL179xATE4Njx44pvkiHh4ejRYsWmDBhAiZMmIDmzZvj0KFD\ncscq0vNFOn+ZojppFUGJx2S9OqPu168fnJycMGLECAghsGbNGpw/fx5bt26VO1qxnJycEBERIY3x\nffz4Mdq1a4cLFy7InKxozs7O2L9/v3R2l5ycjM6dOyv2mjoAjB49GtnZ2WqfC0NDQ/zyyy9yRyuW\nruxna2trNGrUCAEBARg4cKBOzGGwcOFC6feiioaSx363bt0a69evR8uWLQEAsbGxGDJkCE6fPi1z\nMnWenp5YtmwZXF1d1ZafO3cOY8eORWRkpEzJSqfEY7JedSaLi4tTK8qzZ8+WvcmiLAqO1Sv4uxIJ\nIVC3bl3pce3ataH073pRUVFqBa5z585wdnaWMVHpdGU/HzlyRDoLTU5ORnJyslpuJXr06BFUKhVi\nYmIQFRWFXr16QQiBnTt3Kn6oWXZ2tlSkgbzpLgvOX68UCxcuRO/evTFq1Ci4u7tDCIFTp05h1apV\n+O233+SOVyqlHZP1qlBXq1YNR44cgY+PDwDg6NGj0tSASjVq1Ch4enqiX79+EEJg27ZtCAoKkjtW\nsbp164auXbsiMDAQQghs3LgR3bt3lztWiQwNDXHlyhU0a9YMQN4XOkNDZX/0dWU/N27cGLNnz8aS\nJUukG+FUqlQJEydOxOeff67IZs7Zs2cDyBslcvr0aRgbGwMAvvjiC/To0UPGZKVzd3fHmDFjMGzY\nMAghsHbtWnh4eMgdq5AOHTrg5MmTWLp0qdQBzsHBASdPnkS9evXkDVcKJR6T9arp++zZsxg+fLh0\nXdrMzAy//vqr4s+qT506haNHj0odF9zc3OSOVKItW7bg2LFjAPIOdn379pU5UckOHDiAUaNGwdbW\nFkBer86QkBC89tprMicrmS7s5//7v//Dnj178PPPP0v79+rVqxg/fjy6deum6Gbkli1b4ty5c6ha\ntSoA4MmTJ3BxcUFMTIzMyYr35MkTLF26VO1z8e6776oNO1SCGzduoFGjRnLHKDelHZP1qlDnyy/U\n+TPiKFlERAQcHBxQq1YtAHm3Yrx06ZLa+E4luXbtGurVq4dq1aoByLsjzp07dxTfCefJkyeIiYmB\nSqVCixYtpIOzUunKfnZ1dcW+ffsKNXcnJyfD398fZ8+elSlZ6b7++mts3LhR7cxp8ODBmDFjhtzR\nivX48WNUrVoVlSpVApB3u86nT58qruWw4J3U+vfvjy1btsicqOyUeEyWv/H9FZo+fTpSU1NhYmIC\nExMTpKSkKHo6QAAYP3681PQGADVq1MD48eNlTFSyAQMGSAcJIO/6zYABA2RMVLolS5YgMzMTLi4u\ncHZ2RmZmJn744Qe5Y5VIV/ZzdnZ2kdek69atq8hrpwV9+umnCAkJgampKczNzbFq1SpFF2kAeO21\n15CZmSk9zsjIwOuvvy5jotIpeb6CoijxmKxXhXrPnj0wNTWVHpuZmWHXrl0yJiqbgtfxKlWqJF3r\nU6KcnBy1+aerVKmi+KFOy5cvh5mZmfTYzMwMP//8s4yJSqcr+7mkMbxKHN8L5J0hAcCDBw9ga2uL\nt956C8OGDUPjxo3x4MEDmdOV7OnTp6hZs6b02NjYGBkZGTIm0k9KOybrVaHOzc3FkydPpMeZmZnI\nysqSMVHpbG1tsWjRIjx79kwa79ukSRO5YxWrTp062L59u/R4+/btir9BQG5uLnJzc6XHOTk5iix6\nBenKfj5//jyMjY2L/FHqEMOAgAAAeUOd3N3d4eHhAQ8PD2n+BSWrUaMGTp06JT3++++/pcsjSlLw\nc/H8ZyS/SVmplHhM1qtr1N988w1CQ0MRFBQEIQRCQkLQq1cvTJ06Ve5oxbpz5w7ef/99aZrTzp07\nIzg4WLGzUF25cgVDhw7FrVu3AOTdjzj/doxK9fHHH+PGjRt4++23IYTAsmXL0KhRI7XxtEqji/uZ\nNC8qKgpDhgxB/fr1AQC3b9/Gxo0bFdnzW1cp8ZisV4UayGv+PnDgAADA398fXbt2lTmRfnr06BEA\nqF3LUaqcnBz8/PPPap+LMWPGqF0DVipd2s+65tixY3BxcUHNmjWxZs0anDlzBpMmTULjxo3ljlai\nrKwsqWd6y5YtFX0r1AsXLkjThdrb28PR0VHmRLpJ7wq1PtixYwd69uwpd4wyO3XqlOKbDPUB9/Or\n5eTkhHPnzuHChQsYOXIkRo8ejc2bNyt2Ss7iJCUlKW5sclpaGnr37o0bN27AxcUFQghcuHABjRo1\nwvbt2xXf/P08uY/JenWNuihjx46VO0KxhBBISEgotPzvv/+WIU3JCl77f95PP/2kxSSvxqxZs+SO\n8MJ0cT8rmaGhIQwMDLBt2zZMmDAB7733ntSCoVRFdWoaPXq0DElKNnPmTHh4eODKlSv4448/sG3b\nNsTGxqJNmzb49NNP5Y5XLMUekzV3q2vty8zMLLSsuBuYK0Fubq5o1aqV3DHKxM3NTQghxNChQ2VO\n8mqEhobKHaFYz549Ey1atJA7ht7z8fERX3/9tWjWrJm4ffu2yM7OFo6OjnLHKpGtra34+OOPRXR0\ntNxRSmRnZyeysrIKLc/KyhItW7aUIVHZKPWYrFdn1K1atYK3tzemTp2KXbt2IS0tTdGdLFQqFdzd\n3RU9QX2+p0+fYu3atTh+/Di2bt2KLVu2SD9KvulJcZR8acHQ0BB2dna4fv263FH02saNG1GlShWs\nXLkS9erVw82bN/Hxxx/LHatEZ8+eRfPmzTFmzBjpxhf5w82UpHLlykUOzzMyMlLcLGoFKfWYrHfX\nqK9fv46jR4/i6NGj2L17N8zMzBQ9O1LLli1x5coVNG7cWLpbi0qlUtxdko4cOYK1a9di8+bN6NWr\nV6HnQ0JCZEhVNjExMXj33XeRlJSE6OhonD9/HqGhoYqeDMfHxwdnzpxB27Zt1T4XoaGhMicjpQgP\nD8fQoUORkpKCgQMH4rPPPlPMqAA7OzusW7cOQgi1MclCCAwdOlTR96NW4jFZrwp1YmIiDh8+jMOH\nD+Ps2bMwNzeHj48Ppk+fLne0YsXHxxe5XGlTReZbsWKFIq+JlaRjx4749ttvMX78eJw5cwZCCDg6\nOiI6OlruaMUKDw8vtEylUsHX11f7YfTUli1bMG3aNNy5c0e6M5lKpVLkGWq+7Oxs7Nq1CyEhIYiP\nj8fw4cMRGBiIo0ePYsaMGYiNjZU7IgDAz8+vxBuy5A99UiIlHpOVfQuhF9SoUSO0adMG06dPx48/\n/qjIO/fky58BSdd6PwYHB+POnTsYPHgwmjZtKnecMsnIyFCbp1elUil21qx8fn5+iI+Px5UrV/D6\n668jIyND8VNy6popU6Zg586dsLe3lztKmbVo0QJ+fn6YMmUKvL29peUDBgxQVG/1or5o5ouIiNBe\nkBeg5GOyXhXqM2fO4MiRI1i/fj2++eYbNG/eHB07dsSYMWPkjlZI69ati/0ioVKpFDs/bmhoKDZu\n3IhBgwZBpVJhyJAhGDRokKLvlFO3bl1cuXJFevz7779LE0Yo1c8//4zly5fjwYMHiIuLQ2JiIt55\n5x1pLDi9vHr16ulUkQbyZvwqOIVoQYsXL9ZymvIZNGgQbty4IXeMQpR8TNarpm8gb4KIY8eO4fDh\nw9INypX4odAH//77L7788kusXbtW9rlwSxIXF4dx48bhxIkTMDU1ha2tLdauXavYywsA4OLigsjI\nSLRr1066C5GTk5Nip+XURZMmTUJSUhL69OkjTRqiUqnQr18/mZMVNnHiROl3lUqFgodtlUqFRYsW\nyRGrXKytrYscAkXF06szag8PDzx58gTe3t7o2LEjjhw5ovhZhoQQ2Lp1K44ePQoDAwN06NBBkfcd\nLig+Ph4bN27Epk2bUKlSJcyfP1/uSMXKycnBjz/+iAMHDiA9PR25ubmKbNp6XpUqVdR6x2ZnZyv6\nUo4uSktLQ7Vq1bB371615Uos1PkT3Rw/fhwXL17E4MGDIYTA5s2b0apVK5nT6RclHpP16oz67t27\nip0juzjvvPMO4uLiEBAQACEENm7ciKZNmyr2Noyenp7IysrCoEGDMHjwYNknqy+Ldu3a4cSJEzpV\n6D755BOYmppi9erVWLJkCX744Qc4ODjg66+/ljsaycjT0xNHjx6V+lg8e/YMHTp0wMmTJ2VOpq6k\n4Y8HDhxQ9B2/lHhM1qtCnZSUhE8//RQ3b95EWFgYLl68iBMnTii6l7KdnR0uXrwIA4O8Ie25ublw\ncHBQ3PCF/BtYPHnyBFWrVpWW5xe/yZMny5KrLMaPH49bt25h4MCBqF69OgDlNnHmy83NxS+//CKd\n7Ud67V4AAB20SURBVHXt2hVjxozRqS8bSlWwGfl5Sm9GbtmyJY4fP47atWsDyOsA5eXlJc39rRQl\ndSYD8jpLKpUSj8l61fQ9cuRIjBo1SjrraN68OQYNGqToQt2sWTPcuHFDul5648YNxYyFLOjRo0dQ\nqVSIiYlBVFQUevXqBSEEdu7cibZt28odr0RPnjyBubk5/vrrL7XlSi7UixcvxqRJkzBu3DhpWXBw\nMCZNmiRjKv3g7u5e5Bee58f8KtG0adPQunVrqdAdOnQIs2fPljVTUZRciEujxGOyXp1Re3h44O+/\n/4abm5vUAcfV1VWRE57kNw09fPgQkZGRaNu2LVQqFSIjI9GmTRtFDbUoyMfHB7t375bu5vTo0SP0\n6NEDR44ckTmZfin4Gc6n1M8yadft27dx8uRJqFQqeHp6Ku6GHEBex8fiyD15SHGUfEzWqzPqmjVr\n4v79+9LjiIgImJiYyJioeB999FGxzyn5W/3du3fVxiAbGRnh7t27MiYq3ahRo9Qe5+/flStXyhGn\nROvXr8e6detw7do1tet8jx49kpo7qWLLzc1F3bp1kZ2djdjYWMTGxqJjx45yx1ITFBQEb29vmJub\nSz3qlX5OqORjsl4V6oULF6Jnz564evUqvL29kZycjN9//13uWEV6vmno4cOHOjGhxfDhw9G2bVv0\n69cPQghs27YNI0aMkDtWid544w3pP1pmZib++OMPNGjQQOZURfP29kb9+vWRnJyMjz/+WDq41apV\nC87OzjKnI7lNnToVGzduhIODg9r91JVWqBMTE/Hhhx/i0qVLcHJyQocOHeDt7S0VbyVS8jFZb5q+\nc3JysGjRIkycOBGXL1+GEELxN1UHgGXLlmHWrFmoUqWK1HlB7sH1pTl16hSOHDkClUqFjh07ws3N\nTe5ILyQ3Nxft27fHiRMn5I5SrPT0dFSrVg2VKlVCTEwMYmJi0L17d8XPqEaa1aJFC1y4cEHRN7Yo\n6OnTp/j7779x4sQJHD9+XJrL4NKlS3JHK5YSj8l6U6gBoE2bNoiKipI7xgtp1qwZIiIiUKdOHbmj\nVBiXL1/Gm2++qTZbmdK4u7vjyJEjSElJQfv27dGmTRtUrlwZa9eulTua3rh79y6WL1+O+Ph46cxJ\npVIp8pJIvu7du2PTpk1SHxGlS01NlYr08ePHkZqaCmdnZ0XfxEeJx2S9avru0KED3nvvPQwePBg1\natSQenG2bt1a7mjFatKkCapVqyZ3DL1Ws2ZNqelbpVLB0tIS33zzjcypSpabm4vq1atjxYoVePfd\ndzFlyhS4uLjIHUuv9O7dGx07doS/v7/amZOSVatWDa6urujcubN0Vq3EIWVjx47FxYsXYWxsjLZt\n28Lb2xuTJ0+GmZmZ3NFKpcRjsl4V6jNnzkClUuHzzz9XW67kO7XMmzcPXl5e8PLyUpvGUGn/8XRZ\nenq63BHK5cSJE1i7di1WrFgBIK9406uTmZmp+C9sz+vVq1eh28wq8cvFjRs38PTpUzRv3hxWVlaw\nsrKCqamp3LHKRInHZL1q+tZFHh4e6NixI5ycnGBgYCC1Aii9g5Yu6dy5c6GbWRS1TEkOHTqEhQsX\non379pg6dSri4uIQHBzML3Cv0MyZM+Hl5YU33nhD7ih6KTc3F9HR0VLT94ULF1C7dm20a9cOc+bM\nkTtesZR4TNarQj1jxgxMmTJF+uaWkpKChQsX4quvvpI5WfGKGi9Lr0ZmZiYyMjLQqVMntZmSHj58\niG7duilu9jfSrpo1ayIjIwOVK1eWOukp/X7UsbGxmDFjBi5evIjMzEwA8nd0Kk1CQgKOHz+OY8eO\nYefOnbh//z7S0tLkjlUsJR6T9apQFzUhhBJ3ekEzZsxA48aN0atXL7WenEodwqBLvv/+ewQHB+PW\nrVtqw7GMjY0xbtw4vPfeezKmK9ndu3cxf/78Qgfk52dXo4qlffv2+OKLLzB58mTs2LEDISEhyMnJ\nwZdffil3NDXBwcFSL29DQ0N4e3ujffv28Pb2hqOjo9rQMqVR4jFZrwq1s7MzIiMjpbmoMzMz4eHh\ngejoaJmTFc/GxqbIa0zXrl2TIY1+Wrx4cYnzOyuRv78/Bg8ejAULFmDZsv9v7+6joizTP4B/H0QB\niVFkp01sBRMBPTLKi0OgSAYIImXiAQVFfAmws1JuHDy0ZLlq2wtZSe5Z06VQImRYdBXYVSQoAVdB\nQUAJWFDMFxTXYQKJd5/fH8gkK2q/Uq+H4fqc05GZ+YPvSc99zX0/933dnyExMRFyuVzSN5UNRgcO\nHMDRo0chCALc3d3ve5mEFDg4OKCkpKTflad970nJH/7wB8yaNQsuLi6S7VlwL1Ick3VqM9nSpUvh\n4eGBVatWQRRFfPHFF1i+fDl1rPuqr6+njqDzZDIZ9uzZc9f7Uv63cePGDbz88suIj4+Hu7s73N3d\n4eTkRB1Lp8TExKC4uBhLly6FKIqIj4/HsWPH8O6771JHuydDQ0P09PTAysoK27dvh7m5OVpbW6lj\n3eXjjz+mjvCLSXFM1qkZNQAcOnQIOTk5EAQBnp6e8Pb2po50X7t37x7w25uUi8hgs3bt2n6dyXJz\nc+Hg4CDZrnVA79Wcx48fx9y5c/Hqq6/C3NwcAQEBqKuro46mM+zs7HD69GntMmxPTw+mT5+unalK\nUVFRESZPngyNRoMNGzagubkZ69evx7PPPksdTWdIcUzWiRn1zJkzUVhY2O+8LADs2LEDgiBgzJgx\niI6Oxu9//3vClAMrLi4esIhwoX54tm/f3u+1RqPB4sWLidL8PLGxsdBoNNi6dSsiIyPR3Nw8qGcp\nUiQIAjQajbaHukajkeRRpzv13VRnYmKCxMRE2jA6Sopjss7NqAdy48YNuLq6Su7O1oH0FZHDhw9T\nR9FZnZ2dmDp1KmpqaqijMEIpKSmIiYnBnDlzIIoivv32W7z33ntYsmQJdbR78vLyQlpaWr+TLUuW\nLOHx4hGSwpisEzPqBzEzM5N005M7jRw5kjeSPWR3bhC6desWKisrERgYSJjowUJDQ/HJJ59oOzk1\nNTUhKipK0u0tB5ugoCC4u7trZ1Dvvfcexo4dSx3rvq5fv96vcYipqSmuXbtGmEj3SWFMHhKFGoBk\ndx4OxiIy2PRdXycIAvT19TF+/Hj87ne/I051f2VlZf3aLZqamkpuZ+9g98ILLyAoKAgLFiyAsbEx\ndZyfZdiwYbhw4QIsLCwA9G586mt/yh4OKY7JQ6ZQS9WdVxnq6+vDwsJC8kVksHnuuedw9epV7cxp\n0qRJ1JEeSBRFqNVq7dlNtVqNnp4e4lS6JSoqCqmpqXjjjTcwY8YMLFmyBH5+ftrjnVL0zjvvwM3N\nDe7u7hBFEUePHsXOnTupY+kUSY7JIiMVHR1913vr168nSKK7UlNTxfHjx4shISFiSEiIaGFhIapU\nKupY97V7927R2tpafPPNN8XY2FjR2tpa3L17N3UsndTV1SVmZ2eLAQEBoomJCXWcB2psbBQPHjwo\nZmRkiI2NjdRxdI4Ux+QhsZlMygbqnHZnMwP26ykUCuTk5ODJJ58E0Pucz8PDA+Xl5cTJ7u/s2bPa\nvRXPP/88pkyZQpxI97S1teHgwYNQqVQoKSmBn58fPv30U+pY9+Tv74/Vq1dj3rx5vOT9iEhxTOa/\naSJ//etfYWdnh+rqatjZ2Wn/s7S0hEKhoI6nU0RRhFwu1742MzPDYPh+qlarYWxsjLVr10Iul5Nv\naNE1gYGBsLW1RW5uLtauXYu6ujpJF2kAeOWVV5CcnAwrKyvExMQMipMsg4WUx2SeURP54Ycf0NTU\nhJiYGLz//vvawmFiYqI918kejujoaJSVlSE4OBiiKCI1NRUKhULS7Tg3btyIU6dOobq6GjU1Nbh8\n+TICAwNRWFhIHU1nHDp0CF5eXtqGJ/n5+di7dy/+8pe/ECd7MI1Gg71792LLli0YP348wsLCsGzZ\nMu3lIuz/T8pjMhdqNiSkp6dri5ybmxsWLlxInOj+pk2bhtLSUjg6OmqX4RQKheSX6webkpISpKSk\nQKVSYcKECVi0aJHk+8LfuHEDSUlJ+PLLL2Fubo7g4GAUFBTgzJkz/W6JY7qDd31L0Pz585GVlUUd\nQ2ecP38evr6+WLRoEYDe55L19fWwtLSkDXYfBgYG/Z5BSrGf82BVXV2NlJQUpKamQi6XIyAgAKIo\nDooit3DhQlRVVSEkJAQZGRnac99LliyBo6MjcTrdRT0m84xagv73Wkb26zg6OuLf//43RowYAQDo\n6OjAzJkzcfLkSeJk9xYXF4fa2lpkZ2fjjTfewOeff47g4GC8+uqr1NEGPT09Pfj5+WH79u0YP348\nAGDChAmDYg9AXl4e5syZQx1jyKEek3lGLSFqtRqXLl0i37iga3p6erRFGuidrXZ1dREmerDo6Ghk\nZ2fDxMQENTU12Lx5M7y8vKhj6YR9+/YhJSUFs2fPho+Pj3ZGLWXp6ekQBAGiKGLfvn0AoM0sCAL8\n/f0p4+mczs5OfPfdd9DT04ONjQ35xIln1MTc3d2RkZGB7u5uODo6Qi6XY+bMmXwBw0Pk6emJyMhI\nLFiwAEDvHcTx8fH4+uuviZMxSjdv3sSBAweQkpKCvLw8LF++HAsXLsTcuXOpo91lxYoV970w5Isv\nvniMaXRbVlYW1qxZg2eeeQYAcO7cOXz22Wfw9fUly8SFmtj06dNx+vRp/O1vf8PFixfxpz/9ifzM\nnq6pra3F0qVLceXKFQDA008/jaSkJFhZWREnu9v/3gB3J0EQ0Nzc/JgTDQ1qtRp///vfsXfvXuTm\n5lLHYYRsbGyQlZWlHR/q6urg6+tLehSOl76J9fT0oKGhASqVClu2bAEAyV+1N9hYWVnhxIkTaGlp\nAdB73KKzs5M41cBu3rxJHWFIGjNmDMLDwxEeHk4dZUBffvklli1bhq1bt2qXwO/88/XXX6eOqDNk\nMlm/L/HPPPMMZDIZYSJueELurbfegre3NyZOnAilUom6urpB0Yt6MHF3d8f58+dhYmICExMTFBUV\nwcnJiTrWfb3++us4e/YsdQwmEX27/ltaWtDS0oKbN29qf+77Asp+nfT0dKSnp8PJyQm+vr5ITExE\nYmIi/Pz8yMcLXvpmOu/w4cN47bXXEBkZicuXL+Nf//oXEhIS4ODgQB3tnnbt2oXExER0dXVh1apV\nCAoKwqhRo6hjMaaz7twH0LdScefPlPsAuFATi4yM1C5hAb3L3qNGjYKTk5N28xP79fLy8uDl5QW5\nXI7S0lI89dRT1JF+lqqqKiQmJuKrr77CrFmzEBYWxsdzhrC2tjYkJCSgsrISbW1t2mLC95TrNl76\nJtbe3o7Tp0/D2toakyZNQllZGS5evIiEhASsW7eOOp5O2Lx5MyIjI5Gfn4+NGzfC3d0dmZmZ1LEe\nqKenB1VVVfjuu+8gl8sxbdo0fPTRR1i8eDF1NEYkJCQE165dw6FDh/Dcc8/h4sWLeOKJJ6hj6ZS6\nujq88MIL+M1vfgO5XI4FCxbg3LlztKEexxVd7N6USqXY1dWlfd3V1SU6OzuLXV1doq2tLWEy3fHa\na6+JP/74o/Z1fX296OnpSZjowdatWydOnDhRDAsLE0+cONHvM2tra6JUjNq0adNEURRFOzs7URRF\nsbOzU1QqlZSRdI5SqRT37NkjdnZ2ip2dnWJSUhL5/2OeURPTaDT9dvrevHkTarUa+vr6kr7AfjD5\n5JNP0NzcjIyMDGRmZsLIyAhHjhyhjnVfCoUCZWVl2LlzJ5RKZb/PTpw4QZSKUetr3DNq1ChUVFRA\no9Hg+vXrxKl0S1tbG0JCQjB8+HAMHz4cy5YtQ3t7O2kmLtTE1q9fD3t7e6xYsQIrVqyAvb09oqOj\n0draCk9PT+p4OkGlUkGpVCItLQ2pqanan6UsKSkJxsbG/d7z8PAAAIwePZoiEpOA8PBwqNVqbNmy\nBQsWLMCUKVOwfv166lg6Qa1W48aNG5g3bx7effdd1NfXo76+Hu+//z7mzZtHmo03k0nAlStXUFRU\nBEEQMGPGDPJ2dbpGoVAgJycHTz75JADg+vXr8PDwkORNVG1tbfjxxx8xZ86cfpdENDc3w8fHB1VV\nVXThGJmtW7dqf75z82nfaz5H/etZWloO2MNCvL3rm7IXPDc8kQAjIyOMHTsW7e3tqK2tRW1tLWbP\nnk0dS2eIogi5XK59bWZmJtnezp999hm2bduGK1eu9LsNSSaTYe3atYTJGKWWlhYIgoDq6moUFxfj\nxRdfBABkZGTc9WiE/TL19fXUEe6JZ9TEdu3ahfj4eFy6dAnTp0/H8ePH4eLiwm0MH6Lo6GiUlZUh\nODgYoigiNTUVCoUCH3zwAXW0e9q0aRPWrVsHmUyGTZs2obS0FBs2bJD02W/26Lm5ueGf//wnTExM\nAPQWcF9fX+Tn5xMn0x2tra346KOP8P3332PXrl34z3/+g+rqavj5+ZFl4mfUxLZt24aioiJYWFgg\nLy8PpaWl3NjiIenbABIXF4eIiAiUl5ejoqICERERki7SAJCWlgaZTIaCggLk5uZi9erVeOWVV6hj\nMWKNjY0YPny49vXw4cPR2NhImEj3rFy5EiNGjMCxY8cAAObm5oiNjSXNxEvfxAwNDWFkZASgt7DY\n2tqSNn/XJa6urigpKUFISAiSkpKwaNEi6kg/27BhwwAAmZmZCAsLg5+fHzZs2ECcilFbvnw5lEol\n/P39IYoi/vGPfyA0NJQ6lk6pq6uDSqXC3r17AeCuTZ0UuFATe/rpp9HU1ISXXnoJXl5eMDU1haWl\nJXUsndDR0YHk5GQUFhZq7/AFftocIuU7fMeNG4fw8HAcOXIEMTExaG9vx61bt6hjMWKxsbHw8fFB\nfn4+BEFAYmIi7O3tqWPpFAMDA7S1tWlf19XVwcDAgDARP6OWlG+++Ua7u7fvvCT75fLz85GcnIy0\ntDTt5ps7SfkO39bWVhw6dAgKhQKTJk1CQ0MDKioqJHlXMmO6JDs7G++88w4qKyvh5eWFwsJCJCYm\nkrbu5UJNqLu7G1OnTuUjN49YQkICVq9eTR2DMTZI/Pe//8Xx48cBAM7Ozv1OjVDgpW9C+vr6sLGx\nwYULF2BhYUEdR+ekp6dDEASMHj2639J3HykvfTPGaCxbtgzu7u5wc3ODra0tdRwAPKMm5+bmhtLS\nUiiVSu2mBUEQcPDgQeJkg1/ftXWNjY04duwYnn/+eQC9N2m5uroOios5GGOPV25uLvLz81FQUIDa\n2lo4ODjAzc2N9JIkLtTEvv3227uabwiCAHd3d6JEusfLywt79uzB2LFjAQANDQ0IDQ1FdnY2cTLG\nmBR1d3fj5MmTyM3NxY4dO2BkZER6GoeXvgl1d3cjPDycj2M9YhcvXux3//Rvf/tbfP/994SJGGNS\n5eHhgdbWVri4uGDWrFk4efKktv0wFS7UhPT19WFra8vPqB8xT09PeHt79+tM5uXlRR2LMSZBCoUC\nJ0+exJkzZyCTyWBqagoXFxdtvwsKvPRNjJ9RP3qiKGL//v04evQoBEHA7NmzsXDhQupYjDEJa2lp\nQWJiIj788ENcvXoVHR0dZFm4UBPruyGp79aWvmYc/IyaMcYev08//RT5+fk4deoUJkyYADc3N7i5\nuWk3o1LgQi0BV69eRXFxMQRBgFKpJH8eoiueeOKJAa+tA3q/GDU3Nz/mRIwxqYuLi8Ps2bPh4ODQ\nr686JS7UxFQqFaKjo7Uz6KNHjyIuLg4BAQHEyRhjbGjbuXMnwsPDqWNwoaamUCiQk5OjnUVfv34d\nHh4eKC8vJ042+DU3N0Mmk0GtVg/4+ZgxYx5zIsbYYGJvb4/S0lLqGLzrm5ooiv3a05mZmd11rpr9\nMkFBQcjKyoKjo+OAn58/f/4xJ2KMDSZSGYu5UBPz8fG56+jQvHnzqGPphKysLAC91132tQScPHky\ncSrG2GAhle6FvPRNpL29HYaGhgB6e1IXFhYC6D2uxUeHHq7c3FwUFBQgPz8fdXV1sLe3J28JyBiT\nrszMTJw9exbt7e3aDalvvfUWWR4u1EQcHBxQUlKCkJAQJCUlUcfReVJrCcgYk6aIiAi0tbUhNzcX\nYWFhSEtLg7OzMxISEsgy8dI3kY6ODiQnJ6OwsLDfzU5956j5ZqeHR4otARlj0nTs2DFUVFRAoVDg\n7bffRlRUFHx8fEgzcaEmsmPHDiQnJ+OHH35ARkbGXZ9zoX54pNgSkDEmTX3jwsiRI3H58mWYmZnh\n6tWrpJm4UBPp63YzY8YMrF69mjqOTvv4448B/NQScOXKleQtARlj0uTn54empiZER0drT4yEhYWR\nZuJn1MRUKhV8fHwgk8mwefNmlJaW4s0334SDgwN1NJ0hxZaAjDHp6+joQHt7O0aNGkWaQ4/0tzNs\n3rwZMpkMBQUF+Prrr7Fq1SqsWbOGOpZOaW9vR1RUFKqqqpCTk4O3336bizRjbEBpaWna9sIffPAB\nVq5ciZKSEtJMXKiJDRs2DEDvcYCwsDD4+fmhq6uLOJVuiY6OhrOzs2T69jLGpGvTpk2SmzxxoSY2\nbtw4hIeHIzU1FfPnz0d7eztu3bpFHYsxxoYkKU6e+Bk1sdbWVhw+fBh2dnaYNGkSGhoaUFFRgblz\n51JHY4yxIWf+/PkYN24cjhw5gtLSUhgaGsLZ2RllZWVkmXhGTczY2BhyuRwFBQUAAH19fVhZWRGn\nYoyxoUmlUsHb2xvZ2dkYPXo0mpqaEBcXR5qJZ9TENm7ciFOnTqG6uho1NTW4fPkyAgMDtS1FGWOM\nPT51dXUYN24cDA0NkZeXh/LycoSGhmL06NFkmXhGTWz//v04cOAAjI2NAfQ+s25paSFOxRhjQ5O/\nvz/09fVRW1uLiIgIXLp0CcHBwaSZuFATMzAwgJ7eT38Nra2thGkYY2xo09PTg76+Pvbt24fIyEjE\nxcWhoaGBNhPpb2cICAhAREQENBoNdu7cCQ8PD7z88svUsRhjbEgaMWIEvvrqK+zZswd+fn4AwLu+\nGZCdnY3s7GwAgLe3N7y8vIgTMcbY0HT27Fns2LEDrq6uCAoKwrlz56BSqRATE0OWiQs1Y4wxJmF8\nKQex9PR0xMTE4Nq1a+j7ziQIgraFHWOMsUcvICAAaWlpmDp1KgRB6PeZIAgoLy8nSsYzanITJ05E\nZmYmJk+eTB2FMcaGrCtXrsDc3BwXLlzAQGXR0tLy8Ye6jWfUxJ566iku0owxRszc3Bzd3d1YsWIF\n8vLyqOP0w4WaSHp6OgDAyckJixcvxksvvYQRI0YA6F1m8ff3p4zHGGNDjr6+PvT09KDRaEgbnPwv\nLtREMjIytM9BjIyMtLu++3ChZoyxx8/Y2Bh2dnaYO3cuRo4cCaB38hQfH0+WiZ9RM8YYY7clJibe\n9Z4gCAgNDX38Yfp+PxdqWqGhodi2bZt2maWpqQlRUVH4/PPPiZMxxhiTAl76JlZWVtbvWYipqSlK\nSkoIEzHG2NBVU1ODP/7xj6isrERbWxuA3hn1uXPnyDJxC1FioihCrVZrX6vVavT09BAmYoyxoWvl\nypVYs2YN9PX18c033yA0NBRLly4lzcQzamJRUVFwcXFBYGAgRFFEWloaYmNjqWMxxtiQ1NbWBk9P\nT4iiCAsLC2zcuBEODg7YvHkzWSYu1MSWL18OR0dH5ObmQhAE7N+/H1OmTKGOxRhjQ5KhoSF6enpg\nZWWF7du3w9zcnPxWQ95MRqS5uRkymUy77H1n+1AAGDNmDFk2xhgbqoqLizF58mRoNBps2LABzc3N\niI6OxrPPPkuWiQs1kfnz5yMzMxPDhg2DhYVFv8+oNy4wxthQVVxcjD//+c+or69Hd3c3RFGEnp4e\n9/oeqkRRhJ2dHc6cOUMdhTHGGABra2t8+OGHmDp1KvT0ftpvzb2+hyhBEODo6IiioiIolUrqOIwx\nNuTJ5XK8+OKL1DH64Rk1MRsbG9TW1sLCwgLGxsYA6K9UY4yxoSo7Oxupqanw9PSUzP0LPKMmdvjw\nYeoIjDHGbtu9ezeqq6vR3d3db+mbslDzjJoxxhi7zcbGBlVVVdoTOFLAnckYY4yx21xdXVFZWUkd\nox+eUTPGGGO32draoq6uDhMmTICBgQEA+n1DXKgZY4yx2+rr6wd8n/J4FhdqxhhjTML4GTVjjDEm\nYVyoGWOMMQnjQs0YY4xJGBdqxhhjTMK4UDPGGGMS9n8jKtrbFxnfjQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 26 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "4.2. Pins analysis" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.2.1. Create the unique_pins collection" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#1. Group by unique identifier -> $pin_page\n", "#2. Sum integer fields\n", "#3. Set of boards and description fields\n", "pipeline = [\n", " { \"$group\": { \"_id\": \"$pin_page\",\n", " \"repins\": { \"$sum\": \"$repins\"},\n", " \"description\": { \"$addToSet\": \"$description\" },\n", " \"board\": { \"$addToSet\": \"$board\" }, \n", " \"href\": { \"$addToSet\": \"$href\" }, \n", " \"likes\": { \"$sum\": \"$likes\" }, \n", " \"comments\": { \"$sum\": \"$comments\" } } },\n", " ]\n", "\n", "unique_pins_result = db.pins.aggregate(pipeline)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "#insert the result in the new collection unique_pins\n", "db.unique_pins.insert(unique_pins_result['result']);" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.2.2. Pins from the NYFW added in more different boards (unique pins with more repins)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Note: the boards where the pins appear at, can be different from the ones that I've gathered (I only looked for boards of NYFW 2014\n", "#fall collection, but then people could add them to their own boards, and for instance the total number of repins, likes or comments\n", "#may be different\n", "more_pins = db.unique_pins.find().sort([(\"repins\", -1)])[:10]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'board | pins | likes | pin_page' \n", "for pin in more_pins:\n", " print ('').join(pin['board']) + ' ' + str(pin['repins']) + ' ' + str(pin['likes']) + ' ' + pin['_id']" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "board | pins | likes | pin_page\n", "jcrew.com 342 47 http://media-cache-ec0.pinimg.com/236x/5c/93/29/5c932937622c02ee595f6c61835b4376.jpg\n", "jcrew.com 285 30 http://media-cache-ec0.pinimg.com/236x/f8/c7/80/f8c780815970c476f3217185f0415921.jpg\n", "jcrew.com 273 50 http://media-cache-ec0.pinimg.com/236x/07/8b/08/078b08f37232c4c82eeb12b42e66510d.jpg\n", "jcrew.com 262 42 http://media-cache-ak0.pinimg.com/236x/f5/7f/dc/f57fdc2f599d94adad3cf7d6d5dbac88.jpg\n", "jcrew.com 230 52 http://media-cache-ec0.pinimg.com/236x/22/b3/20/22b3207eb5c6d14c60455af121a05c9b.jpg\n", "jcrew.com 227 38 http://media-cache-ak0.pinimg.com/236x/15/61/25/1561252ace110826afec63b18ebafb54.jpg\n", "jcrew.com 213 17 http://media-cache-ec0.pinimg.com/236x/c9/a8/2e/c9a82e70682616bcd5af830fa65091bb.jpg\n", "jcrew.com 205 31 http://media-cache-ak0.pinimg.com/236x/ed/70/5a/ed705a7fb9d8a388b007ea571b516bfc.jpg\n", "jcrew.com 201 25 http://media-cache-ec0.pinimg.com/236x/73/43/45/734345b388d1222e4ab6366952adccee.jpg\n", "jcrew.com 194 31 http://media-cache-ak0.pinimg.com/236x/14/d2/c2/14d2c22449c7e3a56a98d1e5060b9111.jpg\n" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "__** The 10 pins with more repins, all of them belongs to the JCrew board:__
\n", "http://www.pinterest.com/jcrew/nyfw-fallwinter-2014/" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.2.3. More liked pins" ] }, { "cell_type": "code", "collapsed": false, "input": [ "more_likes = db.unique_pins.find().sort([(\"likes\", -1)])[:10]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'board | likes | pins | href' \n", "for pin in more_likes:\n", " print ('').join(pin['board']) + ' ' + str(pin['likes']) + ' ' + str(pin['repins']) + ' ' + pin['href'][0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "board | likes | pins | href\n", "jcrew.com 52 230 http://www.pinterest.com/pin/224335625162998612/\n", "jcrew.com 50 273 http://www.pinterest.com/pin/224335625162995128/\n", "jcrew.com 47 342 http://www.pinterest.com/pin/224335625163000284/\n", "jcrew.com 42 262 http://www.pinterest.com/pin/224335625162998702/\n", "jcrew.com 40 158 http://www.pinterest.com/pin/224335625162995271/\n", "jcrew.com 38 227 http://www.pinterest.com/pin/224335625162998334/\n", "jcrew.com 32 93 http://www.pinterest.com/pin/224335625163000981/\n", "jcrew.com 32 155 http://www.pinterest.com/pin/224335625162997500/\n", "jcrew.com 31 194 http://www.pinterest.com/pin/224335625162999790/\n", "stylecaster.com 31 39 http://www.pinterest.com/pin/163888873914182159/\n" ] } ], "prompt_number": 32 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "4.3. Word analysis" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.3.1. Most repeated hashtags" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Using map reduce approach for counting the number of different hashtags\n", "# map-reduce functions are written in JS\n", "from bson.code import Code\n", "map = Code(\"function(){\"\n", " \"var description = this.description;\"\n", " \"if (description) {\"\n", " \"description = ( description.join(' ')).toLowerCase().split(' ');\"\n", " \"for (var i = 0; i < description.length; i++) {\"\n", " \"if (description[i]) {\"\n", " \"if (/^#/.test(description[i])) {\"\n", " \"emit(description[i], 1);\"\n", " \"}\"\n", " \"}\"\n", " \"}\"\n", " \"}\"\n", " \"};\")\n", "\n", "reduce = Code(\"function( key, values ) {\" \n", " \"var count = 0;\"\n", " \"values.forEach(function(v) {\"\n", " \"count += v;\" \n", " \"});\"\n", " \"return count;\"\n", " \"}\")\n", "\n", "db.unique_pins.map_reduce(map, reduce, \"word_count\") # map_reduce(map, reduce, output collection)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "Collection(Database(MongoClient('localhost', 27017), u'db_name'), u'word_count')" ] } ], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "hashtags = db.word_count.find().sort([(\"value\", -1)])[:10]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 49 }, { "cell_type": "markdown", "metadata": {}, "source": [ "__From this hashtag analysis is where I get the idea of looking for the Street style images__" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for hashtag in hashtags:\n", " print hashtag" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "{u'_id': u'#nyfw', u'value': 2850.0}\n", "{u'_id': u'#fall', u'value': 222.0}\n", "{u'_id': u'#fashion', u'value': 217.0}\n", "{u'_id': u'#mbfw', u'value': 199.0}\n", "{u'_id': u'#winter', u'value': 198.0}\n", "{u'_id': u'#fall2014', u'value': 122.0}\n", "{u'_id': u'#streetstyle', u'value': 95.0}\n", "{u'_id': u'#fw14', u'value': 91.0}\n", "{u'_id': u'#roundup', u'value': 70.0}\n", "{u'_id': u'#style', u'value': 66.0}\n" ] } ], "prompt_number": 50 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.3.2. Designers more times named" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# First we have to get a list of the designers on the NYFW\n", "# I've used the BeautifulSoup library for looking into the html content\n", "from bs4 import BeautifulSoup\n", "import requests\n", "\n", "url = 'http://www.style.com/fashionshows/F2014RTW/NYC' #url with a list of designers\n", "\n", "'''Perform the get request\n", " Input: URL string\n", " Output: html gathered document'''\n", "def get_html(url):\n", " r = requests.get(url)\n", " return r.text\n", "\n", "'''Generate a list with the designer names from the html content\n", " Input: html text\n", " Output: list'''\n", "def extract_designers(page):\n", " designers = []\n", " soup = BeautifulSoup(page)\n", " designers_list = soup.find(id=\"alphabetical_list\")\n", " for designer in designers_list.select(\"span\"):\n", " designers.append(designer.get_text())\n", " return designers\n", "\n", "designers = extract_designers(get_html(url))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "designers = [designer.encode('utf-8') for designer in designers]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "#some clean up due to encoding problems\n", "designers[7] = 'A Detacher'\n", "designers[41] = 'Cut25 by Yigal Azrouel'\n", "designers[61] = 'Herve Leger by Max Azria'\n", "designers[154] = 'See by Chloe'\n", "designers[193] = 'Ygal Azrouel'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "'''Find the designer in the pin description. In order to find more matches, I've created 3 variants of the same word\n", " example: combined = '(Carolina Herrera)|(CarolinaHerrera)|(Carolina-Herrera)'\n", " Create a dictionary with key=designer, value=number of appearances\n", "'''\n", "designers_count = {}\n", "for designer in designers:\n", " aux = [designer, designer.replace(' ',''), designer.replace(' ','-')] #try to find different possible names for the same designer\n", " combined = \"(\" + \")|(\".join(aux) + \")\"\n", " designers_count[designer] = db.unique_pins.find({'description' : {\"$regex\": combined, \"$options\": 'i' } }).count() #ignorecase" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "sorted(designers_count.items(), key=lambda counts: counts[1], reverse=True)[:10]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "[(u'Co', 10626),\n", " (u'Marc Jacobs', 496),\n", " (u'Ralph Lauren', 481),\n", " (u'Alexander Wang', 397),\n", " (u'Oscar de la Renta', 362),\n", " (u'Prabal Gurung', 332),\n", " (u'Michael Kors', 313),\n", " (u'Jason Wu', 307),\n", " (u'Carolina Herrera', 259),\n", " (u'Vera Wang', 255)]" ] } ], "prompt_number": 46 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "4.3.3. Most repined 'streetstyles' images" ] }, { "cell_type": "code", "collapsed": false, "input": [ "street_style = '(streetstyle) | (street-style) | (street style)'\n", "street_count = db.unique_pins.find({'description' : {\"$regex\": street_style, \"$options\": 'i' } }).count()\n", "print 'Number of unique pins about Street Style: ' + str(street_count)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Number of unique pins about Street Style: 631\n" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "street = db.unique_pins.find({'description' : {\"$regex\": street_style, \"$options\": 'i' } }).sort([(\"repins\", -1)])[:10]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'repins | board | pin_page'\n", "for pin in street:\n", " print str(pin['repins']) + ' ' + ('').join(pin['board']) + ' ' + pin['href'][0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "repins | board | pin_page\n", "42 racked.com http://www.pinterest.com/pin/163888873914141623/" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "38 stylecaster.com http://www.pinterest.com/pin/163888873914157749/\n", "26 racked.com http://www.pinterest.com/pin/163888873914141607/\n", "26 ellecanada.com http://www.pinterest.com/pin/135178426289605486/\n", "22 stylecaster.com http://www.pinterest.com/pin/163888873914141508/\n", "21 stylecaster.com http://www.pinterest.com/pin/163888873914151877/\n", "18 stylecaster.com http://www.pinterest.com/pin/163888873914151871/\n", "15 stylecaster.com http://www.pinterest.com/pin/163888873914169406/\n", "15 ellecanada.com http://www.pinterest.com/pin/135178426289605476/\n", "14 ellecanada.com http://www.pinterest.com/pin/135178426289581663/\n" ] } ], "prompt_number": 43 } ], "metadata": {} } ] }