def main(*args): import argparse parser = argparse.ArgumentParser( description='Run Recommendations', formatter_class=argparse.RawTextHelpFormatter ) parser.add_argument('-u', '--user', type=str, choices=USER_FILES, default='test_user', metavar='USER', help='user file, e.g.\n' + '{{{}}}'.format(','.join(sample(USER_FILES, 3)))) parser.add_argument('-k', '--k', type=int, help='for k-means') parser.add_argument('-q', '--query', choices=CATEGORIES, metavar='QUERY', help='search for restaurants by category e.g.\n' '{{{}}}'.format(','.join(sample(CATEGORIES, 3)))) parser.add_argument('-p', '--predict', action='store_true', help='predict ratings for all restaurants') parser.add_argument('-r', '--restaurants', action='store_true', help='outputs a list of restaurant names') args = parser.parse_args() # Output a list of restaurant names if args.restaurants: print('Restaurant names:') for restaurant in sorted(ALL_RESTAURANTS, key=restaurant_name): print(repr(restaurant_name(restaurant))) exit(0) # Select restaurants using a category query if args.query: restaurants = search(args.query, ALL_RESTAURANTS) else: restaurants = ALL_RESTAURANTS # Load a user assert args.user, 'A --user is required to draw a map' user = load_user_file('{}.dat'.format(args.user)) # Collect ratings if args.predict: print(241, restaurants) ratings = rate_all(user, restaurants, feature_set()) else: restaurants = user_reviewed_restaurants(user, restaurants) names = [restaurant_name(r) for r in restaurants] ratings = {name: user_rating(user, name) for name in names} # Draw the visualization if args.k: centroids = k_means(restaurants, min(args.k, len(restaurants))) else: centroids = [restaurant_location(r) for r in restaurants] draw_map(centroids, restaurants, ratings)
def main(*args): import argparse parser = argparse.ArgumentParser( description='Run Recommendations', formatter_class=argparse.RawTextHelpFormatter ) parser.add_argument('-u', '--user', type=str, choices=USER_FILES, default='test_user', metavar='USER', help='user file, e.g.\n' + '{{{}}}'.format(','.join(sample(USER_FILES, 3)))) parser.add_argument('-k', '--k', type=int, help='for k-means') parser.add_argument('-q', '--query', choices=CATEGORIES, metavar='QUERY', help='search for restaurants by category e.g.\n' '{{{}}}'.format(','.join(sample(CATEGORIES, 3)))) parser.add_argument('-p', '--predict', action='store_true', help='predict ratings for all restaurants') parser.add_argument('-r', '--restaurants', action='store_true', help='outputs a list of restaurant names') args = parser.parse_args() # Output a list of restaurant names if args.restaurants: print('Restaurant names:') for restaurant in sorted(ALL_RESTAURANTS, key=restaurant_name): print(repr(restaurant_name(restaurant))) exit(0) # Select restaurants using a category query if args.query: restaurants = search(args.query, ALL_RESTAURANTS) else: restaurants = ALL_RESTAURANTS # Load a user assert args.user, 'A --user is required to draw a map' user = load_user_file('{}.dat'.format(args.user)) # Collect ratings if args.predict: ratings = rate_all(user, restaurants, feature_set()) else: restaurants = user_reviewed_restaurants(user, restaurants) names = [restaurant_name(r) for r in restaurants] ratings = {name: user_rating(user, name) for name in names} # Draw the visualization if args.k: centroids = k_means(restaurants, min(args.k, len(restaurants))) else: centroids = [restaurant_location(r) for r in restaurants] draw_map(centroids, restaurants, ratings)
def main(*args): import argparse parser = argparse.ArgumentParser(description="Run Recommendations", formatter_class=argparse.RawTextHelpFormatter) parser.add_argument( "-u", "--user", type=str, choices=USER_FILES, default="test_user", metavar="USER", help="user file, e.g.\n" + "{{{}}}".format(",".join(sample(USER_FILES, 3))), ) parser.add_argument("-k", "--k", type=int, help="for k-means") parser.add_argument( "-q", "--query", choices=CATEGORIES, metavar="QUERY", help="search for restaurants by category e.g.\n" "{{{}}}".format(",".join(sample(CATEGORIES, 3))), ) parser.add_argument("-p", "--predict", action="store_true", help="predict ratings for all restaurants") args = parser.parse_args() # Select restaurants using a category query if args.query: results = search(args.query, RESTAURANTS.values()) restaurants = {restaurant_name(r): r for r in results} else: restaurants = RESTAURANTS # Load a user assert args.user, "A --user is required to draw a map" user = load_user_file("{}.dat".format(args.user)) # Collect ratings if args.predict: ratings = rate_all(user, restaurants, feature_set()) else: restaurants = user_reviewed_restaurants(user, restaurants) ratings = {name: user_rating(user, name) for name in restaurants} # Draw the visualization restaurant_list = list(restaurants.values()) if args.k: centroids = k_means(restaurant_list, min(args.k, len(restaurant_list))) else: centroids = [restaurant_location(r) for r in restaurant_list] draw_map(centroids, restaurant_list, ratings)
def main(*args): import argparse parser = argparse.ArgumentParser( description="Run Recommendations", formatter_class=argparse.RawTextHelpFormatter) parser.add_argument("-u", "--user", type=str, choices=USER_FILES, default="test_user", metavar="USER", help="user file, e.g.\n" + "{{{}}}".format(",".join(sample(USER_FILES, 3)))) parser.add_argument("-k", "--k", type=int, help="for k-means") parser.add_argument("-q", "--query", choices=CATEGORIES, metavar="QUERY", help="search for restaurants by category e.g.\n" "{{{}}}".format(",".join(sample(CATEGORIES, 3)))) parser.add_argument("-p", "--predict", action="store_true", help="predict ratings for all restaurants") parser.add_argument("-r", "--restaurants", action="store_true", help="outputs a list of restaurant names") args = parser.parse_args() # Output a list of restaurant names if args.restaurants: print("Restaurant names:") for restaurant in sorted(ALL_RESTAURANTS, key=restaurant_name): print(repr(restaurant_name(restaurant))) exit(0) # Select restaurants using a category query if args.query: restaurants = search(args.query, ALL_RESTAURANTS) else: restaurants = ALL_RESTAURANTS # Load a user assert args.user, "A --user is required to draw a map" user = load_user_file("{}.dat".format(args.user)) # Collect ratings if args.predict: ratings = rate_all(user, restaurants, feature_set()) else: restaurants = user_reviewed_restaurants(user, restaurants) names = [restaurant_name(r) for r in restaurants] ratings = {name: user_rating(user, name) for name in names} # Draw the visualization if args.k: centroids = k_means(restaurants, min(args.k, len(restaurants))) else: centroids = [restaurant_location(r) for r in restaurants] draw_map(centroids, restaurants, ratings)
"""A Yelp-powered Restaurant Recommendation Program""" from visualize import draw_map draw_map()