if i in idx_to_movie.keys() and len(str(idx_to_movie[i])) == 6: movies[i] = (idx_to_movie[i]) movies = filter(lambda imdb: imdb != 0, movies) total_movies = len(movies) URL = [0]*total_movies IMDB = [0]*total_movies URL_IMDB = {"url":[],"imdb":[]} i = 0 for movie in movies: (URL[i], IMDB[i]) = get_poster(movie, base_url) if URL[i] != base_url+"": URL_IMDB["url"].append(URL[i]) URL_IMDB["imdb"].append(IMDB[i]) i += 1 # URL = filter(lambda url: url != base_url+"", URL) df = pd.DataFrame(data=http://ai.51cto.com/art/201705/URL_IMDB) total_movies = len(df) import urllib poster_path = "/Users/wannjiun/Desktop/nycdsa/project_5_recommender/posters/" for i in range(total_movies): urllib.urlretrieve(df.url[i], poster_path + str(i) + ".jpg") from keras.applications import VGG16 from keras.applications.vgg16 import preprocess_input from keras.preprocessing import image as kimage image = [0]*total_movies x = [0]*total_movies for i in range(total_movies): image[i] = kimage.load_img(poster_path + str(i) + ".jpg", target_size=(224, 224)) x[i] = kimage.img_to_array(image[i]) x[i] = np.expand_dims(x[i], axis=0) x[i] = preprocess_input(x[i]) model = VGG16(include_top=False, weights='imagenet') prediction = [0]*total_movies matrix_res = np.zeros([total_movies,25088]) for i in range(total_movies): prediction[i] = model.predict(x[i]).ravel() matrix_res[i,:] = prediction[i] similarity_deep = matrix_res.dot(matrix_res.T) norms = np.array([np.sqrt(np.diagonal(similarity_deep))]) similarity_deep = similarity_deep / norms / norms.T 在代铝闼楝我们起首应用API和IMDB id,大年夜TMDB网站获取片子海报。然后向VGG16供给海报来练习神经收集。最后,用VGG16进修的特点来计算余弦类似性。获得片子类似性之后,我们可以推荐类似度最高的片子。VGG16总共有25088个学来的特点,我们应用这些特点来描述数据集中的每个片子。
来看看应用深度进修的片子推荐体系。
推荐阅读
如何使用WhatsApp收集大量数据(附脚本)
脚本下载
【编辑推荐】亚信安然成功抵抗全球第一只勒索蠕虫WannaCry收集病毒入侵!国度网信安然中间教你如许做前端安然之XSS进击收集安然始创公司存活之道小议验证码的安然性及若何绕过【义>>>详细阅读
本文标题:如何用深度学习推荐电影?教你做自己的推荐系统!
地址:http://www.17bianji.com/lsqh/35259.html
1/2 1