inls 560 – r eview d ashboard instructor: jason carter

12
INLS 560 – REVIEW DASHBOARD Instructor: Jason Carter

Upload: april-bryant

Post on 17-Dec-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

INLS 560 – REVIEW DASHBOARD

Instructor: Jason Carter

Page 2: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

ANNOUNCEMENTS

Final Exam, December 6 at 8 am Demo your application Discuss your design decisions

How you named your variables, functions, methods Parameters you passed in Use of all concepts learned in class

Loops Conditionals Variables Functions Classes Strings

Page 3: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

COUNTING POS AND NEG REVIEWS

Insert the statistics into the review stats table Create a new python file with a main function in it

that:Gets all business idsFor each business id:

Count the number of positive reviews for that business id

Count the number of negative reveiws for that business id

Compute the total number of positive and negative reviews for that business id

Compute the percentage of positive and negative reviews

Insert stats into review_stats table

Page 4: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

GETTING ALL BUSINESS IDS

Create a method in the Business class named: get_all_business_ids

SQLSELECT DISTINCT yelp_review.business_id

FROM yelp_review, yelp_business WHERE yelp_business.business_id = yelp_review.business_id

Return a list of business_ids

Page 5: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

COUNT THE NUMBER OF POS/NEG REVIEWS Create a function in the Sentiment class that

counts the number of positive and negative reviews

get_sentiment_count_by_business_id

SELECT COUNT(*) FROM sentiment WHERE sentiment = ‘pos’ AND business_id = ‘adsaaxxksassd'“

return the number of rows for a business id that has positive reviews

Compute the total number of positive and negative reviews for that business id

Compute the percentage of positive and negative reviews

Page 6: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

INSERT STATS INTO THE REVIEW STATS TABLE Create a ReviewStats class (create a new ,py

file) Create a constructor

Attributes are the columns in the review_stats table Create a method in the ReviewStats class named insert Method inserts the stats into the review table Does not return anythingINSERT INTO review_stats (business_id,

number_of_positive_reviews, number_of_negative_reviews, "percentage_of_positive_reviews, percentage_of_negative_reviews) VALUES ('{0}', {1}, {2}, {3}, {4} ).format(self.business_id, self.number_of_positive_reviews, self.number_of_negative_reviews, self.percentage_of_positive_reviews, self.percentage_of_negative_reviews)

Page 7: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

SHOWING THE # AND % OF POS/NEG REVIEWS

Option 1: In your user_interface.py file For each business_id:

Create a review_stats object and pass the business_id into the constructor

Create a method in review_stats that gets the stats for each business_id get_review_stats_by_business_id SELECT * FROM review_stats WHERE business_id =

'{0}'".format(self.business_id) Return a list of review_stat objects Iterate through the list of review_stat objects and print

the stats

Page 8: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

COMMON_PHASES TABLE

phrase_id (primary key, autoincrement, integer) business_id (text) common_phrase (text) frequency_of_phrase (text)

Page 9: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

COMPUTING COMMON PHRASES

Create a CommonPhrases class in a new py file Create a constructor that has the same

attributes as the common_phrases table Create a method in the CommonPhrases class

named: insert insert takes a dictionary as a parameter

Page 10: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

INSERT METHOD def insert(self, word_dictionary): conn = sqlite3.connect(DATABASE_NAME)

for key in word_dictionary: try: conn.execute("INSERT INTO common_phrases (business_id, common_phrase, frequency_of_phrase) values (?, ?, ?);",( self.business_id, key , word_dictionary[key] ))

conn.commit()

except Exception, err: print "Exception"

conn.close()

Page 11: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

COMPUTING COMMON PHRASES

Create a method in the Review class that gets all reviews by business id

get_reviews_by_business_id SELECT * FROM yelp_review WHERE

business_id = '{0}'".format(self.business_id) Return a list of review objects

Page 12: INLS 560 – R EVIEW D ASHBOARD Instructor: Jason Carter

COMPUTING COMMON PHRASES Create a new python file Get all business_ids

Create a object of type Business Call the get_all_business_ids method

For each business_id: Create a review object and pass in the business_id as a

parameter Call the get_reviews_by_business_id method and

pass in the business_id as a parameter (returns a list of review objects)

For each review: clean the text (review.text) Count how often each word appears (use a dictionary) Create a CommonPhrase object and pass in business_id as a

parameter Call the insert method on the CommonPhrase object