Python是一種通用的高級(jí)編程語(yǔ)言,已成為科學(xué)計(jì)算、Web開發(fā)、人工智能等領(lǐng)域的重要工具。在電影推薦領(lǐng)域,Python也有著廣泛的應(yīng)用。本文將講解如何使用Python計(jì)算電影相似度。
# 導(dǎo)入需要用到的庫(kù) import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # 讀取數(shù)據(jù) movies = pd.read_csv('movies.csv') # 構(gòu)建TF-IDF矩陣 tfidf = TfidfVectorizer(stop_words='english') tfidf_matrix = tfidf.fit_transform(movies['overview'].fillna('')) # 計(jì)算余弦相似度 cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix) # 獲取電影相似度排名 indices = pd.Series(movies.index, index=movies['title']).drop_duplicates() def get_similarity_rank(title, cosine_sim=cosine_sim, indices=indices): idx = indices[title] sim_scores = list(enumerate(cosine_sim[idx])) sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True) sim_scores = sim_scores[1:11] movie_indices = [i[0] for i in sim_scores] return movies['title'].iloc[movie_indices] # 示例:獲取電影“Avatar”相似度排名 get_similarity_rank('Avatar')
以上代碼實(shí)現(xiàn)了基于TF-IDF向量和余弦相似度的電影相似度計(jì)算。具體來(lái)說(shuō),首先讀取電影數(shù)據(jù),然后使用TF-IDF向量化電影概述信息,計(jì)算余弦相似度矩陣。最后可以通過(guò)輸入電影名稱獲取相似度排名。
在實(shí)際應(yīng)用中,可以將電影相似度作為電影推薦算法的依據(jù),幫助用戶找到更多喜歡的電影。