def chooseSong(text): print "Selecting Song" # print "Converting to text" # text = html2text.html2text(text); # print text print "Finding Keywords:" keywords = identify.identify_keywords(text) for keyword in keywords.iteritems(): print "{}: {}".format(keyword[0], keyword[1]) # answers = getTagsFromImages(images) # for key in answers: # if (key in keywords): # keywords[key] += answers[key] # else: # keywords[key] = answers[key] wordlist = sorted(keywords.keys(), key = lambda x : -keywords[x]) wordlist = identify.filter_stopwords(wordlist) wordlist = wordlist[:10] print "Top 10 words, filtered out stopwords" for word in wordlist: print word # print "Finding relevant songs" songs = spotify.full_process(wordlist) print songs # print "Finding lyrics" # song = scraper.computeSong(songs, keywords) song = songs[0] print "Final Song:" print song[0] + " by " + song[1] # stuff = requests.get("http://api.musixmatch.com/ws/1.1/track.search?apikey=" + environ.get("MUSIX_API_KEY") + "&q_track=" + song[0] + "&q_artist=" + song[1]) # stuff = stuff.json() # stuff = stuff["message"]["body"]["track_list"][0]["track"]["track_spotify_id"] # print stuff # return stuff return song[3]
def test_keywords(self): keys,sent=get_sentence_keywords() result=identify_keywords.identify_keywords(keys,sent) expected=["Italian:Pizza"] expected=set(expected) self.assertEqual(result,expected)
def keylyrics(name, artist): stuff = requests.get("http://api.musixmatch.com/ws/1.1/track.search?apikey=" + environ.get("MUSIX_API_KEY") + "&q_track=" + name + "&q_artist=" + artist) stuff = stuff.json() if (len(stuff["message"]["body"]["track_list"]) == 0): return [] stuff = stuff["message"]["body"]["track_list"][0]["track"]["track_id"] page = requests.get("http://api.musixmatch.com/ws/1.1/track.lyrics.get?apikey=" + environ.get("MUSIX_API_KEY") + "&track_id=" + str(stuff)) tree = page.json() if (tree["message"]["header"]["status_code"] == 404): return [] lyrics = tree["message"]["body"]["lyrics"]["lyrics_body"] return identify.identify_keywords(lyrics)
def chooseSong(text): print "HELLO NG WORLD" text = html2text.html2text(text); keywords = identify.identify_keywords(text) print keywords keywords = identify.identify_keywords(text) # answers = getTagsFromImages(images) # for key in answers: # if (key in keywords): # keywords[key] += answers[key] # else: # keywords[key] = answers[key] wordlist = sorted(keywords.keys(), key = lambda x : -keywords[x]) wordlist = wordlist[:10] songs = spotify.full_process(wordlist) song = scraper.computeSong(songs, keywords) print song[0] + " by " + song[1] # stuff = requests.get("http://api.musixmatch.com/ws/1.1/track.search?apikey=" + environ.get("MUSIX_API_KEY") + "&q_track=" + song[0] + "&q_artist=" + song[1]) # stuff = stuff.json() # stuff = stuff["message"]["body"]["track_list"][0]["track"]["track_spotify_id"] # print stuff # return stuff return song[3]
def chooseSong(text): keywords = identify.identify_keywords(text) wordlist = [] for word in keywords: wordlist.append(word) for i in range(0, len(keywords)): for j in range(i + 1, len(keywords)): if (keywords[wordlist[i]] < keywords[wordlist[j]]): temp = wordlist[i] wordlist[i] = wordlist[j] wordlist[j] = temp wordlist = wordlist[:10] songs = spotify.full_process(wordlist) song = scraper.computeSong(songs, keywords) stuff = requests.get("http://api.musixmatch.com/ws/1.1/track.search?apikey=" + environ.get("MUSIX_API_KEY") + "&q_track=" + song[0] + "&q_artist=" + song[1]) stuff = stuff.json() stuff = stuff["message"]["body"]["track_list"][0]["track"]["track_id"] return stuff
import identify_keywords as identify #list of keywords with which the given sentence is matched given_keywords = [ "AI Algorithms", "Crazy Website", "MEAN website", "AI Hype", "AI", "My Crazy Website", "AI Module", "New York", "Egg York", "Italian:Pizza", "French-Pizza", "Super_AI", "The Dark Knight", "The Dark Knight Rises" ] #can be populated from DB, can be name of people, project names or anything. sentence = "I want an Italian Pizza" keys_identified = identify.identify_keywords(given_keywords, sentence) print("Keywords fuzzily matched are: ", keys_identified)