def makeMeta(info,unique_songs): train = [] train_mostSongsPerSet = info[0][0] train.append(train_mostSongsPerSet) train_leastSongsPerSet = info[0][1] train.append(train_leastSongsPerSet) train_numSongs = info[0][2] train.append(train_numSongs) train_numSets = info[0][3] train.append(train_numSets) if train_numSets == 0: train_numSets = 1 train_avgSongsPerSet = train_numSongs/train_numSets train.append(train_avgSongsPerSet) test = [] test_mostSongsPerSet = info[1][0] test.append(test_mostSongsPerSet) test_leastSongsPerSet = info[1][1] test.append(test_leastSongsPerSet) test_numSongs = info[1][2] test.append(test_numSongs) test_numSets = info[1][3] test.append(test_numSets) if test_numSets == 0: test_numSets = 1 test_avgSongsPerSet = test_numSongs/test_numSets test.append(test_avgSongsPerSet) allSets = train_numSets + test_numSets allSongs = train_numSongs + test_numSongs f = open(meta_loc,"w") combined_list = [] combined_list.extend(unique_songs[0]) combined_list.extend(unique_songs[1]) unique_songs[0] = list(set(unique_songs[0])) unique_songs[1] = list(set(unique_songs[1])) feat = track_maps.getTrack() missed = track_maps.getMissed() f.write("\nTotal Songs Across Thresholds: " + str(len(feat)) + "\n") f.write("Total Missed: " + str(len(missed)) + "\n\n") folderMeta("Training Data",train,f,unique_songs[0]) folderMeta("Testing Data",test,f,unique_songs[1]) f.write("Total Sets: " + str(allSets) + "\n") f.write("Total Songs: " + str(allSongs) + "\n") total_unique = list(set(combined_list)) f.write("Total Unique Songs: " + str(len(total_unique)) + "\n") rat = float(test_numSets)/float(train_numSets) f.write("Test:Train Set Ratio: " + str(rat) + "\n") f.close() f = open(meta_loc,"r") print(f.read()) f.close()
def removeKeys(): trackMap = track_maps.getTrack() unwanted = ["analysis_url","duration","valence"]#["analysis_url","duration","key","loudness","mode","tempo","time_signature","valence","instrumentalness"] for track in trackMap: feat = trackMap[track] if not isinstance(feat, dict): continue for attr in unwanted: if attr in feat: del feat[attr] #feat["danceability"] = feat["danceability"]*5 trackMap[track] = feat #print(trackMap) track_maps.writeTrack(trackMap)
def loop_over(): trackFeat = track_maps.getTrack() missed = track_maps.getMissed() numTracks = len(trackFeat) prevMissed = len(missed) currMissed = len(missed) for miss in missed: artist = miss[0].lower() song = miss[1].lower() tup = (artist,song) if str(tup) in trackFeat: currMissed = currMissed - 1 missed.remove(miss) continue result = input_song_id(tup,trackFeat) if result == True: currMissed = currMissed - 1 missed.remove(miss) time.sleep(sleep_time) track_maps.writeTrack(trackFeat) track_maps.writeMissed(missed) print("Num found tracks = ", numTracks) print("Num found missed = ", currMissed) print("Found " + str(prevMissed - currMissed) + " more songs")