Created
December 15, 2015 20:21
-
-
Save deepnarainsingh/fc706f4945e0404cc4ae to your computer and use it in GitHub Desktop.
Sentiment Analysis for Hotel Reviews - Trip Advisor Data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"collapsed": false | |
}, | |
"source": [ | |
"Description:\n", | |
"---\n", | |
"**Dataset :Trip Advisor Data for review of hotels in json format**\n", | |
"\n", | |
"**No Of Hotels : 1800**\n", | |
"\n", | |
"**No Of Reviews : More than 3 lac**\n", | |
"\n", | |
"**Problem : Given a Review analyse the sentiment.**\n", | |
"\n", | |
"**Sample Size: 250 hotels 26000 Review**\n", | |
"\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"A newer version of GraphLab Create (v1.7.1) is available! Your current version is v1.6.1.\n", | |
"\n", | |
"You can use pip to upgrade the graphlab-create package. For more information see https://dato.com/products/create/upgrade.\n", | |
"[INFO] This non-commercial license of GraphLab Create is assigned to [email protected] and will expire on October 13, 2016. For commercial licensing options, visit https://dato.com/buy/.\n", | |
"\n", | |
"[INFO] Start server at: ipc:///tmp/graphlab_server-4582 - Server binary: /home/admin1/anaconda/lib/python2.7/site-packages/graphlab/unity_server - Server log: /tmp/graphlab_server_1450208902.log\n", | |
"[INFO] GraphLab Server Version: 1.6.1\n" | |
] | |
} | |
], | |
"source": [ | |
"#Importing Packages \n", | |
"\n", | |
"import nltk\n", | |
"import json\n", | |
"import os\n", | |
"import nltk.corpus\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"import graphlab as gl\n", | |
"import pyLDAvis \n", | |
"import pyLDAvis.graphlab\n", | |
"import seaborn as sns\n", | |
"import matplotlib.pyplot as plt\n", | |
"from sklearn.naive_bayes import MultinomialNB, BernoulliNB\n", | |
"from sklearn.feature_extraction.text import TfidfVectorizer\n", | |
"from sklearn.cross_validation import StratifiedKFold\n", | |
"from sklearn.metrics import classification_report\n", | |
"from sklearn import cross_validation\n", | |
"from sklearn.metrics import accuracy_score\n", | |
"from sklearn.pipeline import Pipeline\n", | |
"#from tokenizer import tokenize_text\n", | |
"from sys import argv\n", | |
"from sklearn.externals import joblib\n", | |
"from bs4 import BeautifulSoup\n", | |
"from nltk.corpus import stopwords\n", | |
"\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"gl.canvas.set_target('ipynb')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Initial Look at Data\n", | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"data = open('../data/72579.json').read()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"sample_data=json.loads(data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{u'Address': u'<address class=\"addressReset\"> <span rel=\"v:address\"> <span dir=\"ltr\"><span class=\"street-address\" property=\"v:street-address\">2301 8th Ave.</span>, <span class=\"locality\"><span property=\"v:locality\">Seattle</span>, <span property=\"v:region\">WA</span> <span property=\"v:postal-code\">98121-1907</span></span> </span> </span> </address>',\n", | |
" u'HotelID': u'72579',\n", | |
" u'HotelURL': u'/ShowUserReviews-g60878-d72579-Reviews-BEST_WESTERN_Loyal_Inn-Seattle_Washington.html',\n", | |
" u'ImgURL': u'http://media-cdn.tripadvisor.com/media/ProviderThumbnails/dirs/41/cd/41cd06abe79f00387282e20a523b1e156large.jpg',\n", | |
" u'Name': u'BEST WESTERN Loyal Inn',\n", | |
" u'Price': u'$117 - $218*'}" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sample_data['HotelInfo']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{u'Author': u'Sharon B',\n", | |
" u'AuthorLocation': u'Albany, Oregon',\n", | |
" u'Content': u'This past fall I went with a friend to Seattle. We stayed at the Best Western Loyal Inn and we enjoyed our stay. The front desk was very helpful and when you call with a request there was follow through. The room was clean and fresh smelling. The breakfast was good too. I would return again. Walking distance to the Space Needle and sights close by.',\n", | |
" u'Date': u'March 28, 2012',\n", | |
" u'Ratings': {u'Cleanliness': u'5',\n", | |
" u'Location': u'5',\n", | |
" u'Overall': u'5.0',\n", | |
" u'Rooms': u'5',\n", | |
" u'Service': u'5',\n", | |
" u'Sleep Quality': u'5',\n", | |
" u'Value': u'5'},\n", | |
" u'ReviewID': u'UR126815874',\n", | |
" u'Title': u'\\u201cSeattle\\u201d'}" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sample_data['Reviews'][0]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Pre-Processing and Cleaning Of Data\n", | |
"---\n", | |
"\n", | |
"**Extracting and Merging Of Data from json**\n", | |
"\n", | |
"**Filtering data using regex , beautiful soup **\n", | |
"\n", | |
"**Labelling the class based on Rating**" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#Input Directory where Hotel Review in format of json are there.\n", | |
"\n", | |
"indir ='../data/json/'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"\n", | |
"'''\n", | |
"This Method Will label the sentiments based on Rating as +ve,-ve or neutral.\n", | |
"It will also merge the Review text and Title text to make a single Review.\n", | |
"'''\n", | |
"\n", | |
"text_data = []\n", | |
"labels = []\n", | |
"location=[]\n", | |
"hotelId=[]\n", | |
"hotelPrice=[]\n", | |
"hotelName=[]\n", | |
"def unpack_review(review):\n", | |
" if \"Title\" not in review or \"Content\" not in review or \"Ratings\" not in review or \"ReviewID\" not in review:\n", | |
" return None, None\n", | |
" title = review[\"Title\"]\n", | |
" review_content = review[\"Content\"]\n", | |
" author = review[\"Author\"]\n", | |
" id = review[\"ReviewID\"]\n", | |
" rating = review[\"Ratings\"][\"Overall\"]\n", | |
" all_content= title +\" \"+ review_content\n", | |
"\n", | |
" if rating == \"1.0\" or rating == \"2.0\":\n", | |
" label = \"negative\"\n", | |
" elif rating == \"3.0\":\n", | |
" label = \"neutral\"\n", | |
" else:\n", | |
" label = \"positive\"\n", | |
" return all_content, label\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"'''\n", | |
"This method reads all the json files from directory , extracts the informations from \n", | |
"json string about hotel and reviews.\n", | |
"Cleaning of the data is done using BeautifulSoup and REgex.\n", | |
"It returns the objects like lables,reviewdata,hotel id , price etc.\n", | |
"'''\n", | |
"\n", | |
"def parse_files(file_path):\n", | |
" #iterate through each json file in the data directory, open each file and iterate over reviews. Add review content and ratings to text_data and labels list\n", | |
" for filename in os.listdir(file_path):\n", | |
" json_data=open(file_path+filename).read()\n", | |
" json_obj=json.loads(json_data)\n", | |
" id=json_obj['HotelInfo']['HotelID']\n", | |
" price=json_obj['HotelInfo']['Price']\n", | |
" if json_obj['HotelInfo'].get('Name')==None:\n", | |
" json_obj['HotelInfo']['Name']=\"\"\n", | |
" name=\"NA\"\n", | |
" else:\n", | |
" name=json_obj['HotelInfo']['Name']\n", | |
" hoteladdress = json_obj['HotelInfo']['Address']\n", | |
" soup = BeautifulSoup(hoteladdress)\n", | |
" hotellocation=soup.find(\"span\", {\"class\": \"locality\"}).span.contents\n", | |
" #hotellocation=\n", | |
" \n", | |
" for review in json_obj[\"Reviews\"]:\n", | |
" content, label = unpack_review(review) #retrieve the content and label of the review\n", | |
" #if a review has content and a rating\n", | |
" if label and content:\n", | |
" #if the content of the review isn't a duplicate\n", | |
" if content not in text_data:\n", | |
" hotelId.append(id)\n", | |
" hotelPrice.append(price)\n", | |
" hotelName.append(name)\n", | |
" location.append(hotellocation)\n", | |
" labels.append(label) #add label of each review to labels list\n", | |
" text_data.append(content) #add content of each review (string) to the text_data list\n", | |
" return text_data, labels,hotelId,hotelPrice,hotelName,location" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"\n", | |
"stopwords = nltk.corpus.stopwords.words('english')\n", | |
"\n", | |
"sentence_re = r'''(?x)\n", | |
" #abbreviations\n", | |
" ([A-Z])(\\.[A-Z])+\\.?\n", | |
" #words with optional internal hyphens\n", | |
" | \\w+(-\\w+)*\n", | |
" #currency and percentages\n", | |
" | \\$?\\d+(\\d+)?%?\n", | |
" #separate tokens\n", | |
" | [.,;\"'?():-_`=|/]+\n", | |
" '''\n", | |
"\n", | |
"def tokenize_text(input_string):\n", | |
" #tokenize with sensitivity towards regular expressions\n", | |
" tokens = nltk.regexp_tokenize(input_string, sentence_re)\n", | |
" #remove all stopwords\n", | |
" sans_stopwords = [w for w in tokens if w.lower() not in stopwords]\n", | |
" #preserve words in all caps\n", | |
" content = [w.lower() if w.isupper() != True else w for w in sans_stopwords]\n", | |
"\n", | |
" return content" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"#Calling the method to extract the data.\n", | |
"text_data,labels,hotelId,hotelPrice,hotelName,location=parse_files(indir)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"#Dumping all the extracted review in one file required for Word2Vec\n", | |
"\n", | |
"joblib.dump(text_data,\"../data/tripadvisorReview.txt\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"#Processing the location in proper format as it was retrieved as list of list.\n", | |
"\n", | |
"loc=[location[i][0] for i in range(0,len(location))]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"#Preparing the DataFrame with specific columns\n", | |
"\n", | |
"df=pd.DataFrame({'HotelId':hotelId,'Name':hotelName,'Price':hotelPrice,'City':loc,'Review':text_data,'Sentiment':labels})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>City</th>\n", | |
" <th>HotelId</th>\n", | |
" <th>Name</th>\n", | |
" <th>Price</th>\n", | |
" <th>Review</th>\n", | |
" <th>Sentiment</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>Calistoga</td>\n", | |
" <td>76277</td>\n", | |
" <td>Comfort Inn Calistoga, Hot Springs of the West</td>\n", | |
" <td>$124 - $249*</td>\n", | |
" <td>“Great experience” When searching for a place ...</td>\n", | |
" <td>positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Calistoga</td>\n", | |
" <td>76277</td>\n", | |
" <td>Comfort Inn Calistoga, Hot Springs of the West</td>\n", | |
" <td>$124 - $249*</td>\n", | |
" <td>“Very helpful staff -Kelly helped us make the ...</td>\n", | |
" <td>positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Calistoga</td>\n", | |
" <td>76277</td>\n", | |
" <td>Comfort Inn Calistoga, Hot Springs of the West</td>\n", | |
" <td>$124 - $249*</td>\n", | |
" <td>“Wonderful” I stayed here in late March, I cam...</td>\n", | |
" <td>positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Calistoga</td>\n", | |
" <td>76277</td>\n", | |
" <td>Comfort Inn Calistoga, Hot Springs of the West</td>\n", | |
" <td>$124 - $249*</td>\n", | |
" <td>“Excellent” We really enjoyed out stay in this...</td>\n", | |
" <td>positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Calistoga</td>\n", | |
" <td>76277</td>\n", | |
" <td>Comfort Inn Calistoga, Hot Springs of the West</td>\n", | |
" <td>$124 - $249*</td>\n", | |
" <td>“Friendliest staff & hotel with every amenity ...</td>\n", | |
" <td>positive</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" City HotelId Name \\\n", | |
"0 Calistoga 76277 Comfort Inn Calistoga, Hot Springs of the West \n", | |
"1 Calistoga 76277 Comfort Inn Calistoga, Hot Springs of the West \n", | |
"2 Calistoga 76277 Comfort Inn Calistoga, Hot Springs of the West \n", | |
"3 Calistoga 76277 Comfort Inn Calistoga, Hot Springs of the West \n", | |
"4 Calistoga 76277 Comfort Inn Calistoga, Hot Springs of the West \n", | |
"\n", | |
" Price Review Sentiment \n", | |
"0 $124 - $249* “Great experience” When searching for a place ... positive \n", | |
"1 $124 - $249* “Very helpful staff -Kelly helped us make the ... positive \n", | |
"2 $124 - $249* “Wonderful” I stayed here in late March, I cam... positive \n", | |
"3 $124 - $249* “Excellent” We really enjoyed out stay in this... positive \n", | |
"4 $124 - $249* “Friendliest staff & hotel with every amenity ... positive " | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"Int64Index: 26254 entries, 0 to 26253\n", | |
"Data columns (total 6 columns):\n", | |
"City 26254 non-null object\n", | |
"HotelId 26254 non-null object\n", | |
"Name 26254 non-null object\n", | |
"Price 26254 non-null object\n", | |
"Review 26254 non-null object\n", | |
"Sentiment 26254 non-null object\n", | |
"dtypes: object(6)\n", | |
"memory usage: 1.4+ MB\n" | |
] | |
} | |
], | |
"source": [ | |
"df.info()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"positive 17425\n", | |
"negative 4544\n", | |
"neutral 4285\n", | |
"Name: Sentiment, dtype: int64" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.value_counts(df['Sentiment'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"sentimentcount=pd.value_counts(df['Sentiment'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"'''\n", | |
"Looking at the sentiment count in our sample data\n", | |
"from below graph we can say that distribution of data is biased towards positive sentiment.\n", | |
"Class is imbalanced.\n", | |
"'''" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7fdcb8062710>" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fdcb2e9a150>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sentimentcount.plot(kind='bar')\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/home/admin1/anaconda/lib/python2.7/site-packages/pandas/core/index.py:4281: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", | |
" return np.sum(name == np.asarray(self.names)) > 1\n" | |
] | |
} | |
], | |
"source": [ | |
"df2 = df.copy()\n", | |
"counts = df2.groupby(['HotelId', 'Sentiment']).count()\n", | |
"counts = counts['City']\n", | |
"newDF=counts.unstack(level=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"newDF=newDF.dropna()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"sframe=gl.SFrame(newDF)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"$(\"head\").append($(\"<link/>\").attr({\n", | |
" rel: \"stylesheet\",\n", | |
" type: \"text/css\",\n", | |
" href: \"//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css\"\n", | |
"}));\n", | |
"$(\"head\").append($(\"<link/>\").attr({\n", | |
" rel: \"stylesheet\",\n", | |
" type: \"text/css\",\n", | |
" href: \"//dato.com/files/canvas/1.6.1/css/canvas.css\"\n", | |
"}));\n", | |
"\n", | |
" (function(){\n", | |
"\n", | |
" var e = null;\n", | |
" if (typeof element == 'undefined') {\n", | |
" var scripts = document.getElementsByTagName('script');\n", | |
" var thisScriptTag = scripts[scripts.length-1];\n", | |
" var parentDiv = thisScriptTag.parentNode;\n", | |
" e = document.createElement('div');\n", | |
" parentDiv.appendChild(e);\n", | |
" } else {\n", | |
" e = element[0];\n", | |
" }\n", | |
"\n", | |
" if (typeof requirejs !== 'undefined') {\n", | |
" // disable load timeout; ipython_app.js is large and can take a while to load.\n", | |
" requirejs.config({waitSeconds: 0});\n", | |
" }\n", | |
"\n", | |
" require(['//dato.com/files/canvas/1.6.1/js/ipython_app.js'], function(IPythonApp){\n", | |
" var app = new IPythonApp();\n", | |
" app.attachView('sframe','Plots', {\"selected_variable\": {\"name\": [\"sframe\"], \"descriptives\": {\"rows\": 188, \"columns\": 3}, \"view_component\": \"Plots\", \"view_file\": \"sframe\", \"view_params\": {\"y\": \"negative\", \"x\": \"positive\", \"columns\": [\"negative\", \"neutral\", \"positive\"], \"view\": \"Bar Chart\"}, \"view_components\": [\"Summary\", \"Table\", \"Bar Chart\", \"BoxWhisker Plot\", \"Line Chart\", \"Scatter Plot\", \"Heat Map\", \"Plots\"], \"type\": \"SFrame\", \"columns\": [{\"dtype\": \"float\", \"name\": \"negative\"}, {\"dtype\": \"float\", \"name\": \"neutral\"}, {\"dtype\": \"float\", \"name\": \"positive\"}], \"column_identifiers\": [\"positive\", \"neutral\", \"negative\"]}, \"complete\": 1, \"ipython\": true, \"progress\": 1.0, \"data\": {\"grouped\": {\"1.0\": {\"count\": 2, \"std\": 1.5, \"min\": 11.0, \"max\": 14.0, \"sum\": 25.0, \"var\": 2.25, \"mean\": 12.5}, \"2.0\": {\"count\": 1, \"std\": 0.0, \"min\": 9.0, \"max\": 9.0, \"sum\": 9.0, \"var\": 0.0, \"mean\": 9.0}, \"3.0\": {\"count\": 1, \"std\": 0.0, \"min\": 17.0, \"max\": 17.0, \"sum\": 17.0, \"var\": 0.0, \"mean\": 17.0}, \"4.0\": {\"count\": 2, \"std\": 7.0, \"min\": 5.0, \"max\": 19.0, \"sum\": 24.0, \"var\": 49.0, \"mean\": 12.0}, \"5.0\": {\"count\": 6, \"std\": 3.890872509976251, \"min\": 4.0, \"max\": 16.0, \"sum\": 47.0, \"var\": 15.138888888888891, \"mean\": 7.833333333333333}, \"6.0\": {\"count\": 1, \"std\": 0.0, \"min\": 11.0, \"max\": 11.0, \"sum\": 11.0, \"var\": 0.0, \"mean\": 11.0}, \"7.0\": {\"count\": 5, \"std\": 7.35934779718964, \"min\": 1.0, \"max\": 22.0, \"sum\": 39.0, \"var\": 54.160000000000004, \"mean\": 7.8}, \"8.0\": {\"count\": 4, \"std\": 6.94172168845741, \"min\": 5.0, \"max\": 22.0, \"sum\": 43.0, \"var\": 48.1875, \"mean\": 10.75}, \"9.0\": {\"count\": 9, \"std\": 10.520996056680724, \"min\": 2.0, \"max\": 28.0, \"sum\": 113.0, \"var\": 110.69135802469135, \"mean\": 12.555555555555555}, \"10.0\": {\"count\": 2, \"std\": 0.5, \"min\": 7.0, \"max\": 8.0, \"sum\": 15.0, \"var\": 0.25, \"mean\": 7.5}, \"11.0\": {\"count\": 3, \"std\": 8.993825042154693, \"min\": 1.0, \"max\": 21.0, \"sum\": 25.0, \"var\": 80.88888888888889, \"mean\": 8.333333333333334}, \"12.0\": {\"count\": 5, \"std\": 4.841487374764082, \"min\": 1.0, \"max\": 16.0, \"sum\": 42.0, \"var\": 23.44, \"mean\": 8.4}, \"14.0\": {\"count\": 3, \"std\": 8.178562764256865, \"min\": 2.0, \"max\": 21.0, \"sum\": 29.0, \"var\": 66.88888888888889, \"mean\": 9.666666666666666}, \"15.0\": {\"count\": 2, \"std\": 1.0, \"min\": 10.0, \"max\": 12.0, \"sum\": 22.0, \"var\": 1.0, \"mean\": 11.0}, \"16.0\": {\"count\": 2, \"std\": 1.0, \"min\": 5.0, \"max\": 7.0, \"sum\": 12.0, \"var\": 1.0, \"mean\": 6.0}, \"17.0\": {\"count\": 2, \"std\": 24.0, \"min\": 2.0, \"max\": 50.0, \"sum\": 52.0, \"var\": 576.0, \"mean\": 26.0}, \"19.0\": {\"count\": 1, \"std\": 0.0, \"min\": 5.0, \"max\": 5.0, \"sum\": 5.0, \"var\": 0.0, \"mean\": 5.0}, \"20.0\": {\"count\": 1, \"std\": 0.0, \"min\": 13.0, \"max\": 13.0, \"sum\": 13.0, \"var\": 0.0, \"mean\": 13.0}, \"21.0\": {\"count\": 1, \"std\": 0.0, \"min\": 12.0, \"max\": 12.0, \"sum\": 12.0, \"var\": 0.0, \"mean\": 12.0}, \"22.0\": {\"count\": 1, \"std\": 0.0, \"min\": 8.0, \"max\": 8.0, \"sum\": 8.0, \"var\": 0.0, \"mean\": 8.0}, \"23.0\": {\"count\": 2, \"std\": 3.0, \"min\": 18.0, \"max\": 24.0, \"sum\": 42.0, \"var\": 9.0, \"mean\": 21.0}, \"24.0\": {\"count\": 1, \"std\": 0.0, \"min\": 40.0, \"max\": 40.0, \"sum\": 40.0, \"var\": 0.0, \"mean\": 40.0}, \"25.0\": {\"count\": 2, \"std\": 9.0, \"min\": 4.0, \"max\": 22.0, \"sum\": 26.0, \"var\": 81.0, \"mean\": 13.0}, \"26.0\": {\"count\": 1, \"std\": 0.0, \"min\": 13.0, \"max\": 13.0, \"sum\": 13.0, \"var\": 0.0, \"mean\": 13.0}, \"27.0\": {\"count\": 1, \"std\": 0.0, \"min\": 3.0, \"max\": 3.0, \"sum\": 3.0, \"var\": 0.0, \"mean\": 3.0}, \"28.0\": {\"count\": 2, \"std\": 16.0, \"min\": 15.0, \"max\": 47.0, \"sum\": 62.0, \"var\": 256.0, \"mean\": 31.0}, \"29.0\": {\"count\": 3, \"std\": 2.6246692913372702, \"min\": 1.0, \"max\": 7.0, \"sum\": 14.0, \"var\": 6.888888888888888, \"mean\": 4.666666666666667}, \"30.0\": {\"count\": 1, \"std\": 0.0, \"min\": 21.0, \"max\": 21.0, \"sum\": 21.0, \"var\": 0.0, \"mean\": 21.0}, \"31.0\": {\"count\": 4, \"std\": 6.4565857850724795, \"min\": 1.0, \"max\": 19.0, \"sum\": 41.0, \"var\": 41.68750000000001, \"mean\": 10.25}, \"33.0\": {\"count\": 3, \"std\": 14.7648230602334, \"min\": 2.0, \"max\": 38.0, \"sum\": 57.0, \"var\": 218.0, \"mean\": 19.0}, \"34.0\": {\"count\": 1, \"std\": 0.0, \"min\": 4.0, \"max\": 4.0, \"sum\": 4.0, \"var\": 0.0, \"mean\": 4.0}, \"35.0\": {\"count\": 6, \"std\": 3.543381937578216, \"min\": 2.0, \"max\": 13.0, \"sum\": 56.0, \"var\": 12.555555555555552, \"mean\": 9.333333333333334}, \"36.0\": {\"count\": 1, \"std\": 0.0, \"min\": 5.0, \"max\": 5.0, \"sum\": 5.0, \"var\": 0.0, \"mean\": 5.0}, \"37.0\": {\"count\": 1, \"std\": 0.0, \"min\": 27.0, \"max\": 27.0, \"sum\": 27.0, \"var\": 0.0, \"mean\": 27.0}, \"38.0\": {\"count\": 2, \"std\": 12.5, \"min\": 21.0, \"max\": 46.0, \"sum\": 67.0, \"var\": 156.25, \"mean\": 33.5}, \"39.0\": {\"count\": 1, \"std\": 0.0, \"min\": 4.0, \"max\": 4.0, \"sum\": 4.0, \"var\": 0.0, \"mean\": 4.0}, \"41.0\": {\"count\": 1, \"std\": 0.0, \"min\": 16.0, \"max\": 16.0, \"sum\": 16.0, \"var\": 0.0, \"mean\": 16.0}, \"42.0\": {\"count\": 2, \"std\": 2.5, \"min\": 18.0, \"max\": 23.0, \"sum\": 41.0, \"var\": 6.25, \"mean\": 20.5}, \"45.0\": {\"count\": 2, \"std\": 3.5, \"min\": 14.0, \"max\": 21.0, \"sum\": 35.0, \"var\": 12.25, \"mean\": 17.5}, \"46.0\": {\"count\": 2, \"std\": 24.0, \"min\": 14.0, \"max\": 62.0, \"sum\": 76.0, \"var\": 576.0, \"mean\": 38.0}, \"47.0\": {\"count\": 1, \"std\": 0.0, \"min\": 4.0, \"max\": 4.0, \"sum\": 4.0, \"var\": 0.0, \"mean\": 4.0}, \"560.0\": {\"count\": 1, \"std\": 0.0, \"min\": 79.0, \"max\": 79.0, \"sum\": 79.0, \"var\": 0.0, \"mean\": 79.0}, \"50.0\": {\"count\": 1, \"std\": 0.0, \"min\": 5.0, \"max\": 5.0, \"sum\": 5.0, \"var\": 0.0, \"mean\": 5.0}, \"51.0\": {\"count\": 2, \"std\": 6.5, \"min\": 14.0, \"max\": 27.0, \"sum\": 41.0, \"var\": 42.25, \"mean\": 20.5}, \"568.0\": {\"count\": 1, \"std\": 0.0, \"min\": 112.0, \"max\": 112.0, \"sum\": 112.0, \"var\": 0.0, \"mean\": 112.0}, \"57.0\": {\"count\": 2, \"std\": 13.0, \"min\": 3.0, \"max\": 29.0, \"sum\": 32.0, \"var\": 169.0, \"mean\": 16.0}, \"59.0\": {\"count\": 1, \"std\": 0.0, \"min\": 18.0, \"max\": 18.0, \"sum\": 18.0, \"var\": 0.0, \"mean\": 18.0}, \"60.0\": {\"count\": 1, \"std\": 0.0, \"min\": 4.0, \"max\": 4.0, \"sum\": 4.0, \"var\": 0.0, \"mean\": 4.0}, \"62.0\": {\"count\": 1, \"std\": 0.0, \"min\": 17.0, \"max\": 17.0, \"sum\": 17.0, \"var\": 0.0, \"mean\": 17.0}, \"63.0\": {\"count\": 1, \"std\": 0.0, \"min\": 26.0, \"max\": 26.0, \"sum\": 26.0, \"var\": 0.0, \"mean\": 26.0}, \"67.0\": {\"count\": 2, \"std\": 9.5, \"min\": 8.0, \"max\": 27.0, \"sum\": 35.0, \"var\": 90.25, \"mean\": 17.5}, \"68.0\": {\"count\": 2, \"std\": 1.0, \"min\": 12.0, \"max\": 14.0, \"sum\": 26.0, \"var\": 1.0, \"mean\": 13.0}, \"70.0\": {\"count\": 2, \"std\": 31.5, \"min\": 11.0, \"max\": 74.0, \"sum\": 85.0, \"var\": 992.25, \"mean\": 42.5}, \"71.0\": {\"count\": 2, \"std\": 3.5, \"min\": 17.0, \"max\": 24.0, \"sum\": 41.0, \"var\": 12.25, \"mean\": 20.5}, \"72.0\": {\"count\": 1, \"std\": 0.0, \"min\": 18.0, \"max\": 18.0, \"sum\": 18.0, \"var\": 0.0, \"mean\": 18.0}, \"75.0\": {\"count\": 1, \"std\": 0.0, \"min\": 5.0, \"max\": 5.0, \"sum\": 5.0, \"var\": 0.0, \"mean\": 5.0}, \"76.0\": {\"count\": 2, \"std\": 6.5, \"min\": 11.0, \"max\": 24.0, \"sum\": 35.0, \"var\": 42.25, \"mean\": 17.5}, \"78.0\": {\"count\": 2, \"std\": 20.5, \"min\": 8.0, \"max\": 49.0, \"sum\": 57.0, \"var\": 420.25, \"mean\": 28.5}, \"80.0\": {\"count\": 1, \"std\": 0.0, \"min\": 25.0, \"max\": 25.0, \"sum\": 25.0, \"var\": 0.0, \"mean\": 25.0}, \"84.0\": {\"count\": 2, \"std\": 1.0, \"min\": 14.0, \"max\": 16.0, \"sum\": 30.0, \"var\": 1.0, \"mean\": 15.0}, \"87.0\": {\"count\": 1, \"std\": 0.0, \"min\": 58.0, \"max\": 58.0, \"sum\": 58.0, \"var\": 0.0, \"mean\": 58.0}, \"89.0\": {\"count\": 1, \"std\": 0.0, \"min\": 33.0, \"max\": 33.0, \"sum\": 33.0, \"var\": 0.0, \"mean\": 33.0}, \"91.0\": {\"count\": 3, \"std\": 6.847546194724712, \"min\": 16.0, \"max\": 31.0, \"sum\": 64.0, \"var\": 46.888888888888886, \"mean\": 21.333333333333332}, \"99.0\": {\"count\": 1, \"std\": 0.0, \"min\": 23.0, \"max\": 23.0, \"sum\": 23.0, \"var\": 0.0, \"mean\": 23.0}, \"105.0\": {\"count\": 1, \"std\": 0.0, \"min\": 33.0, \"max\": 33.0, \"sum\": 33.0, \"var\": 0.0, \"mean\": 33.0}, \"106.0\": {\"count\": 1, \"std\": 0.0, \"min\": 32.0, \"max\": 32.0, \"sum\": 32.0, \"var\": 0.0, \"mean\": 32.0}, \"107.0\": {\"count\": 2, \"std\": 8.0, \"min\": 4.0, \"max\": 20.0, \"sum\": 24.0, \"var\": 64.0, \"mean\": 12.0}, \"110.0\": {\"count\": 1, \"std\": 0.0, \"min\": 18.0, \"max\": 18.0, \"sum\": 18.0, \"var\": 0.0, \"mean\": 18.0}, \"112.0\": {\"count\": 3, \"std\": 17.518244457961217, \"min\": 27.0, \"max\": 66.0, \"sum\": 124.0, \"var\": 306.88888888888886, \"mean\": 41.333333333333336}, \"115.0\": {\"count\": 1, \"std\": 0.0, \"min\": 34.0, \"max\": 34.0, \"sum\": 34.0, \"var\": 0.0, \"mean\": 34.0}, \"118.0\": {\"count\": 1, \"std\": 0.0, \"min\": 15.0, \"max\": 15.0, \"sum\": 15.0, \"var\": 0.0, \"mean\": 15.0}, \"123.0\": {\"count\": 1, \"std\": 0.0, \"min\": 23.0, \"max\": 23.0, \"sum\": 23.0, \"var\": 0.0, \"mean\": 23.0}, \"124.0\": {\"count\": 1, \"std\": 0.0, \"min\": 19.0, \"max\": 19.0, \"sum\": 19.0, \"var\": 0.0, \"mean\": 19.0}, \"126.0\": {\"count\": 1, \"std\": 0.0, \"min\": 19.0, \"max\": 19.0, \"sum\": 19.0, \"var\": 0.0, \"mean\": 19.0}, \"127.0\": {\"count\": 1, \"std\": 0.0, \"min\": 37.0, \"max\": 37.0, \"sum\": 37.0, \"var\": 0.0, \"mean\": 37.0}, \"129.0\": {\"count\": 1, \"std\": 0.0, \"min\": 7.0, \"max\": 7.0, \"sum\": 7.0, \"var\": 0.0, \"mean\": 7.0}, \"137.0\": {\"count\": 1, \"std\": 0.0, \"min\": 13.0, \"max\": 13.0, \"sum\": 13.0, \"var\": 0.0, \"mean\": 13.0}, \"140.0\": {\"count\": 1, \"std\": 0.0, \"min\": 25.0, \"max\": 25.0, \"sum\": 25.0, \"var\": 0.0, \"mean\": 25.0}, \"158.0\": {\"count\": 1, \"std\": 0.0, \"min\": 97.0, \"max\": 97.0, \"sum\": 97.0, \"var\": 0.0, \"mean\": 97.0}, \"161.0\": {\"count\": 1, \"std\": 0.0, \"min\": 28.0, \"max\": 28.0, \"sum\": 28.0, \"var\": 0.0, \"mean\": 28.0}, \"162.0\": {\"count\": 1, \"std\": 0.0, \"min\": 89.0, \"max\": 89.0, \"sum\": 89.0, \"var\": 0.0, \"mean\": 89.0}, \"163.0\": {\"count\": 1, \"std\": 0.0, \"min\": 28.0, \"max\": 28.0, \"sum\": 28.0, \"var\": 0.0, \"mean\": 28.0}, \"165.0\": {\"count\": 1, \"std\": 0.0, \"min\": 52.0, \"max\": 52.0, \"sum\": 52.0, \"var\": 0.0, \"mean\": 52.0}, \"166.0\": {\"count\": 1, \"std\": 0.0, \"min\": 106.0, \"max\": 106.0, \"sum\": 106.0, \"var\": 0.0, \"mean\": 106.0}, \"168.0\": {\"count\": 1, \"std\": 0.0, \"min\": 27.0, \"max\": 27.0, \"sum\": 27.0, \"var\": 0.0, \"mean\": 27.0}, \"173.0\": {\"count\": 2, \"std\": 7.0, \"min\": 2.0, \"max\": 16.0, \"sum\": 18.0, \"var\": 49.0, \"mean\": 9.0}, \"179.0\": {\"count\": 1, \"std\": 0.0, \"min\": 50.0, \"max\": 50.0, \"sum\": 50.0, \"var\": 0.0, \"mean\": 50.0}, \"180.0\": {\"count\": 1, \"std\": 0.0, \"min\": 3.0, \"max\": 3.0, \"sum\": 3.0, \"var\": 0.0, \"mean\": 3.0}, \"183.0\": {\"count\": 1, \"std\": 0.0, \"min\": 24.0, \"max\": 24.0, \"sum\": 24.0, \"var\": 0.0, \"mean\": 24.0}, \"188.0\": {\"count\": 1, \"std\": 0.0, \"min\": 52.0, \"max\": 52.0, \"sum\": 52.0, \"var\": 0.0, \"mean\": 52.0}, \"196.0\": {\"count\": 1, \"std\": 0.0, \"min\": 11.0, \"max\": 11.0, \"sum\": 11.0, \"var\": 0.0, \"mean\": 11.0}, \"205.0\": {\"count\": 1, \"std\": 0.0, \"min\": 31.0, \"max\": 31.0, \"sum\": 31.0, \"var\": 0.0, \"mean\": 31.0}, \"207.0\": {\"count\": 1, \"std\": 0.0, \"min\": 13.0, \"max\": 13.0, \"sum\": 13.0, \"var\": 0.0, \"mean\": 13.0}, \"226.0\": {\"count\": 1, \"std\": 0.0, \"min\": 41.0, \"max\": 41.0, \"sum\": 41.0, \"var\": 0.0, \"mean\": 41.0}, \"228.0\": {\"count\": 1, \"std\": 0.0, \"min\": 75.0, \"max\": 75.0, \"sum\": 75.0, \"var\": 0.0, \"mean\": 75.0}, \"229.0\": {\"count\": 1, \"std\": 0.0, \"min\": 58.0, \"max\": 58.0, \"sum\": 58.0, \"var\": 0.0, \"mean\": 58.0}, \"231.0\": {\"count\": 1, \"std\": 0.0, \"min\": 89.0, \"max\": 89.0, \"sum\": 89.0, \"var\": 0.0, \"mean\": 89.0}, \"235.0\": {\"count\": 1, \"std\": 0.0, \"min\": 30.0, \"max\": 30.0, \"sum\": 30.0, \"var\": 0.0, \"mean\": 30.0}, \"247.0\": {\"count\": 1, \"std\": 0.0, \"min\": 42.0, \"max\": 42.0, \"sum\": 42.0, \"var\": 0.0, \"mean\": 42.0}, \"266.0\": {\"count\": 1, \"std\": 0.0, \"min\": 12.0, \"max\": 12.0, \"sum\": 12.0, \"var\": 0.0, \"mean\": 12.0}, \"267.0\": {\"count\": 1, \"std\": 0.0, \"min\": 117.0, \"max\": 117.0, \"sum\": 117.0, \"var\": 0.0, \"mean\": 117.0}, \"268.0\": {\"count\": 1, \"std\": 0.0, \"min\": 36.0, \"max\": 36.0, \"sum\": 36.0, \"var\": 0.0, \"mean\": 36.0}, \"283.0\": {\"count\": 1, \"std\": 0.0, \"min\": 67.0, \"max\": 67.0, \"sum\": 67.0, \"var\": 0.0, \"mean\": 67.0}, \"287.0\": {\"count\": 1, \"std\": 0.0, \"min\": 111.0, \"max\": 111.0, \"sum\": 111.0, \"var\": 0.0, \"mean\": 111.0}, \"48.0\": {\"count\": 2, \"std\": 1.0, \"min\": 15.0, \"max\": 17.0, \"sum\": 32.0, \"var\": 1.0, \"mean\": 16.0}, \"295.0\": {\"count\": 1, \"std\": 0.0, \"min\": 27.0, \"max\": 27.0, \"sum\": 27.0, \"var\": 0.0, \"mean\": 27.0}, \"300.0\": {\"count\": 1, \"std\": 0.0, \"min\": 8.0, \"max\": 8.0, \"sum\": 8.0, \"var\": 0.0, \"mean\": 8.0}, \"304.0\": {\"count\": 1, \"std\": 0.0, \"min\": 20.0, \"max\": 20.0, \"sum\": 20.0, \"var\": 0.0, \"mean\": 20.0}, \"311.0\": {\"count\": 1, \"std\": 0.0, \"min\": 162.0, \"max\": 162.0, \"sum\": 162.0, \"var\": 0.0, \"mean\": 162.0}, \"318.0\": {\"count\": 1, \"std\": 0.0, \"min\": 135.0, \"max\": 135.0, \"sum\": 135.0, \"var\": 0.0, \"mean\": 135.0}, \"336.0\": {\"count\": 1, \"std\": 0.0, \"min\": 58.0, \"max\": 58.0, \"sum\": 58.0, \"var\": 0.0, \"mean\": 58.0}, \"56.0\": {\"count\": 2, \"std\": 7.0, \"min\": 10.0, \"max\": 24.0, \"sum\": 34.0, \"var\": 49.0, \"mean\": 17.0}, \"338.0\": {\"count\": 1, \"std\": 0.0, \"min\": 16.0, \"max\": 16.0, \"sum\": 16.0, \"var\": 0.0, \"mean\": 16.0}, \"361.0\": {\"count\": 1, \"std\": 0.0, \"min\": 34.0, \"max\": 34.0, \"sum\": 34.0, \"var\": 0.0, \"mean\": 34.0}, \"397.0\": {\"count\": 1, \"std\": 0.0, \"min\": 20.0, \"max\": 20.0, \"sum\": 20.0, \"var\": 0.0, \"mean\": 20.0}, \"404.0\": {\"count\": 1, \"std\": 0.0, \"min\": 71.0, \"max\": 71.0, \"sum\": 71.0, \"var\": 0.0, \"mean\": 71.0}, \"430.0\": {\"count\": 1, \"std\": 0.0, \"min\": 19.0, \"max\": 19.0, \"sum\": 19.0, \"var\": 0.0, \"mean\": 19.0}, \"433.0\": {\"count\": 1, \"std\": 0.0, \"min\": 53.0, \"max\": 53.0, \"sum\": 53.0, \"var\": 0.0, \"mean\": 53.0}}, \"omitted\": 0}, \"columns\": [{\"dtype\": \"float\", \"name\": \"negative\"}, {\"dtype\": \"float\", \"name\": \"neutral\"}, {\"dtype\": \"float\", \"name\": \"positive\"}]}, e);\n", | |
" });\n", | |
" })();\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sframe.show(view = 'Bar Chart', x = 'positive')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.text.Text at 0x7fdcb12a7590>" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n2SLjxvWv55k6dVqWLLk7v/vdNfn973+Xd77zkPbnkzvvvCNJsssuT0uS9PZOzx/+8LsOfvNmAiQA\nAACAtpUrV2a77bbPdtttnwMPfFVe+9oDsmLFvTnjjLPS2zslCxcuTdJ/v6Tx49eNVfqDo1ar9bBx\n14ZG6x739fVl4sSJ2X//l+Wggw5ez+fGP/ovNQRsYQMAAABIcuGF38pJJx33wAqiZcuWpq+vL7vv\n/vT84heXJUkuuuiH+dWvrtzgGOPGjcvq1asbZul72PGTn/yUXHbZz9LX15f77rsvn/jERxvrvP/+\nh69w6jQrkAAAAACS7L//S3PTTfPylrccnJ6enqxevTrvfvcR2XrrbXLyySfkq1/9UsaNm5B/+7cT\nsmzZ0jx8oVErO+20c0444ZhsvvnUh6xEevC49bDjpzzlqdl1191zyCFvSF9fX17xin8a8Ll1P5/M\nmVPylrccnLPPPneof4INaq1vX95ot3Dh0u4r+hEYuCSO7qJ33U3/upv+dS+962761730rrvpX3fT\nv+411nvX2zvl4Xvv2mxhAwAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAAoNGEkS4AAAAA\noFNWrlyZ+fPnDclYixdPzqJFyzJz5naZNGnSkIzZLQRIAAAAwJg1f/68vOuj307PZtOHZLzld9+e\n0454aWbPnjMk4z0Sl1zy48ydu1+uuOLyLFjwl7z85QcO29wCJAAAAGBM69lseiZP3Waky3hUVq1a\nla985cuZO3e/POMZzxz2+QVIAAAAAEPoe9+7MNdc8+vcffdduemmeXnNaw7KzJmzcvbZn8qECRMy\nffqWed/7jkqSHHfc0bnttluz88675OKLf5RvfOO7ufLKK3LOOZ/OpEmTMnnylBx//Edy+ukfz/XX\nX59TTvk/efKTd8r111+Xvr77M2dOyYtetH+S5DWveUXOOuvc/OhHP8hFF/0w48aNy3Oes09e/er/\n71F/JzfRBgAAABhif/7z9TnxxI/lpJM+lq9//Ss57bSP5SMf+XhOO+3MTJ06LRdffFF+8YvLsmrV\nypx11uez22675447FiZJ7rlnWT70oeNzxhlnZfLkybniisvzutf9c2bN2i7vec/7kiStVit77/3c\nXHrpfydJrrvuT5kxY5vcc8+y/PSnF+fMMz+bT37y7Pz0pxfntttufdTfxwokAAAAgCHUarXylKfs\nnFarlS22mJ577lmWu+66Kx/4wL8mSVasWJHNN5+apC8777xLkmTPPffK+PHjkyRPeMJmOfnkE7Nm\nzerccstfsttuu6evr++B8dceP/Wpu+QjHzkuq1evzs9//tPsu+9++cMffp+bb56fd77zkCTJ8uX3\n5tZbb82WW271qL6TAAkAAABgiI0f/2DksmTJ3Zk+fXrOOOOsh1zz5S+fl3Hj+kOjVquVVquVJDnp\npONzyimnZdas7XPqqSc/8P66Wq1Wdttt91x99a9y+eWX5uSTT81vfvPrPPOZz8oRR3xgSL+PAAkA\nAAAY05bfffuIjjVlyhOSJDfeeEO23/6J+frX/yO77rp7ttlm2/zkJz9Okvzyl7/ImjVr+udYvizT\np2+VpUuX5le/uiqzZ89Jq9XKmjWrHzb2Pvs8Nz/4wXeyySabZLPNNs8OOzwpZ555eu67b0UmTXpc\nTj/943nrWw/N4x73uEfxrQVIAAAAwBg2c+Z2Oe2Ilw7JWNOmTc6iRcsyc+Z2G7124IKhVmtcjjzy\n6Jx44rGZOHFittiiNy9/+YGZOXNWvvvdb+ftb39zdt317/KEJ2yWJHnFK16Zt73tjdlmm23zutf9\ncz7/+c9kzz33yqpVq3P00Udmr72e/cD4u+22e4477qi8+c1vTZJstdVWeeUrX5t3vOMtGTduXPbe\ne+6jDo+SpDVwD123WLhwafcV/Qj09k7JwoVLR7oM/gp61930r7vpX/fSu+6mf91L77qb/nU3/ete\nQ927JUuW5Oqrr8o++zw3Cxfenne/++358pe/PmTjP1K9vVMevk+uzQokAAAAgBHQ09OTiy/+Uc4/\n/4u5//77c9hh7xnpkjZIgAQAAAAwAiZMmJBjjz1ppMsYlHEjXQAAAAAAo5sVSBuxcuXKzJ8/b1jn\nXLy4/6Zcw2XmzO0yadKkYZsPAAAA6C4CpI2YP39eLjv8sMzo6Rm2OW8YtpmSBcuXZ69TT8/s2XOG\ncVYAAACgmwiQBmFGT09mTZ4y0mUAAAAAj9BQ7ixau2PosbiTR4AEAAAAjFnz58/Le7/9oWzaOzQL\nQ+5ZuDQnv/S4ju7kuf766zJp0qTMnDlro9cuWHBLjj76yJxzzhc6Vk8iQAIAAADGuE17p2TK1puP\ndBmDdsklP86OO+40qABpuAiQAAAAAIbQ9753Ya655te5++67ctNN8/Ka1xyUmTNn5eyzP5UJEyZk\n+vQt8773HZVrrvl1vvGNr+XDH/4/SZL9998vZ5xxVv7zP7+Rn/3skkydOjXHHntU9trr2XnCEzbL\ns5+9T0455aRMnDgprda4HH/8R4btOwmQAAAAAIbYn/98fc466/OZP39ePvShD2TcuFZOO+3TmTJl\nSj71qdNz8cUXpbe39yGfabVa+du//V/Zc8+9su+++2XHHXfKmjVrsueez8rTn75nrrrqlzn88Pdm\nhx2elM9+9qz86Effz7OetfewfB8BEgAAAMAQarVaecpTdk6r1coWW0zPPfcsy1133ZUPfOBfkyQr\nVqzI5ptPfViAtCE77rhTkmTzzafm058+IytWrMgdd9yRF77wxR37DusSIAEAAAAMsfHjH4xcliy5\nO9OnT88ZZ5z1kGuuvvpXD3m9evXq9Y41ceLEJMlpp30sBx30hjz96Xvm//7fL+Xee5cPcdUbJkAC\nAAAAxrR7Fi4d0bGmTHlCkuTGG2/I9ts/MV//+n9k1113z+TJk3PnnXckSa677k9Zvrw/EGq1WusN\nk5YsuTtbb71NVq5cmcsv/3l22mnnR/FNHhkBEgAAADBmzZy5XU5+6XFDMta0aZOzaNGyzJy53Uav\nbbUGHo/LkUcenRNPPDYTJ07MFlv05uUvPzDjx4/PJptskre97Y3ZeeddMmPG1kmSXXbZNZ/4xMfS\n07NpkgcHOuCAV+X9739PZszYOgcc8Mqcdtop2W+/Fzxkrk5p9fX1dX6WIbZw4dJhK/r66/+UGz54\nZGZNnjJcUw6rm5YtzRNP+Ehmz54z0qWMCb29U7JwCJNthpf+dTf961561930r3vpXXfTv+6mf91r\nrPeut3fKBqOoccNZCAAAAADdR4AEAAAAQCMBEgAAAACNBEgAAAAANBIgAQAAANBowkgXAAAAANAp\nK1euzPz584ZkrMWLJ2fRomWZOXO7TJo0aUjG7BYCJAAAAGDMmj9/Xi47/LDM6Ol51GPdkGTB8uXZ\n69TTM3v2nEdf3HpcccXlWbDgL3n5yw/MJZf8OHPn7pc//ena/OxnP8mb3nRIR+YcDAESAAAAMKbN\n6OnJrMlTRrqMQXnGM575wPGXvnRe5s7dL3Pm7JA5c3YYwaoESAAAAABD6nvfuzBXXHFZ7r333tx2\n22151atem622mpHPfOZTGT9+QqZP3zLvf/+Hcuedd+b444/O+PHjs2bNmhx99PH5n/+5Mjfc8OdM\nnTot1113bY466r054IBX5YILvpJddtkt99yzLAcf/OYkyTvfeUje/e4jcvPNN+U//uPLGT9+fJ70\npCfn0EPfPeTfSYAEAAAAMMRuvPGGfP7z52fp0iV5/etfk0022SSnn/7p9PZOz6mnnpwf/egHWbp0\nSfbY4xk5+OA359pr/5g777wjrVYrrVby2tcelPPPPy8f/vDJ+Z//uSpJK/vss28++MH35uCD35wl\nS+7O4sWLs/XW2+SEE47J2WefmwkTJuRDH3p/fvvb32TnnXcZ0u8jQAIAAAAYQq1WK0972m4ZN25c\nNtts80yePDlJK72905Mku+22e66++n/y0pf+Yz7wgSOybNmyzJ27X57ylJ1z0003pq9v/eNOn75l\nWq1W7rzzjlx55RXZe++5ueGG63P77bfm8MPfkSS55557cttttwqQAAAAAEa7++8fmAK1snr1qgde\nrVy5MuPGtfK3fzs75513fn75y1/krLM+mf33f+lGx33Oc+bmsst+niuuuDyvf/0bkyQ77LBjPv7x\nM4b6KzyEAAkAAAAY0xYsXz6kYz1xI9f09fXl97+/Jvfff3+WLFmSe+9dnk026cltt92aLbfcKr/5\nzdV56lN3zY9//F/Zeutt8pznzM1mm22eiy++KKU86YFxHhpC9dtnn31z5pln5LbbFmTOnJIVK1Zk\n3rwbsnjx4kydOjWf/exZednLXpEttugdsu+cCJAAAACAMWzmzO2y16mnD8lY06ZNzqJFyzJz5naN\n17VarWy11dY5+uj35eabb84hh7wjW201I8cee1TGjx+fbbedmec97wW57rpr89GPnpSenp6MGzcu\nhx9+RH7/+9+l1eofZ86ckre85eC87W3vTKt9ctas7bJgwS0PPK3t8Y9/fA477D054oh3ZeLEiSnl\nSUMeHiUCJAAAAGAMmzRpUmbPnjMkY/X2TsnChUsHde0222ybd7zjXQ8596lPnfOQ1zvs8KR85jPn\nPeTcrFnbP3B82mmfeuB4113/7oHjc889/yGf2WeffbPPPvsOqq6/1riOjg4AAADwGLR2FdFYYQUS\nAAAAwBB68YtfMtIlDDkrkAAAAABoJEACAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACg\nkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAA\noJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAA\nAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIA\nAACgkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEAC\nAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACg0YRODl5KOTnJs9vznJTkqiRfTH9wtSDJ\nQbXWlaWU1yV5V5L7k5xda/1cJ+sCAAAAYPA6tgKplLJvkp1qrXsleVGS05Icm+SMWuveSa5L8sZS\nyqZJjk6yX5K5SQ4vpUztVF0AAAAAPDKd3ML2sySvbB/fnWTTJPsk+Xb73IVJnpfk6UmurLUurbWu\nSHJpkmd1sC4AAAAAHoGObWGrta5Jck/75ZuSfDfJC2utq9rnFiaZkWSr9vFat7fPAwAAADAKdPQe\nSElSSnlZkjckeWGSPw14q7WBj2zo/AOmTu3JhAnjh6C6jVu8eHJuGJaZRs60aZPT2ztlpMsYM/yW\n3U3/upv+dS+962761730rrvpX3fTv+71WO1dp2+i/cIkH0j/yqMlpZRlpZTH1VrvS7JNklvaf1sN\n+Ni2SS5vGnfx4uWdKvlhFi1aNmxzjZRFi5Zl4cKlI13GmNDbO8Vv2cX0r7vpX/fSu+6mf91L77qb\n/nU3/eteY713TeFYJ2+ivVmSjybZv9Z6V/v0RUkObB8fkOT7Sa5IskcpZbNSyuQkeyX5707VBQAA\nAMAj08kVSK9K8jdJvlZKSZK+JAcnOaeUckiSG5OcV2tdU0o5MskP29ccU2sdu3EeAAAAQJfp5E20\nz05y9nreesF6rr0gyQWdqgUAAACAv17HtrABAAAAMDYIkAAAAABoJEACAAAAoJEACQAAAIBGAiQA\nAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIk\nAAAAABoJkAAAAABoJEACAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAAgEYC\nJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAAoJEACQAAAIBG\nAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACA\nRgIkAAAAABoJkAAAAABoJEACAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAA\ngEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAAoJEACQAA\nAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkA\nAACARgIkAAAAABoJkAAAAABoJEACAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJ\nAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAAoJEA\nCQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACgkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCR\nAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAAoJEACQAAAIBGAiQAAAAAGgmQAAAAAGgkQAIAAACg\nkQAJAAAAgEYCJAAAAAAaCZAAAAAAaCRAAgAAAKCRAAkAAACARgIkAAAAABoJkAAAAABoJEACAAAA\noJEACQAAAIBGAiQAAAAAGgmQAAAAAGg0oZODl1KemuSbST5ea/33Usq5SXZLcmf7kpNrrd8vpbwu\nybuS3J/k7Frr5zpZFwAAAACD17EAqZTSk+SUJD9M0tc+3ZfkyFrr9wZct2mSo5PskWRVkitLKd+s\ntS7uVG0AAAAADF4nt7Ddl+QlSW5L0hpwvrXOdc9IcmWtdWmtdUWSS5M8q4N1AQAAAPAIdGwFUq11\nTZI1pZR13zq0lPK/k9ye5NAkWyVZOOD925PM6FRdAAAAADwyw30T7S8meV+tdb8kv05yTB7c3rbW\nuiuUAAAAABhBHb2J9rpqrRcPePntJGcm+Xr6VyGttW2Sy5vGmTq1JxMmjB/6Atdj8eLJuWFYZho5\n06ZNTm/vlJEuY8zwW3Y3/etu+te99K676V/30rvupn/dTf+612O1d8MRID2woqiU8vUkx9Zaf5tk\nnyS/TXJFknNKKZslWZNkrySHNQ24ePHyzlW7jkWLlg3bXCNl0aJlWbhw6UiXMSb09k7xW3Yx/etu\n+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\nxJSpqpdl8g0R80vtxu2sTBaO2JvkRd29p6o+2t1POszfMbyvVNUfZDKJ/a5MPrjeKcnjMrl8m/n2\nq5ks0vLk7v6B+Ueq6tPDRGIN1G+8vlhVf5Tked19Q3e/uqq+neSDmVzWdszRQBrW3x56x3RVhcsH\nyMLaqN24PTmTFfO+nknT6PmZDO3/fJKnDJiL1fn1JP8+ycOSfCLJH0/v/7tMVvlifqndiHX315M8\nsaoemsnqh/9t6Eys2nlJHp/JMXjgi65rkrwnyVsHysQqdfcHquqrmSz5/u1DHn7JAJFYA/Ubtack\n+bVM5mxMknT3H1fVZTlGPzOYRHtAh87qXlU/k+Snk/xjd185XDIOR+3GbUb9PtPdVwyXjNWoqk0H\nf4Pn+BuXqtqe5P919/VVdXomc491d39q2GSsxXQC7RckeUR3P3DoPMxWVfft7o8NnYMjo37jpn7j\npXY/7LihAxzjvjeKZXr9+WuS3C3JRdNLaphfajdu7ztw45D6/b76jcL7D9xw/I1LVf1GJsO+r6yq\nxyf5qyQPzmQeuRcPmY3VqaofT5LpBKJvS/KqqvrpYVOxCu+oqsuq6heHDsIRUb9xU7/xUrtDuIRt\nWAdP1vvYJA/q7uWqulWSj2Sy3CrzSe0Wh/qNm/qNy7/KZB6d2yX5dJKzuvu6ae0+muQVQ4Zjtqr6\nzSR3T/L4qrogk8mzP5Lkgqp6T3e/fNCAzPLZJL+U5PnTRu67Mvky7B+ml+Az39Rv3NRvvNTuEEYg\nzY+rDrq9P8nSUEFYM7UbN/UbN/Ubl/3dfVN370ry1u6+7qDHbrqlP2Ju/GKSJ0xvPy7J/br7mUke\nlOSRg6ViVbr7W939m0nOyWTi7Kcn+d9V9bVhk7Ea6jdu6jdeaveDjEAa1gOratf09o9lMqz/tUn+\nMjczSTNzRe3GTf3GTf3G691VdWl3n9vdFyRJVZ2d5NWZ1I/5timT1Ub/PpOT6B9LckOSn8gPjsxl\njnX3DUneMv2HkVG/cVO/8VK7CQ2kAXX3LX1T/p+7uzc0DGuiduOmfuOmfuPV3S+vqrsccvfOJOd3\n9yeHyMSaPCWT+apuk2R3kk9V1WeSbMtkiWrm1/OGDsCPRP3GTf3GS+0OYRW2AVXVHTNZSvzEJJd0\n92UHPfaH02HhzCG1Gzf1Gzf1G6+qun2SpyXZkeRPM1nF64FJPpfkwu7+5oDxWKXpMXj69Mevd/eX\nh0vDajj2xk39xk39xkvtfpg5kIb1PzKZv+O9SV56yAo0PzVMJFZJ7cZN/cZN/cbrTzKZp+pnM7lk\n7aVxWiIAAARxSURBVCeSvCzJl6ePMceq6vbTlQ4fnuTjSR6a5NVV9XvTk2zml2Nv3NRv3NRvvNTu\nEBpIw1rq7j/q7kuTPCzJ3arqpUOHYlXUbtzUb9zUb7xuPV2p6z8kuXt3v6C7r+juP0iydeBsHJ4T\n6fFy7I2b+o2b+o2X2h1CA2lY36mqc6vqVt393SS/luTMqnpdJvMJML/UbtzUb9zUb7yWqur07t6f\n5IIDd1bVPWNexjFwIj1ejr1xU79xU7/xUrtDaCAN67wkj8pkFZN093e7+4lJPpDkxuFisQrnRe3G\n7Lyo35idF/Ubq+cneWWSdPe7k6SqHpvkTTEJ8xg4kR4vx964qd+4qd94qd0hTKI9oKrak8n/fC/v\n7m8MnYfVU7txU79xU7/xUrtxq6r7Jnlud5970H2PTfLiJE/p7k8MFo6ZHHvjpn7jpn7jpXY/zLdF\nw7oyyaVJLqmqryR5Y5LLu/s7g6ZiNdRu3NRv3NRvvA6u3Y4kb4jajcl7k7ypqu5w4ES6u/8iyV8M\nG4tVcOyNm/qNm/qNl9odwgikAVXVZd39kOnts5M8Nck5SfZmsizuo4fMxy1Tu3FTv3FTv/FSu3Gr\nqsuSvDTJSzJZ0viYP5EeC8feuKnfuKnfeKndDzMCaU509xVJrkiSqjo5yZ2GTcRqqd24qd+4qd94\nqd04dfeHkvzcQSfSr62qY/ZEeowce+OmfuOmfuOldhMaSMO62SVvu/uaJNdscBbWRu3GTf3GTf3G\nS+0WhBPp0XHsjZv6jZv6jZfaHcIlbAAAHFZVPbm7Xz90DgBgGBpIAAAAAMx03NABAAAAAJhvGkgA\nAAAAzKSBBAAAAMBMGkgAAIeoqtOrasfN3H9TVc08f6qqJ6zi+X/oearqwVX14Vv4/a9W1Z0P97wA\nAOtFAwkA4Cipqlsleck6PLVVTwCAQW0eOgAAwNhMG0X/Ncm9MmnuvL+7X5Lk9UnuUlXv7u6fr6pz\nkzwzyaYku5I8tbt3r+L575jk0ky+7PvE9O8BAAZjBBIAwNqdm+T07n5AkgcleURVPSiT0Ue7ps2j\n05K8KMnDuvtnk3xw+vNqXJDk8unfvSnJyUd9DwAA1sAIJACAm3dSVV12yH37MxkNdJ8k702S7r5p\nOnfR2Um+ctDv3i/J9iTvqaokuXWSL65y2/8iyWumz//JqvrWke4EAMDRoIEEAHDzdnX3Qw6+o6pu\nmt68KT94Wdlx0/sOnqvoxiQf7+5fOIJtbzrkuW51BM8BAHDUuIQNAGBt9if5WJKHJ0lVbc7kMraP\nTR9bmv7eFUnuPZ3PKFX1uKp6zCq38dlMRjClqu6T5Pijlh4A4AgYgQQAcPNubuWzA/f9eZL7V9VH\nMhkd9Pbu/uh0cu2vVdUVSc7JZC6jd1XVcpLrk/z6YZ77wP2vSnJpVb0vyWeSfOFo7BAAwJHatH+/\nVWEBAAAAuGUuYQMAAABgJg0kAAAAAGbSQAIAAABgJg0kAAAAAGbSQAIAAABgJg0kAAAAAGbSQAIA\nAABgpv8PI5mDLGiR8v8AAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fdcb12927d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#Displaying stacked bar chart for sentiments\n", | |
"\n", | |
"plt.rc(\"figure\", figsize=(20, 10))\n", | |
"my_plot = newDF[:10].plot(kind='bar',stacked=True,title=\"Sentiments of Hotel\")\n", | |
"my_plot.set_xlabel(\"Hotel Id\")\n", | |
"my_plot.set_ylabel(\"Sentiment\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"tripAdvisorDF=df.drop('City',axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"hotelSFrame=gl.SFrame(tripAdvisorDF)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"$(\"head\").append($(\"<link/>\").attr({\n", | |
" rel: \"stylesheet\",\n", | |
" type: \"text/css\",\n", | |
" href: \"//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css\"\n", | |
"}));\n", | |
"$(\"head\").append($(\"<link/>\").attr({\n", | |
" rel: \"stylesheet\",\n", | |
" type: \"text/css\",\n", | |
" href: \"//dato.com/files/canvas/1.6.1/css/canvas.css\"\n", | |
"}));\n", | |
"\n", | |
" (function(){\n", | |
"\n", | |
" var e = null;\n", | |
" if (typeof element == 'undefined') {\n", | |
" var scripts = document.getElementsByTagName('script');\n", | |
" var thisScriptTag = scripts[scripts.length-1];\n", | |
" var parentDiv = thisScriptTag.parentNode;\n", | |
" e = document.createElement('div');\n", | |
" parentDiv.appendChild(e);\n", | |
" } else {\n", | |
" e = element[0];\n", | |
" }\n", | |
"\n", | |
" if (typeof requirejs !== 'undefined') {\n", | |
" // disable load timeout; ipython_app.js is large and can take a while to load.\n", | |
" requirejs.config({waitSeconds: 0});\n", | |
" }\n", | |
"\n", | |
" require(['//dato.com/files/canvas/1.6.1/js/ipython_app.js'], function(IPythonApp){\n", | |
" var app = new IPythonApp();\n", | |
" app.attachView('sframe','Summary', {\"ipython\": true, \"sketch\": {\"Price\": {\"complete\": true, \"numeric\": false, \"num_unique\": 197, \"num_undefined\": 0, \"progress\": 1.0, \"frequent_items\": {\"$67 - $113*\": {\"frequency\": 85, \"value\": \"$67 - $113*\"}, \"$97 - $102*\": {\"frequency\": 132, \"value\": \"$97 - $102*\"}, \"$124 - $280*\": {\"frequency\": 299, \"value\": \"$124 - $280*\"}, \"$51 - $123*\": {\"frequency\": 18, \"value\": \"$51 - $123*\"}, \"$59 - $85*\": {\"frequency\": 7, \"value\": \"$59 - $85*\"}, \"$100 - $156*\": {\"frequency\": 84, \"value\": \"$100 - $156*\"}, \"$67 - $167*\": {\"frequency\": 19, \"value\": \"$67 - $167*\"}, \"$68 and up*\": {\"frequency\": 84, \"value\": \"$68 and up*\"}, \"$90 - $181*\": {\"frequency\": 46, \"value\": \"$90 - $181*\"}, \"$125 - $229*\": {\"frequency\": 67, \"value\": \"$125 - $229*\"}, \"$73 - $103*\": {\"frequency\": 16, \"value\": \"$73 - $103*\"}, \"$129 - $256*\": {\"frequency\": 288, \"value\": \"$129 - $256*\"}, \"$90 - $204*\": {\"frequency\": 28, \"value\": \"$90 - $204*\"}, \"$313 - $467*\": {\"frequency\": 325, \"value\": \"$313 - $467*\"}, \"0\": {\"frequency\": 15, \"value\": \"0\"}, \"$93 - $126*\": {\"frequency\": 23, \"value\": \"$93 - $126*\"}, \"$74 - $160*\": {\"frequency\": 81, \"value\": \"$74 - $160*\"}, \"$63 - $171*\": {\"frequency\": 125, \"value\": \"$63 - $171*\"}, \"$85 - $125*\": {\"frequency\": 36, \"value\": \"$85 - $125*\"}, \"$74 - $181*\": {\"frequency\": 112, \"value\": \"$74 - $181*\"}, \"$56 - $97*\": {\"frequency\": 36, \"value\": \"$56 - $97*\"}, \"$247 - $1,138*\": {\"frequency\": 373, \"value\": \"$247 - $1,138*\"}, \"$86 - $157*\": {\"frequency\": 83, \"value\": \"$86 - $157*\"}, \"$50 - $66*\": {\"frequency\": 24, \"value\": \"$50 - $66*\"}, \"$117 - $218*\": {\"frequency\": 113, \"value\": \"$117 - $218*\"}, \"$113 - $151*\": {\"frequency\": 102, \"value\": \"$113 - $151*\"}, \"$45 - $55*\": {\"frequency\": 10, \"value\": \"$45 - $55*\"}, \"$144 - $472*\": {\"frequency\": 590, \"value\": \"$144 - $472*\"}, \"$69 - $84*\": {\"frequency\": 16, \"value\": \"$69 - $84*\"}, \"$192 - $407*\": {\"frequency\": 344, \"value\": \"$192 - $407*\"}, \"$49 - $51*\": {\"frequency\": 9, \"value\": \"$49 - $51*\"}, \"$182 - $501*\": {\"frequency\": 320, \"value\": \"$182 - $501*\"}, \"$58 - $77*\": {\"frequency\": 50, \"value\": \"$58 - $77*\"}, \"$74 - $121*\": {\"frequency\": 44, \"value\": \"$74 - $121*\"}, \"$210 - $535*\": {\"frequency\": 155, \"value\": \"$210 - $535*\"}, \"$209 - $314*\": {\"frequency\": 157, \"value\": \"$209 - $314*\"}, \"$65 - $83*\": {\"frequency\": 36, \"value\": \"$65 - $83*\"}, \"$107 - $228*\": {\"frequency\": 318, \"value\": \"$107 - $228*\"}, \"$153 - $307*\": {\"frequency\": 97, \"value\": \"$153 - $307*\"}, \"$162 - $276*\": {\"frequency\": 200, \"value\": \"$162 - $276*\"}, \"$113 - $280*\": {\"frequency\": 50, \"value\": \"$113 - $280*\"}, \"$92 - $163*\": {\"frequency\": 63, \"value\": \"$92 - $163*\"}, \"$90 - $182*\": {\"frequency\": 26, \"value\": \"$90 - $182*\"}, \"$53 - $86*\": {\"frequency\": 25, \"value\": \"$53 - $86*\"}, \"$134 - $214*\": {\"frequency\": 397, \"value\": \"$134 - $214*\"}, \"$129 - $217*\": {\"frequency\": 296, \"value\": \"$129 - $217*\"}, \"$43 - $52*\": {\"frequency\": 8, \"value\": \"$43 - $52*\"}, \"$94 - $393*\": {\"frequency\": 476, \"value\": \"$94 - $393*\"}, \"$135 - $373*\": {\"frequency\": 36, \"value\": \"$135 - $373*\"}, \"$95 - $188*\": {\"frequency\": 64, \"value\": \"$95 - $188*\"}, \"$40 - $56*\": {\"frequency\": 32, \"value\": \"$40 - $56*\"}, \"$84 - $142*\": {\"frequency\": 46, \"value\": \"$84 - $142*\"}, \"$146 - $231*\": {\"frequency\": 34, \"value\": \"$146 - $231*\"}, \"$74 - $101*\": {\"frequency\": 47, \"value\": \"$74 - $101*\"}, \"$51 - $77*\": {\"frequency\": 17, \"value\": \"$51 - $77*\"}, \"$156 - $286*\": {\"frequency\": 59, \"value\": \"$156 - $286*\"}, \"$69 - $139*\": {\"frequency\": 114, \"value\": \"$69 - $139*\"}, \"$109 - $199*\": {\"frequency\": 159, \"value\": \"$109 - $199*\"}, \"$118 - $222*\": {\"frequency\": 60, \"value\": \"$118 - $222*\"}, \"$191 - $345*\": {\"frequency\": 546, \"value\": \"$191 - $345*\"}, \"$252 - $588*\": {\"frequency\": 264, \"value\": \"$252 - $588*\"}, \"$169 - $372*\": {\"frequency\": 229, \"value\": \"$169 - $372*\"}, \"$144 - $348*\": {\"frequency\": 472, \"value\": \"$144 - $348*\"}, \"$87 - $156*\": {\"frequency\": 10, \"value\": \"$87 - $156*\"}, \"$111 - $189*\": {\"frequency\": 60, \"value\": \"$111 - $189*\"}, \"$50 - $152*\": {\"frequency\": 28, \"value\": \"$50 - $152*\"}, \"$166 - $346*\": {\"frequency\": 192, \"value\": \"$166 - $346*\"}, \"$240 - $610*\": {\"frequency\": 353, \"value\": \"$240 - $610*\"}, \"$128 - $264*\": {\"frequency\": 218, \"value\": \"$128 - $264*\"}, \"$34 - $50*\": {\"frequency\": 20, \"value\": \"$34 - $50*\"}, \"$204 - $310*\": {\"frequency\": 144, \"value\": \"$204 - $310*\"}, \"$203 - $378*\": {\"frequency\": 236, \"value\": \"$203 - $378*\"}, \"$108 - $148*\": {\"frequency\": 91, \"value\": \"$108 - $148*\"}, \"$123 - $196*\": {\"frequency\": 161, \"value\": \"$123 - $196*\"}, \"$36 - $46*\": {\"frequency\": 9, \"value\": \"$36 - $46*\"}, \"$146 - $278*\": {\"frequency\": 44, \"value\": \"$146 - $278*\"}, \"$124 - $147*\": {\"frequency\": 20, \"value\": \"$124 - $147*\"}, \"$77 - $93*\": {\"frequency\": 57, \"value\": \"$77 - $93*\"}, \"$118 - $225*\": {\"frequency\": 135, \"value\": \"$118 - $225*\"}, \"$59 and up*\": {\"frequency\": 109, \"value\": \"$59 and up*\"}, \"$158 - $248*\": {\"frequency\": 92, \"value\": \"$158 - $248*\"}, \"$40 - $67*\": {\"frequency\": 47, \"value\": \"$40 - $67*\"}, \"$73 - $85*\": {\"frequency\": 191, \"value\": \"$73 - $85*\"}, \"$135 - $375*\": {\"frequency\": 20, \"value\": \"$135 - $375*\"}, \"$91 - $140*\": {\"frequency\": 50, \"value\": \"$91 - $140*\"}, \"$164 - $402*\": {\"frequency\": 210, \"value\": \"$164 - $402*\"}, \"$78 - $169*\": {\"frequency\": 23, \"value\": \"$78 - $169*\"}, \"$106 - $129*\": {\"frequency\": 180, \"value\": \"$106 - $129*\"}, \"$135 - $259*\": {\"frequency\": 37, \"value\": \"$135 - $259*\"}, \"$65 - $318*\": {\"frequency\": 39, \"value\": \"$65 - $318*\"}, \"$81 - $160*\": {\"frequency\": 95, \"value\": \"$81 - $160*\"}, \"$161 - $261*\": {\"frequency\": 166, \"value\": \"$161 - $261*\"}, \"$74 - $113*\": {\"frequency\": 24, \"value\": \"$74 - $113*\"}, \"$183 - $378*\": {\"frequency\": 488, \"value\": \"$183 - $378*\"}, \"$97 and up*\": {\"frequency\": 74, \"value\": \"$97 and up*\"}, \"$80 - $186*\": {\"frequency\": 168, \"value\": \"$80 - $186*\"}, \"$162 - $197*\": {\"frequency\": 174, \"value\": \"$162 - $197*\"}, \"$122 - $194*\": {\"frequency\": 112, \"value\": \"$122 - $194*\"}, \"$134 - $183*\": {\"frequency\": 28, \"value\": \"$134 - $183*\"}, \"$90 - $254*\": {\"frequency\": 64, \"value\": \"$90 - $254*\"}, \"$90 - $147*\": {\"frequency\": 19, \"value\": \"$90 - $147*\"}, \"$67 - $94*\": {\"frequency\": 56, \"value\": \"$67 - $94*\"}, \"$94 and up*\": {\"frequency\": 181, \"value\": \"$94 and up*\"}, \"$51 - $82*\": {\"frequency\": 75, \"value\": \"$51 - $82*\"}, \"$77 - $96*\": {\"frequency\": 8, \"value\": \"$77 - $96*\"}, \"$74 - $108*\": {\"frequency\": 96, \"value\": \"$74 - $108*\"}, \"$147 - $241*\": {\"frequency\": 95, \"value\": \"$147 - $241*\"}, \"$77 - $123*\": {\"frequency\": 32, \"value\": \"$77 - $123*\"}, \"$79 - $140*\": {\"frequency\": 54, \"value\": \"$79 - $140*\"}, \"$77 - $154*\": {\"frequency\": 41, \"value\": \"$77 - $154*\"}, \"$65 - $102*\": {\"frequency\": 15, \"value\": \"$65 - $102*\"}, \"$126 - $229*\": {\"frequency\": 745, \"value\": \"$126 - $229*\"}, \"$54 - $77*\": {\"frequency\": 27, \"value\": \"$54 - $77*\"}, \"$131 - $281*\": {\"frequency\": 323, \"value\": \"$131 - $281*\"}, \"$115 - $229*\": {\"frequency\": 137, \"value\": \"$115 - $229*\"}, \"$111 - $134*\": {\"frequency\": 37, \"value\": \"$111 - $134*\"}, \"$101 - $186*\": {\"frequency\": 40, \"value\": \"$101 - $186*\"}, \"$84 and up*\": {\"frequency\": 67, \"value\": \"$84 and up*\"}, \"$111 - $246*\": {\"frequency\": 55, \"value\": \"$111 - $246*\"}, \"$210 - $277*\": {\"frequency\": 316, \"value\": \"$210 - $277*\"}, \"$66 - $121*\": {\"frequency\": 12, \"value\": \"$66 - $121*\"}, \"$114 - $263*\": {\"frequency\": 114, \"value\": \"$114 - $263*\"}, \"$82 - $167*\": {\"frequency\": 70, \"value\": \"$82 - $167*\"}, \"$30 - $51*\": {\"frequency\": 25, \"value\": \"$30 - $51*\"}, \"$90 - $118*\": {\"frequency\": 45, \"value\": \"$90 - $118*\"}, \"$113 - $257*\": {\"frequency\": 128, \"value\": \"$113 - $257*\"}, \"$85 - $108*\": {\"frequency\": 31, \"value\": \"$85 - $108*\"}, \"$59 - $177*\": {\"frequency\": 20, \"value\": \"$59 - $177*\"}, \"$80 - $132*\": {\"frequency\": 94, \"value\": \"$80 - $132*\"}, \"$103 - $198*\": {\"frequency\": 76, \"value\": \"$103 - $198*\"}, \"$115 - $212*\": {\"frequency\": 131, \"value\": \"$115 - $212*\"}, \"$63 - $168*\": {\"frequency\": 90, \"value\": \"$63 - $168*\"}, \"$45 - $68*\": {\"frequency\": 13, \"value\": \"$45 - $68*\"}, \"$139 - $296*\": {\"frequency\": 82, \"value\": \"$139 - $296*\"}, \"$55 - $57*\": {\"frequency\": 12, \"value\": \"$55 - $57*\"}, \"$480 - $674*\": {\"frequency\": 144, \"value\": \"$480 - $674*\"}, \"$132 - $271*\": {\"frequency\": 175, \"value\": \"$132 - $271*\"}, \"$124 - $249*\": {\"frequency\": 71, \"value\": \"$124 - $249*\"}, \"$211 - $325*\": {\"frequency\": 426, \"value\": \"$211 - $325*\"}, \"$74 - $105*\": {\"frequency\": 18, \"value\": \"$74 - $105*\"}, \"$101 - $168*\": {\"frequency\": 13, \"value\": \"$101 - $168*\"}, \"$56 - $133*\": {\"frequency\": 75, \"value\": \"$56 - $133*\"}, \"$131 - $233*\": {\"frequency\": 168, \"value\": \"$131 - $233*\"}, \"$75 - $106*\": {\"frequency\": 240, \"value\": \"$75 - $106*\"}, \"$110 - $226*\": {\"frequency\": 185, \"value\": \"$110 - $226*\"}, \"$101 - $144*\": {\"frequency\": 25, \"value\": \"$101 - $144*\"}, \"$146 - $171*\": {\"frequency\": 88, \"value\": \"$146 - $171*\"}, \"$90 - $172*\": {\"frequency\": 163, \"value\": \"$90 - $172*\"}, \"$64 - $74*\": {\"frequency\": 18, \"value\": \"$64 - $74*\"}, \"$73 - $81*\": {\"frequency\": 15, \"value\": \"$73 - $81*\"}, \"$119 - $129*\": {\"frequency\": 235, \"value\": \"$119 - $129*\"}, \"$234 - $460*\": {\"frequency\": 354, \"value\": \"$234 - $460*\"}, \"$90 - $160*\": {\"frequency\": 16, \"value\": \"$90 - $160*\"}, \"$101 - $214*\": {\"frequency\": 32, \"value\": \"$101 - $214*\"}, \"$71 - $154*\": {\"frequency\": 104, \"value\": \"$71 - $154*\"}, \"$51 - $68*\": {\"frequency\": 39, \"value\": \"$51 - $68*\"}, \"$80 - $99*\": {\"frequency\": 35, \"value\": \"$80 - $99*\"}, \"$77 - $89*\": {\"frequency\": 12, \"value\": \"$77 - $89*\"}, \"$233 - $408*\": {\"frequency\": 353, \"value\": \"$233 - $408*\"}, \"$31 - $52*\": {\"frequency\": 8, \"value\": \"$31 - $52*\"}, \"$76 - $112*\": {\"frequency\": 20, \"value\": \"$76 - $112*\"}, \"$243 - $389*\": {\"frequency\": 441, \"value\": \"$243 - $389*\"}, \"$130 - $230*\": {\"frequency\": 54, \"value\": \"$130 - $230*\"}, \"$67 - $81*\": {\"frequency\": 12, \"value\": \"$67 - $81*\"}, \"$112 - $179*\": {\"frequency\": 114, \"value\": \"$112 - $179*\"}, \"$279 - $449*\": {\"frequency\": 93, \"value\": \"$279 - $449*\"}, \"$222 - $414*\": {\"frequency\": 579, \"value\": \"$222 - $414*\"}, \"$136 - $316*\": {\"frequency\": 326, \"value\": \"$136 - $316*\"}, \"$144 - $231*\": {\"frequency\": 460, \"value\": \"$144 - $231*\"}, \"$152 - $404*\": {\"frequency\": 838, \"value\": \"$152 - $404*\"}, \"$85 - $228*\": {\"frequency\": 92, \"value\": \"$85 - $228*\"}, \"$204 - $335*\": {\"frequency\": 93, \"value\": \"$204 - $335*\"}, \"$84 - $102*\": {\"frequency\": 53, \"value\": \"$84 - $102*\"}, \"$115 - $161*\": {\"frequency\": 56, \"value\": \"$115 - $161*\"}, \"$89 - $149*\": {\"frequency\": 112, \"value\": \"$89 - $149*\"}, \"$61 - $111*\": {\"frequency\": 144, \"value\": \"$61 - $111*\"}, \"$45 - $75*\": {\"frequency\": 12, \"value\": \"$45 - $75*\"}, \"$95 - $146*\": {\"frequency\": 74, \"value\": \"$95 - $146*\"}, \"$95 - $97*\": {\"frequency\": 13, \"value\": \"$95 - $97*\"}, \"$121 - $171*\": {\"frequency\": 188, \"value\": \"$121 - $171*\"}, \"$95 - $214*\": {\"frequency\": 97, \"value\": \"$95 - $214*\"}, \"$81 - $109*\": {\"frequency\": 60, \"value\": \"$81 - $109*\"}, \"$64 - $140*\": {\"frequency\": 68, \"value\": \"$64 - $140*\"}, \"$180 - $343*\": {\"frequency\": 503, \"value\": \"$180 - $343*\"}, \"$88 - $132*\": {\"frequency\": 46, \"value\": \"$88 - $132*\"}, \"$113 - $329*\": {\"frequency\": 183, \"value\": \"$113 - $329*\"}, \"$223 - $830*\": {\"frequency\": 378, \"value\": \"$223 - $830*\"}, \"$101 - $136*\": {\"frequency\": 34, \"value\": \"$101 - $136*\"}, \"$57 and up*\": {\"frequency\": 148, \"value\": \"$57 and up*\"}, \"$197 - $746*\": {\"frequency\": 206, \"value\": \"$197 - $746*\"}, \"$69 - $160*\": {\"frequency\": 170, \"value\": \"$69 - $160*\"}, \"$134 - $189*\": {\"frequency\": 108, \"value\": \"$134 - $189*\"}, \"$99 - $214*\": {\"frequency\": 561, \"value\": \"$99 - $214*\"}, \"$117 - $189*\": {\"frequency\": 233, \"value\": \"$117 - $189*\"}, \"$147 - $335*\": {\"frequency\": 271, \"value\": \"$147 - $335*\"}, \"$163 - $241*\": {\"frequency\": 367, \"value\": \"$163 - $241*\"}, \"$85 - $99*\": {\"frequency\": 17, \"value\": \"$85 - $99*\"}}, \"size\": 26254}, \"Review\": {\"complete\": true, \"numeric\": false, \"num_unique\": 26177, \"num_undefined\": 0, \"progress\": 1.0, \"frequent_items\": {}, \"size\": 26254}, \"HotelId\": {\"complete\": true, \"numeric\": false, \"num_unique\": 197, \"num_undefined\": 0, \"progress\": 1.0, \"frequent_items\": {\"77274\": {\"frequency\": 579, \"value\": \"77274\"}, \"74805\": {\"frequency\": 18, \"value\": \"74805\"}, \"77270\": {\"frequency\": 397, \"value\": \"77270\"}, \"73792\": {\"frequency\": 97, \"value\": \"73792\"}, \"76460\": {\"frequency\": 28, \"value\": \"76460\"}, \"73393\": {\"frequency\": 93, \"value\": \"73393\"}, \"79981\": {\"frequency\": 180, \"value\": \"79981\"}, \"73751\": {\"frequency\": 19, \"value\": \"73751\"}, \"79985\": {\"frequency\": 114, \"value\": \"79985\"}, \"73799\": {\"frequency\": 63, \"value\": \"73799\"}, \"79902\": {\"frequency\": 108, \"value\": \"79902\"}, \"77277\": {\"frequency\": 81, \"value\": \"77277\"}, \"77676\": {\"frequency\": 148, \"value\": \"77676\"}, \"74669\": {\"frequency\": 12, \"value\": \"74669\"}, \"74410\": {\"frequency\": 12, \"value\": \"74410\"}, \"80223\": {\"frequency\": 90, \"value\": \"80223\"}, \"80227\": {\"frequency\": 476, \"value\": \"80227\"}, \"73810\": {\"frequency\": 23, \"value\": \"73810\"}, \"77844\": {\"frequency\": 44, \"value\": \"77844\"}, \"77775\": {\"frequency\": 353, \"value\": \"77775\"}, \"76277\": {\"frequency\": 71, \"value\": \"76277\"}, \"73727\": {\"frequency\": 44, \"value\": \"73727\"}, \"73896\": {\"frequency\": 64, \"value\": \"73896\"}, \"73943\": {\"frequency\": 320, \"value\": \"73943\"}, \"73947\": {\"frequency\": 163, \"value\": \"73947\"}, \"76279\": {\"frequency\": 159, \"value\": \"76279\"}, \"73977\": {\"frequency\": 15, \"value\": \"73977\"}, \"72586\": {\"frequency\": 137, \"value\": \"72586\"}, \"73787\": {\"frequency\": 50, \"value\": \"73787\"}, \"76458\": {\"frequency\": 24, \"value\": \"76458\"}, \"74652\": {\"frequency\": 15, \"value\": \"74652\"}, \"77237\": {\"frequency\": 318, \"value\": \"77237\"}, \"74657\": {\"frequency\": 10, \"value\": \"74657\"}, \"78037\": {\"frequency\": 326, \"value\": \"78037\"}, \"77859\": {\"frequency\": 17, \"value\": \"77859\"}, \"79977\": {\"frequency\": 94, \"value\": \"79977\"}, \"79971\": {\"frequency\": 426, \"value\": \"79971\"}, \"77917\": {\"frequency\": 218, \"value\": \"77917\"}, \"80033\": {\"frequency\": 46, \"value\": \"80033\"}, \"77852\": {\"frequency\": 183, \"value\": \"77852\"}, \"77282\": {\"frequency\": 96, \"value\": \"77282\"}, \"76741\": {\"frequency\": 168, \"value\": \"76741\"}, \"79873\": {\"frequency\": 128, \"value\": \"79873\"}, \"78135\": {\"frequency\": 34, \"value\": \"78135\"}, \"73869\": {\"frequency\": 9, \"value\": \"73869\"}, \"80138\": {\"frequency\": 131, \"value\": \"80138\"}, \"73718\": {\"frequency\": 57, \"value\": \"73718\"}, \"73923\": {\"frequency\": 10, \"value\": \"73923\"}, \"80131\": {\"frequency\": 185, \"value\": \"80131\"}, \"73712\": {\"frequency\": 25, \"value\": \"73712\"}, \"80133\": {\"frequency\": 288, \"value\": \"80133\"}, \"73862\": {\"frequency\": 25, \"value\": \"73862\"}, \"80193\": {\"frequency\": 503, \"value\": \"80193\"}, \"80192\": {\"frequency\": 28, \"value\": \"80192\"}, \"75688\": {\"frequency\": 373, \"value\": \"75688\"}, \"79888\": {\"frequency\": 39, \"value\": \"79888\"}, \"76446\": {\"frequency\": 20, \"value\": \"76446\"}, \"79907\": {\"frequency\": 210, \"value\": \"79907\"}, \"76686\": {\"frequency\": 181, \"value\": \"76686\"}, \"76442\": {\"frequency\": 354, \"value\": \"76442\"}, \"74720\": {\"frequency\": 13, \"value\": \"74720\"}, \"74816\": {\"frequency\": 8, \"value\": \"74816\"}, \"77753\": {\"frequency\": 85, \"value\": \"77753\"}, \"76061\": {\"frequency\": 316, \"value\": \"76061\"}, \"77829\": {\"frequency\": 64, \"value\": \"77829\"}, \"74927\": {\"frequency\": 15, \"value\": \"74927\"}, \"80129\": {\"frequency\": 67, \"value\": \"80129\"}, \"73937\": {\"frequency\": 26, \"value\": \"73937\"}, \"77827\": {\"frequency\": 157, \"value\": \"77827\"}, \"73706\": {\"frequency\": 45, \"value\": \"73706\"}, \"72572\": {\"frequency\": 233, \"value\": \"72572\"}, \"79896\": {\"frequency\": 12, \"value\": \"79896\"}, \"80189\": {\"frequency\": 68, \"value\": \"80189\"}, \"73768\": {\"frequency\": 24, \"value\": \"73768\"}, \"73855\": {\"frequency\": 175, \"value\": \"73855\"}, \"74583\": {\"frequency\": 46, \"value\": \"74583\"}, \"72579\": {\"frequency\": 113, \"value\": \"72579\"}, \"77888\": {\"frequency\": 155, \"value\": \"77888\"}, \"74587\": {\"frequency\": 18, \"value\": \"74587\"}, \"73760\": {\"frequency\": 39, \"value\": \"73760\"}, \"77740\": {\"frequency\": 36, \"value\": \"77740\"}, \"80219\": {\"frequency\": 838, \"value\": \"80219\"}, \"74758\": {\"frequency\": 50, \"value\": \"74758\"}, \"79954\": {\"frequency\": 460, \"value\": \"79954\"}, \"78587\": {\"frequency\": 112, \"value\": \"78587\"}, \"77629\": {\"frequency\": 59, \"value\": \"77629\"}, \"78584\": {\"frequency\": 60, \"value\": \"78584\"}, \"77931\": {\"frequency\": 102, \"value\": \"77931\"}, \"80113\": {\"frequency\": 166, \"value\": \"80113\"}, \"80110\": {\"frequency\": 353, \"value\": \"80110\"}, \"73957\": {\"frequency\": 561, \"value\": \"73957\"}, \"77923\": {\"frequency\": 188, \"value\": \"77923\"}, \"74626\": {\"frequency\": 168, \"value\": \"74626\"}, \"74624\": {\"frequency\": 41, \"value\": \"74624\"}, \"79880\": {\"frequency\": 75, \"value\": \"79880\"}, \"77232\": {\"frequency\": 13, \"value\": \"77232\"}, \"78607\": {\"frequency\": 95, \"value\": \"78607\"}, \"73757\": {\"frequency\": 36, \"value\": \"73757\"}, \"74845\": {\"frequency\": 18, \"value\": \"74845\"}, \"75662\": {\"frequency\": 83, \"value\": \"75662\"}, \"78599\": {\"frequency\": 97, \"value\": \"78599\"}, \"80106\": {\"frequency\": 92, \"value\": \"80106\"}, \"80107\": {\"frequency\": 264, \"value\": \"80107\"}, \"77638\": {\"frequency\": 144, \"value\": \"77638\"}, \"77730\": {\"frequency\": 74, \"value\": \"77730\"}, \"80067\": {\"frequency\": 8, \"value\": \"80067\"}, \"78593\": {\"frequency\": 236, \"value\": \"78593\"}, \"73982\": {\"frequency\": 27, \"value\": \"73982\"}, \"73859\": {\"frequency\": 17, \"value\": \"73859\"}, \"79942\": {\"frequency\": 170, \"value\": \"79942\"}, \"78046\": {\"frequency\": 745, \"value\": \"78046\"}, \"76049\": {\"frequency\": 144, \"value\": \"76049\"}, \"77809\": {\"frequency\": 47, \"value\": \"77809\"}, \"73905\": {\"frequency\": 75, \"value\": \"73905\"}, \"76325\": {\"frequency\": 12, \"value\": \"76325\"}, \"76083\": {\"frequency\": 441, \"value\": \"76083\"}, \"74826\": {\"frequency\": 28, \"value\": \"74826\"}, \"77804\": {\"frequency\": 488, \"value\": \"77804\"}, \"78679\": {\"frequency\": 20, \"value\": \"78679\"}, \"74724\": {\"frequency\": 9, \"value\": \"74724\"}, \"80081\": {\"frequency\": 112, \"value\": \"80081\"}, \"80083\": {\"frequency\": 235, \"value\": \"80083\"}, \"76790\": {\"frequency\": 13, \"value\": \"76790\"}, \"77870\": {\"frequency\": 34, \"value\": \"77870\"}, \"76793\": {\"frequency\": 132, \"value\": \"76793\"}, \"77157\": {\"frequency\": 191, \"value\": \"77157\"}, \"73773\": {\"frequency\": 7, \"value\": \"73773\"}, \"75061\": {\"frequency\": 109, \"value\": \"75061\"}, \"74561\": {\"frequency\": 16, \"value\": \"74561\"}, \"77247\": {\"frequency\": 95, \"value\": \"77247\"}, \"74752\": {\"frequency\": 20, \"value\": \"74752\"}, \"77243\": {\"frequency\": 135, \"value\": \"77243\"}, \"73821\": {\"frequency\": 112, \"value\": \"73821\"}, \"73825\": {\"frequency\": 23, \"value\": \"73825\"}, \"80109\": {\"frequency\": 229, \"value\": \"80109\"}, \"78682\": {\"frequency\": 367, \"value\": \"78682\"}, \"79930\": {\"frequency\": 84, \"value\": \"79930\"}, \"78688\": {\"frequency\": 174, \"value\": \"78688\"}, \"80075\": {\"frequency\": 344, \"value\": \"80075\"}, \"77729\": {\"frequency\": 56, \"value\": \"77729\"}, \"74590\": {\"frequency\": 32, \"value\": \"74590\"}, \"76700\": {\"frequency\": 74, \"value\": \"76700\"}, \"80096\": {\"frequency\": 55, \"value\": \"80096\"}, \"80094\": {\"frequency\": 20, \"value\": \"80094\"}, \"80093\": {\"frequency\": 114, \"value\": \"80093\"}, \"77798\": {\"frequency\": 192, \"value\": \"77798\"}, \"78887\": {\"frequency\": 35, \"value\": \"78887\"}, \"77256\": {\"frequency\": 114, \"value\": \"77256\"}, \"80161\": {\"frequency\": 25, \"value\": \"80161\"}, \"76710\": {\"frequency\": 84, \"value\": \"76710\"}, \"72598\": {\"frequency\": 36, \"value\": \"72598\"}, \"77866\": {\"frequency\": 472, \"value\": \"77866\"}, \"74834\": {\"frequency\": 16, \"value\": \"74834\"}, \"76719\": {\"frequency\": 67, \"value\": \"76719\"}, \"78603\": {\"frequency\": 76, \"value\": \"78603\"}, \"80232\": {\"frequency\": 92, \"value\": \"80232\"}, \"73743\": {\"frequency\": 32, \"value\": \"73743\"}, \"80004\": {\"frequency\": 91, \"value\": \"80004\"}, \"77944\": {\"frequency\": 299, \"value\": \"77944\"}, \"73927\": {\"frequency\": 20, \"value\": \"73927\"}, \"80246\": {\"frequency\": 36, \"value\": \"80246\"}, \"80244\": {\"frequency\": 125, \"value\": \"80244\"}, \"74545\": {\"frequency\": 40, \"value\": \"74545\"}, \"77787\": {\"frequency\": 93, \"value\": \"77787\"}, \"80198\": {\"frequency\": 200, \"value\": \"80198\"}, \"73644\": {\"frequency\": 54, \"value\": \"73644\"}, \"79921\": {\"frequency\": 32, \"value\": \"79921\"}, \"74548\": {\"frequency\": 50, \"value\": \"74548\"}, \"74370\": {\"frequency\": 88, \"value\": \"74370\"}, \"78694\": {\"frequency\": 546, \"value\": \"78694\"}, \"79913\": {\"frequency\": 161, \"value\": \"79913\"}, \"75711\": {\"frequency\": 378, \"value\": \"75711\"}, \"77717\": {\"frequency\": 16, \"value\": \"77717\"}, \"77260\": {\"frequency\": 31, \"value\": \"77260\"}, \"76082\": {\"frequency\": 144, \"value\": \"76082\"}, \"80167\": {\"frequency\": 323, \"value\": \"80167\"}, \"79868\": {\"frequency\": 296, \"value\": \"79868\"}, \"78152\": {\"frequency\": 19, \"value\": \"78152\"}, \"73840\": {\"frequency\": 46, \"value\": \"73840\"}, \"77708\": {\"frequency\": 54, \"value\": \"77708\"}, \"80251\": {\"frequency\": 206, \"value\": \"80251\"}, \"77874\": {\"frequency\": 590, \"value\": \"77874\"}, \"75163\": {\"frequency\": 37, \"value\": \"75163\"}, \"73805\": {\"frequency\": 56, \"value\": \"73805\"}, \"80154\": {\"frequency\": 60, \"value\": \"80154\"}, \"77700\": {\"frequency\": 325, \"value\": \"77700\"}, \"73886\": {\"frequency\": 12, \"value\": \"73886\"}, \"77714\": {\"frequency\": 271, \"value\": \"77714\"}, \"73882\": {\"frequency\": 8, \"value\": \"73882\"}, \"80019\": {\"frequency\": 70, \"value\": \"80019\"}, \"73739\": {\"frequency\": 60, \"value\": \"73739\"}, \"73950\": {\"frequency\": 53, \"value\": \"73950\"}, \"80014\": {\"frequency\": 104, \"value\": \"80014\"}, \"77970\": {\"frequency\": 240, \"value\": \"77970\"}, \"79228\": {\"frequency\": 82, \"value\": \"79228\"}, \"73889\": {\"frequency\": 47, \"value\": \"73889\"}, \"80011\": {\"frequency\": 37, \"value\": \"80011\"}}, \"size\": 26254}, \"Sentiment\": {\"complete\": true, \"numeric\": false, \"num_unique\": 3, \"num_undefined\": 0, \"progress\": 1.0, \"frequent_items\": {\"positive\": {\"frequency\": 17425, \"value\": \"positive\"}, \"neutral\": {\"frequency\": 4285, \"value\": \"neutral\"}, \"negative\": {\"frequency\": 4544, \"value\": \"negative\"}}, \"size\": 26254}, \"Name\": {\"complete\": true, \"numeric\": false, \"num_unique\": 196, \"num_undefined\": 0, \"progress\": 1.0, \"frequent_items\": {\"Comfort Inn Near Old Town Pasadena - Eagle Rock\": {\"frequency\": 132, \"value\": \"Comfort Inn Near ...\"}, \"Days Inn Phoenix Airport\": {\"frequency\": 27, \"value\": \"Days Inn Phoenix ...\"}, \"Diamond Head Inn\": {\"frequency\": 55, \"value\": \"Diamond Head Inn\"}, \"Travel Inn\": {\"frequency\": 9, \"value\": \"Travel Inn\"}, \"BEST WESTERN Plus Landing View Inn & Suites\": {\"frequency\": 67, \"value\": \"BEST WESTERN Plus ...\"}, \"Phoenix Metro North Super 8 Motel\": {\"frequency\": 20, \"value\": \"Phoenix Metro ...\"}, \"Roger Smith Hotel\": {\"frequency\": 264, \"value\": \"Roger Smith Hotel\"}, \"Legacy Golf Resort\": {\"frequency\": 168, \"value\": \"Legacy Golf Resort\"}, \"Clarion Hotel & Conference Center\": {\"frequency\": 35, \"value\": \"Clarion Hotel & ...\"}, \"Courtyard by Marriott Phoenix Airport\": {\"frequency\": 32, \"value\": \"Courtyard by ...\"}, \"BEST WESTERN PLUS Boston - The Inn at Longwood Medical\": {\"frequency\": 144, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN Music Capital Inn\": {\"frequency\": 181, \"value\": \"BEST WESTERN Music ...\"}, \"Comfort Inn Near the Sunset Strip\": {\"frequency\": 81, \"value\": \"Comfort Inn Near ...\"}, \"Travelodge Hotel at LAX\": {\"frequency\": 240, \"value\": \"Travelodge Hotel ...\"}, \"BEST WESTERN PLUS Inn at the Vines\": {\"frequency\": 60, \"value\": \"BEST WESTERN PLUS ...\"}, \"Comfort Suites Mission Valley\": {\"frequency\": 91, \"value\": \"Comfort Suites ...\"}, \"Hilton San Diego Mission Valley\": {\"frequency\": 168, \"value\": \"Hilton San Diego ...\"}, \"Courtyard by Marriott Phoenix North\": {\"frequency\": 19, \"value\": \"Courtyard by ...\"}, \"Branson Towers Hotel\": {\"frequency\": 84, \"value\": \"Branson Towers ...\"}, \"Amsterdam Court Hotel\": {\"frequency\": 344, \"value\": \"Amsterdam Court ...\"}, \"Econo Lodge Hollywood\": {\"frequency\": 31, \"value\": \"Econo Lodge ...\"}, \"BEST WESTERN Golden Triangle Inn\": {\"frequency\": 20, \"value\": \"BEST WESTERN ...\"}, \"Holiday Inn Phoenix-West\": {\"frequency\": 23, \"value\": \"Holiday Inn ...\"}, \"Dream Inn\": {\"frequency\": 109, \"value\": \"Dream Inn\"}, \"Hollywood Hotel\": {\"frequency\": 318, \"value\": \"Hollywood Hotel\"}, \"Mission Valley Resort\": {\"frequency\": 125, \"value\": \"Mission Valley ...\"}, \"San Diego Marriott Mission Valley\": {\"frequency\": 92, \"value\": \"San Diego Marriott ...\"}, \"Holiday Inn Express Los Angeles-LAX Airport\": {\"frequency\": 102, \"value\": \"Holiday Inn ...\"}, \"Luxe City Center Hotel\": {\"frequency\": 93, \"value\": \"Luxe City Center ...\"}, \"Holiday Inn Express San Diego Downtown\": {\"frequency\": 128, \"value\": \"Holiday Inn ...\"}, \"Christopher's Inn\": {\"frequency\": 93, \"value\": \"Christopher's Inn\"}, \"Staybridge Suites Chatsworth\": {\"frequency\": 28, \"value\": \"Staybridge Suites ...\"}, \"Budget Lodge of Phoenix\": {\"frequency\": 15, \"value\": \"Budget Lodge of ...\"}, \"Hollywood Roosevelt Hotel - A Thompson Hotel\": {\"frequency\": 579, \"value\": \"Hollywood ...\"}, \"Catamaran Resort Hotel\": {\"frequency\": 426, \"value\": \"Catamaran Resort ...\"}, \"Hollywood Orchid Suites\": {\"frequency\": 397, \"value\": \"Hollywood Orchid ...\"}, \"Sheraton Gateway Los Angeles\": {\"frequency\": 745, \"value\": \"Sheraton Gateway ...\"}, \"Comfort Inn & Suites Seattle\": {\"frequency\": 36, \"value\": \"Comfort Inn & ...\"}, \"Four Seasons Hotel Los Angeles at Beverly Hills\": {\"frequency\": 144, \"value\": \"Four Seasons Hotel ...\"}, \"Kawada Hotel\": {\"frequency\": 47, \"value\": \"Kawada Hotel\"}, \"Courtyard by Marriott San Diego Sorrento Mesa/La Jolla\": {\"frequency\": 37, \"value\": \"Courtyard by ...\"}, \"BEST WESTERN Loyal Inn\": {\"frequency\": 113, \"value\": \"BEST WESTERN Loyal ...\"}, \"Crowne Plaza Beverly Hills\": {\"frequency\": 316, \"value\": \"Crowne Plaza ...\"}, \"BEST WESTERN PLUS Eagle Rock Inn\": {\"frequency\": 13, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Bayside Inn\": {\"frequency\": 108, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Hollywood Hills Hotel\": {\"frequency\": 135, \"value\": \"BEST WESTERN PLUS ...\"}, \"Motel 6 Phoenix North - Bell Road\": {\"frequency\": 8, \"value\": \"Motel 6 Phoenix ...\"}, \"Holiday Inn Los Angeles International Airport\": {\"frequency\": 188, \"value\": \"Holiday Inn Los ...\"}, \"BEST WESTERN PREMIER Ivy Hotel Napa\": {\"frequency\": 97, \"value\": \"BEST WESTERN ...\"}, \"Sleep Inn North\": {\"frequency\": 12, \"value\": \"Sleep Inn North\"}, \"Wine Valley Lodge\": {\"frequency\": 95, \"value\": \"Wine Valley Lodge\"}, \"Embassy Suites San Diego Bay - Downtown\": {\"frequency\": 229, \"value\": \"Embassy Suites San ...\"}, \"BEST WESTERN PLUS Blue Sea Lodge\": {\"frequency\": 210, \"value\": \"BEST WESTERN PLUS ...\"}, \"Hilton Suites Phoenix\": {\"frequency\": 64, \"value\": \"Hilton Suites ...\"}, \"Days Inn & Suites - Sea World/Airport\": {\"frequency\": 104, \"value\": \"Days Inn & Suites ...\"}, \"Vagabond Inn Los Angeles-USC\": {\"frequency\": 34, \"value\": \"Vagabond Inn Los ...\"}, \"BEST WESTERN PLUS Royal Palace Inn & Suites\": {\"frequency\": 54, \"value\": \"BEST WESTERN PLUS ...\"}, \"Days Inn I-17 & Thomas\": {\"frequency\": 24, \"value\": \"Days Inn I-17 & ...\"}, \"Comfort Inn & Suites Zoo / SeaWorld Area\": {\"frequency\": 180, \"value\": \"Comfort Inn & ...\"}, \"La Quinta Inn & Suites Phoenix Chandler\": {\"frequency\": 15, \"value\": \"La Quinta Inn & ...\"}, \"Residence Inn Phoenix Airport\": {\"frequency\": 40, \"value\": \"Residence Inn ...\"}, \"Embassy Suites Phoenix Airport at 24th Street\": {\"frequency\": 97, \"value\": \"Embassy Suites ...\"}, \"Crowne Plaza Hotel San Diego - Mission Valley\": {\"frequency\": 185, \"value\": \"Crowne Plaza Hotel ...\"}, \"Hyatt Regency Mission Bay\": {\"frequency\": 503, \"value\": \"Hyatt Regency ...\"}, \"Chelsea Lodge\": {\"frequency\": 235, \"value\": \"Chelsea Lodge\"}, \"BEST WESTERN Plus Hawthorne Terrace Hotel\": {\"frequency\": 82, \"value\": \"BEST WESTERN Plus ...\"}, \"Sofitel Los Angeles\": {\"frequency\": 441, \"value\": \"Sofitel Los ...\"}, \"The Wilshire Hotel Los Angeles\": {\"frequency\": 183, \"value\": \"The Wilshire Hotel ...\"}, \"Kings Inn Hotel\": {\"frequency\": 90, \"value\": \"Kings Inn Hotel\"}, \"Hampton Inn Phoenix Midtown (Downtown Area)\": {\"frequency\": 23, \"value\": \"Hampton Inn ...\"}, \"Residence Inn Phoenix\": {\"frequency\": 26, \"value\": \"Residence Inn ...\"}, \"BEST WESTERN PLUS Pioneer Square Hotel\": {\"frequency\": 233, \"value\": \"BEST WESTERN PLUS ...\"}, \"Quality Inn I-15 Miramar\": {\"frequency\": 8, \"value\": \"Quality Inn I-15 ...\"}, \"California Suites Hotel\": {\"frequency\": 75, \"value\": \"California Suites ...\"}, \"Howard Johnson Airport Downtown\": {\"frequency\": 20, \"value\": \"Howard Johnson ...\"}, \"Motel 6 Phoenix - Black Canyon\": {\"frequency\": 9, \"value\": \"Motel 6 Phoenix - ...\"}, \"Holiday Inn Phoenix Downtown North\": {\"frequency\": 46, \"value\": \"Holiday Inn ...\"}, \"BEST WESTERN PLUS Executive Inn\": {\"frequency\": 137, \"value\": \"BEST WESTERN PLUS ...\"}, \"Sea Bay Hotel\": {\"frequency\": 148, \"value\": \"Sea Bay Hotel\"}, \"BEST WESTERN Mission Bay Inn\": {\"frequency\": 70, \"value\": \"BEST WESTERN ...\"}, \"Embassy Suites San Diego - La Jolla\": {\"frequency\": 166, \"value\": \"Embassy Suites San ...\"}, \"Holiday Inn & Suites Phoenix Airport North\": {\"frequency\": 50, \"value\": \"Holiday Inn & ...\"}, \"Beverly Garland's Holiday Inn\": {\"frequency\": 367, \"value\": \"Beverly Garland's ...\"}, \"Hampton Inn San Diego - Kearny Mesa\": {\"frequency\": 67, \"value\": \"Hampton Inn San ...\"}, \"Americas Best Value Inn Phoenix/I-10 West\": {\"frequency\": 7, \"value\": \"Americas Best ...\"}, \"Dr. Wilkinson's Hot Springs Resort\": {\"frequency\": 159, \"value\": \"Dr. Wilkinson's ...\"}, \"San Diego - Days Inn Harbor View / Airport / Convention Ctr\": {\"frequency\": 46, \"value\": \"San Diego - Days ...\"}, \"Travelodge San Diego Mission Valley\": {\"frequency\": 68, \"value\": \"Travelodge San ...\"}, \"BEST WESTERN Suites\": {\"frequency\": 12, \"value\": \"BEST WESTERN ...\"}, \"Comfort Inn West\": {\"frequency\": 18, \"value\": \"Comfort Inn West\"}, \"BEST WESTERN Seven Seas\": {\"frequency\": 170, \"value\": \"BEST WESTERN Seven ...\"}, \"The Westin Bonaventure Hotel & Suites\": {\"frequency\": 590, \"value\": \"The Westin ...\"}, \"BEST WESTERN Center Pointe Inn\": {\"frequency\": 74, \"value\": \"BEST WESTERN ...\"}, \"Hyatt Regency Century Plaza\": {\"frequency\": 354, \"value\": \"Hyatt Regency ...\"}, \"Phoenix Place Hotel & Suites\": {\"frequency\": 75, \"value\": \"Phoenix Place ...\"}, \"Sheraton Los Angeles Downtown Hotel\": {\"frequency\": 192, \"value\": \"Sheraton Los ...\"}, \"Motel 6 San Diego Hotel Circle\": {\"frequency\": 36, \"value\": \"Motel 6 San Diego ...\"}, \"Drury Inn & Suites Phoenix Airport\": {\"frequency\": 10, \"value\": \"Drury Inn & Suites ...\"}, \"Metro Plaza Hotel\": {\"frequency\": 64, \"value\": \"Metro Plaza Hotel\"}, \"Hyatt Regency La Jolla\": {\"frequency\": 200, \"value\": \"Hyatt Regency La ...\"}, \"Millennium Biltmore Hotel Los Angeles\": {\"frequency\": 472, \"value\": \"Millennium ...\"}, \"Sleep Inn Airport\": {\"frequency\": 53, \"value\": \"Sleep Inn Airport\"}, \"La Quinta Inn Phoenix Thomas Road\": {\"frequency\": 17, \"value\": \"La Quinta Inn ...\"}, \"Murray Hill Inn\": {\"frequency\": 114, \"value\": \"Murray Hill Inn\"}, \"Days Inn Phoenix Metro Center\": {\"frequency\": 47, \"value\": \"Days Inn Phoenix ...\"}, \"BEST WESTERN Terrace Inn\": {\"frequency\": 59, \"value\": \"BEST WESTERN ...\"}, \"Sheraton Crescent Hotel\": {\"frequency\": 163, \"value\": \"Sheraton Crescent ...\"}, \"Century Wilshire\": {\"frequency\": 20, \"value\": \"Century Wilshire\"}, \"Napa Valley Hotel & Suites\": {\"frequency\": 76, \"value\": \"Napa Valley Hotel ...\"}, \"Howard Johnson Express Inn - San Diego\": {\"frequency\": 28, \"value\": \"Howard Johnson ...\"}, \"Residence Inn San Diego Rancho Bernardo / Carmel Mountain Ranch\": {\"frequency\": 34, \"value\": \"Residence Inn San ...\"}, \"Fairfield Inn Phoenix Airport\": {\"frequency\": 46, \"value\": \"Fairfield Inn ...\"}, \"Manchester Grand Hyatt San Diego\": {\"frequency\": 838, \"value\": \"Manchester Grand ...\"}, \"BEST WESTERN PLUS Island Palms Hotel & Marina\": {\"frequency\": 460, \"value\": \"BEST WESTERN PLUS ...\"}, \"Embassy Suites Hotel Napa Valley\": {\"frequency\": 236, \"value\": \"Embassy Suites ...\"}, \"Roger Williams Hotel\": {\"frequency\": 353, \"value\": \"Roger Williams ...\"}, \"Hilton Los Angeles / Universal City\": {\"frequency\": 546, \"value\": \"Hilton Los Angeles ...\"}, \"BEST WESTERN Airport Inn\": {\"frequency\": 45, \"value\": \"BEST WESTERN ...\"}, \"Luxe Sunset Boulevard Hotel\": {\"frequency\": 157, \"value\": \"Luxe Sunset ...\"}, \"Days Inn Camelback Phoenix and Conference Center\": {\"frequency\": 39, \"value\": \"Days Inn Camelback ...\"}, \"Pointe Hilton Squaw Peak Resort\": {\"frequency\": 561, \"value\": \"Pointe Hilton ...\"}, \"Rodeway Inn & Suites Downtown\": {\"frequency\": 39, \"value\": \"Rodeway Inn & ...\"}, \"San Diego Marriott Marquis & Marina\": {\"frequency\": 476, \"value\": \"San Diego Marriott ...\"}, \"Days Inn Hollywood/Universal Studios\": {\"frequency\": 114, \"value\": \"Days Inn Hollywood ...\"}, \"Miami River Inn\": {\"frequency\": 37, \"value\": \"Miami River Inn\"}, \"Crossland Economy Studios Phoenix\": {\"frequency\": 8, \"value\": \"Crossland Economy ...\"}, \"Extended StayAmerica Phoenix-Airport\": {\"frequency\": 18, \"value\": \"Extended ...\"}, \"Comfort Inn Calistoga, Hot Springs of the West\": {\"frequency\": 71, \"value\": \"Comfort Inn ...\"}, \"Handlery Hotel San Diego\": {\"frequency\": 288, \"value\": \"Handlery Hotel San ...\"}, \"Embassy Suites LAX North\": {\"frequency\": 218, \"value\": \"Embassy Suites LAX ...\"}, \"Comfort Inn & Suites Hotel Circle / SeaWorld\": {\"frequency\": 94, \"value\": \"Comfort Inn & ...\"}, \"Lexington Hotel Central Phoenix\": {\"frequency\": 57, \"value\": \"Lexington Hotel ...\"}, \"Comfort Suites Phoenix / MetroCenter\": {\"frequency\": 16, \"value\": \"Comfort Suites ...\"}, \"Hotel Highland at Biltmore\": {\"frequency\": 41, \"value\": \"Hotel Highland at ...\"}, \"Sterling International Hotels\": {\"frequency\": 16, \"value\": \"Sterling ...\"}, \"BEST WESTERN PLUS Hotel & Conference Center\": {\"frequency\": 74, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN McCarran Inn\": {\"frequency\": 144, \"value\": \"BEST WESTERN ...\"}, \"Omni Los Angeles at California Plaza\": {\"frequency\": 488, \"value\": \"Omni Los Angeles ...\"}, \"Pacific Inn Hotel & Suites\": {\"frequency\": 92, \"value\": \"Pacific Inn Hotel ...\"}, \"Los Angeles Airport Marriott\": {\"frequency\": 326, \"value\": \"Los Angeles ...\"}, \"Dunes Inn - Sunset\": {\"frequency\": 13, \"value\": \"Dunes Inn - Sunset\"}, \"BEST WESTERN Hollywood Plaza Inn\": {\"frequency\": 95, \"value\": \"BEST WESTERN ...\"}, \"Hilton Checkers Hotel - Los Angeles\": {\"frequency\": 155, \"value\": \"Hilton Checkers ...\"}, \"Holiday Inn Express San Diego Airport - Old Town\": {\"frequency\": 114, \"value\": \"Holiday Inn ...\"}, \"Holiday Inn San Diego-Rancho Bernardo\": {\"frequency\": 25, \"value\": \"Holiday Inn San ...\"}, \"Ocean Park Inn\": {\"frequency\": 206, \"value\": \"Ocean Park Inn\"}, \"BEST WESTERN PLUS Hacienda Hotel Old Town\": {\"frequency\": 161, \"value\": \"BEST WESTERN PLUS ...\"}, \"Fairfield Inn Phoenix North\": {\"frequency\": 18, \"value\": \"Fairfield Inn ...\"}, \"Dunes Inn - Wilshire\": {\"frequency\": 16, \"value\": \"Dunes Inn - ...\"}, \"BEST WESTERN Center City Hotel\": {\"frequency\": 88, \"value\": \"BEST WESTERN ...\"}, \"Royal Palms Resort and Spa\": {\"frequency\": 320, \"value\": \"Royal Palms Resort ...\"}, \"Renaissance Montura Los Angeles\": {\"frequency\": 299, \"value\": \"Renaissance ...\"}, \"Rodeway Inn & Suites Pacific Coast Highway\": {\"frequency\": 191, \"value\": \"Rodeway Inn & ...\"}, \"A Victory Inn & Suites Phoenix North\": {\"frequency\": 32, \"value\": \"A Victory Inn & ...\"}, \"Stillwell Hotel\": {\"frequency\": 17, \"value\": \"Stillwell Hotel\"}, \"Hotel Palomar Los Angeles - Westwood - a Kimpton Hotel\": {\"frequency\": 353, \"value\": \"Hotel Palomar Los ...\"}, \"Hyatt Regency Phoenix\": {\"frequency\": 175, \"value\": \"Hyatt Regency ...\"}, \"Grace Inn Phoenix\": {\"frequency\": 44, \"value\": \"Grace Inn Phoenix\"}, \"Marriott Phoenix Airport\": {\"frequency\": 50, \"value\": \"Marriott Phoenix ...\"}, \"Chelsea Inn - 17th Street\": {\"frequency\": 112, \"value\": \"Chelsea Inn - 17th ...\"}, \"Ramada Chatsworth\": {\"frequency\": 24, \"value\": \"Ramada Chatsworth\"}, \"Extended Stay Deluxe Phoenix - Midtown\": {\"frequency\": 15, \"value\": \"Extended Stay ...\"}, \"Embassy Suites Hotel Phoenix-North\": {\"frequency\": 63, \"value\": \"Embassy Suites ...\"}, \"Courtyard by Marriott Phoenix Camelback\": {\"frequency\": 28, \"value\": \"Courtyard by ...\"}, \"Days Inn Phoenix\": {\"frequency\": 13, \"value\": \"Days Inn Phoenix\"}, \"Super 8 Phoenix\": {\"frequency\": 25, \"value\": \"Super 8 Phoenix\"}, \"Radisson Midtown at USC\": {\"frequency\": 44, \"value\": \"Radisson Midtown ...\"}, \"Travelodge Hollywood-Vermont/Sunset\": {\"frequency\": 96, \"value\": \"Travelodge ...\"}, \"Holiday Inn San Diego-Downtown\": {\"frequency\": 131, \"value\": \"Holiday Inn San ...\"}, \"Budget Inn\": {\"frequency\": 12, \"value\": \"Budget Inn\"}, \"Renaissance Phoenix Downtown\": {\"frequency\": 36, \"value\": \"Renaissance ...\"}, \"Howard Johnson Los Angeles\": {\"frequency\": 36, \"value\": \"Howard Johnson Los ...\"}, \"Holiday Inn Express Phoenix Airport (University Drive)\": {\"frequency\": 83, \"value\": \"Holiday Inn ...\"}, \"Kyoto Grand Hotel and Gardens\": {\"frequency\": 271, \"value\": \"Kyoto Grand Hotel ...\"}, \"Chablis Inn\": {\"frequency\": 112, \"value\": \"Chablis Inn\"}, \"Hilton Phoenix Airport\": {\"frequency\": 112, \"value\": \"Hilton Phoenix ...\"}, \"Holiday Inn San Diego - On The Bay\": {\"frequency\": 323, \"value\": \"Holiday Inn San ...\"}, \"BEST WESTERN Phoenix I-17 MetroCenter Inn\": {\"frequency\": 56, \"value\": \"BEST WESTERN ...\"}, \"La Quinta Inn San Diego Scripps Poway\": {\"frequency\": 19, \"value\": \"La Quinta Inn San ...\"}, \"BEST WESTERN PLUS San Diego / Miramar Hotel\": {\"frequency\": 32, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Dragon Gate Inn\": {\"frequency\": 56, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS InnSuites Phoenix Hotel & Suites\": {\"frequency\": 60, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Mikado Hotel\": {\"frequency\": 20, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN Yacht Harbor Hotel\": {\"frequency\": 84, \"value\": \"BEST WESTERN Yacht ...\"}, \"Extended StayAmerica Phoenix - Metro Center\": {\"frequency\": 10, \"value\": \"Extended ...\"}, \"Bay Club Hotel & Marina\": {\"frequency\": 296, \"value\": \"Bay Club Hotel & ...\"}, \"Dream New York\": {\"frequency\": 373, \"value\": \"Dream New York\"}, \"Sportsmen's Lodge Hotel\": {\"frequency\": 174, \"value\": \"Sportsmen's Lodge ...\"}, \"W Los Angeles - Westwood\": {\"frequency\": 325, \"value\": \"W Los Angeles - ...\"}, \"Beachcomber Shores\": {\"frequency\": 12, \"value\": \"Beachcomber Shores\"}, \"BEST WESTERN Market Center\": {\"frequency\": 54, \"value\": \"BEST WESTERN ...\"}, \"La Quinta Inn Phoenix - Arcadia\": {\"frequency\": 50, \"value\": \"La Quinta Inn ...\"}, \"La Quinta Inn Phoenix North\": {\"frequency\": 25, \"value\": \"La Quinta Inn ...\"}, \"The Historic Mayfair Hotel\": {\"frequency\": 85, \"value\": \"The Historic ...\"}, \"Best Western PLUS President Hotel at Times Square\": {\"frequency\": 378, \"value\": \"Best Western PLUS ...\"}, \"BEST WESTERN Canoga Park Motor Inn\": {\"frequency\": 12, \"value\": \"BEST WESTERN ...\"}, \"Holiday Inn San Diego - Mission Valley\": {\"frequency\": 60, \"value\": \"Holiday Inn San ...\"}}, \"size\": 26254}}, \"selected_variable\": {\"name\": [\"hotelSFrame\"], \"descriptives\": {\"rows\": 26254, \"columns\": 5}, \"view_component\": \"Summary\", \"view_file\": \"sframe\", \"view_params\": {\"y\": null, \"x\": null, \"columns\": [\"HotelId\", \"Name\", \"Price\", \"Review\", \"Sentiment\"], \"view\": null}, \"view_components\": [\"Summary\", \"Table\", \"Bar Chart\", \"BoxWhisker Plot\", \"Line Chart\", \"Scatter Plot\", \"Heat Map\", \"Plots\"], \"type\": \"SFrame\", \"columns\": [{\"dtype\": \"str\", \"name\": \"HotelId\"}, {\"dtype\": \"str\", \"name\": \"Name\"}, {\"dtype\": \"str\", \"name\": \"Price\"}, {\"dtype\": \"str\", \"name\": \"Review\"}, {\"dtype\": \"str\", \"name\": \"Sentiment\"}], \"column_identifiers\": [\"Price\", \"Review\", \"HotelId\", \"Sentiment\", \"Name\"]}, \"columns\": [{\"dtype\": \"str\", \"name\": \"HotelId\"}, {\"dtype\": \"str\", \"name\": \"Name\"}, {\"dtype\": \"str\", \"name\": \"Price\"}, {\"dtype\": \"str\", \"name\": \"Review\"}, {\"dtype\": \"str\", \"name\": \"Sentiment\"}]}, e);\n", | |
" });\n", | |
" })();\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"hotelSFrame.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#Building Word Count Vector" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"hotelSFrame['word_count']=gl.text_analytics.count_words(hotelSFrame['Review'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\"><table frame=\"box\" rules=\"cols\">\n", | |
" <tr>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">HotelId</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Name</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Price</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Review</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Sentiment</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Great experience”<br>When searching for a ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Very helpful staff<br>-Kelly helped us make ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Wonderful” I stayed<br>here in late March, I ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Excellent” We really<br>enjoyed out stay in this ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Friendliest staff &<br>hotel with every amenity ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Wonderful Visit in<br>Calistoga, CA” My ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Calistoga is wonderful<br>and this works” The ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Basic OK lodging in<br>upper wine country” ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">neutral</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Generic stop in lovely<br>surroundings” I'm ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">neutral</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">“Great staff, tired<br>pool” We spent the ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">neutral</td>\n", | |
" </tr>\n", | |
"</table>\n", | |
"<table frame=\"box\" rules=\"cols\">\n", | |
" <tr>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">word_count</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'and': 3, 'few': 1,<br>'relaxation': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'liked': 1, 'too!': 1,<br>'helped': 1, 'bed': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'summer': 1, 'all': 1,<br>'cold': 1, 'bill.': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'helpful.': 1, 'and': 2,<br>\"don't\": 1, 'is': 2, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'all': 1, 'mom': 1,<br>'area.': 1, 'staff': 2, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'walking': 1, 'just': 2,<br>'enjoyed': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'and': 4, 'point': 1,<br>'is': 3, 'inn': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'product,': 1,<br>'consider': 1, 'helena': ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'area,': 1, 'cute': 1,<br>'walking': 1, 'comfort': ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'colors': 1, 'go': 1,<br>'find': 1, 'staff': 1, ...</td>\n", | |
" </tr>\n", | |
"</table>\n", | |
"[10 rows x 6 columns]<br/>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"Columns:\n", | |
"\tHotelId\tstr\n", | |
"\tName\tstr\n", | |
"\tPrice\tstr\n", | |
"\tReview\tstr\n", | |
"\tSentiment\tstr\n", | |
"\tword_count\tdict\n", | |
"\n", | |
"Rows: 10\n", | |
"\n", | |
"Data:\n", | |
"+---------+-------------------------------+--------------+\n", | |
"| HotelId | Name | Price |\n", | |
"+---------+-------------------------------+--------------+\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"+---------+-------------------------------+--------------+\n", | |
"+-------------------------------+-----------+-------------------------------+\n", | |
"| Review | Sentiment | word_count |\n", | |
"+-------------------------------+-----------+-------------------------------+\n", | |
"| “Great experience” When se... | positive | {'and': 3, 'few': 1, 'rela... |\n", | |
"| “Very helpful staff -Kelly... | positive | {'liked': 1, 'too!': 1, 'h... |\n", | |
"| “Wonderful” I stayed here ... | positive | {'summer': 1, 'all': 1, 'c... |\n", | |
"| “Excellent” We really enjo... | positive | {'helpful.': 1, 'and': 2, ... |\n", | |
"| “Friendliest staff & hotel... | positive | {'all': 1, 'mom': 1, 'area... |\n", | |
"| “Wonderful Visit in Calist... | positive | {'walking': 1, 'just': 2, ... |\n", | |
"| “Calistoga is wonderful an... | positive | {'and': 4, 'point': 1, 'is... |\n", | |
"| “Basic OK lodging in upper... | neutral | {'product,': 1, 'consider'... |\n", | |
"| “Generic stop in lovely su... | neutral | {'area,': 1, 'cute': 1, 'w... |\n", | |
"| “Great staff, tired pool” ... | neutral | {'colors': 1, 'go': 1, 'fi... |\n", | |
"+-------------------------------+-----------+-------------------------------+\n", | |
"[10 rows x 6 columns]" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"hotelSFrame.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 145, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"$(\"head\").append($(\"<link/>\").attr({\n", | |
" rel: \"stylesheet\",\n", | |
" type: \"text/css\",\n", | |
" href: \"//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css\"\n", | |
"}));\n", | |
"$(\"head\").append($(\"<link/>\").attr({\n", | |
" rel: \"stylesheet\",\n", | |
" type: \"text/css\",\n", | |
" href: \"//dato.com/files/canvas/1.6.1/css/canvas.css\"\n", | |
"}));\n", | |
"\n", | |
" (function(){\n", | |
"\n", | |
" var e = null;\n", | |
" if (typeof element == 'undefined') {\n", | |
" var scripts = document.getElementsByTagName('script');\n", | |
" var thisScriptTag = scripts[scripts.length-1];\n", | |
" var parentDiv = thisScriptTag.parentNode;\n", | |
" e = document.createElement('div');\n", | |
" parentDiv.appendChild(e);\n", | |
" } else {\n", | |
" e = element[0];\n", | |
" }\n", | |
"\n", | |
" if (typeof requirejs !== 'undefined') {\n", | |
" // disable load timeout; ipython_app.js is large and can take a while to load.\n", | |
" requirejs.config({waitSeconds: 0});\n", | |
" }\n", | |
"\n", | |
" require(['//dato.com/files/canvas/1.6.1/js/ipython_app.js'], function(IPythonApp){\n", | |
" var app = new IPythonApp();\n", | |
" app.attachView('sarray','Categorical', {\"ipython\": true, \"sketch\": {\"complete\": true, \"numeric\": false, \"num_unique\": 196, \"num_undefined\": 0, \"progress\": 1.0, \"frequent_items\": {\"Comfort Inn Near Old Town Pasadena - Eagle Rock\": {\"frequency\": 132, \"value\": \"Comfort Inn Near ...\"}, \"Days Inn Phoenix Airport\": {\"frequency\": 27, \"value\": \"Days Inn Phoenix ...\"}, \"Diamond Head Inn\": {\"frequency\": 55, \"value\": \"Diamond Head Inn\"}, \"Travel Inn\": {\"frequency\": 9, \"value\": \"Travel Inn\"}, \"BEST WESTERN Plus Landing View Inn & Suites\": {\"frequency\": 67, \"value\": \"BEST WESTERN Plus ...\"}, \"Phoenix Metro North Super 8 Motel\": {\"frequency\": 20, \"value\": \"Phoenix Metro ...\"}, \"Roger Smith Hotel\": {\"frequency\": 264, \"value\": \"Roger Smith Hotel\"}, \"Legacy Golf Resort\": {\"frequency\": 168, \"value\": \"Legacy Golf Resort\"}, \"Clarion Hotel & Conference Center\": {\"frequency\": 35, \"value\": \"Clarion Hotel & ...\"}, \"Courtyard by Marriott Phoenix Airport\": {\"frequency\": 32, \"value\": \"Courtyard by ...\"}, \"BEST WESTERN PLUS Boston - The Inn at Longwood Medical\": {\"frequency\": 144, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN Music Capital Inn\": {\"frequency\": 181, \"value\": \"BEST WESTERN Music ...\"}, \"Comfort Inn Near the Sunset Strip\": {\"frequency\": 81, \"value\": \"Comfort Inn Near ...\"}, \"Travelodge Hotel at LAX\": {\"frequency\": 240, \"value\": \"Travelodge Hotel ...\"}, \"BEST WESTERN PLUS Inn at the Vines\": {\"frequency\": 60, \"value\": \"BEST WESTERN PLUS ...\"}, \"Comfort Suites Mission Valley\": {\"frequency\": 91, \"value\": \"Comfort Suites ...\"}, \"Hilton San Diego Mission Valley\": {\"frequency\": 168, \"value\": \"Hilton San Diego ...\"}, \"Courtyard by Marriott Phoenix North\": {\"frequency\": 19, \"value\": \"Courtyard by ...\"}, \"Branson Towers Hotel\": {\"frequency\": 84, \"value\": \"Branson Towers ...\"}, \"Amsterdam Court Hotel\": {\"frequency\": 344, \"value\": \"Amsterdam Court ...\"}, \"Econo Lodge Hollywood\": {\"frequency\": 31, \"value\": \"Econo Lodge ...\"}, \"BEST WESTERN Golden Triangle Inn\": {\"frequency\": 20, \"value\": \"BEST WESTERN ...\"}, \"Holiday Inn Phoenix-West\": {\"frequency\": 23, \"value\": \"Holiday Inn ...\"}, \"Dream Inn\": {\"frequency\": 109, \"value\": \"Dream Inn\"}, \"Hollywood Hotel\": {\"frequency\": 318, \"value\": \"Hollywood Hotel\"}, \"Mission Valley Resort\": {\"frequency\": 125, \"value\": \"Mission Valley ...\"}, \"San Diego Marriott Mission Valley\": {\"frequency\": 92, \"value\": \"San Diego Marriott ...\"}, \"Holiday Inn Express Los Angeles-LAX Airport\": {\"frequency\": 102, \"value\": \"Holiday Inn ...\"}, \"Luxe City Center Hotel\": {\"frequency\": 93, \"value\": \"Luxe City Center ...\"}, \"Holiday Inn Express San Diego Downtown\": {\"frequency\": 128, \"value\": \"Holiday Inn ...\"}, \"Christopher's Inn\": {\"frequency\": 93, \"value\": \"Christopher's Inn\"}, \"Staybridge Suites Chatsworth\": {\"frequency\": 28, \"value\": \"Staybridge Suites ...\"}, \"Budget Lodge of Phoenix\": {\"frequency\": 15, \"value\": \"Budget Lodge of ...\"}, \"Hollywood Roosevelt Hotel - A Thompson Hotel\": {\"frequency\": 579, \"value\": \"Hollywood ...\"}, \"Catamaran Resort Hotel\": {\"frequency\": 426, \"value\": \"Catamaran Resort ...\"}, \"Hollywood Orchid Suites\": {\"frequency\": 397, \"value\": \"Hollywood Orchid ...\"}, \"Sheraton Gateway Los Angeles\": {\"frequency\": 745, \"value\": \"Sheraton Gateway ...\"}, \"Comfort Inn & Suites Seattle\": {\"frequency\": 36, \"value\": \"Comfort Inn & ...\"}, \"Four Seasons Hotel Los Angeles at Beverly Hills\": {\"frequency\": 144, \"value\": \"Four Seasons Hotel ...\"}, \"Kawada Hotel\": {\"frequency\": 47, \"value\": \"Kawada Hotel\"}, \"Courtyard by Marriott San Diego Sorrento Mesa/La Jolla\": {\"frequency\": 37, \"value\": \"Courtyard by ...\"}, \"BEST WESTERN Loyal Inn\": {\"frequency\": 113, \"value\": \"BEST WESTERN Loyal ...\"}, \"Crowne Plaza Beverly Hills\": {\"frequency\": 316, \"value\": \"Crowne Plaza ...\"}, \"BEST WESTERN PLUS Eagle Rock Inn\": {\"frequency\": 13, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Bayside Inn\": {\"frequency\": 108, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Hollywood Hills Hotel\": {\"frequency\": 135, \"value\": \"BEST WESTERN PLUS ...\"}, \"Motel 6 Phoenix North - Bell Road\": {\"frequency\": 8, \"value\": \"Motel 6 Phoenix ...\"}, \"Holiday Inn Los Angeles International Airport\": {\"frequency\": 188, \"value\": \"Holiday Inn Los ...\"}, \"BEST WESTERN PREMIER Ivy Hotel Napa\": {\"frequency\": 97, \"value\": \"BEST WESTERN ...\"}, \"Sleep Inn North\": {\"frequency\": 12, \"value\": \"Sleep Inn North\"}, \"Wine Valley Lodge\": {\"frequency\": 95, \"value\": \"Wine Valley Lodge\"}, \"Embassy Suites San Diego Bay - Downtown\": {\"frequency\": 229, \"value\": \"Embassy Suites San ...\"}, \"BEST WESTERN PLUS Blue Sea Lodge\": {\"frequency\": 210, \"value\": \"BEST WESTERN PLUS ...\"}, \"Hilton Suites Phoenix\": {\"frequency\": 64, \"value\": \"Hilton Suites ...\"}, \"Days Inn & Suites - Sea World/Airport\": {\"frequency\": 104, \"value\": \"Days Inn & Suites ...\"}, \"Vagabond Inn Los Angeles-USC\": {\"frequency\": 34, \"value\": \"Vagabond Inn Los ...\"}, \"BEST WESTERN PLUS Royal Palace Inn & Suites\": {\"frequency\": 54, \"value\": \"BEST WESTERN PLUS ...\"}, \"Days Inn I-17 & Thomas\": {\"frequency\": 24, \"value\": \"Days Inn I-17 & ...\"}, \"Comfort Inn & Suites Zoo / SeaWorld Area\": {\"frequency\": 180, \"value\": \"Comfort Inn & ...\"}, \"La Quinta Inn & Suites Phoenix Chandler\": {\"frequency\": 15, \"value\": \"La Quinta Inn & ...\"}, \"Residence Inn Phoenix Airport\": {\"frequency\": 40, \"value\": \"Residence Inn ...\"}, \"Embassy Suites Phoenix Airport at 24th Street\": {\"frequency\": 97, \"value\": \"Embassy Suites ...\"}, \"Crowne Plaza Hotel San Diego - Mission Valley\": {\"frequency\": 185, \"value\": \"Crowne Plaza Hotel ...\"}, \"Hyatt Regency Mission Bay\": {\"frequency\": 503, \"value\": \"Hyatt Regency ...\"}, \"Chelsea Lodge\": {\"frequency\": 235, \"value\": \"Chelsea Lodge\"}, \"BEST WESTERN Plus Hawthorne Terrace Hotel\": {\"frequency\": 82, \"value\": \"BEST WESTERN Plus ...\"}, \"Sofitel Los Angeles\": {\"frequency\": 441, \"value\": \"Sofitel Los ...\"}, \"The Wilshire Hotel Los Angeles\": {\"frequency\": 183, \"value\": \"The Wilshire Hotel ...\"}, \"Kings Inn Hotel\": {\"frequency\": 90, \"value\": \"Kings Inn Hotel\"}, \"Hampton Inn Phoenix Midtown (Downtown Area)\": {\"frequency\": 23, \"value\": \"Hampton Inn ...\"}, \"Residence Inn Phoenix\": {\"frequency\": 26, \"value\": \"Residence Inn ...\"}, \"BEST WESTERN PLUS Pioneer Square Hotel\": {\"frequency\": 233, \"value\": \"BEST WESTERN PLUS ...\"}, \"Quality Inn I-15 Miramar\": {\"frequency\": 8, \"value\": \"Quality Inn I-15 ...\"}, \"California Suites Hotel\": {\"frequency\": 75, \"value\": \"California Suites ...\"}, \"Howard Johnson Airport Downtown\": {\"frequency\": 20, \"value\": \"Howard Johnson ...\"}, \"Motel 6 Phoenix - Black Canyon\": {\"frequency\": 9, \"value\": \"Motel 6 Phoenix - ...\"}, \"Holiday Inn Phoenix Downtown North\": {\"frequency\": 46, \"value\": \"Holiday Inn ...\"}, \"BEST WESTERN PLUS Executive Inn\": {\"frequency\": 137, \"value\": \"BEST WESTERN PLUS ...\"}, \"Sea Bay Hotel\": {\"frequency\": 148, \"value\": \"Sea Bay Hotel\"}, \"BEST WESTERN Mission Bay Inn\": {\"frequency\": 70, \"value\": \"BEST WESTERN ...\"}, \"Embassy Suites San Diego - La Jolla\": {\"frequency\": 166, \"value\": \"Embassy Suites San ...\"}, \"Holiday Inn & Suites Phoenix Airport North\": {\"frequency\": 50, \"value\": \"Holiday Inn & ...\"}, \"Beverly Garland's Holiday Inn\": {\"frequency\": 367, \"value\": \"Beverly Garland's ...\"}, \"Hampton Inn San Diego - Kearny Mesa\": {\"frequency\": 67, \"value\": \"Hampton Inn San ...\"}, \"Americas Best Value Inn Phoenix/I-10 West\": {\"frequency\": 7, \"value\": \"Americas Best ...\"}, \"Dr. Wilkinson's Hot Springs Resort\": {\"frequency\": 159, \"value\": \"Dr. Wilkinson's ...\"}, \"San Diego - Days Inn Harbor View / Airport / Convention Ctr\": {\"frequency\": 46, \"value\": \"San Diego - Days ...\"}, \"Travelodge San Diego Mission Valley\": {\"frequency\": 68, \"value\": \"Travelodge San ...\"}, \"BEST WESTERN Suites\": {\"frequency\": 12, \"value\": \"BEST WESTERN ...\"}, \"Comfort Inn West\": {\"frequency\": 18, \"value\": \"Comfort Inn West\"}, \"BEST WESTERN Seven Seas\": {\"frequency\": 170, \"value\": \"BEST WESTERN Seven ...\"}, \"The Westin Bonaventure Hotel & Suites\": {\"frequency\": 590, \"value\": \"The Westin ...\"}, \"BEST WESTERN Center Pointe Inn\": {\"frequency\": 74, \"value\": \"BEST WESTERN ...\"}, \"Hyatt Regency Century Plaza\": {\"frequency\": 354, \"value\": \"Hyatt Regency ...\"}, \"Phoenix Place Hotel & Suites\": {\"frequency\": 75, \"value\": \"Phoenix Place ...\"}, \"Sheraton Los Angeles Downtown Hotel\": {\"frequency\": 192, \"value\": \"Sheraton Los ...\"}, \"Motel 6 San Diego Hotel Circle\": {\"frequency\": 36, \"value\": \"Motel 6 San Diego ...\"}, \"Drury Inn & Suites Phoenix Airport\": {\"frequency\": 10, \"value\": \"Drury Inn & Suites ...\"}, \"Metro Plaza Hotel\": {\"frequency\": 64, \"value\": \"Metro Plaza Hotel\"}, \"Hyatt Regency La Jolla\": {\"frequency\": 200, \"value\": \"Hyatt Regency La ...\"}, \"Millennium Biltmore Hotel Los Angeles\": {\"frequency\": 472, \"value\": \"Millennium ...\"}, \"Sleep Inn Airport\": {\"frequency\": 53, \"value\": \"Sleep Inn Airport\"}, \"La Quinta Inn Phoenix Thomas Road\": {\"frequency\": 17, \"value\": \"La Quinta Inn ...\"}, \"Murray Hill Inn\": {\"frequency\": 114, \"value\": \"Murray Hill Inn\"}, \"Days Inn Phoenix Metro Center\": {\"frequency\": 47, \"value\": \"Days Inn Phoenix ...\"}, \"BEST WESTERN Terrace Inn\": {\"frequency\": 59, \"value\": \"BEST WESTERN ...\"}, \"Sheraton Crescent Hotel\": {\"frequency\": 163, \"value\": \"Sheraton Crescent ...\"}, \"Century Wilshire\": {\"frequency\": 20, \"value\": \"Century Wilshire\"}, \"Napa Valley Hotel & Suites\": {\"frequency\": 76, \"value\": \"Napa Valley Hotel ...\"}, \"Howard Johnson Express Inn - San Diego\": {\"frequency\": 28, \"value\": \"Howard Johnson ...\"}, \"Residence Inn San Diego Rancho Bernardo / Carmel Mountain Ranch\": {\"frequency\": 34, \"value\": \"Residence Inn San ...\"}, \"Fairfield Inn Phoenix Airport\": {\"frequency\": 46, \"value\": \"Fairfield Inn ...\"}, \"Manchester Grand Hyatt San Diego\": {\"frequency\": 838, \"value\": \"Manchester Grand ...\"}, \"BEST WESTERN PLUS Island Palms Hotel & Marina\": {\"frequency\": 460, \"value\": \"BEST WESTERN PLUS ...\"}, \"Embassy Suites Hotel Napa Valley\": {\"frequency\": 236, \"value\": \"Embassy Suites ...\"}, \"Roger Williams Hotel\": {\"frequency\": 353, \"value\": \"Roger Williams ...\"}, \"Hilton Los Angeles / Universal City\": {\"frequency\": 546, \"value\": \"Hilton Los Angeles ...\"}, \"BEST WESTERN Airport Inn\": {\"frequency\": 45, \"value\": \"BEST WESTERN ...\"}, \"Luxe Sunset Boulevard Hotel\": {\"frequency\": 157, \"value\": \"Luxe Sunset ...\"}, \"Days Inn Camelback Phoenix and Conference Center\": {\"frequency\": 39, \"value\": \"Days Inn Camelback ...\"}, \"Pointe Hilton Squaw Peak Resort\": {\"frequency\": 561, \"value\": \"Pointe Hilton ...\"}, \"Rodeway Inn & Suites Downtown\": {\"frequency\": 39, \"value\": \"Rodeway Inn & ...\"}, \"San Diego Marriott Marquis & Marina\": {\"frequency\": 476, \"value\": \"San Diego Marriott ...\"}, \"Days Inn Hollywood/Universal Studios\": {\"frequency\": 114, \"value\": \"Days Inn Hollywood ...\"}, \"Miami River Inn\": {\"frequency\": 37, \"value\": \"Miami River Inn\"}, \"Crossland Economy Studios Phoenix\": {\"frequency\": 8, \"value\": \"Crossland Economy ...\"}, \"Extended StayAmerica Phoenix-Airport\": {\"frequency\": 18, \"value\": \"Extended ...\"}, \"Comfort Inn Calistoga, Hot Springs of the West\": {\"frequency\": 71, \"value\": \"Comfort Inn ...\"}, \"Handlery Hotel San Diego\": {\"frequency\": 288, \"value\": \"Handlery Hotel San ...\"}, \"Embassy Suites LAX North\": {\"frequency\": 218, \"value\": \"Embassy Suites LAX ...\"}, \"Comfort Inn & Suites Hotel Circle / SeaWorld\": {\"frequency\": 94, \"value\": \"Comfort Inn & ...\"}, \"Lexington Hotel Central Phoenix\": {\"frequency\": 57, \"value\": \"Lexington Hotel ...\"}, \"Comfort Suites Phoenix / MetroCenter\": {\"frequency\": 16, \"value\": \"Comfort Suites ...\"}, \"Hotel Highland at Biltmore\": {\"frequency\": 41, \"value\": \"Hotel Highland at ...\"}, \"Sterling International Hotels\": {\"frequency\": 16, \"value\": \"Sterling ...\"}, \"BEST WESTERN PLUS Hotel & Conference Center\": {\"frequency\": 74, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN McCarran Inn\": {\"frequency\": 144, \"value\": \"BEST WESTERN ...\"}, \"Omni Los Angeles at California Plaza\": {\"frequency\": 488, \"value\": \"Omni Los Angeles ...\"}, \"Pacific Inn Hotel & Suites\": {\"frequency\": 92, \"value\": \"Pacific Inn Hotel ...\"}, \"Los Angeles Airport Marriott\": {\"frequency\": 326, \"value\": \"Los Angeles ...\"}, \"Dunes Inn - Sunset\": {\"frequency\": 13, \"value\": \"Dunes Inn - Sunset\"}, \"BEST WESTERN Hollywood Plaza Inn\": {\"frequency\": 95, \"value\": \"BEST WESTERN ...\"}, \"Hilton Checkers Hotel - Los Angeles\": {\"frequency\": 155, \"value\": \"Hilton Checkers ...\"}, \"Holiday Inn Express San Diego Airport - Old Town\": {\"frequency\": 114, \"value\": \"Holiday Inn ...\"}, \"Holiday Inn San Diego-Rancho Bernardo\": {\"frequency\": 25, \"value\": \"Holiday Inn San ...\"}, \"Ocean Park Inn\": {\"frequency\": 206, \"value\": \"Ocean Park Inn\"}, \"BEST WESTERN PLUS Hacienda Hotel Old Town\": {\"frequency\": 161, \"value\": \"BEST WESTERN PLUS ...\"}, \"Fairfield Inn Phoenix North\": {\"frequency\": 18, \"value\": \"Fairfield Inn ...\"}, \"Dunes Inn - Wilshire\": {\"frequency\": 16, \"value\": \"Dunes Inn - ...\"}, \"BEST WESTERN Center City Hotel\": {\"frequency\": 88, \"value\": \"BEST WESTERN ...\"}, \"Royal Palms Resort and Spa\": {\"frequency\": 320, \"value\": \"Royal Palms Resort ...\"}, \"Renaissance Montura Los Angeles\": {\"frequency\": 299, \"value\": \"Renaissance ...\"}, \"Rodeway Inn & Suites Pacific Coast Highway\": {\"frequency\": 191, \"value\": \"Rodeway Inn & ...\"}, \"A Victory Inn & Suites Phoenix North\": {\"frequency\": 32, \"value\": \"A Victory Inn & ...\"}, \"Stillwell Hotel\": {\"frequency\": 17, \"value\": \"Stillwell Hotel\"}, \"Hotel Palomar Los Angeles - Westwood - a Kimpton Hotel\": {\"frequency\": 353, \"value\": \"Hotel Palomar Los ...\"}, \"Hyatt Regency Phoenix\": {\"frequency\": 175, \"value\": \"Hyatt Regency ...\"}, \"Grace Inn Phoenix\": {\"frequency\": 44, \"value\": \"Grace Inn Phoenix\"}, \"Marriott Phoenix Airport\": {\"frequency\": 50, \"value\": \"Marriott Phoenix ...\"}, \"Chelsea Inn - 17th Street\": {\"frequency\": 112, \"value\": \"Chelsea Inn - 17th ...\"}, \"Ramada Chatsworth\": {\"frequency\": 24, \"value\": \"Ramada Chatsworth\"}, \"Extended Stay Deluxe Phoenix - Midtown\": {\"frequency\": 15, \"value\": \"Extended Stay ...\"}, \"Embassy Suites Hotel Phoenix-North\": {\"frequency\": 63, \"value\": \"Embassy Suites ...\"}, \"Courtyard by Marriott Phoenix Camelback\": {\"frequency\": 28, \"value\": \"Courtyard by ...\"}, \"Days Inn Phoenix\": {\"frequency\": 13, \"value\": \"Days Inn Phoenix\"}, \"Super 8 Phoenix\": {\"frequency\": 25, \"value\": \"Super 8 Phoenix\"}, \"Radisson Midtown at USC\": {\"frequency\": 44, \"value\": \"Radisson Midtown ...\"}, \"Travelodge Hollywood-Vermont/Sunset\": {\"frequency\": 96, \"value\": \"Travelodge ...\"}, \"Holiday Inn San Diego-Downtown\": {\"frequency\": 131, \"value\": \"Holiday Inn San ...\"}, \"Budget Inn\": {\"frequency\": 12, \"value\": \"Budget Inn\"}, \"Renaissance Phoenix Downtown\": {\"frequency\": 36, \"value\": \"Renaissance ...\"}, \"Howard Johnson Los Angeles\": {\"frequency\": 36, \"value\": \"Howard Johnson Los ...\"}, \"Holiday Inn Express Phoenix Airport (University Drive)\": {\"frequency\": 83, \"value\": \"Holiday Inn ...\"}, \"Kyoto Grand Hotel and Gardens\": {\"frequency\": 271, \"value\": \"Kyoto Grand Hotel ...\"}, \"Chablis Inn\": {\"frequency\": 112, \"value\": \"Chablis Inn\"}, \"Hilton Phoenix Airport\": {\"frequency\": 112, \"value\": \"Hilton Phoenix ...\"}, \"Holiday Inn San Diego - On The Bay\": {\"frequency\": 323, \"value\": \"Holiday Inn San ...\"}, \"BEST WESTERN Phoenix I-17 MetroCenter Inn\": {\"frequency\": 56, \"value\": \"BEST WESTERN ...\"}, \"La Quinta Inn San Diego Scripps Poway\": {\"frequency\": 19, \"value\": \"La Quinta Inn San ...\"}, \"BEST WESTERN PLUS San Diego / Miramar Hotel\": {\"frequency\": 32, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Dragon Gate Inn\": {\"frequency\": 56, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS InnSuites Phoenix Hotel & Suites\": {\"frequency\": 60, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN PLUS Mikado Hotel\": {\"frequency\": 20, \"value\": \"BEST WESTERN PLUS ...\"}, \"BEST WESTERN Yacht Harbor Hotel\": {\"frequency\": 84, \"value\": \"BEST WESTERN Yacht ...\"}, \"Extended StayAmerica Phoenix - Metro Center\": {\"frequency\": 10, \"value\": \"Extended ...\"}, \"Bay Club Hotel & Marina\": {\"frequency\": 296, \"value\": \"Bay Club Hotel & ...\"}, \"Dream New York\": {\"frequency\": 373, \"value\": \"Dream New York\"}, \"Sportsmen's Lodge Hotel\": {\"frequency\": 174, \"value\": \"Sportsmen's Lodge ...\"}, \"W Los Angeles - Westwood\": {\"frequency\": 325, \"value\": \"W Los Angeles - ...\"}, \"Beachcomber Shores\": {\"frequency\": 12, \"value\": \"Beachcomber Shores\"}, \"BEST WESTERN Market Center\": {\"frequency\": 54, \"value\": \"BEST WESTERN ...\"}, \"La Quinta Inn Phoenix - Arcadia\": {\"frequency\": 50, \"value\": \"La Quinta Inn ...\"}, \"La Quinta Inn Phoenix North\": {\"frequency\": 25, \"value\": \"La Quinta Inn ...\"}, \"The Historic Mayfair Hotel\": {\"frequency\": 85, \"value\": \"The Historic ...\"}, \"Best Western PLUS President Hotel at Times Square\": {\"frequency\": 378, \"value\": \"Best Western PLUS ...\"}, \"BEST WESTERN Canoga Park Motor Inn\": {\"frequency\": 12, \"value\": \"BEST WESTERN ...\"}, \"Holiday Inn San Diego - Mission Valley\": {\"frequency\": 60, \"value\": \"Holiday Inn San ...\"}}, \"size\": 26254}, \"selected_variable\": {\"name\": [\"<SArray>\"], \"dtype\": \"str\", \"view_component\": \"Categorical\", \"view_file\": \"sarray\", \"descriptives\": {\"rows\": 26254}, \"type\": \"SArray\", \"view_components\": [\"Categorical\"]}, \"histogram\": null}, e);\n", | |
" });\n", | |
" })();\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"hotelSFrame['Name'].show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 143, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 169, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"train_data,test_data = hotelSFrame.random_split(.8, seed=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 148, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"PROGRESS: Logistic regression:\n", | |
"PROGRESS: --------------------------------------------------------\n", | |
"PROGRESS: Number of examples : 21102\n", | |
"PROGRESS: Number of classes : 3\n", | |
"PROGRESS: Number of feature columns : 1\n", | |
"PROGRESS: Number of unpacked features : 98520\n", | |
"PROGRESS: Number of coefficients : 197042\n", | |
"PROGRESS: Starting L-BFGS\n", | |
"PROGRESS: --------------------------------------------------------\n", | |
"PROGRESS: +-----------+----------+-----------+--------------+-------------------+---------------------+\n", | |
"PROGRESS: | Iteration | Passes | Step size | Elapsed Time | Training-accuracy | Validation-accuracy |\n", | |
"PROGRESS: +-----------+----------+-----------+--------------+-------------------+---------------------+\n", | |
"PROGRESS: | 1 | 6 | 0.000003 | 1.999497 | 0.662970 | 0.668090 |\n", | |
"PROGRESS: | 2 | 9 | 5.000000 | 13.197040 | 0.858355 | 0.686530 |\n", | |
"PROGRESS: | 3 | 10 | 5.000000 | 24.203343 | 0.829732 | 0.738936 |\n", | |
"PROGRESS: | 4 | 11 | 5.000000 | 35.272237 | 0.913894 | 0.668866 |\n", | |
"PROGRESS: | 5 | 12 | 5.000000 | 46.258793 | 0.685907 | 0.671390 |\n", | |
"PROGRESS: | 6 | 14 | 1.000000 | 57.413328 | 0.918349 | 0.793672 |\n", | |
"PROGRESS: | 7 | 15 | 1.000000 | 68.499543 | 0.982040 | 0.803571 |\n", | |
"PROGRESS: | 8 | 16 | 1.000000 | 79.555356 | 0.981708 | 0.804542 |\n", | |
"PROGRESS: | 9 | 17 | 1.000000 | 90.652314 | 0.982845 | 0.803766 |\n", | |
"PROGRESS: | 10 | 18 | 1.000000 | 101.853242 | 0.990143 | 0.802601 |\n", | |
"PROGRESS: +-----------+----------+-----------+--------------+-------------------+---------------------+\n" | |
] | |
} | |
], | |
"source": [ | |
"sentiment_model = gl.logistic_classifier.create(train_data,\n", | |
" target='Sentiment',\n", | |
" features=['word_count'],\n", | |
" validation_set=test_data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 160, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"y_pred=sentiment_model.predict(test_data)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Evaluation of Model : Gives accuracy and confusion matrix\n", | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 162, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'accuracy': 0.8026009316770186, 'confusion_matrix': Columns:\n", | |
" \ttarget_label\tstr\n", | |
" \tpredicted_label\tstr\n", | |
" \tcount\tint\n", | |
" \n", | |
" Rows: 9\n", | |
" \n", | |
" Data:\n", | |
" +--------------+-----------------+-------+\n", | |
" | target_label | predicted_label | count |\n", | |
" +--------------+-----------------+-------+\n", | |
" | neutral | neutral | 147 |\n", | |
" | negative | positive | 187 |\n", | |
" | negative | neutral | 95 |\n", | |
" | negative | negative | 631 |\n", | |
" | positive | negative | 30 |\n", | |
" | positive | positive | 3357 |\n", | |
" | positive | neutral | 55 |\n", | |
" | neutral | negative | 125 |\n", | |
" | neutral | positive | 525 |\n", | |
" +--------------+-----------------+-------+\n", | |
" [9 rows x 3 columns]}" | |
] | |
}, | |
"execution_count": 162, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sentiment_model.evaluate(test_data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"hotel_reviews = hotelSFrame[hotelSFrame['HotelId'] == '76277']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"#hotel_reviews['predicted_sentiment'] = sentiment_model.predict(hotel_reviews)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 158, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'Very helpful staff -Kelly helped us make the most of our trip! Great bed & linens! We would have liked to take the pillows. Very quit too!'" | |
] | |
}, | |
"execution_count": 158, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"#hotel_reviews.head()\n", | |
"hotel_reviews[1]['Review']" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Creating Bigrams\n", | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"hotelSFrame['Bigram']=gl.text_analytics.count_ngrams(hotelSFrame['Review'],n=2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\"><table frame=\"box\" rules=\"cols\">\n", | |
" <tr>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">HotelId</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Name</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Price</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Review</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Sentiment</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Great experience When<br>searching for a place to ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Very helpful staff -Kelly<br>helped us make the most ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Wonderful I stayed here<br>in late March, I came ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Excellent We really<br>enjoyed out stay in this ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Friendliest staff & hotel<br>with every amenity you ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Wonderful Visit in<br>Calistoga, CA My family ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Calistoga is wonderful<br>and this works The motel ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">positive</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Basic OK lodging in upper<br>wine country Stayed here ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">neutral</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Generic stop in lovely<br>surroundings I'm always ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">neutral</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">76277</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Comfort Inn Calistoga,<br>Hot Springs of the West ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">$124 - $249*</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">Great staff, tired pool<br>We spent the night at ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">neutral</td>\n", | |
" </tr>\n", | |
"</table>\n", | |
"<table frame=\"box\" rules=\"cols\">\n", | |
" <tr>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">word_count</th>\n", | |
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">Bigram</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'and': 3, 'few': 1,<br>'relaxation': 1, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'to a': 1, 'coming<br>from': 1, 'great room': ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'liked': 1, 'too!': 1,<br>'helped': 1, 'bed': 1, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'have liked': 1, 'the<br>most': 1, 'we would': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'summer': 1, 'all': 1,<br>'cold': 1, 'bill.': 1, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'not eco': 1, 'desk<br>was': 1, 'wine country': ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'and': 2, 'helpful.': 1,<br>\"don't\": 1, 'is': 2, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'to stay': 1, 'the<br>reception': 1, 'in th ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'all': 1, 'mom': 1,<br>'area.': 1, 'staff': 2, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'inn brewery': 1, 'could<br>use': 1, 'our stay': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'walking': 1, 'just': 2,<br>'children': 1, 'much' ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'children which': 1,<br>'courtyard adjacent': 1, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'and': 4, 'point': 1,<br>'is': 3, 'inn': 1, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'this can': 1, 'with<br>local': 1, 'and this' ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'product,': 1,<br>'consider': 1, 'helena': ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'sausage product': 1,<br>'worn our': 1, 'wine ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'area,': 1, 'cute': 1,<br>'walking': 1, 'comfort': ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'about how': 1, 'lovely<br>surroundings': 1, 'was ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'colors': 1, 'go': 1,<br>'find': 1, 'staff': 1, ...</td>\n", | |
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">{'open 9': 1, 'at the':<br>1, 'keep fresh': 1, 'but ...</td>\n", | |
" </tr>\n", | |
"</table>\n", | |
"[10 rows x 7 columns]<br/>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"Columns:\n", | |
"\tHotelId\tstr\n", | |
"\tName\tstr\n", | |
"\tPrice\tstr\n", | |
"\tReview\tstr\n", | |
"\tSentiment\tstr\n", | |
"\tword_count\tdict\n", | |
"\tBigram\tdict\n", | |
"\n", | |
"Rows: 10\n", | |
"\n", | |
"Data:\n", | |
"+---------+-------------------------------+--------------+\n", | |
"| HotelId | Name | Price |\n", | |
"+---------+-------------------------------+--------------+\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"| 76277 | Comfort Inn Calistoga, Hot... | $124 - $249* |\n", | |
"+---------+-------------------------------+--------------+\n", | |
"+-------------------------------+-----------+-------------------------------+\n", | |
"| Review | Sentiment | word_count |\n", | |
"+-------------------------------+-----------+-------------------------------+\n", | |
"| Great experience When sear... | positive | {'and': 3, 'few': 1, 'rela... |\n", | |
"| Very helpful staff -Kelly ... | positive | {'liked': 1, 'too!': 1, 'h... |\n", | |
"| Wonderful I stayed here in... | positive | {'summer': 1, 'all': 1, 'c... |\n", | |
"| Excellent We really enjoye... | positive | {'and': 2, 'helpful.': 1, ... |\n", | |
"| Friendliest staff & hotel ... | positive | {'all': 1, 'mom': 1, 'area... |\n", | |
"| Wonderful Visit in Calisto... | positive | {'walking': 1, 'just': 2, ... |\n", | |
"| Calistoga is wonderful and... | positive | {'and': 4, 'point': 1, 'is... |\n", | |
"| Basic OK lodging in upper ... | neutral | {'product,': 1, 'consider'... |\n", | |
"| Generic stop in lovely sur... | neutral | {'area,': 1, 'cute': 1, 'w... |\n", | |
"| Great staff, tired pool We... | neutral | {'colors': 1, 'go': 1, 'fi... |\n", | |
"+-------------------------------+-----------+-------------------------------+\n", | |
"+-------------------------------+\n", | |
"| Bigram |\n", | |
"+-------------------------------+\n", | |
"| {'to a': 1, 'coming from':... |\n", | |
"| {'have liked': 1, 'the mos... |\n", | |
"| {'not eco': 1, 'desk was':... |\n", | |
"| {'to stay': 1, 'the recept... |\n", | |
"| {'inn brewery': 1, 'could ... |\n", | |
"| {'children which': 1, 'cou... |\n", | |
"| {'this can': 1, 'with loca... |\n", | |
"| {'sausage product': 1, 'wo... |\n", | |
"| {'about how': 1, 'lovely s... |\n", | |
"| {'open 9': 1, 'at the': 1,... |\n", | |
"+-------------------------------+\n", | |
"[10 rows x 7 columns]" | |
] | |
}, | |
"execution_count": 41, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"hotelSFrame.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 170, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"PROGRESS: Logistic regression:\n", | |
"PROGRESS: --------------------------------------------------------\n", | |
"PROGRESS: Number of examples : 21102\n", | |
"PROGRESS: Number of classes : 3\n", | |
"PROGRESS: Number of feature columns : 1\n", | |
"PROGRESS: Number of unpacked features : 573316\n", | |
"PROGRESS: Number of coefficients : 1146634\n", | |
"PROGRESS: Starting L-BFGS\n", | |
"PROGRESS: --------------------------------------------------------\n", | |
"PROGRESS: +-----------+----------+-----------+--------------+-------------------+---------------------+\n", | |
"PROGRESS: | Iteration | Passes | Step size | Elapsed Time | Training-accuracy | Validation-accuracy |\n", | |
"PROGRESS: +-----------+----------+-----------+--------------+-------------------+---------------------+\n", | |
"PROGRESS: | 1 | 6 | 0.000004 | 2.038151 | 0.683774 | 0.668284 |\n", | |
"PROGRESS: | 2 | 8 | 1.000000 | 59.975845 | 0.941475 | 0.690411 |\n", | |
"PROGRESS: | 3 | 9 | 1.000000 | 118.367661 | 0.983793 | 0.719332 |\n", | |
"PROGRESS: | 4 | 10 | 1.000000 | 177.185455 | 0.997725 | 0.746506 |\n", | |
"PROGRESS: | 5 | 11 | 1.000000 | 244.122831 | 0.999526 | 0.746506 |\n", | |
"PROGRESS: | 6 | 12 | 1.000000 | 315.904260 | 0.999905 | 0.768245 |\n", | |
"PROGRESS: | 7 | 13 | 1.000000 | 388.474977 | 0.999953 | 0.782026 |\n", | |
"PROGRESS: | 8 | 14 | 1.000000 | 465.632833 | 1.000000 | 0.785714 |\n", | |
"PROGRESS: | 9 | 15 | 1.000000 | 551.918318 | 1.000000 | 0.798525 |\n", | |
"PROGRESS: | 10 | 16 | 1.000000 | 647.106743 | 1.000000 | 0.798719 |\n", | |
"PROGRESS: +-----------+----------+-----------+--------------+-------------------+---------------------+\n" | |
] | |
} | |
], | |
"source": [ | |
"bigram_model = gl.logistic_classifier.create(train_data,\n", | |
" target='Sentiment',\n", | |
" features=['Bigram'],\n", | |
" validation_set=test_data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 178, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'accuracy': 0.7987189440993789, 'confusion_matrix': Columns:\n", | |
" \ttarget_label\tstr\n", | |
" \tpredicted_label\tstr\n", | |
" \tcount\tint\n", | |
" \n", | |
" Rows: 9\n", | |
" \n", | |
" Data:\n", | |
" +--------------+-----------------+-------+\n", | |
" | target_label | predicted_label | count |\n", | |
" +--------------+-----------------+-------+\n", | |
" | neutral | neutral | 74 |\n", | |
" | negative | neutral | 48 |\n", | |
" | negative | positive | 235 |\n", | |
" | negative | negative | 630 |\n", | |
" | positive | negative | 15 |\n", | |
" | positive | positive | 3411 |\n", | |
" | positive | neutral | 16 |\n", | |
" | neutral | negative | 117 |\n", | |
" | neutral | positive | 606 |\n", | |
" +--------------+-----------------+-------+\n", | |
" [9 rows x 3 columns]}" | |
] | |
}, | |
"execution_count": 178, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bigram_model.evaluate(test_data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#Using tf-idf " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"vectorizer = TfidfVectorizer(text_data)\n", | |
"\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#Applying Bayesian Models" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"mb=MultinomialNB()\n", | |
"clf = BernoulliNB()\n", | |
"X = vectorizer.fit_transform(text_data)\n", | |
"y = np.array(labels)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"X_train, X_test, y_train, y_test = cross_validation.train_test_split(X,y,test_size=0.4, random_state=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"BernoulliNB(alpha=1.0, binarize=0.0, class_prior=None, fit_prior=True)" | |
] | |
}, | |
"execution_count": 47, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"clf.fit(X_train,y_train)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)" | |
] | |
}, | |
"execution_count": 48, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"mb.fit(X_train,y_train)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Model Score Using Bernoulli Naive Bayes\n", | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.71357836602551894" | |
] | |
}, | |
"execution_count": 49, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"clf.score(X_test,y_test)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"mb.score(X_test,y_test)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Model Score Using Multinomial Naive Bayes\n", | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"Observation\n", | |
"---\n", | |
"\n", | |
"**Logistic Regression on Unigrams gave the best accuracy of 80%**\n", | |
"\n", | |
"**Bernoull Naive Bayes score was better at 71% than Multinomial Naive Bayes which gave 66% accuracy**" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"collapsed": false | |
}, | |
"source": [ | |
"Applying other models and Grid Search\n", | |
"----" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.ensemble import GradientBoostingClassifier\n", | |
"clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0,\n", | |
" max_depth=1, random_state=0).fit(X_train.toarray(), y_train)\n", | |
"clf.score(X_test, y_test)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.ensemble import RandomForestClassifier\n", | |
"model = RandomForestClassifier(n_estimators=100)\n", | |
"n_features = X.shape[1]\n", | |
"\n", | |
"# Using the grid search to get appropriate parameters\n", | |
"from sklearn.grid_search import RandomizedSearchCV\n", | |
"grid = RandomizedSearchCV(model, n_iter=20, \n", | |
" param_distributions=dict(\n", | |
" max_depth=np.arange(5,20+1), \n", | |
" max_features=np.arange(1, n_features+1)\n", | |
" )\n", | |
" )\n", | |
"grid.fit(X, y)\n", | |
"print(grid.best_params_)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#Util Method " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 181, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def train_model(review_data, labels):\n", | |
" vectorizer = TfidfVectorizer(tokenizer = tokenize_text, lowercase = False, analyzer = \"word\")\n", | |
"\n", | |
" clf = BernoulliNB()\n", | |
"\n", | |
" X = vectorizer.fit_transform(review_data)\n", | |
" y = np.array(labels)\n", | |
" cross_validation = StratifiedKFold(labels, n_folds=10, indices=None, shuffle=True, random_state=0)\n", | |
"\n", | |
" for train, test in cross_validation:\n", | |
" X_train, y_train = X[train], y[train]\n", | |
" X_test, y_test = X[test], y[test]\n", | |
"\n", | |
" clf.fit(X_train, y_train)\n", | |
" predicted = predict(clf, X_test)\n", | |
" evaluate_model(y_test, predicted)\n", | |
"\n", | |
" clf.fit(X, y)\n", | |
" \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"#z=map(lambda x: {'a': x['Content']}, data1['Reviews'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Topic Modelling : Analysing the Latent aspects in Rating\n", | |
"---" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"PROGRESS: Learning a topic model\n", | |
"PROGRESS: Number of documents 26254\n", | |
"PROGRESS: Vocabulary size 663665\n", | |
"PROGRESS: Running collapsed Gibbs sampling\n", | |
"PROGRESS: +-----------+---------------+----------------+-----------------+\n", | |
"PROGRESS: | Iteration | Elapsed Time | Tokens/Second | Est. Perplexity |\n", | |
"PROGRESS: +-----------+---------------+----------------+-----------------+\n", | |
"PROGRESS: | 10 | 8.72s | 5.19168e+06 | 0 |\n", | |
"PROGRESS: | 20 | 16.82s | 5.41166e+06 | 0 |\n", | |
"PROGRESS: | 30 | 24.95s | 5.21509e+06 | 0 |\n", | |
"PROGRESS: | 40 | 33.07s | 5.39222e+06 | 0 |\n", | |
"PROGRESS: | 50 | 40.99s | 5.43582e+06 | 0 |\n", | |
"PROGRESS: | 60 | 48.94s | 5.52115e+06 | 0 |\n", | |
"PROGRESS: | 70 | 56.98s | 5.43449e+06 | 0 |\n", | |
"PROGRESS: | 80 | 1m 4s | 5.4323e+06 | 0 |\n", | |
"PROGRESS: | 90 | 1m 13s | 5.46103e+06 | 0 |\n", | |
"PROGRESS: | 100 | 1m 21s | 5.41726e+06 | 0 |\n", | |
"PROGRESS: | 110 | 1m 29s | 5.10798e+06 | 0 |\n", | |
"PROGRESS: | 120 | 1m 36s | 5.50077e+06 | 0 |\n", | |
"PROGRESS: | 130 | 1m 44s | 5.49778e+06 | 0 |\n", | |
"PROGRESS: | 140 | 1m 52s | 5.44834e+06 | 0 |\n", | |
"PROGRESS: | 150 | 2m 0s | 5.14795e+06 | 0 |\n", | |
"PROGRESS: | 160 | 2m 8s | 5.12966e+06 | 0 |\n", | |
"PROGRESS: | 170 | 2m 16s | 5.13121e+06 | 0 |\n", | |
"PROGRESS: | 180 | 2m 24s | 5.18739e+06 | 0 |\n", | |
"PROGRESS: | 190 | 2m 32s | 5.28566e+06 | 0 |\n", | |
"PROGRESS: | 200 | 2m 40s | 5.12227e+06 | 0 |\n", | |
"PROGRESS: +-----------+---------------+----------------+-----------------+\n" | |
] | |
} | |
], | |
"source": [ | |
"topic_model = gl.topic_model.create(hotelSFrame['Bigram'], num_topics=6, num_iterations=200)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#Visualisation of topic model " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"PreparedData(topic_coordinates= Freq cluster topics x y\n", | |
"topic \n", | |
"5 19.281991 1 1 -0.247277 0.079035\n", | |
"2 18.059554 1 2 -0.104901 0.153493\n", | |
"4 17.411047 1 3 -0.048473 -0.283157\n", | |
"3 15.782179 1 4 0.116534 -0.064428\n", | |
"0 14.952804 1 5 0.252786 0.116605\n", | |
"1 14.512424 1 6 0.031331 -0.001548, topic_info= Category Freq Term Total loglift logprob\n", | |
"546670 Default 21079.000000 the hotel 21079 30.0000 30.0000\n", | |
"113248 Default 9527.000000 we were 9527 29.0000 29.0000\n", | |
"191808 Default 8252.000000 if you 8252 28.0000 28.0000\n", | |
"500208 Default 7189.000000 we had 7189 27.0000 27.0000\n", | |
"369102 Default 13760.000000 it was 13760 26.0000 26.0000\n", | |
"35609 Default 14117.000000 at the 14117 25.0000 25.0000\n", | |
"330672 Default 7457.000000 i was 7457 24.0000 24.0000\n", | |
"204140 Default 8747.000000 room was 8747 23.0000 23.0000\n", | |
"420400 Default 5500.000000 it s 5500 22.0000 22.0000\n", | |
"172790 Default 17681.000000 of the 17681 21.0000 21.0000\n", | |
"459091 Default 7275.000000 was very 7275 20.0000 20.0000\n", | |
"425285 Default 12579.000000 on the 12579 19.0000 19.0000\n", | |
"603015 Default 4661.000000 clean and 4661 18.0000 18.0000\n", | |
"17597 Default 7151.000000 the staff 7151 17.0000 17.0000\n", | |
"264960 Default 8068.000000 is a 8068 16.0000 16.0000\n", | |
"623048 Default 4826.000000 our room 4826 15.0000 15.0000\n", | |
"558580 Default 15649.000000 to the 15649 14.0000 14.0000\n", | |
"468421 Default 11586.000000 this hotel 11586 13.0000 13.0000\n", | |
"633935 Default 3956.000000 san diego 3956 12.0000 12.0000\n", | |
"645415 Default 13506.000000 the room 13506 11.0000 11.0000\n", | |
"617804 Default 4400.000000 i had 4400 10.0000 10.0000\n", | |
"11983 Default 5361.000000 the pool 5361 9.0000 9.0000\n", | |
"3107 Default 3636.000000 and we 3636 8.0000 8.0000\n", | |
"232142 Default 6050.000000 it is 6050 7.0000 7.0000\n", | |
"577554 Default 6621.000000 and i 6621 6.0000 6.0000\n", | |
"161007 Default 3287.000000 the best 3287 5.0000 5.0000\n", | |
"168289 Default 3297.000000 staff was 3297 4.0000 4.0000\n", | |
"431843 Default 7378.000000 had a 7378 3.0000 3.0000\n", | |
"72231 Default 3377.000000 when we 3377 2.0000 2.0000\n", | |
"648698 Default 5722.000000 didn t 5722 1.0000 1.0000\n", | |
"... ... ... ... ... ... ...\n", | |
"78335 Topic6 659.562530 and have 731 1.7452 -6.9637\n", | |
"636860 Topic6 864.708087 los angeles 992 1.7057 -6.6979\n", | |
"159140 Topic6 677.965606 what a 764 1.7294 -6.9353\n", | |
"480910 Topic6 2598.800417 stayed at 3775 1.4663 -5.6009\n", | |
"651403 Topic6 965.626455 we have 1216 1.6172 -6.5828\n", | |
"577554 Topic6 3794.617068 and i 6621 1.2923 -5.2130\n", | |
"17597 Topic6 3868.919324 the staff 7151 1.2158 -5.2125\n", | |
"35609 Topic6 6017.669891 at the 14117 0.9966 -4.7516\n", | |
"124964 Topic6 1709.426715 one of 2742 1.3769 -6.0100\n", | |
"4022 Topic6 1993.125624 at this 3389 1.3119 -5.8632\n", | |
"224436 Topic6 1279.693764 stay in 1933 1.4288 -6.3077\n", | |
"477979 Topic6 2313.245386 to stay 4668 1.1334 -5.7215\n", | |
"546788 Topic6 1396.961819 stayed in 2249 1.3726 -6.2125\n", | |
"253284 Topic6 1525.184561 is the 2719 1.2677 -6.1276\n", | |
"595008 Topic6 748.600709 and this 895 1.6693 -6.8372\n", | |
"468421 Topic6 3437.084029 this hotel 11586 0.6177 -5.3281\n", | |
"630940 Topic6 3645.754073 and the 15617 0.3859 -5.2613\n", | |
"172790 Topic6 3717.865838 of the 17681 0.2917 -5.2314\n", | |
"400176 Topic6 1088.182561 i am 1848 1.3212 -6.4602\n", | |
"558580 Topic6 2378.035734 to the 15649 -0.0423 -5.6875\n", | |
"639896 Topic6 2322.433963 in the 23206 -0.4513 -5.7024\n", | |
"452545 Topic6 1110.367223 have been 2309 1.1176 -6.4412\n", | |
"433654 Topic6 1469.056795 a great 5835 0.4509 -6.1809\n", | |
"317324 Topic6 1427.330336 with a 5769 0.4448 -6.1983\n", | |
"573129 Topic6 1367.914734 in a 5317 0.4898 -6.2349\n", | |
"167972 Topic6 1266.108532 this is 4187 0.6488 -6.3148\n", | |
"39878 Topic6 1474.627792 for a 8795 0.0550 -6.1664\n", | |
"145513 Topic6 1186.738589 all the 3256 0.8315 -6.3836\n", | |
"239782 Topic6 1190.939362 with the 4744 0.4694 -6.3693\n", | |
"498217 Topic6 1171.734249 rooms are 3325 0.8020 -6.3921\n", | |
"\n", | |
"[765 rows x 6 columns], token_table= Topic Freq Term\n", | |
"term \n", | |
"592334 1 1.000000 1 95\n", | |
"562380 4 1.000000 101 hollywood\n", | |
"109888 4 1.000000 2 directions\n", | |
"296985 1 1.000000 2 proximity\n", | |
"109905 4 1.000000 20 bratty\n", | |
"71403 6 1.000000 2010 will\n", | |
"518423 4 1.000000 370 270\n", | |
"160402 2 1.000000 59 through\n", | |
"158604 2 1.000000 78 yes\n", | |
"158302 4 1.000000 8th this\n", | |
"7135 2 0.008913 a decent\n", | |
"7135 3 0.989305 a decent\n", | |
"79095 3 0.527339 a good\n", | |
"79095 4 0.005355 a good\n", | |
"79095 5 0.467306 a good\n", | |
"433654 4 0.229649 a great\n", | |
"433654 5 0.518595 a great\n", | |
"433654 6 0.251757 a great\n", | |
"519184 2 1.000000 a here\n", | |
"213090 2 0.025224 a nice\n", | |
"213090 3 0.039496 a nice\n", | |
"213090 4 0.653170 a nice\n", | |
"213090 5 0.281447 a nice\n", | |
"213090 6 0.000664 a nice\n", | |
"431741 2 0.090097 a small\n", | |
"431741 3 0.103500 a small\n", | |
"431741 4 0.801936 a small\n", | |
"431741 5 0.003723 a small\n", | |
"1452 6 1.000000 a wonderful\n", | |
"71447 6 1.000000 accommotions excellent\n", | |
"... ... ... ...\n", | |
"404682 3 1.000000 woke everyone\n", | |
"160373 2 1.000000 wonderful larger\n", | |
"111018 3 1.000000 wonderful uniforms\n", | |
"158278 4 1.000000 worn linen\n", | |
"517387 2 1.000000 worried our\n", | |
"225059 2 0.001908 would definitely\n", | |
"225059 4 0.001908 would definitely\n", | |
"225059 5 0.995229 would definitely\n", | |
"660697 1 0.937223 would not\n", | |
"660697 3 0.062038 would not\n", | |
"456789 5 0.999228 would stay\n", | |
"335202 3 1.000000 you are\n", | |
"175989 3 0.766274 you can\n", | |
"175989 4 0.233446 you can\n", | |
"175989 6 0.000281 you can\n", | |
"127693 3 0.984551 you don\n", | |
"127693 4 0.014045 you don\n", | |
"547145 6 1.000000 you feel\n", | |
"360168 3 1.000000 you get\n", | |
"469109 3 0.998444 you have\n", | |
"469109 5 0.001556 you have\n", | |
"131618 3 1.000000 you ll\n", | |
"29667 3 0.995619 you need\n", | |
"29667 4 0.003286 you need\n", | |
"644180 3 1.000000 you pay\n", | |
"26262 2 0.002078 you re\n", | |
"26262 3 0.995152 you re\n", | |
"26262 6 0.002078 you re\n", | |
"475841 3 1.000000 you want\n", | |
"71409 6 1.000000 yum thanks\n", | |
"\n", | |
"[1143 rows x 3 columns], R=30, lambda_step=0.01, plot_opts={'xlab': 'PC1', 'ylab': 'PC2'}, topic_order=[6, 3, 5, 4, 1, 2])" | |
] | |
}, | |
"execution_count": 45, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pyLDAvis.graphlab.prepare(topic_model, hotelSFrame['Bigram'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"+-------+------------+------------------+\n", | |
"| topic | word | score |\n", | |
"+-------+------------+------------------+\n", | |
"| 0 | the hotel | 0.0111678404345 |\n", | |
"| 0 | this hotel | 0.0069951877191 |\n", | |
"| 0 | was very | 0.00679425741178 |\n", | |
"| 0 | clean and | 0.00624370836972 |\n", | |
"| 0 | room was | 0.00571593142915 |\n", | |
"| 1 | at the | 0.00863806602205 |\n", | |
"| 1 | the staff | 0.00544790781056 |\n", | |
"| 1 | and i | 0.00544504282788 |\n", | |
"| 1 | of the | 0.0053462009255 |\n", | |
"| 1 | and the | 0.00518862687824 |\n", | |
"| 2 | it was | 0.011116527793 |\n", | |
"| 2 | we were | 0.0109668815624 |\n", | |
"| 2 | to the | 0.00913198855087 |\n", | |
"| 2 | we had | 0.00827555166216 |\n", | |
"| 2 | the room | 0.00646713452215 |\n", | |
"| 3 | the hotel | 0.0122967443846 |\n", | |
"| 3 | of the | 0.010144205473 |\n", | |
"| 3 | in the | 0.00819787393541 |\n", | |
"| 3 | on the | 0.00801162211364 |\n", | |
"| 3 | from the | 0.0053947840177 |\n", | |
"| 4 | if you | 0.00981633994505 |\n", | |
"| 4 | it s | 0.00652681734224 |\n", | |
"| 4 | in the | 0.00651135123235 |\n", | |
"| 4 | is a | 0.0058320320981 |\n", | |
"| 4 | it is | 0.00532165047184 |\n", | |
"| 5 | i was | 0.00756630337264 |\n", | |
"| 5 | the room | 0.00527753491158 |\n", | |
"| 5 | front desk | 0.00487433780851 |\n", | |
"| 5 | i had | 0.00472653509688 |\n", | |
"| 5 | in the | 0.00467762978788 |\n", | |
"+-------+------------+------------------+\n", | |
"[30 rows x 3 columns]\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"topic_model.get_topics(topic_ids=[0,1,2,3,4,5],num_words=5).print_rows(50,3)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.10" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment