当使用 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 矩阵。
据我了解,你想要计算 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]))