6

使用 linear_kernel 或cosine_similarityforTfIdfVectorizer时,我收到错误"Kernel dead, restarting"

我正在为 TfID 方法 Vectorizer 和fit_transform一些文本数据运行 scikit 学习函数,如下例所示,但是当我想计算距离矩阵时,出现错误"Kernel dead, restarting"

无论我使用的是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 矩阵。

4

1 回答 1

0

据我了解,您要计算 N x N 相似度表。

在那种情况下(csr矩阵很大),很难一次计算,我的方法是“cosine_similarity(tfidf_matrix[index], tfidf_matrix[:])”*N次。

实际上我是用 pyspark def calculate_one_to_all_similarity(index): ... cosine_similarity(tfidf_matrix[index], tfidf_matrix[:] rdd.map(lambda r: calculate_one_to_all_similarity(r2index[r]))

于 2020-10-09T04:07:36.747 回答