def genre_popularity(self): self.text.delete(1.0, END) self.ax.cla() data = DB_CONNECTION.retrieve_data("genre_popularity") Popularity.calculate(self, data) self.f.canvas.draw() self.f.savefig("Plots/user_rating_genre_dist")
def requires(self): config = Config.get() return (Coordinates.CreateSampleCoordinates(), Popularity.SampleCreator( config.get("ExternalFiles", "vecs_with_id")), ContourCode(), CreateContinents(), MakeRegions())
def predict(): print(request.form) feature=[] feature.append(731) feature.append(len(request.form["title"].split())+2) feature.append(len(request.form["text"].split())) print(len(set(request.form["text"].split()))) print((len(request.form["text"].split()))+2) feature.append(len(set(request.form["text"].split()))/(len(request.form["text"].split())+13)) feature.append(len(set(request.form["title"].split()))/len(request.form["title"].split())) feature.append(len(set(request.form["title"].split()))/len(request.form["title"].split())) feature.append(int(request.form["external_links"])+int(request.form["self_links"])); feature.append(int(request.form["self_links"])); feature.append(int(request.form["image"])); feature.append(int(request.form["video"])); words = request.form["text"].split() feature.append(sum(len(word) for word in words) / (len(words)+13)) feature.append(0) print("Fyk") feature.append(1 if request.form["channel"]=="1" else 0) feature.append(1 if request.form["channel"]=="2" else 0) feature.append(1 if request.form["channel"]=="3" else 0) feature.append(1 if request.form["channel"]=="4" else 0) feature.append(1 if request.form["channel"]=="5" else 0) feature.append(1 if request.form["channel"]=="6" else 0) feature.append(int(request.form["max_external_share"])) feature.append(int(request.form["avg_self_share"])) print("Shik") feature.append(1 if request.form["day"]=="1" else 0) feature.append(1 if request.form["day"]=="2" else 0) feature.append(1 if request.form["day"]=="3" else 0) feature.append(1 if request.form["day"]=="4" else 0) feature.append(1 if request.form["day"]=="5" else 0) feature.append(1 if request.form["day"]=="6" else 0) feature.append(1 if request.form["day"]=="7" else 0) feature.append(1 if request.form["day"]=="6" or request.form["day"]=="7" else 0 ) feature.append(TextBlob(request.form["text"]).sentiment.subjectivity) feature.append(TextBlob(request.form["text"]).sentiment.polarity) feature.append(TextBlob(request.form["title"]).sentiment.subjectivity) feature.append(TextBlob(request.form["title"]).sentiment.polarity) feature.append(abs(TextBlob(request.form["title"]).sentiment.subjectivity)) feature.append(abs(TextBlob(request.form["title"]).sentiment.polarity)) print(len(feature)) result = "" if Popularity.predictPopularity(feature) == 1.0: result = "Popular" else: result = "Not Popular" result = " Your News Article will be " +result return render_template('Result.html',message =result)
def k_means_clustering(no_of_clusters, item_popularity_df, articles_df): x_df = pd.read_csv('shared_articles.csv') x = x_df['text'] model = KMeans(n_clusters=no_of_clusters, init='k-means++', max_iter=100, n_init=1) #model.fit(x) print("\n") popularityModel = Popularity.PopularityRecommender(item_popularity_df, articles_df) list_of_popular_items_clusterwise = popularityModel.recommend_items( user_id=1, topn=no_of_clusters, verbose=True) return list_of_popular_items_clusterwise
def popularity(user_id, no=20): global songs_to_ix, ix_to_songs, id_to_no, no_to_id, train_data, test_data, users, songs, song_db_subset User_no = id_to_no[user_id] song_db_1 = pd.read_csv('/home/niket/Desktop/triplet.csv') song_db_2 = pd.read_csv('/home/niket/Downloads/song_data.csv', ) song_db = pd.merge(song_db_1, song_db_2.drop_duplicates(['song_id']), on="song_id", how="left") song_db['song'] = song_db['title'] + "-" + song_db['artist_name'] song_grouped = song_db.groupby(['song']).agg({ 'listen_count': 'count' }).reset_index() grouped_sum = song_grouped['listen_count'].sum() train_data, test_data = train_test_split(song_db_subset, test_size=.20, random_state=0) #print(train_data) pm = Popularity.popularity_recommender() pm.make(train_data, 'user_id', 'song', no) return (list(pm.recommend_songs(user_id)['song']))
ran_N[0] += 10 for N in ran_N: UID_N_rank = {} for fn in UID_rank.keys(): UID_N_rank[fn] = {} for i in UID_rank[fn]: UID_N_rank[fn][i] = UID_rank[fn][i][:N] div_N_val[N] = {} fre_N_val[N] = {} adv_N_val[N] = {} pop_N_val[N] = {} print 'N = %d' % (N) print 'fn--div--fer--pop--adv\n' for fn in UID_N_rank.keys(): fre_val = FRE.us_fre(UID_N_rank[fn], song_info, real_sid) pop_val = POP.us_pop(UID_N_rank[fn], SID_pop) div_val = DIV.us_div(UID_N_rank[fn], song_info, real_sid) adv_val = ADV.us_adv(UID_AID_tr_dict, UID_N_rank[fn], song_info, real_sid) print '%s' % (fn.split('/')[-1]), print '--%.4f' % (div_val.mean()), print '--%d' % (fre_val.mean()), print '--%d' % (pop_val.mean()), print '--%.3f' % (adv_val.mean()) div_N_val[N][fn] = div_val.mean() fre_N_val[N][fn] = fre_val.mean() adv_N_val[N][fn] = adv_val.mean() pop_N_val[N][fn] = pop_val.mean() ''' print 'fn,div,fer,pop\n' for fn in pred_fn.keys():
def requires(self): return (MakeRegions(), CalculateZoomsCode(), Coordinates.CreateFullCoordinates(), Popularity.PopularityIdentifier())
#Top-N accuracy metrics consts #EVAL_RANDOM_SAMPLE_NON_INTERACTED_ITEMS = 100 model_evaluator = ModelEvaluator() # In[15]: #Computes the most popular items item_popularity_df = interactions_full_df.groupby( 'contentId')['eventStrength'].sum().sort_values( ascending=False).reset_index() item_popularity_df.head(10) # In[16]: popularity_model = Popularity.PopularityRecommender(item_popularity_df, articles_df) # In[17]: #print('Evaluating Popularity recommendation model...') #pop_global_metrics, pop_detailed_results_df = model_evaluator.evaluate_model(popularity_model) #print('\nGlobal metrics:\n%s' % pop_global_metrics) #pop_detailed_results_df.head(10) # In[18]: #nltk.download('stopwords') # In[19]: #CONTENT BASED
def requires(self): return (Popularity.PopularityIdentifier(), PopularityLabelSizerCode())
#real sid song_id_fn = '/home/fearofchou/data/KKBOX/stats/AW_song_id.npy' real_sid = np.sort(np.load(song_id_fn)) #======================================================== #each user dict SID_dict = {} for idx, val in enumerate(SID): try: SID_dict[val].append(UID[idx]) except: SID_dict[val] = [UID[idx]] #======================================================== import Diversity as DIV import Popularity as POP import Freshness as FRE UID_div = DIV.us_div(UID_dict, song_meta, real_sid) UID_fre = FRE.us_fre(UID_dict, song_meta, real_sid) UID_pop = POP.us_pop(SID, UID_dict) UID_us = {} UID_us['Freshness'] = UID_fre UID_us['Popularity'] = UID_pop UID_us['Diversity'] = UID_div import sys sys.path.append('/home/fearofchou/code/Recsys/evul/') from evul_all import *
song_db_2 = pd.read_csv('/home/niket/Downloads/song_data.csv', ) song_db = pd.merge(song_db_1, song_db_2.drop_duplicates(['song_id']), on="song_id", how="left") song_db['song'] = song_db['title'] + "-" + song_db['artist_name'] song_grouped = song_db.groupby(['song']).agg({ 'listen_count': 'count' }).reset_index() grouped_sum = song_grouped['listen_count'].sum() train_data, test_data = train_test_split(song_db_subset, test_size=.20, random_state=0) #print(train_data) pm = Popularity.popularity_recommender() pm.make(train_data, 'user_id', 'song', No) print(pm.recommend_songs(User)) #l=list(pm.recommend_songs(User)['song']) #for i in l: # print(i) else: #content based filtering song = [] if (len(user_data['song'].unique()) < 10): print("20 % Content based filtering \n") #print("80 % 20% content \n")
def getFinal(): uid = "1" file = open("user.txt", "r") uid = file.read() query = "select user_history.uid,user_history.pid,phonefeatures.ModelName from user_history,phonefeatures where user_history.uid=" + uid + " and phonefeatures.PhoneID=user_history.pid order by user_history.no_of_times_searched desc" cursor = db.mydb.cursor() cursor.execute(query) result = cursor.fetchall() global pidlist pidlist = [] flag = False phone_to_avoid = 122 if (len(result) == 0): print("User Has No Search History...") pr.popmodel() else: global user_id user_id = 0 print("User Has Search History...") print(result) for res in result: uid = res[0] user_id = uid pid = res[1] query = "select * from purchased_phones where uid=" + str( uid) + " and pid=" + str(pid) cursor.execute(query) purchased = cursor.fetchall() if len(purchased) != 0: #querystmt = "select * from purchased_phones where uid="+str(uid)+" and pid="+str(pid);#+"and overall>=3"; #cursor.execute(querystmt) #checkres = cursor.fetchall() #print(checkres) if purchased[0][3] >= 3: pidlist.append(res[1]) else: print("This phone has rating less than 3....") #co.collaborative(uid,res[1]) phone_to_avoid = res[1] flag = True else: print( "Entry for this phone exists in search history but not in purchased phones...." ) list1 = [] list2 = [] if (flag == True): list1 = co.collaborative(user_id, phone_to_avoid) if len(pidlist) != 0: list2 = cb2.ContentBased(pidlist) uniquePhones = set() for l in list1: uniquePhones.add(l) for l in list2: uniquePhones.add(l) NewList = [] i = 0 while len(NewList) < 10: if list1[i] in uniquePhones: NewList.append(list1[i]) uniquePhones.remove(list1[i]) if list2[i] in uniquePhones: NewList.append(list2[i]) uniquePhones.remove(list2[i]) i = i + 1 return NewList