当对TfIdfVectorizer使用linear_kernel或cosine_similarity时,我得到错误" Kernel死了,重启"

时间:2018-03-10 20:52:29

标签: kernel cosine-similarity tfidfvectorizer

使用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矩阵。

1 个答案:

答案 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]))