def recommend_places(): data = request.get_json(force=True) keywords = '' try: keywords = data['keywords'] except: code = 400 msg = 'invalid format' return msg, code #first function makes recommendation only considering Cosine Similarity, second one includes rating information as well. #recommendations = RecommenderEngine.get_recommendations(keywords) recommendations = RecommenderEngine.get_rating_recommendations(keywords) return recommendations
from rating_extractor import RatingExtractor from recommender_engine import RecommenderEngine counts_and_T = [(1000, 50), (1000, 100), (1000, 200), (1000, 1000), (1000, 10000), (100, 1000), (1000, 1000), (10000, 1000), (1000000, 1000)] cs = 0.12286 #Similarity score of St. Petersburg rating = 8.5 #random rating. #rating affected RC no rating count was = 0.13146, Q=10 for (count, T) in counts_and_T: r = RatingExtractor.get_rating_weight_with_quantity(rating=rating, c=count, T=T, q=10) score = RecommenderEngine.calculate_score_from(cs, r) print(score)
def get_recommendations(keywords): result = RecommenderEngine.get_recommendations(keywords) return result
def get_recommendations_include_rating_count_threshold_positive_negative_reviews(keywords): return RecommenderEngine.get_recommendations_include_rating_count_threshold_positive_negative_reviews(keywords)
def get_recommendations_include_rating_count_threshold(keywords): return RecommenderEngine.get_recommendations_include_rating_count_threshold(keywords)
def get_recommendations_include_rating(keywords): return RecommenderEngine.get_recommendations_include_rating(keywords)
review_rating = 0 #review_rating = review_model.get_review_rating(review_text) print('User', user, 'got', review_rating, 'for his review of product', product, '.') return str(review_rating) @app.route('/searchProduct', methods =['GET']) def search_query(): query = request.args.get('query') return search_ops.search_query(query, ['products']) if __name__ == '__main__': global review_model, firebaseOps, search_ops, recommender firebaseOps = FirebaseOps() firebaseOps.authenticate() search_ops = SearchOps(firebaseOps) recommender = RecommenderEngine(firebaseOps) trigger = OrTrigger([CronTrigger(hour=0, minute=0), CronTrigger(hour=3, minute=0), CronTrigger(hour=6, minute=0), CronTrigger(hour=9, minute=0), CronTrigger(hour=12, minute=0), CronTrigger(hour=15, minute=0), CronTrigger(hour=18, minute=0), CronTrigger(hour=21, minute=0)]) scheduler = BackgroundScheduler() scheduler.add_job(recommender.recommend, trigger) #Get recommendations every 3 hours scheduler.start() #review_model = ReviewModel() app.run(host = '0.0.0.0', debug=False, port=3000)