当对 TfIdfVectorizer 使用 Linear_kernel 或 cosine_similarity 时,我收到错误“内核死亡,重新启动”

问题描述 投票:0回答:1

当使用 Linear_kernel 或

cosine_similarity
表示
TfIdfVectorizer
时,我收到错误 “内核已死亡,正在重新启动”

我正在运行 TfID 方法 Vectorizer 的 scikit learn 函数,并在一些文本数据上运行

fit_transform
,如下例所示,但是当我想计算距离矩阵时,我收到错误 “内核死亡,重新启动”

无论我使用

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

kernel cosine-similarity tfidfvectorizer
1个回答
0
投票

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

在这种情况下(csr矩阵很大),很难一下子计算出来, 我的方法是

cosine_similarity(tfidf_matrix[index], tfidf_matrix[:]) * N times

实际上我是用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]))
© www.soinside.com 2019 - 2024. All rights reserved.