Я создаю систему рекомендаций, которая в настоящее время насчитывает около миллиона записей для фильмов / ТВ-шоу и 4000+ функций, в то время как вычисляя косинус сходства для фильмов / ТВ-шоу, он получает MemoryError
indices = np.empty(nnz, dtype=idx_dtype)
MemoryError
При поиске решений я натолкнулся на один похожий вопрос ( рекомендация по пунктам на основе косинусного сходства ), который выглядит как разрешенная проблема.
Я ищу похожий вид подход с использованием pyspark, но не в состоянии достичь реального кода.
Вот моя версия
def init_count_vectorizer(self):
count = CountVectorizer(analyzer='word', stop_words='english')
count_matrix = count.fit_transform(self.movie_df['keywords'])
count_matrix_actors = count.fit_transform(self.movie_df['actor_directors'])
self.cosine_sim.append(cosine_similarity(count_matrix))
self.cosine_sim.append(cosine_similarity(count_matrix_actors))
Это ошибка, которую я получаю,
File "<ipython-input-283-973e96267f48>", line 1, in <module>
hybrid_recommender.init_count_vectorizer()
File "<ipython-input-280-9b5de8c2b2c6>", line 34, in init_count_vectorizer
self.cosine_sim.append(cosine_similarity(count_matrix, dense_output=False))
File "C:\Users\Niranjan Kumar\Anaconda3\lib\site-packages\sklearn\metrics\pairwise.py", line 1176, in cosine_similarity
dense_output=dense_output)
File "C:\Users\Niranjan Kumar\Anaconda3\lib\site-packages\sklearn\utils\extmath.py", line 151, in safe_sparse_dot
ret = a @ b
File "C:\Users\Niranjan Kumar\Anaconda3\lib\site-packages\scipy\sparse\base.py", line 562, in __matmul__
return self.__mul__(other)
File "C:\Users\Niranjan Kumar\Anaconda3\lib\site-packages\scipy\sparse\base.py", line 482, in __mul__
return self._mul_sparse_matrix(other)
File "C:\Users\Niranjan Kumar\Anaconda3\lib\site-packages\scipy\sparse\compressed.py", line 511, in _mul_sparse_matrix
indices = np.empty(nnz, dtype=idx_dtype)
MemoryError