使用linear_kernel或cosine_similarity
TfIdfVectorizer
时,我收到错误" Kernel死了,重启" 。
我正在运行TfID方法Vectorizer和fit_transform
的scikit学习函数,如下例所示,但是当我想计算距离矩阵时,我得到错误"内核死了,重新启动" 。
我是使用cosine_similarity
还是linear_kernel
功能:
tf = TfidfVectorizer(analyzer='word' stop_words='english')
tfidf_matrix = tf.fit_transform(products['ProductDescription'])
--cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
--cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)
问题可能是我的数据大小?
我的tiidf矩阵是(178350,143529),它应该生成一个(178350,178350)cosine_sim矩阵。
答案 0 :(得分:0)
据我了解,您要计算N x N个相似度表。
在这种情况下(csr矩阵很大),很难一次计算出来, 我的方法是“ cosine_similarity(tfidf_matrix [index],tfidf_matrix [:])” * N次。
实际上我是用pyspark执行的 def compute_one_to_all_similarity(index): ... 余弦相似度(tfidf_matrix [index],tfidf_matrix [:] rdd.map(lambda r:calculate_one_to_all_similarity(r2index [r]))